diff --git a/api/dashboards-registry.php b/api/dashboards-registry.php new file mode 100644 index 000000000..299c04398 --- /dev/null +++ b/api/dashboards-registry.php @@ -0,0 +1,63 @@ + $name, + 'display' => $display, + 'url' => '/' . $name, + 'category' => $cat, + 'icon' => $icon, + 'color' => $color, + 'size_kb' => round($size/1024, 1), + 'mtime' => date('c', filemtime($f)) + ]; + $out[] = $entry; + if (!isset($byCategory[$cat])) $byCategory[$cat] = 0; + $byCategory[$cat]++; +} + +echo json_encode([ + 'total' => count($out), + 'by_category' => $byCategory, + 'dashboards' => $out, + 'generated' => date('c') +], JSON_UNESCAPED_UNICODE); diff --git a/api/em-kpi-cache.json b/api/em-kpi-cache.json index 40dc3677f..e69de29bb 100644 --- a/api/em-kpi-cache.json +++ b/api/em-kpi-cache.json @@ -1,281 +0,0 @@ -{ - "ts": "2026-04-21T01:30:01+00:00", - "server": "s204", - "s204": { - "load": 1.45, - "uptime": "2026-04-14 11:51:24", - "ram_total_mb": 31335, - "ram_used_mb": 11373, - "ram_free_mb": 19962, - "disk_total": "150G", - "disk_used": "115G", - "disk_free": "30G", - "disk_pct": "80%", - "fpm_workers": 141, - "docker_containers": 19, - "cpu_cores": 8 - }, - "s95": { - "load": 0.12, - "disk_pct": "80%", - "status": "UP", - "ram_total_mb": 15610, - "ram_free_mb": 11919 - }, - "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": 293, - "php_apis": 772, - "wiki_entries": 1884, - "vault_doctrines": 59, - "vault_sessions": 104, - "vault_decisions": 12 - }, - "tools": { - "total": 627, - "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": 161730, - "with_email": 110558, - "with_phone": 155145, - "gap_email": 51172, - "pct_email": 68.4, - "pct_phone": 95.9, - "by_country": [ - { - "country": "DZ", - "hcps": 122337, - "with_email": 78468, - "with_tel": 119394, - "pct_email": 64.1, - "pct_tel": 97.6 - }, - { - "country": "MA", - "hcps": 19720, - "with_email": 15071, - "with_tel": 18733, - "pct_email": 76.4, - "pct_tel": 95 - }, - { - "country": "TN", - "hcps": 17794, - "with_email": 15140, - "with_tel": 17018, - "pct_email": 85.1, - "pct_tel": 95.6 - }, - { - "country": "INTL", - "hcps": 1879, - "with_email": 1879, - "with_tel": 0, - "pct_email": 100, - "pct_tel": 0 - } - ] - }, - "docker": [ - { - "name": "loki", - "status": "Up 4 days", - "ports": "" - }, - { - "name": "listmonk", - "status": "Up 4 days", - "ports": "" - }, - { - "name": "plausible-plausible-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "plausible-plausible-db-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "plausible-plausible-events-db-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "n8n-docker-n8n-1", - "status": "Up 4 days", - "ports": "" - }, - { - "name": "mattermost-docker-mm-db-1", - "status": "Up 4 days", - "ports": "" - }, - { - "name": "mattermost-docker-mattermost-1", - "status": "Up 4 days (healthy)", - "ports": "" - }, - { - "name": "twenty", - "status": "Up 4 days", - "ports": "" - }, - { - "name": "twenty-redis", - "status": "Up 4 days", - "ports": "" - }, - { - "name": "langfuse", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "redis-weval", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "gitea", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "node-exporter", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "prometheus", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "searxng", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "uptime-kuma", - "status": "Up 25 hours (healthy)", - "ports": "" - }, - { - "name": "vaultwarden", - "status": "Up 6 days (healthy)", - "ports": "" - }, - { - "name": "qdrant", - "status": "Up 6 days", - "ports": "" - } - ], - "crons": { - "active": 35 - }, - "git": { - "head": "1c14bce55 auto-sync-0330", - "dirty": 7, - "status": "DIRTY" - }, - "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": 3654, - "health": { - "score": 5, - "max": 6, - "pct": 83 - }, - "elapsed_ms": 10369 -} \ No newline at end of file diff --git a/api/playwright-v102-final/01-wtp-home.png b/api/playwright-v102-final/01-wtp-home.png new file mode 100644 index 000000000..befc5102a Binary files /dev/null and b/api/playwright-v102-final/01-wtp-home.png differ diff --git a/api/playwright-v102-final/02-knowledge-orphans.png b/api/playwright-v102-final/02-knowledge-orphans.png new file mode 100644 index 000000000..139a377b8 Binary files /dev/null and b/api/playwright-v102-final/02-knowledge-orphans.png differ diff --git a/api/playwright-v102-final/page@d7b4d9fe16128d7feb66d19b9c0ea152.webm b/api/playwright-v102-final/page@d7b4d9fe16128d7feb66d19b9c0ea152.webm new file mode 100644 index 000000000..d097ee34b Binary files /dev/null and b/api/playwright-v102-final/page@d7b4d9fe16128d7feb66d19b9c0ea152.webm differ diff --git a/api/playwright-v102-final/results.json b/api/playwright-v102-final/results.json new file mode 100644 index 000000000..9db2ee510 --- /dev/null +++ b/api/playwright-v102-final/results.json @@ -0,0 +1,39 @@ +{ + "tests": [ + { + "test": "wtp_home_v85_card", + "status": "PASS", + "total": "64", + "cats": "8", + "live": "37", + "complete": "100%" + }, + { + "test": "knowledge_orphans_rescue_submodule", + "status": "PASS" + }, + { + "test": "v83_summary_stable", + "status": "PASS", + "total_categories": 8, + "total_kpis": 64, + "ok": 37, + "warn": 27, + "fail": 0, + "wire_needed": 0, + "data_completeness_pct": 100 + }, + { + "test": "multiagent_includes_arch_quality", + "status": "PASS", + "has_arch": true, + "has_11": true + } + ], + "summary": { + "pass": 4, + "fail": 0, + "total": 4 + }, + "ts": "2026-04-21T01:31:04.775Z" +} \ No newline at end of file diff --git a/api/v83-business-kpi-latest.json b/api/v83-business-kpi-latest.json index f41207a43..555f3b197 100644 --- a/api/v83-business-kpi-latest.json +++ b/api/v83-business-kpi-latest.json @@ -1,7 +1,7 @@ { "ok": true, "version": "V83-business-kpi", - "ts": "2026-04-21T01:30:20+00:00", + "ts": "2026-04-21T01:34:03+00:00", "summary": { "total_categories": 8, "total_kpis": 64, diff --git a/api/wired-pending/intent-opus4-orphans_count.php b/api/wired-pending/intent-opus4-orphans_count.php index c0441b976..08aa26201 100644 --- a/api/wired-pending/intent-opus4-orphans_count.php +++ b/api/wired-pending/intent-opus4-orphans_count.php @@ -1,14 +1,28 @@ 'orphans_count', - 'triggers' => - array ( + 'triggers' => array ( 0 => 'combien orphelins', 1 => 'count orphans', 2 => 'nombre orphelins', + 3 => 'orphans status', + 4 => 'combien dorphelins', + 5 => 'how many orphans', + 6 => 'orphan pages count', + 7 => 'pages orphelines', + 8 => 'pages orphelin', + 9 => 'orphelins wevia', + 10 => 'wtp orphans', + 11 => 'rescue orphans count', ), - 'cmd' => 'bash /var/www/html/api/v76-scripts/v81-orphans-rescue.sh', + 'cmd' => 'echo "=== V83 Architecture Quality ==="; curl -sk --max-time 4 "http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=architecture_quality" -H "Host: weval-consulting.com" 2>/dev/null | jq -r ".data.kpis[] | select(.id==\"orphans_count\" or .id==\"orphans_rescued_submodule\" or .id==\"orphans_hub_inbound\") | \"\(.id): \(.value) \(.unit) [\(.status)] target=\(.target)\"" 2>/dev/null; echo ""; echo "=== V81 Legacy scan ==="; bash /var/www/html/api/v76-scripts/v81-orphans-rescue.sh 2>/dev/null | head -6', 'status' => 'EXECUTED', 'created_at' => '2026-04-19T15:54:05+00:00', - 'source' => 'opus4-autowire-early-v2', + 'updated_at_v105' => '2026-04-21T03:30:00+00:00', + 'source' => 'opus4-autowire-early-v2+v105-enriched', + 'description' => 'V105 merge: V83 architecture_quality KPIs + v81 legacy bash scan. 12 triggers (was 3). Richness score ~ 15 + 800/100 = 23', + 'role' => 'kpi', );