Files
html/api/agents-catalog-api.php
2026-04-21 02:20:02 +02:00

127 lines
8.3 KiB
PHP

<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
$agents = [
// CORE AGENTS (existing 23)
["name"=>"Infra Agent","desc"=>"Load, disk, memory, services","cat"=>"core","status"=>"ready","icon"=>"🔧"],
["name"=>"Sovereign Agent","desc"=>"12 IA providers cascade","cat"=>"core","status"=>"ready","icon"=>"🧠"],
["name"=>"NonReg Agent","desc"=>"152/152 quality tests","cat"=>"core","status"=>"ready","icon"=>""],
["name"=>"Ethica Agent","desc"=>"141K HCPs DZ/MA/TN","cat"=>"core","status"=>"ready","icon"=>"👨‍⚕️"],
["name"=>"Git Agent","desc"=>"Commit, push, status","cat"=>"core","status"=>"ready","icon"=>"📁"],
["name"=>"Vault Agent","desc"=>"1181 files, 44 GOLD","cat"=>"core","status"=>"ready","icon"=>"🔒"],
["name"=>"Docker Agent","desc"=>"10 containers management","cat"=>"core","status"=>"ready","icon"=>"🐳"],
["name"=>"Scraper Agent","desc"=>"DabaDoc, CNAM, CRONC","cat"=>"core","status"=>"ready","icon"=>"🕷️"],
["name"=>"Crons Agent","desc"=>"S204:4 S95:6 scheduled","cat"=>"core","status"=>"ready","icon"=>""],
["name"=>"S95 Agent","desc"=>"Remote server via SSH","cat"=>"core","status"=>"ready","icon"=>"🖥️"],
["name"=>"Security Agent","desc"=>"CrowdSec, AEGIS, Nuclei","cat"=>"core","status"=>"ready","icon"=>"🛡️"],
["name"=>"Paperclip Agent","desc"=>"CEO 890 agents","cat"=>"core","status"=>"ready","icon"=>"📎"],
["name"=>"OSS Discovery","desc"=>"71 tools 67 wired 94%","cat"=>"core","status"=>"ready","icon"=>"🔍"],
["name"=>"WEDROID Agent","desc"=>"Backend diag+fix 8 APIs","cat"=>"core","status"=>"ready","icon"=>"🤖"],
["name"=>"WEVCODE Agent","desc"=>"Code Assistant 4 modes","cat"=>"core","status"=>"ready","icon"=>"💻"],
["name"=>"Director Agent","desc"=>"312 services monitored","cat"=>"core","status"=>"ready","icon"=>"🎬"],
["name"=>"OpenClaw Agent","desc"=>"AI Gateway Council","cat"=>"core","status"=>"ready","icon"=>"🦑"],
["name"=>"Consensus Agent","desc"=>"Multi-IA voting","cat"=>"core","status"=>"ready","icon"=>"🤝"],
["name"=>"Blade IA Agent","desc"=>"Razer 34 capabilities","cat"=>"core","status"=>"ready","icon"=>"🗡️"],
["name"=>"DeerFlow Agent","desc"=>"828 skills research","cat"=>"core","status"=>"ready","icon"=>"🦌"],
["name"=>"Hermes Agent","desc"=>"26 skills automation","cat"=>"core","status"=>"ready","icon"=>""],
["name"=>"L99 Agent","desc"=>"177 pages 1236 wiki","cat"=>"core","status"=>"ready","icon"=>"📊"],
["name"=>"Playwright Agent","desc"=>"16/16 visual tests","cat"=>"core","status"=>"ready","icon"=>"🎭"],
["name"=>"Multi-Agent Orchestrator","desc"=>"15 agents parallel SSE, V102 regex, natural language V103","cat"=>"core","status"=>"ready","icon"=>""],
["name"=>"Training Hub","desc"=>"Fine-tune HF yace222/weval-brain-v4, Qdrant KB, cognitive-opus46 635 functions","cat"=>"core","status"=>"ready","icon"=>""],
["name"=>"All-IA Hub","desc"=>"Combines wevia-master + wevcode + arena + opus-replacement streaming","cat"=>"core","status"=>"ready","icon"=>""],
["name"=>"WEVIA Master Streaming","desc"=>"SSE getReader timeout 1h, multi-agent, tool exec, session+files","cat"=>"core","status"=>"ready","icon"=>""],
["name"=>"Arena Multi-Provider","desc"=>"14 providers cascade: cerebras/groq/gemini/sambanova/nvidia/mistral/hf/openrouter/github/cf","cat"=>"core","status"=>"ready","icon"=>""],
// OH-MY-CLAUDECODE AGENTS (19)
["name"=>"Architect","desc"=>"System design, boundaries, interfaces","cat"=>"claudecode","status"=>"ready","icon"=>"🏗️"],
["name"=>"Executor","desc"=>"Code implementation, refactoring","cat"=>"claudecode","status"=>"ready","icon"=>"⚙️"],
["name"=>"Debugger","desc"=>"Root-cause analysis, failure diagnosis","cat"=>"claudecode","status"=>"ready","icon"=>"🐛"],
["name"=>"Test Engineer","desc"=>"Test strategy, coverage, TDD","cat"=>"claudecode","status"=>"ready","icon"=>"🧪"],
["name"=>"Planner","desc"=>"Task sequencing, execution plans","cat"=>"claudecode","status"=>"ready","icon"=>"📋"],
["name"=>"Code Reviewer","desc"=>"Logic defects, anti-patterns","cat"=>"claudecode","status"=>"ready","icon"=>"👁️"],
["name"=>"Security Reviewer","desc"=>"Vulnerabilities, trust boundaries","cat"=>"claudecode","status"=>"ready","icon"=>"🔐"],
["name"=>"API Reviewer","desc"=>"API contracts, versioning","cat"=>"claudecode","status"=>"ready","icon"=>"🔌"],
["name"=>"Performance Reviewer","desc"=>"Hotspots, optimization","cat"=>"claudecode","status"=>"ready","icon"=>"🚀"],
["name"=>"Explorer","desc"=>"Fast codebase search, mapping","cat"=>"claudecode","status"=>"ready","icon"=>"🔍"],
["name"=>"Analyst","desc"=>"Requirements, acceptance criteria","cat"=>"claudecode","status"=>"ready","icon"=>"📊"],
["name"=>"Verifier","desc"=>"Completion evidence, validation","cat"=>"claudecode","status"=>"ready","icon"=>"✔️"],
["name"=>"Writer","desc"=>"Docs, migration notes, guidance","cat"=>"claudecode","status"=>"ready","icon"=>"📝"],
["name"=>"Designer","desc"=>"UX/UI architecture, interaction","cat"=>"claudecode","status"=>"ready","icon"=>"🎨"],
["name"=>"Product Manager","desc"=>"PRD, personas, JTBD","cat"=>"claudecode","status"=>"ready","icon"=>"📦"],
["name"=>"UX Researcher","desc"=>"Heuristic audits, accessibility","cat"=>"claudecode","status"=>"ready","icon"=>"🔬"],
["name"=>"Git Master","desc"=>"Commit strategy, history","cat"=>"claudecode","status"=>"ready","icon"=>"🌿"],
["name"=>"Researcher","desc"=>"External docs and references","cat"=>"claudecode","status"=>"ready","icon"=>"📚"],
["name"=>"Critic","desc"=>"Plan/design critical challenge","cat"=>"claudecode","status"=>"ready","icon"=>"⚖️"],
];
// Add DeerFlow skills as agents
$df_skills = glob("/opt/deer-flow/skills/weval/*/");
foreach (array_slice($df_skills, 0, 50) as $s) {
$name = basename($s);
if ($name && $name[0] !== '.') {
$agents[] = ["name"=>"DF: $name","desc"=>"DeerFlow skill","cat"=>"deerflow","status"=>"ready","icon"=>"🦌"];
}
}
// Add Hermes skills
$hm = glob("/var/www/weval/skills/hermes/*/");
foreach ($hm as $s) {
$name = basename($s);
$agents[] = ["name"=>"Hermes: $name","desc"=>"Hermes skill","cat"=>"hermes","status"=>"ready","icon"=>""];
}
// SuperClaude agents
$sc = ["Brainstorming","BusinessPanel","DeepResearch","Introspection","Orchestration","TaskManager","TokenEfficiency"];
foreach ($sc as $s) {
$agents[] = ["name"=>"SC: $s","desc"=>"SuperClaude agent","cat"=>"superclaude","status"=>"ready","icon"=>"🧬"];
}
// Skills
$skills = ["ralph","autopilot","ultrawork","team","plan","deep-interview","ralplan","ecomode","visual-verdict","web-clone","ultraqa","ai-slop-cleaner"];
foreach ($skills as $s) {
$agents[] = ["name"=>"Skill: $s","desc"=>"oh-my-claudecode workflow","cat"=>"skills","status"=>"ready","icon"=>""];
}
// V101 BUSINESS AGENTS - parse enterprise-model.html AG variable (572 agents post-V93)
$em_path = "/var/www/html/enterprise-model.html";
if (file_exists($em_path)) {
$em = file_get_contents($em_path);
// Extract agent names: {n:'Agent Name',rm:'dept',...
preg_match_all("/\{n:'([^']+)',rm:'([^']+)'/", $em, $m);
$added_biz = 0;
$seen = [];
for ($i = 0; $i < count($m[1]); $i++) {
$name = $m[1][$i];
$dept = $m[2][$i];
if ($dept === "dead") continue; // Skip dead agents (V93 fix)
if (isset($seen[$name])) continue; // Dedup
$seen[$name] = 1;
$agents[] = ["name" => $name, "desc" => "Business agent - dept: $dept", "cat" => "business", "status" => "ready", "icon" => ""];
$added_biz++;
}
// Also parse big4 domains
$big4 = "/var/www/html/wevia-em-big4.html";
if (file_exists($big4)) {
$b = file_get_contents($big4);
preg_match_all("/\{n:'([^']+)'/", $b, $mb);
foreach (array_unique($mb[1]) as $dom) {
if (!isset($seen[$dom])) {
$agents[] = ["name" => "Big4: $dom", "desc" => "Big4 Enterprise Model domain", "cat" => "big4", "status" => "ready", "icon" => ""];
$seen[$dom] = 1;
}
}
}
}
// Categories count
$cats = [];
foreach ($agents as $a) $cats[$a["cat"]] = ($cats[$a["cat"]] ?? 0) + 1;
echo json_encode([
"total" => count($agents),
"categories" => $cats,
"agents" => $agents
], JSON_UNESCAPED_UNICODE);