FlowRecorder
Interface: FlowRecorder
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:341
FlowRecorder — Pluggable observer for control flow events.
Mirrors the scope-level ScopeRecorder pattern for the engine layer. All methods are optional — implement only the hooks you need. Recorders are invoked synchronously in attachment order. If a recorder throws, the error is caught and swallowed; execution continues.
Example
const metricsRecorder: FlowRecorder = {
id: 'metrics',
onLoop: (event) => recordMetric('loop.iteration', event.iteration),
onDecision: (event) => recordMetric('decision', event.chosen),
};
executor.attachFlowRecorder(metricsRecorder);Properties
id
readonlyid:string
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:342
Methods
clear()?
optionalclear():void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:376
Called before each run to reset per-run state. Implement for stateful recorders.
Returns
void
onBreak()?
optionalonBreak(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:353
Parameters
event
Returns
void
onDecision()?
optionalonDecision(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:345
Parameters
event
Returns
void
onError()?
optionalonError(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:354
Parameters
event
Returns
void
onFork()?
optionalonFork(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:346
Parameters
event
Returns
void
onLoop()?
optionalonLoop(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:352
Parameters
event
Returns
void
onNext()?
optionalonNext(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:344
Parameters
event
Returns
void
onPause()?
optionalonPause(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:355
Parameters
event
FlowPauseEvent
Returns
void
onResume()?
optionalonResume(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:356
Parameters
event
FlowResumeEvent
Returns
void
onRunEnd()?
optionalonRunEnd(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:367
Called once per top-level executor.run() AFTER traversal completes
cleanly. Carries event.payload = chart's return value. NOT fired on
pause (the run didn't end) or uncaught error.
Parameters
event
FlowRunEvent
Returns
void
onRunFailed()?
optionalonRunFailed(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:374
Called once per top-level executor.run() when the run throws a
non-pause error, BEFORE the exception propagates. The TERMINAL
counterpart to onRunEnd — lets a monitor close the run boundary on
failure instead of waiting forever. NOT fired on pause.
Parameters
event
FlowRunFailedEvent
Returns
void
onRunStart()?
optionalonRunStart(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:361
Called once per top-level executor.run() BEFORE traversal begins.
Carries event.payload = run({input}). Subflow-traversers don't fire it.
Parameters
event
FlowRunEvent
Returns
void
onSelected()?
optionalonSelected(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:347
Parameters
event
Returns
void
onStageExecuted()?
optionalonStageExecuted(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:343
Parameters
event
Returns
void
onSubflowEntry()?
optionalonSubflowEntry(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:348
Parameters
event
Returns
void
onSubflowExit()?
optionalonSubflowExit(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:349
Parameters
event
Returns
void
onSubflowRegistered()?
optionalonSubflowRegistered(event):void
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:351
Called when a dynamic subflow is registered during traversal.
Parameters
event
Returns
void
toSnapshot()?
optionaltoSnapshot():object
Defined in: node_modules/footprintjs/dist/types/lib/engine/narrative/types.d.ts:378
Optional: expose collected data for inclusion in snapshots.
Returns
object
data
data:
unknown
description?
optionaldescription?:string
name
name:
string
preferredOperation?
optionalpreferredOperation?:"translate"|"accumulate"|"aggregate"
