"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);