nexus-agents 2.102.8 → 2.103.1
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-3FIENOGY.js → child-mcp-config-I7VKSEW2.js} +2 -2
- package/dist/{chunk-UXBZ346L.js → chunk-3GUCNISD.js} +2 -2
- package/dist/{chunk-CPGZRXY3.js → chunk-3UOFGQ2K.js} +3 -3
- package/dist/{chunk-IS2OUYGR.js → chunk-3VMTQCEH.js} +2 -2
- package/dist/{chunk-J524D5GA.js → chunk-4PWBF3NC.js} +2 -2
- package/dist/{chunk-HAKXSIBS.js → chunk-4VTJA7FE.js} +2 -2
- package/dist/{chunk-TLTWQAHI.js → chunk-5L5REFGE.js} +3 -3
- package/dist/{chunk-L3RP7STR.js → chunk-5ZK25ZWD.js} +4 -4
- package/dist/{chunk-ER6YMAZU.js → chunk-6E6MOJYY.js} +2 -2
- package/dist/{chunk-ZW6NKOXT.js → chunk-7P3FALEV.js} +2 -2
- package/dist/{chunk-WVZT4JGL.js → chunk-CB66XOZQ.js} +360 -212
- package/dist/chunk-CB66XOZQ.js.map +1 -0
- package/dist/{chunk-OIFFZHSV.js → chunk-DAOUGMA5.js} +4 -4
- package/dist/{chunk-47YAIGCP.js → chunk-FXPDPPYR.js} +2 -2
- package/dist/{chunk-ODN2O3XZ.js → chunk-G2FTEZDY.js} +123 -32
- package/dist/chunk-G2FTEZDY.js.map +1 -0
- package/dist/{chunk-EYIIQ7KE.js → chunk-GA2ZZERU.js} +15 -5
- package/dist/{chunk-EYIIQ7KE.js.map → chunk-GA2ZZERU.js.map} +1 -1
- package/dist/{chunk-WPGVI2F2.js → chunk-KSMYBMM6.js} +2 -2
- package/dist/{chunk-RHH75VON.js → chunk-L32OQDWK.js} +3 -3
- package/dist/{chunk-4CPPYUBW.js → chunk-MHVGM6NQ.js} +2 -2
- package/dist/{chunk-GUHVV3Q4.js → chunk-MMZ5IKQ3.js} +2 -2
- package/dist/{chunk-74QFV5ON.js → chunk-N35KBA5P.js} +3 -3
- package/dist/{chunk-2NSCF4PI.js → chunk-OMFKL3FZ.js} +7 -7
- package/dist/{chunk-JEOFSMRI.js → chunk-QQNM4YAL.js} +2 -2
- package/dist/{chunk-NBAARQC6.js → chunk-RDNEALPS.js} +7 -7
- package/dist/{chunk-VJFUIP6N.js → chunk-RWSRBLSA.js} +21 -2
- package/dist/{chunk-VJFUIP6N.js.map → chunk-RWSRBLSA.js.map} +1 -1
- package/dist/{chunk-P6TYLTER.js → chunk-TZ2YMIQV.js} +9 -9
- package/dist/{chunk-THUENUJA.js → chunk-U3GOPZIA.js} +2 -2
- package/dist/{chunk-GAX6YG5E.js → chunk-UB5S4II3.js} +2 -2
- package/dist/{chunk-PF7GV22M.js → chunk-ULKXWKNZ.js} +5 -5
- package/dist/{chunk-Q7FINCKE.js → chunk-VPPZ45IZ.js} +2 -2
- package/dist/{chunk-FYQ36FP3.js → chunk-WORMJT4K.js} +3 -3
- package/dist/{chunk-G3QQOU4H.js → chunk-XISM6YBY.js} +4 -4
- package/dist/{chunk-B73SAOST.js → chunk-Y5D6P5JV.js} +3 -3
- package/dist/{cli-circuit-breaker-VHAHRE2J.js → cli-circuit-breaker-M4LZW4RB.js} +4 -4
- package/dist/cli.js +40 -38
- package/dist/cli.js.map +1 -1
- package/dist/{composite-router-NQMFTZ6B.js → composite-router-CYGVTMW6.js} +2 -2
- package/dist/{consensus-vote-VGQW6LCB.js → consensus-vote-2ODNLCSS.js} +12 -12
- package/dist/{context-retriever-BE4DNAPM.js → context-retriever-VZ5HKPWX.js} +6 -6
- package/dist/{doctor-deep-7PN77HHM.js → doctor-deep-A3FHG7A7.js} +3 -3
- package/dist/{expert-bridge-HLSKV3PK.js → expert-bridge-GNHXRQEZ.js} +4 -4
- package/dist/{factory-PTEIJ2H2.js → factory-6PU24HFM.js} +5 -5
- package/dist/{factory-2A2CZPQR.js → factory-7ENY4JOE.js} +5 -5
- package/dist/{improvement-review-6EV2FWXI.js → improvement-review-6377XBPE.js} +4 -4
- package/dist/index.d.ts +14 -3
- package/dist/index.js +27 -27
- package/dist/{init-opencode-GZD26YXM.js → init-opencode-6UJPLOHE.js} +5 -5
- package/dist/{issue-triage-JGQTQVQI.js → issue-triage-YOFAEUGC.js} +5 -5
- package/dist/{pr-reviewer-helpers-SEA7L3XT.js → pr-reviewer-helpers-MK2ZFEEI.js} +4 -4
- package/dist/{registry-command-O5G5VII2.js → registry-command-JLAE6RAW.js} +2 -2
- package/dist/{repo-security-plan-6QUW6JW5.js → repo-security-plan-IGX7AS5P.js} +3 -3
- package/dist/{research-helpers-synthesize-2HHHQP5I.js → research-helpers-synthesize-B5KL3S4T.js} +3 -3
- package/dist/{routing-memory-SCPATSY6.js → routing-memory-7RKYQEHM.js} +2 -2
- package/dist/{session-memory-O77ISZYP.js → session-memory-S4SBPBP4.js} +3 -3
- package/dist/{setup-command-VZEAQM27.js → setup-command-KMGJM4V4.js} +10 -10
- package/dist/{setup-config-AKLJPGHL.js → setup-config-2DS2V65J.js} +3 -3
- package/dist/{setup-custom-api-PK5OLVW5.js → setup-custom-api-JVYDKH6Y.js} +4 -4
- package/dist/{tool-memory-KQ5N6GRC.js → tool-memory-4LVVNSVD.js} +5 -5
- package/dist/{weather-report-BUPURZ6J.js → weather-report-FUVJJPE4.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-ODN2O3XZ.js.map +0 -1
- package/dist/chunk-WVZT4JGL.js.map +0 -1
- /package/dist/{child-mcp-config-3FIENOGY.js.map → child-mcp-config-I7VKSEW2.js.map} +0 -0
- /package/dist/{chunk-UXBZ346L.js.map → chunk-3GUCNISD.js.map} +0 -0
- /package/dist/{chunk-CPGZRXY3.js.map → chunk-3UOFGQ2K.js.map} +0 -0
- /package/dist/{chunk-IS2OUYGR.js.map → chunk-3VMTQCEH.js.map} +0 -0
- /package/dist/{chunk-J524D5GA.js.map → chunk-4PWBF3NC.js.map} +0 -0
- /package/dist/{chunk-HAKXSIBS.js.map → chunk-4VTJA7FE.js.map} +0 -0
- /package/dist/{chunk-TLTWQAHI.js.map → chunk-5L5REFGE.js.map} +0 -0
- /package/dist/{chunk-L3RP7STR.js.map → chunk-5ZK25ZWD.js.map} +0 -0
- /package/dist/{chunk-ER6YMAZU.js.map → chunk-6E6MOJYY.js.map} +0 -0
- /package/dist/{chunk-ZW6NKOXT.js.map → chunk-7P3FALEV.js.map} +0 -0
- /package/dist/{chunk-OIFFZHSV.js.map → chunk-DAOUGMA5.js.map} +0 -0
- /package/dist/{chunk-47YAIGCP.js.map → chunk-FXPDPPYR.js.map} +0 -0
- /package/dist/{chunk-WPGVI2F2.js.map → chunk-KSMYBMM6.js.map} +0 -0
- /package/dist/{chunk-RHH75VON.js.map → chunk-L32OQDWK.js.map} +0 -0
- /package/dist/{chunk-4CPPYUBW.js.map → chunk-MHVGM6NQ.js.map} +0 -0
- /package/dist/{chunk-GUHVV3Q4.js.map → chunk-MMZ5IKQ3.js.map} +0 -0
- /package/dist/{chunk-74QFV5ON.js.map → chunk-N35KBA5P.js.map} +0 -0
- /package/dist/{chunk-2NSCF4PI.js.map → chunk-OMFKL3FZ.js.map} +0 -0
- /package/dist/{chunk-JEOFSMRI.js.map → chunk-QQNM4YAL.js.map} +0 -0
- /package/dist/{chunk-NBAARQC6.js.map → chunk-RDNEALPS.js.map} +0 -0
- /package/dist/{chunk-P6TYLTER.js.map → chunk-TZ2YMIQV.js.map} +0 -0
- /package/dist/{chunk-THUENUJA.js.map → chunk-U3GOPZIA.js.map} +0 -0
- /package/dist/{chunk-GAX6YG5E.js.map → chunk-UB5S4II3.js.map} +0 -0
- /package/dist/{chunk-PF7GV22M.js.map → chunk-ULKXWKNZ.js.map} +0 -0
- /package/dist/{chunk-Q7FINCKE.js.map → chunk-VPPZ45IZ.js.map} +0 -0
- /package/dist/{chunk-FYQ36FP3.js.map → chunk-WORMJT4K.js.map} +0 -0
- /package/dist/{chunk-G3QQOU4H.js.map → chunk-XISM6YBY.js.map} +0 -0
- /package/dist/{chunk-B73SAOST.js.map → chunk-Y5D6P5JV.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-VHAHRE2J.js.map → cli-circuit-breaker-M4LZW4RB.js.map} +0 -0
- /package/dist/{composite-router-NQMFTZ6B.js.map → composite-router-CYGVTMW6.js.map} +0 -0
- /package/dist/{consensus-vote-VGQW6LCB.js.map → consensus-vote-2ODNLCSS.js.map} +0 -0
- /package/dist/{context-retriever-BE4DNAPM.js.map → context-retriever-VZ5HKPWX.js.map} +0 -0
- /package/dist/{doctor-deep-7PN77HHM.js.map → doctor-deep-A3FHG7A7.js.map} +0 -0
- /package/dist/{expert-bridge-HLSKV3PK.js.map → expert-bridge-GNHXRQEZ.js.map} +0 -0
- /package/dist/{factory-2A2CZPQR.js.map → factory-6PU24HFM.js.map} +0 -0
- /package/dist/{factory-PTEIJ2H2.js.map → factory-7ENY4JOE.js.map} +0 -0
- /package/dist/{improvement-review-6EV2FWXI.js.map → improvement-review-6377XBPE.js.map} +0 -0
- /package/dist/{init-opencode-GZD26YXM.js.map → init-opencode-6UJPLOHE.js.map} +0 -0
- /package/dist/{issue-triage-JGQTQVQI.js.map → issue-triage-YOFAEUGC.js.map} +0 -0
- /package/dist/{pr-reviewer-helpers-SEA7L3XT.js.map → pr-reviewer-helpers-MK2ZFEEI.js.map} +0 -0
- /package/dist/{registry-command-O5G5VII2.js.map → registry-command-JLAE6RAW.js.map} +0 -0
- /package/dist/{repo-security-plan-6QUW6JW5.js.map → repo-security-plan-IGX7AS5P.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-2HHHQP5I.js.map → research-helpers-synthesize-B5KL3S4T.js.map} +0 -0
- /package/dist/{routing-memory-SCPATSY6.js.map → routing-memory-7RKYQEHM.js.map} +0 -0
- /package/dist/{session-memory-O77ISZYP.js.map → session-memory-S4SBPBP4.js.map} +0 -0
- /package/dist/{setup-command-VZEAQM27.js.map → setup-command-KMGJM4V4.js.map} +0 -0
- /package/dist/{setup-config-AKLJPGHL.js.map → setup-config-2DS2V65J.js.map} +0 -0
- /package/dist/{setup-custom-api-PK5OLVW5.js.map → setup-custom-api-JVYDKH6Y.js.map} +0 -0
- /package/dist/{tool-memory-KQ5N6GRC.js.map → tool-memory-4LVVNSVD.js.map} +0 -0
- /package/dist/{weather-report-BUPURZ6J.js.map → weather-report-FUVJJPE4.js.map} +0 -0
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
getTokenEnvVars,
|
|
8
8
|
resolveToken
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7P3FALEV.js";
|
|
10
10
|
import {
|
|
11
11
|
executeExpert
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RDNEALPS.js";
|
|
13
13
|
import {
|
|
14
14
|
EventTopics,
|
|
15
15
|
JobStatusSchema,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
writeJobComplete,
|
|
31
31
|
writeJobFailed,
|
|
32
32
|
writeJobPending
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-TZ2YMIQV.js";
|
|
34
34
|
import {
|
|
35
35
|
REGISTRY_PATH,
|
|
36
36
|
getProjectRoot,
|
|
@@ -39,19 +39,19 @@ import {
|
|
|
39
39
|
normalizeTopicToCanonical,
|
|
40
40
|
savePapersRegistry,
|
|
41
41
|
synthesizeResearch
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-UB5S4II3.js";
|
|
43
43
|
import {
|
|
44
44
|
IssueTriage,
|
|
45
45
|
createAuditTrail,
|
|
46
46
|
createGraphAuditBridge
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-XISM6YBY.js";
|
|
48
48
|
import {
|
|
49
49
|
resolveEnvMode,
|
|
50
50
|
sanitizeInput
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-VPPZ45IZ.js";
|
|
52
52
|
import {
|
|
53
53
|
withPrerequisite
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-5L5REFGE.js";
|
|
55
55
|
import {
|
|
56
56
|
NOOP_NOTIFIER,
|
|
57
57
|
RateLimiter,
|
|
@@ -71,10 +71,10 @@ import {
|
|
|
71
71
|
withAccessPolicy,
|
|
72
72
|
withProgressHeartbeat,
|
|
73
73
|
wrapToolWithTimeout
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-RWSRBLSA.js";
|
|
75
75
|
import {
|
|
76
76
|
generateSecurityPlan
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-6E6MOJYY.js";
|
|
78
78
|
import {
|
|
79
79
|
analyzeGitHubRepo
|
|
80
80
|
} from "./chunk-HFOQKCD2.js";
|
|
@@ -82,26 +82,26 @@ import {
|
|
|
82
82
|
getContextForTask,
|
|
83
83
|
inferTaskCategory,
|
|
84
84
|
summarizeContextForPrompt
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-N35KBA5P.js";
|
|
86
86
|
import {
|
|
87
87
|
DEFAULT_RELEVANCE_CONFIG,
|
|
88
88
|
MemoryImportance,
|
|
89
89
|
calculateTextJaccardSimilarity,
|
|
90
90
|
getToolMemory
|
|
91
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-DAOUGMA5.js";
|
|
92
92
|
import {
|
|
93
93
|
DEFAULT_TASK_TTL_MS,
|
|
94
94
|
DEFAULT_TOOL_RATE_LIMITS,
|
|
95
95
|
clampTaskTtl
|
|
96
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-OMFKL3FZ.js";
|
|
97
97
|
import {
|
|
98
98
|
getAvailabilityCache,
|
|
99
99
|
getCliForModelId,
|
|
100
100
|
resolveFallback
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-3GUCNISD.js";
|
|
102
102
|
import {
|
|
103
103
|
DEFAULTS
|
|
104
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-MMZ5IKQ3.js";
|
|
105
105
|
import {
|
|
106
106
|
resolveInsideRoot
|
|
107
107
|
} from "./chunk-NUBSJGQZ.js";
|
|
@@ -117,11 +117,11 @@ import {
|
|
|
117
117
|
getAvailableClis,
|
|
118
118
|
sleep,
|
|
119
119
|
withTimeout
|
|
120
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-G2FTEZDY.js";
|
|
121
121
|
import {
|
|
122
122
|
generateHyphenId,
|
|
123
123
|
generateUUID
|
|
124
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-KSMYBMM6.js";
|
|
125
125
|
import {
|
|
126
126
|
BUILT_IN_EXPERTS,
|
|
127
127
|
BuiltInExpertTypeSchema,
|
|
@@ -133,7 +133,7 @@ import {
|
|
|
133
133
|
} from "./chunk-PQHVC4BD.js";
|
|
134
134
|
import {
|
|
135
135
|
createSessionMemory
|
|
136
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-QQNM4YAL.js";
|
|
137
137
|
import {
|
|
138
138
|
AGENT_ROUTER_TIMEOUTS,
|
|
139
139
|
API_TIMEOUTS,
|
|
@@ -164,6 +164,7 @@ import {
|
|
|
164
164
|
WeatherReportInputSchema,
|
|
165
165
|
WorkflowError,
|
|
166
166
|
buildCapabilityProfiles,
|
|
167
|
+
buildDefaultModelSources,
|
|
167
168
|
categorizeOutcomeErrorMessage,
|
|
168
169
|
clamp,
|
|
169
170
|
clamp01,
|
|
@@ -181,6 +182,7 @@ import {
|
|
|
181
182
|
formatZodError,
|
|
182
183
|
generateWeatherReport,
|
|
183
184
|
getAdaptiveBonus,
|
|
185
|
+
getDefaultAvailableModelsCache,
|
|
184
186
|
getDefaultModelForCli,
|
|
185
187
|
getDefaultRegistry,
|
|
186
188
|
getErrorMessage,
|
|
@@ -205,7 +207,7 @@ import {
|
|
|
205
207
|
resolveModelIdentitySync,
|
|
206
208
|
toExpertTaskAnalysisResult,
|
|
207
209
|
withStep
|
|
208
|
-
} from "./chunk-
|
|
210
|
+
} from "./chunk-GA2ZZERU.js";
|
|
209
211
|
import {
|
|
210
212
|
nexusDataPath,
|
|
211
213
|
nexusDataPathEnsure
|
|
@@ -23567,10 +23569,10 @@ function calculateZStatistic(params) {
|
|
|
23567
23569
|
function calculateDifferenceCI(p1, p2, total1, total2, confidence) {
|
|
23568
23570
|
const difference = p1 - p2;
|
|
23569
23571
|
const seDiff = Math.sqrt(p1 * (1 - p1) / (total1 || 1) + p2 * (1 - p2) / (total2 || 1));
|
|
23570
|
-
const
|
|
23572
|
+
const z114 = getZScore(confidence);
|
|
23571
23573
|
return {
|
|
23572
|
-
lower: difference -
|
|
23573
|
-
upper: difference +
|
|
23574
|
+
lower: difference - z114 * seDiff,
|
|
23575
|
+
upper: difference + z114 * seDiff,
|
|
23574
23576
|
estimate: difference,
|
|
23575
23577
|
confidence,
|
|
23576
23578
|
n: total1 + total2,
|
|
@@ -23593,11 +23595,11 @@ function proportionConfidenceInterval(successes, total, options = {}) {
|
|
|
23593
23595
|
standardError: 0
|
|
23594
23596
|
};
|
|
23595
23597
|
}
|
|
23596
|
-
const
|
|
23597
|
-
const z210 =
|
|
23598
|
+
const z114 = getZScore(opts.confidence);
|
|
23599
|
+
const z210 = z114 * z114;
|
|
23598
23600
|
const denominator = 1 + z210 / n;
|
|
23599
23601
|
const center = (p + z210 / (2 * n)) / denominator;
|
|
23600
|
-
const margin =
|
|
23602
|
+
const margin = z114 / denominator * Math.sqrt(p * (1 - p) / n + z210 / (4 * n * n));
|
|
23601
23603
|
const lower = Math.max(0, center - margin);
|
|
23602
23604
|
const upper = Math.min(1, center + margin);
|
|
23603
23605
|
const standardError = Math.sqrt(p * (1 - p) / n);
|
|
@@ -23627,8 +23629,8 @@ function meanConfidenceInterval(values, options = {}) {
|
|
|
23627
23629
|
const variance = values.reduce((sum, v) => sum + (v - mean) ** 2, 0) / (n - 1 || 1);
|
|
23628
23630
|
const stdDev = Math.sqrt(variance);
|
|
23629
23631
|
const standardError = stdDev / Math.sqrt(n);
|
|
23630
|
-
const
|
|
23631
|
-
const margin =
|
|
23632
|
+
const z114 = getZScore(opts.confidence);
|
|
23633
|
+
const margin = z114 * standardError;
|
|
23632
23634
|
return {
|
|
23633
23635
|
lower: mean - margin,
|
|
23634
23636
|
upper: mean + margin,
|
|
@@ -26129,14 +26131,64 @@ function registerExpertsResource(server, logger56) {
|
|
|
26129
26131
|
logger56.info("Registered experts resource", { uri: EXPERTS_RESOURCE_URI });
|
|
26130
26132
|
}
|
|
26131
26133
|
|
|
26134
|
+
// src/mcp/resources/available-models-resource.ts
|
|
26135
|
+
var AVAILABLE_MODELS_URI = "nexus://available-models";
|
|
26136
|
+
var AVAILABLE_MODELS_NAME = "available-models";
|
|
26137
|
+
async function buildAvailableModelsPayload(cache = getDefaultAvailableModelsCache()) {
|
|
26138
|
+
const all = await cache.getAll();
|
|
26139
|
+
const bySource = /* @__PURE__ */ new Map();
|
|
26140
|
+
for (const m of all) {
|
|
26141
|
+
const list = bySource.get(m.source) ?? [];
|
|
26142
|
+
list.push(m.id);
|
|
26143
|
+
bySource.set(m.source, list);
|
|
26144
|
+
}
|
|
26145
|
+
return {
|
|
26146
|
+
total: all.length,
|
|
26147
|
+
sources: [...bySource.entries()].map(([source, ids]) => ({
|
|
26148
|
+
source,
|
|
26149
|
+
modelCount: ids.length,
|
|
26150
|
+
ids
|
|
26151
|
+
})),
|
|
26152
|
+
note: "Live discovered model set (existence only). Empty if dynamic discovery is not enabled (NEXUS_DYNAMIC_MODELS)."
|
|
26153
|
+
};
|
|
26154
|
+
}
|
|
26155
|
+
function registerAvailableModelsResource(server, logger56) {
|
|
26156
|
+
server.registerResource(
|
|
26157
|
+
AVAILABLE_MODELS_NAME,
|
|
26158
|
+
AVAILABLE_MODELS_URI,
|
|
26159
|
+
{
|
|
26160
|
+
description: "Live, dynamically-discovered model set per transport (what routing can dispatch to now)",
|
|
26161
|
+
mimeType: "application/json"
|
|
26162
|
+
},
|
|
26163
|
+
async () => {
|
|
26164
|
+
logger56.debug("Reading available-models resource");
|
|
26165
|
+
const payload = await buildAvailableModelsPayload();
|
|
26166
|
+
return {
|
|
26167
|
+
contents: [
|
|
26168
|
+
{
|
|
26169
|
+
uri: AVAILABLE_MODELS_URI,
|
|
26170
|
+
mimeType: "application/json",
|
|
26171
|
+
text: JSON.stringify(payload, null, 2)
|
|
26172
|
+
}
|
|
26173
|
+
]
|
|
26174
|
+
};
|
|
26175
|
+
}
|
|
26176
|
+
);
|
|
26177
|
+
logger56.info("Registered available-models resource", { uri: AVAILABLE_MODELS_URI });
|
|
26178
|
+
}
|
|
26179
|
+
|
|
26132
26180
|
// src/mcp/resources/index.ts
|
|
26133
26181
|
function registerResources(server, logger56) {
|
|
26134
26182
|
const log = logger56 ?? createLogger({ component: "mcp-resources" });
|
|
26135
26183
|
log.info("Registering MCP resources");
|
|
26136
|
-
|
|
26137
|
-
|
|
26138
|
-
|
|
26139
|
-
|
|
26184
|
+
const registrars = [
|
|
26185
|
+
registerModelsResource,
|
|
26186
|
+
registerResearchResource,
|
|
26187
|
+
registerExpertsResource,
|
|
26188
|
+
registerAvailableModelsResource
|
|
26189
|
+
];
|
|
26190
|
+
for (const register of registrars) register(server, log);
|
|
26191
|
+
log.info("All MCP resources registered", { count: registrars.length });
|
|
26140
26192
|
}
|
|
26141
26193
|
|
|
26142
26194
|
// src/mcp/tools/run-workflow-types.ts
|
|
@@ -27013,7 +27065,7 @@ async function populateUnifiedContextOnState(state) {
|
|
|
27013
27065
|
try {
|
|
27014
27066
|
const taskCandidate = state["task"];
|
|
27015
27067
|
if (typeof taskCandidate !== "string" || taskCandidate === "") return;
|
|
27016
|
-
const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-
|
|
27068
|
+
const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-VZ5HKPWX.js");
|
|
27017
27069
|
const ctx = await getContextForTask2({
|
|
27018
27070
|
task: taskCandidate,
|
|
27019
27071
|
category: inferTaskCategory2(taskCandidate),
|
|
@@ -42762,7 +42814,7 @@ async function tryIssueTriage(task) {
|
|
|
42762
42814
|
try {
|
|
42763
42815
|
const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
|
|
42764
42816
|
if (issueMatch === null) return null;
|
|
42765
|
-
const { createIssueTriage } = await import("./issue-triage-
|
|
42817
|
+
const { createIssueTriage } = await import("./issue-triage-YOFAEUGC.js");
|
|
42766
42818
|
const triage = createIssueTriage();
|
|
42767
42819
|
const owner = issueMatch[1] ?? "";
|
|
42768
42820
|
const num = issueMatch[2] ?? "";
|
|
@@ -42790,7 +42842,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
|
|
|
42790
42842
|
]);
|
|
42791
42843
|
async function classifyWithLLM(task) {
|
|
42792
42844
|
try {
|
|
42793
|
-
const { executeExpert: executeExpert2 } = await import("./expert-bridge-
|
|
42845
|
+
const { executeExpert: executeExpert2 } = await import("./expert-bridge-GNHXRQEZ.js");
|
|
42794
42846
|
const prompt = [
|
|
42795
42847
|
"Classify this task into exactly one pipeline template.",
|
|
42796
42848
|
"Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
|
|
@@ -43696,7 +43748,7 @@ var memoryInitPromise = null;
|
|
|
43696
43748
|
async function initPipelineMemory() {
|
|
43697
43749
|
if (cachedMemory !== null) return cachedMemory;
|
|
43698
43750
|
try {
|
|
43699
|
-
const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-
|
|
43751
|
+
const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-S4SBPBP4.js");
|
|
43700
43752
|
const { getLearningDir } = await import("./learning-persistence-UKPO7RYK.js");
|
|
43701
43753
|
const mem = createSessionMemory2(getLearningDir());
|
|
43702
43754
|
mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
|
|
@@ -43753,7 +43805,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0)
|
|
|
43753
43805
|
callRecord(routingMemoryCache);
|
|
43754
43806
|
return;
|
|
43755
43807
|
}
|
|
43756
|
-
routingMemoryInitPromise ??= import("./routing-memory-
|
|
43808
|
+
routingMemoryInitPromise ??= import("./routing-memory-7RKYQEHM.js").then(({ createRoutingMemory }) => {
|
|
43757
43809
|
routingMemoryCache ??= createRoutingMemory();
|
|
43758
43810
|
return routingMemoryCache;
|
|
43759
43811
|
}).catch((error) => {
|
|
@@ -43787,7 +43839,7 @@ ${text}` : "";
|
|
|
43787
43839
|
}
|
|
43788
43840
|
async function getWeatherContext() {
|
|
43789
43841
|
try {
|
|
43790
|
-
const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-
|
|
43842
|
+
const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-FUVJJPE4.js");
|
|
43791
43843
|
const report = generateWeatherReport2({ includeAdaptive: true });
|
|
43792
43844
|
const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
|
|
43793
43845
|
if (!Array.isArray(mappings) || mappings.length === 0) return "";
|
|
@@ -43805,7 +43857,7 @@ ${lines}
|
|
|
43805
43857
|
}
|
|
43806
43858
|
async function getMemoryContext(task) {
|
|
43807
43859
|
try {
|
|
43808
|
-
const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-
|
|
43860
|
+
const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-S4SBPBP4.js");
|
|
43809
43861
|
const { getLearningDir } = await import("./learning-persistence-UKPO7RYK.js");
|
|
43810
43862
|
const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
|
|
43811
43863
|
const learnings = memory.searchLearnings(task.slice(0, 200));
|
|
@@ -43914,7 +43966,7 @@ ${contextBlock}`;
|
|
|
43914
43966
|
const strategy = config.votingStrategy ?? "higher_order";
|
|
43915
43967
|
await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
|
|
43916
43968
|
try {
|
|
43917
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
43969
|
+
const { executeVoting } = await import("./consensus-vote-2ODNLCSS.js");
|
|
43918
43970
|
const votingResult = await executeVoting(
|
|
43919
43971
|
{
|
|
43920
43972
|
proposal: buildVoteProposal(plan, research),
|
|
@@ -44909,7 +44961,7 @@ async function searchCodebaseForTask(task) {
|
|
|
44909
44961
|
}
|
|
44910
44962
|
async function queryResearchRegistry(task) {
|
|
44911
44963
|
try {
|
|
44912
|
-
const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-
|
|
44964
|
+
const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-B5KL3S4T.js");
|
|
44913
44965
|
const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
|
|
44914
44966
|
if (topic === void 0) return null;
|
|
44915
44967
|
const result = await synthesizeResearch2(topic.slice(0, 50));
|
|
@@ -44980,7 +45032,7 @@ function createScanStageWrapper() {
|
|
|
44980
45032
|
try {
|
|
44981
45033
|
const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
|
|
44982
45034
|
if (slug !== void 0) {
|
|
44983
|
-
const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-
|
|
45035
|
+
const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-IGX7AS5P.js");
|
|
44984
45036
|
const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
|
|
44985
45037
|
const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
|
|
44986
45038
|
return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
|
|
@@ -46468,19 +46520,113 @@ function registerSuggestResearchTasksTool(server, deps) {
|
|
|
46468
46520
|
logger56.info("Registered suggest_research_tasks tool");
|
|
46469
46521
|
}
|
|
46470
46522
|
|
|
46471
|
-
// src/mcp/tools/
|
|
46523
|
+
// src/mcp/tools/list-available-models-tool.ts
|
|
46472
46524
|
import { z as z104 } from "zod";
|
|
46525
|
+
var DESCRIPTION4 = "Probe every model-discovery transport (OpenRouter API + opencode/claude/codex/gemini CLIs) and report a per-transport health summary: probe ok/failed, model count, and a sample of ids. Use it to validate the CLIs and APIs are wired and reachable. Read-only; does not change routing.";
|
|
46526
|
+
var PROBE_TIMEOUT_MS = 12e3;
|
|
46527
|
+
var ListAvailableModelsInputSchema = z104.object({
|
|
46528
|
+
includeModelIds: z104.boolean().optional().describe("Include the full model-id list per transport (default false \u2192 sample of 5 only)."),
|
|
46529
|
+
includeOpenRouter: z104.boolean().optional().describe("Probe the OpenRouter live catalog (default true).")
|
|
46530
|
+
});
|
|
46531
|
+
async function probeSource(source, includeModelIds) {
|
|
46532
|
+
let timer;
|
|
46533
|
+
const timeout = new Promise((_, reject) => {
|
|
46534
|
+
timer = setTimeout(() => {
|
|
46535
|
+
reject(new Error(`probe timed out after ${String(PROBE_TIMEOUT_MS)}ms`));
|
|
46536
|
+
}, PROBE_TIMEOUT_MS);
|
|
46537
|
+
});
|
|
46538
|
+
try {
|
|
46539
|
+
const models = await Promise.race([source.listModels(), timeout]);
|
|
46540
|
+
const ids = models.map((m) => m.id);
|
|
46541
|
+
return {
|
|
46542
|
+
transport: source.name,
|
|
46543
|
+
ok: true,
|
|
46544
|
+
modelCount: ids.length,
|
|
46545
|
+
sampleModelIds: ids.slice(0, 5),
|
|
46546
|
+
...includeModelIds ? { modelIds: ids } : {}
|
|
46547
|
+
};
|
|
46548
|
+
} catch (error) {
|
|
46549
|
+
return {
|
|
46550
|
+
transport: source.name,
|
|
46551
|
+
ok: false,
|
|
46552
|
+
modelCount: 0,
|
|
46553
|
+
sampleModelIds: [],
|
|
46554
|
+
error: error instanceof Error ? error.message : String(error)
|
|
46555
|
+
};
|
|
46556
|
+
} finally {
|
|
46557
|
+
if (timer !== void 0) clearTimeout(timer);
|
|
46558
|
+
}
|
|
46559
|
+
}
|
|
46560
|
+
async function defaultSources(includeOpenRouter) {
|
|
46561
|
+
const { createAllAdapters: createAllAdapters2 } = await import("./factory-6PU24HFM.js");
|
|
46562
|
+
const adapters = createAllAdapters2();
|
|
46563
|
+
return buildDefaultModelSources(adapters, { includeOpenRouter });
|
|
46564
|
+
}
|
|
46565
|
+
async function listAvailableModelsHandler(args, deps, logger56) {
|
|
46566
|
+
const parsed = ListAvailableModelsInputSchema.safeParse(args);
|
|
46567
|
+
if (!parsed.success) {
|
|
46568
|
+
return toolStructuredError({
|
|
46569
|
+
errorCategory: "validation",
|
|
46570
|
+
message: `Validation error: ${formatZodError(parsed.error)}`
|
|
46571
|
+
});
|
|
46572
|
+
}
|
|
46573
|
+
const includeModelIds = parsed.data.includeModelIds ?? false;
|
|
46574
|
+
const includeOpenRouter = parsed.data.includeOpenRouter ?? true;
|
|
46575
|
+
const sources = deps.sourcesFactory !== void 0 ? deps.sourcesFactory(includeOpenRouter) : await defaultSources(includeOpenRouter);
|
|
46576
|
+
const transports = await Promise.all(sources.map((s) => probeSource(s, includeModelIds)));
|
|
46577
|
+
const response = {
|
|
46578
|
+
transports,
|
|
46579
|
+
healthyTransports: transports.filter((t) => t.ok).length,
|
|
46580
|
+
totalTransports: transports.length,
|
|
46581
|
+
totalModels: transports.reduce((sum, t) => sum + t.modelCount, 0),
|
|
46582
|
+
note: "Probe results \u2014 existence only; the in-tree registry remains authoritative for pricing/capability."
|
|
46583
|
+
};
|
|
46584
|
+
logger56.debug("list_available_models probed transports", {
|
|
46585
|
+
healthy: response.healthyTransports,
|
|
46586
|
+
total: response.totalTransports
|
|
46587
|
+
});
|
|
46588
|
+
return toolSuccess(JSON.stringify(response, null, 2));
|
|
46589
|
+
}
|
|
46590
|
+
function registerListAvailableModelsTool(server, deps) {
|
|
46591
|
+
const logger56 = deps.logger ?? createLogger({ tool: "list_available_models" });
|
|
46592
|
+
const toolSchema = {
|
|
46593
|
+
includeModelIds: z104.boolean().optional().describe("Include the full model-id list per transport (default false \u2192 sample of 5 only)."),
|
|
46594
|
+
includeOpenRouter: z104.boolean().optional().describe("Probe the OpenRouter live catalog (default true).")
|
|
46595
|
+
};
|
|
46596
|
+
const secureHandler = createSecureHandler(
|
|
46597
|
+
(args) => listAvailableModelsHandler(args, deps, logger56),
|
|
46598
|
+
{ toolName: "list_available_models", rateLimiter: deps.rateLimiter, logger: logger56 }
|
|
46599
|
+
);
|
|
46600
|
+
const timeoutMs = getToolTimeout("list_available_models", deps.security);
|
|
46601
|
+
const wrappedHandler = wrapToolWithTimeout("list_available_models", secureHandler, {
|
|
46602
|
+
timeoutMs,
|
|
46603
|
+
logger: logger56
|
|
46604
|
+
});
|
|
46605
|
+
server.registerTool(
|
|
46606
|
+
"list_available_models",
|
|
46607
|
+
{
|
|
46608
|
+
description: DESCRIPTION4,
|
|
46609
|
+
inputSchema: toolSchema,
|
|
46610
|
+
annotations: getToolAnnotations("list_available_models")
|
|
46611
|
+
},
|
|
46612
|
+
toSdkCallback(wrappedHandler)
|
|
46613
|
+
);
|
|
46614
|
+
logger56.info("Registered list_available_models tool");
|
|
46615
|
+
}
|
|
46616
|
+
|
|
46617
|
+
// src/mcp/tools/pipeline-tool.ts
|
|
46618
|
+
import { z as z105 } from "zod";
|
|
46473
46619
|
import * as fs13 from "fs";
|
|
46474
46620
|
import * as path12 from "path";
|
|
46475
|
-
var PipelineInputSchema =
|
|
46621
|
+
var PipelineInputSchema = z105.object({
|
|
46476
46622
|
/** The task to execute. */
|
|
46477
|
-
task:
|
|
46623
|
+
task: z105.string().min(5).max(1e4).describe("Task description \u2014 pipeline template auto-selected based on content"),
|
|
46478
46624
|
/** Path to a spec file (.md, .yaml) to use as task input. */
|
|
46479
|
-
specFile:
|
|
46625
|
+
specFile: z105.string().max(500).optional().describe("Path to a spec file \u2014 content prepended to task for greenfield projects"),
|
|
46480
46626
|
/** Override template — see `listTemplateIds()` for the canonical list (#2728). Auto-detected if omitted. */
|
|
46481
|
-
template:
|
|
46627
|
+
template: z105.string().max(50).optional().describe(`Pipeline template override. Available: ${listTemplateIds().join(", ")}`),
|
|
46482
46628
|
/** Voting strategy for consensus stages. */
|
|
46483
|
-
votingStrategy:
|
|
46629
|
+
votingStrategy: z105.enum([
|
|
46484
46630
|
"simple_majority",
|
|
46485
46631
|
"supermajority",
|
|
46486
46632
|
"unanimous",
|
|
@@ -46491,13 +46637,13 @@ var PipelineInputSchema = z104.object({
|
|
|
46491
46637
|
"Voting strategy for plan approval. simple_majority (default), supermajority (67%), unanimous, higher_order (Bayesian), proof_of_learning, opinion_wise"
|
|
46492
46638
|
),
|
|
46493
46639
|
/** Use 3 agents instead of 6 for faster voting. */
|
|
46494
|
-
quickMode:
|
|
46640
|
+
quickMode: z105.boolean().default(false).describe("Use 3 agents instead of 6 for faster consensus voting"),
|
|
46495
46641
|
/** Maximum execution time per stage in milliseconds (min 30s, max 600s). */
|
|
46496
|
-
timeoutMs:
|
|
46642
|
+
timeoutMs: z105.number().int().min(3e4).max(6e5).optional().describe("Max time per stage in ms (30000-600000). Default: varies by stage complexity"),
|
|
46497
46643
|
/** Stop after planning/voting (no implementation). */
|
|
46498
|
-
dryRun:
|
|
46644
|
+
dryRun: z105.boolean().default(false).describe("Stop after vote stage (no implementation)"),
|
|
46499
46645
|
/** TESTS ONLY — random output, must not be used for real decisions. (#2319) */
|
|
46500
|
-
simulateVotes:
|
|
46646
|
+
simulateVotes: z105.boolean().default(false).describe("TESTS ONLY \u2014 random output, must not be used for real decisions (#2319)")
|
|
46501
46647
|
});
|
|
46502
46648
|
function buildOutput2(result) {
|
|
46503
46649
|
return {
|
|
@@ -46599,7 +46745,7 @@ function registerPipelineTool(server, deps) {
|
|
|
46599
46745
|
}
|
|
46600
46746
|
|
|
46601
46747
|
// src/mcp/tools/supply-chain-tradeoff-panel.ts
|
|
46602
|
-
import { z as
|
|
46748
|
+
import { z as z106 } from "zod";
|
|
46603
46749
|
var DEFAULT_AXES = [
|
|
46604
46750
|
"build_time_determinism",
|
|
46605
46751
|
"supply_chain_risk",
|
|
@@ -46619,16 +46765,16 @@ var FULL_PANEL = [
|
|
|
46619
46765
|
"scope_steward"
|
|
46620
46766
|
];
|
|
46621
46767
|
var QUICK_PANEL = ["architect", "security", "scope_steward"];
|
|
46622
|
-
var SupplyChainTradeoffPanelInputSchema =
|
|
46623
|
-
proposal:
|
|
46624
|
-
axes:
|
|
46768
|
+
var SupplyChainTradeoffPanelInputSchema = z106.object({
|
|
46769
|
+
proposal: z106.string().min(1).max(MAX_PROPOSAL_LENGTH).describe('The proposal under tradeoff review (e.g. "Should aegis-boot adopt cargo-nextest?")'),
|
|
46770
|
+
axes: z106.array(z106.string().min(1).max(MAX_AXIS_NAME_LENGTH)).min(1).max(MAX_AXES).optional().describe(
|
|
46625
46771
|
`Tradeoff axes to evaluate. Default: ${DEFAULT_AXES.join(", ")}. Custom axes accepted; max ${String(MAX_AXES)}.`
|
|
46626
46772
|
),
|
|
46627
|
-
context:
|
|
46773
|
+
context: z106.string().max(MAX_CONTEXT_LENGTH).optional().describe(
|
|
46628
46774
|
"Optional context: relevant repo state, dependency tree, vendor publishing patterns, etc."
|
|
46629
46775
|
),
|
|
46630
|
-
quickMode:
|
|
46631
|
-
simulate:
|
|
46776
|
+
quickMode: z106.boolean().optional().default(false).describe("Use 3 voters (architect, security, scope_steward) instead of 7"),
|
|
46777
|
+
simulate: z106.boolean().optional().default(false).describe("Use simulated voters (testing only)")
|
|
46632
46778
|
});
|
|
46633
46779
|
function buildTradeoffProposal(input) {
|
|
46634
46780
|
const axes = input.axes ?? DEFAULT_AXES;
|
|
@@ -46989,7 +47135,8 @@ var REGISTERED_TOOL_NAMES = [
|
|
|
46989
47135
|
"supply_chain_tradeoff_panel",
|
|
46990
47136
|
"improvement_review",
|
|
46991
47137
|
"run_quality_gate",
|
|
46992
|
-
"suggest_research_tasks"
|
|
47138
|
+
"suggest_research_tasks",
|
|
47139
|
+
"list_available_models"
|
|
46993
47140
|
];
|
|
46994
47141
|
function registerTools(server, options) {
|
|
46995
47142
|
const logger56 = options?.logger ?? createMcpLogger({ component: "tools" });
|
|
@@ -47124,40 +47271,40 @@ var RiskLevel = /* @__PURE__ */ ((RiskLevel2) => {
|
|
|
47124
47271
|
})(RiskLevel || {});
|
|
47125
47272
|
|
|
47126
47273
|
// src/mcp/safety/stpa-schemas.ts
|
|
47127
|
-
import { z as
|
|
47128
|
-
var HazardCategorySchema =
|
|
47129
|
-
var HazardSeveritySchema =
|
|
47130
|
-
var ConstraintPrioritySchema =
|
|
47131
|
-
var RiskLevelSchema =
|
|
47132
|
-
var TriggerPatternSchema =
|
|
47133
|
-
parameter:
|
|
47134
|
-
matchType:
|
|
47135
|
-
pattern:
|
|
47136
|
-
reason:
|
|
47274
|
+
import { z as z107 } from "zod";
|
|
47275
|
+
var HazardCategorySchema = z107.enum(HazardCategory);
|
|
47276
|
+
var HazardSeveritySchema = z107.enum(HazardSeverity);
|
|
47277
|
+
var ConstraintPrioritySchema = z107.enum(ConstraintPriority);
|
|
47278
|
+
var RiskLevelSchema = z107.enum(RiskLevel);
|
|
47279
|
+
var TriggerPatternSchema = z107.object({
|
|
47280
|
+
parameter: z107.string().min(1),
|
|
47281
|
+
matchType: z107.enum(["contains", "regex", "equals", "startsWith", "endsWith"]),
|
|
47282
|
+
pattern: z107.string(),
|
|
47283
|
+
reason: z107.string()
|
|
47137
47284
|
});
|
|
47138
|
-
var HazardSchema =
|
|
47139
|
-
id:
|
|
47140
|
-
description:
|
|
47285
|
+
var HazardSchema = z107.object({
|
|
47286
|
+
id: z107.string().min(1),
|
|
47287
|
+
description: z107.string(),
|
|
47141
47288
|
category: HazardCategorySchema,
|
|
47142
47289
|
severity: HazardSeveritySchema,
|
|
47143
|
-
likelihood:
|
|
47144
|
-
triggerConditions:
|
|
47145
|
-
consequences:
|
|
47290
|
+
likelihood: z107.enum(["almost_certain", "likely", "possible", "unlikely", "rare"]),
|
|
47291
|
+
triggerConditions: z107.array(z107.string()),
|
|
47292
|
+
consequences: z107.array(z107.string())
|
|
47146
47293
|
});
|
|
47147
|
-
var UnsafeControlActionSchema =
|
|
47148
|
-
id:
|
|
47149
|
-
toolName:
|
|
47150
|
-
type:
|
|
47151
|
-
description:
|
|
47152
|
-
unsafeContext:
|
|
47153
|
-
relatedHazards:
|
|
47154
|
-
triggerPatterns:
|
|
47294
|
+
var UnsafeControlActionSchema = z107.object({
|
|
47295
|
+
id: z107.string().min(1),
|
|
47296
|
+
toolName: z107.string().min(1),
|
|
47297
|
+
type: z107.enum(["not_provided", "provided_causes_hazard", "wrong_timing", "wrong_duration"]),
|
|
47298
|
+
description: z107.string(),
|
|
47299
|
+
unsafeContext: z107.string(),
|
|
47300
|
+
relatedHazards: z107.array(z107.string()),
|
|
47301
|
+
triggerPatterns: z107.array(TriggerPatternSchema).optional()
|
|
47155
47302
|
});
|
|
47156
|
-
var SafetyConstraintSchema =
|
|
47157
|
-
id:
|
|
47158
|
-
description:
|
|
47159
|
-
mitigates:
|
|
47160
|
-
enforcement:
|
|
47303
|
+
var SafetyConstraintSchema = z107.object({
|
|
47304
|
+
id: z107.string().min(1),
|
|
47305
|
+
description: z107.string(),
|
|
47306
|
+
mitigates: z107.array(z107.string()),
|
|
47307
|
+
enforcement: z107.enum([
|
|
47161
47308
|
"prevent",
|
|
47162
47309
|
"require_confirmation",
|
|
47163
47310
|
"alert",
|
|
@@ -47165,54 +47312,54 @@ var SafetyConstraintSchema = z106.object({
|
|
|
47165
47312
|
"rate_limit",
|
|
47166
47313
|
"require_privilege"
|
|
47167
47314
|
]),
|
|
47168
|
-
validationFunction:
|
|
47315
|
+
validationFunction: z107.string().optional(),
|
|
47169
47316
|
priority: ConstraintPrioritySchema
|
|
47170
47317
|
});
|
|
47171
|
-
var PropertySchemaSchema =
|
|
47172
|
-
type:
|
|
47173
|
-
description:
|
|
47174
|
-
enum:
|
|
47175
|
-
pattern:
|
|
47176
|
-
minimum:
|
|
47177
|
-
maximum:
|
|
47318
|
+
var PropertySchemaSchema = z107.object({
|
|
47319
|
+
type: z107.string(),
|
|
47320
|
+
description: z107.string().optional(),
|
|
47321
|
+
enum: z107.array(z107.unknown()).optional(),
|
|
47322
|
+
pattern: z107.string().optional(),
|
|
47323
|
+
minimum: z107.number().optional(),
|
|
47324
|
+
maximum: z107.number().optional()
|
|
47178
47325
|
});
|
|
47179
|
-
var ToolInputSchemaSchema =
|
|
47180
|
-
type:
|
|
47181
|
-
properties:
|
|
47182
|
-
required:
|
|
47183
|
-
additionalProperties:
|
|
47326
|
+
var ToolInputSchemaSchema = z107.object({
|
|
47327
|
+
type: z107.string(),
|
|
47328
|
+
properties: z107.record(z107.string(), PropertySchemaSchema).optional(),
|
|
47329
|
+
required: z107.array(z107.string()).optional(),
|
|
47330
|
+
additionalProperties: z107.boolean().optional()
|
|
47184
47331
|
});
|
|
47185
|
-
var ToolDefinitionSchema =
|
|
47186
|
-
name:
|
|
47187
|
-
description:
|
|
47332
|
+
var ToolDefinitionSchema = z107.object({
|
|
47333
|
+
name: z107.string().min(1),
|
|
47334
|
+
description: z107.string(),
|
|
47188
47335
|
inputSchema: ToolInputSchemaSchema
|
|
47189
47336
|
});
|
|
47190
|
-
var AnalysisConfigurationSchema =
|
|
47191
|
-
includeLowSeverity:
|
|
47192
|
-
generateAllConstraints:
|
|
47193
|
-
checkInteractions:
|
|
47194
|
-
maxHazardsPerTool:
|
|
47195
|
-
categories:
|
|
47337
|
+
var AnalysisConfigurationSchema = z107.object({
|
|
47338
|
+
includeLowSeverity: z107.boolean().default(true),
|
|
47339
|
+
generateAllConstraints: z107.boolean().default(true),
|
|
47340
|
+
checkInteractions: z107.boolean().default(true),
|
|
47341
|
+
maxHazardsPerTool: z107.number().int().min(1).max(100).default(50),
|
|
47342
|
+
categories: z107.array(HazardCategorySchema).default([])
|
|
47196
47343
|
});
|
|
47197
|
-
var ConstraintViolationSchema =
|
|
47198
|
-
constraintId:
|
|
47199
|
-
constraintDescription:
|
|
47344
|
+
var ConstraintViolationSchema = z107.object({
|
|
47345
|
+
constraintId: z107.string().min(1),
|
|
47346
|
+
constraintDescription: z107.string(),
|
|
47200
47347
|
severity: HazardSeveritySchema,
|
|
47201
|
-
details:
|
|
47202
|
-
remediation:
|
|
47348
|
+
details: z107.string(),
|
|
47349
|
+
remediation: z107.string()
|
|
47203
47350
|
});
|
|
47204
|
-
var ValidationWarningSchema =
|
|
47205
|
-
code:
|
|
47206
|
-
message:
|
|
47207
|
-
affected:
|
|
47351
|
+
var ValidationWarningSchema = z107.object({
|
|
47352
|
+
code: z107.string().min(1),
|
|
47353
|
+
message: z107.string(),
|
|
47354
|
+
affected: z107.string()
|
|
47208
47355
|
});
|
|
47209
|
-
var ValidationResultSchema =
|
|
47210
|
-
valid:
|
|
47211
|
-
toolName:
|
|
47212
|
-
violations:
|
|
47213
|
-
passed:
|
|
47214
|
-
warnings:
|
|
47215
|
-
validatedAt:
|
|
47356
|
+
var ValidationResultSchema = z107.object({
|
|
47357
|
+
valid: z107.boolean(),
|
|
47358
|
+
toolName: z107.string().min(1),
|
|
47359
|
+
violations: z107.array(ConstraintViolationSchema),
|
|
47360
|
+
passed: z107.array(z107.string()),
|
|
47361
|
+
warnings: z107.array(ValidationWarningSchema),
|
|
47362
|
+
validatedAt: z107.date()
|
|
47216
47363
|
});
|
|
47217
47364
|
|
|
47218
47365
|
// src/mcp/safety/stpa-types.ts
|
|
@@ -48297,43 +48444,43 @@ var GeminiResponseParser = class {
|
|
|
48297
48444
|
};
|
|
48298
48445
|
|
|
48299
48446
|
// src/cli-adapters/router-types.ts
|
|
48300
|
-
import { z as
|
|
48301
|
-
var RouterConfigSchema =
|
|
48302
|
-
minCapacityThreshold:
|
|
48303
|
-
preferCostEfficient:
|
|
48304
|
-
maxDecisionTimeMs:
|
|
48447
|
+
import { z as z108 } from "zod";
|
|
48448
|
+
var RouterConfigSchema = z108.object({
|
|
48449
|
+
minCapacityThreshold: z108.number().min(0).max(1).default(0.1),
|
|
48450
|
+
preferCostEfficient: z108.boolean().default(false),
|
|
48451
|
+
maxDecisionTimeMs: z108.number().min(1).max(1e3).default(100)
|
|
48305
48452
|
});
|
|
48306
48453
|
|
|
48307
48454
|
// src/cli-adapters/agreement-cascade-types.ts
|
|
48308
|
-
import { z as
|
|
48309
|
-
var AgreementCascadeConfigSchema =
|
|
48310
|
-
agreementThreshold:
|
|
48311
|
-
maxStages:
|
|
48312
|
-
modelTimeoutMs:
|
|
48455
|
+
import { z as z109 } from "zod";
|
|
48456
|
+
var AgreementCascadeConfigSchema = z109.object({
|
|
48457
|
+
agreementThreshold: z109.number().min(0.5).max(1).default(0.7),
|
|
48458
|
+
maxStages: z109.number().int().min(1).max(5).default(3),
|
|
48459
|
+
modelTimeoutMs: z109.number().int().min(1e3).max(3e5).default(6e4)
|
|
48313
48460
|
});
|
|
48314
48461
|
|
|
48315
48462
|
// src/cli-adapters/agreement-cascade-router.ts
|
|
48316
48463
|
var logger46 = createLogger({ component: "agreement-cascade-router" });
|
|
48317
48464
|
|
|
48318
48465
|
// src/cli-adapters/task-classifier.ts
|
|
48319
|
-
import { z as
|
|
48320
|
-
var ClassificationPatternsSchema =
|
|
48321
|
-
code:
|
|
48322
|
-
research:
|
|
48323
|
-
documentation:
|
|
48324
|
-
analysis:
|
|
48466
|
+
import { z as z110 } from "zod";
|
|
48467
|
+
var ClassificationPatternsSchema = z110.object({
|
|
48468
|
+
code: z110.array(z110.string()).readonly(),
|
|
48469
|
+
research: z110.array(z110.string()).readonly(),
|
|
48470
|
+
documentation: z110.array(z110.string()).readonly(),
|
|
48471
|
+
analysis: z110.array(z110.string()).readonly()
|
|
48325
48472
|
});
|
|
48326
48473
|
|
|
48327
48474
|
// src/cli-adapters/response-cache-types.ts
|
|
48328
|
-
import { z as
|
|
48329
|
-
var ResponseCacheConfigSchema =
|
|
48330
|
-
defaultTTL:
|
|
48475
|
+
import { z as z111 } from "zod";
|
|
48476
|
+
var ResponseCacheConfigSchema = z111.object({
|
|
48477
|
+
defaultTTL: z111.number().min(1e3).max(36e5).default(3e5),
|
|
48331
48478
|
// 5 minutes
|
|
48332
|
-
maxEntries:
|
|
48333
|
-
maxMemoryMB:
|
|
48334
|
-
cleanupInterval:
|
|
48479
|
+
maxEntries: z111.number().min(10).max(1e5).default(1e3),
|
|
48480
|
+
maxMemoryMB: z111.number().min(1).max(1e3).default(50),
|
|
48481
|
+
cleanupInterval: z111.number().min(1e3).max(6e5).default(6e4),
|
|
48335
48482
|
// 1 minute
|
|
48336
|
-
enableLogging:
|
|
48483
|
+
enableLogging: z111.boolean().default(false)
|
|
48337
48484
|
});
|
|
48338
48485
|
|
|
48339
48486
|
// src/cli-adapters/response-cache-utils.ts
|
|
@@ -48341,12 +48488,12 @@ import { createHash as createHash4 } from "crypto";
|
|
|
48341
48488
|
var logger47 = createLogger({ component: "ResponseCacheUtils" });
|
|
48342
48489
|
|
|
48343
48490
|
// src/cli-adapters/unified-routing-types.ts
|
|
48344
|
-
import { z as
|
|
48345
|
-
var UnifiedRoutingDecisionSchema =
|
|
48346
|
-
selectedCli:
|
|
48347
|
-
confidence:
|
|
48348
|
-
reason:
|
|
48349
|
-
strategy:
|
|
48491
|
+
import { z as z112 } from "zod";
|
|
48492
|
+
var UnifiedRoutingDecisionSchema = z112.object({
|
|
48493
|
+
selectedCli: z112.string(),
|
|
48494
|
+
confidence: z112.number().min(0).max(1),
|
|
48495
|
+
reason: z112.string(),
|
|
48496
|
+
strategy: z112.enum([
|
|
48350
48497
|
"composite",
|
|
48351
48498
|
"quality",
|
|
48352
48499
|
"budget",
|
|
@@ -48358,57 +48505,57 @@ var UnifiedRoutingDecisionSchema = z111.object({
|
|
|
48358
48505
|
"linucb",
|
|
48359
48506
|
"direct"
|
|
48360
48507
|
]),
|
|
48361
|
-
decisionTimeMs:
|
|
48362
|
-
alternatives:
|
|
48363
|
-
stagesExecuted:
|
|
48364
|
-
withinBudget:
|
|
48365
|
-
estimatedComplexity:
|
|
48366
|
-
estimatedTokens:
|
|
48367
|
-
topsisScore:
|
|
48368
|
-
ucbScore:
|
|
48369
|
-
resolvedAtStage:
|
|
48370
|
-
consensusReached:
|
|
48371
|
-
agreementScore:
|
|
48372
|
-
metadata:
|
|
48508
|
+
decisionTimeMs: z112.number().nonnegative(),
|
|
48509
|
+
alternatives: z112.array(z112.string()).readonly(),
|
|
48510
|
+
stagesExecuted: z112.array(z112.string()).readonly(),
|
|
48511
|
+
withinBudget: z112.boolean().optional(),
|
|
48512
|
+
estimatedComplexity: z112.enum(["simple", "moderate", "complex", "expert"]).optional(),
|
|
48513
|
+
estimatedTokens: z112.number().int().positive().optional(),
|
|
48514
|
+
topsisScore: z112.number().optional(),
|
|
48515
|
+
ucbScore: z112.number().optional(),
|
|
48516
|
+
resolvedAtStage: z112.number().int().nonnegative().optional(),
|
|
48517
|
+
consensusReached: z112.boolean().optional(),
|
|
48518
|
+
agreementScore: z112.number().min(0).max(1).optional(),
|
|
48519
|
+
metadata: z112.record(z112.string(), z112.unknown()).optional()
|
|
48373
48520
|
});
|
|
48374
48521
|
|
|
48375
48522
|
// src/learning/outcome-feedback-types.ts
|
|
48376
|
-
import { z as
|
|
48377
|
-
var QualitySignalsSchema =
|
|
48378
|
-
testsPass:
|
|
48379
|
-
lintErrors:
|
|
48380
|
-
userApproved:
|
|
48381
|
-
retryCount:
|
|
48382
|
-
completionRatio:
|
|
48383
|
-
validStructure:
|
|
48384
|
-
coherenceScore:
|
|
48523
|
+
import { z as z113 } from "zod";
|
|
48524
|
+
var QualitySignalsSchema = z113.object({
|
|
48525
|
+
testsPass: z113.boolean().optional(),
|
|
48526
|
+
lintErrors: z113.number().int().min(0).optional(),
|
|
48527
|
+
userApproved: z113.boolean().optional(),
|
|
48528
|
+
retryCount: z113.number().int().min(0).default(0),
|
|
48529
|
+
completionRatio: z113.number().min(0).max(1).default(1),
|
|
48530
|
+
validStructure: z113.boolean().optional(),
|
|
48531
|
+
coherenceScore: z113.number().min(0).max(1).optional()
|
|
48385
48532
|
});
|
|
48386
|
-
var RoutingDecisionSchema =
|
|
48387
|
-
id:
|
|
48388
|
-
timestamp:
|
|
48389
|
-
query:
|
|
48390
|
-
routerType:
|
|
48391
|
-
selectedModel:
|
|
48392
|
-
selectedTier:
|
|
48393
|
-
armIndex:
|
|
48394
|
-
banditContext:
|
|
48395
|
-
queryFeatures:
|
|
48396
|
-
ucbScore:
|
|
48397
|
-
confidence:
|
|
48398
|
-
traceId:
|
|
48399
|
-
domain:
|
|
48533
|
+
var RoutingDecisionSchema = z113.object({
|
|
48534
|
+
id: z113.uuid(),
|
|
48535
|
+
timestamp: z113.iso.datetime(),
|
|
48536
|
+
query: z113.string(),
|
|
48537
|
+
routerType: z113.enum(["linucb", "preference", "quality", "cascade", "topsis"]),
|
|
48538
|
+
selectedModel: z113.string(),
|
|
48539
|
+
selectedTier: z113.enum(["strong", "weak"]).optional(),
|
|
48540
|
+
armIndex: z113.number().int().min(0).optional(),
|
|
48541
|
+
banditContext: z113.record(z113.string(), z113.unknown()).optional(),
|
|
48542
|
+
queryFeatures: z113.record(z113.string(), z113.unknown()).optional(),
|
|
48543
|
+
ucbScore: z113.number().optional(),
|
|
48544
|
+
confidence: z113.number().min(0).max(1).optional(),
|
|
48545
|
+
traceId: z113.string(),
|
|
48546
|
+
domain: z113.string().optional()
|
|
48400
48547
|
});
|
|
48401
|
-
var TaskOutcomeSchema =
|
|
48402
|
-
routingDecisionId:
|
|
48403
|
-
timestamp:
|
|
48404
|
-
outcomeClass:
|
|
48405
|
-
success:
|
|
48406
|
-
qualityScore:
|
|
48407
|
-
durationMs:
|
|
48408
|
-
tokenUsage:
|
|
48409
|
-
errorMessage:
|
|
48548
|
+
var TaskOutcomeSchema = z113.object({
|
|
48549
|
+
routingDecisionId: z113.uuid(),
|
|
48550
|
+
timestamp: z113.iso.datetime(),
|
|
48551
|
+
outcomeClass: z113.enum(["success", "partial", "failure", "timeout", "error"]),
|
|
48552
|
+
success: z113.boolean(),
|
|
48553
|
+
qualityScore: z113.number().min(0).max(1),
|
|
48554
|
+
durationMs: z113.number().min(0),
|
|
48555
|
+
tokenUsage: z113.number().int().min(0),
|
|
48556
|
+
errorMessage: z113.string().optional(),
|
|
48410
48557
|
qualitySignals: QualitySignalsSchema,
|
|
48411
|
-
traceId:
|
|
48558
|
+
traceId: z113.string()
|
|
48412
48559
|
});
|
|
48413
48560
|
var DEFAULT_FEEDBACK_COLLECTOR_CONFIG = {
|
|
48414
48561
|
maxPendingDecisions: 1e3,
|
|
@@ -48423,17 +48570,17 @@ var DEFAULT_FEEDBACK_COLLECTOR_CONFIG = {
|
|
|
48423
48570
|
targetTokenUsage: 2e3,
|
|
48424
48571
|
maxHistorySize: 1e4
|
|
48425
48572
|
};
|
|
48426
|
-
var FeedbackCollectorConfigSchema =
|
|
48427
|
-
maxPendingDecisions:
|
|
48428
|
-
pendingTimeoutMs:
|
|
48429
|
-
enableAutoReward:
|
|
48430
|
-
qualityWeight:
|
|
48431
|
-
speedWeight:
|
|
48432
|
-
efficiencyWeight:
|
|
48433
|
-
retryPenalty:
|
|
48434
|
-
targetDurationMs:
|
|
48435
|
-
targetTokenUsage:
|
|
48436
|
-
maxHistorySize:
|
|
48573
|
+
var FeedbackCollectorConfigSchema = z113.object({
|
|
48574
|
+
maxPendingDecisions: z113.number().int().positive().default(1e3),
|
|
48575
|
+
pendingTimeoutMs: z113.number().positive().default(3e5),
|
|
48576
|
+
enableAutoReward: z113.boolean().default(true),
|
|
48577
|
+
qualityWeight: z113.number().min(0).max(1).default(0.5),
|
|
48578
|
+
speedWeight: z113.number().min(0).max(1).default(0.2),
|
|
48579
|
+
efficiencyWeight: z113.number().min(0).max(1).default(0.2),
|
|
48580
|
+
retryPenalty: z113.number().min(0).max(1).default(0.1),
|
|
48581
|
+
targetDurationMs: z113.number().positive().default(5e3),
|
|
48582
|
+
targetTokenUsage: z113.number().positive().default(2e3),
|
|
48583
|
+
maxHistorySize: z113.number().int().positive().default(1e4)
|
|
48437
48584
|
});
|
|
48438
48585
|
|
|
48439
48586
|
// src/learning/outcome-feedback-helpers.ts
|
|
@@ -50025,7 +50172,7 @@ var GitHubTaskTracker = class {
|
|
|
50025
50172
|
cachedProvider = null;
|
|
50026
50173
|
async getProvider() {
|
|
50027
50174
|
if (this.cachedProvider !== null) return this.cachedProvider;
|
|
50028
|
-
const { createScmProvider } = await import("./factory-
|
|
50175
|
+
const { createScmProvider } = await import("./factory-7ENY4JOE.js");
|
|
50029
50176
|
const result = await createScmProvider({ repo: this.config.repo ?? "" });
|
|
50030
50177
|
if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
|
|
50031
50178
|
this.cachedProvider = result.value;
|
|
@@ -50667,6 +50814,7 @@ export {
|
|
|
50667
50814
|
registerVerifyAuditChainTool,
|
|
50668
50815
|
checkForResearchTriggers,
|
|
50669
50816
|
registerSuggestResearchTasksTool,
|
|
50817
|
+
registerListAvailableModelsTool,
|
|
50670
50818
|
PIPELINE_STATE_KEYS,
|
|
50671
50819
|
compilePipelineGraph,
|
|
50672
50820
|
runGraphPipeline,
|
|
@@ -50735,4 +50883,4 @@ export {
|
|
|
50735
50883
|
detectBackend,
|
|
50736
50884
|
createTaskTracker
|
|
50737
50885
|
};
|
|
50738
|
-
//# sourceMappingURL=chunk-
|
|
50886
|
+
//# sourceMappingURL=chunk-CB66XOZQ.js.map
|