Commit Graph

4099 Commits

Author SHA1 Message Date
one
263166c9d1
refactor: improve mcp server list (#9257)
* refactor: mcp server list

* feat: add a delete button, improve button style

* refactor(McpServerList): extract McpServerCard

* feat: show numbers in tab titles

* refactor(preload): 明确getServerVersion返回类型为Promise<string | null>

* refactor(hooks): 移除MCPServer数组的类型断言

* refactor(MCPSettings): 简化服务器标签的渲染逻辑

* Revert "refactor(MCPSettings): 简化服务器标签的渲染逻辑"

This reverts commit 1dd08909af.

* doc: add comments

---------

Co-authored-by: icarus <eurfelux@gmail.com>
2025-08-19 10:26:06 +08:00
lizhixuan
d93a36e5c9 feat(toolUsePlugin): enhance tool parsing and extraction functionality
- Updated the `defaultParseToolUse` function to return both parsed results and remaining content, improving usability.
- Introduced a new `TagExtractor` class for flexible tag extraction, supporting various tag formats.
- Modified type definitions to reflect changes in parsing function signatures.
- Enhanced handling of tool call events in the `ToolCallChunkHandler` for better integration with the new parsing logic.
- Added `isBuiltIn` property to the `MCPTool` interface for clearer tool categorization.
2025-08-19 00:44:30 +08:00
MyPrototypeWhat
c9c0616c91 feat(provider): enhance provider registration and validation system
- Introduced a new Zod-based schema for provider validation, improving type safety and consistency.
- Added support for dynamic provider IDs and enhanced the provider registration process.
- Updated the AiProviderRegistry to utilize the new validation functions, ensuring robust provider management.
- Added tests for the provider registry to validate dynamic imports and functionality.
- Updated yarn.lock to reflect the latest dependency versions.
2025-08-18 19:41:43 +08:00
Gophlet
f3884af4b9
fix(Artboard): update dimensions to use CSS variables for better layout control (#9277) 2025-08-18 18:18:44 +08:00
Phantom
9a4200ac1a
feat(translate): Automatic language detection based on LLM (#7798)
* docs(i18n): 添加LLM语言检测相关i18n文本

* feat(translate): 添加语言自动检测功能支持

新增语言自动检测方法选择,支持算法检测、LLM检测和智能选择模式
添加未知语言类型支持并更新多语言翻译配置
重构语言检测逻辑,移除旧版基于Unicode的检测方法

* fix: 从依赖数组中移除未使用的autoDetectMethod

* refactor(translate): 修复命名语法错误

* fix(translate): 移除历史记录点击时设置源语言的操作

* refactor(Inputbar): 使用useTranslate钩子替换直接导入的翻译函数

将直接导入的getLanguageByLangcode函数替换为useTranslate钩子中的实现,以保持代码一致性

* refactor(翻译): 将translateLanguageOptions移动到utils/translate中获取

* refactor(TextEditPopup): 使用useTranslate钩子替代直接导入翻译工具

将直接导入的getLanguageByLangcode函数替换为useTranslate钩子中的实现,保持代码一致性

* refactor(translate): 调整翻译设置界面的语言检测方法位置

将语言检测方法选项从中间位置移动到底部,并更新相关标签文本

* refactor(types): 将AutoDetectionMethod类型移至types文件并添加类型守卫

将AutoDetectionMethod类型定义从translate.ts移动到types/index.ts
添加AutoDetectionMethods常量和isAutoDetectionMethod验证方法

* style(translate): 调整翻译设置页面的样式和内联条件渲染

优化翻译设置页面的布局间距,使用条件渲染替代display属性控制元素显示

* refactor(translate): 使用useCallback优化setTranslating函数

* feat(i18n): 添加语言自动检测方法的翻译文本

* fix(翻译动作): 修复源语言与目标语言比较逻辑错误

* fix(翻译设置): 修复未保存设置的问题

* fix(QwenMT): 修复QwenMT模型语言检测问题并添加错误处理

当使用QwenMT模型进行语言检测时自动回退到默认模型,并添加相关错误提示
更新i18n翻译文本以支持新的错误消息

* feat(translate): 添加日志记录以跟踪语言检测过程

添加日志记录来跟踪语言检测方法的选择和检测结果

* feat(i18n): 添加模型不存在提示和语言检测相关翻译

* fix(翻译提示): 更新语言检测提示以避免输出多余内容

* fix(翻译): 改进未知语言处理和日志记录

修复未知语言检测时的处理逻辑,当检测到未知语言时直接使用目标语言
为ActionTranslate组件添加日志上下文
在日志中记录检测到的语言信息

* fix: 将语言检测的callType从lang-detect更新为translate-lang-detect

* refactor(translate): 使用token计数替代字符长度判断语言检测方式

将基于字符长度的语言检测阈值判断改为基于token计数,提高检测准确性
使用sliceByTokens方法替代简单的slice,确保截取的文本符合token限制

* fix(i18n): 更新未知语言检测的错误消息并移除废弃字段

统一将未知语言错误提示从'translate.error.detected_unknown'迁移至'translate.error.detect.unknown',并移除所有语言文件中废弃的'detected_unknown'字段

* docs(schemas): 添加测试调用和翻译语言检测的callType选项文档
2025-08-18 18:00:08 +08:00
one
32d5f7477a
fix: markdown span wrap (#9264) 2025-08-18 13:40:59 +08:00
one
ecf1f816c3
refactor: bump antd to 5.27.0, update Input.Password suffix (#9263) 2025-08-18 13:39:56 +08:00
Phantom
f9056b0680
fix(providers): update poe url (#9262)
* fix(providers): 修正poe api的url结尾缺少斜杠的问题

* feat(types): 扩展 ReasoningEffortOptionalParams 中的 extra_body 类型

为 extra_body 添加具体的 google 配置类型,包括 thinking_config 及其属性

* feat(openai): 为Poe提供商添加推理参数传递支持

在Poe提供商的消息处理中,根据模型类型将reasoning_effort和thinking_budget参数附加到用户消息内容。支持GPT5、Claude和Gemini模型的特定参数传递。

* docs(openai): 添加关于poe reasoning_effort参数的注释
2025-08-18 11:55:10 +08:00
one
afae33d588
refactor: remove rc-virtual-list from DraggableList (#9258) 2025-08-18 09:36:15 +08:00
one
0b8c6ee536
perf(DraggableList): skip update if dnd to the same position (#9255) 2025-08-17 21:34:37 +08:00
Phantom
e652c1d783
fix: set developer role and service tier to default not supported (#9245)
* refactor(api): 将 isNotSupportDeveloperRole 替换为 isSupportDeveloperRole

重构开发者角色支持逻辑,使用正向命名的 isSupportDeveloperRole 替代反向命名的 isNotSupportDeveloperRole
更新相关迁移逻辑和配置检查逻辑

* refactor(api): 替换 isNotSupportServiceTier 为 isSupportServiceTier

将服务层级支持的否定式参数改为肯定式参数,修改默认行为为不支持
2025-08-17 19:48:41 +08:00
Phantom
aed9566409
fix: thinking button doesn't update assistant reasoning effort (#9247)
* feat(思考模式): 添加doubao_no_auto模型支持并重构选项回退逻辑

将思考模式选项回退逻辑从组件移至配置文件中统一管理
添加doubao_no_auto模型类型及其支持的选项配置

* refactor(assistant): 将模型兼容性检查逻辑移至useAssistant钩子

将ThinkingButton组件中的模型兼容性检查逻辑重构到useAssistant钩子中,使逻辑更集中
移除不再需要的useEffect导入

* refactor(useAssistant): 移除不必要的类型断言

* refactor: 移除THINKING_OPTION_FALLBACK并使用支持选项的第一个值作为回退

不再使用预定义的选项回退映射表,改为直接使用模型支持选项列表中的第一个值作为回退选项
2025-08-17 19:43:56 +08:00
one
33ec5c5c6b
refactor: improve html artifact style (#9242)
* refactor: use code font family in HtmlArtifactsCard

* fix: pass onSave to HtmlArtifactsPopup

* feat: add a save button

* fix: avoid extra blank lines

* feat: make split view resizable

* refactor: improve streaming check, simplify Markdown component

* refactor: improve button style and icons

* test: update snapshots, add tests

* refactor: move font family to TerminalPreview

* test: update

* refactor: add explicit type for Node

* refactor: remove min-height

* fix: type

* refactor: improve scrollbar and splitter style
2025-08-17 19:42:40 +08:00
one
b53a5aa3af
test: add tests for rehypeScalableSvg (#9248) 2025-08-17 18:46:33 +08:00
one
635bc084b7
refactor: rename some MCP list (#9253)
- BuiltinMCPServersSection -> BuiltinMCPServerList
- McpResourcesSection -> McpMarketList
2025-08-17 17:55:59 +08:00
Phantom
f0bd6c97fa
fix(providers): update not support enable_thinking providers (#9251)
fix(providers): 更新不支持enable_thinking参数的系统提供商列表

将不支持enable_thinking参数的系统提供商明确设置为'ollama'和'lmstudio',移除之前的注释说明
2025-08-17 17:28:39 +08:00
one
356443babf fix: remove default renderer from MessageTool 2025-08-17 17:00:43 +08:00
one
b2c512082f fix: missing dependencies 2025-08-17 16:41:50 +08:00
one
0273c58050 fix: file name 2025-08-17 16:14:36 +08:00
one
239c849890 Merge branch 'main' into feat/aisdk-package 2025-08-17 16:11:18 +08:00
George·Dong
13a834ceaa
ci(PR-CI): grant only read permission for contents in CI (#9246) 2025-08-17 15:27:24 +08:00
one
ded941b7b9
refactor(Mermaid): render mermaid in shadow dom (#9187)
* refactor(Mermaid): render mermaid in shadow dom

* refactor: pass style overrides to renderSvgInShadowHost

* refactor(MermaidPreview): separate measurement from rendering

* refactor: rename hostCss to customCss

* refactor: use custom properties in shadow host

* test: update snapshots

* fix: remove svg max-width

* refactor: add viewBox to svg (experimental)

* Revert "refactor: add viewBox to svg (experimental)"

This reverts commit 8a265fa8a4.
2025-08-17 13:22:59 +08:00
Jason Young
535dcf4778
Fix/at symbol deletion issue (#9206)
* fix: prevent incorrect @ symbol deletion in QuickPanel

- Track trigger source (input vs button) and @ position
- Only delete @ when triggered by input with model selection
- Button-triggered panels never delete text content
- Validate @ still exists at recorded position before deletion

* feat: delete search text along with @ symbol

- Pass searchText from QuickPanel to onClose callback
- Delete both @ and search text (e.g., @cla) when model selected
- Validate text matches before deletion for safety
- Fallback to deleting only @ if text doesn't match

* refactor: clarify ESC vs Backspace behavior in QuickPanel

- ESC: Cancel operation, delete @ + searchText when models selected
- Backspace: Natural editing, @ already deleted by browser, no extra action
- Clear separation of intent improves predictability and UX
2025-08-17 11:43:44 +08:00
George·Dong
4dad2a593b
fix(export): robustly export reasoning and handle errors (#9221)
* fix(export): robustly export reasoning and handle errors

* fix(export): normalize <br> to newline before notion parsing

* feat(i18n): add notion truncation and unify export warn keys

* refactor(export): add typing, state guards, and error logging

* fix(export): preserve existing <br> in reasoning when convert to html

* feat(export): add DOMPurify sanitization for reasoning content

* chore(deps): remove unused @types/dompurify dev dep

* chore(deps): remove dompurify dependency

Remove dompurify from package.json and yarn. The changes
delete dompurify entries and simplify the lockfile resolution so the
project no longer declares dompurify as a direct dependency.

This cleans up unused dependency declarations and prevents installing
dompurify when it is not required.
2025-08-17 00:41:48 +08:00
chenxue
8b5a3f734c
feat(aihubmix): painting support flux model & update web search rules & update default models (#9220)
* feat: add painting flux model & update web search models

* feat: update flux api

---------

Co-authored-by: zhaochenxue <zhaochenxue@bixin.cn>
2025-08-17 00:40:06 +08:00
Caelan
b3643944f3
feat(DMXAPI): new add painting seededit (#9226)
adjust api
2025-08-16 23:32:26 +08:00
one
e2e8ded2c0
refactor: improve style for ManageModelList and Tooltips (#9227)
* refactor(ManageModelsPopup): remove margin of Empty

* chore: use destroyOnHidden rather than deprecated destroyTooltipOnHide

* refactor: center Empty
2025-08-16 23:20:38 +08:00
one
72d0fea3a1
refactor(SvgPreview,Markdown): make svg size adaptive (#9232)
* refactor(Svg): make svg preview scalable

* feat: make svg in markdown scalable

* refactor: add measureElementSize

* refactor: improve rehypeScalableSvg, add MarkdownSvgRenderer

* fix: svg namespace

* perf: improve namespace correction

* refactor: rename makeSvgScalable to makeSvgSizeAdaptive

* test: fix tests for renderSvgInShadowHost

* refactor: improve MarkdownSvgRenderer re-render

* feat: sanitize svg before rendering

* feat: make MarkdownSvgRenderer clickable

* test: fix

* Revert "feat: make MarkdownSvgRenderer clickable"

This reverts commit 73af8fbb8c.

* refactor: use context menu in MarkdownSvgRenderer

* refactor: remove preserveAspectRatio from svg
2025-08-16 23:19:47 +08:00
beyondkmp
62a6a0a8be
fix: Update KnowledgeBase form and service to handle preprocess provider correctly (#9229)
* fix: Update KnowledgeBase form and service to handle preprocess provider correctly

- Enhanced useKnowledgeBaseForm hook to set preprocessProvider with the correct providerId type.
- Modified getKnowledgeBaseParams function to retrieve preprocess provider from the store instead of the base, ensuring accurate provider assignment.

* fix: Remove unused providerId from preprocessProvider in useKnowledgeBaseForm hook

- Cleaned up the useKnowledgeBaseForm hook by removing the unused providerId property from the preprocessProvider object, ensuring a more accurate representation of the data structure.

* format code

* feat: Sync preprocess provider updates across knowledge bases

- Added a new action to synchronize updates to the preprocess provider across all knowledge bases that reference it.
- Updated the usePreprocessProvider hook to dispatch the new sync action after updating the provider.
- Modified getKnowledgeBaseParams to ensure the correct preprocess provider is assigned when retrieving knowledge base parameters.

* fix: Update sync logic for preprocess provider updates

- Modified the syncPreprocessProvider action to merge updates directly into the existing provider object instead of replacing it.
- Adjusted the usePreprocessProvider hook to only dispatch the sync action when specific fields (apiHost, apiKey, model) are updated, improving efficiency.
2025-08-16 21:14:47 +08:00
miro
04326eba21
feat: Use different window name for Quick Assistant (#9217)
Co-authored-by: Miro Klarin <miro.klarin@proton.me>
2025-08-16 11:21:29 +08:00
Pleasure1234
a02b4b3955
fix: websearch (#9222)
Update LocalSearchProvider.ts
2025-08-16 04:00:32 +08:00
SuYao
e0dbd2d2db
fix/9165 (#9194)
* fix/9165

* fix: early return
2025-08-15 22:56:40 +08:00
beyondkmp
4a62bb6ad7
refactor: replace axios and node fetch with electron's net module (#9212)
* refactor: replace axios and node fetch with electron's net module for network requests in preprocess providers

- Updated Doc2xPreprocessProvider and MineruPreprocessProvider to use net.fetch instead of axios for making HTTP requests.
- Improved error handling for network responses across various methods.
- Removed unnecessary AxiosRequestConfig and related code to streamline the implementation.

* lint

* refactor(Doc2xPreprocessProvider): enhance file validation and upload process

- Added file size validation to prevent loading files larger than 300MB into memory.
- Implemented file size check before reading the PDF to ensure efficient memory usage.
- Updated the file upload method to use a stream, setting the 'Content-Length' header for better handling of large files.

* refactor(brave-search): update net.fetch calls to use url.toString()

- Modified all instances of net.fetch to use url.toString() for better URL handling.
- Ensured consistency in how URLs are passed to the fetch method across various functions.

* refactor(MCPService): improve URL handling in net.fetch calls

- Updated net.fetch to use url.toString() for better type handling of URLs.
- Ensured consistent URL processing across the MCPService class.

* feat(ProxyManager): integrate axios with fetch proxy support

- Added axios as a dependency to enable fetch proxy usage.
- Implemented logic to set axios's adapter to 'fetch' for proxy handling.
- Preserved original axios adapter for restoration when disabling the proxy.
2025-08-15 22:48:22 +08:00
MyPrototypeWhat
bbc472c169 refactor(types): modify ProviderId type definition for improved flexibility
- Updated ProviderId type from an intersection of keyof ExtensibleProviderSettingsMap and string to a union, allowing for greater compatibility with dynamic provider settings.
2025-08-15 18:11:43 +08:00
MyPrototypeWhat
b099c9b0b3 refactor(types): update ProviderId type definition for better compatibility
- Changed ProviderId type from a union of keyof ExtensibleProviderSettingsMap and string to an intersection, enhancing type safety.
- Renamed appendTrace method to appendMessageTrace in SpanManagerService for clarity and consistency.
- Updated references to appendTrace in useMessageOperations and ApiService to use the new method name.
- Added a new appendTrace method in SpanManagerService to bind existing traces, improving trace management.
- Adjusted topicId handling in fetchMessagesSummary to default to an empty string for better consistency.
2025-08-15 18:04:24 +08:00
陈天寒
748ac600fa
fix(aws-bedrock): support thinking mode (#9172)
* fix(aws-bedrock): support thinking mode

* fix(aws-bedrock): fix code review suggestions

* fix(aws-bedrock): Add thinking processing for other models
2025-08-15 15:13:48 +08:00
Phantom
c2561726e0
style(Inputbar): use primary color for buttons (#9174)
style(Inputbar): 统一按钮激活状态颜色为主题色

将输入栏中多个按钮的激活状态颜色从链接色(--color-link)统一为主题色(--color-primary),保持UI一致性
2025-08-15 14:31:49 +08:00
MyPrototypeWhat
628919b562 chore: update dependencies and remove unused patches
- Updated various package versions in yarn.lock for improved compatibility and performance.
- Removed obsolete patches for antd and openai, streamlining the dependency management.
- Adjusted icon imports in Dropdown and useIcons to utilize Lucide icons for better visual consistency.
2025-08-15 11:47:24 +08:00
MyPrototypeWhat
d05ed94702 Merge branch 'main' into feat/aisdk-package 2025-08-15 11:11:20 +08:00
beyondkmp
f2b7b07e51
refactor(AppUpdater): streamline release version fetching and improve update logic (#9167)
- Renamed method from _getPreReleaseVersionFromGithub to _getReleaseVersionFromGithub for clarity.
- Enhanced logic to check for the latest release version using semver.
- Removed unnecessary checks related to test plans when updates are not available.
- Improved logging for better traceability of release version fetching.
2025-08-15 10:45:11 +08:00
SuYao
d1e19aad51
fix: unexpected loading (#9193)
fix
2025-08-15 09:28:43 +08:00
George·Dong
5d34e49c57
refactor(bakcup): 单例化S3/WebDAV (#9181)
* feat(backup): 单例化S3/WebDAV并动态更新配置

* feat(backup): reuse storage instances by comparing core configs

* feat(backup): cache only connection fields for storages
2025-08-15 01:55:19 +08:00
Phantom
bef0180e4c
feat: web search icons (#9147)
* feat(类型): 添加WebSearchProviderIds常量并更新WebSearchProvider类型

* refactor(web-search): 重构网络搜索提供商配置和logo获取逻辑

将webSearchProviders.ts中的提供商logo获取函数移动到使用组件中
并优化提供商配置的类型定义

* feat(WebSearchButton): 添加不同搜索引擎的图标支持

为WebSearchButton组件添加多个搜索引擎的图标支持,包括Baidu、Google、Bing等

* feat(types): 添加预处理和网页搜索提供者的类型校验函数

添加 PreprocessProviderId 和 WebSearchProviderId 的类型校验函数 isPreprocessProviderId 和 isWebSearchProviderId,用于验证字符串是否为有效的提供者 ID

* refactor(types): 重命名ApiProviderUnion并添加更新函数类型

添加用于更新不同类型API提供者的函数类型,提高类型安全性

* refactor(websearch): 将搜索提供商配置提取到单独文件

将websearch store中的搜索提供商配置提取到单独的配置文件,提高代码可维护性

* refactor(PreprocessSettings): 移除未使用的 system 选项禁用逻辑

由于 system 字段实际未使用,移除相关代码以简化逻辑

* refactor(api-key-popup): 移除providerKind参数,改用providerId判断类型

* refactor(preprocessProviders): 使用类型定义优化预处理提供者配置

将 providerId 参数类型从 string 改为 PreprocessProviderId
为 PREPROCESS_PROVIDER_CONFIG 添加类型定义

* refactor(hooks): 使用PreprocessProviderId类型替换字符串类型参数

* refactor(hooks): 使用 WebSearchProviderId 类型替换字符串类型参数

将 useWebSearchProvider 钩子的 id 参数类型从 string 改为 WebSearchProviderId,提高类型安全性

* refactor(knowledge): 将providerId类型改为PreprocessProviderId

* refactor(PreprocessSettings): 移除未使用的options相关代码

清理PreprocessSettings组件中已被注释掉的options状态和相关逻辑,简化代码结构

* refactor(WebSearchProviderSetting): 将providerId类型从string改为WebSearchProviderId

* refactor(websearch): 移除WebSearchProvider类型中不必要的id字段约束

* style(WebSearchButton): 调整图标大小和样式以保持视觉一致性

* fix(ApiKeyListPopup): 修正LLM提供者判断逻辑

使用'models'属性检查替代原有逻辑,更准确地判断是否为LLM provider

* fix(ApiKeyListPopup): 修复预处理provider判断逻辑

处理mistral同时提供预处理和llm服务的情况,避免误判
2025-08-14 23:19:17 +08:00
fullex
31e59ab395
fix: update selection-hook to v1.0.9 (#9180)
chore: update selection-hook to v1.0.9
2025-08-14 20:08:46 +08:00
SuYao
37dccd93e9
fix: modelname (#9183) 2025-08-14 20:06:57 +08:00
MyPrototypeWhat
02f8e7a857 feat(aiCore): add enableUrlContext capability and new support function
- Enhanced the buildStreamTextParams function to include enableUrlContext in the capabilities object, improving the parameter set for AI interactions.
- Introduced a new isSupportedFlexServiceTier function to streamline model support checks, enhancing code clarity and maintainability.
2025-08-14 19:31:17 +08:00
MyPrototypeWhat
6c093f72d8 feat(Dropdown): replace RightOutlined with ChevronRight icon and update useIcons to use ChevronDown
- Introduced a patch to replace the RightOutlined icon with ChevronRight in the Dropdown component for improved visual consistency.
- Updated the useIcons hook to utilize ChevronDown instead of DownOutlined, enhancing the icon set with Lucide icons.
- Adjusted icon properties for better customization and styling options.
2025-08-14 19:15:49 +08:00
MyPrototypeWhat
0bb1001d40 Merge remote-tracking branch 'origin/main' into feat/aisdk-package 2025-08-14 18:59:19 +08:00
MyPrototypeWhat
376020b23c refactor(aiCore): update ModernAiProvider constructor and clean up unused code
- Modified the constructor of ModernAiProvider to accept an optional provider parameter, enhancing flexibility in provider selection.
- Removed deprecated and unused functions related to search keyword extraction and search summary fetching, streamlining the codebase.
- Updated import statements and adjusted related logic to reflect the removal of obsolete functions, improving maintainability.
2025-08-14 18:06:11 +08:00
Teo
bf30bf28a9
fix(TopicMessages): fix topic style (#9178)
* fix(TopicMessages): fix topic style
2025-08-14 16:55:08 +08:00