M6 surface notes
Operator notes for regional providers, media passthrough, completions policy, and the Realtime↔Live bridge decision.
Companion to the shipped OAuth, Realtime, platform, and fidelity guides. Documents passthrough-complete or policy-complete behavior.
Regional openai_compat
| Provider | Notes |
|---|---|
| xAI | Chat/Responses; deferred completion route; Imagine needs image_gen — xAI |
| Moonshot/Kimi | API keys, K3, Kimi Code CLI, helpers — Moonshot / Kimi; regional base_url |
| Z.AI/GLM | Regional bases — Z.AI |
| DeepSeek | Completions/FIM — DeepSeek FIM |
| Groq | STT-first — Groq STT |
Rule: passthrough never strips unknown keys. Regional quirks are base_url + capability flags.
Completions multi-dialect
| Ingress | Behavior |
|---|---|
OpenAI /v1/completions |
openai / openai_compat passthrough (DeepSeek FIM on /beta) |
| Translate to Anthropic/Google | Not supported (fail closed) |
Anthropic beta & content blocks
anthropic-betais forwarded (not allowlisted) on passthrough.- Skills, tunnels, memory, agents/sessions/environments are proxied.
- Unknown content blocks: forwarded on PT; only IR types on translate.
Media / files
| Surface | Behavior |
|---|---|
| Image streaming | Passthrough when upstream streams |
| STT diarization / formats | Multipart fields forwarded on openai family |
| Moderations multimodal | /v1/moderations body passthrough |
| Large uploads | max_body_bytes (default 32MiB; set 536870912 for 512MiB) + Uploads API |
max_body_bytes: 536870912 # 512 MiBRealtime ↔ Live bridge
Shipped decision: fail-closed with unsupported_realtime_bridge. Same-protocol TLS WebSocket is production-ready. Full event mappers are a future milestone — IR placeholders live in canonical/realtime.go.