Adds support for self-hosted SearXNG instances as a web_search provider.
Changes:
- Add 'searxng' to SEARCH_PROVIDERS
- Add SearXNG config type and resolution functions
- Implement runSearxngSearch() with JSON API support
- Update Zod schema for tools.web.search.searxng.baseUrl
- Add config help text for SearXNG options
Configuration:
```yaml
tools:
web:
search:
provider: searxng
searxng:
baseUrl: https://search.example.com
```
Or via environment variable: SEARXNG_BASE_URL
SearXNG aggregates results from multiple search engines and returns
structured data including title, url, description, source engines,
and relevance score - no API key required.
Adds support for Brave Search API's freshness parameter to filter results
by discovery time:
- 'pd' - Past 24 hours
- 'pw' - Past week
- 'pm' - Past month
- 'py' - Past year
- 'YYYY-MM-DDtoYYYY-MM-DD' - Custom date range
Useful for cron jobs and monitoring tasks that need recent results.
Note: Perplexity provider ignores this parameter (Brave only).
---
🤖 AI-assisted: This PR was created with Claude (Opus). Lightly tested via
build script. The change follows existing patterns for optional parameters
(country, search_lang, ui_lang).