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

@@ -130,6 +130,10 @@
"fileMatch": "%APP_SETTINGS_HOME%/snippets/*.json",
"url": "vscode://schemas/snippets"
},
{
"fileMatch": "%APP_SETTINGS_HOME%/prompts/*.toolsets.jsonc",
"url": "vscode://schemas/toolsets"
},
{
"fileMatch": "%APP_SETTINGS_HOME%/profiles/*/snippets/.json",
"url": "vscode://schemas/snippets"