* Pass model to tools
When tools make requests, they should use the right model. So we
- save the model id on the request
- look it up when the tool is invoked
- resolve it to a LanguageModelChat in the EH
* Fix build
We need to distinguish between codeblocks that have URIs and should be rendered as codeblock pills, vs ones that should be rendered as normal codeblocks but get the "apply in foo.js" handling due to having URIs. Previously this was just based on the mode, but in order to render chat codeblocks and also edits codeblocks, we need this tracking of whether a codeblockuri represents an edited file, which comes from the intent invocation.
When we clean up codeblock-based edits in favor of tools all the time, we can clean up this crazy code...
* first pass language model image
* add language model 2 instead
* more languagemodel2
* change api shape
* add back original languagemodelchatmessage
* fix imports
* allow old languageModelChatMessage to also b used
* handle vsbuffer case
* make sure to resize images before sending the chat request
* remove detail
* remove whitespace
* rename to languageModelDataPart
* 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
* Adopt terminal suggest to shell api change
* Internally bring string enum for terminal suggest to prevent Typos
* Better word description under api description
* Remove shell proposed api against vscode.d.ts
* Update `shell` description after looking at feedbacks.
* Update docs
* Change to a Map<TerminalShellTye, string[]>
* One last typo
---------
Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com>
* Make agent welcome content declared on the agent as metadata
To make it easier when switching modes
* Remove internal plumbing
* Fix sample questions
* bump version
* mcp: support sse
Didn't seem like Claude Desktop configs have SSE support yet, but I did
the obvious of having an object with a `url`. I also added a `type`
(optional for stdio) so we can better disambiguate types of configs.
Example .vscode/mcp.json:
```
{
"servers": {
"everything": {
"type": "sse",
"url": "http://localhost:3001/sse"
}
}
}
```
Closes#243242
* update layer check
* add `ChatRequest#tools`
* make select tools for all tools, not just MCP tools
* make the select tools work with all tools, group by MCP server, extension, and rest
* fill in the new ChatRequest#selectTools API with selected tools
* have the MCP server command be its own command with its own custom rendering
* remove old comment