agentfootprint 2.7.2 → 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.
- package/dist/core/RunnerBase.js +6 -0
- package/dist/core/RunnerBase.js.map +1 -1
- package/dist/esm/core/RunnerBase.js +6 -0
- package/dist/esm/core/RunnerBase.js.map +1 -1
- package/dist/esm/strategies/attach.js +227 -0
- package/dist/esm/strategies/attach.js.map +1 -0
- package/dist/esm/strategies/compose.js +158 -0
- package/dist/esm/strategies/compose.js.map +1 -0
- package/dist/esm/strategies/defaults/chatBubbleLiveStatus.js +34 -0
- package/dist/esm/strategies/defaults/chatBubbleLiveStatus.js.map +1 -0
- package/dist/esm/strategies/defaults/consoleObservability.js +61 -0
- package/dist/esm/strategies/defaults/consoleObservability.js.map +1 -0
- package/dist/esm/strategies/defaults/inMemorySinkCost.js +48 -0
- package/dist/esm/strategies/defaults/inMemorySinkCost.js.map +1 -0
- package/dist/esm/strategies/defaults/index.js +31 -0
- package/dist/esm/strategies/defaults/index.js.map +1 -0
- package/dist/esm/strategies/defaults/noopLens.js +29 -0
- package/dist/esm/strategies/defaults/noopLens.js.map +1 -0
- package/dist/esm/strategies/index.js +23 -0
- package/dist/esm/strategies/index.js.map +1 -0
- package/dist/esm/strategies/registry.js +102 -0
- package/dist/esm/strategies/registry.js.map +1 -0
- package/dist/esm/strategies/types.js +36 -0
- package/dist/esm/strategies/types.js.map +1 -0
- package/dist/strategies/attach.js +256 -0
- package/dist/strategies/attach.js.map +1 -0
- package/dist/strategies/compose.js +165 -0
- package/dist/strategies/compose.js.map +1 -0
- package/dist/strategies/defaults/chatBubbleLiveStatus.js +38 -0
- package/dist/strategies/defaults/chatBubbleLiveStatus.js.map +1 -0
- package/dist/strategies/defaults/consoleObservability.js +65 -0
- package/dist/strategies/defaults/consoleObservability.js.map +1 -0
- package/dist/strategies/defaults/inMemorySinkCost.js +52 -0
- package/dist/strategies/defaults/inMemorySinkCost.js.map +1 -0
- package/dist/strategies/defaults/index.js +38 -0
- package/dist/strategies/defaults/index.js.map +1 -0
- package/dist/strategies/defaults/noopLens.js +33 -0
- package/dist/strategies/defaults/noopLens.js.map +1 -0
- package/dist/strategies/index.js +47 -0
- package/dist/strategies/index.js.map +1 -0
- package/dist/strategies/registry.js +118 -0
- package/dist/strategies/registry.js.map +1 -0
- package/dist/strategies/types.js +37 -0
- package/dist/strategies/types.js.map +1 -0
- package/dist/types/core/RunnerBase.d.ts.map +1 -1
- package/dist/types/core/runner.d.ts +29 -2
- package/dist/types/core/runner.d.ts.map +1 -1
- package/dist/types/strategies/attach.d.ts +48 -0
- package/dist/types/strategies/attach.d.ts.map +1 -0
- package/dist/types/strategies/compose.d.ts +49 -0
- package/dist/types/strategies/compose.d.ts.map +1 -0
- package/dist/types/strategies/defaults/chatBubbleLiveStatus.d.ts +37 -0
- package/dist/types/strategies/defaults/chatBubbleLiveStatus.d.ts.map +1 -0
- package/dist/types/strategies/defaults/consoleObservability.d.ts +43 -0
- package/dist/types/strategies/defaults/consoleObservability.d.ts.map +1 -0
- package/dist/types/strategies/defaults/inMemorySinkCost.d.ts +51 -0
- package/dist/types/strategies/defaults/inMemorySinkCost.d.ts.map +1 -0
- package/dist/types/strategies/defaults/index.d.ts +31 -0
- package/dist/types/strategies/defaults/index.d.ts.map +1 -0
- package/dist/types/strategies/defaults/noopLens.d.ts +29 -0
- package/dist/types/strategies/defaults/noopLens.d.ts.map +1 -0
- package/dist/types/strategies/index.d.ts +23 -0
- package/dist/types/strategies/index.d.ts.map +1 -0
- package/dist/types/strategies/registry.d.ts +71 -0
- package/dist/types/strategies/registry.d.ts.map +1 -0
- package/dist/types/strategies/types.d.ts +304 -0
- package/dist/types/strategies/types.d.ts.map +1 -0
- 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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentfootprint",
|
|
3
|
-
"version": "2.
|
|
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.
|
|
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",
|