422 lines
13 KiB
JSON
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"
|
|
]
|
|
}
|
|
}
|