events.jsonl as newline-delimited JSON. Each event represents a phase transition in the cognitive loop.
Current event schema version: 1.3.0 (JSON schema).
Integrity contract (events.jsonl)
events.jsonl is the canonical append-only trace for an episode. Noēsis treats corruption as a hard integrity failure.
- Reads fail closed: malformed records are not skipped.
iter_events()/read_events()raiseEventLogIntegrityErrorwhen a line has invalid UTF-8, invalid JSON, or a non-object JSON value.- Appends are guarded:
write_event()validates the existing log before writing and rejects append attempts if any existing record is corrupt (including corruption in the middle of the file).
- A truncated final line.
- Invalid UTF-8 bytes in any record.
- A malformed JSON record even when later lines are valid.
Event structure
Every event follows this base structure:Unique event identifier.
Event phase. Canonical values:
start, observe, interpret, plan, direction, governance, action_candidate, act, reflect, learn, runtime, terminate, insight, memory, intuition, reason, error. Extensions may emit additional phases.Subtype for
phase="runtime" events (for example run.interrupt, run.checkpoint, run.resume, run.state_projection).Identifier of the component that emitted the event.
Phase-specific payload data.
Optional evidence references carried forward into the event record.
Timing metrics for the event.
ID of the event that caused this one (for lineage tracking).
Event phases
Additional phases you may see:- start: episode initialization metadata.
- intuition: advisory/intuition policy events.
- memory: reads/writes performed by the memory port.
- insight: computed insight metrics (alias of events —phase insight).
- reason: reasoning traces from the planner.
- runtime: lifecycle and projection evidence (
run.*event types). - error: fatal errors.
observe
Captures the raw task and context at episode start.The task or goal for the episode.
User-provided metadata tags.
ISO 8601 timestamp of observation.
Additional context provided with the task.
intuition
Captures advisory/intervention/veto signals before interpretation and planning.Directive kind:
hint, intervention, veto.Optional risk posture:
low, moderate, high, critical.Optional salience cues:
task_complexity, normalization_gap, policy_hint, safety_boundary.Optional planning hints:
conservative, verify_first, retrieve_more, narrow_scope.Optional tool constraints:
no_side_effects, read_only, require_double_check.Optional review level:
normal, elevated, strict.interpret
Summarizes signals extracted from the observed input.List of detected signals.
Classified intent of the task.
Policy that performed interpretation.
plan
Records the selected action steps and projection metadata used to rebuildstate.json.
Compatibility labels in
<kind>:<description> format. Legacy consumers may rely on this field.Structured plan records used for deterministic plan-state projection.
Planner source identifier (for example,
planner.minimal). Runtime-emitted plan events always include this.Optional planner rationale.
direction
Records policy directives (meta mode only).Direction schema version (
1.2.0 at time of writing).Stable directive identifier derived from content.
Legacy UUID retained for compatibility.
Directive status:
applied, blocked, skipped.Structured mutations with
key, before, after.Why the directive status was produced.
Policy that issued the directive (typically
planner.meta).Policy version for compatibility and replay diagnostics.
Policy kind:
llm, rules, hybrid.When present, links this directive back to the originating intuition event.
Optional steering carry-over:
low, moderate, high, critical.Optional steering carry-over:
normal, elevated, strict.Evidence propagated from intuition (
payload.evidence_ids mirrors this when set).governance
Records governance decisions (meta mode only).Unique governance event identifier.
Governance decision:
allow, audit, veto.Rule that determined the decision.
Confidence score for the decision (0-1).
Governance policy identifier.
Additional governance details.
act
Logs tool or adapter invocations. The runtime emits an action projection that is intentionally close to the persistedstate.json action record so action outcomes are reconstructible from
events.jsonl.
Action record identifier (for example
act-1).Action kind (for example
tool).Tool that was invoked.
Truncated input for logging.
Compatibility status field for existing consumers.
Canonical action status mirrored from state (
ok, error, vetoed, etc.).Action outcome value.
Canonical action status string from the action record (for example,
ok).Plan step ID associated with this action.
Resulting status for
payload.step_id. This field is used to project final step status from act evidence.Extension keys from the action record. Only
x- prefixed extension keys are emitted.outcome and result_status currently carry the same status value. outcome
is retained for compatibility with older consumers.For runtime-emitted actions,
state.json action timestamps are aligned to the
event completion time before persistence, so
state.outcomes.actions[n].timestamp == act_event.timestamp.reflect
Evaluates outcomes against expectations.Whether the episode succeeded.
Human-readable explanation of the outcome.
List of expected outcomes.
List of actual outcomes.
List of issues encountered.
Evaluation metrics.
learn
Captures learning signals for future episodes. The minimal validator expects the following keys; runners may add extra detail.Policy that produced the learning signal.
Reasons or evidence that drove the learning update.
List of proposed updates (may be empty).
Whether the proposed updates were applied.
Update scope:
session, episode, policy, global.runtime (run.*)
Runtime events share phase="runtime" and use event_type as the stable subtype.
The current lifecycle family includes run.interrupt, run.checkpoint,
run.resume, and run.state_projection.
run.state_projection is emitted whenever state is persisted so state.json
outcome/link fields have explicit event evidence.
Always
run.state_projection for projection evidence records.Mirrors
payload.outcomes.status for compatibility with existing consumers.Trace-backed projection of persisted state outcome fields:
status, summary,
and metrics.Trace-backed projection of persisted
state.json.links.- Non-terminal runs:
events,learn - Terminal runs:
events,learn,summary,manifest
For runtime lifecycle/projection events, points to the latest prior event in the
trace when available.
terminate
Marks the end of an episode.Final status:
completed, errored, vetoed, aborted.Episode identifier.
Total episode duration in milliseconds.
Phase order (partial)
Current phases:start, observe, interpret, plan, direction, governance, action_candidate, act, reflect, learn, runtime, terminate, insight, memory, intuition, reason, error.
- Required:
startkicks off every episode;terminatemarks completion. - Typical loop:
observe→interpret→plan→ (direction/governancein meta mode) →act→reflect→ (learnoptionally). - Optional tail:
insightandmemorymay emit afterterminatefor scoring/persistence. - Partial order: phases follow the sequence above when present, but not every phase appears in every run.
Reading events
CLI
Python
Troubleshooting: verify plan derivability
Use the runtime projector to confirmstate.json.plan is derivable from events.jsonl.
- the latest
planpayload forstep_recordsandsource actpayload entries for bothstep_idandstep_status
events.jsonl is repaired or replaced.
Next steps
State schema
State artifact reference.
Cognitive loop
Understanding the phases.

