Event reference¶
RuntimeEvent is the replay and observability envelope. Its fields are:
| Field | Type | Meaning |
|---|---|---|
id |
str |
Event UUID |
type |
EventType |
Stable event name |
timestamp |
timezone-aware datetime |
Normalized to UTC |
session_id |
str |
Owning session |
sequence |
int |
Positive session-local order after persistence |
run_id |
str | None |
Related run |
trace_id |
str | None |
Related trace |
parent_id |
str | None |
Related parent event or span |
payload |
JSON mapping | Immutable JSON-safe public data |
to_dict() emits an ISO 8601 UTC timestamp ending in Z. from_dict() restores the event and
validates timezone and payload constraints.
Session and message¶
session.startedsession.completeduser.message.receivedassistant.message.startedassistant.message.deltaassistant.message.completed
Agent and model¶
agent.startedagent.completedagent.failedagent.handoffmodel.request.startedmodel.token.deltamodel.request.completedusage.recorded
Model request events include provider and model ID. Failure details use stable AgentMuru codes and fixed public messages.
Tool and approval¶
tool.call.requestedtool.call.startedtool.call.completedtool.call.failedapproval.requestedapproval.grantedapproval.rejectedapproval.expired
Tool request payloads use redacted public arguments. Approval events carry actor and reason when the decision supplies them.
Artifact, workflow, and trace¶
artifact.createdartifact.updatedworkflow.startedworkflow.step.startedworkflow.step.completedworkflow.completedtrace.span.startedtrace.span.completed
Run outcome¶
run.completedrun.failedrun.cancelled
A run has one terminal outcome. A runtime started over durable state can append run.failed with
process_interrupted for work left nonterminal by the prior process.
Replay rule¶
Consumers must persist or retain the last processed sequence, not infer order from timestamps.
Reconnect with after=<sequence> and apply only events with a larger sequence.