Problem
Web search is an external MCP skill (web_search_bundle). The Go binary has no native web search. If the skill is not installed or its Python/Node runtime breaks, research stops. SOTA agents (Claude, Perplexity, OpenAI) have built-in search.
What to do
internal/websearch/ Go package (stdlib + optional API key):
- Search via DuckDuckGo HTML scraping (no API key needed)
- Fallback to Serper/SearXNG if
SIN_SEARCH_API_KEY configured
- Respect robots.txt, rate-limit
sin_web_search MCP tool + sin_search chat tool
- Cache results in
~/.cache/sin-code/websearch/
sin-code search "query" --limit 10 CLI
- Integrate with Vane bridge as fallback
Acceptance criteria
Problem
Web search is an external MCP skill (
web_search_bundle). The Go binary has no native web search. If the skill is not installed or its Python/Node runtime breaks, research stops. SOTA agents (Claude, Perplexity, OpenAI) have built-in search.What to do
internal/websearch/Go package (stdlib + optional API key):SIN_SEARCH_API_KEYconfiguredsin_web_searchMCP tool +sin_searchchat tool~/.cache/sin-code/websearch/sin-code search "query" --limit 10CLIAcceptance criteria