nexus-agents 2.72.1 → 2.74.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/{adaptive-memory-UPE76IP6.js → adaptive-memory-OJY3IVNM.js} +3 -3
- package/dist/{child-mcp-config-5HRJGLCR.js → child-mcp-config-KMCKKPNY.js} +2 -2
- package/dist/{chunk-TF3GROMO.js → chunk-2SVS5WRV.js} +2 -2
- package/dist/{chunk-QECRZ3YA.js → chunk-3ESCBV47.js} +2 -2
- package/dist/{chunk-QL4HCYRD.js → chunk-3SZBDLFX.js} +3 -3
- package/dist/{chunk-VTVKC4FS.js → chunk-44MVIL3F.js} +4 -4
- package/dist/{chunk-BVETPIOQ.js → chunk-4K6L7RKC.js} +3 -3
- package/dist/chunk-4K6L7RKC.js.map +1 -0
- package/dist/{chunk-C3JGKBL2.js → chunk-65R32U3M.js} +4 -4
- package/dist/{chunk-3FIDMWFC.js → chunk-BK54O5J5.js} +2 -2
- package/dist/chunk-BK54O5J5.js.map +1 -0
- package/dist/{chunk-J4VR2WNI.js → chunk-BYKS53GW.js} +1086 -1709
- package/dist/chunk-BYKS53GW.js.map +1 -0
- package/dist/{chunk-L6N2S3UB.js → chunk-CCODJRS6.js} +2 -2
- package/dist/{chunk-DA5UDQYW.js → chunk-DGELGUZF.js} +2 -2
- package/dist/{chunk-2KB63QGE.js → chunk-EQHYXT56.js} +2 -2
- package/dist/{chunk-VPC3YNFR.js → chunk-G5VE2DZS.js} +2 -2
- package/dist/{chunk-2MD5MWCK.js → chunk-GS3GW7C7.js} +2 -2
- package/dist/{chunk-ES6GFP35.js → chunk-NC2LECY6.js} +26 -9
- package/dist/chunk-NC2LECY6.js.map +1 -0
- package/dist/{chunk-5MHIWRKB.js → chunk-NQR7QAZX.js} +21 -2
- package/dist/chunk-NQR7QAZX.js.map +1 -0
- package/dist/{chunk-5WQ3SRSE.js → chunk-PAFH336F.js} +2 -2
- package/dist/{chunk-O4KUCF5S.js → chunk-Q3RFPJYK.js} +1325 -441
- package/dist/chunk-Q3RFPJYK.js.map +1 -0
- package/dist/{chunk-P5OFZWDW.js → chunk-Q6JDV36D.js} +13 -6
- package/dist/chunk-Q6JDV36D.js.map +1 -0
- package/dist/{chunk-A35XORXU.js → chunk-Q7FTNKPO.js} +2 -2
- package/dist/chunk-QON7LR7J.js +153 -0
- package/dist/chunk-QON7LR7J.js.map +1 -0
- package/dist/{chunk-53K3KEKT.js → chunk-T5VPZZYX.js} +1564 -848
- package/dist/chunk-T5VPZZYX.js.map +1 -0
- package/dist/{chunk-TQFRPFMG.js → chunk-TBRNRW2Q.js} +2 -2
- package/dist/{chunk-345KMHWH.js → chunk-UWJKMBPL.js} +6 -6
- package/dist/{chunk-V7ATY4BG.js → chunk-VJD5LANR.js} +14 -16
- package/dist/chunk-VJD5LANR.js.map +1 -0
- package/dist/{chunk-YOREAPF6.js → chunk-WCCTIRSB.js} +11 -10
- package/dist/chunk-WCCTIRSB.js.map +1 -0
- package/dist/{cli-circuit-breaker-GFF2RLBZ.js → cli-circuit-breaker-STXIH563.js} +4 -4
- package/dist/cli.d.ts +5 -2
- package/dist/cli.js +138 -106
- package/dist/cli.js.map +1 -1
- package/dist/{composite-router-33F3F74I.js → composite-router-7AHZN3VI.js} +2 -2
- package/dist/{consensus-vote-5V4KVHBE.js → consensus-vote-XY55C7WQ.js} +11 -10
- package/dist/consensus-vote-types-CoGbAEjf.d.ts +195 -0
- package/dist/{doctor-deep-AHDTNURD.js → doctor-deep-ONHJTGR4.js} +3 -3
- package/dist/{expert-bridge-DMDHHDEU.js → expert-bridge-3AWQHR65.js} +3 -3
- package/dist/{factory-FVD7PZ6S.js → factory-E5NMAMZC.js} +5 -5
- package/dist/{factory-VQS3HJ7V.js → factory-HWHQ44BB.js} +4 -4
- package/dist/index.d.ts +4089 -3693
- package/dist/index.js +85 -73
- package/dist/index.js.map +1 -1
- package/dist/{init-opencode-EIOIPVWL.js → init-opencode-Z7OQ5RCB.js} +5 -5
- package/dist/{issue-triage-HJUJWGAD.js → issue-triage-UWBHMQHC.js} +4 -4
- package/dist/{mobimem-BOJFXQ7B.js → mobimem-G4UXJTCV.js} +2 -2
- package/dist/{registry-command-NCWUJKAF.js → registry-command-HYWVRAHE.js} +5 -6
- package/dist/registry-command-HYWVRAHE.js.map +1 -0
- package/dist/{repo-security-plan-3J45VAD6.js → repo-security-plan-W35CXK3T.js} +3 -3
- package/dist/{research-helpers-synthesize-UGQHZZJN.js → research-helpers-synthesize-GUQORWL4.js} +3 -3
- package/dist/{routing-memory-NO7QEH7T.js → routing-memory-VOJBOX3X.js} +2 -2
- package/dist/{session-memory-DOXLEWEU.js → session-memory-B6LQMF4N.js} +3 -3
- package/dist/{setup-command-BWUFMZ7U.js → setup-command-CTC5YNA4.js} +9 -8
- package/dist/{setup-config-E3JZYSLR.js → setup-config-53MHJA7S.js} +3 -3
- package/dist/{setup-custom-api-DHJ5DRH2.js → setup-custom-api-VD5W754A.js} +4 -4
- package/dist/{weather-report-FNN4OX3N.js → weather-report-APASTJDQ.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-3FIDMWFC.js.map +0 -1
- package/dist/chunk-53K3KEKT.js.map +0 -1
- package/dist/chunk-5MHIWRKB.js.map +0 -1
- package/dist/chunk-BVETPIOQ.js.map +0 -1
- package/dist/chunk-ES6GFP35.js.map +0 -1
- package/dist/chunk-J4VR2WNI.js.map +0 -1
- package/dist/chunk-O4KUCF5S.js.map +0 -1
- package/dist/chunk-P5OFZWDW.js.map +0 -1
- package/dist/chunk-V7ATY4BG.js.map +0 -1
- package/dist/chunk-YOREAPF6.js.map +0 -1
- package/dist/model-capabilities-types-B57GZryc.d.ts +0 -18
- package/dist/registry-command-NCWUJKAF.js.map +0 -1
- /package/dist/{adaptive-memory-UPE76IP6.js.map → adaptive-memory-OJY3IVNM.js.map} +0 -0
- /package/dist/{child-mcp-config-5HRJGLCR.js.map → child-mcp-config-KMCKKPNY.js.map} +0 -0
- /package/dist/{chunk-TF3GROMO.js.map → chunk-2SVS5WRV.js.map} +0 -0
- /package/dist/{chunk-QECRZ3YA.js.map → chunk-3ESCBV47.js.map} +0 -0
- /package/dist/{chunk-QL4HCYRD.js.map → chunk-3SZBDLFX.js.map} +0 -0
- /package/dist/{chunk-VTVKC4FS.js.map → chunk-44MVIL3F.js.map} +0 -0
- /package/dist/{chunk-C3JGKBL2.js.map → chunk-65R32U3M.js.map} +0 -0
- /package/dist/{chunk-L6N2S3UB.js.map → chunk-CCODJRS6.js.map} +0 -0
- /package/dist/{chunk-DA5UDQYW.js.map → chunk-DGELGUZF.js.map} +0 -0
- /package/dist/{chunk-2KB63QGE.js.map → chunk-EQHYXT56.js.map} +0 -0
- /package/dist/{chunk-VPC3YNFR.js.map → chunk-G5VE2DZS.js.map} +0 -0
- /package/dist/{chunk-2MD5MWCK.js.map → chunk-GS3GW7C7.js.map} +0 -0
- /package/dist/{chunk-5WQ3SRSE.js.map → chunk-PAFH336F.js.map} +0 -0
- /package/dist/{chunk-A35XORXU.js.map → chunk-Q7FTNKPO.js.map} +0 -0
- /package/dist/{chunk-TQFRPFMG.js.map → chunk-TBRNRW2Q.js.map} +0 -0
- /package/dist/{chunk-345KMHWH.js.map → chunk-UWJKMBPL.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-GFF2RLBZ.js.map → cli-circuit-breaker-STXIH563.js.map} +0 -0
- /package/dist/{composite-router-33F3F74I.js.map → composite-router-7AHZN3VI.js.map} +0 -0
- /package/dist/{consensus-vote-5V4KVHBE.js.map → consensus-vote-XY55C7WQ.js.map} +0 -0
- /package/dist/{doctor-deep-AHDTNURD.js.map → doctor-deep-ONHJTGR4.js.map} +0 -0
- /package/dist/{expert-bridge-DMDHHDEU.js.map → expert-bridge-3AWQHR65.js.map} +0 -0
- /package/dist/{factory-FVD7PZ6S.js.map → factory-E5NMAMZC.js.map} +0 -0
- /package/dist/{factory-VQS3HJ7V.js.map → factory-HWHQ44BB.js.map} +0 -0
- /package/dist/{init-opencode-EIOIPVWL.js.map → init-opencode-Z7OQ5RCB.js.map} +0 -0
- /package/dist/{issue-triage-HJUJWGAD.js.map → issue-triage-UWBHMQHC.js.map} +0 -0
- /package/dist/{mobimem-BOJFXQ7B.js.map → mobimem-G4UXJTCV.js.map} +0 -0
- /package/dist/{repo-security-plan-3J45VAD6.js.map → repo-security-plan-W35CXK3T.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-UGQHZZJN.js.map → research-helpers-synthesize-GUQORWL4.js.map} +0 -0
- /package/dist/{routing-memory-NO7QEH7T.js.map → routing-memory-VOJBOX3X.js.map} +0 -0
- /package/dist/{session-memory-DOXLEWEU.js.map → session-memory-B6LQMF4N.js.map} +0 -0
- /package/dist/{setup-command-BWUFMZ7U.js.map → setup-command-CTC5YNA4.js.map} +0 -0
- /package/dist/{setup-config-E3JZYSLR.js.map → setup-config-53MHJA7S.js.map} +0 -0
- /package/dist/{setup-custom-api-DHJ5DRH2.js.map → setup-custom-api-VD5W754A.js.map} +0 -0
- /package/dist/{weather-report-FNN4OX3N.js.map → weather-report-APASTJDQ.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -12,18 +12,18 @@ import {
|
|
|
12
12
|
parseFindings,
|
|
13
13
|
sumFindings
|
|
14
14
|
} from "./chunk-6E3NMMEY.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-G5VE2DZS.js";
|
|
16
16
|
import {
|
|
17
17
|
buildOpenAICompatAdapters,
|
|
18
18
|
loadUsageEvents,
|
|
19
19
|
readOpenAICompatEnv,
|
|
20
20
|
rollupByModel
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-Q6JDV36D.js";
|
|
22
22
|
import {
|
|
23
23
|
setupCommandAsync,
|
|
24
24
|
verifyCommand
|
|
25
|
-
} from "./chunk-
|
|
26
|
-
import "./chunk-
|
|
25
|
+
} from "./chunk-65R32U3M.js";
|
|
26
|
+
import "./chunk-DGELGUZF.js";
|
|
27
27
|
import {
|
|
28
28
|
AuthHandler,
|
|
29
29
|
DEFAULT_EXPERTS,
|
|
@@ -35,10 +35,10 @@ import {
|
|
|
35
35
|
OrchestratorFactory,
|
|
36
36
|
PuppeteerOrchestrator,
|
|
37
37
|
READONLY_POLICY,
|
|
38
|
+
ResearchDiscoverInputSchema,
|
|
38
39
|
SwarmObserver,
|
|
39
40
|
ValidationDashboard,
|
|
40
41
|
WorkflowDefinitionSchema,
|
|
41
|
-
addResearchPaper,
|
|
42
42
|
analyzeTools,
|
|
43
43
|
calculateFitnessScore,
|
|
44
44
|
createAgentStages,
|
|
@@ -72,6 +72,8 @@ import {
|
|
|
72
72
|
discoverOpenAlex,
|
|
73
73
|
discoverPapersWithCode,
|
|
74
74
|
discoverSemanticScholar,
|
|
75
|
+
executeDiscovery,
|
|
76
|
+
executeResearchAdd,
|
|
75
77
|
findOverlaps,
|
|
76
78
|
flushPipelineMemory,
|
|
77
79
|
formatOverlapResult,
|
|
@@ -150,47 +152,48 @@ import {
|
|
|
150
152
|
validateCommand,
|
|
151
153
|
validateWorkflow,
|
|
152
154
|
wrapInMarkdownFence
|
|
153
|
-
} from "./chunk-
|
|
155
|
+
} from "./chunk-BYKS53GW.js";
|
|
154
156
|
import "./chunk-ED6VQWNG.js";
|
|
155
157
|
import {
|
|
156
158
|
resolveToken
|
|
157
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-2SVS5WRV.js";
|
|
158
160
|
import {
|
|
159
161
|
CATEGORY_DISPLAY_NAMES,
|
|
160
162
|
DEFAULT_PR_REVIEW_CONFIG
|
|
161
163
|
} from "./chunk-X2M7OF27.js";
|
|
162
|
-
import "./chunk-
|
|
163
|
-
import "./chunk-
|
|
164
|
+
import "./chunk-4K6L7RKC.js";
|
|
165
|
+
import "./chunk-UWJKMBPL.js";
|
|
164
166
|
import {
|
|
165
167
|
DEFAULT_VOTE_TIMEOUT_MS,
|
|
166
|
-
|
|
168
|
+
ErrorPolicySchema,
|
|
167
169
|
VOTER_ROLES,
|
|
168
|
-
|
|
169
|
-
createConsensusEngine,
|
|
170
|
+
VoteThresholdSchema,
|
|
170
171
|
createDefaultPolicyFirewall,
|
|
171
172
|
createUnifiedRegistry,
|
|
173
|
+
executeVoting,
|
|
174
|
+
getToolAnnotations,
|
|
172
175
|
registerConsensusVoteTool,
|
|
173
176
|
shutdownToolMemory,
|
|
174
|
-
|
|
177
|
+
toolStructuredError,
|
|
175
178
|
warnIfSimulatedOutsideTests
|
|
176
|
-
} from "./chunk-
|
|
177
|
-
import "./chunk-
|
|
178
|
-
import "./chunk-
|
|
179
|
+
} from "./chunk-T5VPZZYX.js";
|
|
180
|
+
import "./chunk-NQR7QAZX.js";
|
|
181
|
+
import "./chunk-PAFH336F.js";
|
|
179
182
|
import {
|
|
180
183
|
loadPapersRegistry,
|
|
181
184
|
loadTechniquesRegistry,
|
|
182
185
|
savePapersRegistry,
|
|
183
186
|
synthesizeResearch
|
|
184
|
-
} from "./chunk-
|
|
187
|
+
} from "./chunk-Q7FTNKPO.js";
|
|
185
188
|
import {
|
|
186
189
|
classifyTrust,
|
|
187
190
|
createFullGitHubProvider,
|
|
188
191
|
evaluatePolicy,
|
|
189
192
|
parsePRUrl,
|
|
190
193
|
sanitizeInput
|
|
191
|
-
} from "./chunk-
|
|
192
|
-
import "./chunk-
|
|
193
|
-
import "./chunk-
|
|
194
|
+
} from "./chunk-VJD5LANR.js";
|
|
195
|
+
import "./chunk-BK54O5J5.js";
|
|
196
|
+
import "./chunk-CCODJRS6.js";
|
|
194
197
|
import "./chunk-BC3M4VLP.js";
|
|
195
198
|
import "./chunk-AP2FD37C.js";
|
|
196
199
|
import "./chunk-BQ4YXGGQ.js";
|
|
@@ -213,28 +216,29 @@ import {
|
|
|
213
216
|
probeAllClis,
|
|
214
217
|
runDoctor,
|
|
215
218
|
validateNexusEnv
|
|
216
|
-
} from "./chunk-
|
|
219
|
+
} from "./chunk-WCCTIRSB.js";
|
|
220
|
+
import "./chunk-QON7LR7J.js";
|
|
217
221
|
import {
|
|
218
222
|
DEFAULTS
|
|
219
|
-
} from "./chunk-
|
|
223
|
+
} from "./chunk-GS3GW7C7.js";
|
|
220
224
|
import "./chunk-NUBSJGQZ.js";
|
|
221
225
|
import {
|
|
222
226
|
createAllAdapters,
|
|
223
227
|
getAvailableClis,
|
|
224
228
|
isRecord
|
|
225
|
-
} from "./chunk-
|
|
229
|
+
} from "./chunk-NC2LECY6.js";
|
|
226
230
|
import "./chunk-ZM4O442V.js";
|
|
227
|
-
import "./chunk-
|
|
231
|
+
import "./chunk-EQHYXT56.js";
|
|
228
232
|
import {
|
|
229
233
|
MemoryError
|
|
230
|
-
} from "./chunk-
|
|
234
|
+
} from "./chunk-3ESCBV47.js";
|
|
231
235
|
import {
|
|
232
236
|
capitalize,
|
|
233
237
|
capitalizeKebab,
|
|
234
238
|
truncateSentence
|
|
235
239
|
} from "./chunk-633WH2ML.js";
|
|
236
|
-
import "./chunk-
|
|
237
|
-
import "./chunk-
|
|
240
|
+
import "./chunk-3SZBDLFX.js";
|
|
241
|
+
import "./chunk-TBRNRW2Q.js";
|
|
238
242
|
import {
|
|
239
243
|
API_TIMEOUTS,
|
|
240
244
|
AgentCapability,
|
|
@@ -242,10 +246,10 @@ import {
|
|
|
242
246
|
CLI_NAMES,
|
|
243
247
|
CLI_SUBPROCESS_TIMEOUTS,
|
|
244
248
|
DEFAULT_CLI,
|
|
245
|
-
DEFAULT_MODEL_CAPABILITIES,
|
|
246
249
|
DEFAULT_MODEL_PROFILES,
|
|
247
250
|
ErrorCode,
|
|
248
251
|
INPUT_MODALITIES,
|
|
252
|
+
INTERNAL_TIMEOUTS,
|
|
249
253
|
LinUCBBandit,
|
|
250
254
|
MCP_TIMEOUTS,
|
|
251
255
|
NexusError,
|
|
@@ -281,12 +285,13 @@ import {
|
|
|
281
285
|
getCliModelName,
|
|
282
286
|
getDefaultModelForCli,
|
|
283
287
|
getErrorMessage,
|
|
284
|
-
|
|
288
|
+
getInTreeCapabilitiesMatrix,
|
|
285
289
|
getOutcomeStore,
|
|
286
290
|
getPipelineEventBus,
|
|
287
291
|
getRandomProvider,
|
|
288
292
|
getTimeProvider,
|
|
289
293
|
logger,
|
|
294
|
+
lookupInTreeCapability,
|
|
290
295
|
ok,
|
|
291
296
|
parseTierOverrides,
|
|
292
297
|
resetOutcomeStore,
|
|
@@ -298,9 +303,10 @@ import {
|
|
|
298
303
|
symbols,
|
|
299
304
|
taskAnalysisResultToTaskProfile,
|
|
300
305
|
toError,
|
|
306
|
+
validateTimeout,
|
|
301
307
|
writeEmptyLine,
|
|
302
308
|
writeLine
|
|
303
|
-
} from "./chunk-
|
|
309
|
+
} from "./chunk-Q3RFPJYK.js";
|
|
304
310
|
import "./chunk-I7ORMAO7.js";
|
|
305
311
|
import {
|
|
306
312
|
detectSandbox,
|
|
@@ -519,7 +525,7 @@ function qualifiesBalanced(m) {
|
|
|
519
525
|
return (m.qualityScores?.reasoning ?? 0) >= 7;
|
|
520
526
|
}
|
|
521
527
|
function bucketModels() {
|
|
522
|
-
const all =
|
|
528
|
+
const all = getInTreeCapabilitiesMatrix().models;
|
|
523
529
|
const seenProvider = /* @__PURE__ */ new Set();
|
|
524
530
|
const sortedByReasoning = [...all].sort(
|
|
525
531
|
(a, b) => (b.qualityScores?.reasoning ?? 0) - (a.qualityScores?.reasoning ?? 0)
|
|
@@ -551,7 +557,7 @@ function pickOnePerProvider(models, tier, qualifies, seenProvider) {
|
|
|
551
557
|
return out;
|
|
552
558
|
}
|
|
553
559
|
function pickDefaultModel() {
|
|
554
|
-
const sorted = [...
|
|
560
|
+
const sorted = [...getInTreeCapabilitiesMatrix().models].sort(
|
|
555
561
|
(a, b) => (b.qualityScores?.reasoning ?? 0) - (a.qualityScores?.reasoning ?? 0)
|
|
556
562
|
);
|
|
557
563
|
const sonnet = sorted.find((m) => m.id === "claude-sonnet");
|
|
@@ -569,7 +575,7 @@ function renderConfigTemplate() {
|
|
|
569
575
|
# Documentation: https://github.com/williamzujkowski/nexus-agents
|
|
570
576
|
#
|
|
571
577
|
# Model identifiers below are derived from the canonical registry at
|
|
572
|
-
# config/
|
|
578
|
+
# config/in-tree-data.ts. Update there to change defaults; this
|
|
573
579
|
# template is regenerated each time config init runs.
|
|
574
580
|
|
|
575
581
|
# Model configuration
|
|
@@ -4242,7 +4248,7 @@ function createPolicyEngine(options, logger17) {
|
|
|
4242
4248
|
return createRuleBasedPolicy();
|
|
4243
4249
|
}
|
|
4244
4250
|
function createOrchestrator(policyEngine, agents, options) {
|
|
4245
|
-
const config = { maxSteps: options.maxSteps ?? 5, timeoutMs:
|
|
4251
|
+
const config = { maxSteps: options.maxSteps ?? 5, timeoutMs: INTERNAL_TIMEOUTS.puppeteerMs };
|
|
4246
4252
|
return options.learn === true ? new PuppeteerOrchestrator({
|
|
4247
4253
|
policyEngine,
|
|
4248
4254
|
agents,
|
|
@@ -5943,14 +5949,6 @@ function generateVoteHash(role, vote) {
|
|
|
5943
5949
|
const hash = crypto.createHash("sha256").update(data).digest("hex").slice(0, 16);
|
|
5944
5950
|
return { role, hash, timestamp: getTimeProvider().nowIso() };
|
|
5945
5951
|
}
|
|
5946
|
-
async function collectVotes(proposal, roles, simulateVotes, timeoutMs) {
|
|
5947
|
-
return collectRealVotes({
|
|
5948
|
-
roles,
|
|
5949
|
-
proposal,
|
|
5950
|
-
simulate: simulateVotes,
|
|
5951
|
-
...timeoutMs !== void 0 && { timeoutMs }
|
|
5952
|
-
});
|
|
5953
|
-
}
|
|
5954
5952
|
function printVoteDetails(votes) {
|
|
5955
5953
|
writeLine(`${colors.cyan}Votes${colors.reset}
|
|
5956
5954
|
`);
|
|
@@ -6083,10 +6081,6 @@ function recordVoteToGitHub(issueNumber, result) {
|
|
|
6083
6081
|
}
|
|
6084
6082
|
}
|
|
6085
6083
|
async function runVote(options) {
|
|
6086
|
-
const threshold = THRESHOLD_MAP[options.threshold ?? "supermajority"] ?? "supermajority";
|
|
6087
|
-
const useQuick = options.quick === true;
|
|
6088
|
-
const roles = useQuick ? ["architect", "security", "scope_steward"] : ["architect", "security", "devex", "ai_ml", "pm", "catfish", "scope_steward"];
|
|
6089
|
-
const start = getTimeProvider().now();
|
|
6090
6084
|
const requestedTimeoutMs = options.timeoutMs ?? DEFAULT_VOTE_TIMEOUT_MS;
|
|
6091
6085
|
const { value: timeoutMs, clamped } = validateTimeout(requestedTimeoutMs);
|
|
6092
6086
|
const timeoutSec = timeoutMs / 1e3;
|
|
@@ -6096,33 +6090,28 @@ async function runVote(options) {
|
|
|
6096
6090
|
`
|
|
6097
6091
|
);
|
|
6098
6092
|
}
|
|
6093
|
+
const useQuick = options.quick === true;
|
|
6094
|
+
const roleCount = useQuick ? 3 : 7;
|
|
6099
6095
|
writeLine(
|
|
6100
|
-
`${colors.dim}Collecting votes from ${String(
|
|
6096
|
+
`${colors.dim}Collecting votes from ${String(roleCount)} agents (timeout: ${String(timeoutSec)}s each)...${colors.reset}
|
|
6101
6097
|
`
|
|
6102
6098
|
);
|
|
6103
|
-
const
|
|
6104
|
-
|
|
6105
|
-
|
|
6106
|
-
|
|
6107
|
-
|
|
6108
|
-
|
|
6109
|
-
algorithm: threshold
|
|
6099
|
+
const input = {
|
|
6100
|
+
proposal: options.proposal,
|
|
6101
|
+
quickMode: useQuick,
|
|
6102
|
+
simulateVotes: options.dryRun === true,
|
|
6103
|
+
...options.threshold !== void 0 && { threshold: options.threshold },
|
|
6104
|
+
...options.errorPolicy !== void 0 && { errorPolicy: options.errorPolicy }
|
|
6110
6105
|
};
|
|
6111
|
-
const
|
|
6112
|
-
|
|
6113
|
-
const proposalId = proposalResult.value;
|
|
6114
|
-
for (const { role, vote } of validVotes) {
|
|
6115
|
-
await engine.vote(proposalId, role, vote);
|
|
6116
|
-
}
|
|
6117
|
-
const resultRes = await engine.close(proposalId);
|
|
6118
|
-
if (!resultRes.ok) throw new Error(resultRes.error.message);
|
|
6106
|
+
const logger17 = createLogger({ component: "cli-vote" });
|
|
6107
|
+
const result = await executeVoting(input, logger17, { voteTimeoutMs: timeoutMs });
|
|
6119
6108
|
return {
|
|
6120
|
-
proposal:
|
|
6121
|
-
threshold,
|
|
6122
|
-
result:
|
|
6123
|
-
votes,
|
|
6124
|
-
totalTimeMs:
|
|
6125
|
-
simulateVotes:
|
|
6109
|
+
proposal: result.proposal,
|
|
6110
|
+
threshold: result.threshold,
|
|
6111
|
+
result: result.result,
|
|
6112
|
+
votes: result.votes,
|
|
6113
|
+
totalTimeMs: result.totalTimeMs,
|
|
6114
|
+
simulateVotes: result.simulateVotes
|
|
6126
6115
|
};
|
|
6127
6116
|
}
|
|
6128
6117
|
function printDryRunBanner() {
|
|
@@ -8523,13 +8512,16 @@ async function handleAddCommand(args, options) {
|
|
|
8523
8512
|
if (arxivId === void 0 || arxivId === "") {
|
|
8524
8513
|
return "Error: arxiv-id is required for add command";
|
|
8525
8514
|
}
|
|
8526
|
-
const
|
|
8515
|
+
const topic = optString(options, "topic");
|
|
8516
|
+
const priority = optString(options, "priority");
|
|
8517
|
+
const input = {
|
|
8527
8518
|
arxivId,
|
|
8528
|
-
|
|
8529
|
-
|
|
8530
|
-
|
|
8519
|
+
dryRun: optBoolean(options, "dryRun"),
|
|
8520
|
+
...topic !== void 0 && { topic },
|
|
8521
|
+
...priority !== void 0 && { priority }
|
|
8531
8522
|
};
|
|
8532
|
-
const
|
|
8523
|
+
const logger17 = createLogger({ component: "cli-research-add" });
|
|
8524
|
+
const result = await executeResearchAdd(input, logger17);
|
|
8533
8525
|
return result.message;
|
|
8534
8526
|
}
|
|
8535
8527
|
var SOURCE_PROVIDERS = [
|
|
@@ -8553,25 +8545,29 @@ async function queryDiscoverSources(topic, source, maxResults) {
|
|
|
8553
8545
|
}
|
|
8554
8546
|
return { results, errors };
|
|
8555
8547
|
}
|
|
8556
|
-
function
|
|
8548
|
+
function renderDiscoverResponse(response) {
|
|
8557
8549
|
const lines = [];
|
|
8558
|
-
lines.push(`Discovery Results: "${topic}"`);
|
|
8550
|
+
lines.push(`Discovery Results: "${response.topic}"`);
|
|
8559
8551
|
lines.push("=".repeat(60));
|
|
8560
|
-
lines.push(
|
|
8552
|
+
lines.push(
|
|
8553
|
+
`Found ${String(response.totalFound)} items (${String(response.newItems)} new, ${String(response.alreadyInRegistry)} already in registry, ${String(response.filteredByRelevance)} filtered by relevance)`
|
|
8554
|
+
);
|
|
8561
8555
|
lines.push("");
|
|
8562
|
-
for (const item of items
|
|
8556
|
+
for (const item of response.items) {
|
|
8563
8557
|
lines.push(` [${item.source}] ${item.title}`);
|
|
8564
8558
|
lines.push(` URL: ${item.url}`);
|
|
8565
|
-
|
|
8559
|
+
if (item.relevanceScore !== void 0) {
|
|
8560
|
+
lines.push(` Relevance: ${item.relevanceScore.toFixed(2)}`);
|
|
8561
|
+
}
|
|
8566
8562
|
if (item.description !== "") {
|
|
8567
8563
|
const desc = item.description.length > 100 ? item.description.slice(0, 97) + "..." : item.description;
|
|
8568
8564
|
lines.push(` ${desc}`);
|
|
8569
8565
|
}
|
|
8570
8566
|
lines.push("");
|
|
8571
8567
|
}
|
|
8572
|
-
if (
|
|
8573
|
-
lines.push("
|
|
8574
|
-
for (const
|
|
8568
|
+
if (response.failedSources.length > 0) {
|
|
8569
|
+
lines.push("Failed sources:");
|
|
8570
|
+
for (const src of response.failedSources) lines.push(` - ${src}`);
|
|
8575
8571
|
}
|
|
8576
8572
|
return lines.join("\n");
|
|
8577
8573
|
}
|
|
@@ -8580,10 +8576,19 @@ async function handleDiscoverCommand(args, options) {
|
|
|
8580
8576
|
if (topic === void 0 || topic === "") {
|
|
8581
8577
|
return "Error: --topic is required for discover command";
|
|
8582
8578
|
}
|
|
8583
|
-
const
|
|
8584
|
-
|
|
8585
|
-
|
|
8586
|
-
|
|
8579
|
+
const parsed = ResearchDiscoverInputSchema.safeParse({
|
|
8580
|
+
topic,
|
|
8581
|
+
...optString(options, "source") !== void 0 && { source: optString(options, "source") },
|
|
8582
|
+
...optNumber(options, "maxResults") !== void 0 && {
|
|
8583
|
+
maxResults: optNumber(options, "maxResults")
|
|
8584
|
+
}
|
|
8585
|
+
});
|
|
8586
|
+
if (!parsed.success) {
|
|
8587
|
+
return `Error: ${parsed.error.issues.map((i) => i.message).join("; ")}`;
|
|
8588
|
+
}
|
|
8589
|
+
const logger17 = createLogger({ component: "cli-research-discover" });
|
|
8590
|
+
const response = await executeDiscovery(parsed.data, logger17);
|
|
8591
|
+
return renderDiscoverResponse(response);
|
|
8587
8592
|
}
|
|
8588
8593
|
async function handleReviewCommand(args, options) {
|
|
8589
8594
|
const topic = args[0] ?? optString(options, "topic");
|
|
@@ -16066,6 +16071,10 @@ var PARSE_ARGS_CONFIG = {
|
|
|
16066
16071
|
type: "string",
|
|
16067
16072
|
default: "90"
|
|
16068
16073
|
},
|
|
16074
|
+
// #2630 — error policy for the vote command.
|
|
16075
|
+
"error-policy": {
|
|
16076
|
+
type: "string"
|
|
16077
|
+
},
|
|
16069
16078
|
// SWE-bench command options
|
|
16070
16079
|
variant: {
|
|
16071
16080
|
type: "string",
|
|
@@ -16927,7 +16936,11 @@ var RUN_DEV_PIPELINE_DESCRIPTION = "Run the multi-agent development pipeline. Ac
|
|
|
16927
16936
|
function registerDevPipelineTool(server, _deps) {
|
|
16928
16937
|
server.registerTool(
|
|
16929
16938
|
"run_dev_pipeline",
|
|
16930
|
-
{
|
|
16939
|
+
{
|
|
16940
|
+
description: RUN_DEV_PIPELINE_DESCRIPTION,
|
|
16941
|
+
inputSchema: DevPipelineInputSchema.shape,
|
|
16942
|
+
annotations: getToolAnnotations("run_dev_pipeline")
|
|
16943
|
+
},
|
|
16931
16944
|
async (args) => {
|
|
16932
16945
|
const input = DevPipelineInputSchema.parse(args);
|
|
16933
16946
|
if (input.simulateVotes) {
|
|
@@ -16955,8 +16968,10 @@ function registerDevPipelineTool(server, _deps) {
|
|
|
16955
16968
|
};
|
|
16956
16969
|
} catch (error) {
|
|
16957
16970
|
return {
|
|
16958
|
-
|
|
16959
|
-
|
|
16971
|
+
...toolStructuredError({
|
|
16972
|
+
errorCategory: "internal",
|
|
16973
|
+
message: `Pipeline error: ${getErrorMessage(error)}`
|
|
16974
|
+
})
|
|
16960
16975
|
};
|
|
16961
16976
|
}
|
|
16962
16977
|
}
|
|
@@ -19472,7 +19487,10 @@ function isValidOrchestrateModel(value) {
|
|
|
19472
19487
|
return CLI_NAMES.includes(value);
|
|
19473
19488
|
}
|
|
19474
19489
|
function isValidThreshold(value) {
|
|
19475
|
-
return
|
|
19490
|
+
return VoteThresholdSchema.safeParse(value).success;
|
|
19491
|
+
}
|
|
19492
|
+
function isValidErrorPolicy(value) {
|
|
19493
|
+
return ErrorPolicySchema.safeParse(value).success;
|
|
19476
19494
|
}
|
|
19477
19495
|
function isValidIndexSubcommand(value) {
|
|
19478
19496
|
const validSubcommands = [
|
|
@@ -19761,9 +19779,12 @@ async function handleVoteCommand(args) {
|
|
|
19761
19779
|
}
|
|
19762
19780
|
const threshold = args.options.threshold;
|
|
19763
19781
|
const validThreshold = threshold !== void 0 && isValidThreshold(threshold) ? threshold : void 0;
|
|
19782
|
+
const errorPolicy = args.options.errorPolicy;
|
|
19783
|
+
const validErrorPolicy = errorPolicy !== void 0 && isValidErrorPolicy(errorPolicy) ? errorPolicy : void 0;
|
|
19764
19784
|
const exitCode = await voteCommand({
|
|
19765
19785
|
proposal,
|
|
19766
19786
|
...validThreshold !== void 0 && { threshold: validThreshold },
|
|
19787
|
+
...validErrorPolicy !== void 0 && { errorPolicy: validErrorPolicy },
|
|
19767
19788
|
dryRun: args.options.dryRun,
|
|
19768
19789
|
quick: args.options.quick,
|
|
19769
19790
|
verbose: args.options.verbose
|
|
@@ -19813,7 +19834,7 @@ async function handleResearchCommand(args) {
|
|
|
19813
19834
|
}
|
|
19814
19835
|
}
|
|
19815
19836
|
async function handleRegistryCommand(args) {
|
|
19816
|
-
const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-
|
|
19837
|
+
const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-HYWVRAHE.js");
|
|
19817
19838
|
const subcommand = args.subcommand;
|
|
19818
19839
|
if (!isValidRegistrySubcommand(subcommand)) {
|
|
19819
19840
|
process.stdout.write(`${formatRegistryUsage()}
|
|
@@ -19861,7 +19882,7 @@ async function handleVerifyCommand(args) {
|
|
|
19861
19882
|
async function handleDoctorCommand(args) {
|
|
19862
19883
|
const exitCode = await doctorCommand({ fix: args.options.fix });
|
|
19863
19884
|
if (args.options.deep) {
|
|
19864
|
-
const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-
|
|
19885
|
+
const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-ONHJTGR4.js");
|
|
19865
19886
|
const diag = runDeepDiagnostics2();
|
|
19866
19887
|
process.stdout.write(formatDeepDiagnostics2(diag) + "\n");
|
|
19867
19888
|
}
|
|
@@ -19905,7 +19926,7 @@ async function handleInitCommand(args) {
|
|
|
19905
19926
|
process.exit(result.success ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
|
|
19906
19927
|
}
|
|
19907
19928
|
async function runInitOpencodeFlow(args) {
|
|
19908
|
-
const { runInitOpencode } = await import("./init-opencode-
|
|
19929
|
+
const { runInitOpencode } = await import("./init-opencode-Z7OQ5RCB.js");
|
|
19909
19930
|
const opencodePath = args.options.opencode;
|
|
19910
19931
|
if (opencodePath === void 0 || opencodePath === "") {
|
|
19911
19932
|
process.stderr.write("Error: --opencode requires a path argument.\n");
|
|
@@ -19932,7 +19953,7 @@ async function runInitOpencodeFlow(args) {
|
|
|
19932
19953
|
process.exit(EXIT_CODES.SUCCESS);
|
|
19933
19954
|
}
|
|
19934
19955
|
async function renderOpencodeValidate(opencodePath) {
|
|
19935
|
-
const { runOpencodeValidate } = await import("./init-opencode-
|
|
19956
|
+
const { runOpencodeValidate } = await import("./init-opencode-Z7OQ5RCB.js");
|
|
19936
19957
|
const result = await runOpencodeValidate(opencodePath);
|
|
19937
19958
|
if (!result.ok) {
|
|
19938
19959
|
process.stderr.write(`init --opencode --validate: ${result.reason ?? "failed"}
|
|
@@ -19972,7 +19993,7 @@ async function handleSetupCommandAsync(args) {
|
|
|
19972
19993
|
process.exit(exitCode === 0 ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
|
|
19973
19994
|
}
|
|
19974
19995
|
async function runCustomApiSetup(args) {
|
|
19975
|
-
const { configureCustomApi } = await import("./setup-custom-api-
|
|
19996
|
+
const { configureCustomApi } = await import("./setup-custom-api-VD5W754A.js");
|
|
19976
19997
|
const baseUrl = args.options.customApi;
|
|
19977
19998
|
if (baseUrl === void 0) return EXIT_CODES.SERVER_START_FAILED;
|
|
19978
19999
|
const input = {
|
|
@@ -20696,8 +20717,9 @@ function fmtContext(tokens) {
|
|
|
20696
20717
|
return String(tokens / 1e3) + "K";
|
|
20697
20718
|
}
|
|
20698
20719
|
function renderListTable() {
|
|
20699
|
-
const
|
|
20700
|
-
const
|
|
20720
|
+
const matrix = getInTreeCapabilitiesMatrix();
|
|
20721
|
+
const models = matrix.models;
|
|
20722
|
+
const ver = String(matrix.version);
|
|
20701
20723
|
write(`
|
|
20702
20724
|
${C.bold}Model Capabilities Matrix${C.reset} (v${ver})
|
|
20703
20725
|
`);
|
|
@@ -20713,10 +20735,10 @@ ${C.bold}Model Capabilities Matrix${C.reset} (v${ver})
|
|
|
20713
20735
|
write("");
|
|
20714
20736
|
}
|
|
20715
20737
|
function renderListJson() {
|
|
20716
|
-
write(JSON.stringify(
|
|
20738
|
+
write(JSON.stringify(getInTreeCapabilitiesMatrix(), null, 2));
|
|
20717
20739
|
}
|
|
20718
20740
|
function renderListMarkdown() {
|
|
20719
|
-
const models =
|
|
20741
|
+
const models = getInTreeCapabilitiesMatrix().models;
|
|
20720
20742
|
write("# Model Capabilities Matrix\n");
|
|
20721
20743
|
write("| Model | Provider | Context | Image Out | Audio | MCP | Sandbox | Thinking | Research |");
|
|
20722
20744
|
write("|-------|----------|---------|-----------|-------|-----|---------|----------|----------|");
|
|
@@ -20831,11 +20853,11 @@ function handleCompare(args) {
|
|
|
20831
20853
|
write(`${C.red}Usage: nexus-agents capabilities compare <model1> <model2>${C.reset}`);
|
|
20832
20854
|
process.exit(EXIT_CODES.INVALID_ARGS);
|
|
20833
20855
|
}
|
|
20834
|
-
const m1 =
|
|
20835
|
-
const m2 =
|
|
20856
|
+
const m1 = lookupInTreeCapability(id1);
|
|
20857
|
+
const m2 = lookupInTreeCapability(id2);
|
|
20836
20858
|
if (m1 === void 0 || m2 === void 0) {
|
|
20837
20859
|
const missing = m1 === void 0 ? id1 : id2;
|
|
20838
|
-
const ids =
|
|
20860
|
+
const ids = getInTreeCapabilitiesMatrix().models.map((m) => m.id).join(", ");
|
|
20839
20861
|
write(`${C.red}Unknown model: ${missing}${C.reset}`);
|
|
20840
20862
|
write(`Valid models: ${ids}`);
|
|
20841
20863
|
process.exit(EXIT_CODES.INVALID_ARGS);
|
|
@@ -22440,6 +22462,10 @@ var VOTE_HELP = {
|
|
|
22440
22462
|
{ flag: "--quick", description: "Use 3 agents instead of 6 for faster votes" },
|
|
22441
22463
|
{ flag: "--dry-run", description: "Simulate votes without agent execution" },
|
|
22442
22464
|
{ flag: "--timeout=<seconds>", description: "Timeout per vote in seconds", defaultValue: "90" },
|
|
22465
|
+
{
|
|
22466
|
+
flag: "--error-policy <p>",
|
|
22467
|
+
description: "How to count errored/timed-out voters: reduce_denominator | count_as_abstain | fail_closed (default: fail_closed for unanimous, reduce_denominator otherwise)"
|
|
22468
|
+
},
|
|
22443
22469
|
{ flag: "--verbose", description: "Show vote verification hashes" }
|
|
22444
22470
|
],
|
|
22445
22471
|
requiresApiKey: ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "GOOGLE_AI_API_KEY"]
|
|
@@ -22666,19 +22692,25 @@ function buildOrchestrateOptions(values) {
|
|
|
22666
22692
|
};
|
|
22667
22693
|
}
|
|
22668
22694
|
function parseThreshold(value) {
|
|
22669
|
-
if (value ===
|
|
22670
|
-
|
|
22671
|
-
|
|
22672
|
-
|
|
22695
|
+
if (value === void 0) return void 0;
|
|
22696
|
+
const parsed = VoteThresholdSchema.safeParse(value);
|
|
22697
|
+
return parsed.success ? parsed.data : void 0;
|
|
22698
|
+
}
|
|
22699
|
+
function parseErrorPolicy(value) {
|
|
22700
|
+
if (value === void 0) return void 0;
|
|
22701
|
+
const parsed = ErrorPolicySchema.safeParse(value);
|
|
22702
|
+
return parsed.success ? parsed.data : void 0;
|
|
22673
22703
|
}
|
|
22674
22704
|
function buildVoteOptions(values) {
|
|
22675
22705
|
const threshold = parseThreshold(values.threshold);
|
|
22676
22706
|
const timeoutSec = parseNumericOption(values.timeout);
|
|
22677
22707
|
const timeoutMs = timeoutSec !== void 0 ? timeoutSec * 1e3 : void 0;
|
|
22708
|
+
const errorPolicy = parseErrorPolicy(values["error-policy"]);
|
|
22678
22709
|
return {
|
|
22679
22710
|
...values.proposal !== void 0 && { proposal: values.proposal },
|
|
22680
22711
|
...threshold !== void 0 && { threshold },
|
|
22681
|
-
...timeoutMs !== void 0 && { timeoutMs }
|
|
22712
|
+
...timeoutMs !== void 0 && { timeoutMs },
|
|
22713
|
+
...errorPolicy !== void 0 && { errorPolicy }
|
|
22682
22714
|
};
|
|
22683
22715
|
}
|
|
22684
22716
|
function parseSweBenchVariant(value) {
|