agentfootprint 2.14.1 → 2.14.3

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.
@@ -218,6 +218,51 @@ export interface DomainContextInjectedEvent extends DomainEventBase {
218
218
  }
219
219
  /** Discriminated union covering every observable moment in a run. */
220
220
  export type DomainEvent = DomainRunEvent | DomainSubflowEvent | DomainForkBranchEvent | DomainDecisionBranchEvent | DomainLoopIterationEvent | DomainLLMStartEvent | DomainLLMEndEvent | DomainToolStartEvent | DomainToolEndEvent | DomainContextInjectedEvent;
221
+ /**
222
+ * Per-boundary rollup returned by
223
+ * `BoundaryRecorder.aggregateForBoundary` and
224
+ * `BoundaryRecorder.aggregateAllBoundaries`. Same shape regardless of
225
+ * primitive kind — UIs render the same chip set for every Agent /
226
+ * LLMCall / Sequence / Parallel / Conditional / Loop.
227
+ *
228
+ * Events count toward this rollup when their `subflowPath` is a
229
+ * prefix-match of the boundary's `subflowPath`. Nested boundaries
230
+ * (e.g., LLMCall inside an Agent) contribute to BOTH rollups.
231
+ *
232
+ * In-flight boundaries (no `subflow.exit` yet) get partial values;
233
+ * `endedAtMs` and `durationMs` are undefined until close.
234
+ */
235
+ export interface BoundaryAggregate {
236
+ readonly runtimeStageId: string;
237
+ readonly subflowId: string;
238
+ readonly subflowPath: readonly string[];
239
+ /** `'Agent'` / `'LLMCall'` / `'Sequence'` / `'Parallel'` /
240
+ * `'Conditional'` / `'Loop'`. Always set on rollups returned by
241
+ * `aggregateAllBoundaries` (which filters to primitive boundaries).
242
+ * Optional on `aggregateForBoundary` results because the caller may
243
+ * request rollup for a non-primitive subflow (rare). */
244
+ readonly primitiveKind?: string;
245
+ /** Subflow display name (e.g., 'Triage', 'Billing'). */
246
+ readonly label: string;
247
+ /** Token usage summed across every `llm.end` inside this boundary. */
248
+ readonly tokens: {
249
+ readonly input: number;
250
+ readonly output: number;
251
+ };
252
+ /** Count of `llm.start` events inside this boundary. */
253
+ readonly llmCalls: number;
254
+ /** Count of `tool.start` events inside this boundary. */
255
+ readonly toolCalls: number;
256
+ /** Count of `agent.iteration_start` events scoped to this boundary —
257
+ * ReAct-loop iterations. Always `0` for non-Agent primitives. */
258
+ readonly iterations: number;
259
+ /** Wall-clock ms of `subflow.entry`. */
260
+ readonly startedAtMs: number;
261
+ /** Wall-clock ms of `subflow.exit`. Undefined while in flight. */
262
+ readonly endedAtMs?: number;
263
+ /** `endedAtMs - startedAtMs`. Undefined while in flight. */
264
+ readonly durationMs?: number;
265
+ }
221
266
  export interface BoundaryRecorderOptions {
222
267
  readonly id?: string;
223
268
  }
@@ -288,6 +333,45 @@ export declare class BoundaryRecorder extends SequenceRecorder<DomainEvent> impl
288
333
  messages: DomainSubflowEvent[];
289
334
  tools: DomainSubflowEvent[];
290
335
  };
336
+ /**
337
+ * Roll up the event stream for ONE primitive boundary (Agent /
338
+ * LLMCall / Sequence / Parallel / Conditional / Loop) into per-
339
+ * boundary totals — tokens, llm calls, tool calls, iterations,
340
+ * cache hits, duration.
341
+ *
342
+ * Pure projection over `getEvents()`. Events are attributed to a
343
+ * boundary when their `subflowPath` is a **prefix-match** of the
344
+ * boundary's path — so a nested `LLMCall` inside an `Agent` rolls
345
+ * up into BOTH (LLMCall total + Agent total).
346
+ *
347
+ * Works mid-run (the boundary's `subflow.exit` may not have fired
348
+ * yet — `endedAtMs` / `durationMs` are undefined in that case).
349
+ * Works post-run.
350
+ *
351
+ * Multi-consumer story: this is the single source of rollup truth
352
+ * for Lens, CLI live monitors, Sentry breadcrumbs, OTel exporters,
353
+ * dashboards. Domain math (what counts as an "iteration"? does
354
+ * cache hit count separately from llmCalls?) lives HERE — every
355
+ * consumer hooks up; nobody re-implements.
356
+ *
357
+ * @param runtimeStageId The boundary's runtimeStageId (the same id
358
+ * carried by `StepNode.runtimeStageId` for primitive subflows).
359
+ * @returns The rollup, or `undefined` if no `subflow.entry` event
360
+ * matches `runtimeStageId`.
361
+ */
362
+ aggregateForBoundary(runtimeStageId: string): BoundaryAggregate | undefined;
363
+ /**
364
+ * Roll up every primitive boundary in the run into one rollup each,
365
+ * in the order their `subflow.entry` events fired. Top-level multi-
366
+ * agent UIs call this once per render to populate per-agent chips.
367
+ *
368
+ * Filters to `primitiveKind`-tagged subflows ONLY (Agent / LLMCall /
369
+ * Sequence / Parallel / Conditional / Loop). Slot subflows
370
+ * (`sf-system-prompt` / `sf-messages` / `sf-tools`) are NOT
371
+ * boundaries in this sense — they're context-engineering machinery,
372
+ * not user-facing rollup units.
373
+ */
374
+ aggregateAllBoundaries(): readonly BoundaryAggregate[];
291
375
  /** Snapshot bundle — included in `executor.getSnapshot()` if the
292
376
  * executor implements the snapshot extension protocol. */
293
377
  toSnapshot(): {
@@ -1 +1 @@
1
- {"version":3,"file":"BoundaryRecorder.d.ts","sourceRoot":"","sources":["../../../../src/recorders/observability/BoundaryRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoundaryRecorder.d.ts","sourceRoot":"","sources":["../../../../src/recorders/observability/BoundaryRecorder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * LiveStateRecorder — domain trackers built on the footprintjs
3
+ * `BoundaryStateTracker<TState>` storage primitive (v4.17.2+).
4
+ *
5
+ * **What this answers:** "Right now, mid-run, what's happening?"
6
+ *
7
+ * - Is an LLM call in flight? What's the partial answer so far?
8
+ * - Is a tool executing? Which tool? What args?
9
+ * - Is the agent in a turn? Which turn index?
10
+ *
11
+ * All reads are O(1) — the trackers maintain incremental state via
12
+ * the framework's bracket-scoped storage primitive. No event-log fold,
13
+ * no walking arrays per render.
14
+ *
15
+ * **Mental model — observers vs. bookkeepers:**
16
+ *
17
+ * `BoundaryStateTracker<TState>` (footprintjs) = STORAGE shelf.
18
+ * `EventDispatcher.on(...)` (agentfootprint) = OBSERVER source.
19
+ *
20
+ * Each domain tracker (`LiveLLMTracker`, `LiveToolTracker`,
21
+ * `LiveAgentTurnTracker`) extends the storage shelf AND subscribes
22
+ * to the dispatcher. The composition `LiveStateRecorder` bundles
23
+ * all three so a consumer only attaches once.
24
+ *
25
+ * **Tier 1 (live) only.** Past states are not stored — when a boundary
26
+ * closes, its transient state clears. For time-travel queries, snapshot
27
+ * to a `SequenceRecorder<TState>` instead. See the BoundaryStateTracker
28
+ * JSDoc for the rationale.
29
+ *
30
+ * @example Use the bundled façade — one attach, three live views:
31
+ *
32
+ * ```typescript
33
+ * import { LiveStateRecorder } from 'agentfootprint';
34
+ *
35
+ * const liveState = new LiveStateRecorder();
36
+ * liveState.subscribe(runner);
37
+ *
38
+ * await runner.run({ input });
39
+ *
40
+ * // Read at any moment during the run (e.g., from another async task):
41
+ * liveState.isLLMInFlight(); // true between llm_start ↔ llm_end
42
+ * liveState.getPartialLLM(); // accumulated tokens so far
43
+ * liveState.isToolExecuting(); // true between tool_start ↔ tool_end
44
+ * liveState.isAgentInTurn(); // true between turn_start ↔ turn_end
45
+ *
46
+ * liveState.unsubscribe();
47
+ * ```
48
+ *
49
+ * @example Use a single tracker directly when you only need one slice:
50
+ *
51
+ * ```typescript
52
+ * import { LiveLLMTracker } from 'agentfootprint';
53
+ *
54
+ * const llm = new LiveLLMTracker();
55
+ * llm.subscribe(runner);
56
+ * await runner.run({ input });
57
+ *
58
+ * llm.isInFlight(); // O(1)
59
+ * llm.getLatestPartial(); // most recent active call's partial
60
+ * llm.getActive(rid)?.tokens; // tokens accumulated for one call
61
+ * ```
62
+ */
63
+ import { BoundaryStateTracker } from 'footprintjs/trace';
64
+ import type { Unsubscribe } from '../../events/dispatcher.js';
65
+ import type { AgentfootprintEvent, AgentfootprintEventType } from '../../events/registry.js';
66
+ /** Minimal Runner shape this recorder needs — only the public `on(...)`
67
+ * subscription method, so the same trackers can attach to a real Runner
68
+ * (Agent, etc.) OR to a test mock without exposing the protected
69
+ * internal dispatcher. */
70
+ export interface LiveStateRunnerLike {
71
+ on<K extends AgentfootprintEventType>(type: K, listener: (event: Extract<AgentfootprintEvent, {
72
+ type: K;
73
+ }>) => void): Unsubscribe;
74
+ }
75
+ /** Live transient state of one in-flight LLM call. */
76
+ export interface LLMLiveState {
77
+ /** Accumulated content from `stream.token` events since `llm_start`. */
78
+ readonly partial: string;
79
+ /** Number of tokens received so far. */
80
+ readonly tokens: number;
81
+ /** Iteration index (from the LLMStartPayload). */
82
+ readonly iteration: number;
83
+ /** Provider name (e.g., 'anthropic', 'openai'). */
84
+ readonly provider: string;
85
+ /** Model id. */
86
+ readonly model: string;
87
+ /** Wall-clock ms when llm_start fired. */
88
+ readonly startedAtMs: number;
89
+ }
90
+ /** Live transient state of one in-flight tool call. */
91
+ export interface ToolLiveState {
92
+ readonly toolName: string;
93
+ readonly args: Readonly<Record<string, unknown>>;
94
+ readonly toolCallId: string;
95
+ readonly startedAtMs: number;
96
+ }
97
+ /** Live transient state of one in-flight agent turn. */
98
+ export interface AgentTurnLiveState {
99
+ readonly turnIndex: number;
100
+ readonly userPrompt: string;
101
+ readonly startedAtMs: number;
102
+ }
103
+ /**
104
+ * Tracks the in-flight state of LLM calls. Subscribes to:
105
+ * - `agentfootprint.stream.llm_start` → opens a boundary
106
+ * - `agentfootprint.stream.token` → appends to partial
107
+ * - `agentfootprint.stream.llm_end` → closes the boundary
108
+ *
109
+ * Boundary key: `runtimeStageId` of the call-llm stage. Parallel LLM
110
+ * calls (Parallel composition with multiple branches) get distinct
111
+ * keys and are tracked independently.
112
+ */
113
+ export declare class LiveLLMTracker extends BoundaryStateTracker<LLMLiveState> {
114
+ readonly id = "live-llm";
115
+ /** Subscribe to a runner's dispatcher. Returns an Unsubscribe. */
116
+ subscribe(runner: LiveStateRunnerLike): Unsubscribe;
117
+ /** True if any LLM call is currently in flight. Same as `hasActive`. */
118
+ isInFlight(): boolean;
119
+ /** Accumulated partial content of the MOST RECENTLY started active
120
+ * LLM call. Empty string when no call is active. Useful for the
121
+ * classic "Chatbot is responding: …" live commentary line. */
122
+ getLatestPartial(): string;
123
+ }
124
+ /**
125
+ * Tracks in-flight tool calls. Subscribes to:
126
+ * - `agentfootprint.stream.tool_start` → opens a boundary
127
+ * - `agentfootprint.stream.tool_end` → closes the boundary
128
+ *
129
+ * Boundary key: `toolCallId` (more granular than `runtimeStageId` —
130
+ * parallel tools share one calling stage but have distinct toolCallIds).
131
+ */
132
+ export declare class LiveToolTracker extends BoundaryStateTracker<ToolLiveState> {
133
+ readonly id = "live-tool";
134
+ subscribe(runner: LiveStateRunnerLike): Unsubscribe;
135
+ /** True if any tool is currently executing. */
136
+ isExecuting(): boolean;
137
+ /** Names of tools currently executing. Empty when none. */
138
+ getExecutingToolNames(): readonly string[];
139
+ }
140
+ /**
141
+ * Tracks in-flight agent turns. Subscribes to:
142
+ * - `agentfootprint.agent.turn_start` → opens a boundary
143
+ * - `agentfootprint.agent.turn_end` → closes the boundary
144
+ *
145
+ * Boundary key: stringified `turnIndex` from the payload — survives
146
+ * across runner instances because turnIndex resets per-session.
147
+ */
148
+ export declare class LiveAgentTurnTracker extends BoundaryStateTracker<AgentTurnLiveState> {
149
+ readonly id = "live-agent-turn";
150
+ subscribe(runner: LiveStateRunnerLike): Unsubscribe;
151
+ /** True if the agent is currently inside a turn. */
152
+ isInTurn(): boolean;
153
+ /** Index of the most-recently started active turn (-1 if none). */
154
+ getCurrentTurnIndex(): number;
155
+ }
156
+ /**
157
+ * One-stop façade bundling `LiveLLMTracker` + `LiveToolTracker` +
158
+ * `LiveAgentTurnTracker`. Consumers attach this once and get O(1)
159
+ * reads across all three live-state slices.
160
+ *
161
+ * Use the bundled façade unless you ONLY need one slice — using a
162
+ * single tracker directly avoids subscribing to events you don't read.
163
+ *
164
+ * **Lifecycle**: call `subscribe(runner)` to wire all three trackers,
165
+ * then `unsubscribe()` to detach. `clear()` resets all transient state
166
+ * across the three (called automatically by consumers like Lens between
167
+ * runs).
168
+ *
169
+ * **What this is NOT for:**
170
+ * - Time-travel queries (Tier 1 only — live state)
171
+ * - Aggregations (use SequenceRecorder.aggregate)
172
+ * - Stage-level observation (use Recorder.onStageStart/End)
173
+ *
174
+ * **Composition over inheritance:** the façade does NOT extend
175
+ * `BoundaryStateTracker` itself — different boundary kinds need
176
+ * separate active maps to avoid key collisions between LLM and tool
177
+ * boundaries. Each sub-tracker keeps its own state.
178
+ */
179
+ export declare class LiveStateRecorder {
180
+ readonly id = "live-state";
181
+ /** LLM call live state. */
182
+ readonly llm: LiveLLMTracker;
183
+ /** Tool execution live state. */
184
+ readonly tool: LiveToolTracker;
185
+ /** Agent turn live state. */
186
+ readonly turn: LiveAgentTurnTracker;
187
+ /** Active subscription disposer, if `subscribe()` is called. */
188
+ private active;
189
+ constructor();
190
+ /** Subscribe all three trackers to one runner. Idempotent — calling
191
+ * twice on the same recorder unsubscribes the prior subscription
192
+ * first to avoid double-counting. */
193
+ subscribe(runner: LiveStateRunnerLike): Unsubscribe;
194
+ /** Detach all three trackers from the current runner. Idempotent. */
195
+ unsubscribe(): void;
196
+ /** Reset transient state across all three trackers. Called by the
197
+ * executor / consumer between runs. */
198
+ clear(): void;
199
+ /** True if any LLM call is currently in flight. */
200
+ isLLMInFlight(): boolean;
201
+ /** Accumulated partial content of the most-recently started LLM call. */
202
+ getPartialLLM(): string;
203
+ /** True if any tool is currently executing. */
204
+ isToolExecuting(): boolean;
205
+ /** Names of tools currently executing. */
206
+ getExecutingToolNames(): readonly string[];
207
+ /** True if the agent is currently inside a turn. */
208
+ isAgentInTurn(): boolean;
209
+ /** Current turn index (-1 if not in a turn). */
210
+ getCurrentTurnIndex(): number;
211
+ }
212
+ /** Convenience factory — same shape as `boundaryRecorder()` /
213
+ * `topologyRecorder()` / `inOutRecorder()` in footprintjs. */
214
+ export declare function liveStateRecorder(): LiveStateRecorder;
215
+ //# sourceMappingURL=LiveStateRecorder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveStateRecorder.d.ts","sourceRoot":"","sources":["../../../../src/recorders/observability/LiveStateRecorder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentfootprint",
3
- "version": "2.14.1",
3
+ "version": "2.14.3",
4
4
  "description": "The explainable agent framework — build AI agents you can explain, audit, and trust. Built on footprintjs.",
5
5
  "license": "MIT",
6
6
  "author": "Sanjay Krishna Anbalagan",
@@ -184,7 +184,7 @@
184
184
  "@aws-sdk/client-xray": "*",
185
185
  "@modelcontextprotocol/sdk": "*",
186
186
  "@opentelemetry/api": "*",
187
- "footprintjs": ">=4.17.1",
187
+ "footprintjs": ">=4.17.2",
188
188
  "ioredis": "*",
189
189
  "openai": "*",
190
190
  "zod": "*"
@@ -228,7 +228,7 @@
228
228
  "@vitest/coverage-v8": "^4.1.5",
229
229
  "eslint": "^8.44.0",
230
230
  "eslint-config-prettier": "^6.15.0",
231
- "footprintjs": "^4.17.1",
231
+ "footprintjs": "^4.17.2",
232
232
  "prettier": "^2.8.1",
233
233
  "typedoc": "^0.28.19",
234
234
  "typedoc-plugin-markdown": "^4.11.0",