import React from "react"; import { ToolViewProps } from "./types"; import { formatTimestamp, getToolTitle } from "./utils"; import { getToolIcon } from "../utils"; import { CircleDashed, CheckCircle, AlertTriangle } from "lucide-react"; import { Markdown } from "@/components/ui/markdown"; import { cn } from "@/lib/utils"; export function GenericToolView({ name = 'unknown', assistantContent, toolContent, isSuccess = true, isStreaming = false, assistantTimestamp, toolTimestamp }: ToolViewProps) { console.log('GenericToolView:', { name, assistantContent, toolContent, isSuccess, isStreaming, assistantTimestamp, toolTimestamp }); const toolTitle = getToolTitle(name); const Icon = getToolIcon(name); // Format content for display const formatContent = (content: string | null) => { if (!content) return null; try { // Try to parse as JSON for pretty formatting const parsedJson = JSON.parse(content); return JSON.stringify(parsedJson, null, 2); } catch (e) { // If not valid JSON, return as is return content; } }; // Format the contents const formattedAssistantContent = React.useMemo(() => formatContent(assistantContent), [assistantContent]); const formattedToolContent = React.useMemo(() => formatContent(toolContent), [toolContent]); return (