* Add MCP prompt listing and retrieval functionality
* Add generic caching mechanism for MCP service methods
Refactor caching strategy by implementing a higher-order withCache function
to centralize cache logic and reduce code duplication. Separate implementation
details from caching concerns in listTools, listPrompts and getPrompt methods.
# Conflicts:
# src/main/services/MCPService.ts
* Add MCP prompts listing feature
- Add IPC handlers for listing and getting prompts
- Create UI component to display available prompts in settings tab
- Improve error handling in MCP service methods
* fix(McpService): add error handling for tool and prompt listing methods
* feat(MCPSettings): enhance prompts and tools sections with improved UI and reset functionality
* feat(i18n): add tabs and prompts sections to localization files
* feat(MCPToolsButton): add MCP prompt list functionality to Inputbar
* feat(McpSettings, NpxSearch): improve user feedback with success messages on server addition
* feat(MCPService, MCPToolsButton): enhance prompt handling with caching and improved selection logic
* feat(MCPToolsButton): enhance prompt handling with argument support and error management
---------
Co-authored-by: Teo <cheesen.xu@gmail.com>
* feat(models): add grok-3-mini support and update reasoning effort logic in SettingsTab and OpenAIProvider
* feat(settings): update reasoning effort logic for Grok models and enhance localization in multiple languages
* fix(models): correct spelling of reasoning in model support functions
* fix(settings): correct spelling of reasoning_effort in OpenAIProvider
- Introduced new models for the Qiniu provider in SYSTEM_MODELS.
- Updated migration logic to populate Qiniu provider models if they are empty during state initialization.
- Updated web search provider settings to include API key and free status indicators.
- Improved localization for English, Japanese, Russian, Chinese, and Taiwanese languages to reflect new API key and free status fields.
- Refactored web search provider management to prevent duplicates and streamline provider addition during state migration.
- Adjusted UI components to conditionally render based on provider type, enhancing user experience.
* feat(websearch): implement search window functionality and enhance search service
* feat(DefaultProvider): integrate @mozilla/readability for improved content parsing
* Add LocalSearchProvider for web page scraping
AI: Change `provider` from private to protected in BaseWebSearchProvider and implement LocalSearchProvider for web searching with browser-based content extraction.
* Add web search provider management features
Implement addWebSearchProvider function to prevent duplicates,
automatically load default providers on initialization, fix
LocalSearchProvider implementation, and update local provider
identification logic.
* Improve web search with specialized search engine parsers
Add dedicated parsers for Google, Bing, and Baidu search results,
replacing the generic URL extraction approach. Enhance page loading
with proper wait mechanisms and window cleanup. Remove DuckDuckGo
provider as it's no longer supported.
* Simplify DefaultProvider to unimplemented placeholder
* Remove default search engine from initial state
* Improve web search providers config and display
Add configuration for local search providers, remove empty apiKey fields,
and enhance the UI by sorting providers alphabetically and showing
whether they require an API key.
* Add stderr logging for MCP servers
* Make search window initially hidden
* feat(QuickPanel): enhance close action options and improve input handling
- Added 'enter_empty' as a new close action option for QuickPanel.
- Refactored input handling to include a delay before clearing search text after panel closure.
- Updated keyboard event handling to prevent default actions for specific keys.
- Improved styling for selected and focused states in QuickPanel components.
- Enhanced AttachmentPreview to utilize a separate FileNameRender component for better readability and functionality.
* feat(AttachmentPreview): enhance file icon rendering and styling
* feat(CustomTag): add closable functionality and improve styling
- Enhanced CustomTag component to support closable tags with an onClose callback.
- Updated styling for better visual integration and added hover effects for the close icon.
- Refactored usage of CustomTag in AttachmentPreview, KnowledgeBaseInput, and MentionModelsInput components for consistency.
* feat(SelectModelPopup, QuickPanel): update tag component and enhance search functionality
* feat(Inputbar, SettingsTab): add enable quick panel triggers setting and update translations
* feat(QuickPanel): integrate color library for dynamic styling and update package dependencies
* fix: 解决聊天页面图片复制失败的问题和点击编辑回复的时候,不显示图片url的问题
* fix: 解决chat模式,gemini-2.0-flash-exp-image-generation返回base64图片,无法复制的问题
* fix(MessageImage): Update the image copying feature to process base64 and URL formatted images based on their type
---------
Co-authored-by: magicdmer <magicdmer@163.com>
Co-authored-by: eeee0717 <chentao020717Work@outlook.com>
* feat: implement tool usage handling and system prompt building for AI providers
* refactor: streamline tool usage handling and remove unused code in OpenAIProvider and formats
* refactor: simplify tool usage handling in Anthropic and Gemini providers, and update prompt instructions
* refactor: remove unused function calling model checks and simplify MCP tools handling in Inputbar
* hidden tool use in message
* revert import
* Add idx parameter to parseAndCallTools for unique tool IDs
- Improved icon size handling in the ModelTagsWithLabel component for better visual consistency.
- Adjusted the layout of the tags to prevent wrapping and added horizontal scrolling for better usability.
- Updated the EditModelsPopup to increase its width for improved content display.
- Removed unnecessary CustomTag usage in ModelList for cleaner code.
* feat(websearch): add overwrite functionality for search service
- Introduced new settings to allow users to override the default search service.
- Updated localization files for English, Japanese, Russian, Simplified Chinese, and Traditional Chinese to include new overwrite options and tooltips.
- Modified relevant components and services to support the new overwrite feature in the web search settings.
* feat(websearch): enhance web search model integration
* chore(websearch): unnecessary return
- Added `bodered` property to the dangbei miniapp configuration.
- Refactored migration logic to utilize a new `addMiniApp` function for cleaner code.
- Incremented store version from 91 to 92 for migration compatibility.
- Added `activeKey` prop to `CustomCollapse` for better control over active panels.
- Updated styles in `CustomCollapse` for improved visual consistency.
- Refactored `KnowledgeContent` to include expand/collapse functionality for file and directory sections, enhancing user experience.
- Added translations for "collapse" in multiple languages.
- Minor style adjustments across various components for better UI consistency.
* chore(version): 1.1.19
* style(ProviderSettings): Refactor ProviderSettings UI
* style(CustomTag, ModelTagsWithLabel): enhance layout and styling for better UI consistency
* refactor(CustomTag, ModelTagsWithLabel, MentionModelsButton): update props handling and improve component usage
* feat(CustomTag, ModelTagsWithLabel): add tooltip support and improve label visibility based on container size
* fix(ModelTagsWithLabel): adjust maxWidth for non-Chinese languages to improve layout
* style(ModelList): add text overflow handling for list item names
* feat(ModelList): enhance group label with item count using CustomTag
* feat(FileItem): add style prop for customizable background color in FileItem component
* style(index.scss): update border color variables for improved UI consistency
* style(EditModelsPopup): update background color for model items to enhance visual distinction
* style(HealthCheckPopup): update button size for improved usability
* feat(CustomCollapse): add collapsible prop to customize collapse behavior
* chore: remove hover models color
---------
Co-authored-by: kangfenmao <kangfenmao@qq.com>
Co-authored-by: eeee0717 <chentao020717Work@outlook.com>
fix(NpxSearch): update search result mapping to use record name as key and handle optional search results
Co-authored-by: lizhixuan <zhixuan.li@banosuperapp.com>
- Implemented functionality to automatically register MCP servers when the '@cherry/mcp-auto-install' tool is called.
- Utilized nanoid for unique server ID generation and dispatched the new server to the Redux store.