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