Reference
Events
Generated durable-envelope fields and normalized typed event vocabularies.
The fixed attempt runtime and model/tool providers normalize into this product-owned vocabulary. A durable product event wraps semantic payload in the generated envelope below; replay cursors are opaque and callers never perform cursor arithmetic.
Durable domain-event envelope
| Field | Required | Type | Constraint |
|---|---|---|---|
actor | yes | EventActor | unknown fields forbidden |
aggregate_id | yes | string | — |
aggregate_type | yes | string | — |
aggregate_version | yes | integer | minimum 1.0 |
causation_id | yes | string | — |
correlation_id | yes | string | — |
cursor | yes | Cursor | pattern ^c2_[A-Za-z0-9_-]{32}$ |
event_id | yes | EventId | pattern ^eve_[0-9a-f]{32}$ |
event_type | yes | string | pattern ^[a-z][a-z0-9_.-]+$ |
occurred_at | yes | string | format date-time |
payload | yes | object | — |
project_id | yes | ProjectId | pattern ^prj_[0-9a-f]{32}$ |
schema_version | no | 1 | fixed value 1 |
trace_id | yes | string | — |
workspace_id | yes | WorkspaceId | pattern ^wsp_[0-9a-f]{32}$ |
Normalized attempt events
| Event type | Contract | Event-specific fields |
|---|---|---|
approval.requested | ApprovalEvent | approval_id, decision |
approval.resolved | ApprovalEvent | approval_id, decision |
artifact.published | ArtifactPublishedEvent | artifact_id |
attempt.cancelled | AttemptLifecycleEvent | detail |
attempt.completed | AttemptLifecycleEvent | detail |
attempt.failed | AttemptLifecycleEvent | detail |
attempt.paused | AttemptLifecycleEvent | detail |
attempt.provisioning | AttemptLifecycleEvent | detail |
attempt.queued | AttemptLifecycleEvent | detail |
attempt.resumed | AttemptLifecycleEvent | detail |
attempt.started | AttemptLifecycleEvent | detail |
checkpoint.created | CheckpointCreatedEvent | checkpoint_id |
claim.proposed | ClaimProposedEvent | claim_id |
message.completed | MessageEvent | content, message_id |
message.delta | MessageEvent | content, message_id |
message.started | MessageEvent | content, message_id |
reasoning.summary | ReasoningSummaryEvent | summary |
task.proposed | TaskProposedEvent | objective, title |
tool.completed | ToolEvent | detail, status, tool_call_id, tool_name |
tool.delta | ToolEvent | detail, status, tool_call_id, tool_name |
tool.requested | ToolEvent | detail, status, tool_call_id, tool_name |
tool.started | ToolEvent | detail, status, tool_call_id, tool_name |
usage.updated | UsageUpdatedEvent | estimated_cost_micros, input_tokens, output_tokens |
Unknown event types fail closed at the typed boundary. message.delta and tool.delta
may be presentation-only; completed semantic outcomes are the durable source for
recovery.