We have `isDefault` which allows a model to indicate that it is the best/most-recommended model. This PR extends this concept to define default by location, e.g for inline chat a different default model might apply than for panel chat or terminal chat
* improvements to manage models
* fix errors
* remove quality check
* fix compilation
* handle errors and display in table
* remove commented code
* fix tests
* fix tests
* use unique model identifier across groups
* fix handling model identifier in the editor
* api: allow byok model providers to hint at good edit tools
For our own models, we set up the edit tools they get. For generic open-
ended providers like OpenRouter, we will have a 'learning' functionality.
But for BYOK providers that can provide a curated set of models (e.g.
Cerebras) we should let them tell us what edit tool is appropriate for
models they give us so users have a good experience from request 0.
The API is intentionally loose because edit tools continue to evolve and
our set of available tools will continue to change. So I do not surface
any of these in actual API types, but give a string array of hints the
provider can give us. If in the future none of the tools they hint are
ones we recognize, as the space evolves, then the chat extension will
fall back to its default learning behavior.
* comment
Bump private because extensions that don't declare a version for a proposal will still be treated as compatible, and we're adding it to chatProvider for the first time
* 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
* Revert "Revert "Support categories in model picker (#247084)" (#247090)"
This reverts commit 29c0ca5e1e.
* Switch model categories to be part of registration
* 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
* bump distro
* supports vision work
* better promise handling, clean up if statements
* more ui update
* make capabilities optional
* some cleanup
* fix function
* add logging when language model chat comes and goes and when selection happens
* have `max{Input|Output}Token` instead of contextSize. This reflect LM model reality better
* api - use `LanguageModelChat` prefix for messages and response, add todos
* update todos, tweak how `chatRequest` errors, remove `LanguageModelChatResponse#result`
* api - refine language model access
removes `requestLanguageModelAccess`,
removes `LanguageModelChatResponse#result`,
adds `LanguageModelChatRequestOptions`,
refines how errors happen when making a chat request
* use `throw` over Promise.reject
* don't error from `_getAuthAccess`, polish error messages
* rename to `sendChatRequest`
* api - remove unused types, add jsdoc, make request handler setable (for consistency), more readonly usage
https://github.com/microsoft/vscode/issues/199908
* remove ChatMessage and Role
* fix a ton of compile errors...
* jsdoc