diff --git a/agents-enterprise.html b/.archive-20260417/agents-enterprise.html
similarity index 100%
rename from agents-enterprise.html
rename to .archive-20260417/agents-enterprise.html
diff --git a/agents-sim.html b/.archive-20260417/agents-sim.html
similarity index 100%
rename from agents-sim.html
rename to .archive-20260417/agents-sim.html
diff --git a/director-test.html b/.archive-20260417/director-test.html
similarity index 100%
rename from director-test.html
rename to .archive-20260417/director-test.html
diff --git a/ethica-drill.html b/.archive-20260417/ethica-drill.html
similarity index 100%
rename from ethica-drill.html
rename to .archive-20260417/ethica-drill.html
diff --git a/ethica-hcp.html b/.archive-20260417/ethica-hcp.html
similarity index 100%
rename from ethica-hcp.html
rename to .archive-20260417/ethica-hcp.html
diff --git a/ethica-sms.html b/.archive-20260417/ethica-sms.html
similarity index 100%
rename from ethica-sms.html
rename to .archive-20260417/ethica-sms.html
diff --git a/master-test.html b/.archive-20260417/master-test.html
similarity index 100%
rename from master-test.html
rename to .archive-20260417/master-test.html
diff --git a/wevia-dashboard-test.html b/.archive-20260417/wevia-dashboard-test.html
similarity index 100%
rename from wevia-dashboard-test.html
rename to .archive-20260417/wevia-dashboard-test.html
diff --git a/wevia-test-30mars.html b/.archive-20260417/wevia-test-30mars.html
similarity index 100%
rename from wevia-test-30mars.html
rename to .archive-20260417/wevia-test-30mars.html
diff --git a/api/_fix_spinner.php b/api/_fix_spinner.php
index 30a38fdc3..275bc9dbc 100644
--- a/api/_fix_spinner.php
+++ b/api/_fix_spinner.php
@@ -11,4 +11,3 @@ $c = str_replace('', '', $c);
file_put_contents($f, $c);
echo json_encode(['ok'=>true, 'size'=>strlen($c), 'spnr'=>substr_count($c,'spnr'), 'kh_sp'=>substr_count($c,'.kh.sp')]);
-FIXEOF 2>&1
\ No newline at end of file
diff --git a/api/architecture-scan.json b/api/architecture-scan.json
index bfcb88a49..e69de29bb 100644
--- a/api/architecture-scan.json
+++ b/api/architecture-scan.json
@@ -1,1889 +0,0 @@
-{
- "generated": "2026-04-16 22:30:01",
- "version": "1.0",
- "servers": [
- {
- "id": "S204",
- "ip": "204.168.152.13",
- "private": "10.1.0.2",
- "role": "PRIMARY",
- "ssh": 49222,
- "disk_pct": 84,
- "disk_avail": "24G",
- "uptime": "up 2 days, 12 hours, 38 minutes",
- "nginx": "active",
- "php_fpm": "active",
- "php_version": "8.5.5"
- },
- {
- "id": "S95",
- "ip": "95.216.167.89",
- "private": "10.1.0.3",
- "role": "WEVADS Arsenal",
- "ssh": 22,
- "disk_pct": 86,
- "disk_avail": "22G",
- "sentinel": 1
- },
- {
- "id": "S151",
- "ip": "151.80.235.110",
- "private": null,
- "role": "DR\/Tracking OVH",
- "ssh": 22
- }
- ],
- "docker": [
- {
- "name": "loki",
- "status": "Up 10 hours",
- "ports": ""
- },
- {
- "name": "listmonk",
- "status": "Up 13 hours",
- "ports": ""
- },
- {
- "name": "plausible-plausible-1",
- "status": "Up 13 hours",
- "ports": ""
- },
- {
- "name": "plausible-plausible-db-1",
- "status": "Up 13 hours",
- "ports": ""
- },
- {
- "name": "plausible-plausible-events-db-1",
- "status": "Up 13 hours",
- "ports": ""
- },
- {
- "name": "n8n-docker-n8n-1",
- "status": "Up 19 hours",
- "ports": ""
- },
- {
- "name": "mattermost-docker-mm-db-1",
- "status": "Up 19 hours",
- "ports": ""
- },
- {
- "name": "mattermost-docker-mattermost-1",
- "status": "Up 19 hours (healthy)",
- "ports": ""
- },
- {
- "name": "twenty",
- "status": "Up 12 hours",
- "ports": ""
- },
- {
- "name": "twenty-redis",
- "status": "Up 19 hours",
- "ports": ""
- },
- {
- "name": "langfuse",
- "status": "Up 22 hours",
- "ports": ""
- },
- {
- "name": "redis-weval",
- "status": "Up 2 days",
- "ports": ""
- },
- {
- "name": "gitea",
- "status": "Up 2 days",
- "ports": ""
- },
- {
- "name": "node-exporter",
- "status": "Up 2 days",
- "ports": ""
- },
- {
- "name": "prometheus",
- "status": "Up 2 days",
- "ports": ""
- },
- {
- "name": "searxng",
- "status": "Up 2 days",
- "ports": ""
- },
- {
- "name": "uptime-kuma",
- "status": "Up 2 days (healthy)",
- "ports": ""
- },
- {
- "name": "vaultwarden",
- "status": "Up 2 days (healthy)",
- "ports": ""
- },
- {
- "name": "qdrant",
- "status": "Up 2 days",
- "ports": ""
- }
- ],
- "domains": [
- {
- "file": "analytics.weval-consulting.com",
- "server_names": [
- "analytics.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "code-weval",
- "server_names": [
- "code.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "crm.weval-consulting.com",
- "server_names": [
- "crm.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "ethica",
- "server_names": [
- "ethica.wevup.app",
- "consent.wevup.app"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "git.weval-consulting.com",
- "server_names": [
- "git.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "langfuse.weval-consulting.com",
- "server_names": [
- "langfuse.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "mirofish.weval-consulting.com",
- "server_names": [
- "mirofish.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "mm.weval-consulting.com",
- "server_names": [
- "mm.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "monitor.weval-consulting.com",
- "server_names": [
- "monitor.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "n8n.weval-consulting.com",
- "server_names": [
- "n8n.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "paperclip.weval-consulting.com",
- "server_names": [
- "paperclip.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "wevads.weval-consulting.com",
- "server_names": [
- "wevads.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "wevads.weval-consulting.com.gold-16avr-pre-fallback",
- "server_names": [
- "wevads.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- },
- {
- "file": "weval-consulting",
- "server_names": [
- "weval-consulting.com",
- "www.weval-consulting.com"
- ],
- "ssl": true,
- "php-session": false,
- "php-session_paths": false,
- "auth_complete": false
- }
- ],
- "screens": {
- "s204_html": 186,
- "s204_products": 88,
- "s204_api_php": 463,
- "s204_wevia_php": 18,
- "s95_arsenal_html": 1377,
- "s95_arsenal_api": 377
- },
- "auth": {
- "system": "PHP Session Auth",
- "authentik": "REMOVED",
- "pass": 24,
- "fail": 0
- },
- "databases": {
- "s204": [
- "postgres",
- "adx_system",
- "wevia_db",
- "twenty_db",
- "mattermost_db",
- "deerflow",
- "nocodb",
- "paperclip",
- "langfuse"
- ],
- "key_tables": {
- "kb_learnings": 5115,
- "kb_documents": 0,
- "ethica_medecins": 50004,
- "enterprise_agents": 0
- }
- },
- "ollama": [
- {
- "name": "nomic-embed-text:latest",
- "family": "nomic-bert",
- "params": "137M",
- "quant": "F16",
- "size_gb": 0.3
- },
- {
- "name": "weval-brain-v3:latest",
- "family": "qwen3",
- "params": "4.0B",
- "quant": "Q4_K_M",
- "size_gb": 2.5
- },
- {
- "name": "nomic-embed-text:v1.5",
- "family": "nomic-bert",
- "params": "137M",
- "quant": "F16",
- "size_gb": 0.3
- },
- {
- "name": "qwen3:4b",
- "family": "qwen3",
- "params": "4.0B",
- "quant": "Q4_K_M",
- "size_gb": 2.5
- },
- {
- "name": "all-minilm:latest",
- "family": "bert",
- "params": "23M",
- "quant": "F16",
- "size_gb": 0
- }
- ],
- "qdrant": [
- {
- "name": "weval_skills",
- "vectors": 14380
- },
- {
- "name": "wevia_brain_knowledge",
- "vectors": 294
- },
- {
- "name": "obsidian_vault",
- "vectors": 46
- },
- {
- "name": "wevia_memory_768",
- "vectors": 6
- },
- {
- "name": "wevia_kb_768",
- "vectors": 232
- },
- {
- "name": "wevia_kb",
- "vectors": 386
- },
- {
- "name": "wevia_memory",
- "vectors": 48
- },
- {
- "name": "wevia_learnings",
- "vectors": 1736
- }
- ],
- "ai_providers": [
- {
- "name": "Cerebras",
- "model": "Qwen-235B",
- "tier": "T1",
- "status": "active"
- },
- {
- "name": "Groq",
- "model": "Llama-4-Scout",
- "tier": "T1",
- "status": "active"
- },
- {
- "name": "SambaNova",
- "model": "Llama-3.3-70B",
- "tier": "T1",
- "status": "active"
- },
- {
- "name": "NVIDIA NIM",
- "model": "Llama-3.1-70B",
- "tier": "T1",
- "status": "active"
- },
- {
- "name": "Together",
- "model": "Qwen-2.5-72B",
- "tier": "T1",
- "status": "active"
- },
- {
- "name": "Mistral",
- "model": "Mistral-Small",
- "tier": "T2",
- "status": "active"
- },
- {
- "name": "Cohere",
- "model": "Command-R+",
- "tier": "T2",
- "status": "active"
- },
- {
- "name": "Gemini",
- "model": "Gemini-2.0-Flash",
- "tier": "T2",
- "status": "active"
- },
- {
- "name": "DeepSeek",
- "model": "DeepSeek-Chat",
- "tier": "T2",
- "status": "active"
- },
- {
- "name": "OpenRouter",
- "model": "Multi",
- "tier": "T2",
- "status": "active"
- },
- {
- "name": "Alibaba",
- "model": "Qwen-Max",
- "tier": "T2",
- "status": "active"
- },
- {
- "name": "HuggingFace",
- "model": "Inference",
- "tier": "T3",
- "status": "active"
- },
- {
- "name": "Replicate",
- "model": "Multi",
- "tier": "T3",
- "status": "active"
- },
- {
- "name": "ZhiPu",
- "model": "GLM-4",
- "tier": "T3",
- "status": "active"
- },
- {
- "name": "Ollama Local",
- "model": "weval-brain-v3",
- "tier": "T0",
- "status": "active"
- }
- ],
- "crons": {
- "s204_root": 0,
- "s204_www": 5,
- "s204_total": 5,
- "key_crons": [
- {
- "name": "L99 Master",
- "freq": "*\/30",
- "target": "l99-master.py"
- },
- {
- "name": "Autonomous Engine",
- "freq": "*\/5",
- "target": "wevia-master-autonomous"
- },
- {
- "name": "L99 Pipeline",
- "freq": "*\/15",
- "target": "l99-pipeline.py"
- },
- {
- "name": "L99 Alive",
- "freq": "*\/10",
- "target": "l99-alive.py"
- },
- {
- "name": "Infra Guardian",
- "freq": "*\/5",
- "target": "infra-guardian.sh"
- },
- {
- "name": "Blade Watchdog",
- "freq": "*\/5",
- "target": "blade-watchdog.php"
- },
- {
- "name": "RAG Ingest",
- "freq": "*\/30",
- "target": "wevia-rag-ingest.sh"
- },
- {
- "name": "Blade Orchestrator",
- "freq": "*\/30",
- "target": "blade-orchestrator.sh"
- },
- {
- "name": "WEVIA Dream",
- "freq": "*\/30",
- "target": "wevia-dream-cron.php"
- },
- {
- "name": "Port Protection",
- "freq": "*\/5",
- "target": "port-protection"
- },
- {
- "name": "Watchdog",
- "freq": "*\/3",
- "target": "weval-watchdog.php"
- },
- {
- "name": "Ethica Enrich",
- "freq": "daily 01h",
- "target": "ethica-enrich-v4.py"
- },
- {
- "name": "Daily Brief",
- "freq": "daily 07h",
- "target": "weval-daily-brief.py"
- }
- ]
- },
- "wiki": {
- "total_entries": 5116,
- "categories": [
- {
- "category": "AUTO-FIX",
- "cnt": "2793"
- },
- {
- "category": "TOPOLOGY",
- "cnt": "967"
- },
- {
- "category": "DISCOVERY",
- "cnt": "610"
- },
- {
- "category": "SYSTEMATIC",
- "cnt": "204"
- },
- {
- "category": "L99-FULLSCAN",
- "cnt": "80"
- },
- {
- "category": "INFRA",
- "cnt": "74"
- },
- {
- "category": "CONTROL-TOWER",
- "cnt": "42"
- },
- {
- "category": "ALERT",
- "cnt": "34"
- },
- {
- "category": "AGENT",
- "cnt": "20"
- },
- {
- "category": "L99-SCAN",
- "cnt": "12"
- },
- {
- "category": "FIX",
- "cnt": "10"
- },
- {
- "category": "FLEET",
- "cnt": "8"
- },
- {
- "category": "MASTER-INTENT",
- "cnt": "6"
- },
- {
- "category": "SESSION-5AVR",
- "cnt": "5"
- },
- {
- "category": "Maroc",
- "cnt": "5"
- },
- {
- "category": "Analyse",
- "cnt": "5"
- },
- {
- "category": "AUTH",
- "cnt": "5"
- },
- {
- "category": "claude_2026",
- "cnt": "4"
- },
- {
- "category": "SERVICES",
- "cnt": "4"
- },
- {
- "category": "WEVAL Consulting",
- "cnt": "4"
- },
- {
- "category": "Intelligence Artificielle",
- "cnt": "3"
- },
- {
- "category": "PARADIGM",
- "cnt": "3"
- },
- {
- "category": "INTEGRATION",
- "cnt": "3"
- },
- {
- "category": "FIX-CRITIQUE",
- "cnt": "3"
- },
- {
- "category": "Voici",
- "cnt": "2"
- },
- {
- "category": "Vous",
- "cnt": "2"
- },
- {
- "category": "Pouvez",
- "cnt": "2"
- },
- {
- "category": "Image",
- "cnt": "2"
- },
- {
- "category": "Contexte",
- "cnt": "2"
- },
- {
- "category": "L99-EXHAUSTIVE",
- "cnt": "2"
- },
- {
- "category": "L99-GAP",
- "cnt": "2"
- },
- {
- "category": "WEVAL Consulting Casablanca",
- "cnt": "2"
- },
- {
- "category": "Test",
- "cnt": "2"
- },
- {
- "category": "Salut",
- "cnt": "2"
- },
- {
- "category": "L99-E2E",
- "cnt": "2"
- },
- {
- "category": "Document",
- "cnt": "2"
- },
- {
- "category": "PROVIDERS",
- "cnt": "2"
- },
- {
- "category": "Bien",
- "cnt": "2"
- },
- {
- "category": "WEVIA",
- "cnt": "2"
- },
- {
- "category": "Diagramme",
- "cnt": "2"
- },
- {
- "category": "Comparaison",
- "cnt": "2"
- },
- {
- "category": "L99-MEGA",
- "cnt": "2"
- },
- {
- "category": "QUALITY",
- "cnt": "2"
- },
- {
- "category": "Cependant",
- "cnt": "2"
- },
- {
- "category": "MONITORING",
- "cnt": "2"
- },
- {
- "category": "L99",
- "cnt": "2"
- },
- {
- "category": "Introduction",
- "cnt": "2"
- },
- {
- "category": "Pour",
- "cnt": "2"
- },
- {
- "category": "Casablanca",
- "cnt": "2"
- },
- {
- "category": "Pourriez",
- "cnt": "2"
- },
- {
- "category": "Vistex BTP Signavio",
- "cnt": "1"
- },
- {
- "category": "Conduite",
- "cnt": "1"
- },
- {
- "category": "DMAIC",
- "cnt": "1"
- },
- {
- "category": "Industrie",
- "cnt": "1"
- },
- {
- "category": "Proposition",
- "cnt": "1"
- },
- {
- "category": "Accueil\nBienvenue",
- "cnt": "1"
- },
- {
- "category": "Logo",
- "cnt": "1"
- },
- {
- "category": "SAP ECC",
- "cnt": "1"
- },
- {
- "category": "Votre",
- "cnt": "1"
- },
- {
- "category": "Probl",
- "cnt": "1"
- },
- {
- "category": "ANTI-REGRESSION",
- "cnt": "1"
- },
- {
- "category": "Explique",
- "cnt": "1"
- },
- {
- "category": "Zero Trust",
- "cnt": "1"
- },
- {
- "category": "Augmented Generation",
- "cnt": "1"
- },
- {
- "category": "RLHF",
- "cnt": "1"
- },
- {
- "category": "Service",
- "cnt": "1"
- },
- {
- "category": "Transformer",
- "cnt": "1"
- },
- {
- "category": "Bonjour Bonjour",
- "cnt": "1"
- },
- {
- "category": "Transformation",
- "cnt": "1"
- },
- {
- "category": "Audit",
- "cnt": "1"
- },
- {
- "category": "WEVAL",
- "cnt": "1"
- },
- {
- "category": "Strat",
- "cnt": "1"
- },
- {
- "category": "Maghreb",
- "cnt": "1"
- },
- {
- "category": "ERP SAP",
- "cnt": "1"
- },
- {
- "category": "Quelle",
- "cnt": "1"
- },
- {
- "category": "Oracle",
- "cnt": "1"
- },
- {
- "category": "Data",
- "cnt": "1"
- },
- {
- "category": "Donn",
- "cnt": "1"
- },
- {
- "category": "Quel",
- "cnt": "1"
- },
- {
- "category": "Syst",
- "cnt": "1"
- },
- {
- "category": "Ahmed",
- "cnt": "1"
- },
- {
- "category": "UiPath",
- "cnt": "1"
- },
- {
- "category": "Niveau PhD",
- "cnt": "1"
- },
- {
- "category": "CLEANUP",
- "cnt": "1"
- },
- {
- "category": "Notre",
- "cnt": "1"
- },
- {
- "category": "TOUTES",
- "cnt": "1"
- },
- {
- "category": "Maroc DDMRP OTIF",
- "cnt": "1"
- },
- {
- "category": "Crit",
- "cnt": "1"
- },
- {
- "category": "SAP Vistex Revenue Management",
- "cnt": "1"
- },
- {
- "category": "Fine",
- "cnt": "1"
- },
- {
- "category": "Compare AWS Azure GCP",
- "cnt": "1"
- },
- {
- "category": "Healthcare",
- "cnt": "1"
- },
- {
- "category": "BLADE",
- "cnt": "1"
- },
- {
- "category": "Plan",
- "cnt": "1"
- },
- {
- "category": "Conseil",
- "cnt": "1"
- },
- {
- "category": "Nous",
- "cnt": "1"
- },
- {
- "category": "Zero Trust SOC SIEM",
- "cnt": "1"
- },
- {
- "category": "Amazon Web Services",
- "cnt": "1"
- },
- {
- "category": "Retiens",
- "cnt": "1"
- },
- {
- "category": "Diff",
- "cnt": "1"
- },
- {
- "category": "QDRANT",
- "cnt": "1"
- },
- {
- "category": "MITRE ATT",
- "cnt": "1"
- },
- {
- "category": "FMCG",
- "cnt": "1"
- },
- {
- "category": "Supply",
- "cnt": "1"
- },
- {
- "category": "Exercice",
- "cnt": "1"
- },
- {
- "category": "Redige",
- "cnt": "1"
- },
- {
- "category": "Supply Chain",
- "cnt": "1"
- },
- {
- "category": "Quels",
- "cnt": "1"
- },
- {
- "category": "Propose",
- "cnt": "1"
- },
- {
- "category": "Plateforme",
- "cnt": "1"
- },
- {
- "category": "Cyber",
- "cnt": "1"
- },
- {
- "category": "Tableau",
- "cnt": "1"
- },
- {
- "category": "Migration SAP",
- "cnt": "1"
- },
- {
- "category": "AUTH-AGENT",
- "cnt": "1"
- },
- {
- "category": "Fais",
- "cnt": "1"
- },
- {
- "category": "Iran",
- "cnt": "1"
- },
- {
- "category": "OLLAMA",
- "cnt": "1"
- },
- {
- "category": "Reessayez",
- "cnt": "1"
- },
- {
- "category": "MORNE WEVAL",
- "cnt": "1"
- },
- {
- "category": "Analyse SWOT",
- "cnt": "1"
- },
- {
- "category": "SAP Vistex",
- "cnt": "1"
- },
- {
- "category": "IoT WMS",
- "cnt": "1"
- },
- {
- "category": "Industry",
- "cnt": "1"
- },
- {
- "category": "What",
- "cnt": "1"
- },
- {
- "category": "Strategie",
- "cnt": "1"
- },
- {
- "category": "Rappelle",
- "cnt": "1"
- },
- {
- "category": "DMAIC Six Sigma",
- "cnt": "1"
- },
- {
- "category": "Avantages",
- "cnt": "1"
- },
- {
- "category": "Explique RLHF",
- "cnt": "1"
- },
- {
- "category": "Huawei Cloud",
- "cnt": "1"
- },
- {
- "category": "PMO SAFe",
- "cnt": "1"
- },
- {
- "category": "Migration SAP ECC",
- "cnt": "1"
- },
- {
- "category": "team_work",
- "cnt": "1"
- },
- {
- "category": "Bonjour Pr",
- "cnt": "1"
- },
- {
- "category": "Maroc DDMRP OTIF WMS TMS",
- "cnt": "1"
- },
- {
- "category": "Architecture",
- "cnt": "1"
- },
- {
- "category": "Framework NIST",
- "cnt": "1"
- },
- {
- "category": "Automatiser",
- "cnt": "1"
- },
- {
- "category": "Compare RLHF DPO Constitutional AI",
- "cnt": "1"
- },
- {
- "category": "Genere",
- "cnt": "1"
- },
- {
- "category": "Elle",
- "cnt": "1"
- },
- {
- "category": "Constitutional AI",
- "cnt": "1"
- },
- {
- "category": "Brownfield",
- "cnt": "1"
- },
- {
- "category": "Confirmation",
- "cnt": "1"
- },
- {
- "category": "Architecture IA",
- "cnt": "1"
- },
- {
- "category": "KPIs",
- "cnt": "1"
- },
- {
- "category": "Quelles",
- "cnt": "1"
- },
- {
- "category": "SWOT",
- "cnt": "1"
- },
- {
- "category": "Comparons",
- "cnt": "1"
- },
- {
- "category": "Services",
- "cnt": "1"
- },
- {
- "category": "Maroc TMA",
- "cnt": "1"
- },
- {
- "category": "Contraintes",
- "cnt": "1"
- },
- {
- "category": "Intelligence",
- "cnt": "1"
- },
- {
- "category": "Donne",
- "cnt": "1"
- },
- {
- "category": "Vistex",
- "cnt": "1"
- },
- {
- "category": "Maroc CMI",
- "cnt": "1"
- },
- {
- "category": "Audite",
- "cnt": "1"
- },
- {
- "category": "Aide",
- "cnt": "1"
- },
- {
- "category": "DKIM DMARC",
- "cnt": "1"
- },
- {
- "category": "Zero Trust SOC",
- "cnt": "1"
- },
- {
- "category": "Bonjour Yacine",
- "cnt": "1"
- },
- {
- "category": "Workshop",
- "cnt": "1"
- },
- {
- "category": "Compare RLHF DPO GRPO Constitutional AI",
- "cnt": "1"
- },
- {
- "category": "Comparatif ERP PME",
- "cnt": "1"
- },
- {
- "category": "Programme",
- "cnt": "1"
- },
- {
- "category": "SAP MM",
- "cnt": "1"
- },
- {
- "category": "Phases",
- "cnt": "1"
- },
- {
- "category": "Autres",
- "cnt": "1"
- },
- {
- "category": "FHIR",
- "cnt": "1"
- },
- {
- "category": "SESSION-7AVR",
- "cnt": "1"
- },
- {
- "category": "FHIR IA",
- "cnt": "1"
- },
- {
- "category": "MLOps",
- "cnt": "1"
- },
- {
- "category": "MIROFISH",
- "cnt": "1"
- },
- {
- "category": "Ecris",
- "cnt": "1"
- },
- {
- "category": "Suite",
- "cnt": "1"
- },
- {
- "category": "Nearshore",
- "cnt": "1"
- },
- {
- "category": "Bienvenue",
- "cnt": "1"
- },
- {
- "category": "Retrieval",
- "cnt": "1"
- },
- {
- "category": "KYC BAM",
- "cnt": "1"
- },
- {
- "category": "Afrique",
- "cnt": "1"
- },
- {
- "category": "Dans",
- "cnt": "1"
- },
- {
- "category": "Azure",
- "cnt": "1"
- },
- {
- "category": "Budget",
- "cnt": "1"
- },
- {
- "category": "INSTRUCTION SYSTEME",
- "cnt": "1"
- },
- {
- "category": "CNDP",
- "cnt": "1"
- },
- {
- "category": "Compare",
- "cnt": "1"
- },
- {
- "category": "HubSpot",
- "cnt": "1"
- },
- {
- "category": "Control",
- "cnt": "1"
- },
- {
- "category": "SESSION-6AVR",
- "cnt": "1"
- },
- {
- "category": "Bonjour Salut",
- "cnt": "1"
- },
- {
- "category": "Maroc KPIs OTIF",
- "cnt": "1"
- },
- {
- "category": "Vistex SAP",
- "cnt": "1"
- },
- {
- "category": "Traduis",
- "cnt": "1"
- },
- {
- "category": "Maroc IoT WMS",
- "cnt": "1"
- },
- {
- "category": "SaaS",
- "cnt": "1"
- },
- {
- "category": "CODE BLOCK",
- "cnt": "1"
- },
- {
- "category": "Cahier",
- "cnt": "1"
- },
- {
- "category": "Maroc FHIR",
- "cnt": "1"
- },
- {
- "category": "DESIGN",
- "cnt": "1"
- },
- {
- "category": "Compare RLHF",
- "cnt": "1"
- },
- {
- "category": "Dynamics",
- "cnt": "1"
- },
- {
- "category": "Python",
- "cnt": "1"
- },
- {
- "category": "FORMAT OBLIGATOIRE",
- "cnt": "1"
- },
- {
- "category": "SAP ERP",
- "cnt": "1"
- },
- {
- "category": "INFRA-SESSION",
- "cnt": "1"
- },
- {
- "category": "Cette",
- "cnt": "1"
- },
- {
- "category": "OWASP Top",
- "cnt": "1"
- },
- {
- "category": "Logo Weval",
- "cnt": "1"
- },
- {
- "category": "ADKAR",
- "cnt": "1"
- },
- {
- "category": "GENERAL",
- "cnt": "1"
- }
- ],
- "qdrant_vectors": 386
- },
- "applications": [
- {
- "name": "WEVIA Chatbot",
- "type": "AI",
- "url": "\/wevia",
- "port": null,
- "server": "S204",
- "auth": "public"
- },
- {
- "name": "WEVIA Admin",
- "type": "Admin",
- "url": "\/wevia-admin",
- "port": null,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "WEVIA Life",
- "type": "Email AI",
- "url": "\/products\/wevialife-app.html",
- "port": null,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "Workspace",
- "type": "Hub",
- "url": "\/products\/workspace.html",
- "port": null,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "Arsenal\/WEVADS",
- "type": "Email Marketing",
- "url": "wevads.weval-consulting.com",
- "port": 5890,
- "server": "S95",
- "auth": "php-session"
- },
- {
- "name": "ADX\/iResponse",
- "type": "Email Platform",
- "url": "wevads.weval-consulting.com",
- "port": 5821,
- "server": "S95",
- "auth": "iResponse"
- },
- {
- "name": "Ethica HCP",
- "type": "Healthcare B2B",
- "url": "consent.wevup.app",
- "port": null,
- "server": "S204",
- "auth": "ethica-auth"
- },
- {
- "name": "CRM (Twenty)",
- "type": "CRM",
- "url": "crm.weval-consulting.com",
- "port": 3000,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "Mattermost",
- "type": "Chat",
- "url": "mm.weval-consulting.com",
- "port": 8065,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "n8n",
- "type": "Automation",
- "url": "n8n.weval-consulting.com",
- "port": 5678,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "Uptime Kuma",
- "type": "Monitoring",
- "url": "monitor.weval-consulting.com",
- "port": 3001,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "Plausible",
- "type": "Analytics",
- "url": "analytics.weval-consulting.com",
- "port": 8000,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "DeerFlow",
- "type": "AI Research",
- "url": "deerflow.weval-consulting.com",
- "port": 2024,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "SearXNG",
- "type": "Search",
- "url": null,
- "port": 8888,
- "server": "S204",
- "auth": "internal"
- },
- {
- "name": "Qdrant",
- "type": "Vector DB",
- "url": null,
- "port": 6333,
- "server": "S204",
- "auth": "internal"
- },
- {
- "name": "Ollama",
- "type": "LLM Runtime",
- "url": null,
- "port": 11434,
- "server": "S204",
- "auth": "internal"
- },
- {
- "name": "Flowise",
- "type": "AI Flow",
- "url": null,
- "port": 3088,
- "server": "S204",
- "auth": "internal"
- },
- {
- "name": "MiroFish",
- "type": "AI Agent",
- "url": "mirofish.weval-consulting.com",
- "port": 3050,
- "server": "S204",
- "auth": "php-session"
- },
- {
- "name": "Open WebUI",
- "type": "LLM UI",
- "url": null,
- "port": 3002,
- "server": "S204",
- "auth": "internal"
- },
- {
- "name": "Vaultwarden",
- "type": "Passwords",
- "url": null,
- "port": 8222,
- "server": "S204",
- "auth": "internal"
- },
- {
- "name": "Prometheus",
- "type": "Metrics",
- "url": null,
- "port": 9000,
- "server": "S204",
- "auth": "internal"
- },
- {
- "name": "PMTA",
- "type": "MTA",
- "url": null,
- "port": 25,
- "server": "S95",
- "auth": "internal"
- },
- {
- "name": "KumoMTA",
- "type": "MTA",
- "url": null,
- "port": 8010,
- "server": "S95",
- "auth": "internal"
- },
- {
- "name": "Sentinel",
- "type": "Orchestrator",
- "url": null,
- "port": 5890,
- "server": "S95",
- "auth": "internal"
- }
- ],
- "cloud": [
- {
- "provider": "Hetzner",
- "role": "S204+S95",
- "type": "Bare Metal",
- "region": "Germany"
- },
- {
- "provider": "OVH",
- "role": "S151 DR\/Tracking",
- "type": "VPS",
- "region": "France"
- },
- {
- "provider": "Cloudflare",
- "role": "CDN+DNS+WAF",
- "type": "SaaS",
- "region": "Global"
- },
- {
- "provider": "Huawei Cloud",
- "role": "Partner Certifié",
- "type": "IaaS",
- "region": "MENA"
- },
- {
- "provider": "Scaleway",
- "role": "GPU Inference",
- "type": "IaaS",
- "region": "France"
- }
- ],
- "partnerships": [
- "SAP Gold Partner",
- "Huawei Cloud",
- "Vistex",
- "IQVIA",
- "Scaleway"
- ],
- "ux_agent": {
- "pass": 3,
- "fail": 0,
- "warn": 0,
- "total": 3,
- "timestamp": "",
- "gauge_health_center": "X=0px Y=0px",
- "gauge_auto_center": "X=0px Y=0px",
- "design_tokens": {
- "bg": "#09090b",
- "card": "#18181b",
- "font": "Inter"
- }
- },
- "l99": {
- "master": {
- "total": 93,
- "pass": 89,
- "fail": 2,
- "timestamp": "2026-04-07T01:32:48.454012"
- },
- "auth": {
- "pass": 24,
- "fail": 0
- }
- },
- "cortex": {
- "fast_lines": 3620,
- "router_lines": 6152,
- "router_functions": 17,
- "today_requests": 6,
- "today_cost": 0,
- "avg_latency_ms": 2729,
- "top_provider": "cerebras",
- "providers_used": 2
- },
- "optimizations": {
- "recent_commits": [],
- "auto_fixes": [
- {
- "fact": "AUTONOMY 16Apr 13:05: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 15:05:04.60848"
- },
- {
- "fact": "AUTONOMY 16Apr 13:00: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 15:00:08.207369"
- },
- {
- "fact": "AUTONOMY 16Apr 12:55: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 14:55:06.739328"
- },
- {
- "fact": "AUTONOMY 16Apr 12:50: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 14:50:05.137377"
- },
- {
- "fact": "AUTONOMY 16Apr 12:45: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 14:45:05.471488"
- },
- {
- "fact": "AUTONOMY 16Apr 12:42: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 14:42:48.719827"
- },
- {
- "fact": "AUTONOMY 16Apr 12:40: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 14:40:07.741135"
- },
- {
- "fact": "AUTONOMY 16Apr 12:35: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 14:35:04.567241"
- },
- {
- "fact": "AUTONOMY 16Apr 12:15: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 14:15:04.360583"
- },
- {
- "fact": "AUTONOMY 16Apr 12:10: 1 fixes. Disk light cleanup 85%",
- "created_at": "2026-04-16 14:10:05.014109"
- }
- ],
- "architecture_decisions": [
- {
- "fact": "Crons: root=51 www-data=55 cron.d=72 total=178",
- "created_at": "2026-04-13 00:30:48.940882"
- },
- {
- "fact": "Crons: root=51 www-data=55 cron.d=70 total=176",
- "created_at": "2026-04-12 20:30:07.357094"
- },
- {
- "fact": "Crons: root=51 www-data=55 cron.d=70 total=176",
- "created_at": "2026-04-12 18:30:05.962933"
- },
- {
- "fact": "Crons: root=51 www-data=55 cron.d=70 total=176",
- "created_at": "2026-04-12 16:30:13.56815"
- },
- {
- "fact": "Crons: root=51 www-data=57 cron.d=70 total=178",
- "created_at": "2026-04-12 14:30:11.101941"
- },
- {
- "fact": "Crons: root=51 www-data=57 cron.d=70 total=178",
- "created_at": "2026-04-12 12:30:08.795912"
- },
- {
- "fact": "Crons: root=51 www-data=57 cron.d=70 total=178",
- "created_at": "2026-04-12 10:30:04.181935"
- },
- {
- "fact": "Crons: root=51 www-data=57 cron.d=70 total=178",
- "created_at": "2026-04-12 08:30:04.196728"
- },
- {
- "fact": "Crons: root=51 www-data=57 cron.d=70 total=178",
- "created_at": "2026-04-12 06:30:04.792965"
- },
- {
- "fact": "Crons: root=51 www-data=57 cron.d=70 total=178",
- "created_at": "2026-04-12 04:30:06.68899"
- },
- {
- "fact": "Crons: root=51 www-data=57 cron.d=70 total=178",
- "created_at": "2026-04-12 02:30:07.207832"
- },
- {
- "fact": "Crons: root=51 www-data=54 cron.d=69 total=174",
- "created_at": "2026-04-12 00:30:13.084556"
- },
- {
- "fact": "Crons: root=50 www-data=52 cron.d=69 total=171",
- "created_at": "2026-04-11 22:30:07.088896"
- },
- {
- "fact": "Crons: root=50 www-data=52 cron.d=69 total=171",
- "created_at": "2026-04-11 20:30:08.94444"
- },
- {
- "fact": "Crons: root=50 www-data=48 cron.d=69 total=167",
- "created_at": "2026-04-11 18:30:04.55611"
- }
- ],
- "pipelines": [
- {
- "name": "CORTEX Smart Router",
- "status": "active",
- "desc": "T0 Ollama → T1 Free APIs → T2 Fallbacks",
- "routes": 3620
- },
- {
- "name": "RAG Ingest",
- "status": "active",
- "desc": "Cron *\/30 → Qdrant semantic indexing",
- "freq": "*\/30"
- },
- {
- "name": "L99 Quality Gate",
- "status": "active",
- "desc": "253+ tests, 28 auth tests",
- "freq": "*\/30"
- },
- {
- "name": "Blade Orchestrator",
- "status": "active",
- "desc": "GPU polling + model sync",
- "freq": "*\/30"
- },
- {
- "name": "Infra Guardian",
- "status": "active",
- "desc": "Auto-restart nginx\/php\/docker",
- "freq": "*\/5"
- },
- {
- "name": "Ethica Scraper Pipeline",
- "status": "active",
- "desc": "4 spiders, RichScraper, SearXNG",
- "freq": "daily"
- },
- {
- "name": "WEVIA Dream",
- "status": "active",
- "desc": "Background learning + dataset enrichment",
- "freq": "*\/30"
- },
- {
- "name": "Daily Brief",
- "status": "active",
- "desc": "Morning synthesis → Mattermost",
- "freq": "daily 07h"
- },
- {
- "name": "Architecture Scanner",
- "status": "active",
- "desc": "This page — auto-scan + recommendations",
- "freq": "*\/30"
- }
- ],
- "agents_deployed": [
- {
- "name": "Monitor Agent",
- "role": "Watches all services, auto-restarts",
- "status": "active"
- },
- {
- "name": "DevOps Agent",
- "role": "Git sync, deployment, rollback",
- "status": "active"
- },
- {
- "name": "Ethica Agent",
- "role": "HCP scraping, validation, enrichment",
- "status": "active"
- },
- {
- "name": "Security Agent",
- "role": "Key rotation, secret scan, vulnerability check",
- "status": "active"
- },
- {
- "name": "Blade Agent",
- "role": "GPU orchestration, model management",
- "status": "active"
- },
- {
- "name": "Dream Agent",
- "role": "Background learning, dataset generation",
- "status": "active"
- },
- {
- "name": "RAG Agent",
- "role": "Knowledge ingestion, vector indexing",
- "status": "active"
- },
- {
- "name": "Quality Agent",
- "role": "L99 NonReg, regression detection",
- "status": "active"
- }
- ]
- },
- "mirofish": {
- "status": "active",
- "reports": 0,
- "bridge": "\/api\/mirofish-bridge.php"
- },
- "recommendations": {
- "score": 100,
- "total": 0,
- "critical": 0,
- "warning": 0,
- "info": 0,
- "opportunity": 0,
- "auto_fixed": 0,
- "fixes_log": [],
- "recommendations": []
- },
- "scan_time_ms": 1236,
- "gaps": [],
- "score": 100,
- "automation": {
- "coverage": 100,
- "steps": 30,
- "total": 30
- }
-}
\ No newline at end of file
diff --git a/api/blade-tasks/heartbeat.json b/api/blade-tasks/heartbeat.json
index 17ffe6abe..4641ea6d5 100644
--- a/api/blade-tasks/heartbeat.json
+++ b/api/blade-tasks/heartbeat.json
@@ -1,5 +1,5 @@
{
- "ts": "2026-04-16T22:59:14+00:00",
+ "ts": "2026-04-16T23:00:02+00:00",
"hostname": "blade",
"cpu": "?",
"ram": "?",
diff --git a/api/generate-training.php b/api/generate-training.php
index e7ab50f62..704d88d91 100644
--- a/api/generate-training.php
+++ b/api/generate-training.php
@@ -1,4 +1,12 @@
'batch job, CLI only','usage'=>'php generate-training.php','estimated_duration'=>'5-10min']);
+ exit;
+}
+
/**
* WEVIA Training Data Generator — uses Groq API
* Run on S204: php /var/www/weval/wevia-ia/generate-training.php
diff --git a/api/supervisor-state.json b/api/supervisor-state.json
index 6b83b5bd9..2f07c9878 100644
--- a/api/supervisor-state.json
+++ b/api/supervisor-state.json
@@ -1,5 +1,5 @@
{
- "ts": "2026-04-16 22:59:17",
+ "ts": "2026-04-16 22:59:18",
"r": {
"reconcile": "OK",
"nonreg": "NONREG: 153\/153 (100%)",
@@ -7,7 +7,8 @@
"docker": 19,
"disk": 84,
"hubs": 29,
- "dirty": 0,
+ "dirty": 1,
+ "pushed": true,
"alerts": [
"CLEAR"
]
diff --git a/api/wevia-quality-status.json b/api/wevia-quality-status.json
index 0e6ef600e..95d624e93 100644
--- a/api/wevia-quality-status.json
+++ b/api/wevia-quality-status.json
@@ -1,5 +1,5 @@
{
- "timestamp": "2026-04-16 22:55:22",
+ "timestamp": "2026-04-16 22:59:32",
"healthy": false,
"global_pass": 292,
"global_fail": 2,
@@ -34,24 +34,24 @@
"total": 93
},
"chat_monitor": {
- "pass": 0,
- "fail": 3,
+ "pass": 3,
+ "fail": 0,
"total": 3,
"caps": {
"Lean Six Sigma": {
- "ok": false,
- "code": 429,
- "json": false
+ "ok": true,
+ "code": 200,
+ "json": true
},
"Qdrant": {
- "ok": false,
- "code": 429,
- "json": false
+ "ok": true,
+ "code": 200,
+ "json": true
},
"SearXNG": {
- "ok": false,
- "code": 429,
- "json": false
+ "ok": true,
+ "code": 200,
+ "json": true
}
}
},
@@ -83,10 +83,9 @@
},
"issues": [
"L99 Command: 2 failures",
- "Chat Monitor: 3 capabilities returning non-JSON",
"Auth Agent: unhealthy",
"Chatbot POST: returning maintenance\/crash (provider cascade broken)",
"L99 Mission: 2 failures (QUALITY, ssl)"
],
- "issues_count": 5
+ "issues_count": 4
}
\ No newline at end of file