"use client"; import { Brain, ChevronRight, Wrench } from "lucide-react"; import { useState } from "react"; import { Badge } from "@/components/ui/badge"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; import { cn } from "@/lib/utils"; import { formatConversationValue } from "./utils"; interface ToolCallCardProps { functionName: string; status: "running" | "completed"; argumentsValue?: unknown; resultValue?: unknown; reasoningDurationMs?: number; } export function ToolCallCard({ functionName, status, argumentsValue, resultValue, reasoningDurationMs, }: ToolCallCardProps) { const [open, setOpen] = useState(false); const hasArguments = argumentsValue !== undefined; const hasResult = resultValue !== undefined; const hasDetails = hasArguments || hasResult; return (
{reasoningDurationMs !== undefined ? (
Reasoning Delay: {Math.round(reasoningDurationMs)}ms
) : null}
{functionName}() {status === "running" ? "Running" : "Completed"}
{hasDetails ? (
) : null}
{hasDetails ? (
{hasArguments ? (

Arguments

                                            {formatConversationValue(argumentsValue)}
                                        
) : null} {hasResult ? (

Result

                                            {formatConversationValue(resultValue)}
                                        
) : null}
) : null}
); }