Files
goodbuddy/package.json
T
2026-08-07 10:45:01 +08:00

180 lines
5.0 KiB
JSON

{
"name": "goodbuddy",
"version": "0.8.5",
"private": true,
"description": "Secure desktop AI workspace with controlled Agent Runtimes",
"desktopName": "GoodBuddy",
"homepage": "https://github.com/mesalogo/goodbuddy",
"author": {
"name": "MesaLogo"
},
"license": "UNLICENSED",
"main": "./out/main/index.js",
"type": "module",
"scripts": {
"dev": "electron-vite dev",
"start": "electron-vite preview",
"typecheck": "tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p tsconfig.web.json",
"lint": "eslint .",
"test": "vitest run",
"test:watch": "vitest",
"build": "npm run typecheck && npm run build:bundle",
"build:bundle": "electron-vite build",
"dist": "npm run build && electron-builder",
"dist:win": "npm run build && electron-builder --win nsis --x64 --arm64",
"dist:mac": "npm run build && electron-builder --mac dmg --x64 --arm64",
"dist:linux": "npm run dist:linux:x64 && npm run dist:linux:arm64",
"dist:linux:x64": "npm run build && electron-builder --linux AppImage deb --x64",
"dist:linux:arm64": "npm run build && electron-builder --linux AppImage deb --arm64",
"icons": "node build/generate-icons.mjs",
"release:package": "node build/build-release.cjs",
"portable": "node build/build-portable.cjs"
},
"build": {
"appId": "live.digiman.goodbuddy",
"productName": "GoodBuddy",
"directories": {
"buildResources": "build",
"output": "dist"
},
"artifactName": "${productName}-${version}-${os}-${arch}.${ext}",
"beforePack": "build/runtime-hooks.cjs",
"asar": true,
"compression": "maximum",
"files": [
"out/**/*",
"package.json"
],
"extraResources": [
{
"from": "resources/skills",
"to": "skills",
"filter": [
"**/*"
]
},
{
"from": "build/icon-taskbar.ico",
"to": "icon.ico"
},
{
"from": "build/icon.png",
"to": "icon.png"
},
{
"from": "build/icon-tray.png",
"to": "tray-icon.png"
},
{
"from": ".runtime-resources/${arch}",
"to": "runtimes/opencode",
"filter": [
"opencode",
"opencode.exe"
]
},
{
"from": "node_modules/opencode-ai/LICENSE",
"to": "licenses/opencode-ai-LICENSE"
},
{
"from": "node_modules/@continuedev/cli",
"to": "runtimes/continue",
"filter": [
"package.json",
"dist/cn.js",
"dist/index.js",
"dist/xhr-sync-worker.js"
]
},
{
"from": "node_modules/typescript/LICENSE.txt",
"to": "licenses/continuedev-cli-LICENSE"
}
],
"win": {
"icon": "build/icon-taskbar.ico",
"target": [
"nsis"
]
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": "always",
"createStartMenuShortcut": true,
"deleteAppDataOnUninstall": false
},
"mac": {
"icon": "build/icon.png",
"target": [
"dmg"
],
"category": "public.app-category.productivity",
"extendInfo": {
"NSMicrophoneUsageDescription": "GoodBuddy 需要访问麦克风,将语音转换为可编辑文字。"
}
},
"linux": {
"icon": "build/icon.png",
"maintainer": "MesaLogo",
"vendor": "MesaLogo",
"synopsis": "安全可控的桌面智能助手与 Agent 工作空间",
"syncDesktopName": true,
"target": [
"AppImage",
"deb"
],
"category": "Utility"
}
},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.30.0",
"@opencode-ai/sdk": "^1.18.9",
"@wecom/aibot-node-sdk": "^1.0.6",
"cross-spawn": "^7.0.6",
"dingtalk-stream": "^2.1.6-beta.1",
"echarts": "^6.1.0",
"fflate": "^0.8.3",
"html-to-text": "^10.0.0",
"json5": "^2.2.3",
"lucide-react": "^1.27.0",
"pdfjs-dist": "^6.2.108",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"react-markdown": "^10.1.0",
"remark-gfm": "^4.0.1",
"sherpa-onnx": "1.13.4",
"undici": "^7.29.0",
"yaml": "^2.9.0",
"zod": "^4.4.3"
},
"devDependencies": {
"@continuedev/cli": "1.5.47",
"@eslint/js": "^10.0.1",
"@testing-library/jest-dom": "^7.0.0",
"@testing-library/react": "^16.3.2",
"@types/cross-spawn": "^6.0.6",
"@types/html-to-text": "^9.0.4",
"@types/node": "^26.1.2",
"@types/react": "^19.2.17",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.2.0",
"electron": "^43.2.0",
"electron-builder": "^26.15.3",
"electron-vite": "^5.0.0",
"eslint": "^10.8.0",
"eslint-plugin-react-hooks": "^7.1.1",
"globals": "^17.8.0",
"jsdom": "^30.0.1",
"opencode-ai": "1.18.9",
"png-to-ico": "^3.0.2",
"pngjs": "^7.0.0",
"tar": "7.5.22",
"typescript": "^6.0.3",
"typescript-eslint": "^8.65.0",
"vite": "^7.3.6",
"vitest": "^4.1.10"
}
}