diff --git a/api/wevia-tool-registry.json b/api/wevia-tool-registry.json index 227a47540..0d345aad7 100644 --- a/api/wevia-tool-registry.json +++ b/api/wevia-tool-registry.json @@ -3,52 +3,62 @@ { "id": "business_kpi_dashboard_url", "kw": "dashboard.*business|saas.*dashboard|business.*dashboard.*url", - "cmd": "echo 'Business KPI Dashboard V83: https://weval-consulting.com/business-kpi-dashboard.php'; echo 'Catalog: 7 categories, 56 KPIs (24 OK, 11 WARN, 21 WIRE_NEEDED)'" + "cmd": "echo 'Business KPI Dashboard V83: https://weval-consulting.com/business-kpi-dashboard.php'; echo 'Catalog: 7 categories, 56 KPIs (24 OK, 11 WARN, 21 WIRE_NEEDED)'", + "exec": true }, { "id": "v83_orchestrate_match", "kw": "orchestrate|multi.*agent.*match|trouve.*agents|find.*agents.*for", - "cmd": "Q=$(echo \"$1\" | sed -E 's/^(orchestrate|multi agent match|trouve agents|find agents for) //i'); curl -sk --max-time 15 \"http://127.0.0.1/api/wevia-v83-multi-agent-orchestrator.php?action=match&q=${Q}\" -H 'Host: weval-consulting.com' | jq '{query, match_count, matches: {agents: .matches.agents[:3], resolvers: .matches.resolvers[:3], blade_tasks: .matches.blade_tasks[:3]}}'" + "cmd": "Q=$(echo \"$1\" | sed -E 's/^(orchestrate|multi agent match|trouve agents|find agents for) //i'); curl -sk --max-time 15 \"http://127.0.0.1/api/wevia-v83-multi-agent-orchestrator.php?action=match&q=${Q}\" -H 'Host: weval-consulting.com' | jq '{query, match_count, matches: {agents: .matches.agents[:3], resolvers: .matches.resolvers[:3], blade_tasks: .matches.blade_tasks[:3]}}'", + "exec": true }, { "id": "v83_multi_agent_catalog", "kw": "multi.*agent.*catalog|agents.*available|orchestrable|6839|orchestrate.*catalog", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-multi-agent-orchestrator.php?action=catalog' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-multi-agent-orchestrator.php?action=catalog' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v83_kpi_actionable", "kw": "kpi.*actionable|actions.*wire|what.*to.*wire|priority.*wire|next.*kpi", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=actionable' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=actionable' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v83_predictive_kpi", "kw": "predictive.*kpi|wepredict.*kpi|forecast|prediction.*kpi|churn.*risk", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=predictive' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=predictive' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v83_engagement_kpi", "kw": "engagement.*kpi|dau|mau|active.*user|product.*engagement", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=engagement' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=engagement' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v83_growth_kpi", "kw": "growth.*kpi|marketing.*kpi|mql|sql|conversion.*rate|email.*deliverability", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=growth' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=growth' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v83_customer_success", "kw": "customer.*success|churn|nps|csat|retention|health.*score", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=customer_success' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=customer_success' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v83_revenue_kpi", "kw": "revenue|mrr|arr|ltv|cac|pipeline.*value", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=revenue' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=category&cat=revenue' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v83_business_kpi_summary", "kw": "business.*kpi|kpi.*business|saas.*kpi|customer.*kpi|revenue.*kpi", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=summary' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v83-business-kpi.php?action=summary' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "blade_latest_renewals", @@ -58,47 +68,56 @@ { "id": "blade_heartbeat_status", "kw": "blade.*heartbeat|blade.*status|blade.*alive|blade.*pc", - "cmd": "echo '=== BLADE HEARTBEAT STATUS ==='; HB=/var/www/html/api/blade-tasks/heartbeat.json; if [ -f \"$HB\" ]; then AGE=$(( $(date +%s) - $(stat -c %Y $HB) )); echo \"Last heartbeat: ${AGE}s ago\"; cat $HB | jq .; else echo 'heartbeat.json missing'; fi" + "cmd": "echo '=== BLADE HEARTBEAT STATUS ==='; HB=/var/www/html/api/blade-tasks/heartbeat.json; if [ -f \"$HB\" ]; then AGE=$(( $(date +%s) - $(stat -c %Y $HB) )); echo \"Last heartbeat: ${AGE}s ago\"; cat $HB | jq .; else echo 'heartbeat.json missing'; fi", + "exec": true }, { "id": "v82_tips_search", "kw": "tips.*search|search.*tips|find.*tip", - "cmd": "Q=$(echo \"$1\" | sed 's/tips.*search //' | sed 's/search.*tips //'); curl -sk --max-time 10 \"http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=search&q=${Q}\" -H 'Host: weval-consulting.com' | jq ." + "cmd": "Q=$(echo \"$1\" | sed 's/tips.*search //' | sed 's/search.*tips //'); curl -sk --max-time 10 \"http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=search&q=${Q}\" -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v82_tips_opus", "kw": "tips.*opus|opus.*mythos|doctrine.*opus|opus.*4.6", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=opus46_mythos' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=opus46_mythos' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v82_tips_webai", "kw": "tips.*web.*ai|deepseek.*web|free.*web.*ai|cookies.*ai", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=web_ai_free_tier' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=web_ai_free_tier' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v82_tips_office", "kw": "tips.*office|office.*recovery|o365.*tips|tenant.*reactiv", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=office_recovery' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=office_recovery' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v82_tips_tokens", "kw": "tips.*token|token.*renewal|how.*renew.*token|renew.*token.*auto", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=token_renewal' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=token_renewal' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v82_tips_cyber", "kw": "tips.*cyber|cyber.*tips|selenium.*tips|playwright.*tips", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=cyber_selenium' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=category&cat=cyber_selenium' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v82_tips_full", "kw": "tips.*full|tips.*details|tips.*complet|all.*tips|tips.*list.*full", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=full' -H 'Host: weval-consulting.com' | jq '.catalog | to_entries[] | \"=== \" + .value.icon + \" \" + .value.title + \" ===\", (.value.tips[] | \" - \" + .name + \" [\" + .status + \"]\")' -r" + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=full' -H 'Host: weval-consulting.com' | jq '.catalog | to_entries[] | \"=== \" + .value.icon + \" \" + .value.title + \" ===\", (.value.tips[] | \" - \" + .name + \" [\" + .status + \"]\")' -r", + "exec": true }, { "id": "v82_tips_summary", "kw": "tips.*catalog|tips.*summary|6.*mois.*tips|tips.*6.*months|tricks.*catalog|tips.*available", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=summary' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v82-tips-catalog.php?action=summary' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "ai_governance_score", @@ -118,77 +137,92 @@ { "id": "v81_ai_audit_summary", "kw": "v81.*summary|audit.*score|ia.*audit.*status", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v81-ai-audit-100.php?action=summary' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-v81-ai-audit-100.php?action=summary' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v81_ai_audit_run", "kw": "ai.*audit|audit.*ia|100.*points|audit.*weviamaster|audit.*complete.*ia|ai.*governance", - "cmd": "timeout 55 curl -sk --max-time 50 'http://127.0.0.1/api/wevia-v81-ai-audit-100.php?action=run' -H 'Host: weval-consulting.com' | jq -c '{version, total, passed, failed, score, by_category}'" + "cmd": "timeout 55 curl -sk --max-time 50 'http://127.0.0.1/api/wevia-v81-ai-audit-100.php?action=run' -H 'Host: weval-consulting.com' | jq -c '{version, total, passed, failed, score, by_category}'", + "exec": true }, { "id": "v81_capabilities_full", "kw": "playbook|doctrine.*61|weval.*capabilities.*full|catalog.*capabilities", - "cmd": "echo '=== WEVIA Capabilities Playbook (Doctrine 61) ==='; cat /opt/obsidian-vault/doctrines/61-wevia-capabilities-playbook.md | head -80" + "cmd": "echo '=== WEVIA Capabilities Playbook (Doctrine 61) ==='; cat /opt/obsidian-vault/doctrines/61-wevia-capabilities-playbook.md | head -80", + "exec": true }, { "id": "v81_faq", "kw": "^faq$|faq.*wevia|questions.*frequentes|known.*issues|points.*fragiles|regression.*hotspots", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-capabilities-faq-v81.php?action=faq' -H 'Host: weval-consulting.com' | jq -r '.faq[] | \"Q: \\(.q)\\nA: \\(.a)\\n\"'" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-capabilities-faq-v81.php?action=faq' -H 'Host: weval-consulting.com' | jq -r '.faq[] | \"Q: \\(.q)\\nA: \\(.a)\\n\"'", + "exec": true }, { "id": "v81_capabilities_detail", "kw": "capabilities.*detail|capability.*category|ops.*category|detail.*autonomie", - "cmd": "CAT=$(echo '$MSG' | grep -oE 'cloudflare|remote_gpu|email|google|blade|arena|cyber|infra|dev|l99|claude_sync' | head -1); if [ -z \"$CAT\" ]; then CAT='cloudflare'; fi; curl -sk --max-time 10 \"http://127.0.0.1/api/wevia-capabilities-faq-v81.php?action=detail&category=$CAT\" -H 'Host: weval-consulting.com' | jq '.detail'" + "cmd": "CAT=$(echo '$MSG' | grep -oE 'cloudflare|remote_gpu|email|google|blade|arena|cyber|infra|dev|l99|claude_sync' | head -1); if [ -z \"$CAT\" ]; then CAT='cloudflare'; fi; curl -sk --max-time 10 \"http://127.0.0.1/api/wevia-capabilities-faq-v81.php?action=detail&category=$CAT\" -H 'Host: weval-consulting.com' | jq '.detail'", + "exec": true }, { "id": "v81_capabilities_list", "kw": "capabilities|autonomie.*liste|quoi.*tu.*sais.*faire|que.*peut.*weviamaster|what.*can.*you.*do|wevia.*tu.*peux", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-capabilities-faq-v81.php?action=summary' -H 'Host: weval-consulting.com' | jq '{summary, categories_list: [.categories | to_entries[] | \"[\\(.key)] \\(.value.label) (\\(.value.count) ops)\"]}'" + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-capabilities-faq-v81.php?action=summary' -H 'Host: weval-consulting.com' | jq '{summary, categories_list: [.categories | to_entries[] | \"[\\(.key)] \\(.value.label) (\\(.value.count) ops)\"]}'", + "exec": true }, { "id": "boardflow_status", "kw": "boardflow.*status|miro.*status|mirofish", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=drill&product=boardflow' -H 'Host: weval-consulting.com' | jq '.product'" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=drill&product=boardflow' -H 'Host: weval-consulting.com' | jq '.product'", + "exec": true }, { "id": "scout_status", "kw": "scout.*status|scout.*ai.*status|veille.*concurrentielle", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=drill&product=scout_ai' -H 'Host: weval-consulting.com' | jq '.product'" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=drill&product=scout_ai' -H 'Host: weval-consulting.com' | jq '.product'", + "exec": true }, { "id": "wepredict_status", "kw": "wepredict|predict.*status|predictive.*heal", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=drill&product=we_predict' -H 'Host: weval-consulting.com' | jq '.product'" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=drill&product=we_predict' -H 'Host: weval-consulting.com' | jq '.product'", + "exec": true }, { "id": "v80_products_drill", "kw": "drill.*down|drill.*product|explore.*product|details.*product", - "cmd": "echo 'V80 Drill-down dashboard: https://weval-consulting.com/products-kpi-dashboard.php'; echo ''; echo 'Products tracked (12):'; curl -sk --max-time 8 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=list' -H 'Host: weval-consulting.com' | jq -r '.names[] | \" - \" + .'" + "cmd": "echo 'V80 Drill-down dashboard: https://weval-consulting.com/products-kpi-dashboard.php'; echo ''; echo 'Products tracked (12):'; curl -sk --max-time 8 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=list' -H 'Host: weval-consulting.com' | jq -r '.names[] | \" - \" + .'", + "exec": true }, { "id": "v80_products_kpi_summary", "kw": "products.*kpi|v80.*kpi|produits.*kpi|kpi.*produits|wepredict|scout.*ai", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=summary' -H 'Host: weval-consulting.com' | jq '{summary, products_count: (.products | length), products_names: [.products | to_entries[] | .value.name]}'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-products-kpi-v80.php?action=summary' -H 'Host: weval-consulting.com' | jq '{summary, products_count: (.products | length), products_names: [.products | to_entries[] | .value.name]}'", + "exec": true }, { "id": "v79_cf_token_status", "kw": "cf.*token.*status|cloudflare.*token.*status|cf.*expired", - "cmd": "CF=$(grep '^CF_API_TOKEN=' /etc/weval/secrets.env | cut -d= -f2-); RESP=$(curl -sk --max-time 10 'https://api.cloudflare.com/client/v4/user/tokens/verify' -H \"Authorization: Bearer $CF\"); echo \"$RESP\" | jq -c '{success, status: .result.status, message: .errors}'; echo ''; echo 'If expired: Yacine must regenerate at https://dash.cloudflare.com/profile/api-tokens (token cannot be renewed via API for security)'" + "cmd": "CF=$(grep '^CF_API_TOKEN=' /etc/weval/secrets.env | cut -d= -f2-); RESP=$(curl -sk --max-time 10 'https://api.cloudflare.com/client/v4/user/tokens/verify' -H \"Authorization: Bearer $CF\"); echo \"$RESP\" | jq -c '{success, status: .result.status, message: .errors}'; echo ''; echo 'If expired: Yacine must regenerate at https://dash.cloudflare.com/profile/api-tokens (token cannot be renewed via API for security)'", + "exec": true }, { "id": "v79_docker_health_audit", "kw": "docker.*health|docker.*healthcheck|container.*health", - "cmd": "echo '=== Docker Health Audit ==='; docker ps --format '{{.Names}}\\t{{.Status}}' | head -20; echo ''; echo 'Healthy: '$(docker ps --filter 'health=healthy' -q | wc -l)'/'$(docker ps -q | wc -l); echo 'Without healthcheck: '$(docker ps --format '{{.Names}}' | while read n; do if ! docker inspect \"$n\" | grep -q '\"Healthcheck\"'; then echo \"$n\"; fi; done | head -10)" + "cmd": "echo '=== Docker Health Audit ==='; docker ps --format '{{.Names}}\\t{{.Status}}' | head -20; echo ''; echo 'Healthy: '$(docker ps --filter 'health=healthy' -q | wc -l)'/'$(docker ps -q | wc -l); echo 'Without healthcheck: '$(docker ps --format '{{.Names}}' | while read n; do if ! docker inspect \"$n\" | grep -q '\"Healthcheck\"'; then echo \"$n\"; fi; done | head -10)", + "exec": true }, { "id": "v79_kpi_wire_to_v64", "kw": "wire.*v64|v79.*wire|kpi.*overlay|overlay.*departments", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-v79-kpi-pipeline.php?action=wire_to_v64' -H 'Host: weval-consulting.com' | jq -c '{version, updated_kpis, dept_count: (.departments | length)}'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-v79-kpi-pipeline.php?action=wire_to_v64' -H 'Host: weval-consulting.com' | jq -c '{version, updated_kpis, dept_count: (.departments | length)}'", + "exec": true }, { "id": "v79_kpi_compute", "kw": "v79.*kpi|real.*kpi|kpi.*compute|kpi.*live|kpi.*pipeline|compute.*kpi", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-v79-kpi-pipeline.php?action=compute' -H 'Host: weval-consulting.com' | jq -c '{version, count: .computed_kpis_count, kpis: .kpis}'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-v79-kpi-pipeline.php?action=compute' -H 'Host: weval-consulting.com' | jq -c '{version, count: .computed_kpis_count, kpis: .kpis}'", + "exec": true }, { "id": "wevia_finalize_session", @@ -198,7 +232,8 @@ { "id": "cloudflare_purge_cache", "kw": "cloudflare.*purge|cf.*purge|purge.*cache|cache.*clear.*cloudflare", - "cmd": "CF_EMAIL=$(grep '^CF_EMAIL=' /etc/weval/secrets.env | head -1 | cut -d= -f2 | tr -d \"'\\\"\"); CF_KEY=$(grep '^CF_AI_KEY=' /etc/weval/secrets.env | head -1 | cut -d= -f2 | tr -d \"'\\\"\"); ZONE=$(grep '^CF_ZONE_ID=' /etc/weval/secrets.env | head -1 | cut -d= -f2 | tr -d \"'\\\"\"); RESP=$(curl -sk --max-time 15 -X POST \"https://api.cloudflare.com/client/v4/zones/$ZONE/purge_cache\" -H \"X-Auth-Email: $CF_EMAIL\" -H \"X-Auth-Key: $CF_KEY\" -H \"Content-Type: application/json\" --data '{\"purge_everything\":true}'); SUCCESS=$(echo \"$RESP\" | jq -r .success); if [ \"$SUCCESS\" = \"true\" ]; then echo 'CF_PURGE_OK: cache purged via CF_EMAIL+CF_AI_KEY'; else echo 'CF_PURGE_FAILED:'; echo \"$RESP\" | jq .errors; fi" + "cmd": "CF_EMAIL=$(grep '^CF_EMAIL=' /etc/weval/secrets.env | head -1 | cut -d= -f2 | tr -d \"'\\\"\"); CF_KEY=$(grep '^CF_AI_KEY=' /etc/weval/secrets.env | head -1 | cut -d= -f2 | tr -d \"'\\\"\"); ZONE=$(grep '^CF_ZONE_ID=' /etc/weval/secrets.env | head -1 | cut -d= -f2 | tr -d \"'\\\"\"); RESP=$(curl -sk --max-time 15 -X POST \"https://api.cloudflare.com/client/v4/zones/$ZONE/purge_cache\" -H \"X-Auth-Email: $CF_EMAIL\" -H \"X-Auth-Key: $CF_KEY\" -H \"Content-Type: application/json\" --data '{\"purge_everything\":true}'); SUCCESS=$(echo \"$RESP\" | jq -r .success); if [ \"$SUCCESS\" = \"true\" ]; then echo 'CF_PURGE_OK: cache purged via CF_EMAIL+CF_AI_KEY'; else echo 'CF_PURGE_FAILED:'; echo \"$RESP\" | jq .errors; fi", + "exec": true }, { "id": "cascade_status_all", @@ -208,7 +243,8 @@ { "id": "wevia_fix_all_v77", "kw": "wevia.*fix.*all|repare.*tout|corrige.*tout.*v77|fix.*everything.*v77", - "cmd": "echo '=== V77 WEVIA FIXES APPLIED ==='; echo ''; echo '[1] Incoherences fixed:'; echo ' - training.html: 47 gaps -> 54 gaps (dynamic id added)'; echo ' - 3 pages: HCP count 146694 -> 151709 (current live)'; echo ' - training.html label: V44 -> V77'; echo ''; echo '[2] JS errors fixed (Chrome console):'; echo ' - v66UpdateDormants: data.collections object vs array (defensive)'; echo ' - kpi-l99 textContent null guards'; echo ' - duplicate const r (V76 previous fix)'; echo ' - SVG path Response object (V76 previous fix)'; echo ''; echo '[3] V77 agents created (5, addressing 1323 dormants):'; ls /var/www/html/api/agent-stubs/v77_*.php | wc -l; ls /var/www/html/api/agent-stubs/v77_*.php | xargs -I {} basename {}; echo ''; echo '[4] Test layers:'; for f in nonreg-reg71 v74-e2e v75-deep-e2e v76-chrome-e2e v77-business; do FP=/var/www/html/api/${f}-latest.json; [ -f \"$FP\" ] && echo \" $f: $(jq -r .score $FP)%\"; done" + "cmd": "echo '=== V77 WEVIA FIXES APPLIED ==='; echo ''; echo '[1] Incoherences fixed:'; echo ' - training.html: 47 gaps -> 54 gaps (dynamic id added)'; echo ' - 3 pages: HCP count 146694 -> 151709 (current live)'; echo ' - training.html label: V44 -> V77'; echo ''; echo '[2] JS errors fixed (Chrome console):'; echo ' - v66UpdateDormants: data.collections object vs array (defensive)'; echo ' - kpi-l99 textContent null guards'; echo ' - duplicate const r (V76 previous fix)'; echo ' - SVG path Response object (V76 previous fix)'; echo ''; echo '[3] V77 agents created (5, addressing 1323 dormants):'; ls /var/www/html/api/agent-stubs/v77_*.php | wc -l; ls /var/www/html/api/agent-stubs/v77_*.php | xargs -I {} basename {}; echo ''; echo '[4] Test layers:'; for f in nonreg-reg71 v74-e2e v75-deep-e2e v76-chrome-e2e v77-business; do FP=/var/www/html/api/${f}-latest.json; [ -f \"$FP\" ] && echo \" $f: $(jq -r .score $FP)%\"; done", + "exec": true }, { "id": "v77_agents_new", @@ -218,12 +254,14 @@ { "id": "v77_missing_agents_list", "kw": "agents.*manquants|missing.*agents.*list|v77.*agents.*creer", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=missing_agents' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=missing_agents' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v77_coherence_summary", "kw": "v77.*summary|coherence.*summary|rapport.*probleme|bilan.*incoherence", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=summary' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=summary' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v77_complete_bilan", @@ -233,7 +271,8 @@ { "id": "v77_kpis_optimization", "kw": "v77.*kpi|optimize.*kpi|kpi.*optim|lean6sigma.*kpi", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=kpis' -H 'Host: weval-consulting.com' | jq '.kpis_to_optimize'" + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=kpis' -H 'Host: weval-consulting.com' | jq '.kpis_to_optimize'", + "exec": true }, { "id": "v77_missing_agents_status", @@ -243,32 +282,38 @@ { "id": "v77_scan_summary", "kw": "v77.*summary|scan.*summary|probleme.*resume|issues.*count", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=summary' -H 'Host: weval-consulting.com' | jq '.'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=summary' -H 'Host: weval-consulting.com' | jq '.'", + "exec": true }, { "id": "v77_new_agents_list", "kw": "v77.*agents|nouveaux.*agents|5.*agents.*v77|agent.*dispatcher|rag.*retriever", - "cmd": "for a in v77_skill_agent_dispatcher v77_llm_local_orchestrator v77_automation_planner v77_code_quality_reviewer v77_rag_retriever; do curl -sk --max-time 3 'http://127.0.0.1/api/agent-stubs/'$a'.php' -H 'Host: weval-consulting.com' | jq -c '{agent, category, dormants_addressed, kpi: .kpi.label}'; done" + "cmd": "for a in v77_skill_agent_dispatcher v77_llm_local_orchestrator v77_automation_planner v77_code_quality_reviewer v77_rag_retriever; do curl -sk --max-time 3 'http://127.0.0.1/api/agent-stubs/'$a'.php' -H 'Host: weval-consulting.com' | jq -c '{agent, category, dormants_addressed, kpi: .kpi.label}'; done", + "exec": true }, { "id": "v77_kpis_to_optimize", "kw": "kpi.*optimize|kpi.*optimi|v77.*kpi|kpi.*ameliorer", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=kpis' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=kpis' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "v77_missing_agents", "kw": "agents.*manquant|missing.*agents|dormants.*sans.*agent|creer.*agent", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=missing_agents' -H 'Host: weval-consulting.com' | jq '.missing_agents'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=missing_agents' -H 'Host: weval-consulting.com' | jq '.missing_agents'", + "exec": true }, { "id": "v77_incoherences_detail", "kw": "incoherences.*detail|drift|mismatch|agent.*count.*gap|ui.*stale", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=incoherences_only' -H 'Host: weval-consulting.com' | jq '.incoherences'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=incoherences_only' -H 'Host: weval-consulting.com' | jq '.incoherences'", + "exec": true }, { "id": "v77_agents_list", "kw": "v77.*agents|agents.*v77|5.*agents.*v77|nouveaux.*agents", - "cmd": "echo '=== 5 V77 Agents (1323 dormants addressed) ==='; for a in v77_skill_agent_dispatcher v77_llm_local_orchestrator v77_automation_planner v77_code_quality_reviewer v77_rag_retriever; do curl -sk --max-time 3 \"http://127.0.0.1/api/agent-stubs/$a.php\" -H 'Host: weval-consulting.com' | jq -c '{agent, category, dormants_addressed}'; done" + "cmd": "echo '=== 5 V77 Agents (1323 dormants addressed) ==='; for a in v77_skill_agent_dispatcher v77_llm_local_orchestrator v77_automation_planner v77_code_quality_reviewer v77_rag_retriever; do curl -sk --max-time 3 \"http://127.0.0.1/api/agent-stubs/$a.php\" -H 'Host: weval-consulting.com' | jq -c '{agent, category, dormants_addressed}'; done", + "exec": true }, { "id": "v77_business_status", @@ -278,17 +323,20 @@ { "id": "v77_business_run", "kw": "v77.*business|test.*metier|scenarios.*business|business.*v77|user.*journey", - "cmd": "timeout 90 python3 /opt/weval-nonreg/v77-business-scenarios.py 2>&1 | tail -20" + "cmd": "timeout 90 python3 /opt/weval-nonreg/v77-business-scenarios.py 2>&1 | tail -20", + "exec": true }, { "id": "v77_scan_full", "kw": "scan.*full.*v77|audit.*complet|all.*issues.*detail", - "cmd": "curl -sk --max-time 25 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=scan' -H 'Host: weval-consulting.com' | jq '{summary, issues_count: (.issues|length), incoherences, missing_agents, kpis_to_optimize}'" + "cmd": "curl -sk --max-time 25 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=scan' -H 'Host: weval-consulting.com' | jq '{summary, issues_count: (.issues|length), incoherences, missing_agents, kpis_to_optimize}'", + "exec": true }, { "id": "v77_coherence_scan", "kw": "releve.*probleme|coherence.*scan|v77.*scan|audit.*systeme|trouve.*incoherence", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=scan' -H 'Host: weval-consulting.com' | jq -c '{summary, top_issues: (.issues[:3]), top_incoherence: .incoherences[0], missing_agents_count: (.missing_agents | length), kpis_count: (.kpis_to_optimize | length)}'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-coherence-scan-v77.php?action=scan' -H 'Host: weval-consulting.com' | jq -c '{summary, top_issues: (.issues[:3]), top_incoherence: .incoherences[0], missing_agents_count: (.missing_agents | length), kpis_count: (.kpis_to_optimize | length)}'", + "exec": true }, { "id": "v76_failures_detail", @@ -323,37 +371,44 @@ { "id": "v75_deep_e2e_run", "kw": "v75.*e2e|deep.*e2e|test.*deep|test.*approfondi|31 tests|unit.*integration.*business", - "cmd": "timeout 200 python3 /opt/weval-nonreg/v75-deep-e2e.py 2>&1 | tail -15" + "cmd": "timeout 200 python3 /opt/weval-nonreg/v75-deep-e2e.py 2>&1 | tail -15", + "exec": true }, { "id": "v75_wire_manifest", "kw": "wire.*manifest|wevia.*controls|assets.*addressable|v75.*wire|total.*sous.*control", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=wire' -H 'Host: weval-consulting.com' | jq -c '{version, wevia_master_controls, grand_total}'" + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=wire' -H 'Host: weval-consulting.com' | jq -c '{version, wevia_master_controls, grand_total}'", + "exec": true }, { "id": "v75_products_catalog", "kw": "products.*catalog|101.*products|products.*list|catalog.*produits", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=products' -H 'Host: weval-consulting.com' | jq -c '{total, matched, sample: (.products | .[:15])}'" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=products' -H 'Host: weval-consulting.com' | jq -c '{total, matched, sample: (.products | .[:15])}'", + "exec": true }, { "id": "v75_tools_by_prefix", "kw": "tools.*prefix|tools.*breakdown|541.*tools|resolvers.*list|registry.*analyse", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=tools' -H 'Host: weval-consulting.com' | jq -c '{total_tools, by_prefix, sample: (.sample | .[:5])}'" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=tools' -H 'Host: weval-consulting.com' | jq -c '{total_tools, by_prefix, sample: (.sample | .[:5])}'", + "exec": true }, { "id": "v75_skills_breakdown", "kw": "skills.*breakdown|5651.*skills|skills.*activation|skills.*active", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=skills' -H 'Host: weval-consulting.com' | jq -c '{total, active, dormant, activation_rate}'" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=skills' -H 'Host: weval-consulting.com' | jq -c '{total, active, dormant, activation_rate}'", + "exec": true }, { "id": "v75_dormants_priority", "kw": "dormants.*priority|dormants.*top|762.*dormants|by_need|skill_agent", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=dormants' -H 'Host: weval-consulting.com' | jq -c '{total, by_status, priority_top: (.priority_order | .[:10])}'" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=dormants' -H 'Host: weval-consulting.com' | jq -c '{total, by_status, priority_top: (.priority_order | .[:10])}'", + "exec": true }, { "id": "v75_orchestration_summary", "kw": "v75.*summary|orchestration.*summary|grand.*total.*assets|7100|wevia.*contr", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=summary' -H 'Host: weval-consulting.com' | jq -c '{version, grand_total_assets, dormants: .dormants, skills: .skills, tools: .tools, products: .products, doctrines, wiki}'" + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-orchestration-v75.php?action=summary' -H 'Host: weval-consulting.com' | jq -c '{version, grand_total_assets, dormants: .dormants, skills: .skills, tools: .tools, products: .products, doctrines, wiki}'", + "exec": true }, { "id": "wevia_orchestrate_all", @@ -373,92 +428,110 @@ { "id": "v74_e2e_run", "kw": "v74.*e2e|playwright.*v74|run.*full.*e2e|test.*complet.*e2e|58 tests", - "cmd": "timeout 180 python3 /opt/weval-nonreg/v74-e2e-test.py 2>&1 | tail -15" + "cmd": "timeout 180 python3 /opt/weval-nonreg/v74-e2e-test.py 2>&1 | tail -15", + "exec": true }, { "id": "agents_reality_check", "kw": "reality.*agents|agents.*reel|honnetete.*agents|800.*vs.*reel|vrai.*nombre|bullshit.*detector", - "cmd": "echo '=== WEVIA AGENT REALITY CHECK (V73) ==='; echo ''; echo 'TIER 1 - STRUCTURED ADDRESSABLE AGENTS (real, callable):'; curl -sk --max-time 8 'http://127.0.0.1/api/wevia-mega-agents.php?action=counts' -H 'Host: weval-consulting.com' | jq -r '\" total_aggregated: \\(.total_aggregated)\"'; echo ''; echo 'TIER 2 - CATALOG ENTRIES (referenced, some callable):'; curl -sk --max-time 5 'http://127.0.0.1/api/wevia-mega-agents.php?action=counts' -H 'Host: weval-consulting.com' | jq -r '\" manifest_catalog_total: \\(.manifest_catalog_total)\"'; echo ''; echo 'TIER 3 - LIVE DECLARED (manifest meta.total_agents_live):'; curl -sk --max-time 5 'http://127.0.0.1/api/wevia-mega-agents.php?action=counts' -H 'Host: weval-consulting.com' | jq -r '\" manifest_total_live: \\(.manifest_total_live)\"'; echo ''; echo 'Honest answer: \"We have ~243 structured and individually callable agents across 9 sources, aggregated. Plus 950 live in the EM manifest (some concrete files, some abstract capacity slots).\"'" + "cmd": "echo '=== WEVIA AGENT REALITY CHECK (V73) ==='; echo ''; echo 'TIER 1 - STRUCTURED ADDRESSABLE AGENTS (real, callable):'; curl -sk --max-time 8 'http://127.0.0.1/api/wevia-mega-agents.php?action=counts' -H 'Host: weval-consulting.com' | jq -r '\" total_aggregated: \\(.total_aggregated)\"'; echo ''; echo 'TIER 2 - CATALOG ENTRIES (referenced, some callable):'; curl -sk --max-time 5 'http://127.0.0.1/api/wevia-mega-agents.php?action=counts' -H 'Host: weval-consulting.com' | jq -r '\" manifest_catalog_total: \\(.manifest_catalog_total)\"'; echo ''; echo 'TIER 3 - LIVE DECLARED (manifest meta.total_agents_live):'; curl -sk --max-time 5 'http://127.0.0.1/api/wevia-mega-agents.php?action=counts' -H 'Host: weval-consulting.com' | jq -r '\" manifest_total_live: \\(.manifest_total_live)\"'; echo ''; echo 'Honest answer: \"We have ~243 structured and individually callable agents across 9 sources, aggregated. Plus 950 live in the EM manifest (some concrete files, some abstract capacity slots).\"'", + "exec": true }, { "id": "v73_mega_search", "kw": "cherche.*agent|search.*agent|find.*agent|trouve.*agent", - "cmd": "Q=\"$(echo $ORIG_MSG | grep -oE '[a-z_]+' | head -1)\"; curl -sk --max-time 10 \"http://127.0.0.1/api/wevia-mega-agents.php?action=search&q=$Q\" -H 'Host: weval-consulting.com' | jq -c '{query, matched, top: (.top_100 | .[:15] | map({name,source,category}))}'" + "cmd": "Q=\"$(echo $ORIG_MSG | grep -oE '[a-z_]+' | head -1)\"; curl -sk --max-time 10 \"http://127.0.0.1/api/wevia-mega-agents.php?action=search&q=$Q\" -H 'Host: weval-consulting.com' | jq -c '{query, matched, top: (.top_100 | .[:15] | map({name,source,category}))}'", + "exec": true }, { "id": "v73_mega_list", "kw": "liste.*tous.*agents|list.*all.*agents|mega.*list|full.*agent.*list", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-mega-agents.php?action=list&limit=50' -H 'Host: weval-consulting.com' | jq -c '{total_matched, returned, agents: (.agents | map(.name) | .[:30])}'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-mega-agents.php?action=list&limit=50' -H 'Host: weval-consulting.com' | jq -c '{total_matched, returned, agents: (.agents | map(.name) | .[:30])}'", + "exec": true }, { "id": "v73_mega_categories", "kw": "categories.*agents|agent.*categories|breakdown.*agents|v73.*cat", - "cmd": "curl -sk --max-time 12 'http://127.0.0.1/api/wevia-mega-agents.php?action=categories' -H 'Host: weval-consulting.com' | jq -c '{total_categories, categories}'" + "cmd": "curl -sk --max-time 12 'http://127.0.0.1/api/wevia-mega-agents.php?action=categories' -H 'Host: weval-consulting.com' | jq -c '{total_categories, categories}'", + "exec": true }, { "id": "v73_mega_counts", "kw": "mega.*agents|total.*agents.*reel|950.*agents|800.*agents|combien.*agents.*reellement|vrai.*total|universe.*agents|agents.*v73|mega.*aggregator", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-mega-agents.php?action=counts' -H 'Host: weval-consulting.com' | jq -c '{total_aggregated, manifest_total_live, grand_total_universe, by_source, by_category}'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-mega-agents.php?action=counts' -H 'Host: weval-consulting.com' | jq -c '{total_aggregated, manifest_total_live, grand_total_universe, by_source, by_category}'", + "exec": true }, { "id": "agent_universe_total", "kw": "combien.*total.*agents|taille.*ecosysteme.*agents|agent.*universe|toutes.*couches.*agents", - "cmd": "echo '=== WEVIA MULTI-AGENT UNIVERSE ==='; echo '1) CORE (wevia-autonomous.php hardcoded): 16 agents (10 default + 6 keyword)'; echo '2) V71 EXT (extra-agents.php): 10 agents'; echo '3) V72 EXT (extra-agents-v72.php): 20 agents x 6 categories'; echo ' - business: 5 (sap, finance, pipeline, hr, wevads)'; echo ' - infra: 5 (fpm, nginx, disk, docker, postgres)'; echo ' - llm: 3 (cascade, keys, ollama)'; echo ' - quality: 3 (nonreg, gold, chattr)'; echo ' - devops: 2 (git, cron)'; echo ' - knowledge: 2 (wiki, doctrines)'; echo ''; echo 'TOTAL: 46 agents accessibles via chat'; echo ''; echo 'Endpoints:'; echo ' - /api/wevia-autonomous.php (core)'; echo ' - /api/wevia-orchestrator-extra-agents.php (V71)'; echo ' - /api/wevia-orchestrator-extra-agents-v72.php (V72)'" + "cmd": "echo '=== WEVIA MULTI-AGENT UNIVERSE ==='; echo '1) CORE (wevia-autonomous.php hardcoded): 16 agents (10 default + 6 keyword)'; echo '2) V71 EXT (extra-agents.php): 10 agents'; echo '3) V72 EXT (extra-agents-v72.php): 20 agents x 6 categories'; echo ' - business: 5 (sap, finance, pipeline, hr, wevads)'; echo ' - infra: 5 (fpm, nginx, disk, docker, postgres)'; echo ' - llm: 3 (cascade, keys, ollama)'; echo ' - quality: 3 (nonreg, gold, chattr)'; echo ' - devops: 2 (git, cron)'; echo ' - knowledge: 2 (wiki, doctrines)'; echo ''; echo 'TOTAL: 46 agents accessibles via chat'; echo ''; echo 'Endpoints:'; echo ' - /api/wevia-autonomous.php (core)'; echo ' - /api/wevia-orchestrator-extra-agents.php (V71)'; echo ' - /api/wevia-orchestrator-extra-agents-v72.php (V72)'", + "exec": true }, { "id": "v72_quality_bilan", "kw": "quality.*bilan|v72.*quality|compliance.*bilan|chattr.*sacred|gold.*audit", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=multi&message=nonreg+gold+chattr+rollback+audit+backup+protection' -H 'Host: weval-consulting.com' | jq -c '{fired_count, agents_list: (.v72_agents|keys), details: (.v72_agents|to_entries|map({k:.key,ms:.value.ms}))}'" + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=multi&message=nonreg+gold+chattr+rollback+audit+backup+protection' -H 'Host: weval-consulting.com' | jq -c '{fired_count, agents_list: (.v72_agents|keys), details: (.v72_agents|to_entries|map({k:.key,ms:.value.ms}))}'", + "exec": true }, { "id": "v72_infra_bilan", "kw": "infra.*bilan|v72.*infra|infrastructure.*multiagent|infra.*health", - "cmd": "curl -sk --max-time 12 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=multi&message=fpm+nginx+docker+disk+postgres+ollama+provider+llm' -H 'Host: weval-consulting.com' | jq -c '{fired_count, agents_list: (.v72_agents|keys)}'" + "cmd": "curl -sk --max-time 12 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=multi&message=fpm+nginx+docker+disk+postgres+ollama+provider+llm' -H 'Host: weval-consulting.com' | jq -c '{fired_count, agents_list: (.v72_agents|keys)}'", + "exec": true }, { "id": "v72_business_bilan", "kw": "business.*bilan|v72.*business|bilan.*metier|erp.*bilan|business.*multiagent", - "cmd": "curl -sk --max-time 12 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=multi&message=sap+finance+pipeline+crm+hr+wevads+deliverability+talent' -H 'Host: weval-consulting.com' | jq -c '{fired_count, agents_list: (.v72_agents|keys), details: (.v72_agents|to_entries|map({k:.key,cat:.value.category,ms:.value.ms}))}'" + "cmd": "curl -sk --max-time 12 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=multi&message=sap+finance+pipeline+crm+hr+wevads+deliverability+talent' -H 'Host: weval-consulting.com' | jq -c '{fired_count, agents_list: (.v72_agents|keys), details: (.v72_agents|to_entries|map({k:.key,cat:.value.category,ms:.value.ms}))}'", + "exec": true }, { "id": "v72_multiagent_parallel", "kw": "parallel.*agents|v72.*parallel|budget.*agent|parallele.*bilan", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=parallel&message=sap+finance+disk+nginx+docker+ollama+nonreg+gold+git+wiki+doctrine+pipeline' -H 'Host: weval-consulting.com' | jq -c '{mode,total_ms,fired,agents_list: (.agents|keys)}'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=parallel&message=sap+finance+disk+nginx+docker+ollama+nonreg+gold+git+wiki+doctrine+pipeline' -H 'Host: weval-consulting.com' | jq -c '{mode,total_ms,fired,agents_list: (.agents|keys)}'", + "exec": true }, { "id": "v72_multiagent_all", "kw": "v72.*all|v72.*bilan|multiagent.*46|super.*multiagent|tous.*agents.*v72|fire.*all.*v72", - "cmd": "curl -sk --max-time 20 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=all' -H 'Host: weval-consulting.com' | jq -c '{total_agents, by_category, agents_fired: (.agents|to_entries|map({k:.key,cat:.value.cat,ms:.value.ms}))}'" + "cmd": "curl -sk --max-time 20 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=all' -H 'Host: weval-consulting.com' | jq -c '{total_agents, by_category, agents_fired: (.agents|to_entries|map({k:.key,cat:.value.cat,ms:.value.ms}))}'", + "exec": true }, { "id": "v72_multiagent_list", "kw": "v72.*list|liste.*v72|agents.*v72|catalog.*v72|combien.*agents.*total", - "cmd": "curl -sk --max-time 6 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=list' -H 'Host: weval-consulting.com' | jq -c '{total_universe, total_v72_agents, categories, v71_ext_agents: (.v71_agents_also_available|length)}'" + "cmd": "curl -sk --max-time 6 'http://127.0.0.1/api/wevia-orchestrator-extra-agents-v72.php?action=list' -H 'Host: weval-consulting.com' | jq -c '{total_universe, total_v72_agents, categories, v71_ext_agents: (.v71_agents_also_available|length)}'", + "exec": true }, { "id": "agent_register_extra", "kw": "pourquoi.*agents.*limit|pourquoi.*11.*agents|why.*limited.*agents|more.*agents.*needed|ajoute.*agents", - "cmd": "echo '=== WEVIA MULTI-AGENT CAPACITY ANALYSIS ==='; echo ''; echo 'HARDCODED CORE (wevia-autonomous.php):'; echo ' 16 agents in registry, 10 fire by default, 6 keyword-activated'; echo ''; echo 'V71 EXTENSION (wevia-orchestrator-extra-agents.php):'; echo ' 10 NEW domain agents (reg70_scores, agent_factory, skills, depts, qdrant, partnerships, secrets, ethica, registry, plan_meta)'; echo ''; echo 'TOTAL AVAILABLE: 26 agents (16 core + 10 extended)'; echo 'NO HARD LIMIT - agents fire based on keyword matching in user message'; echo ''; echo 'For multi-dimensional requests, combine keywords e.g.:'; echo ' \"multiagent bilan reg70 agents ethica skills partnerships\" => fires 7+ agents'" + "cmd": "echo '=== WEVIA MULTI-AGENT CAPACITY ANALYSIS ==='; echo ''; echo 'HARDCODED CORE (wevia-autonomous.php):'; echo ' 16 agents in registry, 10 fire by default, 6 keyword-activated'; echo ''; echo 'V71 EXTENSION (wevia-orchestrator-extra-agents.php):'; echo ' 10 NEW domain agents (reg70_scores, agent_factory, skills, depts, qdrant, partnerships, secrets, ethica, registry, plan_meta)'; echo ''; echo 'TOTAL AVAILABLE: 26 agents (16 core + 10 extended)'; echo 'NO HARD LIMIT - agents fire based on keyword matching in user message'; echo ''; echo 'For multi-dimensional requests, combine keywords e.g.:'; echo ' \"multiagent bilan reg70 agents ethica skills partnerships\" => fires 7+ agents'", + "exec": true }, { "id": "orchestrator_agents_list", "kw": "liste.*agents.*orchestrator|orchestrator.*agents|combien.*agents.*multi|agent registry orchestrator", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/wevia-orchestrator-extra-agents.php?action=list' -H 'Host: weval-consulting.com' | jq -c '{total, agent_names: [.agents[].name]}' && echo '---HARDCODED-16---' && echo 'reconcile providers wiki nonreg ethica docker disk git ports load screens_s204 screens_s95 gpus pmta_all machines_all services_s204 crons_all apis_catalog mapper_html git_commit security_audit'" + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/wevia-orchestrator-extra-agents.php?action=list' -H 'Host: weval-consulting.com' | jq -c '{total, agent_names: [.agents[].name]}' && echo '---HARDCODED-16---' && echo 'reconcile providers wiki nonreg ethica docker disk git ports load screens_s204 screens_s95 gpus pmta_all machines_all services_s204 crons_all apis_catalog mapper_html git_commit security_audit'", + "exec": true }, { "id": "multiagent_smart", "kw": "multiagent.*smart|agents.*pertinent|agents.*relevant|agents.*keyword|smart.*agents", - "cmd": "MSG=\"$(echo $ORIG_MSG | sed 's/[^a-zA-Z0-9 ]//g' | cut -c1-200)\"; curl -sk --max-time 12 \"http://127.0.0.1/api/wevia-orchestrator-extra-agents.php?action=multi&message=$MSG\" -H 'Host: weval-consulting.com' | jq -c '{ok,fired_count,agents_fired: (.agents | keys)}'" + "cmd": "MSG=\"$(echo $ORIG_MSG | sed 's/[^a-zA-Z0-9 ]//g' | cut -c1-200)\"; curl -sk --max-time 12 \"http://127.0.0.1/api/wevia-orchestrator-extra-agents.php?action=multi&message=$MSG\" -H 'Host: weval-consulting.com' | jq -c '{ok,fired_count,agents_fired: (.agents | keys)}'", + "exec": true }, { "id": "multiagent_extended", "kw": "multiagent.*complet|bilan.*extended|extended.*bilan|agents.*etendus|multi.*dimension|multi.*expertise|super.*bilan|v71.*bilan", - "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-orchestrator-extra-agents.php?action=all' -H 'Host: weval-consulting.com' | jq -c '{total_agents, agents: (.agents | to_entries | map({k:.key, ms:.value.ms, keys:(.value.result|keys? // [])}))}'" + "cmd": "curl -sk --max-time 15 'http://127.0.0.1/api/wevia-orchestrator-extra-agents.php?action=all' -H 'Host: weval-consulting.com' | jq -c '{total_agents, agents: (.agents | to_entries | map({k:.key, ms:.value.ms, keys:(.value.result|keys? // [])}))}'", + "exec": true }, { "id": "anti_regression_full_chain", "kw": "full chain|triple regression|complete coverage|all nonreg layers|total tests", - "cmd": "echo '=== COMPLETE COVERAGE (V70) ==='; echo 'NonReg (platform 153 core): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-latest.json; echo 'REG67 (30 known bugs): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg67-latest.json; echo 'REG68 (50 = 30+20 V67/V68): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg68-latest.json; echo 'REG69 (80 = 50+30 FAQ): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg69-latest.json; echo 'REG70 (140 = 80+60 E2E Playwright-style): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg70-latest.json; echo ''; echo 'GRAND TOTAL: '; TOTAL=$(( $(jq '.total' /var/www/html/api/nonreg-latest.json) + $(jq '.total' /var/www/html/api/nonreg-reg70-latest.json) )); echo \"$TOTAL automated checks\"" + "cmd": "echo '=== COMPLETE COVERAGE (V70) ==='; echo 'NonReg (platform 153 core): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-latest.json; echo 'REG67 (30 known bugs): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg67-latest.json; echo 'REG68 (50 = 30+20 V67/V68): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg68-latest.json; echo 'REG69 (80 = 50+30 FAQ): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg69-latest.json; echo 'REG70 (140 = 80+60 E2E Playwright-style): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg70-latest.json; echo ''; echo 'GRAND TOTAL: '; TOTAL=$(( $(jq '.total' /var/www/html/api/nonreg-latest.json) + $(jq '.total' /var/www/html/api/nonreg-reg70-latest.json) )); echo \"$TOTAL automated checks\"", + "exec": true }, { "id": "reg70_failures", @@ -473,12 +546,14 @@ { "id": "reg70_run", "kw": "reg70|e2e playwright|run e2e|140 tests|e2e smoke|full smoke test", - "cmd": "python3 /opt/weval-nonreg/reg70-e2e-playwright.py 2>&1 | tail -10" + "cmd": "python3 /opt/weval-nonreg/reg70-e2e-playwright.py 2>&1 | tail -10", + "exec": true }, { "id": "anti_regression_chain", "kw": "anti regression chain|regression suite total|chain nonreg|triple anti regression", - "cmd": "echo 'NonReg (platform): '; jq -c '{pass,total}' /var/www/html/api/nonreg-latest.json; echo 'REG67 (30 core): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg67-latest.json; echo 'REG68 (50 = 30+20): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg68-latest.json; echo 'REG69 (80 = 50+30 FAQ): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg69-latest.json" + "cmd": "echo 'NonReg (platform): '; jq -c '{pass,total}' /var/www/html/api/nonreg-latest.json; echo 'REG67 (30 core): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg67-latest.json; echo 'REG68 (50 = 30+20): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg68-latest.json; echo 'REG69 (80 = 50+30 FAQ): '; jq -c '{pass,total,score}' /var/www/html/api/nonreg-reg69-latest.json", + "exec": true }, { "id": "reg69_failures", @@ -493,7 +568,8 @@ { "id": "reg69_run", "kw": "reg69|total regression|run full regression|80 tests|full anti regression", - "cmd": "python3 /opt/weval-nonreg/reg69-anti-regression.py 2>&1 | tail -10" + "cmd": "python3 /opt/weval-nonreg/reg69-anti-regression.py 2>&1 | tail -10", + "exec": true }, { "id": "agent_enrichment_status", @@ -508,22 +584,26 @@ { "id": "reg68_run", "kw": "reg68|extended regression|run extended|run reg68|50 tests", - "cmd": "python3 /opt/weval-nonreg/reg68-anti-regression.py 2>&1 | tail -10" + "cmd": "python3 /opt/weval-nonreg/reg68-anti-regression.py 2>&1 | tail -10", + "exec": true }, { "id": "dormants_zero_check", "kw": "dormants.*check|zero dormant|dormants status|dormants count|combien dormant", - "cmd": "echo '=== DORMANTS STATUS V67 ===' && API_DATA=$(curl -sk --max-time 8 'http://127.0.0.1/api/oss-discovery.php?k=WEVADS2026&action=skills' -H 'Host: weval-consulting.com') && TOTAL=$(echo \"$API_DATA\" | jq -r '.total') && ACTIVE=$(echo \"$API_DATA\" | jq -r '.active // .total') && DORMANT=$(echo \"$API_DATA\" | jq -r '.dormant // 0') && echo \"Total skills: $TOTAL\" && echo \"Active: $ACTIVE\" && echo \"Dormant: $DORMANT\" && echo 'V65 doctrine ZERO DORMANT: ACHIEVED (visited_realpaths anti-loop)'" + "cmd": "echo '=== DORMANTS STATUS V67 ===' && API_DATA=$(curl -sk --max-time 8 'http://127.0.0.1/api/oss-discovery.php?k=WEVADS2026&action=skills' -H 'Host: weval-consulting.com') && TOTAL=$(echo \"$API_DATA\" | jq -r '.total') && ACTIVE=$(echo \"$API_DATA\" | jq -r '.active // .total') && DORMANT=$(echo \"$API_DATA\" | jq -r '.dormant // 0') && echo \"Total skills: $TOTAL\" && echo \"Active: $ACTIVE\" && echo \"Dormant: $DORMANT\" && echo 'V65 doctrine ZERO DORMANT: ACHIEVED (visited_realpaths anti-loop)'", + "exec": true }, { "id": "agent_auto_create", "kw": "cree.*agent|create.*agent.*stub|auto.*wire.*agent|genere.*agent|agent factory create", - "cmd": "curl -sk --max-time 15 -X POST 'http://127.0.0.1/api/wevia-agent-factory.php?action=bulk_create' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 15 -X POST 'http://127.0.0.1/api/wevia-agent-factory.php?action=bulk_create' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agents_missing_list", "kw": "agent.*manquant|missing.*agent|liste.*gap.*agent|agents.*gap|gaps.*agent|45 agents", - "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-agent-factory.php?action=count' -H 'Host: weval-consulting.com' | jq . && echo '---' && curl -sk --max-time 8 'http://127.0.0.1/api/wevia-agent-factory.php?action=list' -H 'Host: weval-consulting.com' | jq -r '.agents[] | \"- \" + .name + \" (\" + (if .stub_exists then \"STUB_OK\" else \"MISSING\" end) + \")\"' | head -30" + "cmd": "curl -sk --max-time 8 'http://127.0.0.1/api/wevia-agent-factory.php?action=count' -H 'Host: weval-consulting.com' | jq . && echo '---' && curl -sk --max-time 8 'http://127.0.0.1/api/wevia-agent-factory.php?action=list' -H 'Host: weval-consulting.com' | jq -r '.agents[] | \"- \" + .name + \" (\" + (if .stub_exists then \"STUB_OK\" else \"MISSING\" end) + \")\"' | head -30", + "exec": true }, { "id": "reg67_failures", @@ -538,7 +618,8 @@ { "id": "reg67_run", "kw": "reg67|anti.?regression|run.*regression|check.*regression|test.*regression|known.*bugs.*test", - "cmd": "python3 /opt/weval-nonreg/reg67-anti-regression.py 2>&1 | tail -10" + "cmd": "python3 /opt/weval-nonreg/reg67-anti-regression.py 2>&1 | tail -10", + "exec": true }, { "id": "intents_list", @@ -573,7 +654,8 @@ { "id": "skills_total", "kw": "combien.*skills|total.*skills|skills.*total|skills.*count|injected.*skills.*count|5642|5643", - "cmd": "curl -sk --max-time 30 -H 'Host: weval-consulting.com' 'http://127.0.0.1/api/oss-discovery.php?k=WEVADS2026&action=skills' | jq -r '\"Total: \\(.total) | Active: \\(.active) | Dormant: \\(.dormant)\\nCollections:\\n\" + (.collections | to_entries | map(\" \" + .key + \": \" + (.value|tostring)) | join(\"\\n\"))'" + "cmd": "curl -sk --max-time 30 -H 'Host: weval-consulting.com' 'http://127.0.0.1/api/oss-discovery.php?k=WEVADS2026&action=skills' | jq -r '\"Total: \\(.total) | Active: \\(.active) | Dormant: \\(.dormant)\\nCollections:\\n\" + (.collections | to_entries | map(\" \" + .key + \": \" + (.value|tostring)) | join(\"\\n\"))'", + "exec": true }, { "id": "opus_arch_explain", @@ -648,7 +730,8 @@ { "id": "opus_arch_finetune", "kw": "opus.?arch.*finetune.*(status|trigger|collect)|cap.?16.*(continuous.*fine.?tune|kaggle.*phase.?5)", - "cmd": "curl -sk -H 'Host: weval-consulting.com' 'http://127.0.0.1/api/opus-arch-continuous-ft.php?action=status' --max-time 8" + "cmd": "curl -sk -H 'Host: weval-consulting.com' 'http://127.0.0.1/api/opus-arch-continuous-ft.php?action=status' --max-time 8", + "exec": true }, { "id": "opus_arch_autonomy", @@ -658,17 +741,20 @@ { "id": "security_scan", "kw": "security.*scan|security.*dashboard|security.*hub|secret.*leak|truffle|vault.*scan|cyber.*audit", - "cmd": "echo 'WEVAL Security Scanner' && echo 'Tools: 5/5 active' && echo ' - TruffleHog: entropy + regex scan' && echo ' - detect-secrets: Yelp engine' && echo ' - GitHub Dorking: AWS/Stripe/GitHub patterns' && echo ' - KeyHacks: API key validation' && echo ' - shhgit: sensitive file detection' && echo 'Keys tracked: 62' && echo 'Findings: 0' && echo 'Risk: LOW'" + "cmd": "echo 'WEVAL Security Scanner' && echo 'Tools: 5/5 active' && echo ' - TruffleHog: entropy + regex scan' && echo ' - detect-secrets: Yelp engine' && echo ' - GitHub Dorking: AWS/Stripe/GitHub patterns' && echo ' - KeyHacks: API key validation' && echo ' - shhgit: sensitive file detection' && echo 'Keys tracked: 62' && echo 'Findings: 0' && echo 'Risk: LOW'", + "exec": true }, { "id": "sync_all", "kw": "sync.*all|push.*all|sync.*gitea.*github|mirror.*all|sync.*remote", - "cmd": "cd /var/www/html && echo 'SYNC ALL REMOTES' && git push origin main 2>&1 | tail -2 && echo '---' && git push gitea main 2>&1 | tail -2 && echo '---' && echo 'HEAD:' $(git rev-parse --short HEAD)" + "cmd": "cd /var/www/html && echo 'SYNC ALL REMOTES' && git push origin main 2>&1 | tail -2 && echo '---' && git push gitea main 2>&1 | tail -2 && echo '---' && echo 'HEAD:' $(git rev-parse --short HEAD)", + "exec": true }, { "id": "partenariats", "kw": "partenariat|partenair|partner.*status|vistex.*huawei|alliance.*pipeline", - "cmd": "echo 'PARTENARIATS WEVAL Q2 2026:' && echo '- Vistex (SAP pricing Maghreb): contacts Olga Vanurina, Joe Golemba, Udo Hannemann' && echo '- Huawei Cloud: dispute billing en cours, contacts Ray Wu, Chris Cen, Yanhao' && echo '- Arrow/Scaleway: 1er partenaire Scaleway Maroc, Julien Bossu, Omar Belchkar' && echo '- Ethica (pharma HCP): Kaouther Najar' && echo '' && echo 'PIPELINE Q2: 3.5 MMAD'" + "cmd": "echo 'PARTENARIATS WEVAL Q2 2026:' && echo '- Vistex (SAP pricing Maghreb): contacts Olga Vanurina, Joe Golemba, Udo Hannemann' && echo '- Huawei Cloud: dispute billing en cours, contacts Ray Wu, Chris Cen, Yanhao' && echo '- Arrow/Scaleway: 1er partenaire Scaleway Maroc, Julien Bossu, Omar Belchkar' && echo '- Ethica (pharma HCP): Kaouther Najar' && echo '' && echo 'PIPELINE Q2: 3.5 MMAD'", + "exec": true }, { "id": "ethica_pilot_dryrun", @@ -685,25 +771,29 @@ "id": "paperclip_projects", "kw": "paperclip.*proj|projet.*paper|paper.*proj|list.*proj", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 127.0.0.1 -p 5432 -U admin -d paperclip -t -A -c 'SELECT name,status FROM projects ORDER BY name;'" + "cmd": "PGPASSWORD=admin123 psql -h 127.0.0.1 -p 5432 -U admin -d paperclip -t -A -c 'SELECT name,status FROM projects ORDER BY name;'", + "exec": true }, { "id": "paperclip_goals", "kw": "goal.*paper|paper.*goal|objectif.*strat", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 127.0.0.1 -p 5432 -U admin -d paperclip -t -A -c 'SELECT title,status FROM goals ORDER BY created_at;'" + "cmd": "PGPASSWORD=admin123 psql -h 127.0.0.1 -p 5432 -U admin -d paperclip -t -A -c 'SELECT title,status FROM goals ORDER BY created_at;'", + "exec": true }, { "id": "paperclip_agents_count", "kw": "agent.*paper|paper.*agent|combien.*agent", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 127.0.0.1 -p 5432 -U admin -d paperclip -t -A -c 'SELECT COUNT(*) FROM agents;'" + "cmd": "PGPASSWORD=admin123 psql -h 127.0.0.1 -p 5432 -U admin -d paperclip -t -A -c 'SELECT COUNT(*) FROM agents;'", + "exec": true }, { "id": "paperclip_issues", "kw": "issue.*paper|paper.*issue|ticket.*ouvert", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 127.0.0.1 -p 5432 -U admin -d paperclip -t -A -c 'SELECT COUNT(*),status FROM issues GROUP BY status;'" + "cmd": "PGPASSWORD=admin123 psql -h 127.0.0.1 -p 5432 -U admin -d paperclip -t -A -c 'SELECT COUNT(*),status FROM issues GROUP BY status;'", + "exec": true }, { "id": "ssl_verif", @@ -715,19 +805,22 @@ "id": "git_modif", "kw": "git.*modif|modif.*git|git.*dirty|fichier.*change", "api": "exec", - "cmd": "cd /var/www/html && git status --porcelain | head -20 && echo --- && git log --oneline -3" + "cmd": "cd /var/www/html && git status --porcelain | head -20 && echo --- && git log --oneline -3", + "exec": true }, { "id": "git_push_auto", "kw": "push.*code|pousse.*git|git.*push|deploy.*code", "api": "exec", - "cmd": "cd /var/www/html && sudo git add -A && sudo git commit -m autopush 2>&1 | tail -3 && sudo git push origin main 2>&1 | tail -3" + "cmd": "cd /var/www/html && sudo git add -A && sudo git commit -m autopush 2>&1 | tail -3 && sudo git push origin main 2>&1 | tail -3", + "exec": true }, { "id": "test_global", "kw": "test.*complet|bilan.*global|check.*all|reconcili.*tout", "api": "exec", - "cmd": "echo PIPELINE=$(curl -sk https://weval-consulting.com/api/weval-unified-pipeline.php | python3 -c 'import sys,json;d=json.load(sys.stdin);print(len(d.get(\"projects\",[])),\"proj\",len(d.get(\"goals\",[])),\"goals\")' 2>&1) && echo DOCKER=$(docker ps -q | wc -l) && echo DISK=$(df / --output=pcent | tail -1) && echo GIT=$(cd /var/www/html && git status --porcelain | wc -l)dirty && echo TOOLS=$(python3 -c 'import json;print(len(json.load(open(\"/opt/wevia-brain/tool-registry-v2.json\")).get(\"tools\",[])))') && echo QDRANT=$(curl -s http://localhost:6333/collections | python3 -c 'import sys,json;print(len(json.load(sys.stdin).get(\"result\",{}).get(\"collections\",[])))')collections" + "cmd": "echo PIPELINE=$(curl -sk https://weval-consulting.com/api/weval-unified-pipeline.php | python3 -c 'import sys,json;d=json.load(sys.stdin);print(len(d.get(\"projects\",[])),\"proj\",len(d.get(\"goals\",[])),\"goals\")' 2>&1) && echo DOCKER=$(docker ps -q | wc -l) && echo DISK=$(df / --output=pcent | tail -1) && echo GIT=$(cd /var/www/html && git status --porcelain | wc -l)dirty && echo TOOLS=$(python3 -c 'import json;print(len(json.load(open(\"/opt/wevia-brain/tool-registry-v2.json\")).get(\"tools\",[])))') && echo QDRANT=$(curl -s http://localhost:6333/collections | python3 -c 'import sys,json;print(len(json.load(sys.stdin).get(\"result\",{}).get(\"collections\",[])))')collections", + "exec": true }, { "id": "snap_archiver_log", @@ -745,13 +838,15 @@ "id": "ollama_list", "kw": "ollama.*model|model.*local|llm.*local", "api": "exec", - "cmd": "curl -s http://localhost:11434/api/tags | python3 -c 'import sys,json;[print(m[\"name\"],round(m.get(\"size\",0)/1e9,1),\"GB\") for m in json.load(sys.stdin).get(\"models\",[])]'" + "cmd": "curl -s http://localhost:11434/api/tags | python3 -c 'import sys,json;[print(m[\"name\"],round(m.get(\"size\",0)/1e9,1),\"GB\") for m in json.load(sys.stdin).get(\"models\",[])]'", + "exec": true }, { "id": "nginx_domains", "kw": "nginx.*domain|domain.*actif|vhost|sous.*domain", "api": "exec", - "cmd": "grep -r server_name /etc/nginx/sites-enabled/ | grep -v '#' | awk '{print $NF}' | sort -u | tr ';' ' '" + "cmd": "grep -r server_name /etc/nginx/sites-enabled/ | grep -v '#' | awk '{print $NF}' | sort -u | tr ';' ' '", + "exec": true }, { "id": "cron_actifs", @@ -763,19 +858,22 @@ "id": "ram_free", "kw": "ram|memoire|memory|free", "api": "exec", - "cmd": "free -m | head -2" + "cmd": "free -m | head -2", + "exec": true }, { "id": "disk_detail", "kw": "disk.*detail|espace.*disk|df|stockage", "api": "exec", - "cmd": "df -h / | tail -1 && echo --- && echo DIRS_SKIP" + "cmd": "df -h / | tail -1 && echo --- && echo DIRS_SKIP", + "exec": true }, { "id": "kb_vectors", "kw": "kb.*vector|qdrant.*point|vecteur.*kb", "api": "exec", - "cmd": "curl -s http://localhost:6333/collections/wevia_kb | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d.get(\"result\",{}).get(\"points_count\",\"?\"),\"vectors\")'" + "cmd": "curl -s http://localhost:6333/collections/wevia_kb | python3 -c 'import sys,json;d=json.load(sys.stdin);print(d.get(\"result\",{}).get(\"points_count\",\"?\"),\"vectors\")'", + "exec": true }, { "id": "crowdsec_status", @@ -787,19 +885,22 @@ "id": "ethica_count", "kw": "combien.*ethica|ethica.*combien|hcp.*total.*count|total.*hcps", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -A -c 'SELECT COUNT(*) FROM ethica.medecins_real' 2>&1" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -A -c 'SELECT COUNT(*) FROM ethica.medecins_real' 2>&1", + "exec": true }, { "id": "s95_check", "kw": "s95.*status|wevads.*check|brain.*check", "api": "exec", - "cmd": "curl -s -m 5 http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=echo+S95_OK 2>&1 | head -3" + "cmd": "curl -s -m 5 http://10.1.0.3:5890/api/sentinel-brain.php?action=exec&cmd=echo+S95_OK 2>&1 | head -3", + "exec": true }, { "id": "uptime_info", "kw": "uptime|depuis.*quand|up.*time", "api": "exec", - "cmd": "uptime -p && cat /proc/loadavg" + "cmd": "uptime -p && cat /proc/loadavg", + "exec": true }, { "id": "php_restart_fix", @@ -872,7 +973,8 @@ "kw": "port.*scan|port.*conflit|port.*occup", "api": "master", "msg": "scan ports", - "cmd": "/bin/bash /opt/weval-l99/tools/ports.sh" + "cmd": "/bin/bash /opt/weval-l99/tools/ports.sh", + "exec": true }, { "id": "s95", @@ -932,7 +1034,8 @@ "kw": "ollama|modele.*local|model.*local", "api": "master", "msg": "ollama models", - "cmd": "/bin/bash /opt/weval-l99/tools/ollama-list.sh" + "cmd": "/bin/bash /opt/weval-l99/tools/ollama-list.sh", + "exec": true }, { "id": "deepseek", @@ -946,7 +1049,8 @@ "api": "master", "msg": "ethica scraper status", "cmd": "python3 /opt/weval-l99/ecm.py status", - "type": "exec" + "type": "exec", + "exec": true }, { "id": "ethica_enrich", @@ -954,14 +1058,16 @@ "api": "master", "msg": "ethica enrich status", "cmd": "python3 /opt/weval-l99/ecm.py enrichment", - "type": "exec" + "type": "exec", + "exec": true }, { "id": "vistex", "kw": "vistex|lead|cosumar|carrefour", "api": "master", "msg": "vistex lead protect", - "cmd": "echo 'VISTEX (SAP pricing Maghreb Q2 2026):' && echo '- Contacts: Olga Vanurina (VP Partner), Joe Golemba (Sr Dir), Udo Hannemann (Dir EMEA)' && echo '- Pipeline: 5 POC Cloud 240KMAD' && echo '- Target leads: Cosumar, Carrefour, OCP' && echo '- Status: active, RDV hebdo'" + "cmd": "echo 'VISTEX (SAP pricing Maghreb Q2 2026):' && echo '- Contacts: Olga Vanurina (VP Partner), Joe Golemba (Sr Dir), Udo Hannemann (Dir EMEA)' && echo '- Pipeline: 5 POC Cloud 240KMAD' && echo '- Target leads: Cosumar, Carrefour, OCP' && echo '- Status: active, RDV hebdo'", + "exec": true }, { "id": "brain_send", @@ -1224,7 +1330,8 @@ "kw": "valid.*email|email.*valid", "api": "master", "msg": "ethica validator status", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT COUNT(*) as total, COUNT(CASE WHEN email ~ '@.+\\..+' THEN 1 END) as valid, COUNT(CASE WHEN email IS NULL THEN 1 END) as null_email FROM ethica.medecins_real\" 2>&1" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT COUNT(*) as total, COUNT(CASE WHEN email ~ '@.+\\..+' THEN 1 END) as valid, COUNT(CASE WHEN email IS NULL THEN 1 END) as null_email FROM ethica.medecins_real\" 2>&1", + "exec": true }, { "id": "whisper", @@ -1441,7 +1548,8 @@ "id": "wiki_scan", "kw": "wiki.*scan|scan.*wiki|wiki.*mega", "api": "GET:/api/wevia-action-engine.php?action=exec_s204&cmd=python3+/opt/weval-l99/wiki-mega-scan.py", - "cmd": "/bin/bash /opt/weval-l99/tools/wiki-scan.sh" + "cmd": "/bin/bash /opt/weval-l99/tools/wiki-scan.sh", + "exec": true }, { "id": "disk_guardian", @@ -2244,19 +2352,22 @@ "id": "docker_ps", "kw": "docker.*list|docker.*container|conteneur", "api": "exec", - "cmd": "docker ps --format '{{.Names}} {{.Status}}' | sort" + "cmd": "docker ps --format '{{.Names}} {{.Status}}' | sort", + "exec": true }, { "id": "pages_check", "kw": "page.*check|verif.*page|page.*status", "api": "exec", - "cmd": "for p in / /wevia-meeting-rooms.html /agents-archi.html /enterprise-model.html /vault-manager.html; do echo -n \"$p \"; curl -sk -o /dev/null -w '%{http_code}' https://weval-consulting.com$p; echo; done" + "cmd": "for p in / /wevia-meeting-rooms.html /agents-archi.html /enterprise-model.html /vault-manager.html; do echo -n \"$p \"; curl -sk -o /dev/null -w '%{http_code}' https://weval-consulting.com$p; echo; done", + "exec": true }, { "id": "l99_failures", "kw": "l99.*fail|l99.*erreur|quoi.*fail|echoue", "api": "exec", - "cmd": "python3 -c \"import json;d=json.load(open('/opt/weval-l99/l99-state.json'));[print(f'{k}: {v[chr(112)+chr(97)+chr(115)+chr(115)]}/{v[chr(116)+chr(111)+chr(116)+chr(97)+chr(108)]} ({v[chr(112)+chr(99)+chr(116)]}%)') for k,v in d.get('layers',{}).items() if v.get('pct',100)<100]\"" + "cmd": "python3 -c \"import json;d=json.load(open('/opt/weval-l99/l99-state.json'));[print(f'{k}: {v[chr(112)+chr(97)+chr(115)+chr(115)]}/{v[chr(116)+chr(111)+chr(116)+chr(97)+chr(108)]} ({v[chr(112)+chr(99)+chr(116)]}%)') for k,v in d.get('layers',{}).items() if v.get('pct',100)<100]\"", + "exec": true }, { "id": "reconcilie_tout", @@ -2268,7 +2379,8 @@ "id": "git_log", "kw": "git.*log|dernier.*commit|last.*commit|historique", "api": "exec", - "cmd": "cd /var/www/html && git log --oneline -10" + "cmd": "cd /var/www/html && git log --oneline -10", + "exec": true }, { "id": "snap_status", @@ -2280,13 +2392,15 @@ "id": "docker_restart_one", "kw": "restart.*docker|redemarr.*docker", "api": "exec", - "cmd": "echo Active: && docker ps --format '{{.Names}}' | sort" + "cmd": "echo Active: && docker ps --format '{{.Names}}' | sort", + "exec": true }, { "id": "pages_list", "kw": "page.*list|list.*page|url.*site", "api": "exec", - "cmd": "find /var/www/html -maxdepth 1 -name '*.html' -printf '%f\n' | sort" + "cmd": "find /var/www/html -maxdepth 1 -name '*.html' -printf '%f\n' | sort", + "exec": true }, { "id": "l99_launch", @@ -2298,7 +2412,8 @@ "id": "life_sync", "kw": "sync.*mail|sync.*life|email.*sync|rafraich.*mail|refresh.*mail|maj.*mail", "api": "exec", - "cmd": "php /opt/weval-l99/wevialife-sync.php 2>&1 | tail -5" + "cmd": "php /opt/weval-l99/wevialife-sync.php 2>&1 | tail -5", + "exec": true }, { "id": "life_dashboard", @@ -2316,31 +2431,36 @@ "id": "ethica_campaigns", "kw": "campaign.*list|list.*campaign|campagne.*list", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT id, name, from_name, target_pays, target_count, sent_count, status FROM ethica.campaigns ORDER BY id;\"" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT id, name, from_name, target_pays, target_count, sent_count, status FROM ethica.campaigns ORDER BY id;\"", + "exec": true }, { "id": "ethica_senders_list", "kw": "sender.*list|list.*sender|sender.*email", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT id, email, tenant, daily_limit, sent_today, status FROM ethica.senders;\"" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT id, email, tenant, daily_limit, sent_today, status FROM ethica.senders;\"", + "exec": true }, { "id": "ethica_tracking_stats", "kw": "tracking.*stat|open.*rate|click.*rate", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT (SELECT count(*) FROM ethica.tracking_opens) as opens, (SELECT count(*) FROM ethica.tracking_clicks) as clicks, (SELECT count(*) FROM ethica.send_log) as sends;\"" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT (SELECT count(*) FROM ethica.tracking_opens) as opens, (SELECT count(*) FROM ethica.tracking_clicks) as clicks, (SELECT count(*) FROM ethica.send_log) as sends;\"", + "exec": true }, { "id": "ethica_validated_stats", "kw": "validated.*stat|validated.*pays|medecin.*validated", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT pays, count(*) as total, count(email) FILTER (WHERE email IS NOT NULL AND email!=chr(39)||chr(39)) as emails FROM ethica.medecins_validated GROUP BY pays ORDER BY total DESC;\"" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT pays, count(*) as total, count(email) FILTER (WHERE email IS NOT NULL AND email!=chr(39)||chr(39)) as emails FROM ethica.medecins_validated GROUP BY pays ORDER BY total DESC;\"", + "exec": true }, { "id": "graph_tenants_active", "kw": "graph.*tenant|o365.*tenant|tenant.*active", "api": "exec", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT tenant_domain, status, users_count, daily_limit FROM admin.graph_tenants ORDER BY status, users_count DESC;\"" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -p 5432 -U admin -d adx_system -t -A -c \"SELECT tenant_domain, status, users_count, daily_limit FROM admin.graph_tenants ORDER BY status, users_count DESC;\"", + "exec": true }, { "id": "tracking_diag", @@ -2358,13 +2478,15 @@ "id": "git_web", "kw": "git.*status.*web|dirty.*web", "api": "exec", - "cmd": "cd /var/www/html && git status --short | head -20" + "cmd": "cd /var/www/html && git status --short | head -20", + "exec": true }, { "id": "git_l99", "kw": "git.*status.*l99|dirty.*l99", "api": "exec", - "cmd": "cd /opt/weval-l99 && git status --short | head -20" + "cmd": "cd /opt/weval-l99 && git status --short | head -20", + "exec": true }, { "id": "php_restart", @@ -2376,7 +2498,8 @@ "id": "reconcile", "kw": "reconcil|check.*dirty", "api": "exec", - "cmd": "echo WEB: && cd /var/www/html && git status -s | wc -l && echo L99: && cd /opt/weval-l99 && git status -s | wc -l && echo CRONS: && crontab -l | wc -l" + "cmd": "echo WEB: && cd /var/www/html && git status -s | wc -l && echo L99: && cd /opt/weval-l99 && git status -s | wc -l && echo CRONS: && crontab -l | wc -l", + "exec": true }, { "id": "wiki_stats", @@ -2388,7 +2511,8 @@ "id": "port_conflicts", "kw": "conflit.*port|port.*conflit|collision", "api": "exec", - "cmd": "ss -tlnp | grep LISTEN | wc -l" + "cmd": "ss -tlnp | grep LISTEN | wc -l", + "exec": true }, { "id": "root_exec", @@ -2461,43 +2585,50 @@ "id": "diagnostic_system", "kw": "diagn|health", "api": "exec", - "cmd": "echo L:10.74 8.46 8.04 56/1712 770401 R:Mem: 15610 3247 970 255 11980 12362" + "cmd": "echo L:10.74 8.46 8.04 56/1712 770401 R:Mem: 15610 3247 970 255 11980 12362", + "exec": true }, { "id": "disk_usage", "kw": "disk|espace|stockage", "api": "exec", - "cmd": "df -h /|tail -1" + "cmd": "df -h /|tail -1", + "exec": true }, { "id": "strategie_q2", "kw": "strateg|priorit|roadmap", "api": "exec", - "cmd": "echo TOP3:1.Cloud 2.Ethica 3.Growth Pipeline:3.5MMAD" + "cmd": "echo TOP3:1.Cloud 2.Ethica 3.Growth Pipeline:3.5MMAD", + "exec": true }, { "id": "gmail_hub", "kw": "gmail|inbox|boite.*mail", "api": "exec", - "cmd": "echo GMAIL:MCP-Claude-connected" + "cmd": "echo GMAIL:MCP-Claude-connected", + "exec": true }, { "id": "calendar_hub", "kw": "calendar|agenda|mon.*rdv|mes.*rdv", "api": "exec", - "cmd": "echo CALENDAR:MCP-Claude-connected" + "cmd": "echo CALENDAR:MCP-Claude-connected", + "exec": true }, { "id": "drive_hub", "kw": "google.*drive|gdrive|drive.*fichier", "api": "exec", - "cmd": "echo DRIVE:MCP-Claude-connected" + "cmd": "echo DRIVE:MCP-Claude-connected", + "exec": true }, { "id": "hubsuite", "kw": "hubsuite|hub.*suite|integration.*hub", "api": "exec", - "cmd": "echo HUB:12providers+Gmail+Calendar+Drive+Ethica48K+WEVADS150+312tools" + "cmd": "echo HUB:12providers+Gmail+Calendar+Drive+Ethica48K+WEVADS150+312tools", + "exec": true }, { "id": "fix_ollama_cascade", @@ -2509,7 +2640,8 @@ "id": "autofix_nonreg", "kw": "fix.*nonreg|repare.*test", "cmd": "/bin/bash /opt/weval-l99/tools/reconcile.sh", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "autofix_fpm", @@ -2521,19 +2653,22 @@ "id": "autofix_monitor", "kw": "fix monitor|kuma restart|fix.*monitor", "cmd": "docker restart uptime-kuma", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "autofix_disk", "kw": "fix disk|clean disk|nettoi disque|fix.*disk", "cmd": "/bin/bash /opt/weval-l99/tools/disk-clean.sh", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "autofix_git", "kw": "fix git|push git|git push|fix.*git", "cmd": "/bin/bash /opt/weval-l99/tools/git-push.sh", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "autofix_sovereign", @@ -2545,91 +2680,106 @@ "id": "autofix_load", "kw": "fix load|charge haute|load high|fix.*load", "cmd": "/bin/bash /opt/weval-l99/tools/fix-load.sh", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "full_6sigma", "kw": "reconcile.*6sigma|full.*scan.*all.*infra", "cmd": "/bin/bash /opt/weval-l99/tools/reconcile.sh", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "autofix_nginx", "kw": "fix nginx|nginx reload|fix.*nginx", "cmd": "sudo nginx -t && sudo nginx -s reload", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "autofix_architecture", "kw": "fix.*archi.*score.*100|bpmn.*fix.*score", "cmd": "python3 /opt/weval-l99/tools/fix-architecture.py", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "self_diagnose", "kw": "diagnose.*self|auto.*diagnostic|check.*health", "cmd": "/bin/bash /opt/weval-l99/tools/reconcile.sh", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "autofix_all", "kw": "fix.*tout.*fr|self.*heal.*all.*auto", "cmd": "/bin/bash /opt/weval-l99/tools/autofix-all.sh", - "api": "exec" + "api": "exec", + "exec": true }, { "id": "providers_health", "kw": "provider.*health|health.*provider|providers.*status|status.*provider|cascade.*health", "api": "exec", - "cmd": "curl -s http://127.0.0.1:4000/health --max-time 5" + "cmd": "curl -s http://127.0.0.1:4000/health --max-time 5", + "exec": true }, { "id": "providers_check", "kw": "provider.*check|check.*provider|test.*provider", "api": "exec", - "cmd": "curl -s http://127.0.0.1:4000/health --max-time 5 | python3 -c \"import json,sys;d=json.load(sys.stdin);print(d.get('active',0),'/',d.get('total',0),'UP');print('\\n'.join(d.get('providers',[])))\"" + "cmd": "curl -s http://127.0.0.1:4000/health --max-time 5 | python3 -c \"import json,sys;d=json.load(sys.stdin);print(d.get('active',0),'/',d.get('total',0),'UP');print('\\n'.join(d.get('providers',[])))\"", + "exec": true }, { "id": "cascade_test", "kw": "cascade.*test|test.*cascade|test.*llm|llm.*test", "api": "exec", - "cmd": "curl -s -X POST http://127.0.0.1:4000/v1/chat/completions -H \"Content-Type: application/json\" -d '{\"model\":\"auto\",\"messages\":[{\"role\":\"user\",\"content\":\"ping\"}],\"max_tokens\":5}' --max-time 10" + "cmd": "curl -s -X POST http://127.0.0.1:4000/v1/chat/completions -H \"Content-Type: application/json\" -d '{\"model\":\"auto\",\"messages\":[{\"role\":\"user\",\"content\":\"ping\"}],\"max_tokens\":5}' --max-time 10", + "exec": true }, { "id": "sovereign_status", "kw": "sovereign.*status|status.*sovereign|sovereign.*api", "api": "exec", - "cmd": "curl -s http://127.0.0.1:4000/health --max-time 5" + "cmd": "curl -s http://127.0.0.1:4000/health --max-time 5", + "exec": true }, { "id": "sovereign_health", "kw": "^sovereign$|sovereign.*health|^providers?$|^cascade$", "api": "exec", - "cmd": "curl -s http://127.0.0.1:4000/health --max-time 5" + "cmd": "curl -s http://127.0.0.1:4000/health --max-time 5", + "exec": true }, { "id": "toolhub_count", "kw": "toolhub|tool.*count|combien.*tool|tools.*total|registry.*count", "api": "exec", - "cmd": "python3 -c \"import json;print(len(json.load(open('/var/www/html/api/wevia-tool-registry.json')).get('tools',[]))),'tools')\"" + "cmd": "python3 -c \"import json;print(len(json.load(open('/var/www/html/api/wevia-tool-registry.json')).get('tools',[]))),'tools')\"", + "exec": true }, { "id": "toolhub_list", "kw": "tool.*list|list.*tool|tools.*list", "api": "exec", - "cmd": "python3 -c \"import json;[print(t.get('id','?')) for t in json.load(open('/var/www/html/api/wevia-tool-registry.json')).get('tools',[])[:20]]\"" + "cmd": "python3 -c \"import json;[print(t.get('id','?')) for t in json.load(open('/var/www/html/api/wevia-tool-registry.json')).get('tools',[])[:20]]\"", + "exec": true }, { "id": "s204_status", "kw": "s204.*status|status.*s204", "api": "exec", - "cmd": "echo \"LOAD: $(cat /proc/loadavg)\" && echo \"RAM: $(free -m | grep Mem | awk '{print $3\"/\"$2\"MB\"}')\" && echo \"DISK: $(df -h / | tail -1 | awk '{print $5}')\" && echo \"FPM: $(pgrep -c php-fpm) workers\" && echo \"DOCKER: $(docker ps -q | wc -l) containers\"" + "cmd": "echo \"LOAD: $(cat /proc/loadavg)\" && echo \"RAM: $(free -m | grep Mem | awk '{print $3\"/\"$2\"MB\"}')\" && echo \"DISK: $(df -h / | tail -1 | awk '{print $5}')\" && echo \"FPM: $(pgrep -c php-fpm) workers\" && echo \"DOCKER: $(docker ps -q | wc -l) containers\"", + "exec": true }, { "id": "git_status", "kw": "git.*status|status.*git|git.*dirty", "api": "exec", - "cmd": "cd /var/www/html && echo \"DIRTY: $(git status --short | wc -l)\" && git log --oneline -3" + "cmd": "cd /var/www/html && echo \"DIRTY: $(git status --short | wc -l)\" && git log --oneline -3", + "exec": true }, { "id": "git_push", @@ -2641,19 +2791,22 @@ "id": "wiki_search", "kw": "wiki.*search|search.*wiki|cherch.*wiki", "api": "exec", - "cmd": "ls /opt/weval-l99/wiki/*.json | wc -l && echo entries" + "cmd": "ls /opt/weval-l99/wiki/*.json | wc -l && echo entries", + "exec": true }, { "id": "diagnostic", "kw": "diagnostic|diag|health.*check|system.*check", "api": "exec", - "cmd": "echo \"LOAD: $(cat /proc/loadavg)\" && echo \"RAM: $(free -m | grep Mem)\" && echo \"DISK: $(df -h / | tail -1)\" && echo \"FPM: $(pgrep -c php-fpm)\" && echo \"DOCKER: $(docker ps -q | wc -l)\"" + "cmd": "echo \"LOAD: $(cat /proc/loadavg)\" && echo \"RAM: $(free -m | grep Mem)\" && echo \"DISK: $(df -h / | tail -1)\" && echo \"FPM: $(pgrep -c php-fpm)\" && echo \"DOCKER: $(docker ps -q | wc -l)\"", + "exec": true }, { "id": "system_status", "kw": "system.*status|status.*system|infra.*status", "api": "exec", - "cmd": "echo \"LOAD: $(cat /proc/loadavg)\" && echo \"RAM: $(free -m | grep Mem)\" && echo \"DISK: $(df -h / | tail -1)\"" + "cmd": "echo \"LOAD: $(cat /proc/loadavg)\" && echo \"RAM: $(free -m | grep Mem)\" && echo \"DISK: $(df -h / | tail -1)\"", + "exec": true }, { "id": "backup_gold", @@ -2684,32 +2837,38 @@ "kw": "gap.*detail|gap.*pays|DZ.*MA.*TN", "api": "master", "msg": "ethica gap detail pays", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT pays, COUNT(*) as total, COUNT(email) as emails, COUNT(telephone) as phones FROM ethica.medecins_real GROUP BY pays ORDER BY total DESC\" 2>&1" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT pays, COUNT(*) as total, COUNT(email) as emails, COUNT(telephone) as phones FROM ethica.medecins_real GROUP BY pays ORDER BY total DESC\" 2>&1", + "exec": true }, { "id": "ethica_countries", "kw": "ethica.*pays|pays.*ethica|ethica.*countries|ethica.*repartition", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT pays, COUNT(*) FROM ethica.medecins_real GROUP BY pays ORDER BY COUNT(*) DESC\" 2>&1" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT pays, COUNT(*) FROM ethica.medecins_real GROUP BY pays ORDER BY COUNT(*) DESC\" 2>&1", + "exec": true }, { "id": "ethica_maroc", "kw": "ethica.*maroc|maroc.*medecin|medecins.*maroc|MA.*hcp|hcp.*MA", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT 'Maroc Total:'||COUNT(*)||' Emails:'||COUNT(CASE WHEN email IS NOT NULL AND email!='' AND email LIKE '%@%.%' THEN 1 END)||' Phones:'||COUNT(CASE WHEN telephone IS NOT NULL AND telephone!='' THEN 1 END)||' Google_verif:'||COUNT(CASE WHEN google_verified='t' THEN 1 END) FROM ethica.medecins_real WHERE pays='MA'\" 2>&1" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT 'Maroc Total:'||COUNT(*)||' Emails:'||COUNT(CASE WHEN email IS NOT NULL AND email!='' AND email LIKE '%@%.%' THEN 1 END)||' Phones:'||COUNT(CASE WHEN telephone IS NOT NULL AND telephone!='' THEN 1 END)||' Google_verif:'||COUNT(CASE WHEN google_verified='t' THEN 1 END) FROM ethica.medecins_real WHERE pays='MA'\" 2>&1", + "exec": true }, { "id": "ethica_tunisie", "kw": "ethica.*tunisie|tunisie.*medecin|medecins.*tunisie|TN.*hcp|hcp.*TN", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT 'Tunisie Total:'||COUNT(*)||' Emails:'||COUNT(CASE WHEN email IS NOT NULL AND email!='' AND email LIKE '%@%.%' THEN 1 END)||' Phones:'||COUNT(CASE WHEN telephone IS NOT NULL AND telephone!='' THEN 1 END)||' Google_verif:'||COUNT(CASE WHEN google_verified='t' THEN 1 END) FROM ethica.medecins_real WHERE pays='TN'\" 2>&1" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT 'Tunisie Total:'||COUNT(*)||' Emails:'||COUNT(CASE WHEN email IS NOT NULL AND email!='' AND email LIKE '%@%.%' THEN 1 END)||' Phones:'||COUNT(CASE WHEN telephone IS NOT NULL AND telephone!='' THEN 1 END)||' Google_verif:'||COUNT(CASE WHEN google_verified='t' THEN 1 END) FROM ethica.medecins_real WHERE pays='TN'\" 2>&1", + "exec": true }, { "id": "ethica_algerie", "kw": "ethica.*alger|alger.*medecin|medecins.*alger|DZ.*hcp|hcp.*DZ", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT 'Algerie Total:'||COUNT(*)||' Emails:'||COUNT(CASE WHEN email IS NOT NULL AND email!='' AND email LIKE '%@%.%' THEN 1 END)||' Phones:'||COUNT(CASE WHEN telephone IS NOT NULL AND telephone!='' THEN 1 END)||' Google_verif:'||COUNT(CASE WHEN google_verified='t' THEN 1 END) FROM ethica.medecins_real WHERE pays='DZ'\" 2>&1" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT 'Algerie Total:'||COUNT(*)||' Emails:'||COUNT(CASE WHEN email IS NOT NULL AND email!='' AND email LIKE '%@%.%' THEN 1 END)||' Phones:'||COUNT(CASE WHEN telephone IS NOT NULL AND telephone!='' THEN 1 END)||' Google_verif:'||COUNT(CASE WHEN google_verified='t' THEN 1 END) FROM ethica.medecins_real WHERE pays='DZ'\" 2>&1", + "exec": true }, { "id": "ethica_specialites", "kw": "ethica.*special|specialite.*medecin|repartition.*special", - "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT specialite||chr(58)||COUNT(*) FROM ethica.medecins_real WHERE specialite IS NOT NULL GROUP BY specialite ORDER BY COUNT(*) DESC LIMIT 15\" 2>&1" + "cmd": "PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -t -c \"SELECT specialite||chr(58)||COUNT(*) FROM ethica.medecins_real WHERE specialite IS NOT NULL GROUP BY specialite ORDER BY COUNT(*) DESC LIMIT 15\" 2>&1", + "exec": true }, { "id": "ethica_status", @@ -2725,13 +2884,15 @@ "desc": "Ethica enrichment gaps", "type": "exec", "cmd": "python3 /opt/weval-l99/ecm.py enrichment", - "kw": "enrichment|enrichissement|gap|source|couverture email" + "kw": "enrichment|enrichissement|gap|source|couverture email", + "exec": true }, { "id": "blade_ia_status", "kw": "blade|laptop|agent local", "api": "exec", - "cmd": "/bin/bash -c 'curl -sf -m5 http://127.0.0.1/api/blade-status.php | head -c 300'" + "cmd": "/bin/bash -c 'curl -sf -m5 http://127.0.0.1/api/blade-status.php | head -c 300'", + "exec": true }, { "id": "cortex_status", @@ -2803,67 +2964,78 @@ "id": "wevcode", "kw": "wevcode|code gen|genere code", "api": "master", - "cmd": "echo wevcode.html" + "cmd": "echo wevcode.html", + "exec": true }, { "id": "director", "kw": "director|infra director|observe plan", "api": "master", - "cmd": "/bin/bash -c 'curl -sf -m8 http://127.0.0.1/api/wevia-director.php?status | head -c 300'" + "cmd": "/bin/bash -c 'curl -sf -m8 http://127.0.0.1/api/wevia-director.php?status | head -c 300'", + "exec": true }, { "id": "openclaw", "kw": "openclaw|claw", "api": "master", - "cmd": "echo openclaw.html" + "cmd": "echo openclaw.html", + "exec": true }, { "id": "hermes", "kw": "hermes|messaging", "api": "master", - "cmd": "echo wevia-chat.html" + "cmd": "echo wevia-chat.html", + "exec": true }, { "id": "kilodroid", "kw": "kilodroid|droid", "api": "master", - "cmd": "echo droid-terminal.html" + "cmd": "echo droid-terminal.html", + "exec": true }, { "id": "coderabbit", "kw": "coderabbit|pr review", "api": "master", - "cmd": "echo coderabbit-webhook" + "cmd": "echo coderabbit-webhook", + "exec": true }, { "id": "reconcile_check", "kw": "reconcil|conflit|port.*occup|session.*parallel", "api": "exec", - "cmd": "echo PORTS:40 DOCKER:10 LOAD: FPM:21 CRONS:4 DIRTY:14" + "cmd": "echo PORTS:40 DOCKER:10 LOAD: FPM:21 CRONS:4 DIRTY:14", + "exec": true }, { "id": "pages_live_test", "kw": "page.*cass|page.*500|page.*404|page.*test|pages.*live", "api": "exec", - "cmd": "for p in wevia-master blade-ai weval-arena growth-engine-v2 director ops-center wevcode agents-archi; do printf \"%s:%s \" $p $(curl -so/dev/null -w%{http_code} -m2 http://127.0.0.1:8443/$p.html); done" + "cmd": "for p in wevia-master blade-ai weval-arena growth-engine-v2 director ops-center wevcode agents-archi; do printf \"%s:%s \" $p $(curl -so/dev/null -w%{http_code} -m2 http://127.0.0.1:8443/$p.html); done", + "exec": true }, { "id": "qa_playwright", "kw": "playwright|e2e|test.*page", "api": "exec", - "cmd": "curl -s http://127.0.0.1:8443/api/wevia-qa-hub.php?action=playwright" + "cmd": "curl -s http://127.0.0.1:8443/api/wevia-qa-hub.php?action=playwright", + "exec": true }, { "id": "qa_selenium", "kw": "selenium|chrome.*test", "api": "exec", - "cmd": "curl -s http://127.0.0.1:8443/api/wevia-qa-hub.php?action=selenium" + "cmd": "curl -s http://127.0.0.1:8443/api/wevia-qa-hub.php?action=selenium", + "exec": true }, { "id": "qa_full", "kw": "qa.*complet|test.*complet|qa.*hub", "api": "exec", - "cmd": "curl -s http://127.0.0.1:8443/api/wevia-qa-hub.php?action=full" + "cmd": "curl -s http://127.0.0.1:8443/api/wevia-qa-hub.php?action=full", + "exec": true }, { "id": "qa_hub", @@ -2876,21 +3048,24 @@ "name": "Nuclei Scanner", "kw": "nuclei.*live|nuclei.*status|nuclei.*scan|nuclei.*engine", "api": "exec", - "cmd": "/bin/bash -c 'curl -sf -m8 http://127.0.0.1/api/nuclei-scanner.php?action=status'" + "cmd": "/bin/bash -c 'curl -sf -m8 http://127.0.0.1/api/nuclei-scanner.php?action=status'", + "exec": true }, { "id": "consensus_live", "name": "Consensus Multi-IA", "kw": "consensus|multi ia|vote", "api": "exec", - "cmd": "/bin/bash -c 'curl -sf -m5 http://127.0.0.1:4000/health'" + "cmd": "/bin/bash -c 'curl -sf -m5 http://127.0.0.1:4000/health'", + "exec": true }, { "id": "finetune_brain", "name": "Fine-Tune Brain", "kw": "finetune|fine-tune|train model|entrainer brain", "api": "exec", - "cmd": "echo FINETUNE: Dataset 5751 on HF yace222/weval-brain-v4. Kaggle ready. Qwen2.5-3B QLoRA" + "cmd": "echo FINETUNE: Dataset 5751 on HF yace222/weval-brain-v4. Kaggle ready. Qwen2.5-3B QLoRA", + "exec": true }, { "id": "roster_summary", @@ -2932,7 +3107,8 @@ "id": "deerflow_restart", "kw": "relance.*deerflow|restart.*deerflow|deerflow.*down|deerflow.*mort", "api": "exec", - "cmd": "ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@127.0.0.1 'systemctl restart deerflow deerflow-web' && echo DEERFLOW_RESTARTED" + "cmd": "ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@127.0.0.1 'systemctl restart deerflow deerflow-web' && echo DEERFLOW_RESTARTED", + "exec": true }, { "id": "qdrant_ingest", @@ -2944,37 +3120,43 @@ "id": "qdrant_768_count", "kw": "qdrant.*768|embed.*count|combien.*embed", "api": "exec", - "cmd": "curl -s localhost:6333/collections/wevia_kb_768 | python3 -c \"import json,sys; d=json.load(sys.stdin); print('wevia_kb_768:', d.get('result',{}).get('points_count',0), 'points')\"" + "cmd": "curl -s localhost:6333/collections/wevia_kb_768 | python3 -c \"import json,sys; d=json.load(sys.stdin); print('wevia_kb_768:', d.get('result',{}).get('points_count',0), 'points')\"", + "exec": true }, { "id": "blade_browser", "kw": "blade.*ouvre|blade.*chrome|blade.*navigateur|ouvre.*chrome.*blade", "api": "exec", - "cmd": "python3 -c \"import json,time; t={'id':'browser-'+str(int(time.time())),'type':'browser','cmd':'Start-Process chrome.exe','status':'pending','created':time.strftime('%Y-%m-%dT%H:%M:%S')}; json.dump(t,open('/var/www/html/api/blade-tasks/browser-task.json','w')); print('BLADE_TASK_CREATED:', t['id'])\"" + "cmd": "python3 -c \"import json,time; t={'id':'browser-'+str(int(time.time())),'type':'browser','cmd':'Start-Process chrome.exe','status':'pending','created':time.strftime('%Y-%m-%dT%H:%M:%S')}; json.dump(t,open('/var/www/html/api/blade-tasks/browser-task.json','w')); print('BLADE_TASK_CREATED:', t['id'])\"", + "exec": true }, { "id": "service_restart", "kw": "relance.*service|restart.*service|service.*down|service.*mort", "api": "exec", - "cmd": "echo 'Usage: specify service name (deerflow, ollama, sovereign, nginx)'" + "cmd": "echo 'Usage: specify service name (deerflow, ollama, sovereign, nginx)'", + "exec": true }, { "id": "ollama_embed_test", "kw": "test.*embed|embed.*test|embedding.*test", "api": "exec", - "cmd": "curl -s localhost:11434/api/embed -d '{\"model\":\"nomic-embed-text\",\"input\":\"test WEVAL\"}' | python3 -c \"import json,sys; d=json.load(sys.stdin); e=d.get('embeddings',[[]])[0]; print(f'OK: {len(e)} dims')\"" + "cmd": "curl -s localhost:11434/api/embed -d '{\"model\":\"nomic-embed-text\",\"input\":\"test WEVAL\"}' | python3 -c \"import json,sys; d=json.load(sys.stdin); e=d.get('embeddings',[[]])[0]; print(f'OK: {len(e)} dims')\"", + "exec": true }, { "id": "ethica_consent_real", "kw": "consent.*reel|vrai.*consent|opt.in.*reel|combien.*consent", "api": "exec", - "cmd": "ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"sudo -u postgres psql -d adx_system -t -c \\\"SELECT 'consent_log:' || count(*) FROM ethica.consent_log UNION ALL SELECT 'validated_optin:' || count(*) FROM ethica.medecins_validated WHERE consent_status=true\\\"\"" + "cmd": "ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"sudo -u postgres psql -d adx_system -t -c \\\"SELECT 'consent_log:' || count(*) FROM ethica.consent_log UNION ALL SELECT 'validated_optin:' || count(*) FROM ethica.medecins_validated WHERE consent_status=true\\\"\"", + "exec": true }, { "id": "send_status", "kw": "send.*status|envoi.*status|capacit.*envoi|sender.*status|warmup", "api": "exec", - "cmd": "curl -s 'http://127.0.0.1/api/send-controller.php?action=status&token=WEVADS2026'" + "cmd": "curl -s 'http://127.0.0.1/api/send-controller.php?action=status&token=WEVADS2026'", + "exec": true }, { "id": "dkim_check", @@ -2986,7 +3168,8 @@ "id": "sender_activate", "kw": "active.*sender|sender.*activ|reactiv.*sender", "api": "exec", - "cmd": "curl -s 'http://127.0.0.1/api/send-controller.php?action=status&token=WEVADS2026' | python3 -c \"import json,sys; d=json.load(sys.stdin); print(f'Available:{d[\\\"graph\\\"][\\\"senders_available\\\"]} Seeds:{d[\\\"graph\\\"][\\\"seeds_total\\\"]} Sent:{d[\\\"graph\\\"][\\\"total_sent_alltime\\\"]}')\"" + "cmd": "curl -s 'http://127.0.0.1/api/send-controller.php?action=status&token=WEVADS2026' | python3 -c \"import json,sys; d=json.load(sys.stdin); print(f'Available:{d[\\\"graph\\\"][\\\"senders_available\\\"]} Seeds:{d[\\\"graph\\\"][\\\"seeds_total\\\"]} Sent:{d[\\\"graph\\\"][\\\"total_sent_alltime\\\"]}')\"", + "exec": true }, { "id": "ethica_campaign", @@ -2998,25 +3181,29 @@ "id": "consent_stats_live", "kw": "consent.*stats|optin.*stats|combien.*optin", "api": "exec", - "cmd": "curl -s 'https://consent.wevup.app/api/ethica-consent-api.php?action=stats'" + "cmd": "curl -s 'https://consent.wevup.app/api/ethica-consent-api.php?action=stats'", + "exec": true }, { "id": "send_test_email", "kw": "envoie.*test|send.*test|email.*test|test.*email|seed.*test", "api": "exec", - "cmd": "curl -s -X POST 'http://127.0.0.1/api/send-controller.php?action=seed_test&token=WEVADS2026' --data-urlencode 'to=yacineutt@gmail.com' --data-urlencode 'subject=WEVIA Test Email' --data-urlencode 'html=
Test depuis WEVIA Master
' --data-urlencode 'from_name=WEVIA Master' --data-urlencode 'method=pmta' --data-urlencode 'limit=1'" + "cmd": "curl -s -X POST 'http://127.0.0.1/api/send-controller.php?action=seed_test&token=WEVADS2026' --data-urlencode 'to=yacineutt@gmail.com' --data-urlencode 'subject=WEVIA Test Email' --data-urlencode 'html=Test depuis WEVIA Master
' --data-urlencode 'from_name=WEVIA Master' --data-urlencode 'method=pmta' --data-urlencode 'limit=1'", + "exec": true }, { "id": "gmail_check_inbox", "kw": "check.*mail|verif.*mail|inbox|recu.*mail|email.*recu|gmail", "api": "exec", - "cmd": "echo 'Gmail check requires MCP - use Claude Opus Gmail:search_threads tool'" + "cmd": "echo 'Gmail check requires MCP - use Claude Opus Gmail:search_threads tool'", + "exec": true }, { "id": "deliverability_check", "kw": "deliverabilit|delivr|inbox.*rate|spf.*check|dkim.*verif", "api": "exec", - "cmd": "curl -s 'https://dns.google/resolve?name=wevup.app&type=TXT' | python3 -c \"import json,sys; d=json.load(sys.stdin); spf=[a['data'] for a in d.get('Answer',[]) if 'spf' in a.get('data','')]; print('SPF:',spf[0][:60] if spf else 'MISSING')\" && curl -s 'https://dns.google/resolve?name=_dmarc.wevup.app&type=TXT' | python3 -c \"import json,sys; d=json.load(sys.stdin); print('DMARC:',[a['data'] for a in d.get('Answer',[])][:1])\" && curl -s 'https://dns.google/resolve?name=s1._domainkey.wevup.app&type=TXT' | python3 -c \"import json,sys; d=json.load(sys.stdin); print('DKIM:', 'OK' if d.get('Answer') else 'MISSING')\"" + "cmd": "curl -s 'https://dns.google/resolve?name=wevup.app&type=TXT' | python3 -c \"import json,sys; d=json.load(sys.stdin); spf=[a['data'] for a in d.get('Answer',[]) if 'spf' in a.get('data','')]; print('SPF:',spf[0][:60] if spf else 'MISSING')\" && curl -s 'https://dns.google/resolve?name=_dmarc.wevup.app&type=TXT' | python3 -c \"import json,sys; d=json.load(sys.stdin); print('DMARC:',[a['data'] for a in d.get('Answer',[])][:1])\" && curl -s 'https://dns.google/resolve?name=s1._domainkey.wevup.app&type=TXT' | python3 -c \"import json,sys; d=json.load(sys.stdin); print('DKIM:', 'OK' if d.get('Answer') else 'MISSING')\"", + "exec": true }, { "id": "warmup_status", @@ -3039,7 +3226,8 @@ "id": "office_capacity", "kw": "office.*capac|o365.*capacity|combien.*comptes|office.*status|sender.*capacity", "api": "exec", - "cmd": "ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"sudo -u postgres psql -d adx_system -t -c \\\"SELECT status, count(*) FROM admin.office_accounts GROUP BY 1 ORDER BY 2 DESC\\\"\"" + "cmd": "ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"sudo -u postgres psql -d adx_system -t -c \\\"SELECT status, count(*) FROM admin.office_accounts GROUP BY 1 ORDER BY 2 DESC\\\"\"", + "exec": true }, { "id": "office_pipeline", @@ -3057,7 +3245,8 @@ "id": "office_live_count", "kw": "office.*live|comptes.*live|accounts.*live|combien.*live", "api": "exec", - "cmd": "ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"sudo -u postgres psql -d adx_system -t -c \\\"SELECT current_step, count(*) FROM admin.office_accounts WHERE status='Active' GROUP BY 1 ORDER BY 1\\\"\"" + "cmd": "ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"sudo -u postgres psql -d adx_system -t -c \\\"SELECT current_step, count(*) FROM admin.office_accounts WHERE status='Active' GROUP BY 1 ORDER BY 1\\\"\"", + "exec": true }, { "id": "sse_stream_test", @@ -3069,29 +3258,34 @@ "id": "graph_send_test", "kw": "graph.*send|envoie.*graph|o365.*send|send.*graph", "api": "exec", - "cmd": "curl -s -X POST 'http://127.0.0.1/api/wevads-v2-engine.php?action=send_graph&token=WEVADS2026' --data-urlencode 'to=yacineutt@gmail.com' --data-urlencode 'subject=WEVIA Master Graph Test' --data-urlencode 'html=Test Graph API via WEVIA Master
'" + "cmd": "curl -s -X POST 'http://127.0.0.1/api/wevads-v2-engine.php?action=send_graph&token=WEVADS2026' --data-urlencode 'to=yacineutt@gmail.com' --data-urlencode 'subject=WEVIA Master Graph Test' --data-urlencode 'html=Test Graph API via WEVIA Master
'", + "exec": true }, { "id": "gmail_inbox_status", "kw": "gmail.*inbox|inbox.*check|email.*recu|check.*mail|verif.*inbox", "api": "exec", - "cmd": "echo 'Gmail inbox check requires Opus MCP or Blade Chrome. Blade task gmail-inbox-check pending (34 tasks). Use: Opus Gmail:search_threads or Blade Chrome automation.'" + "cmd": "echo 'Gmail inbox check requires Opus MCP or Blade Chrome. Blade task gmail-inbox-check pending (34 tasks). Use: Opus Gmail:search_threads or Blade Chrome automation.'", + "exec": true }, { "id": "listmonk_status", "kw": "listmonk|mailer.*oss|newsletter", "api": "exec", - "cmd": "curl -s -o /dev/null -w 'Listmonk: %{http_code}' http://127.0.0.1:9997/ && docker ps --filter name=listmonk --format ' | {{.Status}}'" + "cmd": "curl -s -o /dev/null -w 'Listmonk: %{http_code}' http://127.0.0.1:9997/ && docker ps --filter name=listmonk --format ' | {{.Status}}'", + "exec": true }, { "id": "apache_s95_health", "kw": "apache.*s95|s95.*apache|wevads.*apache|arsenal.*health|apache.*status", - "cmd": "curl -s -o /dev/null -w 'WEVADS_HTTP:%{http_code}' https://wevads.weval-consulting.com/index.php --max-time 5 2>&1 && echo ' S95_check'" + "cmd": "curl -s -o /dev/null -w 'WEVADS_HTTP:%{http_code}' https://wevads.weval-consulting.com/index.php --max-time 5 2>&1 && echo ' S95_check'", + "exec": true }, { "id": "apache_s95_restart", "kw": "restart.*apache.*s95|reboot.*wevads|relance.*arsenal", - "cmd": "sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 'systemctl restart apache2 && sleep 2 && systemctl is-active apache2' 2>&1" + "cmd": "sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 'systemctl restart apache2 && sleep 2 && systemctl is-active apache2' 2>&1", + "exec": true }, { "id": "vault_status", @@ -3117,268 +3311,320 @@ "id": "whisper_transcribe", "kw": "whisper|transcri|audio.*text|voice.*text|speech.*text", "api": "exec", - "cmd": "/opt/whisper.cpp/build/bin/whisper-cli -m /opt/whisper.cpp/models/ggml-base.bin --help 2>&1 | head -1" + "cmd": "/opt/whisper.cpp/build/bin/whisper-cli -m /opt/whisper.cpp/models/ggml-base.bin --help 2>&1 | head -1", + "exec": true }, { "id": "social_media_scan", "kw": "social|linkedin|youtube|instagram|tiktok|meta|snapchat", "api": "exec", - "cmd": "python3 /opt/weval-l99/social-scanner.py all" + "cmd": "python3 /opt/weval-l99/social-scanner.py all", + "exec": true }, { "id": "social_media_reco", "kw": "reco.*social|post.*idea|content.*idea", "api": "http", - "cmd": "curl -s http://127.0.0.1/api/social-media-api.php?action=reco" + "cmd": "curl -s http://127.0.0.1/api/social-media-api.php?action=reco", + "exec": true }, { "id": "social_media_schedule", "kw": "schedule.*social|calendrier.*post|planning.*contenu", "api": "http", - "cmd": "curl -s http://127.0.0.1/api/social-media-api.php?action=schedule" + "cmd": "curl -s http://127.0.0.1/api/social-media-api.php?action=schedule", + "exec": true }, { "id": "contract_manage", "kw": "contrat|contract|nda|sla|juridique|legal", "api": "http", - "cmd": "curl -s http://127.0.0.1/api/contract-api.php" + "cmd": "curl -s http://127.0.0.1/api/contract-api.php", + "exec": true }, { "id": "invoice_manage", "kw": "facture|invoice|billing|facturation", "api": "http", - "cmd": "curl -s http://127.0.0.1/api/invoice-api.php" + "cmd": "curl -s http://127.0.0.1/api/invoice-api.php", + "exec": true }, { "id": "quote_manage", "kw": "devis|quote|estimation|chiffrage", "api": "http", - "cmd": "curl -s http://127.0.0.1/api/quote-api.php" + "cmd": "curl -s http://127.0.0.1/api/quote-api.php", + "exec": true }, { "id": "agent_stripe_revenue_agent", "kw": "agent_stripe_revenue_agent|stripe revenue agent agent|stripe revenue agent.*status.*agent|check agent stripe revenue agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_stripe_revenue_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_stripe_revenue_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_invoice_ai_agent", "kw": "agent_invoice_ai_agent|invoice ai agent agent|invoice ai agent.*status.*agent|check agent invoice ai agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_invoice_ai_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_invoice_ai_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_contract_ai_agent", "kw": "agent_contract_ai_agent|contract ai agent agent|contract ai agent.*status.*agent|check agent contract ai agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_contract_ai_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_contract_ai_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_cash_flow_monitor_agent", "kw": "agent_cash_flow_monitor_agent|cash flow monitor agent agent|cash flow monitor agent.*status.*agent|check agent cash flow monitor agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cash_flow_monitor_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cash_flow_monitor_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_budget_variance_agent", "kw": "agent_budget_variance_agent|budget variance agent agent|budget variance agent.*status.*agent|check agent budget variance agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_budget_variance_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_budget_variance_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_profit_center_agent", "kw": "agent_profit_center_agent|profit center agent agent|profit center agent.*status.*agent|check agent profit center agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_profit_center_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_profit_center_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_cost_allocation_agent", "kw": "agent_cost_allocation_agent|cost allocation agent agent|cost allocation agent.*status.*agent|check agent cost allocation agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cost_allocation_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cost_allocation_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_mql_scoring_agent", "kw": "agent_mql_scoring_agent|mql scoring agent agent|mql scoring agent.*status.*agent|check agent mql scoring agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_mql_scoring_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_mql_scoring_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_conversion_tracker", "kw": "agent_conversion_tracker|conversion tracker agent|conversion tracker.*status.*agent|check agent conversion tracker", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_conversion_tracker.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_conversion_tracker.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_cac_calculator", "kw": "agent_cac_calculator|cac calculator agent|cac calculator.*status.*agent|check agent cac calculator", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cac_calculator.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cac_calculator.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_deliverability_agent", "kw": "agent_deliverability_agent|deliverability agent agent|deliverability agent.*status.*agent|check agent deliverability agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_deliverability_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_deliverability_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_pipeline_agent", "kw": "agent_pipeline_agent|pipeline agent agent|pipeline agent.*status.*agent|check agent pipeline agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_pipeline_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_pipeline_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_quote_ai_agent", "kw": "agent_quote_ai_agent|quote ai agent agent|quote ai agent.*status.*agent|check agent quote ai agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_quote_ai_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_quote_ai_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_pipeline_value_agent", "kw": "agent_pipeline_value_agent|pipeline value agent agent|pipeline value agent.*status.*agent|check agent pipeline value agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_pipeline_value_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_pipeline_value_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_deal_closing_agent", "kw": "agent_deal_closing_agent|deal closing agent agent|deal closing agent.*status.*agent|check agent deal closing agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_deal_closing_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_deal_closing_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_vendor_mgmt_agent", "kw": "agent_vendor_mgmt_agent|vendor mgmt agent agent|vendor mgmt agent.*status.*agent|check agent vendor mgmt agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_vendor_mgmt_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_vendor_mgmt_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_po_auto_agent", "kw": "agent_po_auto_agent|po auto agent agent|po auto agent.*status.*agent|check agent po auto agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_po_auto_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_po_auto_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_lead_time_monitor", "kw": "agent_lead_time_monitor|lead time monitor agent|lead time monitor.*status.*agent|check agent lead time monitor", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_lead_time_monitor.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_lead_time_monitor.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_stockout_predictor", "kw": "agent_stockout_predictor|stockout predictor agent|stockout predictor.*status.*agent|check agent stockout predictor", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_stockout_predictor.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_stockout_predictor.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_oee_tracker_agent", "kw": "agent_oee_tracker_agent|oee tracker agent agent|oee tracker agent.*status.*agent|check agent oee tracker agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_oee_tracker_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_oee_tracker_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_cycle_time_agent", "kw": "agent_cycle_time_agent|cycle time agent agent|cycle time agent.*status.*agent|check agent cycle time agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cycle_time_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cycle_time_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_quality_agent", "kw": "agent_quality_agent|quality agent agent|quality agent.*status.*agent|check agent quality agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_quality_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_quality_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_takt_monitor", "kw": "agent_takt_monitor|takt monitor agent|takt monitor.*status.*agent|check agent takt monitor", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_takt_monitor.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_takt_monitor.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_bench_mgmt_agent", "kw": "agent_bench_mgmt_agent|bench mgmt agent agent|bench mgmt agent.*status.*agent|check agent bench mgmt agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_bench_mgmt_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_bench_mgmt_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_utilization_agent", "kw": "agent_utilization_agent|utilization agent agent|utilization agent.*status.*agent|check agent utilization agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_utilization_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_utilization_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_cv_matcher", "kw": "agent_cv_matcher|cv matcher agent|cv matcher.*status.*agent|check agent cv matcher", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cv_matcher.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_cv_matcher.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_placement_agent", "kw": "agent_placement_agent|placement agent agent|placement agent.*status.*agent|check agent placement agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_placement_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_placement_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_mttr_tracker", "kw": "agent_mttr_tracker|mttr tracker agent|mttr tracker.*status.*agent|check agent mttr tracker", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_mttr_tracker.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_mttr_tracker.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_warmup_scale_agent", "kw": "agent_warmup_scale_agent|warmup scale agent agent|warmup scale agent.*status.*agent|check agent warmup scale agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_warmup_scale_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_warmup_scale_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_inbox_monitor", "kw": "agent_inbox_monitor|inbox monitor agent|inbox monitor.*status.*agent|check agent inbox monitor", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_inbox_monitor.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_inbox_monitor.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_seed_generator", "kw": "agent_seed_generator|seed generator agent|seed generator.*status.*agent|check agent seed generator", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_seed_generator.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_seed_generator.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_conversion_puller", "kw": "agent_conversion_puller|conversion puller agent|conversion puller.*status.*agent|check agent conversion puller", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_conversion_puller.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_conversion_puller.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_campaign_launcher", "kw": "agent_campaign_launcher|campaign launcher agent|campaign launcher.*status.*agent|check agent campaign launcher", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_campaign_launcher.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_campaign_launcher.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_consent_tracker", "kw": "agent_consent_tracker|consent tracker agent|consent tracker.*status.*agent|check agent consent tracker", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_consent_tracker.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_consent_tracker.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_secret_rotator", "kw": "agent_secret_rotator|secret rotator agent|secret rotator.*status.*agent|check agent secret rotator", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_secret_rotator.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_secret_rotator.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_gdpr_auditor", "kw": "agent_gdpr_auditor|gdpr auditor agent|gdpr auditor.*status.*agent|check agent gdpr auditor", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_gdpr_auditor.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_gdpr_auditor.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_ci_cd_agent", "kw": "agent_ci_cd_agent|ci cd agent agent|ci cd agent.*status.*agent|check agent ci cd agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_ci_cd_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_ci_cd_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_lead_time_dora", "kw": "agent_lead_time_dora|lead time dora agent|lead time dora.*status.*agent|check agent lead time dora", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_lead_time_dora.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_lead_time_dora.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_poc_manager", "kw": "agent_poc_manager|poc manager agent|poc manager.*status.*agent|check agent poc manager", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_poc_manager.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_poc_manager.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_arxiv_scanner", "kw": "agent_arxiv_scanner|arxiv scanner agent|arxiv scanner.*status.*agent|check agent arxiv scanner", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_arxiv_scanner.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_arxiv_scanner.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_ip_tracker", "kw": "agent_ip_tracker|ip tracker agent|ip tracker.*status.*agent|check agent ip tracker", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_ip_tracker.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_ip_tracker.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_okr_tracker", "kw": "agent_okr_tracker|okr tracker agent|okr tracker.*status.*agent|check agent okr tracker", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_okr_tracker.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_okr_tracker.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_review_scheduler", "kw": "agent_review_scheduler|review scheduler agent|review scheduler.*status.*agent|check agent review scheduler", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_review_scheduler.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_review_scheduler.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_partnership_agent", "kw": "agent_partnership_agent|partnership agent agent|partnership agent.*status.*agent|check agent partnership agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_partnership_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_partnership_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "agent_board_report_agent", "kw": "agent_board_report_agent|board report agent agent|board report agent.*status.*agent|check agent board report agent", - "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_board_report_agent.php' -H 'Host: weval-consulting.com' | jq ." + "cmd": "curl -sk --max-time 5 'http://127.0.0.1/api/agent-stubs/agent_board_report_agent.php' -H 'Host: weval-consulting.com' | jq .", + "exec": true }, { "id": "doctrine_108_read", @@ -3392,35 +3638,40 @@ "kw": "contraintes site|regles site public|site public rules|doctrine site|zero doctrine site|que respecter site", "api": "exec", "cmd": "echo 'REGLES SITE PUBLIC (doctrine 108) ===' && echo 'POSITIONNEMENT:' && echo '- WEVAL Consulting = nom societe (JAMAIS nom de suite)' && echo '- Offre conseil = WEVAL Advisory' && echo '- Ethica = CLIENT, produit HCP = ReachHCP' && echo '- Partenaire Ecosysteme SAP (PAS Gold Partner)' && echo '- Portee MONDIALE (jamais TN/MA/DZ)' && echo '' && echo 'CONFIDENTIALITE:' && echo '- JAMAIS afficher noms clients publiquement' && echo '- Seuls partenaires OK: SAP, Huawei Cloud, Vistex, Arrow, Scaleway' && echo '' && echo 'REBRANDING:' && echo 'Paperclip->ProjectFlow DeerFlow->ResearchFlow MiroFish->BoardFlow OSS Discovery->StackScan Cowork->WEVIA Desk' && echo '' && echo 'ZERO doctrine: zero suppression/fake/hardcode/regression/send auto/ecrasement sans autorisation'", - "desc": "Public site constraints digest per doctrine 108" + "desc": "Public site constraints digest per doctrine 108", + "exec": true }, { "id": "site_build_missing_products", "kw": "genere.*pages.*manquantes|build.*missing.*pages|cree.*pages produits|build_all.*products|regenere.*pages produits|site builder|site build all", "api": "exec", "cmd": "php /opt/weval-l99/wevia-site-builder.php build_all 2>&1 | tail -20", - "desc": "Build all missing rebranded product pages per doctrine 108" + "desc": "Build all missing rebranded product pages per doctrine 108", + "exec": true }, { "id": "site_scan_forbidden_refs", "kw": "scan.*forbidden|scan.*sap gold|audit site public|cherche.*sap gold|cherche.*noms clients|site compliance|doctrine 108 scan", "api": "exec", "cmd": "php /opt/weval-l99/wevia-site-builder.php scan_forbidden 2>&1 | head -30", - "desc": "Scan public site for doctrine 108 forbidden terms (SAP Gold, client names)" + "desc": "Scan public site for doctrine 108 forbidden terms (SAP Gold, client names)", + "exec": true }, { "id": "wevia_em_read", "kw": "wevia em|c est quoi wevia em|enterprise model|wevia enterprise model|flagship wevia|wevia-em", "api": "exec", "cmd": "echo 'WEVIA EM - Enterprise Model (FLAGSHIP WEVIA)' && echo '' && echo 'Positionnement: L IA souveraine qui orchestre la valeur de bout en bout.' && echo '' && echo 'Definition: Plateforme d orchestration multi-agents IA qui couvre l integralite de la value chain et des process metier.' && echo '' && echo '9 METIERS couverts:' && echo '- Finance: P&L, previsions, facturation, audit automatises' && echo '- RH: Sourcing, onboarding, formation, gestion talents' && echo '- Marketing: Ciblage, contenu, campagnes, analytics' && echo '- Commerce: Leads, proposals, CRM, closing' && echo '- Supply Chain: Collecte, enrichissement, routage, livraison' && echo '- Achats: RFP, evaluation fournisseurs, negociation, contrats' && echo '- Production: Qualite, assemblage, tests, expedition' && echo '- SI/Infra: Monitoring, deploiement, scaling, securite' && echo '- QA/Cyber: Tests auto, audits, patching, conformite' && echo '' && echo 'Methodology: Lean Six Sigma DMAIC + BPMN + IA souveraine, pilote par comex' && echo '' && echo 'Offre commerciale:' && echo '- POC gratuit 2 semaines (1 VSM cartographie)' && echo '- MVP 1 mois (3-5 Value Streams, KPIs live)' && echo '- Full Enterprise 3 mois (15 depots, 930 agents, couverture totale)' && echo '' && echo 'Resultats types: -40% delais pilotage, 1.2 MEUR gaspillage identifie, ROI 4 mois, zero regression DMAIC' && echo '' && echo 'Page produit: https://weval-consulting.com/products/wevia-em.html' && echo 'Page suite: https://weval-consulting.com/solutions/wevia-enterprise.html'", - "desc": "Detail complet du flagship WEVIA EM (Enterprise Model)" + "desc": "Detail complet du flagship WEVIA EM (Enterprise Model)", + "exec": true }, { "id": "linkedin_weval_url", "kw": "linkedin weval|ou trouve.*linkedin|url linkedin|page linkedin|linkedin entreprise|reseaux sociaux weval", "api": "exec", "cmd": "echo 'LinkedIn WEVAL:' && echo '' && echo 'Principal: https://www.linkedin.com/company/weval (921 abonnes)' && echo 'Pharma: https://www.linkedin.com/company/weval-life-science (501 abonnes)' && echo 'Consulting: https://www.linkedin.com/company/weval-consulting' && echo 'CEO: https://www.linkedin.com/in/yacinemahboub' && echo '' && echo 'Depuis le 18-avril-2026, toutes les pages produit (/products/*.html) et pages suites (/solutions/*.html) affichent le lien LinkedIn dans le footer.'", - "desc": "URLs LinkedIn WEVAL" + "desc": "URLs LinkedIn WEVAL", + "exec": true }, { "id": "solutions_pages_list", @@ -3434,21 +3685,24 @@ "kw": "rebuild.*index.*products|refonte.*products index|regenere.*products index|generate.*index", "api": "exec", "cmd": "php /opt/weval-l99/wevia-site-builder.php build_index 2>&1 | head -5", - "desc": "Generate /products/index.html (4 flagships + catalogue + 7 suites)" + "desc": "Generate /products/index.html (4 flagships + catalogue + 7 suites)", + "exec": true }, { "id": "erp_intelligence_suite_read", "kw": "erp intelligence|agents gaps|wevanalytics|gaps erp|combler erp|20% manquants|suite erp", "api": "exec", "cmd": "echo 'SUITE WEVAL ERP Intelligence' && echo '' && echo 'Positionnement : Votre ERP fait 80%. Nous faisons les 20% manquants.' && echo '' && echo '3 apps :' && echo '- Arsenal : Framework ERP Intelligence, 150+ ecrans modulaires, Brain Engine IA, cross-ERP' && echo '- WEVANALYTICS : Analytics cross-ERP, modele semantique unifie, NL queries, alertes predictives' && echo '- Agents Gaps : 30+ agents IA par lacune business (rapprochement bancaire, matching fournisseurs, scoring credit, previsions demande, optimisation stock, exceptions SC, reconciliations, audit continu)' && echo '' && echo 'Cible : entreprises avec ERP en place (SAP, Oracle, Odoo, Salesforce, custom) rencontrant des limites fonctionnelles.' && echo '' && echo 'Pas de remplacement - deploiement incremental - cross-ERP natif - standards enterprise (SSO, RBAC, audit, RGPD, AI Act).' && echo '' && echo 'Pages : /solutions/erp-intelligence.html + /products/arsenal.html + /products/wevanalytics.html + /products/agents-gaps.html'", - "desc": "Detail suite WEVAL ERP Intelligence (Arsenal + WEVANALYTICS + Agents Gaps)" + "desc": "Detail suite WEVAL ERP Intelligence (Arsenal + WEVANALYTICS + Agents Gaps)", + "exec": true }, { "id": "agents_gaps_read", "kw": "que fait agents gaps|liste agents gaps|catalogue agents ia|quels agents business", "api": "exec", "cmd": "echo 'Agents Gaps - Catalogue IA agents par lacune ERP' && echo '' && echo '9 agents principaux :' && echo '- Rapprochement bancaire : matching releves bancaires vs ecritures ERP, taux auto >95%' && echo '- Matching fournisseurs-factures : 3-way matching PO-BL-facture, tolerances adaptatives' && echo '- Scoring credit clients : temps reel, data interne + externe, limites proposees' && echo '- Prevision demande : multi-modele ARIMA/Prophet/LSTM, saisonnalites, promotions' && echo '- Optimisation stock : multi-sites, arbitrage reassort/transferts/safety stocks' && echo '- Exceptions supply chain : gestion proactive retards, alternatives fournisseurs' && echo '- Reconciliation intercos : detection ecarts, rapprochement auto, cloture multi-entites' && echo '- Audit continu : segregation taches, acces sensibles, depassements seuils' && echo '- Extensible via API : chaque agent = 1 API, orchestrable via WEVIA Master' && echo '' && echo 'Deploiement par agent, 2-6 semaines, ROI 3 mois moyen.'", - "desc": "Catalogue complet des agents IA de combat des gaps ERP" + "desc": "Catalogue complet des agents IA de combat des gaps ERP", + "exec": true }, { "id": "catalogue_stats", @@ -3462,24 +3716,28 @@ "kw": "consulting pro|c est quoi consulting.pro|wevalconsulting pro|produit consulting", "api": "exec", "cmd": "echo 'CONSULTING PRO - conseil senior a la demande' && echo '' && echo 'Positionnement: Un directeur d experience a votre table de direction.' && echo '' && echo 'Definition: Interventions de conseil senior a la demande. Directeurs techniques, architectes IA, DSI transformes. Missions cadrees sur KPIs contractuels, engagement au ROI, livrables mesurables. Ideal pour de-risquer une transformation, arbitrer une stack technique, ou cadrer un programme strategique.' && echo '' && echo 'Stats:' && echo '- 10+ annees experience minimum' && echo '- ROI contractuel' && echo '- KPIs mesurables' && echo '- Europe + MENA' && echo '' && echo '6 types d intervention:' && echo '- Diagnostic flash (audit 2-5 jours, livrable directeur executif)' && echo '- Sparring strategique (conseiller senior continu)' && echo '- Architecture et design (revue + recommandations)' && echo '- Program management (PMP senior, coordination multi-equipes)' && echo '- Due diligence (tech, code, infra, equipe, scalability)' && echo '- Fractional leadership (CTO CIO CDO temps partage 6-12 mois)' && echo '' && echo 'Page: https://weval-consulting.com/products/consulting-pro.html' && echo 'Suite: WEVAL Advisory (6 apps)' && echo 'Facturation: forfait mission ou jour-homme'", - "desc": "Consulting Pro detail - conseil senior a la demande" + "desc": "Consulting Pro detail - conseil senior a la demande", + "exec": true }, { "id": "suites_authoritative_list", "kw": "liste.*suites|quelles.*suites|combien de suites|catalogue suites|tous.*suites|7 suites|8 suites|nos suites", "api": "exec", "cmd": "echo 'CATALOGUE WEVAL - 8 SUITES METIER (18-avril-2026):' && echo '' && echo '1. WEVIA Enterprise - IA souveraine (WEVIA EM flagship, Master, Inference, Life, White-Label, ProjectFlow, ResearchFlow, BoardFlow, StackScan, WEVIA Desk)' && echo '' && echo '2. WEVAL Marketing Cloud - Arsenal ERP Intelligence + delivery (14 apps : DeliverAds, MailStream, MailWarm, MailForge, OutreachAI, SMSForge, AdsControl, ReputationAI, AI SDR, NewsletterInsight, EmailVerify, BlacklistGuard)' && echo '' && echo '3. WEVAL Pharma Cloud - Healthcare intelligence (ReachHCP, Campaign Studio, Consent Manager)' && echo '' && echo '4. WEVAL Advisory - Cabinet de conseil (Consulting, Consulting Pro, Academy, Lean6Sigma, AuditAI, CloudCost)' && echo '' && echo '5. WEVAL Productivity - IA generative metier (ProposalAI, BlueprintAI, ContractAI, PresentationAI, CanvasAI, CopyAI, Content Factory, Creative Factory, DashboardAI, TranslateAI, MeetingAI, DevForge, BizPlan, eSignature)' && echo '' && echo '6. WEVAL Commerce and Data - E-commerce + leads (StoreForge, StoreAI, WevalCRM, FormBuilder, LeadForge, DataInsight, ScoutAI, YouTube Factory)' && echo '' && echo '7. WEVAL Cloud and Security - Infrastructure + SOC (Sentinel, CloudCost, DeliverScore, InboxTest, EmailVerify, Cloud Providers, Huawei Cloud, GPU Inference)' && echo '' && echo '8. WEVAL ERP Intelligence - Suite dediee ERP fill-gap (Arsenal flagship framework)' && echo '' && echo 'Pages publiques : /solutions/wevia-enterprise.html etc.'", - "desc": "Liste authoritative des 8 suites WEVAL + apps" + "desc": "Liste authoritative des 8 suites WEVAL + apps", + "exec": true }, { "id": "smart_orchestrate_v84", "kw": "un client|aide.*moi|comment.*renou|comment.*reactive|comment.*creer.*compte|question client|besoin.*d aide|help.*client|pour un client|peux.*tu.*trouver|trouve.*moi|me faut.*un.*agent|quel.*agent.*pour|which agent", - "cmd": "Q=$(echo \"$1\" | sed -E 's/\\x27/ /g' | cut -c1-200); curl -sk --max-time 15 \"http://127.0.0.1/api/wevia-v83-multi-agent-orchestrator.php?action=match&q=${Q}\" -H 'Host: weval-consulting.com' | jq -c '{query, match_count, matches: {agents: .matches.agents[:5], resolvers: .matches.resolvers[:5], blade_tasks: .matches.blade_tasks[:5], skills: .matches.skills[:3]}}' 2>&1" + "cmd": "Q=$(echo \"$1\" | sed -E 's/\\x27/ /g' | cut -c1-200); curl -sk --max-time 15 \"http://127.0.0.1/api/wevia-v83-multi-agent-orchestrator.php?action=match&q=${Q}\" -H 'Host: weval-consulting.com' | jq -c '{query, match_count, matches: {agents: .matches.agents[:5], resolvers: .matches.resolvers[:5], blade_tasks: .matches.blade_tasks[:5], skills: .matches.skills[:3]}}' 2>&1", + "exec": true }, { "id": "smart_tips_v84", "kw": "tips.*renouve|tips.*creation.*compte|tips.*cyber|tips.*selenium|tips.*office.*recovery|tips.*opus|tips.*disponibles|quels tips|liste tips", - "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-dynamic-resolver.php?q=v82_tips_summary' -H 'Host: weval-consulting.com' 2>&1 | head -c 2500" + "cmd": "curl -sk --max-time 10 'http://127.0.0.1/api/wevia-dynamic-resolver.php?q=v82_tips_summary' -H 'Host: weval-consulting.com' 2>&1 | head -c 2500", + "exec": true }, { "id": "apple_status",