Files
html/api/wa_head.txt
2026-04-18 13:30:02 +02:00

81 lines
8.1 KiB
Plaintext

<?php
// === FAST-PATH INJECTION (14avr - Opus wire) ===
@require_once __DIR__ . "/wevia-fast-path.php";
$__fp_input = json_decode(file_get_contents("php://input"), true);
if ($__fp_input && isset($__fp_input["message"])) {
// Skip FastPath for multi-intent messages (3+ keywords = orchestration mode)
$__fp_words = str_word_count(trim($__fp_input["message"]));
$__fp_multi = preg_match('/reconcile|bilan|multiagent|multi.agent|orchestr|tout finir|full scan/i', $__fp_input["message"]);
$__fp_r = ($__fp_words <= 3 && !$__fp_multi) ? wevia_fast_path($__fp_input["message"]) : null;
if ($__fp_r !== null) {
header("Content-Type: text/event-stream");
echo "data: " . json_encode(["type"=>"answer","text"=>$__fp_r["content"],"engine"=>"FastPath/".$__fp_r["tool"],"intent"=>"fast_path"]) . "\n\ndata: [DONE]\n\n";
exit;
}
}
// === END FAST-PATH ===
// === FILE_WRITE AUTONOMOUS MODULE (15avr - Opus wire RC fix) ===
// Guard (16avr Opus): skip si multi-agent OU verbe read-only OU mot exhaustivite
if ($__fp_input && isset($__fp_input["message"])) {
$__fw_msg = $__fp_input["message"];
$__fw_skip_multi = preg_match('/reconcile|bilan complet|multiagent|multi.agent|orchestr|tout finir|full scan|exhaustiv|cartograph|tous?\s+les?\s+(ecrans?|screens?|machines?|serveurs?)/i', $__fw_msg);
$__fw_skip_readonly = preg_match('/^\s*(montre|affiche|lis|liste|cat|scan|check|verifie|diagnostiq|pull|get|read|show|view|dump|test|ping|status)/i', $__fw_msg);
$__fw_skip_question = preg_match('/^\s*(qui|que|quoi|quel|quelle|comment|pourquoi|ou|quand|combien)\b/i', $__fw_msg);
@require_once __DIR__ . "/wevia-file-write.php";
$__fw_r = (!$__fw_skip_multi && !$__fw_skip_readonly && !$__fw_skip_question) ? wevia_file_write($__fw_msg) : null;
if ($__fw_r !== null) {
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
$st = $__fw_r["ok"] ? "SUCCESS" : "ERROR";
$tx = $__fw_r["ok"] ? $__fw_r["message"] . " Git: " . ($__fw_r["git"] ?? "n/a") : "ERREUR: " . ($__fw_r["error"] ?? "inconnue");
echo "data: " . json_encode(["type"=>"exec","text"=>$tx,"engine"=>"FileWrite/autonomous","intent"=>"file_write","status"=>$st]) . "\n\n";
echo "data: [DONE]\n\n";
exit;
}
}
// === END FILE_WRITE ===
// === MULTI-AGENT ORCHESTRATOR (16avr - v4 split git + safer WRITEs) ===
if ($__fp_input && isset($__fp_input["message"])) {
$__orch_msg = strtolower($__fp_input["message"]);
if (preg_match('/reconcile|bilan complet|multiagent|multi.agent|orchestr|tout finir|full scan|exhaustiv|cartograph|tous?\s+les?\s+(\xc3\xa9crans?|ecrans?|screens?|machines?|serveurs?|gpus?|blades?)/i', $__orch_msg)) {
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
$__orch_registry = [
"reconcile" => ["cmd"=>"/bin/bash /opt/weval-l99/tools/reconcile.sh", "default"=>true, "timeout"=>15],
"providers" => ["cmd"=>"/bin/bash /opt/weval-l99/tools/providers-health.sh", "default"=>true, "timeout"=>15],
"wiki" => ["cmd"=>"/bin/bash /opt/weval-l99/tools/wiki-scan.sh", "default"=>true, "timeout"=>15],
"nonreg" => ["cmd"=>"cat /var/www/html/api/nonreg-latest.json 2>/dev/null", "default"=>true, "timeout"=>10],
"ethica" => ["cmd"=>"cat /var/www/html/api/ethica-latest.json 2>/dev/null || echo Ethica:131K", "default"=>true, "timeout"=>10],
"docker" => ["cmd"=>"docker ps --format '{{.Names}}: {{.Status}}' 2>/dev/null | head -10", "default"=>true, "timeout"=>10],
"disk" => ["cmd"=>"df -h / | tail -1", "default"=>true, "timeout"=>5],
"git" => ["cmd"=>"echo D:$(cd /var/www/html;git diff --name-only 2>/dev/null|wc -l) H:$(cd /var/www/html;git rev-parse --short HEAD 2>/dev/null)", "default"=>true, "timeout"=>10],
"ports" => ["cmd"=>"/bin/bash /opt/weval-l99/tools/ports.sh 2>/dev/null | head -10", "default"=>true, "timeout"=>10],
"load" => ["cmd"=>"cat /proc/loadavg && free -m | grep Mem", "default"=>true, "timeout"=>5],
"screens_s204" => ["cmd"=>"echo 'S204_HTML='$(find /var/www/html -maxdepth 3 -name '*.html' 2>/dev/null | wc -l)' S204_PHP='$(find /var/www/html -maxdepth 3 -name '*.php' 2>/dev/null | wc -l)' API='$(ls /var/www/html/api/*.php 2>/dev/null | wc -l)", "keywords"=>["screen","ecran","\xc3\xa9cran","page"], "timeout"=>15],
"screens_s95" => ["cmd"=>"sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"echo ARSENAL=\\$(find /opt/wevads-arsenal/public -maxdepth 2 -name '*.html' 2>/dev/null | wc -l)' WEVADS_HTML='\\$(find /var/www -maxdepth 3 -name '*.html' 2>/dev/null | wc -l)\" 2>&1 | tail -3", "keywords"=>["screen","ecran","\xc3\xa9cran","page","s95","arsenal"], "timeout"=>20],
"gpus" => ["cmd"=>"nvidia-smi --query-gpu=name,memory.total --format=csv,noheader 2>/dev/null || echo 'no GPU'; sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null || echo 'no GPU s95'\" 2>&1 | tail -3", "keywords"=>["gpu","nvidia","blade","cuda"], "timeout"=>15],
"pmta_all" => ["cmd"=>"for ip in 110.239.84.121 110.239.84.65 182.160.55.107 110.239.86.68; do echo -n \"PMTA_$ip: \"; timeout 3 curl -s -o /dev/null -w '%{http_code}\\n' http://$ip:5371/ 2>/dev/null || echo 'DOWN'; done", "keywords"=>["pmta","mta","huawei","ser_"], "timeout"=>25],
"machines_all" => ["cmd"=>"hostname && uptime; sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 'hostname && uptime' 2>&1 | head -3", "keywords"=>["machine","serveur","server","infra","s204","s95"], "timeout"=>15],
"services_s204" => ["cmd"=>"systemctl list-units --type=service --state=running --no-pager 2>/dev/null | grep -E 'apache|nginx|php|postgres|pmta|docker' | head -15", "keywords"=>["service","systemd","daemon"], "timeout"=>15],
"crons_all" => ["cmd"=>"echo S204=$(crontab -l 2>/dev/null | grep -v '^#' | wc -l); sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 'echo S95=$(crontab -l 2>/dev/null | grep -v \"^#\" | wc -l)' 2>&1 | tail -1", "keywords"=>["cron","schedule","planif"], "timeout"=>15],
"apis_catalog" => ["cmd"=>"echo S204_APIs=$(ls /var/www/html/api/*.php 2>/dev/null | wc -l); sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 'echo S95_APIs=$(ls /var/www/html/api/*.php 2>/dev/null | wc -l)' 2>&1 | tail -1", "keywords"=>["api","endpoint","route"], "timeout"=>15],
"mapper_html" => ["cmd"=>"sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"ls /opt/wevads-arsenal/public/*.html 2>/dev/null | wc -l\" 2>&1 | tail -1", "keywords"=>["cartograph","mapper","map","visuel","visible"], "timeout"=>15],
"ollama_s95" => ["cmd"=>"sudo ssh -p 49222 -o StrictHostKeyChecking=no -i /var/www/.ssh/wevads_key root@10.1.0.3 \"curl -s http://127.0.0.1:11434/api/tags 2>/dev/null | head -c 200\" 2>&1 | tail -2", "keywords"=>["ollama","llm"], "timeout"=>15],
// --- WRITE AGENTS v4 : split git en commit (fast) / push_gitea (fast local) / push_github (slow network) ---
"git_commit" => [
"cmd"=>"cd /var/www/html && H0=$(git rev-parse --short HEAD) && sudo git add -A && sudo git -c user.email=wevia@weval.com -c user.name=WEVIAMaster commit -m auto-orchestrator-v5 2>&1 | tail -2; H1=$(git rev-parse --short HEAD); echo TRUTH:before=$H0,after=$H1,changed=$([ $H0 != $H1 ] && echo YES || echo NO)",
"keywords"=>["commit","git commit","git_commit"],
"timeout"=>30
],
"git_push_gitea" => [
"cmd"=>"cd /var/www/html && sudo git push gitea main 2>&1 | sed -E 's/[a-zA-Z0-9]{10,}@/REDACTED@/g' | tail -3; echo TRUTH:push_gitea=$(git log --oneline @{u}..HEAD 2>/dev/null | wc -l)_unpushed",
"keywords"=>["push","gitea push","gitea_push"],
"timeout"=>20
],
"git_push_github" => [