Files
Ncurator/package.json
T
2026-10-21 13:25:01 +08:00

180 lines
9.7 KiB
JSON

{
"name": "ncurator",
"version": "1.0.12",
"description": "Local-first AI workspace for documents, research, and task execution",
"main": "./out/main/index.js",
"author": "NCurator",
"license": "AGPL-3.0-only",
"homepage": "https://www.guanzhangai.cn",
"scripts": {
"format": "prettier --write .",
"lint": "eslint --cache .",
"knip": "knip",
"doc:ai-tool-prompt-audit": "pnpm dlx tsx scripts/doc/generate-ai-tool-prompt-audit.mts",
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
"typecheck": "tsc --noEmit -p tsconfig.node.json --composite false && tsc --noEmit -p tsconfig.web.json --composite false",
"build:sidecar": "node scripts/build/sidecar/build.mjs",
"test:ai:backend": "node scripts/test/workflow.mjs --domain ai --type backend",
"test:ai:non-live": "node scripts/test/workflow.mjs --domain ai --type backend --exclude-group live",
"test:ai:tool": "node scripts/test/workflow.mjs --domain ai --suite tool --type backend",
"test:ai:human:mock-llm": "node scripts/test/workflow.mjs --domain ai --suite human --group mock-llm --type backend",
"test:ai:human:live": "node scripts/test/workflow.mjs --domain ai --suite human --group live --type backend",
"test:knowledge:backend": "node scripts/test/workflow.mjs --domain knowledge --type backend",
"test:unit": "node scripts/test/workflow.mjs --domain unit --type backend",
"test:unit:ai": "node scripts/test/workflow.mjs --domain unit --suite ai --type backend",
"test:terminal": "node scripts/build/native/node-pty.mjs ensure node && vitest run --config vitest.backend.config.mts tests/case/unit/ai/terminal-session-manager.test.ts tests/case/unit/ai/terminal-protocol.test.ts tests/case/unit/ai/terminal-platform-adapter.test.ts tests/case/unit/ai/terminal-command-policy.test.ts",
"test:e2e:source": "node scripts/test/workflow.mjs --type e2e --target source",
"test:e2e:package": "node scripts/test/workflow.mjs --type e2e --target package",
"test:settings:e2e": "node scripts/test/workflow.mjs --domain settings --type e2e --target source",
"test:update": "pnpm run test:update:backend && pnpm run test:update:e2e",
"test:update:backend": "node scripts/test/workflow.mjs --domain unit --suite release --type backend",
"test:update:e2e": "node scripts/test/workflow.mjs --domain workbench --type e2e --case sidebar-app-update --case database-version-update-required --target source",
"test:update:real:win": "node scripts/test/update-real-windows.mjs",
"release:start": "node scripts/release/prepare.mjs",
"release:abort": "node scripts/release/abort.mjs",
"release:win": "node scripts/release/windows.mjs",
"release:doctor": "node scripts/release/doctor.mjs",
"release:signing:setup": "node scripts/release/setup-macos-signing.mjs",
"release:mac": "node scripts/release/macos.mjs",
"release:storage:finalize": "node scripts/release/r2/finalize.mjs",
"test:workbench:e2e": "node scripts/test/workflow.mjs --domain workbench --type e2e --target source",
"test:workbench:provider-matrix": "node scripts/test/workflow.mjs --domain workbench --type e2e --target source --case live-preset-provider-smoke",
"test:workbench:wps-office": "node scripts/test/workflow.mjs --domain workbench --type e2e --target source --case wps-office-reload-on-write-and-revert",
"test:showcase": "node scripts/test/showcase.mjs",
"start": "electron-vite preview",
"dev": "node scripts/build/native/better-sqlite3.mjs ensure electron && node scripts/build/native/node-pty.mjs ensure electron && node scripts/build/sidecar/ensure.mjs && electron-vite dev",
"dev:no-sidecar": "node scripts/build/native/better-sqlite3.mjs ensure electron && node scripts/build/native/node-pty.mjs ensure electron && electron-vite dev",
"build": "pnpm run i18n:check && node scripts/build/native/better-sqlite3.mjs ensure node && node scripts/build/native/node-pty.mjs ensure node && tsc --noEmit -p tsconfig.node.json --composite false && tsc --noEmit -p tsconfig.web.json --composite false && node scripts/build/sidecar/build.mjs && node scripts/build/vditor-assets.mjs && node scripts/build/native/better-sqlite3.mjs export-electron-resource && electron-vite build && node scripts/build/runtime/verify-bundles.mjs && node scripts/build/native/node-pty.mjs ensure electron && node scripts/build/package/prepare-stage.mjs",
"postinstall": "node scripts/postinstall.mjs",
"package:audit:stage": "node scripts/build/package/audit-stage.mjs",
"package:audit": "node scripts/build/package/audit-app.mjs dist release-stage/runtime-trace-report.json",
"package:audit:summary": "node scripts/build/package/audit-summary.mjs dist/package-audit.json",
"build:unpack": "pnpm run build && electron-builder --dir && pnpm run package:audit",
"build:win": "node scripts/build/native/electron-builder-windows.mjs && pnpm run build && node scripts/build/package/distributions.mjs win",
"build:mac:arm64": "pnpm run build && node scripts/build/package/distributions.mjs mac",
"build:mac:release:arm64": "pnpm run build && node scripts/build/package/distributions.mjs mac --signed",
"native:node": "node scripts/build/native/better-sqlite3.mjs ensure node",
"native:electron": "node scripts/build/native/better-sqlite3.mjs ensure electron",
"native:pty:node": "node scripts/build/native/node-pty.mjs ensure node",
"native:pty:electron": "node scripts/build/native/node-pty.mjs ensure electron",
"native:status": "node scripts/build/native/better-sqlite3.mjs status && node scripts/build/native/node-pty.mjs status",
"native:prepare": "node scripts/build/native/better-sqlite3.mjs prepare && node scripts/build/native/node-pty.mjs prepare",
"native:clean": "node scripts/build/native/better-sqlite3.mjs clean && node scripts/build/native/node-pty.mjs clean",
"i18n:check": "node scripts/build/validate-i18n.mjs"
},
"dependencies": {
"@ant-design/icons": "^6.1.0",
"@browserbasehq/stagehand": "^3.5.0",
"@electron-toolkit/preload": "^3.0.2",
"@electron-toolkit/utils": "^4.0.0",
"@huggingface/transformers": "^3.8.1",
"@js-preview/docx": "^1.6.4",
"@lancedb/lancedb": "0.22.3",
"@langchain/community": "^1.1.1",
"@langchain/core": "^1.1.44",
"@langchain/deepseek": "^1.0.25",
"@langchain/langgraph": "^1.1.5",
"@langchain/openai": "^1.4.5",
"@langchain/textsplitters": "^1.0.1",
"@napi-rs/canvas": "0.1.80",
"@node-rs/jieba": "^2.0.1",
"@react-pdf/renderer": "^4.1.0",
"@resvg/resvg-js": "2.6.2",
"@univerjs/core": "0.25.1",
"@univerjs/engine-formula": "0.25.1",
"@univerjs/preset-sheets-core": "0.25.1",
"@univerjs/sheets": "0.25.1",
"@univerjs/sheets-formula": "0.25.1",
"@xmldom/xmldom": "^0.8.11",
"antd": "5.22.1",
"apache-arrow": "^17.0.0",
"better-sqlite3": "^12.11.1",
"cheerio": "^1.2.0",
"dayjs": "^1.11.19",
"diff": "^9.0.0",
"docx": "^9.5.1",
"electron": "^39.2.7",
"electron-updater": "^6.3.9",
"exceljs": "^4.4.0",
"i18next": "^26.5.3",
"jsonrepair": "^3.15.0",
"jszip": "^3.10.1",
"katex": "^0.16.28",
"mammoth": "^1.11.0",
"mathjax-full": "^3.2.2",
"mdast-util-from-markdown": "^2.0.2",
"mdast-util-gfm-footnote": "^2.1.0",
"mdast-util-gfm-strikethrough": "^2.0.0",
"mdast-util-gfm-table": "^2.0.0",
"mdast-util-gfm-task-list-item": "^2.0.0",
"micromark-extension-gfm-footnote": "^2.1.0",
"micromark-extension-gfm-strikethrough": "^2.1.0",
"micromark-extension-gfm-table": "^2.1.1",
"micromark-extension-gfm-task-list-item": "^2.1.0",
"micromark-util-combine-extensions": "^2.0.1",
"monaco-editor": "0.57.0",
"node-pty": "1.2.0-beta.15",
"pdf-parse": "^1.1.1",
"pdfjs-dist": "5.4.296",
"playwright": "^1.58.2",
"pptx-kit": "0.11.1",
"pptx-kit-preview": "0.6.2",
"react-doc-viewer": "^0.1.15",
"react-i18next": "^17.1.0",
"react-icons": "^5.5.0",
"react-markdown": "^10.1.0",
"react-pdf": "^10.3.0",
"react-router-dom": "^7.12.0",
"react-syntax-highlighter": "^16.1.0",
"rehype-katex": "^7.0.1",
"remark-math": "^6.0.0",
"rxjs": "7.8.2",
"uuid": "^13.0.0",
"vditor": "^3.11.3",
"word-extractor": "^1.0.4",
"zod": "^4.3.6"
},
"devDependencies": {
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
"@electron-toolkit/eslint-config-ts": "^3.1.0",
"@electron-toolkit/tsconfig": "^2.0.0",
"@electron/asar": "3.4.1",
"@electron/rebuild": "3.7.0",
"@tailwindcss/vite": "^4.1.18",
"@types/better-sqlite3": "^7.6.13",
"@types/node": "^22.19.1",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@vercel/nft": "1.10.2",
"@vitejs/plugin-react": "^5.1.1",
"electron-builder": "^26.0.12",
"electron-vite": "^5.0.0",
"eslint": "^9.39.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
"javascript-obfuscator": "5.5.0",
"jsdom": "^26.1.0",
"knip": "^6.33.0",
"less": "^4.5.1",
"prettier": "^3.7.4",
"react": "^19.2.1",
"react-dom": "^19.2.1",
"semver": "^7.7.3",
"tailwindcss": "^4.1.18",
"typescript": "^5.9.3",
"vite": "^7.2.6",
"vitest": "^4.0.18",
"yaml": "2.8.2"
},
"packageManager": "pnpm@9.12.2+sha512.22721b3a11f81661ae1ec68ce1a7b879425a1ca5b991c975b074ac220b187ce56c708fe5db69f4c962c989452eee76c82877f4ee80f474cebd61ee13461b6228",
"pnpm": {
"patchedDependencies": {
"pptx-kit-preview@0.6.2": "patches/pptx-kit-preview@0.6.2.patch",
"@js-preview/docx@1.6.4": "patches/@js-preview__docx@1.6.4.patch",
"monaco-editor@0.57.0": "patches/monaco-editor@0.57.0.patch"
}
}
}