wave(222): OSS registry /opt/oss + /api/oss-manifest + mobile CSS + WTP catalog + 5/6 PW
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
This commit is contained in:
11
api/oss-manifest.php
Normal file
11
api/oss-manifest.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
// Wave 222 · /api/oss-manifest.php · serves /opt/oss/manifest.json
|
||||
@require_once __DIR__ . "/wevia-sanitizer-guard.php";
|
||||
header("Content-Type: application/json; charset=utf-8");
|
||||
header("Access-Control-Allow-Origin: *");
|
||||
$path = "/opt/oss/manifest.json";
|
||||
if (file_exists($path)) {
|
||||
echo @file_get_contents($path);
|
||||
} else {
|
||||
echo json_encode(["error" => "manifest_not_found"]);
|
||||
}
|
||||
@@ -101,3 +101,39 @@ a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible
|
||||
|
||||
/* Smooth scroll behaviour */
|
||||
html { scroll-behavior: smooth; }
|
||||
|
||||
/* Mobile responsive · Wave 222 */
|
||||
@media (max-width: 768px) {
|
||||
.wevia-portal-banner {
|
||||
flex-wrap: wrap;
|
||||
padding: 8px 12px;
|
||||
gap: 8px;
|
||||
}
|
||||
.wevia-portal-banner-label {
|
||||
width: 100%;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.wevia-portal-banner-link {
|
||||
font-size: 10.5px;
|
||||
padding: 3px 8px;
|
||||
}
|
||||
.wevia-portal-badge-wave {
|
||||
margin-left: 0;
|
||||
margin-top: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.wevia-portal-banner-link {
|
||||
font-size: 9.5px;
|
||||
padding: 3px 6px;
|
||||
}
|
||||
.wevia-portal-banner-link span, .wevia-portal-banner-label {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
/* Print friendly */
|
||||
@media print {
|
||||
.wevia-portal-banner { display: none; }
|
||||
}
|
||||
|
||||
@@ -4300,6 +4300,64 @@ if (typeof window.navigateTo === 'function'){
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="wtp-oss-catalog-wave222" data-added-by="opus-wave-222" style="margin:24px 16px;padding:20px;background:linear-gradient(135deg,#064e3b 0%,#1e1b4b 100%);border:1px solid #10b981;border-radius:12px;font-family:system-ui,sans-serif;box-shadow:0 10px 40px rgba(16,185,129,.15)">
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px">
|
||||
<div>
|
||||
<div style="display:flex;align-items:center;gap:10px">
|
||||
<span style="font-size:22px">📦</span>
|
||||
<h2 style="margin:0;color:#a7f3d0;font-size:18px;font-weight:700">OSS Registry · /opt/oss/ Catalog</h2>
|
||||
<span style="padding:3px 10px;border-radius:12px;background:linear-gradient(135deg,#10b981,#22d3ee);color:#fff;font-size:10px;font-weight:700">WAVE 222</span>
|
||||
</div>
|
||||
<p style="margin:4px 0 0 0;color:#6ee7b7;font-size:12px">4 OSS registered · install scripts ready · manifest live · 110K+ stars</p>
|
||||
</div>
|
||||
<div id="wtp-oss-ts" style="padding:4px 10px;border-radius:10px;background:rgba(16,185,129,.15);color:#6ee7b7;font-size:11px;font-weight:600">loading...</div>
|
||||
</div>
|
||||
|
||||
<div id="wtp-oss-cards" style="display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px"></div>
|
||||
<div style="margin-top:12px;padding:10px;background:rgba(16,185,129,.05);border:1px solid rgba(16,185,129,.15);border-radius:8px;font-size:11px;color:#a7f3d0">
|
||||
💡 <b>Workflow</b>: chaque tool a /opt/oss/<slug>/install.sh · exécuter manuellement ou via chat Master (<code>wire star-vector</code>) · Ne PAS auto-installer (clone large + ML deps).
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function(){
|
||||
function catColor(c){ return {code:'#22d3ee', data_analysis:'#a855f7'}[c] || '#94a3b8'; }
|
||||
function starFmt(n){ return n >= 1000 ? (n/1000).toFixed(1)+'k' : n; }
|
||||
function toolCard(t){
|
||||
var statusCol = t.status === 'installed' ? '#10b981' : (t.status === 'registered' ? '#fbbf24' : '#64748b');
|
||||
var notes = t.install_notes ? '<div style="margin-top:5px;padding:4px 6px;background:rgba(239,68,68,.08);border-radius:4px;font-size:10px;color:#fca5a5">⚠ '+t.install_notes.slice(0,80)+'...</div>' : '';
|
||||
return '<div style="padding:12px;background:rgba(0,0,0,.25);border:1px solid rgba(16,185,129,.2);border-radius:8px">'
|
||||
+'<div style="display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px">'
|
||||
+'<code style="font-size:12px;color:#a7f3d0;font-weight:700">'+t.slug+'</code>'
|
||||
+'<span style="padding:1px 6px;border-radius:8px;background:'+statusCol+'22;color:'+statusCol+';font-size:9.5px;font-weight:700;text-transform:uppercase">'+t.status+'</span>'
|
||||
+'</div>'
|
||||
+'<div style="font-size:10.5px;color:#94a3b8;font-family:monospace;margin-bottom:6px">'+t.full_name+' · ★'+starFmt(t.stars)+'</div>'
|
||||
+'<div style="font-size:11px;color:#e2e8f0;line-height:1.4">'+t.purpose+'</div>'
|
||||
+'<div style="margin-top:6px;display:flex;align-items:center;gap:6px">'
|
||||
+'<span style="padding:1px 6px;border-radius:8px;background:'+catColor(t.category)+'22;color:'+catColor(t.category)+';font-size:9.5px;font-weight:700">'+t.category+'</span>'
|
||||
+'<span style="font-size:10px;color:#fbbf24">'+t.gap_filled+'</span>'
|
||||
+'</div>'
|
||||
+notes
|
||||
+'</div>';
|
||||
}
|
||||
fetch('/api/oss-manifest.php?cb='+Date.now())
|
||||
.then(function(r){return r.json();})
|
||||
.then(function(d){
|
||||
var ts = document.getElementById('wtp-oss-ts');
|
||||
if (ts) { ts.textContent = 'updated '+(d.ts||'').slice(0,16); ts.style.background='rgba(16,185,129,.15)'; ts.style.color='#6ee7b7'; }
|
||||
var cards = document.getElementById('wtp-oss-cards');
|
||||
if (cards) {
|
||||
var cat = d.catalog || [];
|
||||
cards.innerHTML = cat.map(toolCard).join('');
|
||||
}
|
||||
})
|
||||
.catch(function(e){
|
||||
var ts = document.getElementById('wtp-oss-ts');
|
||||
if (ts) { ts.textContent='err'; ts.style.background='rgba(239,68,68,.15)'; ts.style.color='#fca5a5'; }
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</section>
|
||||
|
||||
<section id="wtp-ai-capability-wave220" data-added-by="opus-wave-220" style="margin:24px 16px;padding:22px;background:linear-gradient(135deg,#1e1b4b 0%,#064e3b 100%);border:1px solid #8b5cf6;border-radius:12px;font-family:system-ui,sans-serif;box-shadow:0 10px 40px rgba(139,92,246,.2)">
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px">
|
||||
<div>
|
||||
|
||||
Reference in New Issue
Block a user