auto-sync-1710

This commit is contained in:
opus
2026-04-22 17:10:03 +02:00
parent a8e8c3347e
commit ecbe33ba1f
6 changed files with 96 additions and 320 deletions

View File

@@ -1,286 +0,0 @@
{
"ts": "2026-04-22T15:05:01+00:00",
"server": "s204",
"s204": {
"load": 7.43,
"uptime": "2026-04-14 11:51:24",
"ram_total_mb": 31335,
"ram_used_mb": 14725,
"ram_free_mb": 16609,
"disk_total": "150G",
"disk_used": "124G",
"disk_free": "20G",
"disk_pct": "87%",
"fpm_workers": 140,
"docker_containers": 19,
"cpu_cores": 8
},
"s95": {
"load": 0.39,
"disk_pct": "83%",
"status": "UP",
"ram_total_mb": 15610,
"ram_free_mb": 12066
},
"pmta": [
{
"name": "SER6",
"ip": "110.239.84.121",
"status": "DOWN"
},
{
"name": "SER7",
"ip": "110.239.65.64",
"status": "DOWN"
},
{
"name": "SER8",
"ip": "182.160.55.107",
"status": "DOWN"
},
{
"name": "SER9",
"ip": "110.239.86.68",
"status": "DOWN"
}
],
"assets": {
"html_pages": 329,
"php_apis": 1075,
"wiki_entries": 2326,
"vault_doctrines": 123,
"vault_sessions": 104,
"vault_decisions": 12
},
"tools": {
"total": 649,
"registry_version": "?"
},
"sovereign": {
"status": "UP",
"providers": [
"Cerebras-fast",
"Cerebras-think",
"Groq",
"Cloudflare-AI",
"Gemini",
"SambaNova",
"NVIDIA-NIM",
"Mistral",
"Groq-OSS",
"HF-Space",
"HF-Router",
"OpenRouter",
"GitHub-Models"
],
"active": 13,
"total": 13,
"primary": "Cerebras-fast",
"cost": "0€"
},
"ethica": {
"total_hcps": 166742,
"with_email": 110737,
"with_phone": 159846,
"gap_email": 56005,
"pct_email": 66.4,
"pct_phone": 95.9,
"by_country": [
{
"country": "DZ",
"hcps": 127343,
"with_email": 78612,
"with_tel": 124087,
"pct_email": 61.7,
"pct_tel": 97.4
},
{
"country": "MA",
"hcps": 19724,
"with_email": 15086,
"with_tel": 18739,
"pct_email": 76.5,
"pct_tel": 95
},
{
"country": "TN",
"hcps": 17796,
"with_email": 15160,
"with_tel": 17020,
"pct_email": 85.2,
"pct_tel": 95.6
},
{
"country": "INTL",
"hcps": 1879,
"with_email": 1879,
"with_tel": 0,
"pct_email": 100,
"pct_tel": 0
}
]
},
"docker": [
{
"name": "weval-docuseal",
"status": "Up 9 seconds",
"ports": ""
},
{
"name": "loki",
"status": "Up 6 days",
"ports": ""
},
{
"name": "listmonk",
"status": "Up 6 days",
"ports": ""
},
{
"name": "plausible-plausible-1",
"status": "Up 5 days",
"ports": ""
},
{
"name": "plausible-plausible-db-1",
"status": "Up 5 days",
"ports": ""
},
{
"name": "plausible-plausible-events-db-1",
"status": "Up 5 days",
"ports": ""
},
{
"name": "n8n-docker-n8n-1",
"status": "Up 6 days",
"ports": ""
},
{
"name": "mattermost-docker-mm-db-1",
"status": "Up 6 days",
"ports": ""
},
{
"name": "mattermost-docker-mattermost-1",
"status": "Up 6 days (healthy)",
"ports": ""
},
{
"name": "twenty",
"status": "Up 6 days",
"ports": ""
},
{
"name": "twenty-redis",
"status": "Up 6 days",
"ports": ""
},
{
"name": "langfuse",
"status": "Up 6 days",
"ports": ""
},
{
"name": "redis-weval",
"status": "Up 8 days",
"ports": ""
},
{
"name": "gitea",
"status": "Up 8 days",
"ports": ""
},
{
"name": "node-exporter",
"status": "Up 8 days",
"ports": ""
},
{
"name": "prometheus",
"status": "Up 8 days",
"ports": ""
},
{
"name": "searxng",
"status": "Up 8 days",
"ports": ""
},
{
"name": "uptime-kuma",
"status": "Up 2 days (healthy)",
"ports": ""
},
{
"name": "vaultwarden",
"status": "Up 8 days (healthy)",
"ports": ""
},
{
"name": "qdrant",
"status": "Up 8 days",
"ports": ""
}
],
"crons": {
"active": 35
},
"git": {
"head": "365ab89ff AUTO-BACKUP 20260422-1705",
"dirty": 0,
"status": "CLEAN"
},
"nonreg": {
"total": 153,
"passed": 153,
"score": "100%"
},
"services": [
{
"name": "DeerFlow",
"port": 3002,
"status": "UP"
},
{
"name": "DeerFlow API",
"port": 8001,
"status": "UP"
},
{
"name": "Qdrant",
"port": 6333,
"status": "UP"
},
{
"name": "Ollama",
"port": 11434,
"status": "UP"
},
{
"name": "Redis",
"port": 6379,
"status": "UP"
},
{
"name": "Sovereign",
"port": 4000,
"status": "UP"
},
{
"name": "SearXNG",
"port": 8080,
"status": "UP"
}
],
"whisper": {
"binary": "COMPILED",
"model": "142MB"
},
"grand_total": 4522,
"health": {
"score": 5,
"max": 6,
"pct": 83
},
"elapsed_ms": 11165
}

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-22T15:05:44+00:00",
"ts": "2026-04-22T15:09:44+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,

View File

@@ -0,0 +1 @@
print("Hello, World!")

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB

View File

@@ -1,52 +1,113 @@
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>PROOF intents_pool</title>
<style>body{font-family:monospace;background:#0b0d15;color:#10b981;padding:30px;font-size:14px}
.box{background:#1e293b;padding:20px;border:2px solid #10b981;border-radius:10px;margin:10px 0}
.key{color:#06b6d4;font-weight:700}
<html><head><meta charset="utf-8"><title>PROOF WAVE-268</title>
<style>
body{font-family:-apple-system,Segoe UI,monospace;background:#0b0d15;color:#e2e8f0;padding:30px;font-size:14px;margin:0;min-height:100vh}
.box{background:#1e293b;padding:18px;border:2px solid #10b981;border-radius:10px;margin:12px 0}
.box.fail{border-color:#ef4444}
.key{color:#06b6d4;font-weight:700;font-size:12px}
.val{color:#fff}
h1{color:#f59e0b}
button{background:#10b981;color:#000;border:0;padding:12px 24px;font-size:16px;font-weight:700;border-radius:8px;cursor:pointer}
h1{color:#f59e0b;margin:0 0 20px 0}
.btn{background:linear-gradient(135deg,#10b981,#06b6d4);color:#000;border:0;padding:14px 28px;font-size:16px;font-weight:800;border-radius:10px;cursor:pointer;box-shadow:0 4px 14px rgba(16,185,129,0.4)}
.btn:hover{transform:scale(1.02)}
.btn:disabled{opacity:.5;cursor:wait}
pre{color:#fff;white-space:pre-wrap;margin:6px 0 0 0;font-size:12px;max-height:300px;overflow:auto;background:#0f172a;padding:10px;border-radius:6px}
.ok{color:#10b981;font-weight:700}
.nok{color:#ef4444;font-weight:700}
#loader{display:none;color:#06b6d4;margin-top:20px;font-weight:700}
</style></head>
<body>
<h1>🏆 WAVE-268 PROOF TEST LIVE</h1>
<p>Clique sur le bouton pour tester les 5 commandes directement dans cette page (pas de cache, pas d intermediaire).</p>
<button onclick="runTests()">▶️ LANCER LES 5 TESTS LIVE</button>
<h1>WAVE-268 PROOF TEST LIVE</h1>
<p style="color:#94a3b8">Teste directement depuis ton navigateur vers le backend WEVIA. Aucun cache, aucun intermediaire.</p>
<button id="runbtn" class="btn" onclick="runTests()">LANCER LES 5 TESTS LIVE</button>
<div id="loader">Running tests...</div>
<div id="results"></div>
<script>
async function runTests() {
const cmds = ["intents_pool", "quelle heure", "multiagent parallele: nonreg + l99 + git", "orchestrate en parallele: ping + nonreg", "cable un intent pour donner date quand on dit date_now. Commande: date"];
const res = document.getElementById("results");
res.innerHTML = "<div class=box>🔄 Running 5 tests via /api/wevia-autonomous.php...</div>";
var btn = document.getElementById("runbtn");
btn.disabled = true;
document.getElementById("loader").style.display = "block";
var res = document.getElementById("results");
res.innerHTML = "";
for (const cmd of cmds) {
const t0 = Date.now();
var cmds = [
"intents_pool",
"quelle heure",
"multiagent parallele: nonreg + l99 + git",
"orchestrate en parallele: ping + nonreg",
"cable un intent pour donner date quand on dit date_now. Commande: date"
];
for (var i = 0; i < cmds.length; i++) {
var cmd = cmds[i];
var t0 = Date.now();
var answer = "";
var engine = "";
var rawSample = "";
var status = "FAIL";
var err = "";
try {
const r = await fetch("/api/wevia-autonomous.php", {
var r = await fetch("/api/wevia-master-api.php", {
method: "POST",
headers: {"Content-Type":"application/json"},
headers: {"Content-Type": "application/json"},
body: JSON.stringify({message: cmd, session: "proof-" + Date.now()})
});
const txt = await r.text();
let answer = "";
let engine = "";
for (const line of txt.split("
")) {
if (line.startsWith("data: ")) {
try {
const j = JSON.parse(line.substring(6));
if (j.type === "answer" && j.text) { answer = j.text; engine = j.engine || ""; break; }
} catch(e){}
var txt = await r.text();
rawSample = txt.substring(0, 300);
// Try parse JSON direct
try {
var j = JSON.parse(txt);
answer = j.content || j.response || j.text || "";
engine = j.tool || j.engine || j.provider || "";
} catch(e) {
// Try parse SSE lines
var lines = txt.split("\n");
for (var k = 0; k < lines.length; k++) {
var line = lines[k];
if (line.indexOf("data: ") === 0) {
try {
var d = JSON.parse(line.substring(6));
if ((d.type === "answer" || d.type === "chunk") && d.text) {
answer = d.text;
engine = d.engine || "";
break;
}
} catch(e2) {}
}
}
}
const elapsed = Date.now() - t0;
const isFake = answer.toLowerCase().includes("intent shell reel") || answer.includes("Soutien technique");
const status = isFake ? "❌ FAKE/FAIL" : "✅ REAL";
res.innerHTML += `<div class="box"><span class="key">CMD:</span> <span class="val">${cmd}</span><br><span class="key">Status:</span> ${status}<br><span class="key">Engine:</span> ${engine}<br><span class="key">Time:</span> ${elapsed}ms<br><span class="key">Response:</span><br><pre style="color:#fff;white-space:pre-wrap">${answer.substring(0,600).replace(/</g,"&lt;")}</pre></div>`;
var isFake = answer.toLowerCase().indexOf("intent shell reel") >= 0
|| answer.indexOf("Soutien technique") >= 0
|| answer.indexOf("Conseils d'affaires") >= 0;
status = answer ? (isFake ? "FAKE/LLM" : "REAL") : "EMPTY";
} catch(e) {
res.innerHTML += `<div class=box style="border-color:#ef4444">❌ ERR: ${e.message}</div>`;
err = e.message;
status = "ERR";
}
var elapsed = Date.now() - t0;
var boxClass = (status === "REAL") ? "box" : "box fail";
var statusClass = (status === "REAL") ? "ok" : "nok";
var html = '<div class="' + boxClass + '">';
html += '<div><span class="key">CMD:</span> <span class="val">' + cmd + '</span></div>';
html += '<div><span class="key">STATUS:</span> <span class="' + statusClass + '">' + status + '</span></div>';
html += '<div><span class="key">ENGINE:</span> <span class="val">' + (engine || "?") + '</span></div>';
html += '<div><span class="key">TIME:</span> <span class="val">' + elapsed + 'ms</span></div>';
if (err) html += '<div><span class="key">ERR:</span> <span class="val">' + err + '</span></div>';
if (answer) html += '<div><span class="key">ANSWER:</span></div><pre>' + answer.substring(0,800).replace(/</g,"&lt;") + '</pre>';
if (!answer) html += '<div><span class="key">RAW:</span></div><pre>' + rawSample.replace(/</g,"&lt;") + '</pre>';
html += '</div>';
res.innerHTML += html;
}
res.innerHTML += "<div class=box>✅ Tests terminés · " + new Date().toLocaleString("fr-FR") + "</div>";
res.innerHTML += '<div class="box" style="border-color:#f59e0b"><b>Tests termines</b> - ' + new Date().toLocaleString("fr-FR") + '</div>';
document.getElementById("loader").style.display = "none";
btn.disabled = false;
}
</script>
</body></html>
</body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB