agentfootprint 2.10.2 → 2.11.1
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/README.md +2 -1
- package/dist/core/Agent.js +10 -105
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/types.js +12 -0
- package/dist/core/agent/types.js.map +1 -0
- package/dist/core/agent/validators.js +131 -0
- package/dist/core/agent/validators.js.map +1 -0
- package/dist/esm/core/Agent.js +5 -100
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/types.js +11 -0
- package/dist/esm/core/agent/types.js.map +1 -0
- package/dist/esm/core/agent/validators.js +124 -0
- package/dist/esm/core/agent/validators.js.map +1 -0
- package/dist/esm/reliability/CircuitBreaker.js +156 -0
- package/dist/esm/reliability/CircuitBreaker.js.map +1 -0
- package/dist/esm/reliability/buildReliabilityGateChart.js +359 -0
- package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -0
- package/dist/esm/reliability/classifyError.js +56 -0
- package/dist/esm/reliability/classifyError.js.map +1 -0
- package/dist/esm/reliability/index.js +36 -0
- package/dist/esm/reliability/index.js.map +1 -0
- package/dist/esm/reliability/types.js +44 -0
- package/dist/esm/reliability/types.js.map +1 -0
- package/dist/reliability/CircuitBreaker.js +165 -0
- package/dist/reliability/CircuitBreaker.js.map +1 -0
- package/dist/reliability/buildReliabilityGateChart.js +363 -0
- package/dist/reliability/buildReliabilityGateChart.js.map +1 -0
- package/dist/reliability/classifyError.js +60 -0
- package/dist/reliability/classifyError.js.map +1 -0
- package/dist/reliability/index.js +42 -0
- package/dist/reliability/index.js.map +1 -0
- package/dist/reliability/types.js +48 -0
- package/dist/reliability/types.js.map +1 -0
- package/dist/types/core/Agent.d.ts +2 -67
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +154 -0
- package/dist/types/core/agent/types.d.ts.map +1 -0
- package/dist/types/core/agent/validators.d.ts +48 -0
- package/dist/types/core/agent/validators.d.ts.map +1 -0
- package/dist/types/reliability/CircuitBreaker.d.ts +76 -0
- package/dist/types/reliability/CircuitBreaker.d.ts.map +1 -0
- package/dist/types/reliability/buildReliabilityGateChart.d.ts +54 -0
- package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -0
- package/dist/types/reliability/classifyError.d.ts +29 -0
- package/dist/types/reliability/classifyError.d.ts.map +1 -0
- package/dist/types/reliability/index.d.ts +34 -0
- package/dist/types/reliability/index.d.ts.map +1 -0
- package/dist/types/reliability/types.d.ts +256 -0
- package/dist/types/reliability/types.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reliability — public types for the v2.11.1 rules-based reliability subsystem.
|
|
3
|
+
*
|
|
4
|
+
* Mental model: reliability is a SUBFLOW PATTERN expressed as `decide()`
|
|
5
|
+
* rules at PRE-call and POST-call boundaries around the LLM invocation.
|
|
6
|
+
* Each rule is `{when, then, kind, label?}`. The gate stage evaluates
|
|
7
|
+
* rules in order; the first match drives behaviour. Three channels carry
|
|
8
|
+
* the outcome:
|
|
9
|
+
*
|
|
10
|
+
* • SCOPE STATE — runtime data (`failKind`, `failPayload`) read by
|
|
11
|
+
* `Agent.run()` at the API boundary to construct `ReliabilityFailFastError`.
|
|
12
|
+
* • $emit — passive observability for external consumers
|
|
13
|
+
* (CloudWatch, X-Ray, OTel). NOT read by runtime logic.
|
|
14
|
+
* • $break(reason)— control flow + human-readable narrative reason.
|
|
15
|
+
*
|
|
16
|
+
* See `buildReliabilityGate.ts` for the gate stage that consumes these
|
|
17
|
+
* types and `Agent.create().reliability()` for the consumer-facing API.
|
|
18
|
+
*/
|
|
19
|
+
import type { LLMProvider, LLMRequest, LLMResponse } from '../adapters/types.js';
|
|
20
|
+
/**
|
|
21
|
+
* The set of verbs a `ReliabilityRule.then` can specify.
|
|
22
|
+
*
|
|
23
|
+
* • `continue` — pre-check only; no issues, proceed to the LLM call.
|
|
24
|
+
* • `ok` — post-decide only; call succeeded, exit the gate
|
|
25
|
+
* loop and let the agent's next stage run.
|
|
26
|
+
* • `retry` — post-decide only; bump attempt counter and re-run
|
|
27
|
+
* the same provider via the gate's `loopTo`.
|
|
28
|
+
* • `retry-other` — post-decide only; advance `providerIdx` to the
|
|
29
|
+
* next provider in the failover list, then loop.
|
|
30
|
+
* • `fallback` — post-decide only; invoke the configured
|
|
31
|
+
* `fallback(req, lastError)` to repair the response;
|
|
32
|
+
* exit on success.
|
|
33
|
+
* • `fail-fast` — both phases; write `failKind`/`failPayload` to
|
|
34
|
+
* scope, $emit observability event, $break(reason).
|
|
35
|
+
* `Agent.run()` translates the propagated break into
|
|
36
|
+
* a typed `ReliabilityFailFastError` at the API
|
|
37
|
+
* boundary.
|
|
38
|
+
*/
|
|
39
|
+
export type ReliabilityDecision = 'continue' | 'ok' | 'retry' | 'retry-other' | 'fallback' | 'fail-fast';
|
|
40
|
+
/**
|
|
41
|
+
* A single reliability rule. Evaluated by `decide()` from the gate
|
|
42
|
+
* stage; first-match-wins. Function-form `when` predicates are the
|
|
43
|
+
* common case; the filter-DSL form supported by `decide()` also works
|
|
44
|
+
* if your rule reads scope keys with simple comparisons.
|
|
45
|
+
*/
|
|
46
|
+
export interface ReliabilityRule {
|
|
47
|
+
/**
|
|
48
|
+
* Predicate over the gate's scope. Return `true` to fire this rule.
|
|
49
|
+
* Pure function — no side effects, no async. The gate evaluates
|
|
50
|
+
* predicates in sequence and stops on the first match.
|
|
51
|
+
*/
|
|
52
|
+
readonly when: (scope: ReliabilityScope) => boolean;
|
|
53
|
+
/** What to do when this rule matches. See `ReliabilityDecision`. */
|
|
54
|
+
readonly then: ReliabilityDecision;
|
|
55
|
+
/**
|
|
56
|
+
* Machine-readable label used to construct `ReliabilityFailFastError.kind`
|
|
57
|
+
* when `then === 'fail-fast'`. Also surfaces in narrative + emit payload.
|
|
58
|
+
* Must be a stable identifier — consumers branch on it programmatically.
|
|
59
|
+
* Example: `'cost-cap-exceeded'`, `'circuit-open-no-fallback'`,
|
|
60
|
+
* `'transient-5xx-retry'`.
|
|
61
|
+
*/
|
|
62
|
+
readonly kind: string;
|
|
63
|
+
/**
|
|
64
|
+
* Human-readable narrative reason. Falls back to `kind` if omitted.
|
|
65
|
+
* Surfaces in `$break(reason)` and the auto-narrative.
|
|
66
|
+
*/
|
|
67
|
+
readonly label?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* One entry in the optional provider failover list. The gate's
|
|
71
|
+
* `'retry-other'` decision advances through this array via `providerIdx`.
|
|
72
|
+
* If omitted, the gate operates against the agent's single configured
|
|
73
|
+
* provider with no failover.
|
|
74
|
+
*/
|
|
75
|
+
export interface ReliabilityProvider {
|
|
76
|
+
/** Display name — also the key used in `breakerStates` and
|
|
77
|
+
* `attemptsPerProvider` maps. Convention: lowercase vendor name. */
|
|
78
|
+
readonly name: string;
|
|
79
|
+
/** The actual provider instance to call. */
|
|
80
|
+
readonly provider: LLMProvider;
|
|
81
|
+
/** The model identifier passed to `provider.complete({ model, ... })`. */
|
|
82
|
+
readonly model: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Per-provider circuit breaker tuning. State is per-instance (per pod);
|
|
86
|
+
* see CHANGELOG note in v2.11.1 about distributed state limitations.
|
|
87
|
+
*/
|
|
88
|
+
export interface CircuitBreakerConfig {
|
|
89
|
+
/** Consecutive failures before the breaker OPENS. Default 5. */
|
|
90
|
+
readonly failureThreshold?: number;
|
|
91
|
+
/** How long the breaker stays OPEN before probing. Default 30_000 ms. */
|
|
92
|
+
readonly cooldownMs?: number;
|
|
93
|
+
/** Probe successes required in HALF-OPEN to fully CLOSE. Default 2. */
|
|
94
|
+
readonly halfOpenSuccessThreshold?: number;
|
|
95
|
+
/**
|
|
96
|
+
* Predicate — does this error count toward the failure threshold?
|
|
97
|
+
* Default: everything except AbortError counts. Override to ignore
|
|
98
|
+
* 4xx so a malformed request doesn't trip the breaker for everyone.
|
|
99
|
+
*/
|
|
100
|
+
readonly shouldCount?: (error: unknown) => boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Consumer-supplied fallback that runs when a `'fallback'` rule fires.
|
|
104
|
+
* Receives the original request and the most recent error; returns a
|
|
105
|
+
* synthesized response that the gate writes back to scope. Throwing
|
|
106
|
+
* from the fallback re-enters the gate's post-decide rule set with
|
|
107
|
+
* the new error captured — typically the next rule routes to
|
|
108
|
+
* `'fail-fast'` (or a canned response if you've layered that pattern).
|
|
109
|
+
*/
|
|
110
|
+
export type ReliabilityFallbackFn = (request: LLMRequest, lastError: Error | undefined) => Promise<LLMResponse>;
|
|
111
|
+
/**
|
|
112
|
+
* The full reliability configuration passed to
|
|
113
|
+
* `Agent.create({...}).reliability(config)`. All fields optional — the
|
|
114
|
+
* gate stage is mounted only if at least one of `preCheck`/`postDecide`
|
|
115
|
+
* has rules OR `circuitBreaker` is configured. Otherwise the agent
|
|
116
|
+
* chart collapses to a plain `CallLLM` stage with no reliability
|
|
117
|
+
* overhead.
|
|
118
|
+
*/
|
|
119
|
+
export interface ReliabilityConfig {
|
|
120
|
+
/** Rules evaluated BEFORE the LLM call. Common uses: cost-cap pre-check,
|
|
121
|
+
* cumulative-budget gate, prompt-size guard. The gate routes on
|
|
122
|
+
* `'continue'` (proceed to call) or `'fail-fast'` (skip call, $break). */
|
|
123
|
+
readonly preCheck?: readonly ReliabilityRule[];
|
|
124
|
+
/** Rules evaluated AFTER the LLM call returns or throws. The gate
|
|
125
|
+
* routes on `'ok'` (success exit), `'retry'` (loop), `'retry-other'`
|
|
126
|
+
* (advance provider, loop), `'fallback'` (invoke fallback fn, exit),
|
|
127
|
+
* or `'fail-fast'` ($break with reason). */
|
|
128
|
+
readonly postDecide?: readonly ReliabilityRule[];
|
|
129
|
+
/** Optional ordered failover list. The first entry is the primary;
|
|
130
|
+
* `'retry-other'` decisions walk through this array. If omitted,
|
|
131
|
+
* reliability runs with no failover. */
|
|
132
|
+
readonly providers?: readonly ReliabilityProvider[];
|
|
133
|
+
/** Per-provider circuit-breaker config. Applied to every provider in
|
|
134
|
+
* `providers[]` (or to the agent's single provider if no failover
|
|
135
|
+
* list). Omit to disable circuit-breaking entirely. */
|
|
136
|
+
readonly circuitBreaker?: CircuitBreakerConfig;
|
|
137
|
+
/** Optional fallback function invoked on `'fallback'` decisions.
|
|
138
|
+
* Typical use: reformat a malformed schema response, repair JSON,
|
|
139
|
+
* or synthesize a safe default. Throwing re-enters the rule set. */
|
|
140
|
+
readonly fallback?: ReliabilityFallbackFn;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The scope that reliability rules read. Populated by the gate stage
|
|
144
|
+
* each iteration. Consumer rules `(s: ReliabilityScope) => boolean`
|
|
145
|
+
* close over this shape; do NOT cast to `any` — the typed scope is the
|
|
146
|
+
* stable contract between gate state and rule predicates.
|
|
147
|
+
*
|
|
148
|
+
* Mutable scalars (attempt, providerIdx, error, errorKind, latencyMs,
|
|
149
|
+
* response) are OVERWRITTEN each iteration. Loop history is preserved
|
|
150
|
+
* by footprintjs's commitLog (one CommitBundle per stage execution),
|
|
151
|
+
* so time-travel scrubbing shows each attempt's snapshot independently.
|
|
152
|
+
*/
|
|
153
|
+
export interface ReliabilityScope {
|
|
154
|
+
/** The LLM request being processed by this gate execution. */
|
|
155
|
+
readonly request: LLMRequest;
|
|
156
|
+
/** Number of providers in the failover list — derived from the
|
|
157
|
+
* closure-held config; mirrored into scope so rules can compare
|
|
158
|
+
* against `providerIdx`. (Provider OBJECTS live in the gate chart's
|
|
159
|
+
* closure, not in scope, because functions can't structuredClone
|
|
160
|
+
* across subflow boundaries.) */
|
|
161
|
+
readonly providersCount: number;
|
|
162
|
+
/** True if a `fallback` function is configured. Lets rules check
|
|
163
|
+
* `s.hasFallback` to decide between `fallback` and `fail-fast`. */
|
|
164
|
+
readonly hasFallback: boolean;
|
|
165
|
+
/** 1-indexed attempt counter. Incremented after each LLM call,
|
|
166
|
+
* whether it succeeded or threw. Rules typically check
|
|
167
|
+
* `s.attempt < maxAttempts` before routing to `'retry'`. */
|
|
168
|
+
attempt: number;
|
|
169
|
+
/** Index into the gate's providers list (held in closure) for the
|
|
170
|
+
* currently-selected provider. */
|
|
171
|
+
providerIdx: number;
|
|
172
|
+
/** Convenience: `providers[providerIdx].name`. Updated alongside
|
|
173
|
+
* `providerIdx` on `'retry-other'`. */
|
|
174
|
+
currentProvider: string;
|
|
175
|
+
/** True if `providerIdx < providersCount - 1`. Lets rules check
|
|
176
|
+
* `s.canSwitchProvider` before routing to `'retry-other'`. */
|
|
177
|
+
canSwitchProvider: boolean;
|
|
178
|
+
/** The LLM response from the most recent successful call.
|
|
179
|
+
* `undefined` after a throw or before the first call completes. */
|
|
180
|
+
response?: LLMResponse;
|
|
181
|
+
/** The error from the most recent failed call. `undefined` after
|
|
182
|
+
* a successful call. */
|
|
183
|
+
error?: Error;
|
|
184
|
+
/** Coarse classification of `error` for rule matching. See
|
|
185
|
+
* `classifyError.ts` for the taxonomy. `'ok'` after success. */
|
|
186
|
+
errorKind: 'ok' | '5xx-transient' | 'rate-limit' | 'circuit-open' | 'schema-fail' | 'unknown';
|
|
187
|
+
/** Wall-clock latency of the most recent call attempt, in ms. */
|
|
188
|
+
latencyMs: number;
|
|
189
|
+
/** Per-provider attempt counts within this gate execution.
|
|
190
|
+
* Rules use this for "max-attempts-per-provider" semantics. */
|
|
191
|
+
attemptsPerProvider: Record<string, number>;
|
|
192
|
+
/** Per-provider breaker state. Full state record (counters,
|
|
193
|
+
* openedAt, lastErrorMessage) — NOT just the state enum — so the
|
|
194
|
+
* state machine round-trips across gate invocations via
|
|
195
|
+
* inputMapper/outputMapper. Rules typically check
|
|
196
|
+
* `s.breakerStates[provider]?.state === 'open'`. */
|
|
197
|
+
breakerStates: Record<string, import('./CircuitBreaker.js').BreakerState>;
|
|
198
|
+
/** Cumulative cost across the whole agent run, set by the agent
|
|
199
|
+
* via `inputMapper`. `undefined` if cost tracking is off.
|
|
200
|
+
* Kept here for `preCheck` rules like
|
|
201
|
+
* `s.cumulativeCostUsd >= s.costCapUsd → fail-fast`. */
|
|
202
|
+
cumulativeCostUsd?: number;
|
|
203
|
+
/** Cumulative input/output tokens, mirrored from agent state. */
|
|
204
|
+
cumulativeInputTokens?: number;
|
|
205
|
+
cumulativeOutputTokens?: number;
|
|
206
|
+
/** The matched rule's `kind` when a `'fail-fast'` rule fired.
|
|
207
|
+
* `Agent.run()` reads this to construct `ReliabilityFailFastError.kind`. */
|
|
208
|
+
failKind?: string;
|
|
209
|
+
/** Structured payload describing the fail-fast event. Shape:
|
|
210
|
+
* `{ phase, attempt, providerUsed, errorKind, errorMessage }`. */
|
|
211
|
+
failPayload?: {
|
|
212
|
+
readonly phase: 'pre-check' | 'post-decide';
|
|
213
|
+
readonly attempt: number;
|
|
214
|
+
readonly providerUsed: string;
|
|
215
|
+
readonly errorKind: ReliabilityScope['errorKind'];
|
|
216
|
+
readonly errorMessage?: string;
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Thrown by `Agent.run()` when a reliability rule routes to `'fail-fast'`
|
|
221
|
+
* and the gate $breaks with a reason. Carries:
|
|
222
|
+
*
|
|
223
|
+
* • `kind` — machine-readable identifier from the matched rule's
|
|
224
|
+
* `kind` field. Stable across versions; consumers
|
|
225
|
+
* branch on this.
|
|
226
|
+
* • `reason` — human-readable narrative string from `$break(reason)`.
|
|
227
|
+
* Format: `'reliability-{phase}: {label}'` (e.g.,
|
|
228
|
+
* `'reliability-post-decide: cost-cap-exceeded'`).
|
|
229
|
+
* • `cause` — the originating error from the LLM call, when one
|
|
230
|
+
* drove the fail-fast decision (e.g., the underlying
|
|
231
|
+
* HTTP error that tripped a circuit breaker).
|
|
232
|
+
* • `snapshot` — the full `executor.getSnapshot()` at fail-fast time
|
|
233
|
+
* for forensics. Consumers persist this for postmortem
|
|
234
|
+
* analysis (commitLog, narrative, scope state, etc.).
|
|
235
|
+
*
|
|
236
|
+
* Three-channel discipline: `kind`/`payload` came from scope state,
|
|
237
|
+
* `reason` came from $break, `snapshot` is the engine's own audit trail.
|
|
238
|
+
* Emit events flowed independently to any attached observability adapter
|
|
239
|
+
* (this error is the RUNTIME signal; emit is the OBSERVABILITY signal).
|
|
240
|
+
*/
|
|
241
|
+
export declare class ReliabilityFailFastError extends Error {
|
|
242
|
+
readonly code: "ERR_RELIABILITY_FAIL_FAST";
|
|
243
|
+
readonly kind: string;
|
|
244
|
+
readonly reason: string;
|
|
245
|
+
readonly cause?: Error;
|
|
246
|
+
readonly snapshot?: unknown;
|
|
247
|
+
readonly payload?: ReliabilityScope['failPayload'];
|
|
248
|
+
constructor(opts: {
|
|
249
|
+
kind: string;
|
|
250
|
+
reason: string;
|
|
251
|
+
cause?: Error;
|
|
252
|
+
snapshot?: unknown;
|
|
253
|
+
payload?: ReliabilityScope['failPayload'];
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reliability/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED