mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-02-22 02:24:46 +08:00
<!-- Template from https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md?--> <!-- Thanks for sending a pull request! Here are some tips for you: 1. Consider creating this PR as draft: https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md --> <!-- ⚠️ Important: Redux/IndexedDB Data-Changing Feature PRs Temporarily On Hold ⚠️ Please note: For our current development cycle, we are not accepting feature Pull Requests that introduce changes to Redux data models or IndexedDB schemas. While we value your contributions, PRs of this nature will be blocked without merge. We welcome all other contributions (bug fixes, perf enhancements, docs, etc.). Thank you! Once version 2.0.0 is released, we will resume reviewing feature PRs. --> ### What this PR does Before this PR: After this PR: <!-- (optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: --> Fixes # ### Why we need it and why it was done in this way The following tradeoffs were made: The following alternatives were considered: Links to places where the discussion took place: <!-- optional: slack, other GH issue, mailinglist, ... --> ### Breaking changes <!-- optional --> If this PR introduces breaking changes, please describe the changes and the impact on users. ### Special notes for your reviewer <!-- optional --> ### Checklist This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR. Approvers are expected to review this list. - [ ] PR: The PR description is expressive enough and will help future contributors - [ ] Code: [Write code that humans can understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans) and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle) - [ ] Refactor: You have [left the code cleaner than you found it (Boy Scout Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html) - [ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required - [ ] Documentation: A [user-guide update](https://docs.cherry-ai.com) was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature. ### Release note <!-- Write your release note: 1. Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string "action required". 2. If no release note is required, just write "NONE". --> ```release-note ``` Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
514 lines
20 KiB
JSON
514 lines
20 KiB
JSON
{
|
|
"name": "CherryStudio",
|
|
"version": "1.7.18",
|
|
"private": true,
|
|
"description": "A powerful AI assistant for producer.",
|
|
"desktopName": "CherryStudio.desktop",
|
|
"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",
|
|
"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:hardcoded": "tsx scripts/check-hardcoded-strings.ts",
|
|
"i18n:hardcoded:strict": "I18N_STRICT=true tsx scripts/check-hardcoded-strings.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: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:shared": "vitest run --project shared",
|
|
"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 && prek install",
|
|
"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",
|
|
"@expo/sudo-prompt": "^9.3.2",
|
|
"@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.76",
|
|
"@ai-sdk/anthropic": "^2.0.59",
|
|
"@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/analytics-client": "^1.1.0",
|
|
"@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",
|
|
"@j178/prek": "^0.2.28",
|
|
"@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/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.20260204.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",
|
|
"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",
|
|
"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",
|
|
"json-schema": "0.4.0",
|
|
"jsonc-parser": "^3.3.1",
|
|
"katex": "0.16.22",
|
|
"ky": "1.8.1",
|
|
"linguist-languages": "^8.1.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",
|
|
"partial-json": "0.1.7",
|
|
"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",
|
|
"ts-morph": "^27.0.2",
|
|
"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",
|
|
"xlsx": "0.18.5",
|
|
"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",
|
|
"@ai-sdk/openai-compatible@1.0.30": "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@1.0.28.patch",
|
|
"@anthropic-ai/claude-agent-sdk@0.1.76": "patches/@anthropic-ai__claude-agent-sdk@0.1.76.patch",
|
|
"@openrouter/ai-sdk-provider": "patches/@openrouter__ai-sdk-provider.patch"
|
|
},
|
|
"onlyBuiltDependencies": [
|
|
"@j178/prek",
|
|
"@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",
|
|
"optionalDependencies": {
|
|
"@img/sharp-darwin-arm64": "0.34.3",
|
|
"@img/sharp-darwin-x64": "0.34.3",
|
|
"@img/sharp-libvips-darwin-arm64": "1.2.0",
|
|
"@img/sharp-libvips-darwin-x64": "1.2.0",
|
|
"@img/sharp-libvips-linux-arm64": "1.2.0",
|
|
"@img/sharp-libvips-linux-x64": "1.2.0",
|
|
"@img/sharp-libvips-linuxmusl-arm64": "1.2.0",
|
|
"@img/sharp-libvips-linuxmusl-x64": "1.2.0",
|
|
"@img/sharp-linux-arm64": "0.34.3",
|
|
"@img/sharp-linux-x64": "0.34.3",
|
|
"@img/sharp-linuxmusl-arm64": "0.34.3",
|
|
"@img/sharp-linuxmusl-x64": "0.34.3",
|
|
"@img/sharp-win32-arm64": "0.34.3",
|
|
"@img/sharp-win32-x64": "0.34.3",
|
|
"@libsql/darwin-arm64": "0.4.7",
|
|
"@libsql/darwin-x64": "0.4.7",
|
|
"@libsql/linux-arm64-gnu": "0.4.7",
|
|
"@libsql/linux-arm64-musl": "0.4.7",
|
|
"@libsql/linux-x64-gnu": "0.4.7",
|
|
"@libsql/linux-x64-musl": "0.4.7",
|
|
"@libsql/win32-x64-msvc": "0.4.7",
|
|
"@napi-rs/system-ocr-darwin-arm64": "1.0.2",
|
|
"@napi-rs/system-ocr-darwin-x64": "1.0.2",
|
|
"@napi-rs/system-ocr-win32-arm64-msvc": "1.0.2",
|
|
"@napi-rs/system-ocr-win32-x64-msvc": "1.0.2",
|
|
"@strongtz/win32-arm64-msvc": "0.4.7"
|
|
}
|
|
}
|