Skip to content

Aevum Event Schema v1

The machine-readable JSON Schema is at spec/aevum-event-v1.json.

The schema defines the structure of every AuditEvent produced by the episodic ledger. See the Signing Specification for verification procedures.

Field summary

See the JSON Schema for full constraints. Key fields:

Field Type Description
event_id string UUID v7 (globally unique, time-ordered)
episode_id string Groups events into a logical workflow episode
sequence integer Chain position (1-based); always 1 for session.start
event_type string Dotted namespace (e.g. session.start, ingest.accepted)
actor string Who caused this event (e.g. aevum-core, agent)
system_time integer HLC nanoseconds — use for causal ordering
valid_from string Wall-clock ISO 8601 timestamp
valid_to string|null Validity end timestamp; null for point-in-time events
causation_id string|null audit_id of the causing event
correlation_id string|null Deployment-wide correlation token
trace_id string|null OTel W3C trace ID
span_id string|null OTel W3C span ID
prior_hash string SHA3-256 of previous event's signing fields
payload_hash string SHA3-256 of payload (JCS-canonical)
signature string Ed25519 over SHA3-256(signing fields), base64url
signer_key_id string Signing key identifier
schema_version string Always "1.0"
payload object Event-specific structured data
audit_id string urn:aevum:audit:{event_id}

Event types

event_type Description
session.start Kernel startup; always sequence 1
ingest.accepted Data ingested through the governed membrane
ingest.rejected Ingest denied by policy or consent
query.accepted Graph traversal executed
review.created Review checkpoint created
commit.accepted Manual commit appended
replay.started Replay of a past decision begun
capture.gap Out-of-band capture surface call declared

session.start payload

{
  "capture_surface": {
    "llm": false,
    "mcp": false
  },
  "key_provenance": "in-process"
}

key_provenance values: in-process, external, vault-transit, aws-kms, pkcs11.

capture.gap payload

{
  "gap_type": "llm",
  "reason": "direct_api_call",
  "model_hint": "claude-opus-4-7"
}

gap_type values: llm, mcp, tool, custom. reason and gap_type are required; model_hint is optional.