agentfootprint 2.7.3 → 2.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 (68) hide show
  1. package/dist/core/RunnerBase.js +6 -0
  2. package/dist/core/RunnerBase.js.map +1 -1
  3. package/dist/esm/core/RunnerBase.js +6 -0
  4. package/dist/esm/core/RunnerBase.js.map +1 -1
  5. package/dist/esm/strategies/attach.js +227 -0
  6. package/dist/esm/strategies/attach.js.map +1 -0
  7. package/dist/esm/strategies/compose.js +158 -0
  8. package/dist/esm/strategies/compose.js.map +1 -0
  9. package/dist/esm/strategies/defaults/chatBubbleLiveStatus.js +34 -0
  10. package/dist/esm/strategies/defaults/chatBubbleLiveStatus.js.map +1 -0
  11. package/dist/esm/strategies/defaults/consoleObservability.js +61 -0
  12. package/dist/esm/strategies/defaults/consoleObservability.js.map +1 -0
  13. package/dist/esm/strategies/defaults/inMemorySinkCost.js +48 -0
  14. package/dist/esm/strategies/defaults/inMemorySinkCost.js.map +1 -0
  15. package/dist/esm/strategies/defaults/index.js +31 -0
  16. package/dist/esm/strategies/defaults/index.js.map +1 -0
  17. package/dist/esm/strategies/defaults/noopLens.js +29 -0
  18. package/dist/esm/strategies/defaults/noopLens.js.map +1 -0
  19. package/dist/esm/strategies/index.js +23 -0
  20. package/dist/esm/strategies/index.js.map +1 -0
  21. package/dist/esm/strategies/registry.js +102 -0
  22. package/dist/esm/strategies/registry.js.map +1 -0
  23. package/dist/esm/strategies/types.js +36 -0
  24. package/dist/esm/strategies/types.js.map +1 -0
  25. package/dist/strategies/attach.js +256 -0
  26. package/dist/strategies/attach.js.map +1 -0
  27. package/dist/strategies/compose.js +165 -0
  28. package/dist/strategies/compose.js.map +1 -0
  29. package/dist/strategies/defaults/chatBubbleLiveStatus.js +38 -0
  30. package/dist/strategies/defaults/chatBubbleLiveStatus.js.map +1 -0
  31. package/dist/strategies/defaults/consoleObservability.js +65 -0
  32. package/dist/strategies/defaults/consoleObservability.js.map +1 -0
  33. package/dist/strategies/defaults/inMemorySinkCost.js +52 -0
  34. package/dist/strategies/defaults/inMemorySinkCost.js.map +1 -0
  35. package/dist/strategies/defaults/index.js +38 -0
  36. package/dist/strategies/defaults/index.js.map +1 -0
  37. package/dist/strategies/defaults/noopLens.js +33 -0
  38. package/dist/strategies/defaults/noopLens.js.map +1 -0
  39. package/dist/strategies/index.js +47 -0
  40. package/dist/strategies/index.js.map +1 -0
  41. package/dist/strategies/registry.js +118 -0
  42. package/dist/strategies/registry.js.map +1 -0
  43. package/dist/strategies/types.js +37 -0
  44. package/dist/strategies/types.js.map +1 -0
  45. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  46. package/dist/types/core/runner.d.ts +29 -2
  47. package/dist/types/core/runner.d.ts.map +1 -1
  48. package/dist/types/strategies/attach.d.ts +48 -0
  49. package/dist/types/strategies/attach.d.ts.map +1 -0
  50. package/dist/types/strategies/compose.d.ts +49 -0
  51. package/dist/types/strategies/compose.d.ts.map +1 -0
  52. package/dist/types/strategies/defaults/chatBubbleLiveStatus.d.ts +37 -0
  53. package/dist/types/strategies/defaults/chatBubbleLiveStatus.d.ts.map +1 -0
  54. package/dist/types/strategies/defaults/consoleObservability.d.ts +43 -0
  55. package/dist/types/strategies/defaults/consoleObservability.d.ts.map +1 -0
  56. package/dist/types/strategies/defaults/inMemorySinkCost.d.ts +51 -0
  57. package/dist/types/strategies/defaults/inMemorySinkCost.d.ts.map +1 -0
  58. package/dist/types/strategies/defaults/index.d.ts +31 -0
  59. package/dist/types/strategies/defaults/index.d.ts.map +1 -0
  60. package/dist/types/strategies/defaults/noopLens.d.ts +29 -0
  61. package/dist/types/strategies/defaults/noopLens.d.ts.map +1 -0
  62. package/dist/types/strategies/index.d.ts +23 -0
  63. package/dist/types/strategies/index.d.ts.map +1 -0
  64. package/dist/types/strategies/registry.d.ts +71 -0
  65. package/dist/types/strategies/registry.d.ts.map +1 -0
  66. package/dist/types/strategies/types.d.ts +304 -0
  67. package/dist/types/strategies/types.d.ts.map +1 -0
  68. package/package.json +5 -5
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Strategy interface types for the v2.8 grouped-enabler architecture.
3
+ *
4
+ * Pattern: Strategy + Bridge + Hexagonal port. See the design memo
5
+ * `docs/inspiration/strategy-everywhere.md`.
6
+ *
7
+ * Four groups, four typed strategy interfaces. Each follows the same
8
+ * shape (one canonical contract, locked at the type level):
9
+ *
10
+ * 1. `name: string` — registry key for auto-registration
11
+ * 2. `capabilities: {...}` — what this strategy supports
12
+ * 3. `onEvent(...)` — hot path; sync, side-effect-only
13
+ * 4. `flush?(): Promise<void>` — optional batch flushing
14
+ * 5. `stop?(): void` — optional teardown
15
+ *
16
+ * Design constraints (from the panel review):
17
+ * - **PASSIVE / non-blocking by construction.** Strategies are
18
+ * observers — they NEVER block the agent loop. Async work
19
+ * (HTTP shipment, disk I/O, batching) is the STRATEGY's internal
20
+ * concern: buffer in `onEvent` (sync), drain in `flush()` (async
21
+ * OK). The dispatcher never awaits a strategy's `onEvent`.
22
+ * - `onEvent` MUST be sync `void`. MUST NOT throw. Errors caught +
23
+ * routed to `_onError` at the dispatch layer; one bad strategy
24
+ * never breaks the agent loop.
25
+ * - Idempotent registration — registering the same `name` twice
26
+ * replaces, doesn't double-fire.
27
+ * - `stop()` is idempotent — halts everything that strategy enabled,
28
+ * nothing else, calling twice is a no-op.
29
+ * - `flush()` is optional, may be sync OR async — strategies that
30
+ * don't batch can omit it. Consumer's `agent.run()` lifecycle
31
+ * calls flush at boundary points (turn end, run end) so batched
32
+ * strategies don't lose tail events. Flush is the ONLY async
33
+ * path; the hot path is always sync.
34
+ */
35
+ import type { AgentfootprintEvent, AgentfootprintEventType } from '../events/registry.js';
36
+ import type { StepGraph } from '../recorders/observability/FlowchartRecorder.js';
37
+ import type { ThinkingState } from '../recorders/observability/thinking/thinkingTemplates.js';
38
+ /**
39
+ * Common base every strategy carries. Per-group strategies extend this
40
+ * with their typed `onEvent` signature + capability shape.
41
+ */
42
+ export interface BaseStrategy {
43
+ /** Registry key. Conventionally lowercase-kebab: `'datadog'`,
44
+ * `'agentcore'`, `'cloudwatch'`. Used to look up the strategy from
45
+ * config + de-dupe registrations. */
46
+ readonly name: string;
47
+ /** Optional batch flush. Returns `void` for sync sinks (Pino-style)
48
+ * OR `Promise<void>` for async sinks (Datadog HTTP batch, OTel
49
+ * BatchSpanProcessor). Called before `agent.run()` resolves so
50
+ * batched exporters don't lose tail events. */
51
+ flush?(): void | Promise<void>;
52
+ /** Optional teardown. Called on `stop()` returned by `enable.X`.
53
+ * Idempotent — calling twice is a no-op. Strategies that open no
54
+ * external resources can omit this. */
55
+ stop?(): void;
56
+ /**
57
+ * Optional event-type filter. When set, the dispatcher only forwards
58
+ * events whose `type` is in this set — saves the strategy from
59
+ * filtering itself + reduces hot-path allocations.
60
+ *
61
+ * Per AWS CloudWatch panel review: storage cost scales with size,
62
+ * strategies need to declare what they consume so the framework
63
+ * doesn't force them to inspect everything.
64
+ */
65
+ readonly relevantEventTypes?: readonly AgentfootprintEventType[];
66
+ /**
67
+ * Optional config validator. Called ONCE at registration time —
68
+ * throws if the strategy's options are invalid (wrong API key shape,
69
+ * missing peer dep, unreachable endpoint). Saves customer-support
70
+ * "why is my dashboard empty?" tickets.
71
+ *
72
+ * Per New Relic panel review.
73
+ */
74
+ validate?(): void;
75
+ /**
76
+ * Optional error sink. Called when this strategy itself errors —
77
+ * e.g., HTTP 401 from Datadog, malformed config in pino. Default
78
+ * dispatcher behavior is to swallow + log to console (so one bad
79
+ * exporter doesn't kill the agent loop). Consumers wire this when
80
+ * they want to surface vendor errors in their own tooling.
81
+ *
82
+ * Per New Relic panel review.
83
+ */
84
+ _onError?(error: Error, event?: AgentfootprintEvent): void;
85
+ }
86
+ /**
87
+ * Capabilities a strategy declares — matches OTel's 4-signal model
88
+ * (events / logs / traces / metrics). A strategy can opt into any
89
+ * subset. `compose([...])` ORs the children's capabilities.
90
+ *
91
+ * - `events: true` → wide structured events (Honeycomb / OTel
92
+ * events / Datadog wide events). agentfootprint
93
+ * events are this shape natively — most
94
+ * strategies should default to `events: true`.
95
+ * - `logs: true` → flat log records (pino, console, CloudWatch
96
+ * Logs). The strategy reduces a wide event to
97
+ * a single log line.
98
+ * - `traces: true` → strategy maps events to spans (parent/child
99
+ * via `runtimeStageId`).
100
+ * - `metrics: true` → strategy aggregates counters / gauges
101
+ * (CloudWatch metrics, Mimir, Prometheus).
102
+ */
103
+ export interface ObservabilityCapabilities {
104
+ readonly events?: boolean;
105
+ readonly logs?: boolean;
106
+ readonly traces?: boolean;
107
+ readonly metrics?: boolean;
108
+ }
109
+ /**
110
+ * The single hot-path entry every observability strategy implements.
111
+ * Receives every typed agent event. MUST be sync + side-effect-only +
112
+ * non-throwing.
113
+ *
114
+ * Strategies that batch should buffer in `onEvent` and drain in
115
+ * `flush()`.
116
+ */
117
+ export interface ObservabilityStrategy extends BaseStrategy {
118
+ readonly capabilities: ObservabilityCapabilities;
119
+ /**
120
+ * Translate the typed agentfootprint event into the vendor's wire
121
+ * format and ship it to the destination (Datadog API, OTel exporter,
122
+ * pino stream, CloudWatch PutLogEvents, etc.).
123
+ *
124
+ * MUST be sync `void`. Buffer internally; drain in `flush()`.
125
+ */
126
+ exportEvent(event: AgentfootprintEvent): void;
127
+ }
128
+ /**
129
+ * What a cost strategy receives every time the cost recorder fires.
130
+ * Carries enough info for the strategy to decide whether to ship to
131
+ * billing, log a warning, trigger a circuit breaker, etc.
132
+ */
133
+ export interface CostTick {
134
+ readonly cumulativeInputTokens: number;
135
+ readonly cumulativeOutputTokens: number;
136
+ readonly cumulativeCostUsd: number;
137
+ readonly recentInputTokens: number;
138
+ readonly recentOutputTokens: number;
139
+ readonly recentCostUsd: number;
140
+ readonly model: string;
141
+ readonly iteration?: number;
142
+ readonly runtimeStageId?: string;
143
+ }
144
+ export interface CostCapabilities {
145
+ /** Strategy supports per-tick streaming. `false` for batch-only sinks. */
146
+ readonly streaming?: boolean;
147
+ /** Strategy supports budget enforcement (will throw / break the loop
148
+ * when budget exceeded). Most strategies are observe-only. */
149
+ readonly enforcement?: boolean;
150
+ }
151
+ export interface CostStrategy extends BaseStrategy {
152
+ readonly capabilities: CostCapabilities;
153
+ /**
154
+ * Translate the cost tick into the vendor's wire format and ship it
155
+ * (Stripe billing API, accounting webhook, internal metrics sink).
156
+ *
157
+ * MUST be sync `void`. Buffer internally; drain in `flush()`.
158
+ */
159
+ recordCost(tick: CostTick): void;
160
+ }
161
+ /**
162
+ * What a status strategy receives every time `selectThinkingState`
163
+ * returns a new state. The renderer has already resolved templates to
164
+ * a final string; strategies decide where to send it.
165
+ */
166
+ export interface StatusUpdate {
167
+ /** Rendered status line (already template-resolved). */
168
+ readonly line: string;
169
+ /** Underlying state for strategies that want to format their own
170
+ * view (e.g., emit different colors per state in a TUI). */
171
+ readonly state: ThinkingState;
172
+ }
173
+ export interface LiveStatusCapabilities {
174
+ /** Strategy supports streaming partial tokens (vs only state
175
+ * transitions). */
176
+ readonly streaming?: boolean;
177
+ }
178
+ export interface LiveStatusStrategy extends BaseStrategy {
179
+ readonly capabilities: LiveStatusCapabilities;
180
+ /**
181
+ * Render the rendered status line to the strategy's destination
182
+ * (chat bubble callback, stdout, webhook).
183
+ *
184
+ * MUST be sync `void`.
185
+ */
186
+ renderStatus(update: StatusUpdate): void;
187
+ }
188
+ /**
189
+ * What a Lens strategy receives — the live StepGraph each time the
190
+ * boundary recorder fires an event that changes the visible structure.
191
+ * Strategies decide how to render: DOM (browser), TUI (CLI), JSON
192
+ * (capture for replay).
193
+ */
194
+ export interface LensUpdate {
195
+ readonly graph: StepGraph;
196
+ /** Whether this is the FINAL update (run finished). Strategies that
197
+ * buffer for animation can flush here. */
198
+ readonly final: boolean;
199
+ }
200
+ export interface LensCapabilities {
201
+ /** Strategy renders to a UI (browser DOM, TUI). */
202
+ readonly interactive?: boolean;
203
+ /** Strategy serializes for replay / export. */
204
+ readonly serializable?: boolean;
205
+ }
206
+ export interface LensStrategy extends BaseStrategy {
207
+ readonly capabilities: LensCapabilities;
208
+ /**
209
+ * Render the live StepGraph to the strategy's destination (DOM,
210
+ * TUI, JSON serializer).
211
+ *
212
+ * MUST be sync `void`.
213
+ */
214
+ renderGraph(update: LensUpdate): void;
215
+ }
216
+ /**
217
+ * Discriminated union for the `compose([...])` combinator and the
218
+ * registry. Lets the registry hold one Map<name, AnyStrategy> while
219
+ * preserving type narrowing per-group via the `kind` discriminator.
220
+ */
221
+ export type AnyStrategy = ({
222
+ readonly kind: 'observability';
223
+ } & ObservabilityStrategy) | ({
224
+ readonly kind: 'cost';
225
+ } & CostStrategy) | ({
226
+ readonly kind: 'liveStatus';
227
+ } & LiveStatusStrategy) | ({
228
+ readonly kind: 'lens';
229
+ } & LensStrategy);
230
+ export type StrategyKind = AnyStrategy['kind'];
231
+ /**
232
+ * Cost-of-on knob (per Datadog panel review). Each tier is a soft
233
+ * suggestion — strategies decide what to do per tier (e.g., a
234
+ * `pino` strategy might gzip on `firehose`, an OTel strategy might
235
+ * raise its `BatchSpanProcessor` interval).
236
+ */
237
+ export type ObservabilityTier = 'minimal' | 'standard' | 'firehose';
238
+ /**
239
+ * Detach mode — controls whether the strategy's hot-path call
240
+ * (e.g. `exportEvent`) runs sync inside the agent loop or is deferred
241
+ * onto a `footprintjs/detach` driver so the loop never blocks.
242
+ *
243
+ * Three semantics:
244
+ *
245
+ * - `'forget'` — `detachAndForget`. Discard the handle. Pure
246
+ * fire-and-forget telemetry. Errors land on the
247
+ * (discarded) handle and go silent unless the
248
+ * strategy's own `_onError` surfaces them. Use for
249
+ * high-volume exports where dropping a single event
250
+ * is acceptable.
251
+ *
252
+ * - `'join-later'` — `detachAndJoinLater`. The driver returns a
253
+ * `DetachHandle`; we deliver it to your
254
+ * `onHandle` callback so you can `await` later
255
+ * (graceful shutdown, tests, backpressure).
256
+ *
257
+ * - omitted (default sync) — strategy hot-path runs inline, same as
258
+ * every release before v2.8.
259
+ *
260
+ * For graceful shutdown — call `flushAllDetached()` (from
261
+ * `'footprintjs/detach'`) in your SIGTERM handler. Drains every
262
+ * in-flight detached handle process-wide.
263
+ */
264
+ export interface DetachOptions {
265
+ /** The driver to schedule on. Required — there is no library
266
+ * default. Pick by environment: `microtaskBatchDriver` (cross-
267
+ * runtime, default for in-process), `setImmediateDriver` (Node),
268
+ * `setTimeoutDriver` (cross-runtime, configurable delay),
269
+ * `sendBeaconDriver` (browser, survives page-unload), etc. */
270
+ readonly driver: import('footprintjs/detach').DetachDriver;
271
+ /** `'forget'` discards the handle (pure telemetry). `'join-later'`
272
+ * delivers the handle to `onHandle` for later awaiting. Default
273
+ * `'forget'`. */
274
+ readonly mode?: 'forget' | 'join-later';
275
+ /** Required when `mode === 'join-later'`. Receives every minted
276
+ * handle. Push to a closure-local array if you want
277
+ * `Promise.all(handles.map(h => h.wait()))` later, or keep a
278
+ * rolling window for backpressure. */
279
+ readonly onHandle?: (handle: import('footprintjs/detach').DetachHandle) => void;
280
+ }
281
+ /**
282
+ * Common options every group accepts. Per-group enablers extend with
283
+ * their own keys (e.g., `templates` for liveStatus, `budget` for cost).
284
+ */
285
+ export interface CommonStrategyOptions {
286
+ /**
287
+ * Strategy implementation. Defaults differ per group:
288
+ * - observability → `console()`
289
+ * - cost → `inMemorySink()`
290
+ * - liveStatus → consumer-provided callback
291
+ * - lens → `browser()` (when in DOM) / `noop()` (else)
292
+ */
293
+ readonly strategy?: BaseStrategy;
294
+ /** 0..1 — fraction of events to forward. 1.0 = all, 0 = none.
295
+ * Per-Datadog panel review: every observability enabler accepts
296
+ * this. */
297
+ readonly sampleRate?: number;
298
+ /** Opt-in detach. When set, the strategy's hot-path call (e.g.
299
+ * `exportEvent`) is scheduled on the given driver instead of
300
+ * running inline — agent loop never blocks on slow exporters.
301
+ * See `DetachOptions` for the three semantics. */
302
+ readonly detach?: DetachOptions;
303
+ }
304
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/strategies/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0DAA0D,CAAC;AAI9F;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;0CAEsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;oDAGgD;IAChD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B;;4CAEwC;IACxC,IAAI,CAAC,IAAI,IAAI,CAAC;IAEd;;;;;;;;OAQG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAEjE;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,IAAI,CAAC;IAElB;;;;;;;;OAQG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC5D;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC/C;AAID;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;mEAC+D;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CAClC;AAID;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;iEAC6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC;wBACoB;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1C;AAID;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B;+CAC2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CACvC;AAID;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAAG,qBAAqB,CAAC,GAC5D,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,GAC1C,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG,kBAAkB,CAAC,GACtD,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAI/C;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;mEAI+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,YAAY,CAAC;IAE3D;;sBAEkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAExC;;;2CAGuC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,YAAY,KAAK,IAAI,CAAC;CACjF;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC;;gBAEY;IACZ,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;uDAGmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;CACjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentfootprint",
3
- "version": "2.7.3",
3
+ "version": "2.8.0",
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",
@@ -162,13 +162,13 @@
162
162
  },
163
163
  "sideEffects": false,
164
164
  "peerDependencies": {
165
- "footprintjs": ">=4.14.0",
166
165
  "@anthropic-ai/sdk": "*",
167
- "openai": "*",
168
- "@aws-sdk/client-bedrock-runtime": "*",
169
166
  "@aws-sdk/client-bedrock-agent-runtime": "*",
167
+ "@aws-sdk/client-bedrock-runtime": "*",
170
168
  "@modelcontextprotocol/sdk": "*",
169
+ "footprintjs": ">=4.17.1",
171
170
  "ioredis": "*",
171
+ "openai": "*",
172
172
  "zod": "*"
173
173
  },
174
174
  "peerDependenciesMeta": {
@@ -201,7 +201,7 @@
201
201
  "@vitest/coverage-v8": "^4.1.5",
202
202
  "eslint": "^8.44.0",
203
203
  "eslint-config-prettier": "^6.15.0",
204
- "footprintjs": "^4.14.0",
204
+ "footprintjs": "^4.17.1",
205
205
  "prettier": "^2.8.1",
206
206
  "typedoc": "^0.28.19",
207
207
  "typedoc-plugin-markdown": "^4.11.0",