69 lines
4.1 KiB
PHP
69 lines
4.1 KiB
PHP
<?php
|
|
header("Content-Type: application/json");
|
|
header("Access-Control-Allow-Origin: *");
|
|
|
|
// Agents temps réel (SSE orchestrator)
|
|
$realtime = [
|
|
["id"=>"infra","name"=>"Infra Agent","desc"=>"Load, disk, memory, FPM","icon"=>"🖥️","type"=>"realtime"],
|
|
["id"=>"sovereign","name"=>"Sovereign Agent","desc"=>"12 IA providers cascade","icon"=>"🧠","type"=>"realtime"],
|
|
["id"=>"nonreg","name"=>"NonReg Agent","desc"=>"152/152 quality tests","icon"=>"🧪","type"=>"realtime"],
|
|
["id"=>"ethica","name"=>"Ethica Agent","desc"=>"131K HCPs DZ/MA/TN","icon"=>"🏥","type"=>"realtime"],
|
|
["id"=>"git","name"=>"Git Agent","desc"=>"Commit, push, status","icon"=>"📦","type"=>"realtime"],
|
|
["id"=>"vault","name"=>"Vault Agent","desc"=>"Credentials, GOLD, wiki","icon"=>"🔐","type"=>"realtime"],
|
|
["id"=>"docker","name"=>"Docker Agent","desc"=>"Containers management","icon"=>"🐳","type"=>"realtime"],
|
|
["id"=>"scraper","name"=>"Scraper Agent","desc"=>"DabaDoc, CNAM, CROMC","icon"=>"🕷️","type"=>"realtime"],
|
|
["id"=>"crons","name"=>"Crons Agent","desc"=>"Scheduled tasks","icon"=>"⏰","type"=>"realtime"],
|
|
["id"=>"s95","name"=>"S95 Agent","desc"=>"WEVADS server via SSH","icon"=>"🖧","type"=>"realtime"],
|
|
["id"=>"security","name"=>"Security Agent","desc"=>"CrowdSec, SSL, Nuclei","icon"=>"🛡️","type"=>"realtime"],
|
|
["id"=>"paperclip","name"=>"Paperclip Agent","desc"=>"890 agents, 2484 skills","icon"=>"📋","type"=>"realtime"],
|
|
["id"=>"mirofish","name"=>"MiroFish Agent","desc"=>"CEO workflow engine","icon"=>"🐟","type"=>"realtime"],
|
|
["id"=>"registry","name"=>"Registry Agent","desc"=>"382 tools resolver","icon"=>"🔧","type"=>"realtime"],
|
|
["id"=>"pages","name"=>"Pages Agent","desc"=>"174 HTML monitoring","icon"=>"📄","type"=>"realtime"],
|
|
["id"=>"apps","name"=>"Apps Agent","desc"=>"12 pages HTTP live test","icon"=>"🌐","type"=>"realtime"],
|
|
["id"=>"ai_models","name"=>"AI Models Agent","desc"=>"Cascade providers health","icon"=>"⚡","type"=>"realtime"],
|
|
["id"=>"qdrant_kb","name"=>"Qdrant KB Agent","desc"=>"5 vector collections","icon"=>"🧬","type"=>"realtime"],
|
|
["id"=>"l99","name"=>"L99 Agent","desc"=>"74 layers 957 tests 100%","icon"=>"📊","type"=>"realtime"],
|
|
["id"=>"deerflow","name"=>"DeerFlow Agent","desc"=>"14 research skills","icon"=>"🦌","type"=>"realtime"],
|
|
["id"=>"subdomains","name"=>"Subdomains Agent","desc"=>"All nginx domains","icon"=>"🌍","type"=>"realtime"],
|
|
["id"=>"crons_root","name"=>"Crons Root Agent","desc"=>"54 root cron tasks","icon"=>"⚙️","type"=>"realtime"],
|
|
["id"=>"agent_chief","name"=>"Agent Chief","desc"=>"693 agents by role","icon"=>"👑","type"=>"realtime"],
|
|
["id"=>"blade_agent","name"=>"Blade Agent","desc"=>"34 tasks, Chrome/Selenium","icon"=>"🖥️","type"=>"realtime"],
|
|
];
|
|
|
|
// Paperclip agents par rôle (depuis DB)
|
|
$paperclip_roles = [];
|
|
$pg = @pg_connect("host=127.0.0.1 port=5432 dbname=paperclip user=admin password=admin123");
|
|
if ($pg) {
|
|
$r = pg_query($pg, "SELECT role, COUNT(DISTINCT name) as cnt, array_to_string(array_agg(DISTINCT name ORDER BY name), ', ') as names FROM agents GROUP BY role ORDER BY cnt DESC");
|
|
while ($row = pg_fetch_assoc($r)) {
|
|
$paperclip_roles[] = [
|
|
"id" => "pc_" . $row["role"],
|
|
"name" => ucfirst($row["role"]) . " Team",
|
|
"desc" => $row["cnt"] . " agents: " . substr($row["names"], 0, 60),
|
|
"icon" => "👥",
|
|
"type" => "paperclip",
|
|
"count" => (int)$row["cnt"],
|
|
"role" => $row["role"]
|
|
];
|
|
}
|
|
pg_close($pg);
|
|
}
|
|
|
|
// Registry tools par catégorie
|
|
$reg = @json_decode(@file_get_contents("/opt/wevia-brain/tool-registry-v2.json"), true);
|
|
$tool_count = count($reg["tools"] ?? []);
|
|
|
|
echo json_encode([
|
|
"ok" => true,
|
|
"realtime_agents" => $realtime,
|
|
"paperclip_teams" => $paperclip_roles,
|
|
"totals" => [
|
|
"realtime" => count($realtime),
|
|
"paperclip_agents" => array_sum(array_column($paperclip_roles, "count")),
|
|
"paperclip_teams" => count($paperclip_roles),
|
|
"registry_tools" => $tool_count,
|
|
"hcps" => "141K",
|
|
"grand_total" => count($realtime) + array_sum(array_column($paperclip_roles, "count")) + $tool_count
|
|
]
|
|
], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
|