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