| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- export type AssistantMessageContent = TextContent | ToolUse
- export { parseAssistantMessage } from "./parse-assistant-message"
- export interface TextContent {
- type: "text"
- content: string
- partial: boolean
- }
- export const toolUseNames = [
- "execute_command",
- "read_file",
- "write_to_file",
- "apply_diff",
- "search_files",
- "list_files",
- "list_code_definition_names",
- "browser_action",
- "use_mcp_tool",
- "access_mcp_resource",
- "ask_followup_question",
- "attempt_completion",
- ] as const
- // Converts array of tool call names into a union type ("execute_command" | "read_file" | ...)
- export type ToolUseName = (typeof toolUseNames)[number]
- export const toolParamNames = [
- "command",
- "path",
- "content",
- "line_count",
- "regex",
- "file_pattern",
- "recursive",
- "action",
- "url",
- "coordinate",
- "text",
- "server_name",
- "tool_name",
- "arguments",
- "uri",
- "question",
- "result",
- "diff",
- "start_line",
- "end_line",
- ] as const
- export type ToolParamName = (typeof toolParamNames)[number]
- export interface ToolUse {
- type: "tool_use"
- name: ToolUseName
- // params is a partial record, allowing only some or none of the possible parameters to be used
- params: Partial<Record<ToolParamName, string>>
- partial: boolean
- }
- export interface ExecuteCommandToolUse extends ToolUse {
- name: "execute_command"
- // Pick<Record<ToolParamName, string>, "command"> makes "command" required, but Partial<> makes it optional
- params: Partial<Pick<Record<ToolParamName, string>, "command">>
- }
- export interface ReadFileToolUse extends ToolUse {
- name: "read_file"
- params: Partial<Pick<Record<ToolParamName, string>, "path">>
- }
- export interface WriteToFileToolUse extends ToolUse {
- name: "write_to_file"
- params: Partial<Pick<Record<ToolParamName, string>, "path" | "content" | "line_count">>
- }
- export interface SearchFilesToolUse extends ToolUse {
- name: "search_files"
- params: Partial<Pick<Record<ToolParamName, string>, "path" | "regex" | "file_pattern">>
- }
- export interface ListFilesToolUse extends ToolUse {
- name: "list_files"
- params: Partial<Pick<Record<ToolParamName, string>, "path" | "recursive">>
- }
- export interface ListCodeDefinitionNamesToolUse extends ToolUse {
- name: "list_code_definition_names"
- params: Partial<Pick<Record<ToolParamName, string>, "path">>
- }
- export interface BrowserActionToolUse extends ToolUse {
- name: "browser_action"
- params: Partial<Pick<Record<ToolParamName, string>, "action" | "url" | "coordinate" | "text">>
- }
- export interface UseMcpToolToolUse extends ToolUse {
- name: "use_mcp_tool"
- params: Partial<Pick<Record<ToolParamName, string>, "server_name" | "tool_name" | "arguments">>
- }
- export interface AccessMcpResourceToolUse extends ToolUse {
- name: "access_mcp_resource"
- params: Partial<Pick<Record<ToolParamName, string>, "server_name" | "uri">>
- }
- export interface AskFollowupQuestionToolUse extends ToolUse {
- name: "ask_followup_question"
- params: Partial<Pick<Record<ToolParamName, string>, "question">>
- }
- export interface AttemptCompletionToolUse extends ToolUse {
- name: "attempt_completion"
- params: Partial<Pick<Record<ToolParamName, string>, "result" | "command">>
- }
|