From 91174a10bfa3515887b4648f19344701eef17f26 Mon Sep 17 00:00:00 2001 From: opus Date: Tue, 21 Apr 2026 13:00:03 +0200 Subject: [PATCH] auto-sync-1300 --- api/architecture-scan.json | 1956 ----------------- api/blade-actions-surfaced.json | 2 +- api/em-kpi-cache.json | 281 --- api/v83-business-kpi-latest.json | 2 +- .../00_login_page.png | Bin 0 -> 43210 bytes .../8eddc3c8ab53b616340d88dfa43179cc.webm | 0 login.html | 55 + 7 files changed, 57 insertions(+), 2239 deletions(-) create mode 100644 api/v_opus_video_v3_20260421-125952/00_login_page.png create mode 100644 api/v_opus_video_v3_20260421-125952/8eddc3c8ab53b616340d88dfa43179cc.webm diff --git a/api/architecture-scan.json b/api/architecture-scan.json index 42a60e3dd..e69de29bb 100644 --- a/api/architecture-scan.json +++ b/api/architecture-scan.json @@ -1,1956 +0,0 @@ -{ - "generated": "2026-04-21 10:30:01", - "version": "1.0", - "servers": [ - { - "id": "S204", - "ip": "204.168.152.13", - "private": "10.1.0.2", - "role": "PRIMARY", - "ssh": 49222, - "disk_pct": 81, - "disk_avail": "29G", - "uptime": "up 1 week, 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": 81, - "disk_avail": "29G", - "sentinel": 1 - }, - { - "id": "S151", - "ip": "151.80.235.110", - "private": null, - "role": "DR\/Tracking OVH", - "ssh": 22 - } - ], - "docker": [ - { - "name": "loki", - "status": "Up 4 days", - "ports": "" - }, - { - "name": "listmonk", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "plausible-plausible-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "plausible-plausible-db-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "plausible-plausible-events-db-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "n8n-docker-n8n-1", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "mattermost-docker-mm-db-1", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "mattermost-docker-mattermost-1", - "status": "Up 5 days (healthy)", - "ports": "" - }, - { - "name": "twenty", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "twenty-redis", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "langfuse", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "redis-weval", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "gitea", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "node-exporter", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "prometheus", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "searxng", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "uptime-kuma", - "status": "Up 34 hours (healthy)", - "ports": "" - }, - { - "name": "vaultwarden", - "status": "Up 6 days (healthy)", - "ports": "" - }, - { - "name": "qdrant", - "status": "Up 6 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": "arsenal.weval-consulting.com", - "server_names": [ - "arsenal.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": "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": 294, - "s204_products": 104, - "s204_api_php": 775, - "s204_wevia_php": 23, - "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": 5538, - "kb_documents": 0, - "ethica_medecins": 50004, - "enterprise_agents": 0 - } - }, - "ollama": [ - { - "name": "weval-brain-v4:latest", - "family": "qwen3", - "params": "4.0B", - "quant": "Q4_K_M", - "size_gb": 2.5 - }, - { - "name": "llama3.2:latest", - "family": "llama", - "params": "3.2B", - "quant": "Q4_K_M", - "size_gb": 2 - }, - { - "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": 19089 - }, - { - "name": "wevia_graph", - "vectors": 3 - }, - { - "name": "weval_intents_memory", - "vectors": 50 - }, - { - "name": "obsidian_vault", - "vectors": 46 - }, - { - "name": "kb_bpmn_flows", - "vectors": 7 - }, - { - "name": "kb_ethica_pharma", - "vectors": 16 - }, - { - "name": "kb_consulting_strategy", - "vectors": 6 - }, - { - "name": "wevia_learnings", - "vectors": 1736 - }, - { - "name": "wevia_brain_knowledge", - "vectors": 294 - }, - { - "name": "kb_vsm_best_practices", - "vectors": 7 - }, - { - "name": "kb_bpmn_patterns", - "vectors": 7 - }, - { - "name": "kb_dmaic_playbooks", - "vectors": 7 - }, - { - "name": "kb_wevads_deliv", - "vectors": 6 - }, - { - "name": "wevia_memory_768", - "vectors": 82 - }, - { - "name": "wevia_kb_768", - "vectors": 255 - }, - { - "name": "weval_agents_registry", - "vectors": 50 - }, - { - "name": "wevia_kb", - "vectors": 386 - }, - { - "name": "wevia_memory", - "vectors": 48 - }, - { - "name": "kb_lean6sigma", - "vectors": 10 - } - ], - "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": 35, - "s204_total": 35, - "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": 5539, - "categories": [ - { - "category": "AUTO-FIX", - "cnt": "2973" - }, - { - "category": "TOPOLOGY", - "cnt": "1210" - }, - { - "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": 5, - "today_cost": 0, - "avg_latency_ms": 2389, - "top_provider": "cerebras", - "providers_used": 2 - }, - "optimizations": { - "recent_commits": [], - "auto_fixes": [ - { - "fact": "AUTONOMY 21Apr 08:10: 5 fixes. S95 restart pmta; S95 restart kumomta; S95 restart postfix; S95 restart sentinel; S95 restart adx", - "created_at": "2026-04-21 10:10:04.274914" - }, - { - "fact": "AUTONOMY 19Apr 18:50: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 20:50:05.112821" - }, - { - "fact": "AUTONOMY 19Apr 18:45: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 20:45:05.896272" - }, - { - "fact": "AUTONOMY 19Apr 18:40: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 20:40:05.29453" - }, - { - "fact": "AUTONOMY 19Apr 18:35: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 20:35:06.160485" - }, - { - "fact": "AUTONOMY 19Apr 18:30: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 20:30:07.536885" - }, - { - "fact": "AUTONOMY 19Apr 17:30: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 19:30:06.670863" - }, - { - "fact": "AUTONOMY 19Apr 17:25: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 19:25:05.927364" - }, - { - "fact": "AUTONOMY 19Apr 17:20: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 19:20:05.814206" - }, - { - "fact": "AUTONOMY 19Apr 17:15: 1 fixes. Disk light cleanup 85%", - "created_at": "2026-04-19 19:15:05.697284" - } - ], - "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": 1, - "critical": 0, - "warning": 0, - "info": 0, - "opportunity": 1, - "auto_fixed": 0, - "fixes_log": [], - "recommendations": [ - { - "severity": "opportunity", - "category": "SCALABILITY", - "title": "Qdrant: 22,105 vecteurs", - "detail": "Volume vectoriel croissant. Planifier sharding ou migration vers cluster Qdrant.", - "action": "opportunity", - "fix_cmd": "" - } - ] - }, - "scan_time_ms": 1622, - "gaps": [], - "score": 100, - "automation": { - "coverage": 100, - "steps": 30, - "total": 30 - } -} \ No newline at end of file diff --git a/api/blade-actions-surfaced.json b/api/blade-actions-surfaced.json index d23049a29..052db2517 100644 --- a/api/blade-actions-surfaced.json +++ b/api/blade-actions-surfaced.json @@ -1,5 +1,5 @@ { - "generated_at": "2026-04-21T12:55:01.686286", + "generated_at": "2026-04-21T13:00:01.116073", "stats": { "total": 48, "pending": 31, diff --git a/api/em-kpi-cache.json b/api/em-kpi-cache.json index b1cb7fd56..e69de29bb 100644 --- a/api/em-kpi-cache.json +++ b/api/em-kpi-cache.json @@ -1,281 +0,0 @@ -{ - "ts": "2026-04-21T10:55:01+00:00", - "server": "s204", - "s204": { - "load": 1.12, - "uptime": "2026-04-14 11:51:24", - "ram_total_mb": 31335, - "ram_used_mb": 11649, - "ram_free_mb": 19685, - "disk_total": "150G", - "disk_used": "117G", - "disk_free": "28G", - "disk_pct": "82%", - "fpm_workers": 140, - "docker_containers": 19, - "cpu_cores": 8 - }, - "s95": { - "load": 0.04, - "disk_pct": "81%", - "status": "UP", - "ram_total_mb": 15610, - "ram_free_mb": 11965 - }, - "pmta": [ - { - "name": "SER6", - "ip": "110.239.84.121", - "status": "DOWN" - }, - { - "name": "SER7", - "ip": "110.239.65.64", - "status": "DOWN" - }, - { - "name": "SER8", - "ip": "182.160.55.107", - "status": "DOWN" - }, - { - "name": "SER9", - "ip": "110.239.86.68", - "status": "DOWN" - } - ], - "assets": { - "html_pages": 294, - "php_apis": 776, - "wiki_entries": 1988, - "vault_doctrines": 61, - "vault_sessions": 104, - "vault_decisions": 12 - }, - "tools": { - "total": 627, - "registry_version": "?" - }, - "sovereign": { - "status": "UP", - "providers": [ - "Cerebras-fast", - "Cerebras-think", - "Groq", - "Cloudflare-AI", - "Gemini", - "SambaNova", - "NVIDIA-NIM", - "Mistral", - "Groq-OSS", - "HF-Space", - "HF-Router", - "OpenRouter", - "GitHub-Models" - ], - "active": 13, - "total": 13, - "primary": "Cerebras-fast", - "cost": "0€" - }, - "ethica": { - "total_hcps": 161733, - "with_email": 110596, - "with_phone": 155151, - "gap_email": 51137, - "pct_email": 68.4, - "pct_phone": 95.9, - "by_country": [ - { - "country": "DZ", - "hcps": 122337, - "with_email": 78496, - "with_tel": 119396, - "pct_email": 64.2, - "pct_tel": 97.6 - }, - { - "country": "MA", - "hcps": 19723, - "with_email": 15076, - "with_tel": 18737, - "pct_email": 76.4, - "pct_tel": 95 - }, - { - "country": "TN", - "hcps": 17794, - "with_email": 15145, - "with_tel": 17018, - "pct_email": 85.1, - "pct_tel": 95.6 - }, - { - "country": "INTL", - "hcps": 1879, - "with_email": 1879, - "with_tel": 0, - "pct_email": 100, - "pct_tel": 0 - } - ] - }, - "docker": [ - { - "name": "loki", - "status": "Up 4 days", - "ports": "" - }, - { - "name": "listmonk", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "plausible-plausible-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "plausible-plausible-db-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "plausible-plausible-events-db-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "n8n-docker-n8n-1", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "mattermost-docker-mm-db-1", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "mattermost-docker-mattermost-1", - "status": "Up 5 days (healthy)", - "ports": "" - }, - { - "name": "twenty", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "twenty-redis", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "langfuse", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "redis-weval", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "gitea", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "node-exporter", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "prometheus", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "searxng", - "status": "Up 6 days", - "ports": "" - }, - { - "name": "uptime-kuma", - "status": "Up 35 hours (healthy)", - "ports": "" - }, - { - "name": "vaultwarden", - "status": "Up 6 days (healthy)", - "ports": "" - }, - { - "name": "qdrant", - "status": "Up 6 days", - "ports": "" - } - ], - "crons": { - "active": 35 - }, - "git": { - "head": "ad4bf0649 auto-sync-1255", - "dirty": 1, - "status": "DIRTY" - }, - "nonreg": { - "total": 153, - "passed": 153, - "score": "100%" - }, - "services": [ - { - "name": "DeerFlow", - "port": 3002, - "status": "UP" - }, - { - "name": "DeerFlow API", - "port": 8001, - "status": "UP" - }, - { - "name": "Qdrant", - "port": 6333, - "status": "UP" - }, - { - "name": "Ollama", - "port": 11434, - "status": "UP" - }, - { - "name": "Redis", - "port": 6379, - "status": "UP" - }, - { - "name": "Sovereign", - "port": 4000, - "status": "UP" - }, - { - "name": "SearXNG", - "port": 8080, - "status": "UP" - } - ], - "whisper": { - "binary": "COMPILED", - "model": "142MB" - }, - "grand_total": 3765, - "health": { - "score": 5, - "max": 6, - "pct": 83 - }, - "elapsed_ms": 10914 -} \ No newline at end of file diff --git a/api/v83-business-kpi-latest.json b/api/v83-business-kpi-latest.json index f266dc8e0..23e259e01 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-21T10:58:02+00:00", + "ts": "2026-04-21T10:59:02+00:00", "summary": { "total_categories": 8, "total_kpis": 64, diff --git a/api/v_opus_video_v3_20260421-125952/00_login_page.png b/api/v_opus_video_v3_20260421-125952/00_login_page.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3c93351c440d64ed4023e49eface79788fa529 GIT binary patch literal 43210 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 n;s5`*kN1EBFbr&bP0l+XkK($MJe literal 0 HcmV?d00001 diff --git a/api/v_opus_video_v3_20260421-125952/8eddc3c8ab53b616340d88dfa43179cc.webm b/api/v_opus_video_v3_20260421-125952/8eddc3c8ab53b616340d88dfa43179cc.webm new file mode 100644 index 000000000..e69de29bb diff --git a/login.html b/login.html index 8a9a2a860..812e74b82 100755 --- a/login.html +++ b/login.html @@ -35,7 +35,23 @@ h1{font-size:1.6rem;font-weight:700;margin-bottom:4px}h1 span{color:#818cf8} .footer{color:#334155;font-size:.7rem;margin-top:16px} .weval-logout-btn,[class*="logout"],#logout-btn,.session-badge,.user-badge{display:none!important;visibility:hidden!important} + +/* BETON-DOCTRINE-101 enforcement CSS - immune to JS overwrites */ +#auto-redirect,#auto-redirect *,.redirect-msg,.spinner,[class*="logout"],#logout-btn,.session-badge,.user-badge,.weval-logout-btn{ + display:none!important; + visibility:hidden!important; + opacity:0!important; + pointer-events:none!important; + position:absolute!important; + left:-9999px!important; +} +body.authenticated #auto-redirect{display:none!important} + + + + +
@@ -166,5 +182,44 @@ if(window.location.search.includes('error=')){document.getElementById('manual'). + + +