This commit is contained in:
17
admin.html
17
admin.html
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
17
ai-hub.html
17
ai-hub.html
@@ -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">🗺</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>
|
||||
@@ -25,21 +25,6 @@ p.sub{color:#64748b;margin-bottom:32px;font-size:14px}
|
||||
<a class="card" href="/wevia-master.html"><h3>🤖 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>🔄 Claude Sync</h3><p>Synchronisation conversations Claude ↔ 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>🔑 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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
14
api/blade-tasks/task_20260416_165717_ee56a9.json
Normal file
14
api/blade-tasks/task_20260416_165717_ee56a9.json
Normal 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"
|
||||
}
|
||||
@@ -13,5 +13,5 @@
|
||||
"Run simulation",
|
||||
"CEO insights"
|
||||
],
|
||||
"timestamp": "2026-04-16 16:55:03"
|
||||
"timestamp": "2026-04-16 17:00:01"
|
||||
}
|
||||
6800
api/oss-cache.json
6800
api/oss-cache.json
File diff suppressed because it is too large
Load Diff
@@ -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 👋   | [中文](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 [](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) [](https://agent.xfyun.cn) <div align=\"center\"> [ | [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"
|
||||
}
|
||||
]
|
||||
@@ -1 +1 @@
|
||||
{"ts":"18:56","status":"offline"}
|
||||
{"ts":"19:00","status":"online","cpu":"?%","ram":"?%","ip":"105.159.153.96","uptime":"?","pending":29,"via":"heartbeat"}
|
||||
|
||||
@@ -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 ✓</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">🗺</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>
|
||||
|
||||
@@ -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 ✓</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">🗺</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>
|
||||
|
||||
@@ -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 ✓</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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
17
gpu-hub.html
17
gpu-hub.html
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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>🤖 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>🎨 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>⚡ 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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -44,21 +44,6 @@ p.sub{color:#64748b;margin-bottom:32px;font-size:14px}
|
||||
<a class="card" href="/api/supervisor-state.json"><h3>📈 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>💻 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>📊 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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
17
l99-v2.html
17
l99-v2.html
@@ -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">🗺</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>
|
||||
17
l99.html
17
l99.html
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
17
n8n-hub.html
17
n8n-hub.html
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
@@ -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 ✓</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">🗺</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>
|
||||
|
||||
@@ -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 ✓</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">🗺</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>
|
||||
17
toolhub.html
17
toolhub.html
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -57,22 +57,7 @@
|
||||
<p>© 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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">● 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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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>
|
||||
|
||||
@@ -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">🗺</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
Reference in New Issue
Block a user