diff --git a/packages/types/src/tool.ts b/packages/types/src/tool.ts index fa200865124..0a9afb3162b 100644 --- a/packages/types/src/tool.ts +++ b/packages/types/src/tool.ts @@ -24,7 +24,6 @@ export const toolNames = [ "apply_patch", "search_files", "list_files", - "list_code_definition_names", "browser_action", "use_mcp_tool", "access_mcp_resource", diff --git a/src/core/assistant-message/NativeToolCallParser.ts b/src/core/assistant-message/NativeToolCallParser.ts index eaef28a5382..e88c26a913f 100644 --- a/src/core/assistant-message/NativeToolCallParser.ts +++ b/src/core/assistant-message/NativeToolCallParser.ts @@ -437,14 +437,6 @@ export class NativeToolCallParser { } break - case "list_code_definition_names": - if (partialArgs.path !== undefined) { - nativeArgs = { - path: partialArgs.path, - } - } - break - case "run_slash_command": if (partialArgs.command !== undefined) { nativeArgs = { @@ -677,14 +669,6 @@ export class NativeToolCallParser { } break - case "list_code_definition_names": - if (args.path !== undefined) { - nativeArgs = { - path: args.path, - } as NativeArgsFor - } - break - case "run_slash_command": if (args.command !== undefined) { nativeArgs = { diff --git a/src/core/assistant-message/presentAssistantMessage.ts b/src/core/assistant-message/presentAssistantMessage.ts index 84f00806da4..54e01927261 100644 --- a/src/core/assistant-message/presentAssistantMessage.ts +++ b/src/core/assistant-message/presentAssistantMessage.ts @@ -21,7 +21,6 @@ import { applyDiffTool } from "../tools/MultiApplyDiffTool" import { searchAndReplaceTool } from "../tools/SearchAndReplaceTool" import { searchReplaceTool } from "../tools/SearchReplaceTool" import { applyPatchTool } from "../tools/ApplyPatchTool" -import { listCodeDefinitionNamesTool } from "../tools/ListCodeDefinitionNamesTool" import { searchFilesTool } from "../tools/SearchFilesTool" import { browserActionTool } from "../tools/BrowserActionTool" import { executeCommandTool } from "../tools/ExecuteCommandTool" @@ -396,8 +395,6 @@ export async function presentAssistantMessage(cline: Task) { return `[${block.name}]` case "list_files": return `[${block.name} for '${block.params.path}']` - case "list_code_definition_names": - return `[${block.name} for '${block.params.path}']` case "browser_action": return `[${block.name} for '${block.params.action}']` case "use_mcp_tool": @@ -919,15 +916,6 @@ export async function presentAssistantMessage(cline: Task) { toolProtocol, }) break - case "list_code_definition_names": - await listCodeDefinitionNamesTool.handle(cline, block as ToolUse<"list_code_definition_names">, { - askApproval, - handleError, - pushToolResult, - removeClosingTag, - toolProtocol, - }) - break case "search_files": await searchFilesTool.handle(cline, block as ToolUse<"search_files">, { askApproval, diff --git a/src/core/auto-approval/tools.ts b/src/core/auto-approval/tools.ts index a6c76c7173c..4e27a217a95 100644 --- a/src/core/auto-approval/tools.ts +++ b/src/core/auto-approval/tools.ts @@ -10,7 +10,6 @@ export function isReadOnlyToolAction(tool: ClineSayTool): boolean { "listFiles", "listFilesTopLevel", "listFilesRecursive", - "listCodeDefinitionNames", "searchFiles", "codebaseSearch", "runSlashCommand", diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/architect-mode-prompt.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/architect-mode-prompt.snap index 38dafc4a35a..ee8a50e9933 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/architect-mode-prompt.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/architect-mode-prompt.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/ask-mode-prompt.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/ask-mode-prompt.snap index 75eb622ee17..44287486326 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/ask-mode-prompt.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/ask-mode-prompt.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## ask_followup_question Description: Ask the user a question to gather additional information needed to complete the task. Use when you need clarification or more details to proceed effectively. diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-disabled.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-disabled.snap index 6305cb4d15d..48b39d001f6 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-disabled.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-disabled.snap @@ -148,27 +148,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-enabled.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-enabled.snap index 2c5e7d2c0ec..acc36d1ffd8 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-enabled.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-enabled.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/partial-reads-enabled.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/partial-reads-enabled.snap index 9bf7743cab9..ac93623fda2 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/partial-reads-enabled.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/partial-reads-enabled.snap @@ -154,27 +154,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/consistent-system-prompt.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/consistent-system-prompt.snap index 38dafc4a35a..ee8a50e9933 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/consistent-system-prompt.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/consistent-system-prompt.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-computer-use-support.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-computer-use-support.snap index affd76ade5b..8edc23260ea 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-computer-use-support.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-computer-use-support.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-false.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-false.snap index 38dafc4a35a..ee8a50e9933 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-false.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-false.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-true.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-true.snap index cea775f3037..54df428abd3 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-true.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-true.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## apply_diff Description: Request to apply PRECISE, TARGETED modifications to an existing file by searching for specific sections of content and replacing them. This tool is for SURGICAL EDITS ONLY - specific changes to existing code. You can perform multiple distinct search and replace operations within a single `apply_diff` call by providing multiple SEARCH/REPLACE blocks in the `diff` parameter. This is the preferred way to make several targeted changes efficiently. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-undefined.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-undefined.snap index 38dafc4a35a..ee8a50e9933 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-undefined.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-undefined.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-different-viewport-size.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-different-viewport-size.snap index 38dafc4a35a..ee8a50e9933 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-different-viewport-size.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-different-viewport-size.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-mcp-hub-provided.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-mcp-hub-provided.snap index 2c5e7d2c0ec..acc36d1ffd8 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-mcp-hub-provided.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-mcp-hub-provided.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-undefined-mcp-hub.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-undefined-mcp-hub.snap index 38dafc4a35a..ee8a50e9933 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-undefined-mcp-hub.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-undefined-mcp-hub.snap @@ -149,27 +149,6 @@ Example: Requesting to list all files in the current directory false -## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory /test/path) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ - - ## write_to_file Description: Request to write content to a file. This tool is primarily used for **creating new files** or for scenarios where a **complete rewrite of an existing file is intentionally required**. If the file exists, it will be overwritten. If it doesn't exist, it will be created. This tool will automatically create any directories needed to write the file. diff --git a/src/core/prompts/instructions/create-mode.ts b/src/core/prompts/instructions/create-mode.ts index de954a2f159..80f69b08024 100644 --- a/src/core/prompts/instructions/create-mode.ts +++ b/src/core/prompts/instructions/create-mode.ts @@ -50,7 +50,7 @@ customModes: or ensuring responsive web interfaces. This mode is especially effective with CSS, HTML, and modern frontend frameworks. # Optional but recommended groups: # Required: array of tool groups (can be empty) - - read # Read files group (read_file, fetch_instructions, search_files, list_files, list_code_definition_names) + - read # Read files group (read_file, fetch_instructions, search_files, list_files) - edit # Edit files group (apply_diff, write_to_file) - allows editing any file # Or with file restrictions: # - - edit diff --git a/src/core/prompts/tools/index.ts b/src/core/prompts/tools/index.ts index a9e195c166e..e0993348ccc 100644 --- a/src/core/prompts/tools/index.ts +++ b/src/core/prompts/tools/index.ts @@ -13,7 +13,6 @@ import { shouldUseSingleFileRead } from "@roo-code/types" 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" @@ -42,7 +41,6 @@ const toolDescriptionMap: Record string | undefined> 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: (args) => getAttemptCompletionDescription(args), @@ -166,7 +164,6 @@ export { getWriteToFileDescription, getSearchFilesDescription, getListFilesDescription, - getListCodeDefinitionNamesDescription, getBrowserActionDescription, getAskFollowupQuestionDescription, getAttemptCompletionDescription, diff --git a/src/core/prompts/tools/list-code-definition-names.ts b/src/core/prompts/tools/list-code-definition-names.ts deleted file mode 100644 index 259c59d189a..00000000000 --- a/src/core/prompts/tools/list-code-definition-names.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ToolArgs } from "./types" - -export function getListCodeDefinitionNamesDescription(args: ToolArgs): string { - return `## list_code_definition_names -Description: Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory ${args.cwd}) to analyze. When given a directory, it lists definitions from all top-level source files. -Usage: - -Directory path here - - -Examples: - -1. List definitions from a specific file: - -src/main.ts - - -2. List definitions from all files in a directory: - -src/ -` -} diff --git a/src/core/prompts/tools/native-tools/index.ts b/src/core/prompts/tools/native-tools/index.ts index 0f6a0c4b8db..760d987b47b 100644 --- a/src/core/prompts/tools/native-tools/index.ts +++ b/src/core/prompts/tools/native-tools/index.ts @@ -9,7 +9,6 @@ import codebaseSearch from "./codebase_search" import executeCommand from "./execute_command" import fetchInstructions from "./fetch_instructions" import generateImage from "./generate_image" -import listCodeDefinitionNames from "./list_code_definition_names" import listFiles from "./list_files" import newTask from "./new_task" import { createReadFileTool } from "./read_file" @@ -42,7 +41,6 @@ export function getNativeTools(partialReadsEnabled: boolean = true): OpenAI.Chat executeCommand, fetchInstructions, generateImage, - listCodeDefinitionNames, listFiles, newTask, createReadFileTool(partialReadsEnabled), diff --git a/src/core/prompts/tools/native-tools/list_code_definition_names.ts b/src/core/prompts/tools/native-tools/list_code_definition_names.ts deleted file mode 100644 index c5b604c935e..00000000000 --- a/src/core/prompts/tools/native-tools/list_code_definition_names.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type OpenAI from "openai" - -const LIST_CODE_DEFINITION_NAMES_DESCRIPTION = `Request to list definition names (classes, functions, methods, etc.) from source code. This tool can analyze either a single file or all files at the top level of a specified directory. It provides insights into the codebase structure and important constructs, encapsulating high-level concepts and relationships that are crucial for understanding the overall architecture. - -Parameters: -- path: (required) The path of the file or directory (relative to the current working directory) to analyze. When given a directory, it lists definitions from all top-level source files. - -Examples: - -1. List definitions from a specific file: -{ "path": "src/main.ts" } - -2. List definitions from all files in a directory: -{ "path": "src/" }` - -const PATH_PARAMETER_DESCRIPTION = `Path to the file or directory to analyze, relative to the workspace` - -export default { - type: "function", - function: { - name: "list_code_definition_names", - description: LIST_CODE_DEFINITION_NAMES_DESCRIPTION, - strict: true, - parameters: { - type: "object", - properties: { - path: { - type: "string", - description: PATH_PARAMETER_DESCRIPTION, - }, - }, - required: ["path"], - additionalProperties: false, - }, - }, -} satisfies OpenAI.Chat.ChatCompletionTool diff --git a/src/core/tools/ListCodeDefinitionNamesTool.ts b/src/core/tools/ListCodeDefinitionNamesTool.ts deleted file mode 100644 index e76a45c880b..00000000000 --- a/src/core/tools/ListCodeDefinitionNamesTool.ts +++ /dev/null @@ -1,108 +0,0 @@ -import path from "path" -import fs from "fs/promises" - -import { Task } from "../task/Task" -import { ClineSayTool } from "../../shared/ExtensionMessage" -import { getReadablePath } from "../../utils/path" -import { isPathOutsideWorkspace } from "../../utils/pathUtils" -import { parseSourceCodeForDefinitionsTopLevel, parseSourceCodeDefinitionsForFile } from "../../services/tree-sitter" -import { RecordSource } from "../context-tracking/FileContextTrackerTypes" -import { truncateDefinitionsToLineLimit } from "./helpers/truncateDefinitions" -import { BaseTool, ToolCallbacks } from "./BaseTool" -import type { ToolUse } from "../../shared/tools" - -interface ListCodeDefinitionNamesParams { - path: string -} - -export class ListCodeDefinitionNamesTool extends BaseTool<"list_code_definition_names"> { - readonly name = "list_code_definition_names" as const - - parseLegacy(params: Partial>): ListCodeDefinitionNamesParams { - return { - path: params.path || "", - } - } - - async execute(params: ListCodeDefinitionNamesParams, task: Task, callbacks: ToolCallbacks): Promise { - const { askApproval, handleError, pushToolResult } = callbacks - const { path: relPath } = params - - if (!relPath) { - task.consecutiveMistakeCount++ - task.recordToolError("list_code_definition_names") - task.didToolFailInCurrentTurn = true - pushToolResult(await task.sayAndCreateMissingParamError("list_code_definition_names", "path")) - return - } - - task.consecutiveMistakeCount = 0 - - const absolutePath = path.resolve(task.cwd, relPath) - const isOutsideWorkspace = isPathOutsideWorkspace(absolutePath) - - const sharedMessageProps: ClineSayTool = { - tool: "listCodeDefinitionNames", - path: getReadablePath(task.cwd, relPath), - isOutsideWorkspace, - } - - try { - let result: string - - try { - const stats = await fs.stat(absolutePath) - - if (stats.isFile()) { - const fileResult = await parseSourceCodeDefinitionsForFile(absolutePath, task.rooIgnoreController) - - if (fileResult) { - const { maxReadFileLine = -1 } = (await task.providerRef.deref()?.getState()) ?? {} - result = truncateDefinitionsToLineLimit(fileResult, maxReadFileLine) - } else { - result = "No source code definitions found in file." - } - } else if (stats.isDirectory()) { - result = await parseSourceCodeForDefinitionsTopLevel(absolutePath, task.rooIgnoreController) - } else { - result = "The specified path is neither a file nor a directory." - } - } catch { - result = `${absolutePath}: does not exist or cannot be accessed.` - } - - const completeMessage = JSON.stringify({ ...sharedMessageProps, content: result } satisfies ClineSayTool) - const didApprove = await askApproval("tool", completeMessage) - - if (!didApprove) { - return - } - - if (relPath) { - await task.fileContextTracker.trackFileContext(relPath, "read_tool" as RecordSource) - } - - pushToolResult(result) - } catch (error) { - await handleError("parsing source code definitions", error as Error) - } - } - - override async handlePartial(task: Task, block: ToolUse<"list_code_definition_names">): Promise { - const relPath: string | undefined = block.params.path - - const absolutePath = relPath ? path.resolve(task.cwd, relPath) : task.cwd - const isOutsideWorkspace = isPathOutsideWorkspace(absolutePath) - - const sharedMessageProps: ClineSayTool = { - tool: "listCodeDefinitionNames", - path: getReadablePath(task.cwd, relPath || ""), - isOutsideWorkspace, - } - - const partialMessage = JSON.stringify({ ...sharedMessageProps, content: "" } satisfies ClineSayTool) - await task.ask("tool", partialMessage, block.partial).catch(() => {}) - } -} - -export const listCodeDefinitionNamesTool = new ListCodeDefinitionNamesTool() diff --git a/src/core/tools/__tests__/listCodeDefinitionNamesTool.spec.ts b/src/core/tools/__tests__/listCodeDefinitionNamesTool.spec.ts deleted file mode 100644 index 1e9c61e11cb..00000000000 --- a/src/core/tools/__tests__/listCodeDefinitionNamesTool.spec.ts +++ /dev/null @@ -1,343 +0,0 @@ -// npx vitest src/core/tools/__tests__/listCodeDefinitionNamesTool.spec.ts - -import { describe, it, expect, vi, beforeEach } from "vitest" -import { listCodeDefinitionNamesTool } from "../ListCodeDefinitionNamesTool" -import { Task } from "../../task/Task" -import { ToolUse } from "../../../shared/tools" -import * as treeSitter from "../../../services/tree-sitter" -import fs from "fs/promises" - -// Mock the tree-sitter service -vi.mock("../../../services/tree-sitter", () => ({ - parseSourceCodeDefinitionsForFile: vi.fn(), - parseSourceCodeForDefinitionsTopLevel: vi.fn(), -})) - -// Mock fs module -vi.mock("fs/promises", () => ({ - default: { - stat: vi.fn(), - }, -})) - -describe("listCodeDefinitionNamesTool", () => { - let mockTask: Partial - let mockAskApproval: any - let mockHandleError: any - let mockPushToolResult: any - let mockRemoveClosingTag: any - - beforeEach(() => { - vi.clearAllMocks() - - mockTask = { - cwd: "/test/path", - consecutiveMistakeCount: 0, - recordToolError: vi.fn(), - sayAndCreateMissingParamError: vi.fn(), - ask: vi.fn(), - fileContextTracker: { - trackFileContext: vi.fn(), - }, - providerRef: { - deref: vi.fn(() => ({ - getState: vi.fn(async () => ({ maxReadFileLine: -1 })), - })), - }, - rooIgnoreController: undefined, - } as any - - mockAskApproval = vi.fn(async () => true) - mockHandleError = vi.fn() - mockPushToolResult = vi.fn() - mockRemoveClosingTag = vi.fn((tag: string, value: string) => value) - }) - - describe("truncateDefinitionsToLineLimit", () => { - it("should not truncate when maxReadFileLine is -1 (no limit)", async () => { - const mockDefinitions = `# test.ts -10--20 | function foo() { -30--40 | function bar() { -50--60 | function baz() {` - - vi.mocked(treeSitter.parseSourceCodeDefinitionsForFile).mockResolvedValue(mockDefinitions) - - vi.mocked(fs.stat).mockResolvedValue({ - isFile: () => true, - isDirectory: () => false, - } as any) - - mockTask.providerRef = { - deref: vi.fn(() => ({ - getState: vi.fn(async () => ({ maxReadFileLine: -1 })), - })), - } as any - - const block: ToolUse = { - type: "tool_use", - name: "list_code_definition_names", - params: { path: "test.ts" }, - partial: false, - } - - await listCodeDefinitionNamesTool.handle(mockTask as Task, block as ToolUse<"list_code_definition_names">, { - askApproval: mockAskApproval, - handleError: mockHandleError, - pushToolResult: mockPushToolResult, - removeClosingTag: mockRemoveClosingTag, - toolProtocol: "xml", - }) - - expect(mockPushToolResult).toHaveBeenCalledWith(mockDefinitions) - }) - - it("should not truncate when maxReadFileLine is 0 (definitions only mode)", async () => { - const mockDefinitions = `# test.ts -10--20 | function foo() { -30--40 | function bar() { -50--60 | function baz() {` - - vi.mocked(treeSitter.parseSourceCodeDefinitionsForFile).mockResolvedValue(mockDefinitions) - - vi.mocked(fs.stat).mockResolvedValue({ - isFile: () => true, - isDirectory: () => false, - } as any) - - mockTask.providerRef = { - deref: vi.fn(() => ({ - getState: vi.fn(async () => ({ maxReadFileLine: 0 })), - })), - } as any - - const block: ToolUse = { - type: "tool_use", - name: "list_code_definition_names", - params: { path: "test.ts" }, - partial: false, - } - - await listCodeDefinitionNamesTool.handle(mockTask as Task, block as ToolUse<"list_code_definition_names">, { - askApproval: mockAskApproval, - handleError: mockHandleError, - pushToolResult: mockPushToolResult, - removeClosingTag: mockRemoveClosingTag, - toolProtocol: "xml", - }) - - expect(mockPushToolResult).toHaveBeenCalledWith(mockDefinitions) - }) - - it("should truncate definitions when maxReadFileLine is set", async () => { - const mockDefinitions = `# test.ts -10--20 | function foo() { -30--40 | function bar() { -50--60 | function baz() {` - - vi.mocked(treeSitter.parseSourceCodeDefinitionsForFile).mockResolvedValue(mockDefinitions) - - vi.mocked(fs.stat).mockResolvedValue({ - isFile: () => true, - isDirectory: () => false, - } as any) - - mockTask.providerRef = { - deref: vi.fn(() => ({ - getState: vi.fn(async () => ({ maxReadFileLine: 25 })), - })), - } as any - - const block: ToolUse = { - type: "tool_use", - name: "list_code_definition_names", - params: { path: "test.ts" }, - partial: false, - } - - await listCodeDefinitionNamesTool.handle(mockTask as Task, block as ToolUse<"list_code_definition_names">, { - askApproval: mockAskApproval, - handleError: mockHandleError, - pushToolResult: mockPushToolResult, - removeClosingTag: mockRemoveClosingTag, - toolProtocol: "xml", - }) - - // Should only include definitions starting at or before line 25 - const expectedResult = `# test.ts -10--20 | function foo() {` - - expect(mockPushToolResult).toHaveBeenCalledWith(expectedResult) - }) - - it("should include definitions that start within limit even if they end beyond it", async () => { - const mockDefinitions = `# test.ts -10--50 | function foo() { -60--80 | function bar() {` - - vi.mocked(treeSitter.parseSourceCodeDefinitionsForFile).mockResolvedValue(mockDefinitions) - - vi.mocked(fs.stat).mockResolvedValue({ - isFile: () => true, - isDirectory: () => false, - } as any) - - mockTask.providerRef = { - deref: vi.fn(() => ({ - getState: vi.fn(async () => ({ maxReadFileLine: 30 })), - })), - } as any - - const block: ToolUse = { - type: "tool_use", - name: "list_code_definition_names", - params: { path: "test.ts" }, - partial: false, - } - - await listCodeDefinitionNamesTool.handle(mockTask as Task, block as ToolUse<"list_code_definition_names">, { - askApproval: mockAskApproval, - handleError: mockHandleError, - pushToolResult: mockPushToolResult, - removeClosingTag: mockRemoveClosingTag, - toolProtocol: "xml", - }) - - // Should include foo (starts at 10) but not bar (starts at 60) - const expectedResult = `# test.ts -10--50 | function foo() {` - - expect(mockPushToolResult).toHaveBeenCalledWith(expectedResult) - }) - - it("should handle single-line definitions", async () => { - const mockDefinitions = `# test.ts -10 | const foo = 1 -20 | const bar = 2 -30 | const baz = 3` - - vi.mocked(treeSitter.parseSourceCodeDefinitionsForFile).mockResolvedValue(mockDefinitions) - - vi.mocked(fs.stat).mockResolvedValue({ - isFile: () => true, - isDirectory: () => false, - } as any) - - mockTask.providerRef = { - deref: vi.fn(() => ({ - getState: vi.fn(async () => ({ maxReadFileLine: 25 })), - })), - } as any - - const block: ToolUse = { - type: "tool_use", - name: "list_code_definition_names", - params: { path: "test.ts" }, - partial: false, - } - - await listCodeDefinitionNamesTool.handle(mockTask as Task, block as ToolUse<"list_code_definition_names">, { - askApproval: mockAskApproval, - handleError: mockHandleError, - pushToolResult: mockPushToolResult, - removeClosingTag: mockRemoveClosingTag, - toolProtocol: "xml", - }) - - // Should include foo and bar but not baz - const expectedResult = `# test.ts -10 | const foo = 1 -20 | const bar = 2` - - expect(mockPushToolResult).toHaveBeenCalledWith(expectedResult) - }) - - it("should preserve header line when truncating", async () => { - const mockDefinitions = `# test.ts -100--200 | function foo() {` - - vi.mocked(treeSitter.parseSourceCodeDefinitionsForFile).mockResolvedValue(mockDefinitions) - - vi.mocked(fs.stat).mockResolvedValue({ - isFile: () => true, - isDirectory: () => false, - } as any) - - mockTask.providerRef = { - deref: vi.fn(() => ({ - getState: vi.fn(async () => ({ maxReadFileLine: 50 })), - })), - } as any - - const block: ToolUse = { - type: "tool_use", - name: "list_code_definition_names", - params: { path: "test.ts" }, - partial: false, - } - - await listCodeDefinitionNamesTool.handle(mockTask as Task, block as ToolUse<"list_code_definition_names">, { - askApproval: mockAskApproval, - handleError: mockHandleError, - pushToolResult: mockPushToolResult, - removeClosingTag: mockRemoveClosingTag, - toolProtocol: "xml", - }) - - // Should keep header but exclude all definitions beyond line 50 - const expectedResult = `# test.ts` - - expect(mockPushToolResult).toHaveBeenCalledWith(expectedResult) - }) - }) - - it("should handle missing path parameter", async () => { - const block: ToolUse = { - type: "tool_use", - name: "list_code_definition_names", - params: {}, - partial: false, - } - - mockTask.sayAndCreateMissingParamError = vi.fn(async () => "Missing parameter: path") - - await listCodeDefinitionNamesTool.handle(mockTask as Task, block as ToolUse<"list_code_definition_names">, { - askApproval: mockAskApproval, - handleError: mockHandleError, - pushToolResult: mockPushToolResult, - removeClosingTag: mockRemoveClosingTag, - toolProtocol: "xml", - }) - - expect(mockTask.consecutiveMistakeCount).toBe(1) - expect(mockTask.recordToolError).toHaveBeenCalledWith("list_code_definition_names") - expect(mockPushToolResult).toHaveBeenCalledWith("Missing parameter: path") - }) - - it("should handle directory path", async () => { - const mockDefinitions = "# Directory definitions" - - vi.mocked(treeSitter.parseSourceCodeForDefinitionsTopLevel).mockResolvedValue(mockDefinitions) - - vi.mocked(fs.stat).mockResolvedValue({ - isFile: () => false, - isDirectory: () => true, - } as any) - - const block: ToolUse = { - type: "tool_use", - name: "list_code_definition_names", - params: { path: "src" }, - partial: false, - } - - await listCodeDefinitionNamesTool.handle(mockTask as Task, block as ToolUse<"list_code_definition_names">, { - askApproval: mockAskApproval, - handleError: mockHandleError, - pushToolResult: mockPushToolResult, - removeClosingTag: mockRemoveClosingTag, - toolProtocol: "xml", - }) - - expect(mockPushToolResult).toHaveBeenCalledWith(mockDefinitions) - }) -}) diff --git a/src/core/tools/__tests__/readFileTool.spec.ts b/src/core/tools/__tests__/readFileTool.spec.ts index 727bd90adbb..d109a6d430a 100644 --- a/src/core/tools/__tests__/readFileTool.spec.ts +++ b/src/core/tools/__tests__/readFileTool.spec.ts @@ -9,8 +9,6 @@ import { parseSourceCodeDefinitionsForFile } from "../../../services/tree-sitter import { isBinaryFile } from "isbinaryfile" import { ReadFileToolUse, ToolParamName, ToolResponse } from "../../../shared/tools" import { readFileTool } from "../ReadFileTool" -import { formatResponse } from "../../prompts/responses" -import { DEFAULT_MAX_IMAGE_FILE_SIZE_MB, DEFAULT_MAX_TOTAL_IMAGE_SIZE_MB } from "../helpers/imageHelpers" vi.mock("path", async () => { const originalPath = await vi.importActual("path") diff --git a/src/services/tree-sitter/__tests__/index.spec.ts b/src/services/tree-sitter/__tests__/index.spec.ts deleted file mode 100644 index 28792eae359..00000000000 --- a/src/services/tree-sitter/__tests__/index.spec.ts +++ /dev/null @@ -1,443 +0,0 @@ -import * as fs from "fs/promises" -import type { Mock } from "vitest" - -import { parseSourceCodeForDefinitionsTopLevel } from "../index" -import { listFiles } from "../../glob/list-files" -import { loadRequiredLanguageParsers } from "../languageParser" -import { fileExistsAtPath } from "../../../utils/fs" - -// Mock dependencies -vi.mock("../../glob/list-files") -vi.mock("../languageParser") -vi.mock("../../../utils/fs") -vi.mock("fs/promises") - -describe("Tree-sitter Service", () => { - beforeEach(() => { - vi.clearAllMocks() - ;(fileExistsAtPath as Mock).mockResolvedValue(true) - }) - - describe("parseSourceCodeForDefinitionsTopLevel", () => { - it("should handle non-existent directory", async () => { - ;(fileExistsAtPath as Mock).mockResolvedValue(false) - - const result = await parseSourceCodeForDefinitionsTopLevel("/non/existent/path") - expect(result).toBe("This directory does not exist or you do not have permission to access it.") - }) - - it("should handle empty directory", async () => { - ;(listFiles as Mock).mockResolvedValue([[], new Set()]) - - const result = await parseSourceCodeForDefinitionsTopLevel("/test/path") - expect(result).toBe("No source code definitions found.") - }) - - it("should parse TypeScript files correctly", async () => { - const mockFiles = ["/test/path/file1.ts", "/test/path/file2.tsx", "/test/path/readme.md"] - - ;(listFiles as Mock).mockResolvedValue([mockFiles, new Set()]) - - const mockParser = { - parse: vi.fn().mockReturnValue({ - rootNode: "mockNode", - }), - } - - const mockQuery = { - captures: vi.fn().mockReturnValue([ - { - // Must span 4 lines to meet MIN_COMPONENT_LINES - node: { - startPosition: { row: 0 }, - endPosition: { row: 3 }, - parent: { - startPosition: { row: 0 }, - endPosition: { row: 3 }, - }, - text: () => "export class TestClass", - }, - name: "name.definition", - }, - ]), - } - - ;(loadRequiredLanguageParsers as Mock).mockResolvedValue({ - ts: { parser: mockParser, query: mockQuery }, - tsx: { parser: mockParser, query: mockQuery }, - }) - ;(fs.readFile as Mock).mockResolvedValue("export class TestClass {\n constructor() {}\n}") - - const result = await parseSourceCodeForDefinitionsTopLevel("/test/path") - - expect(result).toContain("file1.ts") - expect(result).toContain("file2.tsx") - expect(result).not.toContain("readme.md") - expect(result).toContain("export class TestClass") - }) - - it("should handle multiple definition types", async () => { - const mockFiles = ["/test/path/file.ts"] - ;(listFiles as Mock).mockResolvedValue([mockFiles, new Set()]) - - const mockParser = { - parse: vi.fn().mockReturnValue({ - rootNode: "mockNode", - }), - } - - const mockQuery = { - captures: vi.fn().mockReturnValue([ - { - node: { - startPosition: { row: 0 }, - endPosition: { row: 3 }, - parent: { - startPosition: { row: 0 }, - endPosition: { row: 3 }, - }, - text: () => "class TestClass", - }, - name: "name.definition.class", - }, - { - node: { - startPosition: { row: 2 }, - endPosition: { row: 5 }, - parent: { - startPosition: { row: 2 }, - endPosition: { row: 5 }, - }, - text: () => "testMethod()", - }, - name: "name.definition.function", - }, - ]), - } - - ;(loadRequiredLanguageParsers as Mock).mockResolvedValue({ - ts: { parser: mockParser, query: mockQuery }, - }) - - const fileContent = "class TestClass {\n" + " constructor() {}\n" + " testMethod() {}\n" + "}" - - ;(fs.readFile as Mock).mockResolvedValue(fileContent) - - const result = await parseSourceCodeForDefinitionsTopLevel("/test/path") - - expect(result).toContain("class TestClass") - expect(result).toContain("testMethod()") - }) - - it("should handle parsing errors gracefully", async () => { - const mockFiles = ["/test/path/file.ts"] - ;(listFiles as Mock).mockResolvedValue([mockFiles, new Set()]) - - const mockParser = { - parse: vi.fn().mockImplementation(() => { - throw new Error("Parsing error") - }), - } - - const mockQuery = { - captures: vi.fn(), - } - - ;(loadRequiredLanguageParsers as Mock).mockResolvedValue({ - ts: { parser: mockParser, query: mockQuery }, - }) - ;(fs.readFile as Mock).mockResolvedValue("invalid code") - - const result = await parseSourceCodeForDefinitionsTopLevel("/test/path") - expect(result).toBe("No source code definitions found.") - }) - - it("should capture arrow functions in JSX attributes with 4+ lines", async () => { - const mockFiles = ["/test/path/jsx-arrow.tsx"] - ;(listFiles as Mock).mockResolvedValue([mockFiles, new Set()]) - - // Embed the fixture content directly - const fixtureContent = `import React from 'react'; - -export const CheckboxExample = () => ( - { - const isChecked = e.target.checked - setIsCustomTemperature(isChecked) - - if (!isChecked) { - setInputValue(null) // Unset the temperature - } else { - setInputValue(value ?? 0) // Use value from config - } - }}> - - -);` - ;(fs.readFile as Mock).mockResolvedValue(fixtureContent) - - const lines = fixtureContent.split("\n") - - // Define the node type for proper TypeScript support - interface TreeNode { - type?: string - toString?: () => string - text?: () => string - startPosition?: { row: number } - endPosition?: { row: number } - children?: TreeNode[] - fields?: () => Record - printTree?: (depth?: number) => string - } - - // Create a more detailed mock rootNode for debugging Tree-sitter structure - // Helper function to print tree nodes - const printTree = (node: TreeNode, depth = 0): string => { - let result = "" - const indent = " ".repeat(depth) - - // Print node details - result += `${indent}Type: ${node.type || "ROOT"}\n` - result += `${indent}Text: "${node.text ? node.text() : "root"}"` - - // Print fields if available - if (node.fields) { - result += "\n" + indent + "Fields: " + JSON.stringify(node.fields(), null, 2) - } - - // Print children recursively - if (node.children && node.children.length > 0) { - result += "\n" + indent + "Children:" - for (const child of node.children) { - result += "\n" + printTree(child, depth + 1) - } - } - - return result - } - - const mockRootNode: TreeNode = { - toString: () => fixtureContent, - text: () => fixtureContent, - printTree: function (depth = 0) { - return printTree(this, depth) - }, - children: [ - { - type: "class_declaration", - text: () => "class TestComponent extends React.Component", - startPosition: { row: 0 }, - endPosition: { row: 20 }, - printTree: function (depth = 0) { - return printTree(this, depth) - }, - children: [ - { - type: "type_identifier", - text: () => "TestComponent", - printTree: function (depth = 0) { - return printTree(this, depth) - }, - }, - { - type: "extends_clause", - text: () => "extends React.Component", - printTree: function (depth = 0) { - return printTree(this, depth) - }, - children: [ - { - type: "generic_type", - text: () => "React.Component", - children: [{ type: "member_expression", text: () => "React.Component" }], - }, - ], - }, - ], - // Debug output to see field names - fields: () => { - return { - name: [{ type: "type_identifier", text: () => "TestComponent" }], - class_heritage: [{ type: "extends_clause", text: () => "extends React.Component" }], - } - }, - }, - ], - } - - const mockParser = { - parse: vi.fn().mockReturnValue({ - rootNode: mockRootNode, - }), - } - - const mockQuery = { - captures: vi.fn().mockImplementation(() => { - // Log tree structure for debugging - console.log("TREE STRUCTURE:") - if (mockRootNode.printTree) { - console.log(mockRootNode.printTree()) - } else { - console.log("Tree structure:", JSON.stringify(mockRootNode, null, 2)) - } - - return [ - { - node: { - startPosition: { row: 4 }, - endPosition: { row: 14 }, - text: () => lines[4], - parent: { - startPosition: { row: 4 }, - endPosition: { row: 14 }, - text: () => lines[4], - }, - }, - name: "definition.lambda", - }, - ] - }), - } - - ;(loadRequiredLanguageParsers as Mock).mockResolvedValue({ - tsx: { parser: mockParser, query: mockQuery }, - }) - - const result = await parseSourceCodeForDefinitionsTopLevel("/test/path") - - // Verify function found and correctly parsed - expect(result).toContain("jsx-arrow.tsx") - expect(result).toContain("5--15 |") - - // Verify line count - const capture = mockQuery.captures.mock.results[0].value[0] - expect(capture.node.endPosition.row - capture.node.startPosition.row).toBeGreaterThanOrEqual(4) - }) - - it("should respect file limit", async () => { - const mockFiles = Array(100) - .fill(0) - .map((_, i) => `/test/path/file${i}.ts`) - ;(listFiles as Mock).mockResolvedValue([mockFiles, new Set()]) - - const mockParser = { - parse: vi.fn().mockReturnValue({ - rootNode: "mockNode", - }), - } - - const mockQuery = { - captures: vi.fn().mockReturnValue([]), - } - - ;(loadRequiredLanguageParsers as Mock).mockResolvedValue({ - ts: { parser: mockParser, query: mockQuery }, - }) - - await parseSourceCodeForDefinitionsTopLevel("/test/path") - - // Should only process first 50 files - expect(mockParser.parse).toHaveBeenCalledTimes(50) - }) - - it("should handle various supported file extensions", async () => { - const mockFiles = [ - "/test/path/script.js", - "/test/path/app.py", - "/test/path/main.rs", - "/test/path/program.cpp", - "/test/path/code.go", - "/test/path/app.kt", - "/test/path/script.kts", - ] - - ;(listFiles as Mock).mockResolvedValue([mockFiles, new Set()]) - - const mockParser = { - parse: vi.fn().mockReturnValue({ - rootNode: "mockNode", - }), - } - - const mockQuery = { - captures: vi.fn().mockReturnValue([ - { - node: { - startPosition: { row: 0 }, - endPosition: { row: 3 }, - parent: { - startPosition: { row: 0 }, - endPosition: { row: 3 }, - }, - text: () => "function test() {}", - }, - name: "name", - }, - ]), - } - - ;(loadRequiredLanguageParsers as Mock).mockResolvedValue({ - js: { parser: mockParser, query: mockQuery }, - py: { parser: mockParser, query: mockQuery }, - rs: { parser: mockParser, query: mockQuery }, - cpp: { parser: mockParser, query: mockQuery }, - go: { parser: mockParser, query: mockQuery }, - kt: { parser: mockParser, query: mockQuery }, - kts: { parser: mockParser, query: mockQuery }, - }) - ;(fs.readFile as Mock).mockResolvedValue("function test() {}") - - const result = await parseSourceCodeForDefinitionsTopLevel("/test/path") - - expect(result).toContain("script.js") - expect(result).toContain("app.py") - expect(result).toContain("main.rs") - expect(result).toContain("program.cpp") - expect(result).toContain("code.go") - expect(result).toContain("app.kt") - expect(result).toContain("script.kts") - }) - - it("should normalize paths in output", async () => { - const mockFiles = ["/test/path/dir\\file.ts"] - ;(listFiles as Mock).mockResolvedValue([mockFiles, new Set()]) - - const mockParser = { - parse: vi.fn().mockReturnValue({ - rootNode: "mockNode", - }), - } - - const mockQuery = { - captures: vi.fn().mockReturnValue([ - { - node: { - startPosition: { row: 0 }, - endPosition: { row: 3 }, - parent: { - startPosition: { row: 0 }, - endPosition: { row: 3 }, - }, - text: () => "class Test {}", - }, - name: "name", - }, - ]), - } - - ;(loadRequiredLanguageParsers as Mock).mockResolvedValue({ - ts: { parser: mockParser, query: mockQuery }, - }) - ;(fs.readFile as Mock).mockResolvedValue("class Test {}") - - const result = await parseSourceCodeForDefinitionsTopLevel("/test/path") - - // Should use forward slashes regardless of platform - expect(result).toContain("dir/file.ts") - expect(result).not.toContain("dir\\file.ts") - }) - }) -}) diff --git a/src/services/tree-sitter/index.ts b/src/services/tree-sitter/index.ts index 145ba847308..3c124e5b748 100644 --- a/src/services/tree-sitter/index.ts +++ b/src/services/tree-sitter/index.ts @@ -1,6 +1,5 @@ import * as fs from "fs/promises" import * as path from "path" -import { listFiles } from "../glob/list-files" import { LanguageParser, loadRequiredLanguageParsers } from "./languageParser" import { fileExistsAtPath } from "../../utils/fs" import { parseMarkdown } from "./markdownParser" @@ -149,89 +148,6 @@ export async function parseSourceCodeDefinitionsForFile( return undefined } -// TODO: implement caching behavior to avoid having to keep analyzing project for new tasks. -export async function parseSourceCodeForDefinitionsTopLevel( - dirPath: string, - rooIgnoreController?: RooIgnoreController, -): Promise { - // check if the path exists - const dirExists = await fileExistsAtPath(path.resolve(dirPath)) - if (!dirExists) { - return "This directory does not exist or you do not have permission to access it." - } - - // Get all files at top level (not gitignored) - const [allFiles, _] = await listFiles(dirPath, false, 200) - - let result = "" - - // Separate files to parse and remaining files - const { filesToParse } = separateFiles(allFiles) - - // Filter filepaths for access if controller is provided - const allowedFilesToParse = rooIgnoreController ? rooIgnoreController.filterPaths(filesToParse) : filesToParse - - // Separate markdown files from other files - const markdownFiles: string[] = [] - const otherFiles: string[] = [] - - for (const file of allowedFilesToParse) { - const ext = path.extname(file).toLowerCase() - if (ext === ".md" || ext === ".markdown") { - markdownFiles.push(file) - } else { - otherFiles.push(file) - } - } - - // Load language parsers only for non-markdown files - const languageParsers = await loadRequiredLanguageParsers(otherFiles) - - // Process markdown files - for (const file of markdownFiles) { - // Check if we have permission to access this file - if (rooIgnoreController && !rooIgnoreController.validateAccess(file)) { - continue - } - - try { - // Read file content - const fileContent = await fs.readFile(file, "utf8") - - // Split the file content into individual lines - const lines = fileContent.split("\n") - - // Parse markdown content to get captures - const markdownCaptures = parseMarkdown(fileContent) - - // Process the captures - const markdownDefinitions = processCaptures(markdownCaptures, lines, "markdown") - - if (markdownDefinitions) { - result += `# ${path.relative(dirPath, file).toPosix()}\n${markdownDefinitions}\n` - } - } catch (error) { - console.log(`Error parsing markdown file: ${error}\n`) - } - } - - // Process other files using tree-sitter - for (const file of otherFiles) { - const definitions = await parseFile(file, languageParsers, rooIgnoreController) - if (definitions) { - result += `# ${path.relative(dirPath, file).toPosix()}\n${definitions}\n` - } - } - - return result ? result : "No source code definitions found." -} - -function separateFiles(allFiles: string[]): { filesToParse: string[]; remainingFiles: string[] } { - const filesToParse = allFiles.filter((file) => extensions.includes(path.extname(file))).slice(0, 50) // 50 files max - const remainingFiles = allFiles.filter((file) => !filesToParse.includes(file)) - return { filesToParse, remainingFiles } -} - /* Parsing files using tree-sitter diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index 2b478c5ba02..7efdd66bdb5 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -370,7 +370,6 @@ export interface ClineSayTool { | "fetchInstructions" | "listFilesTopLevel" | "listFilesRecursive" - | "listCodeDefinitionNames" | "searchFiles" | "switchMode" | "newTask" diff --git a/src/shared/tools.ts b/src/shared/tools.ts index 6b82861cb08..f1f7d3ed80e 100644 --- a/src/shared/tools.ts +++ b/src/shared/tools.ts @@ -102,7 +102,6 @@ export type NativeToolArgs = { codebase_search: { query: string; path?: string } fetch_instructions: { task: string } generate_image: GenerateImageParams - list_code_definition_names: { path: string } run_slash_command: { command: string; args?: string } search_files: { path: string; regex: string; file_pattern?: string | null } switch_mode: { mode_slug: string; reason: string } @@ -184,11 +183,6 @@ export interface ListFilesToolUse extends ToolUse<"list_files"> { params: Partial, "path" | "recursive">> } -export interface ListCodeDefinitionNamesToolUse extends ToolUse<"list_code_definition_names"> { - name: "list_code_definition_names" - params: Partial, "path">> -} - export interface BrowserActionToolUse extends ToolUse<"browser_action"> { name: "browser_action" params: Partial, "action" | "url" | "coordinate" | "text" | "size" | "path">> @@ -252,7 +246,6 @@ export const TOOL_DISPLAY_NAMES: Record = { apply_patch: "apply patches using codex format", search_files: "search files", list_files: "list files", - list_code_definition_names: "list definitions", browser_action: "use a browser", use_mcp_tool: "use mcp tools", access_mcp_resource: "access mcp resources", @@ -269,14 +262,7 @@ export const TOOL_DISPLAY_NAMES: Record = { // Define available tool groups. export const TOOL_GROUPS: Record = { read: { - tools: [ - "read_file", - "fetch_instructions", - "search_files", - "list_files", - "list_code_definition_names", - "codebase_search", - ], + tools: ["read_file", "fetch_instructions", "search_files", "list_files", "codebase_search"], }, edit: { tools: ["apply_diff", "write_to_file", "generate_image"], diff --git a/webview-ui/src/components/chat/ChatRow.tsx b/webview-ui/src/components/chat/ChatRow.tsx index 43d647d973b..6c9b5551637 100644 --- a/webview-ui/src/components/chat/ChatRow.tsx +++ b/webview-ui/src/components/chat/ChatRow.tsx @@ -706,32 +706,6 @@ export const ChatRowContent = ({ ) - case "listCodeDefinitionNames": - return ( - <> -
- {toolIcon("file-code")} - - {message.type === "ask" - ? tool.isOutsideWorkspace - ? t("chat:directoryOperations.wantsToViewDefinitionsOutsideWorkspace") - : t("chat:directoryOperations.wantsToViewDefinitions") - : tool.isOutsideWorkspace - ? t("chat:directoryOperations.didViewDefinitionsOutsideWorkspace") - : t("chat:directoryOperations.didViewDefinitions")} - -
-
- -
- - ) case "searchFiles": return ( <> diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index cef36c49ad5..56c6824d127 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo ha vist els fitxers de nivell superior en aquest directori", "wantsToViewRecursive": "Roo vol veure recursivament tots els fitxers en aquest directori", "didViewRecursive": "Roo ha vist recursivament tots els fitxers en aquest directori", - "wantsToViewDefinitions": "Roo vol veure noms de definicions de codi font utilitzats en aquest directori", - "didViewDefinitions": "Roo ha vist noms de definicions de codi font utilitzats en aquest directori", "wantsToSearch": "Roo vol cercar en aquest directori {{regex}}", "didSearch": "Roo ha cercat en aquest directori {{regex}}", "wantsToSearchOutsideWorkspace": "Roo vol cercar en aquest directori (fora de l'espai de treball) {{regex}}", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo vol veure els fitxers de nivell superior en aquest directori (fora de l'espai de treball)", "didViewTopLevelOutsideWorkspace": "Roo ha vist els fitxers de nivell superior en aquest directori (fora de l'espai de treball)", "wantsToViewRecursiveOutsideWorkspace": "Roo vol veure recursivament tots els fitxers en aquest directori (fora de l'espai de treball)", - "didViewRecursiveOutsideWorkspace": "Roo ha vist recursivament tots els fitxers en aquest directori (fora de l'espai de treball)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo vol veure noms de definicions de codi font utilitzats en aquest directori (fora de l'espai de treball)", - "didViewDefinitionsOutsideWorkspace": "Roo ha vist noms de definicions de codi font utilitzats en aquest directori (fora de l'espai de treball)" + "didViewRecursiveOutsideWorkspace": "Roo ha vist recursivament tots els fitxers en aquest directori (fora de l'espai de treball)" }, "commandOutput": "Sortida de la comanda", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index f152f64ea54..2d2f8afc074 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo hat die Dateien auf oberster Ebene in diesem Verzeichnis angezeigt", "wantsToViewRecursive": "Roo möchte rekursiv alle Dateien in diesem Verzeichnis anzeigen", "didViewRecursive": "Roo hat rekursiv alle Dateien in diesem Verzeichnis angezeigt", - "wantsToViewDefinitions": "Roo möchte Quellcode-Definitionsnamen in diesem Verzeichnis anzeigen", - "didViewDefinitions": "Roo hat Quellcode-Definitionsnamen in diesem Verzeichnis angezeigt", "wantsToSearch": "Roo möchte dieses Verzeichnis nach {{regex}} durchsuchen", "didSearch": "Roo hat dieses Verzeichnis nach {{regex}} durchsucht", "wantsToSearchOutsideWorkspace": "Roo möchte dieses Verzeichnis (außerhalb des Arbeitsbereichs) nach {{regex}} durchsuchen", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo möchte die Dateien auf oberster Ebene in diesem Verzeichnis (außerhalb des Arbeitsbereichs) anzeigen", "didViewTopLevelOutsideWorkspace": "Roo hat die Dateien auf oberster Ebene in diesem Verzeichnis (außerhalb des Arbeitsbereichs) angezeigt", "wantsToViewRecursiveOutsideWorkspace": "Roo möchte rekursiv alle Dateien in diesem Verzeichnis (außerhalb des Arbeitsbereichs) anzeigen", - "didViewRecursiveOutsideWorkspace": "Roo hat rekursiv alle Dateien in diesem Verzeichnis (außerhalb des Arbeitsbereichs) angezeigt", - "wantsToViewDefinitionsOutsideWorkspace": "Roo möchte Quellcode-Definitionsnamen in diesem Verzeichnis (außerhalb des Arbeitsbereichs) anzeigen", - "didViewDefinitionsOutsideWorkspace": "Roo hat Quellcode-Definitionsnamen in diesem Verzeichnis (außerhalb des Arbeitsbereichs) angezeigt" + "didViewRecursiveOutsideWorkspace": "Roo hat rekursiv alle Dateien in diesem Verzeichnis (außerhalb des Arbeitsbereichs) angezeigt" }, "commandOutput": "Befehlsausgabe", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index 9da29d76ac5..f36236f7b6b 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -221,10 +221,6 @@ "didViewRecursive": "Roo recursively viewed all files in this directory", "wantsToViewRecursiveOutsideWorkspace": "Roo wants to recursively view all files in this directory (outside workspace)", "didViewRecursiveOutsideWorkspace": "Roo recursively viewed all files in this directory (outside workspace)", - "wantsToViewDefinitions": "Roo wants to view source code definition names used in this directory", - "didViewDefinitions": "Roo viewed source code definition names used in this directory", - "wantsToViewDefinitionsOutsideWorkspace": "Roo wants to view source code definition names used in this directory (outside workspace)", - "didViewDefinitionsOutsideWorkspace": "Roo viewed source code definition names used in this directory (outside workspace)", "wantsToSearch": "Roo wants to search this directory for {{regex}}", "didSearch": "Roo searched this directory for {{regex}}", "wantsToSearchOutsideWorkspace": "Roo wants to search this directory (outside workspace) for {{regex}}", diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index 1d108dd1c51..88c62c436a1 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo vio los archivos de nivel superior en este directorio", "wantsToViewRecursive": "Roo quiere ver recursivamente todos los archivos en este directorio", "didViewRecursive": "Roo vio recursivamente todos los archivos en este directorio", - "wantsToViewDefinitions": "Roo quiere ver nombres de definiciones de código fuente utilizados en este directorio", - "didViewDefinitions": "Roo vio nombres de definiciones de código fuente utilizados en este directorio", "wantsToSearch": "Roo quiere buscar en este directorio {{regex}}", "didSearch": "Roo buscó en este directorio {{regex}}", "wantsToSearchOutsideWorkspace": "Roo quiere buscar en este directorio (fuera del espacio de trabajo) {{regex}}", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo quiere ver los archivos de nivel superior en este directorio (fuera del espacio de trabajo)", "didViewTopLevelOutsideWorkspace": "Roo vio los archivos de nivel superior en este directorio (fuera del espacio de trabajo)", "wantsToViewRecursiveOutsideWorkspace": "Roo quiere ver recursivamente todos los archivos en este directorio (fuera del espacio de trabajo)", - "didViewRecursiveOutsideWorkspace": "Roo vio recursivamente todos los archivos en este directorio (fuera del espacio de trabajo)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo quiere ver nombres de definiciones de código fuente utilizados en este directorio (fuera del espacio de trabajo)", - "didViewDefinitionsOutsideWorkspace": "Roo vio nombres de definiciones de código fuente utilizados en este directorio (fuera del espacio de trabajo)" + "didViewRecursiveOutsideWorkspace": "Roo vio recursivamente todos los archivos en este directorio (fuera del espacio de trabajo)" }, "commandOutput": "Salida del comando", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/fr/chat.json b/webview-ui/src/i18n/locales/fr/chat.json index a872b06b37f..3758f533fe5 100644 --- a/webview-ui/src/i18n/locales/fr/chat.json +++ b/webview-ui/src/i18n/locales/fr/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo a vu les fichiers de premier niveau dans ce répertoire", "wantsToViewRecursive": "Roo veut voir récursivement tous les fichiers dans ce répertoire", "didViewRecursive": "Roo a vu récursivement tous les fichiers dans ce répertoire", - "wantsToViewDefinitions": "Roo veut voir les noms de définitions de code source utilisés dans ce répertoire", - "didViewDefinitions": "Roo a vu les noms de définitions de code source utilisés dans ce répertoire", "wantsToSearch": "Roo veut rechercher dans ce répertoire {{regex}}", "didSearch": "Roo a recherché dans ce répertoire {{regex}}", "wantsToSearchOutsideWorkspace": "Roo veut rechercher dans ce répertoire (hors espace de travail) {{regex}}", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo veut voir les fichiers de premier niveau dans ce répertoire (hors espace de travail)", "didViewTopLevelOutsideWorkspace": "Roo a vu les fichiers de premier niveau dans ce répertoire (hors espace de travail)", "wantsToViewRecursiveOutsideWorkspace": "Roo veut voir récursivement tous les fichiers dans ce répertoire (hors espace de travail)", - "didViewRecursiveOutsideWorkspace": "Roo a vu récursivement tous les fichiers dans ce répertoire (hors espace de travail)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo veut voir les noms de définitions de code source utilisés dans ce répertoire (hors espace de travail)", - "didViewDefinitionsOutsideWorkspace": "Roo a vu les noms de définitions de code source utilisés dans ce répertoire (hors espace de travail)" + "didViewRecursiveOutsideWorkspace": "Roo a vu récursivement tous les fichiers dans ce répertoire (hors espace de travail)" }, "commandOutput": "Sortie de la Commande", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index 5fa10b221ba..190aac5644b 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo ने इस निर्देशिका में शीर्ष स्तर की फ़ाइलें देखीं", "wantsToViewRecursive": "Roo इस निर्देशिका में सभी फ़ाइलों को पुनरावर्ती रूप से देखना चाहता है", "didViewRecursive": "Roo ने इस निर्देशिका में सभी फ़ाइलों को पुनरावर्ती रूप से देखा", - "wantsToViewDefinitions": "Roo इस निर्देशिका में उपयोग किए गए सोर्स कोड परिभाषा नामों को देखना चाहता है", - "didViewDefinitions": "Roo ने इस निर्देशिका में उपयोग किए गए सोर्स कोड परिभाषा नामों को देखा", "wantsToSearch": "Roo इस निर्देशिका में {{regex}} के लिए खोज करना चाहता है", "didSearch": "Roo ने इस निर्देशिका में {{regex}} के लिए खोज की", "wantsToSearchOutsideWorkspace": "Roo इस निर्देशिका (कार्यक्षेत्र के बाहर) में {{regex}} के लिए खोज करना चाहता है", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo इस निर्देशिका (कार्यक्षेत्र के बाहर) में शीर्ष स्तर की फ़ाइलें देखना चाहता है", "didViewTopLevelOutsideWorkspace": "Roo ने इस निर्देशिका (कार्यक्षेत्र के बाहर) में शीर्ष स्तर की फ़ाइलें देखीं", "wantsToViewRecursiveOutsideWorkspace": "Roo इस निर्देशिका (कार्यक्षेत्र के बाहर) में सभी फ़ाइलों को पुनरावर्ती रूप से देखना चाहता है", - "didViewRecursiveOutsideWorkspace": "Roo ने इस निर्देशिका (कार्यक्षेत्र के बाहर) में सभी फ़ाइलों को पुनरावर्ती रूप से देखा", - "wantsToViewDefinitionsOutsideWorkspace": "Roo इस निर्देशिका (कार्यक्षेत्र के बाहर) में उपयोग किए गए सोर्स कोड परिभाषा नामों को देखना चाहता है", - "didViewDefinitionsOutsideWorkspace": "Roo ने इस निर्देशिका (कार्यक्षेत्र के बाहर) में उपयोग किए गए सोर्स कोड परिभाषा नामों को देखा" + "didViewRecursiveOutsideWorkspace": "Roo ने इस निर्देशिका (कार्यक्षेत्र के बाहर) में सभी फ़ाइलों को पुनरावर्ती रूप से देखा" }, "commandOutput": "कमांड आउटपुट", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/id/chat.json b/webview-ui/src/i18n/locales/id/chat.json index cffcaf63821..61f635914e2 100644 --- a/webview-ui/src/i18n/locales/id/chat.json +++ b/webview-ui/src/i18n/locales/id/chat.json @@ -222,8 +222,6 @@ "didViewTopLevel": "Roo melihat file tingkat atas di direktori ini", "wantsToViewRecursive": "Roo ingin melihat semua file secara rekursif di direktori ini", "didViewRecursive": "Roo melihat semua file secara rekursif di direktori ini", - "wantsToViewDefinitions": "Roo ingin melihat nama definisi source code yang digunakan di direktori ini", - "didViewDefinitions": "Roo melihat nama definisi source code yang digunakan di direktori ini", "wantsToSearch": "Roo ingin mencari direktori ini untuk {{regex}}", "didSearch": "Roo mencari direktori ini untuk {{regex}}", "wantsToSearchOutsideWorkspace": "Roo ingin mencari direktori ini (di luar workspace) untuk {{regex}}", @@ -231,9 +229,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo ingin melihat file tingkat atas di direktori ini (di luar workspace)", "didViewTopLevelOutsideWorkspace": "Roo melihat file tingkat atas di direktori ini (di luar workspace)", "wantsToViewRecursiveOutsideWorkspace": "Roo ingin melihat semua file secara rekursif di direktori ini (di luar workspace)", - "didViewRecursiveOutsideWorkspace": "Roo melihat semua file secara rekursif di direktori ini (di luar workspace)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo ingin melihat nama definisi source code yang digunakan di direktori ini (di luar workspace)", - "didViewDefinitionsOutsideWorkspace": "Roo melihat nama definisi source code yang digunakan di direktori ini (di luar workspace)" + "didViewRecursiveOutsideWorkspace": "Roo melihat semua file secara rekursif di direktori ini (di luar workspace)" }, "codebaseSearch": { "wantsToSearch": "Roo ingin mencari codebase untuk {{query}}", diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index 9e53c1ea6af..26ee4da8bab 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo ha visualizzato i file di primo livello in questa directory", "wantsToViewRecursive": "Roo vuole visualizzare ricorsivamente tutti i file in questa directory", "didViewRecursive": "Roo ha visualizzato ricorsivamente tutti i file in questa directory", - "wantsToViewDefinitions": "Roo vuole visualizzare i nomi delle definizioni di codice sorgente utilizzate in questa directory", - "didViewDefinitions": "Roo ha visualizzato i nomi delle definizioni di codice sorgente utilizzate in questa directory", "wantsToSearch": "Roo vuole cercare in questa directory {{regex}}", "didSearch": "Roo ha cercato in questa directory {{regex}}", "wantsToSearchOutsideWorkspace": "Roo vuole cercare in questa directory (fuori dall'area di lavoro) {{regex}}", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo vuole visualizzare i file di primo livello in questa directory (fuori dall'area di lavoro)", "didViewTopLevelOutsideWorkspace": "Roo ha visualizzato i file di primo livello in questa directory (fuori dall'area di lavoro)", "wantsToViewRecursiveOutsideWorkspace": "Roo vuole visualizzare ricorsivamente tutti i file in questa directory (fuori dall'area di lavoro)", - "didViewRecursiveOutsideWorkspace": "Roo ha visualizzato ricorsivamente tutti i file in questa directory (fuori dall'area di lavoro)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo vuole visualizzare i nomi delle definizioni di codice sorgente utilizzate in questa directory (fuori dall'area di lavoro)", - "didViewDefinitionsOutsideWorkspace": "Roo ha visualizzato i nomi delle definizioni di codice sorgente utilizzate in questa directory (fuori dall'area di lavoro)" + "didViewRecursiveOutsideWorkspace": "Roo ha visualizzato ricorsivamente tutti i file in questa directory (fuori dall'area di lavoro)" }, "commandOutput": "Output del Comando", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/ja/chat.json b/webview-ui/src/i18n/locales/ja/chat.json index 0ec51b776fe..c7fabbb7bca 100644 --- a/webview-ui/src/i18n/locales/ja/chat.json +++ b/webview-ui/src/i18n/locales/ja/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Rooはこのディレクトリのトップレベルファイルを表示しました", "wantsToViewRecursive": "Rooはこのディレクトリのすべてのファイルを再帰的に表示したい", "didViewRecursive": "Rooはこのディレクトリのすべてのファイルを再帰的に表示しました", - "wantsToViewDefinitions": "Rooはこのディレクトリで使用されているソースコード定義名を表示したい", - "didViewDefinitions": "Rooはこのディレクトリで使用されているソースコード定義名を表示しました", "wantsToSearch": "Rooはこのディレクトリで {{regex}} を検索したい", "didSearch": "Rooはこのディレクトリで {{regex}} を検索しました", "wantsToSearchOutsideWorkspace": "Rooはこのディレクトリ(ワークスペース外)で {{regex}} を検索したい", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Rooはこのディレクトリ(ワークスペース外)のトップレベルファイルを表示したい", "didViewTopLevelOutsideWorkspace": "Rooはこのディレクトリ(ワークスペース外)のトップレベルファイルを表示しました", "wantsToViewRecursiveOutsideWorkspace": "Rooはこのディレクトリ(ワークスペース外)のすべてのファイルを再帰的に表示したい", - "didViewRecursiveOutsideWorkspace": "Rooはこのディレクトリ(ワークスペース外)のすべてのファイルを再帰的に表示しました", - "wantsToViewDefinitionsOutsideWorkspace": "Rooはこのディレクトリ(ワークスペース外)で使用されているソースコード定義名を表示したい", - "didViewDefinitionsOutsideWorkspace": "Rooはこのディレクトリ(ワークスペース外)で使用されているソースコード定義名を表示しました" + "didViewRecursiveOutsideWorkspace": "Rooはこのディレクトリ(ワークスペース外)のすべてのファイルを再帰的に表示しました" }, "commandOutput": "コマンド出力", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/ko/chat.json b/webview-ui/src/i18n/locales/ko/chat.json index 6e8f66532c9..8f02b041840 100644 --- a/webview-ui/src/i18n/locales/ko/chat.json +++ b/webview-ui/src/i18n/locales/ko/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo가 이 디렉토리의 최상위 파일을 보았습니다", "wantsToViewRecursive": "Roo가 이 디렉토리의 모든 파일을 재귀적으로 보고 싶어합니다", "didViewRecursive": "Roo가 이 디렉토리의 모든 파일을 재귀적으로 보았습니다", - "wantsToViewDefinitions": "Roo가 이 디렉토리에서 사용된 소스 코드 정의 이름을 보고 싶어합니다", - "didViewDefinitions": "Roo가 이 디렉토리에서 사용된 소스 코드 정의 이름을 보았습니다", "wantsToSearch": "Roo가 이 디렉토리에서 {{regex}}을(를) 검색하고 싶어합니다", "didSearch": "Roo가 이 디렉토리에서 {{regex}}을(를) 검색했습니다", "wantsToSearchOutsideWorkspace": "Roo가 이 디렉토리(워크스페이스 외부)에서 {{regex}}을(를) 검색하고 싶어합니다", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo가 이 디렉토리(워크스페이스 외부)의 최상위 파일을 보고 싶어합니다", "didViewTopLevelOutsideWorkspace": "Roo가 이 디렉토리(워크스페이스 외부)의 최상위 파일을 보았습니다", "wantsToViewRecursiveOutsideWorkspace": "Roo가 이 디렉토리(워크스페이스 외부)의 모든 파일을 재귀적으로 보고 싶어합니다", - "didViewRecursiveOutsideWorkspace": "Roo가 이 디렉토리(워크스페이스 외부)의 모든 파일을 재귀적으로 보았습니다", - "wantsToViewDefinitionsOutsideWorkspace": "Roo가 이 디렉토리(워크스페이스 외부)에서 사용된 소스 코드 정의 이름을 보고 싶어합니다", - "didViewDefinitionsOutsideWorkspace": "Roo가 이 디렉토리(워크스페이스 외부)에서 사용된 소스 코드 정의 이름을 보았습니다" + "didViewRecursiveOutsideWorkspace": "Roo가 이 디렉토리(워크스페이스 외부)의 모든 파일을 재귀적으로 보았습니다" }, "commandOutput": "명령 출력", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/nl/chat.json b/webview-ui/src/i18n/locales/nl/chat.json index 6a07b38c541..0a190dd0ec7 100644 --- a/webview-ui/src/i18n/locales/nl/chat.json +++ b/webview-ui/src/i18n/locales/nl/chat.json @@ -193,8 +193,6 @@ "didViewTopLevel": "Roo heeft de bovenliggende bestanden in deze map bekeken", "wantsToViewRecursive": "Roo wil alle bestanden in deze map recursief bekijken", "didViewRecursive": "Roo heeft alle bestanden in deze map recursief bekeken", - "wantsToViewDefinitions": "Roo wil broncode-definitienamen bekijken die in deze map worden gebruikt", - "didViewDefinitions": "Roo heeft broncode-definitienamen bekeken die in deze map worden gebruikt", "wantsToSearch": "Roo wil deze map doorzoeken op {{regex}}", "didSearch": "Roo heeft deze map doorzocht op {{regex}}", "wantsToSearchOutsideWorkspace": "Roo wil deze map (buiten werkruimte) doorzoeken op {{regex}}", @@ -202,9 +200,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo wil de bovenliggende bestanden in deze map (buiten werkruimte) bekijken", "didViewTopLevelOutsideWorkspace": "Roo heeft de bovenliggende bestanden in deze map (buiten werkruimte) bekeken", "wantsToViewRecursiveOutsideWorkspace": "Roo wil alle bestanden in deze map (buiten werkruimte) recursief bekijken", - "didViewRecursiveOutsideWorkspace": "Roo heeft alle bestanden in deze map (buiten werkruimte) recursief bekeken", - "wantsToViewDefinitionsOutsideWorkspace": "Roo wil broncode-definitienamen bekijken die in deze map (buiten werkruimte) worden gebruikt", - "didViewDefinitionsOutsideWorkspace": "Roo heeft broncode-definitienamen bekeken die in deze map (buiten werkruimte) worden gebruikt" + "didViewRecursiveOutsideWorkspace": "Roo heeft alle bestanden in deze map (buiten werkruimte) recursief bekeken" }, "commandOutput": "Commando-uitvoer", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index a078d202b2b..a54c6ca43df 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo zobaczył pliki najwyższego poziomu w tym katalogu", "wantsToViewRecursive": "Roo chce rekurencyjnie zobaczyć wszystkie pliki w tym katalogu", "didViewRecursive": "Roo rekurencyjnie zobaczył wszystkie pliki w tym katalogu", - "wantsToViewDefinitions": "Roo chce zobaczyć nazwy definicji kodu źródłowego używane w tym katalogu", - "didViewDefinitions": "Roo zobaczył nazwy definicji kodu źródłowego używane w tym katalogu", "wantsToSearch": "Roo chce przeszukać ten katalog w poszukiwaniu {{regex}}", "didSearch": "Roo przeszukał ten katalog w poszukiwaniu {{regex}}", "wantsToSearchOutsideWorkspace": "Roo chce przeszukać ten katalog (poza obszarem roboczym) w poszukiwaniu {{regex}}", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo chce zobaczyć pliki najwyższego poziomu w tym katalogu (poza obszarem roboczym)", "didViewTopLevelOutsideWorkspace": "Roo zobaczył pliki najwyższego poziomu w tym katalogu (poza obszarem roboczym)", "wantsToViewRecursiveOutsideWorkspace": "Roo chce rekurencyjnie zobaczyć wszystkie pliki w tym katalogu (poza obszarem roboczym)", - "didViewRecursiveOutsideWorkspace": "Roo rekurencyjnie zobaczył wszystkie pliki w tym katalogu (poza obszarem roboczym)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo chce zobaczyć nazwy definicji kodu źródłowego używane w tym katalogu (poza obszarem roboczym)", - "didViewDefinitionsOutsideWorkspace": "Roo zobaczył nazwy definicji kodu źródłowego używane w tym katalogu (poza obszarem roboczym)" + "didViewRecursiveOutsideWorkspace": "Roo rekurencyjnie zobaczył wszystkie pliki w tym katalogu (poza obszarem roboczym)" }, "commandOutput": "Wyjście polecenia", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/pt-BR/chat.json b/webview-ui/src/i18n/locales/pt-BR/chat.json index 37801aaa2f7..2863211d60e 100644 --- a/webview-ui/src/i18n/locales/pt-BR/chat.json +++ b/webview-ui/src/i18n/locales/pt-BR/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo visualizou os arquivos de nível superior neste diretório", "wantsToViewRecursive": "Roo quer visualizar recursivamente todos os arquivos neste diretório", "didViewRecursive": "Roo visualizou recursivamente todos os arquivos neste diretório", - "wantsToViewDefinitions": "Roo quer visualizar nomes de definição de código-fonte usados neste diretório", - "didViewDefinitions": "Roo visualizou nomes de definição de código-fonte usados neste diretório", "wantsToSearch": "Roo quer pesquisar neste diretório por {{regex}}", "didSearch": "Roo pesquisou neste diretório por {{regex}}", "wantsToSearchOutsideWorkspace": "Roo quer pesquisar neste diretório (fora do espaço de trabalho) por {{regex}}", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo quer visualizar os arquivos de nível superior neste diretório (fora do espaço de trabalho)", "didViewTopLevelOutsideWorkspace": "Roo visualizou os arquivos de nível superior neste diretório (fora do espaço de trabalho)", "wantsToViewRecursiveOutsideWorkspace": "Roo quer visualizar recursivamente todos os arquivos neste diretório (fora do espaço de trabalho)", - "didViewRecursiveOutsideWorkspace": "Roo visualizou recursivamente todos os arquivos neste diretório (fora do espaço de trabalho)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo quer visualizar nomes de definição de código-fonte usados neste diretório (fora do espaço de trabalho)", - "didViewDefinitionsOutsideWorkspace": "Roo visualizou nomes de definição de código-fonte usados neste diretório (fora do espaço de trabalho)" + "didViewRecursiveOutsideWorkspace": "Roo visualizou recursivamente todos os arquivos neste diretório (fora do espaço de trabalho)" }, "commandOutput": "Saída do comando", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/ru/chat.json b/webview-ui/src/i18n/locales/ru/chat.json index c993d28cd35..a875a75183a 100644 --- a/webview-ui/src/i18n/locales/ru/chat.json +++ b/webview-ui/src/i18n/locales/ru/chat.json @@ -193,8 +193,6 @@ "didViewTopLevel": "Roo просмотрел файлы верхнего уровня в этой директории", "wantsToViewRecursive": "Roo хочет рекурсивно просмотреть все файлы в этой директории", "didViewRecursive": "Roo рекурсивно просмотрел все файлы в этой директории", - "wantsToViewDefinitions": "Roo хочет просмотреть имена определений исходного кода в этой директории", - "didViewDefinitions": "Roo просмотрел имена определений исходного кода в этой директории", "wantsToSearch": "Roo хочет выполнить поиск в этой директории по {{regex}}", "didSearch": "Roo выполнил поиск в этой директории по {{regex}}", "wantsToSearchOutsideWorkspace": "Roo хочет выполнить поиск в этой директории (вне рабочего пространства) по {{regex}}", @@ -202,9 +200,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo хочет просмотреть файлы верхнего уровня в этой директории (вне рабочего пространства)", "didViewTopLevelOutsideWorkspace": "Roo просмотрел файлы верхнего уровня в этой директории (вне рабочего пространства)", "wantsToViewRecursiveOutsideWorkspace": "Roo хочет рекурсивно просмотреть все файлы в этой директории (вне рабочего пространства)", - "didViewRecursiveOutsideWorkspace": "Roo рекурсивно просмотрел все файлы в этой директории (вне рабочего пространства)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo хочет просмотреть имена определений исходного кода в этой директории (вне рабочего пространства)", - "didViewDefinitionsOutsideWorkspace": "Roo просмотрел имена определений исходного кода в этой директории (вне рабочего пространства)" + "didViewRecursiveOutsideWorkspace": "Roo рекурсивно просмотрел все файлы в этой директории (вне рабочего пространства)" }, "commandOutput": "Вывод команды", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index 0285d2ccef6..4b1d301f7cd 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo bu dizindeki üst düzey dosyaları görüntüledi", "wantsToViewRecursive": "Roo bu dizindeki tüm dosyaları özyinelemeli olarak görüntülemek istiyor", "didViewRecursive": "Roo bu dizindeki tüm dosyaları özyinelemeli olarak görüntüledi", - "wantsToViewDefinitions": "Roo bu dizinde kullanılan kaynak kod tanımlama isimlerini görüntülemek istiyor", - "didViewDefinitions": "Roo bu dizinde kullanılan kaynak kod tanımlama isimlerini görüntüledi", "wantsToSearch": "Roo bu dizinde {{regex}} için arama yapmak istiyor", "didSearch": "Roo bu dizinde {{regex}} için arama yaptı", "wantsToSearchOutsideWorkspace": "Roo bu dizinde (çalışma alanı dışında) {{regex}} için arama yapmak istiyor", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo bu dizindeki (çalışma alanı dışında) üst düzey dosyaları görüntülemek istiyor", "didViewTopLevelOutsideWorkspace": "Roo bu dizindeki (çalışma alanı dışında) üst düzey dosyaları görüntüledi", "wantsToViewRecursiveOutsideWorkspace": "Roo bu dizindeki (çalışma alanı dışında) tüm dosyaları özyinelemeli olarak görüntülemek istiyor", - "didViewRecursiveOutsideWorkspace": "Roo bu dizindeki (çalışma alanı dışında) tüm dosyaları özyinelemeli olarak görüntüledi", - "wantsToViewDefinitionsOutsideWorkspace": "Roo bu dizinde (çalışma alanı dışında) kullanılan kaynak kod tanımlama isimlerini görüntülemek istiyor", - "didViewDefinitionsOutsideWorkspace": "Roo bu dizinde (çalışma alanı dışında) kullanılan kaynak kod tanımlama isimlerini görüntüledi" + "didViewRecursiveOutsideWorkspace": "Roo bu dizindeki (çalışma alanı dışında) tüm dosyaları özyinelemeli olarak görüntüledi" }, "commandOutput": "Komut Çıktısı", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index 5daaef6d871..4da5ab0b73a 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "Roo đã xem các tệp cấp cao nhất trong thư mục này", "wantsToViewRecursive": "Roo muốn xem đệ quy tất cả các tệp trong thư mục này", "didViewRecursive": "Roo đã xem đệ quy tất cả các tệp trong thư mục này", - "wantsToViewDefinitions": "Roo muốn xem tên định nghĩa mã nguồn được sử dụng trong thư mục này", - "didViewDefinitions": "Roo đã xem tên định nghĩa mã nguồn được sử dụng trong thư mục này", "wantsToSearch": "Roo muốn tìm kiếm trong thư mục này cho {{regex}}", "didSearch": "Roo đã tìm kiếm trong thư mục này cho {{regex}}", "wantsToSearchOutsideWorkspace": "Roo muốn tìm kiếm trong thư mục này (ngoài không gian làm việc) cho {{regex}}", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "Roo muốn xem các tệp cấp cao nhất trong thư mục này (ngoài không gian làm việc)", "didViewTopLevelOutsideWorkspace": "Roo đã xem các tệp cấp cao nhất trong thư mục này (ngoài không gian làm việc)", "wantsToViewRecursiveOutsideWorkspace": "Roo muốn xem đệ quy tất cả các tệp trong thư mục này (ngoài không gian làm việc)", - "didViewRecursiveOutsideWorkspace": "Roo đã xem đệ quy tất cả các tệp trong thư mục này (ngoài không gian làm việc)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo muốn xem tên định nghĩa mã nguồn được sử dụng trong thư mục này (ngoài không gian làm việc)", - "didViewDefinitionsOutsideWorkspace": "Roo đã xem tên định nghĩa mã nguồn được sử dụng trong thư mục này (ngoài không gian làm việc)" + "didViewRecursiveOutsideWorkspace": "Roo đã xem đệ quy tất cả các tệp trong thư mục này (ngoài không gian làm việc)" }, "commandOutput": "Kết quả lệnh", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index 4e6aa98a758..da237289d27 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -198,8 +198,6 @@ "didViewTopLevel": "已查看目录文件列表", "wantsToViewRecursive": "需要查看目录所有文件", "didViewRecursive": "已查看目录所有文件", - "wantsToViewDefinitions": "Roo想查看此目录中使用的源代码定义名称", - "didViewDefinitions": "Roo已查看此目录中使用的源代码定义名称", "wantsToSearch": "需要搜索内容: {{regex}}", "didSearch": "已完成内容搜索: {{regex}}", "wantsToSearchOutsideWorkspace": "需要搜索内容(工作区外): {{regex}}", @@ -207,9 +205,7 @@ "wantsToViewTopLevelOutsideWorkspace": "需要查看目录文件列表(工作区外)", "didViewTopLevelOutsideWorkspace": "已查看目录文件列表(工作区外)", "wantsToViewRecursiveOutsideWorkspace": "需要查看目录所有文件(工作区外)", - "didViewRecursiveOutsideWorkspace": "已查看目录所有文件(工作区外)", - "wantsToViewDefinitionsOutsideWorkspace": "Roo想查看此目录中使用的源代码定义名称(工作区外)", - "didViewDefinitionsOutsideWorkspace": "Roo已查看此目录中使用的源代码定义名称(工作区外)" + "didViewRecursiveOutsideWorkspace": "已查看目录所有文件(工作区外)" }, "commandOutput": "命令输出", "commandExecution": { diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index 95d5ee832dd..edc4b488c96 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -223,10 +223,6 @@ "didViewRecursive": "Roo 已遞迴檢視此目錄中的所有檔案", "wantsToViewRecursiveOutsideWorkspace": "Roo 想要遞迴檢視此目錄(工作區外)中的所有檔案", "didViewRecursiveOutsideWorkspace": "Roo 已遞迴檢視此目錄(工作區外)中的所有檔案", - "wantsToViewDefinitions": "Roo 想要檢視此目錄中使用的原始碼定義名稱", - "didViewDefinitions": "Roo 已檢視此目錄中使用的原始碼定義名稱", - "wantsToViewDefinitionsOutsideWorkspace": "Roo 想要檢視此目錄(工作區外)中使用的原始碼定義名稱", - "didViewDefinitionsOutsideWorkspace": "Roo 已檢視此目錄(工作區外)中使用的原始碼定義名稱", "wantsToSearch": "Roo 想要在此目錄中搜尋 {{regex}}", "didSearch": "Roo 已在此目錄中搜尋 {{regex}}", "wantsToSearchOutsideWorkspace": "Roo 想要在此目錄(工作區外)中搜尋 {{regex}}",