AUTO-BACKUP 20260416-1900
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
opus
2026-04-16 19:00:02 +02:00
parent d60005dd10
commit 68cc6b296d
103 changed files with 1107 additions and 9629 deletions

View File

@@ -818,21 +818,6 @@ setInterval(calcHealth,60000);setInterval(loadLatency,120000);
ALERTS.push({agent:'GitHub PAT',msg:'Expire 15 avril 2026',t:Date.now()});
renderAlerts();
</script>
<script src="/api/live-stats.js"></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -431,22 +431,7 @@ C.addEventListener('mousemove',e=>{mx=e.clientX;my=e.clientY;C.style.cursor=hov?
C.addEventListener('mouseleave',()=>{mx=my=-1});
requestAnimationFrame(loop);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -342,22 +342,7 @@ AGENTS.forEach(a=>{
requestAnimationFrame(frame);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -1223,21 +1223,6 @@ window.addEventListener('resize',function(){cam.aspect=innerWidth/innerHeight;ca
<div style="position:fixed;bottom:55px;left:50%;transform:translateX(-50%);z-index:9998;display:flex;gap:6px;pointer-events:none"><div style="background:rgba(6,12,22,.93);border:1px solid #06b6d4;border-radius:10px;padding:6px 10px;backdrop-filter:blur(10px);pointer-events:auto;cursor:pointer" onclick="window.open('/wevia-meeting-rooms.html')"><div style="font:800 12px Nunito;color:#06b6d4">MEETING</div></div><div style="background:rgba(6,12,22,.93);border:1px solid #8b5cf6;border-radius:10px;padding:6px 10px;backdrop-filter:blur(10px);pointer-events:auto;cursor:pointer" onclick="window.open('/director-center.html')"><div style="font:800 12px Nunito;color:#8b5cf6">DIRECTOR</div></div><div style="background:rgba(6,12,22,.93);border:1px solid #f59e0b;border-radius:10px;padding:6px 10px;backdrop-filter:blur(10px);pointer-events:auto;cursor:pointer" onclick="window.open('/security-dashboard.html')"><div style="font:800 12px Nunito;color:#f59e0b">SECURITY</div></div><div style="background:rgba(6,12,22,.93);border:1px solid #ef4444;border-radius:10px;padding:6px 10px;backdrop-filter:blur(10px);pointer-events:auto;cursor:pointer" onclick="window.open('/enterprise-model.html')"><div style="font:800 12px Nunito;color:#ef4444">ENTERPRISE</div></div><div style="background:rgba(6,12,22,.93);border:1px solid #4ade80;border-radius:10px;padding:6px 10px;backdrop-filter:blur(10px);pointer-events:auto;cursor:pointer" onclick="window.open('/l99-brain.html')"><div style="font:800 12px Nunito;color:#4ade80">L99</div></div></div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -12,21 +12,6 @@ fetch('/api/weval-unified-pipeline.php').then(r=>r.text().then(t=>{/* HTML_GUARD
document.body.insertAdjacentHTML('beforeend','<p style="margin-top:30px;color:#06b6d4">● '+d.l99.health+' '+d.l99.pass+'/'+d.l99.total+' checks · '+d.routines.length+' routines</p>');
}).catch(()=>{});
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -260,22 +260,7 @@ C.addEventListener('mousemove',e=>{mx=e.clientX;my=e.clientY;C.style.cursor=hov?
C.addEventListener('mouseleave',()=>{mx=my=-1});
requestAnimationFrame(loop);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -271,22 +271,7 @@ function render(agents) {
load();
setInterval(load, 30000);
</script>
<script src="/api/live-stats.js"></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -770,21 +770,6 @@ C.addEventListener('click',function(ev){
C.addEventListener('mousemove',function(e){mx=e.clientX;my=e.clientY+window.scrollY;C.style.cursor=hov?'pointer':'default';});
C.addEventListener('mouseleave',function(){mx=my=-1;});
requestAnimationFrame(loop);
</script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
</script><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -400,22 +400,7 @@ addEventListener('resize',()=>{resize();layZones()});
requestAnimationFrame(loop);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -260,22 +260,7 @@ C.addEventListener('mousemove',e=>{mx=e.clientX;my=e.clientY;C.style.cursor=hov?
C.addEventListener('mouseleave',()=>{mx=my=-1});
requestAnimationFrame(loop);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -50,21 +50,6 @@
<a href="/paperclip.html" class="card"><h3>📋 Paperclip</h3><p>Project management agent</p><span class="badge int">INTERNE</span></a>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -260,21 +260,6 @@ loadMetrics();
initParticles();
setInterval(loadMetrics,30000);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -370,22 +370,7 @@ C.addEventListener('mousemove',e=>{mx=e.clientX;my=e.clientY;C.style.cursor=hov?
C.addEventListener('mouseleave',()=>{mx=my=-1});
requestAnimationFrame(loop);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -12,21 +12,6 @@ fetch('/api/weval-unified-pipeline.php').then(r=>r.text().then(t=>{/* HTML_GUARD
document.body.insertAdjacentHTML('beforeend','<p style="margin-top:30px;color:#06b6d4">● '+d.l99.health+' '+d.l99.pass+'/'+d.l99.total+' checks · '+d.routines.length+' routines</p>');
}).catch(()=>{});
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -311,22 +311,7 @@ function toggle(id){
render();
</script>
<script src="/api/live-stats.js"></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -92,21 +92,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#0ea5e9;text-transform:uppercase;let
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -25,21 +25,6 @@ p.sub{color:#64748b;margin-bottom:32px;font-size:14px}
<a class="card" href="/wevia-master.html"><h3>&#129302; WEVIA Master</h3><p>Master chat avec cascade 14 providers + Claude</p><span class="tag" style="background:rgba(167,139,250,.12);color:#a78bfa">MASTER</span></a>
<a class="card" href="/claude-sync.html"><h3>&#128260; Claude Sync</h3><p>Synchronisation conversations Claude &#8596; WEVIA</p><span class="tag" style="background:rgba(251,191,36,.12);color:#fbbf24">SYNC</span></a>
<a class="card" href="/api-key-hub.html"><h3>&#128273; API Keys</h3><p>Gestion cle Anthropic + rotation</p><span class="tag" style="background:rgba(248,113,113,.12);color:#f87171">KEYS</span></a>
</div></div><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
</div></div><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -162,22 +162,7 @@ async function saveKey(keyName, btn) {
loadStatus();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,11 @@
{
"ts": "2026-04-16T13:37:55+00:00",
"hostname": "LAPTOP-VE75QUHF",
"cpu": "34%",
"ram": "79% (16GB)",
"disk": "80% (464GB)",
"uptime": "0d 4h",
"user": "Yace",
"ts": "2026-04-16T16:59:47+00:00",
"hostname": "blade",
"cpu": "?",
"ram": "?",
"disk": "?",
"uptime": "?",
"user": "?",
"ip": "105.159.153.96",
"agent_version": "2.2"
"agent_version": "2.0"
}

View File

@@ -4,11 +4,11 @@
"cmd": "hostname",
"label": "OPUS3-WAKE",
"priority": 10,
"status": "pending",
"status": "done",
"created": "2026-04-16T16:55:56+00:00",
"started": null,
"completed": null,
"result": null,
"completed": "2026-04-16T16:59:48+00:00",
"result": "LAPTOP-VE75QUHF\r\n",
"error": null,
"source": "api"
}

View File

@@ -0,0 +1,14 @@
{
"id": "task_20260416_165717_ee56a9",
"type": "powershell",
"cmd": "schtasks \/Create \/TN \"WEVAL Sentinel\" \/TR \"powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File C:\\ProgramData\\WEVAL\\sentinel-agent.ps1\" \/SC ONLOGON \/RL HIGHEST \/F",
"label": "AUTO-START-SENTINEL-ON-BOOT",
"priority": 10,
"status": "done",
"created": "2026-04-16T16:57:17+00:00",
"started": null,
"completed": "2026-04-16T16:59:59+00:00",
"result": "",
"error": null,
"source": "api"
}

View File

@@ -13,5 +13,5 @@
"Run simulation",
"CEO insights"
],
"timestamp": "2026-04-16 16:55:03"
"timestamp": "2026-04-16 17:00:01"
}

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.615778"
"discovered": "2026-04-16T19:00:02.275902"
},
{
"name": "wevia-brain",
@@ -23,7 +23,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.668122"
"discovered": "2026-04-16T19:00:02.293600"
},
{
"name": "skills",
@@ -36,7 +36,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.554354"
"discovered": "2026-04-16T19:00:02.186804"
},
{
"name": "everything-claude-code",
@@ -49,7 +49,7 @@
"has_docker": false,
"wired": true,
"description": "**Language:** English | [Português (Brasil)](docs/pt-BR/README.md) | [简体中文](README.zh-CN.md) | [繁體中文](docs/zh-TW/README.md) | [日本語](docs/ja-JP/README.",
"discovered": "2026-04-16T18:00:02.297254"
"discovered": "2026-04-16T19:00:01.899363"
},
{
"name": "open-webui-fresh",
@@ -62,7 +62,7 @@
"has_docker": true,
"wired": true,
"description": "# Open WebUI 👋 ![GitHub stars](https://img.shields.io/github/stars/open-webui/open-webui?style=social) ![GitHub forks](https://img.shields.io/github/",
"discovered": "2026-04-16T18:00:02.411681"
"discovered": "2026-04-16T19:00:02.057750"
},
{
"name": "activepieces",
@@ -75,7 +75,7 @@
"has_docker": true,
"wired": true,
"description": " <h1 align=\"center\"> <a target=\"_blank\" href=\"https://activepieces.com\" > <img align=\"center\" alt=\"Activepieces\" src=\"http",
"discovered": "2026-04-16T18:00:02.249412"
"discovered": "2026-04-16T19:00:01.841457"
},
{
"name": "oh-my-claudecode",
@@ -88,7 +88,7 @@
"has_docker": false,
"wired": true,
"description": "English | [한국어](README.ko.md) | [中文](README.zh.md) | [日本語](README.ja.md) | [Español](README.es.md) | [Tiếng Việt](README.vi.md) | [Português](README.p",
"discovered": "2026-04-16T18:00:02.405904"
"discovered": "2026-04-16T19:00:02.047705"
},
{
"name": "mxyhi_ok-skills",
@@ -101,7 +101,7 @@
"has_docker": false,
"wired": true,
"description": "# OK Skills: AI Coding Agent Skills for Codex, Claude Code, Cursor, OpenClaw, and More English | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | ",
"discovered": "2026-04-16T18:00:02.390635"
"discovered": "2026-04-16T19:00:02.026009"
},
{
"name": "SuperClaude_Framework",
@@ -114,7 +114,7 @@
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> # 🚀 SuperClaude Framework [![Run in Smithery](https://smithery.ai/badge/skills/SuperClaude-Org)](https://smithery.ai/skills?ns=",
"discovered": "2026-04-16T18:00:02.247263"
"discovered": "2026-04-16T19:00:01.837577"
},
{
"name": "paperclip-weval",
@@ -127,7 +127,7 @@
"has_docker": true,
"wired": true,
"description": "<p align=\"center\"> <img src=\"doc/assets/header.png\" alt=\"Paperclip — runs your business\" width=\"720\" /> </p> <p align=\"center\"> <a href=\"#quickst",
"discovered": "2026-04-16T18:00:02.427276"
"discovered": "2026-04-16T19:00:02.081657"
},
{
"name": "vllm",
@@ -140,7 +140,7 @@
"has_docker": false,
"wired": true,
"description": "<!-- markdownlint-disable MD001 MD041 --> <p align=\"center\"> <picture> <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubus",
"discovered": "2026-04-16T18:00:02.595461"
"discovered": "2026-04-16T19:00:02.250527"
},
{
"name": "deer-flow",
@@ -153,7 +153,7 @@
"has_docker": false,
"wired": true,
"description": "# 🦌 DeerFlow - 2.0 English | [中文](./README_zh.md) | [日本語](./README_ja.md) | [Français](./README_fr.md) | [Русский](./README_ru.md) [![Python](https:",
"discovered": "2026-04-16T18:00:02.293813"
"discovered": "2026-04-16T19:00:01.892247"
},
{
"name": "system-prompts-ai",
@@ -166,7 +166,7 @@
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> Support my work here: <a href=\"https://bags.fm/DEffWzJyaFRNyA4ogUox631hfHuv3KLeCcpBh2ipBAGS\">Bags.fm</a> • <a href=\"https://",
"discovered": "2026-04-16T18:00:02.570372"
"discovered": "2026-04-16T19:00:02.220190"
},
{
"name": "librechat",
@@ -179,7 +179,7 @@
"has_docker": true,
"wired": true,
"description": "<p align=\"center\"> <a href=\"https://librechat.ai\"> <img src=\"client/public/assets/logo.svg\" height=\"256\"> </a> <h1 align=\"center\"> <a hr",
"discovered": "2026-04-16T18:00:02.317153"
"discovered": "2026-04-16T19:00:01.936796"
},
{
"name": "listmonk",
@@ -192,7 +192,7 @@
"has_docker": true,
"wired": true,
"description": "<a href=\"https://zerodha.tech\"><img src=\"https://zerodha.tech/static/images/github-badge.svg\" align=\"right\" /></a> [![listmonk-logo](https://user-ima",
"discovered": "2026-04-16T18:00:02.322727"
"discovered": "2026-04-16T19:00:01.950419"
},
{
"name": "rnd-edict",
@@ -205,7 +205,7 @@
"has_docker": true,
"wired": true,
"description": "<h1 align=\"center\">⚔️ 三省六部 · Edict</h1> <p align=\"center\"> <strong>我用 1300 年前的帝国制度,重新设计了 AI 多 Agent 协作架构。<br>结果发现,古人比现代 AI 框架更懂分权制衡。</strong> </p> ",
"discovered": "2026-04-16T18:00:02.516544"
"discovered": "2026-04-16T19:00:02.173494"
},
{
"name": "anythingllm",
@@ -218,7 +218,7 @@
"has_docker": false,
"wired": true,
"description": "<a name=\"readme-top\"></a> <p align=\"center\"> <a href=\"https://anythingllm.com\"><img src=\"https://github.com/Mintplex-Labs/anything-llm/blob/master/",
"discovered": "2026-04-16T18:00:02.258383"
"discovered": "2026-04-16T19:00:01.848484"
},
{
"name": "claw-code",
@@ -231,7 +231,7 @@
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> <img src=\"https://github.com/2214962083/2214962083/assets/34775414/a48b745f-c803-4884-95a8-26c63f7f5b53\" alt=\"icon\"/> <h1 align=",
"discovered": "2026-04-16T18:00:02.283558"
"discovered": "2026-04-16T19:00:01.879001"
},
{
"name": "modelscope-hub",
@@ -244,7 +244,7 @@
"has_docker": false,
"wired": true,
"description": " <p align=\"center\"> <br> <img src=\"https://modelscope.oss-cn-beijing.aliyuncs.com/modelscope.gif\" width=\"400\"/> <br> <p> <div align=\"cent",
"discovered": "2026-04-16T18:00:02.377736"
"discovered": "2026-04-16T19:00:02.002920"
},
{
"name": "weval-nonreg",
@@ -257,7 +257,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.624429"
"discovered": "2026-04-16T19:00:02.281060"
},
{
"name": "antigravity-awesome-skills",
@@ -270,7 +270,7 @@
"has_docker": false,
"wired": true,
"description": "<!-- registry-sync: version=9.4.0; skills=1340; stars=28867; updated_at=2026-03-31T16:30:41+00:00 --> # 🌌 Antigravity Awesome Skills: 1,340+ Agentic S",
"discovered": "2026-04-16T18:00:02.256314"
"discovered": "2026-04-16T19:00:01.845946"
},
{
"name": "deepagent",
@@ -283,7 +283,7 @@
"has_docker": false,
"wired": true,
"description": "# DeepAgents 기반 Research Multi Agent System Agent 2.0 Paradigm 을 잘 구현하는 DeepAgent 를 활용해서, FileSystem 기반 Context Engineering 을 원활히 수행하는 Research 용 Mul",
"discovered": "2026-04-16T18:00:02.289622"
"discovered": "2026-04-16T19:00:01.887242"
},
{
"name": "rnd-astron-agent",
@@ -296,7 +296,7 @@
"has_docker": false,
"wired": true,
"description": "[![Astron_Readme](./docs/imgs/Astron_Readme.png)](https://agent.xfyun.cn) <div align=\"center\"> [![License](https://img.shields.io/badge/license-apac",
"discovered": "2026-04-16T18:00:02.501221"
"discovered": "2026-04-16T19:00:02.169913"
},
{
"name": "autogen",
@@ -309,7 +309,7 @@
"has_docker": false,
"wired": true,
"description": "<a name=\"readme-top\"></a> <div align=\"center\"> <img src=\"https://microsoft.github.io/autogen/0.2/img/ag.svg\" alt=\"AutoGen Logo\" width=\"100\"> [![Twit",
"discovered": "2026-04-16T18:00:02.261958"
"discovered": "2026-04-16T19:00:01.858049"
},
{
"name": "HolyClaude",
@@ -322,7 +322,7 @@
"has_docker": true,
"wired": true,
"description": "🌍 **English** | [Español](docs/translations/README.es.md) | [Français](docs/translations/README.fr.md) | [Italiano](docs/translations/README.it.md) | ",
"discovered": "2026-04-16T18:00:02.240277"
"discovered": "2026-04-16T19:00:01.831872"
},
{
"name": "aios",
@@ -335,7 +335,7 @@
"has_docker": true,
"wired": true,
"description": "# AIOS: AI Agent Operating System <a href='https://arxiv.org/abs/2403.16971'><img src='https://img.shields.io/badge/Paper-PDF-red'></a> <a href='http",
"discovered": "2026-04-16T18:00:02.251480"
"discovered": "2026-04-16T19:00:01.843741"
},
{
"name": "whisper.cpp",
@@ -348,7 +348,7 @@
"has_docker": false,
"wired": true,
"description": "# Whisper [[Blog]](https://openai.com/blog/whisper) [[Paper]](https://arxiv.org/abs/2212.04356) [[Model card]](https://github.com/openai/whisper/blob",
"discovered": "2026-04-16T18:00:02.672264"
"discovered": "2026-04-16T19:00:02.297585"
},
{
"name": "sovereign-api",
@@ -361,7 +361,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.563386"
"discovered": "2026-04-16T19:00:02.205048"
},
{
"name": "awesome-claude-code-toolkit",
@@ -374,7 +374,7 @@
"has_docker": false,
"wired": true,
"description": "# Claude Code Toolkit **The most comprehensive toolkit for Claude Code -- 135 agents, 35 curated skills (+400,000 via [SkillKit](https://agenstskills",
"discovered": "2026-04-16T18:00:02.276592"
"discovered": "2026-04-16T19:00:01.867086"
},
{
"name": "mirofish",
@@ -387,7 +387,7 @@
"has_docker": true,
"wired": true,
"description": "<div align=\"center\"> <img src=\"./static/image/MiroFish_logo_compressed.jpeg\" alt=\"MiroFish Logo\" width=\"75%\"/> <a href=\"https://trendshift.io/reposi",
"discovered": "2026-04-16T18:00:02.364664"
"discovered": "2026-04-16T19:00:02.000864"
},
{
"name": "claude-mem",
@@ -400,7 +400,7 @@
"has_docker": false,
"wired": true,
"description": "# claude-code-auto-memory **Your CLAUDE.md, always in sync.** Minimal tokens. Zero config. Just works. A Claude Code plugin that watches what Claude",
"discovered": "2026-04-16T18:00:02.278895"
"discovered": "2026-04-16T19:00:01.872400"
},
{
"name": "huggingface-skills",
@@ -413,7 +413,7 @@
"has_docker": false,
"wired": true,
"description": "# Hugging Face Skills Hugging Face Skills are definitions for AI/ML tasks like dataset creation, model training, and evaluation. They are interoperab",
"discovered": "2026-04-16T18:00:02.301339"
"discovered": "2026-04-16T19:00:01.908398"
},
{
"name": "supermemory",
@@ -426,7 +426,7 @@
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> <picture> <source srcset=\"apps/web/public/logo-fullmark.svg\" media=\"(prefers-color-scheme: dark)\"> <source srcset=\"apps/w",
"discovered": "2026-04-16T18:00:02.568381"
"discovered": "2026-04-16T19:00:02.212755"
},
{
"name": "fmgapp",
@@ -439,7 +439,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.299250"
"discovered": "2026-04-16T19:00:01.906175"
},
{
"name": "wevads",
@@ -452,7 +452,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.607394"
"discovered": "2026-04-16T19:00:02.269585"
},
{
"name": "rnd-agents",
@@ -465,7 +465,7 @@
"has_docker": false,
"wired": true,
"description": "# Claude Code Plugins: Orchestration and Automation > **⚡ Updated for Opus 4.6, Sonnet 4.6 & Haiku 4.5** — Three-tier model strategy for optimal perf",
"discovered": "2026-04-16T18:00:02.486191"
"discovered": "2026-04-16T19:00:02.166531"
},
{
"name": "FrancyJGLisboa_agent-skill-creator",
@@ -478,7 +478,7 @@
"has_docker": false,
"wired": true,
"description": "# Agent Skill Creator **Turn any workflow into reusable AI agent software that installs on 14+ tools — no spec writing, no prompt engineering, no cod",
"discovered": "2026-04-16T18:00:02.235905"
"discovered": "2026-04-16T19:00:01.828868"
},
{
"name": "obsidian-vault",
@@ -491,7 +491,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.395598"
"discovered": "2026-04-16T19:00:02.032437"
},
{
"name": "skillsmith",
@@ -504,7 +504,7 @@
"has_docker": false,
"wired": true,
"description": "<div align=\"center\"> <img src=\"terminal.svg\" alt=\"Skillsmith terminal\" width=\"740\"/> </div> <div align=\"center\"> # Skillsmith **Build consistent ",
"discovered": "2026-04-16T18:00:02.556582"
"discovered": "2026-04-16T19:00:02.191706"
},
{
"name": "awesome-agent-skills",
@@ -517,7 +517,7 @@
"has_docker": false,
"wired": true,
"description": "<a href=\"https://github.com/VoltAgent/voltagent\"> <img width=\"1500\" height=\"801\" alt=\"claude-skills\" src=\"https://github.com/user-attachments/ass",
"discovered": "2026-04-16T18:00:02.270683"
"discovered": "2026-04-16T19:00:01.861807"
},
{
"name": "paperclip-skills",
@@ -530,7 +530,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.425162"
"discovered": "2026-04-16T19:00:02.069861"
},
{
"name": "weval-ops",
@@ -543,7 +543,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.642095"
"discovered": "2026-04-16T19:00:02.283039"
},
{
"name": "jzOcb_writing-style-skill",
@@ -556,7 +556,7 @@
"has_docker": false,
"wired": true,
"description": "# Writing Style Skill 可复用的写作风格 Skill 模板。**内置自动学习** — 从你的修改中自动提取规则SKILL.md 越用越准。 兼容 **Claude Code** + **OpenClaw (ClawHub)**。 ## 原理 ``` AI 用 SKILL",
"discovered": "2026-04-16T18:00:02.303529"
"discovered": "2026-04-16T19:00:01.913920"
},
{
"name": "qdrant-data",
@@ -569,7 +569,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.467034"
"discovered": "2026-04-16T19:00:02.138369"
},
{
"name": "wazuh",
@@ -582,7 +582,7 @@
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.601453"
"discovered": "2026-04-16T19:00:02.267542"
},
{
"name": "plausible",
@@ -595,7 +595,7 @@
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.439801"
"discovered": "2026-04-16T19:00:02.098646"
},
{
"name": "pmta",
@@ -608,7 +608,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.441823"
"discovered": "2026-04-16T19:00:02.118187"
},
{
"name": "render-configs",
@@ -621,7 +621,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.484037"
"discovered": "2026-04-16T19:00:02.148767"
},
{
"name": "searxng",
@@ -634,7 +634,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.536283"
"discovered": "2026-04-16T19:00:02.177431"
},
{
"name": "weval-guardian",
@@ -647,7 +647,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.612410"
"discovered": "2026-04-16T19:00:02.273314"
},
{
"name": "weval-litellm",
@@ -660,7 +660,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.622377"
"discovered": "2026-04-16T19:00:02.278060"
},
{
"name": "weval-security",
@@ -673,7 +673,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.657976"
"discovered": "2026-04-16T19:00:02.288747"
},
{
"name": "keyhacks",
@@ -686,7 +686,7 @@
"has_docker": false,
"wired": true,
"description": "<p align=\"center\"> <img src=\"https://user-images.githubusercontent.com/18099289/56750563-558a9400-6784-11e9-8175-ee2a19ee9d75.png\" width=\"300px\"> </",
"discovered": "2026-04-16T18:00:02.306692"
"discovered": "2026-04-16T19:00:01.919337"
},
{
"name": "loki",
@@ -699,7 +699,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.350655"
"discovered": "2026-04-16T19:00:01.977132"
},
{
"name": "ruflo",
@@ -712,7 +712,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.524945"
"discovered": "2026-04-16T19:00:02.175576"
},
{
"name": "twenty",
@@ -725,7 +725,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.584311"
"discovered": "2026-04-16T19:00:02.227013"
},
{
"name": "weval-crewai",
@@ -738,7 +738,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.609949"
"discovered": "2026-04-16T19:00:02.271404"
},
{
"name": "weval-radar",
@@ -751,7 +751,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.654145"
"discovered": "2026-04-16T19:00:02.284960"
},
{
"name": "weval-scrapy",
@@ -764,7 +764,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.656060"
"discovered": "2026-04-16T19:00:02.286859"
},
{
"name": "langfuse",
@@ -777,7 +777,7 @@
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.310101"
"discovered": "2026-04-16T19:00:01.925296"
},
{
"name": "litellm",
@@ -790,7 +790,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.329604"
"discovered": "2026-04-16T19:00:01.952516"
},
{
"name": "mattermost-docker",
@@ -803,7 +803,7 @@
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.362577"
"discovered": "2026-04-16T19:00:01.987373"
},
{
"name": "prometheus",
@@ -816,7 +816,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.456396"
"discovered": "2026-04-16T19:00:02.123150"
},
{
"name": "twenty-compose",
@@ -829,7 +829,7 @@
"has_docker": true,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.592810"
"discovered": "2026-04-16T19:00:02.248491"
},
{
"name": "weval-ux",
@@ -842,7 +842,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.659944"
"discovered": "2026-04-16T19:00:02.290740"
},
{
"name": "DiffusionDB",
@@ -855,7 +855,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.231582"
"discovered": "2026-04-16T19:00:01.824673"
},
{
"name": "LTX-Video",
@@ -868,7 +868,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.243454"
"discovered": "2026-04-16T19:00:01.834640"
},
{
"name": "localai",
@@ -881,7 +881,7 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.335890"
"discovered": "2026-04-16T19:00:01.969451"
},
{
"name": "wevia-finetune",
@@ -894,6 +894,6 @@
"has_docker": false,
"wired": true,
"description": "",
"discovered": "2026-04-16T18:00:02.670192"
"discovered": "2026-04-16T19:00:02.295559"
}
]

View File

@@ -1 +1 @@
{"ts":"18:56","status":"offline"}
{"ts":"19:00","status":"online","cpu":"?%","ram":"?%","ip":"105.159.153.96","uptime":"?","pending":29,"via":"heartbeat"}

View File

@@ -348,22 +348,7 @@ secs.forEach(x=>x.classList.toggle('show',x.id==='sec-'+s));
</script>
<script>(function(){var p=window.location.pathname;var pub=["/","/index.html","/wevia.html","/wevia-widget.html","/enterprise-model.html","/wevia","/login","/register.html","/agents-archi.html","/wevia-meeting-rooms.html","/director-center.html","/director-chat.html","/l99-brain.html","/agents-fleet.html","/value-streaming.html","/architecture.html","/openclaw.html","/l99-saas.html","/admin-saas.html","/agents-goodjob.html","/ai-benchmark.html","/oss-discovery.html","/paperclip.html","/agents-3d.html","/agents-alive.html","/agents-enterprise.html","/agents-hd.html","/agents-iso3d.html","/agents-sim.html","/agents-valuechain.html","/avatar-picker.html"];var isPub=pub.indexOf(p)>=0||p.indexOf("/products/")===0||p.indexOf("/blog/")===0||p.indexOf("/service/")===0;if(isPub||document.getElementById("weval-gl"))return;var a=document.createElement("a");a.id="weval-gl";a.href="/logout";a.textContent="Logout";a.style.cssText="position:fixed;top:10px;right:12px;z-index:99990;padding:5px 10px;background:rgba(30,30,50,0.7);color:rgba(200,210,230,0.8);border:1px solid rgba(100,100,140,0.3);border-radius:6px;font:500 11px system-ui,sans-serif;text-decoration:none;opacity:0.6;cursor:pointer;backdrop-filter:blur(6px);transition:all .15s";a.onmouseover=function(){this.style.opacity="1";this.style.background="rgba(239,68,68,0.85)";this.style.color="white"};a.onmouseout=function(){this.style.opacity="0.6";this.style.background="rgba(30,30,50,0.7)";this.style.color="rgba(200,210,230,0.8)"};document.body.appendChild(a)})()</script><!-- NL-AutoWire-badge-v1 -->
<a href="/nl-autowire-status.html" id="nlAutowireBadge" style="position:fixed;bottom:8px;right:8px;background:#1a3d2c;color:#56d364;padding:4px 10px;border-radius:12px;font-size:0.78em;font-family:-apple-system,sans-serif;text-decoration:none;z-index:99999;border:1px solid rgba(86,211,100,0.5);box-shadow:0 2px 8px rgba(0,0,0,0.3);">NL-AutoWire &check;</a>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -354,22 +354,7 @@ body{font-family:var(--bf);background:var(--bg);color:var(--t);overflow-x:hidden
</div>
<!-- NL-AutoWire-badge-v1 -->
<a href="/nl-autowire-status.html" id="nlAutowireBadge" style="position:fixed;bottom:8px;right:8px;background:#1a3d2c;color:#56d364;padding:4px 10px;border-radius:12px;font-size:0.78em;font-family:-apple-system,sans-serif;text-decoration:none;z-index:99999;border:1px solid rgba(86,211,100,0.5);box-shadow:0 2px 8px rgba(0,0,0,0.3);">NL-AutoWire &check;</a>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -420,22 +420,7 @@ load();setInterval(load,5*60*1000);
</script>
<!-- NL-AutoWire-badge-v1 -->
<a href="/nl-autowire-status.html" id="nlAutowireBadge" style="position:fixed;bottom:8px;right:8px;background:#1a3d2c;color:#56d364;padding:4px 10px;border-radius:12px;font-size:0.78em;font-family:-apple-system,sans-serif;text-decoration:none;z-index:99999;border:1px solid rgba(86,211,100,0.5);box-shadow:0 2px 8px rgba(0,0,0,0.3);">NL-AutoWire &check;</a>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -417,22 +417,7 @@ async function pollAndExecute() {
}
setInterval(pollAndExecute, 60000);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -1,18 +1,3 @@
<!DOCTYPE html><html><head><meta charset="UTF-8"><meta http-equiv="refresh" content="0;url=/blade-ai.html"><title>Redirect</title></head><body><a href="/blade-ai.html">Blade AI Controller</a><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!DOCTYPE html><html><head><meta charset="UTF-8"><meta http-equiv="refresh" content="0;url=/blade-ai.html"><title>Redirect</title></head><body><a href="/blade-ai.html">Blade AI Controller</a><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -47,21 +47,6 @@
<a href="/ops-center.html" class="card"><h3>⚙️ Ops Center</h3><p>Docker, crons, infra</p><span class="badge int">INTERNE</span></a>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -20,21 +20,6 @@ fetch('/api/blade-api.php?action=status&k=BLADE2026').then(r=>r.text().then(t=>{
document.getElementById('st').innerHTML=`<span class="${cls}">${hb.hostname}${age}min ago — ${hb.ip} — v${hb.agent_version}</span>`;
}).catch(()=>document.getElementById('st').innerHTML='<span class="err">API Error</span>');
</script>
</div><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
</div><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -82,21 +82,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#f97316;text-transform:uppercase;let
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -625,22 +625,7 @@ buildCats();
loadScreen('master');
setTimeout(healthCheck,2000);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -23,21 +23,6 @@ a{color:#22d3ee;text-decoration:none}
<div class="card"><h3>🔗 API Integration</h3><p>DeepSeek API wirée dans WEVIA Master cascade. Fallback automatique.</p><div class="status"><span class="dot"></span><span style="color:#22c55e;font-size:12px">WIRED</span></div><span class="tag free">0€</span><br><a href="/wevia-master.html">→ WEVIA Master</a></div>
</div>
<div style="padding:24px;text-align:center;color:#64748b;font-size:12px">WEVIA DeepSeek Hub — 6 services souverains | 0€ | Illimité</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -13,21 +13,6 @@
<div class="hdr"><h1>🦌 WEVIA DeerFlow Hub</h1><span class="badge">SOVEREIGN</span></div>
<div class="grid"><div class="card"><h3><span class="dot"></span>LangGraph Agent</h3><p>Recherche multi-sources</p></div><div class="card"><h3><span class="dot"></span>8 Processes LIVE</h3><p>Agents parallèles</p></div><div class="card"><h3><span class="dot"></span>Wiki Integration</h3><p>Résultats → KB automatique</p></div><div class="card"><h3><span class="dot"></span>Sovereign Search</h3><p>SearXNG + analyse IA</p></div></div>
<div style="padding:20px;text-align:center;color:#475569;font-size:11px">WEVIA {title} Hub — Sovereign Infrastructure</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -467,21 +467,6 @@ setInterval(loadData,30000);
})();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -392,22 +392,7 @@ async function cmdHistory(){
async function cmdNonreg(){const d=await fetch(API+'?status').then(function(r){if(!r.ok)throw new Error(r.status);return safeJson(r)});return`<b>NonReg</b><br><br><pre>${d.observations?.nonreg_last||'No data'}</pre>`}
async function cmdGit(){const d=await fetch(API+'?status').then(function(r){if(!r.ok)throw new Error(r.status);return safeJson(r)});const o=d.observations||{};return`<b>Git</b><br><br>wevia-brain: ${tag(o.git_brain==='0'?'ok':'warn',o.git_brain+' dirty')}<br>weval site: ${tag((parseInt(o.git_weval)||0)<10?'ok':'warn',o.git_weval+' dirty')}`}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -59,21 +59,6 @@ async function testBoth(){
}
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -417,22 +417,7 @@ async function triggerCycle(force = false) {
loadAll();
setInterval(loadAll, 60000);
</script>
<script>(function(){if(document.getElementById("weval-gl"))return;var p=window.location.pathname;var pub=["/","/index.html","/wevia.html","/wevia-widget.html","/enterprise-model.html","/wevia","/login","/api/"];var isPub=pub.some(function(x){return p===x||p.indexOf("/api/")===0;});if(isPub)return;var a=document.createElement("a");a.id="weval-gl";a.href="/logout";a.textContent="Logout";a.style.cssText="position:fixed;top:10px;right:12px;z-index:99990;padding:5px 10px;background:rgba(30,30,50,0.7);color:rgba(200,210,230,0.8);border:1px solid rgba(100,100,140,0.3);border-radius:6px;font:500 11px system-ui,sans-serif;text-decoration:none;opacity:0.6;cursor:pointer;backdrop-filter:blur(6px);transition:all .15s";a.onmouseover=function(){this.style.opacity="1";this.style.background="rgba(239,68,68,0.85)";this.style.color="white"};a.onmouseout=function(){this.style.opacity="0.6";this.style.background="rgba(30,30,50,0.7)";this.style.color="rgba(200,210,230,0.8)"};document.body.appendChild(a)})()</script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<script>(function(){if(document.getElementById("weval-gl"))return;var p=window.location.pathname;var pub=["/","/index.html","/wevia.html","/wevia-widget.html","/enterprise-model.html","/wevia","/login","/api/"];var isPub=pub.some(function(x){return p===x||p.indexOf("/api/")===0;});if(isPub)return;var a=document.createElement("a");a.id="weval-gl";a.href="/logout";a.textContent="Logout";a.style.cssText="position:fixed;top:10px;right:12px;z-index:99990;padding:5px 10px;background:rgba(30,30,50,0.7);color:rgba(200,210,230,0.8);border:1px solid rgba(100,100,140,0.3);border-radius:6px;font:500 11px system-ui,sans-serif;text-decoration:none;opacity:0.6;cursor:pointer;backdrop-filter:blur(6px);transition:all .15s";a.onmouseover=function(){this.style.opacity="1";this.style.background="rgba(239,68,68,0.85)";this.style.color="white"};a.onmouseout=function(){this.style.opacity="0.6";this.style.background="rgba(30,30,50,0.7)";this.style.color="rgba(200,210,230,0.8)"};document.body.appendChild(a)})()</script><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -13,21 +13,6 @@
<div class="hdr"><h1>🐳 WEVIA Docker Hub</h1><span class="badge">SOVEREIGN</span></div>
<div class="grid"><div class="card"><h3><span class="dot"></span>17 Containers</h3><p>Gitea, n8n, Qdrant, SearXNG, Twenty...</p></div><div class="card"><h3><span class="dot"></span>Compose Stack</h3><p>Orchestration multi-service</p></div><div class="card"><h3><span class="dot"></span>Auto-Restart</h3><p>Watchdog + healthcheck + auto-heal</p></div><div class="card"><h3><span class="dot"></span>Volumes</h3><p>Persistent data, backup GOLD vault</p></div></div>
<div style="padding:20px;text-align:center;color:#475569;font-size:11px">WEVIA {title} Hub — Sovereign Infrastructure</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -81,21 +81,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#ef4444;text-transform:uppercase;let
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -113,21 +113,6 @@ async function send(){
}catch(e){typing.remove();addMsg('Erreur de connexion','bot')}
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -74,21 +74,6 @@ async function sendWATemplate(){
document.getElementById('wa-result').innerHTML=d.ok?'<span style="color:#25D366">✅ Template envoyé!</span>':'<span style="color:#ff4444">❌ '+JSON.stringify(d.response?.error?.message||d.error)+'</span>';
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -102,21 +102,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#7c3aed;text-transform:uppercase;let
}catch(e){}
})();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -111,22 +111,7 @@ function doLogin(){
xhr.send();
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -217,22 +217,7 @@ setTimeout(tick,1500);setInterval(tick,30000);
})();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -433,22 +433,7 @@ if (document.readyState === 'loading') document.addEventListener('DOMContentLoad
else setTimeout(initCharts, 500);
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -13,21 +13,6 @@
<div class="hdr"><h1>🐙 WEVIA GitHub Hub</h1><span class="badge">SOVEREIGN</span></div>
<div class="grid"><div class="card"><h3><span class="dot"></span>Repositories</h3><p>15 repos surveillés, dual push SSH+HTTPS</p></div><div class="card"><h3><span class="dot"></span>Actions CI/CD</h3><p>Workflows automatisés, NonReg</p></div><div class="card"><h3><span class="dot"></span>PAT Monitor</h3><p>SSH ed25519 déployé, 0 expiration</p></div><div class="card"><h3><span class="dot"></span>Gitea Backup</h3><p>Mirror automatique sur Gitea local</p></div></div>
<div style="padding:20px;text-align:center;color:#475569;font-size:11px">WEVIA {title} Hub — Sovereign Infrastructure</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -84,21 +84,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#10b981;text-transform:uppercase;let
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -85,21 +85,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#8b5cf6;text-transform:uppercase;let
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -13,21 +13,6 @@
<div class="hdr"><h1>🖥️ WEVIA Hetzner Hub</h1><span class="badge">SOVEREIGN</span></div>
<div class="grid"><div class="card"><h3><span class="dot"></span>S204 Primary</h3><p>204.168.152.13 — 150G, 32GB RAM</p></div><div class="card"><h3><span class="dot"></span>S95 WEVADS</h3><p>95.216.167.89 — Arsenal+MTAs</p></div><div class="card"><h3><span class="dot"></span>API Cloud</h3><p>Token Hetzner, provisioning auto</p></div><div class="card"><h3><span class="dot"></span>Firewall</h3><p>Rules SSH+HTTP, CrowdSec intégré</p></div></div>
<div style="padding:20px;text-align:center;color:#475569;font-size:11px">WEVIA {title} Hub — Sovereign Infrastructure</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -25,21 +25,6 @@ p.sub{color:#64748b;margin-bottom:32px;font-size:14px}
<a class="card" href="https://huggingface.co/models" target="_blank"><h3>&#129302; Models</h3><p>Explorer modeles — Qwen, Llama, Mistral</p><span class="tag" style="background:rgba(167,139,250,.12);color:#a78bfa">EXPLORE</span></a>
<a class="card" href="https://huggingface.co/spaces" target="_blank"><h3>&#127912; Spaces</h3><p>Apps Gradio/Streamlit hebergees</p><span class="tag" style="background:rgba(34,211,238,.12);color:#22d3ee">SPACES</span></a>
<a class="card" href="/gpu-hub.html"><h3>&#9889; Fine-tuning</h3><p>Colab A100 + dataset HF → WEVIA model</p><span class="tag" style="background:rgba(118,185,0,.12);color:#76b900">COMPUTE</span></a>
</div></div><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
</div></div><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -86,21 +86,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#ef4444;text-transform:uppercase;let
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -44,21 +44,6 @@ p.sub{color:#64748b;margin-bottom:32px;font-size:14px}
<a class="card" href="/api/supervisor-state.json"><h3>&#128200; Supervisor Live</h3><p>État temps réel — L99, NonReg, Docker, Disk, Arena, Blade</p><span class="tag t3">LIVE</span></a>
<a class="card" href="/ops-center.html"><h3>&#128187; Ops Center</h3><p>Dashboard opérationnel S204 — monitoring complet</p><span class="tag t1">OPS</span></a>
<a class="card" href="/l99-saas.html"><h3>&#128202; L99 Dashboard</h3><p>957/957 tests, 6σ, screenshots, vidéos, layers</p><span class="tag t2">L99</span></a>
</div></div><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
</div></div><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -207,71 +207,6 @@ async function send(){
busy=false;
}
</script>
<script>(function(){var p=window.location.pathname;var h=window.location.href;/* RESTORE after auth: if we land on / and sessionStorage has target */if((p==="/"||p==="/index.html")&&!window.location.search){var t=sessionStorage.getItem("weval_sso_target");if(t&&t!=="/"&&t!=="/index.html"&&t!==h){sessionStorage.removeItem("weval_sso_target");window.location.replace(t);return;}}/* PUBLIC pages that should NOT trigger redirect save */var pub=["/","/index.html","/wevia.html","/wevia-widget.html","/enterprise-model.html","/wevia","/login.html","/api/","/outpost.goauthentik.io"];var isPub=pub.some(function(x){return p===x||p.indexOf("/api/")===0||p.indexOf("/outpost.")===0||p.indexOf("/flows/")===0||p.indexOf("/if/")===0||p.indexOf("/static/")===0||p.indexOf("/media/")===0;});/* SAVE current URL for all non-public pages */if(!isPub&&p!=="/"){sessionStorage.setItem("weval_sso_target",h);}/* LOGOUT BUTTON on non-public pages */if(document.getElementById("weval-global-logout")||isPub)return;var a=document.createElement("a");a.id="weval-global-logout";a.href="/outpost.goauthentik.io/sign_out";a.innerHTML='<a href=\"/agents-archi.html\" style=\"color:#06b6d4;text-decoration:none;padding:0 6px;font-size:13px\">Archi 3D</a> Logout';a.style.cssText="position:fixed;top:10px;right:12px;z-index:99990;padding:5px 10px;background:rgba(30,30,50,0.7);color:rgba(200,210,230,0.8);border:1px solid rgba(100,100,140,0.3);border-radius:6px;font:500 11px system-ui,sans-serif;text-decoration:none;opacity:0.6;cursor:pointer;backdrop-filter:blur(6px);transition:all .15s";a.onmouseover=function(){this.style.opacity="1";this.style.background="rgba(239,68,68,0.85)";this.style.color="white";this.style.borderColor="rgba(239,68,68,0.5)"};a.onmouseout=function(){this.style.opacity="0.6";this.style.background="rgba(30,30,50,0.7)";this.style.color="rgba(200,210,230,0.8)";this.style.borderColor="rgba(100,100,140,0.3)"};document.body.appendChild(a)})()</script><script src="/api/live-stats.js"></script>
<!-- WAVE 160 — Unified Pipeline Live Overlay -->
<div id="unifiedLiveOverlay" style="position:fixed;bottom:80px;right:12px;width:280px;max-height:calc(100vh - 120px);overflow-y:auto;background:linear-gradient(135deg,rgba(10,14,26,0.94),rgba(30,30,60,0.92));border:1px solid rgba(6,182,212,0.4);border-radius:10px;padding:12px;backdrop-filter:blur(14px);z-index:9999;font:600 10px Nunito,system-ui;color:#e2e8f0;box-shadow:0 4px 30px rgba(0,0,0,0.5)">
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(100,116,139,0.3)">
<div style="font:900 11px Orbitron,system-ui;color:#06b6d4;letter-spacing:1px">🔴 <b id=closeLive style=cursor:pointer;margin-right:6px;color:gray onclick=unifiedLiveOverlay.remove()>x</b>UNIFIED LIVE</div>
<div id="ulo-ts" style="font-size:9px;color:#64748b"></div>
</div>
<div id="ulo-body" style="font-size:10px;line-height:1.5">Loading...</div>
</div>
<script>
(function(){
const U='/api/weval-unified-pipeline.php';
async function tick(){
try{
const r=await fetch(U,{cache:'no-cache'});
if(!r.ok) return;
/* HTML_GUARD_V2_BATCH */ const _t_d=await r.text(); const d; {var _q=(_t_d||"").trim();if(_q.startsWith("<!DOCTYPE")||_q.startsWith("<html")){d={error:"[HTTP "+(r.status||"?")+"] Backend indisponible",isHtmlError:true};}else{try{d=JSON.parse(_q)}catch(e){d={error:"[JSON] "+e.message}}}}
const body=document.getElementById('ulo-body');
const ts=document.getElementById('ulo-ts');
if(!body) return;
const h=d.l99.health||'?';
const hc={GREEN:'#10b981',YELLOW:'#f59e0b',RED:'#ef4444'}[h]||'#64748b';
let html='';
html+='<div style="background:'+hc+'15;border-left:3px solid '+hc+';padding:6px;margin-bottom:6px;border-radius:4px">';
html+='<b style="color:'+hc+'">● '+h+'</b> L99 <b>'+d.l99.pass+'/'+d.l99.total+'</b><br>';
html+='<span style="color:#94a3b8">Disk '+d.system.disk_pct+'% · Docker '+d.system.docker_count+' · Crons '+d.system.cron_count+'</span>';
html+='</div>';
html+='<div style="display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px">';
html+='<div style="background:rgba(6,182,212,0.1);border:1px solid rgba(6,182,212,0.3);border-radius:5px;padding:5px"><div style="font:800 9px Orbitron;color:#06b6d4">SOVEREIGN</div><div><b>'+d.providers.count+'</b> providers @0€<br><b>'+d.ollama.models+'</b> Ollama<br><b>'+d.qdrant.collections.length+'</b> Qdrant</div></div>';
html+='<div style="background:rgba(139,92,246,0.1);border:1px solid rgba(139,92,246,0.3);border-radius:5px;padding:5px"><div style="font:800 9px Orbitron;color:#8b5cf6">PAPERCLIP</div><div><b>'+d.goals.length+'</b> goals<br><b>'+d.projects.length+'</b> projects<br><b>'+d.routines.length+'</b> routines</div></div>';
html+='</div>';
html+='<div style="background:rgba(245,158,11,0.1);border:1px solid rgba(245,158,11,0.3);border-radius:5px;padding:5px;margin-bottom:6px"><div style="font:800 9px Orbitron;color:#f59e0b">ETHICA</div><div><b>'+(d.ethica.hcps_validated/1000).toFixed(0)+'K</b> HCPs validated · '+d.ethica.coverage.join(' · ')+'</div></div>';
const rpa=d.routines_per_agent||{};
const top=Object.entries(rpa).sort((a,b)=>b[1]-a[1]).slice(0,6);
if(top.length){
html+='<div style="font:800 9px Orbitron;color:#10b981;margin-bottom:4px;margin-top:6px">TOP AGENTS</div>';
top.forEach(([n,c])=>{
html+='<div style="display:flex;justify-content:space-between;padding:2px 4px;background:rgba(16,185,129,0.05);border-radius:3px;margin-bottom:2px"><span>'+n+'</span><b style="color:#10b981">'+c+'</b></div>';
});
}
html+='<div style="margin-top:6px;padding-top:6px;border-top:1px solid rgba(100,116,139,0.3);font-size:9px;color:#64748b;text-align:center">auto-refresh 30s · <a href="/wevia-master.html" style="color:#06b6d4">Master</a> · <a href="/agents-archi.html" style="color:#06b6d4">Archi</a> · <a href="/wevia-meeting-rooms.html" style="color:#06b6d4">Rooms</a></div>';
body.innerHTML=html;
if(ts) ts.textContent=new Date().toLocaleTimeString('fr-FR',{hour:'2-digit',minute:'2-digit',second:'2-digit'});
}catch(e){ console.warn('ulo fail',e); }
}
setTimeout(tick,1500);
setInterval(tick,30000);
})();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<script>(function(){var p=window.location.pathname;var h=window.location.href;/* RESTORE after auth: if we land on / and sessionStorage has target */if((p==="/"||p==="/index.html")&&!window.location.search){var t=sessionStorage.getItem("weval_sso_target");if(t&&t!=="/"&&t!=="/index.html"&&t!==h){sessionStorage.removeItem("weval_sso_target");window.location.replace(t);return;}}/* PUBLIC pages that should NOT trigger redirect save */var pub=["/","/index.html","/wevia.html","/wevia-widget.html","/enterprise-model.html","/wevia","/login.html","/api/","/outpost.goauthentik.io"];var isPub=pub.some(function(x){return p===x||p.indexOf("/api/")===0||p.indexOf("/outpost.")===0||p.indexOf("/flows/")===0||p.indexOf("/if/")===0||p.indexOf("/static/")===0||p.indexOf("/media/")===0;});/* SAVE current URL for all non-public pages */if(!isPub&&p!=="/"){sessionStorage.setItem("weval_sso_target",h);}/* LOGOUT BUTTON on non-public pages */if(document.getElementById("weval-global-logout")||isPub)return;var a=document.createElement("a");a.id="weval-global-logout";a.href="/outpost.goauthentik.io/sign_out";a.innerHTML='<a href=\"/agents-archi.html\" style=\"color:#06b6d4;text-decoration:none;padding:0 6px;font-size:13px\">Archi 3D</a> Logout';a.style.cssText="position:fixed;top:10px;right:12px;z-index:99990;padding:5px 10px;background:rgba(30,30,50,0.7);color:rgba(200,210,230,0.8);border:1px solid rgba(100,100,140,0.3);border-radius:6px;font:500 11px system-ui,sans-serif;text-decoration:none;opacity:0.6;cursor:pointer;backdrop-filter:blur(6px);transition:all .15s";a.onmouseover=function(){this.style.opacity="1";this.style.background="rgba(239,68,68,0.85)";this.style.color="white";this.style.borderColor="rgba(239,68,68,0.5)"};a.onmouseout=function(){this.style.opacity="0.6";this.style.background="rgba(30,30,50,0.7)";this.style.color="rgba(200,210,230,0.8)";this.style.borderColor="rgba(100,100,140,0.3)"};document.body.appendChild(a)})()</script><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -44,22 +44,7 @@ a.classList.add('active');
});
});
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -383,22 +383,7 @@ setInterval(()=>{
}).catch(()=>{});
},30000);
</script>
<script src="/api/live-stats.js"></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -248,22 +248,7 @@ fetchData();
setInterval(fetchData,60000);
render();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -140,21 +140,6 @@ function openImg(url){var o=document.createElement('div');o.className='overlay';
init();
setInterval(init,120000);
</script>
<script src=/api/l99-showss-override.js></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<script src=/api/l99-showss-override.js></script><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -237,22 +237,7 @@ setTimeout(tick,1500);setInterval(tick,30000);
})();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -251,21 +251,6 @@ for(let[cat,data]of Object.entries(SCREENS)){
if(el)el.querySelector('.v').textContent=data.items.length;
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -82,21 +82,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#22c55e;text-transform:uppercase;let
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -136,22 +136,7 @@ setTimeout(tick,1500);setInterval(tick,30000);
})();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -13,21 +13,6 @@
<div class="hdr"><h1>⚡ WEVIA n8n Hub</h1><span class="badge">SOVEREIGN</span></div>
<div class="grid"><div class="card"><h3><span class="dot"></span>Workflows</h3><p>5 workflows automatisés</p></div><div class="card"><h3><span class="dot"></span>Triggers</h3><p>Webhooks, cron, events</p></div><div class="card"><h3><span class="dot"></span>Integrations</h3><p>Email, Slack, API custom</p></div><div class="card"><h3><span class="dot"></span>Monitoring</h3><p>Uptime Kuma intégré</p></div></div>
<div style="padding:20px;text-align:center;color:#475569;font-size:11px">WEVIA {title} Hub — Sovereign Infrastructure</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -74,21 +74,6 @@ h2{padding:12px 40px 0;font-size:15px;color:#eab308;text-transform:uppercase;let
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -86,21 +86,6 @@ h2{padding:8px 40px 0;font-size:16px;color:#6366f1;text-transform:uppercase;lett
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -892,22 +892,7 @@ function App(){
ReactDOM.createRoot(document.getElementById("root")).render(h(App,null));
</script>
<script defer src=/assets/manager-enhance.js></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.json()).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<script defer src=/assets/manager-enhance.js></script><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -13,21 +13,6 @@
<div class="hdr"><h1>📎 WEVIA Paperclip Hub</h1><span class="badge">SOVEREIGN</span></div>
<div class="grid"><div class="card"><h3><span class="dot"></span>669 Agents Fleet</h3><p>Task management autonome</p></div><div class="card"><h3><span class="dot"></span>11 Projets</h3><p>WEVIA Router, L99, Ethica...</p></div><div class="card"><h3><span class="dot"></span>902 Skills</h3><p>Compétences injectées</p></div><div class="card"><h3><span class="dot"></span>Auto-Run</h3><p>Cron trigger */4h</p></div></div>
<div style="padding:20px;text-align:center;color:#475569;font-size:11px">WEVIA {title} Hub — Sovereign Infrastructure</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -110,21 +110,6 @@ h1{font-family:Orbitron;font-size:28px;color:#8b5cf6;margin-bottom:8px;letter-sp
</div>
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -13,21 +13,6 @@
<div class="hdr"><h1>🔷 WEVIA Qdrant Hub</h1><span class="badge">SOVEREIGN</span></div>
<div class="grid"><div class="card"><h3><span class="dot"></span>16,207+ Vecteurs</h3><p>Base vectorielle souveraine</p></div><div class="card"><h3><span class="dot"></span>Collections</h3><p>KB, skills, agents, wiki</p></div><div class="card"><h3><span class="dot"></span>Semantic Search</h3><p>Recherche par similarité</p></div><div class="card"><h3><span class="dot"></span>Auto-Learn</h3><p>Injection continue via crons</p></div></div>
<div style="padding:20px;text-align:center;color:#475569;font-size:11px">WEVIA {title} Hub — Sovereign Infrastructure</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -144,21 +144,6 @@ setTimeout(tick,1500);setInterval(tick,30000);
<!-- NL-AutoWire-badge-v1 -->
<a href="/nl-autowire-status.html" id="nlAutowireBadge" style="position:fixed;bottom:8px;right:8px;background:#1a3d2c;color:#56d364;padding:4px 10px;border-radius:12px;font-size:0.78em;font-family:-apple-system,sans-serif;text-decoration:none;z-index:99999;border:1px solid rgba(86,211,100,0.5);box-shadow:0 2px 8px rgba(0,0,0,0.3);">NL-AutoWire &check;</a>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -51,21 +51,6 @@
<!-- NL-AutoWire-badge-v1 -->
<a href="/nl-autowire-status.html" id="nlAutowireBadge" style="position:fixed;bottom:8px;right:8px;background:#1a3d2c;color:#56d364;padding:4px 10px;border-radius:12px;font-size:0.78em;font-family:-apple-system,sans-serif;text-decoration:none;z-index:99999;border:1px solid rgba(86,211,100,0.5);box-shadow:0 2px 8px rgba(0,0,0,0.3);">NL-AutoWire &check;</a>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -134,21 +134,6 @@ fetch('/api/agents-full-count.php').then(r=>r.text().then(t=>{/* HTML_GUARD_V2_B
</div>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -304,21 +304,6 @@ function S(v){cS=v.toLowerCase();R()}R();
<a href="/keys-hub.html" style="display:block;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:14px;text-decoration:none"><div style="font-size:15px;font-weight:700;color:#10b981">🔐 Keys Hub</div><div style="font-size:12px;color:#94a3b8">Vaultwarden, secrets, SSL, sessions</div><span style="display:inline-block;margin-top:6px;font-size:10px;padding:2px 8px;background:rgba(16,185,129,.15);color:#10b981;border-radius:6px">INTERNE</span></a>
</div></div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -119,21 +119,6 @@ footer a{color:var(--a);text-decoration:none}
<footer><span>© 2026 WEVAL Consulting — Trust Center v1.0</span><a href="/">Retour au site</a></footer>
<script src="/weval-audit-reco.js"></script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -48,21 +48,6 @@
<a href="/medreach-campaign.html" class="card"><h3>📋 Campaign Manager</h3><p>Gestion campagnes</p><span class="badge int">INTERNE</span></a>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -170,22 +170,7 @@ td:first-child{color:var(--t1);font-weight:500}
WEVADS Performance by <a href="https://weval-consulting.com">WEVAL Consulting</a> — Données réelles PostgreSQL adx_system<br>
Dernière mise à jour : 30 mars 2026 • Zéro simulation, zéro benchmark inventé
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -349,22 +349,7 @@ function showCat(cat){
}
loadStats();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -224,22 +224,7 @@ function renderMd(text){
return text;
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -108,21 +108,6 @@ catch(e){document.getElementById('ld').classList.remove('on');rMsg('assistant','
gen=false;document.getElementById('sb').disabled=false;inp.focus()}
async function health(){try{var r=await fetch('/api/wevia-master-api.php?health',{signal:AbortSignal.timeout(5e3)});/* HTML_GUARD_V2_BATCH */ var _t_d=await r.text(); var d; {var _q=(_t_d||"").trim();if(_q.startsWith("<!DOCTYPE")||_q.startsWith("<html")){d={error:"[HTTP "+(r.status||"?")+"] Backend indisponible",isHtmlError:true};}else{try{d=JSON.parse(_q)}catch(e){d={error:"[JSON] "+e.message}}}}document.getElementById('hd').style.background=d.status==='ok'?'var(--green)':'var(--red)';document.getElementById('hp').textContent=d.primary||'cerebras-235B'}catch(e){document.getElementById('hd').style.background='var(--red)'}}
health();setInterval(health,30000);rSb();document.getElementById('inp').focus();
</script><script src="/api/live-stats.js"></script><script src="/api/live-stats.js"></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
</script><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -106,21 +106,6 @@ window.onerror = function(msg) {
if (el) { el.style.display = 'block'; el.textContent += msg + '\n'; }
};
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -57,22 +57,7 @@
<p>&copy; 2023 WEVIA Master Autonomous</p>
</footer>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -457,22 +457,7 @@ setTimeout(tick,1500);setInterval(tick,30000);
})();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -185,22 +185,7 @@ D.forEach((d,i)=>{const y=28+d.y*(H()-36);cx.strokeStyle=d.c+'15';cx.lineWidth=.
A.forEach(a=>{a.x+=(a.tx-a.x)*.015;if(Math.abs(a.tx-a.x)<.006)a.tx=.1+Math.random()*.78;const d=D[a.di],px=a.x*W(),py=28+a.y*(H()-36),b=Math.sin(t*.003+a.ph)*1.2,w=Math.sin(t*.006+a.ph);cx.fillStyle=d.c+'08';cx.beginPath();cx.arc(px,py+b,a.sz*2.2,0,Math.PI*2);cx.fill();cx.fillStyle=d.c+'b0';cx.beginPath();cx.arc(px,py+b,a.sz,0,Math.PI*2);cx.fill();cx.fillStyle=d.c+'d0';cx.beginPath();cx.arc(px,py-a.sz*.9+b,a.sz*.55,0,Math.PI*2);cx.fill();cx.strokeStyle=d.c+'70';cx.lineWidth=.8;cx.beginPath();cx.moveTo(px-1.2,py+a.sz+b);cx.lineTo(px-1.2+w*2,py+a.sz+3.5+b);cx.stroke();cx.beginPath();cx.moveTo(px+1.2,py+a.sz+b);cx.lineTo(px+1.2-w*2,py+a.sz+3.5+b);cx.stroke()});
document.getElementById('hA').textContent=A.length;document.getElementById('hD').textContent=D.length;requestAnimationFrame(fr)};fr(0)}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{var q=(t||'').trim();if(q.startsWith('<!DOCTYPE')||q.startsWith('<html')){return{error:'[HTTP '+r.status+']',isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:'JSON '+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -143,22 +143,7 @@ D.forEach((d,i)=>{const y=28+d.y*(H()-36);cx.strokeStyle=d.c+'15';cx.lineWidth=.
A.forEach(a=>{a.x+=(a.tx-a.x)*.015;if(Math.abs(a.tx-a.x)<.006)a.tx=.1+Math.random()*.78;const d=D[a.di],px=a.x*W(),py=28+a.y*(H()-36),b=Math.sin(t*.003+a.ph)*1.2,w=Math.sin(t*.006+a.ph);cx.fillStyle=d.c+'08';cx.beginPath();cx.arc(px,py+b,a.sz*2.2,0,Math.PI*2);cx.fill();cx.fillStyle=d.c+'b0';cx.beginPath();cx.arc(px,py+b,a.sz,0,Math.PI*2);cx.fill();cx.fillStyle=d.c+'d0';cx.beginPath();cx.arc(px,py-a.sz*.9+b,a.sz*.55,0,Math.PI*2);cx.fill();cx.strokeStyle=d.c+'70';cx.lineWidth=.8;cx.beginPath();cx.moveTo(px-1.2,py+a.sz+b);cx.lineTo(px-1.2+w*2,py+a.sz+3.5+b);cx.stroke();cx.beginPath();cx.moveTo(px+1.2,py+a.sz+b);cx.lineTo(px+1.2-w*2,py+a.sz+3.5+b);cx.stroke()});
document.getElementById('hA').textContent=A.length;document.getElementById('hD').textContent=D.length;requestAnimationFrame(fr)};fr(0)}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -66,21 +66,6 @@ new Chart(document.getElementById('caps'),{type:'bar',data:{labels:['Actions ser
{label:'GPT-4o $20',data:[30,20,0,10,10,0,0,80,80,90,20],backgroundColor:'#6b7280'}
]},options:{responsive:true,maintainAspectRatio:false,indexAxis:'y',plugins:{legend:{labels:{color:'#ccc',font:{size:11}}}},scales:{x:{max:100,ticks:{color:tc,callback:v=>v+'%'},grid:{color:gc}},y:{ticks:{color:tc,font:{size:10}},grid:{display:false}}}}});
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -207,22 +207,7 @@ ZERO dependance externe position 1 | GPU-first | 100% Souverain</div>
<p>WEVIA IA Cognitive v39 — WEVAL Consulting © 2026 | 120+ fixes | Git: 26936c8 | GOLD: v40</p>
<p><a href="https://weval-consulting.com/wevia">Fullscreen</a> · <a href="https://weval-consulting.com">Widget</a> · <a href="https://weval-consulting.com/products/">Products</a> · <a href="/wevia-ia/kb-global.php">KB Import</a> · <a href="/wevia-ia/wevia-dashboard.html">System Health</a></p>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -50,21 +50,6 @@
<a href="/solution-finder.html" class="card"><h3>🔍 Solution Finder</h3><p>Trouveur de solutions</p><span class="badge int">INTERNE</span></a>
</div>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -2515,22 +2515,7 @@ function addSmartThinkSteps(query) {
</div><!-- /main-content -->
</div><!-- /app-layout -->
<script defer src=/assets/wevia-qp.js></script><link rel=stylesheet href=/assets/wevia-qp.css><script defer src=/js/wevia-sse-override.js></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<script defer src=/assets/wevia-qp.js></script><link rel=stylesheet href=/assets/wevia-qp.css><script defer src=/js/wevia-sse-override.js></script><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -926,22 +926,7 @@ textarea:focus{box-shadow:0 0 0 2px rgba(100,220,160,0.3),0 0 20px rgba(100,220,
document.head.appendChild(s);
var d=document.createElement('div');d.id='wux';document.body.appendChild(d);
})();
</script><script defer src="wevia-claude.js?v=2"></script><!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
</script><script defer src="wevia-claude.js?v=2"></script><!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -363,22 +363,7 @@ const _origAddA = typeof addMsg === 'function' ? addMsg : null;
</script>
<script src="/js/wevia-artifact-renderer.js"></script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -606,233 +606,6 @@ var _lastLive='';function checkNotif(){var live=RM.filter(function(r){return r._
var _hist=[];function addHist(msg){_hist.unshift({t:new Date().toLocaleTimeString('fr-FR',{hour:'2-digit',minute:'2-digit'}),m:msg});if(_hist.length>5)_hist.pop();}
</script><div id="wLeg" ondblclick="this.remove()" onclick="if(event.target.dataset.cls)this.remove()" style="position:fixed;bottom:6px;left:50%;transform:translateX(-50%);display:flex;gap:8px;padding:3px 12px;background:#ffffffcc;backdrop-filter:blur(4px);border-radius:6px;border:1px solid #e2e8f0;font:600 7px Nunito,sans-serif;color:#64748b;z-index:90;white-space:nowrap"><span style="color:#059669">Strategy</span><span style="color:#3b82f6">Infra</span><span style="color:#10b981">Dev</span><span style="color:#ef4444">Secu</span><span style="color:#f59e0b">Biz</span><span style="color:#8b5cf6">IA</span><span style="color:#64748b">Transit</span><span style="color:#22c55e;font-size:8px">&#9679; LIVE</span></div>
<div id="agentPanel" style="display:none;position:fixed;right:0;top:0;bottom:0;width:300px;background:#fff;box-shadow:-4px 0 20px #0002;z-index:80;padding:16px;overflow-y:auto;border-left:3px solid #059669;font:13px Nunito"><button onclick="this.parentElement.style.display='none'" style="float:right;border:none;background:none;font-size:18px;cursor:pointer"></button><div id="apC"></div></div>
<script src="/api/live-stats.js"></script>
<!-- WAVE 158 — LIVE DATA OVERLAY: meeting rooms as real operational center -->
<div id="liveOpsPanel" onclick="if(event.target.dataset.cls)this.remove()" style="position:fixed;top:60px;right:8px;width:260px;max-height:calc(100vh - 80px);overflow-y:auto;background:linear-gradient(135deg,rgba(255,255,255,0.96),rgba(245,250,255,0.96));border:1px solid rgba(100,116,139,0.3);border-radius:8px;padding:10px;backdrop-filter:blur(12px);z-index:50;font:600 10px Nunito;color:#1e293b;box-shadow:0 4px 24px rgba(0,0,0,0.1)">
<div style="font:900 11px Orbitron;color:#059669;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #e2e8f0">🔴 <b id=closeLive style=cursor:pointer;margin-right:6px;color:gray onclick=liveOpsPanel.remove()>x</b>LIVE OPS DATA</div>
<div id="liveOpsBody" style="font-size:10px;line-height:1.4">Loading...</div>
</div>
<script>
(function(){
const PIPE='/api/weval-unified-pipeline.php';
async function loadOps(){
try{
const r=await fetch(PIPE,{cache:'no-cache'});
if(!r.ok) return;
/* HTML_GUARD_V2_BATCH */ const _t_d=await r.text(); const d; {var _q=(_t_d||"").trim();if(_q.startsWith("<!DOCTYPE")||_q.startsWith("<html")){d={error:"[HTTP "+(r.status||"?")+"] Backend indisponible",isHtmlError:true};}else{try{d=JSON.parse(_q)}catch(e){d={error:"[JSON] "+e.message}}}}
const body=document.getElementById('liveOpsBody');
if(!body) return;
// Map each room to related projects by keyword
const roomProjectMap={
'strat': ['L99 Sovereign','Onboarding'],
'infra': ['Infrastructure','L99 Sovereign'],
'dev': ['L99 Sovereign','Infrastructure'],
'sec': ['Infrastructure'],
'biz': ['Ethica Pharma','B2B Leads','WEVADS Email'],
'ia': ['L99 Sovereign','Onboarding'],
'dir': ['Onboarding','L99 Sovereign'],
'transit': ['WEVADS Email','B2B Leads']
};
const roomLabels={
'strat':'🎯 STRATEGY','infra':'🖥️ INFRA','dev':'⚙️ DEV','sec':'🛡️ SECURITY',
'biz':'💼 BUSINESS','ia':'🧠 IA','dir':'🎯 DIRECTOR','transit':'🔄 TRANSIT'
};
let html='';
// L99 stat top
const l=d.l99; const h=l.health||'?';
const hc={GREEN:'#10b981',YELLOW:'#f59e0b',RED:'#ef4444'}[h]||'#64748b';
html+='<div style="background:'+hc+'15;border-left:3px solid '+hc+';padding:6px;margin-bottom:8px;border-radius:4px"><b style="color:'+hc+'">●</b> L99 <b>'+l.pass+'/'+l.total+'</b> '+h+'<br>Disk '+d.system.disk_pct+'% · Docker '+d.system.docker_count+' · Crons '+d.system.cron_count+'</div>';
// Per room
for(const [rid,labels] of Object.entries(roomLabels)){
const projs = roomProjectMap[rid]||[];
const projData = d.projects.filter(p => projs.includes(p.name));
const totalR = projData.reduce((s,p)=>s+(p.routines_count||0),0);
const totalActive = projData.filter(p=>p.status==='active').length;
html += '<div style="background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:6px;margin-bottom:5px">';
html += '<div style="font:800 10px Orbitron;color:#1e293b">'+labels+'</div>';
if(projData.length){
projData.forEach(p => {
html += '<div style="font-size:9px;color:#64748b;margin-top:2px">📋 '+p.name+' · <b style="color:#059669">'+p.routines_count+' routines</b></div>';
});
} else {
html += '<div style="font-size:9px;color:#94a3b8">No projects linked</div>';
}
html += '</div>';
}
// Goals bottom
html += '<div style="margin-top:8px;padding-top:6px;border-top:1px solid #e2e8f0"><b style="color:#7c3aed">🎯 STRATEGIC GOALS ('+d.goals.length+')</b></div>';
d.goals.forEach(g => {
html += '<div style="font-size:9px;padding:3px 0;color:#475569">▸ '+g.title+'</div>';
});
// Top agents by routine count
const rpa = d.routines_per_agent||{};
const top5 = Object.entries(rpa).sort((a,b)=>b[1]-a[1]).slice(0,5);
if(top5.length){
html += '<div style="margin-top:8px;padding-top:6px;border-top:1px solid #e2e8f0"><b style="color:#06b6d4">🤖 TOP AGENTS</b></div>';
top5.forEach(([a,c]) => {
html += '<div style="font-size:9px;padding:2px 0;color:#475569">'+a+' <span style="color:#059669;font-weight:800">'+c+'</span></div>';
});
}
body.innerHTML = html;
}catch(e){ console.warn('ops load fail',e); }
}
setTimeout(loadOps, 1500);
setInterval(loadOps, 10000);
})();
</script>
<!-- WAVE 159 — Multi-Agent Execution Plan panel -->
<div id="execPlanPanel" onclick="if(event.target.dataset.cls)this.remove()" style="position:fixed;bottom:10px;left:200px;right:280px;max-height:280px;background:linear-gradient(135deg,rgba(10,14,26,0.95),rgba(30,30,60,0.92));border:2px solid #10b981;border-radius:10px;padding:12px;backdrop-filter:blur(12px);z-index:60;font:600 10px Nunito;color:#e2e8f0;box-shadow:0 -4px 24px rgba(16,185,129,0.3);display:none">
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:8px">
<div style="font:900 12px Orbitron;color:#10b981"><b style=cursor:pointer;margin-right:6px;color:gray onclick=execPlanPanel.remove()>x</b>PLAN D.ACTION MULTI-AGENT</div>
<div>
<button id="execPlanRun" style="background:linear-gradient(135deg,#10b981,#06b6d4);border:none;color:#fff;padding:6px 16px;border-radius:6px;font:800 10px Orbitron;cursor:pointer;margin-right:6px">🚀 EXÉCUTER VIA MASTER</button>
<button id="execPlanClose" style="background:rgba(100,116,139,0.3);border:1px solid rgba(100,116,139,0.5);color:#e2e8f0;padding:6px 12px;border-radius:6px;font:700 10px Orbitron;cursor:pointer">Fermer</button>
</div>
</div>
<div id="execPlanBody" style="max-height:220px;overflow-y:auto;font-size:10px;line-height:1.5"></div>
</div>
<script>
(function(){
// Open exec plan when clicking a room
let currentRoom = null;
window.openExecPlan = function(roomId, roomLabel){
currentRoom = roomId;
const panel = document.getElementById('execPlanPanel');
const body = document.getElementById('execPlanBody');
if(!panel || !body) return;
// Load pipeline data
fetch('/api/weval-unified-pipeline.php').then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d => {
const roomProjects = {
'strat': ['L99 Sovereign','Onboarding'],
'infra': ['Infrastructure','L99 Sovereign'],
'dev': ['L99 Sovereign','Infrastructure'],
'sec': ['Infrastructure'],
'biz': ['Ethica Pharma','B2B Leads','WEVADS Email'],
'ia': ['L99 Sovereign','Onboarding'],
'dir': ['Onboarding','L99 Sovereign'],
'transit': ['WEVADS Email','B2B Leads']
}[roomId] || [];
const projs = d.projects.filter(p => roomProjects.includes(p.name));
const routines = d.routines.filter(r => roomProjects.includes(r.project));
let html = '<div style="color:#06b6d4;font-weight:800;margin-bottom:6px">' + (roomLabel||roomId).toUpperCase() + ' · ' + routines.length + ' ROUTINES ACTIVES</div>';
html += '<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px">';
projs.forEach(p => {
const pr = routines.filter(r => r.project === p.name);
html += '<div style="background:rgba(6,182,212,0.1);border:1px solid rgba(6,182,212,0.3);padding:6px;border-radius:6px">';
html += '<div style="font:800 10px Orbitron;color:#06b6d4">📋 ' + p.name + '</div>';
html += '<div style="color:#94a3b8;font-size:9px">Lead: <b style="color:#fff">' + (p.lead_agent||'?') + '</b> · ' + p.status + '</div>';
pr.forEach((r,i) => {
const pri = r.priority==='high'?'#ef4444':(r.priority==='medium'?'#f59e0b':'#64748b');
html += '<div style="padding:3px 0;border-top:1px solid rgba(100,116,139,0.2);margin-top:3px">';
html += '<span style="color:' + pri + ';font-weight:800">●</span> ' + r.title;
html += '<div style="color:#64748b;font-size:8px;margin-left:10px">→ ' + (r.agent||'?') + ' · ' + r.priority + '</div>';
html += '</div>';
});
html += '</div>';
});
html += '</div>';
body.innerHTML = html;
panel.style.display = 'block';
});
};
// Close button
document.addEventListener('click', function(e){
if(e.target.id === 'execPlanClose'){
document.getElementById('execPlanPanel').style.display = 'none';
}
if(e.target.id === 'execPlanRun'){
// Trigger Master multi-agent execution
const btn = e.target;
btn.textContent = '⏳ EXÉCUTION EN COURS...';
btn.disabled = true;
fetch('/api/wevia-master-api.php', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
message: 'execute room plan ' + (currentRoom||'strat'),
session: 'meeting-exec-' + Date.now()
})
}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d => {
btn.textContent = '✓ DÉLÉGUÉ À MASTER';
setTimeout(() => {
btn.textContent = '🚀 EXÉCUTER VIA MASTER';
btn.disabled = false;
}, 3000);
// Show result
const body = document.getElementById('execPlanBody');
body.innerHTML = '<div style="padding:12px;background:rgba(16,185,129,0.1);border:1px solid #10b981;border-radius:6px"><b style="color:#10b981">✓ RÉPONSE MASTER:</b><pre style="color:#e2e8f0;font-size:10px;margin-top:8px;white-space:pre-wrap">' + (d.response||'OK').substring(0,1500) + '</pre></div>';
}).catch(e => {
btn.textContent = '❌ ERREUR';
setTimeout(() => { btn.textContent = '🚀 EXÉCUTER VIA MASTER'; btn.disabled = false; }, 3000);
});
}
});
// Make canvas rooms clickable — intercept canvas click and detect which room
setTimeout(function(){
const cv = document.getElementById('c');
if(!cv) return;
cv.addEventListener('click', function(e){
const rect = cv.getBoundingClientRect();
const x = (e.clientX - rect.left);
const y = (e.clientY - rect.top);
if(typeof RM === 'undefined') return;
for(const r of RM){
if(x >= r.x && x <= r.x + r.w && y >= r.y && y <= r.y + r.h){
const label = (r.l||'').replace(/[^a-zA-ZÀ-ÿ ]/g,'').trim();
window.openExecPlan(r.id, label);
return;
}
}
});
}, 2500);
})();
</script>
<script>
// Growth Agent injection into Business room
if(typeof RM!=='undefined'){
var bizRoom=RM.find(function(r){return r.id==='biz'});
if(bizRoom && bizRoom.agents){
bizRoom.agents.push({n:'Growth',role:'Growth Engine Premium',status:'active'});
bizRoom.agents.push({n:'DarkScout',role:'Exploration concurrentielle',status:'active'});
bizRoom.agents.push({n:'SEO',role:'SEO Module Hub',status:'active'});
}
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body></html>

View File

@@ -256,22 +256,7 @@ fetch('/api/meeting-weekly-latest.json').then(r=>r.text().then(t=>{/* HTML_GUARD
if(d.chef_synthesis) document.getElementById('last-strategy').textContent=d.chef_synthesis;
}).catch(()=>{});
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -516,22 +516,7 @@ async function runTask(preset){
} catch(e) { console.error("Agent fleet load error:", e); }
})();
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -110,22 +110,7 @@ function send() {
});
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -215,22 +215,7 @@ async function send(){
// Auto-resize textarea
input.addEventListener('input',function(){this.style.height='auto';this.style.height=Math.min(this.scrollHeight,120)+'px'});
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -261,22 +261,7 @@ el.innerHTML=caps.map(c=>`
</div>`).join('');
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

View File

@@ -294,22 +294,7 @@ if (window !== window.top) {
}
</script>
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- CARTO_REMOVED -->
<!-- /CARTO_BANNER_V1 -->
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More