import type { JSX } from "react"; import type { AgentToolCallVM } from "../../contracts/agentToolCallVM"; import { AgentApprovalContent } from "./AgentApprovalContent"; import { AgentAskUserQuestionContent } from "./AgentAskUserQuestionContent"; import { AgentBashContent } from "./AgentBashContent"; import { AgentEditContent } from "./AgentEditContent"; import { AgentImageGenerationContent } from "./AgentImageGenerationContent"; import { AgentMcpToolContent } from "./AgentMcpToolContent"; import { AgentPlanModeContent } from "./AgentPlanModeContent"; import { AgentReadContent } from "./AgentReadContent"; import { AgentSearchContent } from "./AgentSearchContent"; import { AgentSkillContent } from "./AgentSkillContent"; import { AgentTaskContent } from "./AgentTaskContent"; import { AgentTodoWriteContent } from "./AgentTodoWriteContent"; import { AgentToolSearchContent } from "./AgentToolSearchContent"; import { AgentDefaultToolContent } from "./agentToolContentShared"; import { AgentWebFetchContent } from "./AgentWebFetchContent"; import { AgentWebSearchContent } from "./AgentWebSearchContent"; import { AgentWriteContent } from "./AgentWriteContent"; export function AgentExpandedToolContent({ call, onLinkClick }: { call: AgentToolCallVM; onLinkClick?: (href: string) => void; }): JSX.Element | null { "use memo"; const props = { call, onLinkClick }; let content: JSX.Element | null; switch (call.rendererKind) { case "approval": content = ; break; case "plan-enter": case "plan-exit": content = ; break; case "ask-user": content = ; break; case "task": content = ; break; case "read": content = ; break; case "write": content = ; break; case "edit": content = ; break; case "bash": content = ; break; case "search": content = ; break; case "web-search": content = ; break; case "web-fetch": content = ; break; case "image-generation": content = ; break; case "todo-write": content = ; break; case "tool-search": content = ; break; case "skill": content = ; break; case "mcp": content = ; break; default: content = ; } if (!content) { return null; } return content; }