{ "name": "pi-desktop", "version": "0.5.7", "description": "pi Desktop - 桌面端 AI Agent GUI", "main": "./out/main/index.js", "author": "pi-desktop", "license": "MIT", "type": "module", "engines": { "node": ">=22.19.0" }, "scripts": { "sync:fonts": "node scripts/sync-geist-mono-font.mjs", "dev": "npm run sync:fonts && electron-vite dev", "dev:alert-trace": "set PI_ALERT_TRACE=1&& set PI_AUDIO_TRACE=1&& electron-vite dev", "build": "npm run sync:fonts && electron-vite build", "preview": "electron-vite preview", "start": "electron-vite preview", "test:scripts": "node scripts/run-contract-tests.mjs", "test:unit": "vitest run", "test:unit:watch": "vitest", "typecheck": "tsc -p tsconfig.web.json --noEmit && tsc -p tsconfig.node.json --noEmit", "lint": "eslint .", "package": "npm run icon:export && electron-vite build && electron-builder", "icon:export": "node scripts/export-app-icon.mjs", "docs:adapters": "node scripts/generate-adapter-readme-table.mjs", "test:e2e": "playwright test", "test:e2e:install": "playwright install chromium", "package:win": "npm run icon:export && electron-vite build && electron-builder --win", "postinstall": "node scripts/sync-geist-mono-font.mjs && electron-builder install-app-deps && electron-vite build", "rebuild:native": "npx @electron/rebuild -f -w better-sqlite3" }, "dependencies": { "@earendil-works/pi-coding-agent": "0.83.0", "@fluentui/react-icons": "2.0.334", "@hugeicons/core-free-icons": "4.2.3", "@hugeicons/react": "1.1.9", "@phosphor-icons/react": "2.1.10", "@radix-ui/react-switch": "^1.1.3", "better-sqlite3": "^12.11.1", "clsx": "^2.1.1", "dompurify": "^3.4.11", "electron-log": "^5.2.0", "electron-store": "^10.0.0", "fix-path": "^4.0.0", "i18next": "^24.2.0", "iconoir-react": "7.11.1", "katex": "^0.17.0", "lucide-react": "^0.469.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-i18next": "^15.4.0", "react-markdown": "^9.0.1", "rehype-katex": "^7.0.1", "remark-breaks": "^4.0.0", "remark-gfm": "^4.0.1", "remark-math": "^6.0.0", "shell-env": "^4.0.3", "sonner": "^1.7.1", "tailwind-merge": "^2.6.0", "zod": "^3.24.1", "zustand": "^5.0.14" }, "devDependencies": { "@electron-toolkit/utils": "^3.0.0", "@playwright/test": "^1.49.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", "@types/dompurify": "^3.0.5", "@types/node": "^22.20.0", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", "@vitejs/plugin-react": "^5.2.0", "autoprefixer": "^10.4.20", "electron": "^43.0.0", "electron-builder": "^26.15.3", "electron-vite": "^6.0.0-beta.1", "eslint": "^9.17.0", "eslint-plugin-react-hooks": "^5.1.0", "geist": "^1.7.2", "jsdom": "^25.0.1", "postcss": "^8.4.49", "sharp": "^0.35.2", "shiki": "^1.24.4", "tailwindcss": "^3.4.17", "typescript": "5.7", "typescript-eslint": "^8.18.0", "vite": "^8.1.3", "vitest": "^4.1.9" } }