mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-20 04:11:10 -05:00
133 lines
3.5 KiB
TypeScript
133 lines
3.5 KiB
TypeScript
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",
|
|
"insert_code_block",
|
|
"search_and_replace",
|
|
"search_files",
|
|
"list_files",
|
|
"list_code_definition_names",
|
|
"browser_action",
|
|
"use_mcp_tool",
|
|
"access_mcp_resource",
|
|
"ask_followup_question",
|
|
"attempt_completion",
|
|
"switch_mode",
|
|
] 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",
|
|
"mode_slug",
|
|
"reason",
|
|
"operations",
|
|
] 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 InsertCodeBlockToolUse extends ToolUse {
|
|
name: "insert_code_block"
|
|
params: Partial<Pick<Record<ToolParamName, string>, "path" | "operations">>
|
|
}
|
|
|
|
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">>
|
|
}
|
|
|
|
export interface SwitchModeToolUse extends ToolUse {
|
|
name: "switch_mode"
|
|
params: Partial<Pick<Record<ToolParamName, string>, "mode_slug" | "reason">>
|
|
}
|