Files
openchamber/packages/vscode/package.json
T
Dave OteroandBohdan Triapitsyn becd240168 Add Windows Electron desktop support (#1093)
* fix: make upstream sync actions target the selected remote

Ensure fetch and pull actually honor upstream selection so fork maintenance works from the Git sidebar, and surface upstream branch status alongside the primary origin-tracking indicators.

* feat: add Windows Electron desktop foundation

* fix(electron): stabilize Windows desktop packaging

* fix(electron): stabilize Windows desktop chrome

Use native Windows titlebar behavior with an Alt-accessible hidden menu, and harden Windows dev command launching so the desktop app follows platform conventions.

* fix(electron): stabilize Windows dev startup

* fix(electron): clarify desktop artifact names

* fix(electron): harden Windows desktop release and launch

* fix(electron): address Windows release review

* fix(electron): point updater and release links to org repo

* Fix Windows settings persistence fallback

* Fix Windows Electron dev startup

* Add Windows Electron window controls

* Fix Windows Electron install and opencode launch

* fix: resolve git status for repositories without upstream

Fixes repository detection stuck on Checking repository
Handles git status when no upstream is configured
Adds regression coverage for git status loading

* Add Windows app menu button

* fix: preserve file editor line endings

* ci: add desktop release smoke workflow

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-05-26 18:13:59 +03:00

254 lines
7.0 KiB
JSON

{
"name": "openchamber",
"displayName": "OpenChamber",
"description": "AI coding assistant powered by OpenCode",
"version": "1.11.6",
"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.10",
"adm-zip": "^0.5.16",
"jsonc-parser": "^3.3.1",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"yaml": "^2.8.1"
}
}