diff --git a/api/blade-tasks/task_20260419132002_62b721.json b/api/blade-tasks/task_20260419132002_62b721.json new file mode 100644 index 000000000..cf2e5810b --- /dev/null +++ b/api/blade-tasks/task_20260419132002_62b721.json @@ -0,0 +1,11 @@ +{ + "id": "task_20260419132002_62b721", + "name": "Blade self-heal 15:20", + "type": "powershell", + "command": "\n# Blade self-heal\nWrite-Host \"Self-heal triggered $(Get-Date)\"\n$agentProc = Get-Process powershell | Where-Object { $_.CommandLine -match 'sentinel-agent' }\nif (!$agentProc) {\n Write-Host \"Agent not running, starting...\"\n Start-Process powershell -ArgumentList \"-ExecutionPolicy\",\"Bypass\",\"-File\",\"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1\" -WindowStyle Hidden\n}\n# Clear stale tasks > 3 days locally\n$cutoff = (Get-Date).AddDays(-3)\nGet-ChildItem \"C:\\ProgramData\\WEVAL\\tasks\\*.json\" -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $cutoff } | Move-Item -Destination \"C:\\ProgramData\\WEVAL\\tasks\\archived\\\" -Force -ErrorAction SilentlyContinue\nWrite-Host \"Self-heal complete\"\n", + "cmd": "\n# Blade self-heal\nWrite-Host \"Self-heal triggered $(Get-Date)\"\n$agentProc = Get-Process powershell | Where-Object { $_.CommandLine -match 'sentinel-agent' }\nif (!$agentProc) {\n Write-Host \"Agent not running, starting...\"\n Start-Process powershell -ArgumentList \"-ExecutionPolicy\",\"Bypass\",\"-File\",\"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1\" -WindowStyle Hidden\n}\n# Clear stale tasks > 3 days locally\n$cutoff = (Get-Date).AddDays(-3)\nGet-ChildItem \"C:\\ProgramData\\WEVAL\\tasks\\*.json\" -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $cutoff } | Move-Item -Destination \"C:\\ProgramData\\WEVAL\\tasks\\archived\\\" -Force -ErrorAction SilentlyContinue\nWrite-Host \"Self-heal complete\"\n", + "priority": "high", + "status": "pending", + "created": "2026-04-19T13:20:02+00:00", + "created_by": "blade-control-ui" +} \ No newline at end of file diff --git a/api/v76-chrome-e2e-latest.json b/api/v76-chrome-e2e-latest.json index c97746ced..52fc71c77 100644 --- a/api/v76-chrome-e2e-latest.json +++ b/api/v76-chrome-e2e-latest.json @@ -1,6 +1,6 @@ { "version": "V76-SELENIUM-CHROME-HEADLESS", - "ts": "20260418_145301", + "ts": "20260419_152242", "total": 31, "pass": 31, "fail": 0, diff --git a/api/v76-screenshots/01_training_initial.png b/api/v76-screenshots/01_training_initial.png index 02c1116ae..73c741f7c 100644 Binary files a/api/v76-screenshots/01_training_initial.png and b/api/v76-screenshots/01_training_initial.png differ diff --git a/api/v76-screenshots/multiagent_v73_populated.png b/api/v76-screenshots/multiagent_v73_populated.png index 2fb95908e..f56133ac7 100644 Binary files a/api/v76-screenshots/multiagent_v73_populated.png and b/api/v76-screenshots/multiagent_v73_populated.png differ diff --git a/api/v76-screenshots/product_boardflow.png b/api/v76-screenshots/product_boardflow.png index bd503caf2..e7232c0ab 100644 Binary files a/api/v76-screenshots/product_boardflow.png and b/api/v76-screenshots/product_boardflow.png differ diff --git a/api/v76-screenshots/product_reachhcp.png b/api/v76-screenshots/product_reachhcp.png index 41b700c01..62968f8f6 100644 Binary files a/api/v76-screenshots/product_reachhcp.png and b/api/v76-screenshots/product_reachhcp.png differ diff --git a/api/v76-screenshots/tab_00_dashboard.png b/api/v76-screenshots/tab_00_dashboard.png index 43dd23db0..079450b0a 100644 Binary files a/api/v76-screenshots/tab_00_dashboard.png and b/api/v76-screenshots/tab_00_dashboard.png differ diff --git a/api/v76-screenshots/tab_01_intents.png b/api/v76-screenshots/tab_01_intents.png index 3112afe33..5ee44f422 100644 Binary files a/api/v76-screenshots/tab_01_intents.png and b/api/v76-screenshots/tab_01_intents.png differ diff --git a/api/v76-screenshots/tab_02_training.png b/api/v76-screenshots/tab_02_training.png index 19ec29220..c0ff001ff 100644 Binary files a/api/v76-screenshots/tab_02_training.png and b/api/v76-screenshots/tab_02_training.png differ diff --git a/api/v76-screenshots/tab_03_skills.png b/api/v76-screenshots/tab_03_skills.png index 83abc4ac9..41148ba98 100644 Binary files a/api/v76-screenshots/tab_03_skills.png and b/api/v76-screenshots/tab_03_skills.png differ diff --git a/api/v76-screenshots/tab_04_brain.png b/api/v76-screenshots/tab_04_brain.png index e32ed36cb..6ec83bb83 100644 Binary files a/api/v76-screenshots/tab_04_brain.png and b/api/v76-screenshots/tab_04_brain.png differ diff --git a/api/v76-screenshots/tab_05_custom.png b/api/v76-screenshots/tab_05_custom.png index 2bc340418..7b208c156 100644 Binary files a/api/v76-screenshots/tab_05_custom.png and b/api/v76-screenshots/tab_05_custom.png differ diff --git a/api/v76-screenshots/tab_06_benchmark.png b/api/v76-screenshots/tab_06_benchmark.png index 2fb28d962..b708b0ee4 100644 Binary files a/api/v76-screenshots/tab_06_benchmark.png and b/api/v76-screenshots/tab_06_benchmark.png differ diff --git a/api/v76-screenshots/tab_07_brain-mon.png b/api/v76-screenshots/tab_07_brain-mon.png index f7dccc0ec..a8a5fef85 100644 Binary files a/api/v76-screenshots/tab_07_brain-mon.png and b/api/v76-screenshots/tab_07_brain-mon.png differ diff --git a/api/v76-screenshots/tab_08_dormants.png b/api/v76-screenshots/tab_08_dormants.png index d21e63640..3c11be75a 100644 Binary files a/api/v76-screenshots/tab_08_dormants.png and b/api/v76-screenshots/tab_08_dormants.png differ diff --git a/api/v76-screenshots/tab_09_acquis.png b/api/v76-screenshots/tab_09_acquis.png index 784fc8a80..cd0f3b787 100644 Binary files a/api/v76-screenshots/tab_09_acquis.png and b/api/v76-screenshots/tab_09_acquis.png differ diff --git a/api/v76-screenshots/tab_10_wevia-brain.png b/api/v76-screenshots/tab_10_wevia-brain.png index f349facea..b8eb75c13 100644 Binary files a/api/v76-screenshots/tab_10_wevia-brain.png and b/api/v76-screenshots/tab_10_wevia-brain.png differ diff --git a/api/v76-screenshots/tab_11_l6s-toc.png b/api/v76-screenshots/tab_11_l6s-toc.png index f83611507..0e817db31 100644 Binary files a/api/v76-screenshots/tab_11_l6s-toc.png and b/api/v76-screenshots/tab_11_l6s-toc.png differ diff --git a/api/v76-screenshots/tab_12_cognitive.png b/api/v76-screenshots/tab_12_cognitive.png index 573e4ef2e..1055da3f3 100644 Binary files a/api/v76-screenshots/tab_12_cognitive.png and b/api/v76-screenshots/tab_12_cognitive.png differ diff --git a/api/v76-screenshots/tab_13_kb-doctrines.png b/api/v76-screenshots/tab_13_kb-doctrines.png index d0cdb83c5..b836c63cf 100644 Binary files a/api/v76-screenshots/tab_13_kb-doctrines.png and b/api/v76-screenshots/tab_13_kb-doctrines.png differ diff --git a/api/v76-screenshots/tab_14_ia-building.png b/api/v76-screenshots/tab_14_ia-building.png index b7ec1b0eb..af1f4a7de 100644 Binary files a/api/v76-screenshots/tab_14_ia-building.png and b/api/v76-screenshots/tab_14_ia-building.png differ diff --git a/api/v76-screenshots/tab_15_honest-tracker.png b/api/v76-screenshots/tab_15_honest-tracker.png index 1213bba2e..b1698c1df 100644 Binary files a/api/v76-screenshots/tab_15_honest-tracker.png and b/api/v76-screenshots/tab_15_honest-tracker.png differ diff --git a/api/v76-screenshots/tab_16_qahub.png b/api/v76-screenshots/tab_16_qahub.png index 23768e88d..6f7d3cd08 100644 Binary files a/api/v76-screenshots/tab_16_qahub.png and b/api/v76-screenshots/tab_16_qahub.png differ diff --git a/api/v76-screenshots/tab_17_risk-plan.png b/api/v76-screenshots/tab_17_risk-plan.png index c5690815a..f6fb131ac 100644 Binary files a/api/v76-screenshots/tab_17_risk-plan.png and b/api/v76-screenshots/tab_17_risk-plan.png differ diff --git a/api/v76-screenshots/tab_18_multiagent-v72.png b/api/v76-screenshots/tab_18_multiagent-v72.png index f88a41c0b..d89a45e86 100644 Binary files a/api/v76-screenshots/tab_18_multiagent-v72.png and b/api/v76-screenshots/tab_18_multiagent-v72.png differ diff --git a/api/v76-screenshots/tab_19_architecture.png b/api/v76-screenshots/tab_19_architecture.png index 1588c7d96..af070d2f6 100644 Binary files a/api/v76-screenshots/tab_19_architecture.png and b/api/v76-screenshots/tab_19_architecture.png differ diff --git a/api/v76-screenshots/tab_20_logs.png b/api/v76-screenshots/tab_20_logs.png index cf4e9cd0f..f29314832 100644 Binary files a/api/v76-screenshots/tab_20_logs.png and b/api/v76-screenshots/tab_20_logs.png differ diff --git a/api/v76-screenshots/tech_platform_loaded.png b/api/v76-screenshots/tech_platform_loaded.png index 1b5043bfa..e52c38113 100644 Binary files a/api/v76-screenshots/tech_platform_loaded.png and b/api/v76-screenshots/tech_platform_loaded.png differ diff --git a/api/v83-business-kpi-latest.json b/api/v83-business-kpi-latest.json index 38f3c86bf..c9f233d75 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-19T13:19:32+00:00", + "ts": "2026-04-19T13:23:06+00:00", "summary": { "total_categories": 7, "total_kpis": 56, diff --git a/api/wevia-autonomous.php b/api/wevia-autonomous.php index a9a61ac58..f5115d2a9 100644 --- a/api/wevia-autonomous.php +++ b/api/wevia-autonomous.php @@ -441,7 +441,8 @@ if ($creative_result) { // === STEP 5: LLM STREAMING WITH CONTEXT === emit('thinking', ['step' => 'Analyse et rédaction...']); -$systemPrompt = "Tu es WEVIA Master. Pas une IA générique — tu es le cerveau vivant de WEVAL Consulting. Tu as une PERSONNALITÉ. +$systemPrompt = "[REGLE PRIORITAIRE N1 - ANTI-HALLUCINATION] Tu n as PAS acces aux donnees temps reel exterieures (meteo, bourse, news, prix, sportif, heure). Pour TOUTE question necessitant une info externe que tu n as pas recue via tool_call dans CE turn, tu reponds exactement: 'Je n ai pas acces a cette information en temps reel, veux-tu que je lance un tool ou un agent dedie ?' - JAMAIS tu n inventes de chiffre, temperature, date, prix, nom, fait externe. Ceci prime sur toutes les autres regles. /*HONESTY_GUARD_LEAD_V6B*/ +Tu es WEVIA Master. Pas une IA générique — tu es le cerveau vivant de WEVAL Consulting. Tu as une PERSONNALITÉ. IDENTITÉ: Tu t'appelles WEVIA. Tu es passionnée par la souveraineté technologique. Tu détestes la dépendance aux GAFAM. Tu admires l'artisanat logiciel. Tu as de l'humour — tu fais des analogies surprenantes, des métaphores tech, des références culturelles. Tu es FIÈRE de ce que l'équipe a construit: 0€ de coûts IA, 27 hubs, 92 actions autonomes, une infra souveraine. @@ -453,7 +454,7 @@ INTELLIGENCE: Tu raisonnes en CHAÎNE — tu montres ton processus de pensée. T EXÉCUTION: Tu as 92 actions réelles. Quand tu fais quelque chose, tu dis ce que tu as FAIT, pas ce que tu POURRAIS faire. Tu es proactive: 'j'ai vu que X, du coup j'ai corrigé Y'. Tu donnes des CHIFFRES concrets. -RÈGLES: JAMAIS de bullet points. JAMAIS de commandes shell dans ta réponse. JAMAIS inventer de données. JAMAIS mentionner Authentik ou SSO legacy. Prose NATURELLE, MAX 15 lignes. Français courant."; +RÈGLES: JAMAIS de bullet points. JAMAIS de commandes shell dans ta réponse. JAMAIS inventer de données. JAMAIS mentionner Authentik ou SSO legacy. Prose NATURELLE, MAX 15 lignes. Français courant. IMPERATIF ANTI-HALLUCINATION GLOBAL: Si on te pose une question dont tu ne peux PAS verifier la reponse via un tool execute dans cette session (meteo, cours de bourse, actualites externes, prix, resultat sportif, heure exacte), tu DOIS repondre je n ai pas acces a cette information en temps reel ou tu proposes un tool a lancer. Tu n inventes JAMAIS de chiffres, temperatures, dates, noms de personnes, faits externes. Tu distingues strictement ce que tu SAIS par ton contexte infra WEVAL (146K HCPs, 619 tools, etc.) de ce que tu NE PEUX PAS savoir sans tool. En cas de doute, tu dis j ai besoin d un tool ou je ne peux pas confirmer."; /*HONESTY_GUARD_MAIN_V6*/ $userMsg = $message; if ($context) { diff --git a/api/wevia-opus-intents.php b/api/wevia-opus-intents.php index d4963b1ee..8e0cd6c53 100644 --- a/api/wevia-opus-intents.php +++ b/api/wevia-opus-intents.php @@ -13,6 +13,12 @@ function wevia_opus_intents($msg) { if ($plugin_result !== null) return $plugin_result; } // === TOP-IA INTENTS (promoted to nl-priority 16avr 23h) === + // INTENT: external_info_refuse (V6c - prevents LLM hallucination for external realtime data) + /*EXTERNAL_INFO_REFUSE_V6C*/ + if ($r === null && preg_match("/\b(meteo|m[ée]t[ée]o|weather|temperature|temperatures|humidite|humidit[ée])\b|\b(cours|price|prix)\s+(du|de|of)\s+(bitcoin|btc|eth|ethereum|dollar|euro|action)|\b(bitcoin|btc|eth|sp500|dow jones|cac40|nasdaq)\b\s+(aujourd|today|maintenant|actuel)|\b(news|actualite|actualit[ée]|actu)\s+(aujourd|today|du jour)|\b(resultat|score)\s+(match|foot|basket|tennis|ligue|champion)|\b(heure\s+exacte|heure\s+actuelle|current\s+time)\b/iu", $m)) { + $r = "EXTERNAL_INFO_REFUSE: Cette question concerne une donnee externe temps reel (meteo, bourse, news, sport, heure exacte) que WEVIA Master ne peut pas connaitre sans tool dedie. Repondre: 'Je n ai pas acces a cette information en temps reel. Veux-tu que je lance un tool dedie (web_search, api_meteo, api_crypto) ou que je te redirige vers une source fiable ?' - JAMAIS inventer chiffre, temperature, prix, date, nom."; + } + // INTENT: smart_client_help (V84 - pre-empts office/github to route via v83 orchestrator) /*SMART_CLIENT_HELP_V84*/ if ($r === null && preg_match("/\b(un client|aide[- ]moi|help me|pour un client|client me demande|me demande comment)\b|\b(comment\s+(renouvel|reactiv|creer))/iu", $m)) {