Skip to main content
This page is generated from the built Zod schemas in packages/shared/src/protocol.ts, packages/shared/src/e2ee.ts, and packages/shared/src/room.ts. The repository README remains the authority on current runtime behavior.

Caller to relay

call_request

Send an encrypted call payload.

Relay to caller

call_status

Report unauthenticated lifecycle metadata.

call_error

Return an unauthenticated relay-operational error.

call_outcome

Return an encrypted, authenticated peer outcome.

Relay to listener

incoming_call

Deliver an encrypted call with relay-attested routing metadata.

cancel_call

Request cancellation.

Listener to relay

call_accepted

Confirm ownership of queued work.

call_started

Confirm the answering process started.

call_outcome

Return an encrypted, authenticated peer outcome.

call_rejected

Reject an invalid encrypted request.

call_cancelled

Confirm cancellation completed.

call_not_cancelled

Explain why cancellation did not complete.

Accountless Room HTTP protocol

Create request

Create a bounded 2–6-person accountless Room.

Create response

Return the host capability and independent single-use invitations exactly once.

Join request

Redeem one invitation with a participant secret and signing-key possession proof.

Join response

Return session-local membership; the capability appears only on first issuance.

Room action request

Perform a capability-authenticated lifecycle action; only moderation actions use the optional target.

Room action response

Return the current bounded Room membership view without credential hashes.

Room participant to relay WebSocket

room_call_submit

Submit one opaque call to an exact Room participant.

room_call_accepted

Confirm ownership of delivered Room work.

room_call_started

Confirm the Room answering process started.

room_call_outcome

Return an opaque terminal Room outcome.

room_call_cancel

Cancel a previously submitted Room call.

room_call_canceled

Confirm local cancellation completed.

Relay to Room participant WebSocket

room_incoming_call

Deliver an opaque call with relay-attested Room membership metadata.

room_call_status

Report Room call progress to its caller.

room_call_result

Report a terminal Room result; duplicate submissions may omit erased outcome bytes.

room_call_error

Return a bounded Room routing or lifecycle error.

room_cancel_call

Request cancellation of exact inbound Room work.

Important bounds

  • Messages are limited to 64,000 bytes; replies to 256,000 bytes.
  • Conversation contexts expire after 30 minutes and allow at most 10 turns.
  • Each caller has a 30-call hourly budget.
  • A listener accepts at most 50 relay-attested shared roster IDs per call.
  • An encrypted WebSocket frame is limited to 2,063,019 bytes.
  • Optional W3C trace context is normalized and must match the correlation ID.
Call messages, task and context identifiers, successful replies, peer failure details, and offered-task lists exist only inside signed HPKE envelopes. Routing and lifecycle metadata remain visible to the relay.