{
"name": "opendesk",
"version": "0.3.10",
"description": "An all-in-one ai studio for productivity scenarios",
"license": "MulanPSL-2.0",
"author": "uv0xab",
"type": "module",
"main": "./dist/main/main.js",
"private": true,
"engines": {
"node": ">=22.19.0"
},
"scripts": {
"start": "run-script-os",
"start:win32": "npm run build:plugins && npm run build-sandbox:windows && chcp 65001 && electron-vite dev",
"start:darwin": "npm run build:plugins && npm run build-sandbox:darwin && node scripts/build-darwin-speech-helper.cjs && electron-vite dev",
"start:linux": "npm run build:plugins && npm run build-sandbox:linux && electron-vite dev -- --no-sandbox",
"start:linux:nogpu": "electron-vite dev -- --no-sandbox --disable-gpu",
"preview": "run-script-os",
"preview:win32": "npm run build && chcp 65001 && electron-vite preview --skipBuild",
"preview:darwin": "npm run build && npm run build-sandbox:darwin && node scripts/build-darwin-speech-helper.cjs && electron-vite preview --skipBuild",
"preview:linux": "npm run build && electron-vite preview --skipBuild -- --no-sandbox",
"build": "npm run typecheck && run-script-os",
"build:win32": "npm run build:plugins && npm run build-sandbox:windows && electron-vite build",
"build:default": "npm run build:plugins && npm run build-sandbox:windows && npm run build-sandbox:linux && npm run build-sandbox:darwin && electron-vite build",
"build-sandbox:windows": "node scripts/build-windows-sandbox.cjs",
"build-sandbox:linux": "node scripts/build-linux-sandbox.cjs",
"build-sandbox:darwin": "node scripts/build-darwin-sandbox.cjs",
"build:plugin-sdk": "npm --prefix packages/plugin-sdk run build",
"build:plugins": "npm run build:plugin-sdk && tsx scripts/build-builtin-plugins.ts",
"generate:wix-assets": "node scripts/generate-wix-installer-assets.mjs",
"stage:ohos-office": "node scripts/stage-opendesk-office-ohos.cjs",
"package": "run-script-os",
"package:win32": "npm run build && electron-forge package --platform=win32",
"package:darwin": "npm run build && npm run build-sandbox:darwin && node scripts/build-darwin-speech-helper.cjs && electron-forge package --platform=darwin",
"package:linux": "npm run build && electron-forge package --platform=linux",
"make": "run-script-os",
"make:wix-bootstrapper": "node scripts/build-wix-bootstrapper.mjs",
"make:win32": "npm run build && electron-forge make --platform=win32 && npm run make:wix-bootstrapper",
"make:win32:arm64": "node scripts/make-arm64-setup.mjs",
"make:darwin": "npm run build && npm run build-sandbox:darwin && node scripts/build-darwin-speech-helper.cjs && electron-forge make --platform=darwin",
"make:linux": "npm run build && electron-forge make --platform=linux",
"make:rpm": "npm run build && electron-forge make --platform=linux --targets=@electron-forge/maker-rpm",
"make:deb": "npm run build && electron-forge make --platform=linux --targets=@electron-forge/maker-deb",
"build-cli": "npm run typecheck && npm run build:plugins && tsx esbuild.config.ts",
"build-cli-bun": "npm run build:plugins && bun build --compile --minify-whitespace --sourcemap src/main/cli.ts --outfile dist/cli/opendesk-bun --external node-screenshots --external esbuild",
"cli": "npm run build-cli && node --no-warnings --enable-source-maps dist/cli/opendesk-debug",
"postinstall": "node scripts/setup-native-modules.cjs",
"test": "node --experimental-vm-modules --disable-warning=ExperimentalWarning node_modules/jest/bin/jest.js",
"test:unit": "node --experimental-vm-modules --disable-warning=ExperimentalWarning node_modules/jest/bin/jest.js --selectProjects unit",
"test:search": "node --experimental-vm-modules --disable-warning=ExperimentalWarning node_modules/jest/bin/jest.js --selectProjects search",
"test:node": "tsx --test --import ./src/tests/test-env.ts \"src/tests/ut/node/**/*.test.js\" \"src/tests/ut/node/**/*.test.ts\"",
"test:workflow": "tsx --test --import ./src/tests/test-env.ts \"src/tests/ut/node/workflow/**/*.test.ts\"",
"test:acp": "node scripts/acp-smoke-test.mjs",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write .",
"format:check": "prettier --check .",
"check:architecture": "node scripts/check-architecture.cjs",
"check:docs": "tsx scripts/docs-freshness/docs-freshness.ts",
"changelog": "node scripts/collect-changelog.js",
"version": "node scripts/sync-version.mjs",
"prepare": "husky",
"typecheck": "node scripts/run-typecheck.cjs"
},
"lint-staged": {
"*.{js,ts,mjs,cjs,jsx,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md,css,scss,yaml,yml,html}": [
"prettier --write"
]
},
"devDependencies": {
"@bitclub.ai/opendesk-office": "0.3.4",
"@electron-forge/cli": "^7.10.2",
"@electron-forge/maker-deb": "^7.10.2",
"@electron-forge/maker-dmg": "^7.10.2",
"@electron-forge/maker-rpm": "^7.10.2",
"@electron-forge/maker-wix": "^7.10.2",
"@electron-forge/maker-zip": "^7.10.2",
"@electron-forge/plugin-auto-unpack-natives": "^7.10.2",
"@electron-forge/plugin-fuses": "^7.10.2",
"@electron/asar": "^3.4.1",
"@electron/fuses": "^1.8.0",
"@eslint/js": "^9.39.2",
"@fortawesome/fontawesome-free": "^7.3.1",
"@playwright/test": "^1.61.1",
"@tailwindcss/postcss": "^4.1.18",
"@tailwindcss/vite": "^4.1.18",
"@types/adm-zip": "^0.5.7",
"@types/better-sqlite3": "^7.6.13",
"@types/diff": "^7.0.2",
"@types/jest": "^30.0.0",
"@types/node": "^26.6.4",
"@types/picomatch": "^4.0.3",
"@types/qrcode-terminal": "^0.12.2",
"@types/shell-quote": "^1.7.5",
"@types/string-template": "^1.0.7",
"@types/strip-ansi": "^3.0.0",
"@types/turndown": "^5.0.6",
"@types/word-extractor": "^1.0.6",
"@types/ws": "^8.18.1",
"@types/xml2js": "^0.4.14",
"@yaireo/tagify": "^4.31.3",
"ace-builds": "1.44.0",
"alpinejs": "^3.15.4",
"autoprefixer": "^10.4.23",
"dompurify": "^3.4.14",
"electron": "^39.2.6",
"electron-reload": "^2.0.0-alpha.1",
"electron-vite": "^5.0.0",
"electron-windows-msix": "^2.0.4",
"esbuild": "^0.27.3",
"eslint": "^9.39.2",
"globals": "^16.5.0",
"husky": "^9.1.7",
"jest": "^30.3.0",
"lint-staged": "^16.4.0",
"lxgw-wenkai-screen-webfont": "^1.7.0",
"mermaid": "^11.17.2",
"node-gyp": "^12.2.0",
"postcss": "^8.5.6",
"prettier": "^3.8.1",
"react-devtools-core": "^6.1.5",
"run-script-os": "^1.1.6",
"source-map": "^0.7.6",
"sweetalert2": "^11.15.10",
"tailwindcss": "^4.1.18",
"tinymce": "^7.0.0",
"tinymce-i18n": "^26.1.12",
"ts-jest": "^29.4.9",
"ts-node": "^10.9.2",
"tsx": "^4.21.0",
"typescript": "6.0.3",
"typescript-eslint": "^8.57.2",
"vite": "^7.3.1"
},
"dependencies": {
"@a2a-js/sdk": "^0.3.7",
"@a2ui/lit": "^0.8.0",
"@agentclientprotocol/sdk": "1.3.0",
"@bitclub.ai/opendesk-app-sdk": "file:packages/app-sdk",
"@bitclub.ai/opendesk-plugin-sdk": "file:packages/plugin-sdk",
"@bitclub.ai/opendesk-server-sdk": "^0.0.4",
"@earendil-works/pi-tui": "^0.80.3",
"@electron-toolkit/utils": "^4.0.0",
"@hono/node-server": "^2.0.3",
"@kenhkl/agent-gate": "0.7.2",
"@kenhkl/agent-moss": "0.16.6",
"@langfuse/otel": "^5.9.1",
"@langfuse/tracing": "^5.9.1",
"@modelcontextprotocol/sdk": "^1.26.0",
"@mozilla/readability": "^0.6.0",
"@opentelemetry/api": "^1.9.1",
"@opentelemetry/context-async-hooks": "^2.9.0",
"@opentelemetry/core": "^2.9.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.220.0",
"@opentelemetry/otlp-exporter-base": "^0.220.0",
"@opentelemetry/resources": "^2.9.0",
"@opentelemetry/sdk-trace-base": "^2.9.0",
"@opentelemetry/sdk-trace-node": "^2.9.0",
"@opentelemetry/semantic-conventions": "^1.43.0",
"@pdf-lib/fontkit": "^1.1.1",
"@sharp9/ofdjs": "^0.1.0",
"@xmldom/xmldom": "^0.9.8",
"acorn": "8.16.0",
"adm-zip": "^0.5.16",
"agentkeepalive": "^4.2.1",
"ansi-to-html": "^0.7.2",
"async-mutex": "^0.5.0",
"chalk": "^5.6.2",
"chardet": "^2.1.1",
"commander": "^14.0.3",
"croner": "^10.0.1",
"crypto-js": "^4.2.0",
"dhash": "^0.0.4",
"diff": "^8.0.3",
"dotenv": "^17.3.1",
"fast-glob": "^3.3.3",
"file-type": "^16.5.4",
"form-data-encoder": "1.7.2",
"formdata-node": "^4.3.2",
"highlight.js": "^11.11.1",
"hnsw": "^1.1.1",
"hono": "^4.12.21",
"iconv-lite": "^0.7.2",
"jieba-wasm": "^2.4.0",
"jimp": "^1.6.1",
"jsonrepair": "^3.13.2",
"katex": "^0.16.27",
"linkedom": "^0.18.12",
"llm-chunk": "0.0.1",
"mailparser": "^3.9.1",
"marked": "^17.0.1",
"marked-highlight": "^2.2.3",
"marked-katex-extension": "^5.1.12",
"nedb": "^1.8.0",
"nedb-promises": "^6.2.3",
"node-imap": "^0.9.6",
"node-pop3": "^0.11.0",
"node-screenshots": "^0.2.1",
"node-sqlite3-wasm": "^0.8.55",
"nodemailer": "^8.0.1",
"officeparser": "^5.2.2",
"openai": "^6.10.0",
"p-map": "^4.0.0",
"p-queue": "^9.0.1",
"pdf-lib": "^1.17.1",
"pdfkit": "^0.17.2",
"picomatch": "^4.0.4",
"pixelmatch": "^7.2.0",
"proper-lockfile": "^4.1.2",
"qrcode": "^1.5.4",
"qrcode-terminal": "^0.12.0",
"sharp": "^0.34.5",
"shell-quote": "^1.8.4",
"ssim.js": "^3.5.0",
"string-template": "^1.0.0",
"strip-ansi": "^7.2.0",
"tar": "^7.5.16",
"term-size": "^3.0.2",
"turndown": "^7.2.2",
"unpdf": "^1.4.0",
"vectra": "^0.11.1",
"winston": "^3.19.0",
"winston-transport": "^4.9.0",
"word-extractor": "^1.0.4",
"ws": "^8.20.0",
"xlsx": "^0.18.5",
"xml2js": "^0.6.2",
"yaml": "^2.8.2",
"yauzl": "^2.10.0",
"zod": "^4.2.1"
},
"overrides": {
"@kenhkl/agent-gate": {
"better-sqlite3": "$better-sqlite3"
},
"@kenhkl/agent-moss": {
"better-sqlite3": "$better-sqlite3"
},
"@sharp9/ofdjs": {
"@xmldom/xmldom": "$@xmldom/xmldom"
},
"import-in-the-middle": "3.2.0"
},
"optionalDependencies": {
"@node-rs/jieba": "^2.0.1",
"better-sqlite3": "^13.0.3",
"search-index": "^6.0.1",
"sqlite-vec": "^0.1.7-alpha.2"
},
"allowScripts": {
"@bitdisaster/exe-icon-extractor": true,
"better-sqlite3": true,
"canvas": true,
"classic-level": true,
"electron": true,
"esbuild": true,
"fs-xattr": true,
"fsevents": true,
"koffi": true,
"macos-alias": true,
"node-pty": true,
"sharp": true,
"unrs-resolver": true
}
}