@productbrain/cli 0.1.0-beta.10665 → 0.1.0-beta.10671
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/rate-limit-resilience.test.d.ts +1 -0
- package/dist/__tests__/rate-limit-resilience.test.d.ts.map +1 -1
- package/dist/__tests__/rate-limit-resilience.test.js +41 -25
- package/dist/__tests__/rate-limit-resilience.test.js.map +1 -1
- package/dist/lib/client.d.ts +1 -1
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +2 -3
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/rate-limit.d.ts +4 -8
- package/dist/lib/rate-limit.d.ts.map +1 -1
- package/dist/lib/rate-limit.js +32 -26
- package/dist/lib/rate-limit.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WP-579 — rate-limit resilience: touch throttle + backoff/retry (TEN-2923, TEN-2924).
|
|
3
|
+
* DEC-2108 (TASK-883): one back-off per command, honouring Retry-After, never one per sub-call.
|
|
3
4
|
*
|
|
4
5
|
* Mirrors the mock/module-mock conventions of envelope-contract.test.ts.
|
|
5
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit-resilience.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/rate-limit-resilience.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rate-limit-resilience.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/rate-limit-resilience.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WP-579 — rate-limit resilience: touch throttle + backoff/retry (TEN-2923, TEN-2924).
|
|
3
|
+
* DEC-2108 (TASK-883): one back-off per command, honouring Retry-After, never one per sub-call.
|
|
3
4
|
*
|
|
4
5
|
* Mirrors the mock/module-mock conventions of envelope-contract.test.ts.
|
|
5
6
|
*/
|
|
@@ -28,7 +29,7 @@ vi.mock('../lib/update-check.js', () => ({
|
|
|
28
29
|
recordServerLatest: vi.fn(),
|
|
29
30
|
}));
|
|
30
31
|
// ─── Imports (after mocks) ────────────────────────────────────────────────────
|
|
31
|
-
import { kernelCall, kernelCallWithSession, resetTouchThrottle } from '../lib/client.js';
|
|
32
|
+
import { kernelCall, kernelCallWithSession, resetRateLimitBackoff, resetTouchThrottle } from '../lib/client.js';
|
|
32
33
|
function successResponse(data = {}) {
|
|
33
34
|
return {
|
|
34
35
|
ok: true,
|
|
@@ -97,59 +98,73 @@ describe('kernelCallWithSession — touch throttle (TEN-2923)', () => {
|
|
|
97
98
|
expect(touchCalls).toHaveLength(2);
|
|
98
99
|
});
|
|
99
100
|
});
|
|
100
|
-
describe('kernelCall —
|
|
101
|
+
describe('kernelCall — one back-off per command on 429 (DEC-2108, TEN-5073)', () => {
|
|
102
|
+
let stderr;
|
|
101
103
|
beforeEach(() => {
|
|
102
104
|
vi.clearAllMocks();
|
|
103
105
|
vi.useFakeTimers();
|
|
106
|
+
resetRateLimitBackoff();
|
|
107
|
+
stderr = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
104
108
|
});
|
|
105
|
-
|
|
109
|
+
afterEach(() => stderr.mockRestore());
|
|
110
|
+
it('waits the server-given seconds once, says so, then retries and succeeds', async () => {
|
|
106
111
|
let callCount = 0;
|
|
107
112
|
global.fetch = vi.fn(async () => {
|
|
108
113
|
callCount += 1;
|
|
109
|
-
return callCount === 1 ? rateLimitedResponse(
|
|
114
|
+
return callCount === 1 ? rateLimitedResponse(7) : successResponse({ id: 'ENT-1' });
|
|
110
115
|
});
|
|
111
116
|
const resultPromise = kernelCall('chain.getEntry', {});
|
|
112
|
-
await vi.advanceTimersByTimeAsync(
|
|
113
|
-
|
|
114
|
-
|
|
117
|
+
await vi.advanceTimersByTimeAsync(6_900);
|
|
118
|
+
expect(callCount).toBe(1); // still waiting: Retry-After is honoured, not guessed
|
|
119
|
+
await vi.advanceTimersByTimeAsync(400);
|
|
120
|
+
expect(await resultPromise).toEqual({ id: 'ENT-1' });
|
|
115
121
|
expect(callCount).toBe(2);
|
|
122
|
+
expect(stderr).toHaveBeenCalledWith('Rate limited: waiting 7s once, then retrying.\n');
|
|
116
123
|
});
|
|
117
|
-
it('
|
|
124
|
+
it('a call still refused after the back-off fails with the kernel message, two attempts in all', async () => {
|
|
118
125
|
let callCount = 0;
|
|
119
126
|
global.fetch = vi.fn(async () => {
|
|
120
127
|
callCount += 1;
|
|
121
|
-
return
|
|
128
|
+
return rateLimitedResponse(1);
|
|
122
129
|
});
|
|
123
|
-
|
|
124
|
-
|
|
130
|
+
const resultPromise = kernelCall('chain.getEntry', {}).catch((err) => err);
|
|
131
|
+
await vi.advanceTimersByTimeAsync(20_000);
|
|
132
|
+
const err = await resultPromise;
|
|
133
|
+
expect(err.message).toBe('Rate limit exceeded for this API key. Retry after 1s.');
|
|
134
|
+
expect(callCount).toBe(2);
|
|
125
135
|
});
|
|
126
|
-
it('
|
|
136
|
+
it('a later sub-call in the same command fails at once: no second back-off, no timer', async () => {
|
|
127
137
|
let callCount = 0;
|
|
128
138
|
global.fetch = vi.fn(async () => {
|
|
129
139
|
callCount += 1;
|
|
130
|
-
return rateLimitedResponse(1);
|
|
140
|
+
return callCount === 1 ? rateLimitedResponse(1) : callCount === 2 ? successResponse({}) : rateLimitedResponse(1);
|
|
131
141
|
});
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
await
|
|
135
|
-
|
|
136
|
-
|
|
142
|
+
const first = kernelCall('chain.listCollections', {});
|
|
143
|
+
await vi.advanceTimersByTimeAsync(1_500);
|
|
144
|
+
await first;
|
|
145
|
+
expect(callCount).toBe(2);
|
|
146
|
+
const err = await kernelCall('chain.createEntry', {}).catch((e) => e);
|
|
137
147
|
expect(err.message).toContain('Rate limit exceeded');
|
|
138
|
-
|
|
139
|
-
expect(
|
|
140
|
-
expect(callCount).toBeGreaterThan(1);
|
|
148
|
+
expect(callCount).toBe(3);
|
|
149
|
+
expect(vi.getTimerCount()).toBe(0);
|
|
141
150
|
});
|
|
142
|
-
it('
|
|
151
|
+
it('never retries a non-rate-limited failure (e.g. VALIDATION_FAILED)', async () => {
|
|
152
|
+
let callCount = 0;
|
|
153
|
+
global.fetch = vi.fn(async () => {
|
|
154
|
+
callCount += 1;
|
|
155
|
+
return validationFailedResponse();
|
|
156
|
+
});
|
|
157
|
+
await expect(kernelCall('chain.createEntry', {})).rejects.toThrow('Bad input');
|
|
158
|
+
expect(callCount).toBe(1);
|
|
159
|
+
});
|
|
160
|
+
it('does not sit on a Retry-After over 60 s: surfaces it instead of sleeping', async () => {
|
|
143
161
|
let callCount = 0;
|
|
144
162
|
global.fetch = vi.fn(async () => {
|
|
145
163
|
callCount += 1;
|
|
146
|
-
// The server clamps a day-window denial to the full window (86_400s).
|
|
147
164
|
return rateLimitedResponse(86_400);
|
|
148
165
|
});
|
|
149
166
|
const err = await kernelCall('chain.getEntry', {}).catch((e) => e);
|
|
150
|
-
expect(err).toBeInstanceOf(Error);
|
|
151
167
|
expect(err.message).toContain('Rate limit exceeded');
|
|
152
|
-
// Failed fast on the first attempt — no timer was ever armed.
|
|
153
168
|
expect(callCount).toBe(1);
|
|
154
169
|
expect(vi.getTimerCount()).toBe(0);
|
|
155
170
|
});
|
|
@@ -159,6 +174,7 @@ describe('kernelCallWithSession — background calls opt out of retry (TEN-2924)
|
|
|
159
174
|
vi.clearAllMocks();
|
|
160
175
|
vi.useFakeTimers();
|
|
161
176
|
resetTouchThrottle();
|
|
177
|
+
resetRateLimitBackoff();
|
|
162
178
|
mockSession = { sessionId: 'session-1' };
|
|
163
179
|
});
|
|
164
180
|
it('never arms a retry timer when retryOnRateLimit is false', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit-resilience.test.js","sourceRoot":"","sources":["../../src/__tests__/rate-limit-resilience.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rate-limit-resilience.test.js","sourceRoot":"","sources":["../../src/__tests__/rate-limit-resilience.test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/client.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare class McpError extends CLIError {
|
|
|
20
20
|
missingRequiredFields?: string[];
|
|
21
21
|
constructor(message: string, code?: string, details?: ValidationErrorDetail[], retryAfterSeconds?: number, missingRequiredFields?: string[]);
|
|
22
22
|
}
|
|
23
|
-
export { resetTouchThrottle, type KernelCallOptions } from './rate-limit.js';
|
|
23
|
+
export { resetRateLimitBackoff, resetTouchThrottle, type KernelCallOptions } from './rate-limit.js';
|
|
24
24
|
export type { KernelEnvelope, ValidationErrorDetail } from './kernelEnvelope.js';
|
|
25
25
|
/** Result of validateKey — used by `pb login` to verify a key before saving. */
|
|
26
26
|
export type ValidateKeyResult = {
|
package/dist/lib/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAMjF,OAAO,EAAE,QAAQ,EAAa,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAoBzF,wBAAgB,8BAA8B,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAErE;AAkCD,kGAAkG;AAClG,qBAAa,QAAS,SAAQ,QAAQ;IACpC,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;gBAEjD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE;CAc5I;AAGD,OAAO,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAMjF,OAAO,EAAE,QAAQ,EAAa,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAoBzF,wBAAgB,8BAA8B,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAErE;AAkCD,kGAAkG;AAClG,qBAAa,QAAS,SAAQ,QAAQ;IACpC,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;gBAEjD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE;CAc5I;AAGD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKpG,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAoDjF,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GACzB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,SAA8C,GACtD,OAAO,CAAC,iBAAiB,CAAC,CAqC5B;AA4BD,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAoClB;AAoFD,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAClC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,CAAC,CAAC,CAIZ;AAgCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,GAAG,OAAO,EACrD,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAClC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,CAAC,CAAC,CA8BZ"}
|
package/dist/lib/client.js
CHANGED
|
@@ -104,7 +104,7 @@ export class McpError extends CLIError {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
// WP-579: the rate-limit retry and touch throttle live in rate-limit.ts — self-contained policies with their own state, kept out of this module's budget (STD-2).
|
|
107
|
-
export { resetTouchThrottle } from './rate-limit.js';
|
|
107
|
+
export { resetRateLimitBackoff, resetTouchThrottle } from './rate-limit.js';
|
|
108
108
|
// Configure proxy at module load — runs once, before any fetch call.
|
|
109
109
|
// Node.js fetch (undici) ignores HTTPS_PROXY env vars. We detect the proxy
|
|
110
110
|
// and install a ProxyAgent as the global dispatcher so all fetch() calls
|
|
@@ -314,8 +314,7 @@ async function fetchKernelEnvelope(fn, args, options) {
|
|
|
314
314
|
const label = spinnerLabel(fn);
|
|
315
315
|
const budgetMs = latencyBudgetMsForRoute(fn);
|
|
316
316
|
// Spinner OUTSIDE the retry: withSpinner reports a terminal `— failed` line on any throw,
|
|
317
|
-
// so a spinner per attempt would paint
|
|
318
|
-
// call that ultimately succeeds, then sit silent through each Retry-After wait.
|
|
317
|
+
// so a spinner per attempt would paint a false failure for a call that ultimately succeeds.
|
|
319
318
|
const envelope = await withSpinner(label, () => maybeRetry(async () => {
|
|
320
319
|
let res;
|
|
321
320
|
try {
|
package/dist/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,uFAAuF;AACvF,sFAAsF;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,sCAAsC,IAAI,2CAA2C,EAAE,MAAM,+DAA+D,CAAC;AACtK,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1E,4FAA4F;AAC5F,8FAA8F;AAC9F,mDAAmD;AACnD,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE1G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAA0B,MAAM,iBAAiB,CAAC;AAEzF;iGACiG;AACjG,mbAAmb;AACnb,MAAM,sCAAsC,GAAG,IAAI,GAAG,CAAS,2CAA2C,CAAC,CAAC;AAE5G,iGAAiG;AACjG,sFAAsF;AACtF,8FAA8F;AAC9F,+FAA+F;AAC/F,+FAA+F;AAC/F,4IAA4I;AAC5I,6FAA6F;AAC7F,4FAA4F;AAC5F,yFAAyF;AACzF,4FAA4F;AAC5F,2FAA2F;AAC3F,4IAA4I;AAC5I,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACnF,MAAM,UAAU,8BAA8B,CAAC,IAAa;IAC1D,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAc,CAAC,IAAI,sCAAsC,CAAC,GAAG,CAAC,IAAc,CAAC,CAAC;AACnI,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,UAAU,CAAC;IAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,cAAc,IAAI,sCAAsC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,SAAS,CAAC,mBAAmB;QAAE,OAAO,MAAM,CAAC;IACpK,IACE,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,sBAAsB;QAC/D,IAAI,KAAK,wBAAwB,IAAI,IAAI,KAAK,+BAA+B,IAAI,IAAI,KAAK,uBAAuB,IAAI,IAAI,KAAK,4BAA4B;QAC1J,mKAAmK;QACnK,IAAI,KAAK,uBAAuB,IAAI,IAAI,KAAK,qBAAqB;QAClE,qKAAqK;QACrK,IAAI,KAAK,4BAA4B,IAAI,IAAI,KAAK,wBAAwB,IAAI,2DAA2D;QACzI,8LAA8L;QAC9L,IAAI,KAAK,yBAAyB;QAClC,OAAO,YAAY,CAAC;IACtB,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAClD,sFAAsF;IACtF,oFAAoF;IACpF,wBAAwB;IACxB,IAAI,IAAI,KAAK,cAAc;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACtC,mFAAmF;IACnF,4FAA4F;IAC5F,8FAA8F;IAC9F,6FAA6F;IAC7F,2FAA2F;IAC3F,4EAA4E;IAC5E,IAAI,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC,WAAW,CAAC;IAAC,IAAI,IAAI,KAAK,wBAAwB;QAAE,OAAO,SAAS,CAAC,iBAAiB,CAAC,CAAC,2BAA2B;IACpK,OAAQ,IAAmC,IAAI,SAAS,CAAC,QAAQ,CAAC;AACnE,CAAC;AAED,kGAAkG;AAClG,MAAM,OAAO,QAAS,SAAQ,QAAQ;IACpC,OAAO,CAA2B;IAClC,sFAAsF;IACtF,iBAAiB,CAAU;IAAC,qBAAqB,CAAY,CAAC,kEAAkE;IAEhI,YAAY,OAAe,EAAE,IAAa,EAAE,OAAiC,EAAE,iBAA0B,EAAE,qBAAgC;QACzI,KAAK,CAAC,OAAO,EAAE;YAChB,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;YACzB,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACjC,yFAAyF;YACzF,0GAA0G;YAC1G,QAAQ,EAAE,IAAI,KAAK,cAAc;gBAC/B,CAAC,CAAC,sLAAsL;gBACxL,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,mEAAmE;SACjK,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAAC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACjG,CAAC;CACF;AAED,kKAAkK;AAClK,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAA0B,MAAM,iBAAiB,CAAC;AAOpG,qEAAqE;AACrE,2EAA2E;AAC3E,yEAAyE;AACzE,iDAAiD;AACjD,IAAI,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAClE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnE,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,8EAA8E;AAChF,CAAC;AAED,yEAAyE;AACzE,SAAS,mBAAmB,CAC1B,GAAY,EACZ,OAAe;AACf,yFAAyF;AACzF,sFAAsF;AACtF,gGAAgG;AAChG,KAAwD;IAExD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAE7D,2FAA2F;IAC3F,wFAAwF;IACxF,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC;QAAE,MAAM,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAElG,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACjE,MAAM,SAAS,GAAG,KAAK;YACrB,CAAC,CAAC,0BAA0B,KAAK,0CAA0C;gBACzE,gEAAgE;gBAChE,+DAA+D;YACjE,CAAC,CAAC,oFAAoF;gBACpF,uDAAuD;gBACvD,aAAa,IAAI,wCAAwC;gBACzD,qDAAqD;gBACrD,uEAAuE,CAAC;QAC5E,MAAM,IAAI,QAAQ,CAAC,mBAAmB,IAAI,GAAG,EAAE;YAC7C,IAAI,EAAE,SAAS,CAAC,mBAAmB;YACnC,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,GAAG,CAAC;AACZ,CAAC;AAOD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,OAAe,EACf,SAAS,GAAG,uBAAuB,CAAC,kBAAkB,CAAC;IAEvD,OAAO,WAAW,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,UAAU,EAAE;gBAC5C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC1D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,4GAA4G;YAC5G,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;YACrD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAmB,GAAG,CAAC,CAAC;YAElE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;gBACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,IAAI,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;YACvG,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,sEAAsE;YACtE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,4BAA4B;IACpC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,mBAAmB;IACrC,gBAAgB,EAAE,gBAAgB;IAClC,gBAAgB,EAAE,gBAAgB;IAClC,eAAe,EAAE,oBAAoB;IACrC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,kBAAkB;IAClC,oBAAoB,EAAE,kBAAkB;IACxC,oBAAoB,EAAE,iBAAiB;IACvC,oBAAoB,EAAE,oBAAoB;IAC1C,gBAAgB,EAAE,qBAAqB;IACvC,OAAO,EAAE,iBAAiB;IAC1B,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,mBAAmB;IACvC,aAAa,EAAE,uBAAuB;IACtC,gBAAgB,EAAE,wBAAwB;IAC1C,mBAAmB,EAAE,mBAAmB;IACxC,mBAAmB,EAAE,2BAA2B;CACjD,CAAC;AAEF,mEAAmE;AACnE,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAe,EACf,IAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAEtE,yFAAyF;IACzF,oFAAoF;IACpF,cAAc,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAErG,yFAAyF;IACzF,sFAAsF;IACtF,2FAA2F;IAC3F,2FAA2F;IAC3F,uFAAuF;IACvF,yFAAyF;IACzF,mEAAmE;IACnE,4FAA4F;IAC5F,yFAAyF;IACzF,+FAA+F;IAC/F,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,YAAY,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAEG,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAsF,CAAC;IAC/I,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,sBAAsB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtH,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,IAA6B;IACpD,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,OAAO,iBAAiB,IAAI,iBAAiB,KAAK,OAAO,EAAE,SAAS;QAClE,CAAC,CAAC,sBAAsB,CAAC,iBAAiB,CAAC;QAC3C,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,mBAAmB,CAChC,EAAU,EACV,IAA6B,EAC7B,OAA2B;IAE3B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;IACxC,8FAA8F;IAC9F,0FAA0F;IAC1F,yFAAyF;IACzF,oFAAoF;IACpF,gDAAgD;IAChD,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,+BAA+B,CAAC,CAAC;IAC3F,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAE7C,0FAA0F;IAC1F,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpE,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,UAAU,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACrC,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,4EAA4E;oBAC5E,aAAa,EAAE,mBAAmB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAI,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAC5K,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAEb,qGAAqG;IACrG,kGAAkG;IAClG,+FAA+F;IAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAU,EACV,OAAgC,EAAE,EAClC,OAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,yBAAyB,EAAE,CAAC,CAAC,yDAAyD;IAC5F,OAAO,QAAQ,CAAC,IAAS,CAAC;AAC5B,CAAC;AAGD;;;GAGG;AACH,KAAK,UAAU,WAAW,CACxB,EAAU,EACV,IAA6B,EAC7B,MAAc,EACd,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,GAAG,OAAO,UAAU,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,sFAAsF;YACtF,iFAAiF;YACjF,kFAAkF;YAClF,8DAA8D;YAC9D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAU,EACV,OAAgC,EAAE,EAClC,OAA2B;IAE3B,8FAA8F;IAC9F,8FAA8F;IAC9F,sEAAsE;IACtE,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAE9B,+FAA+F;IAC/F,4FAA4F;IAC5F,2FAA2F;IAC3F,yFAAyF;IACzF,iDAAiD;IACjD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtF,4FAA4F;IAC5F,oFAAoF;IACpF,MAAM,yBAAyB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAS,CAAC;IAElC,gFAAgF;IAChF,wFAAwF;IACxF,oFAAoF;IACpF,sFAAsF;IACtF,wFAAwF;IACxF,yFAAyF;IACzF,qFAAqF;IACrF,qEAAqE;IACrE,IAAI,CAAC,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,SAAS,IAAI,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9F,KAAK,WAAW,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/lib/rate-limit.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WP-579 — client-side rate-limit resilience for the gateway helpers in client.ts
|
|
3
|
-
* (TEN-2923 touch amplification, TEN-2924 no-backoff-on-429).
|
|
3
|
+
* (TEN-2923 touch amplification, TEN-2924 no-backoff-on-429; DEC-2108 one back-off per command).
|
|
4
4
|
*
|
|
5
5
|
* Split out of client.ts rather than grown inside it: these are two self-contained
|
|
6
6
|
* policies (when to retry a throttled call, when a session touch is worth sending) with
|
|
@@ -11,12 +11,8 @@
|
|
|
11
11
|
* the guard tested before the split (`McpError` is the only thing that sets
|
|
12
12
|
* `code === 'rate-limited'` alongside a `retryAfterSeconds`).
|
|
13
13
|
*/
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
* Retry-After rather than guessing a backoff curve. Only retries a rate-limit refusal —
|
|
17
|
-
* never a validation/auth/internal failure, which retrying unchanged would just repeat.
|
|
18
|
-
*/
|
|
19
|
-
export declare function withRateLimitRetry<T>(attempt: () => Promise<T>): Promise<T>;
|
|
14
|
+
/** Test-only: a fresh command may back off again. Mirrors resetTouchThrottle below. */
|
|
15
|
+
export declare function resetRateLimitBackoff(): void;
|
|
20
16
|
/**
|
|
21
17
|
* Per-call knobs for the gateway helpers.
|
|
22
18
|
*
|
|
@@ -30,7 +26,7 @@ export type KernelCallOptions = {
|
|
|
30
26
|
retryOnRateLimit?: boolean;
|
|
31
27
|
skipSessionTouch?: boolean;
|
|
32
28
|
};
|
|
33
|
-
/** Applies the rate-limit
|
|
29
|
+
/** Applies the one rate-limit back-off unless the caller opted out (background calls). */
|
|
34
30
|
export declare function maybeRetry<T>(attempt: () => Promise<T>, options?: KernelCallOptions): Promise<T>;
|
|
35
31
|
export declare function shouldTouchSession(sessionId: string): boolean;
|
|
36
32
|
/** Test-only escape hatch — mirrors packages/mcp-server/src/client.ts's resetTouchThrottle. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/lib/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/lib/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA8CH,uFAAuF;AACvF,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3F,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhG;AAYD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM7D;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAMlE"}
|
package/dist/lib/rate-limit.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WP-579 — client-side rate-limit resilience for the gateway helpers in client.ts
|
|
3
|
-
* (TEN-2923 touch amplification, TEN-2924 no-backoff-on-429).
|
|
3
|
+
* (TEN-2923 touch amplification, TEN-2924 no-backoff-on-429; DEC-2108 one back-off per command).
|
|
4
4
|
*
|
|
5
5
|
* Split out of client.ts rather than grown inside it: these are two self-contained
|
|
6
6
|
* policies (when to retry a throttled call, when a session touch is worth sending) with
|
|
@@ -12,16 +12,21 @@
|
|
|
12
12
|
* `code === 'rate-limited'` alongside a `retryAfterSeconds`).
|
|
13
13
|
*/
|
|
14
14
|
import { ErrorCode } from './errors.js';
|
|
15
|
-
const MAX_RATE_LIMIT_RETRIES = 3;
|
|
16
15
|
const RATE_LIMIT_RETRY_JITTER_MS = 250;
|
|
17
16
|
/**
|
|
18
|
-
* Ceiling on
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* to a day per attempt, three attempts deep. A day-quota denial is not something to wait
|
|
22
|
-
* out in-process: surface it so the caller can retry out of band.
|
|
17
|
+
* Ceiling on the one honoured Retry-After. The kernel answers at most the minute window
|
|
18
|
+
* (convex/rateLimiter.ts `retryAfterSeconds`); anything longer is not something to wait
|
|
19
|
+
* out in-process, so it surfaces at once.
|
|
23
20
|
*/
|
|
24
21
|
const MAX_RATE_LIMIT_RETRY_WAIT_SECONDS = 60;
|
|
22
|
+
/**
|
|
23
|
+
* DEC-2108 (TASK-883, TEN-5073): one back-off per COMMAND, not three per sub-call. A CLI
|
|
24
|
+
* process runs one command, and a command like capture makes 6 to 9 gateway calls in
|
|
25
|
+
* sequence (INS-2797); retrying each of them three times honouring Retry-After turned one
|
|
26
|
+
* refused capture into minutes of silence. The first refusal in this process waits once;
|
|
27
|
+
* every later refusal in the same process fails at once with the kernel's message.
|
|
28
|
+
*/
|
|
29
|
+
let backedOffThisCommand = false;
|
|
25
30
|
/** Seconds to wait, if this error is a rate-limit refusal that carries a Retry-After. */
|
|
26
31
|
function rateLimitWaitOf(err) {
|
|
27
32
|
const candidate = err;
|
|
@@ -30,28 +35,29 @@ function rateLimitWaitOf(err) {
|
|
|
30
35
|
return typeof candidate.retryAfterSeconds === 'number' ? candidate.retryAfterSeconds : undefined;
|
|
31
36
|
}
|
|
32
37
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
38
|
+
* Retries a rate-limited call once, after the server's Retry-After, if this command has not
|
|
39
|
+
* already backed off. Only a rate-limit refusal is retried, never a validation, auth or
|
|
40
|
+
* internal failure, which retrying unchanged would just repeat.
|
|
36
41
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return await attempt();
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
const waitSeconds = rateLimitWaitOf(err);
|
|
44
|
-
if (waitSeconds === undefined || retries >= MAX_RATE_LIMIT_RETRIES)
|
|
45
|
-
throw err;
|
|
46
|
-
// Day-window denial (or any wait we won't sit on) — fail fast rather than hang.
|
|
47
|
-
if (waitSeconds > MAX_RATE_LIMIT_RETRY_WAIT_SECONDS)
|
|
48
|
-
throw err;
|
|
49
|
-
const delayMs = waitSeconds * 1000 + Math.random() * RATE_LIMIT_RETRY_JITTER_MS;
|
|
50
|
-
await new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
51
|
-
}
|
|
42
|
+
async function withRateLimitRetry(attempt) {
|
|
43
|
+
try {
|
|
44
|
+
return await attempt();
|
|
52
45
|
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
const waitSeconds = rateLimitWaitOf(err);
|
|
48
|
+
if (waitSeconds === undefined || backedOffThisCommand || waitSeconds > MAX_RATE_LIMIT_RETRY_WAIT_SECONDS)
|
|
49
|
+
throw err;
|
|
50
|
+
backedOffThisCommand = true;
|
|
51
|
+
process.stderr.write(`Rate limited: waiting ${waitSeconds}s once, then retrying.\n`);
|
|
52
|
+
await new Promise((resolve) => setTimeout(resolve, waitSeconds * 1000 + Math.random() * RATE_LIMIT_RETRY_JITTER_MS));
|
|
53
|
+
return attempt();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Test-only: a fresh command may back off again. Mirrors resetTouchThrottle below. */
|
|
57
|
+
export function resetRateLimitBackoff() {
|
|
58
|
+
backedOffThisCommand = false;
|
|
53
59
|
}
|
|
54
|
-
/** Applies the rate-limit
|
|
60
|
+
/** Applies the one rate-limit back-off unless the caller opted out (background calls). */
|
|
55
61
|
export function maybeRetry(attempt, options) {
|
|
56
62
|
return options?.retryOnRateLimit === false ? attempt() : withRateLimitRetry(attempt);
|
|
57
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/lib/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/lib/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC;;;;GAIG;AACH,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAE7C;;;;;;GAMG;AACH,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC,yFAAyF;AACzF,SAAS,eAAe,CAAC,GAAY;IACnC,MAAM,SAAS,GAAG,GAAwE,CAAC;IAC3F,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAC9E,OAAO,OAAO,SAAS,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAI,OAAyB;IAC5D,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,WAAW,KAAK,SAAS,IAAI,oBAAoB,IAAI,WAAW,GAAG,iCAAiC;YAAE,MAAM,GAAG,CAAC;QACpH,oBAAoB,GAAG,IAAI,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,WAAW,0BAA0B,CAAC,CAAC;QACrF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,0BAA0B,CAAC,CAAC,CAAC;QACrH,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,qBAAqB;IACnC,oBAAoB,GAAG,KAAK,CAAC;AAC/B,CAAC;AAaD,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAI,OAAyB,EAAE,OAA2B;IAClF,OAAO,OAAO,EAAE,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACxD,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACxD,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAAC,SAAyB;IAC1D,IAAI,SAAS,EAAE,CAAC;QACd,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,CAAC;AAChC,CAAC"}
|