Anthropic (via LiteLLM/proxy) requires the `tools` parameter to be present when messages include tool_calls or tool role messages, even if no tools are currently being provided. This adds a `hasToolHistory()` helper to detect if the conversation contains tool calls or tool results, and ensures `tools: []` is included in the request params when needed. Fixes #149 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Ubuntu <ubuntu@ip-172-31-50-87.us-west-2.compute.internal> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>