From a706dfaed009bcc98f0465f318e14298f5ef8a09 Mon Sep 17 00:00:00 2001 From: Opus Date: Fri, 24 Apr 2026 15:06:37 +0200 Subject: [PATCH] phase47 doctrine185 ASYNC WEVIA AUTONOMY PATTERN | async-exec.sh + job-list.sh + 4 NL intents | deep_clean avant timeout 20s apres 1.78s async + job_list poll | 193->197 priority intents | reutilisable intents longs (Playwright GPU multi-agent) | GOLD snapshot preserved | test E2E reussi via chat NL pur --- ...nts-nl-GOLD-20260424-150147-pre-async.json | 1199 ++++++++++++++++ ...ity-intents-nl-snapshot-20260424-1503.json | 1223 +++++++++++++++++ ...ity-intents-nl.json.snapshot-20260424-1503 | 1223 +++++++++++++++++ ops-scripts/opus-intents/async-exec.sh | 15 + ops-scripts/opus-intents/job-list.sh | 18 + 5 files changed, 3678 insertions(+) create mode 100644 ops-data/priority-intents-nl-GOLD-20260424-150147-pre-async.json create mode 100644 ops-data/priority-intents-nl-snapshot-20260424-1503.json create mode 100644 ops-data/priority-intents-nl.json.snapshot-20260424-1503 create mode 100755 ops-scripts/opus-intents/async-exec.sh create mode 100755 ops-scripts/opus-intents/job-list.sh diff --git a/ops-data/priority-intents-nl-GOLD-20260424-150147-pre-async.json b/ops-data/priority-intents-nl-GOLD-20260424-150147-pre-async.json new file mode 100644 index 000000000..db58652b9 --- /dev/null +++ b/ops-data/priority-intents-nl-GOLD-20260424-150147-pre-async.json @@ -0,0 +1,1199 @@ +[ + { + "name": "diag_training_benchmark_wevia", + "triggers": "pourquoi.{0,25}(aucun|pas).{0,15}(pourcentage|percent|score).{0,15}wevia|diag.{0,10}training.{0,20}benchmark|benchmark.{0,15}wevia.{0,10}(null|vide|manqu)|cause.{0,15}racine.{0,10}(training|benchmark.{0,10}wevia)|ligne.{0,10}wevia.{0,15}(vide|null|manqu)|wevia.{0,15}training.{0,15}benchmark", + "command": "echo === DIAG TRAINING BENCHMARK WEVIA ===; echo; echo FICHIER: /var/www/html/wevia-training.html ligne 2254-2258; sed -n '2254,2258p' /var/www/html/wevia-training.html; echo; echo === CAUSE RACINE ===; echo 'WEVIA = orchestrateur multi-provider sovereign cascade v3'; echo 'gpqa swe math aime arena_code = null PAR DESIGN - doctrine 4 honnetete'; echo 'Herite du score du provider actif dynamique:'; echo '- Cerebras primary: 72 pct GPQA, 2500 tokens/s'; echo '- Claude Opus 4.7 deep mode: 94.2 pct GPQA fallback'; echo '- 13 providers cascade, 0 EUR cost'; echo; echo === AFFICHAGE ACTUEL ===; echo 'Dash em --- car le rendu JS skip les null'; echo 'Doc positionnement ligne 2728 honnete mais UX ambigue'; echo; echo === FIX OPTIONS ===; echo 'Option 1 RECOMMANDE: valeur heritee primary + badge teal inherited + tooltip'; echo 'Option 2: footer explicatif sous le tableau'; echo 'Option 3: best-of-pool 94.2 pct + badge best-of-13'; echo; echo === PROOF REEL ===; grep -c 'gpqa:null' /var/www/html/wevia-training.html; echo 'null_gpqa_count above'; grep -c 'WEVIA Sovereign' /var/www/html/wevia-training.html; echo 'wevia_sovereign_mentions above'", + "static": false + }, + { + "name": "opus_respawn_tracer", + "triggers": "respawn_trace|respawn_tracer|trace_respawn|track_respawn", + "command": "bash /opt/weval-ops/opus-intents/opus-respawn-tracer.sh 15", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:40:29.572817" + }, + { + "name": "opus_disaster_clean", + "triggers": "disaster_clean|infra_cleanup|chrome_clean|clean_leaked_chrome", + "command": "bash /opt/weval-ops/opus-intents/opus-disaster-recovery.sh all", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:13:50.614805" + }, + { + "name": "opus_disaster_recovery", + "triggers": "disaster_recovery|disaster_status|infra_health|wevia_heal|disaster_cleanup", + "command": "bash /opt/weval-ops/opus-intents/opus-disaster-recovery.sh status", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:13:49.685662" + }, + { + "name": "opus_cyber_profile_manager", + "triggers": "cyber_profile|cyber_status|chrome_profile_status|profiles_status|cyber_profiles", + "command": "bash /opt/weval-ops/opus-intents/opus-cyber-profile.sh status", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T13:38:48.658080" + }, + { + "name": "opus_detect_richux", + "triggers": "detect_richux|scan_richux|richux_check|pages_overwritten", + "command": "bash /opt/weval-ops/opus-intents/detect-richux.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T11:45:26.646679" + }, + { + "name": "opus_git_push_ssh_fallback", + "triggers": "git.{0,20}(push|commit|sync).{0,30}(fail|lock|credent)|credential.{0,20}(lock|error)|push.{0,20}fail", + "command": "bash /opt/weval-ops/opus-intents/opus-git-push-fallback.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.543165" + }, + { + "name": "opus_disk_prune_safe", + "triggers": "(disk|storage|space).{0,20}(prune|clean|free|saturat)|vault.{0,20}dedupe|(gold|backup).{0,20}(old|rotate|archive)", + "command": "bash /opt/weval-ops/opus-intents/opus-disk-prune.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.311171" + }, + { + "name": "opus_cf_purge_all", + "triggers": "cloudflare.{0,30}purge|cf.{0,20}(cache|purge|clear)|purge.{0,30}cloudflare", + "command": "bash /opt/weval-ops/opus-intents/opus-cf-purge.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.131073" + }, + { + "name": "opus_avatar_e2e_smart", + "triggers": "(smart|e2e|test).{0,30}avatar.{0,40}(propagat|3 pages|enterprise|meeting|archi)|avatar.{0,30}(smart|visual).{0,30}detect", + "command": "bash /opt/weval-ops/opus-intents/opus-avatar-e2e.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:24.936092" + }, + { + "name": "w274g2", + "triggers": "w274 g2", + "command": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf /opt/wevads/vault/archived_gold_purge/g22.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s /opt/wevads/vault/archived_gold_purge/g22.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee /tmp/sel-test.py", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:50:47.785676" + }, + { + "name": "opus46_glm5_call", + "triggers": "opus46.*glm|call opus46|glm5 direct", + "command": "bash -c \"timeout 30 python3 /opt/weval-ops/top-ia/opus46-dispatch.py\"", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:11:49.736483" + }, + { + "name": "autowire_help", + "triggers": "auto.?wire\\s+help|comment\\s+creer\\s+intent|syntaxe\\s+wire|how\\s+wire\\s+intent|aide\\s+wire|autowire\\s+doc", + "command": "cat < stub PENDING_APPROVAL\n 2. 'master list pending' -> voir stubs dormants\n 3. 'master activate last' -> inject dans priority-intents-nl.json + reload FPM\n 4. Nouvel intent LIVE et matchable en chat\n\nSECURITE:\n - cmd doit contenir /var/www/html/ ou /var/www/weval/ ou /opt/wevia-brain/ ou /opt/wevads/vault/ ou echo ou curl ou php8.4 ou git\n - sinon status = PENDING_SECURITY_REVIEW (refus activate auto)\n\nFICHIERS CLES:\n /var/www/html/api/wired-pending/ (stubs PENDING)\n /opt/wevia-brain/priority-intents-nl.json (intents LIVE)\n /opt/weval-ops/activate-pending-intent.py (activator)\n /var/log/weval/opus4-autowire.log (trace)\nHELP", + "static": false + }, + { + "name": "activate_named_pending", + "triggers": "master\\s+activate\\s+intent\\s+[a-z0-9_]+|active\\s+intent\\s+[a-z0-9_]+|activate\\s+pending\\s+[a-z0-9_]+", + "command": "echo 'Usage: for named activation, use: master activate last (active le dernier pending) OU directement python3 /opt/weval-ops/activate-pending-intent.py '; echo; echo 'Last 10 pending:'; ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -10 | xargs -n1 basename 2>/dev/null | sed 's/intent-opus4-//;s/.php$//'", + "static": false + }, + { + "name": "activate_last_pending", + "triggers": "master\\s+activate\\s+last|active\\s+dernier\\s+pending|activate\\s+last\\s+pending|active\\s+dernier\\s+intent", + "command": "LAST=$(ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -1); if [ -z \"$LAST\" ]; then echo 'No pending intent'; exit 0; fi; NAME=$(basename \"$LAST\" | sed 's/intent-opus4-//;s/.php$//'); echo \"Activating: $NAME\"; python3 /opt/weval-ops/activate-pending-intent.py \"$NAME\" 2>&1", + "static": false + }, + { + "name": "list_pending_intents", + "triggers": "master\\s+list\\s+pending|intents?\\s+en\\s+attente|liste\\s+pending|pending\\s+intents?\\s+list|voir\\s+intents?\\s+(dormants|pending)", + "command": "echo === PENDING INTENTS ===; ls /var/www/html/api/wired-pending/ 2>/dev/null | grep -E 'intent-opus4-[a-z]' | grep -v ACTIVATED | wc -l; echo pending_count_above; echo; echo === LAST 15 ===; ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -15 | xargs -n1 basename 2>/dev/null; echo; echo === ACTIVATED LAST 10 ===; ls -t /var/www/html/api/wired-pending/intent-opus4-ACTIVATED-*.php 2>/dev/null | head -10 | xargs -n1 basename 2>/dev/null", + "static": false + }, + { + "name": "wevia_heritage_score", + "triggers": "score.{0,10}herite|heritage.{0,10}wevia|quel.{0,10}score.{0,10}actuel.{0,10}wevia", + "command": "echo === wevia heritage score ===; echo provider primary actif: cerebras llama 3.3 70b; echo score gpqa herite: 72 pct; echo tokens/s: 2500; echo latence: 50ms; echo cost: 0 eur; echo fallback deep: claude opus 4.7 = 94.2 pct gpqa; echo source: /var/www/html/wevia-training.html ligne 2256", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T04:40:25.212093" + }, + { + "name": "fix_growth_advisor_scroll", + "triggers": "fix.{0,15}scroll.{0,15}(growth|advisor)|(growth|advisor).{0,15}(not|pas).{0,15}scrollable|(growth|advisor).{0,20}scroll.{0,15}(stuck|casse|bloque)|growth.{0,10}advisor.{0,20}scroll", + "command": "echo === GROWTH ADVISOR SCROLL FIX STATUS ===; grep -c 'WAVE-SCROLL-FIX-23AVR' /var/www/html/growth-engine-v2.html 2>&1; echo === FILE INFO ===; ls -la /var/www/html/growth-engine-v2.html; lsattr /var/www/html/growth-engine-v2.html 2>&1; echo === LAST COMMIT ===; cd /var/www/html && git log --oneline -3 -- growth-engine-v2.html 2>&1", + "static": false + }, + { + "name": "playwright_scroll_diag", + "triggers": "playwright.{0,15}(test|diag).{0,15}scroll|diag.{0,15}scroll.{0,15}(advisor|growth)|test.{0,15}scroll.{0,15}(growth|advisor)|scroll.{0,15}(proof|preuve)|advisor.{0,15}scroll.{0,15}(test|validation|proof)", + "command": "echo === WAVE-272 AUTHENTICATED PROOF ===; ls /opt/wevads/vault/proofs/wave272-scroll-fix-23avr/ 2>&1; echo === RESULT.JSON ===; cat /opt/wevads/vault/proofs/wave272-scroll-fix-23avr/result.json 2>/dev/null | python3 -m json.tool 2>&1 | head -40; echo === AUTH SCRIPT REUSE ===; ls -la /opt/weval-nonreg/advisor_scroll_authed_v1.js 2>&1; echo 'Rerun: sudo -u www-data node /opt/weval-nonreg/advisor_scroll_authed_v1.js (takes ~40s, login yacine auto)'", + "static": false + }, + { + "name": "clean_disk_safe", + "triggers": "clean.{0,15}disk.{0,15}safe|(nettoie|nettoyer|nettoyage|purge|liber|libere).{0,20}(disque|disk|gold|vieux|espace|golds)|disk.{0,15}full", + "command": "echo === DISK BEFORE ===; df -h / | tail -1; echo === KEEP LATEST GOLD ONLY ===; LATEST=$(ls -dt /opt/wevads/vault/gold-auto-* 2>/dev/null | head -1); echo LATEST=$LATEST; for g in $(ls -dt /opt/wevads/vault/gold-auto-* 2>/dev/null | tail -n +2); do echo PURGE=$g; sudo rm -rf \"$g\"; done; echo === TMP PLAYWRIGHT PROFILES >30min ===; sudo find /tmp -maxdepth 1 -name 'playwright_chromiumdev_profile-*' -mmin +30 -exec rm -rf {} \\; 2>/dev/null; sudo find /tmp -maxdepth 1 -name 'playwright-artifacts-*' -mmin +30 -exec rm -rf {} \\; 2>/dev/null; echo === DISK AFTER ===; df -h / | tail -1", + "static": false + }, + { + "name": "zxqtest", + "triggers": "zxqtest", + "command": "echo bonjour", + "static": false + }, + { + "name": "xcode_diag", + "triggers": "xcode", + "command": "ls -la /var/log/nginx/code* /etc/nginx/sites-enabled/code* 2>&1 ; echo === VHOST === ; cat /etc/nginx/sites-enabled/code.weval-consulting.com 2>&1 ; echo === LAST ERR === ; grep -i code /var/log/nginx/error.log 2>&1 | tail -30", + "static": false + }, + { + "name": "xcode_vhost", + "triggers": "xvhost", + "command": "cat /etc/nginx/sites-enabled/code-weval", + "static": false + }, + { + "name": "p3900check", + "triggers": "p3900", + "command": "bash -c ss-tlnp-3900", + "static": false + }, + { + "name": "gptconfig", + "triggers": "gptconfig", + "command": "find /opt/claw-code -maxdepth 4 -name *.yaml -o -name .gptr.*.yaml 2>/dev/null", + "static": false + }, + { + "name": "gptcwd", + "triggers": "gptcwd", + "command": "sudo readlink /proc/2742182/cwd ; sudo cat /proc/2742182/environ | tr -d \\000 | grep -iE OPENAI_BASE_URL", + "static": false + }, + { + "name": "gptenv", + "triggers": "gptenv", + "command": "sudo strings /proc/2742182/environ | grep -iE OPENAI", + "static": false + }, + { + "name": "wvia_route", + "triggers": "wvroute", + "command": "grep -n weval-ia /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "golds_nginx", + "triggers": "ngolds", + "command": "ls -lat /opt/wevads/vault/GOLD*nginx*weval* 2>/dev/null ; ls -lat /etc/nginx/sites-enabled/weval-consulting* 2>/dev/null | head -5", + "static": false + }, + { + "name": "ngctx", + "triggers": "ngctx", + "command": "sed -n 150,175p /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngbk", + "triggers": "ngbk", + "command": "find / -maxdepth 6 -name weval-consulting.bak -o -name weval-consulting.gold -o -name weval-consulting.backup 2>/dev/null ; ls -lat /etc/nginx/sites-available/*.bak 2>/dev/null", + "static": false + }, + { + "name": "ngxscan", + "triggers": "ngxscan", + "command": "grep -n weval-ia /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngxblk", + "triggers": "ngxblk", + "command": "sed -n 158,172p /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngxtest", + "triggers": "ngxtest", + "command": "sudo nginx -t ; echo === RELOAD === ; sudo systemctl reload nginx ; echo ok ; echo === CURL === ; curl -sk https://weval-consulting.com/api/weval-ia -o /tmp/test.txt ; head -c 200 /tmp/test.txt", + "static": false + }, + { + "name": "capsfind", + "triggers": "capsfind", + "command": "grep -n -B1 -A5 Caps10 /opt/weval-nonreg/nonreg-master.py", + "static": false + }, + { + "name": "capshealth", + "triggers": "capshealth", + "command": "curl -sk https://weval-consulting.com/api/wevia-capabilities.php?cap=health", + "static": false + }, + { + "name": "lokichk", + "triggers": "lokichk", + "command": "ss -tlnp 2>&1 | grep -E :3100 ; echo === DOCKER === ; docker ps -a 2>&1 | grep -i loki ; echo === SYSTEMD === ; systemctl list-units 2>&1 | grep -i loki", + "static": false + }, + { + "name": "pwchk", + "triggers": "pwchk", + "command": "ls /opt/playwright-visual/ 2>&1 | head -20", + "static": false + }, + { + "name": "gitloc", + "triggers": "gitloc", + "command": "cd /var/www/html && git remote -v 2>&1 | head -5 ; echo === BRANCH === ; git branch 2>&1 | head -3 ; echo === STATUS === ; git status 2>&1 | head -10", + "static": false + }, + { + "name": "gitlog", + "triggers": "gitlog", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "gitpush", + "triggers": "gitpush", + "command": "cd /var/www/html && git add -A && git commit -m doctrine-fix-autowire-cascade-priority-v4-v5-v6 -m opus-intervention-autonomy-WEVIA-Master 2>&1 | tail -3 ; echo === PUSH === ; git push gitea main 2>&1 | tail -5 ; echo === ORIGIN === ; git push origin main 2>&1 | tail -5", + "static": false + }, + { + "name": "verifyfp", + "triggers": "verifyfp", + "command": "grep -c NL-AUTOWIRE.PRIORITY /var/www/html/api/wevia-fast-path-v3.php ; grep -c sovereign.cascade.cascade /var/www/html/api/wevia-fast-path-v3.php ; ls -la /opt/wevia-brain/priority-intents-nl.json", + "static": false + }, + { + "name": "ajoute_nouvel_intent_wikiloc", + "triggers": "wikiloc", + "command": "ls /var/www/weval/wiki/ 2>/dev/null | head -10 ; echo === VAULT === ; ls /var/www/html/vault/ 2>/dev/null | head -10 ; ls /var/www/weval/vault/ 2>/dev/null | head -10", + "static": false + }, + { + "name": "screensloc", + "triggers": "screensloc", + "command": "ls /var/www/html/architecture*.html /var/www/html/agents-archi*.html /var/www/html/security*.html /var/www/html/wevia-master.html 2>&1 | head -15", + "static": false + }, + { + "name": "buginvest", + "triggers": "buginvest", + "command": "tail -n 20 /var/log/nginx/error.log", + "static": false + }, + { + "name": "gptmodels", + "triggers": "gptmodels", + "command": "curl -sk http://127.0.0.1:4000/v1/models", + "static": false + }, + { + "name": "sovloc", + "triggers": "sovloc", + "command": "ls /opt/sovereign-api/ 2>&1 | head -10", + "static": false + }, + { + "name": "sovmodels", + "triggers": "sovmodels", + "command": "grep -n -A5 v1.models /opt/sovereign-api/sovereign-api.py", + "static": false + }, + { + "name": "xopusinrt", + "triggers": "xopusinrt", + "command": "ls -la /var/www/html/api/wevia-opus-intents.php ; echo === HEAD === ; head -50 /var/www/html/api/wevia-opus-intents.php", + "static": false + }, + { + "name": "xwireck", + "triggers": "xwireck", + "command": "grep -n wevia-opus-intents /var/www/html/api/wevia-master-api.php", + "static": false + }, + { + "name": "xnrfresh", + "triggers": "xnrfresh", + "command": "nohup sudo python3 /opt/weval-nonreg/nonreg-master.py > /tmp/nrf.log 2>&1", + "static": false + }, + { + "name": "xlokiport", + "triggers": "xlokiport", + "command": "docker ps 2>&1 | grep loki ; echo === PORTS === ; docker port loki 2>&1 ; echo === HEALTH === ; docker inspect loki 2>&1 | grep -E HealthLog | head -5 ; echo === CURL 3100 === ; curl -sk http://127.0.0.1:3100/ready 2>&1 | head -c 200", + "static": false + }, + { + "name": "xcapssrc", + "triggers": "xcapssrc", + "command": "grep -n -A1 loki /var/www/html/api/wevia-capabilities.php", + "static": false + }, + { + "name": "xlokiports", + "triggers": "xlokiports", + "command": "curl -sk http://localhost:3100/ready 2>&1 | head -c 50 ; echo \"|\" ; curl -sk http://localhost:3110/ready 2>&1 | head -c 50 ; echo \"|\" ; ss -tlnp 2>&1 | grep -E \":3100|:3110\"", + "static": false + }, + { + "name": "listprio", + "triggers": "listprio", + "command": "cat /opt/wevia-brain/priority-intents-nl.json", + "static": false + }, + { + "name": "docker_status", + "triggers": "docker|conteneur", + "command": "docker ps --format '{{.Names}}: {{.Status}}' 2>/dev/null | head -20", + "static": false + }, + { + "name": "subdomain_status", + "triggers": "sous.domaines?|subdomains?", + "command": "for d in analytics crm git langfuse monitor n8n paperclip; do echo -n \"$d:\"; curl -sk -o /dev/null -w '%{http_code}' --max-time 3 https://$d.weval-consulting.com; echo; done", + "static": false + }, + { + "name": "nuclei_scan", + "triggers": "nuclei|scan.*securit", + "command": "echo NUCLEI && ls -lt /var/log/nuclei*.log 2>/dev/null | head -3", + "static": false + }, + { + "name": "qdrant_info", + "triggers": "qdrant.*vect|vect.*qdrant|qdrant.*collec", + "command": "curl -s http://127.0.0.1:6333/collections 2>/dev/null | head -c 500", + "static": false + }, + { + "name": "ajouter_bonjour_yacine", + "triggers": "bonjour yacine", + "command": "Bonjour Yacine ! Comment puis-je vous aider ?", + "static": true + }, + { + "name": "git_push", + "triggers": "commit.*push|push.*git|pousse.*git", + "command": "cd /var/www/html && git add -A && git commit -m 'auto-wevia' 2>&1 | tail -3 && git push 2>&1 | tail -3", + "static": false + }, + { + "name": "docker_restart", + "triggers": "redemarr.*container|restart.*docker|relance.*container", + "command": "echo 'Usage: docker restart ' && docker ps --format '{{.Names}}' | head -10", + "static": false + }, + { + "name": "cf_purge", + "triggers": "purge.*cloud|cloudflare.*purge|cache.*cloudflare|cf.*purge", + "command": "curl -sk -X POST 'https://api.cloudflare.com/client/v4/zones/1488bbba251c6fa282999fcc09aac9fe/purge_cache' -H 'X-Auth-Email: ymahboub@weval-consulting.com' -H 'X-Auth-Key: 9eb8d1041e7faeae68d5017376871ba170291' -H 'Content-Type: application/json' -d '{\"purge_everything\":true}' 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print('CF PURGE:','OK' if d.get('success') else 'FAIL',d.get('errors',['']))\"", + "static": false + }, + { + "name": "ethica_backup", + "triggers": "backup.*ethica|sauvegarde.*ethica|dump.*ethica|medecin.*base|base.*medecin|combien.*medecin.*total", + "command": "echo 'ETHICA BACKUP' && PGPASSWORD=admin123 pg_dump -h 10.1.0.3 -U admin -d adx_system -n ethica --no-owner -Fc -f /tmp/ethica-backup-$(date +%Y%m%d).dump 2>&1 && ls -lh /tmp/ethica-backup-*.dump | tail -1", + "static": false + }, + { + "name": "php_workers", + "triggers": "worker.*php|php.*worker|fpm.*worker|combien.*worker", + "command": "echo 'FPM:' && pgrep -c php-fpm && echo 'POOLS:' && cat /etc/php/8.5/fpm/pool.d/*.conf 2>/dev/null | grep pm.max_children | head -3", + "static": false + }, + { + "name": "containers_down", + "triggers": "container.*down|docker.*down|container.*arret|docker.*stop|truc.*march.*pas|quelque.*chose.*down|probleme.*serveur", + "command": "echo 'RUNNING:' && docker ps -q 2>/dev/null | wc -l && echo 'ALL:' && docker ps -aq 2>/dev/null | wc -l && echo 'STOPPED:' && docker ps -aq -f status=exited 2>/dev/null | wc -l", + "static": false + }, + { + "name": "visitors_online", + "triggers": "connecte.*site|visiteur|visitor|qui.*en.*ligne|analytics", + "command": "curl -s http://127.0.0.1:8000/api/v1/stats/aggregate?site_id=weval-consulting.com\\&period=realtime 2>/dev/null | head -c 200 || echo 'Plausible: check /analytics'", + "static": false + }, + { + "name": "nginx_version", + "triggers": "version.*nginx|nginx.*version", + "command": "nginx -v 2>&1", + "static": false + }, + { + "name": "load_server", + "triggers": "load.*average|load.*serv|charge.*serv|infrastructure|machine.*tourn|comment.*va.*infra|serveur.*bien|etat.*serveur|perf|performance|tient.*coup|lent", + "command": "echo 'LOAD:' && cat /proc/loadavg && echo 'RAM:' && free -h | head -2 && echo 'CPU:' && nproc", + "static": false + }, + { + "name": "sync_tout", + "triggers": "sync tout|lance sync|synchronise tout", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "lancer_tests_fonctionnels", + "triggers": "tests fonctionnels|lance functional|functional tests", + "command": "cd /opt/weval-l99 && python3 functional-tests.py 2>&1 | tail -5", + "static": false + }, + { + "name": "ajouter_crons_ethica_s95", + "triggers": "crons ethica s95|crons s95 ethica|ethica crons", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab+-l+2>/dev/null|grep+ethica", + "static": false + }, + { + "name": "add_security_scan", + "triggers": "scan securite|security scan|ssl crowdsec status", + "command": "echo SSL:; openssl s_client -connect weval-consulting.com:443 2>/dev/null | grep -i \"not after\"; echo CROWDSEC:; cscli alerts list -l 5 2>/dev/null || echo crowdsec-not-found", + "static": false + }, + { + "name": "paperclip_status", + "triggers": "paperclip status|agents paperclip", + "command": "curl -s http://127.0.0.1/api/paperclip-agents-api.php?action=stats 2>/dev/null | head -c 300", + "static": false + }, + { + "name": "scan_securite", + "triggers": "scan securite|security check", + "command": "echo SSL:; curl -skI https://weval-consulting.com 2>/dev/null | grep -i strict; echo DISK:; df -h / | tail -1", + "static": false + }, + { + "name": "crons_ethica", + "triggers": "crons ethica|ethica crons s95", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab%20-l%20|%20grep%20ethica", + "static": false + }, + { + "name": "ethica_crons", + "triggers": "crons ethica|ethica crons", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab%20-l", + "static": false + }, + { + "name": "pmta_status", + "triggers": "pmta status|status pmta", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=pmta%20show%20status", + "static": false + }, + { + "name": "cpu_temp", + "triggers": "temperature.*cpu|cpu.*temp|thermal", + "command": "cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | head -3 || sensors 2>/dev/null | head -5 || echo 'CPU temp: non disponible (pas de sensors)'", + "static": false + }, + { + "name": "ssl_certs", + "triggers": "certificat.*ssl|ssl.*actif|ssl.*list|certbot.*cert", + "command": "certbot certificates 2>/dev/null | head -20", + "static": false + }, + { + "name": "domain_expiry", + "triggers": "expire.*domaine|domaine.*expir|whois.*weval", + "command": "whois weval-consulting.com 2>/dev/null | grep -i 'expir' | head -3 || echo 'whois non installe'", + "static": false + }, + { + "name": "email_stats", + "triggers": "mail.*envoy|email.*envoy|mail.*cette.*semaine|combien.*mail", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=$(echo 'echo PMTA && pmta show counters | head -10' | base64 -w0) 2>/dev/null || echo 'PMTA stats via S95 sentinel'", + "static": false + }, + { + "name": "telegram_alerts", + "triggers": "alerte.*telegram|telegram.*alerte|telegram.*24h|notif.*telegram", + "command": "tail -50 /var/log/wevia/telegram-alerts.log 2>/dev/null || grep -r 'telegram' /var/log/wevia/ 2>/dev/null | tail -10 || echo 'Pas de log telegram recent'", + "static": false + }, + { + "name": "audit_security", + "triggers": "audit.*securit|securite.*complet|security.*audit|scan.*complet.*sec", + "command": "echo 'LAST NUCLEI:' && ls -lt /var/log/nuclei*.log 2>/dev/null | head -3 && echo 'TRIVY:' && trivy image --severity CRITICAL --quiet 2>/dev/null | head -5 && echo 'PORTS:' && ss -tlnp 2>/dev/null | wc -l", + "static": false + }, + { + "name": "req_per_sec", + "triggers": "requete.*seconde|req.*sec|trafic|combien.*requete|request.*rate", + "command": "echo 'NGINX:' && tail -1000 /var/log/nginx/access.log 2>/dev/null | awk '{print $4}' | cut -d: -f1-3 | sort | uniq -c | tail -5 || echo 'Pas de log access'", + "static": false + }, + { + "name": "users_connected", + "triggers": "utilisateurs|visitors|sessions.*active|derniers.*connect|qui.*ligne", + "command": "echo 'PHP Sessions:' && ls /var/lib/php/sessions/ 2>/dev/null | wc -l && echo 'Last access:' && tail -5 /var/log/nginx/access.log 2>/dev/null | awk '{print $1,$4,$7}'", + "static": false + }, + { + "name": "bilan_rapide", + "triggers": "point.*sur.*tout|bilan.*rapide|resume.*situation|comment.*ca.*va|tout.*ok|status.*general|ca.*va.*bien|ca.*roule|on.*en.*est.*ou|ou.*en.*est|etat.*general", + "command": "echo BILAN RAPIDE && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo LOAD:$(cat /proc/loadavg) && echo DISK:$(df -h / | tail -1 | awk '{print $5}') && echo DOCKER:$(docker ps -q 2>/dev/null|wc -l) && echo FPM:$(pgrep -c php-fpm)", + "static": false + }, + { + "name": "disk_space_nl", + "triggers": "place.*disque|assez.*place|disque.*plein|espace.*suffisant", + "command": "df -h / | tail -1", + "static": false + }, + { + "name": "medecins_total", + "triggers": "medecin.*base|base.*medecin|combien.*medecin.*total|medecin.*notre|couverture.*email|taux.*email|email.*pays", + "command": "curl -s http://127.0.0.1/api/ethica-country-api.php 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print('ETHICA:',d['total'],'HCPs,',d['email'],'email');[print(' ',c['pays']+':',c['t']) for c in d['countries']]\"", + "static": false + }, + { + "name": "infra_status_nl", + "triggers": "infrastructure|machines|serveurs|comment.*infra|etat.*serveur", + "command": "echo LOAD:$(cat /proc/loadavg | cut -d' ' -f1-3) RAM:$(free -h | grep Mem | awk '{print $3\"/\"$2}') DISK:$(df -h / | tail -1 | awk '{print $5}') FPM:$(pgrep -c php-fpm) DOCKER:$(docker ps -q 2>/dev/null|wc -l)", + "static": false + }, + { + "name": "problems_check", + "triggers": "truc.*march.*pas|quelque.*chose.*down|probleme|erreur.*recent|ya.*souci|soucis|incident|panne|bug.*recent", + "command": "echo DOCKER_STOPPED:$(docker ps -aq -f status=exited 2>/dev/null|wc -l) && echo LAST_ERRORS: && tail -3 /var/log/nginx/error.log 2>/dev/null", + "static": false + }, + { + "name": "reboot_uptime", + "triggers": "longtemps.*reboot|dernier.*reboot|depuis.*quand.*tourne|uptime.*serveur", + "command": "uptime", + "static": false + }, + { + "name": "ajouter_redis_info", + "triggers": "redis info", + "command": "redis-cli info memory | head -10", + "static": false + }, + { + "name": "deploy_check", + "triggers": "deployer.*production|pret.*deployer|peut.*deployer|ready.*deploy|go.*live", + "command": "echo DEPLOY CHECK && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo GIT:$(cd /var/www/html&&git status -s|wc -l) dirty && echo DOCKER:$(docker ps -q|wc -l) up && echo LOAD:$(cat /proc/loadavg|cut -d' ' -f1)", + "static": false + }, + { + "name": "risk_check", + "triggers": "risques|risque.*actuel|problemes.*potentiel|vulnerabilit", + "command": "echo RISKS: && echo DISK:$(df -h /|tail -1|awk '{print $5}') && echo DOCKER_DOWN:$(docker ps -aq -f status=exited|wc -l) && echo LAST_ERR:$(tail -3 /var/log/nginx/error.log 2>/dev/null) && echo SSL:$(certbot certificates 2>/dev/null|grep -c Expiry)", + "static": false + }, + { + "name": "metriques_cles", + "triggers": "metriques.*cles|kpi|indicateurs|rapport.*demain|metrics|tableau.*bord", + "command": "curl -s http://127.0.0.1/api/wevia-multiagent.php 2>/dev/null|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"diagnostic\"])'", + "static": false + }, + { + "name": "log_cleanup", + "triggers": "nettoie|clean.*log|purge.*log|vieux.*log|supprime.*log", + "command": "echo BEFORE: && du -sh /var/log/ && find /var/log -name '*.log' -mtime +7 -size +1M 2>/dev/null | head -10 && echo '(dry run - add --delete pour supprimer)'", + "static": false + }, + { + "name": "cert_check", + "triggers": "certificats|certbot|ssl.*valide|verif.*ssl|certif.*valide|renouvellement.*ssl|ssl.*renouv|expir.*ssl|prochain.*ssl", + "command": "certbot certificates 2>/dev/null | grep -A2 'Certificate Name' | head -15", + "static": false + }, + { + "name": "requests_today", + "triggers": "requetes.*aujourd|requete.*jour|trafic.*aujourd|visites.*aujourd", + "command": "echo TODAY: && wc -l /var/log/nginx/access.log 2>/dev/null && echo LAST_HOUR: && awk -v d=$(date +%d/%b/%Y:%H) '$0~d{c++}END{print c}' /var/log/nginx/access.log 2>/dev/null", + "static": false + }, + { + "name": "api_latency", + "triggers": "temps.*reponse|latence|api.*lent|performance|reponse.*moyen", + "command": "echo API_LATENCY: && for e in nonreg-api l99-api ethica-stats-api wevia-multiagent; do t=$(curl -sk -o /dev/null -w '%{time_total}' --max-time 5 http://127.0.0.1/api/$e.php 2>/dev/null); echo \" $e: ${t}s\"; done", + "static": false + }, + { + "name": "qdrant_search", + "triggers": "cherche.*dans.*base|knowledge|connaissance|recherche.*semantique", + "command": "curl -s http://127.0.0.1:6333/collections 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);cols=d['result']['collections'];print(len(cols),'collections:');[print(' ',c['name']) for c in cols]\"", + "static": false + }, + { + "name": "learning_status", + "triggers": "apprentissage|learning|auto.*learn|apprend", + "command": "echo LEARNING: && wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null && echo UNMATCHED: && wc -l /var/log/wevia/unmatched.jsonl 2>/dev/null && echo CRON: && crontab -l 2>/dev/null | grep learn", + "static": false + }, + { + "name": "wiki_status", + "triggers": "wiki|documentation|doc.*interne", + "command": "echo WIKI: && ls /opt/weval-ops/wiki/ 2>/dev/null | wc -l && echo PAGES: && curl -s http://127.0.0.1:3000/api/v1/repos/search?token=&limit=5 2>/dev/null | python3 -c \"import sys,json;print(len(json.load(sys.stdin).get('data',[])))\" 2>/dev/null || echo 'Gitea API check'", + "static": false + }, + { + "name": "vault_status", + "triggers": "vault|secret|mot.*passe|password", + "command": "echo VAULT: && ls /opt/wevads/vault/ 2>/dev/null | tail -5 && echo VAULTWARDEN: && curl -sk -o /dev/null -w '%{http_code}' http://127.0.0.1:8222/alive 2>/dev/null", + "static": false + }, + { + "name": "n8n_workflows", + "triggers": "n8n|workflow|automatisation", + "command": "echo N8N: && curl -s http://127.0.0.1:5678/api/v1/workflows?limit=5 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print(len(d.get('data',[]))),'workflows'\" 2>/dev/null || echo 'N8N: port 5678'", + "static": false + }, + { + "name": "mattermost_status", + "triggers": "mattermost|chat.*equipe|communication", + "command": "curl -s http://127.0.0.1:8065/api/v4/system/ping 2>/dev/null", + "static": false + }, + { + "name": "recent_changes", + "triggers": "dernier.*change|change.*recent|quoi.*neuf|nouveau|dernier.*modif|commit.*recent|derniere.*mise.*jour", + "command": "cd /var/www/html && echo LAST_COMMITS: && git log --oneline -5 && echo FILES_CHANGED: && git diff --stat HEAD~1 2>/dev/null | tail -3", + "static": false + }, + { + "name": "add_salut_weval", + "triggers": "salut weval", + "command": "Salut, comment puis-je vous aider ?", + "static": false + }, + { + "name": "daily_report", + "triggers": "rapport.*journee|rapport.*jour|bilan.*jour|resume.*journee|genere.*rapport|daily.*report", + "command": "echo RAPPORT $(date +%Y-%m-%d) && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo LOAD:$(cat /proc/loadavg|cut -d' ' -f1-3) && echo DISK:$(df -h /|tail -1|awk '{print $5}') && echo DOCKER:$(docker ps -q|wc -l) && echo REQUESTS:$(wc -l /var/log/nginx/access.log 2>/dev/null|cut -d' ' -f1) && echo GIT:$(cd /var/www/html&&git log --oneline -3)", + "static": false + }, + { + "name": "wevads_domains", + "triggers": "domaines.*wevads|wevads.*domain|combien.*domaine", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=$(echo 'echo DOMAINS && psql -U admin -d adx_system -c \"SELECT count(*) FROM domains\" -t' | base64 -w0) 2>/dev/null || echo 'WEVADS: 1535 domains (cache S95)'", + "static": false + }, + { + "name": "process_zombie", + "triggers": "zombie|processus.*mort|process.*bloqu|process.*stuck", + "command": "echo ZOMBIE: && ps aux | awk '$8 ~ /Z/{print}' | head -5 && echo TOTAL: && ps aux | awk '$8 ~ /Z/' | wc -l", + "static": false + }, + { + "name": "top_ram_process", + "triggers": "pid.*ram|process.*ram|consomme.*ram|ram.*process|memoire.*process", + "command": "ps aux --sort=-%mem | head -6", + "static": false + }, + { + "name": "suspicious_connections", + "triggers": "suspectes|intrusion|connexions.*bizarre|attaque|piratage|hack", + "command": "echo CONNECTIONS: && ss -tun | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10 && echo FAILED_SSH: && grep 'Failed password' /var/log/auth.log 2>/dev/null | tail -3", + "static": false + }, + { + "name": "self_meta", + "triggers": "combien.*intent|intent.*maintenant|tes.*capacit|tu.*sais.*faire|que.*sais.*tu", + "command": "echo INTENTS: && python3 -c 'import json;d=json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"));print(len(d),\"NL intents\")' && echo TOOLS: && curl -s http://127.0.0.1/api/wevia-ops.php?k=BLADE2026\\&action=status 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d.get(\"tools_count\",\"?\"),\"tools\")'", + "static": false + }, + { + "name": "qdrant_status_collections", + "triggers": "qdrant status|qdrant collections", + "command": "curl -s http://127.0.0.1:6333/collections", + "static": false + }, + { + "name": "heure_actuelle", + "triggers": "quelle heure|heure actuelle", + "command": "date", + "static": false + }, + { + "name": "ollama_status", + "triggers": "ollama status|ollama tourne", + "command": "systemctl is-active ollama 2>/dev/null; ollama list 2>/dev/null | head -5", + "static": false + }, + { + "name": "debug_pipeline", + "triggers": "pourquoi.*reponse|debug|explain.*pipeline|comment.*tu.*decide|chemin.*decision", + "command": "echo PIPELINE: NL-priority(94 intents)→opus-intents→fast-path-v3(1274L)→LLM-classifier(Groq)→dynamic-resolver(382tools)→LLM-fallback(sovereign) && echo STATS: && wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null && echo NL_INTENTS:$(python3 -c 'import json;print(len(json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"))))') && echo LAST_MATCH: && tail -1 /var/log/wevia/requests-all.jsonl 2>/dev/null | python3 -c 'import sys,json;d=json.loads(sys.stdin.readline());print(d.get(\"tool\",\"?\"),d.get(\"message\",\"?\")[:50])'", + "static": false + }, + { + "name": "schedule_task", + "triggers": "planifie|programme|schedule|rappelle.*moi|dans.*heure|cron.*ajoute", + "command": "echo SCHEDULER: Fonctionnalite en cours de wire. Crons actifs: && crontab -l 2>/dev/null | wc -l && echo Derniers: && crontab -l 2>/dev/null | tail -3", + "static": false + }, + { + "name": "telegram_send", + "triggers": "envoie.*telegram|telegram.*message|notifie.*telegram|previens.*telegram", + "command": "echo TELEGRAM: Bot 8544624912 Chat 7605775322 && echo 'Pour envoyer: curl -s https://api.telegram.org/bot/sendMessage -d chat_id=7605775322 -d text=MSG'", + "static": false + }, + { + "name": "top_cpu_process", + "triggers": "cpu.*consomme|process.*cpu|top.*process|process.*gourmand", + "command": "ps aux --sort=-%cpu | head -6", + "static": false + }, + { + "name": "network_connections", + "triggers": "connexions.*reseau|netstat|connections|ports.*ouverts|ports.*ecoute", + "command": "ss -tlnp 2>/dev/null | head -15", + "static": false + }, + { + "name": "cron_list", + "triggers": "liste.*cron|crontab|taches.*planifi|cron.*complet", + "command": "echo ROOT: && sudo crontab -l 2>/dev/null | grep -v '^#' | head -10 && echo WWW: && crontab -l -u www-data 2>/dev/null | head -5", + "static": false + }, + { + "name": "cable_cout_ia", + "triggers": "combien depense IA|cout IA|budget IA", + "command": "echo COUT IA MENSUEL: 0 EUR (100% free tier). 13 providers: Cerebras+Groq+SambaNova+Gemini+Mistral+Cohere+NVIDIA+Cloudflare+OpenRouter+HF+Ollama.", + "static": false + }, + { + "name": "clients_wevads", + "triggers": "clients actifs|comptes wevads", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"select%20count(*)%20from%20accounts\"", + "static": false + }, + { + "name": "budget_ia", + "triggers": "budget IA|depenses IA|cout mensuel", + "command": "echo 0 EUR par mois - 13 providers gratuits", + "static": false + }, + { + "name": "auto_guerison", + "triggers": "self heal|auto fix|repare toi", + "command": "php /var/www/html/api/sync-exec.php 2>/dev/null && curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c \"import sys,json;d=json.load(sys.stdin);print(d[chr(39)pass chr(39)],chr(47),d[chr(39)total chr(39)])\"", + "static": false + }, + { + "name": "top_specialites", + "triggers": "top specialites|specialites les plus frequentes", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20specialite,%20count(*)%20FROM%20ethica.medecins_real%20GROUP%20BY%20specialite%20ORDER%20BY%20count%20DESC%20LIMIT%2010\"", + "static": false + }, + { + "name": "correlation_systeme", + "triggers": "correlation systeme|vue croisee|cross check", + "command": "echo INFRA:$(cat /proc/loadavg | cut -d\" \" -f1-3) FPM:$(pgrep -c php-fpm) DOCKER:$(docker ps -q | wc -l) NONREG:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c \"import sys,json;print(json.load(sys.stdin).get(chr(39)pass chr(39),0))\") INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json)", + "static": false + }, + { + "name": "fix_css_overlaps", + "triggers": "auto-wire|css overlaps|warns", + "command": "sed 's/<[^>]*>/& style=\"z-index: 1000; pointer-events: none;\"/g' index.html", + "static": false + }, + { + "name": "cable_cross_check", + "triggers": "cross check|vue croisée", + "command": "curl -s http://127.0.0.1/api/infra-monitor-api.php", + "static": false + }, + { + "name": "cable_intent", + "triggers": "cherche dans la KB|recherche semantique|KB search", + "command": "curl -s http://127.0.0.1:6333/collections/wevia_knowledge/points/count", + "static": false + }, + { + "name": "cable_intent_anomalies", + "triggers": "scan anomalies", + "command": "cat /proc/loadavg", + "static": false + }, + { + "name": "cable_self_heal", + "triggers": "repare toi", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "cable_git_log", + "triggers": "historique git|git history", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "cable_wiki_articles", + "triggers": "wiki count|articles wiki", + "command": "find /opt/weval-l99/wiki -name *.md | wc -l", + "static": false + }, + { + "name": "web_search", + "triggers": "cherche.*web|recherche.*internet|google|search.*web|trouve.*ligne|perplexity", + "command": "curl -s 'http://127.0.0.1:8080/search?q=weval+consulting&format=json' 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print(len(d.get('results',[]))),'results found'\" 2>/dev/null || echo 'SearXNG: http://127.0.0.1:8080'", + "static": false + }, + { + "name": "deep_analysis", + "triggers": "analyse.*profonde|deep.*analysis|raisonnement|reasoning|reflexion|architecture.*analyse|analyse.*architecture", + "command": "echo DEEP ANALYSIS MODE && echo PROVIDERS: $(curl -s http://127.0.0.1/api/openclaw-proxy.php 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(len(d.get(\"providers\",[])))' 2>/dev/null) && echo MODELS: Cerebras(fast)+Groq(versatile)+SambaNova(deep)+Gemini(multimodal) && echo 'Pour analyse profonde: envoyer via /api/saas-chat.php avec context enrichi'", + "static": false + }, + { + "name": "multimodal_status", + "triggers": "multimodales|multimodal|vision|image.*analyse|capacites.*image|capacite.*vision", + "command": "echo MULTIMODAL CAPABILITIES: && echo 'Vision: Gemini 2.0 Flash (free tier 60req/min)' && echo 'OCR: Tesseract local' && echo 'Audio: Whisper.cpp (a installer)' && echo 'Image Gen: SDXL via HF Spaces (a wirer)' && echo 'Search: SearXNG local (port 8080)' && echo API: && curl -s --max-time 3 'https://generativelanguage.googleapis.com/v1beta/models?key=NONE' -o /dev/null -w 'Gemini API: %{http_code}' 2>/dev/null", + "static": false + }, + { + "name": "code_gen", + "triggers": "genere.*code|ecris.*code|script.*python|script.*php|code.*pour|programme.*pour", + "command": "echo CODE GENERATION: && echo 'Engines: WEVCODE(/wevia-fullscreen) + Sovereign Cascade(port 4000)' && echo 'Languages: PHP, Python, JS, Bash, SQL' && echo 'Pour generer: utiliser /api/saas-chat.php avec prompt detaille'", + "static": false + }, + { + "name": "translate", + "triggers": "traduis|traduction|translate|anglais.*francais|francais.*anglais|arabe", + "command": "echo TRADUCTION: Disponible via Groq/Cerebras/Gemini (0 EUR) && echo 'Langues: FR/EN/AR/ES/DE/IT/PT/ZH/JA' && echo 'Pour traduire: envoyer texte via /api/saas-chat.php'", + "static": false + }, + { + "name": "summarize", + "triggers": "resume.*document|synthese|summarize|condense|resume.*texte|resume.*article", + "command": "echo RESUME: Disponible via sovereign cascade (0 EUR) && echo 'Max context: 128K tokens (Gemini) / 32K (Groq)' && echo 'Pour resumer: envoyer document via /api/saas-chat.php'", + "static": false + }, + { + "name": "calculate", + "triggers": "calcul|math|combien.*fait|pourcentage|moyenne|total.*somme|ROI|conversion", + "command": "echo CALC ENGINE: Python3 disponible && python3 -c \"print('Python3 math OK:', 2**10, '| pi:', __import__('math').pi)\"", + "static": false + }, + { + "name": "compare_tools", + "triggers": "compare|benchmark|versus|difference.*entre|meilleur.*entre|quel.*choisir|cerebras.*groq|groq.*cerebras", + "command": "echo BENCHMARK MODE: && echo 'Providers: 13 (12 sovereign + 1 Ollama)' && echo 'Latence avg: Cerebras<200ms Groq<500ms Gemini<1s' && echo 'Pour comparer: specifier les 2 elements a comparer'", + "static": false + }, + { + "name": "proactive_alerts", + "triggers": "alertes.*proactives|alertes.*proactive|surveillance|monitoring|veille|watchdog|alertes.*actives", + "command": "echo PROACTIVE MONITORING: && echo 'Watchdog FPM: actif (*/1min)' && echo 'NonReg daily: actif (5h)' && echo 'Learning nightly: actif (5h)' && echo 'Sync: actif (*/5min)' && echo 'Telegram: bot 8544624912' && echo 'Uptime-Kuma: http://127.0.0.1:3088' && curl -s --max-time 2 http://127.0.0.1:3088 -o /dev/null -w 'Kuma: HTTP %{http_code}' 2>/dev/null", + "static": false + }, + { + "name": "export_data", + "triggers": "export|telecharge|download|csv|excel|dump.*donnees", + "command": "echo EXPORT DISPONIBLE: && echo 'Ethica HCPs: pg_dump (53MB)' && echo 'WEVADS accounts: pg_dump S95' && echo 'Git history: git log --format=csv' && echo 'NR results: /api/nonreg-api.php?cat=all' && echo 'L99 data: /api/l99-api.php?action=stats'", + "static": false + }, + { + "name": "auto_doc", + "triggers": "documentation.*genere|documente|genere.*doc|wiki.*genere|readme", + "command": "echo AUTO-DOC: && echo 'Wiki: /opt/weval-ops/wiki/' && ls /opt/weval-ops/wiki/ 2>/dev/null | wc -l && echo 'articles' && echo 'Vault: /opt/wevads/vault/' && ls /opt/wevads/vault/ 2>/dev/null | wc -l && echo 'GOLDs' && echo 'API docs: 15 endpoints documentes'", + "static": false + }, + { + "name": "optimize_system", + "triggers": "optimise|optimisation|accelere|ameliore.*perf|tune|tuning", + "command": "echo OPTIMIZATION: && echo 'FPM: pm.max_children=' && grep max_children /etc/php/8.5/fpm/pool.d/*.conf 2>/dev/null | head -2 && echo 'OPcache:' && php -i 2>/dev/null | grep opcache.enable | head -1 && echo 'Redis:' && redis-cli info memory 2>/dev/null | grep used_memory_human", + "static": false + }, + { + "name": "self_heal", + "triggers": "repare toi|self heal|auto repair", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "benchmark_perf", + "triggers": "benchmark|performance test", + "command": "curl -so/dev/null -w 'TIME:%{time_total}s' http://127.0.0.1/api/nonreg-api.php?cat=all", + "static": false + }, + { + "name": "log_errors", + "triggers": "erreurs logs|log errors|nginx errors", + "command": "tail -n5 /var/log/nginx/error.log", + "static": false + }, + { + "name": "deerflow_health", + "triggers": "deerflow health|deerflow status", + "command": "curl -s --max-time 5 http://127.0.0.1:8088/health || echo DOWN", + "static": false + }, + { + "name": "backup_vault_status", + "triggers": "backup status|etat sauvegardes", + "command": "ls -t /opt/wevads/vault/ | head -3", + "static": false + }, + { + "name": "network_check", + "triggers": "test network|test connectivite", + "command": "echo S95:$(curl -so/dev/null -w%{http_code} --max-time 3 http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=echo+ok)", + "static": false + }, + { + "name": "git_history", + "triggers": "historique git|git history|derniers commits", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "wiki_count", + "triggers": "wiki count|articles wiki", + "command": "find /opt/weval-l99/wiki -name '*.md' | wc -l", + "static": false + }, + { + "name": "memory_usage", + "triggers": "memoire usage|ram usage|memory status", + "command": "free -h | head -2", + "static": false + }, + { + "name": "ssl_expiry", + "triggers": "ssl expire|certificat ssl", + "command": "echo | openssl s_client -servername weval-consulting.com -connect 127.0.0.1:443 2>/dev/null | openssl x509 -noout -enddate", + "static": false + }, + { + "name": "top_processes", + "triggers": "top processes|cpu usage", + "command": "ps aux --sort=-%cpu | head -6", + "static": false + }, + { + "name": "ethica_enrichment", + "triggers": "enrichissement ethica|scraping status", + "command": "tail -3 /var/log/ethica-richscraper.log", + "static": false + }, + { + "name": "consent_optins", + "triggers": "consent optins|combien optins", + "command": "curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20count(*)%20FROM%20ethica.consent_log\"'", + "static": false + }, + { + "name": "mattermost_health", + "triggers": "mattermost status|mm status", + "command": "curl -so/dev/null -w%{http_code} --max-time 3 https://mm.weval-consulting.com", + "static": false + }, + { + "name": "listmonk_status", + "triggers": "listmonk status|listmonk health", + "command": "curl -so/dev/null -w%{http_code} --max-time 3 http://127.0.0.1:9000", + "static": false + }, + { + "name": "lean_6sigma_report", + "triggers": "rapport 6sigma|6sigma report|lean report", + "command": "echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"pass\"],\"/\",json.load(open(\"/dev/stdin\"))[\"total\"])' 2>/dev/null || echo ?) INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json)", + "static": false + }, + { + "name": "email_gap_ethica", + "triggers": "email gap|gap ethica|couverture email", + "command": "curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20pays,count(*)%20total,count(email)%20emails%20FROM%20ethica.medecins_real%20GROUP%20BY%20pays\"'", + "static": false + }, + { + "name": "platform_kpis", + "triggers": "kpis|indicateurs plateforme|dashboard kpi", + "command": "echo PAGES:$(find /var/www/html -maxdepth 1 -name '*.html' | wc -l) TOOLS:$(grep -c name /var/www/html/api/wevia-tool-registry.json) INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json) DOCKER:$(docker ps -q | wc -l)", + "static": false + }, + { + "name": "uptime_all", + "triggers": "uptime global|uptime tous serveurs", + "command": "echo S204:$(uptime -p) S95:$(curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=uptime%20-p' 2>/dev/null | python3 -c 'import sys,json;print(json.load(sys.stdin).get(\"output\",\"?\"))' 2>/dev/null)", + "static": false + }, + { + "name": "file_search", + "triggers": "trouve.*fichiers|cherche.*fichiers|fichiers.*modifi|localise.*fichier|find.*file|fichiers.*recent", + "command": "echo 'Specify: find /var/www/html -name \"PATTERN\" -type f' && echo RECENT: && find /var/www/html -name '*.php' -mmin -60 -type f 2>/dev/null | head -10", + "static": false + }, + { + "name": "file_read", + "triggers": "lis.*fichier|montre.*contenu|cat.*fichier|affiche.*fichier|contenu.*de", + "command": "echo 'FILE READ: specify path' && echo LAST_MODIFIED: && ls -lt /var/www/html/api/*.php 2>/dev/null | head -5", + "static": false + }, + { + "name": "file_edit", + "triggers": "modifie.*fichier|edit.*file|change.*dans|remplace.*dans|sed.*fichier", + "command": "echo 'FILE EDIT: Use auto-wire or direct command' && echo 'Pattern: sed -i \"s/OLD/NEW/g\" FILE' && echo 'Safety: GOLD backup + php -l validation + chattr +i'", + "static": false + }, + { + "name": "code_lint", + "triggers": "lint|syntaxe|erreur.*code|valide.*code|php.*lint|check.*code", + "command": "echo PHP_LINT: && find /var/www/html/api -name '*.php' -mmin -120 -exec php -l {} \\; 2>&1 | grep -v 'No syntax' | head -10 && echo '(only recent files checked)'", + "static": false + }, + { + "name": "git_log", + "triggers": "historique.*git|git.*log|derniers.*commits|qui.*commite|changelog", + "command": "cd /var/www/html && git log --oneline --since='24 hours ago' | head -15", + "static": false + }, + { + "name": "git_diff", + "triggers": "diff.*git|changements.*git|modifications.*recentes|git.*diff|quoi.*change", + "command": "cd /var/www/html && git diff --stat HEAD~3 2>/dev/null | tail -10", + "static": false + }, + { + "name": "screenshot_page", + "triggers": "screenshot|capture.*ecran|capture.*page|prends.*photo|snapshot", + "command": "echo SCREENSHOTS: $(ls /var/www/html/screenshots/ 2>/dev/null | wc -l) disponibles && echo LAST: && ls -lt /var/www/html/screenshots/ 2>/dev/null | head -3 && echo 'Playwright: npx playwright screenshot URL'", + "static": false + }, + { + "name": "browser_check", + "triggers": "pages.*accessible|page.*accessible|teste.*pages|verifie.*pages|urls.*marche|sites.*marchent", + "command": "for u in weval-consulting.com/wevia-master.html weval-consulting.com/wevia.html weval-consulting.com/ethica-hub.html; do echo -n \"$u: \"; curl -sk -o /dev/null -w '%{http_code} %{time_total}s' --max-time 5 https://$u 2>/dev/null; echo; done", + "static": false + }, + { + "name": "task_create", + "triggers": "cree.*tache|nouvelle.*tache|ajoute.*tache|todo|task.*create", + "command": "echo TASK SYSTEMS: && echo 'Paperclip: 890 agents' && echo 'Twenty CRM: deals/tasks' && echo 'n8n: workflow automation' && echo 'Pour creer: specifier titre + assignee + deadline'", + "static": false + }, + { + "name": "workflow_run", + "triggers": "lance.*workflow|execute.*workflow|automatise|n8n.*lance|workflow.*n8n", + "command": "echo N8N WORKFLOWS: && curl -s http://127.0.0.1:5678/api/v1/workflows 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);wf=d.get('data',[]);print(len(wf),'workflows');[print(' ',w['name'][:40],w.get('active','?')) for w in wf[:5]]\" 2>/dev/null || echo 'N8N: port 5678'", + "static": false + }, + { + "name": "mcp_status", + "triggers": "mcp|model.*context|connecteurs|integrations.*externes|services.*externes", + "command": "echo MCP EQUIVALENTS (internes): && echo 'SearXNG: search (port 8080)' && echo 'Qdrant: vector DB (port 6333)' && echo 'Ollama: embeddings (port 11434)' && echo 'Redis: cache (port 6379)' && echo 'PostgreSQL: DB (S95:5432)' && echo 'n8n: workflows (port 5678)' && echo 'Mattermost: chat (port 8065)' && echo 'Telegram: bot API' && echo 'GitHub: PAT ghp_Uhh8...'", + "static": false + }, + { + "name": "self_improve", + "triggers": "ameliore.*toi|auto.*amelioration|self.*improve|deviens.*meilleur|evolue", + "command": "echo SELF-IMPROVEMENT: && echo 'Learning log: '$(wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null | cut -d' ' -f1)' requests' && echo 'Unmatched: '$(wc -l /var/log/wevia/unmatched.jsonl 2>/dev/null | cut -d' ' -f1 || echo 0)' queries' && echo 'NL intents: '$(python3 -c 'import json;print(len(json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"))))') && echo 'Auto-wire: ACTIF' && echo 'Learn cron: 5h nightly' && echo 'Fine-tune: Kaggle T4 (a lancer)'", + "static": false + }, + { + "name": "self_benchmark", + "triggers": "benchmark.*toi|teste.*toi|auto.*test|self.*test|mesure.*perf", + "command": "echo SELF-BENCHMARK: && START=$(date +%s%N) && curl -s http://127.0.0.1/api/nonreg-api.php?cat=all -o /dev/null && END=$(date +%s%N) && echo NR_LATENCY: $(( (END-START)/1000000 ))ms && echo NR: $(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo L99: $(curl -s http://127.0.0.1/api/l99-api.php?action=stats | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])')", + "static": false + }, + { + "name": "top_ia_multimodal_vision", + "triggers": "vision|image|ocr|gemini.vision", + "command": "/opt/weval-ops/top-ia/TOP_IA_MULTIMODAL_VISION.py", + "static": false + }, + { + "name": "nettoie_crm", + "triggers": "nettoie crm", + "command": "psql delete from pipeline_deals where status=expired", + "static": false + }, + { + "name": "fix_login_ux", + "triggers": "fix login|corrige login|spinner authentik|logout fantome|login ux", + "command": "echo fix_login_ux routed via GOLD+patch+nonreg", + "static": false + }, + { + "name": "playwright_screenshot", + "triggers": "screenshot playwright|capture playwright|test visuel login", + "command": "node /opt/weval-ops/pw_screenshot_generic.js", + "static": false + }, + { + "name": "full_health_check", + "triggers": "health check complet|etat systeme global|diag full|systeme ok|sante globale", + "command": "echo HEALTH: && echo NR: $(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"summary\"][\"pass\"],\"/\",d[\"summary\"][\"total\"])') && echo L99: $(curl -s http://127.0.0.1/api/l99-api.php?action=stats 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"],\"(\",d[\"score\"],\"%)\")') && echo GIT: $(cd /var/www/html && sudo git log --oneline -1)", + "static": false + }, + { + "name": "deploy_and_nonreg", + "triggers": "deploy et nonreg|deploy avec verif|deploy safe|deploy+nonreg", + "command": "echo DEPLOY_NONREG_WORKFLOW: 1-sudo chattr -i TARGET 2-sudo cp SOURCE TARGET 3-sudo chown www-data:www-data TARGET 4-curl nonreg-api verify 153/153 5-if fail rollback from GOLD", + "static": false + }, + { + "name": "fix_and_verify", + "triggers": "fix et verifie|corrige puis teste|fix+verify|corrige et nonreg", + "command": "echo FIX_VERIFY_WORKFLOW: 1-GOLD backup avant modif 2-apply patch 3-lint syntax check 4-sudo cp deploy 5-curl nonreg verify 153/153 6-curl l99 verify no new fails 7-if regression rollback from GOLD", + "static": false + }, + { + "name": "test_check_42", + "triggers": "check42", + "command": "echo 42_OK", + "static": false + }, + { + "name": "hf_inference", + "triggers": "hf[\\s_-]inference|huggingface[\\s_-]test|hf[\\s_-]zero[\\s_-]gpu|run[\\s_-]huggingface|hf[\\s_-]status|huggingface[\\s_-]status", + "command": "curl -s \"http://localhost/api/gpu-free-stack.php\" --max-time 10 | jq -r '.backends.huggingface | \"HF \" + .status + \" - \" + .user + \" - \" + .free_resource'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078289", + "triggers_updated_at": "2026-04-24T14:28:01.950726" + }, + { + "name": "kaggle_run_finetune", + "triggers": "kaggle[\\s_-]finetune|run[\\s_-]kaggle|kaggle[\\s_-]fine[\\s_-]tune|kaggle[\\s_-]t4|kaggle[\\s_-]notebook|kaggle[\\s_-]status", + "command": "curl -s \"http://localhost/api/gpu-free-stack.php\" --max-time 10 | jq -r '.backends.kaggle | \"Kaggle \" + .status + \" - script:\" + (.script_exists|tostring) + \" - proofs:\" + (.proofs_count|tostring) + \" - \" + .free_resource'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078312", + "triggers_updated_at": "2026-04-24T14:28:01.950750" + }, + { + "name": "offload_backup_s95", + "triggers": "offload[\\s_-]backup[\\s_-]s95|backup[\\s_-]to[\\s_-]s95|s95[\\s_-]backup|deport[\\s_-]backup[\\s_-]s95|s95[\\s_-]disk[\\s_-]status|s95[\\s_-]storage", + "command": "curl -s -X POST https://wevads.weval-consulting.com/api/sentinel-brain.php --data-urlencode action=exec --data-urlencode cmd=\"df -h / | tail -1\" --max-time 10 | jq -r '.output | \"S95 disk: \" + .'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078332", + "triggers_updated_at": "2026-04-24T14:28:01.950787" + }, + { + "name": "scraper_ethica_s95", + "triggers": "scraper[\\s_-]ethica|scraper[\\s_-]ethica[\\s_-]s95|scraper[\\s_-]ethica[\\s_-]status|scraper[\\s_-]hcp|scraper[\\s_-]hcps|s95[\\s_-]scraper|hcp[\\s_-]scraper|check[\\s_-]scraper[\\s_-]ethica|scraping[\\s_-]ethica|scraper[\\s_-]status[\\s_-]s95", + "command": "curl -s -X POST https://wevads.weval-consulting.com/api/sentinel-brain.php --data-urlencode action=exec --data-urlencode cmd=\"systemctl status scraper-ethica 2>/dev/null | head -3 | tail -1\" --max-time 10 | jq -r '.output | \"Scraper: \" + .'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078344", + "triggers_updated_at": "2026-04-24T14:38:36.263036" + }, + { + "name": "test_offload_all_parallel", + "triggers": "test[\\s_-]offload[\\s_-]all|multi[\\s_-]offload|offload[\\s_-]intents|exploit[\\s_-]s95[\\s_-]kaggle[\\s_-]hf|offload[\\s_-]multi[\\s_-]agent|offload[\\s_-]4|test[\\s_-]4[\\s_-]offloads|offload[\\s_-]gpu[\\s_-]free|s95[\\s_-]offload[\\s_-]full|optimise[\\s_-]stockage[\\s_-]s95[\\s_-]full", + "command": "bash /opt/weval-ops/opus-intents/opus-offload-parallel.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078366", + "triggers_updated_at": "2026-04-24T14:28:01.950829" + } +] \ No newline at end of file diff --git a/ops-data/priority-intents-nl-snapshot-20260424-1503.json b/ops-data/priority-intents-nl-snapshot-20260424-1503.json new file mode 100644 index 000000000..f3ebd9ed2 --- /dev/null +++ b/ops-data/priority-intents-nl-snapshot-20260424-1503.json @@ -0,0 +1,1223 @@ +[ + { + "name": "diag_training_benchmark_wevia", + "triggers": "pourquoi.{0,25}(aucun|pas).{0,15}(pourcentage|percent|score).{0,15}wevia|diag.{0,10}training.{0,20}benchmark|benchmark.{0,15}wevia.{0,10}(null|vide|manqu)|cause.{0,15}racine.{0,10}(training|benchmark.{0,10}wevia)|ligne.{0,10}wevia.{0,15}(vide|null|manqu)|wevia.{0,15}training.{0,15}benchmark", + "command": "echo === DIAG TRAINING BENCHMARK WEVIA ===; echo; echo FICHIER: /var/www/html/wevia-training.html ligne 2254-2258; sed -n '2254,2258p' /var/www/html/wevia-training.html; echo; echo === CAUSE RACINE ===; echo 'WEVIA = orchestrateur multi-provider sovereign cascade v3'; echo 'gpqa swe math aime arena_code = null PAR DESIGN - doctrine 4 honnetete'; echo 'Herite du score du provider actif dynamique:'; echo '- Cerebras primary: 72 pct GPQA, 2500 tokens/s'; echo '- Claude Opus 4.7 deep mode: 94.2 pct GPQA fallback'; echo '- 13 providers cascade, 0 EUR cost'; echo; echo === AFFICHAGE ACTUEL ===; echo 'Dash em --- car le rendu JS skip les null'; echo 'Doc positionnement ligne 2728 honnete mais UX ambigue'; echo; echo === FIX OPTIONS ===; echo 'Option 1 RECOMMANDE: valeur heritee primary + badge teal inherited + tooltip'; echo 'Option 2: footer explicatif sous le tableau'; echo 'Option 3: best-of-pool 94.2 pct + badge best-of-13'; echo; echo === PROOF REEL ===; grep -c 'gpqa:null' /var/www/html/wevia-training.html; echo 'null_gpqa_count above'; grep -c 'WEVIA Sovereign' /var/www/html/wevia-training.html; echo 'wevia_sovereign_mentions above'", + "static": false + }, + { + "name": "opus_respawn_tracer", + "triggers": "respawn_trace|respawn_tracer|trace_respawn|track_respawn", + "command": "bash /opt/weval-ops/opus-intents/opus-respawn-tracer.sh 15", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:40:29.572817" + }, + { + "name": "opus_disaster_clean", + "triggers": "disaster_clean|infra_cleanup|chrome_clean|clean_leaked_chrome", + "command": "bash /opt/weval-ops/opus-intents/opus-disaster-recovery.sh all", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:13:50.614805" + }, + { + "name": "opus_disaster_recovery", + "triggers": "disaster_recovery|disaster_status|infra_health|wevia_heal|disaster_cleanup", + "command": "bash /opt/weval-ops/opus-intents/opus-disaster-recovery.sh status", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:13:49.685662" + }, + { + "name": "opus_cyber_profile_manager", + "triggers": "cyber_profile|cyber_status|chrome_profile_status|profiles_status|cyber_profiles", + "command": "bash /opt/weval-ops/opus-intents/opus-cyber-profile.sh status", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T13:38:48.658080" + }, + { + "name": "opus_detect_richux", + "triggers": "detect_richux|scan_richux|richux_check|pages_overwritten", + "command": "bash /opt/weval-ops/opus-intents/detect-richux.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T11:45:26.646679" + }, + { + "name": "opus_git_push_ssh_fallback", + "triggers": "git.{0,20}(push|commit|sync).{0,30}(fail|lock|credent)|credential.{0,20}(lock|error)|push.{0,20}fail", + "command": "bash /opt/weval-ops/opus-intents/opus-git-push-fallback.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.543165" + }, + { + "name": "opus_disk_prune_safe", + "triggers": "(disk|storage|space).{0,20}(prune|clean|free|saturat)|vault.{0,20}dedupe|(gold|backup).{0,20}(old|rotate|archive)", + "command": "bash /opt/weval-ops/opus-intents/opus-disk-prune.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.311171" + }, + { + "name": "opus_cf_purge_all", + "triggers": "cloudflare.{0,30}purge|cf.{0,20}(cache|purge|clear)|purge.{0,30}cloudflare", + "command": "bash /opt/weval-ops/opus-intents/opus-cf-purge.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.131073" + }, + { + "name": "opus_avatar_e2e_smart", + "triggers": "(smart|e2e|test).{0,30}avatar.{0,40}(propagat|3 pages|enterprise|meeting|archi)|avatar.{0,30}(smart|visual).{0,30}detect", + "command": "bash /opt/weval-ops/opus-intents/opus-avatar-e2e.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:24.936092" + }, + { + "name": "w274g2", + "triggers": "w274 g2", + "command": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf /opt/wevads/vault/archived_gold_purge/g22.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s /opt/wevads/vault/archived_gold_purge/g22.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee /tmp/sel-test.py", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:50:47.785676" + }, + { + "name": "opus46_glm5_call", + "triggers": "opus46.*glm|call opus46|glm5 direct", + "command": "bash -c \"timeout 30 python3 /opt/weval-ops/top-ia/opus46-dispatch.py\"", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:11:49.736483" + }, + { + "name": "autowire_help", + "triggers": "auto.?wire\\s+help|comment\\s+creer\\s+intent|syntaxe\\s+wire|how\\s+wire\\s+intent|aide\\s+wire|autowire\\s+doc", + "command": "cat < stub PENDING_APPROVAL\n 2. 'master list pending' -> voir stubs dormants\n 3. 'master activate last' -> inject dans priority-intents-nl.json + reload FPM\n 4. Nouvel intent LIVE et matchable en chat\n\nSECURITE:\n - cmd doit contenir /var/www/html/ ou /var/www/weval/ ou /opt/wevia-brain/ ou /opt/wevads/vault/ ou echo ou curl ou php8.4 ou git\n - sinon status = PENDING_SECURITY_REVIEW (refus activate auto)\n\nFICHIERS CLES:\n /var/www/html/api/wired-pending/ (stubs PENDING)\n /opt/wevia-brain/priority-intents-nl.json (intents LIVE)\n /opt/weval-ops/activate-pending-intent.py (activator)\n /var/log/weval/opus4-autowire.log (trace)\nHELP", + "static": false + }, + { + "name": "activate_named_pending", + "triggers": "master\\s+activate\\s+intent\\s+[a-z0-9_]+|active\\s+intent\\s+[a-z0-9_]+|activate\\s+pending\\s+[a-z0-9_]+", + "command": "echo 'Usage: for named activation, use: master activate last (active le dernier pending) OU directement python3 /opt/weval-ops/activate-pending-intent.py '; echo; echo 'Last 10 pending:'; ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -10 | xargs -n1 basename 2>/dev/null | sed 's/intent-opus4-//;s/.php$//'", + "static": false + }, + { + "name": "activate_last_pending", + "triggers": "master\\s+activate\\s+last|active\\s+dernier\\s+pending|activate\\s+last\\s+pending|active\\s+dernier\\s+intent", + "command": "LAST=$(ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -1); if [ -z \"$LAST\" ]; then echo 'No pending intent'; exit 0; fi; NAME=$(basename \"$LAST\" | sed 's/intent-opus4-//;s/.php$//'); echo \"Activating: $NAME\"; python3 /opt/weval-ops/activate-pending-intent.py \"$NAME\" 2>&1", + "static": false + }, + { + "name": "list_pending_intents", + "triggers": "master\\s+list\\s+pending|intents?\\s+en\\s+attente|liste\\s+pending|pending\\s+intents?\\s+list|voir\\s+intents?\\s+(dormants|pending)", + "command": "echo === PENDING INTENTS ===; ls /var/www/html/api/wired-pending/ 2>/dev/null | grep -E 'intent-opus4-[a-z]' | grep -v ACTIVATED | wc -l; echo pending_count_above; echo; echo === LAST 15 ===; ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -15 | xargs -n1 basename 2>/dev/null; echo; echo === ACTIVATED LAST 10 ===; ls -t /var/www/html/api/wired-pending/intent-opus4-ACTIVATED-*.php 2>/dev/null | head -10 | xargs -n1 basename 2>/dev/null", + "static": false + }, + { + "name": "wevia_heritage_score", + "triggers": "score.{0,10}herite|heritage.{0,10}wevia|quel.{0,10}score.{0,10}actuel.{0,10}wevia", + "command": "echo === wevia heritage score ===; echo provider primary actif: cerebras llama 3.3 70b; echo score gpqa herite: 72 pct; echo tokens/s: 2500; echo latence: 50ms; echo cost: 0 eur; echo fallback deep: claude opus 4.7 = 94.2 pct gpqa; echo source: /var/www/html/wevia-training.html ligne 2256", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T04:40:25.212093" + }, + { + "name": "fix_growth_advisor_scroll", + "triggers": "fix.{0,15}scroll.{0,15}(growth|advisor)|(growth|advisor).{0,15}(not|pas).{0,15}scrollable|(growth|advisor).{0,20}scroll.{0,15}(stuck|casse|bloque)|growth.{0,10}advisor.{0,20}scroll", + "command": "echo === GROWTH ADVISOR SCROLL FIX STATUS ===; grep -c 'WAVE-SCROLL-FIX-23AVR' /var/www/html/growth-engine-v2.html 2>&1; echo === FILE INFO ===; ls -la /var/www/html/growth-engine-v2.html; lsattr /var/www/html/growth-engine-v2.html 2>&1; echo === LAST COMMIT ===; cd /var/www/html && git log --oneline -3 -- growth-engine-v2.html 2>&1", + "static": false + }, + { + "name": "playwright_scroll_diag", + "triggers": "playwright.{0,15}(test|diag).{0,15}scroll|diag.{0,15}scroll.{0,15}(advisor|growth)|test.{0,15}scroll.{0,15}(growth|advisor)|scroll.{0,15}(proof|preuve)|advisor.{0,15}scroll.{0,15}(test|validation|proof)", + "command": "echo === WAVE-272 AUTHENTICATED PROOF ===; ls /opt/wevads/vault/proofs/wave272-scroll-fix-23avr/ 2>&1; echo === RESULT.JSON ===; cat /opt/wevads/vault/proofs/wave272-scroll-fix-23avr/result.json 2>/dev/null | python3 -m json.tool 2>&1 | head -40; echo === AUTH SCRIPT REUSE ===; ls -la /opt/weval-nonreg/advisor_scroll_authed_v1.js 2>&1; echo 'Rerun: sudo -u www-data node /opt/weval-nonreg/advisor_scroll_authed_v1.js (takes ~40s, login yacine auto)'", + "static": false + }, + { + "name": "clean_disk_safe", + "triggers": "clean.{0,15}disk.{0,15}safe|(nettoie|nettoyer|nettoyage|purge|liber|libere).{0,20}(disque|disk|gold|vieux|espace|golds)|disk.{0,15}full", + "command": "echo === DISK BEFORE ===; df -h / | tail -1; echo === KEEP LATEST GOLD ONLY ===; LATEST=$(ls -dt /opt/wevads/vault/gold-auto-* 2>/dev/null | head -1); echo LATEST=$LATEST; for g in $(ls -dt /opt/wevads/vault/gold-auto-* 2>/dev/null | tail -n +2); do echo PURGE=$g; sudo rm -rf \"$g\"; done; echo === TMP PLAYWRIGHT PROFILES >30min ===; sudo find /tmp -maxdepth 1 -name 'playwright_chromiumdev_profile-*' -mmin +30 -exec rm -rf {} \\; 2>/dev/null; sudo find /tmp -maxdepth 1 -name 'playwright-artifacts-*' -mmin +30 -exec rm -rf {} \\; 2>/dev/null; echo === DISK AFTER ===; df -h / | tail -1", + "static": false + }, + { + "name": "zxqtest", + "triggers": "zxqtest", + "command": "echo bonjour", + "static": false + }, + { + "name": "xcode_diag", + "triggers": "xcode", + "command": "ls -la /var/log/nginx/code* /etc/nginx/sites-enabled/code* 2>&1 ; echo === VHOST === ; cat /etc/nginx/sites-enabled/code.weval-consulting.com 2>&1 ; echo === LAST ERR === ; grep -i code /var/log/nginx/error.log 2>&1 | tail -30", + "static": false + }, + { + "name": "xcode_vhost", + "triggers": "xvhost", + "command": "cat /etc/nginx/sites-enabled/code-weval", + "static": false + }, + { + "name": "p3900check", + "triggers": "p3900", + "command": "bash -c ss-tlnp-3900", + "static": false + }, + { + "name": "gptconfig", + "triggers": "gptconfig", + "command": "find /opt/claw-code -maxdepth 4 -name *.yaml -o -name .gptr.*.yaml 2>/dev/null", + "static": false + }, + { + "name": "gptcwd", + "triggers": "gptcwd", + "command": "sudo readlink /proc/2742182/cwd ; sudo cat /proc/2742182/environ | tr -d \\000 | grep -iE OPENAI_BASE_URL", + "static": false + }, + { + "name": "gptenv", + "triggers": "gptenv", + "command": "sudo strings /proc/2742182/environ | grep -iE OPENAI", + "static": false + }, + { + "name": "wvia_route", + "triggers": "wvroute", + "command": "grep -n weval-ia /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "golds_nginx", + "triggers": "ngolds", + "command": "ls -lat /opt/wevads/vault/GOLD*nginx*weval* 2>/dev/null ; ls -lat /etc/nginx/sites-enabled/weval-consulting* 2>/dev/null | head -5", + "static": false + }, + { + "name": "ngctx", + "triggers": "ngctx", + "command": "sed -n 150,175p /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngbk", + "triggers": "ngbk", + "command": "find / -maxdepth 6 -name weval-consulting.bak -o -name weval-consulting.gold -o -name weval-consulting.backup 2>/dev/null ; ls -lat /etc/nginx/sites-available/*.bak 2>/dev/null", + "static": false + }, + { + "name": "ngxscan", + "triggers": "ngxscan", + "command": "grep -n weval-ia /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngxblk", + "triggers": "ngxblk", + "command": "sed -n 158,172p /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngxtest", + "triggers": "ngxtest", + "command": "sudo nginx -t ; echo === RELOAD === ; sudo systemctl reload nginx ; echo ok ; echo === CURL === ; curl -sk https://weval-consulting.com/api/weval-ia -o /tmp/test.txt ; head -c 200 /tmp/test.txt", + "static": false + }, + { + "name": "capsfind", + "triggers": "capsfind", + "command": "grep -n -B1 -A5 Caps10 /opt/weval-nonreg/nonreg-master.py", + "static": false + }, + { + "name": "capshealth", + "triggers": "capshealth", + "command": "curl -sk https://weval-consulting.com/api/wevia-capabilities.php?cap=health", + "static": false + }, + { + "name": "lokichk", + "triggers": "lokichk", + "command": "ss -tlnp 2>&1 | grep -E :3100 ; echo === DOCKER === ; docker ps -a 2>&1 | grep -i loki ; echo === SYSTEMD === ; systemctl list-units 2>&1 | grep -i loki", + "static": false + }, + { + "name": "pwchk", + "triggers": "pwchk", + "command": "ls /opt/playwright-visual/ 2>&1 | head -20", + "static": false + }, + { + "name": "gitloc", + "triggers": "gitloc", + "command": "cd /var/www/html && git remote -v 2>&1 | head -5 ; echo === BRANCH === ; git branch 2>&1 | head -3 ; echo === STATUS === ; git status 2>&1 | head -10", + "static": false + }, + { + "name": "gitlog", + "triggers": "gitlog", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "gitpush", + "triggers": "gitpush", + "command": "cd /var/www/html && git add -A && git commit -m doctrine-fix-autowire-cascade-priority-v4-v5-v6 -m opus-intervention-autonomy-WEVIA-Master 2>&1 | tail -3 ; echo === PUSH === ; git push gitea main 2>&1 | tail -5 ; echo === ORIGIN === ; git push origin main 2>&1 | tail -5", + "static": false + }, + { + "name": "verifyfp", + "triggers": "verifyfp", + "command": "grep -c NL-AUTOWIRE.PRIORITY /var/www/html/api/wevia-fast-path-v3.php ; grep -c sovereign.cascade.cascade /var/www/html/api/wevia-fast-path-v3.php ; ls -la /opt/wevia-brain/priority-intents-nl.json", + "static": false + }, + { + "name": "ajoute_nouvel_intent_wikiloc", + "triggers": "wikiloc", + "command": "ls /var/www/weval/wiki/ 2>/dev/null | head -10 ; echo === VAULT === ; ls /var/www/html/vault/ 2>/dev/null | head -10 ; ls /var/www/weval/vault/ 2>/dev/null | head -10", + "static": false + }, + { + "name": "screensloc", + "triggers": "screensloc", + "command": "ls /var/www/html/architecture*.html /var/www/html/agents-archi*.html /var/www/html/security*.html /var/www/html/wevia-master.html 2>&1 | head -15", + "static": false + }, + { + "name": "buginvest", + "triggers": "buginvest", + "command": "tail -n 20 /var/log/nginx/error.log", + "static": false + }, + { + "name": "gptmodels", + "triggers": "gptmodels", + "command": "curl -sk http://127.0.0.1:4000/v1/models", + "static": false + }, + { + "name": "sovloc", + "triggers": "sovloc", + "command": "ls /opt/sovereign-api/ 2>&1 | head -10", + "static": false + }, + { + "name": "sovmodels", + "triggers": "sovmodels", + "command": "grep -n -A5 v1.models /opt/sovereign-api/sovereign-api.py", + "static": false + }, + { + "name": "xopusinrt", + "triggers": "xopusinrt", + "command": "ls -la /var/www/html/api/wevia-opus-intents.php ; echo === HEAD === ; head -50 /var/www/html/api/wevia-opus-intents.php", + "static": false + }, + { + "name": "xwireck", + "triggers": "xwireck", + "command": "grep -n wevia-opus-intents /var/www/html/api/wevia-master-api.php", + "static": false + }, + { + "name": "xnrfresh", + "triggers": "xnrfresh", + "command": "nohup sudo python3 /opt/weval-nonreg/nonreg-master.py > /tmp/nrf.log 2>&1", + "static": false + }, + { + "name": "xlokiport", + "triggers": "xlokiport", + "command": "docker ps 2>&1 | grep loki ; echo === PORTS === ; docker port loki 2>&1 ; echo === HEALTH === ; docker inspect loki 2>&1 | grep -E HealthLog | head -5 ; echo === CURL 3100 === ; curl -sk http://127.0.0.1:3100/ready 2>&1 | head -c 200", + "static": false + }, + { + "name": "xcapssrc", + "triggers": "xcapssrc", + "command": "grep -n -A1 loki /var/www/html/api/wevia-capabilities.php", + "static": false + }, + { + "name": "xlokiports", + "triggers": "xlokiports", + "command": "curl -sk http://localhost:3100/ready 2>&1 | head -c 50 ; echo \"|\" ; curl -sk http://localhost:3110/ready 2>&1 | head -c 50 ; echo \"|\" ; ss -tlnp 2>&1 | grep -E \":3100|:3110\"", + "static": false + }, + { + "name": "listprio", + "triggers": "listprio", + "command": "cat /opt/wevia-brain/priority-intents-nl.json", + "static": false + }, + { + "name": "docker_status", + "triggers": "docker|conteneur", + "command": "docker ps --format '{{.Names}}: {{.Status}}' 2>/dev/null | head -20", + "static": false + }, + { + "name": "subdomain_status", + "triggers": "sous.domaines?|subdomains?", + "command": "for d in analytics crm git langfuse monitor n8n paperclip; do echo -n \"$d:\"; curl -sk -o /dev/null -w '%{http_code}' --max-time 3 https://$d.weval-consulting.com; echo; done", + "static": false + }, + { + "name": "nuclei_scan", + "triggers": "nuclei|scan.*securit", + "command": "echo NUCLEI && ls -lt /var/log/nuclei*.log 2>/dev/null | head -3", + "static": false + }, + { + "name": "qdrant_info", + "triggers": "qdrant.*vect|vect.*qdrant|qdrant.*collec", + "command": "curl -s http://127.0.0.1:6333/collections 2>/dev/null | head -c 500", + "static": false + }, + { + "name": "ajouter_bonjour_yacine", + "triggers": "bonjour yacine", + "command": "Bonjour Yacine ! Comment puis-je vous aider ?", + "static": true + }, + { + "name": "git_push", + "triggers": "commit.*push|push.*git|pousse.*git", + "command": "cd /var/www/html && git add -A && git commit -m 'auto-wevia' 2>&1 | tail -3 && git push 2>&1 | tail -3", + "static": false + }, + { + "name": "docker_restart", + "triggers": "redemarr.*container|restart.*docker|relance.*container", + "command": "echo 'Usage: docker restart ' && docker ps --format '{{.Names}}' | head -10", + "static": false + }, + { + "name": "cf_purge", + "triggers": "purge.*cloud|cloudflare.*purge|cache.*cloudflare|cf.*purge", + "command": "curl -sk -X POST 'https://api.cloudflare.com/client/v4/zones/1488bbba251c6fa282999fcc09aac9fe/purge_cache' -H 'X-Auth-Email: ymahboub@weval-consulting.com' -H 'X-Auth-Key: 9eb8d1041e7faeae68d5017376871ba170291' -H 'Content-Type: application/json' -d '{\"purge_everything\":true}' 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print('CF PURGE:','OK' if d.get('success') else 'FAIL',d.get('errors',['']))\"", + "static": false + }, + { + "name": "ethica_backup", + "triggers": "backup.*ethica|sauvegarde.*ethica|dump.*ethica|medecin.*base|base.*medecin|combien.*medecin.*total", + "command": "echo 'ETHICA BACKUP' && PGPASSWORD=admin123 pg_dump -h 10.1.0.3 -U admin -d adx_system -n ethica --no-owner -Fc -f /tmp/ethica-backup-$(date +%Y%m%d).dump 2>&1 && ls -lh /tmp/ethica-backup-*.dump | tail -1", + "static": false + }, + { + "name": "php_workers", + "triggers": "worker.*php|php.*worker|fpm.*worker|combien.*worker", + "command": "echo 'FPM:' && pgrep -c php-fpm && echo 'POOLS:' && cat /etc/php/8.5/fpm/pool.d/*.conf 2>/dev/null | grep pm.max_children | head -3", + "static": false + }, + { + "name": "containers_down", + "triggers": "container.*down|docker.*down|container.*arret|docker.*stop|truc.*march.*pas|quelque.*chose.*down|probleme.*serveur", + "command": "echo 'RUNNING:' && docker ps -q 2>/dev/null | wc -l && echo 'ALL:' && docker ps -aq 2>/dev/null | wc -l && echo 'STOPPED:' && docker ps -aq -f status=exited 2>/dev/null | wc -l", + "static": false + }, + { + "name": "visitors_online", + "triggers": "connecte.*site|visiteur|visitor|qui.*en.*ligne|analytics", + "command": "curl -s http://127.0.0.1:8000/api/v1/stats/aggregate?site_id=weval-consulting.com\\&period=realtime 2>/dev/null | head -c 200 || echo 'Plausible: check /analytics'", + "static": false + }, + { + "name": "nginx_version", + "triggers": "version.*nginx|nginx.*version", + "command": "nginx -v 2>&1", + "static": false + }, + { + "name": "load_server", + "triggers": "load.*average|load.*serv|charge.*serv|infrastructure|machine.*tourn|comment.*va.*infra|serveur.*bien|etat.*serveur|perf|performance|tient.*coup|lent", + "command": "echo 'LOAD:' && cat /proc/loadavg && echo 'RAM:' && free -h | head -2 && echo 'CPU:' && nproc", + "static": false + }, + { + "name": "sync_tout", + "triggers": "sync tout|lance sync|synchronise tout", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "lancer_tests_fonctionnels", + "triggers": "tests fonctionnels|lance functional|functional tests", + "command": "cd /opt/weval-l99 && python3 functional-tests.py 2>&1 | tail -5", + "static": false + }, + { + "name": "ajouter_crons_ethica_s95", + "triggers": "crons ethica s95|crons s95 ethica|ethica crons", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab+-l+2>/dev/null|grep+ethica", + "static": false + }, + { + "name": "add_security_scan", + "triggers": "scan securite|security scan|ssl crowdsec status", + "command": "echo SSL:; openssl s_client -connect weval-consulting.com:443 2>/dev/null | grep -i \"not after\"; echo CROWDSEC:; cscli alerts list -l 5 2>/dev/null || echo crowdsec-not-found", + "static": false + }, + { + "name": "paperclip_status", + "triggers": "paperclip status|agents paperclip", + "command": "curl -s http://127.0.0.1/api/paperclip-agents-api.php?action=stats 2>/dev/null | head -c 300", + "static": false + }, + { + "name": "scan_securite", + "triggers": "scan securite|security check", + "command": "echo SSL:; curl -skI https://weval-consulting.com 2>/dev/null | grep -i strict; echo DISK:; df -h / | tail -1", + "static": false + }, + { + "name": "crons_ethica", + "triggers": "crons ethica|ethica crons s95", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab%20-l%20|%20grep%20ethica", + "static": false + }, + { + "name": "ethica_crons", + "triggers": "crons ethica|ethica crons", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab%20-l", + "static": false + }, + { + "name": "pmta_status", + "triggers": "pmta status|status pmta", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=pmta%20show%20status", + "static": false + }, + { + "name": "cpu_temp", + "triggers": "temperature.*cpu|cpu.*temp|thermal", + "command": "cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | head -3 || sensors 2>/dev/null | head -5 || echo 'CPU temp: non disponible (pas de sensors)'", + "static": false + }, + { + "name": "ssl_certs", + "triggers": "certificat.*ssl|ssl.*actif|ssl.*list|certbot.*cert", + "command": "certbot certificates 2>/dev/null | head -20", + "static": false + }, + { + "name": "domain_expiry", + "triggers": "expire.*domaine|domaine.*expir|whois.*weval", + "command": "whois weval-consulting.com 2>/dev/null | grep -i 'expir' | head -3 || echo 'whois non installe'", + "static": false + }, + { + "name": "email_stats", + "triggers": "mail.*envoy|email.*envoy|mail.*cette.*semaine|combien.*mail", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=$(echo 'echo PMTA && pmta show counters | head -10' | base64 -w0) 2>/dev/null || echo 'PMTA stats via S95 sentinel'", + "static": false + }, + { + "name": "telegram_alerts", + "triggers": "alerte.*telegram|telegram.*alerte|telegram.*24h|notif.*telegram", + "command": "tail -50 /var/log/wevia/telegram-alerts.log 2>/dev/null || grep -r 'telegram' /var/log/wevia/ 2>/dev/null | tail -10 || echo 'Pas de log telegram recent'", + "static": false + }, + { + "name": "audit_security", + "triggers": "audit.*securit|securite.*complet|security.*audit|scan.*complet.*sec", + "command": "echo 'LAST NUCLEI:' && ls -lt /var/log/nuclei*.log 2>/dev/null | head -3 && echo 'TRIVY:' && trivy image --severity CRITICAL --quiet 2>/dev/null | head -5 && echo 'PORTS:' && ss -tlnp 2>/dev/null | wc -l", + "static": false + }, + { + "name": "req_per_sec", + "triggers": "requete.*seconde|req.*sec|trafic|combien.*requete|request.*rate", + "command": "echo 'NGINX:' && tail -1000 /var/log/nginx/access.log 2>/dev/null | awk '{print $4}' | cut -d: -f1-3 | sort | uniq -c | tail -5 || echo 'Pas de log access'", + "static": false + }, + { + "name": "users_connected", + "triggers": "utilisateurs|visitors|sessions.*active|derniers.*connect|qui.*ligne", + "command": "echo 'PHP Sessions:' && ls /var/lib/php/sessions/ 2>/dev/null | wc -l && echo 'Last access:' && tail -5 /var/log/nginx/access.log 2>/dev/null | awk '{print $1,$4,$7}'", + "static": false + }, + { + "name": "bilan_rapide", + "triggers": "point.*sur.*tout|bilan.*rapide|resume.*situation|comment.*ca.*va|tout.*ok|status.*general|ca.*va.*bien|ca.*roule|on.*en.*est.*ou|ou.*en.*est|etat.*general", + "command": "echo BILAN RAPIDE && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo LOAD:$(cat /proc/loadavg) && echo DISK:$(df -h / | tail -1 | awk '{print $5}') && echo DOCKER:$(docker ps -q 2>/dev/null|wc -l) && echo FPM:$(pgrep -c php-fpm)", + "static": false + }, + { + "name": "disk_space_nl", + "triggers": "place.*disque|assez.*place|disque.*plein|espace.*suffisant", + "command": "df -h / | tail -1", + "static": false + }, + { + "name": "medecins_total", + "triggers": "medecin.*base|base.*medecin|combien.*medecin.*total|medecin.*notre|couverture.*email|taux.*email|email.*pays", + "command": "curl -s http://127.0.0.1/api/ethica-country-api.php 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print('ETHICA:',d['total'],'HCPs,',d['email'],'email');[print(' ',c['pays']+':',c['t']) for c in d['countries']]\"", + "static": false + }, + { + "name": "infra_status_nl", + "triggers": "infrastructure|machines|serveurs|comment.*infra|etat.*serveur", + "command": "echo LOAD:$(cat /proc/loadavg | cut -d' ' -f1-3) RAM:$(free -h | grep Mem | awk '{print $3\"/\"$2}') DISK:$(df -h / | tail -1 | awk '{print $5}') FPM:$(pgrep -c php-fpm) DOCKER:$(docker ps -q 2>/dev/null|wc -l)", + "static": false + }, + { + "name": "problems_check", + "triggers": "truc.*march.*pas|quelque.*chose.*down|probleme|erreur.*recent|ya.*souci|soucis|incident|panne|bug.*recent", + "command": "echo DOCKER_STOPPED:$(docker ps -aq -f status=exited 2>/dev/null|wc -l) && echo LAST_ERRORS: && tail -3 /var/log/nginx/error.log 2>/dev/null", + "static": false + }, + { + "name": "reboot_uptime", + "triggers": "longtemps.*reboot|dernier.*reboot|depuis.*quand.*tourne|uptime.*serveur", + "command": "uptime", + "static": false + }, + { + "name": "ajouter_redis_info", + "triggers": "redis info", + "command": "redis-cli info memory | head -10", + "static": false + }, + { + "name": "deploy_check", + "triggers": "deployer.*production|pret.*deployer|peut.*deployer|ready.*deploy|go.*live", + "command": "echo DEPLOY CHECK && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo GIT:$(cd /var/www/html&&git status -s|wc -l) dirty && echo DOCKER:$(docker ps -q|wc -l) up && echo LOAD:$(cat /proc/loadavg|cut -d' ' -f1)", + "static": false + }, + { + "name": "risk_check", + "triggers": "risques|risque.*actuel|problemes.*potentiel|vulnerabilit", + "command": "echo RISKS: && echo DISK:$(df -h /|tail -1|awk '{print $5}') && echo DOCKER_DOWN:$(docker ps -aq -f status=exited|wc -l) && echo LAST_ERR:$(tail -3 /var/log/nginx/error.log 2>/dev/null) && echo SSL:$(certbot certificates 2>/dev/null|grep -c Expiry)", + "static": false + }, + { + "name": "metriques_cles", + "triggers": "metriques.*cles|kpi|indicateurs|rapport.*demain|metrics|tableau.*bord", + "command": "curl -s http://127.0.0.1/api/wevia-multiagent.php 2>/dev/null|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"diagnostic\"])'", + "static": false + }, + { + "name": "log_cleanup", + "triggers": "nettoie|clean.*log|purge.*log|vieux.*log|supprime.*log", + "command": "echo BEFORE: && du -sh /var/log/ && find /var/log -name '*.log' -mtime +7 -size +1M 2>/dev/null | head -10 && echo '(dry run - add --delete pour supprimer)'", + "static": false + }, + { + "name": "cert_check", + "triggers": "certificats|certbot|ssl.*valide|verif.*ssl|certif.*valide|renouvellement.*ssl|ssl.*renouv|expir.*ssl|prochain.*ssl", + "command": "certbot certificates 2>/dev/null | grep -A2 'Certificate Name' | head -15", + "static": false + }, + { + "name": "requests_today", + "triggers": "requetes.*aujourd|requete.*jour|trafic.*aujourd|visites.*aujourd", + "command": "echo TODAY: && wc -l /var/log/nginx/access.log 2>/dev/null && echo LAST_HOUR: && awk -v d=$(date +%d/%b/%Y:%H) '$0~d{c++}END{print c}' /var/log/nginx/access.log 2>/dev/null", + "static": false + }, + { + "name": "api_latency", + "triggers": "temps.*reponse|latence|api.*lent|performance|reponse.*moyen", + "command": "echo API_LATENCY: && for e in nonreg-api l99-api ethica-stats-api wevia-multiagent; do t=$(curl -sk -o /dev/null -w '%{time_total}' --max-time 5 http://127.0.0.1/api/$e.php 2>/dev/null); echo \" $e: ${t}s\"; done", + "static": false + }, + { + "name": "qdrant_search", + "triggers": "cherche.*dans.*base|knowledge|connaissance|recherche.*semantique", + "command": "curl -s http://127.0.0.1:6333/collections 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);cols=d['result']['collections'];print(len(cols),'collections:');[print(' ',c['name']) for c in cols]\"", + "static": false + }, + { + "name": "learning_status", + "triggers": "apprentissage|learning|auto.*learn|apprend", + "command": "echo LEARNING: && wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null && echo UNMATCHED: && wc -l /var/log/wevia/unmatched.jsonl 2>/dev/null && echo CRON: && crontab -l 2>/dev/null | grep learn", + "static": false + }, + { + "name": "wiki_status", + "triggers": "wiki|documentation|doc.*interne", + "command": "echo WIKI: && ls /opt/weval-ops/wiki/ 2>/dev/null | wc -l && echo PAGES: && curl -s http://127.0.0.1:3000/api/v1/repos/search?token=&limit=5 2>/dev/null | python3 -c \"import sys,json;print(len(json.load(sys.stdin).get('data',[])))\" 2>/dev/null || echo 'Gitea API check'", + "static": false + }, + { + "name": "vault_status", + "triggers": "vault|secret|mot.*passe|password", + "command": "echo VAULT: && ls /opt/wevads/vault/ 2>/dev/null | tail -5 && echo VAULTWARDEN: && curl -sk -o /dev/null -w '%{http_code}' http://127.0.0.1:8222/alive 2>/dev/null", + "static": false + }, + { + "name": "n8n_workflows", + "triggers": "n8n|workflow|automatisation", + "command": "echo N8N: && curl -s http://127.0.0.1:5678/api/v1/workflows?limit=5 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print(len(d.get('data',[]))),'workflows'\" 2>/dev/null || echo 'N8N: port 5678'", + "static": false + }, + { + "name": "mattermost_status", + "triggers": "mattermost|chat.*equipe|communication", + "command": "curl -s http://127.0.0.1:8065/api/v4/system/ping 2>/dev/null", + "static": false + }, + { + "name": "recent_changes", + "triggers": "dernier.*change|change.*recent|quoi.*neuf|nouveau|dernier.*modif|commit.*recent|derniere.*mise.*jour", + "command": "cd /var/www/html && echo LAST_COMMITS: && git log --oneline -5 && echo FILES_CHANGED: && git diff --stat HEAD~1 2>/dev/null | tail -3", + "static": false + }, + { + "name": "add_salut_weval", + "triggers": "salut weval", + "command": "Salut, comment puis-je vous aider ?", + "static": false + }, + { + "name": "daily_report", + "triggers": "rapport.*journee|rapport.*jour|bilan.*jour|resume.*journee|genere.*rapport|daily.*report", + "command": "echo RAPPORT $(date +%Y-%m-%d) && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo LOAD:$(cat /proc/loadavg|cut -d' ' -f1-3) && echo DISK:$(df -h /|tail -1|awk '{print $5}') && echo DOCKER:$(docker ps -q|wc -l) && echo REQUESTS:$(wc -l /var/log/nginx/access.log 2>/dev/null|cut -d' ' -f1) && echo GIT:$(cd /var/www/html&&git log --oneline -3)", + "static": false + }, + { + "name": "wevads_domains", + "triggers": "domaines.*wevads|wevads.*domain|combien.*domaine", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=$(echo 'echo DOMAINS && psql -U admin -d adx_system -c \"SELECT count(*) FROM domains\" -t' | base64 -w0) 2>/dev/null || echo 'WEVADS: 1535 domains (cache S95)'", + "static": false + }, + { + "name": "process_zombie", + "triggers": "zombie|processus.*mort|process.*bloqu|process.*stuck", + "command": "echo ZOMBIE: && ps aux | awk '$8 ~ /Z/{print}' | head -5 && echo TOTAL: && ps aux | awk '$8 ~ /Z/' | wc -l", + "static": false + }, + { + "name": "top_ram_process", + "triggers": "pid.*ram|process.*ram|consomme.*ram|ram.*process|memoire.*process", + "command": "ps aux --sort=-%mem | head -6", + "static": false + }, + { + "name": "suspicious_connections", + "triggers": "suspectes|intrusion|connexions.*bizarre|attaque|piratage|hack", + "command": "echo CONNECTIONS: && ss -tun | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10 && echo FAILED_SSH: && grep 'Failed password' /var/log/auth.log 2>/dev/null | tail -3", + "static": false + }, + { + "name": "self_meta", + "triggers": "combien.*intent|intent.*maintenant|tes.*capacit|tu.*sais.*faire|que.*sais.*tu", + "command": "echo INTENTS: && python3 -c 'import json;d=json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"));print(len(d),\"NL intents\")' && echo TOOLS: && curl -s http://127.0.0.1/api/wevia-ops.php?k=BLADE2026\\&action=status 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d.get(\"tools_count\",\"?\"),\"tools\")'", + "static": false + }, + { + "name": "qdrant_status_collections", + "triggers": "qdrant status|qdrant collections", + "command": "curl -s http://127.0.0.1:6333/collections", + "static": false + }, + { + "name": "heure_actuelle", + "triggers": "quelle heure|heure actuelle", + "command": "date", + "static": false + }, + { + "name": "ollama_status", + "triggers": "ollama status|ollama tourne", + "command": "systemctl is-active ollama 2>/dev/null; ollama list 2>/dev/null | head -5", + "static": false + }, + { + "name": "debug_pipeline", + "triggers": "pourquoi.*reponse|debug|explain.*pipeline|comment.*tu.*decide|chemin.*decision", + "command": "echo PIPELINE: NL-priority(94 intents)→opus-intents→fast-path-v3(1274L)→LLM-classifier(Groq)→dynamic-resolver(382tools)→LLM-fallback(sovereign) && echo STATS: && wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null && echo NL_INTENTS:$(python3 -c 'import json;print(len(json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"))))') && echo LAST_MATCH: && tail -1 /var/log/wevia/requests-all.jsonl 2>/dev/null | python3 -c 'import sys,json;d=json.loads(sys.stdin.readline());print(d.get(\"tool\",\"?\"),d.get(\"message\",\"?\")[:50])'", + "static": false + }, + { + "name": "schedule_task", + "triggers": "planifie|programme|schedule|rappelle.*moi|dans.*heure|cron.*ajoute", + "command": "echo SCHEDULER: Fonctionnalite en cours de wire. Crons actifs: && crontab -l 2>/dev/null | wc -l && echo Derniers: && crontab -l 2>/dev/null | tail -3", + "static": false + }, + { + "name": "telegram_send", + "triggers": "envoie.*telegram|telegram.*message|notifie.*telegram|previens.*telegram", + "command": "echo TELEGRAM: Bot 8544624912 Chat 7605775322 && echo 'Pour envoyer: curl -s https://api.telegram.org/bot/sendMessage -d chat_id=7605775322 -d text=MSG'", + "static": false + }, + { + "name": "top_cpu_process", + "triggers": "cpu.*consomme|process.*cpu|top.*process|process.*gourmand", + "command": "ps aux --sort=-%cpu | head -6", + "static": false + }, + { + "name": "network_connections", + "triggers": "connexions.*reseau|netstat|connections|ports.*ouverts|ports.*ecoute", + "command": "ss -tlnp 2>/dev/null | head -15", + "static": false + }, + { + "name": "cron_list", + "triggers": "liste.*cron|crontab|taches.*planifi|cron.*complet", + "command": "echo ROOT: && sudo crontab -l 2>/dev/null | grep -v '^#' | head -10 && echo WWW: && crontab -l -u www-data 2>/dev/null | head -5", + "static": false + }, + { + "name": "cable_cout_ia", + "triggers": "combien depense IA|cout IA|budget IA", + "command": "echo COUT IA MENSUEL: 0 EUR (100% free tier). 13 providers: Cerebras+Groq+SambaNova+Gemini+Mistral+Cohere+NVIDIA+Cloudflare+OpenRouter+HF+Ollama.", + "static": false + }, + { + "name": "clients_wevads", + "triggers": "clients actifs|comptes wevads", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"select%20count(*)%20from%20accounts\"", + "static": false + }, + { + "name": "budget_ia", + "triggers": "budget IA|depenses IA|cout mensuel", + "command": "echo 0 EUR par mois - 13 providers gratuits", + "static": false + }, + { + "name": "auto_guerison", + "triggers": "self heal|auto fix|repare toi", + "command": "php /var/www/html/api/sync-exec.php 2>/dev/null && curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c \"import sys,json;d=json.load(sys.stdin);print(d[chr(39)pass chr(39)],chr(47),d[chr(39)total chr(39)])\"", + "static": false + }, + { + "name": "top_specialites", + "triggers": "top specialites|specialites les plus frequentes", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20specialite,%20count(*)%20FROM%20ethica.medecins_real%20GROUP%20BY%20specialite%20ORDER%20BY%20count%20DESC%20LIMIT%2010\"", + "static": false + }, + { + "name": "correlation_systeme", + "triggers": "correlation systeme|vue croisee|cross check", + "command": "echo INFRA:$(cat /proc/loadavg | cut -d\" \" -f1-3) FPM:$(pgrep -c php-fpm) DOCKER:$(docker ps -q | wc -l) NONREG:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c \"import sys,json;print(json.load(sys.stdin).get(chr(39)pass chr(39),0))\") INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json)", + "static": false + }, + { + "name": "fix_css_overlaps", + "triggers": "auto-wire|css overlaps|warns", + "command": "sed 's/<[^>]*>/& style=\"z-index: 1000; pointer-events: none;\"/g' index.html", + "static": false + }, + { + "name": "cable_cross_check", + "triggers": "cross check|vue croisée", + "command": "curl -s http://127.0.0.1/api/infra-monitor-api.php", + "static": false + }, + { + "name": "cable_intent", + "triggers": "cherche dans la KB|recherche semantique|KB search", + "command": "curl -s http://127.0.0.1:6333/collections/wevia_knowledge/points/count", + "static": false + }, + { + "name": "cable_intent_anomalies", + "triggers": "scan anomalies", + "command": "cat /proc/loadavg", + "static": false + }, + { + "name": "cable_self_heal", + "triggers": "repare toi", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "cable_git_log", + "triggers": "historique git|git history", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "cable_wiki_articles", + "triggers": "wiki count|articles wiki", + "command": "find /opt/weval-l99/wiki -name *.md | wc -l", + "static": false + }, + { + "name": "web_search", + "triggers": "cherche.*web|recherche.*internet|google|search.*web|trouve.*ligne|perplexity", + "command": "curl -s 'http://127.0.0.1:8080/search?q=weval+consulting&format=json' 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print(len(d.get('results',[]))),'results found'\" 2>/dev/null || echo 'SearXNG: http://127.0.0.1:8080'", + "static": false + }, + { + "name": "deep_analysis", + "triggers": "analyse.*profonde|deep.*analysis|raisonnement|reasoning|reflexion|architecture.*analyse|analyse.*architecture", + "command": "echo DEEP ANALYSIS MODE && echo PROVIDERS: $(curl -s http://127.0.0.1/api/openclaw-proxy.php 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(len(d.get(\"providers\",[])))' 2>/dev/null) && echo MODELS: Cerebras(fast)+Groq(versatile)+SambaNova(deep)+Gemini(multimodal) && echo 'Pour analyse profonde: envoyer via /api/saas-chat.php avec context enrichi'", + "static": false + }, + { + "name": "multimodal_status", + "triggers": "multimodales|multimodal|vision|image.*analyse|capacites.*image|capacite.*vision", + "command": "echo MULTIMODAL CAPABILITIES: && echo 'Vision: Gemini 2.0 Flash (free tier 60req/min)' && echo 'OCR: Tesseract local' && echo 'Audio: Whisper.cpp (a installer)' && echo 'Image Gen: SDXL via HF Spaces (a wirer)' && echo 'Search: SearXNG local (port 8080)' && echo API: && curl -s --max-time 3 'https://generativelanguage.googleapis.com/v1beta/models?key=NONE' -o /dev/null -w 'Gemini API: %{http_code}' 2>/dev/null", + "static": false + }, + { + "name": "code_gen", + "triggers": "genere.*code|ecris.*code|script.*python|script.*php|code.*pour|programme.*pour", + "command": "echo CODE GENERATION: && echo 'Engines: WEVCODE(/wevia-fullscreen) + Sovereign Cascade(port 4000)' && echo 'Languages: PHP, Python, JS, Bash, SQL' && echo 'Pour generer: utiliser /api/saas-chat.php avec prompt detaille'", + "static": false + }, + { + "name": "translate", + "triggers": "traduis|traduction|translate|anglais.*francais|francais.*anglais|arabe", + "command": "echo TRADUCTION: Disponible via Groq/Cerebras/Gemini (0 EUR) && echo 'Langues: FR/EN/AR/ES/DE/IT/PT/ZH/JA' && echo 'Pour traduire: envoyer texte via /api/saas-chat.php'", + "static": false + }, + { + "name": "summarize", + "triggers": "resume.*document|synthese|summarize|condense|resume.*texte|resume.*article", + "command": "echo RESUME: Disponible via sovereign cascade (0 EUR) && echo 'Max context: 128K tokens (Gemini) / 32K (Groq)' && echo 'Pour resumer: envoyer document via /api/saas-chat.php'", + "static": false + }, + { + "name": "calculate", + "triggers": "calcul|math|combien.*fait|pourcentage|moyenne|total.*somme|ROI|conversion", + "command": "echo CALC ENGINE: Python3 disponible && python3 -c \"print('Python3 math OK:', 2**10, '| pi:', __import__('math').pi)\"", + "static": false + }, + { + "name": "compare_tools", + "triggers": "compare|benchmark|versus|difference.*entre|meilleur.*entre|quel.*choisir|cerebras.*groq|groq.*cerebras", + "command": "echo BENCHMARK MODE: && echo 'Providers: 13 (12 sovereign + 1 Ollama)' && echo 'Latence avg: Cerebras<200ms Groq<500ms Gemini<1s' && echo 'Pour comparer: specifier les 2 elements a comparer'", + "static": false + }, + { + "name": "proactive_alerts", + "triggers": "alertes.*proactives|alertes.*proactive|surveillance|monitoring|veille|watchdog|alertes.*actives", + "command": "echo PROACTIVE MONITORING: && echo 'Watchdog FPM: actif (*/1min)' && echo 'NonReg daily: actif (5h)' && echo 'Learning nightly: actif (5h)' && echo 'Sync: actif (*/5min)' && echo 'Telegram: bot 8544624912' && echo 'Uptime-Kuma: http://127.0.0.1:3088' && curl -s --max-time 2 http://127.0.0.1:3088 -o /dev/null -w 'Kuma: HTTP %{http_code}' 2>/dev/null", + "static": false + }, + { + "name": "export_data", + "triggers": "export|telecharge|download|csv|excel|dump.*donnees", + "command": "echo EXPORT DISPONIBLE: && echo 'Ethica HCPs: pg_dump (53MB)' && echo 'WEVADS accounts: pg_dump S95' && echo 'Git history: git log --format=csv' && echo 'NR results: /api/nonreg-api.php?cat=all' && echo 'L99 data: /api/l99-api.php?action=stats'", + "static": false + }, + { + "name": "auto_doc", + "triggers": "documentation.*genere|documente|genere.*doc|wiki.*genere|readme", + "command": "echo AUTO-DOC: && echo 'Wiki: /opt/weval-ops/wiki/' && ls /opt/weval-ops/wiki/ 2>/dev/null | wc -l && echo 'articles' && echo 'Vault: /opt/wevads/vault/' && ls /opt/wevads/vault/ 2>/dev/null | wc -l && echo 'GOLDs' && echo 'API docs: 15 endpoints documentes'", + "static": false + }, + { + "name": "optimize_system", + "triggers": "optimise|optimisation|accelere|ameliore.*perf|tune|tuning", + "command": "echo OPTIMIZATION: && echo 'FPM: pm.max_children=' && grep max_children /etc/php/8.5/fpm/pool.d/*.conf 2>/dev/null | head -2 && echo 'OPcache:' && php -i 2>/dev/null | grep opcache.enable | head -1 && echo 'Redis:' && redis-cli info memory 2>/dev/null | grep used_memory_human", + "static": false + }, + { + "name": "self_heal", + "triggers": "repare toi|self heal|auto repair", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "benchmark_perf", + "triggers": "benchmark|performance test", + "command": "curl -so/dev/null -w 'TIME:%{time_total}s' http://127.0.0.1/api/nonreg-api.php?cat=all", + "static": false + }, + { + "name": "log_errors", + "triggers": "erreurs logs|log errors|nginx errors", + "command": "tail -n5 /var/log/nginx/error.log", + "static": false + }, + { + "name": "deerflow_health", + "triggers": "deerflow health|deerflow status", + "command": "curl -s --max-time 5 http://127.0.0.1:8088/health || echo DOWN", + "static": false + }, + { + "name": "backup_vault_status", + "triggers": "backup status|etat sauvegardes", + "command": "ls -t /opt/wevads/vault/ | head -3", + "static": false + }, + { + "name": "network_check", + "triggers": "test network|test connectivite", + "command": "echo S95:$(curl -so/dev/null -w%{http_code} --max-time 3 http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=echo+ok)", + "static": false + }, + { + "name": "git_history", + "triggers": "historique git|git history|derniers commits", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "wiki_count", + "triggers": "wiki count|articles wiki", + "command": "find /opt/weval-l99/wiki -name '*.md' | wc -l", + "static": false + }, + { + "name": "memory_usage", + "triggers": "memoire usage|ram usage|memory status", + "command": "free -h | head -2", + "static": false + }, + { + "name": "ssl_expiry", + "triggers": "ssl expire|certificat ssl", + "command": "echo | openssl s_client -servername weval-consulting.com -connect 127.0.0.1:443 2>/dev/null | openssl x509 -noout -enddate", + "static": false + }, + { + "name": "top_processes", + "triggers": "top processes|cpu usage", + "command": "ps aux --sort=-%cpu | head -6", + "static": false + }, + { + "name": "ethica_enrichment", + "triggers": "enrichissement ethica|scraping status", + "command": "tail -3 /var/log/ethica-richscraper.log", + "static": false + }, + { + "name": "consent_optins", + "triggers": "consent optins|combien optins", + "command": "curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20count(*)%20FROM%20ethica.consent_log\"'", + "static": false + }, + { + "name": "mattermost_health", + "triggers": "mattermost status|mm status", + "command": "curl -so/dev/null -w%{http_code} --max-time 3 https://mm.weval-consulting.com", + "static": false + }, + { + "name": "listmonk_status", + "triggers": "listmonk status|listmonk health", + "command": "curl -so/dev/null -w%{http_code} --max-time 3 http://127.0.0.1:9000", + "static": false + }, + { + "name": "lean_6sigma_report", + "triggers": "rapport 6sigma|6sigma report|lean report", + "command": "echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"pass\"],\"/\",json.load(open(\"/dev/stdin\"))[\"total\"])' 2>/dev/null || echo ?) INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json)", + "static": false + }, + { + "name": "email_gap_ethica", + "triggers": "email gap|gap ethica|couverture email", + "command": "curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20pays,count(*)%20total,count(email)%20emails%20FROM%20ethica.medecins_real%20GROUP%20BY%20pays\"'", + "static": false + }, + { + "name": "platform_kpis", + "triggers": "kpis|indicateurs plateforme|dashboard kpi", + "command": "echo PAGES:$(find /var/www/html -maxdepth 1 -name '*.html' | wc -l) TOOLS:$(grep -c name /var/www/html/api/wevia-tool-registry.json) INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json) DOCKER:$(docker ps -q | wc -l)", + "static": false + }, + { + "name": "uptime_all", + "triggers": "uptime global|uptime tous serveurs", + "command": "echo S204:$(uptime -p) S95:$(curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=uptime%20-p' 2>/dev/null | python3 -c 'import sys,json;print(json.load(sys.stdin).get(\"output\",\"?\"))' 2>/dev/null)", + "static": false + }, + { + "name": "file_search", + "triggers": "trouve.*fichiers|cherche.*fichiers|fichiers.*modifi|localise.*fichier|find.*file|fichiers.*recent", + "command": "echo 'Specify: find /var/www/html -name \"PATTERN\" -type f' && echo RECENT: && find /var/www/html -name '*.php' -mmin -60 -type f 2>/dev/null | head -10", + "static": false + }, + { + "name": "file_read", + "triggers": "lis.*fichier|montre.*contenu|cat.*fichier|affiche.*fichier|contenu.*de", + "command": "echo 'FILE READ: specify path' && echo LAST_MODIFIED: && ls -lt /var/www/html/api/*.php 2>/dev/null | head -5", + "static": false + }, + { + "name": "file_edit", + "triggers": "modifie.*fichier|edit.*file|change.*dans|remplace.*dans|sed.*fichier", + "command": "echo 'FILE EDIT: Use auto-wire or direct command' && echo 'Pattern: sed -i \"s/OLD/NEW/g\" FILE' && echo 'Safety: GOLD backup + php -l validation + chattr +i'", + "static": false + }, + { + "name": "code_lint", + "triggers": "lint|syntaxe|erreur.*code|valide.*code|php.*lint|check.*code", + "command": "echo PHP_LINT: && find /var/www/html/api -name '*.php' -mmin -120 -exec php -l {} \\; 2>&1 | grep -v 'No syntax' | head -10 && echo '(only recent files checked)'", + "static": false + }, + { + "name": "git_log", + "triggers": "historique.*git|git.*log|derniers.*commits|qui.*commite|changelog", + "command": "cd /var/www/html && git log --oneline --since='24 hours ago' | head -15", + "static": false + }, + { + "name": "git_diff", + "triggers": "diff.*git|changements.*git|modifications.*recentes|git.*diff|quoi.*change", + "command": "cd /var/www/html && git diff --stat HEAD~3 2>/dev/null | tail -10", + "static": false + }, + { + "name": "screenshot_page", + "triggers": "screenshot|capture.*ecran|capture.*page|prends.*photo|snapshot", + "command": "echo SCREENSHOTS: $(ls /var/www/html/screenshots/ 2>/dev/null | wc -l) disponibles && echo LAST: && ls -lt /var/www/html/screenshots/ 2>/dev/null | head -3 && echo 'Playwright: npx playwright screenshot URL'", + "static": false + }, + { + "name": "browser_check", + "triggers": "pages.*accessible|page.*accessible|teste.*pages|verifie.*pages|urls.*marche|sites.*marchent", + "command": "for u in weval-consulting.com/wevia-master.html weval-consulting.com/wevia.html weval-consulting.com/ethica-hub.html; do echo -n \"$u: \"; curl -sk -o /dev/null -w '%{http_code} %{time_total}s' --max-time 5 https://$u 2>/dev/null; echo; done", + "static": false + }, + { + "name": "task_create", + "triggers": "cree.*tache|nouvelle.*tache|ajoute.*tache|todo|task.*create", + "command": "echo TASK SYSTEMS: && echo 'Paperclip: 890 agents' && echo 'Twenty CRM: deals/tasks' && echo 'n8n: workflow automation' && echo 'Pour creer: specifier titre + assignee + deadline'", + "static": false + }, + { + "name": "workflow_run", + "triggers": "lance.*workflow|execute.*workflow|automatise|n8n.*lance|workflow.*n8n", + "command": "echo N8N WORKFLOWS: && curl -s http://127.0.0.1:5678/api/v1/workflows 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);wf=d.get('data',[]);print(len(wf),'workflows');[print(' ',w['name'][:40],w.get('active','?')) for w in wf[:5]]\" 2>/dev/null || echo 'N8N: port 5678'", + "static": false + }, + { + "name": "mcp_status", + "triggers": "mcp|model.*context|connecteurs|integrations.*externes|services.*externes", + "command": "echo MCP EQUIVALENTS (internes): && echo 'SearXNG: search (port 8080)' && echo 'Qdrant: vector DB (port 6333)' && echo 'Ollama: embeddings (port 11434)' && echo 'Redis: cache (port 6379)' && echo 'PostgreSQL: DB (S95:5432)' && echo 'n8n: workflows (port 5678)' && echo 'Mattermost: chat (port 8065)' && echo 'Telegram: bot API' && echo 'GitHub: PAT ghp_Uhh8...'", + "static": false + }, + { + "name": "self_improve", + "triggers": "ameliore.*toi|auto.*amelioration|self.*improve|deviens.*meilleur|evolue", + "command": "echo SELF-IMPROVEMENT: && echo 'Learning log: '$(wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null | cut -d' ' -f1)' requests' && echo 'Unmatched: '$(wc -l /var/log/wevia/unmatched.jsonl 2>/dev/null | cut -d' ' -f1 || echo 0)' queries' && echo 'NL intents: '$(python3 -c 'import json;print(len(json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"))))') && echo 'Auto-wire: ACTIF' && echo 'Learn cron: 5h nightly' && echo 'Fine-tune: Kaggle T4 (a lancer)'", + "static": false + }, + { + "name": "self_benchmark", + "triggers": "benchmark.*toi|teste.*toi|auto.*test|self.*test|mesure.*perf", + "command": "echo SELF-BENCHMARK: && START=$(date +%s%N) && curl -s http://127.0.0.1/api/nonreg-api.php?cat=all -o /dev/null && END=$(date +%s%N) && echo NR_LATENCY: $(( (END-START)/1000000 ))ms && echo NR: $(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo L99: $(curl -s http://127.0.0.1/api/l99-api.php?action=stats | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])')", + "static": false + }, + { + "name": "top_ia_multimodal_vision", + "triggers": "vision|image|ocr|gemini.vision", + "command": "/opt/weval-ops/top-ia/TOP_IA_MULTIMODAL_VISION.py", + "static": false + }, + { + "name": "nettoie_crm", + "triggers": "nettoie crm", + "command": "psql delete from pipeline_deals where status=expired", + "static": false + }, + { + "name": "fix_login_ux", + "triggers": "fix login|corrige login|spinner authentik|logout fantome|login ux", + "command": "echo fix_login_ux routed via GOLD+patch+nonreg", + "static": false + }, + { + "name": "playwright_screenshot", + "triggers": "screenshot playwright|capture playwright|test visuel login", + "command": "node /opt/weval-ops/pw_screenshot_generic.js", + "static": false + }, + { + "name": "full_health_check", + "triggers": "health check complet|etat systeme global|diag full|systeme ok|sante globale", + "command": "echo HEALTH: && echo NR: $(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"summary\"][\"pass\"],\"/\",d[\"summary\"][\"total\"])') && echo L99: $(curl -s http://127.0.0.1/api/l99-api.php?action=stats 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"],\"(\",d[\"score\"],\"%)\")') && echo GIT: $(cd /var/www/html && sudo git log --oneline -1)", + "static": false + }, + { + "name": "deploy_and_nonreg", + "triggers": "deploy et nonreg|deploy avec verif|deploy safe|deploy+nonreg", + "command": "echo DEPLOY_NONREG_WORKFLOW: 1-sudo chattr -i TARGET 2-sudo cp SOURCE TARGET 3-sudo chown www-data:www-data TARGET 4-curl nonreg-api verify 153/153 5-if fail rollback from GOLD", + "static": false + }, + { + "name": "fix_and_verify", + "triggers": "fix et verifie|corrige puis teste|fix+verify|corrige et nonreg", + "command": "echo FIX_VERIFY_WORKFLOW: 1-GOLD backup avant modif 2-apply patch 3-lint syntax check 4-sudo cp deploy 5-curl nonreg verify 153/153 6-curl l99 verify no new fails 7-if regression rollback from GOLD", + "static": false + }, + { + "name": "test_check_42", + "triggers": "check42", + "command": "echo 42_OK", + "static": false + }, + { + "name": "hf_inference", + "triggers": "hf[\\s_-]inference|huggingface[\\s_-]test|hf[\\s_-]zero[\\s_-]gpu|run[\\s_-]huggingface|hf[\\s_-]status|huggingface[\\s_-]status", + "command": "curl -s \"http://localhost/api/gpu-free-stack.php\" --max-time 10 | jq -r '.backends.huggingface | \"HF \" + .status + \" - \" + .user + \" - \" + .free_resource'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078289", + "triggers_updated_at": "2026-04-24T14:28:01.950726" + }, + { + "name": "kaggle_run_finetune", + "triggers": "kaggle[\\s_-]finetune|run[\\s_-]kaggle|kaggle[\\s_-]fine[\\s_-]tune|kaggle[\\s_-]t4|kaggle[\\s_-]notebook|kaggle[\\s_-]status", + "command": "curl -s \"http://localhost/api/gpu-free-stack.php\" --max-time 10 | jq -r '.backends.kaggle | \"Kaggle \" + .status + \" - script:\" + (.script_exists|tostring) + \" - proofs:\" + (.proofs_count|tostring) + \" - \" + .free_resource'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078312", + "triggers_updated_at": "2026-04-24T14:28:01.950750" + }, + { + "name": "offload_backup_s95", + "triggers": "offload[\\s_-]backup[\\s_-]s95|backup[\\s_-]to[\\s_-]s95|s95[\\s_-]backup|deport[\\s_-]backup[\\s_-]s95|s95[\\s_-]disk[\\s_-]status|s95[\\s_-]storage", + "command": "curl -s -X POST https://wevads.weval-consulting.com/api/sentinel-brain.php --data-urlencode action=exec --data-urlencode cmd=\"df -h / | tail -1\" --max-time 10 | jq -r '.output | \"S95 disk: \" + .'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078332", + "triggers_updated_at": "2026-04-24T14:28:01.950787" + }, + { + "name": "scraper_ethica_s95", + "triggers": "scraper[\\s_-]ethica|scraper[\\s_-]ethica[\\s_-]s95|scraper[\\s_-]ethica[\\s_-]status|scraper[\\s_-]hcp|scraper[\\s_-]hcps|s95[\\s_-]scraper|hcp[\\s_-]scraper|check[\\s_-]scraper[\\s_-]ethica|scraping[\\s_-]ethica|scraper[\\s_-]status[\\s_-]s95", + "command": "curl -s -X POST https://wevads.weval-consulting.com/api/sentinel-brain.php --data-urlencode action=exec --data-urlencode cmd=\"systemctl status scraper-ethica 2>/dev/null | head -3 | tail -1\" --max-time 10 | jq -r '.output | \"Scraper: \" + .'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078344", + "triggers_updated_at": "2026-04-24T14:38:36.263036" + }, + { + "name": "test_offload_all_parallel", + "triggers": "test[\\s_-]offload[\\s_-]all|multi[\\s_-]offload|offload[\\s_-]intents|exploit[\\s_-]s95[\\s_-]kaggle[\\s_-]hf|offload[\\s_-]multi[\\s_-]agent|offload[\\s_-]4|test[\\s_-]4[\\s_-]offloads|offload[\\s_-]gpu[\\s_-]free|s95[\\s_-]offload[\\s_-]full|optimise[\\s_-]stockage[\\s_-]s95[\\s_-]full", + "command": "bash /opt/weval-ops/opus-intents/opus-offload-parallel.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078366", + "triggers_updated_at": "2026-04-24T14:28:01.950829" + }, + { + "name": "opus_disaster_deep_clean_async", + "triggers": "deep_clean|disaster_deep|aggressive_disk|disk_deep|cleanup_aggressive|nettoyage_profond", + "command": "/opt/weval-ops/opus-intents/async-exec.sh /opt/weval-ops/opus-intents/opus-disaster-recovery.sh deep", + "static": false + }, + { + "name": "disk_audit_top", + "triggers": "disk_audit|disk_top|top_dirs|disk_where|gros_dossiers|audit_disk|disque_ou", + "command": "bash /opt/weval-ops/opus-intents/disk-audit.sh top", + "static": false + }, + { + "name": "disk_audit_detail_async", + "triggers": "audit_opt|disk_opt|audit_docker_disk|disk_docker|docker_images_size|audit_disk_full", + "command": "/opt/weval-ops/opus-intents/async-exec.sh /opt/weval-ops/opus-intents/disk-audit.sh all", + "static": false + }, + { + "name": "wevia_job_list", + "triggers": "job_list|jobs_list|list_jobs|async_jobs|tail_job|dernier_job|derniers_jobs", + "command": "bash /opt/weval-ops/opus-intents/job-list.sh", + "static": false + } +] \ No newline at end of file diff --git a/ops-data/priority-intents-nl.json.snapshot-20260424-1503 b/ops-data/priority-intents-nl.json.snapshot-20260424-1503 new file mode 100644 index 000000000..f3ebd9ed2 --- /dev/null +++ b/ops-data/priority-intents-nl.json.snapshot-20260424-1503 @@ -0,0 +1,1223 @@ +[ + { + "name": "diag_training_benchmark_wevia", + "triggers": "pourquoi.{0,25}(aucun|pas).{0,15}(pourcentage|percent|score).{0,15}wevia|diag.{0,10}training.{0,20}benchmark|benchmark.{0,15}wevia.{0,10}(null|vide|manqu)|cause.{0,15}racine.{0,10}(training|benchmark.{0,10}wevia)|ligne.{0,10}wevia.{0,15}(vide|null|manqu)|wevia.{0,15}training.{0,15}benchmark", + "command": "echo === DIAG TRAINING BENCHMARK WEVIA ===; echo; echo FICHIER: /var/www/html/wevia-training.html ligne 2254-2258; sed -n '2254,2258p' /var/www/html/wevia-training.html; echo; echo === CAUSE RACINE ===; echo 'WEVIA = orchestrateur multi-provider sovereign cascade v3'; echo 'gpqa swe math aime arena_code = null PAR DESIGN - doctrine 4 honnetete'; echo 'Herite du score du provider actif dynamique:'; echo '- Cerebras primary: 72 pct GPQA, 2500 tokens/s'; echo '- Claude Opus 4.7 deep mode: 94.2 pct GPQA fallback'; echo '- 13 providers cascade, 0 EUR cost'; echo; echo === AFFICHAGE ACTUEL ===; echo 'Dash em --- car le rendu JS skip les null'; echo 'Doc positionnement ligne 2728 honnete mais UX ambigue'; echo; echo === FIX OPTIONS ===; echo 'Option 1 RECOMMANDE: valeur heritee primary + badge teal inherited + tooltip'; echo 'Option 2: footer explicatif sous le tableau'; echo 'Option 3: best-of-pool 94.2 pct + badge best-of-13'; echo; echo === PROOF REEL ===; grep -c 'gpqa:null' /var/www/html/wevia-training.html; echo 'null_gpqa_count above'; grep -c 'WEVIA Sovereign' /var/www/html/wevia-training.html; echo 'wevia_sovereign_mentions above'", + "static": false + }, + { + "name": "opus_respawn_tracer", + "triggers": "respawn_trace|respawn_tracer|trace_respawn|track_respawn", + "command": "bash /opt/weval-ops/opus-intents/opus-respawn-tracer.sh 15", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:40:29.572817" + }, + { + "name": "opus_disaster_clean", + "triggers": "disaster_clean|infra_cleanup|chrome_clean|clean_leaked_chrome", + "command": "bash /opt/weval-ops/opus-intents/opus-disaster-recovery.sh all", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:13:50.614805" + }, + { + "name": "opus_disaster_recovery", + "triggers": "disaster_recovery|disaster_status|infra_health|wevia_heal|disaster_cleanup", + "command": "bash /opt/weval-ops/opus-intents/opus-disaster-recovery.sh status", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:13:49.685662" + }, + { + "name": "opus_cyber_profile_manager", + "triggers": "cyber_profile|cyber_status|chrome_profile_status|profiles_status|cyber_profiles", + "command": "bash /opt/weval-ops/opus-intents/opus-cyber-profile.sh status", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T13:38:48.658080" + }, + { + "name": "opus_detect_richux", + "triggers": "detect_richux|scan_richux|richux_check|pages_overwritten", + "command": "bash /opt/weval-ops/opus-intents/detect-richux.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T11:45:26.646679" + }, + { + "name": "opus_git_push_ssh_fallback", + "triggers": "git.{0,20}(push|commit|sync).{0,30}(fail|lock|credent)|credential.{0,20}(lock|error)|push.{0,20}fail", + "command": "bash /opt/weval-ops/opus-intents/opus-git-push-fallback.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.543165" + }, + { + "name": "opus_disk_prune_safe", + "triggers": "(disk|storage|space).{0,20}(prune|clean|free|saturat)|vault.{0,20}dedupe|(gold|backup).{0,20}(old|rotate|archive)", + "command": "bash /opt/weval-ops/opus-intents/opus-disk-prune.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.311171" + }, + { + "name": "opus_cf_purge_all", + "triggers": "cloudflare.{0,30}purge|cf.{0,20}(cache|purge|clear)|purge.{0,30}cloudflare", + "command": "bash /opt/weval-ops/opus-intents/opus-cf-purge.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:25.131073" + }, + { + "name": "opus_avatar_e2e_smart", + "triggers": "(smart|e2e|test).{0,30}avatar.{0,40}(propagat|3 pages|enterprise|meeting|archi)|avatar.{0,30}(smart|visual).{0,30}detect", + "command": "bash /opt/weval-ops/opus-intents/opus-avatar-e2e.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:51:24.936092" + }, + { + "name": "w274g2", + "triggers": "w274 g2", + "command": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf /opt/wevads/vault/archived_gold_purge/g22.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s /opt/wevads/vault/archived_gold_purge/g22.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee /tmp/sel-test.py", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:50:47.785676" + }, + { + "name": "opus46_glm5_call", + "triggers": "opus46.*glm|call opus46|glm5 direct", + "command": "bash -c \"timeout 30 python3 /opt/weval-ops/top-ia/opus46-dispatch.py\"", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T21:11:49.736483" + }, + { + "name": "autowire_help", + "triggers": "auto.?wire\\s+help|comment\\s+creer\\s+intent|syntaxe\\s+wire|how\\s+wire\\s+intent|aide\\s+wire|autowire\\s+doc", + "command": "cat < stub PENDING_APPROVAL\n 2. 'master list pending' -> voir stubs dormants\n 3. 'master activate last' -> inject dans priority-intents-nl.json + reload FPM\n 4. Nouvel intent LIVE et matchable en chat\n\nSECURITE:\n - cmd doit contenir /var/www/html/ ou /var/www/weval/ ou /opt/wevia-brain/ ou /opt/wevads/vault/ ou echo ou curl ou php8.4 ou git\n - sinon status = PENDING_SECURITY_REVIEW (refus activate auto)\n\nFICHIERS CLES:\n /var/www/html/api/wired-pending/ (stubs PENDING)\n /opt/wevia-brain/priority-intents-nl.json (intents LIVE)\n /opt/weval-ops/activate-pending-intent.py (activator)\n /var/log/weval/opus4-autowire.log (trace)\nHELP", + "static": false + }, + { + "name": "activate_named_pending", + "triggers": "master\\s+activate\\s+intent\\s+[a-z0-9_]+|active\\s+intent\\s+[a-z0-9_]+|activate\\s+pending\\s+[a-z0-9_]+", + "command": "echo 'Usage: for named activation, use: master activate last (active le dernier pending) OU directement python3 /opt/weval-ops/activate-pending-intent.py '; echo; echo 'Last 10 pending:'; ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -10 | xargs -n1 basename 2>/dev/null | sed 's/intent-opus4-//;s/.php$//'", + "static": false + }, + { + "name": "activate_last_pending", + "triggers": "master\\s+activate\\s+last|active\\s+dernier\\s+pending|activate\\s+last\\s+pending|active\\s+dernier\\s+intent", + "command": "LAST=$(ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -1); if [ -z \"$LAST\" ]; then echo 'No pending intent'; exit 0; fi; NAME=$(basename \"$LAST\" | sed 's/intent-opus4-//;s/.php$//'); echo \"Activating: $NAME\"; python3 /opt/weval-ops/activate-pending-intent.py \"$NAME\" 2>&1", + "static": false + }, + { + "name": "list_pending_intents", + "triggers": "master\\s+list\\s+pending|intents?\\s+en\\s+attente|liste\\s+pending|pending\\s+intents?\\s+list|voir\\s+intents?\\s+(dormants|pending)", + "command": "echo === PENDING INTENTS ===; ls /var/www/html/api/wired-pending/ 2>/dev/null | grep -E 'intent-opus4-[a-z]' | grep -v ACTIVATED | wc -l; echo pending_count_above; echo; echo === LAST 15 ===; ls -t /var/www/html/api/wired-pending/intent-opus4-*.php 2>/dev/null | grep -v ACTIVATED | head -15 | xargs -n1 basename 2>/dev/null; echo; echo === ACTIVATED LAST 10 ===; ls -t /var/www/html/api/wired-pending/intent-opus4-ACTIVATED-*.php 2>/dev/null | head -10 | xargs -n1 basename 2>/dev/null", + "static": false + }, + { + "name": "wevia_heritage_score", + "triggers": "score.{0,10}herite|heritage.{0,10}wevia|quel.{0,10}score.{0,10}actuel.{0,10}wevia", + "command": "echo === wevia heritage score ===; echo provider primary actif: cerebras llama 3.3 70b; echo score gpqa herite: 72 pct; echo tokens/s: 2500; echo latence: 50ms; echo cost: 0 eur; echo fallback deep: claude opus 4.7 = 94.2 pct gpqa; echo source: /var/www/html/wevia-training.html ligne 2256", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-23T04:40:25.212093" + }, + { + "name": "fix_growth_advisor_scroll", + "triggers": "fix.{0,15}scroll.{0,15}(growth|advisor)|(growth|advisor).{0,15}(not|pas).{0,15}scrollable|(growth|advisor).{0,20}scroll.{0,15}(stuck|casse|bloque)|growth.{0,10}advisor.{0,20}scroll", + "command": "echo === GROWTH ADVISOR SCROLL FIX STATUS ===; grep -c 'WAVE-SCROLL-FIX-23AVR' /var/www/html/growth-engine-v2.html 2>&1; echo === FILE INFO ===; ls -la /var/www/html/growth-engine-v2.html; lsattr /var/www/html/growth-engine-v2.html 2>&1; echo === LAST COMMIT ===; cd /var/www/html && git log --oneline -3 -- growth-engine-v2.html 2>&1", + "static": false + }, + { + "name": "playwright_scroll_diag", + "triggers": "playwright.{0,15}(test|diag).{0,15}scroll|diag.{0,15}scroll.{0,15}(advisor|growth)|test.{0,15}scroll.{0,15}(growth|advisor)|scroll.{0,15}(proof|preuve)|advisor.{0,15}scroll.{0,15}(test|validation|proof)", + "command": "echo === WAVE-272 AUTHENTICATED PROOF ===; ls /opt/wevads/vault/proofs/wave272-scroll-fix-23avr/ 2>&1; echo === RESULT.JSON ===; cat /opt/wevads/vault/proofs/wave272-scroll-fix-23avr/result.json 2>/dev/null | python3 -m json.tool 2>&1 | head -40; echo === AUTH SCRIPT REUSE ===; ls -la /opt/weval-nonreg/advisor_scroll_authed_v1.js 2>&1; echo 'Rerun: sudo -u www-data node /opt/weval-nonreg/advisor_scroll_authed_v1.js (takes ~40s, login yacine auto)'", + "static": false + }, + { + "name": "clean_disk_safe", + "triggers": "clean.{0,15}disk.{0,15}safe|(nettoie|nettoyer|nettoyage|purge|liber|libere).{0,20}(disque|disk|gold|vieux|espace|golds)|disk.{0,15}full", + "command": "echo === DISK BEFORE ===; df -h / | tail -1; echo === KEEP LATEST GOLD ONLY ===; LATEST=$(ls -dt /opt/wevads/vault/gold-auto-* 2>/dev/null | head -1); echo LATEST=$LATEST; for g in $(ls -dt /opt/wevads/vault/gold-auto-* 2>/dev/null | tail -n +2); do echo PURGE=$g; sudo rm -rf \"$g\"; done; echo === TMP PLAYWRIGHT PROFILES >30min ===; sudo find /tmp -maxdepth 1 -name 'playwright_chromiumdev_profile-*' -mmin +30 -exec rm -rf {} \\; 2>/dev/null; sudo find /tmp -maxdepth 1 -name 'playwright-artifacts-*' -mmin +30 -exec rm -rf {} \\; 2>/dev/null; echo === DISK AFTER ===; df -h / | tail -1", + "static": false + }, + { + "name": "zxqtest", + "triggers": "zxqtest", + "command": "echo bonjour", + "static": false + }, + { + "name": "xcode_diag", + "triggers": "xcode", + "command": "ls -la /var/log/nginx/code* /etc/nginx/sites-enabled/code* 2>&1 ; echo === VHOST === ; cat /etc/nginx/sites-enabled/code.weval-consulting.com 2>&1 ; echo === LAST ERR === ; grep -i code /var/log/nginx/error.log 2>&1 | tail -30", + "static": false + }, + { + "name": "xcode_vhost", + "triggers": "xvhost", + "command": "cat /etc/nginx/sites-enabled/code-weval", + "static": false + }, + { + "name": "p3900check", + "triggers": "p3900", + "command": "bash -c ss-tlnp-3900", + "static": false + }, + { + "name": "gptconfig", + "triggers": "gptconfig", + "command": "find /opt/claw-code -maxdepth 4 -name *.yaml -o -name .gptr.*.yaml 2>/dev/null", + "static": false + }, + { + "name": "gptcwd", + "triggers": "gptcwd", + "command": "sudo readlink /proc/2742182/cwd ; sudo cat /proc/2742182/environ | tr -d \\000 | grep -iE OPENAI_BASE_URL", + "static": false + }, + { + "name": "gptenv", + "triggers": "gptenv", + "command": "sudo strings /proc/2742182/environ | grep -iE OPENAI", + "static": false + }, + { + "name": "wvia_route", + "triggers": "wvroute", + "command": "grep -n weval-ia /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "golds_nginx", + "triggers": "ngolds", + "command": "ls -lat /opt/wevads/vault/GOLD*nginx*weval* 2>/dev/null ; ls -lat /etc/nginx/sites-enabled/weval-consulting* 2>/dev/null | head -5", + "static": false + }, + { + "name": "ngctx", + "triggers": "ngctx", + "command": "sed -n 150,175p /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngbk", + "triggers": "ngbk", + "command": "find / -maxdepth 6 -name weval-consulting.bak -o -name weval-consulting.gold -o -name weval-consulting.backup 2>/dev/null ; ls -lat /etc/nginx/sites-available/*.bak 2>/dev/null", + "static": false + }, + { + "name": "ngxscan", + "triggers": "ngxscan", + "command": "grep -n weval-ia /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngxblk", + "triggers": "ngxblk", + "command": "sed -n 158,172p /etc/nginx/sites-enabled/weval-consulting", + "static": false + }, + { + "name": "ngxtest", + "triggers": "ngxtest", + "command": "sudo nginx -t ; echo === RELOAD === ; sudo systemctl reload nginx ; echo ok ; echo === CURL === ; curl -sk https://weval-consulting.com/api/weval-ia -o /tmp/test.txt ; head -c 200 /tmp/test.txt", + "static": false + }, + { + "name": "capsfind", + "triggers": "capsfind", + "command": "grep -n -B1 -A5 Caps10 /opt/weval-nonreg/nonreg-master.py", + "static": false + }, + { + "name": "capshealth", + "triggers": "capshealth", + "command": "curl -sk https://weval-consulting.com/api/wevia-capabilities.php?cap=health", + "static": false + }, + { + "name": "lokichk", + "triggers": "lokichk", + "command": "ss -tlnp 2>&1 | grep -E :3100 ; echo === DOCKER === ; docker ps -a 2>&1 | grep -i loki ; echo === SYSTEMD === ; systemctl list-units 2>&1 | grep -i loki", + "static": false + }, + { + "name": "pwchk", + "triggers": "pwchk", + "command": "ls /opt/playwright-visual/ 2>&1 | head -20", + "static": false + }, + { + "name": "gitloc", + "triggers": "gitloc", + "command": "cd /var/www/html && git remote -v 2>&1 | head -5 ; echo === BRANCH === ; git branch 2>&1 | head -3 ; echo === STATUS === ; git status 2>&1 | head -10", + "static": false + }, + { + "name": "gitlog", + "triggers": "gitlog", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "gitpush", + "triggers": "gitpush", + "command": "cd /var/www/html && git add -A && git commit -m doctrine-fix-autowire-cascade-priority-v4-v5-v6 -m opus-intervention-autonomy-WEVIA-Master 2>&1 | tail -3 ; echo === PUSH === ; git push gitea main 2>&1 | tail -5 ; echo === ORIGIN === ; git push origin main 2>&1 | tail -5", + "static": false + }, + { + "name": "verifyfp", + "triggers": "verifyfp", + "command": "grep -c NL-AUTOWIRE.PRIORITY /var/www/html/api/wevia-fast-path-v3.php ; grep -c sovereign.cascade.cascade /var/www/html/api/wevia-fast-path-v3.php ; ls -la /opt/wevia-brain/priority-intents-nl.json", + "static": false + }, + { + "name": "ajoute_nouvel_intent_wikiloc", + "triggers": "wikiloc", + "command": "ls /var/www/weval/wiki/ 2>/dev/null | head -10 ; echo === VAULT === ; ls /var/www/html/vault/ 2>/dev/null | head -10 ; ls /var/www/weval/vault/ 2>/dev/null | head -10", + "static": false + }, + { + "name": "screensloc", + "triggers": "screensloc", + "command": "ls /var/www/html/architecture*.html /var/www/html/agents-archi*.html /var/www/html/security*.html /var/www/html/wevia-master.html 2>&1 | head -15", + "static": false + }, + { + "name": "buginvest", + "triggers": "buginvest", + "command": "tail -n 20 /var/log/nginx/error.log", + "static": false + }, + { + "name": "gptmodels", + "triggers": "gptmodels", + "command": "curl -sk http://127.0.0.1:4000/v1/models", + "static": false + }, + { + "name": "sovloc", + "triggers": "sovloc", + "command": "ls /opt/sovereign-api/ 2>&1 | head -10", + "static": false + }, + { + "name": "sovmodels", + "triggers": "sovmodels", + "command": "grep -n -A5 v1.models /opt/sovereign-api/sovereign-api.py", + "static": false + }, + { + "name": "xopusinrt", + "triggers": "xopusinrt", + "command": "ls -la /var/www/html/api/wevia-opus-intents.php ; echo === HEAD === ; head -50 /var/www/html/api/wevia-opus-intents.php", + "static": false + }, + { + "name": "xwireck", + "triggers": "xwireck", + "command": "grep -n wevia-opus-intents /var/www/html/api/wevia-master-api.php", + "static": false + }, + { + "name": "xnrfresh", + "triggers": "xnrfresh", + "command": "nohup sudo python3 /opt/weval-nonreg/nonreg-master.py > /tmp/nrf.log 2>&1", + "static": false + }, + { + "name": "xlokiport", + "triggers": "xlokiport", + "command": "docker ps 2>&1 | grep loki ; echo === PORTS === ; docker port loki 2>&1 ; echo === HEALTH === ; docker inspect loki 2>&1 | grep -E HealthLog | head -5 ; echo === CURL 3100 === ; curl -sk http://127.0.0.1:3100/ready 2>&1 | head -c 200", + "static": false + }, + { + "name": "xcapssrc", + "triggers": "xcapssrc", + "command": "grep -n -A1 loki /var/www/html/api/wevia-capabilities.php", + "static": false + }, + { + "name": "xlokiports", + "triggers": "xlokiports", + "command": "curl -sk http://localhost:3100/ready 2>&1 | head -c 50 ; echo \"|\" ; curl -sk http://localhost:3110/ready 2>&1 | head -c 50 ; echo \"|\" ; ss -tlnp 2>&1 | grep -E \":3100|:3110\"", + "static": false + }, + { + "name": "listprio", + "triggers": "listprio", + "command": "cat /opt/wevia-brain/priority-intents-nl.json", + "static": false + }, + { + "name": "docker_status", + "triggers": "docker|conteneur", + "command": "docker ps --format '{{.Names}}: {{.Status}}' 2>/dev/null | head -20", + "static": false + }, + { + "name": "subdomain_status", + "triggers": "sous.domaines?|subdomains?", + "command": "for d in analytics crm git langfuse monitor n8n paperclip; do echo -n \"$d:\"; curl -sk -o /dev/null -w '%{http_code}' --max-time 3 https://$d.weval-consulting.com; echo; done", + "static": false + }, + { + "name": "nuclei_scan", + "triggers": "nuclei|scan.*securit", + "command": "echo NUCLEI && ls -lt /var/log/nuclei*.log 2>/dev/null | head -3", + "static": false + }, + { + "name": "qdrant_info", + "triggers": "qdrant.*vect|vect.*qdrant|qdrant.*collec", + "command": "curl -s http://127.0.0.1:6333/collections 2>/dev/null | head -c 500", + "static": false + }, + { + "name": "ajouter_bonjour_yacine", + "triggers": "bonjour yacine", + "command": "Bonjour Yacine ! Comment puis-je vous aider ?", + "static": true + }, + { + "name": "git_push", + "triggers": "commit.*push|push.*git|pousse.*git", + "command": "cd /var/www/html && git add -A && git commit -m 'auto-wevia' 2>&1 | tail -3 && git push 2>&1 | tail -3", + "static": false + }, + { + "name": "docker_restart", + "triggers": "redemarr.*container|restart.*docker|relance.*container", + "command": "echo 'Usage: docker restart ' && docker ps --format '{{.Names}}' | head -10", + "static": false + }, + { + "name": "cf_purge", + "triggers": "purge.*cloud|cloudflare.*purge|cache.*cloudflare|cf.*purge", + "command": "curl -sk -X POST 'https://api.cloudflare.com/client/v4/zones/1488bbba251c6fa282999fcc09aac9fe/purge_cache' -H 'X-Auth-Email: ymahboub@weval-consulting.com' -H 'X-Auth-Key: 9eb8d1041e7faeae68d5017376871ba170291' -H 'Content-Type: application/json' -d '{\"purge_everything\":true}' 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print('CF PURGE:','OK' if d.get('success') else 'FAIL',d.get('errors',['']))\"", + "static": false + }, + { + "name": "ethica_backup", + "triggers": "backup.*ethica|sauvegarde.*ethica|dump.*ethica|medecin.*base|base.*medecin|combien.*medecin.*total", + "command": "echo 'ETHICA BACKUP' && PGPASSWORD=admin123 pg_dump -h 10.1.0.3 -U admin -d adx_system -n ethica --no-owner -Fc -f /tmp/ethica-backup-$(date +%Y%m%d).dump 2>&1 && ls -lh /tmp/ethica-backup-*.dump | tail -1", + "static": false + }, + { + "name": "php_workers", + "triggers": "worker.*php|php.*worker|fpm.*worker|combien.*worker", + "command": "echo 'FPM:' && pgrep -c php-fpm && echo 'POOLS:' && cat /etc/php/8.5/fpm/pool.d/*.conf 2>/dev/null | grep pm.max_children | head -3", + "static": false + }, + { + "name": "containers_down", + "triggers": "container.*down|docker.*down|container.*arret|docker.*stop|truc.*march.*pas|quelque.*chose.*down|probleme.*serveur", + "command": "echo 'RUNNING:' && docker ps -q 2>/dev/null | wc -l && echo 'ALL:' && docker ps -aq 2>/dev/null | wc -l && echo 'STOPPED:' && docker ps -aq -f status=exited 2>/dev/null | wc -l", + "static": false + }, + { + "name": "visitors_online", + "triggers": "connecte.*site|visiteur|visitor|qui.*en.*ligne|analytics", + "command": "curl -s http://127.0.0.1:8000/api/v1/stats/aggregate?site_id=weval-consulting.com\\&period=realtime 2>/dev/null | head -c 200 || echo 'Plausible: check /analytics'", + "static": false + }, + { + "name": "nginx_version", + "triggers": "version.*nginx|nginx.*version", + "command": "nginx -v 2>&1", + "static": false + }, + { + "name": "load_server", + "triggers": "load.*average|load.*serv|charge.*serv|infrastructure|machine.*tourn|comment.*va.*infra|serveur.*bien|etat.*serveur|perf|performance|tient.*coup|lent", + "command": "echo 'LOAD:' && cat /proc/loadavg && echo 'RAM:' && free -h | head -2 && echo 'CPU:' && nproc", + "static": false + }, + { + "name": "sync_tout", + "triggers": "sync tout|lance sync|synchronise tout", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "lancer_tests_fonctionnels", + "triggers": "tests fonctionnels|lance functional|functional tests", + "command": "cd /opt/weval-l99 && python3 functional-tests.py 2>&1 | tail -5", + "static": false + }, + { + "name": "ajouter_crons_ethica_s95", + "triggers": "crons ethica s95|crons s95 ethica|ethica crons", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab+-l+2>/dev/null|grep+ethica", + "static": false + }, + { + "name": "add_security_scan", + "triggers": "scan securite|security scan|ssl crowdsec status", + "command": "echo SSL:; openssl s_client -connect weval-consulting.com:443 2>/dev/null | grep -i \"not after\"; echo CROWDSEC:; cscli alerts list -l 5 2>/dev/null || echo crowdsec-not-found", + "static": false + }, + { + "name": "paperclip_status", + "triggers": "paperclip status|agents paperclip", + "command": "curl -s http://127.0.0.1/api/paperclip-agents-api.php?action=stats 2>/dev/null | head -c 300", + "static": false + }, + { + "name": "scan_securite", + "triggers": "scan securite|security check", + "command": "echo SSL:; curl -skI https://weval-consulting.com 2>/dev/null | grep -i strict; echo DISK:; df -h / | tail -1", + "static": false + }, + { + "name": "crons_ethica", + "triggers": "crons ethica|ethica crons s95", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab%20-l%20|%20grep%20ethica", + "static": false + }, + { + "name": "ethica_crons", + "triggers": "crons ethica|ethica crons", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=crontab%20-l", + "static": false + }, + { + "name": "pmta_status", + "triggers": "pmta status|status pmta", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=pmta%20show%20status", + "static": false + }, + { + "name": "cpu_temp", + "triggers": "temperature.*cpu|cpu.*temp|thermal", + "command": "cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | head -3 || sensors 2>/dev/null | head -5 || echo 'CPU temp: non disponible (pas de sensors)'", + "static": false + }, + { + "name": "ssl_certs", + "triggers": "certificat.*ssl|ssl.*actif|ssl.*list|certbot.*cert", + "command": "certbot certificates 2>/dev/null | head -20", + "static": false + }, + { + "name": "domain_expiry", + "triggers": "expire.*domaine|domaine.*expir|whois.*weval", + "command": "whois weval-consulting.com 2>/dev/null | grep -i 'expir' | head -3 || echo 'whois non installe'", + "static": false + }, + { + "name": "email_stats", + "triggers": "mail.*envoy|email.*envoy|mail.*cette.*semaine|combien.*mail", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=$(echo 'echo PMTA && pmta show counters | head -10' | base64 -w0) 2>/dev/null || echo 'PMTA stats via S95 sentinel'", + "static": false + }, + { + "name": "telegram_alerts", + "triggers": "alerte.*telegram|telegram.*alerte|telegram.*24h|notif.*telegram", + "command": "tail -50 /var/log/wevia/telegram-alerts.log 2>/dev/null || grep -r 'telegram' /var/log/wevia/ 2>/dev/null | tail -10 || echo 'Pas de log telegram recent'", + "static": false + }, + { + "name": "audit_security", + "triggers": "audit.*securit|securite.*complet|security.*audit|scan.*complet.*sec", + "command": "echo 'LAST NUCLEI:' && ls -lt /var/log/nuclei*.log 2>/dev/null | head -3 && echo 'TRIVY:' && trivy image --severity CRITICAL --quiet 2>/dev/null | head -5 && echo 'PORTS:' && ss -tlnp 2>/dev/null | wc -l", + "static": false + }, + { + "name": "req_per_sec", + "triggers": "requete.*seconde|req.*sec|trafic|combien.*requete|request.*rate", + "command": "echo 'NGINX:' && tail -1000 /var/log/nginx/access.log 2>/dev/null | awk '{print $4}' | cut -d: -f1-3 | sort | uniq -c | tail -5 || echo 'Pas de log access'", + "static": false + }, + { + "name": "users_connected", + "triggers": "utilisateurs|visitors|sessions.*active|derniers.*connect|qui.*ligne", + "command": "echo 'PHP Sessions:' && ls /var/lib/php/sessions/ 2>/dev/null | wc -l && echo 'Last access:' && tail -5 /var/log/nginx/access.log 2>/dev/null | awk '{print $1,$4,$7}'", + "static": false + }, + { + "name": "bilan_rapide", + "triggers": "point.*sur.*tout|bilan.*rapide|resume.*situation|comment.*ca.*va|tout.*ok|status.*general|ca.*va.*bien|ca.*roule|on.*en.*est.*ou|ou.*en.*est|etat.*general", + "command": "echo BILAN RAPIDE && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo LOAD:$(cat /proc/loadavg) && echo DISK:$(df -h / | tail -1 | awk '{print $5}') && echo DOCKER:$(docker ps -q 2>/dev/null|wc -l) && echo FPM:$(pgrep -c php-fpm)", + "static": false + }, + { + "name": "disk_space_nl", + "triggers": "place.*disque|assez.*place|disque.*plein|espace.*suffisant", + "command": "df -h / | tail -1", + "static": false + }, + { + "name": "medecins_total", + "triggers": "medecin.*base|base.*medecin|combien.*medecin.*total|medecin.*notre|couverture.*email|taux.*email|email.*pays", + "command": "curl -s http://127.0.0.1/api/ethica-country-api.php 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print('ETHICA:',d['total'],'HCPs,',d['email'],'email');[print(' ',c['pays']+':',c['t']) for c in d['countries']]\"", + "static": false + }, + { + "name": "infra_status_nl", + "triggers": "infrastructure|machines|serveurs|comment.*infra|etat.*serveur", + "command": "echo LOAD:$(cat /proc/loadavg | cut -d' ' -f1-3) RAM:$(free -h | grep Mem | awk '{print $3\"/\"$2}') DISK:$(df -h / | tail -1 | awk '{print $5}') FPM:$(pgrep -c php-fpm) DOCKER:$(docker ps -q 2>/dev/null|wc -l)", + "static": false + }, + { + "name": "problems_check", + "triggers": "truc.*march.*pas|quelque.*chose.*down|probleme|erreur.*recent|ya.*souci|soucis|incident|panne|bug.*recent", + "command": "echo DOCKER_STOPPED:$(docker ps -aq -f status=exited 2>/dev/null|wc -l) && echo LAST_ERRORS: && tail -3 /var/log/nginx/error.log 2>/dev/null", + "static": false + }, + { + "name": "reboot_uptime", + "triggers": "longtemps.*reboot|dernier.*reboot|depuis.*quand.*tourne|uptime.*serveur", + "command": "uptime", + "static": false + }, + { + "name": "ajouter_redis_info", + "triggers": "redis info", + "command": "redis-cli info memory | head -10", + "static": false + }, + { + "name": "deploy_check", + "triggers": "deployer.*production|pret.*deployer|peut.*deployer|ready.*deploy|go.*live", + "command": "echo DEPLOY CHECK && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo GIT:$(cd /var/www/html&&git status -s|wc -l) dirty && echo DOCKER:$(docker ps -q|wc -l) up && echo LOAD:$(cat /proc/loadavg|cut -d' ' -f1)", + "static": false + }, + { + "name": "risk_check", + "triggers": "risques|risque.*actuel|problemes.*potentiel|vulnerabilit", + "command": "echo RISKS: && echo DISK:$(df -h /|tail -1|awk '{print $5}') && echo DOCKER_DOWN:$(docker ps -aq -f status=exited|wc -l) && echo LAST_ERR:$(tail -3 /var/log/nginx/error.log 2>/dev/null) && echo SSL:$(certbot certificates 2>/dev/null|grep -c Expiry)", + "static": false + }, + { + "name": "metriques_cles", + "triggers": "metriques.*cles|kpi|indicateurs|rapport.*demain|metrics|tableau.*bord", + "command": "curl -s http://127.0.0.1/api/wevia-multiagent.php 2>/dev/null|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"diagnostic\"])'", + "static": false + }, + { + "name": "log_cleanup", + "triggers": "nettoie|clean.*log|purge.*log|vieux.*log|supprime.*log", + "command": "echo BEFORE: && du -sh /var/log/ && find /var/log -name '*.log' -mtime +7 -size +1M 2>/dev/null | head -10 && echo '(dry run - add --delete pour supprimer)'", + "static": false + }, + { + "name": "cert_check", + "triggers": "certificats|certbot|ssl.*valide|verif.*ssl|certif.*valide|renouvellement.*ssl|ssl.*renouv|expir.*ssl|prochain.*ssl", + "command": "certbot certificates 2>/dev/null | grep -A2 'Certificate Name' | head -15", + "static": false + }, + { + "name": "requests_today", + "triggers": "requetes.*aujourd|requete.*jour|trafic.*aujourd|visites.*aujourd", + "command": "echo TODAY: && wc -l /var/log/nginx/access.log 2>/dev/null && echo LAST_HOUR: && awk -v d=$(date +%d/%b/%Y:%H) '$0~d{c++}END{print c}' /var/log/nginx/access.log 2>/dev/null", + "static": false + }, + { + "name": "api_latency", + "triggers": "temps.*reponse|latence|api.*lent|performance|reponse.*moyen", + "command": "echo API_LATENCY: && for e in nonreg-api l99-api ethica-stats-api wevia-multiagent; do t=$(curl -sk -o /dev/null -w '%{time_total}' --max-time 5 http://127.0.0.1/api/$e.php 2>/dev/null); echo \" $e: ${t}s\"; done", + "static": false + }, + { + "name": "qdrant_search", + "triggers": "cherche.*dans.*base|knowledge|connaissance|recherche.*semantique", + "command": "curl -s http://127.0.0.1:6333/collections 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);cols=d['result']['collections'];print(len(cols),'collections:');[print(' ',c['name']) for c in cols]\"", + "static": false + }, + { + "name": "learning_status", + "triggers": "apprentissage|learning|auto.*learn|apprend", + "command": "echo LEARNING: && wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null && echo UNMATCHED: && wc -l /var/log/wevia/unmatched.jsonl 2>/dev/null && echo CRON: && crontab -l 2>/dev/null | grep learn", + "static": false + }, + { + "name": "wiki_status", + "triggers": "wiki|documentation|doc.*interne", + "command": "echo WIKI: && ls /opt/weval-ops/wiki/ 2>/dev/null | wc -l && echo PAGES: && curl -s http://127.0.0.1:3000/api/v1/repos/search?token=&limit=5 2>/dev/null | python3 -c \"import sys,json;print(len(json.load(sys.stdin).get('data',[])))\" 2>/dev/null || echo 'Gitea API check'", + "static": false + }, + { + "name": "vault_status", + "triggers": "vault|secret|mot.*passe|password", + "command": "echo VAULT: && ls /opt/wevads/vault/ 2>/dev/null | tail -5 && echo VAULTWARDEN: && curl -sk -o /dev/null -w '%{http_code}' http://127.0.0.1:8222/alive 2>/dev/null", + "static": false + }, + { + "name": "n8n_workflows", + "triggers": "n8n|workflow|automatisation", + "command": "echo N8N: && curl -s http://127.0.0.1:5678/api/v1/workflows?limit=5 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print(len(d.get('data',[]))),'workflows'\" 2>/dev/null || echo 'N8N: port 5678'", + "static": false + }, + { + "name": "mattermost_status", + "triggers": "mattermost|chat.*equipe|communication", + "command": "curl -s http://127.0.0.1:8065/api/v4/system/ping 2>/dev/null", + "static": false + }, + { + "name": "recent_changes", + "triggers": "dernier.*change|change.*recent|quoi.*neuf|nouveau|dernier.*modif|commit.*recent|derniere.*mise.*jour", + "command": "cd /var/www/html && echo LAST_COMMITS: && git log --oneline -5 && echo FILES_CHANGED: && git diff --stat HEAD~1 2>/dev/null | tail -3", + "static": false + }, + { + "name": "add_salut_weval", + "triggers": "salut weval", + "command": "Salut, comment puis-je vous aider ?", + "static": false + }, + { + "name": "daily_report", + "triggers": "rapport.*journee|rapport.*jour|bilan.*jour|resume.*journee|genere.*rapport|daily.*report", + "command": "echo RAPPORT $(date +%Y-%m-%d) && echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all|python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo LOAD:$(cat /proc/loadavg|cut -d' ' -f1-3) && echo DISK:$(df -h /|tail -1|awk '{print $5}') && echo DOCKER:$(docker ps -q|wc -l) && echo REQUESTS:$(wc -l /var/log/nginx/access.log 2>/dev/null|cut -d' ' -f1) && echo GIT:$(cd /var/www/html&&git log --oneline -3)", + "static": false + }, + { + "name": "wevads_domains", + "triggers": "domaines.*wevads|wevads.*domain|combien.*domaine", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=$(echo 'echo DOMAINS && psql -U admin -d adx_system -c \"SELECT count(*) FROM domains\" -t' | base64 -w0) 2>/dev/null || echo 'WEVADS: 1535 domains (cache S95)'", + "static": false + }, + { + "name": "process_zombie", + "triggers": "zombie|processus.*mort|process.*bloqu|process.*stuck", + "command": "echo ZOMBIE: && ps aux | awk '$8 ~ /Z/{print}' | head -5 && echo TOTAL: && ps aux | awk '$8 ~ /Z/' | wc -l", + "static": false + }, + { + "name": "top_ram_process", + "triggers": "pid.*ram|process.*ram|consomme.*ram|ram.*process|memoire.*process", + "command": "ps aux --sort=-%mem | head -6", + "static": false + }, + { + "name": "suspicious_connections", + "triggers": "suspectes|intrusion|connexions.*bizarre|attaque|piratage|hack", + "command": "echo CONNECTIONS: && ss -tun | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10 && echo FAILED_SSH: && grep 'Failed password' /var/log/auth.log 2>/dev/null | tail -3", + "static": false + }, + { + "name": "self_meta", + "triggers": "combien.*intent|intent.*maintenant|tes.*capacit|tu.*sais.*faire|que.*sais.*tu", + "command": "echo INTENTS: && python3 -c 'import json;d=json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"));print(len(d),\"NL intents\")' && echo TOOLS: && curl -s http://127.0.0.1/api/wevia-ops.php?k=BLADE2026\\&action=status 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d.get(\"tools_count\",\"?\"),\"tools\")'", + "static": false + }, + { + "name": "qdrant_status_collections", + "triggers": "qdrant status|qdrant collections", + "command": "curl -s http://127.0.0.1:6333/collections", + "static": false + }, + { + "name": "heure_actuelle", + "triggers": "quelle heure|heure actuelle", + "command": "date", + "static": false + }, + { + "name": "ollama_status", + "triggers": "ollama status|ollama tourne", + "command": "systemctl is-active ollama 2>/dev/null; ollama list 2>/dev/null | head -5", + "static": false + }, + { + "name": "debug_pipeline", + "triggers": "pourquoi.*reponse|debug|explain.*pipeline|comment.*tu.*decide|chemin.*decision", + "command": "echo PIPELINE: NL-priority(94 intents)→opus-intents→fast-path-v3(1274L)→LLM-classifier(Groq)→dynamic-resolver(382tools)→LLM-fallback(sovereign) && echo STATS: && wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null && echo NL_INTENTS:$(python3 -c 'import json;print(len(json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"))))') && echo LAST_MATCH: && tail -1 /var/log/wevia/requests-all.jsonl 2>/dev/null | python3 -c 'import sys,json;d=json.loads(sys.stdin.readline());print(d.get(\"tool\",\"?\"),d.get(\"message\",\"?\")[:50])'", + "static": false + }, + { + "name": "schedule_task", + "triggers": "planifie|programme|schedule|rappelle.*moi|dans.*heure|cron.*ajoute", + "command": "echo SCHEDULER: Fonctionnalite en cours de wire. Crons actifs: && crontab -l 2>/dev/null | wc -l && echo Derniers: && crontab -l 2>/dev/null | tail -3", + "static": false + }, + { + "name": "telegram_send", + "triggers": "envoie.*telegram|telegram.*message|notifie.*telegram|previens.*telegram", + "command": "echo TELEGRAM: Bot 8544624912 Chat 7605775322 && echo 'Pour envoyer: curl -s https://api.telegram.org/bot/sendMessage -d chat_id=7605775322 -d text=MSG'", + "static": false + }, + { + "name": "top_cpu_process", + "triggers": "cpu.*consomme|process.*cpu|top.*process|process.*gourmand", + "command": "ps aux --sort=-%cpu | head -6", + "static": false + }, + { + "name": "network_connections", + "triggers": "connexions.*reseau|netstat|connections|ports.*ouverts|ports.*ecoute", + "command": "ss -tlnp 2>/dev/null | head -15", + "static": false + }, + { + "name": "cron_list", + "triggers": "liste.*cron|crontab|taches.*planifi|cron.*complet", + "command": "echo ROOT: && sudo crontab -l 2>/dev/null | grep -v '^#' | head -10 && echo WWW: && crontab -l -u www-data 2>/dev/null | head -5", + "static": false + }, + { + "name": "cable_cout_ia", + "triggers": "combien depense IA|cout IA|budget IA", + "command": "echo COUT IA MENSUEL: 0 EUR (100% free tier). 13 providers: Cerebras+Groq+SambaNova+Gemini+Mistral+Cohere+NVIDIA+Cloudflare+OpenRouter+HF+Ollama.", + "static": false + }, + { + "name": "clients_wevads", + "triggers": "clients actifs|comptes wevads", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"select%20count(*)%20from%20accounts\"", + "static": false + }, + { + "name": "budget_ia", + "triggers": "budget IA|depenses IA|cout mensuel", + "command": "echo 0 EUR par mois - 13 providers gratuits", + "static": false + }, + { + "name": "auto_guerison", + "triggers": "self heal|auto fix|repare toi", + "command": "php /var/www/html/api/sync-exec.php 2>/dev/null && curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c \"import sys,json;d=json.load(sys.stdin);print(d[chr(39)pass chr(39)],chr(47),d[chr(39)total chr(39)])\"", + "static": false + }, + { + "name": "top_specialites", + "triggers": "top specialites|specialites les plus frequentes", + "command": "curl -s http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20specialite,%20count(*)%20FROM%20ethica.medecins_real%20GROUP%20BY%20specialite%20ORDER%20BY%20count%20DESC%20LIMIT%2010\"", + "static": false + }, + { + "name": "correlation_systeme", + "triggers": "correlation systeme|vue croisee|cross check", + "command": "echo INFRA:$(cat /proc/loadavg | cut -d\" \" -f1-3) FPM:$(pgrep -c php-fpm) DOCKER:$(docker ps -q | wc -l) NONREG:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c \"import sys,json;print(json.load(sys.stdin).get(chr(39)pass chr(39),0))\") INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json)", + "static": false + }, + { + "name": "fix_css_overlaps", + "triggers": "auto-wire|css overlaps|warns", + "command": "sed 's/<[^>]*>/& style=\"z-index: 1000; pointer-events: none;\"/g' index.html", + "static": false + }, + { + "name": "cable_cross_check", + "triggers": "cross check|vue croisée", + "command": "curl -s http://127.0.0.1/api/infra-monitor-api.php", + "static": false + }, + { + "name": "cable_intent", + "triggers": "cherche dans la KB|recherche semantique|KB search", + "command": "curl -s http://127.0.0.1:6333/collections/wevia_knowledge/points/count", + "static": false + }, + { + "name": "cable_intent_anomalies", + "triggers": "scan anomalies", + "command": "cat /proc/loadavg", + "static": false + }, + { + "name": "cable_self_heal", + "triggers": "repare toi", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "cable_git_log", + "triggers": "historique git|git history", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "cable_wiki_articles", + "triggers": "wiki count|articles wiki", + "command": "find /opt/weval-l99/wiki -name *.md | wc -l", + "static": false + }, + { + "name": "web_search", + "triggers": "cherche.*web|recherche.*internet|google|search.*web|trouve.*ligne|perplexity", + "command": "curl -s 'http://127.0.0.1:8080/search?q=weval+consulting&format=json' 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);print(len(d.get('results',[]))),'results found'\" 2>/dev/null || echo 'SearXNG: http://127.0.0.1:8080'", + "static": false + }, + { + "name": "deep_analysis", + "triggers": "analyse.*profonde|deep.*analysis|raisonnement|reasoning|reflexion|architecture.*analyse|analyse.*architecture", + "command": "echo DEEP ANALYSIS MODE && echo PROVIDERS: $(curl -s http://127.0.0.1/api/openclaw-proxy.php 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(len(d.get(\"providers\",[])))' 2>/dev/null) && echo MODELS: Cerebras(fast)+Groq(versatile)+SambaNova(deep)+Gemini(multimodal) && echo 'Pour analyse profonde: envoyer via /api/saas-chat.php avec context enrichi'", + "static": false + }, + { + "name": "multimodal_status", + "triggers": "multimodales|multimodal|vision|image.*analyse|capacites.*image|capacite.*vision", + "command": "echo MULTIMODAL CAPABILITIES: && echo 'Vision: Gemini 2.0 Flash (free tier 60req/min)' && echo 'OCR: Tesseract local' && echo 'Audio: Whisper.cpp (a installer)' && echo 'Image Gen: SDXL via HF Spaces (a wirer)' && echo 'Search: SearXNG local (port 8080)' && echo API: && curl -s --max-time 3 'https://generativelanguage.googleapis.com/v1beta/models?key=NONE' -o /dev/null -w 'Gemini API: %{http_code}' 2>/dev/null", + "static": false + }, + { + "name": "code_gen", + "triggers": "genere.*code|ecris.*code|script.*python|script.*php|code.*pour|programme.*pour", + "command": "echo CODE GENERATION: && echo 'Engines: WEVCODE(/wevia-fullscreen) + Sovereign Cascade(port 4000)' && echo 'Languages: PHP, Python, JS, Bash, SQL' && echo 'Pour generer: utiliser /api/saas-chat.php avec prompt detaille'", + "static": false + }, + { + "name": "translate", + "triggers": "traduis|traduction|translate|anglais.*francais|francais.*anglais|arabe", + "command": "echo TRADUCTION: Disponible via Groq/Cerebras/Gemini (0 EUR) && echo 'Langues: FR/EN/AR/ES/DE/IT/PT/ZH/JA' && echo 'Pour traduire: envoyer texte via /api/saas-chat.php'", + "static": false + }, + { + "name": "summarize", + "triggers": "resume.*document|synthese|summarize|condense|resume.*texte|resume.*article", + "command": "echo RESUME: Disponible via sovereign cascade (0 EUR) && echo 'Max context: 128K tokens (Gemini) / 32K (Groq)' && echo 'Pour resumer: envoyer document via /api/saas-chat.php'", + "static": false + }, + { + "name": "calculate", + "triggers": "calcul|math|combien.*fait|pourcentage|moyenne|total.*somme|ROI|conversion", + "command": "echo CALC ENGINE: Python3 disponible && python3 -c \"print('Python3 math OK:', 2**10, '| pi:', __import__('math').pi)\"", + "static": false + }, + { + "name": "compare_tools", + "triggers": "compare|benchmark|versus|difference.*entre|meilleur.*entre|quel.*choisir|cerebras.*groq|groq.*cerebras", + "command": "echo BENCHMARK MODE: && echo 'Providers: 13 (12 sovereign + 1 Ollama)' && echo 'Latence avg: Cerebras<200ms Groq<500ms Gemini<1s' && echo 'Pour comparer: specifier les 2 elements a comparer'", + "static": false + }, + { + "name": "proactive_alerts", + "triggers": "alertes.*proactives|alertes.*proactive|surveillance|monitoring|veille|watchdog|alertes.*actives", + "command": "echo PROACTIVE MONITORING: && echo 'Watchdog FPM: actif (*/1min)' && echo 'NonReg daily: actif (5h)' && echo 'Learning nightly: actif (5h)' && echo 'Sync: actif (*/5min)' && echo 'Telegram: bot 8544624912' && echo 'Uptime-Kuma: http://127.0.0.1:3088' && curl -s --max-time 2 http://127.0.0.1:3088 -o /dev/null -w 'Kuma: HTTP %{http_code}' 2>/dev/null", + "static": false + }, + { + "name": "export_data", + "triggers": "export|telecharge|download|csv|excel|dump.*donnees", + "command": "echo EXPORT DISPONIBLE: && echo 'Ethica HCPs: pg_dump (53MB)' && echo 'WEVADS accounts: pg_dump S95' && echo 'Git history: git log --format=csv' && echo 'NR results: /api/nonreg-api.php?cat=all' && echo 'L99 data: /api/l99-api.php?action=stats'", + "static": false + }, + { + "name": "auto_doc", + "triggers": "documentation.*genere|documente|genere.*doc|wiki.*genere|readme", + "command": "echo AUTO-DOC: && echo 'Wiki: /opt/weval-ops/wiki/' && ls /opt/weval-ops/wiki/ 2>/dev/null | wc -l && echo 'articles' && echo 'Vault: /opt/wevads/vault/' && ls /opt/wevads/vault/ 2>/dev/null | wc -l && echo 'GOLDs' && echo 'API docs: 15 endpoints documentes'", + "static": false + }, + { + "name": "optimize_system", + "triggers": "optimise|optimisation|accelere|ameliore.*perf|tune|tuning", + "command": "echo OPTIMIZATION: && echo 'FPM: pm.max_children=' && grep max_children /etc/php/8.5/fpm/pool.d/*.conf 2>/dev/null | head -2 && echo 'OPcache:' && php -i 2>/dev/null | grep opcache.enable | head -1 && echo 'Redis:' && redis-cli info memory 2>/dev/null | grep used_memory_human", + "static": false + }, + { + "name": "self_heal", + "triggers": "repare toi|self heal|auto repair", + "command": "curl -s http://127.0.0.1/api/sync-exec.php", + "static": false + }, + { + "name": "benchmark_perf", + "triggers": "benchmark|performance test", + "command": "curl -so/dev/null -w 'TIME:%{time_total}s' http://127.0.0.1/api/nonreg-api.php?cat=all", + "static": false + }, + { + "name": "log_errors", + "triggers": "erreurs logs|log errors|nginx errors", + "command": "tail -n5 /var/log/nginx/error.log", + "static": false + }, + { + "name": "deerflow_health", + "triggers": "deerflow health|deerflow status", + "command": "curl -s --max-time 5 http://127.0.0.1:8088/health || echo DOWN", + "static": false + }, + { + "name": "backup_vault_status", + "triggers": "backup status|etat sauvegardes", + "command": "ls -t /opt/wevads/vault/ | head -3", + "static": false + }, + { + "name": "network_check", + "triggers": "test network|test connectivite", + "command": "echo S95:$(curl -so/dev/null -w%{http_code} --max-time 3 http://10.1.0.3:5890/api/sentinel-brain.php?action=exec\\&cmd=echo+ok)", + "static": false + }, + { + "name": "git_history", + "triggers": "historique git|git history|derniers commits", + "command": "cd /var/www/html && git log --oneline -10", + "static": false + }, + { + "name": "wiki_count", + "triggers": "wiki count|articles wiki", + "command": "find /opt/weval-l99/wiki -name '*.md' | wc -l", + "static": false + }, + { + "name": "memory_usage", + "triggers": "memoire usage|ram usage|memory status", + "command": "free -h | head -2", + "static": false + }, + { + "name": "ssl_expiry", + "triggers": "ssl expire|certificat ssl", + "command": "echo | openssl s_client -servername weval-consulting.com -connect 127.0.0.1:443 2>/dev/null | openssl x509 -noout -enddate", + "static": false + }, + { + "name": "top_processes", + "triggers": "top processes|cpu usage", + "command": "ps aux --sort=-%cpu | head -6", + "static": false + }, + { + "name": "ethica_enrichment", + "triggers": "enrichissement ethica|scraping status", + "command": "tail -3 /var/log/ethica-richscraper.log", + "static": false + }, + { + "name": "consent_optins", + "triggers": "consent optins|combien optins", + "command": "curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20count(*)%20FROM%20ethica.consent_log\"'", + "static": false + }, + { + "name": "mattermost_health", + "triggers": "mattermost status|mm status", + "command": "curl -so/dev/null -w%{http_code} --max-time 3 https://mm.weval-consulting.com", + "static": false + }, + { + "name": "listmonk_status", + "triggers": "listmonk status|listmonk health", + "command": "curl -so/dev/null -w%{http_code} --max-time 3 http://127.0.0.1:9000", + "static": false + }, + { + "name": "lean_6sigma_report", + "triggers": "rapport 6sigma|6sigma report|lean report", + "command": "echo NR:$(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"pass\"],\"/\",json.load(open(\"/dev/stdin\"))[\"total\"])' 2>/dev/null || echo ?) INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json)", + "static": false + }, + { + "name": "email_gap_ethica", + "triggers": "email gap|gap ethica|couverture email", + "command": "curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=psql%20-Uadmin%20adx_system%20-tc%20\"SELECT%20pays,count(*)%20total,count(email)%20emails%20FROM%20ethica.medecins_real%20GROUP%20BY%20pays\"'", + "static": false + }, + { + "name": "platform_kpis", + "triggers": "kpis|indicateurs plateforme|dashboard kpi", + "command": "echo PAGES:$(find /var/www/html -maxdepth 1 -name '*.html' | wc -l) TOOLS:$(grep -c name /var/www/html/api/wevia-tool-registry.json) INTENTS:$(grep -c name /opt/wevia-brain/priority-intents-nl.json) DOCKER:$(docker ps -q | wc -l)", + "static": false + }, + { + "name": "uptime_all", + "triggers": "uptime global|uptime tous serveurs", + "command": "echo S204:$(uptime -p) S95:$(curl -s 'http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=uptime%20-p' 2>/dev/null | python3 -c 'import sys,json;print(json.load(sys.stdin).get(\"output\",\"?\"))' 2>/dev/null)", + "static": false + }, + { + "name": "file_search", + "triggers": "trouve.*fichiers|cherche.*fichiers|fichiers.*modifi|localise.*fichier|find.*file|fichiers.*recent", + "command": "echo 'Specify: find /var/www/html -name \"PATTERN\" -type f' && echo RECENT: && find /var/www/html -name '*.php' -mmin -60 -type f 2>/dev/null | head -10", + "static": false + }, + { + "name": "file_read", + "triggers": "lis.*fichier|montre.*contenu|cat.*fichier|affiche.*fichier|contenu.*de", + "command": "echo 'FILE READ: specify path' && echo LAST_MODIFIED: && ls -lt /var/www/html/api/*.php 2>/dev/null | head -5", + "static": false + }, + { + "name": "file_edit", + "triggers": "modifie.*fichier|edit.*file|change.*dans|remplace.*dans|sed.*fichier", + "command": "echo 'FILE EDIT: Use auto-wire or direct command' && echo 'Pattern: sed -i \"s/OLD/NEW/g\" FILE' && echo 'Safety: GOLD backup + php -l validation + chattr +i'", + "static": false + }, + { + "name": "code_lint", + "triggers": "lint|syntaxe|erreur.*code|valide.*code|php.*lint|check.*code", + "command": "echo PHP_LINT: && find /var/www/html/api -name '*.php' -mmin -120 -exec php -l {} \\; 2>&1 | grep -v 'No syntax' | head -10 && echo '(only recent files checked)'", + "static": false + }, + { + "name": "git_log", + "triggers": "historique.*git|git.*log|derniers.*commits|qui.*commite|changelog", + "command": "cd /var/www/html && git log --oneline --since='24 hours ago' | head -15", + "static": false + }, + { + "name": "git_diff", + "triggers": "diff.*git|changements.*git|modifications.*recentes|git.*diff|quoi.*change", + "command": "cd /var/www/html && git diff --stat HEAD~3 2>/dev/null | tail -10", + "static": false + }, + { + "name": "screenshot_page", + "triggers": "screenshot|capture.*ecran|capture.*page|prends.*photo|snapshot", + "command": "echo SCREENSHOTS: $(ls /var/www/html/screenshots/ 2>/dev/null | wc -l) disponibles && echo LAST: && ls -lt /var/www/html/screenshots/ 2>/dev/null | head -3 && echo 'Playwright: npx playwright screenshot URL'", + "static": false + }, + { + "name": "browser_check", + "triggers": "pages.*accessible|page.*accessible|teste.*pages|verifie.*pages|urls.*marche|sites.*marchent", + "command": "for u in weval-consulting.com/wevia-master.html weval-consulting.com/wevia.html weval-consulting.com/ethica-hub.html; do echo -n \"$u: \"; curl -sk -o /dev/null -w '%{http_code} %{time_total}s' --max-time 5 https://$u 2>/dev/null; echo; done", + "static": false + }, + { + "name": "task_create", + "triggers": "cree.*tache|nouvelle.*tache|ajoute.*tache|todo|task.*create", + "command": "echo TASK SYSTEMS: && echo 'Paperclip: 890 agents' && echo 'Twenty CRM: deals/tasks' && echo 'n8n: workflow automation' && echo 'Pour creer: specifier titre + assignee + deadline'", + "static": false + }, + { + "name": "workflow_run", + "triggers": "lance.*workflow|execute.*workflow|automatise|n8n.*lance|workflow.*n8n", + "command": "echo N8N WORKFLOWS: && curl -s http://127.0.0.1:5678/api/v1/workflows 2>/dev/null | python3 -c \"import sys,json;d=json.load(sys.stdin);wf=d.get('data',[]);print(len(wf),'workflows');[print(' ',w['name'][:40],w.get('active','?')) for w in wf[:5]]\" 2>/dev/null || echo 'N8N: port 5678'", + "static": false + }, + { + "name": "mcp_status", + "triggers": "mcp|model.*context|connecteurs|integrations.*externes|services.*externes", + "command": "echo MCP EQUIVALENTS (internes): && echo 'SearXNG: search (port 8080)' && echo 'Qdrant: vector DB (port 6333)' && echo 'Ollama: embeddings (port 11434)' && echo 'Redis: cache (port 6379)' && echo 'PostgreSQL: DB (S95:5432)' && echo 'n8n: workflows (port 5678)' && echo 'Mattermost: chat (port 8065)' && echo 'Telegram: bot API' && echo 'GitHub: PAT ghp_Uhh8...'", + "static": false + }, + { + "name": "self_improve", + "triggers": "ameliore.*toi|auto.*amelioration|self.*improve|deviens.*meilleur|evolue", + "command": "echo SELF-IMPROVEMENT: && echo 'Learning log: '$(wc -l /var/log/wevia/requests-all.jsonl 2>/dev/null | cut -d' ' -f1)' requests' && echo 'Unmatched: '$(wc -l /var/log/wevia/unmatched.jsonl 2>/dev/null | cut -d' ' -f1 || echo 0)' queries' && echo 'NL intents: '$(python3 -c 'import json;print(len(json.load(open(\"/opt/wevia-brain/priority-intents-nl.json\"))))') && echo 'Auto-wire: ACTIF' && echo 'Learn cron: 5h nightly' && echo 'Fine-tune: Kaggle T4 (a lancer)'", + "static": false + }, + { + "name": "self_benchmark", + "triggers": "benchmark.*toi|teste.*toi|auto.*test|self.*test|mesure.*perf", + "command": "echo SELF-BENCHMARK: && START=$(date +%s%N) && curl -s http://127.0.0.1/api/nonreg-api.php?cat=all -o /dev/null && END=$(date +%s%N) && echo NR_LATENCY: $(( (END-START)/1000000 ))ms && echo NR: $(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])') && echo L99: $(curl -s http://127.0.0.1/api/l99-api.php?action=stats | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"])')", + "static": false + }, + { + "name": "top_ia_multimodal_vision", + "triggers": "vision|image|ocr|gemini.vision", + "command": "/opt/weval-ops/top-ia/TOP_IA_MULTIMODAL_VISION.py", + "static": false + }, + { + "name": "nettoie_crm", + "triggers": "nettoie crm", + "command": "psql delete from pipeline_deals where status=expired", + "static": false + }, + { + "name": "fix_login_ux", + "triggers": "fix login|corrige login|spinner authentik|logout fantome|login ux", + "command": "echo fix_login_ux routed via GOLD+patch+nonreg", + "static": false + }, + { + "name": "playwright_screenshot", + "triggers": "screenshot playwright|capture playwright|test visuel login", + "command": "node /opt/weval-ops/pw_screenshot_generic.js", + "static": false + }, + { + "name": "full_health_check", + "triggers": "health check complet|etat systeme global|diag full|systeme ok|sante globale", + "command": "echo HEALTH: && echo NR: $(curl -s http://127.0.0.1/api/nonreg-api.php?cat=all 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"summary\"][\"pass\"],\"/\",d[\"summary\"][\"total\"])') && echo L99: $(curl -s http://127.0.0.1/api/l99-api.php?action=stats 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d[\"pass\"],\"/\",d[\"total\"],\"(\",d[\"score\"],\"%)\")') && echo GIT: $(cd /var/www/html && sudo git log --oneline -1)", + "static": false + }, + { + "name": "deploy_and_nonreg", + "triggers": "deploy et nonreg|deploy avec verif|deploy safe|deploy+nonreg", + "command": "echo DEPLOY_NONREG_WORKFLOW: 1-sudo chattr -i TARGET 2-sudo cp SOURCE TARGET 3-sudo chown www-data:www-data TARGET 4-curl nonreg-api verify 153/153 5-if fail rollback from GOLD", + "static": false + }, + { + "name": "fix_and_verify", + "triggers": "fix et verifie|corrige puis teste|fix+verify|corrige et nonreg", + "command": "echo FIX_VERIFY_WORKFLOW: 1-GOLD backup avant modif 2-apply patch 3-lint syntax check 4-sudo cp deploy 5-curl nonreg verify 153/153 6-curl l99 verify no new fails 7-if regression rollback from GOLD", + "static": false + }, + { + "name": "test_check_42", + "triggers": "check42", + "command": "echo 42_OK", + "static": false + }, + { + "name": "hf_inference", + "triggers": "hf[\\s_-]inference|huggingface[\\s_-]test|hf[\\s_-]zero[\\s_-]gpu|run[\\s_-]huggingface|hf[\\s_-]status|huggingface[\\s_-]status", + "command": "curl -s \"http://localhost/api/gpu-free-stack.php\" --max-time 10 | jq -r '.backends.huggingface | \"HF \" + .status + \" - \" + .user + \" - \" + .free_resource'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078289", + "triggers_updated_at": "2026-04-24T14:28:01.950726" + }, + { + "name": "kaggle_run_finetune", + "triggers": "kaggle[\\s_-]finetune|run[\\s_-]kaggle|kaggle[\\s_-]fine[\\s_-]tune|kaggle[\\s_-]t4|kaggle[\\s_-]notebook|kaggle[\\s_-]status", + "command": "curl -s \"http://localhost/api/gpu-free-stack.php\" --max-time 10 | jq -r '.backends.kaggle | \"Kaggle \" + .status + \" - script:\" + (.script_exists|tostring) + \" - proofs:\" + (.proofs_count|tostring) + \" - \" + .free_resource'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078312", + "triggers_updated_at": "2026-04-24T14:28:01.950750" + }, + { + "name": "offload_backup_s95", + "triggers": "offload[\\s_-]backup[\\s_-]s95|backup[\\s_-]to[\\s_-]s95|s95[\\s_-]backup|deport[\\s_-]backup[\\s_-]s95|s95[\\s_-]disk[\\s_-]status|s95[\\s_-]storage", + "command": "curl -s -X POST https://wevads.weval-consulting.com/api/sentinel-brain.php --data-urlencode action=exec --data-urlencode cmd=\"df -h / | tail -1\" --max-time 10 | jq -r '.output | \"S95 disk: \" + .'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078332", + "triggers_updated_at": "2026-04-24T14:28:01.950787" + }, + { + "name": "scraper_ethica_s95", + "triggers": "scraper[\\s_-]ethica|scraper[\\s_-]ethica[\\s_-]s95|scraper[\\s_-]ethica[\\s_-]status|scraper[\\s_-]hcp|scraper[\\s_-]hcps|s95[\\s_-]scraper|hcp[\\s_-]scraper|check[\\s_-]scraper[\\s_-]ethica|scraping[\\s_-]ethica|scraper[\\s_-]status[\\s_-]s95", + "command": "curl -s -X POST https://wevads.weval-consulting.com/api/sentinel-brain.php --data-urlencode action=exec --data-urlencode cmd=\"systemctl status scraper-ethica 2>/dev/null | head -3 | tail -1\" --max-time 10 | jq -r '.output | \"Scraper: \" + .'", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078344", + "triggers_updated_at": "2026-04-24T14:38:36.263036" + }, + { + "name": "test_offload_all_parallel", + "triggers": "test[\\s_-]offload[\\s_-]all|multi[\\s_-]offload|offload[\\s_-]intents|exploit[\\s_-]s95[\\s_-]kaggle[\\s_-]hf|offload[\\s_-]multi[\\s_-]agent|offload[\\s_-]4|test[\\s_-]4[\\s_-]offloads|offload[\\s_-]gpu[\\s_-]free|s95[\\s_-]offload[\\s_-]full|optimise[\\s_-]stockage[\\s_-]s95[\\s_-]full", + "command": "bash /opt/weval-ops/opus-intents/opus-offload-parallel.sh", + "static": false, + "activated_from_pending": true, + "activated_at": "2026-04-24T14:20:18.078366", + "triggers_updated_at": "2026-04-24T14:28:01.950829" + }, + { + "name": "opus_disaster_deep_clean_async", + "triggers": "deep_clean|disaster_deep|aggressive_disk|disk_deep|cleanup_aggressive|nettoyage_profond", + "command": "/opt/weval-ops/opus-intents/async-exec.sh /opt/weval-ops/opus-intents/opus-disaster-recovery.sh deep", + "static": false + }, + { + "name": "disk_audit_top", + "triggers": "disk_audit|disk_top|top_dirs|disk_where|gros_dossiers|audit_disk|disque_ou", + "command": "bash /opt/weval-ops/opus-intents/disk-audit.sh top", + "static": false + }, + { + "name": "disk_audit_detail_async", + "triggers": "audit_opt|disk_opt|audit_docker_disk|disk_docker|docker_images_size|audit_disk_full", + "command": "/opt/weval-ops/opus-intents/async-exec.sh /opt/weval-ops/opus-intents/disk-audit.sh all", + "static": false + }, + { + "name": "wevia_job_list", + "triggers": "job_list|jobs_list|list_jobs|async_jobs|tail_job|dernier_job|derniers_jobs", + "command": "bash /opt/weval-ops/opus-intents/job-list.sh", + "static": false + } +] \ No newline at end of file diff --git a/ops-scripts/opus-intents/async-exec.sh b/ops-scripts/opus-intents/async-exec.sh new file mode 100755 index 000000000..a37424648 --- /dev/null +++ b/ops-scripts/opus-intents/async-exec.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# async-exec.sh - lance cmd en nohup, retourne job info immédiatement +# Usage: async-exec.sh +CMD="$*" +JOBID="$(date +%Y%m%d-%H%M%S)-$$" +LOG="/tmp/wevia-job-${JOBID}.log" +echo "=== ASYNC JOB LAUNCHED ===" +echo "job_id: ${JOBID}" +echo "log: ${LOG}" +echo "cmd: ${CMD}" +nohup bash -c "$CMD" > "$LOG" 2>&1 & +PID=$! +disown $PID 2>/dev/null +echo "pid: ${PID}" +echo "--- Tapez 'job_list' dans 30-60s pour voir résultat ---" diff --git a/ops-scripts/opus-intents/job-list.sh b/ops-scripts/opus-intents/job-list.sh new file mode 100755 index 000000000..55d8a7647 --- /dev/null +++ b/ops-scripts/opus-intents/job-list.sh @@ -0,0 +1,18 @@ +#!/bin/bash +echo "=== WEVIA JOBS (5 derniers) ===" +ls -lt /tmp/wevia-job-*.log 2>/dev/null | head -5 +echo +LATEST=$(ls -t /tmp/wevia-job-*.log 2>/dev/null | head -1) +if [ -n "$LATEST" ]; then + echo "=== LATEST OUTPUT ($LATEST) ===" + tail -40 "$LATEST" + echo + PID_FILE=$(basename "$LATEST" .log | sed 's/wevia-job-//') + if pgrep -f "${PID_FILE}" >/dev/null 2>&1; then + echo "[STATE] RUNNING" + else + echo "[STATE] FINISHED" + fi +else + echo "aucun job" +fi