agentfootprint 11.2.0 → 11.3.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/AGENTS.md +1 -1
- package/CAPABILITIES.md +2 -0
- package/ai-instructions/claude-code/SKILL.md +1 -1
- package/dist/adapters/identity/verify/claims.js +3 -3
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js +3 -2
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js +6 -5
- package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/transport.js +8 -6
- package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/core/agent/buildToolRegistry.js +1 -1
- package/dist/core/agent/buildToolRegistry.js.map +1 -1
- package/dist/core/agent/evidence/evidenceIndex.js +30 -2
- package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
- package/dist/core/agent/evidence/extract.js +34 -5
- package/dist/core/agent/evidence/extract.js.map +1 -1
- package/dist/core/agent/evidence/figures.js +31 -3
- package/dist/core/agent/evidence/figures.js.map +1 -1
- package/dist/core/agent/evidence/numberPrecision.js +58 -2
- package/dist/core/agent/evidence/numberPrecision.js.map +1 -1
- package/dist/core/agent/stages/route.js +2 -1
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +14 -1
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +1 -1
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/adapters/identity/jwks.d.ts +2 -2
- package/dist/esm/adapters/identity/verify/claims.d.ts +3 -3
- package/dist/esm/adapters/identity/verify/claims.js +3 -3
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +3 -2
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +3 -2
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +6 -5
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js +6 -5
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +3 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +9 -7
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/esm/core/agent/buildToolRegistry.js +1 -1
- package/dist/esm/core/agent/buildToolRegistry.js.map +1 -1
- package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +12 -2
- package/dist/esm/core/agent/evidence/evidenceIndex.js +30 -2
- package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
- package/dist/esm/core/agent/evidence/extract.js +35 -6
- package/dist/esm/core/agent/evidence/extract.js.map +1 -1
- package/dist/esm/core/agent/evidence/figures.d.ts +6 -0
- package/dist/esm/core/agent/evidence/figures.js +32 -4
- package/dist/esm/core/agent/evidence/figures.js.map +1 -1
- package/dist/esm/core/agent/evidence/numberPrecision.d.ts +28 -1
- package/dist/esm/core/agent/evidence/numberPrecision.js +56 -1
- package/dist/esm/core/agent/evidence/numberPrecision.js.map +1 -1
- package/dist/esm/core/agent/stages/route.js +2 -1
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.js +14 -1
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.js +1 -1
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +185 -0
- package/dist/esm/events/registry.d.ts +3 -1
- package/dist/esm/events/registry.js +2 -0
- package/dist/esm/events/registry.js.map +1 -1
- package/dist/esm/hosting/doorGuard.d.ts +3 -3
- package/dist/esm/hosting/doorGuard.js +2 -2
- package/dist/esm/hosting/nodeHost.d.ts +1 -1
- package/dist/esm/mcp/callLifetime.d.ts +49 -0
- package/dist/esm/mcp/callLifetime.js +99 -0
- package/dist/esm/mcp/callLifetime.js.map +1 -0
- package/dist/esm/mcp/mcpClient.d.ts +4 -1
- package/dist/esm/mcp/mcpClient.js +70 -28
- package/dist/esm/mcp/mcpClient.js.map +1 -1
- package/dist/esm/mcp/requestLedger.d.ts +97 -0
- package/dist/esm/mcp/requestLedger.js +192 -0
- package/dist/esm/mcp/requestLedger.js.map +1 -0
- package/dist/esm/mcp/seriesEvidence.d.ts +102 -0
- package/dist/esm/mcp/seriesEvidence.js +246 -0
- package/dist/esm/mcp/seriesEvidence.js.map +1 -0
- package/dist/esm/mcp/throttleRetry.d.ts +70 -35
- package/dist/esm/mcp/throttleRetry.js +181 -54
- package/dist/esm/mcp/throttleRetry.js.map +1 -1
- package/dist/esm/mcp/types.d.ts +12 -7
- package/dist/esm/redaction/knownStrings.js +29 -0
- package/dist/esm/redaction/knownStrings.js.map +1 -1
- package/dist/esm/security/PermissionPolicy.d.ts +1 -1
- package/dist/esm/security/PermissionPolicy.js +1 -1
- package/dist/esm/strategies/defaults/chatBubbleLiveStatus.d.ts +1 -1
- package/dist/esm/strategies/defaults/chatBubbleLiveStatus.js +1 -1
- package/dist/esm/tool-lint/analyze.d.ts +1 -1
- package/dist/esm/tool-lint/analyze.js +1 -1
- package/dist/esm/tool-lint/rules.d.ts +3 -3
- package/dist/esm/tool-lint/rules.js +3 -3
- package/dist/esm/tools/requestEvidence.d.ts +78 -0
- package/dist/esm/tools/requestEvidence.js +331 -0
- package/dist/esm/tools/requestEvidence.js.map +1 -0
- package/dist/events/registry.js +2 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/hosting/doorGuard.js +2 -2
- package/dist/mcp/callLifetime.js +103 -0
- package/dist/mcp/callLifetime.js.map +1 -0
- package/dist/mcp/mcpClient.js +69 -27
- package/dist/mcp/mcpClient.js.map +1 -1
- package/dist/mcp/requestLedger.js +196 -0
- package/dist/mcp/requestLedger.js.map +1 -0
- package/dist/mcp/seriesEvidence.js +251 -0
- package/dist/mcp/seriesEvidence.js.map +1 -0
- package/dist/mcp/throttleRetry.js +184 -55
- package/dist/mcp/throttleRetry.js.map +1 -1
- package/dist/redaction/knownStrings.js +29 -0
- package/dist/redaction/knownStrings.js.map +1 -1
- package/dist/security/PermissionPolicy.js +1 -1
- package/dist/strategies/defaults/chatBubbleLiveStatus.js +1 -1
- package/dist/tool-lint/analyze.js +1 -1
- package/dist/tool-lint/rules.js +3 -3
- package/dist/tools/requestEvidence.js +337 -0
- package/dist/tools/requestEvidence.js.map +1 -0
- package/dist/types/adapters/identity/jwks.d.ts +2 -2
- package/dist/types/adapters/identity/verify/claims.d.ts +3 -3
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +3 -2
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +6 -5
- package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +3 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/evidenceIndex.d.ts +12 -2
- package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/extract.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/figures.d.ts +6 -0
- package/dist/types/core/agent/evidence/figures.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/numberPrecision.d.ts +28 -1
- package/dist/types/core/agent/evidence/numberPrecision.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +185 -0
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/events/registry.d.ts +3 -1
- package/dist/types/events/registry.d.ts.map +1 -1
- package/dist/types/hosting/doorGuard.d.ts +3 -3
- package/dist/types/hosting/nodeHost.d.ts +1 -1
- package/dist/types/mcp/callLifetime.d.ts +50 -0
- package/dist/types/mcp/callLifetime.d.ts.map +1 -0
- package/dist/types/mcp/mcpClient.d.ts +4 -1
- package/dist/types/mcp/mcpClient.d.ts.map +1 -1
- package/dist/types/mcp/requestLedger.d.ts +98 -0
- package/dist/types/mcp/requestLedger.d.ts.map +1 -0
- package/dist/types/mcp/seriesEvidence.d.ts +103 -0
- package/dist/types/mcp/seriesEvidence.d.ts.map +1 -0
- package/dist/types/mcp/throttleRetry.d.ts +70 -35
- package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
- package/dist/types/mcp/types.d.ts +12 -7
- package/dist/types/mcp/types.d.ts.map +1 -1
- package/dist/types/redaction/knownStrings.d.ts.map +1 -1
- package/dist/types/security/PermissionPolicy.d.ts +1 -1
- package/dist/types/strategies/defaults/chatBubbleLiveStatus.d.ts +1 -1
- package/dist/types/tool-lint/analyze.d.ts +1 -1
- package/dist/types/tool-lint/rules.d.ts +3 -3
- package/dist/types/tools/requestEvidence.d.ts +79 -0
- package/dist/types/tools/requestEvidence.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* throttleRetry — when an MCP server refuses a request
|
|
3
|
-
* and ask again.
|
|
2
|
+
* throttleRetry — when an MCP server refuses a request with a response the
|
|
3
|
+
* retry policy recognises (HTTP 429), wait and ask again.
|
|
4
4
|
*
|
|
5
5
|
* ── Why this exists ──────────────────────────────────────────────────────────
|
|
6
6
|
* Managed MCP gateways enforce per-principal rate limits. A throttled
|
|
@@ -10,20 +10,24 @@
|
|
|
10
10
|
* tool, or invents an answer. A designed, transient, self-clearing condition
|
|
11
11
|
* was being turned into a wrong answer.
|
|
12
12
|
*
|
|
13
|
-
* ──
|
|
14
|
-
* **
|
|
15
|
-
* at the edge
|
|
16
|
-
*
|
|
13
|
+
* ── What retrying a 429 assumes, and why the policy is 429-ONLY ─────────────
|
|
14
|
+
* **Automatic 429 retries assume the server rejected the request before
|
|
15
|
+
* executing it.** A rate limiter that refuses at the edge has not run the tool —
|
|
16
|
+
* but HTTP 429 says only that the request was rate-limited (RFC 6585 §4), so the
|
|
17
|
+
* saved response records the assumption's basis (the server's 429), not proof
|
|
18
|
+
* that nothing ran. There is no side-effect guard here: a tool with side
|
|
19
|
+
* effects is retried on 429 like any other today, and `retryOnThrottle: false`
|
|
20
|
+
* turns that off per server. What is certain is the contrast with a 500 or a
|
|
17
21
|
* timeout, where the call may have half-run and a retry could charge a card
|
|
18
22
|
* twice.
|
|
19
23
|
*
|
|
20
|
-
* That
|
|
21
|
-
* widen. Only HTTP 429 retries here. Not 5xx, not network errors, not timeouts
|
|
24
|
+
* That assumption is the whole license for this module, so the policy must
|
|
25
|
+
* never widen. Only HTTP 429 retries here. Not 5xx, not network errors, not timeouts
|
|
22
26
|
* — those belong to a caller who knows whether the specific tool is idempotent,
|
|
23
27
|
* and this seam does not. A property test pins the boundary.
|
|
24
28
|
*
|
|
25
29
|
* The loop takes its question as a {@link RetryDecision}, so the one other
|
|
26
|
-
* refusal a service
|
|
30
|
+
* refusal a service documents as one to retry — AgentCore Runtime's "session
|
|
27
31
|
* operation in progress" — reuses this loop rather than growing a second one.
|
|
28
32
|
* That decision is applied only by that vendor's own transport; what
|
|
29
33
|
* `mcpClient` and `retryingFetch` retry is still a 429 and nothing else.
|
|
@@ -46,10 +50,13 @@
|
|
|
46
50
|
*
|
|
47
51
|
* ── The loop is footprintjs's attempt runner, one series per call ────────────
|
|
48
52
|
* Each call runs ONE `attempt()` series (footprintjs, used as it ships). Its
|
|
49
|
-
* runner makes an attempt record per try
|
|
50
|
-
*
|
|
51
|
-
* the
|
|
52
|
-
*
|
|
53
|
+
* runner makes an attempt record per try. `onRetry`, before each wait, is what
|
|
54
|
+
* reaches a caller; the RUN gets the records: for a call the agent dispatched,
|
|
55
|
+
* the series files every attempt and how the request ended into that call's
|
|
56
|
+
* run (`seriesEvidence.ts`, through the connection's `requestLedger.ts`). An
|
|
57
|
+
* attempt sends the request once, and an attempt that got a RESPONSE is not an
|
|
58
|
+
* operation that succeeded: a 503 is delivered as the answer it was, never
|
|
59
|
+
* retried — and written down as `answered` with its status, never success.
|
|
53
60
|
* A response a rule's decision recognises is thrown as a refusal that names
|
|
54
61
|
* its kind, and the policy's `retryOn` accepts those refusals and nothing
|
|
55
62
|
* else — so a 5xx, a dropped connection or a timeout ends the series on the
|
|
@@ -86,6 +93,7 @@
|
|
|
86
93
|
import { attempt, } from 'footprintjs';
|
|
87
94
|
import { abortErrorOf, eitherSignal, linkedController } from '../lib/abort.js';
|
|
88
95
|
import { exponentialBackoff, statedWaitFirst } from './backoff.js';
|
|
96
|
+
import { SeriesEvidence, } from './seriesEvidence.js';
|
|
89
97
|
/** HTTP 429, with the server's own `Retry-After` when it sent one. */
|
|
90
98
|
export function throttled(response) {
|
|
91
99
|
if (response.status !== 429)
|
|
@@ -177,37 +185,54 @@ export function retryingFetch(inner, config) {
|
|
|
177
185
|
const rule = retryRule('throttle', throttled, config, THROTTLE_RETRY_DEFAULTS, 'retryOnThrottle');
|
|
178
186
|
if (rule === undefined)
|
|
179
187
|
return inner;
|
|
180
|
-
const
|
|
181
|
-
return
|
|
188
|
+
const rebuild = inner === undefined ? undefined : JOINS.get(inner);
|
|
189
|
+
return rebuild !== undefined
|
|
190
|
+
? rebuild({ rule })
|
|
191
|
+
: retryingFetchFor(inner ?? platformFetch, { rules: [rule] });
|
|
192
|
+
}
|
|
193
|
+
/** @internal `spec` with `join` in it. */
|
|
194
|
+
export function joinedSpec(spec, join) {
|
|
195
|
+
return 'rule' in join
|
|
196
|
+
? { ...spec, rules: [...spec.rules, join.rule] }
|
|
197
|
+
: { ...spec, ledger: join.ledger };
|
|
182
198
|
}
|
|
183
199
|
/**
|
|
184
200
|
* Fetches that run their retries in one series, each with the way to rebuild
|
|
185
|
-
* it with one more rule. Module-private: only `joinableRetry` adds
|
|
186
|
-
* caller cannot make a fetch claim a series it does not run.
|
|
201
|
+
* it with one more rule or a ledger. Module-private: only `joinableRetry` adds
|
|
202
|
+
* to it, so a caller cannot make a fetch claim a series it does not run.
|
|
187
203
|
*/
|
|
188
204
|
const JOINS = new WeakMap();
|
|
189
205
|
/**
|
|
190
206
|
* @internal Declare that `fetch` runs its retries in ONE series, and how to
|
|
191
|
-
* rebuild it with one more rule in that same series.
|
|
192
|
-
* a fetch instead of wrapping it. A transport whose
|
|
193
|
-
* series (a session applied around it, its answers
|
|
194
|
-
* this so the rule lands INSIDE that wrapping.
|
|
207
|
+
* rebuild it with one more rule — or with a ledger — in that same series.
|
|
208
|
+
* `retryingFetch` joins such a fetch instead of wrapping it. A transport whose
|
|
209
|
+
* public fetch wraps its series (a session applied around it, its answers
|
|
210
|
+
* rewritten after it) uses this so the rule lands INSIDE that wrapping.
|
|
195
211
|
*/
|
|
196
|
-
export function joinableRetry(fetch,
|
|
197
|
-
JOINS.set(fetch,
|
|
212
|
+
export function joinableRetry(fetch, rebuild) {
|
|
213
|
+
JOINS.set(fetch, rebuild);
|
|
198
214
|
return fetch;
|
|
199
215
|
}
|
|
200
216
|
/**
|
|
201
|
-
* @internal
|
|
217
|
+
* @internal `fetch` rebuilt so its series files each request's attempts through
|
|
218
|
+
* `ledger` — or `undefined` when `fetch` runs no series (retry off), so there
|
|
219
|
+
* is nothing to file and the caller keeps `fetch` as it is.
|
|
220
|
+
*/
|
|
221
|
+
export function ledgeredFetch(fetch, ledger) {
|
|
222
|
+
return JOINS.get(fetch)?.({ ledger });
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* @internal The one series per call over `inner`, asking `spec.rules` in order —
|
|
202
226
|
* `inner` itself when there are none. The first rule holds the call's budget;
|
|
203
227
|
* see the module note. The result is joinable.
|
|
204
228
|
*/
|
|
205
|
-
export function retryingFetchFor(inner,
|
|
229
|
+
export function retryingFetchFor(inner, spec) {
|
|
230
|
+
const { rules, ledger } = spec;
|
|
206
231
|
const [owner] = rules;
|
|
207
232
|
if (owner === undefined)
|
|
208
233
|
return inner;
|
|
209
234
|
const bound = rules.map((rule) => boundRule(rule, owner));
|
|
210
|
-
return joinableRetry((input, init) => new Series(bound, input, init).run(inner), (
|
|
235
|
+
return joinableRetry((input, init) => new Series(bound, input, init, ledger).run(inner), (join) => retryingFetchFor(inner, joinedSpec(spec, join)));
|
|
211
236
|
}
|
|
212
237
|
/** The platform's fetch, looked up at call time so a later polyfill still wins. */
|
|
213
238
|
const platformFetch = (input, init) => globalThis.fetch(input, init);
|
|
@@ -237,7 +262,8 @@ function retryAfterOf(error) {
|
|
|
237
262
|
const SERIES_TARGET = 'mcp-request';
|
|
238
263
|
/**
|
|
239
264
|
* One call: one `attempt()` series, and what its policy's functions share while
|
|
240
|
-
* it runs — the waiting so far,
|
|
265
|
+
* it runs — the waiting so far, the latest refusal, and, for a call the agent
|
|
266
|
+
* dispatched, where its attempts are filed.
|
|
241
267
|
*/
|
|
242
268
|
class Series {
|
|
243
269
|
rules;
|
|
@@ -246,13 +272,31 @@ class Series {
|
|
|
246
272
|
owner;
|
|
247
273
|
startedAt = Date.now();
|
|
248
274
|
deadline;
|
|
275
|
+
/** The transport's own signal — what the request carried before this series existed. */
|
|
249
276
|
signal;
|
|
277
|
+
/**
|
|
278
|
+
* What ends the series as a CANCELLATION: the transport's signal; the MCP
|
|
279
|
+
* SDK cancelling this request (`notifications/cancelled`, seen by the ledger,
|
|
280
|
+
* whether or not the request was matched to a call); and, for a call the
|
|
281
|
+
* agent dispatched, the call's own — its signal, the client's, its settling.
|
|
282
|
+
*/
|
|
283
|
+
cancel;
|
|
284
|
+
/** Whether a request in flight is cut by more than the transport's own signal. */
|
|
285
|
+
cutsInFlight;
|
|
286
|
+
/** Where this request's attempts are filed — a call the agent dispatched. */
|
|
287
|
+
evidence;
|
|
250
288
|
replayable;
|
|
251
289
|
attemptNo = 0;
|
|
252
290
|
waitedMs = 0;
|
|
253
291
|
plannedWaitMs = 0;
|
|
254
292
|
latest;
|
|
255
|
-
|
|
293
|
+
/** The current attempt's response status, before the runner records it. */
|
|
294
|
+
seen;
|
|
295
|
+
/** Why `retryOn` last said no. */
|
|
296
|
+
declined;
|
|
297
|
+
/** The attempt sent and not yet recorded — what a cancellation cuts in flight. */
|
|
298
|
+
inFlight;
|
|
299
|
+
constructor(rules, input, init, ledger) {
|
|
256
300
|
this.rules = rules;
|
|
257
301
|
this.input = input;
|
|
258
302
|
this.init = init;
|
|
@@ -261,14 +305,50 @@ class Series {
|
|
|
261
305
|
this.replayable = isReplayable(input, init);
|
|
262
306
|
const { maxElapsedMs } = this.owner;
|
|
263
307
|
this.deadline = Number.isFinite(maxElapsedMs) ? this.startedAt + maxElapsedMs : undefined;
|
|
308
|
+
const claimed = ledger?.claim(init?.body);
|
|
309
|
+
const ticket = claimed?.ticket;
|
|
310
|
+
this.cancel = eitherSignal(this.signal, ticket?.signal, claimed?.cancelled);
|
|
311
|
+
this.cutsInFlight = this.deadline !== undefined || claimed !== undefined;
|
|
312
|
+
this.evidence =
|
|
313
|
+
ticket === undefined ? undefined : new SeriesEvidence(ticket.sink, whereOf(rules, input));
|
|
264
314
|
}
|
|
265
315
|
async run(inner) {
|
|
316
|
+
const unwatch = this.watchCancel();
|
|
266
317
|
try {
|
|
267
|
-
|
|
318
|
+
const response = await attempt((t) => this.send(inner, t), this.policy(), this.options());
|
|
319
|
+
this.evidence?.delivered();
|
|
320
|
+
return response;
|
|
268
321
|
}
|
|
269
322
|
catch (error) {
|
|
270
323
|
return this.settle(error);
|
|
271
324
|
}
|
|
325
|
+
finally {
|
|
326
|
+
unwatch();
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* File a cancellation the MOMENT it lands. A cancelled run stops waiting for
|
|
331
|
+
* its stage at once; a record filed when this series later unwinds would land
|
|
332
|
+
* after the run was saved. The runner records nothing for the attempt it
|
|
333
|
+
* abandons then, or for a wait it was cut out of, so this is also the only
|
|
334
|
+
* place those are written down.
|
|
335
|
+
*/
|
|
336
|
+
watchCancel() {
|
|
337
|
+
const { cancel } = this;
|
|
338
|
+
if (cancel === undefined || this.evidence === undefined || cancel.aborted) {
|
|
339
|
+
return () => undefined;
|
|
340
|
+
}
|
|
341
|
+
const onAbort = () => this.fileCancellation();
|
|
342
|
+
cancel.addEventListener('abort', onAbort, { once: true });
|
|
343
|
+
return () => cancel.removeEventListener('abort', onAbort);
|
|
344
|
+
}
|
|
345
|
+
/** A cancellation, written down: the attempt it cut in flight, or the wait. */
|
|
346
|
+
fileCancellation() {
|
|
347
|
+
const { evidence, inFlight } = this;
|
|
348
|
+
if (inFlight !== undefined)
|
|
349
|
+
evidence?.cutInFlight(inFlight);
|
|
350
|
+
else
|
|
351
|
+
evidence?.cancelled();
|
|
272
352
|
}
|
|
273
353
|
/**
|
|
274
354
|
* The owner's budget as footprintjs reads it; the rest is this series'
|
|
@@ -288,7 +368,7 @@ class Series {
|
|
|
288
368
|
options() {
|
|
289
369
|
return {
|
|
290
370
|
target: SERIES_TARGET,
|
|
291
|
-
...(this.
|
|
371
|
+
...(this.cancel !== undefined && { signal: this.cancel }),
|
|
292
372
|
...(this.deadline !== undefined && { deadline: this.deadline }),
|
|
293
373
|
onAttempt: (record) => this.report(record),
|
|
294
374
|
};
|
|
@@ -297,25 +377,30 @@ class Series {
|
|
|
297
377
|
* One attempt: the request, sent once, and its answer classified. A refusal
|
|
298
378
|
* a rule recognises is thrown for the runner to decide on.
|
|
299
379
|
*
|
|
300
|
-
* With no deadline of ours the request carries the
|
|
301
|
-
* exactly as before this series existed.
|
|
302
|
-
* the attempt before it is ANSWERED —
|
|
303
|
-
*
|
|
304
|
-
*
|
|
305
|
-
*
|
|
306
|
-
*
|
|
380
|
+
* With no deadline of ours and no call to answer to, the request carries the
|
|
381
|
+
* caller's own `init`, exactly as before this series existed. Otherwise the
|
|
382
|
+
* runner can cut the attempt before it is ANSWERED — the deadline, or the
|
|
383
|
+
* dispatched call's cancellation — and an answer is not in until it has been
|
|
384
|
+
* classified, which can mean reading its body (a session-busy reply is JSON
|
|
385
|
+
* in a 200). So the cut stays connected through the classification: a stall
|
|
386
|
+
* in the request or in that body stops the request and releases the body.
|
|
387
|
+
* Only then does it let go: an answer handed back to the caller keeps
|
|
307
388
|
* streaming for as long as the caller's own signal allows.
|
|
308
389
|
*/
|
|
309
390
|
async send(inner, t) {
|
|
310
391
|
this.attemptNo = t.attempt;
|
|
392
|
+
// From here the request is SENT — counted, as a row, however the attempt ends.
|
|
393
|
+
this.inFlight = t.attempt;
|
|
394
|
+
this.seen = undefined;
|
|
311
395
|
// The previous attempt's refusal will not be delivered: release its body, so
|
|
312
396
|
// a keep-alive connection is not pinned by an unread stream.
|
|
313
397
|
this.supersede();
|
|
314
|
-
const cut = this.
|
|
398
|
+
const cut = this.cutsInFlight ? linkedController(t.signal) : undefined;
|
|
315
399
|
const signal = eitherSignal(this.signal, cut?.controller.signal);
|
|
316
400
|
try {
|
|
317
401
|
const init = cut === undefined ? this.init : { ...this.init, ...(signal && { signal }) };
|
|
318
402
|
const response = await inner(this.input, init);
|
|
403
|
+
this.seen = { attempt: t.attempt, status: response.status };
|
|
319
404
|
const refused = await this.recognise(response, signal);
|
|
320
405
|
if (refused === undefined)
|
|
321
406
|
return response;
|
|
@@ -348,44 +433,59 @@ class Series {
|
|
|
348
433
|
}
|
|
349
434
|
/**
|
|
350
435
|
* The runner's `retryOn`: is this attempt's error a refusal worth another
|
|
351
|
-
* attempt? Plans the wait as it answers, because the ceilings need its length
|
|
436
|
+
* attempt? Plans the wait as it answers, because the ceilings need its length,
|
|
437
|
+
* and keeps why it said no, for the record.
|
|
352
438
|
*/
|
|
353
439
|
retryOn(error) {
|
|
354
440
|
this.plannedWaitMs = 0;
|
|
355
441
|
const refused = this.latest;
|
|
356
|
-
// The license: only a
|
|
357
|
-
//
|
|
442
|
+
// The license: only a response a rule recognises as a refusal (the 429
|
|
443
|
+
// assumption — see the module note). A 5xx, a dropped connection or a
|
|
444
|
+
// timeout may be the record of work that ran.
|
|
358
445
|
if (refused === undefined || error !== refused.refusal)
|
|
359
|
-
return
|
|
446
|
+
return this.decline('not-retryable');
|
|
360
447
|
// A body we cannot send twice makes a retry a different request. Rare for
|
|
361
448
|
// MCP (JSON strings), but silently replaying half a stream would be worse
|
|
362
449
|
// than surfacing the refusal.
|
|
363
450
|
if (!this.replayable)
|
|
364
|
-
return
|
|
451
|
+
return this.decline('not-replayable');
|
|
365
452
|
const { rule } = refused;
|
|
366
453
|
if (this.attemptNo >= rule.maxAttempts)
|
|
367
|
-
return
|
|
454
|
+
return this.decline('exhausted');
|
|
368
455
|
// The stated wait whole, else the schedule under `maxDelayMs`.
|
|
369
456
|
const waitMs = rule.backoffMs(this.attemptNo, error);
|
|
370
457
|
// The rail on Retry-After: never let a server talk us into a wait that
|
|
371
458
|
// breaks the caller's budget. It stops the series; it never shortens the
|
|
372
459
|
// wait. Past the deadline, the runner stops it the same way (`no-time-left`).
|
|
373
460
|
if (this.waitedMs + waitMs > rule.maxWaitMs)
|
|
374
|
-
return
|
|
461
|
+
return this.decline('wait-limit');
|
|
375
462
|
// A joined rule's own, sooner deadline. The owner's is the runner's to hold.
|
|
376
463
|
if (rule.maxElapsedMs < this.owner.maxElapsedMs &&
|
|
377
464
|
this.elapsedAfter(waitMs) > rule.maxElapsedMs) {
|
|
378
|
-
return
|
|
465
|
+
return this.decline('no-time-left');
|
|
379
466
|
}
|
|
467
|
+
this.declined = undefined;
|
|
380
468
|
this.plannedWaitMs = waitMs;
|
|
381
469
|
return true;
|
|
382
470
|
}
|
|
471
|
+
decline(reason) {
|
|
472
|
+
this.declined = reason;
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
383
475
|
elapsedAfter(waitMs) {
|
|
384
476
|
return Date.now() - this.startedAt + waitMs;
|
|
385
477
|
}
|
|
386
|
-
/**
|
|
478
|
+
/**
|
|
479
|
+
* Each record as the runner ends an attempt: written down for the call's run
|
|
480
|
+
* first, then — for a retry — counted and reported to its rule. The record
|
|
481
|
+
* goes first because `onRetry` is the caller's, and a throw from it must not
|
|
482
|
+
* cost the run its evidence.
|
|
483
|
+
*/
|
|
387
484
|
report(record) {
|
|
388
485
|
const refused = this.latest;
|
|
486
|
+
if (this.inFlight === record.attempt)
|
|
487
|
+
this.inFlight = undefined;
|
|
488
|
+
this.evidence?.attempt(record, this.seenOf(record, refused), this.declined);
|
|
389
489
|
if (record.next !== 'retry' || refused === undefined)
|
|
390
490
|
return;
|
|
391
491
|
const waitMs = record.delayMs ?? 0;
|
|
@@ -401,18 +501,37 @@ class Series {
|
|
|
401
501
|
...(rule.endpointLabel !== undefined && { endpoint: rule.endpointLabel }),
|
|
402
502
|
});
|
|
403
503
|
}
|
|
504
|
+
/** What this series saw of the attempt `record` ends: its status, and the refusal it threw. */
|
|
505
|
+
seenOf(record, refused) {
|
|
506
|
+
const seen = this.seen;
|
|
507
|
+
if (seen === undefined || seen.attempt !== record.attempt)
|
|
508
|
+
return undefined;
|
|
509
|
+
// `latest` is cleared as each attempt starts, so a refusal here is this attempt's.
|
|
510
|
+
const { kind } = refused?.rule ?? {};
|
|
511
|
+
const retryAfterMs = refused?.verdict.retryAfterMs;
|
|
512
|
+
return {
|
|
513
|
+
status: seen.status,
|
|
514
|
+
...(kind !== undefined && {
|
|
515
|
+
refusal: { kind, ...(retryAfterMs !== undefined && { retryAfterMs }) },
|
|
516
|
+
}),
|
|
517
|
+
};
|
|
518
|
+
}
|
|
404
519
|
/** How the call ends when the series did not answer. */
|
|
405
520
|
settle(error) {
|
|
406
521
|
// The caller's cancellation wins: the call ends with their reason, and the
|
|
407
522
|
// refusal nobody is waiting for any more is released.
|
|
408
|
-
if (this.
|
|
523
|
+
if (this.cancel?.aborted) {
|
|
524
|
+
this.fileCancellation();
|
|
409
525
|
this.supersede();
|
|
410
|
-
throw abortErrorOf(this.
|
|
526
|
+
throw abortErrorOf(this.cancel);
|
|
411
527
|
}
|
|
412
528
|
// The series ended on a refusal — attempts spent, a ceiling reached, no
|
|
413
529
|
// time left. The server's answer is delivered as it sent it.
|
|
414
|
-
if (this.latest !== undefined && error === this.latest.refusal)
|
|
530
|
+
if (this.latest !== undefined && error === this.latest.refusal) {
|
|
531
|
+
this.evidence?.delivered();
|
|
415
532
|
return this.latest.response;
|
|
533
|
+
}
|
|
534
|
+
this.evidence?.threw(this.deadline !== undefined && Date.now() >= this.deadline);
|
|
416
535
|
throw error;
|
|
417
536
|
}
|
|
418
537
|
supersede() {
|
|
@@ -421,9 +540,17 @@ class Series {
|
|
|
421
540
|
this.latest = undefined;
|
|
422
541
|
}
|
|
423
542
|
}
|
|
543
|
+
/** Where a series' requests go, as its evidence may say it: a label the app declared, or the origin. */
|
|
544
|
+
function whereOf(rules, input) {
|
|
545
|
+
const label = rules.find((rule) => rule.endpointLabel !== undefined)?.endpointLabel;
|
|
546
|
+
if (label !== undefined)
|
|
547
|
+
return { endpoint: label };
|
|
548
|
+
const origin = originOf(input);
|
|
549
|
+
return origin === '' ? {} : { origin };
|
|
550
|
+
}
|
|
424
551
|
/**
|
|
425
|
-
* A response a rule recognised as a refusal
|
|
426
|
-
* the attempt runner decides on it. It carries only what an attempt record may
|
|
552
|
+
* A response a rule recognised as a refusal (a 429, a session-busy reply), thrown
|
|
553
|
+
* so the attempt runner decides on it. It carries only what an attempt record may
|
|
427
554
|
* keep: a fixed sentence, its kind as `code`, a 429's status and the wait the
|
|
428
555
|
* server stated. Never the server's text, the request or the response — the
|
|
429
556
|
* series holds the response, not the error.
|
|
@@ -442,8 +569,8 @@ class RetryableRefusal extends Error {
|
|
|
442
569
|
}
|
|
443
570
|
}
|
|
444
571
|
const REFUSAL_SENTENCES = {
|
|
445
|
-
throttle: 'The server
|
|
446
|
-
'session-busy': 'AgentCore Runtime
|
|
572
|
+
throttle: 'The server answered with HTTP 429, a response the retry policy recognises as a refusal. It is recorded as sent, which is not proof that nothing ran.',
|
|
573
|
+
'session-busy': 'AgentCore Runtime answered that its session was starting or stopping, a response the retry policy recognises as a refusal. It is recorded as sent, which is not proof that nothing ran.',
|
|
447
574
|
};
|
|
448
575
|
// ─── Helpers ─────────────────────────────────────────────────────────
|
|
449
576
|
/** Reads one rule's numeric options, refusing by name what the schedule cannot mean. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttleRetry.js","sourceRoot":"","sources":["../../../src/mcp/throttleRetry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"throttleRetry.js","sourceRoot":"","sources":["../../../src/mcp/throttleRetry.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/mcp/types.d.ts
CHANGED
|
@@ -207,13 +207,18 @@ export interface McpClientOptions {
|
|
|
207
207
|
* the transport's `retry` values as the call's overall limits and these as
|
|
208
208
|
* limits on the 429 retries inside them.
|
|
209
209
|
*
|
|
210
|
-
* **
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
210
|
+
* **What this assumes.** Automatic 429 retries assume the server rejected
|
|
211
|
+
* the request before executing it. The saved response records that
|
|
212
|
+
* assumption's basis (the server's 429), not proof that nothing ran: HTTP 429
|
|
213
|
+
* says the request was rate-limited, nothing more (RFC 6585 §4). A tool with
|
|
214
|
+
* side effects is retried on 429 like any other today — this retry has no
|
|
215
|
+
* side-effect guard and sends no deduplication key — and
|
|
216
|
+
* `retryOnThrottle: false` turns that off for this server. Nothing else is
|
|
217
|
+
* retried: a 5xx or a timeout may be the record of work that ran.
|
|
218
|
+
*
|
|
219
|
+
* **Why this is on by default.** Managed gateways rate-limit per principal by
|
|
220
|
+
* design, and without this a designed, self-clearing condition reached the
|
|
221
|
+
* model as a thrown tool error it reads as "this tool is broken".
|
|
217
222
|
*
|
|
218
223
|
* Ignored for `stdio`, which has no HTTP status to read.
|
|
219
224
|
*/
|