Chat Runtime

Vonative chat sessions use a two-layer architecture:
  • the Vonative API is the control plane
  • https://chat.vonative.com is the runtime plane
The API remains the source of truth for authentication, organization scoping, session creation, resume, and billing metadata. The Worker at chat.vonative.com handles the live chat transport and streaming.

Connection model

Clients should not create chat runtime sessions directly from raw assistant or organization identifiers. Always bootstrap through the Vonative API first.

Frontend flow

  1. Start or resume a chat session through the Vonative API.
  2. Receive runtime connection details from the API.
  3. Send messages and receive live responses from chat.vonative.com.
For assistant chat:
Request body:
For workflow chat:
Request body:
Expected bootstrap response shape:

Runtime authentication

Use a short-lived runtime token issued by the Vonative API. Do not expose internal bridge secrets to browsers, mobile apps, or third-party developers. The runtime token should represent:
  • organization
  • assistant or workflow
  • session
  • root session
  • conversation mode
  • expiry time
  • optional channel metadata

Web client messaging

After bootstrap, the frontend connects directly to chat.vonative.com. Recommended runtime routes:
Headers:
Example non-streaming request:
Attachment-aware request:
Example response:

File uploads

Web chat supports session-scoped attachments through chat.vonative.com. Upload first:
Form fields:
  • file: the uploaded file
Response:
Then include attachment_ids when sending the message. Supported web-chat uploads in the current runtime:
  • images:
    • image/png
    • image/jpeg
    • image/webp
    • image/gif
  • text-like files:
    • text/plain
    • text/markdown
    • text/csv
    • text/html
    • application/json
    • application/xml
    • text/xml
  • document files converted to text in the Worker:
    • application/pdf
    • application/vnd.openxmlformats-officedocument.wordprocessingml.document
Current limits:
  • images up to 5 MB
  • text-like files up to 1 MB
  • PDF and DOCX files up to 10 MB
Current behavior:
  • image uploads are passed to the model as image input on the next user turn
  • text-like uploads are inlined as text context on the next user turn
  • PDF and DOCX uploads are converted to markdown/text in the Worker and inlined on the next user turn
  • attachment metadata is visible in the chat thread for the active session and preserved across resumed chat history
Not yet supported in the current web-chat runtime:
  • XLSX/PPTX parsing
  • arbitrary binary file understanding
Example browser upload:

Streaming responses

For live token-by-token rendering, use the stream endpoint.
Recommended event types:
  • message_start
  • token
  • tool_call
  • tool_result
  • message_end
  • done
  • error
Example browser request:
Your UI should render:
  • streamed assistant tokens
  • tool execution updates when available
  • final message text
  • final usage and cost metadata if returned

Resuming a chat session

Resume should start from the Vonative API, not from the Worker directly.
Request body:
Expected response:
The frontend should render the returned history immediately, then continue the session using the new child session_id.

Public developer integrations

For external developers, use the same pattern:
  1. create or resume a session through the Vonative API
  2. receive runtime_token and chat_runtime_url
  3. connect directly to chat.vonative.com for live messaging
This keeps:
  • organization validation in the API
  • session lifecycle in the API
  • billing settlement in the API
  • live runtime transport in the Worker

Security model

Use two authentication layers: BRIDGE_SECRET is internal only and should be used only for trusted service-to-service communication.

CORS and browser support

chat.vonative.com should allow:
  • your Vonative dashboard origin
  • approved customer origins for embedded chat
  • Authorization and Content-Type headers
  • multipart/form-data uploads for attachments
  • long-lived streaming responses for SSE or equivalent streaming transport

Notes

  • Chat-only mode is text-only. It does not publish mic audio or play TTS output.
  • Chat runtime should be treated as the live execution surface, not the control plane.
  • Resume creates a new live runtime connection while preserving a stable root conversation thread.