auto-sync-1710
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
print("Hello, World!")
|
||||
BIN
generated/wevia-img-vision-quick-test-20260422-150805-21ea4a.jpg
Normal file
BIN
generated/wevia-img-vision-quick-test-20260422-150805-21ea4a.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 491 KiB |
@@ -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,"<")}</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,"<") + '</pre>';
|
||||
if (!answer) html += '<div><span class="key">RAW:</span></div><pre>' + rawSample.replace(/</g,"<") + '</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>
|
||||
BIN
proofs/wave267/PROOF-LIVE.png
Normal file
BIN
proofs/wave267/PROOF-LIVE.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 288 KiB |
Reference in New Issue
Block a user