import { ShieldCheck } from 'lucide-react' import type { Agent, AgentAnim } from '../../types' import type { AgentLoad } from '../../hooks/useLiveMetrics' import { agentTaskLabel, getAgentMeta } from '../../lib/agentMeta' import { cn } from '../../lib/utils' type Props = { agents: Agent[] animations: Record selectedId: string | null loads: Record approvalCount: number onSelect: (id: string) => void onOpenApprovals: () => void } function AgentCard({ agent, anim, load, selected, onSelect, }: { agent: Agent anim?: AgentAnim load?: AgentLoad selected: boolean onSelect: () => void }) { const meta = getAgentMeta(agent.id) const Icon = meta.icon const busy = anim && anim.state !== 'idle' return ( ) } export function AgentFleet({ agents, animations, selectedId, loads, approvalCount, onSelect, onOpenApprovals }: Props) { const supervisors = agents.filter((a) => a.supervisor) const operators = agents.filter((a) => !a.supervisor && a.id !== 'mcp-coordinator') const mcp = agents.find((a) => a.id === 'mcp-coordinator') return (

Agent Fleet

Click agent → dedicated terminal opens below

{agents.length} agents

Supervisors

{supervisors.map((a) => ( onSelect(a.id)} /> ))}
{mcp && (

MCP Hub

onSelect(mcp.id)} />
)}

Field Operators

{operators.map((a) => ( onSelect(a.id)} /> ))}
) }