agentfootprint 7.7.0 → 7.9.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.
- package/CLAUDE.md +2 -1
- package/dist/adapters/llm/AnthropicProvider.js +5 -4
- package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BedrockProvider.js +5 -4
- package/dist/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserAnthropicProvider.js +5 -4
- package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserOpenAIProvider.js +13 -10
- package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
- package/dist/adapters/llm/OpenAIProvider.js +8 -6
- package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/core/Agent.js +10 -0
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/LLMCall.js +10 -1
- package/dist/core/LLMCall.js.map +1 -1
- package/dist/core/RunnerBase.js +42 -12
- package/dist/core/RunnerBase.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +7 -3
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildAgentMessageApiChart.js +18 -1
- package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -1
- package/dist/core/agent/buildMessageApiChart.js +4 -1
- package/dist/core/agent/buildMessageApiChart.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +18 -2
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core-flow/Parallel.js +9 -1
- package/dist/core-flow/Parallel.js.map +1 -1
- package/dist/embedders/index.js +74 -26
- package/dist/embedders/index.js.map +1 -1
- package/dist/esm/adapters/llm/AnthropicProvider.d.ts +3 -3
- package/dist/esm/adapters/llm/AnthropicProvider.js +5 -4
- package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BedrockProvider.d.ts +3 -3
- package/dist/esm/adapters/llm/BedrockProvider.js +5 -4
- package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.d.ts +3 -3
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +5 -4
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.d.ts +5 -5
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +13 -10
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/llm/OpenAIProvider.d.ts +3 -3
- package/dist/esm/adapters/llm/OpenAIProvider.js +8 -6
- package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/types.d.ts +95 -2
- package/dist/esm/core/Agent.js +10 -0
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/LLMCall.js +10 -1
- package/dist/esm/core/LLMCall.js.map +1 -1
- package/dist/esm/core/RunnerBase.d.ts +22 -1
- package/dist/esm/core/RunnerBase.js +42 -12
- package/dist/esm/core/RunnerBase.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.d.ts +7 -3
- package/dist/esm/core/agent/buildAgentChart.js +7 -3
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildAgentMessageApiChart.js +18 -1
- package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -1
- package/dist/esm/core/agent/buildMessageApiChart.js +4 -1
- package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -1
- package/dist/esm/core/agent/stages/callLLM.js +18 -2
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/runner.d.ts +40 -5
- package/dist/esm/core-flow/Parallel.js +9 -1
- package/dist/esm/core-flow/Parallel.js.map +1 -1
- package/dist/esm/embedders/index.d.ts +96 -1
- package/dist/esm/embedders/index.js +74 -26
- package/dist/esm/embedders/index.js.map +1 -1
- package/dist/esm/index.js +9 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/context-bisect/types.d.ts +9 -0
- package/dist/esm/lib/context-bisect/types.js.map +1 -1
- package/dist/esm/lib/recorded-chat/recordedChat.js +10 -1
- package/dist/esm/lib/recorded-chat/recordedChat.js.map +1 -1
- package/dist/esm/lib/recorded-chat/types.d.ts +10 -0
- package/dist/esm/observe.d.ts +3 -1
- package/dist/esm/observe.js +13 -1
- package/dist/esm/observe.js.map +1 -1
- package/dist/esm/providers.d.ts +1 -1
- package/dist/esm/recorders/core/EmitBridge.d.ts +9 -3
- package/dist/esm/recorders/core/EmitBridge.js +4 -3
- package/dist/esm/recorders/core/EmitBridge.js.map +1 -1
- package/dist/esm/recorders/core/ResilienceRecorder.d.ts +32 -0
- package/dist/esm/recorders/core/ResilienceRecorder.js +41 -0
- package/dist/esm/recorders/core/ResilienceRecorder.js.map +1 -0
- package/dist/esm/recorders/core/resilienceHooks.d.ts +34 -0
- package/dist/esm/recorders/core/resilienceHooks.js +74 -0
- package/dist/esm/recorders/core/resilienceHooks.js.map +1 -0
- package/dist/esm/recorders/core/typedEmit.d.ts +1 -2
- package/dist/esm/recorders/observability/BoundaryRecorder.d.ts +176 -12
- package/dist/esm/recorders/observability/BoundaryRecorder.js +119 -8
- package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/FlowchartRecorder.d.ts +13 -2
- package/dist/esm/recorders/observability/FlowchartRecorder.js +14 -3
- package/dist/esm/recorders/observability/FlowchartRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/localObservability.d.ts +66 -6
- package/dist/esm/recorders/observability/localObservability.js +27 -7
- package/dist/esm/recorders/observability/localObservability.js.map +1 -1
- package/dist/esm/recorders/observability/recordRun.d.ts +143 -0
- package/dist/esm/recorders/observability/recordRun.js +133 -0
- package/dist/esm/recorders/observability/recordRun.js.map +1 -0
- package/dist/esm/recorders/observability/trace.d.ts +65 -13
- package/dist/esm/recorders/observability/trace.js +36 -9
- package/dist/esm/recorders/observability/trace.js.map +1 -1
- package/dist/esm/reliability/buildReliabilityGateChart.d.ts +23 -9
- package/dist/esm/reliability/buildReliabilityGateChart.js +37 -10
- package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
- package/dist/esm/resilience/withCircuitBreaker.d.ts +15 -5
- package/dist/esm/resilience/withCircuitBreaker.js +14 -7
- package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
- package/dist/esm/resilience/withFallback.d.ts +7 -1
- package/dist/esm/resilience/withFallback.js +30 -11
- package/dist/esm/resilience/withFallback.js.map +1 -1
- package/dist/esm/resilience/withRetry.d.ts +10 -5
- package/dist/esm/resilience/withRetry.js +53 -3
- package/dist/esm/resilience/withRetry.js.map +1 -1
- package/dist/esm/tool-providers/index.js +2 -2
- package/dist/esm/tool-providers/index.js.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/lib/context-bisect/types.js.map +1 -1
- package/dist/lib/recorded-chat/recordedChat.js +10 -1
- package/dist/lib/recorded-chat/recordedChat.js.map +1 -1
- package/dist/observe.js +16 -2
- package/dist/observe.js.map +1 -1
- package/dist/recorders/core/EmitBridge.js +4 -3
- package/dist/recorders/core/EmitBridge.js.map +1 -1
- package/dist/recorders/core/ResilienceRecorder.js +45 -0
- package/dist/recorders/core/ResilienceRecorder.js.map +1 -0
- package/dist/recorders/core/resilienceHooks.js +78 -0
- package/dist/recorders/core/resilienceHooks.js.map +1 -0
- package/dist/recorders/observability/BoundaryRecorder.js +119 -8
- package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/recorders/observability/FlowchartRecorder.js +14 -3
- package/dist/recorders/observability/FlowchartRecorder.js.map +1 -1
- package/dist/recorders/observability/localObservability.js +27 -7
- package/dist/recorders/observability/localObservability.js.map +1 -1
- package/dist/recorders/observability/recordRun.js +137 -0
- package/dist/recorders/observability/recordRun.js.map +1 -0
- package/dist/recorders/observability/trace.js +36 -9
- package/dist/recorders/observability/trace.js.map +1 -1
- package/dist/reliability/buildReliabilityGateChart.js +37 -10
- package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
- package/dist/resilience/withCircuitBreaker.js +14 -7
- package/dist/resilience/withCircuitBreaker.js.map +1 -1
- package/dist/resilience/withFallback.js +30 -11
- package/dist/resilience/withFallback.js.map +1 -1
- package/dist/resilience/withRetry.js +53 -3
- package/dist/resilience/withRetry.js.map +1 -1
- package/dist/tool-providers/index.js +2 -2
- package/dist/tool-providers/index.js.map +1 -1
- package/dist/types/adapters/llm/AnthropicProvider.d.ts +3 -3
- package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BedrockProvider.d.ts +3 -3
- package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts +3 -3
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts +5 -5
- package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/OpenAIProvider.d.ts +3 -3
- package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/types.d.ts +95 -2
- package/dist/types/adapters/types.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/LLMCall.d.ts.map +1 -1
- package/dist/types/core/RunnerBase.d.ts +22 -1
- package/dist/types/core/RunnerBase.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +7 -3
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildMessageApiChart.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/runner.d.ts +40 -5
- package/dist/types/core/runner.d.ts.map +1 -1
- package/dist/types/core-flow/Parallel.d.ts.map +1 -1
- package/dist/types/embedders/index.d.ts +96 -1
- package/dist/types/embedders/index.d.ts.map +1 -1
- package/dist/types/lib/context-bisect/types.d.ts +9 -0
- package/dist/types/lib/context-bisect/types.d.ts.map +1 -1
- package/dist/types/lib/recorded-chat/recordedChat.d.ts.map +1 -1
- package/dist/types/lib/recorded-chat/types.d.ts +10 -0
- package/dist/types/lib/recorded-chat/types.d.ts.map +1 -1
- package/dist/types/observe.d.ts +3 -1
- package/dist/types/observe.d.ts.map +1 -1
- package/dist/types/providers.d.ts +1 -1
- package/dist/types/providers.d.ts.map +1 -1
- package/dist/types/recorders/core/EmitBridge.d.ts +9 -3
- package/dist/types/recorders/core/EmitBridge.d.ts.map +1 -1
- package/dist/types/recorders/core/ResilienceRecorder.d.ts +33 -0
- package/dist/types/recorders/core/ResilienceRecorder.d.ts.map +1 -0
- package/dist/types/recorders/core/resilienceHooks.d.ts +35 -0
- package/dist/types/recorders/core/resilienceHooks.d.ts.map +1 -0
- package/dist/types/recorders/core/typedEmit.d.ts +1 -2
- package/dist/types/recorders/core/typedEmit.d.ts.map +1 -1
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts +176 -12
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/FlowchartRecorder.d.ts +13 -2
- package/dist/types/recorders/observability/FlowchartRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/localObservability.d.ts +66 -6
- package/dist/types/recorders/observability/localObservability.d.ts.map +1 -1
- package/dist/types/recorders/observability/recordRun.d.ts +144 -0
- package/dist/types/recorders/observability/recordRun.d.ts.map +1 -0
- package/dist/types/recorders/observability/trace.d.ts +65 -13
- package/dist/types/recorders/observability/trace.d.ts.map +1 -1
- package/dist/types/reliability/buildReliabilityGateChart.d.ts +23 -9
- package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
- package/dist/types/resilience/withCircuitBreaker.d.ts +15 -5
- package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
- package/dist/types/resilience/withFallback.d.ts +7 -1
- package/dist/types/resilience/withFallback.d.ts.map +1 -1
- package/dist/types/resilience/withRetry.d.ts +10 -5
- package/dist/types/resilience/withRetry.d.ts.map +1 -1
- package/package.json +4 -1
|
@@ -181,7 +181,9 @@ export interface FlowchartHandle {
|
|
|
181
181
|
/**
|
|
182
182
|
* Attach a live FlowchartRecorder to a runner.
|
|
183
183
|
*
|
|
184
|
-
* 1. Creates a `BoundaryRecorder` (the unified domain event log)
|
|
184
|
+
* 1. Creates a `BoundaryRecorder` (the unified domain event log) with
|
|
185
|
+
* commit tracking, so every boundary records WHERE on the commit
|
|
186
|
+
* axis it happened.
|
|
185
187
|
* 2. Attaches it to the executor's FlowRecorder channel via
|
|
186
188
|
* `runnerAttach` — captures run / subflow / fork / decision / loop.
|
|
187
189
|
* 3. Subscribes it to the dispatcher — captures llm.* / tool.* /
|
|
@@ -189,9 +191,18 @@ export interface FlowchartHandle {
|
|
|
189
191
|
* 4. Wires `onUpdate` so the consumer sees a fresh derived StepGraph
|
|
190
192
|
* on every event.
|
|
191
193
|
*
|
|
194
|
+
* @param getCommitCount where each boundary sits on the run's commit
|
|
195
|
+
* axis — the runner's `getCommitCount()`, sampled live. Optional only
|
|
196
|
+
* because a caller may have no runner to sample; omitting it stamps
|
|
197
|
+
* every boundary `commitIdxBefore: 0`, which reads as "all boundaries
|
|
198
|
+
* opened at once" and leaves an offline step strip with nothing to
|
|
199
|
+
* place. Nothing downstream can repair it — the commit log records
|
|
200
|
+
* what stages wrote, never when a boundary was crossed — so the
|
|
201
|
+
* runner always passes it.
|
|
202
|
+
*
|
|
192
203
|
* @internal Called from `RunnerBase.enable.flowchart`.
|
|
193
204
|
*/
|
|
194
|
-
export declare function attachFlowchart(runnerAttach: (recorder: CombinedRecorder) => () => void, dispatcher: EventDispatcher, options?: FlowchartOptions): FlowchartHandle;
|
|
205
|
+
export declare function attachFlowchart(runnerAttach: (recorder: CombinedRecorder) => () => void, dispatcher: EventDispatcher, options?: FlowchartOptions, getCommitCount?: () => number): FlowchartHandle;
|
|
195
206
|
/**
|
|
196
207
|
* Project a `BoundaryRecorder`'s event stream into a `StepGraph`.
|
|
197
208
|
*
|
|
@@ -44,7 +44,9 @@ import { boundaryRecorder, } from './BoundaryRecorder.js';
|
|
|
44
44
|
/**
|
|
45
45
|
* Attach a live FlowchartRecorder to a runner.
|
|
46
46
|
*
|
|
47
|
-
* 1. Creates a `BoundaryRecorder` (the unified domain event log)
|
|
47
|
+
* 1. Creates a `BoundaryRecorder` (the unified domain event log) with
|
|
48
|
+
* commit tracking, so every boundary records WHERE on the commit
|
|
49
|
+
* axis it happened.
|
|
48
50
|
* 2. Attaches it to the executor's FlowRecorder channel via
|
|
49
51
|
* `runnerAttach` — captures run / subflow / fork / decision / loop.
|
|
50
52
|
* 3. Subscribes it to the dispatcher — captures llm.* / tool.* /
|
|
@@ -52,10 +54,19 @@ import { boundaryRecorder, } from './BoundaryRecorder.js';
|
|
|
52
54
|
* 4. Wires `onUpdate` so the consumer sees a fresh derived StepGraph
|
|
53
55
|
* on every event.
|
|
54
56
|
*
|
|
57
|
+
* @param getCommitCount where each boundary sits on the run's commit
|
|
58
|
+
* axis — the runner's `getCommitCount()`, sampled live. Optional only
|
|
59
|
+
* because a caller may have no runner to sample; omitting it stamps
|
|
60
|
+
* every boundary `commitIdxBefore: 0`, which reads as "all boundaries
|
|
61
|
+
* opened at once" and leaves an offline step strip with nothing to
|
|
62
|
+
* place. Nothing downstream can repair it — the commit log records
|
|
63
|
+
* what stages wrote, never when a boundary was crossed — so the
|
|
64
|
+
* runner always passes it.
|
|
65
|
+
*
|
|
55
66
|
* @internal Called from `RunnerBase.enable.flowchart`.
|
|
56
67
|
*/
|
|
57
|
-
export function attachFlowchart(runnerAttach, dispatcher, options = {}) {
|
|
58
|
-
const boundary = boundaryRecorder();
|
|
68
|
+
export function attachFlowchart(runnerAttach, dispatcher, options = {}, getCommitCount) {
|
|
69
|
+
const boundary = boundaryRecorder(getCommitCount ? { getCommitCount } : {});
|
|
59
70
|
const onUpdate = options.onUpdate;
|
|
60
71
|
// Wrap the recorder to also re-emit StepGraph after each FlowRecorder
|
|
61
72
|
// event. Without this, consumers see updates only on dispatcher events
|
|
@@ -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 — `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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
|
|
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,
|
|
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 — `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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,
|
|
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
|
|
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"}
|