Add command to open active session in editor panel. Introduce editor view mode for displaying sessions alongside files. Update toolbar navigation for editor and sidebar modes.
220 lines
5.8 KiB
JSON
220 lines
5.8 KiB
JSON
{
|
|
"name": "openchamber",
|
|
"displayName": "OpenChamber",
|
|
"description": "AI coding assistant powered by OpenCode",
|
|
"version": "1.4.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",
|
|
"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.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)"
|
|
}
|
|
],
|
|
"submenus": [
|
|
{
|
|
"id": "openchamber.submenu",
|
|
"label": "OpenChamber"
|
|
}
|
|
],
|
|
"menus": {
|
|
"editor/context": [
|
|
{
|
|
"submenu": "openchamber.submenu",
|
|
"group": "navigation"
|
|
}
|
|
],
|
|
"editor/title": [
|
|
{
|
|
"command": "openchamber.openSidebar",
|
|
"group": "navigation@1"
|
|
}
|
|
],
|
|
"view/title": [
|
|
{
|
|
"command": "openchamber.newSession",
|
|
"when": "view == openchamber.chatView",
|
|
"group": "navigation@1"
|
|
},
|
|
{
|
|
"command": "openchamber.openActiveSessionInEditor",
|
|
"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."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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 watch:webview\"",
|
|
"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.1.19",
|
|
"adm-zip": "^0.5.16",
|
|
"jsonc-parser": "^3.3.1",
|
|
"react": "^19.1.1",
|
|
"react-dom": "^19.1.1",
|
|
"yaml": "^2.8.1"
|
|
}
|
|
}
|