import { cn } from "../lib/utils"; import { statusBadge, statusBadgeDefault, agentStatusColor, agentStatusColorDefault, agentStatusBadge, agentStatusCapsule, agentStatusMotion, } from "../lib/status-colors"; export function StatusBadge({ status }: { status: string }) { return ( {status.replace(/_/g, " ")} ); } /** * Agent status chip — brand `.task-chip` (1px border, light/dark variants). * Distinct from the shared {@link StatusBadge} so the agents section can carry * the brand state colours without affecting run/issue/goal badges. `active` * renders as "idle" (alias for dead code). */ export function AgentStatusBadge({ status }: { status: string }) { const color = agentStatusColor[status] ?? agentStatusColorDefault; const label = status === "active" ? "idle" : status; return ( {label.replace(/_/g, " ")} ); } /** * Agent status indicator — brand heartbeat capsule (vertical 8×16, r4). Running * agents pulse, broken (error) agents blink; both honor `prefers-reduced-motion`. */ export function AgentStatusCapsule({ status }: { status: string }) { const color = agentStatusColor[status] ?? agentStatusColorDefault; const motion = agentStatusMotion[status] ?? ""; return ( ); }