import { makeAssistantToolUI } from "@assistant-ui/react"; import type { AskUserQuestionArgs, BashArgs, EditArgs, ExitPlanModeArgs, GlobArgs, GrepArgs, MultiEditArgs, NotebookEditArgs, ReadArgs, SlashCommandArgs, TaskArgs, TodoArgs, WebFetchArgs, WebSearchArgs, WebSearchResult, WriteArgs, } from "@vtit-agent-coding/shared"; import { ToolName } from "@vtit-agent-coding/shared"; import type { FC } from "react"; import type { TaskToolResult } from "../../RelayRuntimeProvider"; import { AskUserQuestionToolView, BashToolView, EditToolView, ExitPlanModeToolView, GlobToolView, GrepToolView, MultiEditToolView, NotebookEditToolView, ReadToolView, SlashCommandToolView, TaskToolView, TodoWriteToolView, WebFetchToolView, WebSearchToolView, WriteToolView, } from "./views"; // ─── makeAssistantToolUI wrappers ─────────────────────────────────────────── // Thin delegates. All per-tool rendering lives in ./views so SubtaskChildren // can reuse the same components for subagent tool calls. export const BashToolUI = makeAssistantToolUI({ toolName: ToolName.Bash, render: (p) => , }); export const ReadToolUI = makeAssistantToolUI({ toolName: ToolName.Read, render: (p) => , }); export const EditToolUI = makeAssistantToolUI({ toolName: ToolName.Edit, render: (p) => , }); export const MultiEditToolUI = makeAssistantToolUI({ toolName: ToolName.MultiEdit, render: (p) => , }); export const WriteToolUI = makeAssistantToolUI({ toolName: ToolName.Write, render: (p) => , }); export const GrepToolUI = makeAssistantToolUI({ toolName: ToolName.Grep, render: (p) => , }); export const GlobToolUI = makeAssistantToolUI({ toolName: ToolName.Glob, render: (p) => , }); export const TaskToolUI = makeAssistantToolUI | string>({ toolName: ToolName.Agent, render: (p) => , }); export const TodoWriteToolUI = makeAssistantToolUI({ toolName: ToolName.TodoWrite, render: (p) => , }); export const WebFetchToolUI = makeAssistantToolUI({ toolName: ToolName.WebFetch, render: (p) => , }); export const WebSearchToolUI = makeAssistantToolUI({ toolName: ToolName.WebSearch, render: (p) => , }); export const AskUserQuestionToolUI = makeAssistantToolUI({ toolName: ToolName.AskUserQuestion, render: (p) => , }); export const ExitPlanModeToolUI = makeAssistantToolUI({ toolName: ToolName.ExitPlanMode, render: (p) => , }); export const SlashCommandToolUI = makeAssistantToolUI({ toolName: ToolName.SlashCommand, render: (p) => , }); export const NotebookEditToolUI = makeAssistantToolUI({ toolName: ToolName.NotebookEdit, render: (p) => , }); // ─── Mount ─────────────────────────────────────────────────────────────────── // Drop this inside an AssistantRuntimeProvider to register every per-tool UI. // Any tool_call whose name matches routes to its renderer; unmatched calls // fall through to ChatToolFallback. export const ChatToolUIs: FC = () => ( <> ); // ─── Re-exports ───────────────────────────────────────────────────────────── // Preserve the external API: `import { ToolShell, Mono, parseMcpToolName, langFromPath } from "./tool-uis"`. export { CodeBlock, FileDiff, langFromPath, Markdown, Mono, parseMcpToolName, resultText, ToolShell } from "./primitives"; export { SubtaskChildren, TOOL_VIEWS, type ToolViewProps } from "./views";