Calls the Gemini generateContent REST API via fetch (no new deps), reads
GEMINI_API_KEY, disables thinking so output tokens go to the reply, and
retries 429/503 up to 3 times with backoff.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix: validate LLM_API_URL format in getLlmUrl function