Preserves session directory metadata across live updates Keeps desktop and mobile session lists in project groups Adds regression coverage for session grouping
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.12.0",
|
|
"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": "bun x 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.15.13",
|
|
"adm-zip": "^0.5.16",
|
|
"jsonc-parser": "^3.3.1",
|
|
"react": "^19.1.1",
|
|
"react-dom": "^19.1.1",
|
|
"yaml": "^2.8.1"
|
|
}
|
|
}
|