diff --git a/frontend/packages/swarm-ui/src/agent/state/StateBadges.tsx b/frontend/packages/swarm-ui/src/agent/state/StateBadges.tsx index a50e6d5e3..365a3f348 100644 --- a/frontend/packages/swarm-ui/src/agent/state/StateBadges.tsx +++ b/frontend/packages/swarm-ui/src/agent/state/StateBadges.tsx @@ -1,4 +1,6 @@ import { Badge, type BadgeTone } from "@hive/shared/badge.js"; +import { BadgePopover } from "../../ui/badge-popover/BadgePopover.js"; +import { AgentInference } from "../detail/AgentInference.js"; import { RelativeTime } from "../../ui/relative-time/RelativeTime.js"; import { useSwarmAgentStateStream, @@ -46,13 +48,20 @@ export function StateBadges({ ctx, cost, withModel = true, + agent, }: { header: NonNullable["header"]>; ctx: number | null; cost: number | null; // Off where the model is shown beside them, as in the details table. withModel?: boolean; + // The agent whose settings the model and effort badges open in a popover + // when clicked. Omitted: the badges only display. + agent?: string; }) { + const modelTitle = header.resolved_model + ? `resolved to ${header.resolved_model}` + : undefined; return ( <> )} - {withModel && ( - - )} - {withModel && ( - - )} + {withModel && + (agent === undefined ? ( + + ) : ( + + + + ))} + {withModel && + (agent === undefined ? ( + + ) : ( + + + + ))} {ctx !== null && ( )} - {header && } + {header && ( + + )} {header && subagent === undefined && (