Uses the user's JWT against /v1/models + /v1/chat/completions (the
gateway's /v1 routes already accept JWT — no API key needed for the
in-app chat path; API keys remain for external SDK usage).
Single-turn UX for now, no streaming. Model picker reads /v1/models.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>