diff --git a/api/architecture-scan.json b/api/architecture-scan.json index 4855a08d4..e69de29bb 100644 --- a/api/architecture-scan.json +++ b/api/architecture-scan.json @@ -1,1937 +0,0 @@ -{ - "generated": "2026-04-19 14: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 5 days, 4 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": 89, - "disk_avail": "17G", - "sentinel": 1 - }, - { - "id": "S151", - "ip": "151.80.235.110", - "private": null, - "role": "DR\/Tracking OVH", - "ssh": 22 - } - ], - "docker": [ - { - "name": "loki", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "listmonk", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "plausible-plausible-1", - "status": "Up 2 days", - "ports": "" - }, - { - "name": "plausible-plausible-db-1", - "status": "Up 2 days", - "ports": "" - }, - { - "name": "plausible-plausible-events-db-1", - "status": "Up 2 days", - "ports": "" - }, - { - "name": "n8n-docker-n8n-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "mattermost-docker-mm-db-1", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "mattermost-docker-mattermost-1", - "status": "Up 3 days (healthy)", - "ports": "" - }, - { - "name": "twenty", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "twenty-redis", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "langfuse", - "status": "Up 3 days", - "ports": "" - }, - { - "name": "redis-weval", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "gitea", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "node-exporter", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "prometheus", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "searxng", - "status": "Up 5 days", - "ports": "" - }, - { - "name": "uptime-kuma", - "status": "Up 5 days (healthy)", - "ports": "" - }, - { - "name": "vaultwarden", - "status": "Up 5 days (healthy)", - "ports": "" - }, - { - "name": "qdrant", - "status": "Up 5 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": 250, - "s204_products": 104, - "s204_api_php": 654, - "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": 5426, - "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": 14477 - }, - { - "name": "wevia_graph", - "vectors": 3 - }, - { - "name": "weval_intents_memory", - "vectors": 0 - }, - { - "name": "obsidian_vault", - "vectors": 46 - }, - { - "name": "kb_bpmn_flows", - "vectors": 0 - }, - { - "name": "kb_ethica_pharma", - "vectors": 16 - }, - { - "name": "kb_consulting_strategy", - "vectors": 0 - }, - { - "name": "wevia_learnings", - "vectors": 1736 - }, - { - "name": "wevia_brain_knowledge", - "vectors": 294 - }, - { - "name": "kb_vsm_best_practices", - "vectors": 0 - }, - { - "name": "kb_bpmn_patterns", - "vectors": 0 - }, - { - "name": "kb_dmaic_playbooks", - "vectors": 0 - }, - { - "name": "kb_wevads_deliv", - "vectors": 0 - }, - { - "name": "wevia_memory_768", - "vectors": 59 - }, - { - "name": "kb_test_", - "vectors": 0 - }, - { - "name": "wevia_kb_768", - "vectors": 255 - }, - { - "name": "weval_agents_registry", - "vectors": 0 - }, - { - "name": "wevia_kb", - "vectors": 386 - }, - { - "name": "wevia_memory", - "vectors": 48 - }, - { - "name": "kb_lean6sigma", - "vectors": 0 - } - ], - "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": 15, - "s204_total": 15, - "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": 5426, - "categories": [ - { - "category": "AUTO-FIX", - "cnt": "2951" - }, - { - "category": "TOPOLOGY", - "cnt": "1119" - }, - { - "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": 0, - "today_cost": 0, - "avg_latency_ms": 0, - "top_provider": "N\/A", - "providers_used": 0 - }, - "optimizations": { - "recent_commits": [], - "auto_fixes": [ - { - "fact": "AUTONOMY 17Apr 14:45: 1 fixes. Restart php-fpm", - "created_at": "2026-04-17 16:45:05.798814" - }, - { - "fact": "AUTONOMY 17Apr 14:40: 1 fixes. Restart php-fpm", - "created_at": "2026-04-17 16:40:05.635994" - }, - { - "fact": "AUTONOMY 17Apr 12:20: 1 fixes. Disk light cleanup 86%", - "created_at": "2026-04-17 14:20:05.038274" - }, - { - "fact": "AUTONOMY 17Apr 12:15: 1 fixes. Disk light cleanup 86%", - "created_at": "2026-04-17 14:15:05.314885" - }, - { - "fact": "AUTONOMY 17Apr 12:10: 1 fixes. Disk light cleanup 86%", - "created_at": "2026-04-17 14:10:04.576512" - }, - { - "fact": "AUTONOMY 17Apr 12:05: 1 fixes. Disk light cleanup 86%", - "created_at": "2026-04-17 14:05:04.781065" - }, - { - "fact": "AUTONOMY 17Apr 12:00: 1 fixes. Disk light cleanup 86%", - "created_at": "2026-04-17 14:00:08.575857" - }, - { - "fact": "AUTONOMY 17Apr 11:55: 1 fixes. Disk light cleanup 86%", - "created_at": "2026-04-17 13:55:05.473942" - }, - { - "fact": "AUTONOMY 17Apr 11:50: 1 fixes. Disk light cleanup 86%", - "created_at": "2026-04-17 13:50:05.14896" - }, - { - "fact": "AUTONOMY 17Apr 11:45: 1 fixes. Disk light cleanup 86%", - "created_at": "2026-04-17 13:45:05.891174" - } - ], - "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": 2611, - "gaps": [], - "score": 100, - "automation": { - "coverage": 100, - "steps": 30, - "total": 30 - } -} \ No newline at end of file diff --git a/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/01-wtp-loaded.png b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/01-wtp-loaded.png new file mode 100644 index 000000000..70ef0b088 Binary files /dev/null and b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/01-wtp-loaded.png differ diff --git a/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/02-drawer-open.png b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/02-drawer-open.png new file mode 100644 index 000000000..628c3bff0 Binary files /dev/null and b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/02-drawer-open.png differ diff --git a/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/03-search-wevia.png b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/03-search-wevia.png new file mode 100644 index 000000000..ba3aef13d Binary files /dev/null and b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/03-search-wevia.png differ diff --git a/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/5a4195998ff8a4838aa4d9c5370e77ff.webm b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/5a4195998ff8a4838aa4d9c5370e77ff.webm index e69de29bb..30de580c1 100644 Binary files a/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/5a4195998ff8a4838aa4d9c5370e77ff.webm and b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/5a4195998ff8a4838aa4d9c5370e77ff.webm differ diff --git a/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/99-final.png b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/99-final.png new file mode 100644 index 000000000..2963bd919 Binary files /dev/null and b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/99-final.png differ diff --git a/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/results.json b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/results.json new file mode 100644 index 000000000..dae654f82 --- /dev/null +++ b/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27/results.json @@ -0,0 +1,51 @@ +{ + "start": "2026-04-19T16:58:27", + "tests": [ + { + "name": "wtp-load", + "status": "OK", + "title": "WEVAL Technology Platform — All-in-One ERP Portal" + }, + { + "name": "v80-toggle-visible", + "status": "OK", + "visible": true + }, + { + "name": "drawer-open", + "status": "OK", + "open": true + }, + { + "name": "kpis-loaded", + "status": "OK", + "agents": "906", + "pages": "253", + "autonomy": "100%" + }, + { + "name": "search-filter", + "status": "OK", + "visible_after_search": 1, + "hidden_after_search": 34 + }, + { + "name": "nav-items", + "status": "OK", + "pillars": 6, + "quicks": 24, + "links": 5, + "total_nav_items": 35 + }, + { + "name": "js-errors", + "status": "OK", + "errors_count": 0, + "errors": [] + } + ], + "video_path": "5a4195998ff8a4838aa4d9c5370e77ff.webm", + "end": "2026-04-19T16:58:40", + "out_dir": "/var/www/html/api/playwright-results/v80-wtp-nav-2026-04-19T16-58-27", + "summary": "7/7 PASS" +} \ No newline at end of file diff --git a/api/v83-business-kpi-latest.json b/api/v83-business-kpi-latest.json index 48da78512..0a53588c0 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-19T14:58:29+00:00", + "ts": "2026-04-19T14:59:49+00:00", "summary": { "total_categories": 7, "total_kpis": 56, diff --git a/weval-technology-platform.html b/weval-technology-platform.html index 7466714d9..17bc21cf1 100644 --- a/weval-technology-platform.html +++ b/weval-technology-platform.html @@ -395,7 +395,8 @@ async function loadTree(){ function renderSidebar(){ const el = document.getElementById('wtp-nav-modules'); if (!TREE) return; - el.innerHTML = Object.entries(TREE.modules).map(([id, mod]) => { + // 16 ERP modules + let html = Object.entries(TREE.modules).map(([id, mod]) => { const count = (mod.submodules||[]).length; return `
${mod.icon} @@ -403,16 +404,199 @@ function renderSidebar(){ ${count}
`; }).join(''); + + // SECTION SÉPARATRICE · POINT D'ENTRÉE ENRICHI (Opus Yacine 19avr) + html += `
POINT D'ENTRÉE TOTAL
`; + + const extras = [ + {id:'infra', icon:'🖥', label:'Infrastructure', color:'#22d3ee', count: (TREE.infra?.machines?.length||0) + (TREE.infra?.docker?.length||0)}, + {id:'all_pages', icon:'📂', label:'Toutes les pages', color:'#d4af37', count: TREE.all_pages?.total||0}, + {id:'all_apis', icon:'🔌', label:'Toutes les APIs', color:'#a855f7', count: TREE.apis?.total||0}, + {id:'multiagent', icon:'🤖', label:'Multi-Agent Modes', color:'#ef4444', count: TREE.multiagent_modes?.length||0}, + {id:'truth', icon:'🔒', label:'Truth Registry', color:'#22c55e', count: TREE.truth_registry?.agents||0}, + ]; + html += extras.map(e => `
+ ${e.icon} + ${e.label} + ${e.count} +
`).join(''); + + el.innerHTML = html; } function navigateTo(modId){ CURRENT_MOD = modId; document.querySelectorAll('.wtp-nav-item').forEach(i => i.classList.toggle('active', i.dataset.mod === modId)); if (modId === 'home') renderHome(); + else if (modId === 'infra') renderInfra(); + else if (modId === 'all_pages') renderAllPages(); + else if (modId === 'all_apis') renderAllApis(); + else if (modId === 'multiagent') renderMultiagent(); + else if (modId === 'truth') renderTruth(); else renderModule(modId); document.getElementById('wtp-main').scrollTop = 0; } +// === POINT D'ENTRÉE TOTAL views (Opus Yacine 19avr) === +function renderInfra(){ + const main = document.getElementById('wtp-main'); + const i = TREE.infra || {}; + const machines = (i.machines||[]).map(m => ` +
+
${m.id}
+
${m.type||''}
+
${m.role||''}
+ ${m.cpu ? `
CPU: ${m.cpu} · RAM: ${m.ram||'?'} · Disk: ${m.disk||'?'}
` : ''} +
`).join(''); + + const docker = (i.docker||[]).slice(0, 25).map(d => ` +
+ ${d.name||'?'} + ${d.status||''} +
`).join(''); + + const gpus = (i.gpus||[]).map(g => ` +
+
${g.name||'?'}
+
${g.note||''}
+ ${g.mem_total_mb ? `
Mem: ${g.mem_used_mb}/${g.mem_total_mb} MB · Temp: ${g.temp_c}°C · Util: ${g.util_pct}%
` : ''} +
`).join(''); + + const subdoms = Object.entries(i.subdomains||{}).map(([d, role]) => ` + + ${d} + ${role} + `).join(''); + + main.innerHTML = ` +
+

🖥 Infrastructure

+
Machines · Docker · GPUs · Blade · Subdomains · tout en un
+ +

💻 Machines · ${(i.machines||[]).length}

+
${machines}
+ +

🔧 Blade yacineutt (Sentinel · Chrome persist)

+
+
${i.blade?.host||'Razer Blade'}
+
${i.blade?.role||''}
+
Profile: ${i.blade?.yacineutt_profile||'?'}
+
+ ${(i.blade?.services||[]).map(s=>`${s}`).join('')} +
+
+ +

🎮 GPUs · ${(i.gpus||[]).length}

+ ${gpus} +
+ +

🐳 Docker · ${(i.docker||[]).length} containers

+
${docker}
+ +

🌐 Subdomains · ${Object.keys(i.subdomains||{}).length}

+
${subdoms}
+
`; +} + +function renderAllPages(){ + const main = document.getElementById('wtp-main'); + const ap = TREE.all_pages || {}; + const cats = ap.pages_by_category || {}; + const catHtml = Object.entries(cats).sort((a,b)=>b[1].length-a[1].length).map(([cat, pages]) => { + const items = pages.slice(0, 50).map(p => ` + + ${p.name.replace(/\.html$/,'').replace(/[-_]/g,' ')} + ${p.size_kb}k${p.is_orphan?' ·⚠':''} + `).join(''); + return `
+

+ ${cat}${pages.length} pages +

+
${items}
+ ${pages.length>50?`
+${pages.length-50} autres
`:''} +
`; + }).join(''); + + main.innerHTML = ` +
+

📂 Toutes les pages · ${ap.total}

+
${ap.orphans} orphelines identifiées · toutes accessibles depuis WTP
+
+ +
+
${catHtml}
+
`; +} +window._pgSearch = function(q){ + q = (q||'').toLowerCase(); + document.querySelectorAll('#pg-content a').forEach(a => { + a.style.display = (!q || a.textContent.toLowerCase().includes(q)) ? '' : 'none'; + }); +}; + +function renderAllApis(){ + const main = document.getElementById('wtp-main'); + const a = TREE.apis || {}; + main.innerHTML = ` +
+

🔌 Toutes les APIs · ${a.total}

+
Endpoints PHP dans /api/
+

Top WEVIA APIs (${(a.top_wevia||[]).length})

+
+ ${(a.top_wevia||[]).map(api => ` + + ${api} + `).join('')} +
+
`; +} + +function renderMultiagent(){ + const main = document.getElementById('wtp-main'); + const modes = TREE.multiagent_modes || []; + main.innerHTML = ` +
+

🤖 Multi-Agent Modes

+
3 modes coexistent via WEVIA Master chat · /wevia-master.html
+
+ ${modes.map((m, i) => ` +
+
${m.mode}
+
${m.agents || m.agents_target} agents
+
Latency: ${m.latency_ms}ms
+
${m.use}
+
${m.trigger}
+
`).join('')} +
+
+ 💬 Tester en live: ouvre /wevia-master.html et tape "agis en multiagent" +
+
`; +} + +function renderTruth(){ + const main = document.getElementById('wtp-main'); + const t = TREE.truth_registry || {}; + main.innerHTML = ` +
+

🔒 Truth Registry · source unique

+
Built: ${t.built_at||'?'} · rebuild cron /30min
+
+ ${[['Agents',t.agents,'#d4af37'],['Intents',t.intents,'#22c55e'],['Skills',t.skills,'#6366f1'],['Brains',t.brains,'#a855f7'],['Doctrines',t.doctrines,'#ef4444'],['Dashboards',t.dashboards,'#22d3ee'],['Providers',t.providers,'#f59e0b'],['Qdrant Cols',t.qdrant_cols,'#ec4899'],['Qdrant Points',t.qdrant_points,'#10b981'],['Autonomy',(t.autonomy_score||0)+'/100 '+(t.autonomy_level||''),'#d4af37']].map(([l,v,c])=>` +
+
${l}
+
${typeof v==='number' ? v.toLocaleString('fr-FR') : v}
+
`).join('')} +
+
+ 📄 Truth Registry JSON (560 KB) + 📋 Source of Truth (snapshot) + 🔍 NL Query API +
+
`; +} + function renderHome(){ if (!TREE) return; const kpis = TREE.kpis || {};