Keep thinking shortcut hint visible without layout shift Restore JSON file icons across shared file lists Use task status icons in the input status row
254 lines
7.0 KiB
JSON
254 lines
7.0 KiB
JSON
{
|
|
"name": "openchamber",
|
|
"displayName": "OpenChamber",
|
|
"description": "AI coding assistant powered by OpenCode",
|
|
"version": "1.9.8",
|
|
"publisher": "fedaykindev",
|
|
"private": true,
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/btriapitsyn/openchamber.git"
|
|
},
|
|
"qna": "https://discord.gg/ZYRSdnwwKA",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"vscode": "^1.85.0"
|
|
},
|
|
"categories": [
|
|
"Programming Languages",
|
|
"Machine Learning",
|
|
"Other"
|
|
],
|
|
"keywords": [
|
|
"ai",
|
|
"claude",
|
|
"gpt",
|
|
"agent",
|
|
"coding",
|
|
"chatgpt",
|
|
"groq",
|
|
"assistant",
|
|
"opencode",
|
|
"openchamber"
|
|
],
|
|
"icon": "assets/app-icon.png",
|
|
"main": "./dist/extension.js",
|
|
"activationEvents": [
|
|
"onCommand:openchamber.openSidebar",
|
|
"onCommand:openchamber.attachExplorerToChat",
|
|
"onView:openchamber.chatView"
|
|
],
|
|
"contributes": {
|
|
"viewsContainers": {
|
|
"activitybar": [
|
|
{
|
|
"id": "openchamber",
|
|
"title": "OpenChamber",
|
|
"icon": "assets/icon.svg"
|
|
}
|
|
]
|
|
},
|
|
"views": {
|
|
"openchamber": [
|
|
{
|
|
"type": "webview",
|
|
"id": "openchamber.chatView",
|
|
"name": "Chat"
|
|
}
|
|
]
|
|
},
|
|
"commands": [
|
|
{
|
|
"command": "openchamber.openSidebar",
|
|
"category": "OpenChamber",
|
|
"title": "Open Sidebar",
|
|
"icon": {
|
|
"light": "assets/icon.svg",
|
|
"dark": "assets/icon-titlebar.svg"
|
|
}
|
|
},
|
|
{
|
|
"command": "openchamber.focusChat",
|
|
"category": "OpenChamber",
|
|
"title": "Focus Chat"
|
|
},
|
|
{
|
|
"command": "openchamber.restartApi",
|
|
"category": "OpenChamber",
|
|
"title": "Restart API Connection"
|
|
},
|
|
{
|
|
"command": "openchamber.showOpenCodeStatus",
|
|
"category": "OpenChamber",
|
|
"title": "Show OpenCode Status"
|
|
},
|
|
{
|
|
"command": "openchamber.openAgentManager",
|
|
"category": "OpenChamber",
|
|
"title": "Open Agent Manager",
|
|
"icon": "$(circuit-board)"
|
|
},
|
|
{
|
|
"command": "openchamber.openActiveSessionInEditor",
|
|
"category": "OpenChamber",
|
|
"title": "Open Active Session in Editor",
|
|
"icon": "$(link-external)"
|
|
},
|
|
{
|
|
"command": "openchamber.openNewSessionInEditor",
|
|
"category": "OpenChamber",
|
|
"title": "Open New Session in Editor",
|
|
"icon": {
|
|
"light": "assets/icon.svg",
|
|
"dark": "assets/icon-titlebar.svg"
|
|
}
|
|
},
|
|
{
|
|
"command": "openchamber.openCurrentOrNewSessionInEditor",
|
|
"category": "OpenChamber",
|
|
"title": "Open Session in Editor",
|
|
"icon": "$(link-external)"
|
|
},
|
|
{
|
|
"command": "openchamber.addToContext",
|
|
"category": "OpenChamber",
|
|
"title": "Add to Context"
|
|
},
|
|
{
|
|
"command": "openchamber.explain",
|
|
"category": "OpenChamber",
|
|
"title": "Explain"
|
|
},
|
|
{
|
|
"command": "openchamber.improveCode",
|
|
"category": "OpenChamber",
|
|
"title": "Improve Code"
|
|
},
|
|
{
|
|
"command": "openchamber.newSession",
|
|
"category": "OpenChamber",
|
|
"title": "New Session",
|
|
"icon": "$(add)"
|
|
},
|
|
{
|
|
"command": "openchamber.showSettings",
|
|
"category": "OpenChamber",
|
|
"title": "Settings",
|
|
"icon": "$(settings-gear)"
|
|
},
|
|
{
|
|
"command": "openchamber.attachExplorerToChat",
|
|
"category": "OpenChamber",
|
|
"title": "Attach to OpenChamber Chat"
|
|
}
|
|
],
|
|
"submenus": [
|
|
{
|
|
"id": "openchamber.submenu",
|
|
"label": "OpenChamber"
|
|
}
|
|
],
|
|
"menus": {
|
|
"editor/context": [
|
|
{
|
|
"submenu": "openchamber.submenu",
|
|
"group": "navigation"
|
|
}
|
|
],
|
|
"explorer/context": [
|
|
{
|
|
"command": "openchamber.attachExplorerToChat",
|
|
"when": "resourceScheme == file && explorerResourceIsFolder == false",
|
|
"group": "navigation@50"
|
|
}
|
|
],
|
|
"editor/title": [
|
|
{
|
|
"command": "openchamber.openNewSessionInEditor",
|
|
"group": "navigation@1"
|
|
}
|
|
],
|
|
"view/title": [
|
|
{
|
|
"command": "openchamber.newSession",
|
|
"when": "view == openchamber.chatView",
|
|
"group": "navigation@1"
|
|
},
|
|
{
|
|
"command": "openchamber.openCurrentOrNewSessionInEditor",
|
|
"when": "view == openchamber.chatView",
|
|
"group": "navigation@2"
|
|
},
|
|
{
|
|
"command": "openchamber.openAgentManager",
|
|
"when": "view == openchamber.chatView",
|
|
"group": "navigation@3"
|
|
},
|
|
{
|
|
"command": "openchamber.showSettings",
|
|
"when": "view == openchamber.chatView",
|
|
"group": "navigation@4"
|
|
}
|
|
],
|
|
"openchamber.submenu": [
|
|
{
|
|
"command": "openchamber.explain"
|
|
},
|
|
{
|
|
"command": "openchamber.improveCode"
|
|
},
|
|
{
|
|
"command": "openchamber.addToContext"
|
|
}
|
|
]
|
|
},
|
|
"configuration": {
|
|
"title": "OpenChamber",
|
|
"properties": {
|
|
"openchamber.apiUrl": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "URL of an external OpenCode API server. Leave empty to auto-start a local instance."
|
|
},
|
|
"openchamber.opencodeBinary": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Optional absolute path to the opencode CLI binary. Useful if PATH lookup fails. Requires window reload or API restart to apply."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"scripts": {
|
|
"vscode:prepublish": "bun run build",
|
|
"build": "bun run build:extension && bun run build:webview",
|
|
"build:extension": "esbuild src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node --minify --main-fields=module,main",
|
|
"build:webview": "VITE_OPENCODE_URL=/api vite build",
|
|
"dev": "concurrently -n \"ext,web\" -c \"cyan,magenta\" \"bun run watch:extension\" \"bun run dev:webview\"",
|
|
"dev:webview": "vite --host localhost --port 5173 --strictPort",
|
|
"watch:extension": "esbuild src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node --watch --sourcemap --main-fields=module,main",
|
|
"watch:webview": "vite build --watch",
|
|
"type-check": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.webview.json",
|
|
"lint": "bunx eslint --ext .ts,.tsx src webview",
|
|
"package": "vsce package --no-dependencies"
|
|
},
|
|
"devDependencies": {
|
|
"@types/adm-zip": "^0.5.7",
|
|
"@types/vscode": "^1.85.0",
|
|
"@vitejs/plugin-react": "^5.0.0",
|
|
"@vscode/vsce": "^3.2.1",
|
|
"concurrently": "^9.2.1",
|
|
"esbuild": "^0.24.2",
|
|
"typescript": "~5.8.3",
|
|
"vite": "^7.1.2"
|
|
},
|
|
"dependencies": {
|
|
"@openchamber/ui": "workspace:*",
|
|
"@opencode-ai/sdk": "^1.4.25",
|
|
"adm-zip": "^0.5.16",
|
|
"jsonc-parser": "^3.3.1",
|
|
"react": "^19.1.1",
|
|
"react-dom": "^19.1.1",
|
|
"yaml": "^2.8.1"
|
|
}
|
|
}
|