- web_extract_tool: when backend=brave and FIRECRAWL_API_KEY is
configured, route extract through Firecrawl automatically instead of
returning an error. Falls back to a clear tool_error only when no
Firecrawl credentials are available.
- _brave_search docstring: describe the actual fallback behaviour
(previous wording said extract fell back to Firecrawl but the code
was returning an error unconditionally).
- tests/tools/test_web_tools_brave.py: 15 tests covering request
construction (header auth, param clamping, HTTP error propagation),
response normalization (empty web, null web, missing fields),
backend detection, search dispatch, and both extract fallback paths.