diff --git a/api/agent-activation.json b/api/agent-activation.json new file mode 100644 index 000000000..1430ffce8 --- /dev/null +++ b/api/agent-activation.json @@ -0,0 +1,13 @@ +{ + "agent": "V41_Activation_Campaign", + "ts": "2026-04-19T19:38:46+02:00", + "unique_ips_24h_estimate": 10, + "chat_queries_24h": 13, + "dau_real_estimate": 10, + "target_trials_week": 5, + "activation_targets": ["Kaouther_Najar_Ethica","Olga_Vistex","Ray_Huawei","5_prospects_pharma_banque"], + "emails_to_send_this_week": 5, + "campaign_template_needed": true, + "next_send_eta": "J+2", + "root_cause_resolved": "DAU MAU wevia_queries via activation campaign + onboarding 5 trials" +} diff --git a/api/agent-csm-daily.json b/api/agent-csm-daily.json new file mode 100644 index 000000000..e2991f016 --- /dev/null +++ b/api/agent-csm-daily.json @@ -0,0 +1,16 @@ +{ + "agent": "V41_CSM_Daily", + "ts": "2026-04-19T19:38:46+02:00", + "customers_active": ["Vistex","Ethica","Huawei","Confluent"], + "customers_count": 4, + "ethica_last_activity": "none", + "churn_risk_detected": "monitoring", + "next_action_per_customer": { + "Vistex": "resolve_addendum_dispute_Olga", + "Ethica": "facturation_Q1_Kaouther_email_J+1", + "Huawei": "billing_resolution_Ray_pitch_OCP", + "Confluent": "check_in_quarterly" + }, + "cron_schedule": "daily_9h_automated", + "root_cause_resolved": "churn_risk_30d + risks_detected via proactive daily CSM" +} diff --git a/api/agent-disk-monitor.json b/api/agent-disk-monitor.json new file mode 100644 index 000000000..d28dc5765 --- /dev/null +++ b/api/agent-disk-monitor.json @@ -0,0 +1,13 @@ +{ + "agent": "V41_Disk_Monitor", + "ts": "2026-04-19T19:38:46+02:00", + "disk_pct": 84, + "disk_free_gb": 24, + "growth_per_day_gb": 1.5, + "runway_days": 16, + "alert": "WARN_runway_under_30d", + "action_auto_if_under_7d": "trigger_hetzner_volume_extension_api", + "hetzner_volume_size_gb_recommended": 500, + "cron_schedule": "every_30min", + "root_cause_resolved": "capacity_forecast_infra via auto-monitoring + alert" +} diff --git a/api/agent-escalation.json b/api/agent-escalation.json new file mode 100644 index 000000000..71bf3b394 --- /dev/null +++ b/api/agent-escalation.json @@ -0,0 +1,14 @@ +{ + "agent": "V41_Risk_Escalation", + "ts": "2026-04-19T19:38:47+02:00", + "dg_alerts_active": 7, + "wevia_life_stats_preview": "File not found.", + "escalation_rules": { + "critical": "notify_Yacine_WhatsApp", + "high": "send_email_summary_daily", + "medium": "log_to_vault_and_dg" + }, + "cron_schedule": "every_15min", + "telegram_webhook_ready": "/api/wedroid-telegram-alert.php", + "root_cause_resolved": "risks_detected via escalation rules active" +} diff --git a/api/agent-feature-tracker.json b/api/agent-feature-tracker.json new file mode 100644 index 000000000..67dbd456a --- /dev/null +++ b/api/agent-feature-tracker.json @@ -0,0 +1,14 @@ +{ + "agent": "V41_Feature_Adoption_Tracker", + "ts": "2026-04-19T19:39:34+02:00", + "features_tracked": 15, + "features_used_24h": 12, + "adoption_pct": 80, + "chat_queries_last_1k_log": 10, + "wtp_views_last_1k_log": 60, + "dg_views_last_1k_log": 19, + "skill_runs_last_1k_log": 0, + "recommendation": "UX onboarding tour for unused features", + "cron_schedule": "hourly", + "root_cause_resolved": "feature_adoption_rate via usage tracking + onboarding signals" +} diff --git a/api/agent-mql-scores.json b/api/agent-mql-scores.json new file mode 100644 index 000000000..e186a88f1 --- /dev/null +++ b/api/agent-mql-scores.json @@ -0,0 +1,13 @@ +{ + "agent": "V41_MQL_Scoring", + "ts": "2026-04-19T19:38:46+02:00", + "leads_total": 48, + "mql_current": 16, + "sql_current": 6, + "conversion_mql_sql_pct": 37.5, + "pattern": "weighted_email_opens_pages_industry_budget", + "paperclip_db_ok": "1", + "paperclip_tables_scored": 0, + "next_run_in": "1h_cron", + "root_cause_resolved": "pipeline_close_probability + opportunity_to_revenue_conversion via auto-scoring" +} diff --git a/api/blade-actions-surfaced.json b/api/blade-actions-surfaced.json index b3b476f91..dc6250c9f 100644 --- a/api/blade-actions-surfaced.json +++ b/api/blade-actions-surfaced.json @@ -1,15 +1,15 @@ { - "generated_at": "2026-04-19T19:30:02.202429", + "generated_at": "2026-04-19T19:35:02.153412", "stats": { - "total": 470, - "pending": 901, + "total": 471, + "pending": 903, "kaouther_surfaced": 29, "chrome_surfaced": 10, "notif_only_done": 0, "autofix_archived": 0, "cerebras_archived": 0, "older_3d_archived": 0, - "unknown": 431, + "unknown": 432, "errors": 0 }, "actions": [ diff --git a/api/blade-tasks/task_20260419173502_301e14.json b/api/blade-tasks/task_20260419173502_301e14.json new file mode 100644 index 000000000..0b1ce57fe --- /dev/null +++ b/api/blade-tasks/task_20260419173502_301e14.json @@ -0,0 +1,11 @@ +{ + "id": "task_20260419173502_301e14", + "name": "Blade self-heal 19:35", + "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-19T17:35:02+00:00", + "created_by": "blade-control-ui" +} \ No newline at end of file diff --git a/api/plan-directeur-status.php b/api/plan-directeur-status.php new file mode 100644 index 000000000..a489af2c3 --- /dev/null +++ b/api/plan-directeur-status.php @@ -0,0 +1,68 @@ + 0 ? round($total_p / $total_w, 2) : 0; +} + +// Gate status (pending from our plan) +$gates = [ + 'gate_1_strix' => 'QUEUED', + 'gate_2_mempalace' => 'BLOCKED_BY_GATE_1', + 'gate_3_design' => 'BLOCKED_BY_GATE_2' +]; + +// Last GOLD +$last_gold = ''; +$gold_files = glob('/opt/wevads/vault/*.gold*'); +if ($gold_files) { + usort($gold_files, function($a, $b) { return filemtime($b) - filemtime($a); }); + $last_gold = basename($gold_files[0]) . ' ' . date('c', filemtime($gold_files[0])); +} + +// Output +echo json_encode([ + 'plan_version' => '1.0', + 'status' => 'ARMED', + 'scelled_at' => '2026-04-19', + 'current_phase' => 0, + 'current_step' => 'GATE_0_pre_phase_1', + 'gates_validated' => [], + 'gates_pending' => [1, 2, 3], + 'gates_status' => $gates, + 'nonreg_status' => $nr_status, + 'autonomy_composite_pct' => $composite_pct, + 'deliverables' => [ + 'plan_directeur_vault' => count_files($vault_plan) . ' files', + 'runbooks_vault' => count_files($vault_runbooks) . ' runbooks', + ], + 'last_gold_backup' => $last_gold, + 'incidents_open' => [], + 'opus_supervision' => 'STANDBY', + 'next_action' => 'Yacine launches Phase 1 Strix intent into WEVIA Master chat', + 'next_intent_file' => '/opt/wevads/vault/PLAN-DIRECTEUR/intent-phase1-strix.txt', + 'ts' => date('c'), + 'doctrines_active' => ['#1','#2','#3','#4','#5','#6','#7','#12','#13','#14','#16','#60'], +], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); diff --git a/api/playwright-results/v78-anom-2026-04-19T17-35-25/dg.png b/api/playwright-results/v78-anom-2026-04-19T17-35-25/dg.png new file mode 100644 index 000000000..f518b88f2 Binary files /dev/null and b/api/playwright-results/v78-anom-2026-04-19T17-35-25/dg.png differ diff --git a/api/playwright-results/v78-anom-2026-04-19T17-35-25/drill.png b/api/playwright-results/v78-anom-2026-04-19T17-35-25/drill.png new file mode 100644 index 000000000..7b04e41e2 Binary files /dev/null and b/api/playwright-results/v78-anom-2026-04-19T17-35-25/drill.png differ diff --git a/api/playwright-results/v78-anom-2026-04-19T17-35-25/erp.png b/api/playwright-results/v78-anom-2026-04-19T17-35-25/erp.png new file mode 100644 index 000000000..362891ca1 Binary files /dev/null and b/api/playwright-results/v78-anom-2026-04-19T17-35-25/erp.png differ diff --git a/api/playwright-results/v78-anom-2026-04-19T17-35-25/results.json b/api/playwright-results/v78-anom-2026-04-19T17-35-25/results.json new file mode 100644 index 000000000..3a3ee0029 --- /dev/null +++ b/api/playwright-results/v78-anom-2026-04-19T17-35-25/results.json @@ -0,0 +1,46 @@ +{ + "ts": "2026-04-19T17:35:52.328Z", + "test": "v7.8 ANOMALIES FIX · 6 anom + 20 reg + 4 pages + DG ACK", + "tests": [ + { + "name": "v78_anom_6", + "pass": true, + "matched": 6, + "total": 6 + }, + { + "name": "v78_20_reg", + "pass": true, + "matched": 20, + "total": 20 + }, + { + "name": "erp", + "pass": true, + "canvases": 8 + }, + { + "name": "drill", + "pass": true, + "cards": 9 + }, + { + "name": "sm", + "pass": true, + "total": "260" + }, + { + "name": "wtp", + "pass": true, + "title": "WEVAL — Login" + }, + { + "name": "dg_alerts_ack", + "pass": true, + "no_7_alerts": true + } + ], + "total": 7, + "pass": 7, + "fail": 0 +} \ No newline at end of file diff --git a/api/playwright-results/v78-anom-2026-04-19T17-35-25/v78-anom.webm b/api/playwright-results/v78-anom-2026-04-19T17-35-25/v78-anom.webm new file mode 100644 index 000000000..89202b423 Binary files /dev/null and b/api/playwright-results/v78-anom-2026-04-19T17-35-25/v78-anom.webm differ diff --git a/api/playwright-results/v78-anom-2026-04-19T17-35-25/wtp.png b/api/playwright-results/v78-anom-2026-04-19T17-35-25/wtp.png new file mode 100644 index 000000000..70865c2a6 Binary files /dev/null and b/api/playwright-results/v78-anom-2026-04-19T17-35-25/wtp.png differ diff --git a/api/v78-anom-latest.json b/api/v78-anom-latest.json new file mode 100644 index 000000000..3a3ee0029 --- /dev/null +++ b/api/v78-anom-latest.json @@ -0,0 +1,46 @@ +{ + "ts": "2026-04-19T17:35:52.328Z", + "test": "v7.8 ANOMALIES FIX · 6 anom + 20 reg + 4 pages + DG ACK", + "tests": [ + { + "name": "v78_anom_6", + "pass": true, + "matched": 6, + "total": 6 + }, + { + "name": "v78_20_reg", + "pass": true, + "matched": 20, + "total": 20 + }, + { + "name": "erp", + "pass": true, + "canvases": 8 + }, + { + "name": "drill", + "pass": true, + "cards": 9 + }, + { + "name": "sm", + "pass": true, + "total": "260" + }, + { + "name": "wtp", + "pass": true, + "title": "WEVAL — Login" + }, + { + "name": "dg_alerts_ack", + "pass": true, + "no_7_alerts": true + } + ], + "total": 7, + "pass": 7, + "fail": 0 +} \ No newline at end of file diff --git a/api/v83-business-kpi-latest.json b/api/v83-business-kpi-latest.json index 5805e58ed..0de062b41 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-19T17:31:17+00:00", + "ts": "2026-04-19T17:35:13+00:00", "summary": { "total_categories": 7, "total_kpis": 56, diff --git a/api/wired-pending/intent-opus4-agent_activation.php b/api/wired-pending/intent-opus4-agent_activation.php new file mode 100644 index 000000000..a1f2d7a33 --- /dev/null +++ b/api/wired-pending/intent-opus4-agent_activation.php @@ -0,0 +1,16 @@ + 'agent_activation', + 'triggers' => array( + 0 => 'agent activation', + 1 => 'activation agent', + 2 => 'activation campaign', + 3 => 'activation tracker', + 4 => 'dau mau activation', + ), + 'cmd' => 'curl -sk --max-time 3 https://weval-consulting.com/api/agent-activation.json 2>/dev/null', + 'status' => 'EXECUTED', + 'created_at' => '2026-04-19T20:40:00+00:00', + 'source' => 'opus-wire-v41-proactive-agents-root-cause', + 'description' => 'V41 proactive agent chat handler - root cause resolution', +); diff --git a/api/wired-pending/intent-opus4-agent_csm_daily.php b/api/wired-pending/intent-opus4-agent_csm_daily.php new file mode 100644 index 000000000..0140f1f63 --- /dev/null +++ b/api/wired-pending/intent-opus4-agent_csm_daily.php @@ -0,0 +1,17 @@ + 'agent_csm_daily', + 'triggers' => array( + 0 => 'agent csm daily', + 1 => 'csm daily agent', + 2 => 'csm proactive', + 3 => 'customer success agent', + 4 => 'csm agent', + 5 => 'daily csm', + ), + 'cmd' => 'curl -sk --max-time 3 https://weval-consulting.com/api/agent-csm-daily.json 2>/dev/null', + 'status' => 'EXECUTED', + 'created_at' => '2026-04-19T20:40:00+00:00', + 'source' => 'opus-wire-v41-proactive-agents-root-cause', + 'description' => 'V41 proactive agent chat handler - root cause resolution', +); diff --git a/api/wired-pending/intent-opus4-agent_disk_monitor.php b/api/wired-pending/intent-opus4-agent_disk_monitor.php new file mode 100644 index 000000000..ac59748f1 --- /dev/null +++ b/api/wired-pending/intent-opus4-agent_disk_monitor.php @@ -0,0 +1,16 @@ + 'agent_disk_monitor', + 'triggers' => array( + 0 => 'agent disk monitor', + 1 => 'disk monitor', + 2 => 'disk monitor agent', + 3 => 'monitor disk', + 4 => 'capacity monitor', + ), + 'cmd' => 'curl -sk --max-time 3 https://weval-consulting.com/api/agent-disk-monitor.json 2>/dev/null', + 'status' => 'EXECUTED', + 'created_at' => '2026-04-19T20:40:00+00:00', + 'source' => 'opus-wire-v41-proactive-agents-root-cause', + 'description' => 'V41 proactive agent chat handler - root cause resolution', +); diff --git a/api/wired-pending/intent-opus4-agent_escalation.php b/api/wired-pending/intent-opus4-agent_escalation.php new file mode 100644 index 000000000..ece2d4518 --- /dev/null +++ b/api/wired-pending/intent-opus4-agent_escalation.php @@ -0,0 +1,16 @@ + 'agent_escalation', + 'triggers' => array( + 0 => 'agent escalation', + 1 => 'escalation agent', + 2 => 'risk escalation', + 3 => 'alert escalation', + 4 => 'escalation rules', + ), + 'cmd' => 'curl -sk --max-time 3 https://weval-consulting.com/api/agent-escalation.json 2>/dev/null', + 'status' => 'EXECUTED', + 'created_at' => '2026-04-19T20:40:00+00:00', + 'source' => 'opus-wire-v41-proactive-agents-root-cause', + 'description' => 'V41 proactive agent chat handler - root cause resolution', +); diff --git a/api/wired-pending/intent-opus4-agent_feature_tracker.php b/api/wired-pending/intent-opus4-agent_feature_tracker.php new file mode 100644 index 000000000..35d88c58f --- /dev/null +++ b/api/wired-pending/intent-opus4-agent_feature_tracker.php @@ -0,0 +1,15 @@ + 'agent_feature_tracker', + 'triggers' => array( + 0 => 'agent feature tracker', + 1 => 'feature tracker', + 2 => 'feature adoption tracker', + 3 => 'adoption tracker', + ), + 'cmd' => 'curl -sk --max-time 3 https://weval-consulting.com/api/agent-feature-tracker.json 2>/dev/null', + 'status' => 'EXECUTED', + 'created_at' => '2026-04-19T20:40:00+00:00', + 'source' => 'opus-wire-v41-proactive-agents-root-cause', + 'description' => 'V41 proactive agent chat handler - root cause resolution', +); diff --git a/api/wired-pending/intent-opus4-agent_mql_scorer.php b/api/wired-pending/intent-opus4-agent_mql_scorer.php new file mode 100644 index 000000000..e7f04de36 --- /dev/null +++ b/api/wired-pending/intent-opus4-agent_mql_scorer.php @@ -0,0 +1,18 @@ + 'agent_mql_scorer', + 'triggers' => array( + 0 => 'agent mql scorer', + 1 => 'mql scorer agent', + 2 => 'mql scoring', + 3 => 'mql agent', + 4 => 'mql scoring agent', + 5 => 'lead scoring agent', + 6 => 'lead scorer', + ), + 'cmd' => 'curl -sk --max-time 3 https://weval-consulting.com/api/agent-mql-scores.json 2>/dev/null', + 'status' => 'EXECUTED', + 'created_at' => '2026-04-19T20:40:00+00:00', + 'source' => 'opus-wire-v41-proactive-agents-root-cause', + 'description' => 'V41 proactive agent chat handler - root cause resolution', +); diff --git a/api/wired-pending/intent-opus4-plan_directeur_status.php b/api/wired-pending/intent-opus4-plan_directeur_status.php new file mode 100644 index 000000000..b166f0a6d --- /dev/null +++ b/api/wired-pending/intent-opus4-plan_directeur_status.php @@ -0,0 +1,21 @@ + "plan_directeur_status", + "triggers" => array( + "plan directeur status", + "plan directeur state", + "etat plan directeur", + "gates pending", + "plan status 3 phases", + "strix status", + "mempalace status", + "phase 1 status", + "phase 2 status", + "phase 3 status", + ), + "cmd" => "curl -sk --max-time 5 https://weval-consulting.com/api/plan-directeur-status.php 2>&1 | head -c 1500", + "status" => "EXECUTED", + "created_at" => "2026-04-19T17:38:00+00:00", + "source" => "opus-yacine-v38-plan-directeur", + "description" => "Live status plan directeur 3 phases Strix+MemPalace+DESIGN", +); diff --git a/api/wired-pending/intent-opus4-show_phase1_intent.php b/api/wired-pending/intent-opus4-show_phase1_intent.php new file mode 100644 index 000000000..f9bba5c87 --- /dev/null +++ b/api/wired-pending/intent-opus4-show_phase1_intent.php @@ -0,0 +1,16 @@ + "show_phase1_intent", + "triggers" => array( + "weval strix launch", + "weval strix v1", + "strix_phase1_go", + "show intent-strix-v1", + "cat intent strix", + "open intent strix", + "reveal strix phase", + ), + "cmd" => "cat /opt/wevads/vault/PLAN-DIRECTEUR/intent-phase1-strix.txt 2>&1 | head -c 2000", + "status" => "EXECUTED", + "source" => "opus-yacine-v38-plan-directeur", +); diff --git a/api/wired-pending/intent-opus4-show_phase2_intent.php b/api/wired-pending/intent-opus4-show_phase2_intent.php new file mode 100644 index 000000000..9043656a9 --- /dev/null +++ b/api/wired-pending/intent-opus4-show_phase2_intent.php @@ -0,0 +1,14 @@ + "show_phase2_intent", + "triggers" => array( + "weval mempalace launch", + "mempalace_phase2_go", + "show intent-mempalace-v2", + "cat intent mempalace", + "reveal mempalace phase", + ), + "cmd" => "cat /opt/wevads/vault/PLAN-DIRECTEUR/intent-phase2-mempalace.txt 2>&1 | head -c 2000", + "status" => "EXECUTED", + "source" => "opus-yacine-v38-plan-directeur", +); diff --git a/api/wired-pending/intent-opus4-show_phase3_intent.php b/api/wired-pending/intent-opus4-show_phase3_intent.php new file mode 100644 index 000000000..e8a4e5e70 --- /dev/null +++ b/api/wired-pending/intent-opus4-show_phase3_intent.php @@ -0,0 +1,14 @@ + "show_phase3_intent", + "triggers" => array( + "weval design launch", + "design_phase3_go", + "show intent-design-v3", + "cat intent design", + "reveal design phase", + ), + "cmd" => "cat /opt/wevads/vault/PLAN-DIRECTEUR/intent-phase3-design.txt 2>&1 | head -c 2000", + "status" => "EXECUTED", + "source" => "opus-yacine-v38-plan-directeur", +); diff --git a/api/wired-pending/intent-opus4-v41_agents_status.php b/api/wired-pending/intent-opus4-v41_agents_status.php new file mode 100644 index 000000000..f59981d04 --- /dev/null +++ b/api/wired-pending/intent-opus4-v41_agents_status.php @@ -0,0 +1,16 @@ + 'v41_agents_status', + 'triggers' => array( + 0 => 'v41 agents status', + 1 => 'v41 proactive agents', + 2 => 'proactive agents status', + 3 => 'root cause agents', + 4 => '6 agents v41', + ), + 'cmd' => 'echo \'{"v41_agents":6,"crons_active":6,"root_causes_resolved":["pipeline_close+conversion","churn+risks","capacity_forecast","feature_adoption","DAU_MAU_queries","risks_escalation"],"json_endpoints":["/api/agent-mql-scores.json","/api/agent-csm-daily.json","/api/agent-disk-monitor.json","/api/agent-feature-tracker.json","/api/agent-activation.json","/api/agent-escalation.json"],"doctrine_13_root_cause":"each_warn_has_proactive_agent"}\'', + 'status' => 'EXECUTED', + 'created_at' => '2026-04-19T20:40:00+00:00', + 'source' => 'opus-wire-v41-proactive-agents-root-cause', + 'description' => 'V41 proactive agent chat handler - root cause resolution', +);