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,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* throttleRetry — when an MCP server refuses a request
|
|
4
|
-
* and ask again.
|
|
3
|
+
* throttleRetry — when an MCP server refuses a request with a response the
|
|
4
|
+
* retry policy recognises (HTTP 429), wait and ask again.
|
|
5
5
|
*
|
|
6
6
|
* ── Why this exists ──────────────────────────────────────────────────────────
|
|
7
7
|
* Managed MCP gateways enforce per-principal rate limits. A throttled
|
|
@@ -11,20 +11,24 @@
|
|
|
11
11
|
* tool, or invents an answer. A designed, transient, self-clearing condition
|
|
12
12
|
* was being turned into a wrong answer.
|
|
13
13
|
*
|
|
14
|
-
* ──
|
|
15
|
-
* **
|
|
16
|
-
* at the edge
|
|
17
|
-
*
|
|
14
|
+
* ── What retrying a 429 assumes, and why the policy is 429-ONLY ─────────────
|
|
15
|
+
* **Automatic 429 retries assume the server rejected the request before
|
|
16
|
+
* executing it.** A rate limiter that refuses at the edge has not run the tool —
|
|
17
|
+
* but HTTP 429 says only that the request was rate-limited (RFC 6585 §4), so the
|
|
18
|
+
* saved response records the assumption's basis (the server's 429), not proof
|
|
19
|
+
* that nothing ran. There is no side-effect guard here: a tool with side
|
|
20
|
+
* effects is retried on 429 like any other today, and `retryOnThrottle: false`
|
|
21
|
+
* turns that off per server. What is certain is the contrast with a 500 or a
|
|
18
22
|
* timeout, where the call may have half-run and a retry could charge a card
|
|
19
23
|
* twice.
|
|
20
24
|
*
|
|
21
|
-
* That
|
|
22
|
-
* widen. Only HTTP 429 retries here. Not 5xx, not network errors, not timeouts
|
|
25
|
+
* That assumption is the whole license for this module, so the policy must
|
|
26
|
+
* never widen. Only HTTP 429 retries here. Not 5xx, not network errors, not timeouts
|
|
23
27
|
* — those belong to a caller who knows whether the specific tool is idempotent,
|
|
24
28
|
* and this seam does not. A property test pins the boundary.
|
|
25
29
|
*
|
|
26
30
|
* The loop takes its question as a {@link RetryDecision}, so the one other
|
|
27
|
-
* refusal a service
|
|
31
|
+
* refusal a service documents as one to retry — AgentCore Runtime's "session
|
|
28
32
|
* operation in progress" — reuses this loop rather than growing a second one.
|
|
29
33
|
* That decision is applied only by that vendor's own transport; what
|
|
30
34
|
* `mcpClient` and `retryingFetch` retry is still a 429 and nothing else.
|
|
@@ -47,10 +51,13 @@
|
|
|
47
51
|
*
|
|
48
52
|
* ── The loop is footprintjs's attempt runner, one series per call ────────────
|
|
49
53
|
* Each call runs ONE `attempt()` series (footprintjs, used as it ships). Its
|
|
50
|
-
* runner makes an attempt record per try
|
|
51
|
-
*
|
|
52
|
-
* the
|
|
53
|
-
*
|
|
54
|
+
* runner makes an attempt record per try. `onRetry`, before each wait, is what
|
|
55
|
+
* reaches a caller; the RUN gets the records: for a call the agent dispatched,
|
|
56
|
+
* the series files every attempt and how the request ended into that call's
|
|
57
|
+
* run (`seriesEvidence.ts`, through the connection's `requestLedger.ts`). An
|
|
58
|
+
* attempt sends the request once, and an attempt that got a RESPONSE is not an
|
|
59
|
+
* operation that succeeded: a 503 is delivered as the answer it was, never
|
|
60
|
+
* retried — and written down as `answered` with its status, never success.
|
|
54
61
|
* A response a rule's decision recognises is thrown as a refusal that names
|
|
55
62
|
* its kind, and the policy's `retryOn` accepts those refusals and nothing
|
|
56
63
|
* else — so a 5xx, a dropped connection or a timeout ends the series on the
|
|
@@ -85,10 +92,11 @@
|
|
|
85
92
|
* Pattern: Decorator over `fetch`. Role: Layer-3 tool transport.
|
|
86
93
|
*/
|
|
87
94
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
88
|
-
exports.parseRetryAfter = exports.retryingFetchFor = exports.joinableRetry = exports.retryingFetch = exports.retryRule = exports.THROTTLE_RETRY_DEFAULTS = exports.throttled = void 0;
|
|
95
|
+
exports.parseRetryAfter = exports.retryingFetchFor = exports.ledgeredFetch = exports.joinableRetry = exports.joinedSpec = exports.retryingFetch = exports.retryRule = exports.THROTTLE_RETRY_DEFAULTS = exports.throttled = void 0;
|
|
89
96
|
const footprintjs_1 = require("footprintjs");
|
|
90
97
|
const abort_js_1 = require("../lib/abort.js");
|
|
91
98
|
const backoff_js_1 = require("./backoff.js");
|
|
99
|
+
const seriesEvidence_js_1 = require("./seriesEvidence.js");
|
|
92
100
|
/** HTTP 429, with the server's own `Retry-After` when it sent one. */
|
|
93
101
|
function throttled(response) {
|
|
94
102
|
if (response.status !== 429)
|
|
@@ -182,39 +190,58 @@ function retryingFetch(inner, config) {
|
|
|
182
190
|
const rule = retryRule('throttle', throttled, config, exports.THROTTLE_RETRY_DEFAULTS, 'retryOnThrottle');
|
|
183
191
|
if (rule === undefined)
|
|
184
192
|
return inner;
|
|
185
|
-
const
|
|
186
|
-
return
|
|
193
|
+
const rebuild = inner === undefined ? undefined : JOINS.get(inner);
|
|
194
|
+
return rebuild !== undefined
|
|
195
|
+
? rebuild({ rule })
|
|
196
|
+
: retryingFetchFor(inner ?? platformFetch, { rules: [rule] });
|
|
187
197
|
}
|
|
188
198
|
exports.retryingFetch = retryingFetch;
|
|
199
|
+
/** @internal `spec` with `join` in it. */
|
|
200
|
+
function joinedSpec(spec, join) {
|
|
201
|
+
return 'rule' in join
|
|
202
|
+
? { ...spec, rules: [...spec.rules, join.rule] }
|
|
203
|
+
: { ...spec, ledger: join.ledger };
|
|
204
|
+
}
|
|
205
|
+
exports.joinedSpec = joinedSpec;
|
|
189
206
|
/**
|
|
190
207
|
* Fetches that run their retries in one series, each with the way to rebuild
|
|
191
|
-
* it with one more rule. Module-private: only `joinableRetry` adds
|
|
192
|
-
* caller cannot make a fetch claim a series it does not run.
|
|
208
|
+
* it with one more rule or a ledger. Module-private: only `joinableRetry` adds
|
|
209
|
+
* to it, so a caller cannot make a fetch claim a series it does not run.
|
|
193
210
|
*/
|
|
194
211
|
const JOINS = new WeakMap();
|
|
195
212
|
/**
|
|
196
213
|
* @internal Declare that `fetch` runs its retries in ONE series, and how to
|
|
197
|
-
* rebuild it with one more rule in that same series.
|
|
198
|
-
* a fetch instead of wrapping it. A transport whose
|
|
199
|
-
* series (a session applied around it, its answers
|
|
200
|
-
* this so the rule lands INSIDE that wrapping.
|
|
214
|
+
* rebuild it with one more rule — or with a ledger — in that same series.
|
|
215
|
+
* `retryingFetch` joins such a fetch instead of wrapping it. A transport whose
|
|
216
|
+
* public fetch wraps its series (a session applied around it, its answers
|
|
217
|
+
* rewritten after it) uses this so the rule lands INSIDE that wrapping.
|
|
201
218
|
*/
|
|
202
|
-
function joinableRetry(fetch,
|
|
203
|
-
JOINS.set(fetch,
|
|
219
|
+
function joinableRetry(fetch, rebuild) {
|
|
220
|
+
JOINS.set(fetch, rebuild);
|
|
204
221
|
return fetch;
|
|
205
222
|
}
|
|
206
223
|
exports.joinableRetry = joinableRetry;
|
|
207
224
|
/**
|
|
208
|
-
* @internal
|
|
225
|
+
* @internal `fetch` rebuilt so its series files each request's attempts through
|
|
226
|
+
* `ledger` — or `undefined` when `fetch` runs no series (retry off), so there
|
|
227
|
+
* is nothing to file and the caller keeps `fetch` as it is.
|
|
228
|
+
*/
|
|
229
|
+
function ledgeredFetch(fetch, ledger) {
|
|
230
|
+
return JOINS.get(fetch)?.({ ledger });
|
|
231
|
+
}
|
|
232
|
+
exports.ledgeredFetch = ledgeredFetch;
|
|
233
|
+
/**
|
|
234
|
+
* @internal The one series per call over `inner`, asking `spec.rules` in order —
|
|
209
235
|
* `inner` itself when there are none. The first rule holds the call's budget;
|
|
210
236
|
* see the module note. The result is joinable.
|
|
211
237
|
*/
|
|
212
|
-
function retryingFetchFor(inner,
|
|
238
|
+
function retryingFetchFor(inner, spec) {
|
|
239
|
+
const { rules, ledger } = spec;
|
|
213
240
|
const [owner] = rules;
|
|
214
241
|
if (owner === undefined)
|
|
215
242
|
return inner;
|
|
216
243
|
const bound = rules.map((rule) => boundRule(rule, owner));
|
|
217
|
-
return joinableRetry((input, init) => new Series(bound, input, init).run(inner), (
|
|
244
|
+
return joinableRetry((input, init) => new Series(bound, input, init, ledger).run(inner), (join) => retryingFetchFor(inner, joinedSpec(spec, join)));
|
|
218
245
|
}
|
|
219
246
|
exports.retryingFetchFor = retryingFetchFor;
|
|
220
247
|
/** The platform's fetch, looked up at call time so a later polyfill still wins. */
|
|
@@ -245,7 +272,8 @@ function retryAfterOf(error) {
|
|
|
245
272
|
const SERIES_TARGET = 'mcp-request';
|
|
246
273
|
/**
|
|
247
274
|
* One call: one `attempt()` series, and what its policy's functions share while
|
|
248
|
-
* it runs — the waiting so far,
|
|
275
|
+
* it runs — the waiting so far, the latest refusal, and, for a call the agent
|
|
276
|
+
* dispatched, where its attempts are filed.
|
|
249
277
|
*/
|
|
250
278
|
class Series {
|
|
251
279
|
rules;
|
|
@@ -254,13 +282,31 @@ class Series {
|
|
|
254
282
|
owner;
|
|
255
283
|
startedAt = Date.now();
|
|
256
284
|
deadline;
|
|
285
|
+
/** The transport's own signal — what the request carried before this series existed. */
|
|
257
286
|
signal;
|
|
287
|
+
/**
|
|
288
|
+
* What ends the series as a CANCELLATION: the transport's signal; the MCP
|
|
289
|
+
* SDK cancelling this request (`notifications/cancelled`, seen by the ledger,
|
|
290
|
+
* whether or not the request was matched to a call); and, for a call the
|
|
291
|
+
* agent dispatched, the call's own — its signal, the client's, its settling.
|
|
292
|
+
*/
|
|
293
|
+
cancel;
|
|
294
|
+
/** Whether a request in flight is cut by more than the transport's own signal. */
|
|
295
|
+
cutsInFlight;
|
|
296
|
+
/** Where this request's attempts are filed — a call the agent dispatched. */
|
|
297
|
+
evidence;
|
|
258
298
|
replayable;
|
|
259
299
|
attemptNo = 0;
|
|
260
300
|
waitedMs = 0;
|
|
261
301
|
plannedWaitMs = 0;
|
|
262
302
|
latest;
|
|
263
|
-
|
|
303
|
+
/** The current attempt's response status, before the runner records it. */
|
|
304
|
+
seen;
|
|
305
|
+
/** Why `retryOn` last said no. */
|
|
306
|
+
declined;
|
|
307
|
+
/** The attempt sent and not yet recorded — what a cancellation cuts in flight. */
|
|
308
|
+
inFlight;
|
|
309
|
+
constructor(rules, input, init, ledger) {
|
|
264
310
|
this.rules = rules;
|
|
265
311
|
this.input = input;
|
|
266
312
|
this.init = init;
|
|
@@ -269,14 +315,50 @@ class Series {
|
|
|
269
315
|
this.replayable = isReplayable(input, init);
|
|
270
316
|
const { maxElapsedMs } = this.owner;
|
|
271
317
|
this.deadline = Number.isFinite(maxElapsedMs) ? this.startedAt + maxElapsedMs : undefined;
|
|
318
|
+
const claimed = ledger?.claim(init?.body);
|
|
319
|
+
const ticket = claimed?.ticket;
|
|
320
|
+
this.cancel = (0, abort_js_1.eitherSignal)(this.signal, ticket?.signal, claimed?.cancelled);
|
|
321
|
+
this.cutsInFlight = this.deadline !== undefined || claimed !== undefined;
|
|
322
|
+
this.evidence =
|
|
323
|
+
ticket === undefined ? undefined : new seriesEvidence_js_1.SeriesEvidence(ticket.sink, whereOf(rules, input));
|
|
272
324
|
}
|
|
273
325
|
async run(inner) {
|
|
326
|
+
const unwatch = this.watchCancel();
|
|
274
327
|
try {
|
|
275
|
-
|
|
328
|
+
const response = await (0, footprintjs_1.attempt)((t) => this.send(inner, t), this.policy(), this.options());
|
|
329
|
+
this.evidence?.delivered();
|
|
330
|
+
return response;
|
|
276
331
|
}
|
|
277
332
|
catch (error) {
|
|
278
333
|
return this.settle(error);
|
|
279
334
|
}
|
|
335
|
+
finally {
|
|
336
|
+
unwatch();
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* File a cancellation the MOMENT it lands. A cancelled run stops waiting for
|
|
341
|
+
* its stage at once; a record filed when this series later unwinds would land
|
|
342
|
+
* after the run was saved. The runner records nothing for the attempt it
|
|
343
|
+
* abandons then, or for a wait it was cut out of, so this is also the only
|
|
344
|
+
* place those are written down.
|
|
345
|
+
*/
|
|
346
|
+
watchCancel() {
|
|
347
|
+
const { cancel } = this;
|
|
348
|
+
if (cancel === undefined || this.evidence === undefined || cancel.aborted) {
|
|
349
|
+
return () => undefined;
|
|
350
|
+
}
|
|
351
|
+
const onAbort = () => this.fileCancellation();
|
|
352
|
+
cancel.addEventListener('abort', onAbort, { once: true });
|
|
353
|
+
return () => cancel.removeEventListener('abort', onAbort);
|
|
354
|
+
}
|
|
355
|
+
/** A cancellation, written down: the attempt it cut in flight, or the wait. */
|
|
356
|
+
fileCancellation() {
|
|
357
|
+
const { evidence, inFlight } = this;
|
|
358
|
+
if (inFlight !== undefined)
|
|
359
|
+
evidence?.cutInFlight(inFlight);
|
|
360
|
+
else
|
|
361
|
+
evidence?.cancelled();
|
|
280
362
|
}
|
|
281
363
|
/**
|
|
282
364
|
* The owner's budget as footprintjs reads it; the rest is this series'
|
|
@@ -296,7 +378,7 @@ class Series {
|
|
|
296
378
|
options() {
|
|
297
379
|
return {
|
|
298
380
|
target: SERIES_TARGET,
|
|
299
|
-
...(this.
|
|
381
|
+
...(this.cancel !== undefined && { signal: this.cancel }),
|
|
300
382
|
...(this.deadline !== undefined && { deadline: this.deadline }),
|
|
301
383
|
onAttempt: (record) => this.report(record),
|
|
302
384
|
};
|
|
@@ -305,25 +387,30 @@ class Series {
|
|
|
305
387
|
* One attempt: the request, sent once, and its answer classified. A refusal
|
|
306
388
|
* a rule recognises is thrown for the runner to decide on.
|
|
307
389
|
*
|
|
308
|
-
* With no deadline of ours the request carries the
|
|
309
|
-
* exactly as before this series existed.
|
|
310
|
-
* the attempt before it is ANSWERED —
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
390
|
+
* With no deadline of ours and no call to answer to, the request carries the
|
|
391
|
+
* caller's own `init`, exactly as before this series existed. Otherwise the
|
|
392
|
+
* runner can cut the attempt before it is ANSWERED — the deadline, or the
|
|
393
|
+
* dispatched call's cancellation — and an answer is not in until it has been
|
|
394
|
+
* classified, which can mean reading its body (a session-busy reply is JSON
|
|
395
|
+
* in a 200). So the cut stays connected through the classification: a stall
|
|
396
|
+
* in the request or in that body stops the request and releases the body.
|
|
397
|
+
* Only then does it let go: an answer handed back to the caller keeps
|
|
315
398
|
* streaming for as long as the caller's own signal allows.
|
|
316
399
|
*/
|
|
317
400
|
async send(inner, t) {
|
|
318
401
|
this.attemptNo = t.attempt;
|
|
402
|
+
// From here the request is SENT — counted, as a row, however the attempt ends.
|
|
403
|
+
this.inFlight = t.attempt;
|
|
404
|
+
this.seen = undefined;
|
|
319
405
|
// The previous attempt's refusal will not be delivered: release its body, so
|
|
320
406
|
// a keep-alive connection is not pinned by an unread stream.
|
|
321
407
|
this.supersede();
|
|
322
|
-
const cut = this.
|
|
408
|
+
const cut = this.cutsInFlight ? (0, abort_js_1.linkedController)(t.signal) : undefined;
|
|
323
409
|
const signal = (0, abort_js_1.eitherSignal)(this.signal, cut?.controller.signal);
|
|
324
410
|
try {
|
|
325
411
|
const init = cut === undefined ? this.init : { ...this.init, ...(signal && { signal }) };
|
|
326
412
|
const response = await inner(this.input, init);
|
|
413
|
+
this.seen = { attempt: t.attempt, status: response.status };
|
|
327
414
|
const refused = await this.recognise(response, signal);
|
|
328
415
|
if (refused === undefined)
|
|
329
416
|
return response;
|
|
@@ -356,44 +443,59 @@ class Series {
|
|
|
356
443
|
}
|
|
357
444
|
/**
|
|
358
445
|
* The runner's `retryOn`: is this attempt's error a refusal worth another
|
|
359
|
-
* attempt? Plans the wait as it answers, because the ceilings need its length
|
|
446
|
+
* attempt? Plans the wait as it answers, because the ceilings need its length,
|
|
447
|
+
* and keeps why it said no, for the record.
|
|
360
448
|
*/
|
|
361
449
|
retryOn(error) {
|
|
362
450
|
this.plannedWaitMs = 0;
|
|
363
451
|
const refused = this.latest;
|
|
364
|
-
// The license: only a
|
|
365
|
-
//
|
|
452
|
+
// The license: only a response a rule recognises as a refusal (the 429
|
|
453
|
+
// assumption — see the module note). A 5xx, a dropped connection or a
|
|
454
|
+
// timeout may be the record of work that ran.
|
|
366
455
|
if (refused === undefined || error !== refused.refusal)
|
|
367
|
-
return
|
|
456
|
+
return this.decline('not-retryable');
|
|
368
457
|
// A body we cannot send twice makes a retry a different request. Rare for
|
|
369
458
|
// MCP (JSON strings), but silently replaying half a stream would be worse
|
|
370
459
|
// than surfacing the refusal.
|
|
371
460
|
if (!this.replayable)
|
|
372
|
-
return
|
|
461
|
+
return this.decline('not-replayable');
|
|
373
462
|
const { rule } = refused;
|
|
374
463
|
if (this.attemptNo >= rule.maxAttempts)
|
|
375
|
-
return
|
|
464
|
+
return this.decline('exhausted');
|
|
376
465
|
// The stated wait whole, else the schedule under `maxDelayMs`.
|
|
377
466
|
const waitMs = rule.backoffMs(this.attemptNo, error);
|
|
378
467
|
// The rail on Retry-After: never let a server talk us into a wait that
|
|
379
468
|
// breaks the caller's budget. It stops the series; it never shortens the
|
|
380
469
|
// wait. Past the deadline, the runner stops it the same way (`no-time-left`).
|
|
381
470
|
if (this.waitedMs + waitMs > rule.maxWaitMs)
|
|
382
|
-
return
|
|
471
|
+
return this.decline('wait-limit');
|
|
383
472
|
// A joined rule's own, sooner deadline. The owner's is the runner's to hold.
|
|
384
473
|
if (rule.maxElapsedMs < this.owner.maxElapsedMs &&
|
|
385
474
|
this.elapsedAfter(waitMs) > rule.maxElapsedMs) {
|
|
386
|
-
return
|
|
475
|
+
return this.decline('no-time-left');
|
|
387
476
|
}
|
|
477
|
+
this.declined = undefined;
|
|
388
478
|
this.plannedWaitMs = waitMs;
|
|
389
479
|
return true;
|
|
390
480
|
}
|
|
481
|
+
decline(reason) {
|
|
482
|
+
this.declined = reason;
|
|
483
|
+
return false;
|
|
484
|
+
}
|
|
391
485
|
elapsedAfter(waitMs) {
|
|
392
486
|
return Date.now() - this.startedAt + waitMs;
|
|
393
487
|
}
|
|
394
|
-
/**
|
|
488
|
+
/**
|
|
489
|
+
* Each record as the runner ends an attempt: written down for the call's run
|
|
490
|
+
* first, then — for a retry — counted and reported to its rule. The record
|
|
491
|
+
* goes first because `onRetry` is the caller's, and a throw from it must not
|
|
492
|
+
* cost the run its evidence.
|
|
493
|
+
*/
|
|
395
494
|
report(record) {
|
|
396
495
|
const refused = this.latest;
|
|
496
|
+
if (this.inFlight === record.attempt)
|
|
497
|
+
this.inFlight = undefined;
|
|
498
|
+
this.evidence?.attempt(record, this.seenOf(record, refused), this.declined);
|
|
397
499
|
if (record.next !== 'retry' || refused === undefined)
|
|
398
500
|
return;
|
|
399
501
|
const waitMs = record.delayMs ?? 0;
|
|
@@ -409,18 +511,37 @@ class Series {
|
|
|
409
511
|
...(rule.endpointLabel !== undefined && { endpoint: rule.endpointLabel }),
|
|
410
512
|
});
|
|
411
513
|
}
|
|
514
|
+
/** What this series saw of the attempt `record` ends: its status, and the refusal it threw. */
|
|
515
|
+
seenOf(record, refused) {
|
|
516
|
+
const seen = this.seen;
|
|
517
|
+
if (seen === undefined || seen.attempt !== record.attempt)
|
|
518
|
+
return undefined;
|
|
519
|
+
// `latest` is cleared as each attempt starts, so a refusal here is this attempt's.
|
|
520
|
+
const { kind } = refused?.rule ?? {};
|
|
521
|
+
const retryAfterMs = refused?.verdict.retryAfterMs;
|
|
522
|
+
return {
|
|
523
|
+
status: seen.status,
|
|
524
|
+
...(kind !== undefined && {
|
|
525
|
+
refusal: { kind, ...(retryAfterMs !== undefined && { retryAfterMs }) },
|
|
526
|
+
}),
|
|
527
|
+
};
|
|
528
|
+
}
|
|
412
529
|
/** How the call ends when the series did not answer. */
|
|
413
530
|
settle(error) {
|
|
414
531
|
// The caller's cancellation wins: the call ends with their reason, and the
|
|
415
532
|
// refusal nobody is waiting for any more is released.
|
|
416
|
-
if (this.
|
|
533
|
+
if (this.cancel?.aborted) {
|
|
534
|
+
this.fileCancellation();
|
|
417
535
|
this.supersede();
|
|
418
|
-
throw (0, abort_js_1.abortErrorOf)(this.
|
|
536
|
+
throw (0, abort_js_1.abortErrorOf)(this.cancel);
|
|
419
537
|
}
|
|
420
538
|
// The series ended on a refusal — attempts spent, a ceiling reached, no
|
|
421
539
|
// time left. The server's answer is delivered as it sent it.
|
|
422
|
-
if (this.latest !== undefined && error === this.latest.refusal)
|
|
540
|
+
if (this.latest !== undefined && error === this.latest.refusal) {
|
|
541
|
+
this.evidence?.delivered();
|
|
423
542
|
return this.latest.response;
|
|
543
|
+
}
|
|
544
|
+
this.evidence?.threw(this.deadline !== undefined && Date.now() >= this.deadline);
|
|
424
545
|
throw error;
|
|
425
546
|
}
|
|
426
547
|
supersede() {
|
|
@@ -429,9 +550,17 @@ class Series {
|
|
|
429
550
|
this.latest = undefined;
|
|
430
551
|
}
|
|
431
552
|
}
|
|
553
|
+
/** Where a series' requests go, as its evidence may say it: a label the app declared, or the origin. */
|
|
554
|
+
function whereOf(rules, input) {
|
|
555
|
+
const label = rules.find((rule) => rule.endpointLabel !== undefined)?.endpointLabel;
|
|
556
|
+
if (label !== undefined)
|
|
557
|
+
return { endpoint: label };
|
|
558
|
+
const origin = originOf(input);
|
|
559
|
+
return origin === '' ? {} : { origin };
|
|
560
|
+
}
|
|
432
561
|
/**
|
|
433
|
-
* A response a rule recognised as a refusal
|
|
434
|
-
* the attempt runner decides on it. It carries only what an attempt record may
|
|
562
|
+
* A response a rule recognised as a refusal (a 429, a session-busy reply), thrown
|
|
563
|
+
* so the attempt runner decides on it. It carries only what an attempt record may
|
|
435
564
|
* keep: a fixed sentence, its kind as `code`, a 429's status and the wait the
|
|
436
565
|
* server stated. Never the server's text, the request or the response — the
|
|
437
566
|
* series holds the response, not the error.
|
|
@@ -450,8 +579,8 @@ class RetryableRefusal extends Error {
|
|
|
450
579
|
}
|
|
451
580
|
}
|
|
452
581
|
const REFUSAL_SENTENCES = {
|
|
453
|
-
throttle: 'The server
|
|
454
|
-
'session-busy': 'AgentCore Runtime
|
|
582
|
+
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.',
|
|
583
|
+
'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.',
|
|
455
584
|
};
|
|
456
585
|
// ─── Helpers ─────────────────────────────────────────────────────────
|
|
457
586
|
/** 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":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;;;AAEH,6CAMqB;AAErB,8CAA+E;AAC/E,6CAAyF;AAkLzF,sEAAsE;AACtE,SAAgB,SAAS,CAAC,QAAkB;IAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1E,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;AAC5D,CAAC;AAJD,8BAIC;AAkBD;;;;GAIG;AACU,QAAA,uBAAuB,GAAkB,MAAM,CAAC,MAAM,CAAC;IAClE,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAC;AAsBH;;;;;;;;GAQG;AACH,SAAgB,SAAS,CACvB,IAAe,EACf,MAAqB,EACrB,MAAmC,EACnC,QAAuB,EACvB,KAAa;IAEb,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,IAAI,GAAyB,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAc;QACtB,IAAI;QACJ,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,OAAO,CACzB,aAAa,EACb,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,CACtD;QACD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzF,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC;QACzF,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC;QACpF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACtF,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAClF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5F,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;KAC/C,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AA3BD,8BA2BC;AAED,wEAAwE;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,SAAgB,aAAa,CAC3B,KAAgC,EAChC,MAAmC;IAEnC,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,+BAAuB,EAAE,iBAAiB,CAAC,CAAC;IAClG,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5F,CAAC;AARD,sCAQC;AAED;;;;GAIG;AACH,MAAM,KAAK,GAAG,IAAI,OAAO,EAAqD,CAAC;AAE/E;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,KAAoB,EACpB,IAAwC;IAExC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvB,OAAO,KAAK,CAAC;AACf,CAAC;AAND,sCAMC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,KAAoB,EAAE,KAA2B;IAChF,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACtB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,OAAO,aAAa,CAClB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAC1D,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC;AARD,4CAQC;AAED,mFAAmF;AACnF,MAAM,aAAa,GAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAUpF,SAAS,SAAS,CAAC,IAAe,EAAE,KAAgB;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAA,+BAAkB,EAAC;QAClC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU;KACX,CAAC,CAAC;IACH,OAAO;QACL,GAAG,IAAI;QACP,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;QAC1D,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;QACpD,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;QAC7D,UAAU;QACV,wEAAwE;QACxE,SAAS,EAAE,IAAA,4BAAe,EAAC,YAAY,EAAE,QAAQ,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5E,CAAC;AAUD,iFAAiF;AACjF,MAAM,aAAa,GAAG,aAAa,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM;IAYS;IACA;IACA;IAbF,KAAK,CAAY;IACjB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAqB;IAC7B,MAAM,CAA0B;IAChC,UAAU,CAAU;IAC7B,SAAS,GAAG,CAAC,CAAC;IACd,QAAQ,GAAG,CAAC,CAAC;IACb,aAAa,GAAG,CAAC,CAAC;IAClB,MAAM,CAAsB;IAEpC,YACmB,KAA2B,EAC3B,KAAmB,EACnB,IAA6B;QAF7B,UAAK,GAAL,KAAK,CAAsB;QAC3B,UAAK,GAAL,KAAK,CAAc;QACnB,SAAI,GAAJ,IAAI,CAAyB;QAE9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAc,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAoB;QAC5B,IAAI,CAAC;YACH,OAAO,MAAM,IAAA,qBAAO,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,MAAM;QACZ,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACnC,OAAO;YACL,wEAAwE;YACxE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB;YACzF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACvC,yEAAyE;YACzE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;SACpC,CAAC;IACJ,CAAC;IAEO,OAAO;QACb,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/D,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;SAC3C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,IAAI,CAAC,KAAoB,EAAE,CAAiB;QACxD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC;QAC3B,6EAA6E;QAC7E,6DAA6D;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,2BAAgB,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,IAAA,uBAAY,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACzF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,MAAM,OAAO,CAAC,OAAO,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,GAAG,EAAE,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,SAAS,CACrB,QAAkB,EAClB,MAA+B;QAE/B,IAAI,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACpD,IAAI,OAAO,KAAK,SAAS;oBAAE,SAAS;gBACpC,OAAO,EAAE,OAAO,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YACxF,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,OAAO,CAAC,KAAc;QAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,4EAA4E;QAC5E,sEAAsE;QACtE,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,OAAO,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACrE,0EAA0E;QAC1E,0EAA0E;QAC1E,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACrD,+DAA+D;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,uEAAuE;QACvE,yEAAyE;QACzE,8EAA8E;QAC9E,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC1D,6EAA6E;QAC7E,IACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY;YAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAC7C,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAC9C,CAAC;IAED,8FAA8F;IACtF,MAAM,CAAC,MAAqB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;YACN,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;YACjF,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IAChD,MAAM,CAAC,KAAc;QAC3B,2EAA2E;QAC3E,sDAAsD;QACtD,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,IAAA,uBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,wEAAwE;QACxE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5F,MAAM,KAAK,CAAC;IACd,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,gBAAiB,SAAQ,KAAK;IAChB,IAAI,GAAG,kBAAkB,CAAC;IACnC,IAAI,CAAY;IACzB,sFAAsF;IAC7E,MAAM,CAAqB;IAC3B,YAAY,CAAqB;IAE1C,YAAY,IAAe,EAAE,OAAqB;QAChD,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,iBAAiB,GAAwC;IAC7D,QAAQ,EAAE,iEAAiE;IAC3E,cAAc,EACZ,sGAAsG;CACzG,CAAC;AAEF,wEAAwE;AAExE,wFAAwF;AACxF,MAAM,YAAY;IACa;IAA7B,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C,kFAAkF;IAClF,OAAO,CAAC,IAAY,EAAE,KAAa;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,QAAQ,CAAC,IAAY,EAAE,KAAa;QAClC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACjF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,WAAW,CAAC,IAAY,EAAE,KAAa;QACrC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;QAC7C,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,KAAc;QACnB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;IAC5D,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,KAAc;QAClB,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,CAAC,MAAM,IAAI,CAAC;YACjB,KAAK,CAAC,MAAM,IAAI,GAAG;YACnB,CAAC,UAAU,CAAC,KAAK,CAAC,EAClB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,wDAAwD,CAAC,CAAC;IAChG,CAAC;IAEO,MAAM,CAAC,IAAY,EAAE,MAAc;QACzC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,cAAc,MAAM,GAAG,CAAC,CAAC;IACvE,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAgC;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACxC,CAAC;AAPD,0CAOC;AAED,6EAA6E;AAC7E,SAAS,YAAY,CAAC,KAAmB,EAAE,IAAkB;IAC3D,2EAA2E;IAC3E,mEAAmE;IACnE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAK,KAAiB,YAAY,OAAO;QAAE,OAAO,KAAK,CAAC;IAC1F,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;IACxB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,eAAe,KAAK,WAAW,IAAI,IAAI,YAAY,eAAe;QAAE,OAAO,IAAI,CAAC;IAC3F,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,IAAI,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,SAAS,WAAW,CAAC,QAAkB;IACrC,IAAI,CAAC;QACH,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,KAAmB;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,UAAU,CAAC,IAAY;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"throttleRetry.js","sourceRoot":"","sources":["../../src/mcp/throttleRetry.ts"],"names":[],"mappings":"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"}
|