* Add support for custom HTTP headers in MCP servers
Allow users to configure custom HTTP headers for SSE and streamable HTTP
MCP server connections. This enables authentication and other API
requirements.
* Add custom headers i18n strings
* Add typed MCPCallToolResponse interface and format converters
The commit introduces a structured response type for MCP tool calls with
proper handling for different content types (text, image, audio). It adds
provider-specific converter functions to transform tool responses into
the appropriate message format for OpenAI, Anthropic, and Gemini.
* Support vision models in tool call responses
Add isVisionModel parameter to tool response formatters to conditionally
handle content based on model capabilities. Non-vision models now receive
JSON stringified content, while vision models get proper multimedia parts.
* 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>
- Simplified the registration of IPC handlers for the search window by removing unnecessary async/await syntax.
- Improved import organization by removing duplicate import statements for ASRServerService.
- Standardized code formatting by removing unnecessary line breaks and ensuring consistent use of semicolons.
- Enhanced readability in various components, including ASRButton, TTSButton, and TTSService, by restructuring code blocks and improving indentation.
- Updated comments for clarity and consistency in ASRService and TTSService.
- Adjusted import statements for better organization in several files, including TTSStopButton and ASRSettings.
- Improved the handling of promises and asynchronous functions for better code flow.
* 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