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 (
);
}