Add support for tool sets (#249448)

* observale map/set

* adds tool sets, let mcp contribute tool set, update commands

* add `languageModelToolSets` contribution point that allows extensions to define set of tools

* only homogenous tool sets hide the tools they contain (that is set and all its tools are from the same source)

* make sure checking/unchecking buckets works

* make it more clear that the action is about tool configuration (not selecting/attaching)

* simplify `IToolSet#tools`

* support `*.toolset.json` files

* one bucket for all MCP servers

* use mcp icon

* use `.toolsets.json` suffix

* [tools config-pick] keep parents, peek sort order

* * add "Configure Tool Sets" actions
* make it `toolsets.jsonc` and register schema etc pp
* fix some tools picker issues

* add tool sets validation

* * tools completions
* Add ToolDataSource.Internal constant

* add missing return

* make tool set a class

* allow a tool set to contain other tool sets

* use dynamic schema for `toolsets.jsonc` language features

* fix tests
This commit is contained in:
Johannes Rieken
2025-05-21 15:54:14 +02:00
committed by GitHub
parent 9880502f0e
commit 2e59a77991
39 changed files with 1349 additions and 280 deletions

View File

@@ -11,7 +11,9 @@
"scripts": {
"update-grammar": "node ./build/update-grammars.js"
},
"categories": ["Programming Languages"],
"categories": [
"Programming Languages"
],
"contributes": {
"languages": [
{
@@ -58,7 +60,8 @@
".jshintrc",
".swcrc",
".hintrc",
".babelrc"
".babelrc",
".toolset.jsonc"
],
"filenames": [
"babel.config.json",
@@ -84,7 +87,7 @@
{
"id": "snippets",
"aliases": [
"Code Snippets"
"Code Snippets"
],
"extensions": [
".code-snippets"