'base WTP API unavailable', 'fallback' => true]); exit; } /* Enrichment 1 — add wevia-unified-hub.html to intelligence module */ if (isset($d['modules']['intelligence']['submodules'])) { $has_unified_hub = false; foreach ($d['modules']['intelligence']['submodules'] as $sm) { if (in_array('wevia-unified-hub.html', $sm['pages'] ?? [])) { $has_unified_hub = true; break; } } if (!$has_unified_hub) { $d['modules']['intelligence']['submodules'][] = [ 'id' => 'wevia_unified_hub', 'label' => '🏛 WEVIA Unified Hub', 'desc' => 'Hub de consolidation · 906 agents · 15509 skills · 346 intents · truth registry', 'pages' => ['wevia-unified-hub.html'], 'apis' => ['/api/wevia-truth-registry.json', '/api/wevia-unified-api.php'] ]; } } /* Enrichment 2 — add wevia-autonomy-dashboard.html to operations */ if (isset($d['modules']['operations']['submodules'])) { $has_autonomy = false; foreach ($d['modules']['operations']['submodules'] as $sm) { if (in_array('wevia-autonomy-dashboard.html', $sm['pages'] ?? [])) { $has_autonomy = true; break; } } if (!$has_autonomy) { $d['modules']['operations']['submodules'][] = [ 'id' => 'autonomy_dashboard', 'label' => '🎯 Autonomy Dashboard (GODMODE)', 'desc' => 'Score autonomie live · A+GODMODE · NR 153/153 · L99 304/304', 'pages' => ['wevia-autonomy-dashboard.html'], 'apis' => ['/api/opus5-autonomy-kpi.php', '/api/wevia-v74-sixsigma-api.php'] ]; } } /* Enrichment 3 — NEW MODULE: servers_machines (live infra) */ if (!isset($d['modules']['servers_machines'])) { $d['modules']['servers_machines'] = [ 'label' => 'Servers & Machines (Infra Live)', 'icon' => '🖥️', 'color' => '#10b981', 'tagline' => 'Tous les serveurs, GPU, Blade, Machines · vue unifiée live', 'submodules' => [ [ 'id' => 's204_primary', 'label' => '🏗️ S204 Primary (204.168.152.13)', 'desc' => 'nginx/PHP8.5/PG16 · 250 pages · 19 Docker · WEVIA Master · Ollama', 'pages' => ['infra-dashboard-live.html', 'infra-monitor.html', 'infra-command.html'], 'apis' => ['http://127.0.0.1:5890/', '/api/wevia-v76-infra-api.php'] ], [ 'id' => 's95_wevads', 'label' => '🏭 S95 WEVADS (95.216.167.89)', 'desc' => 'WEVADS Arsenal · PMTA · KumoMTA · 146K HCPs · Ethica', 'pages' => ['wevads-monitoring.html', 's95-hub.html'], 'apis' => ['https://wevads.weval-consulting.com/api/sentinel-brain.php'] ], [ 'id' => 'blade_workstation', 'label' => '💻 Blade Razer (Yacineutt profile)', 'desc' => 'Chrome persistent profile · Playwright · Selenium stealth · token renewal', 'pages' => ['blade-hub.html', 'blade-ai.html', 'blade-center.html', 'blade-actions.html', 'blade-control.html', 'blade-install.html'], 'apis' => ['/api/blade-tasks/', '/api/blade-actions-api.php'] ], [ 'id' => 'huawei_ecs_ser6_9', 'label' => '☁️ Huawei Cloud ECS (SER_6-9)', 'desc' => 'PMTA email engine · 4 ECS instances · 110.239.x.x IPs', 'pages' => ['huawei-cloud.html'], 'apis' => [] ], [ 'id' => 'gpu_kaggle', 'label' => '🎮 GPU Kaggle / Colab Training', 'desc' => 'Finetune yace222/weval-brain-v4 · weekly cron · free GPU via Kaggle', 'pages' => ['gpu-hub.html', 'wevia-training.html'], 'apis' => [] ], [ 'id' => 'docker_stack', 'label' => '🐳 Docker Stack (19 containers)', 'desc' => 'Gitea, Mattermost, n8n, Langfuse, Listmonk, Plausible, Loki, Qdrant, Uptime Kuma, SearXNG...', 'pages' => ['docker-hub.html'], 'apis' => ['http://127.0.0.1:9443/'] ], [ 'id' => 'cloudflare_cdn', 'label' => '☁️ Cloudflare CDN + DNS', 'desc' => '25+ zones · weval-consulting.com · wevup.app · culturellemejean.charity', 'pages' => ['cloudflare-hub.html'], 'apis' => [] ], [ 'id' => 'hetzner_cloud', 'label' => '🇩🇪 Hetzner Cloud', 'desc' => 'Backups & secondary infra', 'pages' => ['hetzner-hub.html'], 'apis' => [] ], ] ]; } /* Update meta */ $d['modules_count'] = count($d['modules']); $d['v80_enriched'] = true; $d['v80_additions'] = [ 'wevia-unified-hub.html added to intelligence', 'wevia-autonomy-dashboard.html added to operations', 'servers_machines module added with 8 infra submodules' ]; $d['v80_ts'] = date('c'); echo json_encode($d, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);