{ "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" ] } }