Optional ReadonlycorrelationThe run's correlation (10.1) — as on every scope event (RecorderContext.correlation). Absent when none.
ReadonlynameConsumer-supplied event name. Convention: hierarchical dotted namespace
(e.g. 'agentfootprint.llm.tokens', 'myapp.billing.spend'). Keeps
vocabularies collision-free across libraries/apps without requiring a
central registry.
ReadonlypayloadConsumer-supplied payload. Shape is up to the consumer and their
convention; library treats it as opaque and passes through unchanged
(modulo redaction — see RedactionPolicy.emitPatterns).
When redacted, replaced with the string '[REDACTED]'.
ReadonlypipelinePipeline/run identifier (matches RecorderContext.pipelineId).
ReadonlyruntimeUnique per-execution-step identifier — the same value recorder events
and commit-log entries carry. See runtimeStageId.ts for format.
Optional ReadonlysourceSource-time committed prefix in this stage's own log, captured before observer dispatch. Not this stage's future commit or uncommitted state. Match logRunId + drillPath against the source's logAddress before folding; a named nested history can be unavailable (e.g. a paused subflow). Absent on old/manual events and scopes without a bound engine log.
ReadonlystageName of the stage that emitted this event.
ReadonlysubflowSubflow path from the outermost parent down to the subflow that emitted
this event. Empty array when the emit came from the root flowchart.
Matches the convention used by FlowPauseEvent.subflowPath,
FlowchartCheckpoint.subflowPath, etc.
ReadonlytimestampEmission timestamp in milliseconds since epoch (Date.now()).
Event delivered to
EmitRecorder.onEmit.Name + payload are consumer-supplied via
scope.$emit(name, payload). Everything else is library-enriched at dispatch time from the current stage's execution context.