diff --git a/api/biz-scenario-latest.json b/api/biz-scenario-latest.json index e08a15a2f..1eea18d36 100644 --- a/api/biz-scenario-latest.json +++ b/api/biz-scenario-latest.json @@ -1,12 +1,12 @@ { "test": "biz-scenario-v9.29-extended", - "timestamp": "2026-04-20T15-05-53", + "timestamp": "2026-04-20T21-26-44", "pages": [ { "name": "wtp", "url": "https://weval-consulting.com/weval-technology-platform.html?dev=1", "ok": true, - "ms": 6369, + "ms": 5772, "http": 200, "final_url": "https://weval-consulting.com/weval-technology-platform.html?dev=1", "found": [ @@ -15,13 +15,13 @@ "Accueil", "NR " ], - "content_size": 312795 + "content_size": 313167 }, { "name": "erp-gap-fill", "url": "https://weval-consulting.com/erp-gap-fill-offer.html?dev=1", "ok": true, - "ms": 3844, + "ms": 3857, "http": 200, "final_url": "https://weval-consulting.com/erp-gap-fill-offer.html?dev=1", "found": [ @@ -36,7 +36,7 @@ "name": "infra-tour", "url": "https://weval-consulting.com/infra-tour-2s-5c-blade.html?dev=1", "ok": true, - "ms": 3169, + "ms": 3193, "http": 200, "final_url": "https://weval-consulting.com/infra-tour-2s-5c-blade.html?dev=1", "found": [ @@ -51,7 +51,7 @@ "name": "wevia-master", "url": "https://weval-consulting.com/wevia-master.html?dev=1", "ok": true, - "ms": 3656, + "ms": 3660, "http": 200, "final_url": "https://weval-consulting.com/login?r=/wevia-master.html?dev=1", "found": [ @@ -64,7 +64,7 @@ "name": "ethica-hub", "url": "https://weval-consulting.com/ethica-hub.html?dev=1", "ok": true, - "ms": 3882, + "ms": 3868, "http": 200, "final_url": "https://weval-consulting.com/ethica-hub.html?dev=1", "found": [ @@ -73,13 +73,13 @@ "161", "51K" ], - "content_size": 32827 + "content_size": 32826 }, { "name": "enterprise-model", "url": "https://weval-consulting.com/enterprise-model.html?dev=1", "ok": true, - "ms": 4165, + "ms": 4141, "http": 200, "final_url": "https://weval-consulting.com/login?r=/enterprise-model.html?dev=1", "found": [ @@ -92,7 +92,7 @@ "name": "growth-engine", "url": "https://weval-consulting.com/growth-engine-v2.html?dev=1", "ok": true, - "ms": 5103, + "ms": 5170, "http": 200, "final_url": "https://weval-consulting.com/login?r=/growth-engine-v2.html?dev=1", "found": [ @@ -109,7 +109,7 @@ "name": "agents-archi", "url": "https://weval-consulting.com/agents-archi.html?dev=1", "ok": true, - "ms": 5103, + "ms": 5137, "http": 200, "final_url": "https://weval-consulting.com/login?r=/agents-archi.html?dev=1", "found": [ @@ -120,21 +120,21 @@ "content_size": 3843 } ], - "video": "/var/www/html/videos/biz-scenario-2026-04-20T15-05-53.webm", + "video": "/var/www/html/videos/biz-scenario-2026-04-20T21-26-44.webm", "screenshots": [ - "/var/www/html/screenshots/biz-2026-04-20T15-05-53-wtp.png", - "/var/www/html/screenshots/biz-2026-04-20T15-05-53-erp-gap-fill.png", - "/var/www/html/screenshots/biz-2026-04-20T15-05-53-infra-tour.png", - "/var/www/html/screenshots/biz-2026-04-20T15-05-53-wevia-master.png", - "/var/www/html/screenshots/biz-2026-04-20T15-05-53-ethica-hub.png", - "/var/www/html/screenshots/biz-2026-04-20T15-05-53-enterprise-model.png", - "/var/www/html/screenshots/biz-2026-04-20T15-05-53-growth-engine.png", - "/var/www/html/screenshots/biz-2026-04-20T15-05-53-agents-archi.png" + "/var/www/html/screenshots/biz-2026-04-20T21-26-44-wtp.png", + "/var/www/html/screenshots/biz-2026-04-20T21-26-44-erp-gap-fill.png", + "/var/www/html/screenshots/biz-2026-04-20T21-26-44-infra-tour.png", + "/var/www/html/screenshots/biz-2026-04-20T21-26-44-wevia-master.png", + "/var/www/html/screenshots/biz-2026-04-20T21-26-44-ethica-hub.png", + "/var/www/html/screenshots/biz-2026-04-20T21-26-44-enterprise-model.png", + "/var/www/html/screenshots/biz-2026-04-20T21-26-44-growth-engine.png", + "/var/www/html/screenshots/biz-2026-04-20T21-26-44-agents-archi.png" ], - "duration_ms": 36245, + "duration_ms": 35594, "status": "100%", "pass": 8, "total": 8, "pct": 100, - "video_size": 1772947 + "video_size": 1802908 } \ No newline at end of file diff --git a/api/v83-business-kpi-latest.json b/api/v83-business-kpi-latest.json index b36cb690e..8386e196a 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-20T21:24:03+00:00", + "ts": "2026-04-20T21:28:04+00:00", "summary": { "total_categories": 7, "total_kpis": 56, diff --git a/api/wave-wiring-queue.json b/api/wave-wiring-queue.json index a185ea826..f80858553 100644 --- a/api/wave-wiring-queue.json +++ b/api/wave-wiring-queue.json @@ -7702,5 +7702,17 @@ "status": "PENDING_APPROVAL", "created_at": "2026-04-20T21:10:25+00:00", "source": "opus4-autowire-early-v2" + }, + "589": { + "name": "fpm_self_heal_slow", + "triggers": [ + "slow log analysis", + "fpm slow", + "wevia-autonomous slow" + ], + "cmd": "echo v9.42 fpm self-heal - slow log pool www-fast \/var\/log\/php8.4-fpm-fast-slow.log - shell_exec calls wevia-autonomous.php line 928 wevia-master-api.php line 54-61 wevia-dynamic-resolver.php line 79 - timeout 10 dans shell_exec ok - request_terminate 8s dans pool ok - amelioration suggere: reduire timeout shell_exec 10-5s pour les health checks + proxy_read_timeout 5s pour simple status calls + slowlog depth increase 20-50 pour diagnostic - preserve v112 v83 dashboard wiring - zero ecrasement scripts existants", + "status": "PENDING_APPROVAL", + "created_at": "2026-04-20T21:26:24+00:00", + "source": "opus4-autowire-early-v2" } } \ No newline at end of file diff --git a/api/wevia-master-api.php b/api/wevia-master-api.php index 345ae0b04..2b660ba80 100644 --- a/api/wevia-master-api.php +++ b/api/wevia-master-api.php @@ -30,6 +30,75 @@ if (!empty($_mam)) { } // === OPUS4-AUTOWIRE-EARLY-v2 END === +// === V103-NATURAL-MULTI-AGENT-ROUTER (20avr) === +// Doctrine #14 ADDITIF: Natural language detection of multi-agent intent +// MUST run BEFORE stub dispatcher to prevent stubs from catching multi-agent phrases +// Triggers: orchestrate, status all, all status, parallel, simultan, bilan complet, +// rapport multi-agent, tous les agents, full scan, exhaustif, cartograph, +// multi.?agent, "agis en multi", "donne moi un bilan complet" +if (isset($_mam) && $_mam) { + $__v103_msg = mb_strtolower(trim($_mam)); + // Natural language patterns - ALL trigger multi-agent SSE + $__v103_patterns = [ + // English/Franglais + '/\borchestrate\b/i', + '/\b(status\s+all|all\s+status|full\s+scan|all\s+agents)\b/i', + '/\b(parallel|simultan)/i', + // French naturel + '/\b(bilan\s+complet|rapport\s+(multi|complet|exhaustif)|orchestre|orchestrate)\b/i', + '/\b(tous\s+les\s+agents|toutes\s+les\s+(metriques|capacites)|cartograph)\b/i', + '/\b(exhaustif|reconcile|6sigma|six\s*sigma|tout\s+finir)\b/i', + '/\b(agir|agis|fais)\s+(en\s+)?(multi|plusieurs)/i', + '/\b(en\s+)?multi[\s\-]?agents?\b/i', + // "donne moi un point complet", "fais le tour de", etc. + '/\b(point|tour|vue|etat|sant[e])\s+(global|complet|general|360)/i', + // "comment va le systeme", etc. + '/\b(comment|que)\s+(vont?|va|tourne)\s+(les|le)\s+(systeme|infra|services)/i', + ]; + foreach ($__v103_patterns as $__v103_p) { + if (preg_match($__v103_p, $__v103_msg)) { + // Match! Route to multi-agent SSE orchestrator + header('Content-Type: application/json'); + $__v103_url = 'http://127.0.0.1/api/wevia-multiagent-sse.php?msg=' . urlencode($_mam); + $__v103_ctx = stream_context_create(['http' => ['timeout' => 60, 'header' => "Host: weval-consulting.com\r\n"]]); + $__v103_sse = @file_get_contents($__v103_url, false, $__v103_ctx); + // Parse SSE events into structured JSON response + $__v103_agents = []; + $__v103_synthesis = ''; + foreach (explode("\n\n", (string)$__v103_sse) as $__v103_line) { + $__v103_line = trim($__v103_line); + if (strpos($__v103_line, 'data: ') !== 0) continue; + $__v103_d = @json_decode(substr($__v103_line, 6), true); + if (!is_array($__v103_d)) continue; + if (($__v103_d['type'] ?? '') === 'agent') { + $__v103_agents[$__v103_d['id']] = $__v103_d['result']; + } + if (($__v103_d['type'] ?? '') === 'synthesis') { + $__v103_synthesis = $__v103_d['content'] ?? ''; + } + } + $__v103_resp = "Multi-agent orchestration executed (" . count($__v103_agents) . " agents)\n\n"; + foreach ($__v103_agents as $__v103_id => $__v103_r) { + $__v103_resp .= "[$__v103_id] " . substr((string)$__v103_r, 0, 200) . "\n"; + } + if ($__v103_synthesis) $__v103_resp .= "\n=== SYNTHESIS ===\n" . $__v103_synthesis; + echo json_encode([ + 'response' => $__v103_resp, + 'executed' => true, + 'provider' => 'v103-natural-multi-agent-router', + 'intent' => 'multi_agent_natural', + 'agents_count' => count($__v103_agents), + 'agents' => $__v103_agents, + 'synthesis' => $__v103_synthesis, + 'matched_pattern' => $__v103_p + ]); + @file_put_contents('/tmp/v103-router.log', date('c') . " MATCH pattern=$__v103_p msg=" . substr($_mam, 0, 80) . "\n", FILE_APPEND); + exit; + } + } +} +// === V103-NATURAL-MULTI-AGENT-ROUTER END === + // === OPUS5-STUB-DISPATCHER-v1 (17avr) === // Route messages to opus4-wired stubs BEFORE fast-path/dynamic-resolver capture. // This unlocks WEVIA autonomy: user types a stub trigger, the cmd executes immediately. diff --git a/api/wired-pending/intent-opus4-dispatcher_greedy_fix_preview.php b/api/wired-pending/intent-opus4-dispatcher_greedy_fix_preview.php index 365abddc9..a72419f05 100644 --- a/api/wired-pending/intent-opus4-dispatcher_greedy_fix_preview.php +++ b/api/wired-pending/intent-opus4-dispatcher_greedy_fix_preview.php @@ -7,7 +7,7 @@ return array ( 1 => 'preview dispatcher fix', ), 'cmd' => 'curl -s http://localhost/api/dispatcher-greedy-fix-preview.php', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T21:06:12+00:00', 'source' => 'opus4-autowire-early-v2', ); diff --git a/api/wired-pending/intent-opus4-fpm_self_heal_slow.php b/api/wired-pending/intent-opus4-fpm_self_heal_slow.php new file mode 100644 index 000000000..b56df7c03 --- /dev/null +++ b/api/wired-pending/intent-opus4-fpm_self_heal_slow.php @@ -0,0 +1,14 @@ + 'fpm_self_heal_slow', + 'triggers' => + array ( + 0 => 'slow log analysis', + 1 => 'fpm slow', + 2 => 'wevia-autonomous slow', + ), + 'cmd' => 'echo v9.42 fpm self-heal - slow log pool www-fast /var/log/php8.4-fpm-fast-slow.log - shell_exec calls wevia-autonomous.php line 928 wevia-master-api.php line 54-61 wevia-dynamic-resolver.php line 79 - timeout 10 dans shell_exec ok - request_terminate 8s dans pool ok - amelioration suggere: reduire timeout shell_exec 10-5s pour les health checks + proxy_read_timeout 5s pour simple status calls + slowlog depth increase 20-50 pour diagnostic - preserve v112 v83 dashboard wiring - zero ecrasement scripts existants', + 'status' => 'EXECUTED', + 'created_at' => '2026-04-20T21:26:24+00:00', + 'source' => 'opus4-autowire-early-v2', +); diff --git a/api/wired-pending/intent-opus4-incident_backup_postgres_cron.php b/api/wired-pending/intent-opus4-incident_backup_postgres_cron.php index fa9d7aa78..f41ee8c59 100644 --- a/api/wired-pending/intent-opus4-incident_backup_postgres_cron.php +++ b/api/wired-pending/intent-opus4-incident_backup_postgres_cron.php @@ -6,7 +6,7 @@ return array ( 0 => 'incident backup postgres cron', ), 'cmd' => 'curl -s http://localhost/api/incident-remediation.php?action=backup-only', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T20:55:52+00:00', 'source' => 'opus4-autowire-early-v2', ); diff --git a/api/wired-pending/intent-opus4-incident_full_cleanup.php b/api/wired-pending/intent-opus4-incident_full_cleanup.php index a268e4c34..609ebbf44 100644 --- a/api/wired-pending/intent-opus4-incident_full_cleanup.php +++ b/api/wired-pending/intent-opus4-incident_full_cleanup.php @@ -6,7 +6,7 @@ return array ( 0 => 'confirm full incident cleanup yanis authorized', ), 'cmd' => 'curl -s http://localhost/api/incident-remediation.php?action=full-cleanup', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T20:55:54+00:00', 'source' => 'opus4-autowire-early-v2', ); diff --git a/api/wired-pending/intent-opus4-incident_kill_orphan_node.php b/api/wired-pending/intent-opus4-incident_kill_orphan_node.php index 81dbaccbf..cc6794d50 100644 --- a/api/wired-pending/intent-opus4-incident_kill_orphan_node.php +++ b/api/wired-pending/intent-opus4-incident_kill_orphan_node.php @@ -6,7 +6,7 @@ return array ( 0 => 'confirm kill orphan paperclip node yanis', ), 'cmd' => 'curl -s http://localhost/api/incident-remediation.php?action=kill-orphan-paperclip-postgres', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T20:55:53+00:00', 'source' => 'opus4-autowire-early-v2', ); diff --git a/api/wired-pending/intent-opus4-incident_lock_postgres_cron.php b/api/wired-pending/intent-opus4-incident_lock_postgres_cron.php index b113b95aa..4cdd120c4 100644 --- a/api/wired-pending/intent-opus4-incident_lock_postgres_cron.php +++ b/api/wired-pending/intent-opus4-incident_lock_postgres_cron.php @@ -6,7 +6,7 @@ return array ( 0 => 'confirm lock postgres crontab yanis', ), 'cmd' => 'curl -s http://localhost/api/incident-remediation.php?action=chattr-lock-crontab', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T20:55:53+00:00', 'source' => 'opus4-autowire-early-v2', ); diff --git a/api/wired-pending/intent-opus4-incident_postgres_scan.php b/api/wired-pending/intent-opus4-incident_postgres_scan.php index 3d8f7c910..3138e0de3 100644 --- a/api/wired-pending/intent-opus4-incident_postgres_scan.php +++ b/api/wired-pending/intent-opus4-incident_postgres_scan.php @@ -8,7 +8,7 @@ return array ( 2 => 'postgres incident diag', ), 'cmd' => 'curl -s http://localhost/api/incident-postgres-cron-scan.php', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T20:46:47+00:00', 'source' => 'opus4-autowire-early-v2', ); diff --git a/api/wired-pending/intent-opus4-incident_remove_postgres_cron.php b/api/wired-pending/intent-opus4-incident_remove_postgres_cron.php index 7f24506d4..0b90d1097 100644 --- a/api/wired-pending/intent-opus4-incident_remove_postgres_cron.php +++ b/api/wired-pending/intent-opus4-incident_remove_postgres_cron.php @@ -6,7 +6,7 @@ return array ( 0 => 'confirm remove postgres pastebin cron yanis', ), 'cmd' => 'curl -s http://localhost/api/incident-remediation.php?action=remove-postgres-pastebin-cron', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T20:55:53+00:00', 'source' => 'opus4-autowire-early-v2', ); diff --git a/api/wired-pending/intent-opus4-paperclip_fix_perms.php b/api/wired-pending/intent-opus4-paperclip_fix_perms.php index c81383fd4..a23084bd2 100644 --- a/api/wired-pending/intent-opus4-paperclip_fix_perms.php +++ b/api/wired-pending/intent-opus4-paperclip_fix_perms.php @@ -10,7 +10,7 @@ return array ( 4 => 'paperclip ndjson perm', ), 'cmd' => 'curl -s http://localhost/api/paperclip-fix-perms.php', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T20:34:27+00:00', 'source' => 'opus4-autowire-early-v2', ); diff --git a/api/wired-pending/intent-opus4-paperclip_status.php b/api/wired-pending/intent-opus4-paperclip_status.php index 9b92c455e..dde0f995e 100644 --- a/api/wired-pending/intent-opus4-paperclip_status.php +++ b/api/wired-pending/intent-opus4-paperclip_status.php @@ -8,7 +8,7 @@ return array ( 2 => 'paperclip live status', ), 'cmd' => 'curl -s http://localhost/api/paperclip-status.php', - 'status' => 'PENDING_APPROVAL', + 'status' => 'EXECUTED', 'created_at' => '2026-04-20T21:10:25+00:00', 'source' => 'opus4-autowire-early-v2', );