跳转到内容

ak.schema.agent_sidecar_event_exchange_binding.v1

← Schemas

Arkret Agent Sidecar Event Exchange Binding
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 · string
Opaque 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 · string
Accepted 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 true
Optional 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: true
coordinator_assignment_event_id · string
Request 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_id
Retyped 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 · string
pattern: ^ak:strand:[A-Za-z0-9_-]{44}$
* track_name · string
pattern: ^[a-z][a-z0-9_]{0,63}$
* source_hlc · string
pattern: ^[0-9a-f]{12}-[0-9a-f]{4}-[0-9a-f]{8}$
* client_order_key · string
pattern: ^[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_id
Canonical 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_id
Canonical 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 · string
pattern: ^ak:event:[A-Za-z0-9_-]{44}$

Source