CI / test (push) Successful in 8m43s
llmgw's own extension for VS Code, plain JavaScript with no dependencies, packed into a .vsix by the binary at /setup/vscode/llmgw.vsix with the serving gateway's address in it, so it needs no build, no Node and no marketplace. It registers llmgw as a language-model provider: the chat's model picker, agent mode and any extension that asks VS Code for a model get every chat model the key may use, sized and with tool and vision capabilities as the catalog says, streamed, tool calls both ways. VS Code is a tool on the account page's Connect your editor: a key, the install command, and an Open in VS Code link that hands the key to the extension's secret storage. The extension's Sign In opens the page with a state of its own; a link without it is confirmed, the gateway named, since it decides where code is sent. Tested in VS Code 1.138 against the PoC: 27 models listed, an answer from qwen2.5-0.5b-instruct, and qwen3-coder-30b calling a tool and using its result (internal/vscodeext/e2e). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
47 lines
1.7 KiB
JSON
47 lines
1.7 KiB
JSON
{
|
|
"name": "llmgw",
|
|
"publisher": "llmgw",
|
|
"displayName": "llmgw",
|
|
"description": "The models your llmgw gateway serves, in VS Code's chat and in every extension that asks VS Code for a language model.",
|
|
"version": "0.0.0",
|
|
"license": "UNLICENSED",
|
|
"engines": {
|
|
"vscode": "^1.104.0"
|
|
},
|
|
"categories": ["AI", "Chat"],
|
|
"keywords": ["llmgw", "llm", "gateway", "self-hosted", "on-premises"],
|
|
"main": "./extension.js",
|
|
"extensionKind": ["ui", "workspace"],
|
|
"activationEvents": ["onStartupFinished", "onUri"],
|
|
"capabilities": {
|
|
"untrustedWorkspaces": { "supported": true },
|
|
"virtualWorkspaces": true
|
|
},
|
|
"contributes": {
|
|
"languageModelChatProviders": [
|
|
{ "vendor": "llmgw", "displayName": "llmgw" }
|
|
],
|
|
"commands": [
|
|
{ "command": "llmgw.signIn", "title": "Sign In", "category": "llmgw" },
|
|
{ "command": "llmgw.enterKey", "title": "Enter API Key", "category": "llmgw" },
|
|
{ "command": "llmgw.signOut", "title": "Sign Out", "category": "llmgw" },
|
|
{ "command": "llmgw.refresh", "title": "Refresh Models", "category": "llmgw" }
|
|
],
|
|
"configuration": {
|
|
"title": "llmgw",
|
|
"properties": {
|
|
"llmgw.gatewayUrl": {
|
|
"type": "string",
|
|
"default": "",
|
|
"markdownDescription": "The gateway's address, such as `https://llm.example.com`: the one the people running it gave you, without `/v1`."
|
|
},
|
|
"llmgw.showModelsWithoutTools": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"markdownDescription": "Offer models whose tool calls the gateway does not vouch for. They answer in chat, but an agent needs a model that makes tool calls to read a file or run a command."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|