mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2026-02-05 03:55:23 -05:00
81 lines
3.0 KiB
TypeScript
81 lines
3.0 KiB
TypeScript
import { getExecuteCommandDescription } from "./execute-command"
|
|
import { getReadFileDescription } from "./read-file"
|
|
import { getWriteToFileDescription } from "./write-to-file"
|
|
import { getSearchFilesDescription } from "./search-files"
|
|
import { getListFilesDescription } from "./list-files"
|
|
import { getListCodeDefinitionNamesDescription } from "./list-code-definition-names"
|
|
import { getBrowserActionDescription } from "./browser-action"
|
|
import { getAskFollowupQuestionDescription } from "./ask-followup-question"
|
|
import { getAttemptCompletionDescription } from "./attempt-completion"
|
|
import { getUseMcpToolDescription } from "./use-mcp-tool"
|
|
import { getAccessMcpResourceDescription } from "./access-mcp-resource"
|
|
import { DiffStrategy } from "../../diff/DiffStrategy"
|
|
import { McpHub } from "../../../services/mcp/McpHub"
|
|
import { Mode, ToolName, getModeConfig, isToolAllowedForMode } from "../../../shared/modes"
|
|
import { ToolArgs } from "./types"
|
|
|
|
// Map of tool names to their description functions
|
|
const toolDescriptionMap: Record<string, (args: ToolArgs) => string | undefined> = {
|
|
execute_command: (args) => getExecuteCommandDescription(args),
|
|
read_file: (args) => getReadFileDescription(args),
|
|
write_to_file: (args) => getWriteToFileDescription(args),
|
|
search_files: (args) => getSearchFilesDescription(args),
|
|
list_files: (args) => getListFilesDescription(args),
|
|
list_code_definition_names: (args) => getListCodeDefinitionNamesDescription(args),
|
|
browser_action: (args) => getBrowserActionDescription(args),
|
|
ask_followup_question: () => getAskFollowupQuestionDescription(),
|
|
attempt_completion: () => getAttemptCompletionDescription(),
|
|
use_mcp_tool: (args) => getUseMcpToolDescription(args),
|
|
access_mcp_resource: (args) => getAccessMcpResourceDescription(args),
|
|
apply_diff: (args) =>
|
|
args.diffStrategy ? args.diffStrategy.getToolDescription({ cwd: args.cwd, toolOptions: args.toolOptions }) : "",
|
|
}
|
|
|
|
export function getToolDescriptionsForMode(
|
|
mode: Mode,
|
|
cwd: string,
|
|
supportsComputerUse: boolean,
|
|
diffStrategy?: DiffStrategy,
|
|
browserViewportSize?: string,
|
|
mcpHub?: McpHub,
|
|
): string {
|
|
const config = getModeConfig(mode)
|
|
const args: ToolArgs = {
|
|
cwd,
|
|
supportsComputerUse,
|
|
diffStrategy,
|
|
browserViewportSize,
|
|
mcpHub,
|
|
}
|
|
|
|
// Map tool descriptions in the exact order specified in the mode's tools array
|
|
const descriptions = config.tools.map(([toolName, toolOptions]) => {
|
|
const descriptionFn = toolDescriptionMap[toolName]
|
|
if (!descriptionFn || !isToolAllowedForMode(toolName as ToolName, mode)) {
|
|
return undefined
|
|
}
|
|
|
|
return descriptionFn({
|
|
...args,
|
|
toolOptions,
|
|
})
|
|
})
|
|
|
|
return `# Tools\n\n${descriptions.filter(Boolean).join("\n\n")}`
|
|
}
|
|
|
|
// Export individual description functions for backward compatibility
|
|
export {
|
|
getExecuteCommandDescription,
|
|
getReadFileDescription,
|
|
getWriteToFileDescription,
|
|
getSearchFilesDescription,
|
|
getListFilesDescription,
|
|
getListCodeDefinitionNamesDescription,
|
|
getBrowserActionDescription,
|
|
getAskFollowupQuestionDescription,
|
|
getAttemptCompletionDescription,
|
|
getUseMcpToolDescription,
|
|
getAccessMcpResourceDescription,
|
|
}
|