Files
qiming/qimingclaw/crates/agent-electron-client/package.json
2026-05-30 14:22:03 +08:00

422 lines
13 KiB
JSON

{
"name": "@qiming-ai/qimingclaw",
"version": "0.9.7",
"description": "启明数字员工",
"main": "dist/main/main.js",
"author": "Qiming Team",
"license": "MIT",
"homepage": "https://github.com/qiming-ai/qimingclaw",
"scripts": {
"dev": "dotenv -e .env.development -- cross-env NODE_ENV=development concurrently \"npm run dev:vite\" \"npm run dev:electron\"",
"dev:vite": "vite",
"dev:electron": "wait-on http://localhost:60173 && npm run build:main:dev && electron .",
"build:main:dev": "dotenv -e .env.development -- cross-env NODE_ENV=development tsc -p tsconfig.main.json && tsc-alias -p tsconfig.main.json",
"build:main": "dotenv -e .env.production -- cross-env NODE_ENV=production tsc -p tsconfig.main.json && tsc-alias -p tsconfig.main.json",
"build:renderer": "vite build",
"build": "dotenv -e .env.production -- cross-env NODE_ENV=production npm run build:main && npm run build:renderer",
"test": "vitest",
"test:run": "vitest run",
"test:coverage": "vitest run --coverage",
"sandbox:matrix:check": "vitest run tests/scripts/sandbox-matrix-consistency.test.ts",
"sandbox:matrix:generate": "cross-env SANDBOX_MATRIX_WRITE=1 vitest run tests/scripts/sandbox-matrix-consistency.test.ts",
"check:boundaries": "node scripts/tools/check-import-boundaries.js",
"test:integrated-node": "node scripts/tools/test-integrated-node.js",
"prepare:uv": "node scripts/prepare/prepare-uv.js",
"prepare:sign-uv": "node scripts/build/sign-uv-mac.js",
"prepare:lanproxy": "node scripts/prepare/prepare-lanproxy.js",
"prepare:node": "node scripts/prepare/prepare-node.js",
"prepare:git": "node scripts/prepare/prepare-git.js",
"prepare:monaco": "node scripts/prepare/prepare-monaco.js",
"check-ports": "node scripts/tools/check-startup-ports.js",
"check-ports:dev": "node scripts/tools/check-startup-ports.js --vite",
"prepare:mcp-proxy": "node scripts/prepare/prepare-mcp-proxy.js",
"prepare:qimingcode": "node scripts/prepare/prepare-qimingcode.js",
"prepare:sandbox-runtime": "node scripts/prepare/prepare-sandbox-runtime.js",
"build:sandbox-helper": "node scripts/prepare/build-sandbox-helper.js",
"prepare:sandbox-helper-win": "node scripts/prepare/prepare-sandbox-helper-windows.js",
"prepare:all": "npm run prepare:uv && npm run prepare:sign-uv && npm run prepare:lanproxy && npm run prepare:node && npm run prepare:git && npm run prepare:monaco && npm run prepare:mcp-proxy && npm run prepare:qimingcode && npm run prepare:sandbox-helper-win && npm run prepare:sandbox-runtime && npm run prepare:gui-server && npm run prepare:windows-mcp && npm run prepare:qiming-file-server && npm run prepare:claude-code-acp-ts",
"prepare:qiming-file-server": "node scripts/prepare/prepare-qiming-file-server.js",
"prepare:claude-code-acp-ts": "node scripts/prepare/prepare-claude-code-acp-ts.js",
"prepare:gui-server": "node scripts/prepare/prepare-gui-server.js",
"prepare:windows-mcp": "node scripts/prepare/prepare-windows-mcp.js",
"electron-rebuild": "electron-rebuild -f -w better-sqlite3",
"build:electron": "npm run prepare:monaco && npm run build && npm run prepare:all && electron-builder --config.compression=maximum",
"dist": "npm run build:electron -- --mac",
"dist:mac": "npm run build:electron -- --mac",
"dist:mac:arm64": "npm run build:electron -- --mac --arm64",
"dist:mac:x64": "npm run build:electron -- --mac --x64",
"dist:mac:unsigned": "env CSC_IDENTITY_AUTO_DISCOVERY=false APPLE_SIGNING_IDENTITY= APPLE_API_KEY= APPLE_API_KEY_ID= APPLE_ISSUER_ID= npm run build:electron -- --mac",
"dist:mac:unsigned:arm64": "env CSC_IDENTITY_AUTO_DISCOVERY=false APPLE_SIGNING_IDENTITY= APPLE_API_KEY= APPLE_API_KEY_ID= APPLE_ISSUER_ID= npm run build:electron -- --mac --arm64",
"dist:mac:unsigned:x64": "env CSC_IDENTITY_AUTO_DISCOVERY=false APPLE_SIGNING_IDENTITY= APPLE_API_KEY= APPLE_API_KEY_ID= APPLE_ISSUER_ID= npm run build:electron -- --mac --x64",
"dist:win": "npm run build:electron -- --win",
"dist:win:x64": "npm run build:electron -- --win --x64",
"dist:win:arm64": "npm run build:electron -- --win --arm64",
"dist:linux": "npm run build:electron -- --linux",
"dist:linux:x64": "npm run build:electron -- --linux --x64",
"dist:linux:arm64": "npm run build:electron -- --linux --arm64",
"dist:unsigned:local": "node scripts/build/dist-current-platform.js",
"clean:electron-cache": "node scripts/tools/clean-electron-cache.js",
"clean:release": "rm -rf release",
"verify:sign": "node scripts/build/verify-sign.js",
"verify:sign:win": "node scripts/build/verify-sign-win.js",
"lint": "eslint src",
"lint:fix": "eslint src --fix"
},
"dependencies": {
"@agentclientprotocol/sdk": "^0.14.1",
"@ant-design/icons": "^5.6.1",
"@anthropic-ai/sdk": "^0.39.0",
"@modelcontextprotocol/sdk": "^1.27.1",
"@monaco-editor/react": "^4.7.0",
"@uiw/react-json-view": "2.0.0-alpha.42",
"antd": "^5.29.3",
"auto-launch": "^5.0.6",
"better-sqlite3": "^12.6.2",
"chokidar": "^5.0.0",
"dayjs": "^1.11.19",
"dotenv": "^17.3.1",
"electron-log": "^5.2.4",
"electron-updater": "^6.8.3",
"monaco-editor": "^0.53.0",
"node-cron": "^4.2.1",
"node-machine-id": "^1.1.12",
"qrcode.react": "^4.2.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-syntax-highlighter": "^16.1.1",
"sqlite-vec": "^0.1.7-alpha.2",
"zod": "^3.25.0"
},
"devDependencies": {
"7zip-bin": "^5.2.0",
"@electron/rebuild": "^4.0.3",
"@eslint/js": "^9.39.2",
"@types/better-sqlite3": "^7.6.12",
"@types/node": "^22.19.15",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^4.3.4",
"@vitest/coverage-v8": "^2.1.8",
"agent-gui-server": "workspace:*",
"concurrently": "^9.1.2",
"cross-env": "^7.0.3",
"dotenv-cli": "^11.0.0",
"electron": "^40.0.0",
"electron-builder": "^25.1.8",
"eslint": "^9.39.2",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.5.0",
"qiming-mcp-stdio-proxy": "workspace:*",
"sharp": "^0.34.5",
"tsc-alias": "^1.8.16",
"typescript": "^5.7.3",
"typescript-eslint": "^8.55.0",
"vite": "^6.0.7",
"vitest": "^2.1.8",
"wait-on": "^8.0.2"
},
"bundledSources": {
"qiming-file-server": {
"url": "https://github.com/qiming-ai/qiming-file-server.git",
"branch": "main"
},
"claude-code-acp-ts": {
"url": "https://github.com/qiming-ai/claude-code-acp-ts.git",
"branch": "feat/claude-code-acp-ts"
}
},
"build": {
"appId": "com.qiming.qimingclaw",
"productName": "启明数字员工",
"afterSign": "scripts/build/after-sign.js",
"electronLanguages": [
"en",
"en-US",
"zh_CN",
"zh-CN",
"zh_TW",
"zh-TW"
],
"directories": {
"output": "release/${version}",
"buildResources": "build"
},
"files": [
{
"from": "dist",
"to": "dist",
"filter": [
"**/*",
"!**/*.map"
]
},
"package.json",
{
"from": "public",
"to": "public",
"filter": [
"**/*",
"!monaco/**"
]
}
],
"extraResources": [
{
"from": "src/shared/locales",
"to": "locales",
"filter": [
"**/*.json"
]
},
{
"from": "node_modules/better-sqlite3/build/Release",
"to": "better-sqlite3",
"filter": [
"*.node"
]
},
{
"from": "resources/uv/bin",
"to": "uv/bin",
"filter": [
"**/*"
]
},
{
"from": "resources/lanproxy",
"to": "lanproxy",
"filter": [
"**/*"
]
},
{
"from": "public/icon.png",
"to": "icon.png"
},
{
"from": "public/icon-dock.png",
"to": "icon-dock.png"
},
{
"from": "public/icon.ico",
"to": "icon.ico"
},
{
"from": "public/tray",
"to": "tray",
"filter": [
"**/*"
]
},
{
"from": "resources/node",
"to": "node",
"filter": [
"**/*",
"!.cache",
"!.cache/**"
]
},
{
"from": "resources/qiming-mcp-stdio-proxy",
"to": "qiming-mcp-stdio-proxy",
"filter": [
"**/*"
]
},
{
"from": "resources/sandboxed-bash-mcp",
"to": "sandboxed-bash-mcp",
"filter": [
"**/*.mjs"
]
},
{
"from": "resources/sandboxed-fs-mcp",
"to": "sandboxed-fs-mcp",
"filter": [
"**/*.mjs"
]
},
{
"from": "resources/sandbox-runtime",
"to": "sandbox-runtime",
"filter": [
"**/*"
]
},
{
"from": "resources/agent-gui-server",
"to": "agent-gui-server",
"filter": [
"**/*"
]
},
{
"from": "resources/qimingcode",
"to": "qimingcode",
"filter": [
"**/*",
"!*.cache",
"!.cache/**"
]
},
{
"from": "resources/qiming-file-server",
"to": "qiming-file-server",
"filter": [
"**/*"
]
},
{
"from": "resources/claude-code-acp-ts",
"to": "claude-code-acp-ts",
"filter": [
"**/*"
]
}
],
"publish": [
{
"provider": "github",
"owner": "qiming-ai",
"repo": "qimingclaw"
}
],
"mac": {
"gatekeeperAssess": false,
"category": "public.app-category.productivity",
"target": [
"dmg",
"zip"
],
"icon": "public/icon.icns",
"entitlements": "build/entitlements.mac.plist",
"entitlementsInherit": "build/entitlements.mac.plist",
"hardenedRuntime": true,
"extendInfo": {
"CFBundleIdentifier": "com.qiming.agent",
"CFBundleName": "启明数字员工",
"CFBundleDisplayName": "启明数字员工",
"NSDesktopFolderUsageDescription": "需要访问桌面文件夹以支持文件操作",
"NSDocumentsFolderUsageDescription": "需要访问文档文件夹以支持文件操作",
"NSDownloadsFolderUsageDescription": "需要访问下载文件夹以支持文件操作"
}
},
"dmg": {
"contents": [
{
"x": 130,
"y": 220
},
{
"x": 410,
"y": 220,
"type": "link",
"path": "/Applications"
}
],
"window": {
"width": 540,
"height": 380
}
},
"mas": {
"category": "public.app-category.productivity",
"entitlements": "build/entitlements.mas.plist",
"entitlementsInherit": "build/entitlements.mas.plist",
"hardenedRuntime": true
},
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
},
{
"target": "msi",
"arch": [
"x64"
]
}
],
"icon": "public/icon.ico",
"extraResources": [
{
"from": "resources/git",
"to": "git",
"filter": [
"**/*"
]
},
{
"from": "resources/windows-mcp",
"to": "windows-mcp",
"filter": [
"**/*"
]
},
{
"from": "resources/sandbox-helper",
"to": "sandbox-helper",
"filter": [
"**/*.exe"
]
},
{
"from": "resources/sandboxed-bash-mcp",
"to": "sandboxed-bash-mcp",
"filter": [
"**/*.mjs"
]
},
{
"from": "resources/sandboxed-fs-mcp",
"to": "sandboxed-fs-mcp",
"filter": [
"**/*.mjs"
]
}
]
},
"msi": {
"perMachine": false,
"artifactName": "${productName}-${version}-unsigned.${ext}"
},
"nsis": {
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"deleteAppDataOnUninstall": false,
"artifactName": "${productName}-Setup-${version}-unsigned.${ext}"
},
"linux": {
"target": [
"AppImage",
"deb",
"rpm"
],
"icon": "public/icon.png",
"category": "Productivity",
"maintainer": "Qiming Team"
},
"deb": {
"packageName": "qimingclaw",
"artifactName": "${productName}-${version}-${arch}.${ext}",
"afterInstall": "scripts/linux/postinst.sh"
},
"rpm": {
"packageName": "qimingclaw",
"artifactName": "${productName}-${version}-${arch}.${ext}",
"afterInstall": "scripts/linux/postinst.sh"
},
"asar": true,
"asarUnpack": [
"node_modules/better-sqlite3/build/Release/*.node"
]
}
}