Message reference

Every OCP 1.0 message and core object, generated from the normative Zod contracts. Message tables show the payload fields (the envelope {v, id, type, ts, sid?, replyTo?} is common to all). Each links to its machine-readable JSON Schema.

Messages

action.request

action-request.json
FieldTypeReq.Constraints
actionIdstringlen 10–64
toolstring
inputobject
turnIdstring
sealedobject

action.result

action-result.json
FieldTypeReq.Constraints
actionIdstring
okboolean
outputany
errorstringlen 0–500
reason"denied" | "expired" | "unauthorized" | "unknown_tool" | "failed"
sealedobject

context.set

context-set.json
FieldTypeReq.Constraints
revinteger≥ 0
urlstringlen 0–2048
resourceobject
selectionobject
viewobject
sealedobject
FieldTypeReq.Constraints
code"AUTH_EXPIRED" | "SCOPE_DENIED" | "RATE_LIMITED" | "NONCE_USED" | "SESSION_GONE" | "TURN_ABORTED" | "CONTEXT_TOO_LARGE" | "PAIR_DENIED" | "UNSUPPORTED" | "SEAL_REQUIRED" | "INTERNAL"
messagestringlen 0–500
retryableboolean
detailsobject

session.heartbeat

heartbeat.json

No fields.

pair.approval_request

pair-approval-request.json
FieldTypeReq.Constraints
claimIdstring
deviceobject
expiresAtinteger> 0
sealPubKeystringlen 44–44
via"qr" | "code"

pair.approval_response

pair-approval-response.json
FieldTypeReq.Constraints
claimIdstring
approvedboolean

pair.linked

pair-linked.json
FieldTypeReq.Constraints
deviceobject
scopesstring[]
tier"t0" | "t1" | "t2"
FieldTypeReq.Constraints
claimIdstring
sPubstringlen 44–44

pair.revoked

pair-revoked.json
FieldTypeReq.Constraints
by"surface" | "hub" | "admin"

session.closed

session-closed.json
FieldTypeReq.Constraints
reason"surface_gone" | "revoked" | "ttl_idle" | "ttl_absolute" | "error" | "user"

session.linked

session-linked.json
FieldTypeReq.Constraints
sidstring
capabilitiesobject
tier"t0" | "t1" | "t2"
scopesstring[]
resumeKeystring
principalobject
answerMode"hub" | "companion"
answeredByobject
sealMode"none" | "e2e"

session.open

session-open.json
FieldTypeReq.Constraints
capabilitiesobject
resumeKeystringlen 16–256

session.refresh

session-refresh.json

No fields.

session.refreshed

session-refreshed.json
FieldTypeReq.Constraints
tokenstringlen 20–∞
expiresIninteger> 0

session.resumed

session-resumed.json
FieldTypeReq.Constraints
peer"surface" | "companion"

session.suspended

session-suspended.json
FieldTypeReq.Constraints
peer"surface" | "companion"
graceMsinteger> 0

tools.advertise

tools-advertise.json
FieldTypeReq.Constraints
toolsobject[]

turn.cancel

turn-cancel.json
FieldTypeReq.Constraints
turnIdstring

turn.citation

turn-citation.json
FieldTypeReq.Constraints
turnIdstring
indexinteger> 0
resourceobject
quotestringlen 0–500
sealedobject

turn.delta

turn-delta.json
FieldTypeReq.Constraints
turnIdstring
textstring
sealedobject
FieldTypeReq.Constraints
turnIdstring
contextRevinteger≥ 0
usageobject
answeredByobject

turn.error

turn-error.json
FieldTypeReq.Constraints
turnIdstring
code"TURN_ABORTED" | "RATE_LIMITED" | "SCOPE_DENIED" | "INTERNAL"
messagestringlen 0–500

turn.input

turn-input.json
FieldTypeReq.Constraints
turnIdstringlen 10–64
textstringlen 1–8000
audioRefstringlen 0–512
langstringlen 2–35
sealedobject

ui.request

ui-request.json
FieldTypeReq.Constraints
requestIdstringlen 10–64
kind"confirm" | "choice" | "notice"
mode"expire" | "gate"
titlestringlen 0–200
bodystringlen 0–2000
optionsobject[]
expiresAtinteger> 0
actionIdstring
sealedobject

ui.response

ui-response.json
FieldTypeReq.Constraints
requestIdstring
resultstringlen 0–64
peer"surface" | "companion"
recordstringlen 10–128

Core objects

answer-mode

answer-mode.json

"hub" | "companion"

answer-provenance

answer-provenance.json
FieldTypeReq.Constraints
mode"hub" | "companion"
operatorstringlen 1–200
brainIdstringlen 0–200

any-message

any-message.json

No fields.

capabilities

capabilities.json
FieldTypeReq.Constraints
profilesobject[]
stt"device" | "hub" | "none"
tts"device" | "hub" | "none"
localesstring[]
audioboolean
toolsboolean
longSessionboolean
answerboolean
sealboolean
FieldTypeReq.Constraints
revinteger≥ 0
urlstringlen 0–2048
resourceobject
selectionobject
viewobject
sealedobject

deployment

deployment.json
FieldTypeReq.Constraints
answerMode"hub" | "companion"
operatorstringlen 1–200
dataResidencystring
retentionobject

embed-config

embed-config.json
FieldTypeReq.Constraints
siteKeystringlen 1–128
hubstringuri
allowedOriginsstring[]
FieldTypeReq.Constraints
vstring
idstringlen 10–64
typestringlen 1–64
tsinteger> 0
sidstringlen 16–128
replyTostringlen 10–64
payloadany

error-code

error-code.json

"AUTH_EXPIRED" | "SCOPE_DENIED" | "RATE_LIMITED" | "NONCE_USED" | "SESSION_GONE" | "TURN_ABORTED" | "CONTEXT_TOO_LARGE" | "PAIR_DENIED" | "UNSUPPORTED" | "SEAL_REQUIRED" | "INTERNAL"

SEAL_REQUIRED belongs to the retired sealing profile — registered so peers can parse it, not an error to raise.

error-payload

error-payload.json
FieldTypeReq.Constraints
code"AUTH_EXPIRED" | "SCOPE_DENIED" | "RATE_LIMITED" | "NONCE_USED" | "SESSION_GONE" | "TURN_ABORTED" | "CONTEXT_TOO_LARGE" | "PAIR_DENIED" | "UNSUPPORTED" | "SEAL_REQUIRED" | "INTERNAL"
messagestringlen 0–500
retryableboolean
detailsobject

host-to-widget

host-to-widget.json

No fields.

pair-claim

pair-claim.json
FieldTypeReq.Constraints
jwsstringlen 20–∞
principalobject
devicePubKeyobject
sealPubKeystringlen 44–44
attestationstring
deviceobject

pair-claim-by-code

pair-claim-by-code.json
FieldTypeReq.Constraints
codestringlen 8–24
devicePubKeyobject
deviceobject
attestationstringlen 0–8192
sealPubKeystringlen 44–44
principalobject

pair-resolve

pair-resolve.json
FieldTypeReq.Constraints
codestringlen 8–24

pair-token-claims

pair-token-claims.json
FieldTypeReq.Constraints
vstring
issstringuri
sidstringlen 22–∞
noncestringlen 22–∞
expinteger> 0
iatinteger> 0
capstringuri
FieldTypeReq.Constraints
substringlen 1–256
issstringlen 1–256
namestringlen 0–200

profile-ref

profile-ref.json
FieldTypeReq.Constraints
name"core" | "embed" | "companion" | "provider"
versionstring

resource-ref

resource-ref.json
FieldTypeReq.Constraints
kindstringlen 1–64
idstringlen 1–256
titlestringlen 0–500

"none" | "e2e"

FieldTypeReq.Constraints
suite"ocp-seal-1"
kidstringlen 11–11
epochinteger≥ 0
counterinteger≥ 0
ctstringlen 1–65536
FieldTypeReq.Constraints
namestringlen 1–128
descriptionstringlen 0–1000
inputSchemaobject
location"hub" | "surface"
writeboolean

well-known

well-known.json
FieldTypeReq.Constraints
ocpobject
issuerstringuri
jwks_uristringuri
ws_endpointstringuri
profilesobject[]
deploymentobject

widget-to-host

widget-to-host.json

No fields.