ak.schema.agent_sidecar_event_exchange_binding.v1
ak.schema.agent_sidecar_event_exchange_binding.v1 · file: schemas/agent-sidecar-event-exchange-binding.schema.json Closed typed binding that ties one native-Sidecar-scoped Message event to one source-routed exchange. It is legal only inside encrypted metadata plaintext of an event whose scope_ref.kind is sidecar. It is the only normative way to declare an explicit user-facing response; invalid or absent bindings are non-echo. See zh/models/sidecar.md.
* $ · object
Closed typed binding that ties one native-Sidecar-scoped Message event to one source-routed exchange. It is legal only inside encrypted metadata plaintext of an event whose scope_ref.kind is sidecar. It is the only normative way to declare an explicit user-facing response; invalid or absent bindings are non-echo. See zh/models/sidecar.md.
allOf · allOf[0] ·
?allOf · allOf[1] ·
?allOf · allOf[2] ·
?allOf · allOf[3] ·
?allOf · allOf[4] ·
?allOf · allOf[5] ·
?* schema ·
const "ak.schema.agent_sidecar_event_exchange_binding.v1"enum:
"ak.schema.agent_sidecar_event_exchange_binding.v1"* exchange_id ·
stringOpaque controller-private idempotency identity copied verbatim from the request binding. It is not a Sidecar locator and MUST NOT appear in shared events, plaintext metadata, publish output, push previews, notifications, public telemetry, account-data keys, or any public/shared surface.
pattern:
^[A-Za-z0-9._~=-]{22,128}$* role ·
string (enum)Closed disposition. request: the controller's private request event itself. user_facing_response: an Agent response the controller MAY echo after validation. internal: exchange-scoped Agent collaboration/tool output that MUST NOT be echoed. Consumers MUST fail closed to non-echo on any value not listed here.
enum:
"request" "user_facing_response" "internal"request_event_id ·
stringAccepted Event id of the private request event of the same exchange. Event id is the only canonical reference form; Message ids MUST NOT be used here.
pattern:
^ak:event:[A-Za-z0-9_-]{44}$completes_exchange ·
const trueOptional coordinator completion request; legal only with role=user_facing_response. It does not itself make the exchange terminal. A controller device validates the actor against coordinator_assignment_event_id and, on success, authors a durable ak.agent.sidecar.exchange.control Event with action=close.
enum:
truecoordinator_assignment_event_id ·
stringRequest Event id for the initial coordinator assignment, or the accepted reassign_coordinator control Event id. Required only when completes_exchange=true.
pattern:
^ak:event:[A-Za-z0-9_-]{44}$request_context · object · $ref #/$defs/request_context
Write-once exchange identity carried only on role=request. It is the single durable source of the projection's write-once fields: any controller device rebuilding the projection copies these values verbatim, so cross-device bit-identity is anchored to the accepted request event instead of device-local state. Forbidden on response/internal roles.
allOf · allOf[0] ·
?* source_track_ref · object
* realm_id ·
string · $ref ./common-ids.schema.json#/$defs/realm_idRetyped ak.realm.create Event token. It therefore carries the same fixed current-v1 0x01/SHA-256 content-address identity and is not selected by Realm state.
pattern:
^ak:realm:[A-Za-z0-9_-]{44}$* strand_id ·
stringpattern:
^ak:strand:[A-Za-z0-9_-]{44}$* track_name ·
stringpattern:
^[a-z][a-z0-9_]{0,63}$* source_hlc ·
stringpattern:
^[0-9a-f]{12}-[0-9a-f]{4}-[0-9a-f]{8}$* client_order_key ·
stringpattern:
^[A-Za-z0-9._~=-]{1,128}$* addressed_agent_ids · array<$ref ./common-ids.schema.json#/$defs/did_core_id>
items ·
string · $ref ./common-ids.schema.json#/$defs/did_core_idCanonical stable DID-derived identity core. The lowercase DID method name follows ak:did_core:, and the remaining method-adapter-defined core is opaque to generic consumers. The did:web v1 adapter uses the complete canonical method-specific-id, never a digest or truncated host. Principal-core and service-core equality is byte-for-byte equality of the complete did_core_id. Event actor and Realm membership equality instead use the complete closed ActorId, and account-scoped equality uses the complete AccountId; neither may be reduced to a principal core. A did_core_id is not a DID and cannot be resolved without a did or AuthenticatedServiceResolution.
pattern:
^ak:did_core:[a-z0-9]+:[^\s/?#]+$coordinator_agent_id ·
string · $ref ./common-ids.schema.json#/$defs/did_core_idCanonical stable DID-derived identity core. The lowercase DID method name follows ak:did_core:, and the remaining method-adapter-defined core is opaque to generic consumers. The did:web v1 adapter uses the complete canonical method-specific-id, never a digest or truncated host. Principal-core and service-core equality is byte-for-byte equality of the complete did_core_id. Event actor and Realm membership equality instead use the complete closed ActorId, and account-scoped equality uses the complete AccountId; neither may be reduced to a principal core. A did_core_id is not a DID and cannot be resolved without a did or AuthenticatedServiceResolution.
pattern:
^ak:did_core:[a-z0-9]+:[^\s/?#]+$source_checkpoint_anchor_id ·
stringpattern:
^ak:event:[A-Za-z0-9_-]{44}$Source
- registry row:
spec/v1/artifacts/registry/schema-registry.json - schema document:
spec/v1/artifacts/schemas/agent-sidecar-event-exchange-binding.schema.json