Weiterleitung an OpenRouters Messages-Endpunkt (x-api-key, anthropic-version,
anthropic-beta), Effort als reasoning.effort, Usage in Anthropic-Form gelesen
(auch im Stream aus message_start/message_delta). Nur openrouter-Ziele; lokale
llama-server sprechen kein Messages-Format. Verifiziert: claude -p über
http://llm.lan:4010 mit alt/anthropic/claude-sonnet-5 -> glm-5.3-flash.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
OpenAI-kompatibler Reverse-Proxy in Bun: Client-Key -> ACL, Alias ->
Modell (alternative: günstigstes Modell derselben Klasse über
llmlite/openrouter-auswahl inkl. Effort-Achse; fest: lokale Upstreams,
TTS/STT, Embeddings), Usage/Kosten aus der OpenRouter-Antwort (auch im
Stream), JSONL + SQLite-Log, Tagesstatistik je Key. Altnamen der
LiteLLM-Zeit werden übersetzt. Kein 3456/stdcmpt, kein role/*, kein -auto
(Andreas 2026-09-05). Lokal verifiziert: Chat, Stream, ACL, Altname,
Kosten im Log. Parallelbetrieb auf :4001 geplant.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>