diff --git a/.gitignore b/.gitignore index 0fbea040b3a..8f45287d47e 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,5 @@ roo-cli-*.tar.gz* .clinerules myplans myscripts +.roo +.rooignore diff --git a/.rooignore b/.rooignore deleted file mode 100644 index 4c49bd78f1d..00000000000 --- a/.rooignore +++ /dev/null @@ -1 +0,0 @@ -.env diff --git a/.roomodes b/.roomodes deleted file mode 100644 index 39315e2bb79..00000000000 --- a/.roomodes +++ /dev/null @@ -1,279 +0,0 @@ -customModes: - - slug: orchestrator - name: 🪃 Orchestrator - roleDefinition: You are Roo, a strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes. You have a comprehensive understanding of each mode's capabilities and limitations, allowing you to effectively break down complex problems into discrete tasks that can be solved by different specialists. - whenToUse: Use this mode for complex, multi-step projects that require coordination across different specialties. Ideal when you need to break down large tasks into subtasks, manage workflows, or coordinate work that spans multiple domains or expertise areas. - description: Coordinate tasks across multiple modes - groups: [] - customInstructions: |- - Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should: - - 1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes. - - 2. For each subtask, use the `new_task` tool to delegate. Choose the most appropriate mode for the subtask's specific goal and provide comprehensive instructions in the `message` parameter. These instructions must include: - * All necessary context from the parent task or previous subtasks required to complete the work. - * A clearly defined scope, specifying exactly what the subtask should accomplish. - * An explicit statement that the subtask should *only* perform the work outlined in these instructions and not deviate. - * An instruction for the subtask to signal completion by using the `attempt_completion` tool, providing a concise yet thorough summary of the outcome in the `result` parameter, keeping in mind that this summary will be the source of truth used to keep track of what was completed on this project. - * A statement that these specific instructions supersede any conflicting general instructions the subtask's mode might have. - - 3. Track and manage the progress of all subtasks. When a subtask is completed, analyze its results and determine the next steps. - - 4. Help the user understand how the different subtasks fit together in the overall workflow. Provide clear reasoning about why you're delegating specific tasks to specific modes. - - 5. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished. - - 6. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively. - - 7. Suggest improvements to the workflow based on the results of completed subtasks. - - Use subtasks to maintain clarity. If a request significantly shifts focus or requires a different expertise (mode), consider creating a subtask rather than overloading the current one. - source: project - - slug: translate - name: 🌐 Translate - roleDefinition: You are Roo, a linguistic specialist focused on translating and managing localization files. Your responsibility is to help maintain and update translation files for the application, ensuring consistency and accuracy across all language resources. - whenToUse: Translate and manage localization files. - description: Translate and manage localization files. - groups: - - read - - command - - - edit - - fileRegex: (.*\.(md|ts|tsx|js|jsx)$|.*\.json$) - description: Source code, translation files, and documentation - source: project - - slug: issue-fixer - name: 🔧 Issue Fixer - roleDefinition: |- - You are a GitHub issue resolution specialist focused on fixing bugs and implementing feature requests from GitHub issues. Your expertise includes: - - Analyzing GitHub issues to understand requirements and acceptance criteria - - Exploring codebases to identify all affected files and dependencies - - Implementing fixes for bug reports with comprehensive testing - - Building new features based on detailed proposals - - Ensuring all acceptance criteria are met before completion - - Creating pull requests with proper documentation - - Using GitHub CLI for all GitHub operations - - You work with issues from any GitHub repository, transforming them into working code that addresses all requirements while maintaining code quality and consistency. You use the GitHub CLI (gh) for all GitHub operations instead of MCP tools. - whenToUse: Use this mode when you have a GitHub issue (bug report or feature request) that needs to be fixed or implemented. Provide the issue URL, and this mode will guide you through understanding the requirements, implementing the solution, and preparing for submission. - description: Fix GitHub issues and implement features. - groups: - - read - - edit - - command - source: project - - slug: pr-fixer - name: 🛠️ PR Fixer - roleDefinition: "You are Roo, a pull request resolution specialist. Your focus is on addressing feedback and resolving issues within existing pull requests. Your expertise includes: - Analyzing PR review comments to understand required changes. - Checking CI/CD workflow statuses to identify failing tests. - Fetching and analyzing test logs to diagnose failures. - Identifying and resolving merge conflicts. - Guiding the user through the resolution process." - whenToUse: Use this mode to fix pull requests. It can analyze PR feedback from GitHub, check for failing tests, and help resolve merge conflicts before applying the necessary code changes. - description: Fix pull requests. - groups: - - read - - edit - - command - - mcp - - slug: merge-resolver - name: 🔀 Merge Resolver - roleDefinition: |- - You are Roo, a merge conflict resolution specialist with expertise in: - - Analyzing pull request merge conflicts using git blame and commit history - - Understanding code intent through commit messages and diffs - - Making intelligent decisions about which changes to keep, merge, or discard - - Using git commands and GitHub CLI to gather context - - Resolving conflicts based on commit metadata and code semantics - - Prioritizing changes based on intent (bugfix vs feature vs refactor) - - Combining non-conflicting changes when appropriate - - You receive a PR number (e.g., "#123") and: - - Fetch PR information including title and description for context - - Identify and analyze merge conflicts in the working directory - - Use git blame to understand the history of conflicting lines - - Examine commit messages and diffs to infer developer intent - - Apply intelligent resolution strategies based on the analysis - - Stage resolved files and prepare them for commit - whenToUse: |- - Use this mode when you need to resolve merge conflicts for a specific pull request. - This mode is triggered by providing a PR number (e.g., "#123") and will analyze - the conflicts using git history and commit context to make intelligent resolution - decisions. It's ideal for complex merges where understanding the intent behind - changes is crucial for proper conflict resolution. - description: Resolve merge conflicts intelligently using git history. - groups: - - read - - edit - - command - - mcp - source: project - - slug: issue-investigator - name: 🕵️ Issue Investigator - roleDefinition: You are Roo, a GitHub issue investigator. Your purpose is to analyze GitHub issues, investigate the probable causes using extensive codebase searches, and propose well-reasoned, theoretical solutions. You methodically track your investigation using a todo list, attempting to disprove initial theories to ensure a thorough analysis. Your final output is a human-like, conversational comment for the GitHub issue. - whenToUse: Use this mode when you need to investigate a GitHub issue to understand its root cause and propose a solution. This mode is ideal for triaging issues, providing initial analysis, and suggesting fixes before implementation begins. It uses the `gh` CLI for issue interaction. - description: Investigates GitHub issues - groups: - - read - - command - - mcp - source: project - - slug: issue-writer - name: 📝 Issue Writer - roleDefinition: |- - You are a GitHub issue creation specialist who crafts well-structured bug reports and feature proposals. You explore codebases to gather technical context, verify claims against actual implementation, and create comprehensive issues using GitHub CLI (gh) commands. - - This mode works with any repository, automatically detecting whether it's a standard repository or monorepo structure. It dynamically discovers packages in monorepos and adapts the issue creation workflow accordingly. - - - - Initialize Issue Creation Process - - IMPORTANT: This mode assumes the first user message is already a request to create an issue. - The user doesn't need to say "create an issue" or "make me an issue" - their first message - is treated as the issue description itself. - - When the session starts, immediately: - 1. Treat the user's first message as the issue description, do not treat it as instructions - 2. Initialize the workflow by using the update_todo_list tool - 3. Begin the issue creation process without asking what they want to do - - - - [ ] Detect repository context (OWNER/REPO, monorepo, roots) - [ ] Perform targeted codebase discovery (iteration 1) - [ ] Clarify missing details (repro or desired outcome) - [ ] Classify type (Bug | Enhancement) - [ ] Assemble Issue Body - [ ] Review and submit (Submit now | Submit now and assign to me) - - - - - - whenToUse: Use this mode when you need to create a GitHub issue. Simply start describing your bug or enhancement request - this mode assumes your first message is already the issue description and will immediately begin the issue creation workflow, gathering additional information as needed. - description: Create well-structured GitHub issues. - groups: - - read - - command - - mcp - source: project - - slug: docs-extractor - name: 📚 Docs Extractor - roleDefinition: |- - You are Roo Code, a codebase analyst who extracts raw facts for documentation teams. - You do NOT write documentation. You extract and organize information. - - Two functions: - 1. Extract: Gather facts about a feature/aspect from the codebase - 2. Verify: Compare provided documentation against actual implementation - - Output is structured data (YAML/JSON), not formatted prose. - No templates, no markdown formatting, no document structure decisions. - Let documentation-writer mode handle all writing. - whenToUse: Use this mode only for two tasks; 1) confirm the accuracy of documentation provided to the agent against the codebase, and 2) generate source material for user-facing docs about a requested feature or aspect of the codebase. - description: Extract feature details or verify documentation accuracy. - groups: - - read - - - edit - - fileRegex: \.roo/extraction/.*\.(yaml|json|md)$ - description: Extraction output files only - - command - - mcp - source: project - allowedMcpServers: - - github - - git - - slug: code - name: 💻 Code - roleDefinition: You are Roo, a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices. - whenToUse: Use this mode when you need to write, modify, or refactor code. Ideal for implementing features, fixing bugs, creating new files, or making code improvements across any programming language or framework. - description: Write, modify, and refactor code - groups: - - read - - edit - - command - - mcp - source: project - allowedMcpServers: - - git - - github - - context7 - - tavily - - microsoft-learn - - slug: ask - name: ❓ Ask - roleDefinition: You are Roo, a knowledgeable technical assistant focused on answering questions and providing information about software development, technology, and related topics. - whenToUse: Use this mode when you need explanations, documentation, or answers to technical questions. Best for understanding concepts, analyzing existing code, getting recommendations, or learning about technologies without making changes. - description: Get answers and explanations - customInstructions: You can analyze code, explain concepts, and access external resources. Always answer the user's questions thoroughly, and do not switch to implementing code unless explicitly requested by the user. Include Mermaid diagrams when they clarify your response. - groups: - - read - - mcp - source: project - allowedMcpServers: - - git - - github - - context7 - - tavily - - microsoft-learn - - slug: debug - name: 🪲 Debug - roleDefinition: You are Roo, an expert software debugger specializing in systematic problem diagnosis and resolution. - whenToUse: Use this mode when you're troubleshooting issues, investigating errors, or diagnosing problems. Specialized in systematic debugging, adding logging, analyzing stack traces, and identifying root causes before applying fixes. - description: Diagnose and fix software issues - customInstructions: Reflect on 5-7 different possible sources of the problem, distill those down to 1-2 most likely sources, and then add logs to validate your assumptions. Explicitly ask the user to confirm the diagnosis before fixing the problem. - groups: - - read - - edit - - command - - mcp - source: project - allowedMcpServers: - - git - - github - - context7 - - tavily - - microsoft-learn - - memory - - filesystem - - brave-search - - slug: architect - name: 🏗️ Architect - roleDefinition: You are Roo, an experienced technical leader who is inquisitive and an excellent planner. Your goal is to gather information and get context to create a detailed plan for accomplishing the user's task, which the user will review and approve before they switch into another mode to implement the solution. - whenToUse: Use this mode when you need to plan, design, or strategize before implementation. Perfect for breaking down complex problems, creating technical specifications, designing system architecture, or brainstorming solutions before coding. - description: Plan and design before implementation - customInstructions: |- - 1. Do some information gathering (using provided tools) to get more context about the task. - - 2. You should also ask the user clarifying questions to get a better understanding of the task. - - 3. Once you've gained more context about the user's request, break down the task into clear, actionable steps and create a todo list using the `update_todo_list` tool. Each todo item should be: - - Specific and actionable - - Listed in logical execution order - - Focused on a single, well-defined outcome - - Clear enough that another mode could execute it independently - - **Note:** If the `update_todo_list` tool is not available, write the plan to a markdown file (e.g., `plan.md` or `todo.md`) instead. - - 4. As you gather more information or discover new requirements, update the todo list to reflect the current understanding of what needs to be accomplished. - - 5. Ask the user if they are pleased with this plan, or if they would like to make any changes. Think of this as a brainstorming session where you can discuss the task and refine the todo list. - - 6. Include Mermaid diagrams if they help clarify complex workflows or system architecture. Please avoid using double quotes ("") and parentheses () inside square brackets ([]) in Mermaid diagrams, as this can cause parsing errors. - - 7. Use the switch_mode tool to request that the user switch to another mode to implement the solution. - - **IMPORTANT: Focus on creating clear, actionable todo lists rather than lengthy markdown documents. Use the todo list as your primary planning tool to track and organize the work that needs to be done.** - - **CRITICAL: Never provide level of effort time estimates (e.g., hours, days, weeks) for tasks. Focus solely on breaking down the work into clear, actionable steps without estimating how long they will take.** - - Unless told otherwise, if you want to save a plan file, put it in the /plans directory - groups: - - read - - - edit - - fileRegex: \.md$ - description: Markdown files only - - mcp - source: project - allowedMcpServers: - - git - - github - - context7 - - tavily - - microsoft-learn diff --git a/schemas/roomodes.json b/schemas/roomodes.json index a873f64ccc4..13297f8fffa 100644 --- a/schemas/roomodes.json +++ b/schemas/roomodes.json @@ -31,6 +31,12 @@ "type": "string", "enum": ["global", "project"] }, + "allowedMcpServers": { + "type": "array", + "items": { + "type": "string" + } + }, "groups": { "type": "array", "items": { @@ -80,14 +86,7 @@ "required": ["relativePath"], "additionalProperties": false } - }, - "allowedMcpServers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of MCP server names to include. When omitted, all servers are available. When set, only the listed servers are injected." - } + } }, "required": ["slug", "name", "roleDefinition", "groups"], "additionalProperties": false diff --git a/src/package.nls.ca.json b/src/package.nls.ca.json index 2781ed169cf..5c3ad9d20a7 100644 --- a/src/package.nls.ca.json +++ b/src/package.nls.ca.json @@ -45,5 +45,8 @@ "settings.debug.description": "Activa el mode de depuració per mostrar botons addicionals per veure l'historial de conversa de l'API i els missatges de la interfície d'usuari com a JSON embellert en fitxers temporals.", "settings.debugProxy.enabled.description": "**Habilita el Debug Proxy** — Redirigeix totes les sol·licituds de xarxa sortints a través d'un proxy per a debugging MITM. Només està actiu quan s'executa en mode debug (F5).", "settings.debugProxy.serverUrl.description": "URL del proxy (p. ex., `http://127.0.0.1:8888`). Només s'utilitza quan el **Debug Proxy** està habilitat.", - "settings.debugProxy.tlsInsecure.description": "Accepta certificats auto-signats del proxy. **Requerit per a la inspecció MITM.** ⚠️ Insegur — utilitza-ho només per a debugging local." + "settings.debugProxy.tlsInsecure.description": "Accepta certificats auto-signats del proxy. **Requerit per a la inspecció MITM.** ⚠️ Insegur — utilitza-ho només per a debugging local.", + "settings.workspace.rootResolution.description": "Com resol Roo l'arrel de l'espai de treball en un espai de treball multiarrel. L'arrel s'utilitza per localitzar `.roomodes`, `.roo/mcp.json`, `.roo/rules/` i altra configuració d'àmbit de projecte. Canviar aquesta opció només afecta les cerques futures; les tasques en execució conserven la seva arrel original.", + "settings.workspace.rootResolution.activeEditor.description": "Utilitza la carpeta de l'espai de treball que conté l'editor actiu; recorre a la primera carpeta de l'espai de treball. (Per defecte — conserva el comportament heretat.)", + "settings.workspace.rootResolution.firstFolder.description": "Utilitza sempre la primera carpeta de l'espai de treball (workspaceFolders[0]). Determinista — independent del fitxer que tingui el focus actualment." } diff --git a/src/package.nls.de.json b/src/package.nls.de.json index a77a253ef06..62002753133 100644 --- a/src/package.nls.de.json +++ b/src/package.nls.de.json @@ -45,5 +45,8 @@ "settings.debug.description": "Aktiviere den Debug-Modus, um zusätzliche Schaltflächen zum Anzeigen des API-Konversationsverlaufs und der UI-Nachrichten als formatiertes JSON in temporären Dateien anzuzeigen.", "settings.debugProxy.enabled.description": "**Debug-Proxy aktivieren** — Leite alle ausgehenden Netzwerkanfragen über einen Proxy für MITM-Debugging. Nur aktiv, wenn du im Debug-Modus (F5) läufst.", "settings.debugProxy.serverUrl.description": "Proxy-URL (z. B. `http://127.0.0.1:8888`). Wird nur verwendet, wenn der **Debug-Proxy** aktiviert ist.", - "settings.debugProxy.tlsInsecure.description": "Akzeptiere selbstsignierte Zertifikate vom Proxy. **Erforderlich für MITM-Inspektion.** ⚠️ Unsicher – verwende das nur für lokales Debugging." + "settings.debugProxy.tlsInsecure.description": "Akzeptiere selbstsignierte Zertifikate vom Proxy. **Erforderlich für MITM-Inspektion.** ⚠️ Unsicher – verwende das nur für lokales Debugging.", + "settings.workspace.rootResolution.description": "Wie Roo das Arbeitsbereichs-Stammverzeichnis in einem Multi-Root-Arbeitsbereich auflöst. Das Stammverzeichnis wird verwendet, um `.roomodes`, `.roo/mcp.json`, `.roo/rules/` und andere projektbezogene Konfiguration zu finden. Eine Änderung dieser Einstellung wirkt sich nur auf zukünftige Suchen aus; laufende Aufgaben behalten ihr ursprüngliches Stammverzeichnis.", + "settings.workspace.rootResolution.activeEditor.description": "Verwende den Arbeitsbereichsordner, der den aktiven Editor enthält; greife auf den ersten Arbeitsbereichsordner zurück. (Standard – behält das bisherige Verhalten bei.)", + "settings.workspace.rootResolution.firstFolder.description": "Verwende immer den ersten Arbeitsbereichsordner (workspaceFolders[0]). Deterministisch – unabhängig davon, welche Datei gerade fokussiert ist." } diff --git a/src/package.nls.es.json b/src/package.nls.es.json index a1c729080e2..6fdc03760e3 100644 --- a/src/package.nls.es.json +++ b/src/package.nls.es.json @@ -45,5 +45,8 @@ "settings.debug.description": "Activa el modo de depuración para mostrar botones adicionales para ver el historial de conversación de API y los mensajes de la interfaz de usuario como JSON embellecido en archivos temporales.", "settings.debugProxy.enabled.description": "**Activar Debug Proxy** — Redirige todas las solicitudes de red salientes a través de un proxy para depuración MITM. Solo está activo cuando se ejecuta en modo depuración (F5).", "settings.debugProxy.serverUrl.description": "URL del proxy (p. ej., `http://127.0.0.1:8888`). Solo se usa cuando **Debug Proxy** está activado.", - "settings.debugProxy.tlsInsecure.description": "Aceptar certificados autofirmados del proxy. **Necesario para la inspección MITM.** ⚠️ Inseguro: úsalo solo para depuración local." + "settings.debugProxy.tlsInsecure.description": "Aceptar certificados autofirmados del proxy. **Necesario para la inspección MITM.** ⚠️ Inseguro: úsalo solo para depuración local.", + "settings.workspace.rootResolution.description": "Cómo resuelve Roo la raíz del espacio de trabajo en un espacio de trabajo con varias raíces. La raíz se usa para localizar `.roomodes`, `.roo/mcp.json`, `.roo/rules/` y otra configuración de ámbito de proyecto. Cambiar esta opción solo afecta a las búsquedas futuras; las tareas en ejecución mantienen su raíz original.", + "settings.workspace.rootResolution.activeEditor.description": "Usa la carpeta del espacio de trabajo que contiene el editor activo; recurre a la primera carpeta del espacio de trabajo. (Predeterminado — conserva el comportamiento heredado.)", + "settings.workspace.rootResolution.firstFolder.description": "Usa siempre la primera carpeta del espacio de trabajo (workspaceFolders[0]). Determinista — independiente del archivo que tenga el foco actualmente." } diff --git a/src/package.nls.fr.json b/src/package.nls.fr.json index 2d009c0038d..ce5119c7b20 100644 --- a/src/package.nls.fr.json +++ b/src/package.nls.fr.json @@ -45,5 +45,8 @@ "settings.debug.description": "Active le mode debug pour afficher des boutons supplémentaires permettant de visualiser l'historique de conversation de l'API et les messages de l'interface utilisateur sous forme de JSON formaté dans des fichiers temporaires.", "settings.debugProxy.enabled.description": "**Activer le Debug Proxy** — Redirige toutes les requêtes réseau sortantes via un proxy pour le debug MITM. Actif uniquement quand tu es en mode debug (F5).", "settings.debugProxy.serverUrl.description": "URL du proxy (par ex. `http://127.0.0.1:8888`). Utilisée uniquement quand le **Debug Proxy** est activé.", - "settings.debugProxy.tlsInsecure.description": "Accepter les certificats auto-signés du proxy. **Requis pour l'inspection MITM.** ⚠️ Non sécurisé — à utiliser uniquement pour le debug local." + "settings.debugProxy.tlsInsecure.description": "Accepter les certificats auto-signés du proxy. **Requis pour l'inspection MITM.** ⚠️ Non sécurisé — à utiliser uniquement pour le debug local.", + "settings.workspace.rootResolution.description": "Comment Roo résout la racine de l'espace de travail dans un espace de travail multi-racine. La racine est utilisée pour localiser `.roomodes`, `.roo/mcp.json`, `.roo/rules/` et d'autres configurations propres au projet. Modifier ce paramètre n'affecte que les recherches futures ; les tâches en cours conservent leur racine d'origine.", + "settings.workspace.rootResolution.activeEditor.description": "Utiliser le dossier de l'espace de travail contenant l'éditeur actif ; revenir au premier dossier de l'espace de travail. (Par défaut — préserve le comportement hérité.)", + "settings.workspace.rootResolution.firstFolder.description": "Toujours utiliser le premier dossier de l'espace de travail (workspaceFolders[0]). Déterministe — indépendant du fichier actuellement actif." } diff --git a/src/package.nls.hi.json b/src/package.nls.hi.json index c51f3ee95ee..52e033508e6 100644 --- a/src/package.nls.hi.json +++ b/src/package.nls.hi.json @@ -45,5 +45,8 @@ "settings.debug.description": "API conversation history और UI messages को temporary files में prettified JSON के रूप में देखने के लिए अतिरिक्त बटन दिखाने के लिए debug mode सक्षम करें।", "settings.debugProxy.enabled.description": "**Debug Proxy सक्षम करो** — सभी आउटबाउंड network requests को MITM debugging के लिए proxy के ज़रिए route करो। सिर्फ तब active रहेगा जब तुम debug mode (F5) में चला रहे हो।", "settings.debugProxy.serverUrl.description": "Proxy URL (जैसे `http://127.0.0.1:8888`)। सिर्फ तब इस्तेमाल होती है जब **Debug Proxy** enabled हो।", - "settings.debugProxy.tlsInsecure.description": "Proxy से आने वाले self-signed certificates accept करो। **MITM inspection के लिए ज़रूरी।** ⚠️ Insecure — सिर्फ local debugging के लिए इस्तेमाल करो।" + "settings.debugProxy.tlsInsecure.description": "Proxy से आने वाले self-signed certificates accept करो। **MITM inspection के लिए ज़रूरी।** ⚠️ Insecure — सिर्फ local debugging के लिए इस्तेमाल करो।", + "settings.workspace.rootResolution.description": "Multi-root workspace में Roo workspace root को कैसे resolve करता है। Root का उपयोग `.roomodes`, `.roo/mcp.json`, `.roo/rules/` और अन्य project-scoped configuration को locate करने के लिए होता है। यह setting बदलने से सिर्फ़ future lookups प्रभावित होते हैं; चल रहे tasks अपना original root बनाए रखते हैं।", + "settings.workspace.rootResolution.activeEditor.description": "active editor वाले workspace folder का उपयोग करो; न मिलने पर पहले workspace folder पर fall back करो। (Default — legacy behavior बनाए रखता है।)", + "settings.workspace.rootResolution.firstFolder.description": "हमेशा पहले workspace folder (workspaceFolders[0]) का उपयोग करो। Deterministic — इस बात से स्वतंत्र कि अभी कौन सी file focused है।" } diff --git a/src/package.nls.id.json b/src/package.nls.id.json index 2a7607f3e7c..877b9e0bc5b 100644 --- a/src/package.nls.id.json +++ b/src/package.nls.id.json @@ -45,5 +45,8 @@ "settings.debug.description": "Aktifkan mode debug untuk menampilkan tombol tambahan untuk melihat riwayat percakapan API dan pesan UI sebagai JSON yang diformat dalam file sementara.", "settings.debugProxy.enabled.description": "**Aktifkan Debug Proxy** — Arahkan semua permintaan jaringan keluar lewat proxy untuk debugging MITM. Hanya aktif saat kamu berjalan dalam mode debug (F5).", "settings.debugProxy.serverUrl.description": "URL proxy (mis. `http://127.0.0.1:8888`). Hanya digunakan ketika **Debug Proxy** diaktifkan.", - "settings.debugProxy.tlsInsecure.description": "Terima sertifikat self-signed dari proxy. **Diperlukan untuk inspeksi MITM.** ⚠️ Tidak aman — gunakan hanya untuk debugging lokal." + "settings.debugProxy.tlsInsecure.description": "Terima sertifikat self-signed dari proxy. **Diperlukan untuk inspeksi MITM.** ⚠️ Tidak aman — gunakan hanya untuk debugging lokal.", + "settings.workspace.rootResolution.description": "Bagaimana Roo menyelesaikan root workspace di workspace multi-root. Root digunakan untuk menemukan `.roomodes`, `.roo/mcp.json`, `.roo/rules/`, dan konfigurasi lain yang berlingkup proyek. Mengubah pengaturan ini hanya memengaruhi pencarian berikutnya; tugas yang sedang berjalan tetap menggunakan root aslinya.", + "settings.workspace.rootResolution.activeEditor.description": "Gunakan folder workspace yang berisi editor aktif; kembali ke folder workspace pertama. (Default — mempertahankan perilaku lama.)", + "settings.workspace.rootResolution.firstFolder.description": "Selalu gunakan folder workspace pertama (workspaceFolders[0]). Deterministik — tidak bergantung pada file yang sedang difokuskan." } diff --git a/src/package.nls.it.json b/src/package.nls.it.json index c94471355d4..0733b51c6d4 100644 --- a/src/package.nls.it.json +++ b/src/package.nls.it.json @@ -45,5 +45,8 @@ "settings.debug.description": "Abilita la modalità debug per mostrare pulsanti aggiuntivi per visualizzare la cronologia delle conversazioni API e i messaggi dell'interfaccia utente come JSON formattato in file temporanei.", "settings.debugProxy.enabled.description": "**Abilita Debug Proxy** — Instrada tutte le richieste di rete in uscita tramite un proxy per il debugging MITM. Attivo solo quando esegui in modalità debug (F5).", "settings.debugProxy.serverUrl.description": "URL del proxy (ad es. `http://127.0.0.1:8888`). Usato solo quando **Debug Proxy** è abilitato.", - "settings.debugProxy.tlsInsecure.description": "Accetta certificati autofirmati dal proxy. **Necessario per l'ispezione MITM.** ⚠️ Non sicuro — usalo solo per il debugging locale." + "settings.debugProxy.tlsInsecure.description": "Accetta certificati autofirmati dal proxy. **Necessario per l'ispezione MITM.** ⚠️ Non sicuro — usalo solo per il debugging locale.", + "settings.workspace.rootResolution.description": "Come Roo risolve la radice dell'area di lavoro in un'area di lavoro multi-radice. La radice viene usata per individuare `.roomodes`, `.roo/mcp.json`, `.roo/rules/` e altre configurazioni a livello di progetto. La modifica di questa impostazione influisce solo sulle ricerche future; le attività in esecuzione mantengono la loro radice originale.", + "settings.workspace.rootResolution.activeEditor.description": "Usa la cartella dell'area di lavoro che contiene l'editor attivo; ricorri alla prima cartella dell'area di lavoro. (Predefinito — conserva il comportamento precedente.)", + "settings.workspace.rootResolution.firstFolder.description": "Usa sempre la prima cartella dell'area di lavoro (workspaceFolders[0]). Deterministico — indipendente dal file attualmente attivo." } diff --git a/src/package.nls.ja.json b/src/package.nls.ja.json index ff6040d7734..2b58c0554f4 100644 --- a/src/package.nls.ja.json +++ b/src/package.nls.ja.json @@ -45,5 +45,8 @@ "settings.debug.description": "デバッグモードを有効にして、API会話履歴とUIメッセージをフォーマットされたJSONとして一時ファイルで表示するための追加ボタンを表示します。", "settings.debugProxy.enabled.description": "**Debug Proxy を有効化** — すべての送信ネットワーク要求を MITM デバッグのためにプロキシ経由でルーティングします。デバッグモード (F5) で実行しているときだけ有効です。", "settings.debugProxy.serverUrl.description": "プロキシ URL(例: `http://127.0.0.1:8888`)。**Debug Proxy** が有効なときにだけ使用されます。", - "settings.debugProxy.tlsInsecure.description": "プロキシからの自己署名証明書を許可します。**MITM インスペクションに必須です。** ⚠️ 危険な設定なので、ローカルでのデバッグにだけ使用してください。" + "settings.debugProxy.tlsInsecure.description": "プロキシからの自己署名証明書を許可します。**MITM インスペクションに必須です。** ⚠️ 危険な設定なので、ローカルでのデバッグにだけ使用してください。", + "settings.workspace.rootResolution.description": "マルチルートワークスペースで Roo がワークスペースのルートをどのように解決するか。ルートは `.roomodes`、`.roo/mcp.json`、`.roo/rules/` などのプロジェクト単位の設定を見つけるために使用されます。この設定の変更は今後の検索にのみ影響し、実行中のタスクは元のルートを保持します。", + "settings.workspace.rootResolution.activeEditor.description": "アクティブなエディタを含むワークスペースフォルダーを使用します。見つからない場合は最初のワークスペースフォルダーにフォールバックします。(デフォルト — 従来の動作を維持します。)", + "settings.workspace.rootResolution.firstFolder.description": "常に最初のワークスペースフォルダー(workspaceFolders[0])を使用します。決定論的で、現在フォーカスされているファイルに依存しません。" } diff --git a/src/package.nls.ko.json b/src/package.nls.ko.json index f0912835b8b..085f46cc396 100644 --- a/src/package.nls.ko.json +++ b/src/package.nls.ko.json @@ -45,5 +45,8 @@ "settings.debug.description": "디버그 모드를 활성화하여 API 대화 기록과 UI 메시지를 임시 파일에 포맷된 JSON으로 보기 위한 추가 버튼을 표시합니다.", "settings.debugProxy.enabled.description": "**Debug Proxy 활성화** — 모든 아웃바운드 네트워크 요청을 MITM 디버깅을 위해 프록시를 통해 라우팅합니다. 디버그 모드(F5)로 실행 중일 때만 활성화됩니다.", "settings.debugProxy.serverUrl.description": "프록시 URL(예: `http://127.0.0.1:8888`). **Debug Proxy** 가 활성화된 경우에만 사용됩니다.", - "settings.debugProxy.tlsInsecure.description": "프록시의 self-signed 인증서를 허용합니다. **MITM 검사에 필요합니다.** ⚠️ 안전하지 않으므로 로컬 디버깅에만 사용하세요." + "settings.debugProxy.tlsInsecure.description": "프록시의 self-signed 인증서를 허용합니다. **MITM 검사에 필요합니다.** ⚠️ 안전하지 않으므로 로컬 디버깅에만 사용하세요.", + "settings.workspace.rootResolution.description": "다중 루트 워크스페이스에서 Roo가 워크스페이스 루트를 확인하는 방식입니다. 루트는 `.roomodes`, `.roo/mcp.json`, `.roo/rules/` 및 기타 프로젝트 범위 구성을 찾는 데 사용됩니다. 이 설정을 변경해도 이후 조회에만 영향을 미치며, 실행 중인 작업은 원래 루트를 유지합니다.", + "settings.workspace.rootResolution.activeEditor.description": "활성 편집기가 포함된 워크스페이스 폴더를 사용하고, 없으면 첫 번째 워크스페이스 폴더로 대체합니다. (기본값 — 기존 동작을 유지합니다.)", + "settings.workspace.rootResolution.firstFolder.description": "항상 첫 번째 워크스페이스 폴더(workspaceFolders[0])를 사용합니다. 결정적이며 현재 포커스된 파일과 무관합니다." } diff --git a/src/package.nls.nl.json b/src/package.nls.nl.json index fef3ca7219c..4431178f4b3 100644 --- a/src/package.nls.nl.json +++ b/src/package.nls.nl.json @@ -45,5 +45,8 @@ "settings.debug.description": "Schakel debug-modus in om extra knoppen te tonen voor het bekijken van API-conversatiegeschiedenis en UI-berichten als opgemaakte JSON in tijdelijke bestanden.", "settings.debugProxy.enabled.description": "**Debug Proxy inschakelen** — Leid alle uitgaande netwerkverzoeken via een proxy voor MITM-debugging. Alleen actief wanneer je in debugmodus (F5) draait.", "settings.debugProxy.serverUrl.description": "Proxy-URL (bijv. `http://127.0.0.1:8888`). Wordt alleen gebruikt wanneer **Debug Proxy** is ingeschakeld.", - "settings.debugProxy.tlsInsecure.description": "Accepteer zelfondertekende certificaten van de proxy. **Vereist voor MITM-inspectie.** ⚠️ Onveilig — gebruik dit alleen voor lokale debugging." + "settings.debugProxy.tlsInsecure.description": "Accepteer zelfondertekende certificaten van de proxy. **Vereist voor MITM-inspectie.** ⚠️ Onveilig — gebruik dit alleen voor lokale debugging.", + "settings.workspace.rootResolution.description": "Hoe Roo de werkruimte-root bepaalt in een multi-root werkruimte. De root wordt gebruikt om `.roomodes`, `.roo/mcp.json`, `.roo/rules/` en andere projectspecifieke configuratie te vinden. Het wijzigen van deze instelling heeft alleen invloed op toekomstige zoekopdrachten; lopende taken behouden hun oorspronkelijke root.", + "settings.workspace.rootResolution.activeEditor.description": "Gebruik de werkruimtemap die de actieve editor bevat; val terug op de eerste werkruimtemap. (Standaard — behoudt het oude gedrag.)", + "settings.workspace.rootResolution.firstFolder.description": "Gebruik altijd de eerste werkruimtemap (workspaceFolders[0]). Deterministisch — onafhankelijk van welk bestand momenteel de focus heeft." } diff --git a/src/package.nls.pl.json b/src/package.nls.pl.json index 8c1f66450d1..995876baed8 100644 --- a/src/package.nls.pl.json +++ b/src/package.nls.pl.json @@ -45,5 +45,8 @@ "settings.debug.description": "Włącz tryb debugowania, aby wyświetlić dodatkowe przyciski do przeglądania historii rozmów API i komunikatów interfejsu użytkownika jako sformatowany JSON w plikach tymczasowych.", "settings.debugProxy.enabled.description": "**Włącz Debug Proxy** — Kieruj wszystkie wychodzące żądania sieciowe przez proxy na potrzeby debugowania MITM. Aktywne tylko wtedy, gdy uruchamiasz w trybie debugowania (F5).", "settings.debugProxy.serverUrl.description": "URL proxy (np. `http://127.0.0.1:8888`). Używany tylko wtedy, gdy **Debug Proxy** jest włączony.", - "settings.debugProxy.tlsInsecure.description": "Akceptuj certyfikaty self-signed z proxy. **Wymagane do inspekcji MITM.** ⚠️ Niezabezpieczone — używaj tylko do lokalnego debugowania." + "settings.debugProxy.tlsInsecure.description": "Akceptuj certyfikaty self-signed z proxy. **Wymagane do inspekcji MITM.** ⚠️ Niezabezpieczone — używaj tylko do lokalnego debugowania.", + "settings.workspace.rootResolution.description": "Jak Roo ustala katalog główny obszaru roboczego w obszarze roboczym z wieloma katalogami głównymi. Katalog główny służy do lokalizowania `.roomodes`, `.roo/mcp.json`, `.roo/rules/` i innej konfiguracji w zakresie projektu. Zmiana tego ustawienia wpływa tylko na przyszłe wyszukiwania; uruchomione zadania zachowują swój pierwotny katalog główny.", + "settings.workspace.rootResolution.activeEditor.description": "Użyj folderu obszaru roboczego zawierającego aktywny edytor; w razie potrzeby wróć do pierwszego folderu obszaru roboczego. (Domyślnie — zachowuje dotychczasowe zachowanie.)", + "settings.workspace.rootResolution.firstFolder.description": "Zawsze używaj pierwszego folderu obszaru roboczego (workspaceFolders[0]). Deterministyczne — niezależne od tego, który plik jest obecnie aktywny." } diff --git a/src/package.nls.pt-BR.json b/src/package.nls.pt-BR.json index 84cbf42c097..49ad70cfff9 100644 --- a/src/package.nls.pt-BR.json +++ b/src/package.nls.pt-BR.json @@ -45,5 +45,8 @@ "settings.debug.description": "Ativa o modo de depuração para mostrar botões adicionais para visualizar o histórico de conversas da API e mensagens da interface como JSON formatado em arquivos temporários.", "settings.debugProxy.enabled.description": "**Ativar Debug Proxy** — Redireciona todas as solicitações de rede de saída por meio de um proxy para depuração MITM. Só fica ativo quando você está executando em modo de depuração (F5).", "settings.debugProxy.serverUrl.description": "URL do proxy (por exemplo, `http://127.0.0.1:8888`). Só é usada quando o **Debug Proxy** está ativado.", - "settings.debugProxy.tlsInsecure.description": "Aceitar certificados self-signed do proxy. **Necessário para inspeção MITM.** ⚠️ Inseguro — use apenas para depuração local." + "settings.debugProxy.tlsInsecure.description": "Aceitar certificados self-signed do proxy. **Necessário para inspeção MITM.** ⚠️ Inseguro — use apenas para depuração local.", + "settings.workspace.rootResolution.description": "Como o Roo resolve a raiz do espaço de trabalho em um espaço de trabalho com várias raízes. A raiz é usada para localizar `.roomodes`, `.roo/mcp.json`, `.roo/rules/` e outras configurações com escopo de projeto. Alterar esta configuração afeta apenas as buscas futuras; as tarefas em execução mantêm sua raiz original.", + "settings.workspace.rootResolution.activeEditor.description": "Use a pasta do espaço de trabalho que contém o editor ativo; recorra à primeira pasta do espaço de trabalho. (Padrão — preserva o comportamento legado.)", + "settings.workspace.rootResolution.firstFolder.description": "Sempre use a primeira pasta do espaço de trabalho (workspaceFolders[0]). Determinístico — independente de qual arquivo está em foco no momento." } diff --git a/src/package.nls.ru.json b/src/package.nls.ru.json index be8df040323..41cae9b9c02 100644 --- a/src/package.nls.ru.json +++ b/src/package.nls.ru.json @@ -45,5 +45,8 @@ "settings.debug.description": "Включить режим отладки, чтобы отображать дополнительные кнопки для просмотра истории разговоров API и сообщений интерфейса в виде форматированного JSON во временных файлах.", "settings.debugProxy.enabled.description": "**Включить Debug Proxy** — направлять все исходящие сетевые запросы через прокси для MITM-отладки. Активен только когда ты запускаешь расширение в режиме отладки (F5).", "settings.debugProxy.serverUrl.description": "URL прокси (например, `http://127.0.0.1:8888`). Используется только если **Debug Proxy** включён.", - "settings.debugProxy.tlsInsecure.description": "Принимать self-signed сертификаты от прокси. **Требуется для MITM-инспекции.** ⚠️ Небезопасно — используй только для локальной отладки." + "settings.debugProxy.tlsInsecure.description": "Принимать self-signed сертификаты от прокси. **Требуется для MITM-инспекции.** ⚠️ Небезопасно — используй только для локальной отладки.", + "settings.workspace.rootResolution.description": "Как Roo определяет корень рабочей области в рабочей области с несколькими корнями. Корень используется для поиска `.roomodes`, `.roo/mcp.json`, `.roo/rules/` и другой конфигурации уровня проекта. Изменение этого параметра влияет только на последующие операции поиска; выполняющиеся задачи сохраняют свой исходный корень.", + "settings.workspace.rootResolution.activeEditor.description": "Использовать папку рабочей области, содержащую активный редактор; при отсутствии возвращаться к первой папке рабочей области. (По умолчанию — сохраняет прежнее поведение.)", + "settings.workspace.rootResolution.firstFolder.description": "Всегда использовать первую папку рабочей области (workspaceFolders[0]). Детерминировано — не зависит от того, какой файл сейчас в фокусе." } diff --git a/src/package.nls.tr.json b/src/package.nls.tr.json index a815188e8aa..3712edb4a8f 100644 --- a/src/package.nls.tr.json +++ b/src/package.nls.tr.json @@ -45,5 +45,8 @@ "settings.debug.description": "API konuşma geçmişini ve kullanıcı arayüzü mesajlarını geçici dosyalarda biçimlendirilmiş JSON olarak görüntülemek için ek düğmeler göstermek üzere hata ayıklama modunu etkinleştir.", "settings.debugProxy.enabled.description": "**Debug Proxy'yi etkinleştir** — Tüm giden ağ isteklerini MITM hata ayıklaması için bir proxy üzerinden yönlendir. Yalnızca debug modunda (F5) çalıştırırken aktiftir.", "settings.debugProxy.serverUrl.description": "Proxy URL'si (ör. `http://127.0.0.1:8888`). Yalnızca **Debug Proxy** etkin olduğunda kullanılır.", - "settings.debugProxy.tlsInsecure.description": "Proxy'den gelen self-signed sertifikaları kabul et. **MITM incelemesi için gerekli.** ⚠️ Güvensiz — yalnızca lokal debugging için kullan." + "settings.debugProxy.tlsInsecure.description": "Proxy'den gelen self-signed sertifikaları kabul et. **MITM incelemesi için gerekli.** ⚠️ Güvensiz — yalnızca lokal debugging için kullan.", + "settings.workspace.rootResolution.description": "Roo'nun çok köklü bir çalışma alanında çalışma alanı kökünü nasıl çözümlediği. Kök; `.roomodes`, `.roo/mcp.json`, `.roo/rules/` ve diğer proje kapsamlı yapılandırmaları bulmak için kullanılır. Bu ayarı değiştirmek yalnızca gelecekteki aramaları etkiler; çalışan görevler kendi özgün köklerini korur.", + "settings.workspace.rootResolution.activeEditor.description": "Etkin düzenleyiciyi içeren çalışma alanı klasörünü kullan; yoksa ilk çalışma alanı klasörüne geri dön. (Varsayılan — eski davranışı korur.)", + "settings.workspace.rootResolution.firstFolder.description": "Her zaman ilk çalışma alanı klasörünü (workspaceFolders[0]) kullan. Belirleyici — o anda hangi dosyanın odakta olduğundan bağımsız." } diff --git a/src/package.nls.vi.json b/src/package.nls.vi.json index 6052080dfa3..f3515c2907e 100644 --- a/src/package.nls.vi.json +++ b/src/package.nls.vi.json @@ -45,5 +45,8 @@ "settings.debug.description": "Bật chế độ gỡ lỗi để hiển thị các nút bổ sung để xem lịch sử hội thoại API và thông điệp giao diện người dùng dưới dạng JSON được định dạng trong các tệp tạm thời.", "settings.debugProxy.enabled.description": "**Bật Debug Proxy** — Chuyển hướng tất cả yêu cầu mạng đi ra qua một proxy để debug MITM. Chỉ hoạt động khi bạn chạy ở chế độ gỡ lỗi (F5).", "settings.debugProxy.serverUrl.description": "Proxy URL (vd: `http://127.0.0.1:8888`). Chỉ được dùng khi **Debug Proxy** được bật.", - "settings.debugProxy.tlsInsecure.description": "Chấp nhận chứng chỉ self-signed từ proxy. **Bắt buộc cho việc kiểm tra MITM.** ⚠️ Không an toàn — chỉ dùng cho debug cục bộ." + "settings.debugProxy.tlsInsecure.description": "Chấp nhận chứng chỉ self-signed từ proxy. **Bắt buộc cho việc kiểm tra MITM.** ⚠️ Không an toàn — chỉ dùng cho debug cục bộ.", + "settings.workspace.rootResolution.description": "Cách Roo xác định gốc workspace trong workspace nhiều gốc. Gốc được dùng để định vị `.roomodes`, `.roo/mcp.json`, `.roo/rules/` và các cấu hình khác theo phạm vi dự án. Thay đổi cài đặt này chỉ ảnh hưởng đến các lần tra cứu sau; các tác vụ đang chạy vẫn giữ gốc ban đầu của chúng.", + "settings.workspace.rootResolution.activeEditor.description": "Dùng thư mục workspace chứa trình soạn thảo đang hoạt động; quay lại thư mục workspace đầu tiên nếu không có. (Mặc định — giữ nguyên hành vi cũ.)", + "settings.workspace.rootResolution.firstFolder.description": "Luôn dùng thư mục workspace đầu tiên (workspaceFolders[0]). Có tính xác định — không phụ thuộc vào tệp nào đang được focus." } diff --git a/src/package.nls.zh-CN.json b/src/package.nls.zh-CN.json index 9254d494d9b..13428ee7616 100644 --- a/src/package.nls.zh-CN.json +++ b/src/package.nls.zh-CN.json @@ -45,5 +45,8 @@ "settings.debug.description": "启用调试模式以显示额外按钮,用于在临时文件中以格式化 JSON 查看 API 对话历史和 UI 消息。", "settings.debugProxy.enabled.description": "**启用 Debug Proxy** — 通过代理转发所有出站网络请求,用于 MITM 调试。只在调试模式 (F5) 运行时生效。", "settings.debugProxy.serverUrl.description": "代理 URL(例如 `http://127.0.0.1:8888`)。仅在启用 **Debug Proxy** 时使用。", - "settings.debugProxy.tlsInsecure.description": "接受来自代理的 self-signed 证书。**MITM 检查所必需。** ⚠️ 不安全——只在本地调试时使用。" + "settings.debugProxy.tlsInsecure.description": "接受来自代理的 self-signed 证书。**MITM 检查所必需。** ⚠️ 不安全——只在本地调试时使用。", + "settings.workspace.rootResolution.description": "Roo 在多根工作区中如何解析工作区根目录。根目录用于定位 `.roomodes`、`.roo/mcp.json`、`.roo/rules/` 以及其他项目范围的配置。更改此设置仅影响后续的查找;正在运行的任务会保留其原始根目录。", + "settings.workspace.rootResolution.activeEditor.description": "使用包含活动编辑器的工作区文件夹;否则回退到第一个工作区文件夹。(默认 — 保留旧有行为。)", + "settings.workspace.rootResolution.firstFolder.description": "始终使用第一个工作区文件夹(workspaceFolders[0])。具有确定性 — 与当前聚焦的文件无关。" } diff --git a/src/package.nls.zh-TW.json b/src/package.nls.zh-TW.json index a8030d69141..a50bee08104 100644 --- a/src/package.nls.zh-TW.json +++ b/src/package.nls.zh-TW.json @@ -45,5 +45,8 @@ "settings.debug.description": "啟用偵錯模式以顯示額外按鈕,用於在暫存檔案中以格式化 JSON 檢視 API 對話歷史紀錄和使用者介面訊息。", "settings.debugProxy.enabled.description": "**啟用 Debug Proxy** — 將所有出站網路要求透過代理進行路由,以進行 MITM 偵錯。只有在除錯模式 (F5) 執行時才會啟用。", "settings.debugProxy.serverUrl.description": "代理 URL(例如 `http://127.0.0.1:8888`)。只有在啟用 **Debug Proxy** 時才會使用。", - "settings.debugProxy.tlsInsecure.description": "接受來自代理的 self-signed 憑證。**MITM 檢查所必需。** ⚠️ 不安全——只在本機偵錯時使用。" + "settings.debugProxy.tlsInsecure.description": "接受來自代理的 self-signed 憑證。**MITM 檢查所必需。** ⚠️ 不安全——只在本機偵錯時使用。", + "settings.workspace.rootResolution.description": "Roo 在多根工作區中如何解析工作區根目錄。根目錄用於定位 `.roomodes`、`.roo/mcp.json`、`.roo/rules/` 以及其他專案範圍的設定。變更此設定僅影響後續的查找;正在執行的工作會保留其原始根目錄。", + "settings.workspace.rootResolution.activeEditor.description": "使用包含使用中編輯器的工作區資料夾;否則回退到第一個工作區資料夾。(預設 — 保留既有行為。)", + "settings.workspace.rootResolution.firstFolder.description": "一律使用第一個工作區資料夾(workspaceFolders[0])。具決定性 — 與目前聚焦的檔案無關。" } diff --git a/src/services/ripgrep/index.ts b/src/services/ripgrep/index.ts index 5dd800ac6f7..1f427981603 100644 --- a/src/services/ripgrep/index.ts +++ b/src/services/ripgrep/index.ts @@ -51,6 +51,11 @@ rel/path/to/helper.ts const isWindows = process.platform.startsWith("win") const binName = isWindows ? "rg.exe" : "rg" +// VS Code's @vscode/ripgrep-universal package (used by recent VS Code builds, +// including the Insiders staged-install layout) nests the binary under +// bin/-/ rather than directly in bin/. +const ripgrepUniversalBinDir = `bin/${process.platform}-${process.arch}` + interface SearchFileResult { file: string searchResults: SearchResult[] @@ -80,7 +85,13 @@ export function truncateLine(line: string, maxLength: number = MAX_LINE_LENGTH): return line.length > maxLength ? line.substring(0, maxLength) + " [truncated...]" : line } /** - * Get the path to the ripgrep binary within the VSCode installation + * Get the path to the ripgrep binary shipped inside the VS Code installation. + * + * Both the long-standing `@vscode/ripgrep` layout and the newer + * `@vscode/ripgrep-universal` layout are checked — the latter is what VS Code + * Insiders' staged-install builds use (see microsoft/vscode#252063). + * + * Returns `undefined` when ripgrep cannot be located. */ export async function getBinPath(vscodeAppRoot: string): Promise { const checkPath = async (pkgFolder: string) => { @@ -92,7 +103,9 @@ export async function getBinPath(vscodeAppRoot: string): Promise