nexus-agents 2.56.0 → 2.58.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-SUNFPY2W.js → adaptive-memory-TSZEJUJC.js} +3 -3
- package/dist/{chunk-4FVISCDB.js → chunk-6QU4DJYW.js} +2 -2
- package/dist/{chunk-C3FGEDD7.js → chunk-7EYQBG3W.js} +22 -406
- package/dist/chunk-7EYQBG3W.js.map +1 -0
- package/dist/{chunk-NYNBDP7M.js → chunk-7Y36JLES.js} +2 -2
- package/dist/{chunk-FWSTXEG2.js → chunk-AFSIP6JH.js} +99 -23
- package/dist/chunk-AFSIP6JH.js.map +1 -0
- package/dist/{chunk-VKZKC4SM.js → chunk-EDGG3RQE.js} +2 -2
- package/dist/{chunk-2SPRLBOS.js → chunk-EZXOJZYE.js} +2 -2
- package/dist/{chunk-KGMC6F5D.js → chunk-GJ5BJU7A.js} +67 -61
- package/dist/chunk-GJ5BJU7A.js.map +1 -0
- package/dist/{chunk-W5AJRK4U.js → chunk-GMOGKX4E.js} +2 -2
- package/dist/chunk-H43PABG4.js +402 -0
- package/dist/chunk-H43PABG4.js.map +1 -0
- package/dist/{chunk-VLVHPC72.js → chunk-JKDHWOQL.js} +6 -6
- package/dist/{chunk-EJLWDYK7.js → chunk-JLYJQ7OG.js} +6159 -5619
- package/dist/chunk-JLYJQ7OG.js.map +1 -0
- package/dist/{chunk-IOU7F5PH.js → chunk-K7EA5OV4.js} +2 -2
- package/dist/{chunk-BPMQRYGU.js → chunk-L3NHOUEX.js} +332 -80
- package/dist/chunk-L3NHOUEX.js.map +1 -0
- package/dist/{chunk-KRIFBGWZ.js → chunk-PTGBJFSD.js} +3 -3
- package/dist/{chunk-EKYT4NMD.js → chunk-QGZBCD2A.js} +24 -9
- package/dist/chunk-QGZBCD2A.js.map +1 -0
- package/dist/{chunk-UOUJZIKH.js → chunk-R2Y57PM3.js} +38 -15
- package/dist/chunk-R2Y57PM3.js.map +1 -0
- package/dist/{chunk-PCMWLXT4.js → chunk-TC46TRLR.js} +2 -2
- package/dist/{chunk-3IDJSFWT.js → chunk-TFEFN37P.js} +2 -2
- package/dist/{chunk-Q5TKQWOI.js → chunk-V5CGWMYL.js} +2 -2
- package/dist/{chunk-TCQNNY4J.js → chunk-XEMRMZUN.js} +4 -4
- package/dist/{chunk-RSUCXOQM.js → chunk-YQAOMDR2.js} +26 -53
- package/dist/chunk-YQAOMDR2.js.map +1 -0
- package/dist/{chunk-R66AWJJ7.js → chunk-YU4NABXM.js} +2 -2
- package/dist/{cli-circuit-breaker-7MCMHSDY.js → cli-circuit-breaker-SL73NWX2.js} +4 -4
- package/dist/cli.d.ts +3 -1
- package/dist/cli.js +428 -342
- package/dist/cli.js.map +1 -1
- package/dist/{composite-router-LXFOSMSE.js → composite-router-A7URDW4X.js} +2 -2
- package/dist/{consensus-vote-G6H532ME.js → consensus-vote-HDM6HA5Z.js} +9 -8
- package/dist/{dist-4LDAFGC5.js → dist-RLMRWMYO.js} +994 -779
- package/dist/dist-RLMRWMYO.js.map +1 -0
- package/dist/{doctor-deep-RKMOZSIS.js → doctor-deep-VN6KMUCG.js} +3 -3
- package/dist/{expert-bridge-KHHE42JP.js → expert-bridge-BHTUNALT.js} +3 -3
- package/dist/{factory-JVN47MFN.js → factory-6MT5VKI3.js} +4 -4
- package/dist/{factory-KRNR7XHD.js → factory-FA7WDPZW.js} +5 -5
- package/dist/index.d.ts +396 -61
- package/dist/index.js +58 -43
- package/dist/index.js.map +1 -1
- package/dist/{issue-triage-O3C7P66H.js → issue-triage-YYTE6KTC.js} +4 -4
- package/dist/{mcp-config-QRERKGR4.js → mcp-config-34XMRM64.js} +3 -3
- package/dist/{mobimem-FAOAXV3B.js → mobimem-QDBP37H7.js} +2 -2
- package/dist/model-registry.generated.json +17033 -0
- package/dist/registry-command-S46JJ2SX.js +580 -0
- package/dist/registry-command-S46JJ2SX.js.map +1 -0
- package/dist/{repo-security-plan-AZ5HMGFC.js → repo-security-plan-C3LLE3Z7.js} +3 -3
- package/dist/{research-helpers-synthesize-E6WQLQKP.js → research-helpers-synthesize-NVQIWLQL.js} +3 -3
- package/dist/{routing-memory-MXF45FXT.js → routing-memory-W3YWMLJM.js} +2 -2
- package/dist/{session-memory-HL5XDBIL.js → session-memory-DWF5Z2LC.js} +3 -3
- package/dist/{setup-command-AV4MODEL.js → setup-command-KSQEYBDA.js} +8 -7
- package/dist/{setup-config-PWK6WHMG.js → setup-config-JA5IX53Q.js} +3 -3
- package/dist/{setup-custom-api-XAWKRDWV.js → setup-custom-api-CSB26HWD.js} +7 -5
- package/dist/setup-custom-api-CSB26HWD.js.map +1 -0
- package/dist/{weather-report-XZ5CENHE.js → weather-report-YQSLX4MS.js} +2 -2
- package/package.json +5 -5
- package/dist/chunk-BPMQRYGU.js.map +0 -1
- package/dist/chunk-C3FGEDD7.js.map +0 -1
- package/dist/chunk-EJLWDYK7.js.map +0 -1
- package/dist/chunk-EKYT4NMD.js.map +0 -1
- package/dist/chunk-FWSTXEG2.js.map +0 -1
- package/dist/chunk-KGMC6F5D.js.map +0 -1
- package/dist/chunk-RSUCXOQM.js.map +0 -1
- package/dist/chunk-UOUJZIKH.js.map +0 -1
- package/dist/dist-4LDAFGC5.js.map +0 -1
- package/dist/setup-custom-api-XAWKRDWV.js.map +0 -1
- /package/dist/{adaptive-memory-SUNFPY2W.js.map → adaptive-memory-TSZEJUJC.js.map} +0 -0
- /package/dist/{chunk-4FVISCDB.js.map → chunk-6QU4DJYW.js.map} +0 -0
- /package/dist/{chunk-NYNBDP7M.js.map → chunk-7Y36JLES.js.map} +0 -0
- /package/dist/{chunk-VKZKC4SM.js.map → chunk-EDGG3RQE.js.map} +0 -0
- /package/dist/{chunk-2SPRLBOS.js.map → chunk-EZXOJZYE.js.map} +0 -0
- /package/dist/{chunk-W5AJRK4U.js.map → chunk-GMOGKX4E.js.map} +0 -0
- /package/dist/{chunk-VLVHPC72.js.map → chunk-JKDHWOQL.js.map} +0 -0
- /package/dist/{chunk-IOU7F5PH.js.map → chunk-K7EA5OV4.js.map} +0 -0
- /package/dist/{chunk-KRIFBGWZ.js.map → chunk-PTGBJFSD.js.map} +0 -0
- /package/dist/{chunk-PCMWLXT4.js.map → chunk-TC46TRLR.js.map} +0 -0
- /package/dist/{chunk-3IDJSFWT.js.map → chunk-TFEFN37P.js.map} +0 -0
- /package/dist/{chunk-Q5TKQWOI.js.map → chunk-V5CGWMYL.js.map} +0 -0
- /package/dist/{chunk-TCQNNY4J.js.map → chunk-XEMRMZUN.js.map} +0 -0
- /package/dist/{chunk-R66AWJJ7.js.map → chunk-YU4NABXM.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-7MCMHSDY.js.map → cli-circuit-breaker-SL73NWX2.js.map} +0 -0
- /package/dist/{composite-router-LXFOSMSE.js.map → composite-router-A7URDW4X.js.map} +0 -0
- /package/dist/{consensus-vote-G6H532ME.js.map → consensus-vote-HDM6HA5Z.js.map} +0 -0
- /package/dist/{doctor-deep-RKMOZSIS.js.map → doctor-deep-VN6KMUCG.js.map} +0 -0
- /package/dist/{expert-bridge-KHHE42JP.js.map → expert-bridge-BHTUNALT.js.map} +0 -0
- /package/dist/{factory-JVN47MFN.js.map → factory-6MT5VKI3.js.map} +0 -0
- /package/dist/{factory-KRNR7XHD.js.map → factory-FA7WDPZW.js.map} +0 -0
- /package/dist/{issue-triage-O3C7P66H.js.map → issue-triage-YYTE6KTC.js.map} +0 -0
- /package/dist/{mcp-config-QRERKGR4.js.map → mcp-config-34XMRM64.js.map} +0 -0
- /package/dist/{mobimem-FAOAXV3B.js.map → mobimem-QDBP37H7.js.map} +0 -0
- /package/dist/{repo-security-plan-AZ5HMGFC.js.map → repo-security-plan-C3LLE3Z7.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-E6WQLQKP.js.map → research-helpers-synthesize-NVQIWLQL.js.map} +0 -0
- /package/dist/{routing-memory-MXF45FXT.js.map → routing-memory-W3YWMLJM.js.map} +0 -0
- /package/dist/{session-memory-HL5XDBIL.js.map → session-memory-DWF5Z2LC.js.map} +0 -0
- /package/dist/{setup-command-AV4MODEL.js.map → setup-command-KSQEYBDA.js.map} +0 -0
- /package/dist/{setup-config-PWK6WHMG.js.map → setup-config-JA5IX53Q.js.map} +0 -0
- /package/dist/{weather-report-XZ5CENHE.js.map → weather-report-YQSLX4MS.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -12,12 +12,12 @@ import {
|
|
|
12
12
|
parseFindings,
|
|
13
13
|
sumFindings
|
|
14
14
|
} from "./chunk-6E3NMMEY.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-6QU4DJYW.js";
|
|
16
16
|
import {
|
|
17
17
|
setupCommandAsync,
|
|
18
18
|
verifyCommand
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-GJ5BJU7A.js";
|
|
20
|
+
import "./chunk-QGZBCD2A.js";
|
|
21
21
|
import {
|
|
22
22
|
AuthHandler,
|
|
23
23
|
DEFAULT_EXPERTS,
|
|
@@ -131,6 +131,7 @@ import {
|
|
|
131
131
|
registerRunWorkflowTool,
|
|
132
132
|
registerSearchCodebaseTool,
|
|
133
133
|
registerTools,
|
|
134
|
+
registerVerifyAuditChainTool,
|
|
134
135
|
registerWeatherReportTool,
|
|
135
136
|
resolveV2Config,
|
|
136
137
|
runBenchmarkInstances,
|
|
@@ -141,10 +142,10 @@ import {
|
|
|
141
142
|
validateCommand,
|
|
142
143
|
validateWorkflow,
|
|
143
144
|
wrapInMarkdownFence
|
|
144
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-JLYJQ7OG.js";
|
|
145
146
|
import {
|
|
146
147
|
resolveToken
|
|
147
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-EZXOJZYE.js";
|
|
148
149
|
import {
|
|
149
150
|
CATEGORY_DISPLAY_NAMES,
|
|
150
151
|
DEFAULT_PR_REVIEW_CONFIG
|
|
@@ -160,30 +161,29 @@ import {
|
|
|
160
161
|
registerConsensusVoteTool,
|
|
161
162
|
shutdownToolMemory,
|
|
162
163
|
validateTimeout
|
|
163
|
-
} from "./chunk-
|
|
164
|
-
import "./chunk-
|
|
164
|
+
} from "./chunk-L3NHOUEX.js";
|
|
165
|
+
import "./chunk-YU4NABXM.js";
|
|
165
166
|
import {
|
|
166
167
|
loadPapersRegistry,
|
|
167
168
|
loadTechniquesRegistry,
|
|
168
169
|
savePapersRegistry,
|
|
169
170
|
synthesizeResearch
|
|
170
|
-
} from "./chunk-
|
|
171
|
+
} from "./chunk-TC46TRLR.js";
|
|
171
172
|
import {
|
|
172
173
|
classifyTrust,
|
|
173
174
|
createFullGitHubProvider,
|
|
174
175
|
evaluatePolicy,
|
|
175
176
|
parsePRUrl,
|
|
176
177
|
sanitizeInput
|
|
177
|
-
} from "./chunk-
|
|
178
|
-
import "./chunk-
|
|
179
|
-
import "./chunk-
|
|
178
|
+
} from "./chunk-AFSIP6JH.js";
|
|
179
|
+
import "./chunk-K7EA5OV4.js";
|
|
180
|
+
import "./chunk-V5CGWMYL.js";
|
|
180
181
|
import "./chunk-BC3M4VLP.js";
|
|
181
182
|
import "./chunk-AP2FD37C.js";
|
|
182
183
|
import "./chunk-BQ4YXGGQ.js";
|
|
183
184
|
import "./chunk-ED6VQWNG.js";
|
|
184
185
|
import {
|
|
185
186
|
CustomExpertDefinitionSchema,
|
|
186
|
-
DEFAULTS,
|
|
187
187
|
MAX_SYSTEM_PROMPT_LENGTH,
|
|
188
188
|
VALID_EXPERT_DOMAINS,
|
|
189
189
|
VALID_EXPERT_TIERS,
|
|
@@ -199,27 +199,30 @@ import {
|
|
|
199
199
|
loadConfig,
|
|
200
200
|
runDoctor,
|
|
201
201
|
validateNexusEnv
|
|
202
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-7EYQBG3W.js";
|
|
203
|
+
import {
|
|
204
|
+
DEFAULTS
|
|
205
|
+
} from "./chunk-H43PABG4.js";
|
|
203
206
|
import "./chunk-NUBSJGQZ.js";
|
|
204
207
|
import "./chunk-GJVHRJO2.js";
|
|
205
|
-
import "./chunk-
|
|
208
|
+
import "./chunk-7Y36JLES.js";
|
|
206
209
|
import {
|
|
207
210
|
MemoryError
|
|
208
|
-
} from "./chunk-
|
|
211
|
+
} from "./chunk-TFEFN37P.js";
|
|
209
212
|
import {
|
|
210
213
|
capitalize,
|
|
211
214
|
capitalizeKebab,
|
|
212
215
|
truncateSentence
|
|
213
216
|
} from "./chunk-633WH2ML.js";
|
|
214
|
-
import "./chunk-
|
|
215
|
-
import "./chunk-
|
|
216
|
-
import "./chunk-
|
|
217
|
+
import "./chunk-EDGG3RQE.js";
|
|
218
|
+
import "./chunk-PTGBJFSD.js";
|
|
219
|
+
import "./chunk-JKDHWOQL.js";
|
|
217
220
|
import {
|
|
218
221
|
createAllAdapters,
|
|
219
222
|
getAvailableClis,
|
|
220
223
|
isRecord
|
|
221
|
-
} from "./chunk-
|
|
222
|
-
import "./chunk-
|
|
224
|
+
} from "./chunk-YQAOMDR2.js";
|
|
225
|
+
import "./chunk-GMOGKX4E.js";
|
|
223
226
|
import {
|
|
224
227
|
API_TIMEOUTS,
|
|
225
228
|
AgentCapability,
|
|
@@ -284,7 +287,7 @@ import {
|
|
|
284
287
|
toError,
|
|
285
288
|
writeEmptyLine,
|
|
286
289
|
writeLine
|
|
287
|
-
} from "./chunk-
|
|
290
|
+
} from "./chunk-R2Y57PM3.js";
|
|
288
291
|
import "./chunk-CLYZ7FWP.js";
|
|
289
292
|
import "./chunk-UP2VWCW5.js";
|
|
290
293
|
|
|
@@ -5835,7 +5838,7 @@ function recordVoteToGitHub(issueNumber, result) {
|
|
|
5835
5838
|
async function runVote(options) {
|
|
5836
5839
|
const threshold = THRESHOLD_MAP[options.threshold ?? "supermajority"] ?? "supermajority";
|
|
5837
5840
|
const useQuick = options.quick === true;
|
|
5838
|
-
const roles = useQuick ? ["architect", "security", "
|
|
5841
|
+
const roles = useQuick ? ["architect", "security", "scope_steward"] : ["architect", "security", "devex", "ai_ml", "pm", "catfish", "scope_steward"];
|
|
5839
5842
|
const start = getTimeProvider().now();
|
|
5840
5843
|
const requestedTimeoutMs = options.timeoutMs ?? DEFAULT_VOTE_TIMEOUT_MS;
|
|
5841
5844
|
const { value: timeoutMs, clamped } = validateTimeout(requestedTimeoutMs);
|
|
@@ -9257,44 +9260,283 @@ function sanitizeTool(tool) {
|
|
|
9257
9260
|
// src/indexer/entrypoint-cli-extractor.ts
|
|
9258
9261
|
import { SyntaxKind } from "ts-morph";
|
|
9259
9262
|
import * as path12 from "path";
|
|
9260
|
-
|
|
9261
|
-
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9268
|
-
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9272
|
-
|
|
9273
|
-
|
|
9274
|
-
|
|
9275
|
-
|
|
9276
|
-
|
|
9277
|
-
|
|
9278
|
-
|
|
9279
|
-
|
|
9280
|
-
|
|
9281
|
-
|
|
9282
|
-
|
|
9283
|
-
|
|
9284
|
-
|
|
9285
|
-
|
|
9286
|
-
|
|
9287
|
-
|
|
9288
|
-
|
|
9289
|
-
|
|
9290
|
-
|
|
9291
|
-
|
|
9292
|
-
|
|
9293
|
-
|
|
9263
|
+
|
|
9264
|
+
// src/cli-command-catalog.ts
|
|
9265
|
+
var COMMAND_CATALOG = [
|
|
9266
|
+
// ── Essential ────────────────────────────────────────────────────────────
|
|
9267
|
+
{
|
|
9268
|
+
command: "(default)",
|
|
9269
|
+
description: "Start MCP server with stdio transport",
|
|
9270
|
+
audience: "essential"
|
|
9271
|
+
},
|
|
9272
|
+
{
|
|
9273
|
+
command: "hello",
|
|
9274
|
+
description: "Show welcome message and quick start (no API keys needed)",
|
|
9275
|
+
audience: "essential"
|
|
9276
|
+
},
|
|
9277
|
+
{
|
|
9278
|
+
command: "setup",
|
|
9279
|
+
description: "Configure CLI integration (MCP + .rules + data dirs)",
|
|
9280
|
+
audience: "essential"
|
|
9281
|
+
},
|
|
9282
|
+
{
|
|
9283
|
+
command: "verify",
|
|
9284
|
+
description: "Check install health (sqlite, adapters, config)",
|
|
9285
|
+
audience: "essential"
|
|
9286
|
+
},
|
|
9287
|
+
{
|
|
9288
|
+
command: "doctor",
|
|
9289
|
+
description: "Detailed system/adapter health check",
|
|
9290
|
+
audience: "essential"
|
|
9291
|
+
},
|
|
9292
|
+
{
|
|
9293
|
+
command: "config",
|
|
9294
|
+
description: "Manage configuration (init, get, set, list, export, import)",
|
|
9295
|
+
audience: "essential"
|
|
9296
|
+
},
|
|
9297
|
+
{
|
|
9298
|
+
command: "orchestrate",
|
|
9299
|
+
description: "Execute a task via CLI tools (standalone mode)",
|
|
9300
|
+
audience: "essential"
|
|
9301
|
+
},
|
|
9302
|
+
{
|
|
9303
|
+
command: "vote",
|
|
9304
|
+
description: "Run consensus vote on a proposal (5-6 agents)",
|
|
9305
|
+
audience: "essential"
|
|
9306
|
+
},
|
|
9307
|
+
{
|
|
9308
|
+
command: "workflow",
|
|
9309
|
+
description: "Manage and run workflow templates (list, run)",
|
|
9310
|
+
audience: "essential"
|
|
9311
|
+
},
|
|
9312
|
+
{
|
|
9313
|
+
command: "expert",
|
|
9314
|
+
description: "Manage expert agents (list, create, execute)",
|
|
9315
|
+
audience: "essential"
|
|
9316
|
+
},
|
|
9317
|
+
{
|
|
9318
|
+
command: "research",
|
|
9319
|
+
description: "Manage research registry (status, add, stats, refresh)",
|
|
9320
|
+
audience: "essential"
|
|
9321
|
+
},
|
|
9322
|
+
// ── Advanced ─────────────────────────────────────────────────────────────
|
|
9323
|
+
{
|
|
9324
|
+
command: "session",
|
|
9325
|
+
description: "Manage session persistence (list, show, export, delete)",
|
|
9326
|
+
audience: "advanced"
|
|
9327
|
+
},
|
|
9328
|
+
{
|
|
9329
|
+
command: "auth",
|
|
9330
|
+
description: "Manage MCP authentication tokens (init, show, rotate)",
|
|
9331
|
+
audience: "advanced"
|
|
9332
|
+
},
|
|
9333
|
+
{
|
|
9334
|
+
command: "status",
|
|
9335
|
+
description: "At-a-glance project health dashboard",
|
|
9336
|
+
audience: "advanced"
|
|
9337
|
+
},
|
|
9338
|
+
{
|
|
9339
|
+
command: "capabilities",
|
|
9340
|
+
description: "Show model capabilities matrix",
|
|
9341
|
+
audience: "advanced"
|
|
9342
|
+
},
|
|
9343
|
+
{
|
|
9344
|
+
command: "registry",
|
|
9345
|
+
description: "Inspect + refresh the dynamic model registry (doctor / refresh)",
|
|
9346
|
+
audience: "advanced"
|
|
9347
|
+
},
|
|
9348
|
+
{
|
|
9349
|
+
command: "review",
|
|
9350
|
+
description: "Review a GitHub PR (dogfooding helper)",
|
|
9351
|
+
audience: "advanced"
|
|
9352
|
+
},
|
|
9353
|
+
{
|
|
9354
|
+
command: "scaffold",
|
|
9355
|
+
description: "Generate project files from templates",
|
|
9356
|
+
audience: "advanced"
|
|
9357
|
+
},
|
|
9358
|
+
{
|
|
9359
|
+
command: "validate",
|
|
9360
|
+
description: "Run unified validation (doctor + fitness + config)",
|
|
9361
|
+
audience: "advanced"
|
|
9362
|
+
},
|
|
9363
|
+
{
|
|
9364
|
+
command: "index",
|
|
9365
|
+
description: "Generate and manage codebase index",
|
|
9366
|
+
audience: "advanced"
|
|
9367
|
+
},
|
|
9368
|
+
// ── Maintainer (hidden by default) ───────────────────────────────────────
|
|
9369
|
+
{
|
|
9370
|
+
command: "demo",
|
|
9371
|
+
description: "API-free exploration mode (marketing/demo flow)",
|
|
9372
|
+
audience: "maintainer"
|
|
9373
|
+
},
|
|
9374
|
+
{
|
|
9375
|
+
command: "hooks",
|
|
9376
|
+
description: "Claude CLI hook integration commands",
|
|
9377
|
+
audience: "maintainer"
|
|
9378
|
+
},
|
|
9379
|
+
{
|
|
9380
|
+
command: "routing-audit",
|
|
9381
|
+
description: "Debug model routing decisions",
|
|
9382
|
+
audience: "maintainer"
|
|
9383
|
+
},
|
|
9384
|
+
{
|
|
9385
|
+
command: "fitness-audit",
|
|
9386
|
+
description: "Run CLI orchestration fitness score audit",
|
|
9387
|
+
audience: "maintainer"
|
|
9388
|
+
},
|
|
9389
|
+
{
|
|
9390
|
+
command: "system-review",
|
|
9391
|
+
description: "Automated system review (5-phase checklist)",
|
|
9392
|
+
audience: "maintainer"
|
|
9393
|
+
},
|
|
9394
|
+
{
|
|
9395
|
+
command: "sprint",
|
|
9396
|
+
description: "Automated sprint planning from open issues",
|
|
9397
|
+
audience: "maintainer"
|
|
9398
|
+
},
|
|
9399
|
+
{
|
|
9400
|
+
command: "evaluate",
|
|
9401
|
+
description: "Self-evaluation of codebase components",
|
|
9402
|
+
audience: "maintainer"
|
|
9403
|
+
},
|
|
9404
|
+
{
|
|
9405
|
+
command: "issue",
|
|
9406
|
+
description: "Issue template validation and management",
|
|
9407
|
+
audience: "maintainer"
|
|
9408
|
+
},
|
|
9409
|
+
{
|
|
9410
|
+
command: "validation",
|
|
9411
|
+
description: "Learning validation dashboard",
|
|
9412
|
+
audience: "maintainer"
|
|
9413
|
+
},
|
|
9414
|
+
{
|
|
9415
|
+
command: "learning-metrics",
|
|
9416
|
+
description: "Aggregated learning metrics dashboard",
|
|
9417
|
+
audience: "maintainer"
|
|
9418
|
+
},
|
|
9419
|
+
{
|
|
9420
|
+
command: "swe-bench",
|
|
9421
|
+
description: "Run SWE-bench evaluation benchmark",
|
|
9422
|
+
audience: "maintainer"
|
|
9423
|
+
},
|
|
9424
|
+
{
|
|
9425
|
+
command: "atbench",
|
|
9426
|
+
description: "Run ATBench trajectory-safety evaluation",
|
|
9427
|
+
audience: "maintainer"
|
|
9428
|
+
},
|
|
9429
|
+
{
|
|
9430
|
+
command: "visualize",
|
|
9431
|
+
description: "Generate Mermaid diagrams and ASCII dashboards",
|
|
9432
|
+
audience: "maintainer"
|
|
9433
|
+
},
|
|
9434
|
+
{
|
|
9435
|
+
command: "health",
|
|
9436
|
+
description: "Swarm health metrics dashboard",
|
|
9437
|
+
audience: "maintainer"
|
|
9438
|
+
},
|
|
9439
|
+
{
|
|
9440
|
+
command: "release-notes",
|
|
9441
|
+
description: "Generate release notes from git commits",
|
|
9442
|
+
audience: "maintainer"
|
|
9443
|
+
},
|
|
9444
|
+
{
|
|
9445
|
+
command: "release-validate",
|
|
9446
|
+
description: "Run expert swarm validation for releases",
|
|
9447
|
+
audience: "maintainer"
|
|
9448
|
+
},
|
|
9449
|
+
{
|
|
9450
|
+
command: "release-announce",
|
|
9451
|
+
description: "Generate release announcements (blog, social)",
|
|
9452
|
+
audience: "maintainer"
|
|
9453
|
+
},
|
|
9454
|
+
// ── Internal (hidden everywhere; here for extractor/index completeness) ──
|
|
9455
|
+
{
|
|
9456
|
+
command: "server",
|
|
9457
|
+
// Synonym for the no-arg invocation — `nexus-agents` and
|
|
9458
|
+
// `nexus-agents server` both run `handleServerCommand`. Listed here for
|
|
9459
|
+
// extractor completeness; humans see `(default)` in --help.
|
|
9460
|
+
description: "Start MCP server with stdio transport (explicit form)",
|
|
9461
|
+
audience: "internal"
|
|
9462
|
+
},
|
|
9463
|
+
{
|
|
9464
|
+
command: "e2e-eval",
|
|
9465
|
+
description: "E2E evaluation scenario runner (dev loop)",
|
|
9466
|
+
audience: "internal"
|
|
9467
|
+
},
|
|
9468
|
+
{
|
|
9469
|
+
command: "memory-benchmark",
|
|
9470
|
+
description: "Memory-system benchmark runner (dev loop)",
|
|
9471
|
+
audience: "internal"
|
|
9472
|
+
},
|
|
9473
|
+
{
|
|
9474
|
+
command: "memory-eval",
|
|
9475
|
+
description: "Comparative memory evaluation benchmark (dev loop)",
|
|
9476
|
+
audience: "internal"
|
|
9477
|
+
},
|
|
9478
|
+
{
|
|
9479
|
+
command: "routing-ab",
|
|
9480
|
+
description: "A/B comparison of routing strategies (dev loop)",
|
|
9481
|
+
audience: "internal"
|
|
9482
|
+
},
|
|
9483
|
+
{
|
|
9484
|
+
command: "scenario",
|
|
9485
|
+
description: "Execute a named scenario from the testing framework",
|
|
9486
|
+
audience: "internal"
|
|
9487
|
+
},
|
|
9488
|
+
{
|
|
9489
|
+
command: "warm-up",
|
|
9490
|
+
description: "Warm the model/adapter caches before a run",
|
|
9491
|
+
audience: "internal"
|
|
9492
|
+
}
|
|
9493
|
+
];
|
|
9494
|
+
function filterCatalog(showAll) {
|
|
9495
|
+
const visible = COMMAND_CATALOG.filter((e) => e.audience !== "internal");
|
|
9496
|
+
if (showAll) return visible;
|
|
9497
|
+
return visible.filter((e) => e.audience !== "maintainer");
|
|
9498
|
+
}
|
|
9499
|
+
function catalogForExtractors() {
|
|
9500
|
+
return COMMAND_CATALOG.filter((e) => e.command !== "(default)");
|
|
9501
|
+
}
|
|
9502
|
+
function groupByAudience(entries) {
|
|
9503
|
+
const groups = /* @__PURE__ */ new Map();
|
|
9504
|
+
for (const entry of entries) {
|
|
9505
|
+
const existing = groups.get(entry.audience) ?? [];
|
|
9506
|
+
existing.push(entry);
|
|
9507
|
+
groups.set(entry.audience, existing);
|
|
9508
|
+
}
|
|
9509
|
+
return groups;
|
|
9510
|
+
}
|
|
9511
|
+
var AUDIENCE_HEADINGS = {
|
|
9512
|
+
essential: "Essential \u2014 install, configure, run",
|
|
9513
|
+
advanced: "Advanced \u2014 day-to-day extras",
|
|
9514
|
+
maintainer: "Maintainer \u2014 benchmarks, releases, deep diagnostics",
|
|
9515
|
+
// Never rendered (filterCatalog strips internal before renderCommandsSection
|
|
9516
|
+
// iterates), but required by the Record<CommandAudience, string> contract.
|
|
9517
|
+
internal: "Internal \u2014 dev/eval loops (hidden from --help)"
|
|
9518
|
+
};
|
|
9519
|
+
function renderCommandsSection(showAll) {
|
|
9520
|
+
const filtered = filterCatalog(showAll);
|
|
9521
|
+
const groups = groupByAudience(filtered);
|
|
9522
|
+
const lines = [];
|
|
9523
|
+
const order = showAll ? ["essential", "advanced", "maintainer"] : ["essential", "advanced"];
|
|
9524
|
+
for (const audience of order) {
|
|
9525
|
+
const entries = groups.get(audience);
|
|
9526
|
+
if (entries === void 0 || entries.length === 0) continue;
|
|
9527
|
+
lines.push(` ${AUDIENCE_HEADINGS[audience]}`);
|
|
9528
|
+
for (const entry of entries) {
|
|
9529
|
+
lines.push(` ${entry.command.padEnd(16)} ${entry.description}`);
|
|
9294
9530
|
}
|
|
9531
|
+
lines.push("");
|
|
9532
|
+
}
|
|
9533
|
+
if (!showAll) {
|
|
9534
|
+
lines.push(" Run with --all to show maintainer commands (benchmarks, release tooling).");
|
|
9295
9535
|
}
|
|
9296
|
-
return
|
|
9536
|
+
return lines.join("\n").replace(/\n+$/, "");
|
|
9297
9537
|
}
|
|
9538
|
+
|
|
9539
|
+
// src/indexer/entrypoint-cli-extractor.ts
|
|
9298
9540
|
function extractCliOptions(sourceFile) {
|
|
9299
9541
|
const options = /* @__PURE__ */ new Map();
|
|
9300
9542
|
const configVar = sourceFile.getVariableDeclaration("PARSE_ARGS_CONFIG");
|
|
@@ -9388,47 +9630,54 @@ function getCommandOptions(name, cliOptions) {
|
|
|
9388
9630
|
}
|
|
9389
9631
|
return cmdOptions;
|
|
9390
9632
|
}
|
|
9391
|
-
function
|
|
9392
|
-
const
|
|
9393
|
-
const
|
|
9394
|
-
|
|
9395
|
-
|
|
9396
|
-
|
|
9397
|
-
|
|
9398
|
-
|
|
9399
|
-
|
|
9400
|
-
|
|
9401
|
-
|
|
9402
|
-
|
|
9633
|
+
function buildCommandSpec(entry, ctx) {
|
|
9634
|
+
const handlerName = `handle${toPascalCase(entry.command)}Command`;
|
|
9635
|
+
const handlerFunc = ctx.commandsFile.getFunction(handlerName);
|
|
9636
|
+
const sourceLine = handlerFunc?.getStartLineNumber() ?? 1;
|
|
9637
|
+
if (handlerFunc === void 0 && ctx.warnings !== void 0) {
|
|
9638
|
+
ctx.warnings.push(
|
|
9639
|
+
`CLI extraction: catalog entry "${entry.command}" has no matching ${handlerName} function in ${ctx.cliCommandsPath}. Check naming drift.`
|
|
9640
|
+
);
|
|
9641
|
+
}
|
|
9642
|
+
const cmdOptions = getCommandOptions(entry.command, ctx.cliOptions);
|
|
9643
|
+
const cmdSpec = {
|
|
9644
|
+
name: entry.command,
|
|
9645
|
+
description: entry.description,
|
|
9646
|
+
source_file: ctx.relativePath,
|
|
9647
|
+
source_line: sourceLine
|
|
9648
|
+
};
|
|
9649
|
+
if (cmdOptions.length > 0) {
|
|
9650
|
+
cmdSpec.options = cmdOptions;
|
|
9651
|
+
}
|
|
9652
|
+
return cmdSpec;
|
|
9653
|
+
}
|
|
9654
|
+
function extractCliCommands(project, packageRoot, cliCommandsPath, cliTypesPath, warnings) {
|
|
9403
9655
|
const typesFullPath = path12.join(packageRoot, cliTypesPath);
|
|
9404
9656
|
const typesFile = project.getSourceFile(typesFullPath);
|
|
9405
|
-
|
|
9657
|
+
if (typesFile === void 0 && warnings !== void 0) {
|
|
9658
|
+
warnings.push(
|
|
9659
|
+
`CLI extraction: types file not loaded (${typesFullPath}). PARSE_ARGS_CONFIG options will be missing from the manifest.`
|
|
9660
|
+
);
|
|
9661
|
+
}
|
|
9406
9662
|
const cliOptions = typesFile !== void 0 ? extractCliOptions(typesFile) : /* @__PURE__ */ new Map();
|
|
9407
9663
|
const commandsFullPath = path12.join(packageRoot, cliCommandsPath);
|
|
9408
9664
|
const commandsFile = project.getSourceFile(commandsFullPath);
|
|
9409
|
-
if (commandsFile === void 0)
|
|
9410
|
-
|
|
9411
|
-
|
|
9412
|
-
|
|
9413
|
-
|
|
9414
|
-
const handlerFunc = commandsFile.getFunction(handlerName);
|
|
9415
|
-
const sourceLine = handlerFunc?.getStartLineNumber() ?? 1;
|
|
9416
|
-
const cmdOptions = getCommandOptions(cmdMeta.name, cliOptions);
|
|
9417
|
-
const cmdSpec = {
|
|
9418
|
-
name: cmdMeta.name,
|
|
9419
|
-
description: cmdMeta.description,
|
|
9420
|
-
source_file: relativePath,
|
|
9421
|
-
source_line: sourceLine
|
|
9422
|
-
};
|
|
9423
|
-
if (cmdMeta.subcommands.length > 0) {
|
|
9424
|
-
cmdSpec.subcommands = cmdMeta.subcommands;
|
|
9425
|
-
}
|
|
9426
|
-
if (cmdOptions.length > 0) {
|
|
9427
|
-
cmdSpec.options = cmdOptions;
|
|
9665
|
+
if (commandsFile === void 0) {
|
|
9666
|
+
if (warnings !== void 0) {
|
|
9667
|
+
warnings.push(
|
|
9668
|
+
`CLI extraction: commands file not loaded (${commandsFullPath}). Returning zero commands.`
|
|
9669
|
+
);
|
|
9428
9670
|
}
|
|
9429
|
-
|
|
9671
|
+
return [];
|
|
9430
9672
|
}
|
|
9431
|
-
|
|
9673
|
+
const ctx = {
|
|
9674
|
+
commandsFile,
|
|
9675
|
+
relativePath: path12.relative(process.cwd(), commandsFullPath),
|
|
9676
|
+
cliOptions,
|
|
9677
|
+
cliCommandsPath,
|
|
9678
|
+
...warnings !== void 0 && { warnings }
|
|
9679
|
+
};
|
|
9680
|
+
return catalogForExtractors().map((entry) => buildCommandSpec(entry, ctx));
|
|
9432
9681
|
}
|
|
9433
9682
|
|
|
9434
9683
|
// src/indexer/entrypoint-mcp-extractor.ts
|
|
@@ -9474,10 +9723,15 @@ function extractZodParameters(schemaObj) {
|
|
|
9474
9723
|
}
|
|
9475
9724
|
return params;
|
|
9476
9725
|
}
|
|
9477
|
-
function extractMcpTools(project, packageRoot, mcpToolsPath) {
|
|
9726
|
+
function extractMcpTools(project, packageRoot, mcpToolsPath, warnings) {
|
|
9478
9727
|
const tools = [];
|
|
9479
9728
|
const toolsDir = path13.join(packageRoot, mcpToolsPath);
|
|
9480
9729
|
const toolFiles = project.getSourceFiles(`${toolsDir}/*.ts`);
|
|
9730
|
+
if (toolFiles.length === 0 && warnings !== void 0) {
|
|
9731
|
+
warnings.push(
|
|
9732
|
+
`MCP tool extraction: glob "${toolsDir}/*.ts" matched zero files. Check that the path exists and is included in the ts-morph project.`
|
|
9733
|
+
);
|
|
9734
|
+
}
|
|
9481
9735
|
for (const sourceFile of toolFiles) {
|
|
9482
9736
|
const filePath = sourceFile.getFilePath();
|
|
9483
9737
|
const fileName = path13.basename(filePath);
|
|
@@ -9614,9 +9868,10 @@ function extractEntrypoints(options = {}) {
|
|
|
9614
9868
|
project,
|
|
9615
9869
|
opts.packageRoot,
|
|
9616
9870
|
opts.cliCommandsPath,
|
|
9617
|
-
"src/cli-types.ts"
|
|
9871
|
+
"src/cli-types.ts",
|
|
9872
|
+
warnings
|
|
9618
9873
|
);
|
|
9619
|
-
const mcpTools = extractMcpTools(project, opts.packageRoot, opts.mcpToolsPath);
|
|
9874
|
+
const mcpTools = extractMcpTools(project, opts.packageRoot, opts.mcpToolsPath, warnings);
|
|
9620
9875
|
const finalCommands = opts.sanitize ? cliCommands.map(sanitizeCommand) : cliCommands;
|
|
9621
9876
|
const finalTools = opts.sanitize ? mcpTools.map(sanitizeTool) : mcpTools;
|
|
9622
9877
|
const manifest = {
|
|
@@ -14109,9 +14364,15 @@ var FitnessScoreCalculator = class {
|
|
|
14109
14364
|
}
|
|
14110
14365
|
/**
|
|
14111
14366
|
* Check explicit behavior: penalize hidden/magic behavior.
|
|
14112
|
-
*
|
|
14113
|
-
*
|
|
14114
|
-
*
|
|
14367
|
+
*
|
|
14368
|
+
* Implementation is intentionally filesystem-signal-based (no AST parse).
|
|
14369
|
+
* The `NEXUS_ALLOW_MOCK_ORCHESTRATION` guard and magic-routing pattern
|
|
14370
|
+
* grep capture the observable failure modes that historically slipped
|
|
14371
|
+
* past review. AST-based detection of implicit fallbacks was considered
|
|
14372
|
+
* but not pursued — it would significantly widen this function's
|
|
14373
|
+
* footprint and the filesystem signals already catch the recurring
|
|
14374
|
+
* regressions. Revisit only if a new class of hidden-behavior bug
|
|
14375
|
+
* surfaces that this grep-over-source approach can't catch.
|
|
14115
14376
|
*/
|
|
14116
14377
|
checkExplicitBehavior() {
|
|
14117
14378
|
const findings = [];
|
|
@@ -15284,7 +15545,7 @@ function getBlueskyConfig() {
|
|
|
15284
15545
|
}
|
|
15285
15546
|
async function loadAtproto() {
|
|
15286
15547
|
try {
|
|
15287
|
-
const mod = await import("./dist-
|
|
15548
|
+
const mod = await import("./dist-RLMRWMYO.js");
|
|
15288
15549
|
return { AtpAgent: mod.AtpAgent, RichText: mod.RichText };
|
|
15289
15550
|
} catch {
|
|
15290
15551
|
return void 0;
|
|
@@ -16743,230 +17004,6 @@ function authCommand(subcommand, options) {
|
|
|
16743
17004
|
}
|
|
16744
17005
|
}
|
|
16745
17006
|
|
|
16746
|
-
// src/cli-command-catalog.ts
|
|
16747
|
-
var COMMAND_CATALOG = [
|
|
16748
|
-
// ── Essential ────────────────────────────────────────────────────────────
|
|
16749
|
-
{
|
|
16750
|
-
command: "(default)",
|
|
16751
|
-
description: "Start MCP server with stdio transport",
|
|
16752
|
-
audience: "essential"
|
|
16753
|
-
},
|
|
16754
|
-
{
|
|
16755
|
-
command: "hello",
|
|
16756
|
-
description: "Show welcome message and quick start (no API keys needed)",
|
|
16757
|
-
audience: "essential"
|
|
16758
|
-
},
|
|
16759
|
-
{
|
|
16760
|
-
command: "setup",
|
|
16761
|
-
description: "Configure CLI integration (MCP + .rules + data dirs)",
|
|
16762
|
-
audience: "essential"
|
|
16763
|
-
},
|
|
16764
|
-
{
|
|
16765
|
-
command: "verify",
|
|
16766
|
-
description: "Check install health (sqlite, adapters, config)",
|
|
16767
|
-
audience: "essential"
|
|
16768
|
-
},
|
|
16769
|
-
{
|
|
16770
|
-
command: "doctor",
|
|
16771
|
-
description: "Detailed system/adapter health check",
|
|
16772
|
-
audience: "essential"
|
|
16773
|
-
},
|
|
16774
|
-
{
|
|
16775
|
-
command: "config",
|
|
16776
|
-
description: "Manage configuration (init, get, set, list, export, import)",
|
|
16777
|
-
audience: "essential"
|
|
16778
|
-
},
|
|
16779
|
-
{
|
|
16780
|
-
command: "orchestrate",
|
|
16781
|
-
description: "Execute a task via CLI tools (standalone mode)",
|
|
16782
|
-
audience: "essential"
|
|
16783
|
-
},
|
|
16784
|
-
{
|
|
16785
|
-
command: "vote",
|
|
16786
|
-
description: "Run consensus vote on a proposal (5-6 agents)",
|
|
16787
|
-
audience: "essential"
|
|
16788
|
-
},
|
|
16789
|
-
{
|
|
16790
|
-
command: "workflow",
|
|
16791
|
-
description: "Manage and run workflow templates (list, run)",
|
|
16792
|
-
audience: "essential"
|
|
16793
|
-
},
|
|
16794
|
-
{
|
|
16795
|
-
command: "expert",
|
|
16796
|
-
description: "Manage expert agents (list, create, execute)",
|
|
16797
|
-
audience: "essential"
|
|
16798
|
-
},
|
|
16799
|
-
{
|
|
16800
|
-
command: "research",
|
|
16801
|
-
description: "Manage research registry (status, add, stats, refresh)",
|
|
16802
|
-
audience: "essential"
|
|
16803
|
-
},
|
|
16804
|
-
// ── Advanced ─────────────────────────────────────────────────────────────
|
|
16805
|
-
{
|
|
16806
|
-
command: "session",
|
|
16807
|
-
description: "Manage session persistence (list, show, export, delete)",
|
|
16808
|
-
audience: "advanced"
|
|
16809
|
-
},
|
|
16810
|
-
{
|
|
16811
|
-
command: "auth",
|
|
16812
|
-
description: "Manage MCP authentication tokens (init, show, rotate)",
|
|
16813
|
-
audience: "advanced"
|
|
16814
|
-
},
|
|
16815
|
-
{
|
|
16816
|
-
command: "status",
|
|
16817
|
-
description: "At-a-glance project health dashboard",
|
|
16818
|
-
audience: "advanced"
|
|
16819
|
-
},
|
|
16820
|
-
{
|
|
16821
|
-
command: "capabilities",
|
|
16822
|
-
description: "Show model capabilities matrix",
|
|
16823
|
-
audience: "advanced"
|
|
16824
|
-
},
|
|
16825
|
-
{
|
|
16826
|
-
command: "review",
|
|
16827
|
-
description: "Review a GitHub PR (dogfooding helper)",
|
|
16828
|
-
audience: "advanced"
|
|
16829
|
-
},
|
|
16830
|
-
{
|
|
16831
|
-
command: "scaffold",
|
|
16832
|
-
description: "Generate project files from templates",
|
|
16833
|
-
audience: "advanced"
|
|
16834
|
-
},
|
|
16835
|
-
{
|
|
16836
|
-
command: "validate",
|
|
16837
|
-
description: "Run unified validation (doctor + fitness + config)",
|
|
16838
|
-
audience: "advanced"
|
|
16839
|
-
},
|
|
16840
|
-
{
|
|
16841
|
-
command: "index",
|
|
16842
|
-
description: "Generate and manage codebase index",
|
|
16843
|
-
audience: "advanced"
|
|
16844
|
-
},
|
|
16845
|
-
// ── Maintainer (hidden by default) ───────────────────────────────────────
|
|
16846
|
-
{
|
|
16847
|
-
command: "demo",
|
|
16848
|
-
description: "API-free exploration mode (marketing/demo flow)",
|
|
16849
|
-
audience: "maintainer"
|
|
16850
|
-
},
|
|
16851
|
-
{
|
|
16852
|
-
command: "hooks",
|
|
16853
|
-
description: "Claude CLI hook integration commands",
|
|
16854
|
-
audience: "maintainer"
|
|
16855
|
-
},
|
|
16856
|
-
{
|
|
16857
|
-
command: "routing-audit",
|
|
16858
|
-
description: "Debug model routing decisions",
|
|
16859
|
-
audience: "maintainer"
|
|
16860
|
-
},
|
|
16861
|
-
{
|
|
16862
|
-
command: "fitness-audit",
|
|
16863
|
-
description: "Run CLI orchestration fitness score audit",
|
|
16864
|
-
audience: "maintainer"
|
|
16865
|
-
},
|
|
16866
|
-
{
|
|
16867
|
-
command: "system-review",
|
|
16868
|
-
description: "Automated system review (5-phase checklist)",
|
|
16869
|
-
audience: "maintainer"
|
|
16870
|
-
},
|
|
16871
|
-
{
|
|
16872
|
-
command: "sprint",
|
|
16873
|
-
description: "Automated sprint planning from open issues",
|
|
16874
|
-
audience: "maintainer"
|
|
16875
|
-
},
|
|
16876
|
-
{
|
|
16877
|
-
command: "evaluate",
|
|
16878
|
-
description: "Self-evaluation of codebase components",
|
|
16879
|
-
audience: "maintainer"
|
|
16880
|
-
},
|
|
16881
|
-
{
|
|
16882
|
-
command: "issue",
|
|
16883
|
-
description: "Issue template validation and management",
|
|
16884
|
-
audience: "maintainer"
|
|
16885
|
-
},
|
|
16886
|
-
{
|
|
16887
|
-
command: "validation",
|
|
16888
|
-
description: "Learning validation dashboard",
|
|
16889
|
-
audience: "maintainer"
|
|
16890
|
-
},
|
|
16891
|
-
{
|
|
16892
|
-
command: "learning-metrics",
|
|
16893
|
-
description: "Aggregated learning metrics dashboard",
|
|
16894
|
-
audience: "maintainer"
|
|
16895
|
-
},
|
|
16896
|
-
{
|
|
16897
|
-
command: "swe-bench",
|
|
16898
|
-
description: "Run SWE-bench evaluation benchmark",
|
|
16899
|
-
audience: "maintainer"
|
|
16900
|
-
},
|
|
16901
|
-
{
|
|
16902
|
-
command: "atbench",
|
|
16903
|
-
description: "Run ATBench trajectory-safety evaluation",
|
|
16904
|
-
audience: "maintainer"
|
|
16905
|
-
},
|
|
16906
|
-
{
|
|
16907
|
-
command: "visualize",
|
|
16908
|
-
description: "Generate Mermaid diagrams and ASCII dashboards",
|
|
16909
|
-
audience: "maintainer"
|
|
16910
|
-
},
|
|
16911
|
-
{
|
|
16912
|
-
command: "health",
|
|
16913
|
-
description: "Swarm health metrics dashboard",
|
|
16914
|
-
audience: "maintainer"
|
|
16915
|
-
},
|
|
16916
|
-
{
|
|
16917
|
-
command: "release-notes",
|
|
16918
|
-
description: "Generate release notes from git commits",
|
|
16919
|
-
audience: "maintainer"
|
|
16920
|
-
},
|
|
16921
|
-
{
|
|
16922
|
-
command: "release-validate",
|
|
16923
|
-
description: "Run expert swarm validation for releases",
|
|
16924
|
-
audience: "maintainer"
|
|
16925
|
-
},
|
|
16926
|
-
{
|
|
16927
|
-
command: "release-announce",
|
|
16928
|
-
description: "Generate release announcements (blog, social)",
|
|
16929
|
-
audience: "maintainer"
|
|
16930
|
-
}
|
|
16931
|
-
];
|
|
16932
|
-
function filterCatalog(showAll) {
|
|
16933
|
-
if (showAll) return COMMAND_CATALOG;
|
|
16934
|
-
return COMMAND_CATALOG.filter((e) => e.audience !== "maintainer");
|
|
16935
|
-
}
|
|
16936
|
-
function groupByAudience(entries) {
|
|
16937
|
-
const groups = /* @__PURE__ */ new Map();
|
|
16938
|
-
for (const entry of entries) {
|
|
16939
|
-
const existing = groups.get(entry.audience) ?? [];
|
|
16940
|
-
existing.push(entry);
|
|
16941
|
-
groups.set(entry.audience, existing);
|
|
16942
|
-
}
|
|
16943
|
-
return groups;
|
|
16944
|
-
}
|
|
16945
|
-
var AUDIENCE_HEADINGS = {
|
|
16946
|
-
essential: "Essential \u2014 install, configure, run",
|
|
16947
|
-
advanced: "Advanced \u2014 day-to-day extras",
|
|
16948
|
-
maintainer: "Maintainer \u2014 benchmarks, releases, deep diagnostics"
|
|
16949
|
-
};
|
|
16950
|
-
function renderCommandsSection(showAll) {
|
|
16951
|
-
const filtered = filterCatalog(showAll);
|
|
16952
|
-
const groups = groupByAudience(filtered);
|
|
16953
|
-
const lines = [];
|
|
16954
|
-
const order = showAll ? ["essential", "advanced", "maintainer"] : ["essential", "advanced"];
|
|
16955
|
-
for (const audience of order) {
|
|
16956
|
-
const entries = groups.get(audience);
|
|
16957
|
-
if (entries === void 0 || entries.length === 0) continue;
|
|
16958
|
-
lines.push(` ${AUDIENCE_HEADINGS[audience]}`);
|
|
16959
|
-
for (const entry of entries) {
|
|
16960
|
-
lines.push(` ${entry.command.padEnd(16)} ${entry.description}`);
|
|
16961
|
-
}
|
|
16962
|
-
lines.push("");
|
|
16963
|
-
}
|
|
16964
|
-
if (!showAll) {
|
|
16965
|
-
lines.push(" Run with --all to show maintainer commands (benchmarks, release tooling).");
|
|
16966
|
-
}
|
|
16967
|
-
return lines.join("\n").replace(/\n+$/, "");
|
|
16968
|
-
}
|
|
16969
|
-
|
|
16970
17007
|
// src/cli-help-text.ts
|
|
16971
17008
|
var HELP_TEXT = `
|
|
16972
17009
|
nexus-agents - Intelligent orchestration platform for AI coding tools
|
|
@@ -17607,6 +17644,14 @@ var PARSE_ARGS_CONFIG = {
|
|
|
17607
17644
|
deep: {
|
|
17608
17645
|
type: "boolean",
|
|
17609
17646
|
default: false
|
|
17647
|
+
},
|
|
17648
|
+
// Registry command options (#2179)
|
|
17649
|
+
json: {
|
|
17650
|
+
type: "boolean",
|
|
17651
|
+
default: false
|
|
17652
|
+
},
|
|
17653
|
+
source: {
|
|
17654
|
+
type: "string"
|
|
17610
17655
|
}
|
|
17611
17656
|
},
|
|
17612
17657
|
allowPositionals: true,
|
|
@@ -17657,7 +17702,8 @@ function isValidCommand(value) {
|
|
|
17657
17702
|
"routing-ab",
|
|
17658
17703
|
"memory-eval",
|
|
17659
17704
|
"health",
|
|
17660
|
-
"validate"
|
|
17705
|
+
"validate",
|
|
17706
|
+
"registry"
|
|
17661
17707
|
];
|
|
17662
17708
|
return validCommands.includes(value);
|
|
17663
17709
|
}
|
|
@@ -18460,6 +18506,7 @@ var STANDALONE_TOOLS = [
|
|
|
18460
18506
|
{ name: "list_experts", register: registerListExpertsTool },
|
|
18461
18507
|
{ name: "query_trace", register: registerQueryTraceTool },
|
|
18462
18508
|
{ name: "query_task_state", register: registerQueryTaskStateTool },
|
|
18509
|
+
{ name: "verify_audit_chain", register: registerVerifyAuditChainTool },
|
|
18463
18510
|
{ name: "extract_symbols", register: registerExtractSymbolsTool },
|
|
18464
18511
|
{ name: "search_codebase", register: registerSearchCodebaseTool },
|
|
18465
18512
|
{ name: "run_dev_pipeline", register: registerDevPipelineTool },
|
|
@@ -19955,12 +20002,14 @@ function setupShutdownHandlers(cleanup, logger17) {
|
|
|
19955
20002
|
process.exit(EXIT_CODES.SHUTDOWN_ERROR);
|
|
19956
20003
|
}
|
|
19957
20004
|
};
|
|
19958
|
-
|
|
19959
|
-
|
|
19960
|
-
|
|
19961
|
-
|
|
19962
|
-
|
|
19963
|
-
}
|
|
20005
|
+
const onSignal = (signal) => () => {
|
|
20006
|
+
handleShutdown(signal).catch((err2) => {
|
|
20007
|
+
logger17.error("Shutdown handler crashed", err2 instanceof Error ? err2 : new Error(String(err2)));
|
|
20008
|
+
process.exit(EXIT_CODES.SHUTDOWN_ERROR);
|
|
20009
|
+
});
|
|
20010
|
+
};
|
|
20011
|
+
process.on("SIGINT", onSignal("SIGINT"));
|
|
20012
|
+
process.on("SIGTERM", onSignal("SIGTERM"));
|
|
19964
20013
|
process.on("uncaughtException", (error) => {
|
|
19965
20014
|
logger17.error("Uncaught exception", error);
|
|
19966
20015
|
process.exit(EXIT_CODES.SERVER_START_FAILED);
|
|
@@ -20156,7 +20205,7 @@ async function initializeSubsystems(config, logger17) {
|
|
|
20156
20205
|
await initializeAndLogSandbox(serverLogger, config.security?.sandbox);
|
|
20157
20206
|
const policyFirewall = logSecurityConfig(serverLogger, config);
|
|
20158
20207
|
const auditLogger = initializeAuditLogger(config.security, serverLogger);
|
|
20159
|
-
|
|
20208
|
+
initializeAuth(config, serverLogger);
|
|
20160
20209
|
await initializeAndRegisterTools(
|
|
20161
20210
|
server,
|
|
20162
20211
|
serverLogger,
|
|
@@ -20164,8 +20213,9 @@ async function initializeSubsystems(config, logger17) {
|
|
|
20164
20213
|
config,
|
|
20165
20214
|
feedbackResult.feedbackIntegration
|
|
20166
20215
|
);
|
|
20167
|
-
return { server, serverLogger, observer, eventBusBridge,
|
|
20216
|
+
return { server, serverLogger, observer, eventBusBridge, auditLogger };
|
|
20168
20217
|
}
|
|
20218
|
+
var SERVER_STARTUP_TIMEOUT_MS = 3e4;
|
|
20169
20219
|
async function startServer(verbose, mode, modeWasExplicit = false, orchestratorOptions) {
|
|
20170
20220
|
const logger17 = createLogger({ component: "cli" });
|
|
20171
20221
|
if (verbose) logger17.setLevel("debug");
|
|
@@ -20174,6 +20224,13 @@ async function startServer(verbose, mode, modeWasExplicit = false, orchestratorO
|
|
|
20174
20224
|
await startOrchestratorMode(orchestratorOptions ?? { verbose });
|
|
20175
20225
|
return;
|
|
20176
20226
|
}
|
|
20227
|
+
const startupWatchdog = setTimeout(() => {
|
|
20228
|
+
logger17.error(
|
|
20229
|
+
`Server startup exceeded ${String(SERVER_STARTUP_TIMEOUT_MS)}ms \u2014 aborting. Common causes: hung config load, blocked subsystem init, stdio transport stall.`
|
|
20230
|
+
);
|
|
20231
|
+
process.exit(EXIT_CODES.SERVER_START_FAILED);
|
|
20232
|
+
}, SERVER_STARTUP_TIMEOUT_MS);
|
|
20233
|
+
startupWatchdog.unref();
|
|
20177
20234
|
const detectionResult = detectMode({ explicitMode: modeWasExplicit ? mode : void 0 });
|
|
20178
20235
|
logStartupInfo(logger17, detectionResult, verbose);
|
|
20179
20236
|
const configResult = loadAndLogConfig(logger17);
|
|
@@ -20198,6 +20255,7 @@ async function startServer(verbose, mode, modeWasExplicit = false, orchestratorO
|
|
|
20198
20255
|
auditLogger
|
|
20199
20256
|
});
|
|
20200
20257
|
setupShutdownHandlers(cleanup, logger17);
|
|
20258
|
+
clearTimeout(startupWatchdog);
|
|
20201
20259
|
logger17.debug("Server running, waiting for requests...");
|
|
20202
20260
|
}
|
|
20203
20261
|
|
|
@@ -20229,6 +20287,11 @@ function isValidIndexFormat(value) {
|
|
|
20229
20287
|
function isValidResearchFormat(value) {
|
|
20230
20288
|
return value === "table" || value === "json";
|
|
20231
20289
|
}
|
|
20290
|
+
function parsePositiveInt(arg, defaultVal) {
|
|
20291
|
+
if (arg === void 0) return defaultVal;
|
|
20292
|
+
const parsed = parseInt(arg, 10);
|
|
20293
|
+
return Number.isNaN(parsed) || parsed <= 0 ? defaultVal : parsed;
|
|
20294
|
+
}
|
|
20232
20295
|
|
|
20233
20296
|
// src/cli-commands-usage.ts
|
|
20234
20297
|
function printWorkflowRunUsage() {
|
|
@@ -20575,6 +20638,32 @@ async function handleResearchCommand(args) {
|
|
|
20575
20638
|
process.exit(EXIT_CODES.SERVER_START_FAILED);
|
|
20576
20639
|
}
|
|
20577
20640
|
}
|
|
20641
|
+
async function handleRegistryCommand(args) {
|
|
20642
|
+
const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-S46JJ2SX.js");
|
|
20643
|
+
const subcommand = args.subcommand;
|
|
20644
|
+
if (!isValidRegistrySubcommand(subcommand)) {
|
|
20645
|
+
process.stdout.write(`${formatRegistryUsage()}
|
|
20646
|
+
`);
|
|
20647
|
+
process.exit(EXIT_CODES.INVALID_ARGS);
|
|
20648
|
+
}
|
|
20649
|
+
const source = typeof args.options.source === "string" ? args.options.source : void 0;
|
|
20650
|
+
const options = {
|
|
20651
|
+
json: args.options.json === true,
|
|
20652
|
+
dryRun: args.options.dryRun,
|
|
20653
|
+
...source !== void 0 ? { source } : {}
|
|
20654
|
+
};
|
|
20655
|
+
try {
|
|
20656
|
+
const result = await registryCommand(subcommand, options);
|
|
20657
|
+
process.stdout.write(`${result.text}
|
|
20658
|
+
`);
|
|
20659
|
+
process.exit(result.exitCode === 0 ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
|
|
20660
|
+
} catch (error) {
|
|
20661
|
+
const message = getErrorMessage(error);
|
|
20662
|
+
process.stdout.write(`Error: ${message}
|
|
20663
|
+
`);
|
|
20664
|
+
process.exit(EXIT_CODES.SERVER_START_FAILED);
|
|
20665
|
+
}
|
|
20666
|
+
}
|
|
20578
20667
|
function handleValidationCommand(args) {
|
|
20579
20668
|
const options = parseValidationArgs(args.positionals, args.options.format, args.options.verbose);
|
|
20580
20669
|
const exitCode = validationDashboardCommand(options);
|
|
@@ -20598,7 +20687,7 @@ async function handleVerifyCommand(args) {
|
|
|
20598
20687
|
async function handleDoctorCommand(args) {
|
|
20599
20688
|
const exitCode = await doctorCommand({ fix: args.options.fix });
|
|
20600
20689
|
if (args.options.deep) {
|
|
20601
|
-
const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-
|
|
20690
|
+
const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-VN6KMUCG.js");
|
|
20602
20691
|
const diag = runDeepDiagnostics2();
|
|
20603
20692
|
process.stdout.write(formatDeepDiagnostics2(diag) + "\n");
|
|
20604
20693
|
}
|
|
@@ -20627,7 +20716,7 @@ async function handleSetupCommandAsync(args) {
|
|
|
20627
20716
|
process.exit(exitCode === 0 ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
|
|
20628
20717
|
}
|
|
20629
20718
|
async function runCustomApiSetup(args) {
|
|
20630
|
-
const { configureCustomApi } = await import("./setup-custom-api-
|
|
20719
|
+
const { configureCustomApi } = await import("./setup-custom-api-CSB26HWD.js");
|
|
20631
20720
|
const baseUrl = args.options.customApi;
|
|
20632
20721
|
if (baseUrl === void 0) return EXIT_CODES.SERVER_START_FAILED;
|
|
20633
20722
|
const input = {
|
|
@@ -20787,25 +20876,19 @@ function handleWarmUpCommand(_args) {
|
|
|
20787
20876
|
process.exit(EXIT_CODES.SUCCESS);
|
|
20788
20877
|
}
|
|
20789
20878
|
function handleE2EEvalCommand(args) {
|
|
20790
|
-
const
|
|
20791
|
-
const taskCount = countArg !== void 0 ? parseInt(countArg, 10) : 50;
|
|
20792
|
-
const count = Number.isNaN(taskCount) || taskCount <= 0 ? 50 : taskCount;
|
|
20879
|
+
const count = parsePositiveInt(args.positionals[1], 50);
|
|
20793
20880
|
const result = runE2EEval({ taskCount: count });
|
|
20794
20881
|
process.stdout.write(formatE2EEvalResult(result) + "\n");
|
|
20795
20882
|
process.exit(result.passed ? EXIT_CODES.SUCCESS : 1);
|
|
20796
20883
|
}
|
|
20797
20884
|
function handleRoutingABCommand(args) {
|
|
20798
|
-
const
|
|
20799
|
-
const taskCount = countArg !== void 0 ? parseInt(countArg, 10) : 30;
|
|
20800
|
-
const count = Number.isNaN(taskCount) || taskCount <= 0 ? 30 : taskCount;
|
|
20885
|
+
const count = parsePositiveInt(args.positionals[1], 30);
|
|
20801
20886
|
const result = runRoutingAB({ taskCount: count });
|
|
20802
20887
|
process.stdout.write(formatABReport(result) + "\n");
|
|
20803
20888
|
process.exit(EXIT_CODES.SUCCESS);
|
|
20804
20889
|
}
|
|
20805
20890
|
function handleMemoryEvalCommand(args) {
|
|
20806
|
-
const
|
|
20807
|
-
const size = sizeArg !== void 0 ? parseInt(sizeArg, 10) : 50;
|
|
20808
|
-
const count = Number.isNaN(size) || size <= 0 ? 50 : size;
|
|
20891
|
+
const count = parsePositiveInt(args.positionals[1], 50);
|
|
20809
20892
|
const result = runMemoryEval(count);
|
|
20810
20893
|
process.stdout.write(formatMemoryEvalReport(result) + "\n");
|
|
20811
20894
|
process.exit(EXIT_CODES.SUCCESS);
|
|
@@ -22749,6 +22832,7 @@ var ASYNC_COMMAND_HANDLERS = {
|
|
|
22749
22832
|
vote: handleVoteCommand,
|
|
22750
22833
|
index: handleIndexCommand2,
|
|
22751
22834
|
research: handleResearchCommand,
|
|
22835
|
+
registry: handleRegistryCommand,
|
|
22752
22836
|
"swe-bench": handleSweBenchCommand,
|
|
22753
22837
|
atbench: handleAtbenchCommand,
|
|
22754
22838
|
hooks: handleHooksCommand,
|
|
@@ -23152,6 +23236,8 @@ function buildOptions(values) {
|
|
|
23152
23236
|
quick: values.quick,
|
|
23153
23237
|
mock: values.mock,
|
|
23154
23238
|
deep: values.deep,
|
|
23239
|
+
json: values.json,
|
|
23240
|
+
...values.source !== void 0 && { source: values.source },
|
|
23155
23241
|
...values.output !== void 0 && { output: values.output },
|
|
23156
23242
|
...values.input !== void 0 && { input: values.input },
|
|
23157
23243
|
...buildOrchestrateOptions(values),
|