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.