mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-10 07:19:02 +08:00
* build: add commander package as dependency * refactor(scripts): migrate feishu-notify to TypeScript with CLI interface - Convert JavaScript implementation to TypeScript with proper type definitions - Add CLI interface using commander for better usability - Improve error handling and input validation - Add version management and subcommand support * ci(workflows): update feishu notification command and add pnpm install step Update the feishu notification command to use CLI tool with proper arguments instead of direct node script execution Add pnpm install step to ensure dependencies are available before running the workflow * docs: add feishu notification script documentation Add Chinese and English documentation for the feishu-notify.ts CLI tool * feat(notify): add generic send command to feishu-notify Add a new 'send' subcommand to send simple notifications to Feishu with customizable title, description and header color. This provides a more flexible way to send notifications without being tied to specific business logic like the existing 'issue' command. The implementation includes: - New send command handler and options interface - Simple card creation function - Zod schema for header color validation - Documentation updates in both Chinese and English
489 lines
19 KiB
JSON
489 lines
19 KiB
JSON
{
|
|
"name": "CherryStudio",
|
|
"version": "1.7.11",
|
|
"private": true,
|
|
"description": "A powerful AI assistant for producer.",
|
|
"main": "./out/main/index.js",
|
|
"author": "support@cherry-ai.com",
|
|
"homepage": "https://github.com/CherryHQ/cherry-studio",
|
|
"engines": {
|
|
"node": ">=22.0.0"
|
|
},
|
|
"scripts": {
|
|
"start": "electron-vite preview",
|
|
"dev": "dotenv electron-vite dev",
|
|
"dev:watch": "dotenv electron-vite dev -- -w",
|
|
"debug": "electron-vite -- --inspect --sourcemap --remote-debugging-port=9222",
|
|
"build": "npm run typecheck && electron-vite build",
|
|
"build:check": "pnpm lint && pnpm test",
|
|
"build:unpack": "dotenv npm run build && electron-builder --dir",
|
|
"build:win": "dotenv npm run build && electron-builder --win --x64 --arm64",
|
|
"build:win:x64": "dotenv npm run build && electron-builder --win --x64",
|
|
"build:win:arm64": "dotenv npm run build && electron-builder --win --arm64",
|
|
"build:mac": "dotenv npm run build && electron-builder --mac --arm64 --x64",
|
|
"build:mac:arm64": "dotenv npm run build && electron-builder --mac --arm64",
|
|
"build:mac:x64": "dotenv npm run build && electron-builder --mac --x64",
|
|
"build:linux": "dotenv npm run build && electron-builder --linux --x64 --arm64",
|
|
"build:linux:arm64": "dotenv npm run build && electron-builder --linux --arm64",
|
|
"build:linux:x64": "dotenv npm run build && electron-builder --linux --x64",
|
|
"release": "node scripts/version.js",
|
|
"publish": "pnpm build:check && pnpm release patch push",
|
|
"pulish:artifacts": "cd packages/artifacts && npm publish && cd -",
|
|
"agents:generate": "NODE_ENV='development' drizzle-kit generate --config src/main/services/agents/drizzle.config.ts",
|
|
"agents:push": "NODE_ENV='development' drizzle-kit push --config src/main/services/agents/drizzle.config.ts",
|
|
"agents:studio": "NODE_ENV='development' drizzle-kit studio --config src/main/services/agents/drizzle.config.ts",
|
|
"agents:drop": "NODE_ENV='development' drizzle-kit drop --config src/main/services/agents/drizzle.config.ts",
|
|
"generate:icons": "electron-icon-builder --input=./build/logo.png --output=build",
|
|
"analyze:renderer": "VISUALIZER_RENDERER=true pnpm build",
|
|
"analyze:main": "VISUALIZER_MAIN=true pnpm build",
|
|
"typecheck": "concurrently -n \"node,web\" -c \"cyan,magenta\" \"npm run typecheck:node\" \"npm run typecheck:web\"",
|
|
"typecheck:node": "tsgo --noEmit -p tsconfig.node.json --composite false",
|
|
"typecheck:web": "tsgo --noEmit -p tsconfig.web.json --composite false",
|
|
"i18n:check": "dotenv -e .env -- tsx scripts/check-i18n.ts",
|
|
"i18n:sync": "dotenv -e .env -- tsx scripts/sync-i18n.ts",
|
|
"i18n:translate": "dotenv -e .env -- tsx scripts/auto-translate-i18n.ts",
|
|
"i18n:all": "pnpm i18n:check && pnpm i18n:sync && pnpm i18n:translate",
|
|
"update:languages": "tsx scripts/update-languages.ts",
|
|
"update:upgrade-config": "tsx scripts/update-app-upgrade-config.ts",
|
|
"test": "vitest run --silent",
|
|
"test:main": "vitest run --project main",
|
|
"test:renderer": "vitest run --project renderer",
|
|
"test:aicore": "vitest run --project aiCore",
|
|
"test:update": "pnpm test:renderer --update",
|
|
"test:coverage": "vitest run --coverage --silent",
|
|
"test:ui": "vitest --ui",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "pnpm playwright test",
|
|
"test:lint": "oxlint --deny-warnings && eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --cache",
|
|
"test:scripts": "vitest scripts",
|
|
"lint": "oxlint --fix && eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --cache && pnpm typecheck && pnpm i18n:check && pnpm format:check",
|
|
"format": "biome format --write && biome lint --write",
|
|
"format:check": "biome format && biome lint",
|
|
"prepare": "git config blame.ignoreRevsFile .git-blame-ignore-revs && husky",
|
|
"claude": "dotenv -e .env -- claude",
|
|
"release:aicore:alpha": "pnpm --filter @cherrystudio/ai-core version prerelease --preid alpha && pnpm --filter @cherrystudio/ai-core build && pnpm --filter @cherrystudio/ai-core publish --tag alpha --access public",
|
|
"release:aicore:beta": "pnpm --filter @cherrystudio/ai-core version prerelease --preid beta && pnpm --filter @cherrystudio/ai-core build && pnpm --filter @cherrystudio/ai-core publish --tag beta --access public",
|
|
"release:aicore": "pnpm --filter @cherrystudio/ai-core version patch && pnpm --filter @cherrystudio/ai-core build && pnpm --filter @cherrystudio/ai-core publish --access public",
|
|
"release:ai-sdk-provider": "pnpm --filter @cherrystudio/ai-sdk-provider version patch && pnpm --filter @cherrystudio/ai-sdk-provider build && pnpm --filter @cherrystudio/ai-sdk-provider publish --access public"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/claude-agent-sdk": "0.1.76",
|
|
"@libsql/client": "0.14.0",
|
|
"@napi-rs/system-ocr": "1.0.2",
|
|
"@paymoapp/electron-shutdown-handler": "1.1.2",
|
|
"express": "5.1.0",
|
|
"font-list": "2.0.0",
|
|
"graceful-fs": "4.2.11",
|
|
"gray-matter": "4.0.3",
|
|
"jsdom": "26.1.0",
|
|
"node-stream-zip": "1.15.0",
|
|
"officeparser": "4.2.0",
|
|
"os-proxy-config": "1.1.2",
|
|
"selection-hook": "1.0.12",
|
|
"sharp": "0.34.3",
|
|
"swagger-jsdoc": "6.2.8",
|
|
"swagger-ui-express": "5.0.1",
|
|
"tesseract.js": "6.0.1",
|
|
"turndown": "7.2.0"
|
|
},
|
|
"devDependencies": {
|
|
"@agentic/exa": "^7.3.3",
|
|
"@agentic/searxng": "^7.3.3",
|
|
"@agentic/tavily": "^7.3.3",
|
|
"@ai-sdk/amazon-bedrock": "^3.0.61",
|
|
"@ai-sdk/anthropic": "^2.0.49",
|
|
"@ai-sdk/azure": "2.0.87",
|
|
"@ai-sdk/cerebras": "^1.0.31",
|
|
"@ai-sdk/gateway": "^2.0.15",
|
|
"@ai-sdk/google": "2.0.49",
|
|
"@ai-sdk/google-vertex": "^3.0.94",
|
|
"@ai-sdk/huggingface": "^0.0.10",
|
|
"@ai-sdk/mistral": "^2.0.24",
|
|
"@ai-sdk/openai": "2.0.85",
|
|
"@ai-sdk/perplexity": "^2.0.20",
|
|
"@ai-sdk/provider": "2.0.0",
|
|
"@ai-sdk/provider-utils": "3.0.17",
|
|
"@ai-sdk/test-server": "^0.0.1",
|
|
"@ai-sdk/xai": "2.0.36",
|
|
"@ant-design/cssinjs": "1.23.0",
|
|
"@ant-design/icons": "5.6.1",
|
|
"@ant-design/v5-patch-for-react-19": "^1.0.3",
|
|
"@anthropic-ai/sdk": "^0.41.0",
|
|
"@anthropic-ai/vertex-sdk": "0.11.4",
|
|
"@aws-sdk/client-bedrock": "^3.910.0",
|
|
"@aws-sdk/client-bedrock-runtime": "^3.910.0",
|
|
"@aws-sdk/client-s3": "^3.910.0",
|
|
"@biomejs/biome": "2.2.4",
|
|
"@cherrystudio/ai-core": "workspace:^1.0.9",
|
|
"@cherrystudio/embedjs": "0.1.31",
|
|
"@cherrystudio/embedjs-interfaces": "0.1.31",
|
|
"@cherrystudio/embedjs-libsql": "0.1.31",
|
|
"@cherrystudio/embedjs-loader-csv": "0.1.31",
|
|
"@cherrystudio/embedjs-loader-image": "0.1.31",
|
|
"@cherrystudio/embedjs-loader-markdown": "0.1.31",
|
|
"@cherrystudio/embedjs-loader-msoffice": "0.1.31",
|
|
"@cherrystudio/embedjs-loader-pdf": "0.1.31",
|
|
"@cherrystudio/embedjs-loader-sitemap": "0.1.31",
|
|
"@cherrystudio/embedjs-loader-web": "0.1.31",
|
|
"@cherrystudio/embedjs-loader-xml": "0.1.31",
|
|
"@cherrystudio/embedjs-ollama": "0.1.31",
|
|
"@cherrystudio/embedjs-openai": "0.1.31",
|
|
"@cherrystudio/embedjs-utils": "0.1.31",
|
|
"@cherrystudio/extension-table-plus": "workspace:^",
|
|
"@cherrystudio/openai": "6.15.0",
|
|
"@codemirror/lang-json": "6.0.1",
|
|
"@codemirror/lint": "6.8.5",
|
|
"@codemirror/view": "6.38.1",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@electron-toolkit/eslint-config-ts": "^3.0.0",
|
|
"@electron-toolkit/preload": "^3.0.0",
|
|
"@electron-toolkit/tsconfig": "^1.0.1",
|
|
"@electron-toolkit/utils": "^3.0.0",
|
|
"@electron/notarize": "^2.5.0",
|
|
"@emotion/is-prop-valid": "^1.3.1",
|
|
"@eslint-react/eslint-plugin": "^1.36.1",
|
|
"@eslint/js": "^9.22.0",
|
|
"@floating-ui/dom": "1.7.3",
|
|
"@google/genai": "1.0.1",
|
|
"@hello-pangea/dnd": "^18.0.1",
|
|
"@kangfenmao/keyv-storage": "^0.1.3",
|
|
"@langchain/community": "^1.0.0",
|
|
"@langchain/core": "1.0.2",
|
|
"@langchain/openai": "1.0.0",
|
|
"@langchain/textsplitters": "0.1.0",
|
|
"@mistralai/mistralai": "^1.7.5",
|
|
"@modelcontextprotocol/sdk": "1.23.0",
|
|
"@mozilla/readability": "^0.6.0",
|
|
"@notionhq/client": "^2.2.15",
|
|
"@openrouter/ai-sdk-provider": "^1.2.8",
|
|
"@opentelemetry/api": "^1.9.0",
|
|
"@opentelemetry/context-async-hooks": "2.0.1",
|
|
"@opentelemetry/core": "2.0.0",
|
|
"@opentelemetry/exporter-trace-otlp-http": "^0.200.0",
|
|
"@opentelemetry/sdk-trace-base": "^2.0.0",
|
|
"@opentelemetry/sdk-trace-node": "^2.0.0",
|
|
"@opentelemetry/sdk-trace-web": "^2.0.0",
|
|
"@opeoginni/github-copilot-openai-compatible": "^0.1.21",
|
|
"@playwright/test": "^1.55.1",
|
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
"@reduxjs/toolkit": "^2.2.5",
|
|
"@shikijs/markdown-it": "^3.12.0",
|
|
"@swc/core": "^1.15.8",
|
|
"@swc/plugin-styled-components": "^8.0.4",
|
|
"@tailwindcss/vite": "^4.1.13",
|
|
"@tanstack/react-query": "^5.85.5",
|
|
"@tanstack/react-virtual": "^3.13.12",
|
|
"@testing-library/dom": "^10.4.0",
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.3.0",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@tiptap/core": "3.2.0",
|
|
"@tiptap/extension-code-block": "3.2.0",
|
|
"@tiptap/extension-collaboration": "3.2.0",
|
|
"@tiptap/extension-drag-handle": "3.2.0",
|
|
"@tiptap/extension-drag-handle-react": "3.2.0",
|
|
"@tiptap/extension-heading": "3.2.0",
|
|
"@tiptap/extension-image": "3.2.0",
|
|
"@tiptap/extension-link": "3.2.0",
|
|
"@tiptap/extension-list": "3.2.0",
|
|
"@tiptap/extension-mathematics": "3.2.0",
|
|
"@tiptap/extension-mention": "3.2.0",
|
|
"@tiptap/extension-node-range": "3.2.0",
|
|
"@tiptap/extension-table-of-contents": "3.2.0",
|
|
"@tiptap/extension-typography": "3.2.0",
|
|
"@tiptap/extension-underline": "3.2.0",
|
|
"@tiptap/pm": "3.2.0",
|
|
"@tiptap/react": "3.2.0",
|
|
"@tiptap/starter-kit": "3.2.0",
|
|
"@tiptap/suggestion": "3.2.0",
|
|
"@tiptap/y-tiptap": "^3.0.0",
|
|
"@truto/turndown-plugin-gfm": "^1.0.2",
|
|
"@tryfabric/martian": "^1.2.4",
|
|
"@types/cli-progress": "^3",
|
|
"@types/content-type": "^1.1.9",
|
|
"@types/cors": "^2.8.19",
|
|
"@types/diff": "^7",
|
|
"@types/dotenv": "^8.2.3",
|
|
"@types/express": "^5",
|
|
"@types/fs-extra": "^11",
|
|
"@types/hast": "^3.0.4",
|
|
"@types/he": "^1",
|
|
"@types/html-to-text": "^9",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/json-schema": "7.0.15",
|
|
"@types/lodash": "^4.17.5",
|
|
"@types/markdown-it": "^14",
|
|
"@types/md5": "^2.3.5",
|
|
"@types/mdast": "4.0.4",
|
|
"@types/mime-types": "^3",
|
|
"@types/node": "22.17.2",
|
|
"@types/pako": "^1.0.2",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/react-infinite-scroll-component": "^5.0.0",
|
|
"@types/react-transition-group": "^4.4.12",
|
|
"@types/react-window": "^1",
|
|
"@types/swagger-jsdoc": "^6",
|
|
"@types/swagger-ui-express": "^4.1.8",
|
|
"@types/tinycolor2": "^1",
|
|
"@types/turndown": "^5.0.5",
|
|
"@types/unist": "3.0.3",
|
|
"@types/uuid": "^10.0.0",
|
|
"@types/word-extractor": "^1",
|
|
"@typescript/native-preview": "7.0.0-dev.20250915.1",
|
|
"@uiw/codemirror-extensions-langs": "^4.25.1",
|
|
"@uiw/codemirror-themes-all": "^4.25.1",
|
|
"@uiw/react-codemirror": "^4.25.1",
|
|
"@vitejs/plugin-react-swc": "^3.9.0",
|
|
"@vitest/browser": "^3.2.4",
|
|
"@vitest/coverage-v8": "^3.2.4",
|
|
"@vitest/ui": "^3.2.4",
|
|
"@vitest/web-worker": "^3.2.4",
|
|
"@viz-js/lang-dot": "^1.0.5",
|
|
"@viz-js/viz": "^3.14.0",
|
|
"@xyflow/react": "^12.4.4",
|
|
"adm-zip": "0.4.16",
|
|
"ai": "^5.0.98",
|
|
"antd": "5.27.0",
|
|
"archiver": "^7.0.1",
|
|
"async-mutex": "^0.5.0",
|
|
"axios": "^1.7.3",
|
|
"bonjour-service": "1.3.0",
|
|
"browser-image-compression": "^2.0.2",
|
|
"builder-util-runtime": "9.5.0",
|
|
"chalk": "4.1.2",
|
|
"chardet": "^2.1.0",
|
|
"check-disk-space": "3.4.0",
|
|
"cheerio": "^1.1.2",
|
|
"chokidar": "^4.0.3",
|
|
"claude-code-plugins": "1.0.3",
|
|
"cli-progress": "^3.12.0",
|
|
"clsx": "^2.1.1",
|
|
"code-inspector-plugin": "^0.20.14",
|
|
"codemirror-lang-mermaid": "0.5.0",
|
|
"color": "^5.0.0",
|
|
"commander": "^14.0.2",
|
|
"concurrently": "^9.2.1",
|
|
"cors": "2.8.5",
|
|
"country-flag-emoji-polyfill": "0.1.8",
|
|
"dayjs": "^1.11.11",
|
|
"dexie": "^4.0.8",
|
|
"dexie-react-hooks": "^1.1.7",
|
|
"diff": "^8.0.2",
|
|
"docx": "^9.0.2",
|
|
"dompurify": "^3.2.6",
|
|
"dotenv": "16.6.1",
|
|
"dotenv-cli": "^7.4.2",
|
|
"drizzle-kit": "^0.31.4",
|
|
"drizzle-orm": "^0.44.5",
|
|
"electron": "38.7.0",
|
|
"electron-builder": "26.1.0",
|
|
"electron-devtools-installer": "^3.2.0",
|
|
"electron-reload": "^2.0.0-alpha.1",
|
|
"electron-store": "^8.2.0",
|
|
"electron-updater": "6.7.0",
|
|
"electron-vite": "5.0.0",
|
|
"electron-window-state": "^5.0.3",
|
|
"emittery": "^1.0.3",
|
|
"emoji-picker-element": "^1.22.1",
|
|
"emoji-picker-element-data": "1",
|
|
"epub": "1.3.0",
|
|
"eslint": "^9.22.0",
|
|
"eslint-plugin-import-zod": "^1.2.0",
|
|
"eslint-plugin-oxlint": "^1.15.0",
|
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
"express-validator": "^7.2.1",
|
|
"fast-diff": "^1.3.0",
|
|
"fast-xml-parser": "^5.2.0",
|
|
"fetch-socks": "1.3.2",
|
|
"form-data": "4.0.4",
|
|
"framer-motion": "^12.23.12",
|
|
"franc-min": "^6.2.0",
|
|
"fs-extra": "^11.2.0",
|
|
"google-auth-library": "^9.15.1",
|
|
"he": "^1.2.0",
|
|
"html-tags": "^5.1.0",
|
|
"html-to-image": "^1.11.13",
|
|
"html-to-text": "^9.0.5",
|
|
"htmlparser2": "^10.0.0",
|
|
"husky": "^9.1.7",
|
|
"i18next": "^23.11.5",
|
|
"iconv-lite": "^0.6.3",
|
|
"ipaddr.js": "^2.2.0",
|
|
"isbinaryfile": "5.0.4",
|
|
"jaison": "^2.0.2",
|
|
"jest-styled-components": "^7.2.0",
|
|
"js-base64": "3.7.7",
|
|
"js-yaml": "4.1.0",
|
|
"json-schema": "0.4.0",
|
|
"katex": "0.16.22",
|
|
"ky": "1.8.1",
|
|
"linguist-languages": "^8.1.0",
|
|
"lint-staged": "^15.5.0",
|
|
"lodash": "^4.17.21",
|
|
"lru-cache": "^11.1.0",
|
|
"lucide-react": "^0.525.0",
|
|
"macos-release": "^3.4.0",
|
|
"markdown-it": "^14.1.0",
|
|
"md5": "2.3.0",
|
|
"mermaid": "^11.10.1",
|
|
"mime": "^4.0.4",
|
|
"mime-types": "^3.0.1",
|
|
"motion": "^12.10.5",
|
|
"nanoid": "3.3.11",
|
|
"notion-helper": "^1.3.22",
|
|
"npx-scope-finder": "^1.2.0",
|
|
"ollama-ai-provider-v2": "1.5.5",
|
|
"open": "^8.4.2",
|
|
"oxlint": "^1.22.0",
|
|
"oxlint-tsgolint": "^0.2.0",
|
|
"p-queue": "^8.1.0",
|
|
"pako": "1.0.11",
|
|
"pdf-lib": "^1.17.1",
|
|
"pdf-parse": "^1.1.1",
|
|
"prosemirror-model": "1.25.2",
|
|
"proxy-agent": "^6.5.0",
|
|
"rc-input": "1.8.0",
|
|
"rc-select": "14.16.6",
|
|
"rc-virtual-list": "3.18.6",
|
|
"react": "^19.2.0",
|
|
"react-dom": "^19.2.0",
|
|
"react-error-boundary": "^6.0.0",
|
|
"react-hotkeys-hook": "^4.6.1",
|
|
"react-i18next": "^14.1.2",
|
|
"react-infinite-scroll-component": "^6.1.0",
|
|
"react-json-view": "^1.21.3",
|
|
"react-markdown": "^10.1.0",
|
|
"react-player": "^3.3.1",
|
|
"react-redux": "^9.1.2",
|
|
"react-router": "6",
|
|
"react-router-dom": "6",
|
|
"react-spinners": "^0.14.1",
|
|
"react-transition-group": "^4.4.5",
|
|
"redux": "^5.0.1",
|
|
"redux-persist": "^6.0.0",
|
|
"reflect-metadata": "0.2.2",
|
|
"rehype-katex": "^7.0.1",
|
|
"rehype-mathjax": "^7.1.0",
|
|
"rehype-parse": "^9.0.1",
|
|
"rehype-raw": "^7.0.0",
|
|
"rehype-stringify": "^10.0.1",
|
|
"remark-cjk-friendly": "^1.2.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"remark-github-blockquote-alert": "^2.0.0",
|
|
"remark-math": "^6.0.0",
|
|
"remark-parse": "11.0.0",
|
|
"remark-stringify": "11.0.0",
|
|
"remove-markdown": "^0.6.2",
|
|
"rollup-plugin-visualizer": "^5.12.0",
|
|
"semver": "7.7.1",
|
|
"shiki": "^3.12.0",
|
|
"strict-url-sanitise": "^0.0.1",
|
|
"string-width": "^7.2.0",
|
|
"striptags": "^3.2.0",
|
|
"styled-components": "^6.1.11",
|
|
"swr": "^2.3.6",
|
|
"tailwind-merge": "^3.3.1",
|
|
"tailwindcss": "^4.1.13",
|
|
"tar": "^7.4.3",
|
|
"tiny-pinyin": "^1.3.2",
|
|
"tokenx": "^1.1.0",
|
|
"tsx": "^4.20.3",
|
|
"turndown-plugin-gfm": "^1.0.2",
|
|
"tw-animate-css": "^1.3.8",
|
|
"typescript": "~5.8.3",
|
|
"undici": "6.21.2",
|
|
"unified": "^11.0.5",
|
|
"unist-util-visit": "5.0.0",
|
|
"uuid": "^13.0.0",
|
|
"vite": "npm:rolldown-vite@7.3.0",
|
|
"vitest": "^3.2.4",
|
|
"webdav": "^5.8.0",
|
|
"winston": "^3.17.0",
|
|
"winston-daily-rotate-file": "^5.0.0",
|
|
"word-extractor": "^1.0.4",
|
|
"y-protocols": "^1.0.6",
|
|
"yaml": "^2.8.1",
|
|
"yjs": "^13.6.27",
|
|
"youtubei.js": "^15.0.1",
|
|
"zipread": "^1.3.3",
|
|
"zod": "^4.1.5"
|
|
},
|
|
"pnpm": {
|
|
"overrides": {
|
|
"@smithy/types": "4.7.1",
|
|
"@codemirror/language": "6.11.3",
|
|
"@codemirror/lint": "6.8.5",
|
|
"@codemirror/view": "6.38.1",
|
|
"esbuild": "^0.25.0",
|
|
"node-abi": "4.24.0",
|
|
"openai": "npm:@cherrystudio/openai@6.15.0",
|
|
"tar-fs": "^2.1.4",
|
|
"undici": "6.21.2",
|
|
"vite": "npm:rolldown-vite@7.3.0",
|
|
"@img/sharp-darwin-arm64": "0.34.3",
|
|
"@img/sharp-darwin-x64": "0.34.3",
|
|
"@img/sharp-linux-arm": "0.34.3",
|
|
"@img/sharp-linux-arm64": "0.34.3",
|
|
"@img/sharp-linux-x64": "0.34.3",
|
|
"@img/sharp-win32-x64": "0.34.3",
|
|
"@langchain/core": "1.0.2",
|
|
"@ai-sdk/openai-compatible@1.0.27": "1.0.28"
|
|
},
|
|
"patchedDependencies": {
|
|
"@napi-rs/system-ocr@1.0.2": "patches/@napi-rs-system-ocr-npm-1.0.2-59e7a78e8b.patch",
|
|
"tesseract.js@6.0.1": "patches/tesseract.js-npm-6.0.1-2562a7e46d.patch",
|
|
"@ai-sdk/google@2.0.49": "patches/@ai-sdk-google-npm-2.0.49-84720f41bd.patch",
|
|
"@ai-sdk/openai@2.0.85": "patches/@ai-sdk-openai-npm-2.0.85-27483d1d6a.patch",
|
|
"@anthropic-ai/vertex-sdk@0.11.4": "patches/@anthropic-ai-vertex-sdk-npm-0.11.4-c19cb41edb.patch",
|
|
"@google/genai@1.0.1": "patches/@google-genai-npm-1.0.1-e26f0f9af7.patch",
|
|
"@langchain/core@1.0.2": "patches/@langchain-core-npm-1.0.2-183ef83fe4.patch",
|
|
"@langchain/openai@1.0.0": "patches/@langchain-openai-npm-1.0.0-474d0ad9d4.patch",
|
|
"@tiptap/extension-drag-handle@3.2.0": "patches/@tiptap-extension-drag-handle-npm-3.2.0-5a9ebff7c9.patch",
|
|
"antd@5.27.0": "patches/antd-npm-5.27.0-aa91c36546.patch",
|
|
"electron-updater@6.7.0": "patches/electron-updater-npm-6.7.0-47b11bb0d4.patch",
|
|
"epub@1.3.0": "patches/epub-npm-1.3.0-8325494ffe.patch",
|
|
"ollama-ai-provider-v2@1.5.5": "patches/ollama-ai-provider-v2-npm-1.5.5-8bef249af9.patch",
|
|
"atomically@1.7.0": "patches/atomically-npm-1.7.0-e742e5293b.patch",
|
|
"file-stream-rotator@0.6.1": "patches/file-stream-rotator-npm-0.6.1-eab45fb13d.patch",
|
|
"libsql@0.4.7": "patches/libsql-npm-0.4.7-444e260fb1.patch",
|
|
"pdf-parse@1.1.1": "patches/pdf-parse-npm-1.1.1-04a6109b2a.patch",
|
|
"@ai-sdk/openai-compatible@1.0.28": "patches/@ai-sdk-openai-compatible-npm-1.0.28-5705188855.patch"
|
|
},
|
|
"onlyBuiltDependencies": [
|
|
"@kangfenmao/keyv-storage",
|
|
"@paymoapp/electron-shutdown-handler",
|
|
"@scarf/scarf",
|
|
"@swc/core",
|
|
"electron",
|
|
"electron-winstaller",
|
|
"esbuild",
|
|
"msw",
|
|
"protobufjs",
|
|
"registry-js",
|
|
"selection-hook",
|
|
"sharp",
|
|
"tesseract.js",
|
|
"zipfile"
|
|
]
|
|
},
|
|
"packageManager": "pnpm@10.27.0",
|
|
"lint-staged": {
|
|
"*.{js,jsx,ts,tsx,cjs,mjs,cts,mts}": [
|
|
"biome format --write --no-errors-on-unmatched",
|
|
"eslint --fix"
|
|
],
|
|
"*.{json,yml,yaml,css,html}": [
|
|
"biome format --write --no-errors-on-unmatched"
|
|
]
|
|
},
|
|
"optionalDependencies": {
|
|
"@strongtz/win32-arm64-msvc": "^0.4.7"
|
|
}
|
|
}
|