* Start small
* start on new byok api
* Some more api work
* Hook up more of the API
* A single file with no errors yay!
* Some cleanup
* Slow and steady progress
* More code
* Add resolve
* Hate everything
* More progress on rewriting id
* Some error fixing
* Fix null service
* Use claude to fix tests
* Fix tests
* Fix tests
* More test fixing
* Some setup
* Some model picker stuff
* Fix model picker with new BYOK api
* Remove support for contirbuting to mdel picker action bar
* Adjust to allow for user prompting
* Add event
* Fix conflicts
For MCP I can already kind of get this from the tool name, but for
extension tools we previously had no way to know which extension
provided the tool.
This PR adds a `LanguageModelToolInformation.source` containing details
about where the tool came from. I also use this to include the MCP
server instructions which is needed for #250017.
cc @aeschli @roblourens
* Add plumbing for parent/child relationship
* Fix selected and view height
* More clean-up
* More fixes related to view height
* Dispose submodules and worktrees
* Add onDidDisposeParent event
Makes the `userSelectedTools` passed into the chat agent service
observable such that the tools of the ongoing request update as new
tools come in. The benefit of this versus other (previous) approaches
is that it reflects the enablement/disablement state of the picker
(which is likely to get additional controls in the future) and works
without special tagging.
@roblourens / @DonJayamanne I think with this we can get rid of
0d6f5516d2/src/extension/tools/vscode-node/toolsService.ts (L118-L122)
which was added for Jupyter iirc.
Closes#254684
First sketch for a simple API that lets extensions render content in chat using a webview
Right now this is targeting results from tool calls but we could potentially extend this to work with a more generic version of our chat response image part
* `issuer` -> `authorizationServer` refactor
Also:
* adds `authorizationServerGlobs` to the authentication contribution schema
* removes ugly MCP issuer hack and instead plumbs the authorizationServer down to the new auth providers
* Initial support of dynamic auth providers for MCP
With this change, we support being able to on-the-fly create an Auth Provider based on an oauth-authorization-server's metadata.
MCP then leverages this because by following the MCP spec we can figure out the oauth server metadata and then request a token from that server.
The tokens are persisted and will be refreshed on demand... all based on the OAuth spec.
* Connor's feedback & some type fixes
* LanguageModelDataPart as arbitrary mimeType+data+factory functions
Like NotebookCellOutputItem
* change languagemodel data part shape
* rm whitespace
---------
Co-authored-by: Your Name <justchen@microsoft.com>
* LanguageModel API updates to support prompt caching and thinking tokens
Add LanguageModelExtraDataPart which contains any arbitrary model-specific data
microsoft/vscode-copilot#15716
* Remove LanguageModelChatMessage3
* Bump API versions
- Replace SSE with HTTP in the API (although this still supports the
same SSE fallback we otherwise have, this is not documented)
- Add a new `resolveMcpServerDefinition` step that is only run before
the MCP server is started -- both from a cache or from a running
extension. This lets extensions do user interaction is a more correct way.
- Add appropriate docs and such.