Support matrix · formats and harnesses
What works with Torana.
Torana only sends recognized inference endpoints through its canonical IR and plugin pipeline. Other provider endpoints remain transparent reverse-proxy traffic. “Preserved” below means executable fixtures cover the wire behavior; it does not claim that every model or account enables the provider feature.
Provider formats
| Format | Inference endpoints | Streaming | Tools | Prompt-cache behavior | Known boundary |
|---|---|---|---|---|---|
| OpenAI | POST …/chat/completionsPOST …/responses | SSE | Preserved and mutable under explicit grants | prompt_cache_key, prompt_cache_retention, and usage preserved; Responses compaction is opt-in | Provider-owned history behind previous_response_id is not rewritten |
| Anthropic | POST …/messages | SSE | Structured use/results and signatures preserved | Ordered cache_control breakpoints preserved | Both string and block-array system prompts are accepted |
| Gemini / Vertex AI | POST …:generateContentPOST …:streamGenerateContent | SSE | Function calls/results, metadata, and signatures preserved | cachedContent references and usage preserved; Torana does not manage cache resources | Caller-supplied API key or bearer auth; ADC/service-account minting is not built in |
| Gemini Code Assist | POST …:generateContentPOST …:streamGenerateContent | SSE | Function calls/results and signed parts preserved | Provider cache references and usage preserved | Clients without a base-URL setting require Torana’s optional, explicitly configured MITM ingress |
Selective interception
Model-list, token-counting, account, quota, status, telemetry, update, MCP, and unknown auxiliary paths do not enter IR and do not run request or response plugins. Real-proxy tests cover auxiliary pass-through for all four formats, including method, path, query, body, permitted headers, upstream status, and response bytes.
Coding harnesses
| Harness path | Torana format | Automated contract | Manual status |
|---|---|---|---|
Claude Code via ANTHROPIC_BASE_URL | Anthropic Messages | System prompts, streaming tool use/results, cache markers, signatures, and auxiliary pass-through | Credentialed normal/tool/resume smoke remains a release gate |
| Codex custom provider | OpenAI Responses | Responses layout, opaque input items, streaming tools, and model-list pass-through | Credentialed normal/tool/resume smoke remains a release gate |
| OpenCode / Aider base URL | OpenAI or Anthropic | The selected provider wire has automated coverage | Credentialed client smoke remains a release gate |
| Antigravity / Code Assist | Gemini Code Assist | Wrapper data, signed parts, cache facts, stream framing, and auxiliary pass-through | Credentialed client smoke remains a release gate |
Plugin SDKs
| Go | ABI v1 SDK, helpers, test harness, official plugins, and host conformance. |
|---|---|
| Rust | ABI v1 bindings and safe wrappers. A clean Rust guest has built, installed, been digest-approved, and executed through the real host path. v0.3.0 is tagged and published as a Go module; the crate is not yet on crates.io, so a Rust guest builds from the tag. |
| TypeScript / AssemblyScript | No supported SDK today. WASI alone is insufficient: a guest must also implement Torana’s protobuf ABI, allocator, framed host calls, and hook contract. |
| Other WASI languages | Possible through the documented raw ABI, but not advertised as supported until a maintained SDK and host-conformance guest exist. |
How to read this matrix
Coverage is endpoint-specific: matching a provider name alone is not enough. Use the format and harness rows above to choose your route and distinguish automated wire tests from credentialed client checks.
Implementation evidence: harness boundary ↗ · prompt caching ↗ · benchmarks ↗