auto-sync-0335

This commit is contained in:
opus
2026-04-21 03:35:02 +02:00
parent 5f29cc6957
commit b793fa1784
8 changed files with 121 additions and 286 deletions

View File

@@ -0,0 +1,63 @@
<?php
/**
* V116 - Dashboards Registry API
* Liste TOUS les dashboards/hubs avec catégorisation auto
*/
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
$ROOT = '/var/www/html';
$patterns = ['*dashboard*.html', '*-hub.html', '*-live.html', 'kpi-*.html', 'visual-*.html'];
$files = [];
foreach ($patterns as $p) {
$found = glob("$ROOT/$p");
if ($found) $files = array_merge($files, $found);
}
$files = array_unique($files);
sort($files);
function categorize($name) {
$n = strtolower($name);
if (strpos($n,'infra')!==false || strpos($n,'docker')!==false || strpos($n,'gpu')!==false || strpos($n,'hetzner')!==false) return ['infra','&#128187;','#3b82f6'];
if (strpos($n,'ethica')!==false || strpos($n,'medreach')!==false || strpos($n,'paperclip')!==false) return ['pharma','&#129298;','#10b981'];
if (strpos($n,'crm')!==false || strpos($n,'sales')!==false || strpos($n,'contacts')!==false) return ['crm','&#128188;','#f59e0b'];
if (strpos($n,'kpi')!==false || strpos($n,'lean6sigma')!==false || strpos($n,'visual')!==false) return ['kpi','&#128202;','#8b5cf6'];
if (strpos($n,'email')!==false || strpos($n,'em-')!==false || strpos($n,'office')!==false || strpos($n,'wevads')!==false) return ['email','&#128231;','#ec4899'];
if (strpos($n,'security')!==false || strpos($n,'cloudflare')!==false || strpos($n,'keys')!==false || strpos($n,'api-key')!==false) return ['security','&#128274;','#ef4444'];
if (strpos($n,'wevia')!==false || strpos($n,'agent')!==false || strpos($n,'tasks')!==false) return ['wevia','&#129302;','#06b6d4'];
if (strpos($n,'ai')!==false || strpos($n,'anthropic')!==false || strpos($n,'deepseek')!==false || strpos($n,'huggingface')!==false || strpos($n,'qdrant')!==false) return ['ai','&#129504;','#a855f7'];
if (strpos($n,'github')!==false || strpos($n,'google')!==false || strpos($n,'namecheap')!==false || strpos($n,'n8n')!==false) return ['integration','&#128279;','#64748b'];
if (strpos($n,'dormant')!==false || strpos($n,'orphan')!==false) return ['cleanup','&#128465;','#94a3b8'];
return ['other','&#128196;','#6b7280'];
}
$out = [];
$byCategory = [];
foreach ($files as $f) {
$name = basename($f);
$size = filesize($f);
list($cat, $icon, $color) = categorize($name);
$display = ucwords(str_replace(['-','.html','dashboard','hub','live'], [' ','','Dashboard','Hub','Live'], $name));
$display = trim(preg_replace('/\s+/', ' ', $display));
$entry = [
'name' => $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);

View File

@@ -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
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 KiB

View File

@@ -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"
}

View File

@@ -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,

View File

@@ -1,14 +1,28 @@
<?php
// V105 ENRICHED - orphans_count with V83 architecture_quality + v81 legacy script
// Doctrine 0: zero fake - returns real data from V83 category + script
// Keeps backward compatibility with v81-orphans-rescue.sh
return array (
'name' => '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',
);