import type { ToolInputDisplay } from "@moonshot-ai/kimi-code-sdk"; import type { DisplayBlock } from "../../shared/legacy-sdk"; export function describeToolDisplay(display: ToolInputDisplay): string { switch (display.kind) { case "command": return display.command; case "file_io": return `${display.operation} ${display.path}`; case "diff": return `Edit ${display.path}`; case "search": return `Search for ${display.query}`; case "url_fetch": return display.url; case "agent_call": return display.prompt; case "skill_call": return display.args ? `${display.skill_name} ${display.args}` : display.skill_name; case "todo_list": return "Update the task list"; case "task": return display.description; case "task_stop": return display.task_description; case "plan_review": return display.plan; case "goal_start": return display.objective; case "generic": return display.summary; } } export function toLegacyDisplay(display: ToolInputDisplay): DisplayBlock[] { switch (display.kind) { case "command": return [{ type: "shell", language: display.language ?? "bash", command: display.command }]; case "diff": return [{ type: "diff", path: display.path, old_text: display.before, new_text: display.after }]; case "file_io": if ( display.before !== undefined || display.after !== undefined || display.content !== undefined ) { return [{ type: "diff", path: display.path, old_text: display.before ?? "", new_text: display.after ?? display.content ?? "", }]; } return [{ type: "brief", text: describeToolDisplay(display) }]; case "todo_list": return [{ type: "todo", items: display.items.map((item) => ({ title: item.title, status: item.status === "done" || item.status === "in_progress" ? item.status : "pending", })), }]; case "search": case "url_fetch": case "agent_call": case "skill_call": case "task": case "task_stop": case "plan_review": case "goal_start": case "generic": return [{ type: "brief", text: describeToolDisplay(display) }]; } }