* Add support for custom chat agents in the API
- Introduced `chatCustomAgents` proposal in extensions API.
- Implemented methods to handle custom agents in `MainThreadChatAgents2`.
- Added `ICustomAgentDto` interface and related functionality in extHost.
- Created new type definitions for custom agents in `vscode.proposed.chatCustomAgents.d.ts`.
* Filter custom agents by visibility before pushing to the proxy
* Refactor onDidChangeCustomAgents to use direct event listener
* Update custom agent tools property to allow undefined values
* Add chatCustomAgents to enabledApiProposals in package.json
* update
* update
* support skills
* support instructions
* update
* update
---------
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
Includes public API, user setting, status bar icon and a new service to support metered network connections.
Updates code in various areas performing automated actions using network to delay/pause network operations while network connection is being metered.
Disabled protocol handlers and registry updates on Windows in portable mode.
Added API proposal to detect if VS Code is running in portable mode from extensions.
Skipped protocol redirect in GitHub authentication in portable mode.
* Add quickPickItemResource API proposal
* Transfer resourceUri from extension host to main thread.
* Make proposed API checks consistent.
* Process resourceUri
* Fix up resourceUri mapping logic
* API proposal
* Transfer toggles from extension host to main thread
* Support Folder icon, refactor label/description derivation.
* Update
* Update API proposal per API review
* Update transfer logic per API changes
* Move toggles to the base input interface
* Handle toggle button type
* Fix up
* Updates
* Propagate checked state, dispose removed toggles.
* Nit
* Expand icons
* Feedback/updates
* Added comments, PR feedback
* Updates
* Revert some change, add typings and unit-tests to converters.
* Add a quick pick test for resourceUri
* Test updates
For #271167
This makes it so our built-in extensions can mostly be built using `tsc` on the command line. Previously the extensions were picking up a lot of typing info from the root `node_modules` that meant they weren't truly independent
* add `workbench.action.chat.open::waitForComplete`
* s/waitForCompletion/blockOnResponse
* cleanup tests
* remove unused comment
* Apply suggestion from @connor4312
Co-authored-by: Connor Peet <connor@peet.io>
* fixup tests
* don't block test loop on invokeTool
* Revert "don't block test loop on invokeTool"
This reverts commit d8d16dbe79.
* fix tool confirmation test
* attempt to account for the flip of isPendingConfirmation
* [DEBUG] debug CI flake
* register tool so it exists in all test envs
* finish configuring custom tool
* run test in seperate chat windows
* revert debug changes
* remove timeout dep
* fix assertion
* cleaup tests by examining output of command directly
---------
Co-authored-by: Connor Peet <connor@peet.io>
* Add proposed API for trusted domains and for web page extraction
I don't love the shape of this API but I'm going with this for now to play with it.
This will help Chat provide contents of web pages as context but also allow it full control of the tool.
ref https://github.com/microsoft/vscode/issues/243615
* use a different url
* delete the test until we have a good way to mock
Fixes#30066
This finalizes the documentPaste api. This api allows extensions to attach metadata on text copy and change how content is pasted. Some examples:
- Updating imports for pasted code
- Inserting an image as an attachment in notebooks
- Pasting files converts them to relative text paths
* add integration tests for LanguageModelChat#sendRequest
* make sure errors are recreated when making LM requests
* disable test with a note for later
* fix remote integration tests
* Don't register chat participants in stable
And fork some Additions APIs into chatParticipantPrivate
* Remove stale proposals
* Move more API out of Additions
* Enable duplicate chat participant names
#208103
* Register participants with an ID
* Update participant history in API
* Changes to dupe chat suggest widget, and fix serialize/deserialize
* Tweaks
* Test fixes
* Fix tests
* Test fixes
* Fix integration test