nexus-agents 2.158.1 → 2.160.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/dist/{child-mcp-config-ODAUXUWE.js → child-mcp-config-XEXFG3LA.js} +2 -2
- package/dist/{chunk-YQRP5NST.js → chunk-3QIXGEY7.js} +2 -2
- package/dist/{chunk-2O63LDYB.js → chunk-4AXOISAP.js} +3 -3
- package/dist/{chunk-J2JP35S3.js → chunk-5NVU25BA.js} +4 -4
- package/dist/{chunk-Q7TALELN.js → chunk-7XISTLQP.js} +8 -8
- package/dist/{chunk-4IXC6V6O.js → chunk-AMY4S4VD.js} +2 -2
- package/dist/{chunk-OOGGQ2NA.js → chunk-B23GFISN.js} +3 -3
- package/dist/{chunk-Q4JNYY2Y.js → chunk-E7LG7L4O.js} +144 -13
- package/dist/chunk-E7LG7L4O.js.map +1 -0
- package/dist/{chunk-KS622JST.js → chunk-ED6B55WK.js} +3 -3
- package/dist/{chunk-R76LLKT2.js → chunk-FYQSTNG6.js} +5 -5
- package/dist/{chunk-S3H4VWN5.js → chunk-HBLVOFLL.js} +2 -2
- package/dist/{chunk-7J3AAPH5.js → chunk-HT3B6ZWV.js} +2 -2
- package/dist/{chunk-FWW5GCEH.js → chunk-I2DK3KSH.js} +2 -2
- package/dist/{chunk-55ZDYUBT.js → chunk-I6NTUVGW.js} +2 -2
- package/dist/{chunk-LSWGHIJK.js → chunk-ICYEG7T4.js} +7 -7
- package/dist/{chunk-6MCSD37T.js → chunk-IG2SIC2E.js} +2 -2
- package/dist/{chunk-VKVJSPHJ.js → chunk-JYV5MZC6.js} +4 -4
- package/dist/{chunk-K6HJLOPA.js → chunk-MXNIOTDY.js} +3 -3
- package/dist/{chunk-CSHFTQA7.js → chunk-O27ZG7BL.js} +3 -3
- package/dist/{chunk-HANP6FHM.js → chunk-OQUELE4L.js} +54 -40
- package/dist/{chunk-HANP6FHM.js.map → chunk-OQUELE4L.js.map} +1 -1
- package/dist/{chunk-XLJCXM7L.js → chunk-Q6EGZKLE.js} +2 -2
- package/dist/{chunk-S7PFS6PX.js → chunk-QD653D5O.js} +7 -7
- package/dist/{chunk-42ZSRIEX.js → chunk-QVIQAIOK.js} +2 -2
- package/dist/{chunk-YH5U3XCP.js → chunk-RNCBSF6I.js} +2 -2
- package/dist/{chunk-RI3BFANI.js → chunk-RU336IEH.js} +2 -2
- package/dist/{chunk-I32MYAT5.js → chunk-SHFCJJTY.js} +2 -2
- package/dist/{chunk-UQOJ2KGW.js → chunk-SN4Q7TZT.js} +2 -2
- package/dist/{chunk-CTL5HUZZ.js → chunk-SNKSSSAR.js} +4 -4
- package/dist/{chunk-5CMDYYNC.js → chunk-VKUP2PG5.js} +7 -7
- package/dist/{chunk-6B5VQ2SY.js → chunk-VWX75FKD.js} +5 -5
- package/dist/{chunk-GG7MGRQ6.js → chunk-WP6UBBNJ.js} +4 -4
- package/dist/{chunk-U5KSLUZ6.js → chunk-WRISLYLK.js} +2 -2
- package/dist/{chunk-DSUFV2ZN.js → chunk-XLEZBTQG.js} +2 -2
- package/dist/{chunk-HHNBKTII.js → chunk-ZBEJITR6.js} +5 -5
- package/dist/{chunk-YMMX6ELC.js → chunk-ZO54JW4V.js} +3 -3
- package/dist/{cli-circuit-breaker-MLVJXLK6.js → cli-circuit-breaker-SAHRY3BI.js} +4 -4
- package/dist/cli.js +41 -41
- package/dist/{composite-router-FTECAR4U.js → composite-router-MFJNLR3O.js} +2 -2
- package/dist/{consensus-vote-MMZTCPL7.js → consensus-vote-Z55357CP.js} +15 -15
- package/dist/{context-retriever-MPZ7T4VA.js → context-retriever-Z474PNZ4.js} +8 -8
- package/dist/{doctor-deep-KUB4HPCS.js → doctor-deep-IESAJDVW.js} +3 -3
- package/dist/{expert-bridge-EK362QGQ.js → expert-bridge-JW4DJPH3.js} +4 -4
- package/dist/{factory-GOO7MH5G.js → factory-6JIXPGRH.js} +8 -8
- package/dist/{factory-XBUQP3UB.js → factory-Z7GGTUK2.js} +5 -5
- package/dist/{improvement-review-XXRDVOJT.js → improvement-review-5DRIOL5K.js} +5 -5
- package/dist/index.d.ts +78 -2
- package/dist/index.js +30 -30
- package/dist/index.js.map +1 -1
- package/dist/{init-opencode-RNSCHZIW.js → init-opencode-T2F5WSLT.js} +6 -6
- package/dist/{issue-triage-7TWTN6LI.js → issue-triage-RC5VVUAV.js} +6 -6
- package/dist/{pr-reviewer-helpers-VT4DR5BC.js → pr-reviewer-helpers-G35TGA7R.js} +4 -4
- package/dist/{registry-command-QVBYBBWR.js → registry-command-47UO65SV.js} +2 -2
- package/dist/{repo-security-plan-VSQWMONM.js → repo-security-plan-CGXT5CIP.js} +3 -3
- package/dist/{research-helpers-synthesize-VCUOMHPD.js → research-helpers-synthesize-37WHCE5I.js} +4 -4
- package/dist/{routing-memory-PP4UJVH4.js → routing-memory-YWPM45FH.js} +2 -2
- package/dist/{session-memory-TVV2IOGB.js → session-memory-ENUULCNK.js} +3 -3
- package/dist/{setup-command-D5PU6XXA.js → setup-command-T6I5TRFR.js} +11 -11
- package/dist/{setup-config-HZHL4QMD.js → setup-config-AMGGWQHX.js} +3 -3
- package/dist/{setup-custom-api-H6FJ5VWL.js → setup-custom-api-UNAPYLEX.js} +3 -3
- package/dist/{tool-memory-YLCJZVMV.js → tool-memory-QH3DN2SU.js} +5 -5
- package/dist/{unified-registry-ZUPTC7OR.js → unified-registry-YXQGTU3P.js} +9 -9
- package/dist/{weather-report-XPDW6LGI.js → weather-report-BUKQ7YPV.js} +6 -2
- package/package.json +1 -1
- package/dist/chunk-Q4JNYY2Y.js.map +0 -1
- /package/dist/{child-mcp-config-ODAUXUWE.js.map → child-mcp-config-XEXFG3LA.js.map} +0 -0
- /package/dist/{chunk-YQRP5NST.js.map → chunk-3QIXGEY7.js.map} +0 -0
- /package/dist/{chunk-2O63LDYB.js.map → chunk-4AXOISAP.js.map} +0 -0
- /package/dist/{chunk-J2JP35S3.js.map → chunk-5NVU25BA.js.map} +0 -0
- /package/dist/{chunk-Q7TALELN.js.map → chunk-7XISTLQP.js.map} +0 -0
- /package/dist/{chunk-4IXC6V6O.js.map → chunk-AMY4S4VD.js.map} +0 -0
- /package/dist/{chunk-OOGGQ2NA.js.map → chunk-B23GFISN.js.map} +0 -0
- /package/dist/{chunk-KS622JST.js.map → chunk-ED6B55WK.js.map} +0 -0
- /package/dist/{chunk-R76LLKT2.js.map → chunk-FYQSTNG6.js.map} +0 -0
- /package/dist/{chunk-S3H4VWN5.js.map → chunk-HBLVOFLL.js.map} +0 -0
- /package/dist/{chunk-7J3AAPH5.js.map → chunk-HT3B6ZWV.js.map} +0 -0
- /package/dist/{chunk-FWW5GCEH.js.map → chunk-I2DK3KSH.js.map} +0 -0
- /package/dist/{chunk-55ZDYUBT.js.map → chunk-I6NTUVGW.js.map} +0 -0
- /package/dist/{chunk-LSWGHIJK.js.map → chunk-ICYEG7T4.js.map} +0 -0
- /package/dist/{chunk-6MCSD37T.js.map → chunk-IG2SIC2E.js.map} +0 -0
- /package/dist/{chunk-VKVJSPHJ.js.map → chunk-JYV5MZC6.js.map} +0 -0
- /package/dist/{chunk-K6HJLOPA.js.map → chunk-MXNIOTDY.js.map} +0 -0
- /package/dist/{chunk-CSHFTQA7.js.map → chunk-O27ZG7BL.js.map} +0 -0
- /package/dist/{chunk-XLJCXM7L.js.map → chunk-Q6EGZKLE.js.map} +0 -0
- /package/dist/{chunk-S7PFS6PX.js.map → chunk-QD653D5O.js.map} +0 -0
- /package/dist/{chunk-42ZSRIEX.js.map → chunk-QVIQAIOK.js.map} +0 -0
- /package/dist/{chunk-YH5U3XCP.js.map → chunk-RNCBSF6I.js.map} +0 -0
- /package/dist/{chunk-RI3BFANI.js.map → chunk-RU336IEH.js.map} +0 -0
- /package/dist/{chunk-I32MYAT5.js.map → chunk-SHFCJJTY.js.map} +0 -0
- /package/dist/{chunk-UQOJ2KGW.js.map → chunk-SN4Q7TZT.js.map} +0 -0
- /package/dist/{chunk-CTL5HUZZ.js.map → chunk-SNKSSSAR.js.map} +0 -0
- /package/dist/{chunk-5CMDYYNC.js.map → chunk-VKUP2PG5.js.map} +0 -0
- /package/dist/{chunk-6B5VQ2SY.js.map → chunk-VWX75FKD.js.map} +0 -0
- /package/dist/{chunk-GG7MGRQ6.js.map → chunk-WP6UBBNJ.js.map} +0 -0
- /package/dist/{chunk-U5KSLUZ6.js.map → chunk-WRISLYLK.js.map} +0 -0
- /package/dist/{chunk-DSUFV2ZN.js.map → chunk-XLEZBTQG.js.map} +0 -0
- /package/dist/{chunk-HHNBKTII.js.map → chunk-ZBEJITR6.js.map} +0 -0
- /package/dist/{chunk-YMMX6ELC.js.map → chunk-ZO54JW4V.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-MLVJXLK6.js.map → cli-circuit-breaker-SAHRY3BI.js.map} +0 -0
- /package/dist/{composite-router-FTECAR4U.js.map → composite-router-MFJNLR3O.js.map} +0 -0
- /package/dist/{consensus-vote-MMZTCPL7.js.map → consensus-vote-Z55357CP.js.map} +0 -0
- /package/dist/{context-retriever-MPZ7T4VA.js.map → context-retriever-Z474PNZ4.js.map} +0 -0
- /package/dist/{doctor-deep-KUB4HPCS.js.map → doctor-deep-IESAJDVW.js.map} +0 -0
- /package/dist/{expert-bridge-EK362QGQ.js.map → expert-bridge-JW4DJPH3.js.map} +0 -0
- /package/dist/{factory-GOO7MH5G.js.map → factory-6JIXPGRH.js.map} +0 -0
- /package/dist/{factory-XBUQP3UB.js.map → factory-Z7GGTUK2.js.map} +0 -0
- /package/dist/{improvement-review-XXRDVOJT.js.map → improvement-review-5DRIOL5K.js.map} +0 -0
- /package/dist/{init-opencode-RNSCHZIW.js.map → init-opencode-T2F5WSLT.js.map} +0 -0
- /package/dist/{issue-triage-7TWTN6LI.js.map → issue-triage-RC5VVUAV.js.map} +0 -0
- /package/dist/{pr-reviewer-helpers-VT4DR5BC.js.map → pr-reviewer-helpers-G35TGA7R.js.map} +0 -0
- /package/dist/{registry-command-QVBYBBWR.js.map → registry-command-47UO65SV.js.map} +0 -0
- /package/dist/{repo-security-plan-VSQWMONM.js.map → repo-security-plan-CGXT5CIP.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-VCUOMHPD.js.map → research-helpers-synthesize-37WHCE5I.js.map} +0 -0
- /package/dist/{routing-memory-PP4UJVH4.js.map → routing-memory-YWPM45FH.js.map} +0 -0
- /package/dist/{session-memory-TVV2IOGB.js.map → session-memory-ENUULCNK.js.map} +0 -0
- /package/dist/{setup-command-D5PU6XXA.js.map → setup-command-T6I5TRFR.js.map} +0 -0
- /package/dist/{setup-config-HZHL4QMD.js.map → setup-config-AMGGWQHX.js.map} +0 -0
- /package/dist/{setup-custom-api-H6FJ5VWL.js.map → setup-custom-api-UNAPYLEX.js.map} +0 -0
- /package/dist/{tool-memory-YLCJZVMV.js.map → tool-memory-QH3DN2SU.js.map} +0 -0
- /package/dist/{unified-registry-ZUPTC7OR.js.map → unified-registry-YXQGTU3P.js.map} +0 -0
- /package/dist/{weather-report-XPDW6LGI.js.map → weather-report-BUKQ7YPV.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createLogger
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-E7LG7L4O.js";
|
|
4
4
|
import "./chunk-NL7SZQPW.js";
|
|
5
5
|
import "./chunk-DHVMSIT5.js";
|
|
6
6
|
import "./chunk-ZPWHCABL.js";
|
|
@@ -60,4 +60,4 @@ export {
|
|
|
60
60
|
generateMcpConfig,
|
|
61
61
|
getDefaultAllowedTools
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=child-mcp-config-
|
|
63
|
+
//# sourceMappingURL=child-mcp-config-XEXFG3LA.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getErrorMessage,
|
|
6
6
|
getTimeProvider,
|
|
7
7
|
ok
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-E7LG7L4O.js";
|
|
9
9
|
|
|
10
10
|
// src/cli-adapters/circuit-breaker-types.ts
|
|
11
11
|
var CircuitErrorCode = {
|
|
@@ -375,4 +375,4 @@ export {
|
|
|
375
375
|
mapCliErrorToCategory,
|
|
376
376
|
mapModelErrorToCategory
|
|
377
377
|
};
|
|
378
|
-
//# sourceMappingURL=chunk-
|
|
378
|
+
//# sourceMappingURL=chunk-3QIXGEY7.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
emitClawGuardViolation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QVIQAIOK.js";
|
|
4
4
|
import {
|
|
5
5
|
CACHE_TIMEOUTS,
|
|
6
6
|
MCP_TIMEOUTS,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
getTimeProvider,
|
|
17
17
|
ok,
|
|
18
18
|
resolveToolClassGuardMs
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-E7LG7L4O.js";
|
|
20
20
|
import {
|
|
21
21
|
getNexusDataDir
|
|
22
22
|
} from "./chunk-DHVMSIT5.js";
|
|
@@ -2023,4 +2023,4 @@ export {
|
|
|
2023
2023
|
VOTING_THRESHOLDS,
|
|
2024
2024
|
ConsensusMetricsSchema
|
|
2025
2025
|
};
|
|
2026
|
-
//# sourceMappingURL=chunk-
|
|
2026
|
+
//# sourceMappingURL=chunk-4AXOISAP.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GitHubProvider,
|
|
3
3
|
ScmError
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HT3B6ZWV.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveToken
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-Q6EGZKLE.js";
|
|
8
8
|
import {
|
|
9
9
|
err,
|
|
10
10
|
ok
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-E7LG7L4O.js";
|
|
12
12
|
|
|
13
13
|
// src/scm/factory.ts
|
|
14
14
|
async function createScmProvider(config) {
|
|
@@ -41,4 +41,4 @@ export {
|
|
|
41
41
|
createScmProvider,
|
|
42
42
|
createGitHubProvider
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=chunk-
|
|
44
|
+
//# sourceMappingURL=chunk-5NVU25BA.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
computeCostDetail
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SN4Q7TZT.js";
|
|
4
4
|
import {
|
|
5
5
|
DEFAULT_CONSENSUS_CONFIG,
|
|
6
6
|
DEFAULT_INCREMENTAL_QUORUM_CONFIG,
|
|
@@ -18,20 +18,20 @@ import {
|
|
|
18
18
|
toolSuccess,
|
|
19
19
|
withProgressHeartbeat,
|
|
20
20
|
wrapToolWithTimeout
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4AXOISAP.js";
|
|
22
22
|
import {
|
|
23
23
|
getToolMemory
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-WP6UBBNJ.js";
|
|
25
25
|
import {
|
|
26
26
|
createEvent,
|
|
27
27
|
getGlobalRegistry
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-JYV5MZC6.js";
|
|
29
29
|
import {
|
|
30
30
|
authRemediation,
|
|
31
31
|
delay,
|
|
32
32
|
getAvailableClis,
|
|
33
33
|
withTimeout
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-QD653D5O.js";
|
|
35
35
|
import {
|
|
36
36
|
AgentError,
|
|
37
37
|
CLI_NAMES,
|
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
registerPersistentOutcomeStoreFactory,
|
|
60
60
|
resolveClassGuardMs,
|
|
61
61
|
resolveVoteTimeout
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-E7LG7L4O.js";
|
|
63
63
|
import {
|
|
64
64
|
ensureLearningDir,
|
|
65
65
|
getOutcomesFile
|
|
@@ -5866,7 +5866,7 @@ async function processVotesWithCascade(engineVotes, opts) {
|
|
|
5866
5866
|
var CONTRARIAN_ESCALATION_THRESHOLD = 0.8;
|
|
5867
5867
|
async function runContrarianCheck(proposal, log) {
|
|
5868
5868
|
try {
|
|
5869
|
-
const { executeExpert } = await import("./expert-bridge-
|
|
5869
|
+
const { executeExpert } = await import("./expert-bridge-JW4DJPH3.js");
|
|
5870
5870
|
const prompt = [
|
|
5871
5871
|
"You are a contrarian analyst. Your job is to find reasons this proposal should be REJECTED.",
|
|
5872
5872
|
"Look for: YAGNI (not needed), MISALIGNED (wrong tech/architecture), SECURITY_RISK, SCOPE_CREEP.",
|
|
@@ -6382,4 +6382,4 @@ export {
|
|
|
6382
6382
|
CONSENSUS_VOTE_OUTPUT_SCHEMA,
|
|
6383
6383
|
registerConsensusVoteTool
|
|
6384
6384
|
};
|
|
6385
|
-
//# sourceMappingURL=chunk-
|
|
6385
|
+
//# sourceMappingURL=chunk-7XISTLQP.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getErrorMessage
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-E7LG7L4O.js";
|
|
4
4
|
|
|
5
5
|
// src/cli/setup-config.ts
|
|
6
6
|
import { copyFileSync, existsSync, mkdirSync, writeFileSync } from "fs";
|
|
@@ -77,4 +77,4 @@ function ensureBackup(outputPath) {
|
|
|
77
77
|
export {
|
|
78
78
|
runConfigInitSync
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
80
|
+
//# sourceMappingURL=chunk-AMY4S4VD.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadPapersRegistry
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RNCBSF6I.js";
|
|
4
4
|
import {
|
|
5
5
|
getErrorMessage
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-E7LG7L4O.js";
|
|
7
7
|
|
|
8
8
|
// src/cli/research-helpers-synthesize.ts
|
|
9
9
|
import { z } from "zod";
|
|
@@ -876,4 +876,4 @@ export {
|
|
|
876
876
|
AttributedInsightSchema,
|
|
877
877
|
synthesizeResearch
|
|
878
878
|
};
|
|
879
|
-
//# sourceMappingURL=chunk-
|
|
879
|
+
//# sourceMappingURL=chunk-B23GFISN.js.map
|
|
@@ -1841,6 +1841,35 @@ function selectIdentityCandidate(candidates) {
|
|
|
1841
1841
|
if (authoritative.length > 0) return uniqueCandidate(authoritative);
|
|
1842
1842
|
return uniqueCandidate(ranked.filter((e) => BREADTH_SOURCES.has(e.source)));
|
|
1843
1843
|
}
|
|
1844
|
+
var TRAILING_DATE_SEGMENT = /-\d{6,8}$/;
|
|
1845
|
+
var DATE_SEGMENT = /(?:^|-)(?:\d{6,8}|\d{4}-\d{2}(?:-\d{2})?)(?:-|$)/;
|
|
1846
|
+
var SIZE_TIER_QUIRKS = /* @__PURE__ */ new Set(["small", "large", "sized-suffix"]);
|
|
1847
|
+
function matchIdentityCandidate(index, identity) {
|
|
1848
|
+
const key = identityKeyFor(identity);
|
|
1849
|
+
if (key === void 0 || identity.version === void 0) return void 0;
|
|
1850
|
+
const matched = selectIdentityCandidate(index.get(key)) ?? selectDateStripped(index, identity, identity.version);
|
|
1851
|
+
if (matched === void 0) return void 0;
|
|
1852
|
+
return blockedBySizeQuirk(identity, matched) ? void 0 : matched;
|
|
1853
|
+
}
|
|
1854
|
+
function selectDateStripped(index, identity, version) {
|
|
1855
|
+
const vk = versionKey(version);
|
|
1856
|
+
if (!TRAILING_DATE_SEGMENT.test(vk)) return void 0;
|
|
1857
|
+
const stripped = vk.replace(TRAILING_DATE_SEGMENT, "");
|
|
1858
|
+
if (stripped.length === 0 || DATE_SEGMENT.test(stripped)) return void 0;
|
|
1859
|
+
const strippedKey = identityKeyFor({
|
|
1860
|
+
vendor: identity.vendor,
|
|
1861
|
+
family: identity.family,
|
|
1862
|
+
version: stripped
|
|
1863
|
+
});
|
|
1864
|
+
if (strippedKey === void 0) return void 0;
|
|
1865
|
+
return selectIdentityCandidate(index.get(strippedKey));
|
|
1866
|
+
}
|
|
1867
|
+
function blockedBySizeQuirk(identity, matched) {
|
|
1868
|
+
const sizeQuirks = identity.quirks.filter((q) => SIZE_TIER_QUIRKS.has(q));
|
|
1869
|
+
if (sizeQuirks.length === 0) return false;
|
|
1870
|
+
const canonicalQuirks = resolveModelIdentitySync(matched.id).quirks;
|
|
1871
|
+
return sizeQuirks.some((q) => !canonicalQuirks.includes(q));
|
|
1872
|
+
}
|
|
1844
1873
|
|
|
1845
1874
|
// src/config/manifest-overlay.ts
|
|
1846
1875
|
import { existsSync, readFileSync, statSync } from "fs";
|
|
@@ -2348,15 +2377,17 @@ var ModelRegistry = class {
|
|
|
2348
2377
|
return direct;
|
|
2349
2378
|
}
|
|
2350
2379
|
if (direct === void 0) {
|
|
2351
|
-
const
|
|
2380
|
+
const identity2 = resolveModelIdentitySync(modelId, hints);
|
|
2381
|
+
const fuzzy = this.lookupFuzzy(modelId, identity2, hints);
|
|
2352
2382
|
if (fuzzy !== void 0) return fuzzy;
|
|
2383
|
+
return deriveEntry(modelId, identity2);
|
|
2353
2384
|
}
|
|
2354
2385
|
const identity = resolveModelIdentitySync(modelId, augmentHints(hints, direct));
|
|
2355
2386
|
const derived = deriveEntry(modelId, identity);
|
|
2356
|
-
if (
|
|
2387
|
+
if (identity.vendor !== "unknown") {
|
|
2357
2388
|
return mergeSnapshotWithDerived(direct, derived);
|
|
2358
2389
|
}
|
|
2359
|
-
return direct
|
|
2390
|
+
return direct;
|
|
2360
2391
|
}
|
|
2361
2392
|
/**
|
|
2362
2393
|
* Has the registry got an authoritative entry for this id?
|
|
@@ -2390,21 +2421,23 @@ var ModelRegistry = class {
|
|
|
2390
2421
|
* (a) retry `lookupExact` with the `normaliseModelId`-normalized id so
|
|
2391
2422
|
* aliases + alias-shadow (#3293) keep working;
|
|
2392
2423
|
* (b) identity-match {vendor, family, version} against the load-time
|
|
2393
|
-
* index — version required on both sides
|
|
2394
|
-
*
|
|
2424
|
+
* index — version required on both sides (ONE trailing date segment
|
|
2425
|
+
* tolerated on the decorated side, #4183), tier-ordered uniqueness,
|
|
2426
|
+
* fail closed on ambiguity and on sub-SKU size markers (see
|
|
2427
|
+
* model-fuzzy-resolution.ts).
|
|
2395
2428
|
* Over-long ids skip the tier entirely (straight to derivation).
|
|
2429
|
+
* `identity` is the caller's already-resolved identity for `modelId`
|
|
2430
|
+
* (#4183 perf: resolved once per getEntry call).
|
|
2396
2431
|
*/
|
|
2397
|
-
lookupFuzzy(modelId, hints) {
|
|
2432
|
+
lookupFuzzy(modelId, identity, hints) {
|
|
2398
2433
|
if (modelId.length > MAX_FUZZY_ID_LENGTH) return void 0;
|
|
2399
2434
|
const normalized = normaliseModelId(modelId);
|
|
2400
2435
|
const byNormalized = normalized === modelId ? void 0 : this.lookupExact(normalized);
|
|
2401
2436
|
if (byNormalized !== void 0) {
|
|
2402
2437
|
return this.resolveMatched(byNormalized, modelId, hints, "normalized");
|
|
2403
2438
|
}
|
|
2404
|
-
const key = identityKeyFor(resolveModelIdentitySync(modelId, hints));
|
|
2405
|
-
if (key === void 0) return void 0;
|
|
2406
2439
|
this.identityIndex ??= buildIdentityIndex(this.byId.values());
|
|
2407
|
-
const matched =
|
|
2440
|
+
const matched = matchIdentityCandidate(this.identityIndex, identity);
|
|
2408
2441
|
if (matched === void 0) return void 0;
|
|
2409
2442
|
return this.resolveMatched(matched, modelId, hints, "identity");
|
|
2410
2443
|
}
|
|
@@ -2501,7 +2534,7 @@ function setDefaultRegistry(registry) {
|
|
|
2501
2534
|
}
|
|
2502
2535
|
async function reloadDefaultRegistry() {
|
|
2503
2536
|
globalRegistry = buildDefaultRegistry();
|
|
2504
|
-
const { resetGlobalRegistry } = await import("./unified-registry-
|
|
2537
|
+
const { resetGlobalRegistry } = await import("./unified-registry-YXQGTU3P.js");
|
|
2505
2538
|
resetGlobalRegistry();
|
|
2506
2539
|
return globalRegistry;
|
|
2507
2540
|
}
|
|
@@ -6142,6 +6175,8 @@ var LinUCBBandit = class {
|
|
|
6142
6175
|
config;
|
|
6143
6176
|
arms;
|
|
6144
6177
|
armNames;
|
|
6178
|
+
/** Warm-start replay ledger keyed `arm model` (#4194). Telemetry only. */
|
|
6179
|
+
warmStartModelLedger = /* @__PURE__ */ new Map();
|
|
6145
6180
|
constructor(armNames, config) {
|
|
6146
6181
|
this.armNames = armNames;
|
|
6147
6182
|
this.config = LinUCBConfigSchema.parse({
|
|
@@ -6332,10 +6367,33 @@ var LinUCBBandit = class {
|
|
|
6332
6367
|
if (armIndex < 0) continue;
|
|
6333
6368
|
const reward = outcome.success ? SUCCESS_REWARD : FAILURE_REWARD;
|
|
6334
6369
|
this.update(armIndex, neutralContext, reward);
|
|
6370
|
+
this.recordWarmStartModelStat(outcome.cli, outcome.model, outcome.success);
|
|
6335
6371
|
replayed++;
|
|
6336
6372
|
}
|
|
6337
6373
|
return replayed;
|
|
6338
6374
|
}
|
|
6375
|
+
/** Accumulate the per-arm × per-model warm-start ledger (#4194). */
|
|
6376
|
+
recordWarmStartModelStat(arm, model, success) {
|
|
6377
|
+
const key = `${arm} ${model}`;
|
|
6378
|
+
const entry = this.warmStartModelLedger.get(key) ?? {
|
|
6379
|
+
arm,
|
|
6380
|
+
model,
|
|
6381
|
+
replayedCount: 0,
|
|
6382
|
+
successCount: 0
|
|
6383
|
+
};
|
|
6384
|
+
entry.replayedCount++;
|
|
6385
|
+
if (success) entry.successCount++;
|
|
6386
|
+
this.warmStartModelLedger.set(key, entry);
|
|
6387
|
+
}
|
|
6388
|
+
/**
|
|
6389
|
+
* Per-arm × per-model grouping of the outcomes replayed through
|
|
6390
|
+
* {@link warmStart} (#4194). A telemetry surface for per-model outcome
|
|
6391
|
+
* evaluation — arm structure and selection behavior are unchanged.
|
|
6392
|
+
* Sorted by arm, then model, for stable output.
|
|
6393
|
+
*/
|
|
6394
|
+
getWarmStartModelStats() {
|
|
6395
|
+
return [...this.warmStartModelLedger.values()].map((s) => ({ ...s })).sort((a, b) => a.arm.localeCompare(b.arm) || a.model.localeCompare(b.model));
|
|
6396
|
+
}
|
|
6339
6397
|
/**
|
|
6340
6398
|
* Reset all arm statistics.
|
|
6341
6399
|
*/
|
|
@@ -6347,6 +6405,7 @@ var LinUCBBandit = class {
|
|
|
6347
6405
|
arm.pullCount = 0;
|
|
6348
6406
|
arm.cumulativeReward = 0;
|
|
6349
6407
|
}
|
|
6408
|
+
this.warmStartModelLedger.clear();
|
|
6350
6409
|
}
|
|
6351
6410
|
};
|
|
6352
6411
|
|
|
@@ -12027,7 +12086,10 @@ function buildOptionalSections(input, cfg) {
|
|
|
12027
12086
|
expertPerformance,
|
|
12028
12087
|
swarmHealth: buildSwarmHealth(expertPerformance),
|
|
12029
12088
|
triageStats: buildTriageStats(input),
|
|
12030
|
-
recentWindow: buildRecentWindow(cfg)
|
|
12089
|
+
recentWindow: buildRecentWindow(cfg),
|
|
12090
|
+
// Per-model telemetry lens (#4194) — additive optional section; the
|
|
12091
|
+
// routing-visible adaptiveBonuses above stay CLI×category.
|
|
12092
|
+
modelWeather: getModelWeatherSummary(input, cfg)
|
|
12031
12093
|
});
|
|
12032
12094
|
}
|
|
12033
12095
|
function generateWeatherReport(input, config, deps) {
|
|
@@ -12126,6 +12188,73 @@ function queryWithLookback(store, cli, category, cfg) {
|
|
|
12126
12188
|
}
|
|
12127
12189
|
return store.query({ cli, category, excludeQualitySignals: exclude });
|
|
12128
12190
|
}
|
|
12191
|
+
var MODEL_WEATHER_MIN_SAMPLES = 5;
|
|
12192
|
+
var NON_MODEL_PLACEHOLDER_IDS = /* @__PURE__ */ new Set(["unknown", "pipeline"]);
|
|
12193
|
+
function isRealModelId(model) {
|
|
12194
|
+
return !NON_MODEL_PLACEHOLDER_IDS.has(model) && !model.startsWith(WORKER_MODEL_PREFIX);
|
|
12195
|
+
}
|
|
12196
|
+
function buildModelLensFilter(options) {
|
|
12197
|
+
return {
|
|
12198
|
+
...options?.cli !== void 0 && { cli: options.cli },
|
|
12199
|
+
...options?.category !== void 0 && { category: options.category },
|
|
12200
|
+
excludeQualitySignals: ["e2e-eval"]
|
|
12201
|
+
};
|
|
12202
|
+
}
|
|
12203
|
+
function getModelWeatherSummary(options, config) {
|
|
12204
|
+
const cfg = { ...createDefaultWeatherConfig(), ...config };
|
|
12205
|
+
const store = getOutcomeStore();
|
|
12206
|
+
const filter = buildModelLensFilter(options);
|
|
12207
|
+
const entries = [];
|
|
12208
|
+
for (const model of collectObservedModelIds(store, filter)) {
|
|
12209
|
+
const entry = buildModelWeatherEntry(store, model, filter, cfg);
|
|
12210
|
+
if (entry !== void 0) entries.push(entry);
|
|
12211
|
+
}
|
|
12212
|
+
return entries.sort((a, b) => b.sampleCount - a.sampleCount || a.model.localeCompare(b.model));
|
|
12213
|
+
}
|
|
12214
|
+
function collectObservedModelIds(store, filter) {
|
|
12215
|
+
const ids = /* @__PURE__ */ new Set();
|
|
12216
|
+
for (const o of store.query(filter)) {
|
|
12217
|
+
if (isRealModelId(o.model)) ids.add(o.model);
|
|
12218
|
+
}
|
|
12219
|
+
return [...ids];
|
|
12220
|
+
}
|
|
12221
|
+
function queryModelWithLookback(store, model, filter, cfg) {
|
|
12222
|
+
if (cfg.outcomeLookbackMs > 0) {
|
|
12223
|
+
const since = new Date(Date.now() - cfg.outcomeLookbackMs).toISOString();
|
|
12224
|
+
const windowed = store.queryByModelWithFamilyFallback(model, {
|
|
12225
|
+
threshold: MODEL_WEATHER_MIN_SAMPLES,
|
|
12226
|
+
extraFilter: { ...filter, since }
|
|
12227
|
+
});
|
|
12228
|
+
if (windowed.outcomes.length >= MODEL_WEATHER_MIN_SAMPLES) return windowed;
|
|
12229
|
+
}
|
|
12230
|
+
return store.queryByModelWithFamilyFallback(model, {
|
|
12231
|
+
threshold: MODEL_WEATHER_MIN_SAMPLES,
|
|
12232
|
+
extraFilter: filter
|
|
12233
|
+
});
|
|
12234
|
+
}
|
|
12235
|
+
function restrictFallbackScope(model, result) {
|
|
12236
|
+
if (result.scope !== "family") return { outcomes: result.outcomes, scope: "literal" };
|
|
12237
|
+
if (result.vendor !== "unknown" && result.family !== "unknown") {
|
|
12238
|
+
return { outcomes: result.outcomes, scope: "family" };
|
|
12239
|
+
}
|
|
12240
|
+
return { outcomes: result.outcomes.filter((o) => o.model === model), scope: "literal" };
|
|
12241
|
+
}
|
|
12242
|
+
function buildModelWeatherEntry(store, model, filter, cfg) {
|
|
12243
|
+
const result = queryModelWithLookback(store, model, filter, cfg);
|
|
12244
|
+
const { outcomes, scope } = restrictFallbackScope(model, result);
|
|
12245
|
+
if (outcomes.length < MODEL_WEATHER_MIN_SAMPLES) return void 0;
|
|
12246
|
+
const successes = outcomes.filter((o) => o.success).length;
|
|
12247
|
+
const totalDuration = outcomes.reduce((s, o) => s + o.durationMs, 0);
|
|
12248
|
+
return {
|
|
12249
|
+
model,
|
|
12250
|
+
vendor: result.vendor ?? "unknown",
|
|
12251
|
+
family: result.family ?? "unknown",
|
|
12252
|
+
scope,
|
|
12253
|
+
sampleCount: outcomes.length,
|
|
12254
|
+
successRate: round3(successes / outcomes.length),
|
|
12255
|
+
avgDurationMs: Math.round(totalDuration / outcomes.length)
|
|
12256
|
+
};
|
|
12257
|
+
}
|
|
12129
12258
|
function getAdaptiveBonus(cli, category, config) {
|
|
12130
12259
|
const cfg = { ...createDefaultWeatherConfig(), ...config };
|
|
12131
12260
|
const store = getOutcomeStore();
|
|
@@ -13785,7 +13914,7 @@ var CompositeRouter = class _CompositeRouter {
|
|
|
13785
13914
|
*/
|
|
13786
13915
|
async consultUnifiedContext(task) {
|
|
13787
13916
|
try {
|
|
13788
|
-
const { getContextForTask, inferTaskCategory } = await import("./context-retriever-
|
|
13917
|
+
const { getContextForTask, inferTaskCategory } = await import("./context-retriever-Z474PNZ4.js");
|
|
13789
13918
|
const ctx = await getContextForTask({
|
|
13790
13919
|
task: task.content,
|
|
13791
13920
|
category: inferTaskCategory(task.content),
|
|
@@ -15278,6 +15407,8 @@ export {
|
|
|
15278
15407
|
rankStrategiesByManifest,
|
|
15279
15408
|
generateWeatherReport,
|
|
15280
15409
|
queryWithLookback,
|
|
15410
|
+
MODEL_WEATHER_MIN_SAMPLES,
|
|
15411
|
+
getModelWeatherSummary,
|
|
15281
15412
|
getAdaptiveBonus,
|
|
15282
15413
|
shouldExplore,
|
|
15283
15414
|
getFallbackChainForCategory,
|
|
@@ -15288,4 +15419,4 @@ export {
|
|
|
15288
15419
|
AgentCapability,
|
|
15289
15420
|
OrchestratorError
|
|
15290
15421
|
};
|
|
15291
|
-
//# sourceMappingURL=chunk-
|
|
15422
|
+
//# sourceMappingURL=chunk-E7LG7L4O.js.map
|