Both web tools were already implemented and wired, but the suite only
exercised get_datetime, so neither had any direct coverage. Adds
tools.test.ts pinning the contract for both:
- web_search: request shape (endpoint, bearer token, body), max_results
clamped into 1..10, empty result sets, and how results render
- web_fetch: request shape, page content, title fallback, truncation
- failure paths for both, including a rejected API key
- the webEnabled filter, so the local tools survive and the web tools go
Also marks a trimmed search snippet with "[truncated]" rather than
silently dropping the tail, which is what web_fetch already did.
Also replaces the extension icon with a white tile and a black bubble.
Endpoint paths were checked against the live Ollama API: /api/chat,
/api/web_search and /api/web_fetch all return 401 unauthenticated (so
the route exists and demands a key), and /api/tags returns 405 to a
POST, which also confirms the path. No authenticated call was made.
Test count: 77 -> 96.