# Provider Runtime Contracts

<!-- Generated by scripts/sync_hosted_gitbook.py; do not edit by hand. -->

This checked reference is generated directly from
`src/supafone_labs/runtime/provider_contracts.py`. Adapter support means the
SDK can parse events and compile the documented action; it does not mean
Supafone hosts that provider. The managed Agent Factory runtime is listed
separately from BYOK and developer-owned delivery.

| Provider | Mode | Native message | Acceptance | Verified |
| --- | --- | --- | --- | --- |
| <a id="contract-supafone"></a>Supafone Agent Factory | native_message | `user_text_message` | Ultravox data-message REST returns HTTP 204 or the live socket remains healthy. | 2026-07-12 ([provider docs](https://docs.ultravox.ai/agents/guiding-agents)) |
| <a id="contract-ultravox"></a>Ultravox | native_message | `user_text_message` | Send Data Message returns HTTP 204; deferred guidance uses urgency=later. | 2026-07-12 ([provider docs](https://docs.ultravox.ai/agents/guiding-agents)) |
| <a id="contract-vapi"></a>Vapi | native_message | `add-message` | POST to the live call controlUrl succeeds and the system message enters model context. | 2026-07-12 ([provider docs](https://docs.vapi.ai/calls/call-features)) |
| <a id="contract-retell"></a>Retell | custom_llm_context | `system context entry` | The custom-LLM context includes the entry before the next response event is emitted. | 2026-07-12 ([provider docs](https://docs.retellai.com/api-references/llm-websocket)) |
| <a id="contract-bland"></a>Bland | tap_only | `No universal injection message` | Not applicable: current public APIs expose observation and call control, not prompt injection. | 2026-07-12 ([provider docs](https://docs.bland.ai/api-v1/get/active)) |
| <a id="contract-gpt_realtime"></a>OpenAI Realtime | native_message | `conversation.item.create` | Server emits conversation.item.created/done or an error tied to the client event. | 2026-07-12 ([provider docs](https://developers.openai.com/api/reference/resources/realtime)) |
| <a id="contract-grok"></a>Grok Voice Agent | native_message | `response.create.instructions` | Server emits response.created followed by response.done, or an error. | 2026-07-12 ([provider docs](https://docs.x.ai/developers/model-capabilities/audio/voice-agent)) |
| <a id="contract-gemini_live"></a>Gemini Developer Live | tap_only | `clientContent user turn (ordinary conversation context)` | Not applicable: the default adapter observes events and emits no hidden mid-call control. | 2026-08-20 ([provider docs](https://ai.google.dev/api/live)) |
| <a id="contract-elevenlabs"></a>ElevenLabs Agents | native_message | `contextual_update` | No direct ack is defined; the socket must remain healthy and the next turn must complete. | 2026-07-12 ([provider docs](https://elevenlabs.io/docs/eleven-agents/libraries/web-sockets)) |
| <a id="contract-deepgram"></a>Deepgram Voice Agent | native_message | `UpdatePrompt` | Server emits PromptUpdated; malformed updates emit Error or Warning. | 2026-07-12 ([provider docs](https://developers.deepgram.com/docs/voice-agent-update-prompt)) |
| <a id="contract-livekit"></a>LiveKit Agents | framework_context | `ChatContext.add_message` | Agent.update_chat_ctx completes and the persisted context contains the system entry. | 2026-07-12 ([provider docs](https://docs.livekit.io/agents/logic/chat-context/)) |
| <a id="contract-pipecat"></a>Pipecat | framework_context | `LLMMessagesAppendFrame` | The context aggregator consumes the frame and retains the developer message. | 2026-07-12 ([provider docs](https://docs.pipecat.ai/pipecat/learn/context-management)) |
| <a id="contract-cartesia"></a>Cartesia Line | requires_agent_hook | `custom event` | Default adapter remains tap-only; a Line agent must explicitly handle UserCustomSent. | 2026-07-12 ([provider docs](https://docs.cartesia.ai/line/sdk/events)) |
| <a id="contract-inworld"></a>Inworld Realtime | native_message | `conversation.item.create` | Server emits conversation.item.added/done or an error. | 2026-07-12 ([provider docs](https://dev.docs.inworld.ai/api-reference/realtimeAPI/realtime/realtime-webrtc)) |

Generated contract source SHA-256: `d0d4f841062d2af626177a66211ad2dfe0b813f9839283d3503c8b2b66827432`
