@memnexus-ai/cli 1.7.236 → 1.7.237
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/commands/memories.d.ts +6 -0
- package/dist/commands/memories.d.ts.map +1 -1
- package/dist/commands/memories.js +72 -2
- package/dist/commands/memories.js.map +1 -1
- package/dist/lib/api-client.d.ts +17 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +42 -11
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/retry.d.ts +32 -0
- package/dist/lib/retry.d.ts.map +1 -1
- package/dist/lib/retry.js +89 -5
- package/dist/lib/retry.js.map +1 -1
- package/package.json +2 -2
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -9,7 +9,23 @@ import { Memnexus } from '@memnexus-ai/typescript-sdk';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function getSdk(): Memnexus;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Get an SDK instance whose transport makes exactly ONE attempt per call.
|
|
13
|
+
*
|
|
14
|
+
* Used by `mx memories recall`/`digest`, which owns its retry policy in
|
|
15
|
+
* lib/retry.ts (withRecallRetry). The default SDK transport retries every
|
|
16
|
+
* failure up to 3 times, POST included, and each digest attempt runs a fresh
|
|
17
|
+
* server-side LLM synthesis (GH #5570).
|
|
18
|
+
*
|
|
19
|
+
* Why a separate instance rather than a per-request override: the SDK's
|
|
20
|
+
* RetryHandler is built once per service from `SdkConfig.retry` when the client
|
|
21
|
+
* is constructed. The per-operation `retry` block the generator writes onto
|
|
22
|
+
* each request (releases/sdk-generator/src/generators/typescript/
|
|
23
|
+
* service-generator.ts) is stored on the Request but never read by the
|
|
24
|
+
* RetryHandler, so the client config is the only lever the SDK honours.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getSingleAttemptSdk(): Memnexus;
|
|
27
|
+
/**
|
|
28
|
+
* Reset the cached SDK instances
|
|
13
29
|
*
|
|
14
30
|
* Useful for testing or when configuration changes
|
|
15
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAmBvD;;;;;;;GAOG;AACH,wBAAgB,MAAM,IAAI,QAAQ,CAYjC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,IAAI,QAAQ,CAY9C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAG/B;AAGD,eAAO,MAAM,YAAY,eAAS,CAAC;AACnC,eAAO,MAAM,cAAc,iBAAW,CAAC;AAGvC,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB;;GAEG;AACH,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;CACH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,CAAC,GAAG,SAAS,CAwBrF"}
|
package/dist/lib/api-client.js
CHANGED
|
@@ -5,13 +5,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.resetApiClient = exports.getApiClient = void 0;
|
|
7
7
|
exports.getSdk = getSdk;
|
|
8
|
+
exports.getSingleAttemptSdk = getSingleAttemptSdk;
|
|
8
9
|
exports.resetSdk = resetSdk;
|
|
9
10
|
exports.extractResponseData = extractResponseData;
|
|
10
11
|
const typescript_sdk_1 = require("@memnexus-ai/typescript-sdk");
|
|
11
12
|
const config_1 = require("./config");
|
|
12
13
|
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
-
// Cached SDK
|
|
14
|
+
// Cached SDK instances
|
|
14
15
|
let cachedSdk = null;
|
|
16
|
+
let cachedSingleAttemptSdk = null;
|
|
17
|
+
/** Read the CLI's API URL and key, exiting with the login hint when no key is set. */
|
|
18
|
+
function sdkConfigFromCli() {
|
|
19
|
+
const apiKey = config_1.config.getApiKey();
|
|
20
|
+
if (!apiKey) {
|
|
21
|
+
console.error(chalk_1.default.red('Error: No API key configured.'));
|
|
22
|
+
console.log(chalk_1.default.yellow('Run: mx auth login --api-key <your-key>'));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
return { baseUrl: config_1.config.getApiUrl(), token: apiKey };
|
|
26
|
+
}
|
|
15
27
|
/**
|
|
16
28
|
* Get the configured SDK instance
|
|
17
29
|
*
|
|
@@ -24,28 +36,47 @@ function getSdk() {
|
|
|
24
36
|
if (cachedSdk) {
|
|
25
37
|
return cachedSdk;
|
|
26
38
|
}
|
|
27
|
-
const apiKey = config_1.config.getApiKey();
|
|
28
|
-
if (!apiKey) {
|
|
29
|
-
console.error(chalk_1.default.red('Error: No API key configured.'));
|
|
30
|
-
console.log(chalk_1.default.yellow('Run: mx auth login --api-key <your-key>'));
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
const apiUrl = config_1.config.getApiUrl();
|
|
34
39
|
// Create SDK instance with configuration
|
|
35
40
|
cachedSdk = new typescript_sdk_1.Memnexus({
|
|
36
|
-
|
|
37
|
-
token: apiKey,
|
|
41
|
+
...sdkConfigFromCli(),
|
|
38
42
|
timeoutMs: 30000,
|
|
39
43
|
});
|
|
40
44
|
return cachedSdk;
|
|
41
45
|
}
|
|
42
46
|
/**
|
|
43
|
-
*
|
|
47
|
+
* Get an SDK instance whose transport makes exactly ONE attempt per call.
|
|
48
|
+
*
|
|
49
|
+
* Used by `mx memories recall`/`digest`, which owns its retry policy in
|
|
50
|
+
* lib/retry.ts (withRecallRetry). The default SDK transport retries every
|
|
51
|
+
* failure up to 3 times, POST included, and each digest attempt runs a fresh
|
|
52
|
+
* server-side LLM synthesis (GH #5570).
|
|
53
|
+
*
|
|
54
|
+
* Why a separate instance rather than a per-request override: the SDK's
|
|
55
|
+
* RetryHandler is built once per service from `SdkConfig.retry` when the client
|
|
56
|
+
* is constructed. The per-operation `retry` block the generator writes onto
|
|
57
|
+
* each request (releases/sdk-generator/src/generators/typescript/
|
|
58
|
+
* service-generator.ts) is stored on the Request but never read by the
|
|
59
|
+
* RetryHandler, so the client config is the only lever the SDK honours.
|
|
60
|
+
*/
|
|
61
|
+
function getSingleAttemptSdk() {
|
|
62
|
+
if (cachedSingleAttemptSdk) {
|
|
63
|
+
return cachedSingleAttemptSdk;
|
|
64
|
+
}
|
|
65
|
+
cachedSingleAttemptSdk = new typescript_sdk_1.Memnexus({
|
|
66
|
+
...sdkConfigFromCli(),
|
|
67
|
+
timeoutMs: 30000,
|
|
68
|
+
retry: { attempts: 1 },
|
|
69
|
+
});
|
|
70
|
+
return cachedSingleAttemptSdk;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Reset the cached SDK instances
|
|
44
74
|
*
|
|
45
75
|
* Useful for testing or when configuration changes
|
|
46
76
|
*/
|
|
47
77
|
function resetSdk() {
|
|
48
78
|
cachedSdk = null;
|
|
79
|
+
cachedSingleAttemptSdk = null;
|
|
49
80
|
}
|
|
50
81
|
// Legacy aliases for backwards compatibility during migration
|
|
51
82
|
exports.getApiClient = getSdk;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":";;;;;;AA2BA,wBAYC;AAiBD,kDAYC;AAOD,4BAGC;AAqCD,kDAwBC;AA3ID,gEAAuD;AACvD,qCAAkC;AAClC,kDAA0B;AAE1B,uBAAuB;AACvB,IAAI,SAAS,GAAoB,IAAI,CAAC;AACtC,IAAI,sBAAsB,GAAoB,IAAI,CAAC;AAEnD,sFAAsF;AACtF,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,eAAM,CAAC,SAAS,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,eAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,MAAM;IACpB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yCAAyC;IACzC,SAAS,GAAG,IAAI,yBAAQ,CAAC;QACvB,GAAG,gBAAgB,EAAE;QACrB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,mBAAmB;IACjC,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,sBAAsB,GAAG,IAAI,yBAAQ,CAAC;QACpC,GAAG,gBAAgB,EAAE;QACrB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;KACvB,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ;IACtB,SAAS,GAAG,IAAI,CAAC;IACjB,sBAAsB,GAAG,IAAI,CAAC;AAChC,CAAC;AAED,8DAA8D;AACjD,QAAA,YAAY,GAAG,MAAM,CAAC;AACtB,QAAA,cAAc,GAAG,QAAQ,CAAC;AAkBvC;;;;;;;;;;;;;;GAcG;AACH,SAAgB,mBAAmB,CAAc,QAAqB;IACpE,2CAA2C;IAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,IAAS,CAAC;IAC5B,CAAC;IAED,sCAAsC;IACtC,IAAI,QAAQ,CAAC,GAAG,YAAY,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAM,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,QAAQ,CAAC,GAAG,IAAI,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,QAAQ,CAAC,GAAQ,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/lib/retry.d.ts
CHANGED
|
@@ -177,4 +177,36 @@ export interface SingleShotRetryOptions {
|
|
|
177
177
|
* exponential backoff with jitter; either way capped at `maxWaitMs`.
|
|
178
178
|
*/
|
|
179
179
|
export declare function withSingleShotRetry<T>(fn: () => Promise<T>, opts: SingleShotRetryOptions): Promise<T>;
|
|
180
|
+
/** Maximum retries (beyond the first attempt) for one recall/digest call. */
|
|
181
|
+
export declare const RECALL_MAX_RETRIES = 1;
|
|
182
|
+
/** Largest server Retry-After the recall path will wait for before its one retry. */
|
|
183
|
+
export declare const RECALL_RETRY_AFTER_CAP_MS = 30000;
|
|
184
|
+
export interface RecallRetryOptions {
|
|
185
|
+
/** Sleep function (injectable for tests). Defaults to the real timer. */
|
|
186
|
+
sleep?: (ms: number) => Promise<void>;
|
|
187
|
+
/**
|
|
188
|
+
* Process retry budget (MX_CLI_MAX_RETRIES). The recall budget is
|
|
189
|
+
* min(this, RECALL_MAX_RETRIES), so 0 disables the recall retry too.
|
|
190
|
+
*/
|
|
191
|
+
maxRetries?: number;
|
|
192
|
+
/** Base backoff for the 502/504/408 retry. */
|
|
193
|
+
baseBackoffMs?: number;
|
|
194
|
+
/** Cap on the honoured 429 Retry-After. */
|
|
195
|
+
retryAfterCapMs?: number;
|
|
196
|
+
/** [0,1) source for jitter — injectable for deterministic tests. */
|
|
197
|
+
random?: () => number;
|
|
198
|
+
/** Called before the sleep so the caller can print a STDERR-only notice. */
|
|
199
|
+
onRetry?: SingleShotRetryOptions['onRetry'];
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* How long to wait before retrying a failed recall/digest attempt, or null when
|
|
203
|
+
* the failure must not be retried. Pure — see the policy table above.
|
|
204
|
+
*/
|
|
205
|
+
export declare function recallRetryWaitMs(error: any, opts?: Pick<RecallRetryOptions, 'baseBackoffMs' | 'retryAfterCapMs' | 'random'>): number | null;
|
|
206
|
+
/**
|
|
207
|
+
* Run a recall/digest call with the recall retry policy: at most one retry
|
|
208
|
+
* total, per {@link recallRetryWaitMs}. The final error propagates unchanged so
|
|
209
|
+
* the caller can report its cause.
|
|
210
|
+
*/
|
|
211
|
+
export declare function withRecallRetry<T>(fn: () => Promise<T>, opts?: RecallRetryOptions): Promise<T>;
|
|
180
212
|
//# sourceMappingURL=retry.d.ts.map
|
package/dist/lib/retry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/lib/retry.ts"],"names":[],"mappings":"AAiBA,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAEzD;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAEpD;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE7D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAGpD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAEzC;AA+BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAUxD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAGhD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,+FAI9B,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAQvD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/lib/retry.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/retry.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SINGLE_SHOT_MAX_RETRIES = exports.SINGLE_SHOT_MAX_WAIT_MS = exports.SINGLE_SHOT_BASE_BACKOFF_MS = exports.SINGLE_SHOT_MAX_RETRIES_MAX = exports.SINGLE_SHOT_MAX_RETRIES_MIN = exports.SINGLE_SHOT_DEFAULT_MAX_RETRIES = exports.NON_NAME_CONFLICT_409_CODES = void 0;
|
|
6
|
+
exports.RECALL_RETRY_AFTER_CAP_MS = exports.RECALL_MAX_RETRIES = exports.SINGLE_SHOT_MAX_RETRIES = exports.SINGLE_SHOT_MAX_WAIT_MS = exports.SINGLE_SHOT_BASE_BACKOFF_MS = exports.SINGLE_SHOT_MAX_RETRIES_MAX = exports.SINGLE_SHOT_MAX_RETRIES_MIN = exports.SINGLE_SHOT_DEFAULT_MAX_RETRIES = exports.NON_NAME_CONFLICT_409_CODES = void 0;
|
|
7
7
|
exports.httpStatus = httpStatus;
|
|
8
8
|
exports.isRateLimitError = isRateLimitError;
|
|
9
9
|
exports.isServiceUnavailableError = isServiceUnavailableError;
|
|
@@ -16,6 +16,8 @@ exports.getRetryAfterMs = getRetryAfterMs;
|
|
|
16
16
|
exports.sleep = sleep;
|
|
17
17
|
exports.resolveMaxRetries = resolveMaxRetries;
|
|
18
18
|
exports.withSingleShotRetry = withSingleShotRetry;
|
|
19
|
+
exports.recallRetryWaitMs = recallRetryWaitMs;
|
|
20
|
+
exports.withRecallRetry = withRecallRetry;
|
|
19
21
|
const chalk_1 = __importDefault(require("chalk"));
|
|
20
22
|
// ── Single-shot retry helper (PO CLI-latency directive, item 3) ──────────────
|
|
21
23
|
// Scripted single-request commands (`mx memories search/get/recall/create/list/
|
|
@@ -204,8 +206,12 @@ function isNameConflictError(error) {
|
|
|
204
206
|
function getRetryAfterMs(error) {
|
|
205
207
|
const data = error?.data ?? error?.response?.data ?? {};
|
|
206
208
|
const secs = data?.retryAfter ?? data?.retry_after;
|
|
207
|
-
if (typeof secs === 'number' &&
|
|
208
|
-
|
|
209
|
+
if (typeof secs === 'number' && secs >= 0) {
|
|
210
|
+
// Check the CONVERTED value: a finite `secs` such as 1e308 overflows to
|
|
211
|
+
// Infinity when scaled to ms, and would then be printed as "Infinitys".
|
|
212
|
+
const ms = Math.round(secs * 1000);
|
|
213
|
+
if (Number.isFinite(ms))
|
|
214
|
+
return ms;
|
|
209
215
|
}
|
|
210
216
|
const headers = error?.headers ?? error?.response?.headers;
|
|
211
217
|
let headerVal;
|
|
@@ -219,8 +225,9 @@ function getRetryAfterMs(error) {
|
|
|
219
225
|
}
|
|
220
226
|
if (headerVal !== undefined && headerVal !== null) {
|
|
221
227
|
const n = parseInt(String(headerVal), 10);
|
|
222
|
-
|
|
223
|
-
|
|
228
|
+
const ms = n * 1000;
|
|
229
|
+
if (Number.isFinite(ms) && n >= 0)
|
|
230
|
+
return ms;
|
|
224
231
|
}
|
|
225
232
|
return null;
|
|
226
233
|
}
|
|
@@ -320,4 +327,81 @@ async function withSingleShotRetry(fn, opts) {
|
|
|
320
327
|
}
|
|
321
328
|
}
|
|
322
329
|
}
|
|
330
|
+
// ── Recall/digest retry policy (P0 recall fix, step 1 — GH #5570) ─────────────
|
|
331
|
+
// POST /api/memories/digest runs an LLM synthesis on the server for EVERY
|
|
332
|
+
// attempt, and that synthesis shares one Azure deployment with nothing else. The
|
|
333
|
+
// generic idempotent-read policy above (up to 3 retries on 429/502/503/504/408)
|
|
334
|
+
// stacked on the SDK transport's own 3 attempts turned one failing recall into
|
|
335
|
+
// 3-12 server digests, each burning tokens on the deployment that was already
|
|
336
|
+
// returning 429 — so the retries caused the next failures. Measured on dev
|
|
337
|
+
// 2026-10-14; see GH #5570 comment 6176381407.
|
|
338
|
+
//
|
|
339
|
+
// This policy replaces retryRead for the recall/digest call ONLY. The rule is
|
|
340
|
+
// "retry only when a retry cannot add synthesis load the server did not invite":
|
|
341
|
+
//
|
|
342
|
+
// 503 (any reason, incl. deadline_exceeded): NOT retried. deadline_exceeded
|
|
343
|
+
// means the server ran out of its 20s budget; the synthesis it started is
|
|
344
|
+
// not cancelled, so a retry doubles the load that caused the timeout.
|
|
345
|
+
// 500: NOT retried (unchanged at this layer; previously retried by the SDK).
|
|
346
|
+
// In the measured incident this is Azure returning 429 to core-api.
|
|
347
|
+
// 429: retried ONCE, and only when the server supplies a `retryAfter` hint in
|
|
348
|
+
// the response BODY no larger than RECALL_RETRY_AFTER_CAP_MS. A
|
|
349
|
+
// Retry-After HEADER is not honoured on this path: the SDK's SdkError keeps
|
|
350
|
+
// status and body but drops response headers, so a header-only hint never
|
|
351
|
+
// reaches the CLI and is treated as no hint (fail, do not retry).
|
|
352
|
+
// No hint → fail: retrying blind is what amplified the incident. A hint
|
|
353
|
+
// above the cap → fail, rather than retrying before the server asked.
|
|
354
|
+
// 502/504/408 (gateway/transport): retried ONCE with a short backoff.
|
|
355
|
+
// Anything else (aborts, 4xx): never retried.
|
|
356
|
+
//
|
|
357
|
+
// The retry budget is one retry TOTAL per invocation, across all statuses, so a
|
|
358
|
+
// recall makes at most 2 server attempts. MX_CLI_MAX_RETRIES=0 still disables it.
|
|
359
|
+
/** Maximum retries (beyond the first attempt) for one recall/digest call. */
|
|
360
|
+
exports.RECALL_MAX_RETRIES = 1;
|
|
361
|
+
/** Largest server Retry-After the recall path will wait for before its one retry. */
|
|
362
|
+
exports.RECALL_RETRY_AFTER_CAP_MS = 30_000;
|
|
363
|
+
/**
|
|
364
|
+
* How long to wait before retrying a failed recall/digest attempt, or null when
|
|
365
|
+
* the failure must not be retried. Pure — see the policy table above.
|
|
366
|
+
*/
|
|
367
|
+
function recallRetryWaitMs(error, opts = {}) {
|
|
368
|
+
const status = httpStatus(error);
|
|
369
|
+
if (status === 429) {
|
|
370
|
+
const hinted = getRetryAfterMs(error);
|
|
371
|
+
const cap = opts.retryAfterCapMs ?? exports.RECALL_RETRY_AFTER_CAP_MS;
|
|
372
|
+
if (hinted === null || hinted > cap)
|
|
373
|
+
return null;
|
|
374
|
+
return hinted;
|
|
375
|
+
}
|
|
376
|
+
if (status === 502 || status === 504 || status === 408) {
|
|
377
|
+
const base = opts.baseBackoffMs ?? exports.SINGLE_SHOT_BASE_BACKOFF_MS;
|
|
378
|
+
const random = opts.random ?? Math.random;
|
|
379
|
+
return base + Math.floor(random() * 250);
|
|
380
|
+
}
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Run a recall/digest call with the recall retry policy: at most one retry
|
|
385
|
+
* total, per {@link recallRetryWaitMs}. The final error propagates unchanged so
|
|
386
|
+
* the caller can report its cause.
|
|
387
|
+
*/
|
|
388
|
+
async function withRecallRetry(fn, opts = {}) {
|
|
389
|
+
const maxRetries = Math.min(exports.RECALL_MAX_RETRIES, opts.maxRetries ?? exports.SINGLE_SHOT_MAX_RETRIES);
|
|
390
|
+
const doSleep = opts.sleep ?? sleep;
|
|
391
|
+
let attempt = 0;
|
|
392
|
+
for (;;) {
|
|
393
|
+
try {
|
|
394
|
+
return await fn();
|
|
395
|
+
}
|
|
396
|
+
catch (error) {
|
|
397
|
+
const waitMs = attempt < maxRetries ? recallRetryWaitMs(error, opts) : null;
|
|
398
|
+
if (waitMs === null) {
|
|
399
|
+
throw error;
|
|
400
|
+
}
|
|
401
|
+
attempt++;
|
|
402
|
+
opts.onRetry?.({ attempt, maxRetries, waitMs, status: httpStatus(error) });
|
|
403
|
+
await doSleep(waitMs);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
323
407
|
//# sourceMappingURL=retry.js.map
|
package/dist/lib/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/lib/retry.ts"],"names":[],"mappings":";;;;;;AAkBA,gCAEC;AAGD,4CAEC;AAGD,8DAEC;AAUD,4CAGC;AAOD,8BAEC;AAsDD,8BAUC;AAoBD,oCAGC;AAyCD,kDAQC;AAOD,
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/lib/retry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memnexus-ai/cli",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.237",
|
|
4
4
|
"description": "Command-line interface for MemNexus Core API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"node": ">=18.0.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@memnexus-ai/typescript-sdk": "^1.77.
|
|
38
|
+
"@memnexus-ai/typescript-sdk": "^1.77.12",
|
|
39
39
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
40
40
|
"axios": "^1.13.6",
|
|
41
41
|
"chalk": "^5.3.0",
|