Commit Graph

3278 Commits

Author SHA1 Message Date
suyao
342c5ab82c
Merge branch 'feat/aisdk-package' of https://github.com/CherryHQ/cherry-studio into feat/aisdk-package 2025-07-07 18:43:27 +08:00
suyao
fce8f2411c
fix: openai-gemini support 2025-07-07 18:42:31 +08:00
MyPrototypeWhat
0a908a334b refactor: enhance model configuration and plugin execution
- Simplified the `createModel` function to directly accept the `ModelConfig` object, improving clarity.
- Updated `createBaseModel` to include `extraModelConfig` for extended configuration options.
- Introduced `executeConfigureContext` method in `PluginManager` to handle context configuration for plugins.
- Adjusted type definitions in `types.ts` to ensure consistency with the new configuration structure.
- Refactored plugin execution methods in `PluginEngine` to utilize the resolved model directly, enhancing the flow of data through the plugin system.
2025-07-07 18:33:51 +08:00
suyao
c72156b2da
feat: support image 2025-07-07 14:27:03 +08:00
suyao
9e252d7eb0
fix(provider): config error patch-1 2025-07-07 04:46:36 +08:00
suyao
4b0d8d7e65
fix(provider): config error 2025-07-07 04:33:37 +08:00
suyao
448b5b5c9e
refactor: migrate to v5 patch-2 2025-07-07 03:58:10 +08:00
suyao
f20d964be3
Merge branch 'feat/aisdk-package' of https://github.com/CherryHQ/cherry-studio into feat/aisdk-package 2025-07-07 02:09:01 +08:00
lizhixuan
c92475b6bf refactor: streamline model configuration and factory functions
- Updated the `createModel` function to accept a simplified `ModelConfig` interface, enhancing clarity and usability.
- Refactored `createBaseModel` to destructure parameters for better readability and maintainability.
- Removed the `ModelCreator.ts` file as its functionality has been integrated into the factory functions.
- Adjusted type definitions in `types.ts` to reflect changes in model configuration structure, ensuring consistency across the codebase.
2025-07-07 00:34:32 +08:00
suyao
89cbf80008
fix: unexpected chunk 2025-07-06 23:37:42 +08:00
suyao
3e5969b97c
refactor: migrate to v5 patch-1 2025-07-06 04:25:11 +08:00
suyao
cd42410d70
chore: migrate to v5 2025-07-05 13:28:19 +08:00
MyPrototypeWhat
547e5785c0 feat: add web search plugin for enhanced AI provider capabilities
- Introduced a new `webSearchPlugin` to provide unified web search functionality across multiple AI providers.
- Added helper functions for adapting web search parameters for OpenAI, Gemini, and Anthropic providers.
- Updated the built-in plugin index to export the new web search plugin and its configuration type.
- Created a new `helper.ts` file to encapsulate web search adaptation logic and support checks for provider compatibility.
2025-07-04 19:35:37 +08:00
MyPrototypeWhat
13162edcb2 refactor: remove providerParams utility module 2025-07-04 13:53:27 +08:00
MyPrototypeWhat
ac15930692 feat: enhance OpenAI model handling with utility function
- Introduced `isOpenAIChatCompletionOnlyModel` utility function to determine if a model ID corresponds to OpenAI's chat completion-only models.
- Updated `createBaseModel` function to utilize the new utility for improved handling of OpenAI provider responses in strict mode.
- Refactored reasoning parameters in `getOpenAIReasoningParams` for consistency and clarity.
2025-07-02 19:31:33 +08:00
MyPrototypeWhat
ff3b1fc38f feat: enhance OpenAI provider handling and add providerParams utility module
- Updated the `createBaseModel` function to handle OpenAI provider responses in strict mode.
- Modified `providerToAiSdkConfig` to include specific options for OpenAI when in strict mode.
- Introduced a new utility module `providerParams.ts` for managing provider-specific parameters, including OpenAI, Anthropic, and Gemini configurations.
- Added functions to retrieve service tiers, specific parameters, and reasoning efforts for various providers, improving overall provider management.
2025-07-02 16:43:06 +08:00
MyPrototypeWhat
b660e9d524 feat: implement useSmoothStream hook for dynamic text rendering
- Added a new custom hook `useSmoothStream` to manage smooth text streaming with adjustable delays.
- Integrated the `useSmoothStream` hook into the `Markdown` component to enhance content display during streaming.
- Improved state management for displayed content and stream completion status in the `Markdown` component.
2025-07-01 17:21:57 +08:00
MyPrototypeWhat
182ab6092c refactor: update reasoning plugins and enhance performance
- Replaced `smoothReasoningPlugin` with `reasoningTimePlugin` to improve reasoning time tracking.
- Commented out the unused `textPlugin` in the plugin list for better clarity.
- Adjusted delay settings in both `smoothReasoningPlugin` and `textPlugin` for optimized processing.
- Enhanced logging in reasoning plugins for better debugging and performance insights.
2025-07-01 15:28:06 +08:00
MyPrototypeWhat
cf5ed8e858 refactor: streamline reasoning plugins and remove unused components
- Removed the `reasoningTimePlugin` and `mcpPromptPlugin` to simplify the plugin architecture.
- Updated the `smoothReasoningPlugin` to enhance its functionality and reduce delay in processing.
- Adjusted the `textPlugin` to align with the new delay settings for smoother output.
- Modified the `ModernAiProvider` to utilize the updated `smoothReasoningPlugin` without the removed plugins.
2025-06-30 18:34:08 +08:00
suyao
007de81928
chore: update OpenRouter provider to version 0.7.2 and add support functions
- Updated the OpenRouter provider dependency in `package.json` and `yarn.lock` to version 0.7.2.
- Added a new function `createOpenRouterOptions` in `factory.ts` for creating OpenRouter provider options.
- Updated type definitions in `types.ts` and `registry.ts` to include OpenRouter provider settings, enhancing provider management.
2025-06-29 21:29:57 +08:00
suyao
6c87b42607
refactor: remove OpenRouter provider support and streamline reasoning logic
- Commented out the OpenRouter provider in `registry.ts` and related configurations due to excessive bugs.
- Simplified reasoning logic in `transformParameters.ts` and `options.ts` by removing unnecessary checks for `enableReasoning`.
- Enhanced logging in `transformParameters.ts` to provide better insights into reasoning capabilities.
- Updated `getReasoningEffort` to handle cases where reasoning effort is not defined, improving model compatibility.
2025-06-29 15:16:47 +08:00
suyao
592a7ddc3f
Merge branch 'main' into feat/aisdk-package 2025-06-29 03:57:28 +08:00
suyao
60cb198f44
refactor: simplify provider validation and enhance plugin configuration
- Commented out the provider support check in `RuntimeExecutor` to streamline initialization.
- Updated `providerToAiSdkConfig` to utilize `AiCore.isSupported` for improved provider validation.
- Enhanced middleware configuration in `ModernAiProvider` to ensure tools are only added when enabled and available.
- Added comments in `transformParameters` for clarity on parameter handling and plugin activation.
2025-06-29 03:55:29 +08:00
suyao
54c36040af
feat: extend buildStreamTextParams to include capabilities for enhanced AI functionality
- Updated the return type of `buildStreamTextParams` to include `capabilities` for reasoning, web search, and image generation.
- Modified `fetchChatCompletion` to utilize the new capabilities structure, improving middleware configuration based on model capabilities.
2025-06-29 02:59:38 +08:00
George·Dong
3f5901766d
feat: Add S3 Backup (#6802)
* chore: import opendal

* feat: 添加S3备份支持及相关设置界面

- 在IpcChannel中新增S3备份相关IPC事件,支持备份、恢复、
  列表、删除文件及连接检测
- 在ipc主进程注册对应的S3备份处理函数,集成backupManager
- 新增S3设置页面,支持配置Endpoint、Region、Bucket、AccessKey等
  参数,并提供同步和备份策略的UI控制
- 删除未使用的RemoteStorage.ts,简化代码库

提升备份功能的灵活性,支持S3作为远程存储目标

* feat(S3 Backup): 完善S3备份功能

- 支持自动备份
- 优化设置前端
- 优化备份恢复代码

* feat(i18n): add S3 storage translations

* feat(settings): 优化数据设置页面和S3设置页面UI

* feat(settings): optimize S3 settings state structure and update usage

* refactor: simplify S3 backup and restore modal logic

* feat(s3 backup): improve S3 settings defaults and modal props

* fix(i18n): optimize S3 access key translations

* feat(backup): optimize logging and progress reporting

* fix(settings): set S3 maxBackups as unlimited by default

* chore(package): restore opendal dependency in package.json

---------

Co-authored-by: suyao <sy20010504@gmail.com>
2025-06-28 22:19:37 +08:00
kangfenmao
27d22e90d4 chore(version): 1.4.7 2025-06-28 20:38:53 +08:00
Kingsword
101d73fc10
♻️ refactor(ContentSearch): ContentSearch to use CSS highlights API (#7493) 2025-06-28 20:04:03 +08:00
one
8de6ae1772
fix(Menubar): icon for multi select (#7635) 2025-06-28 19:00:26 +08:00
beyondkmp
ece59cfacf
fix(migrate): handle state return in migration process and add upgradechannel setting (#7634)
* fix(migrate): handle state return in migration process and add upgrade channel setting

* fix(migrate): move upgrade channel setting to the correct migration step
2025-06-28 17:52:36 +08:00
beyondkmp
780373d5f7
fix: 测试版本 (#7590)
* feat(AppUpdater): add support for pre-release versions and enhance feed URL logic

- Introduced a new FeedUrl for the lowest pre-release version.
- Updated AppUpdater to handle early access and upgrade channel settings more effectively.
- Enhanced IPC logging for early access and upgrade channel changes.
- Refactored feed URL setting logic to streamline update processes.

* fix(AppUpdater, ipc): enhance early access and upgrade channel handling

- Added checks to prevent unnecessary cancellation of downloads when early access and upgrade channel settings remain unchanged.
- Updated IPC handlers to ensure early access is enabled when switching upgrade channels if it was previously disabled.
- Improved logging for better traceability of changes in early access and upgrade channel settings.

* delete code

* delete logs

* refactor(AboutSettings): enhance upgrade channel management

- Introduced logic to determine the current upgrade channel based on version.
- Refactored available test channels to use a more structured approach with tooltips and labels.
- Updated the method for retrieving available test channels to improve clarity and maintainability.

* feat(IpcChannel, ConfigManager, AppUpdater): implement test plan and channel management

- Replaced early access features with test plan and test channel options in IpcChannel and ConfigManager.
- Updated IPC handlers to manage test plan and test channel settings, including logging enhancements.
- Refactored AppUpdater to support fetching pre-release versions based on the selected test channel.
- Modified settings and localization files to reflect the new test plan functionality.
- Adjusted AboutSettings and related components to integrate test plan management and improve user experience.

* format code

* refactor(AppUpdater, AboutSettings): improve test channel logic and localization updates

- Refactored the logic in AppUpdater to enhance the handling of test channels, ensuring correct channel retrieval based on the current version.
- Updated the AboutSettings component to include useEffect for managing test channel changes and displaying appropriate warnings.
- Modified localization files for multiple languages to clarify the behavior of test version switching, aligning with the new logic.
2025-06-28 17:17:47 +08:00
SuYao
dfcebe9767
fix(models): update regex patterns for Doubao models and enhance function checks (#7624)
- Adjusted regex for visionAllowedModels and DOUBAO_THINKING_MODEL_REGEX to allow for optional suffixes.
- Enhanced isFunctionCallingModel and isDoubaoThinkingAutoModel functions to check both model.id and model.name for better matching.
2025-06-28 16:58:17 +08:00
自由的世界人
daaf9c2b06
fix: move ContentSearch below Messages in Chat layout (#7628)
Reordered the ContentSearch component to render after the Messages component within the Chat page. This change likely improves the UI flow by displaying the search functionality below the chat messages.
2025-06-28 16:51:49 +08:00
happyZYM
83b95f9830
fix: restore strict no-think for Openrouter provider with latest api (#7620) 2025-06-28 16:45:54 +08:00
beyondkmp
cf87a840f7
fix(FileStorage): remove redundant WordExtractor import (#7625) 2025-06-28 16:45:02 +08:00
Wang Jiyuan
49653435c2
fix(models): Add inference model detection for qwen-plus and qwen-turbo (#7622)
feat(models): 添加对qwen-plus和qwen-turbo模型的推理模型判断
2025-06-28 14:10:55 +08:00
beyondkmp
14e31018f7
fix: support spell check for mini app (#7602)
* feat(IpcChannel): add Webview_SetSpellCheckEnabled channel and implement spell check handling for webviews

- Introduced a new IPC channel for enabling/disabling spell check in webviews.
- Updated the registerIpc function to handle spell check settings for all webviews.
- Enhanced WebviewContainer to set spell check state on DOM ready event.
- Refactored context menu setup to accommodate webview context menus.

* refactor(ContextMenu): update methods to use Electron.WebContents instead of BrowserWindow

- Changed method signatures to accept Electron.WebContents for better context handling.
- Updated internal calls to utilize the new WebContents reference for toggling dev tools and managing spell check functionality.

* refactor(WebviewContainer): clean up import order and remove unused code

- Adjusted the import order in WebviewContainer.tsx for better readability.
- Removed redundant import of useSettings to streamline the component.
2025-06-28 08:36:32 +08:00
Wang Jiyuan
2d3f5baf72
feat: Increase the upper limit of web search results (#7439)
* fix(WebSearchSettings): 将最大搜索结果限制从20增加到50

* fix(WebSearchSettings): 调整搜索结果滑块宽度并添加50的标记
2025-06-27 22:33:27 +08:00
one
c7c1cf2552
refactor: increase css editor height, fix EditMcpJsonPopup (#7535)
* refactor: increase css editor height

* fix: lint warnings

* refactor: use vh for height

* fix: editmcpjsonpopup editor unavailable after deleting all the code
2025-06-27 21:53:43 +08:00
MyPrototypeWhat
ef616e1c3b fix: update reasoningTimePlugin and smoothReasoningPlugin for improved performance tracking
- Changed the invocation of `reasoningTimePlugin` to a direct reference in `ModernAiProvider`.
- Initialized `thinkingStartTime` with `performance.now()` in `reasoningTimePlugin` for accurate timing.
- Removed `thinking_millsec` from the enqueued chunks in `smoothReasoningPlugin` to streamline data handling.
- Added console logging for performance tracking in `reasoningTimePlugin` to aid in debugging.
2025-06-27 19:24:23 +08:00
Chen Tao
98b12fb800
fix: tei reranker (#7606)
fix(tei)
2025-06-27 18:07:17 +08:00
one
d463d6ea2e
feat(WebSearch): support RAG for external websearch, improve feedback (#7446)
* feat(WebSearch, RAG): support RAG for external websearch

* refactor(WebSearch): handle content limit in service

* refactor: update migrate

* refactor: UI, constants, types

* refactor: migrate contentLimit to cutoffLimit

* refactor: update default rag document count

* refactor: add a helper function for merging references

* refactor: reference filtering

* feat: feedback for websearch phases

* feat: support cutoff by token

* refactor: add a warning and fix the bound of cutoff limit

* fix: not pass `dimensions` if it is not set by the user

* refactor: update i18n and error message

* refactor: improve UI

* fix: cutoff unit style
2025-06-27 18:04:42 +08:00
Wei Lin
1fe439bb51
docs: add 20 language links of README (#7611)
PR adds 20 languages link to the README and user can easily to access translated READEME, supports google/bing multiple languages SEO search.

Page demo https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ja

> OpenAiTx is free and open-source : https://github.com/OpenAiTx/OpenAiTx

![Image](https://github.com/user-attachments/assets/41c79fad-5f63-4ed3-8d48-99f3b89879ba)
2025-06-27 18:02:37 +08:00
one
3726ceaf48 refactor: use useLayoutEffect for shiki renderer 2025-06-27 17:56:19 +08:00
one
639ddd5628 refactor: add ShikiTokensRendererProps 2025-06-27 17:56:19 +08:00
one
16772c1d37 refactor(CodePreview): line numbers as elements 2025-06-27 17:56:19 +08:00
MyPrototypeWhat
dc106a8af7 refactor: streamline error handling and logging in ModernAiProvider
- Commented out the try-catch block in the `ModernAiProvider` class to simplify the code structure.
- Enhanced readability by removing unnecessary error logging while maintaining the core functionality of the AI processing flow.
- Updated `messageThunk` to incorporate an abort controller for improved request management during message processing.
2025-06-27 17:08:22 +08:00
MyPrototypeWhat
1bcc716eaf refactor: rename and restructure message handling in Conversation and Orchestrate services
- Renamed `prepareMessagesForLlm` to `prepareMessagesForModel` in `ConversationService` for clarity.
- Updated `OrchestrationService` to use the new method name and introduced a new function `transformMessagesAndFetch` for improved message processing.
- Adjusted imports in `messageThunk` to reflect the changes in the orchestration service, enhancing code readability and maintainability.
2025-06-27 16:38:32 +08:00
one
766897e733
refactor: show error on missing mcp tool (#7587) 2025-06-27 16:09:06 +08:00
MyPrototypeWhat
30a288ce5d feat: introduce MCP Prompt Plugin and refactor built-in plugin structure
- Added `mcpPromptPlugin.ts` to encapsulate MCP Prompt functionality, providing a structured approach for tool calls within prompts.
- Updated `index.ts` to reference the new `mcpPromptPlugin`, enhancing modularity and clarity in the built-in plugins.
- Removed the outdated `example-plugins.ts` file to streamline the plugin directory and focus on essential components.
2025-06-27 15:45:56 +08:00
suyao
cbbaa3127c
Merge branch 'feat/aisdk-package' of https://github.com/CherryHQ/cherry-studio into feat/aisdk-package 2025-06-27 15:11:04 +08:00