Starlette 1.0.0 changed TemplateResponse signature from (name, context)
to (request, name, context). Old-style calls passed a dict as the
template name, causing Jinja2 to use it as a cache key inside a tuple,
raising TypeError in Python 3.14.
Updated all affected TemplateResponse calls in calm.py and tools.py to
use the new (request, name, context) signature without "request" in the
context dict.
Fixes#1112
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>