mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-25 03:10:08 +08:00
* feat: add isTextFile functionality and improve file selection handling - Introduced a new IPC channel for checking if a file is a text file. - Implemented isTextFile method in FileStorage service to determine file type based on content. - Enhanced AttachmentButton to filter selected files based on text file validation. - Updated translations to include support for displaying unsupported file counts across multiple languages. - Added utility functions for text file validation and filtering in file utilities. * refactor(FileStorage): replace hardcoded buffer size with constant for improved readability * restore yarn lock * add isbinaryfile dep * refactor: 整理导入顺序 * fix(preload): 为isTextFile方法添加返回类型Promise<boolean> * refactor(FileManager): update getSafePath to use file metadata for path retrieval - Modified getSafePath method to utilize the path from file metadata instead of a hardcoded file path. - Enhanced handling for files not stored in the file storage system. * refactor(FileUtilities): rename text file functions for clarity - Updated function names from isTextFile to isSupportedFile and filterTextFiles to filterSupportedFiles to better reflect their purpose. - Adjusted related imports and usages in AttachmentButton and PasteService components to align with the new naming conventions. * fix drop files * refactor(MarkdownStyles): remove last-child margin override; adjust MessageFooter margin and clean up unused code in MessageAttachments * feat(Sidebar): add 'code_tools' icon and route; enhance CodeToolsPage layout with Navbar and improved provider filtering * feat(CodeTools): add environment variable support for CLI tools; update UI to manage environment variables and enhance localization for related strings * refactor(Sidebar): remove unused imports and code related to documentation; streamline sidebar functionality * refactor(SvgPreview): use transparent container for SVG (#9294) * refactor(SvgPreview): use transparent container for SVG * test: fix snapshot * refactor(CodeToolsService): replace npm package version fetching with direct API call; simplify command construction for installation * chore: release v1.5.7-rc.1 * refactor(CodeToolsService): adjust command construction for Windows compatibility; streamline installation command handling * refactor(Markdown): update disallowed elements to include 'script' for enhanced security * feat: quick model (#9290) * refactor(i18n): 将话题命名模型相关文案更新为摘要模型 更新所有语言文件中关于话题命名模型的文案,统一改为摘要模型,以反映功能的扩展和更通用的用途 * refactor(设置页面): 优化主题命名弹窗组件性能 使用useCallback和useMemo优化回调函数和渲染性能 将重复的JSX代码提取为独立组件 * feat(设置): 在模型设置中添加话题命名折叠面板 将话题命名设置从直接显示改为折叠面板形式,提升界面整洁度 * refactor(i18n): 重构话题命名相关翻译字段结构 * docs(i18n): 添加生成图像的高度、宽度和安全容忍度翻译占位符 * fix(settings): 修正主题命名弹窗中的翻译键名 * style(ui): 调整主题命名弹窗的间距和文本区域高度 移除多余的上下边距,并使用自适应高度的文本区域 * refactor(llm): 将 topicNamingModel 重命名为 summaryModel 更新相关函数、状态和测试用例以反映命名变更 增加迁移逻辑处理旧状态数据 更新持久化版本号至133 * fix(ApiService): 优先使用摘要模型替代默认模型 当获取摘要时,优先使用getSummaryModel()返回的模型,其次才是助手指定的模型或默认模型,以确保摘要生成的一致性 * docs(i18n): 更新摘要模型描述中的搜索关键词提炼 将"搜索结果摘要"修改为"搜索关键字提炼"以更准确描述功能 * fix(i18n): 更新多语言翻译文件中的摘要模型相关文本 * feat(i18n): 为摘要模型设置添加工具提示说明 添加摘要模型设置的工具提示,建议用户选择轻量模型而非思考模型 * refactor(i18n): 将摘要模型相关文案更新为快速模型 更新国际化文案和组件引用,将"摘要模型"统一改为"快速模型"以更准确描述功能用途 * feat(i18n): 将摘要模型重命名为快速模型并更新相关描述 * refactor(llm): 将summaryModel重命名为quickModel以提升语义清晰度 * test(api): 在ApiService测试中添加LlmState类型和awsBedrock配置 添加LlmState类型以满足类型检查要求,并补充awsBedrock的mock配置以完善测试覆盖 * Revert "feat(设置): 在模型设置中添加话题命名折叠面板" This reverts commit4d58c053da. * refactor(settings): 重命名并移动 TopicNamingModalPopup 组件文件 将 TopicNamingModalPopup.tsx 重命名为 QuickModelPopup.tsx 并移动到相应目录 * refactor(QuickModelPopup): 优化主题命名设置布局和样式 移除 TopicNamingSettings 组件内联实现,直接整合到 Modal 中 调整间距和样式,提升视觉一致性 修复文本区域 onChange 去除换行的逻辑 * feat(模型设置): 在快速模型弹窗中添加重置按钮图标并调整布局 将重置按钮改为图标形式并内联显示,同时调整输入区域的高度样式 * docs(i18n): 更新快速模型相关翻译文本 * fix: 将迁移错误日志从133更新为134 * style(settings): 替换模型设置中的图标为Rocket图标以提升视觉一致性 * fix: unexpected quitting full screen mode (#9200) * fix(Inputbar): 修正拼写错误,将expend改为expand * fix: 修复Escape键事件冒泡问题并改进全屏处理 修复多个组件中Escape键事件未阻止冒泡的问题 添加全屏控制IPC通道 将全屏退出逻辑移至渲染进程处理 移除主进程中冗余的全屏退出处理代码 * fix(SelectModelPopup): 修复键盘事件处理并移除无效的useEffect 将键盘事件监听从window移动到Modal容器,避免事件冒泡问题 移除无效的useEffect并更新键盘事件类型定义 * fix(QuickPanel): 拦截window上的keydown事件 * fix(QuickPanel): 修复事件监听器移除时未使用相同参数的问题 * fix(TopView): 修复左侧导航栏布局崩坏问题 * fix: 修正变量名拼写错误,将expended改为expanded * Revert "fix(SelectModelPopup): 修复键盘事件处理并移除无效的useEffect" This reverts commit4211780b95. * feat: use quick model to detect translate language (#9315) * refactor(语言检测): 移除翻译模型依赖,改用快速或默认模型 * feat(i18n): 添加希腊语翻译支持 * fix(i18n): 更新i18n 统一将翻译模型提示改为快速模型提示,优化多语言文件中的描述 * Revert "feat(i18n): 添加希腊语翻译支持" This reverts commit42613cb2e2. * feat: add 'code_tools' to sidebar icons and update related components * fix: KaTeX math engine render * feat: 同步百炼服务器功能 (#9205) * 同步百炼服务器功能 * cr修改 --------- Co-authored-by: yunze <yunze.wyz@alibaba-inc.com> * fix(SelectionHook): improve validation for selected text range to handle empty strings and ensure valid extraction (#9329) chore: update selection-hook dependency to version 1.0.10 in package.json and yarn.lock * fix: web search references missing caused by early reset (#9328) * feat(openai): handle special tokens for zhipu api (#9323) * feat(openai): 添加对智谱特殊token的过滤处理 在OpenAIAPIClient中添加对智谱AI特殊token的过滤逻辑,避免不需要的token被输出 * docs(OpenAIApiClient): 添加注释 * refactor(zhipu): 重命名并更新智谱特殊token处理逻辑 将 ZHIPU_SPECIAL_TOKENS_TO_FILTER 重命名为 ZHIPU_RESULT_TOKENS 以更准确描述用途 修改智谱API特殊token处理逻辑,不再过滤而是用**标记结果token * feat: support openai codex (#9332) * support openai codex * lint * refactor: remove unused codeTools enum from constant.ts * fix build * fix lin * fix: add support for qwenCode CLI tool and improve error handling in CodeToolsService * fix: timeout memory leak (#9312) * fix(MinappPopupContainer): 修复内存泄漏问题,清理未使用的定时器 在组件卸载时清理setTimeout定时器,避免潜在的内存泄漏 * fix(SelectModelButton): 修复模型选择后更新导致的卡顿问题 使用useRef存储定时器并在组件卸载时清理,避免内存泄漏 * fix(QuickPanel): 修复定时器未清理导致的内存泄漏问题 添加 clearSearchTimerRef 和 focusTimerRef 来管理定时器 在组件清理和状态变化时清理所有定时器 * fix(useInPlaceEdit): 修复编辑模式下定时器未清理的问题 添加清理定时器的逻辑,避免组件卸载时内存泄漏 * refactor(useKnowledge): 使用ref管理定时器并统一检查知识库逻辑 将分散的setTimeout调用统一为checkAllBases方法 使用useRef管理定时器并在组件卸载时清理 * fix(useScrollPosition): 修复滚动位置恢复时的内存泄漏问题 添加清理函数以清除未完成的定时器,防止组件卸载时内存泄漏 * fix(WebSearchProviderSetting): 清理定时器防止内存泄漏 在组件卸载时清理检查API有效性的定时器,避免潜在的内存泄漏问题 * fix(selection-toolbar): 修复选中文本时定时器未清理的问题 * fix(translate): 修复复制文本时定时器未清理的问题 添加 copyTimerRef 来管理复制操作的定时器,并在组件卸载时清理定时器 * fix(WebSearchSettings): 使用useRef管理订阅验证定时器以避免内存泄漏 * fix(MCPSettings): 修复定时器未清理导致的内存泄漏问题 添加 useRef 来存储定时器引用,并在组件卸载时清理定时器 * refactor(ThinkingBlock): 使用 useTemporaryValue 替换手动 setTimeout 移除手动设置的 setTimeout 来重置 copied 状态,改用 useTemporaryValue hook 自动处理 * refactor(ChatNavigation): 使用 useRef 替代 useState 管理定时器 简化定时器管理逻辑,避免不必要的状态更新 * fix(AddAssistantPopup): 清理创建助手时的定时器以避免内存泄漏 添加useEffect清理定时器,防止组件卸载时内存泄漏 * feat(hooks): 添加useTimer钩子管理定时器 实现一个自定义hook来集中管理setTimeout和setInterval定时器 自动在组件卸载时清理所有定时器防止内存泄漏 * refactor(Inputbar): 使用 useTimer 替换 setTimeout 实现延迟更新 将 setTimeout 替换为 useTimer 的自定义 setTimeoutTimer 方法,提高代码可维护性并统一计时器管理 * refactor(WindowFooter): 使用 useTimer 替换 setTimeout 以管理定时器 * docs(useTimer): 更新定时器hook的注释格式和描述 * feat(hooks): 为useTimer添加返回清理函数的功能 允许从setTimeoutTimer和setIntervalTimer返回清理函数,便于手动清除定时器 * refactor(ImportAgentPopup): 使用useTimer替换setTimeout以管理定时器 * refactor: 使用useTimer替代setTimeout以优化定时器管理 * refactor(SearchResults): 使用useTimer替换setTimeout以管理定时器 * refactor(消息组件): 使用useTimer替换setTimeout以管理定时器 * refactor: 使用useTimer替换setTimeout以优化定时器管理 * refactor(AssistantsDrawer): 使用useTimer替换setTimeout以优化定时器管理 * refactor(Inputbar): 使用useTimer替换setTimeout以优化定时器管理 * refactor(MCPToolsButton): 使用useTimer优化定时器管理 * refactor(QuickPhrasesButton): 使用useTimer替换setTimeout以优化定时器管理 * refactor(ChatFlowHistory): 使用useTimer替换setTimeout以管理定时器 * refactor(Message): 使用useTimer替换setTimeout以管理定时器 * refactor(MessageAnchorLine): 使用useTimer替换setTimeout以优化定时器管理 * refactor(MessageGroup): 使用useTimer替换setTimeout以优化定时器管理 * refactor(MessageMenubar): 使用 useTemporaryValue 替换手动 setTimeout 逻辑 * refactor(Messages): 使用 useTimer 优化定时器管理 * refactor(MessageTools): 使用useTimer替换setTimeout以管理定时器 * fix(SelectionBox): 修复鼠标移动时未清除定时器导致的内存泄漏 在鼠标移动事件处理中增加定时器清理逻辑,避免组件卸载时未清除定时器导致的内存泄漏问题 * refactor(ErrorBlock): 使用自定义hook替换setTimeout 使用useTimer中的setTimeoutTimer替代原生setTimeout,便于统一管理定时器 * refactor(GeneralSettings): 使用useTimer替换setTimeout以实现更好的定时器管理 * refactor(ShortcutSettings): 使用useTimer替换setTimeout以优化定时器管理 * refactor(AssistantModelSettings): 使用useTimer替换setTimeout以优化定时器管理 * refactor(DataSettings): 使用useTimer替换setTimeout以增强定时器管理 统一使用useTimer hook管理所有定时器操作,提高代码可维护性 * refactor(NutstoreSettings): 使用useTimer优化setTimeout管理 替换直接使用setTimeout为useTimer hook的setTimeoutTimer方法,提升定时器管理的可维护性 * refactor(MCPSettings): 使用useTimer替换setTimeout以提升代码可维护性 * refactor(ProviderSetting): 使用useTimer优化setTimeout管理 * refactor(ProviderSettings): 使用 useTimer 替换 setTimeout 以优化定时器管理 * refactor(InputBar): 使用useTimer替换setTimeout以实现更好的定时器管理 * refactor(MessageEditor): 使用useTimer替换setTimeout以管理定时器 使用自定义hook useTimer来替代原生setTimeout,便于统一管理和清理定时器 * docs(useTimer): 添加 useTimer hook 的使用示例和详细说明 * refactor(MinappPopupContainer): 使用useTimer替换setTimeout实现 替换直接使用setTimeout为自定义hook useTimer,简化组件清理逻辑 * refactor(AddAssistantPopup): 使用useTimer替换手动定时器管理 用useTimer钩子替代手动管理定时器,简化代码并提高可维护性 * refactor(WebSearchSettings): 使用 useTimer 替换手动定时器管理 移除手动管理的定时器逻辑,改用 useTimer hook 统一处理 * refactor(WebSearchProviderSetting): 使用自定义hook替代原生定时器 用useTimer hook替换原有的setTimeout和clearTimeout逻辑,提高代码可维护性 * refactor(translate): 使用 useTemporaryValue 替换手动实现的复制状态定时器 * refactor(SelectionToolbar): 使用 useTimer 钩子替换 setTimeout 和 clearTimeout 重构 SelectionToolbar 组件,使用自定义的 useTimer 钩子来管理定时器,提升代码可维护性 清理隐藏时的定时器逻辑,避免内存泄漏 * fix(Translate): update settings into db (#9305) * fix(翻译): 修复设置没有储存到db的错误 * fix(translate): 修复自动检测方法设置更新失败的问题 添加错误处理逻辑,当更新自动检测方法设置失败时显示错误信息 * Fix AWS Bedrock models not receiving uploaded document content (#9337) * Initial plan * Add file content processing to AWS Bedrock client convertMessageToSdkParam method Co-authored-by: caozhiyuan <3415285+caozhiyuan@users.noreply.github.com> * Fix file content format to match other AI clients and update tests Co-authored-by: caozhiyuan <3415285+caozhiyuan@users.noreply.github.com> * Update src/renderer/src/aiCore/clients/aws/AwsBedrockAPIClient.ts --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: caozhiyuan <3415285+caozhiyuan@users.noreply.github.com> Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com> * feat(migrate): initialize default assistant settings if not present (#9303) * feat(migrate): update migration logic for version 134; initialize default assistant settings if not present * Update src/renderer/src/store/migrate.ts Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com> --------- Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com> * feat: support language aliases for code editor (#9336) * feat(CodeEditor): support language aliases * fix: mermaid * refactor: lookup * chore: sort package.json * fix(SelectionHook): [macOS] add type safety to prevent crashes (#9354) chore: update selection-hook dependency to version 1.0.11 in package.json and yarn.lock * fix: sidebar code icon reset bug (#9307) (#9333) * fix: 修复侧边栏重置时 Code 图标消失的问题 (#9307) 问题原因: - types/index.ts 中的 SidebarIcon 类型定义缺少 'code_tools' - 存在重复的类型定义和常量定义导致不一致 修复内容: - 在 types/index.ts 的 SidebarIcon 类型中添加 'code_tools' - 删除 minapps.ts 中重复的 DEFAULT_SIDEBAR_ICONS 常量 - 统一从 @renderer/types 导入 SidebarIcon 类型 - 删除 settings.ts 中重复的 SidebarIcon 类型定义 这确保了在导航栏设置为左侧时,点击侧边栏设置的重置按钮后, Code 图标能够正确显示。 * refactor: 将侧边栏配置移至 config 目录 根据 code review 建议,将侧边栏相关配置从 store/settings.ts 移动到 config/sidebar.ts,使配置管理更加清晰。 改动内容: - 创建 config/sidebar.ts 存放侧边栏配置常量 - 更新相关文件的导入路径 - 在 settings.ts 中重新导出以保持向后兼容 - 添加 REQUIRED_SIDEBAR_ICONS 常量便于未来扩展 这个改动保持了最小化原则,不影响现有功能。 * refactor: improve locate highlight animation (#9345) * feat(utils): show weekday in date and datetime prompt variables (#9362) * feat(utils): 优化日期时间变量替换格式 为 {{date}} 和 {{datetime}} 变量替换添加更详细的格式选项,包括星期、年月日和时间信息 * test(prompt): 更新测试中日期时间的本地化格式 * refactor(CodeToolsPage): simplify CLI tool change handling and optimize provider filtering logic * fix(newMessage): reduce default display count from 20 to 10 * feat(AssistantService): introduce DEFAULT_ASSISTANT_SETTINGS for consistent assistant configuration and update migration logic for version 136 * chore: release v1.5.7-rc.2 * fix(Markdown/Link): set href to undefined when it's empty (#9343) fix(Markdown/Link): 处理空链接时设置href为undefined * fix(Inputbar): update file handling to use functional state update for setFiles * refactor(file): update isSupportedFile function to accept filePath instead of FileMetadata for improved clarity and consistency in file handling --------- Co-authored-by: icarus <eurfelux@gmail.com> Co-authored-by: kangfenmao <kangfenmao@qq.com> Co-authored-by: one <wangan.cs@gmail.com> Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com> Co-authored-by: alickreborn0 <i@guyi.me> Co-authored-by: yunze <yunze.wyz@alibaba-inc.com> Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com> Co-authored-by: caozhiyuan <568022847@qq.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: caozhiyuan <3415285+caozhiyuan@users.noreply.github.com> Co-authored-by: SuYao <sy20010504@gmail.com> Co-authored-by: Jason Young <44939412+farion1231@users.noreply.github.com>
307 lines
12 KiB
JSON
307 lines
12 KiB
JSON
{
|
|
"name": "CherryStudio",
|
|
"version": "1.5.7-rc.2",
|
|
"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"
|
|
},
|
|
"workspaces": {
|
|
"packages": [
|
|
"local",
|
|
"packages/*"
|
|
],
|
|
"installConfig": {
|
|
"hoistingLimits": [
|
|
"packages/database",
|
|
"packages/mcp-trace/trace-core",
|
|
"packages/mcp-trace/trace-node",
|
|
"packages/mcp-trace/trace-web"
|
|
]
|
|
}
|
|
},
|
|
"scripts": {
|
|
"start": "electron-vite preview",
|
|
"dev": "dotenv electron-vite dev",
|
|
"debug": "electron-vite -- --inspect --sourcemap --remote-debugging-port=9222",
|
|
"build": "npm run typecheck && electron-vite build",
|
|
"build:check": "yarn lint && yarn 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",
|
|
"build:npm": "node scripts/build-npm.js",
|
|
"release": "node scripts/version.js",
|
|
"publish": "yarn build:check && yarn release patch push",
|
|
"pulish:artifacts": "cd packages/artifacts && npm publish && cd -",
|
|
"generate:agents": "yarn workspace @cherry-studio/database agents",
|
|
"generate:icons": "electron-icon-builder --input=./build/logo.png --output=build",
|
|
"analyze:renderer": "VISUALIZER_RENDERER=true yarn build",
|
|
"analyze:main": "VISUALIZER_MAIN=true yarn build",
|
|
"typecheck": "npm run typecheck:node && npm run typecheck:web",
|
|
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
|
|
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
|
|
"check:i18n": "tsx scripts/check-i18n.ts",
|
|
"sync:i18n": "tsx scripts/sync-i18n.ts",
|
|
"update:i18n": "dotenv -e .env -- tsx scripts/update-i18n.ts",
|
|
"auto:i18n": "dotenv -e .env -- tsx scripts/auto-translate-i18n.ts",
|
|
"update:languages": "tsx scripts/update-languages.ts",
|
|
"test": "vitest run --silent",
|
|
"test:main": "vitest run --project main",
|
|
"test:renderer": "vitest run --project renderer",
|
|
"test:update": "yarn test:renderer --update",
|
|
"test:coverage": "vitest run --coverage --silent",
|
|
"test:ui": "vitest --ui",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "yarn playwright test",
|
|
"test:lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
|
|
"test:scripts": "vitest scripts",
|
|
"format": "prettier --write .",
|
|
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix && yarn typecheck && yarn check:i18n",
|
|
"prepare": "git config blame.ignoreRevsFile .git-blame-ignore-revs && husky"
|
|
},
|
|
"dependencies": {
|
|
"@libsql/client": "0.14.0",
|
|
"@libsql/win32-x64-msvc": "^0.4.7",
|
|
"@strongtz/win32-arm64-msvc": "^0.4.7",
|
|
"graceful-fs": "^4.2.11",
|
|
"jsdom": "26.1.0",
|
|
"node-stream-zip": "^1.15.0",
|
|
"officeparser": "^4.2.0",
|
|
"os-proxy-config": "^1.1.2",
|
|
"selection-hook": "^1.0.11",
|
|
"turndown": "7.2.0"
|
|
},
|
|
"devDependencies": {
|
|
"@agentic/exa": "^7.3.3",
|
|
"@agentic/searxng": "^7.3.3",
|
|
"@agentic/tavily": "^7.3.3",
|
|
"@ant-design/v5-patch-for-react-19": "^1.0.3",
|
|
"@anthropic-ai/sdk": "^0.41.0",
|
|
"@anthropic-ai/vertex-sdk": "patch:@anthropic-ai/vertex-sdk@npm%3A0.11.4#~/.yarn/patches/@anthropic-ai-vertex-sdk-npm-0.11.4-c19cb41edb.patch",
|
|
"@aws-sdk/client-bedrock": "^3.840.0",
|
|
"@aws-sdk/client-bedrock-runtime": "^3.840.0",
|
|
"@aws-sdk/client-s3": "^3.840.0",
|
|
"@cherrystudio/embedjs": "^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",
|
|
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
|
|
"@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",
|
|
"@google/genai": "patch:@google/genai@npm%3A1.0.1#~/.yarn/patches/@google-genai-npm-1.0.1-e26f0f9af7.patch",
|
|
"@hello-pangea/dnd": "^16.6.0",
|
|
"@kangfenmao/keyv-storage": "^0.1.0",
|
|
"@langchain/community": "^0.3.36",
|
|
"@langchain/ollama": "^0.2.1",
|
|
"@mistralai/mistralai": "^1.7.5",
|
|
"@modelcontextprotocol/sdk": "^1.17.0",
|
|
"@mozilla/readability": "^0.6.0",
|
|
"@notionhq/client": "^2.2.15",
|
|
"@opentelemetry/api": "^1.9.0",
|
|
"@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",
|
|
"@playwright/test": "^1.52.0",
|
|
"@reduxjs/toolkit": "^2.2.5",
|
|
"@shikijs/markdown-it": "^3.9.1",
|
|
"@swc/plugin-styled-components": "^7.1.5",
|
|
"@tanstack/react-query": "^5.27.0",
|
|
"@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",
|
|
"@tryfabric/martian": "^1.2.4",
|
|
"@types/cli-progress": "^3",
|
|
"@types/diff": "^7",
|
|
"@types/fs-extra": "^11",
|
|
"@types/lodash": "^4.17.5",
|
|
"@types/markdown-it": "^14",
|
|
"@types/md5": "^2.3.5",
|
|
"@types/node": "^22.17.1",
|
|
"@types/pako": "^1.0.2",
|
|
"@types/react": "^19.0.12",
|
|
"@types/react-dom": "^19.0.4",
|
|
"@types/react-infinite-scroll-component": "^5.0.0",
|
|
"@types/react-transition-group": "^4.4.12",
|
|
"@types/tinycolor2": "^1",
|
|
"@types/word-extractor": "^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",
|
|
"antd": "patch:antd@npm%3A5.27.0#~/.yarn/patches/antd-npm-5.27.0-aa91c36546.patch",
|
|
"archiver": "^7.0.1",
|
|
"async-mutex": "^0.5.0",
|
|
"axios": "^1.7.3",
|
|
"browser-image-compression": "^2.0.2",
|
|
"chardet": "^2.1.0",
|
|
"cli-progress": "^3.12.0",
|
|
"code-inspector-plugin": "^0.20.14",
|
|
"color": "^5.0.0",
|
|
"country-flag-emoji-polyfill": "0.1.8",
|
|
"dayjs": "^1.11.11",
|
|
"dexie": "^4.0.8",
|
|
"dexie-react-hooks": "^1.1.7",
|
|
"diff": "^7.0.0",
|
|
"docx": "^9.0.2",
|
|
"dotenv-cli": "^7.4.2",
|
|
"electron": "37.3.1",
|
|
"electron-builder": "26.0.15",
|
|
"electron-devtools-installer": "^3.2.0",
|
|
"electron-store": "^8.2.0",
|
|
"electron-updater": "6.6.4",
|
|
"electron-vite": "4.0.0",
|
|
"electron-window-state": "^5.0.3",
|
|
"emittery": "^1.0.3",
|
|
"emoji-picker-element": "^1.22.1",
|
|
"epub": "patch:epub@npm%3A1.3.0#~/.yarn/patches/epub-npm-1.3.0-8325494ffe.patch",
|
|
"eslint": "^9.22.0",
|
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
"fast-diff": "^1.3.0",
|
|
"fast-xml-parser": "^5.2.0",
|
|
"fetch-socks": "1.3.2",
|
|
"franc-min": "^6.2.0",
|
|
"fs-extra": "^11.2.0",
|
|
"google-auth-library": "^9.15.1",
|
|
"html-to-image": "^1.11.13",
|
|
"husky": "^9.1.7",
|
|
"i18next": "^23.11.5",
|
|
"iconv-lite": "^0.6.3",
|
|
"isbinaryfile": "5.0.4",
|
|
"jaison": "^2.0.2",
|
|
"jest-styled-components": "^7.2.0",
|
|
"linguist-languages": "^8.0.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",
|
|
"mermaid": "^11.9.0",
|
|
"mime": "^4.0.4",
|
|
"motion": "^12.10.5",
|
|
"notion-helper": "^1.3.22",
|
|
"npx-scope-finder": "^1.2.0",
|
|
"openai": "patch:openai@npm%3A5.12.2#~/.yarn/patches/openai-npm-5.12.2-30b075401c.patch",
|
|
"p-queue": "^8.1.0",
|
|
"pdf-lib": "^1.17.1",
|
|
"playwright": "^1.52.0",
|
|
"prettier": "^3.5.3",
|
|
"prettier-plugin-sort-json": "^4.1.1",
|
|
"proxy-agent": "^6.5.0",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.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-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",
|
|
"remove-markdown": "^0.6.2",
|
|
"rollup-plugin-visualizer": "^5.12.0",
|
|
"sass": "^1.88.0",
|
|
"shiki": "^3.9.1",
|
|
"strict-url-sanitise": "^0.0.1",
|
|
"string-width": "^7.2.0",
|
|
"styled-components": "^6.1.11",
|
|
"tar": "^7.4.3",
|
|
"tiny-pinyin": "^1.3.2",
|
|
"tokenx": "^1.1.0",
|
|
"tsx": "^4.20.3",
|
|
"typescript": "^5.6.2",
|
|
"undici": "6.21.2",
|
|
"unified": "^11.0.5",
|
|
"uuid": "^10.0.0",
|
|
"vite": "npm:rolldown-vite@latest",
|
|
"vitest": "^3.2.4",
|
|
"webdav": "^5.8.0",
|
|
"winston": "^3.17.0",
|
|
"winston-daily-rotate-file": "^5.0.0",
|
|
"word-extractor": "^1.0.4",
|
|
"zipread": "^1.3.3",
|
|
"zod": "^3.25.74"
|
|
},
|
|
"resolutions": {
|
|
"@codemirror/language": "6.11.3",
|
|
"@codemirror/lint": "6.8.5",
|
|
"@codemirror/view": "6.38.1",
|
|
"@langchain/core@npm:^0.3.26": "patch:@langchain/core@npm%3A0.3.44#~/.yarn/patches/@langchain-core-npm-0.3.44-41d5c3cb0a.patch",
|
|
"@langchain/openai@npm:^0.3.16": "patch:@langchain/openai@npm%3A0.3.16#~/.yarn/patches/@langchain-openai-npm-0.3.16-e525b59526.patch",
|
|
"@langchain/openai@npm:>=0.1.0 <0.4.0": "patch:@langchain/openai@npm%3A0.3.16#~/.yarn/patches/@langchain-openai-npm-0.3.16-e525b59526.patch",
|
|
"app-builder-lib@npm:26.0.13": "patch:app-builder-lib@npm%3A26.0.13#~/.yarn/patches/app-builder-lib-npm-26.0.13-a064c9e1d0.patch",
|
|
"app-builder-lib@npm:26.0.15": "patch:app-builder-lib@npm%3A26.0.15#~/.yarn/patches/app-builder-lib-npm-26.0.15-360e5b0476.patch",
|
|
"atomically@npm:^1.7.0": "patch:atomically@npm%3A1.7.0#~/.yarn/patches/atomically-npm-1.7.0-e742e5293b.patch",
|
|
"file-stream-rotator@npm:^0.6.1": "patch:file-stream-rotator@npm%3A0.6.1#~/.yarn/patches/file-stream-rotator-npm-0.6.1-eab45fb13d.patch",
|
|
"libsql@npm:^0.4.4": "patch:libsql@npm%3A0.4.7#~/.yarn/patches/libsql-npm-0.4.7-444e260fb1.patch",
|
|
"node-abi": "4.12.0",
|
|
"openai@npm:^4.77.0": "patch:openai@npm%3A5.12.2#~/.yarn/patches/openai-npm-5.12.2-30b075401c.patch",
|
|
"openai@npm:^4.87.3": "patch:openai@npm%3A5.12.2#~/.yarn/patches/openai-npm-5.12.2-30b075401c.patch",
|
|
"pdf-parse@npm:1.1.1": "patch:pdf-parse@npm%3A1.1.1#~/.yarn/patches/pdf-parse-npm-1.1.1-04a6109b2a.patch",
|
|
"pkce-challenge@npm:^4.1.0": "patch:pkce-challenge@npm%3A4.1.0#~/.yarn/patches/pkce-challenge-npm-4.1.0-fbc51695a3.patch",
|
|
"undici": "6.21.2",
|
|
"vite": "npm:rolldown-vite@latest"
|
|
},
|
|
"packageManager": "yarn@4.9.1",
|
|
"lint-staged": {
|
|
"*.{js,jsx,ts,tsx,cjs,mjs,cts,mts}": [
|
|
"prettier --write",
|
|
"eslint --fix"
|
|
],
|
|
"*.{json,md,yml,yaml,css,scss,html}": [
|
|
"prettier --write"
|
|
]
|
|
}
|
|
}
|