nexus-agents 3.8.2 → 3.8.3
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/{child-mcp-config-6NPPPUVY.js → child-mcp-config-2PIBUQ2S.js} +2 -2
- package/dist/{chunk-2IFBPQX2.js → chunk-2OUSA6KC.js} +5 -5
- package/dist/{chunk-XF5NBPHS.js → chunk-45TTCQQX.js} +5 -5
- package/dist/{chunk-LLO24WNM.js → chunk-56AEAPBH.js} +2 -2
- package/dist/{chunk-E25DVSOH.js → chunk-6GPA42ZT.js} +2 -2
- package/dist/{chunk-YCJVIYXU.js → chunk-7WPB57DI.js} +2 -2
- package/dist/{chunk-NEEDICVD.js → chunk-7X4D7ANX.js} +2 -2
- package/dist/{chunk-FH5GVIUB.js → chunk-A56RXUI6.js} +2 -2
- package/dist/{chunk-Q4N2AMUH.js → chunk-AL33VIXL.js} +21 -11
- package/dist/chunk-AL33VIXL.js.map +1 -0
- package/dist/{chunk-SIAT5KIP.js → chunk-CJQUKCFX.js} +2 -2
- package/dist/{chunk-YIMAWNZF.js → chunk-DBPXOHI5.js} +2 -2
- package/dist/{chunk-A7NXSL62.js → chunk-DHXLS4KC.js} +3 -3
- package/dist/{chunk-NDIEJ2IW.js → chunk-HOCCD7UE.js} +2 -2
- package/dist/{chunk-PRMJRGTB.js → chunk-I7NYAUZP.js} +11 -5
- package/dist/chunk-I7NYAUZP.js.map +1 -0
- package/dist/{chunk-2VYSPAPK.js → chunk-IYCTEPKA.js} +3 -3
- package/dist/{chunk-FG3BJ3EG.js → chunk-JD72GJWG.js} +4 -4
- package/dist/{chunk-RH2XESKI.js → chunk-JDDNQU3Z.js} +2 -2
- package/dist/{chunk-DVVYK7AU.js → chunk-JDVNIRG5.js} +2 -2
- package/dist/{chunk-LIYYP74L.js → chunk-KDLFUQSW.js} +2 -2
- package/dist/{chunk-FN4IJNEL.js → chunk-L3KUH66L.js} +3 -3
- package/dist/{chunk-2CTS47RO.js → chunk-MUTPTBWG.js} +2 -2
- package/dist/{chunk-222AX67B.js → chunk-NYEZJYLW.js} +4 -4
- package/dist/{chunk-A4DFWNLB.js → chunk-RMNQ5Y2Y.js} +8 -8
- package/dist/{chunk-TSCF7SCI.js → chunk-RWMQ3YJW.js} +77 -15
- package/dist/{chunk-TSCF7SCI.js.map → chunk-RWMQ3YJW.js.map} +1 -1
- package/dist/{chunk-BIG3SAUY.js → chunk-S75ALOWG.js} +2 -2
- package/dist/{chunk-SDKH4DZS.js → chunk-SBI7WTXE.js} +5 -5
- package/dist/{chunk-WN4GPQEW.js → chunk-TO32OEQJ.js} +4 -4
- package/dist/{chunk-ATOORYKU.js → chunk-U7RX45LD.js} +2 -2
- package/dist/{chunk-24KV7AHU.js → chunk-UFG2PWHA.js} +7 -7
- package/dist/{chunk-FJNCXY4H.js → chunk-UY5QWMGO.js} +8 -8
- package/dist/{chunk-K4PIBH4M.js → chunk-VTYYI2W3.js} +2 -2
- package/dist/{chunk-7LEFPG22.js → chunk-XRB6OXKK.js} +35 -35
- package/dist/{chunk-CYGJGP52.js → chunk-Y2RZWSBO.js} +5 -5
- package/dist/{chunk-OVDMUJJJ.js → chunk-YPVLUX5D.js} +3 -3
- package/dist/{cli-circuit-breaker-GGDXSODU.js → cli-circuit-breaker-CN3TTRGA.js} +3 -3
- package/dist/cli.js +41 -41
- package/dist/{composite-router-3JTQWELQ.js → composite-router-BKWI2DWU.js} +2 -2
- package/dist/{consensus-vote-VIVMYSH7.js → consensus-vote-QK5TMW5O.js} +16 -16
- package/dist/{context-retriever-CD4M2XZI.js → context-retriever-LICMS4FY.js} +8 -8
- package/dist/{doctor-deep-DGIEA3BS.js → doctor-deep-JMUKTWXY.js} +3 -3
- package/dist/{doctor-live-UAXCKP2P.js → doctor-live-VSSZGONL.js} +9 -9
- package/dist/{expert-bridge-NJ7ROLKV.js → expert-bridge-GEK3O27T.js} +4 -4
- package/dist/{factory-HXTWV5M2.js → factory-DTR6AHD7.js} +9 -9
- package/dist/{factory-YQTOTSAG.js → factory-Y3ZH5SXY.js} +5 -5
- package/dist/{improvement-review-BXMMAIF7.js → improvement-review-SRIDB3XF.js} +5 -5
- package/dist/index.js +30 -30
- package/dist/{init-opencode-5JABJDNL.js → init-opencode-FZY5PH7I.js} +6 -6
- package/dist/{issue-triage-EV64NQRS.js → issue-triage-4BCWSTD6.js} +6 -6
- package/dist/{pr-reviewer-helpers-MDLLZ2XR.js → pr-reviewer-helpers-WZH6KPEW.js} +4 -4
- package/dist/{registry-command-LP7HOKWD.js → registry-command-SVDXUNIR.js} +2 -2
- package/dist/{repo-security-plan-CJNJQNIM.js → repo-security-plan-6KQVPGFQ.js} +3 -3
- package/dist/{research-helpers-synthesize-J5ZVG6PP.js → research-helpers-synthesize-74CBM5N3.js} +4 -4
- package/dist/{routing-memory-UPCTNDFG.js → routing-memory-AKPBEY7V.js} +2 -2
- package/dist/{session-memory-K67JAZTU.js → session-memory-ZECEYOSG.js} +3 -3
- package/dist/{setup-command-UR4CR5UA.js → setup-command-XOEQDINC.js} +14 -14
- package/dist/{setup-config-UEQMYXQ5.js → setup-config-F3WQWJHA.js} +3 -3
- package/dist/{setup-custom-api-SHMT2T3M.js → setup-custom-api-SKD5MTOT.js} +4 -4
- package/dist/{tool-memory-J2RP3FTT.js → tool-memory-PMLDOLWI.js} +5 -5
- package/dist/{unified-registry-2JCOLE4F.js → unified-registry-SGS73VVW.js} +10 -10
- package/dist/{weather-report-XHGOK6E7.js → weather-report-4N4JYOM5.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-PRMJRGTB.js.map +0 -1
- package/dist/chunk-Q4N2AMUH.js.map +0 -1
- /package/dist/{child-mcp-config-6NPPPUVY.js.map → child-mcp-config-2PIBUQ2S.js.map} +0 -0
- /package/dist/{chunk-2IFBPQX2.js.map → chunk-2OUSA6KC.js.map} +0 -0
- /package/dist/{chunk-XF5NBPHS.js.map → chunk-45TTCQQX.js.map} +0 -0
- /package/dist/{chunk-LLO24WNM.js.map → chunk-56AEAPBH.js.map} +0 -0
- /package/dist/{chunk-E25DVSOH.js.map → chunk-6GPA42ZT.js.map} +0 -0
- /package/dist/{chunk-YCJVIYXU.js.map → chunk-7WPB57DI.js.map} +0 -0
- /package/dist/{chunk-NEEDICVD.js.map → chunk-7X4D7ANX.js.map} +0 -0
- /package/dist/{chunk-FH5GVIUB.js.map → chunk-A56RXUI6.js.map} +0 -0
- /package/dist/{chunk-SIAT5KIP.js.map → chunk-CJQUKCFX.js.map} +0 -0
- /package/dist/{chunk-YIMAWNZF.js.map → chunk-DBPXOHI5.js.map} +0 -0
- /package/dist/{chunk-A7NXSL62.js.map → chunk-DHXLS4KC.js.map} +0 -0
- /package/dist/{chunk-NDIEJ2IW.js.map → chunk-HOCCD7UE.js.map} +0 -0
- /package/dist/{chunk-2VYSPAPK.js.map → chunk-IYCTEPKA.js.map} +0 -0
- /package/dist/{chunk-FG3BJ3EG.js.map → chunk-JD72GJWG.js.map} +0 -0
- /package/dist/{chunk-RH2XESKI.js.map → chunk-JDDNQU3Z.js.map} +0 -0
- /package/dist/{chunk-DVVYK7AU.js.map → chunk-JDVNIRG5.js.map} +0 -0
- /package/dist/{chunk-LIYYP74L.js.map → chunk-KDLFUQSW.js.map} +0 -0
- /package/dist/{chunk-FN4IJNEL.js.map → chunk-L3KUH66L.js.map} +0 -0
- /package/dist/{chunk-2CTS47RO.js.map → chunk-MUTPTBWG.js.map} +0 -0
- /package/dist/{chunk-222AX67B.js.map → chunk-NYEZJYLW.js.map} +0 -0
- /package/dist/{chunk-A4DFWNLB.js.map → chunk-RMNQ5Y2Y.js.map} +0 -0
- /package/dist/{chunk-BIG3SAUY.js.map → chunk-S75ALOWG.js.map} +0 -0
- /package/dist/{chunk-SDKH4DZS.js.map → chunk-SBI7WTXE.js.map} +0 -0
- /package/dist/{chunk-WN4GPQEW.js.map → chunk-TO32OEQJ.js.map} +0 -0
- /package/dist/{chunk-ATOORYKU.js.map → chunk-U7RX45LD.js.map} +0 -0
- /package/dist/{chunk-24KV7AHU.js.map → chunk-UFG2PWHA.js.map} +0 -0
- /package/dist/{chunk-FJNCXY4H.js.map → chunk-UY5QWMGO.js.map} +0 -0
- /package/dist/{chunk-K4PIBH4M.js.map → chunk-VTYYI2W3.js.map} +0 -0
- /package/dist/{chunk-7LEFPG22.js.map → chunk-XRB6OXKK.js.map} +0 -0
- /package/dist/{chunk-CYGJGP52.js.map → chunk-Y2RZWSBO.js.map} +0 -0
- /package/dist/{chunk-OVDMUJJJ.js.map → chunk-YPVLUX5D.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-GGDXSODU.js.map → cli-circuit-breaker-CN3TTRGA.js.map} +0 -0
- /package/dist/{composite-router-3JTQWELQ.js.map → composite-router-BKWI2DWU.js.map} +0 -0
- /package/dist/{consensus-vote-VIVMYSH7.js.map → consensus-vote-QK5TMW5O.js.map} +0 -0
- /package/dist/{context-retriever-CD4M2XZI.js.map → context-retriever-LICMS4FY.js.map} +0 -0
- /package/dist/{doctor-deep-DGIEA3BS.js.map → doctor-deep-JMUKTWXY.js.map} +0 -0
- /package/dist/{doctor-live-UAXCKP2P.js.map → doctor-live-VSSZGONL.js.map} +0 -0
- /package/dist/{expert-bridge-NJ7ROLKV.js.map → expert-bridge-GEK3O27T.js.map} +0 -0
- /package/dist/{factory-HXTWV5M2.js.map → factory-DTR6AHD7.js.map} +0 -0
- /package/dist/{factory-YQTOTSAG.js.map → factory-Y3ZH5SXY.js.map} +0 -0
- /package/dist/{improvement-review-BXMMAIF7.js.map → improvement-review-SRIDB3XF.js.map} +0 -0
- /package/dist/{init-opencode-5JABJDNL.js.map → init-opencode-FZY5PH7I.js.map} +0 -0
- /package/dist/{issue-triage-EV64NQRS.js.map → issue-triage-4BCWSTD6.js.map} +0 -0
- /package/dist/{pr-reviewer-helpers-MDLLZ2XR.js.map → pr-reviewer-helpers-WZH6KPEW.js.map} +0 -0
- /package/dist/{registry-command-LP7HOKWD.js.map → registry-command-SVDXUNIR.js.map} +0 -0
- /package/dist/{repo-security-plan-CJNJQNIM.js.map → repo-security-plan-6KQVPGFQ.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-J5ZVG6PP.js.map → research-helpers-synthesize-74CBM5N3.js.map} +0 -0
- /package/dist/{routing-memory-UPCTNDFG.js.map → routing-memory-AKPBEY7V.js.map} +0 -0
- /package/dist/{session-memory-K67JAZTU.js.map → session-memory-ZECEYOSG.js.map} +0 -0
- /package/dist/{setup-command-UR4CR5UA.js.map → setup-command-XOEQDINC.js.map} +0 -0
- /package/dist/{setup-config-UEQMYXQ5.js.map → setup-config-F3WQWJHA.js.map} +0 -0
- /package/dist/{setup-custom-api-SHMT2T3M.js.map → setup-custom-api-SKD5MTOT.js.map} +0 -0
- /package/dist/{tool-memory-J2RP3FTT.js.map → tool-memory-PMLDOLWI.js.map} +0 -0
- /package/dist/{unified-registry-2JCOLE4F.js.map → unified-registry-SGS73VVW.js.map} +0 -0
- /package/dist/{weather-report-XHGOK6E7.js.map → weather-report-4N4JYOM5.js.map} +0 -0
|
@@ -2623,7 +2623,7 @@ function setDefaultRegistry(registry) {
|
|
|
2623
2623
|
}
|
|
2624
2624
|
async function reloadDefaultRegistry() {
|
|
2625
2625
|
globalRegistry = buildDefaultRegistry();
|
|
2626
|
-
const { resetGlobalRegistry } = await import("./unified-registry-
|
|
2626
|
+
const { resetGlobalRegistry } = await import("./unified-registry-SGS73VVW.js");
|
|
2627
2627
|
resetGlobalRegistry();
|
|
2628
2628
|
return globalRegistry;
|
|
2629
2629
|
}
|
|
@@ -11188,27 +11188,86 @@ function isRateLimitText(text) {
|
|
|
11188
11188
|
function isRateLimitLikeError(error) {
|
|
11189
11189
|
return isRateLimitText(getErrorMessage(error));
|
|
11190
11190
|
}
|
|
11191
|
+
var RETRY_HINT_PATTERNS = [
|
|
11192
|
+
// "retry after X seconds" / "retry-after: X sec"
|
|
11193
|
+
{ pattern: /retry[- ]?after[:\s]+(\d+(?:\.\d+)?)\s*(?:s|sec)/i, msPerUnit: 1e3 },
|
|
11194
|
+
// "retry after X ms" / "wait X milliseconds"
|
|
11195
|
+
{ pattern: /(?:retry[- ]?after|wait)[:\s]+(\d+)\s*(?:ms|millisecond)/i, msPerUnit: 1 },
|
|
11196
|
+
// "try again in X seconds" — the OpenAI family's phrasing.
|
|
11197
|
+
{ pattern: /try again in (\d+(?:\.\d+)?)\s*(?:s|sec)/i, msPerUnit: 1e3 },
|
|
11198
|
+
// #4606: the sub-second variant. The rule above cannot match "try again in
|
|
11199
|
+
// 632ms" — `632` is followed by `m`, not `s` — so the OpenAI family silently
|
|
11200
|
+
// lost every horizon shorter than a second.
|
|
11201
|
+
{ pattern: /try again in (\d+(?:\.\d+)?)\s*ms\b/i, msPerUnit: 1 },
|
|
11202
|
+
// #4606: Gemini states its horizon only as google.rpc.RetryInfo inside the
|
|
11203
|
+
// response body, and `@google/genai` stringifies that whole body into the
|
|
11204
|
+
// error message (its `ApiError` carries `{message, status}` and no headers),
|
|
11205
|
+
// so this is the only place the horizon is reachable on that vendor.
|
|
11206
|
+
{ pattern: /"retrydelay"\s*:\s*"(\d+(?:\.\d+)?)s"/i, msPerUnit: 1e3 }
|
|
11207
|
+
];
|
|
11191
11208
|
function parseRetryAfterMs(errorMessage) {
|
|
11192
11209
|
const lower = errorMessage.toLowerCase();
|
|
11193
|
-
const
|
|
11194
|
-
|
|
11195
|
-
const
|
|
11196
|
-
|
|
11210
|
+
for (const { pattern, msPerUnit } of RETRY_HINT_PATTERNS) {
|
|
11211
|
+
const match = pattern.exec(lower);
|
|
11212
|
+
const captured = match?.[1];
|
|
11213
|
+
if (captured !== void 0) {
|
|
11214
|
+
return Math.ceil(Number.parseFloat(captured) * msPerUnit);
|
|
11215
|
+
}
|
|
11197
11216
|
}
|
|
11198
|
-
|
|
11199
|
-
|
|
11200
|
-
|
|
11217
|
+
return void 0;
|
|
11218
|
+
}
|
|
11219
|
+
var RETRY_AFTER_HEADER = "retry-after";
|
|
11220
|
+
var HEADER_BAG_FIELDS = ["headers", "responseHeaders"];
|
|
11221
|
+
var MAX_CAUSE_DEPTH = 3;
|
|
11222
|
+
var HTTP_DATE_PREFIX = /^(?:mon|tue|wed|thu|fri|sat|sun)/i;
|
|
11223
|
+
function parseRetryAfterHeader(value) {
|
|
11224
|
+
if (value === null || value === void 0) return void 0;
|
|
11225
|
+
const trimmed = value.trim();
|
|
11226
|
+
if (trimmed === "") return void 0;
|
|
11227
|
+
if (/^\d+$/.test(trimmed)) {
|
|
11228
|
+
return Number.parseInt(trimmed, 10) * 1e3;
|
|
11229
|
+
}
|
|
11230
|
+
if (!HTTP_DATE_PREFIX.test(trimmed)) return void 0;
|
|
11231
|
+
const at = Date.parse(trimmed);
|
|
11232
|
+
if (Number.isNaN(at)) return void 0;
|
|
11233
|
+
return Math.max(0, at - getTimeProvider().now());
|
|
11234
|
+
}
|
|
11235
|
+
function readRetryAfterField(bag) {
|
|
11236
|
+
if (bag === null || typeof bag !== "object") return void 0;
|
|
11237
|
+
const getter = bag.get;
|
|
11238
|
+
if (typeof getter === "function") {
|
|
11239
|
+
const raw = bag.get(RETRY_AFTER_HEADER);
|
|
11240
|
+
return typeof raw === "string" ? raw : void 0;
|
|
11241
|
+
}
|
|
11242
|
+
for (const [key, val] of Object.entries(bag)) {
|
|
11243
|
+
if (key.toLowerCase() === RETRY_AFTER_HEADER && typeof val === "string") return val;
|
|
11201
11244
|
}
|
|
11202
|
-
|
|
11203
|
-
|
|
11204
|
-
|
|
11205
|
-
|
|
11245
|
+
return void 0;
|
|
11246
|
+
}
|
|
11247
|
+
function extractRetryAfterMs(error) {
|
|
11248
|
+
let current = error;
|
|
11249
|
+
for (let depth = 0; depth <= MAX_CAUSE_DEPTH; depth++) {
|
|
11250
|
+
if (current === null || typeof current !== "object") return void 0;
|
|
11251
|
+
const obj = current;
|
|
11252
|
+
for (const field of HEADER_BAG_FIELDS) {
|
|
11253
|
+
const parsed = parseRetryAfterHeader(readRetryAfterField(obj[field]));
|
|
11254
|
+
if (parsed !== void 0) return parsed;
|
|
11255
|
+
}
|
|
11256
|
+
current = obj["cause"];
|
|
11206
11257
|
}
|
|
11207
11258
|
return void 0;
|
|
11208
11259
|
}
|
|
11260
|
+
var RETRY_AFTER_CONTEXT_KEY = "retryAfterMs";
|
|
11261
|
+
function retryAfterMsFromContext(context) {
|
|
11262
|
+
const raw = context?.[RETRY_AFTER_CONTEXT_KEY];
|
|
11263
|
+
return typeof raw === "number" && Number.isFinite(raw) && raw >= 0 ? raw : void 0;
|
|
11264
|
+
}
|
|
11265
|
+
function resolveRetryAfterMs(error, message) {
|
|
11266
|
+
return extractRetryAfterMs(error) ?? parseRetryAfterMs(message);
|
|
11267
|
+
}
|
|
11209
11268
|
function toRateLimitError(error, provider) {
|
|
11210
11269
|
const message = getErrorMessage(error);
|
|
11211
|
-
const retryAfterMs =
|
|
11270
|
+
const retryAfterMs = resolveRetryAfterMs(error, message);
|
|
11212
11271
|
return new RateLimitError(message, {
|
|
11213
11272
|
...retryAfterMs !== void 0 ? { retryAfterMs } : {},
|
|
11214
11273
|
...provider !== void 0 ? { provider } : {},
|
|
@@ -14776,7 +14835,7 @@ var CompositeRouter = class _CompositeRouter {
|
|
|
14776
14835
|
*/
|
|
14777
14836
|
async consultUnifiedContext(task) {
|
|
14778
14837
|
try {
|
|
14779
|
-
const { getContextForTask, inferTaskCategory } = await import("./context-retriever-
|
|
14838
|
+
const { getContextForTask, inferTaskCategory } = await import("./context-retriever-LICMS4FY.js");
|
|
14780
14839
|
const ctx = await getContextForTask({
|
|
14781
14840
|
task: task.content,
|
|
14782
14841
|
category: inferTaskCategory(task.content),
|
|
@@ -16230,6 +16289,9 @@ export {
|
|
|
16230
16289
|
isRateLimitText,
|
|
16231
16290
|
isRateLimitLikeError,
|
|
16232
16291
|
parseRetryAfterMs,
|
|
16292
|
+
RETRY_AFTER_CONTEXT_KEY,
|
|
16293
|
+
retryAfterMsFromContext,
|
|
16294
|
+
resolveRetryAfterMs,
|
|
16233
16295
|
toRateLimitError,
|
|
16234
16296
|
recordRateLimitEvent,
|
|
16235
16297
|
getFallbackChainForCategory,
|
|
@@ -16362,4 +16424,4 @@ export {
|
|
|
16362
16424
|
AgentCapability,
|
|
16363
16425
|
OrchestratorError
|
|
16364
16426
|
};
|
|
16365
|
-
//# sourceMappingURL=chunk-
|
|
16427
|
+
//# sourceMappingURL=chunk-RWMQ3YJW.js.map
|