agentfootprint 7.6.1 → 7.8.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 (205) hide show
  1. package/CLAUDE.md +2 -1
  2. package/dist/adapters/llm/AnthropicProvider.js +15 -7
  3. package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
  4. package/dist/adapters/llm/BedrockProvider.js +5 -4
  5. package/dist/adapters/llm/BedrockProvider.js.map +1 -1
  6. package/dist/adapters/llm/BrowserAnthropicProvider.js +14 -7
  7. package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  8. package/dist/adapters/llm/BrowserOpenAIProvider.js +13 -10
  9. package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  10. package/dist/adapters/llm/OpenAIProvider.js +8 -6
  11. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  12. package/dist/core/Agent.js +10 -0
  13. package/dist/core/Agent.js.map +1 -1
  14. package/dist/core/LLMCall.js +10 -1
  15. package/dist/core/LLMCall.js.map +1 -1
  16. package/dist/core/RunnerBase.js +42 -12
  17. package/dist/core/RunnerBase.js.map +1 -1
  18. package/dist/core/agent/buildAgentChart.js +7 -3
  19. package/dist/core/agent/buildAgentChart.js.map +1 -1
  20. package/dist/core/agent/buildAgentMessageApiChart.js +18 -1
  21. package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -1
  22. package/dist/core/agent/buildMessageApiChart.js +4 -1
  23. package/dist/core/agent/buildMessageApiChart.js.map +1 -1
  24. package/dist/core/agent/stages/callLLM.js +18 -2
  25. package/dist/core/agent/stages/callLLM.js.map +1 -1
  26. package/dist/core-flow/Parallel.js +9 -1
  27. package/dist/core-flow/Parallel.js.map +1 -1
  28. package/dist/esm/adapters/llm/AnthropicProvider.d.ts +36 -3
  29. package/dist/esm/adapters/llm/AnthropicProvider.js +15 -7
  30. package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
  31. package/dist/esm/adapters/llm/BedrockProvider.d.ts +3 -3
  32. package/dist/esm/adapters/llm/BedrockProvider.js +5 -4
  33. package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
  34. package/dist/esm/adapters/llm/BrowserAnthropicProvider.d.ts +16 -3
  35. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +14 -7
  36. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  37. package/dist/esm/adapters/llm/BrowserOpenAIProvider.d.ts +5 -5
  38. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +13 -10
  39. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  40. package/dist/esm/adapters/llm/OpenAIProvider.d.ts +3 -3
  41. package/dist/esm/adapters/llm/OpenAIProvider.js +8 -6
  42. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  43. package/dist/esm/adapters/types.d.ts +95 -2
  44. package/dist/esm/core/Agent.js +10 -0
  45. package/dist/esm/core/Agent.js.map +1 -1
  46. package/dist/esm/core/LLMCall.js +10 -1
  47. package/dist/esm/core/LLMCall.js.map +1 -1
  48. package/dist/esm/core/RunnerBase.d.ts +22 -1
  49. package/dist/esm/core/RunnerBase.js +42 -12
  50. package/dist/esm/core/RunnerBase.js.map +1 -1
  51. package/dist/esm/core/agent/buildAgentChart.d.ts +7 -3
  52. package/dist/esm/core/agent/buildAgentChart.js +7 -3
  53. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  54. package/dist/esm/core/agent/buildAgentMessageApiChart.js +18 -1
  55. package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -1
  56. package/dist/esm/core/agent/buildMessageApiChart.js +4 -1
  57. package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -1
  58. package/dist/esm/core/agent/stages/callLLM.js +18 -2
  59. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  60. package/dist/esm/core/runner.d.ts +40 -5
  61. package/dist/esm/core-flow/Parallel.js +9 -1
  62. package/dist/esm/core-flow/Parallel.js.map +1 -1
  63. package/dist/esm/index.js +9 -9
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/lib/context-bisect/types.d.ts +9 -0
  66. package/dist/esm/lib/context-bisect/types.js.map +1 -1
  67. package/dist/esm/lib/recorded-chat/recordedChat.js +10 -1
  68. package/dist/esm/lib/recorded-chat/recordedChat.js.map +1 -1
  69. package/dist/esm/lib/recorded-chat/types.d.ts +10 -0
  70. package/dist/esm/observe.d.ts +3 -1
  71. package/dist/esm/observe.js +13 -1
  72. package/dist/esm/observe.js.map +1 -1
  73. package/dist/esm/providers.d.ts +1 -1
  74. package/dist/esm/recorders/core/EmitBridge.d.ts +9 -3
  75. package/dist/esm/recorders/core/EmitBridge.js +4 -3
  76. package/dist/esm/recorders/core/EmitBridge.js.map +1 -1
  77. package/dist/esm/recorders/core/ResilienceRecorder.d.ts +32 -0
  78. package/dist/esm/recorders/core/ResilienceRecorder.js +41 -0
  79. package/dist/esm/recorders/core/ResilienceRecorder.js.map +1 -0
  80. package/dist/esm/recorders/core/resilienceHooks.d.ts +34 -0
  81. package/dist/esm/recorders/core/resilienceHooks.js +74 -0
  82. package/dist/esm/recorders/core/resilienceHooks.js.map +1 -0
  83. package/dist/esm/recorders/core/typedEmit.d.ts +1 -2
  84. package/dist/esm/recorders/observability/BoundaryRecorder.d.ts +176 -12
  85. package/dist/esm/recorders/observability/BoundaryRecorder.js +119 -8
  86. package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
  87. package/dist/esm/recorders/observability/FlowchartRecorder.d.ts +13 -2
  88. package/dist/esm/recorders/observability/FlowchartRecorder.js +14 -3
  89. package/dist/esm/recorders/observability/FlowchartRecorder.js.map +1 -1
  90. package/dist/esm/recorders/observability/localObservability.d.ts +66 -6
  91. package/dist/esm/recorders/observability/localObservability.js +27 -7
  92. package/dist/esm/recorders/observability/localObservability.js.map +1 -1
  93. package/dist/esm/recorders/observability/recordRun.d.ts +143 -0
  94. package/dist/esm/recorders/observability/recordRun.js +133 -0
  95. package/dist/esm/recorders/observability/recordRun.js.map +1 -0
  96. package/dist/esm/recorders/observability/trace.d.ts +65 -13
  97. package/dist/esm/recorders/observability/trace.js +36 -9
  98. package/dist/esm/recorders/observability/trace.js.map +1 -1
  99. package/dist/esm/reliability/buildReliabilityGateChart.d.ts +23 -9
  100. package/dist/esm/reliability/buildReliabilityGateChart.js +37 -10
  101. package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
  102. package/dist/esm/resilience/withCircuitBreaker.d.ts +15 -5
  103. package/dist/esm/resilience/withCircuitBreaker.js +14 -7
  104. package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
  105. package/dist/esm/resilience/withFallback.d.ts +7 -1
  106. package/dist/esm/resilience/withFallback.js +30 -11
  107. package/dist/esm/resilience/withFallback.js.map +1 -1
  108. package/dist/esm/resilience/withRetry.d.ts +10 -5
  109. package/dist/esm/resilience/withRetry.js +53 -3
  110. package/dist/esm/resilience/withRetry.js.map +1 -1
  111. package/dist/esm/tool-providers/index.js +2 -2
  112. package/dist/esm/tool-providers/index.js.map +1 -1
  113. package/dist/index.js +9 -9
  114. package/dist/index.js.map +1 -1
  115. package/dist/lib/context-bisect/types.js.map +1 -1
  116. package/dist/lib/recorded-chat/recordedChat.js +10 -1
  117. package/dist/lib/recorded-chat/recordedChat.js.map +1 -1
  118. package/dist/observe.js +16 -2
  119. package/dist/observe.js.map +1 -1
  120. package/dist/recorders/core/EmitBridge.js +4 -3
  121. package/dist/recorders/core/EmitBridge.js.map +1 -1
  122. package/dist/recorders/core/ResilienceRecorder.js +45 -0
  123. package/dist/recorders/core/ResilienceRecorder.js.map +1 -0
  124. package/dist/recorders/core/resilienceHooks.js +78 -0
  125. package/dist/recorders/core/resilienceHooks.js.map +1 -0
  126. package/dist/recorders/observability/BoundaryRecorder.js +119 -8
  127. package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
  128. package/dist/recorders/observability/FlowchartRecorder.js +14 -3
  129. package/dist/recorders/observability/FlowchartRecorder.js.map +1 -1
  130. package/dist/recorders/observability/localObservability.js +27 -7
  131. package/dist/recorders/observability/localObservability.js.map +1 -1
  132. package/dist/recorders/observability/recordRun.js +137 -0
  133. package/dist/recorders/observability/recordRun.js.map +1 -0
  134. package/dist/recorders/observability/trace.js +36 -9
  135. package/dist/recorders/observability/trace.js.map +1 -1
  136. package/dist/reliability/buildReliabilityGateChart.js +37 -10
  137. package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
  138. package/dist/resilience/withCircuitBreaker.js +14 -7
  139. package/dist/resilience/withCircuitBreaker.js.map +1 -1
  140. package/dist/resilience/withFallback.js +30 -11
  141. package/dist/resilience/withFallback.js.map +1 -1
  142. package/dist/resilience/withRetry.js +53 -3
  143. package/dist/resilience/withRetry.js.map +1 -1
  144. package/dist/tool-providers/index.js +2 -2
  145. package/dist/tool-providers/index.js.map +1 -1
  146. package/dist/types/adapters/llm/AnthropicProvider.d.ts +36 -3
  147. package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
  148. package/dist/types/adapters/llm/BedrockProvider.d.ts +3 -3
  149. package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
  150. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts +16 -3
  151. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
  152. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts +5 -5
  153. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
  154. package/dist/types/adapters/llm/OpenAIProvider.d.ts +3 -3
  155. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  156. package/dist/types/adapters/types.d.ts +95 -2
  157. package/dist/types/adapters/types.d.ts.map +1 -1
  158. package/dist/types/core/Agent.d.ts.map +1 -1
  159. package/dist/types/core/LLMCall.d.ts.map +1 -1
  160. package/dist/types/core/RunnerBase.d.ts +22 -1
  161. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  162. package/dist/types/core/agent/buildAgentChart.d.ts +7 -3
  163. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  164. package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -1
  165. package/dist/types/core/agent/buildMessageApiChart.d.ts.map +1 -1
  166. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  167. package/dist/types/core/runner.d.ts +40 -5
  168. package/dist/types/core/runner.d.ts.map +1 -1
  169. package/dist/types/core-flow/Parallel.d.ts.map +1 -1
  170. package/dist/types/lib/context-bisect/types.d.ts +9 -0
  171. package/dist/types/lib/context-bisect/types.d.ts.map +1 -1
  172. package/dist/types/lib/recorded-chat/recordedChat.d.ts.map +1 -1
  173. package/dist/types/lib/recorded-chat/types.d.ts +10 -0
  174. package/dist/types/lib/recorded-chat/types.d.ts.map +1 -1
  175. package/dist/types/observe.d.ts +3 -1
  176. package/dist/types/observe.d.ts.map +1 -1
  177. package/dist/types/providers.d.ts +1 -1
  178. package/dist/types/providers.d.ts.map +1 -1
  179. package/dist/types/recorders/core/EmitBridge.d.ts +9 -3
  180. package/dist/types/recorders/core/EmitBridge.d.ts.map +1 -1
  181. package/dist/types/recorders/core/ResilienceRecorder.d.ts +33 -0
  182. package/dist/types/recorders/core/ResilienceRecorder.d.ts.map +1 -0
  183. package/dist/types/recorders/core/resilienceHooks.d.ts +35 -0
  184. package/dist/types/recorders/core/resilienceHooks.d.ts.map +1 -0
  185. package/dist/types/recorders/core/typedEmit.d.ts +1 -2
  186. package/dist/types/recorders/core/typedEmit.d.ts.map +1 -1
  187. package/dist/types/recorders/observability/BoundaryRecorder.d.ts +176 -12
  188. package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
  189. package/dist/types/recorders/observability/FlowchartRecorder.d.ts +13 -2
  190. package/dist/types/recorders/observability/FlowchartRecorder.d.ts.map +1 -1
  191. package/dist/types/recorders/observability/localObservability.d.ts +66 -6
  192. package/dist/types/recorders/observability/localObservability.d.ts.map +1 -1
  193. package/dist/types/recorders/observability/recordRun.d.ts +144 -0
  194. package/dist/types/recorders/observability/recordRun.d.ts.map +1 -0
  195. package/dist/types/recorders/observability/trace.d.ts +65 -13
  196. package/dist/types/recorders/observability/trace.d.ts.map +1 -1
  197. package/dist/types/reliability/buildReliabilityGateChart.d.ts +23 -9
  198. package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
  199. package/dist/types/resilience/withCircuitBreaker.d.ts +15 -5
  200. package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
  201. package/dist/types/resilience/withFallback.d.ts +7 -1
  202. package/dist/types/resilience/withFallback.d.ts.map +1 -1
  203. package/dist/types/resilience/withRetry.d.ts +10 -5
  204. package/dist/types/resilience/withRetry.d.ts.map +1 -1
  205. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FlowchartRecorder.js","sourceRoot":"","sources":["../../../../src/recorders/observability/FlowchartRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlowchartRecorder.js","sourceRoot":"","sources":["../../../../src/recorders/observability/FlowchartRecorder.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,24 @@
3
3
  * render it live, and snapshot it for offline replay.
4
4
  *
5
5
  * One handle, two outputs:
6
- * - LIVE — `onUpdate(graph)` fires per event; pass the handle to
7
- * `<Lens recorder={handle} />` and it re-renders as the agent runs.
8
- * - OFFLINE— `getTrace()` (any time) and `onComplete(trace)` (auto, at run
9
- * exit) freeze the model into a JSON-lossless `Trace` for `<Replay>`.
6
+ * - LIVE — `onLive(graph)` fires per event with a fresh `StepGraph`; hand
7
+ * it to your own renderer, or read `handle.getSnapshot()` /
8
+ * `handle.boundary` whenever you like.
9
+ * - OFFLINE— `getTrace()` (any time) and `onRecorded(trace)` (auto, at run
10
+ * exit) freeze the model into a JSON-lossless `Trace`.
11
+ *
12
+ * This handle is NOT a Lens recorder. `<Lens recorder={…} />` wants a
13
+ * `LensRecorder` — a different object with a different surface — and passing
14
+ * this one gives a component with none of the members it calls. To put a run
15
+ * in front of Lens, record it and hand the recording over:
16
+ *
17
+ * const stop = recordRun(agent); // agentfootprint/observe
18
+ * await agent.run({ message });
19
+ * const recording = stop.toRecording(); // { snapshot, events, structure }
20
+ *
21
+ * // …in the viewer:
22
+ * const { recorder, runner } = observeRecording(recording); // lens
23
+ * <Lens recorder={recorder} runner={runner} />
10
24
  *
11
25
  * Contrast with `enable.observability({ strategy })` (Tier-4 / Monitor), which
12
26
  * ships each event to a vendor and FORGETS. localObservability KEEPS the model
@@ -22,7 +36,7 @@ import type { DomainEvent } from './BoundaryRecorder.js';
22
36
  import { type FlowchartHandle, type StepGraph } from './FlowchartRecorder.js';
23
37
  import { type SerializeTraceOptions, type Trace } from './trace.js';
24
38
  export interface LocalObservabilityOptions {
25
- /** LIVE recording — called with a fresh StepGraph on every event (drives `<Lens>`). */
39
+ /** LIVE recording — called with a fresh StepGraph on every event. */
26
40
  readonly onLive?: (graph: StepGraph) => void;
27
41
  /** At run exit — called once with the finalized recording (a Trace, auto-serialized) to replay offline. */
28
42
  readonly onRecorded?: (trace: Trace) => void;
@@ -33,6 +47,52 @@ export interface LocalObservabilityOptions {
33
47
  * Pass `redactContent` for a ready-made redactor.
34
48
  */
35
49
  readonly redact?: (event: DomainEvent) => DomainEvent;
50
+ /**
51
+ * Carry the run's footprintjs snapshot (state + commit log + recorder
52
+ * data) in the Trace. Default `false`.
53
+ *
54
+ * A Trace WITHOUT it draws a chart and a timeline and nothing else: the
55
+ * commit axis, ExplainableShell's memory and provenance panels, and
56
+ * WhereFrom all read the commit log, which lives in the snapshot and
57
+ * appears nowhere in the event log. Turn this on and the Trace can feed
58
+ * them.
59
+ *
60
+ * Off by default because of `redact`, not because of size. `redact` is a
61
+ * per-DOMAIN-EVENT function — it cannot reach inside a snapshot, whose
62
+ * `sharedState` is the run's raw working memory. Filling this field
63
+ * automatically would have widened what a carefully redacted Trace
64
+ * exports without a line of code changing at any call site, which is the
65
+ * kind of quiet trust-boundary move a library has no business making.
66
+ * When you turn it on, redaction for the snapshot half is footprintjs's
67
+ * `setRedactionPolicy()` at run time — the run's own policy, applied when
68
+ * the values were written.
69
+ *
70
+ * For a viewer, prefer `recordRun()`: `{ snapshot, events, structure }`
71
+ * is the shape the UIs consume, and it is explicit about carrying state.
72
+ */
73
+ readonly includeSnapshot?: boolean;
74
+ }
75
+ /**
76
+ * The three things a live runner knows that a recorder cannot see for
77
+ * itself. Each one lights a different surface of the stored Trace, and a
78
+ * missing one degrades exactly that surface:
79
+ *
80
+ * - `getStructure` → the chart. Nothing else can draw it.
81
+ * - `getSnapshot` → state, commit log, every attached recorder's data.
82
+ * - `getCommitCount` → where each boundary sits on the commit axis.
83
+ *
84
+ * All three are read lazily, at the moment they are needed, because all
85
+ * three answer differently before, during and after a run.
86
+ *
87
+ * @internal Supplied by `RunnerBase.enable.localObservability`.
88
+ */
89
+ export interface RunAccess {
90
+ /** `() => runner.getSpec().buildTimeStructure` — the static chart. */
91
+ readonly getStructure?: () => unknown;
92
+ /** `() => runner.getLastSnapshot()` — the footprintjs run snapshot. */
93
+ readonly getSnapshot?: () => unknown;
94
+ /** `() => runner.getCommitCount()` — sampled live on every boundary. */
95
+ readonly getCommitCount?: () => number;
36
96
  }
37
97
  /** A `FlowchartHandle` (live) plus `getTrace()` (offline snapshot). */
38
98
  export interface LocalObservabilityHandle extends FlowchartHandle {
@@ -45,4 +105,4 @@ export interface LocalObservabilityHandle extends FlowchartHandle {
45
105
  *
46
106
  * @internal Called from `RunnerBase.enable.localObservability`.
47
107
  */
48
- export declare function attachLocalObservability(runnerAttach: (recorder: CombinedRecorder) => () => void, dispatcher: EventDispatcher, options?: LocalObservabilityOptions, now?: () => number, getStructure?: () => unknown): LocalObservabilityHandle;
108
+ export declare function attachLocalObservability(runnerAttach: (recorder: CombinedRecorder) => () => void, dispatcher: EventDispatcher, options?: LocalObservabilityOptions, now?: () => number, access?: RunAccess): LocalObservabilityHandle;
@@ -3,10 +3,24 @@
3
3
  * render it live, and snapshot it for offline replay.
4
4
  *
5
5
  * One handle, two outputs:
6
- * - LIVE — `onUpdate(graph)` fires per event; pass the handle to
7
- * `<Lens recorder={handle} />` and it re-renders as the agent runs.
8
- * - OFFLINE— `getTrace()` (any time) and `onComplete(trace)` (auto, at run
9
- * exit) freeze the model into a JSON-lossless `Trace` for `<Replay>`.
6
+ * - LIVE — `onLive(graph)` fires per event with a fresh `StepGraph`; hand
7
+ * it to your own renderer, or read `handle.getSnapshot()` /
8
+ * `handle.boundary` whenever you like.
9
+ * - OFFLINE— `getTrace()` (any time) and `onRecorded(trace)` (auto, at run
10
+ * exit) freeze the model into a JSON-lossless `Trace`.
11
+ *
12
+ * This handle is NOT a Lens recorder. `<Lens recorder={…} />` wants a
13
+ * `LensRecorder` — a different object with a different surface — and passing
14
+ * this one gives a component with none of the members it calls. To put a run
15
+ * in front of Lens, record it and hand the recording over:
16
+ *
17
+ * const stop = recordRun(agent); // agentfootprint/observe
18
+ * await agent.run({ message });
19
+ * const recording = stop.toRecording(); // { snapshot, events, structure }
20
+ *
21
+ * // …in the viewer:
22
+ * const { recorder, runner } = observeRecording(recording); // lens
23
+ * <Lens recorder={recorder} runner={runner} />
10
24
  *
11
25
  * Contrast with `enable.observability({ strategy })` (Tier-4 / Monitor), which
12
26
  * ships each event to a vendor and FORGETS. localObservability KEEPS the model
@@ -24,7 +38,7 @@ import { serializeTrace } from './trace.js';
24
38
  *
25
39
  * @internal Called from `RunnerBase.enable.localObservability`.
26
40
  */
27
- export function attachLocalObservability(runnerAttach, dispatcher, options = {}, now = Date.now, getStructure) {
41
+ export function attachLocalObservability(runnerAttach, dispatcher, options = {}, now = Date.now, access = {}) {
28
42
  let completed = false;
29
43
  // `let` (not const): `handle` is referenced by `buildTrace` and the onUpdate
30
44
  // closure below, both defined before its assignment. The closures only run
@@ -33,7 +47,13 @@ export function attachLocalObservability(runnerAttach, dispatcher, options = {},
33
47
  let handle;
34
48
  const buildTrace = (override) => serializeTrace(handle.boundary.getEvents(), {
35
49
  capturedAtMs: now(),
36
- ...(getStructure && { structure: getStructure() }),
50
+ ...(access.getStructure && { structure: access.getStructure() }),
51
+ // Opt-in — `redact` is a per-event function and cannot reach inside a
52
+ // snapshot, so filling this by default would widen what a redacted
53
+ // Trace exports. Read at freeze time, not at attach time: before the
54
+ // run there is no snapshot, and during one it grows. `onRecorded`
55
+ // fires from the run's own exit boundary, where it is final.
56
+ ...(options.includeSnapshot && access.getSnapshot && { snapshot: access.getSnapshot() }),
37
57
  ...(options.redact && { redact: options.redact }),
38
58
  ...override,
39
59
  });
@@ -48,7 +68,7 @@ export function attachLocalObservability(runnerAttach, dispatcher, options = {},
48
68
  options.onRecorded(buildTrace());
49
69
  }
50
70
  },
51
- });
71
+ }, access.getCommitCount);
52
72
  return { ...handle, getTrace: buildTrace };
53
73
  }
54
74
  //# sourceMappingURL=localObservability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"localObservability.js","sourceRoot":"","sources":["../../../../src/recorders/observability/localObservability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,EAAE,eAAe,EAAwC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAA0C,MAAM,YAAY,CAAC;AAsBpF;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAAwD,EACxD,UAA2B,EAC3B,UAAqC,EAAE,EACvC,MAAoB,IAAI,CAAC,GAAG,EAC5B,YAA4B;IAE5B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,wCAAwC;IACxC,IAAI,MAAuB,CAAC;IAE5B,MAAM,UAAU,GAAG,CAAC,QAAgC,EAAS,EAAE,CAC7D,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;QAC1C,YAAY,EAAE,GAAG,EAAE;QACnB,GAAG,CAAC,YAAY,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACjD,GAAG,QAAQ;KACZ,CAAC,CAAC;IAEL,MAAM,GAAG,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE;QACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,2DAA2D;YAC3D,IACE,OAAO,CAAC,UAAU;gBAClB,CAAC,SAAS;gBACV,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAC9D,CAAC;gBACD,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"localObservability.js","sourceRoot":"","sources":["../../../../src/recorders/observability/localObservability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH,OAAO,EAAE,eAAe,EAAwC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAA0C,MAAM,YAAY,CAAC;AAqEpF;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAAwD,EACxD,UAA2B,EAC3B,UAAqC,EAAE,EACvC,MAAoB,IAAI,CAAC,GAAG,EAC5B,SAAoB,EAAE;IAEtB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,wCAAwC;IACxC,IAAI,MAAuB,CAAC;IAE5B,MAAM,UAAU,GAAG,CAAC,QAAgC,EAAS,EAAE,CAC7D,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;QAC1C,YAAY,EAAE,GAAG,EAAE;QACnB,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;QAChE,sEAAsE;QACtE,mEAAmE;QACnE,qEAAqE;QACrE,kEAAkE;QAClE,6DAA6D;QAC7D,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QACxF,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACjD,GAAG,QAAQ;KACZ,CAAC,CAAC;IAEL,MAAM,GAAG,eAAe,CACtB,YAAY,EACZ,UAAU,EACV;QACE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,2DAA2D;YAC3D,IACE,OAAO,CAAC,UAAU;gBAClB,CAAC,SAAS;gBACV,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAC9D,CAAC;gBACD,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,EACD,MAAM,CAAC,cAAc,CACtB,CAAC;IAEF,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * recordRun — save a run so a viewer can show it later.
3
+ *
4
+ * A RECORDING is exactly three things, and each one lights a different
5
+ * surface:
6
+ *
7
+ * `events` the typed agentfootprint stream, in the order it fired —
8
+ * the story, the commentary, the summary.
9
+ * `snapshot` the footprintjs run snapshot — shared state, the commit
10
+ * log, and every attached recorder's data (narrative,
11
+ * metrics, boundaries).
12
+ * `structure` the agent's build-time chart — THE CHART. Nothing else
13
+ * can draw it, and no snapshot carries it.
14
+ *
15
+ * Miss one and one surface goes dark. That is why this exists: every
16
+ * integration that assembled the bundle by hand assembled a different,
17
+ * incomplete one, and the piece most often missing was `structure` —
18
+ * because a completed run does not leave it behind. This is also the
19
+ * producer for the shape lens's `observeRecording()` consumes, which
20
+ * until now nothing produced.
21
+ *
22
+ * import { recordRun } from 'agentfootprint/observe';
23
+ *
24
+ * const recorder = recordRun(agent);
25
+ * await agent.run({ message });
26
+ * fs.writeFileSync('run.json', JSON.stringify(recorder.toRecording()));
27
+ *
28
+ * …and in the viewer:
29
+ *
30
+ * const { recorder, runner } = observeRecording(JSON.parse(json)); // lens
31
+ * <Lens recorder={recorder} runner={runner} />
32
+ *
33
+ * WHAT IT WIRES THAT HAND-ROLLING GETS WRONG
34
+ * ──────────────────────────────────────────
35
+ * The boundary recorder — the one that puts stops on the step strip —
36
+ * needs three connections, and each missing one fails differently:
37
+ *
38
+ * attach no boundaries at all (loud: the strip is empty)
39
+ * subscribe boundaries with nothing in them (quiet: no LLM or
40
+ * tool detail behind any stop)
41
+ * getCommitCount every boundary stamped at commit 0 (SILENT: the
42
+ * events look complete, and the strip cannot be
43
+ * rebuilt offline — the commit log records what
44
+ * stages wrote, never when a boundary was crossed,
45
+ * so nothing downstream can repair it)
46
+ *
47
+ * Wire it before the run or not at all — none of the three can be
48
+ * reconstructed from a finished run.
49
+ *
50
+ * WHAT IT DOES NOT DO
51
+ * ───────────────────
52
+ * It attaches no OTHER recorders. `narrative()` and `metrics()` are the
53
+ * consumer's choice — their data rides the snapshot when attached, and
54
+ * each viewer says so when it isn't there (a Gantt with no timings shows
55
+ * execution ORDER and says so; a story panel falls back to "X executed.
56
+ * Wrote: y"). Attaching them behind the consumer's back would make every
57
+ * recording pay for panels most runs never open.
58
+ */
59
+ import type { Runner } from '../../core/runner.js';
60
+ import type { AgentfootprintEvent } from '../../events/registry.js';
61
+ import { type BoundaryRecorder } from './BoundaryRecorder.js';
62
+ /**
63
+ * One frozen run — everything a viewer needs, and nothing it doesn't.
64
+ *
65
+ * The field names are the ones `observeRecording()` reads, so a recording
66
+ * is handed over whole: no mapping, no adapter, no per-integration shape.
67
+ */
68
+ export interface Recording {
69
+ /** The footprintjs run snapshot. `undefined` if nothing has run yet. */
70
+ readonly snapshot: unknown;
71
+ /** The typed events the run fired, in order. */
72
+ readonly events: readonly AgentfootprintEvent[];
73
+ /** The agent's build-time chart — the only route to a drawable graph. */
74
+ readonly structure: unknown;
75
+ }
76
+ export interface RecordRunOptions {
77
+ /**
78
+ * Cap on retained events. The oldest are dropped once the cap is hit,
79
+ * so a long-running server records a bounded tail rather than growing
80
+ * without limit. Default 10,000 — a few hundred KB for a typical turn,
81
+ * and far more than any single turn fires.
82
+ *
83
+ * A recording that dropped events says so: `droppedEvents` counts them
84
+ * rather than leaving a consumer to wonder why its timeline starts
85
+ * mid-run.
86
+ */
87
+ readonly maxEvents?: number;
88
+ /**
89
+ * How much of the boundary log rides the snapshot:
90
+ * - `'full'` (default) — every field, content included. What an
91
+ * offline step strip needs to show detail behind each stop.
92
+ * - `'lean'` — boundary structure only, no captured payloads. The
93
+ * strip still rebuilds; the detail panels are empty, and a
94
+ * consumer reading the bundle's `meta.mode` can say so.
95
+ */
96
+ readonly boundaryDetail?: 'full' | 'lean';
97
+ }
98
+ /** A recording in progress. Keep it until the run ends, then freeze it. */
99
+ export interface RunRecorder {
100
+ /**
101
+ * Freeze what has happened so far into `{ snapshot, events, structure }`.
102
+ * Call it after the run; calling it during one gives a partial
103
+ * recording, which is legitimate for a crash report but will show a
104
+ * timeline that stops mid-run.
105
+ *
106
+ * The events array is a fresh copy, so a recording taken and stored
107
+ * does not keep growing behind the caller's back. `snapshot` and
108
+ * `structure` are the runner's own objects, held by reference —
109
+ * serialize to detach.
110
+ */
111
+ toRecording(): Recording;
112
+ /** The boundary recorder, for richer live queries (slot rows, ranges). */
113
+ readonly boundary: BoundaryRecorder;
114
+ /** How many events have been captured. */
115
+ readonly eventCount: number;
116
+ /** Events discarded to stay under `maxEvents`. `0` on a normal turn. */
117
+ readonly droppedEvents: number;
118
+ /**
119
+ * Stop recording. The events already captured stay readable, so
120
+ * `toRecording()` after `stop()` is the normal end of a run; call it
121
+ * when the runner outlives the recording (a server that records one
122
+ * turn out of many).
123
+ */
124
+ stop(): void;
125
+ }
126
+ /**
127
+ * Start recording a runner. Call BEFORE `run()` — a recording is
128
+ * collected as the run happens and cannot be reconstructed after it.
129
+ *
130
+ * @param runner the Agent / composition / pattern to record.
131
+ * @param options event cap and boundary detail level.
132
+ *
133
+ * @example
134
+ * ```ts
135
+ * const recorder = recordRun(agent);
136
+ * await agent.run({ message: 'Weather in San Francisco?' });
137
+ * const recording = recorder.toRecording();
138
+ * recorder.stop();
139
+ *
140
+ * fs.writeFileSync('run.json', JSON.stringify(recording));
141
+ * ```
142
+ */
143
+ export declare function recordRun(runner: Runner, options?: RecordRunOptions): RunRecorder;
@@ -0,0 +1,133 @@
1
+ /**
2
+ * recordRun — save a run so a viewer can show it later.
3
+ *
4
+ * A RECORDING is exactly three things, and each one lights a different
5
+ * surface:
6
+ *
7
+ * `events` the typed agentfootprint stream, in the order it fired —
8
+ * the story, the commentary, the summary.
9
+ * `snapshot` the footprintjs run snapshot — shared state, the commit
10
+ * log, and every attached recorder's data (narrative,
11
+ * metrics, boundaries).
12
+ * `structure` the agent's build-time chart — THE CHART. Nothing else
13
+ * can draw it, and no snapshot carries it.
14
+ *
15
+ * Miss one and one surface goes dark. That is why this exists: every
16
+ * integration that assembled the bundle by hand assembled a different,
17
+ * incomplete one, and the piece most often missing was `structure` —
18
+ * because a completed run does not leave it behind. This is also the
19
+ * producer for the shape lens's `observeRecording()` consumes, which
20
+ * until now nothing produced.
21
+ *
22
+ * import { recordRun } from 'agentfootprint/observe';
23
+ *
24
+ * const recorder = recordRun(agent);
25
+ * await agent.run({ message });
26
+ * fs.writeFileSync('run.json', JSON.stringify(recorder.toRecording()));
27
+ *
28
+ * …and in the viewer:
29
+ *
30
+ * const { recorder, runner } = observeRecording(JSON.parse(json)); // lens
31
+ * <Lens recorder={recorder} runner={runner} />
32
+ *
33
+ * WHAT IT WIRES THAT HAND-ROLLING GETS WRONG
34
+ * ──────────────────────────────────────────
35
+ * The boundary recorder — the one that puts stops on the step strip —
36
+ * needs three connections, and each missing one fails differently:
37
+ *
38
+ * attach no boundaries at all (loud: the strip is empty)
39
+ * subscribe boundaries with nothing in them (quiet: no LLM or
40
+ * tool detail behind any stop)
41
+ * getCommitCount every boundary stamped at commit 0 (SILENT: the
42
+ * events look complete, and the strip cannot be
43
+ * rebuilt offline — the commit log records what
44
+ * stages wrote, never when a boundary was crossed,
45
+ * so nothing downstream can repair it)
46
+ *
47
+ * Wire it before the run or not at all — none of the three can be
48
+ * reconstructed from a finished run.
49
+ *
50
+ * WHAT IT DOES NOT DO
51
+ * ───────────────────
52
+ * It attaches no OTHER recorders. `narrative()` and `metrics()` are the
53
+ * consumer's choice — their data rides the snapshot when attached, and
54
+ * each viewer says so when it isn't there (a Gantt with no timings shows
55
+ * execution ORDER and says so; a story panel falls back to "X executed.
56
+ * Wrote: y"). Attaching them behind the consumer's back would make every
57
+ * recording pay for panels most runs never open.
58
+ */
59
+ import { boundaryRecorder } from './BoundaryRecorder.js';
60
+ /** Default retained-event cap — see `RecordRunOptions.maxEvents`. */
61
+ const DEFAULT_MAX_EVENTS = 10_000;
62
+ /**
63
+ * Start recording a runner. Call BEFORE `run()` — a recording is
64
+ * collected as the run happens and cannot be reconstructed after it.
65
+ *
66
+ * @param runner the Agent / composition / pattern to record.
67
+ * @param options event cap and boundary detail level.
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * const recorder = recordRun(agent);
72
+ * await agent.run({ message: 'Weather in San Francisco?' });
73
+ * const recording = recorder.toRecording();
74
+ * recorder.stop();
75
+ *
76
+ * fs.writeFileSync('run.json', JSON.stringify(recording));
77
+ * ```
78
+ */
79
+ export function recordRun(runner, options = {}) {
80
+ const maxEvents = options.maxEvents ?? DEFAULT_MAX_EVENTS;
81
+ const events = [];
82
+ let dropped = 0;
83
+ // 1. THE TIMELINE. Subscribed before the run so nothing is missed —
84
+ // the dispatcher drops events with no listener rather than queuing
85
+ // them, so a late subscription starts mid-story.
86
+ const offEvents = runner.on('*', (event) => {
87
+ events.push(event);
88
+ if (events.length > maxEvents) {
89
+ events.shift();
90
+ dropped += 1;
91
+ }
92
+ });
93
+ // 2. THE BOUNDARIES — all three connections, which is the whole reason
94
+ // to call this instead of wiring it yourself. `getCommitCount` reads
95
+ // through the runner on every boundary, so it reports the count at
96
+ // that moment rather than a number captured now (when it is 0).
97
+ const boundary = boundaryRecorder({
98
+ getCommitCount: () => runner.getCommitCount(),
99
+ ...(options.boundaryDetail === 'lean' ? { snapshot: 'lean' } : {}),
100
+ });
101
+ const offAttach = runner.attach(boundary);
102
+ const offTyped = boundary.subscribe(runner);
103
+ let stopped = false;
104
+ return {
105
+ toRecording: () => ({
106
+ // Read at freeze time. Before the run there is no snapshot; during
107
+ // one it grows; after it, it is the finished run's.
108
+ snapshot: runner.getLastSnapshot(),
109
+ events: events.slice(),
110
+ // The one piece a run does not leave behind — it lives on the
111
+ // chart, which is built once and never changes.
112
+ structure: runner.getSpec().buildTimeStructure,
113
+ }),
114
+ boundary,
115
+ get eventCount() {
116
+ return events.length;
117
+ },
118
+ get droppedEvents() {
119
+ return dropped;
120
+ },
121
+ stop: () => {
122
+ // Idempotent: a consumer that stops in both a finally block and an
123
+ // unmount handler should not detach someone else's later recorder.
124
+ if (stopped)
125
+ return;
126
+ stopped = true;
127
+ offEvents();
128
+ offTyped();
129
+ offAttach();
130
+ },
131
+ };
132
+ }
133
+ //# sourceMappingURL=recordRun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordRun.js","sourceRoot":"","sources":["../../../../src/recorders/observability/recordRun.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAKH,OAAO,EAAE,gBAAgB,EAAyB,MAAM,uBAAuB,CAAC;AAqEhF,qEAAqE;AACrE,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,UAA4B,EAAE;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,oEAAoE;IACpE,sEAAsE;IACtE,oDAAoD;IACpD,MAAM,SAAS,GAAgB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAA0B,EAAE,EAAE;QAC3E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAChC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE;QAC7C,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE5C,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,OAAO;QACL,WAAW,EAAE,GAAc,EAAE,CAAC,CAAC;YAC7B,mEAAmE;YACnE,oDAAoD;YACpD,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE;YAClC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;YACtB,8DAA8D;YAC9D,gDAAgD;YAChD,SAAS,EAAG,MAAM,CAAC,OAAO,EAAuC,CAAC,kBAAkB;SACrF,CAAC;QACF,QAAQ;QACR,IAAI,UAAU;YACZ,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,aAAa;YACf,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,mEAAmE;YACnE,mEAAmE;YACnE,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -5,14 +5,31 @@
5
5
  * `serializeTrace()` freezes that model into a `Trace` — plain JSON you can
6
6
  * persist (file, Redis, a bug report) and later rehydrate WITHOUT re-running
7
7
  * the agent. `agentfootprint-lens`'s `<Replay trace={…} />` consumes it and
8
- * rebuilds the flowchart via the existing translators.
8
+ * draws the flowchart via the existing translators.
9
9
  *
10
- * A `Trace` stores ONLY the domain-event log (the single source of truth the
11
- * Lens already reads). The step graph is ALWAYS a derived projection of those
12
- * events (footprint.js's "graph is derived, never post-processed" principle) —
13
- * it is rebuilt at render time, never stored. Storing a derived graph would be
14
- * redundant AND a redaction hazard: a second content surface a per-event
15
- * `redact` could never reach.
10
+ * A `Trace` stores the domain-event log (the single source of truth the Lens
11
+ * already reads) plus, since 7.8, the run's footprintjs snapshot. The step
12
+ * graph is ALWAYS a derived projection of those events (footprint.js's "graph
13
+ * is derived, never post-processed" principle) — it is rebuilt at render time,
14
+ * never stored. Storing a derived graph would be redundant AND a redaction
15
+ * hazard: a second content surface a per-event `redact` could never reach.
16
+ *
17
+ * WHAT A TRACE CAN AND CANNOT DRIVE
18
+ * ─────────────────────────────────
19
+ * `<Replay trace={…} />` draws the chart from `structure`, and that is all it
20
+ * draws: a static shape, not a lit-up path. It does not read `trace.events` —
21
+ * time-travel over them is a planned refinement, and until it lands an offline
22
+ * `<Replay>` is a strictly smaller view than the live `<Lens>`, not a match
23
+ * for it.
24
+ *
25
+ * For the full viewers — `<Lens>`, ExplainableShell, WhereFrom, the commit
26
+ * axis — what you want is a RECORDING: `{ snapshot, events, structure }`, the
27
+ * shape `recordRun()` produces and lens's `observeRecording()` consumes. Note
28
+ * `events` there means the TYPED agentfootprint stream (`runner.on('*')`),
29
+ * which is not the domain-event log a Trace carries: the two are different
30
+ * projections of the same run, and a Trace holds only the second. So a Trace
31
+ * with a `snapshot` can drive the snapshot-fed surfaces, but it is not itself
32
+ * a recording — reach for `recordRun()` when the destination is a viewer.
16
33
  *
17
34
  * PII / trust boundary: the event log carries real content — `llm.end.content`,
18
35
  * `tool.start.args`, `tool.end.result`, `context.injected.contentSummary`,
@@ -49,7 +66,8 @@ export interface TraceSummary {
49
66
  }
50
67
  /**
51
68
  * A JSON-lossless, UI-free snapshot of one run. Persist it, ship it, replay it.
52
- * `events` ARE the run (the graph is a derived projection, rebuilt at render).
69
+ * `events` ARE the timeline (the graph is a derived projection, rebuilt at
70
+ * render); `structure` is the chart; `snapshot` is the state the run left.
53
71
  */
54
72
  export interface Trace {
55
73
  /** Schema version. Bump on a breaking shape change. */
@@ -58,12 +76,36 @@ export interface Trace {
58
76
  readonly events: readonly DomainEvent[];
59
77
  /**
60
78
  * The serialized STATIC chart structure (footprint.js `buildTimeStructure`).
61
- * Design-time data (stage ids/names/types/edges) — UI-free. `<Replay>` rebuilds
62
- * the flowchart from this and overlays `events`, so an offline replay matches
63
- * the live `<Lens>` exactly. NOT runtime-redacted (it carries no user data; the
79
+ * Design-time data (stage ids/names/types/edges) — UI-free. `<Replay>` draws
80
+ * the flowchart from this. NOT runtime-redacted (it carries no user data; the
64
81
  * `redact` function targets runtime events).
82
+ *
83
+ * Absent, `<Replay>` has nothing to draw and says so.
65
84
  */
66
85
  readonly structure?: unknown;
86
+ /**
87
+ * The run's footprintjs snapshot (`runner.getLastSnapshot()`) — shared
88
+ * state, the commit log, and every attached recorder's data.
89
+ *
90
+ * This is the piece the snapshot-fed surfaces need and the event log cannot
91
+ * supply: ExplainableShell's memory and provenance panels, WhereFrom, and
92
+ * the commit axis all read the commit log, which is a footprintjs artifact
93
+ * and appears nowhere in `events`. Without it a Trace draws a chart and a
94
+ * timeline and nothing else — which is what every Trace captured before 7.8
95
+ * is, and why they replay as a static picture.
96
+ *
97
+ * `unknown` on purpose: this is footprintjs's shape, not agentfootprint's,
98
+ * and a Trace is a transport — it should not pin a peer's type into its own
99
+ * schema. Cast at the consumer.
100
+ *
101
+ * NOT redacted by `redact`, which runs per domain event and cannot reach
102
+ * inside a snapshot. This field carries whatever the run's own footprintjs
103
+ * redaction policy (`setRedactionPolicy()`) let through, so a run whose
104
+ * state holds secrets wants that policy set at run time — which is why
105
+ * `enable.localObservability({ includeSnapshot: true })` is opt-in and a
106
+ * redacted Trace does not quietly grow a second content surface.
107
+ */
108
+ readonly snapshot?: unknown;
67
109
  /** Optional headline totals. */
68
110
  readonly summary?: TraceSummary;
69
111
  /** Self-describing redaction state — travels with the trace. */
@@ -81,8 +123,14 @@ export interface SerializeTraceOptions {
81
123
  readonly redact?: (event: DomainEvent) => DomainEvent;
82
124
  /** Override the `redaction` label. Defaults to `'pii'` when `redact` is given, else `'none'`. */
83
125
  readonly redactionLabel?: TraceRedaction;
84
- /** The serialized static chart (`getSpec().buildTimeStructure`) — for `<Replay>` to rebuild the flowchart. */
126
+ /** The serialized static chart (`getSpec().buildTimeStructure`) — what `<Replay>` draws. */
85
127
  readonly structure?: unknown;
128
+ /**
129
+ * The run's footprintjs snapshot (`runner.getLastSnapshot()`) — the commit
130
+ * log and recorder data the snapshot-fed panels read. `enable.localObservability()`
131
+ * fills this for you; pass it explicitly when calling `serializeTrace` by hand.
132
+ */
133
+ readonly snapshot?: unknown;
86
134
  /** Optional precomputed headline rollup. */
87
135
  readonly summary?: TraceSummary;
88
136
  /** Wall-clock capture time. Pass `Date.now()` from the call site. */
@@ -102,10 +150,14 @@ export declare function redactContent(event: DomainEvent): DomainEvent;
102
150
  * `getEvents()` output.
103
151
  *
104
152
  * const trace = serializeTrace(handle.boundary.getEvents(), {
105
- * redact: redactContent, // PII stripped before it enters the trace
153
+ * redact: redactContent, // PII stripped before it enters the trace
154
+ * structure: agent.getSpec().buildTimeStructure, // the chart
155
+ * snapshot: agent.getLastSnapshot(), // state + commit log + recorders
106
156
  * capturedAtMs: Date.now(),
107
157
  * });
108
158
  * fs.writeFileSync('run.trace.json', JSON.stringify(trace));
159
+ *
160
+ * `enable.localObservability().getTrace()` passes all three for you.
109
161
  */
110
162
  export declare function serializeTrace(events: readonly DomainEvent[], options?: SerializeTraceOptions): Trace;
111
163
  /**