agentfootprint 2.14.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/cache/CacheDecisionSubflow.js +3 -1
  2. package/dist/cache/CacheDecisionSubflow.js.map +1 -1
  3. package/dist/conventions.js +3 -2
  4. package/dist/conventions.js.map +1 -1
  5. package/dist/core/Agent.js +69 -23
  6. package/dist/core/Agent.js.map +1 -1
  7. package/dist/core/LLMCall.js +44 -5
  8. package/dist/core/LLMCall.js.map +1 -1
  9. package/dist/core/RunnerBase.js +173 -0
  10. package/dist/core/RunnerBase.js.map +1 -1
  11. package/dist/core/agent/buildAgentChart.js +12 -2
  12. package/dist/core/agent/buildAgentChart.js.map +1 -1
  13. package/dist/core/runner.js +4 -3
  14. package/dist/core/runner.js.map +1 -1
  15. package/dist/core/slots/buildMessagesSlot.js +1 -1
  16. package/dist/core/slots/buildMessagesSlot.js.map +1 -1
  17. package/dist/core/slots/buildSystemPromptSlot.js +1 -1
  18. package/dist/core/slots/buildSystemPromptSlot.js.map +1 -1
  19. package/dist/core/slots/buildThinkingSubflow.js +1 -1
  20. package/dist/core/slots/buildThinkingSubflow.js.map +1 -1
  21. package/dist/core/slots/buildToolsSlot.js +3 -1
  22. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  23. package/dist/core/translator.js +32 -0
  24. package/dist/core/translator.js.map +1 -0
  25. package/dist/core-flow/Conditional.js +73 -10
  26. package/dist/core-flow/Conditional.js.map +1 -1
  27. package/dist/core-flow/Loop.js +60 -16
  28. package/dist/core-flow/Loop.js.map +1 -1
  29. package/dist/core-flow/Parallel.js +241 -92
  30. package/dist/core-flow/Parallel.js.map +1 -1
  31. package/dist/core-flow/Sequence.js +51 -8
  32. package/dist/core-flow/Sequence.js.map +1 -1
  33. package/dist/esm/cache/CacheDecisionSubflow.js +3 -1
  34. package/dist/esm/cache/CacheDecisionSubflow.js.map +1 -1
  35. package/dist/esm/conventions.js +3 -2
  36. package/dist/esm/conventions.js.map +1 -1
  37. package/dist/esm/core/Agent.js +69 -23
  38. package/dist/esm/core/Agent.js.map +1 -1
  39. package/dist/esm/core/LLMCall.js +44 -5
  40. package/dist/esm/core/LLMCall.js.map +1 -1
  41. package/dist/esm/core/RunnerBase.js +173 -0
  42. package/dist/esm/core/RunnerBase.js.map +1 -1
  43. package/dist/esm/core/agent/buildAgentChart.js +12 -2
  44. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  45. package/dist/esm/core/runner.js +4 -3
  46. package/dist/esm/core/runner.js.map +1 -1
  47. package/dist/esm/core/slots/buildMessagesSlot.js +1 -1
  48. package/dist/esm/core/slots/buildMessagesSlot.js.map +1 -1
  49. package/dist/esm/core/slots/buildSystemPromptSlot.js +1 -1
  50. package/dist/esm/core/slots/buildSystemPromptSlot.js.map +1 -1
  51. package/dist/esm/core/slots/buildThinkingSubflow.js +1 -1
  52. package/dist/esm/core/slots/buildThinkingSubflow.js.map +1 -1
  53. package/dist/esm/core/slots/buildToolsSlot.js +3 -1
  54. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  55. package/dist/esm/core/translator.js +31 -0
  56. package/dist/esm/core/translator.js.map +1 -0
  57. package/dist/esm/core-flow/Conditional.js +73 -10
  58. package/dist/esm/core-flow/Conditional.js.map +1 -1
  59. package/dist/esm/core-flow/Loop.js +60 -16
  60. package/dist/esm/core-flow/Loop.js.map +1 -1
  61. package/dist/esm/core-flow/Parallel.js +242 -93
  62. package/dist/esm/core-flow/Parallel.js.map +1 -1
  63. package/dist/esm/core-flow/Sequence.js +51 -8
  64. package/dist/esm/core-flow/Sequence.js.map +1 -1
  65. package/dist/esm/index.js +1 -0
  66. package/dist/esm/index.js.map +1 -1
  67. package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js +1 -1
  68. package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  69. package/dist/esm/memory/causal/snapshotPipeline.js +6 -2
  70. package/dist/esm/memory/causal/snapshotPipeline.js.map +1 -1
  71. package/dist/esm/memory/pipeline/auto.js +2 -2
  72. package/dist/esm/memory/pipeline/auto.js.map +1 -1
  73. package/dist/esm/memory/pipeline/default.js +4 -2
  74. package/dist/esm/memory/pipeline/default.js.map +1 -1
  75. package/dist/esm/memory/pipeline/ephemeral.js +3 -1
  76. package/dist/esm/memory/pipeline/ephemeral.js.map +1 -1
  77. package/dist/esm/memory/pipeline/fact.js +4 -2
  78. package/dist/esm/memory/pipeline/fact.js.map +1 -1
  79. package/dist/esm/memory/pipeline/narrative.js +4 -2
  80. package/dist/esm/memory/pipeline/narrative.js.map +1 -1
  81. package/dist/esm/memory/pipeline/semantic.js +2 -2
  82. package/dist/esm/memory/pipeline/semantic.js.map +1 -1
  83. package/dist/esm/observe.js +1 -1
  84. package/dist/esm/observe.js.map +1 -1
  85. package/dist/esm/patterns/MapReduce.js +5 -5
  86. package/dist/esm/patterns/MapReduce.js.map +1 -1
  87. package/dist/esm/patterns/Swarm.js +1 -1
  88. package/dist/esm/patterns/Swarm.js.map +1 -1
  89. package/dist/esm/recorders/observability/BoundaryRecorder.js +315 -36
  90. package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
  91. package/dist/esm/recorders/observability/FlowchartRecorder.js +10 -0
  92. package/dist/esm/recorders/observability/FlowchartRecorder.js.map +1 -1
  93. package/dist/esm/recorders/observability/LiveStateRecorder.js +112 -21
  94. package/dist/esm/recorders/observability/LiveStateRecorder.js.map +1 -1
  95. package/dist/esm/recorders/observability/RunStepRecorder.js +652 -0
  96. package/dist/esm/recorders/observability/RunStepRecorder.js.map +1 -0
  97. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +3 -4
  98. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  99. package/dist/esm/recorders/observability/internal/ActorArrowClassifier.js +34 -0
  100. package/dist/esm/recorders/observability/internal/ActorArrowClassifier.js.map +1 -0
  101. package/dist/esm/recorders/observability/internal/CandidateAnswerBuffer.js +32 -0
  102. package/dist/esm/recorders/observability/internal/CandidateAnswerBuffer.js.map +1 -0
  103. package/dist/esm/recorders/observability/internal/ForkTracker.js +84 -0
  104. package/dist/esm/recorders/observability/internal/ForkTracker.js.map +1 -0
  105. package/dist/esm/recorders/observability/internal/RootInferrer.js +114 -0
  106. package/dist/esm/recorders/observability/internal/RootInferrer.js.map +1 -0
  107. package/dist/esm/recorders/observability/internal/SequenceSiblingTracker.js +31 -0
  108. package/dist/esm/recorders/observability/internal/SequenceSiblingTracker.js.map +1 -0
  109. package/dist/esm/recorders/observability/observeRunId.js +21 -0
  110. package/dist/esm/recorders/observability/observeRunId.js.map +1 -0
  111. package/dist/esm/reliability/buildReliabilityGateChart.js +1 -1
  112. package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
  113. package/dist/index.js +7 -3
  114. package/dist/index.js.map +1 -1
  115. package/dist/lib/injection-engine/buildInjectionEngineSubflow.js +1 -1
  116. package/dist/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  117. package/dist/memory/causal/snapshotPipeline.js +6 -2
  118. package/dist/memory/causal/snapshotPipeline.js.map +1 -1
  119. package/dist/memory/pipeline/auto.js +2 -2
  120. package/dist/memory/pipeline/auto.js.map +1 -1
  121. package/dist/memory/pipeline/default.js +4 -2
  122. package/dist/memory/pipeline/default.js.map +1 -1
  123. package/dist/memory/pipeline/ephemeral.js +3 -1
  124. package/dist/memory/pipeline/ephemeral.js.map +1 -1
  125. package/dist/memory/pipeline/fact.js +4 -2
  126. package/dist/memory/pipeline/fact.js.map +1 -1
  127. package/dist/memory/pipeline/narrative.js +4 -2
  128. package/dist/memory/pipeline/narrative.js.map +1 -1
  129. package/dist/memory/pipeline/semantic.js +2 -2
  130. package/dist/memory/pipeline/semantic.js.map +1 -1
  131. package/dist/observe.js +1 -1
  132. package/dist/observe.js.map +1 -1
  133. package/dist/patterns/MapReduce.js +5 -5
  134. package/dist/patterns/MapReduce.js.map +1 -1
  135. package/dist/patterns/Swarm.js +1 -1
  136. package/dist/patterns/Swarm.js.map +1 -1
  137. package/dist/recorders/observability/BoundaryRecorder.js +314 -35
  138. package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
  139. package/dist/recorders/observability/FlowchartRecorder.js +10 -0
  140. package/dist/recorders/observability/FlowchartRecorder.js.map +1 -1
  141. package/dist/recorders/observability/LiveStateRecorder.js +111 -20
  142. package/dist/recorders/observability/LiveStateRecorder.js.map +1 -1
  143. package/dist/recorders/observability/RunStepRecorder.js +658 -0
  144. package/dist/recorders/observability/RunStepRecorder.js.map +1 -0
  145. package/dist/recorders/observability/commentary/commentaryTemplates.js +3 -4
  146. package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  147. package/dist/recorders/observability/internal/ActorArrowClassifier.js +38 -0
  148. package/dist/recorders/observability/internal/ActorArrowClassifier.js.map +1 -0
  149. package/dist/recorders/observability/internal/CandidateAnswerBuffer.js +36 -0
  150. package/dist/recorders/observability/internal/CandidateAnswerBuffer.js.map +1 -0
  151. package/dist/recorders/observability/internal/ForkTracker.js +88 -0
  152. package/dist/recorders/observability/internal/ForkTracker.js.map +1 -0
  153. package/dist/recorders/observability/internal/RootInferrer.js +118 -0
  154. package/dist/recorders/observability/internal/RootInferrer.js.map +1 -0
  155. package/dist/recorders/observability/internal/SequenceSiblingTracker.js +35 -0
  156. package/dist/recorders/observability/internal/SequenceSiblingTracker.js.map +1 -0
  157. package/dist/recorders/observability/observeRunId.js +25 -0
  158. package/dist/recorders/observability/observeRunId.js.map +1 -0
  159. package/dist/reliability/buildReliabilityGateChart.js +1 -1
  160. package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
  161. package/dist/types/cache/CacheDecisionSubflow.d.ts.map +1 -1
  162. package/dist/types/conventions.d.ts.map +1 -1
  163. package/dist/types/core/Agent.d.ts +20 -18
  164. package/dist/types/core/Agent.d.ts.map +1 -1
  165. package/dist/types/core/LLMCall.d.ts +28 -2
  166. package/dist/types/core/LLMCall.d.ts.map +1 -1
  167. package/dist/types/core/RunnerBase.d.ts +124 -4
  168. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  169. package/dist/types/core/agent/buildAgentChart.d.ts +7 -1
  170. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  171. package/dist/types/core/agent/types.d.ts +29 -0
  172. package/dist/types/core/agent/types.d.ts.map +1 -1
  173. package/dist/types/core/runner.d.ts +51 -5
  174. package/dist/types/core/runner.d.ts.map +1 -1
  175. package/dist/types/core/slots/buildMessagesSlot.d.ts.map +1 -1
  176. package/dist/types/core/slots/buildSystemPromptSlot.d.ts.map +1 -1
  177. package/dist/types/core/slots/buildThinkingSubflow.d.ts.map +1 -1
  178. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  179. package/dist/types/core/translator.d.ts +95 -0
  180. package/dist/types/core/translator.d.ts.map +1 -0
  181. package/dist/types/core-flow/Conditional.d.ts +48 -4
  182. package/dist/types/core-flow/Conditional.d.ts.map +1 -1
  183. package/dist/types/core-flow/Loop.d.ts +42 -3
  184. package/dist/types/core-flow/Loop.d.ts.map +1 -1
  185. package/dist/types/core-flow/Parallel.d.ts +99 -4
  186. package/dist/types/core-flow/Parallel.d.ts.map +1 -1
  187. package/dist/types/core-flow/Sequence.d.ts +49 -3
  188. package/dist/types/core-flow/Sequence.d.ts.map +1 -1
  189. package/dist/types/events/payloads.d.ts +22 -1
  190. package/dist/types/events/payloads.d.ts.map +1 -1
  191. package/dist/types/index.d.ts +4 -2
  192. package/dist/types/index.d.ts.map +1 -1
  193. package/dist/types/lib/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
  194. package/dist/types/memory/causal/snapshotPipeline.d.ts.map +1 -1
  195. package/dist/types/memory/pipeline/auto.d.ts.map +1 -1
  196. package/dist/types/memory/pipeline/default.d.ts.map +1 -1
  197. package/dist/types/memory/pipeline/ephemeral.d.ts.map +1 -1
  198. package/dist/types/memory/pipeline/fact.d.ts.map +1 -1
  199. package/dist/types/memory/pipeline/narrative.d.ts.map +1 -1
  200. package/dist/types/memory/pipeline/semantic.d.ts.map +1 -1
  201. package/dist/types/observe.d.ts +2 -2
  202. package/dist/types/observe.d.ts.map +1 -1
  203. package/dist/types/recorders/observability/BoundaryRecorder.d.ts +160 -6
  204. package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
  205. package/dist/types/recorders/observability/FlowchartRecorder.d.ts.map +1 -1
  206. package/dist/types/recorders/observability/LiveStateRecorder.d.ts +42 -6
  207. package/dist/types/recorders/observability/LiveStateRecorder.d.ts.map +1 -1
  208. package/dist/types/recorders/observability/RunStepRecorder.d.ts +232 -0
  209. package/dist/types/recorders/observability/RunStepRecorder.d.ts.map +1 -0
  210. package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
  211. package/dist/types/recorders/observability/internal/ActorArrowClassifier.d.ts +26 -0
  212. package/dist/types/recorders/observability/internal/ActorArrowClassifier.d.ts.map +1 -0
  213. package/dist/types/recorders/observability/internal/CandidateAnswerBuffer.d.ts +29 -0
  214. package/dist/types/recorders/observability/internal/CandidateAnswerBuffer.d.ts.map +1 -0
  215. package/dist/types/recorders/observability/internal/ForkTracker.d.ts +61 -0
  216. package/dist/types/recorders/observability/internal/ForkTracker.d.ts.map +1 -0
  217. package/dist/types/recorders/observability/internal/RootInferrer.d.ts +52 -0
  218. package/dist/types/recorders/observability/internal/RootInferrer.d.ts.map +1 -0
  219. package/dist/types/recorders/observability/internal/SequenceSiblingTracker.d.ts +25 -0
  220. package/dist/types/recorders/observability/internal/SequenceSiblingTracker.d.ts.map +1 -0
  221. package/dist/types/recorders/observability/observeRunId.d.ts +37 -0
  222. package/dist/types/recorders/observability/observeRunId.d.ts.map +1 -0
  223. package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
  224. package/package.json +3 -3
@@ -80,6 +80,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
80
80
  exports.BoundaryRecorder = exports.boundaryRecorder = void 0;
81
81
  const trace_1 = require("footprintjs/trace");
82
82
  const conventions_js_1 = require("../../conventions.js");
83
+ const observeRunId_js_1 = require("./observeRunId.js");
83
84
  /** Closed set of routing/wrapper subflow IDs that are pure plumbing.
84
85
  * Slot subflows (`sf-system-prompt` / `sf-messages` / `sf-tools`) are
85
86
  * NOT in this set — they're real context-engineering moments.
@@ -127,6 +128,53 @@ function isAgentInternalId(localId) {
127
128
  }
128
129
  return false;
129
130
  }
131
+ function toBoundaryLabel(e) {
132
+ if (e.type === 'subflow.entry') {
133
+ return {
134
+ type: 'subflow.entry',
135
+ runtimeStageId: e.runtimeStageId,
136
+ subflowPath: e.subflowPath,
137
+ depth: e.depth,
138
+ ts: e.ts,
139
+ subflowId: e.subflowId,
140
+ localSubflowId: e.localSubflowId,
141
+ subflowName: e.subflowName,
142
+ ...(e.description !== undefined ? { description: e.description } : {}),
143
+ ...(e.primitiveKind !== undefined ? { primitiveKind: e.primitiveKind } : {}),
144
+ ...(e.slotKind !== undefined ? { slotKind: e.slotKind } : {}),
145
+ isAgentInternal: e.isAgentInternal,
146
+ };
147
+ }
148
+ return {
149
+ type: 'run.entry',
150
+ runtimeStageId: e.runtimeStageId,
151
+ subflowPath: e.subflowPath,
152
+ depth: e.depth,
153
+ ts: e.ts,
154
+ };
155
+ }
156
+ /** Build a BoundaryRangeLabel for the open side of a composition pair. */
157
+ function toCompositionBoundaryLabel(e) {
158
+ return {
159
+ type: 'composition.start',
160
+ runtimeStageId: e.runtimeStageId,
161
+ subflowPath: e.subflowPath,
162
+ depth: e.depth,
163
+ ts: e.ts,
164
+ compositionKind: e.kind,
165
+ compositionName: e.name,
166
+ };
167
+ }
168
+ /** Clamp `getCommitCount()` returns to a safe non-negative integer.
169
+ * Defensive against malformed injections returning NaN/Infinity/negatives
170
+ * (security panel review YELLOW #2). */
171
+ function sanitizeCommitCount(n) {
172
+ if (!Number.isFinite(n))
173
+ return 0;
174
+ if (n < 0)
175
+ return 0;
176
+ return n;
177
+ }
130
178
  let _counter = 0;
131
179
  /** Factory — matches the `inOutRecorder()` / `topologyRecorder()` style. */
132
180
  function boundaryRecorder(options = {}) {
@@ -138,12 +186,35 @@ exports.boundaryRecorder = boundaryRecorder;
138
186
  * attach to the executor's FlowRecorder channel; exposes `subscribe()`
139
187
  * to wire to the agentfootprint typed-event dispatcher.
140
188
  *
141
- * Internally stores events in a `SequenceRecorder<DomainEvent>` so the
142
- * usual time-travel utilities (`getEntryRanges`, `accumulate`) work
143
- * out of the box.
189
+ * v5: composes a `SequenceStore<DomainEvent>` (storage) instead of
190
+ * extending the deprecated `SequenceRecorder<T>` base. Time-travel
191
+ * utilities (`getEntryRanges`, `accumulate`) are accessed through the
192
+ * store via the public read API on this class.
144
193
  */
145
- class BoundaryRecorder extends trace_1.SequenceRecorder {
194
+ class BoundaryRecorder {
146
195
  id;
196
+ /** Composition: storage shelf. */
197
+ store = new trace_1.SequenceStore();
198
+ /**
199
+ * Phase 5 Layer 2 — interval index over commit indices, populated
200
+ * live as boundary entry/exit pairs fire. Consumers (Lens) read
201
+ * `enclosing(commitIdx)` for breadcrumbs and `overlapping(slice)`
202
+ * for time-range queries. Empty when `getCommitCount` is not
203
+ * injected. See `docs/design/boundary-commit-ranges.md`.
204
+ */
205
+ boundaryIndex = new trace_1.CommitRangeIndex();
206
+ /** Open-range tokens keyed by `runtimeStageId` so the matching exit
207
+ * can close the correct range. Pure side-table; cleared on runId
208
+ * reset. Not exposed externally. */
209
+ openTokens = new Map();
210
+ /** Live commit-count accessor injected by the runner. Sanitized
211
+ * (NaN/Infinity/negative → 0) before use. */
212
+ getCommitCount;
213
+ /** True when `getCommitCount` was explicitly injected. In LEGACY
214
+ * MODE (false), `boundaryIndex` is intentionally NOT populated —
215
+ * zero-width [0,0] ranges would mislead consumers querying the
216
+ * index. Multi-panel review flagged this footgun. */
217
+ hasCommitTracking;
147
218
  /**
148
219
  * Tracks whether the most recent `llm.end` had toolCalls. Used to
149
220
  * classify the NEXT `llm.start` as `'tool→llm'` (vs `'user→llm'` if
@@ -151,50 +222,167 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
151
222
  * `llm.start` event after the classification is applied.
152
223
  */
153
224
  prevLLMEndHadTools = false;
225
+ /**
226
+ * Run-boundary observer — fires resetForNewRun() when
227
+ * traversalContext.runId changes between events AND no boundary is
228
+ * currently open. The "no open boundary" gate distinguishes:
229
+ *
230
+ * - **Legitimate new run** — consumer reuses one recorder across
231
+ * sequential `executor.run()` calls. All prior boundaries closed
232
+ * before the second run began; openTokens is empty when the new
233
+ * runId arrives → safe to wipe state so the second run doesn't
234
+ * alias with the first.
235
+ * - **Composition sub-run** — primitives like `LLMCall`, `Sequence`,
236
+ * and `Parallel` internally spawn their own `FlowChartExecutor`
237
+ * instances. Each sub-executor mints a NEW runId. When that
238
+ * sub-executor fires events on the SHARED recorder, the recorder
239
+ * is still inside the parent run — `openTokens` is non-empty.
240
+ * Resetting here would wipe the parent's boundary index mid-run
241
+ * (the bug Layer 4 surfaced in agentfootprint-lens fanout).
242
+ *
243
+ * The `openTokens.size === 0` check is the cleanest semantic signal:
244
+ * if nothing is in-flight, a runId change means "the consumer started
245
+ * fresh"; if something is open, the new runId is from a sub-executor
246
+ * nested inside the still-ongoing parent.
247
+ */
248
+ runIdGuard = (0, observeRunId_js_1.createRunIdObserver)(() => {
249
+ if (this.openTokens.size > 0) {
250
+ // Inside an active run — new runId is from a composition sub-
251
+ // executor (LLMCall / Sequence / Parallel). Do NOT reset.
252
+ return;
253
+ }
254
+ this.store.clear();
255
+ this.boundaryIndex.clear();
256
+ this.openTokens.clear();
257
+ this.prevLLMEndHadTools = false;
258
+ });
154
259
  constructor(options = {}) {
155
- super();
156
260
  this.id = options.id ?? `boundary-${++_counter}`;
261
+ this.hasCommitTracking = options.getCommitCount !== undefined;
262
+ const raw = options.getCommitCount;
263
+ this.getCommitCount = raw === undefined ? () => 0 : () => sanitizeCommitCount(raw());
157
264
  }
265
+ /**
266
+ * Reset all transient state.
267
+ *
268
+ * **Composition-safe gate (Phase 5 Layer 4):** if `openTokens.size > 0`
269
+ * the call is a no-op. Rationale: `FlowChartExecutor.run()` calls
270
+ * `r.clear?.()` on every attached recorder during its pre-run loop.
271
+ * When agentfootprint composition primitives (LLMCall, Sequence,
272
+ * Parallel, etc.) propagate the parent's recorders to nested
273
+ * sub-executors, EACH sub-executor's pre-run clear loop calls
274
+ * `clear()` on the SHARED parent recorder mid-run — wiping live
275
+ * parent state. The `openTokens.size > 0` check distinguishes:
276
+ *
277
+ * - **Legitimate reset** — consumer or executor calls `clear()`
278
+ * when no boundary is in-flight (`openTokens` empty). Safe to
279
+ * wipe; the recorder is idle.
280
+ * - **Composition wipe** — sub-executor's pre-run clear fires
281
+ * while the parent has open boundaries (`openTokens` non-empty).
282
+ * Skip the wipe; the parent's state must be preserved.
283
+ *
284
+ * If a consumer needs to forcibly wipe state even with open tokens
285
+ * (e.g., manual recovery after a crashed run), pair `clear()` with
286
+ * an explicit `forceClear()` (TODO — add when the use case shows up;
287
+ * today the recorder lifecycle pattern is "one recorder per logical
288
+ * run" so leaked tokens shouldn't occur).
289
+ */
158
290
  clear() {
159
- super.clear();
291
+ if (this.openTokens.size > 0) {
292
+ // Mid-run wipe attempt — almost certainly a sub-executor's
293
+ // pre-run clear via composition propagation. Skip.
294
+ return;
295
+ }
296
+ this.store.clear();
297
+ this.boundaryIndex.clear();
298
+ this.openTokens.clear();
160
299
  this.prevLLMEndHadTools = false;
300
+ this.runIdGuard.reset();
301
+ }
302
+ observeRunId(runId) {
303
+ this.runIdGuard.observe(runId);
161
304
  }
162
305
  // ── FlowRecorder hooks (footprintjs side) ───────────────────────────
163
306
  onRunStart(event) {
164
- this.emit(buildRunEvent('run.entry', event.payload));
307
+ this.observeRunId(event.traversalContext?.runId);
308
+ const commitIdxBefore = this.getCommitCount();
309
+ const e = buildRunEvent('run.entry', event.payload, commitIdxBefore);
310
+ // Open range BEFORE the store push so a failed push doesn't leak
311
+ // an unclosed range (DS+logic panel review). The label is the
312
+ // stripped projection (no payload) — security-panel YELLOW #1.
313
+ if (this.hasCommitTracking) {
314
+ const token = this.boundaryIndex.open(toBoundaryLabel(e), commitIdxBefore);
315
+ this.openTokens.set(e.runtimeStageId, token);
316
+ }
317
+ this.store.push(e);
165
318
  }
166
319
  onRunEnd(event) {
167
- this.emit(buildRunEvent('run.exit', event.payload));
320
+ this.observeRunId(event.traversalContext?.runId);
321
+ const commitIdxBefore = this.getCommitCount();
322
+ const e = buildRunEvent('run.exit', event.payload, commitIdxBefore);
323
+ // Close the range BEFORE store.push so a failed push doesn't
324
+ // leak a permanently-open range. The range is the canonical
325
+ // truth; the store entry is downstream telemetry.
326
+ if (this.hasCommitTracking) {
327
+ const token = this.openTokens.get(e.runtimeStageId);
328
+ if (token) {
329
+ this.boundaryIndex.close(token, commitIdxBefore);
330
+ this.openTokens.delete(e.runtimeStageId);
331
+ }
332
+ }
333
+ this.store.push(e);
168
334
  }
169
335
  onSubflowEntry(event) {
170
- const e = buildSubflowEvent(event, 'subflow.entry');
171
- if (e)
172
- this.emit(e);
336
+ this.observeRunId(event.traversalContext?.runId);
337
+ const commitIdxBefore = this.getCommitCount();
338
+ const e = buildSubflowEvent(event, 'subflow.entry', commitIdxBefore);
339
+ if (!e)
340
+ return;
341
+ if (this.hasCommitTracking) {
342
+ const token = this.boundaryIndex.open(toBoundaryLabel(e), commitIdxBefore);
343
+ this.openTokens.set(e.runtimeStageId, token);
344
+ }
345
+ this.store.push(e);
173
346
  }
174
347
  onSubflowExit(event) {
175
- const e = buildSubflowEvent(event, 'subflow.exit');
176
- if (e)
177
- this.emit(e);
348
+ this.observeRunId(event.traversalContext?.runId);
349
+ const commitIdxBefore = this.getCommitCount();
350
+ const e = buildSubflowEvent(event, 'subflow.exit', commitIdxBefore);
351
+ if (!e)
352
+ return;
353
+ if (this.hasCommitTracking) {
354
+ const token = this.openTokens.get(e.runtimeStageId);
355
+ if (token) {
356
+ this.boundaryIndex.close(token, commitIdxBefore);
357
+ this.openTokens.delete(e.runtimeStageId);
358
+ }
359
+ }
360
+ this.store.push(e);
178
361
  }
179
362
  onFork(event) {
363
+ this.observeRunId(event.traversalContext?.runId);
180
364
  const ts = Date.now();
181
365
  const ctx = event.traversalContext;
182
366
  const runtimeStageId = ctx?.runtimeStageId ?? '';
183
367
  const segments = ctx?.subflowPath ? ctx.subflowPath.split('/').filter(Boolean) : [];
184
368
  const subflowPath = [trace_1.ROOT_SUBFLOW_ID, ...segments];
369
+ const commitIdxBefore = this.getCommitCount();
185
370
  for (const childName of event.children) {
186
- this.emit({
371
+ this.store.push({
187
372
  type: 'fork.branch',
188
373
  runtimeStageId,
189
374
  subflowPath,
190
375
  depth: subflowPath.length - 1,
191
376
  ts,
377
+ commitIdxBefore,
378
+ commitIdxAfter: commitIdxBefore,
192
379
  parentSubflowId: event.parent,
193
380
  childName,
194
381
  });
195
382
  }
196
383
  }
197
384
  onDecision(event) {
385
+ this.observeRunId(event.traversalContext?.runId);
198
386
  const ctx = event.traversalContext;
199
387
  // Agent-internal decisions (Route picking tool-calls / final) are
200
388
  // identified by the deciding stage's stableId matching one of the
@@ -208,12 +396,15 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
208
396
  ? stageId.slice(stageId.lastIndexOf('/') + 1)
209
397
  : stageId;
210
398
  const isAgentInternal = isAgentInternalId(localStageId);
211
- this.emit({
399
+ const commitIdxBefore = this.getCommitCount();
400
+ this.store.push({
212
401
  type: 'decision.branch',
213
402
  runtimeStageId: ctx?.runtimeStageId ?? '',
214
403
  subflowPath: pathFromCtx(ctx?.subflowPath),
215
404
  depth: ctxDepth(ctx?.subflowPath),
216
405
  ts: Date.now(),
406
+ commitIdxBefore,
407
+ commitIdxAfter: commitIdxBefore,
217
408
  decider: event.decider,
218
409
  chosen: event.chosen,
219
410
  ...(event.rationale ? { rationale: event.rationale } : {}),
@@ -221,13 +412,17 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
221
412
  });
222
413
  }
223
414
  onLoop(event) {
415
+ this.observeRunId(event.traversalContext?.runId);
224
416
  const ctx = event.traversalContext;
225
- this.emit({
417
+ const commitIdxBefore = this.getCommitCount();
418
+ this.store.push({
226
419
  type: 'loop.iteration',
227
420
  runtimeStageId: ctx?.runtimeStageId ?? '',
228
421
  subflowPath: pathFromCtx(ctx?.subflowPath),
229
422
  depth: ctxDepth(ctx?.subflowPath),
230
423
  ts: Date.now(),
424
+ commitIdxBefore,
425
+ commitIdxAfter: commitIdxBefore,
231
426
  target: event.target,
232
427
  iteration: event.iteration,
233
428
  });
@@ -245,11 +440,22 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
245
440
  return dispatcher.on('*', (event) => this.ingestTypedEvent(event));
246
441
  }
247
442
  ingestTypedEvent(event) {
443
+ // NOTE: deliberately does NOT call observeRunId(event.meta.runId).
444
+ // The agentfootprint dispatcher's runId is generated by a DIFFERENT
445
+ // generator than footprintjs's traversalContext.runId. Mixing them
446
+ // would toggle lastRunId on every event and trigger a false reset.
447
+ // Run-boundary detection happens reliably via the FlowRecorder hooks
448
+ // (onRunStart fires FIRST in any new run, before any typed event).
248
449
  const meta = event.meta;
249
450
  const runtimeStageId = meta.runtimeStageId ?? '';
250
451
  const subflowPath = [trace_1.ROOT_SUBFLOW_ID, ...(meta.subflowPath ?? [])];
251
452
  const depth = subflowPath.length - 1;
252
453
  const ts = meta.wallClockMs;
454
+ // Phase 5 Layer 2: stamp commit index on every typed event for
455
+ // consumers that want to join domain events with the commit log
456
+ // (e.g., "which LLM call happened during this commit slice?").
457
+ // Typed events don't write to scope themselves, so before === after.
458
+ const commitIdxBefore = this.getCommitCount();
253
459
  switch (event.type) {
254
460
  case 'agentfootprint.stream.llm_start': {
255
461
  const p = event.payload;
@@ -261,12 +467,14 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
261
467
  ? 'tool→llm'
262
468
  : 'user→llm';
263
469
  this.prevLLMEndHadTools = false;
264
- this.emit({
470
+ this.store.push({
265
471
  type: 'llm.start',
266
472
  runtimeStageId,
267
473
  subflowPath,
268
474
  depth,
269
475
  ts,
476
+ commitIdxBefore,
477
+ commitIdxAfter: commitIdxBefore,
270
478
  model: p.model,
271
479
  provider: p.provider,
272
480
  ...(p.systemPromptChars !== undefined ? { systemPromptChars: p.systemPromptChars } : {}),
@@ -283,12 +491,14 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
283
491
  // terminal call (toolCallCount === 0) leaves the flag false so
284
492
  // a hypothetical follow-up call would correctly be 'user→llm'.
285
493
  this.prevLLMEndHadTools = p.toolCallCount > 0;
286
- this.emit({
494
+ this.store.push({
287
495
  type: 'llm.end',
288
496
  runtimeStageId,
289
497
  subflowPath,
290
498
  depth,
291
499
  ts,
500
+ commitIdxBefore,
501
+ commitIdxAfter: commitIdxBefore,
292
502
  content: p.content,
293
503
  toolCallCount: p.toolCallCount,
294
504
  usage: { input: p.usage.input, output: p.usage.output },
@@ -299,12 +509,14 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
299
509
  }
300
510
  case 'agentfootprint.stream.tool_start': {
301
511
  const p = event.payload;
302
- this.emit({
512
+ this.store.push({
303
513
  type: 'tool.start',
304
514
  runtimeStageId,
305
515
  subflowPath,
306
516
  depth,
307
517
  ts,
518
+ commitIdxBefore,
519
+ commitIdxAfter: commitIdxBefore,
308
520
  toolName: p.toolName,
309
521
  toolCallId: p.toolCallId,
310
522
  ...(p.args !== undefined ? { args: p.args } : {}),
@@ -313,12 +525,14 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
313
525
  }
314
526
  case 'agentfootprint.stream.tool_end': {
315
527
  const p = event.payload;
316
- this.emit({
528
+ this.store.push({
317
529
  type: 'tool.end',
318
530
  runtimeStageId,
319
531
  subflowPath,
320
532
  depth,
321
533
  ts,
534
+ commitIdxBefore,
535
+ commitIdxAfter: commitIdxBefore,
322
536
  toolCallId: p.toolCallId,
323
537
  ...(p.result !== undefined ? { result: p.result } : {}),
324
538
  ...(p.durationMs !== undefined ? { durationMs: p.durationMs } : {}),
@@ -328,12 +542,14 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
328
542
  }
329
543
  case 'agentfootprint.context.injected': {
330
544
  const p = event.payload;
331
- this.emit({
545
+ this.store.push({
332
546
  type: 'context.injected',
333
547
  runtimeStageId,
334
548
  subflowPath,
335
549
  depth,
336
550
  ts,
551
+ commitIdxBefore,
552
+ commitIdxAfter: commitIdxBefore,
337
553
  slot: p.slot,
338
554
  source: p.source ?? 'unknown',
339
555
  ...(p.sourceId ? { sourceId: p.sourceId } : {}),
@@ -351,23 +567,82 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
351
567
  });
352
568
  break;
353
569
  }
570
+ case 'agentfootprint.composition.enter': {
571
+ // Open a boundary range for the composition. The MATCHING KEY
572
+ // for open/close is `payload.id` (the composition's stable id),
573
+ // NOT `meta.runtimeStageId`. Reason: the composition's enter
574
+ // event fires from a different stage (entry hook) than its
575
+ // exit event (merge / exit hook) — different `meta.runtimeStageId`s.
576
+ // The composition's `id` is the only field that's the same on
577
+ // both. The boundary range's runtimeStageId (used as the Lens
578
+ // group identity) is the ENTER event's `meta.runtimeStageId`
579
+ // (the entry stage's id) — that's the "fork moment."
580
+ const p = event.payload;
581
+ const e = {
582
+ type: 'composition.start',
583
+ runtimeStageId,
584
+ subflowPath,
585
+ depth,
586
+ ts,
587
+ commitIdxBefore,
588
+ commitIdxAfter: commitIdxBefore,
589
+ kind: p.kind,
590
+ compositionId: p.id,
591
+ name: p.name,
592
+ };
593
+ if (this.hasCommitTracking) {
594
+ const token = this.boundaryIndex.open(toCompositionBoundaryLabel(e), commitIdxBefore);
595
+ this.openTokens.set(`composition:${p.id}`, token);
596
+ }
597
+ this.store.push(e);
598
+ break;
599
+ }
600
+ case 'agentfootprint.composition.exit': {
601
+ // Close the matching composition range. Keyed by `payload.id`
602
+ // — see the enter handler for why this differs from
603
+ // meta.runtimeStageId.
604
+ const p = event.payload;
605
+ const e = {
606
+ type: 'composition.end',
607
+ runtimeStageId,
608
+ subflowPath,
609
+ depth,
610
+ ts,
611
+ commitIdxBefore,
612
+ commitIdxAfter: commitIdxBefore,
613
+ kind: p.kind,
614
+ compositionId: p.id,
615
+ name: p.name ?? '',
616
+ status: p.status,
617
+ durationMs: p.durationMs,
618
+ };
619
+ if (this.hasCommitTracking) {
620
+ const key = `composition:${p.id}`;
621
+ const token = this.openTokens.get(key);
622
+ if (token) {
623
+ this.boundaryIndex.close(token, commitIdxBefore);
624
+ this.openTokens.delete(key);
625
+ }
626
+ }
627
+ this.store.push(e);
628
+ break;
629
+ }
354
630
  default:
355
- // Other typed events (composition.*, agent.*, etc.) are not
356
- // mapped to DomainEvent for now — they're either implied by
357
- // FlowRecorder events (composition) or higher-level summaries
358
- // (agent.turn_*) that downstream selectors derive on demand.
631
+ // Other typed events (agent.*, eval.*, etc.) are not mapped to
632
+ // DomainEvent for now — they're higher-level summaries that
633
+ // downstream selectors derive on demand.
359
634
  break;
360
635
  }
361
636
  }
362
637
  // ── Read API ────────────────────────────────────────────────────────
363
638
  /** All events in capture order (the canonical projection). */
364
639
  getEvents() {
365
- return this.getEntries();
640
+ return this.store.getAll();
366
641
  }
367
642
  /** Type-narrowed lookup: all events of one kind. */
368
643
  getEventsByType(type) {
369
644
  const out = [];
370
- for (const e of this.getEntries()) {
645
+ for (const e of this.store.getAll()) {
371
646
  if (e.type === type)
372
647
  out.push(e);
373
648
  }
@@ -377,7 +652,7 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
377
652
  /** All boundary events (run + subflow, entry + exit interleaved). */
378
653
  getBoundaries() {
379
654
  const out = [];
380
- for (const e of this.getEntries()) {
655
+ for (const e of this.store.getAll()) {
381
656
  if (e.type === 'run.entry' ||
382
657
  e.type === 'run.exit' ||
383
658
  e.type === 'subflow.entry' ||
@@ -397,7 +672,7 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
397
672
  }
398
673
  /** Entry/exit pair for one chart execution by `runtimeStageId`. */
399
674
  getBoundary(runtimeStageId) {
400
- const matches = this.getEntriesForStep(runtimeStageId);
675
+ const matches = this.store.getByKey(runtimeStageId);
401
676
  let entry;
402
677
  let exit;
403
678
  for (const e of matches) {
@@ -424,7 +699,7 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
424
699
  const systemPrompt = [];
425
700
  const messages = [];
426
701
  const tools = [];
427
- for (const e of this.getEntries()) {
702
+ for (const e of this.store.getAll()) {
428
703
  if (e.type !== 'subflow.entry' && e.type !== 'subflow.exit')
429
704
  continue;
430
705
  if (e.slotKind === 'system-prompt')
@@ -463,7 +738,7 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
463
738
  * matches `runtimeStageId`.
464
739
  */
465
740
  aggregateForBoundary(runtimeStageId) {
466
- const events = this.getEntries();
741
+ const events = this.store.getAll();
467
742
  let entry;
468
743
  let exit;
469
744
  for (const e of events) {
@@ -488,7 +763,7 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
488
763
  * not user-facing rollup units.
489
764
  */
490
765
  aggregateAllBoundaries() {
491
- const events = this.getEntries();
766
+ const events = this.store.getAll();
492
767
  const out = [];
493
768
  // Index exits by runtimeStageId for O(1) pair-up.
494
769
  const exitByRid = new Map();
@@ -518,18 +793,20 @@ class BoundaryRecorder extends trace_1.SequenceRecorder {
518
793
  }
519
794
  exports.BoundaryRecorder = BoundaryRecorder;
520
795
  // ── Internal helpers ─────────────────────────────────────────────────
521
- function buildRunEvent(type, payload) {
796
+ function buildRunEvent(type, payload, commitIdxBefore) {
522
797
  return {
523
798
  type,
524
799
  runtimeStageId: trace_1.ROOT_RUNTIME_STAGE_ID,
525
800
  subflowPath: [trace_1.ROOT_SUBFLOW_ID],
526
801
  depth: 0,
527
802
  ts: Date.now(),
803
+ commitIdxBefore,
804
+ commitIdxAfter: commitIdxBefore,
528
805
  payload,
529
806
  isRoot: true,
530
807
  };
531
808
  }
532
- function buildSubflowEvent(event, type) {
809
+ function buildSubflowEvent(event, type, commitIdxBefore) {
533
810
  const subflowId = event.subflowId;
534
811
  if (!subflowId)
535
812
  return undefined;
@@ -550,6 +827,8 @@ function buildSubflowEvent(event, type) {
550
827
  subflowPath,
551
828
  depth,
552
829
  ts: Date.now(),
830
+ commitIdxBefore,
831
+ commitIdxAfter: commitIdxBefore,
553
832
  subflowId,
554
833
  localSubflowId,
555
834
  subflowName: event.name,
@@ -1 +1 @@
1
- {"version":3,"file":"BoundaryRecorder.js","sourceRoot":"","sources":["../../../src/recorders/observability/BoundaryRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoundaryRecorder.js","sourceRoot":"","sources":["../../../src/recorders/observability/BoundaryRecorder.ts"],"names":[],"mappings":"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"}