278927ec40
Adds read_article tool definition and execute_tool handler. Uses _fetch_full_article (trafilatura) from rss.py, caps tool output at 40K chars to keep context window manageable. Always registered (not gated on SearXNG). Tests cover success, failure, truncation, empty URL, and history builder replay. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>