Files
openchamber/packages/vscode/package.json
T
Bohdan Triapitsyn 18c5b4c7b5 feat: add multi-project support (#110)
* feat: Implement project management store with project path validation and synchronization

- Added `useProjectsStore` for managing projects, including adding, removing, renaming, and validating project paths.
- Implemented persistence for projects and active project ID using safe storage.
- Introduced synchronization from desktop settings to keep project data consistent.
- Enhanced session store to manage sessions by directory and added new methods for session management.
- Updated todo store to fetch session todos based on the directory context.
- Refactored server code to validate and resolve project directories for various API endpoints.
- Added project entry validation and sanitization to ensure data integrity.

* feat(settings): migrate legacy project settings and update settings loading logic

* feat: enhance project management with directory-aware settings and improved agent/command source handling

* feat: enhance session and project management with directory-aware settings and improved configuration refresh logic

* feat: enhance project management with worktree manager integration and project directory resolution

* feat: enhance agent groups store with project directory resolution and loading logic

* feat: add heartbeat management and global wrapping for SSE blocks in agent and chat providers

* feat: refactor command and project handling in useCommandsStore

- Replaced useDirectoryStore with useProjectsStore to manage project paths.
- Introduced getRequestDirectory function to determine the active project directory.
- Updated command fetching to respect project-level scoping.
- Enhanced error handling and logging for command configuration fetching.
- Improved command configuration saving and updating to utilize project directory context.

feat: enhance project path normalization in useProjectsStore

- Added resolveTildePath function to expand paths starting with ~.
- Updated normalizeProjectPath to utilize home directory for path expansion.

fix: update permission handling in useSessionStore

- Changed Permission type to PermissionRequest for clarity.
- Updated respondToPermission method to use requestId instead of permissionId.

refactor: improve permission utilities

- Introduced types for PermissionAction and PermissionRule.
- Enhanced getAgentDefinition and resolveConfigStore functions for better type safety.
- Added resolvePermissionAction to streamline permission resolution logic.

feat: add agent configuration retrieval endpoint

- Implemented new API endpoint to fetch agent configuration based on project directory.
- Enhanced getAgentPermissionSource to prioritize project-level permissions.

chore: update SDK version in package.json files

- Bumped @opencode-ai/sdk version to ^1.1.1 across all relevant package.json files.

refactor: streamline bridge message handling

- Updated handleBridgeMessage to accept directory parameter for agent and command requests.
- Improved local API request handling to extract directory from query parameters and headers.

feat: enhance project configuration management

- Added functions to retrieve and merge project configuration paths.
- Improved handling of existing project configuration files for agents and commands.

* feat: enhance VSCode integration and session management

- Added support for a sticky sidebar header background in light and dark themes.
- Introduced functions to read VSCode workspace directory and check if running in VSCode.
- Implemented detailed logging for session loading and creation processes.
- Enhanced session filtering based on directory structure and canonical paths.
- Added a new method to reorder projects and prevent modifications in VSCode workspace.
- Improved error handling and logging for app initialization and markdown file parsing.
- Updated API checks and health checks to ensure readiness before proceeding.
- Refactored code for better readability and maintainability across various modules.

* feat: improve agent and branch selection logic, enhance session management, and update multi-run creation response

* feat: add worktree management actions in agent group detail and sidebar, including delete and keep only options

* fix(ui): share IME guard and cover multi-run

* fix(session): reduce maximum visible sessions in group from 7 to 5
2026-01-06 21:31:04 +02:00

207 lines
5.4 KiB
JSON

{
"name": "openchamber",
"displayName": "OpenChamber",
"description": "AI coding assistant powered by OpenCode",
"version": "1.4.3",
"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.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.openAgentManager",
"when": "view == openchamber.chatView",
"group": "navigation@2"
},
{
"command": "openchamber.showSettings",
"when": "view == openchamber.chatView",
"group": "navigation@3"
}
],
"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/vscode": "^1.85.0",
"@vitejs/plugin-react": "^5.0.0",
"concurrently": "^9.2.1",
"esbuild": "^0.24.2",
"typescript": "~5.8.3",
"vite": "^7.1.2",
"@vscode/vsce": "^3.2.1"
},
"dependencies": {
"@openchamber/ui": "workspace:*",
"@opencode-ai/sdk": "^1.1.1",
"jsonc-parser": "^3.3.1",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"yaml": "^2.8.1"
}
}