import { useState, type JSX } from "react"; import type { AgentToolCallVM } from "../contracts/agentToolCallVM"; import { AgentToolCallHeader } from "./AgentToolCallHeader"; import { CollapsibleReveal } from "./CollapsibleReveal"; import { AgentExpandedToolContent } from "./tool-renderers/AgentExpandedToolContent"; import { hasAgentToolContent } from "./tool-renderers/agentToolContentShared"; export interface AgentToolCallCardProps { call: AgentToolCallVM; onLinkClick?: (href: string) => void; defaultExpanded?: boolean; nonCollapsible?: boolean; variantClassName?: string; } export function AgentToolCallCard({ call, onLinkClick, defaultExpanded = false, nonCollapsible = false, variantClassName }: AgentToolCallCardProps): JSX.Element { "use memo"; const [expanded, setExpanded] = useState(defaultExpanded); const hasDetail = hasAgentToolContent(call); const canCollapse = hasDetail && !nonCollapsible; const ariaLabel = toolCallAriaLabel(call); return (