qwen-code/packages/vscode-ide-companion/package.json
yiliang114 c10aa7ebe5 feat(vscode-ide-companion/layout): add sidebar view and simplify chat positioning
All chat positions (sidebar, editor tab, panel, secondary sidebar) are now
available simultaneously. Remove the old chat.location configuration and
setChatLocation commands. Add focusChat, newConversation, and showLogs commands.
Refactor ChatWebviewViewProvider to use lazy factory pattern and move webview
files into providers/ subdirectory.
2026-03-07 00:30:40 +08:00

239 lines
5.9 KiB
JSON

{
"name": "qwen-code-vscode-ide-companion",
"displayName": "Qwen Code Companion",
"description": "Enable Qwen Code with direct access to your VS Code workspace.",
"version": "0.12.0",
"publisher": "qwenlm",
"icon": "assets/icon.png",
"repository": {
"type": "git",
"url": "https://github.com/QwenLM/qwen-code.git",
"directory": "packages/vscode-ide-companion"
},
"engines": {
"vscode": "^1.85.0"
},
"license": "LICENSE",
"preview": true,
"categories": [
"AI"
],
"keywords": [
"qwen-code",
"qwen code",
"qwen",
"qwen code",
"cli",
"ide integration",
"ide companion"
],
"activationEvents": [
"onStartupFinished",
"onView:qwenCode.chatView.panel",
"onView:qwenCode.chatView.secondary",
"onView:qwenCode.chatView.sidebar",
"onCommand:qwen-code.openChat",
"onCommand:qwen-code.focusChat",
"onCommand:qwen-code.newConversation",
"onCommand:qwen-code.showLogs"
],
"contributes": {
"configuration": {
"title": "Qwen Code Companion",
"properties": {}
},
"viewsContainers": {
"activitybar": [
{
"id": "qwenCodeSidebar",
"title": "Qwen Code",
"icon": "assets/sidebar-icon.svg"
}
],
"panel": [
{
"id": "qwenCodePanel",
"title": "Qwen Code",
"icon": "assets/icon.png"
}
],
"secondarySidebar": [
{
"id": "qwenCodeSecondary",
"title": "Qwen Code",
"icon": "assets/icon.png"
}
]
},
"views": {
"qwenCodeSidebar": [
{
"type": "webview",
"id": "qwenCode.chatView.sidebar",
"name": "Qwen Code"
}
],
"qwenCodePanel": [
{
"id": "qwenCode.chatView.panel",
"name": "Qwen Code",
"icon": "assets/icon.png"
}
],
"qwenCodeSecondary": [
{
"id": "qwenCode.chatView.secondary",
"name": "Qwen Code",
"icon": "assets/icon.png"
}
]
},
"languages": [
{
"id": "qwen-diff-editable"
}
],
"commands": [
{
"command": "qwen.diff.accept",
"title": "Qwen Code: Accept Current Diff",
"icon": "$(check)"
},
{
"command": "qwen.diff.cancel",
"title": "Qwen Code: Close Diff Editor",
"icon": "$(close)"
},
{
"command": "qwen-code.runQwenCode",
"title": "Qwen Code: Run"
},
{
"command": "qwen-code.showNotices",
"title": "Qwen Code: View Third-Party Notices"
},
{
"command": "qwen-code.openChat",
"title": "Qwen Code: Open",
"icon": "./assets/icon.png"
},
{
"command": "qwen-code.login",
"title": "Qwen Code: Login"
},
{
"command": "qwen-code.focusChat",
"title": "Qwen Code: Focus Chat Input"
},
{
"command": "qwen-code.newConversation",
"title": "Qwen Code: New Conversation"
},
{
"command": "qwen-code.showLogs",
"title": "Qwen Code: Show Logs"
}
],
"menus": {
"commandPalette": [
{
"command": "qwen.diff.accept",
"when": "qwen.diff.isVisible"
},
{
"command": "qwen.diff.cancel",
"when": "qwen.diff.isVisible"
},
{
"command": "qwen-code.login",
"when": "false"
}
],
"editor/title": [
{
"command": "qwen.diff.accept",
"when": "qwen.diff.isVisible",
"group": "navigation"
},
{
"command": "qwen.diff.cancel",
"when": "qwen.diff.isVisible",
"group": "navigation"
},
{
"command": "qwen-code.openChat",
"group": "navigation"
}
]
},
"keybindings": [
{
"command": "qwen.diff.accept",
"key": "ctrl+s",
"when": "qwen.diff.isVisible"
},
{
"command": "qwen.diff.accept",
"key": "cmd+s",
"when": "qwen.diff.isVisible"
},
{
"command": "qwen-code.focusChat",
"key": "ctrl+shift+l",
"mac": "cmd+shift+l"
}
]
},
"main": "./dist/extension.cjs",
"type": "module",
"scripts": {
"prepackage": "node ./scripts/prepackage.js",
"build": "npm run build:dev",
"build:dev": "npm run check-types && npm run lint && node esbuild.js",
"build:prod": "node esbuild.js --production",
"generate:notices": "node ./scripts/generate-notices.js",
"prepare": "npm run generate:notices",
"check-types": "tsc --noEmit",
"lint": "eslint src",
"watch": "npm-run-all2 -p watch:*",
"watch:esbuild": "node esbuild.js --watch",
"watch:tsc": "tsc --noEmit --watch --project tsconfig.json",
"package": "vsce package --no-dependencies",
"test": "vitest run",
"test:ci": "vitest run --coverage",
"validate:notices": "node ./scripts/validate-notices.js"
},
"devDependencies": {
"@types/cors": "^2.8.19",
"@types/express": "^5.0.3",
"@types/markdown-it": "^14.1.2",
"@types/node": "20.x",
"@types/react": "^19.2.10",
"@types/react-dom": "^19.2.3",
"@types/semver": "^7.7.1",
"@types/vscode": "^1.85.0",
"@typescript-eslint/eslint-plugin": "^8.31.1",
"@typescript-eslint/parser": "^8.31.1",
"@vscode/vsce": "^3.6.0",
"autoprefixer": "^10.4.22",
"esbuild": "^0.25.3",
"eslint": "^9.25.1",
"eslint-plugin-react-hooks": "^5.2.0",
"npm-run-all2": "^8.0.2",
"postcss": "^8.5.6",
"tailwindcss": "^3.4.18",
"typescript": "^5.8.3",
"vitest": "^3.2.4"
},
"dependencies": {
"@qwen-code/webui": "*",
"@modelcontextprotocol/sdk": "^1.25.1",
"cors": "^2.8.5",
"express": "^5.1.0",
"markdown-it": "^14.1.0",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"semver": "^7.7.2",
"zod": "^3.25.76"
}
}