| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- 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",
- "search_files",
- "list_files",
- "list_code_definition_names",
- "inspect_site",
- "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",
- "regex",
- "file_pattern",
- "recursive",
- "url",
- "question",
- "result",
- ] 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">>
- }
- 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 InspectSiteToolUse extends ToolUse {
- name: "inspect_site"
- params: Partial<Pick<Record<ToolParamName, string>, "url">>
- }
- 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">>
- }
|