* Added execution subagent
* Updated config
* Add execution_subagent to nonDeferredToolNames for Tool Search compatibility
* Modified to be in line with search subagent. Also removed all tools except terminal
* Fixed error with default model in package.json
* Updated prompt snapshots so that tests pass
* Deleted accidentally added yaml
* Modified subagent input format to not take exact commands
* Fixed parameter error
* Updated prompt snapshots
* Updated prompts according to Rob's suggestions
* Addressed Copilot and Bhavya comments
* Reverted accidental changes in anthropicPrompts.tsx
* Tweaked the tool use instructions wrt CoreRunInTerminal slightly
* Minor prompt changes
* Updated for new ToolCallingLoop interface
* Added instruction to Claude 4.6 prompt
* Gating change in prompts to prevent empty tags when execution subagent is not enabled
---------
Co-authored-by: Aakash Goel (MSTIC DS&AI) <aakashgoel@microsoft.com>
* change to settings.json to trigger search subagent with proxy
* update prompting for opus 4.6 to discourage over use, and add prompting to openai models to encourage use
* update unit tests
* change to settings.json to trigger search subagent with proxy
* specify absolute path + handle case where relative path is given
* remove wording specifying absolute paths
* added edits for testing in vm
* remove logging
* revert it back to its original state
* updating to try given path first
* update the logic of filepaths
* feat: add conversation transcript lookup after summarization
After conversation history is compacted, inform the model it can look up
the full pre-compaction transcript via read_file. The transcript is a JSONL
file produced by ISessionTranscriptService.
Key changes:
- Add isTranscriptUri() to ISessionTranscriptService for read_file allowlisting
- Allowlist transcript URIs in assertFileOkForTool and isFileExternalAndNeedsConfirmation
- Lazily start transcript session in SummarizedConversationHistory before
summarization runs (idempotent if hooks already started it)
- After summarization, flush transcript and pass path to SummaryMessageElement
which tells the model about the file
- Gate behind ConfigKey.ConversationTranscriptLookup (ExperimentBased, default off)
- Add setting in package.json preview section with onExp tag
* fix: update transcript lookup instruction to use ToolName.ReadFile
* Add dedicated view image tool (Written by Copilot)
* Remove stale read file test import (Written by Copilot)
* Add image extension coverage test (Written by Copilot)
* Update test snapshots
* tools: add binary file support with hexdump display
Adds support for reading and displaying binary files in the read file tool
with a hexdump-formatted view. This enables better handling of binary content
in the IDE context without attempting to interpret them as text.
- Adds hexdump utility to format binary data in a readable hex/ASCII view
- Extends readFileTool to detect binary files and provide formatted output
- Adds binaryFileHexdump prompt component for displaying binary content
- Integrates binary file variable support in file variable display
- Updates test fixtures with binary file handling scenarios
Fixes https://github.com/microsoft/vscode/issues/284178
Fixes https://github.com/microsoft/vscode/issues/299973
(Commit message generated by Copilot)
* pr comments
* baseline update
* baseline update
* Fix custom tool search: enable in agent tools, filter invalid references, improve prompts
- Add tool_search to allowTools in agentIntent.ts so it appears in agent mode
- Filter tool_reference blocks in messagesApi.ts against valid tool names to prevent 400 errors
- Update tool description and prompt to encourage broad queries and reduce redundant calls
- Remove limit parameter from tool schema (always use default)
- Add sonnet 4.5 and opus 4.5 to supported models list
- Extract TOOL_SEARCH_SUPPORTED_MODELS shared constant with dot-format model IDs
- Remove modelSupportsToolSearch(), inline check into isAnthropicToolSearchEnabled()
- BYOK anthropicProvider normalizes hyphenated model IDs before checking support
* Add custom tool search tests for tool_reference conversion and filtering
* Initial plan
* fix: show diagnostics on empty lines in get_errors tool and DiagnosticDescription
When a diagnostic is reported on an empty/blank line (e.g., a trailing
empty line at EOF), the DiagnosticDescription component was returning
an empty JSX fragment because the code content was empty after trimEnd().
This caused the entire diagnostic (including its error message) to be
invisible to the AI model.
Fixed by removing the empty-line guard and always emitting the diagnostic
message, just without a code block when the line has no content.
Also adds a test case for diagnostics reported on empty lines.
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
* formatting
* Update src/extension/tools/node/test/getErrorsTool.spec.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: roblourens <323878+roblourens@users.noreply.github.com>
Co-authored-by: Rob Lourens <roblourens@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* change to settings.json to trigger search subagent with proxy
* disable new read file tool, consolidate proxy vs. non proxy searchsubagent model name
* The reckoning: Update all the vscode.proposed.*.d.ts files
and run the update on post install
* Improve proposed update and check
- Pin it to a commit
- Require that update be run manually, not as post install
- Add PR check
---------
Co-authored-by: João Moreno <joaomoreno@users.noreply.github.com>
* Remove Ask User Question tool in favor of Core tool
Fixes https://github.com/microsoft/vscode/issues/296134
* feedback
* remove duplicate & restore toolset
* feedback
* revert change in anthropic.ts because ask_questions is what is used in Claude
* Add support for local repository memory and update telemetry events
* Update memory command labels for clarity in the UI
* update test
* Add repository memory section to snapshot tests for clarity
* Initial plan
* Fix non-existent files incorrectly treated as external
- Add file existence check in isFileExternalAndNeedsConfirmation()
- Non-existent files now return false (not external) to prevent confirmation dialog
- Actual tool invocation will fail with proper "file not found" error
- Update tests to reflect new behavior
Co-authored-by: connor4312 <2230985+connor4312@users.noreply.github.com>
* Address code review feedback
- Add comprehensive comment explaining error handling tradeoff
- Add test suite with MockFileSystemService to verify existing external files still need confirmation
- Tests confirm the fix works correctly for both existing and non-existing files
Co-authored-by: connor4312 <2230985+connor4312@users.noreply.github.com>
* update
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: connor4312 <2230985+connor4312@users.noreply.github.com>
Co-authored-by: Connor Peet <connor@peet.io>
* Add skill name to readFileToolInvoked telemetry
* Rename telemetry field to nameField
---------
Co-authored-by: Harald Kirschner <digitarald@gmail.com>
* update memory tool to context
* Update memory paths to include '/memories/' prefix and remove unsupported repo path tests
* update memory guidelines and user instructions with conditional rendering based on memory tool availability
* remove memory tool from agent prompts snapshot
* remove memory tool from agent prompts snapshot
* Add support for Anthropic memory tool functionality and related checks
* Enhance memory path validation with normalization and root check functions
* Update error message for missing memory path in view command
* Add MemoryCleanupService to manage stale memory files and integrate with MemoryTool
* tools: avoid putting fences into file reads by default
We've seen the model get confused here. Looking at vendor tools from Gemini and Codex CLIs, they don't add explicit line number messages like we do (which was motivation behind having the fences there in the first place. So let's try removing them. Controllable with EXP for sanity checking.
* tests and comments
* Add chat.additionalReadAccessPaths setting for read-only access to external folders
Implements a new setting that allows users to specify folders outside the
workspace that Copilot Chat read-only tools (read_file, list_dir) can
access without requiring confirmation.
- Add github.copilot.chat.additionalReadAccessPaths setting (string array)
- Gate additional access behind a readOnly flag on assertFileOkForTool,
isFileExternalAndNeedsConfirmation, and isDirExternalAndNeedsConfirmation
- Edit tools remain workspace-restricted (isFileOkForTool does not pass readOnly)
- .copilotignore rules are still respected for additional paths
Closesmicrosoft/vscode#293386
* Addresses PR feedback
* prompts: add vitest unit tests for PromptPathRepresentationService
Adds comprehensive unit test coverage for PromptPathRepresentationService
with 26 tests covering both PromptPathRepresentationService and
TestPromptPathRepresentationService:
- getFilePath() tests for file/vscode-remote/other schemes
- resolveFilePath() tests for posix/windows paths and URI parsing
- Windows-specific path handling (drive letters, UNC paths, backslashes)
- Workspace folder integration for drive letter rectification
- getExampleFilePath() tests for platform-specific output
- Round-trip conversion tests
Windows drive-letter tests are skipped on non-Windows platforms since
hasDriveLetter() uses the real OS, not the service override.
Fixes https://github.com/microsoft/vscode/issues/292422
(Commit message generated by Copilot)
* fix compile
* tests again
* fix test