picoclaw/pkg/tools
Truong Vinh Tran e7d8975f1c feat: Add SearXNG search provider support
Implements SearXNG as a third web search provider to address Oracle Cloud
datacenter IP blocking issues and provide a cost-free, self-hosted alternative
to commercial search APIs.

Changes:
- Add SearXNGConfig struct with Enabled, BaseURL, and MaxResults fields
- Implement SearXNGSearchProvider with JSON API integration
- Update provider priority: Perplexity > Brave > SearXNG > DuckDuckGo
- Wire SearXNG configuration through agent tool registration
- Add default config values (disabled by default, empty BaseURL)

Benefits:
- Solves DuckDuckGo datacenter IP blocking (138 bytes redirect responses)
- Zero-cost alternative to Brave Search API ($5/1000 queries)
- Self-hosted solution with 70+ aggregated search engines
- Privacy-focused with no rate limits or API keys required
- Ideal for Oracle Cloud, GCP, AWS, and Azure VM deployments

The implementation follows the existing provider interface pattern and
maintains backward compatibility with all existing search providers.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-20 12:02:00 +01:00
..
base.go feat: US-006 - Add AsyncCallback type and AsyncTool interface 2026-02-12 19:35:41 +08:00
cron.go feat: Support modifying the command filtering list of the exec tool (#410) 2026-02-18 19:31:15 +08:00
edit.go Merge upstream/main into ralph/tool-result-refactor 2026-02-13 01:00:26 +08:00
edit_test.go Merge upstream/main into ralph/tool-result-refactor 2026-02-13 01:00:26 +08:00
filesystem.go fix(security): block critical symlink workspace escape (#188) 2026-02-16 16:20:35 +08:00
filesystem_test.go fix(security): block critical symlink workspace escape (#188) 2026-02-16 16:20:35 +08:00
i2c.go add I2C and SPI tools for hardware interaction (#140) 2026-02-14 16:53:17 +08:00
i2c_linux.go add I2C and SPI tools for hardware interaction (#140) 2026-02-14 16:53:17 +08:00
i2c_other.go add I2C and SPI tools for hardware interaction (#140) 2026-02-14 16:53:17 +08:00
message.go misc: fmt code 2026-02-13 17:51:47 +08:00
message_test.go feat: US-011 - Add MessageTool tests 2026-02-12 19:50:53 +08:00
registry.go refactor(tools): extract shared logic for internal channels and tool definitions 2026-02-13 15:05:16 +08:00
result.go feat: US-002 - Modify Tool interface to return *ToolResult 2026-02-12 19:28:56 +08:00
result_test.go feat: US-002 - Modify Tool interface to return *ToolResult 2026-02-12 19:28:56 +08:00
shell.go feat(linters): Fix linter 2026-02-18 16:24:55 +02:00
shell_test.go Merge upstream/main into ralph/tool-result-refactor 2026-02-13 01:00:26 +08:00
spawn.go merge: sync upstream/main into feat/multi-agent-routing 2026-02-13 12:24:26 -03:00
spi.go add I2C and SPI tools for hardware interaction (#140) 2026-02-14 16:53:17 +08:00
spi_linux.go add I2C and SPI tools for hardware interaction (#140) 2026-02-14 16:53:17 +08:00
spi_other.go add I2C and SPI tools for hardware interaction (#140) 2026-02-14 16:53:17 +08:00
subagent.go fix: Templates update (#485) 2026-02-19 19:16:37 +01:00
subagent_tool_test.go fix: Templates update (#485) 2026-02-19 19:16:37 +01:00
toolloop.go Merge upstream main into feat/refactor-provider-by-protocol 2026-02-20 13:25:26 +08:00
types.go * First commit 2026-02-09 19:20:19 +08:00
web.go feat: Add SearXNG search provider support 2026-02-20 12:02:00 +01:00
web_test.go Replace \s+ with [^\S\n]+ to preserve newlines (#299) 2026-02-19 02:02:28 +01:00