nexus-agents 8.104.5 → 8.104.6

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.
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-URYCAEMV.js";
10
+ } from "./chunk-GFR3DBAY.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -2293,4 +2293,4 @@ export {
2293
2293
  runImprovementReview,
2294
2294
  registerImprovementReviewTool
2295
2295
  };
2296
- //# sourceMappingURL=chunk-H3FTI7YI.js.map
2296
+ //# sourceMappingURL=chunk-5HS2Y4L3.js.map
@@ -19,10 +19,10 @@ import {
19
19
  toolSuccessStructured,
20
20
  withProgressHeartbeat,
21
21
  wrapToolWithTimeout
22
- } from "./chunk-URYCAEMV.js";
22
+ } from "./chunk-GFR3DBAY.js";
23
23
  import {
24
24
  VERSION
25
- } from "./chunk-7BUOGQ5G.js";
25
+ } from "./chunk-7IR7NJA2.js";
26
26
  import {
27
27
  allOf
28
28
  } from "./chunk-EZNIYU5T.js";
@@ -9899,4 +9899,4 @@ export {
9899
9899
  CONSENSUS_VOTE_TOOL_SCHEMA,
9900
9900
  registerConsensusVoteTool
9901
9901
  };
9902
- //# sourceMappingURL=chunk-23HJVIUW.js.map
9902
+ //# sourceMappingURL=chunk-6FKFSM2Y.js.map
@@ -1,6 +1,6 @@
1
1
  // src/version.ts
2
2
  import semver from "semver";
3
- var VERSION = true ? "8.104.5" : "dev";
3
+ var VERSION = true ? "8.104.6" : "dev";
4
4
  var NODE_ENGINE_RANGE = ">=22.5.0";
5
5
  function isNodeVersionSupported(version) {
6
6
  return semver.satisfies(version, NODE_ENGINE_RANGE);
@@ -11,4 +11,4 @@ export {
11
11
  NODE_ENGINE_RANGE,
12
12
  isNodeVersionSupported
13
13
  };
14
- //# sourceMappingURL=chunk-7BUOGQ5G.js.map
14
+ //# sourceMappingURL=chunk-7IR7NJA2.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-7BUOGQ5G.js";
3
+ } from "./chunk-7IR7NJA2.js";
4
4
  import {
5
5
  DEFAULT_EXECUTION_MODE
6
6
  } from "./chunk-ECJ52NSK.js";
@@ -2342,4 +2342,4 @@ export {
2342
2342
  DEFAULT_CONSENSUS_CONFIG,
2343
2343
  ConsensusMetricsSchema
2344
2344
  };
2345
- //# sourceMappingURL=chunk-URYCAEMV.js.map
2345
+ //# sourceMappingURL=chunk-GFR3DBAY.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-IVLNHSKI.js";
10
10
  import {
11
11
  withPrerequisite
12
- } from "./chunk-H3FTI7YI.js";
12
+ } from "./chunk-5HS2Y4L3.js";
13
13
  import {
14
14
  generateSecurityPlan
15
15
  } from "./chunk-DN2N7I6D.js";
@@ -36,7 +36,7 @@ import {
36
36
  import {
37
37
  DEFAULT_TASK_TTL_MS,
38
38
  clampTaskTtl
39
- } from "./chunk-V4NEDDP3.js";
39
+ } from "./chunk-ZS2VRRYS.js";
40
40
  import {
41
41
  executeExpert
42
42
  } from "./chunk-ZHXYBIHG.js";
@@ -89,7 +89,7 @@ import {
89
89
  withFileLock,
90
90
  withWarnings,
91
91
  writeJobCancelled
92
- } from "./chunk-23HJVIUW.js";
92
+ } from "./chunk-6FKFSM2Y.js";
93
93
  import {
94
94
  NOOP_NOTIFIER,
95
95
  RateLimiter,
@@ -117,10 +117,10 @@ import {
117
117
  toolSuccessStructured,
118
118
  withProgressHeartbeat,
119
119
  wrapToolWithTimeout
120
- } from "./chunk-URYCAEMV.js";
120
+ } from "./chunk-GFR3DBAY.js";
121
121
  import {
122
122
  VERSION
123
- } from "./chunk-7BUOGQ5G.js";
123
+ } from "./chunk-7IR7NJA2.js";
124
124
  import {
125
125
  allOf,
126
126
  anyOf
@@ -46883,7 +46883,7 @@ function buildVotingInput(plan, config) {
46883
46883
  }
46884
46884
  async function executeSingleVote(plan, config, log) {
46885
46885
  try {
46886
- const { executeVoting } = await import("./consensus-vote-S33UK36K.js");
46886
+ const { executeVoting } = await import("./consensus-vote-SFFDXLY7.js");
46887
46887
  const input = buildVotingInput(plan, config);
46888
46888
  const result = await executeVoting(input, log);
46889
46889
  return parseVotingResult(result);
@@ -47858,7 +47858,7 @@ function createVoteStage({ config, startStage }) {
47858
47858
  const strategy = config.votingStrategy ?? "higher_order";
47859
47859
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
47860
47860
  try {
47861
- const { executeVoting } = await import("./consensus-vote-S33UK36K.js");
47861
+ const { executeVoting } = await import("./consensus-vote-SFFDXLY7.js");
47862
47862
  const votingResult = await executeVoting(
47863
47863
  {
47864
47864
  proposal: buildVoteProposal(plan, research),
@@ -57138,4 +57138,4 @@ export {
57138
57138
  startPipelineEventBridge,
57139
57139
  shutdownPipelineEventBridge
57140
57140
  };
57141
- //# sourceMappingURL=chunk-CNPMGB4V.js.map
57141
+ //# sourceMappingURL=chunk-PYTCMF3C.js.map
@@ -12,7 +12,7 @@ import {
12
12
  NODE_ENGINE_RANGE,
13
13
  VERSION,
14
14
  isNodeVersionSupported
15
- } from "./chunk-7BUOGQ5G.js";
15
+ } from "./chunk-7IR7NJA2.js";
16
16
  import {
17
17
  allOf
18
18
  } from "./chunk-EZNIYU5T.js";
@@ -1385,7 +1385,7 @@ async function runDoctorFix(result) {
1385
1385
  writeLine2("\u2500".repeat(40));
1386
1386
  let fixCount = 0;
1387
1387
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
1388
- const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-LQUAX4EA.js");
1388
+ const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-6VHVUHUF.js");
1389
1389
  const outcome = describeDataDirFix2(initDataDirectories2());
1390
1390
  writeLine2(outcome.line);
1391
1391
  if (outcome.counted) fixCount++;
@@ -1487,4 +1487,4 @@ export {
1487
1487
  startStdioServer,
1488
1488
  closeServer
1489
1489
  };
1490
- //# sourceMappingURL=chunk-V4NEDDP3.js.map
1490
+ //# sourceMappingURL=chunk-ZS2VRRYS.js.map
package/dist/cli.d.ts CHANGED
@@ -232,6 +232,27 @@ interface ParsedCliArgs {
232
232
  taskType?: string;
233
233
  'min-sample'?: string;
234
234
  minSample?: string;
235
+ /** `sprint --vote`, `research review|prioritize --vote`. */
236
+ vote?: boolean;
237
+ /** `research discover|review|prioritize|autofile --topic=<t>`. */
238
+ topic?: string;
239
+ /** `research status --status=<s>`. */
240
+ status?: string;
241
+ /** `research review --create-issues`. */
242
+ createIssues?: boolean;
243
+ /** `research autofile --max=<n>`. */
244
+ max?: number;
245
+ /** `research index --generate | --check`. */
246
+ generate?: boolean;
247
+ check?: boolean;
248
+ /** `research index --validate --strict`, `release-validate --strict`. */
249
+ strict?: boolean;
250
+ /** `research index --silent`. */
251
+ silent?: boolean;
252
+ /** `research index --no-check-files`. */
253
+ noCheckFiles?: boolean;
254
+ /** `release-validate --skip <validator>` (repeatable). */
255
+ skip?: string[];
235
256
  };
236
257
  positionals: string[];
237
258
  }
package/dist/cli.js CHANGED
@@ -164,7 +164,7 @@ import {
164
164
  validateNexusEnv,
165
165
  validateWorkflow,
166
166
  wrapInMarkdownFence
167
- } from "./chunk-CNPMGB4V.js";
167
+ } from "./chunk-PYTCMF3C.js";
168
168
  import {
169
169
  DRAFT_REPLY_BODY_MAX_LENGTH,
170
170
  configureUntrustedInputFirewall,
@@ -189,7 +189,7 @@ import {
189
189
  registerImprovementReviewTool,
190
190
  runImprovementReview,
191
191
  scanForSecrets
192
- } from "./chunk-H3FTI7YI.js";
192
+ } from "./chunk-5HS2Y4L3.js";
193
193
  import "./chunk-DN2N7I6D.js";
194
194
  import "./chunk-4GDMHCKX.js";
195
195
  import "./chunk-7ETWTSTB.js";
@@ -211,7 +211,7 @@ import {
211
211
  doctorCommand,
212
212
  initDataDirectories,
213
213
  runDoctor
214
- } from "./chunk-V4NEDDP3.js";
214
+ } from "./chunk-ZS2VRRYS.js";
215
215
  import "./chunk-DNJSJZHV.js";
216
216
  import "./chunk-5O3KZ4SQ.js";
217
217
  import {
@@ -234,19 +234,19 @@ import {
234
234
  registerConsensusVoteTool,
235
235
  seatFallbacks,
236
236
  toRecordDecision
237
- } from "./chunk-23HJVIUW.js";
237
+ } from "./chunk-6FKFSM2Y.js";
238
238
  import {
239
239
  getGlobalExecutionMode,
240
240
  setGlobalExecutionMode,
241
241
  setGlobalPolicyFirewall,
242
242
  setSecureHandlerAuditLogger,
243
243
  stagePolicyFirewallForRollout
244
- } from "./chunk-URYCAEMV.js";
244
+ } from "./chunk-GFR3DBAY.js";
245
245
  import {
246
246
  NODE_ENGINE_RANGE,
247
247
  VERSION,
248
248
  isNodeVersionSupported
249
- } from "./chunk-7BUOGQ5G.js";
249
+ } from "./chunk-7IR7NJA2.js";
250
250
  import {
251
251
  allOf,
252
252
  anyOf
@@ -1260,7 +1260,22 @@ var PARSE_ARGS_CONFIG = {
1260
1260
  },
1261
1261
  "min-sample": {
1262
1262
  type: "string"
1263
- }
1263
+ },
1264
+ // #6693 follow-up — subcommand flags that usage text advertised and
1265
+ // handlers read, still rejected after #6705. Forwarded by
1266
+ // `buildSubcommandFlagOptions` (cli/subcommand-flag-options.ts). No short
1267
+ // letters: a short letter is global (see the note on `threshold`).
1268
+ vote: { type: "boolean", default: false },
1269
+ topic: { type: "string" },
1270
+ status: { type: "string" },
1271
+ "create-issues": { type: "boolean", default: false },
1272
+ max: { type: "string" },
1273
+ generate: { type: "boolean", default: false },
1274
+ check: { type: "boolean", default: false },
1275
+ strict: { type: "boolean", default: false },
1276
+ silent: { type: "boolean", default: false },
1277
+ "no-check-files": { type: "boolean", default: false },
1278
+ skip: { type: "string", multiple: true }
1264
1279
  },
1265
1280
  allowPositionals: true,
1266
1281
  strict: true
@@ -10054,7 +10069,12 @@ function createInitialParseState() {
10054
10069
  }
10055
10070
  function applyForwardedOptions(state, options) {
10056
10071
  if (options === void 0) return;
10072
+ if (options["check"] === true) state.action = "check";
10073
+ if (options["generate"] === true) state.action = "generate";
10057
10074
  if (options["validate"] === true) state.action = "validate";
10075
+ if (options["strict"] === true) state.strict = true;
10076
+ if (options["silent"] === true) state.silent = true;
10077
+ if (options["noCheckFiles"] === true) state.checkFiles = false;
10058
10078
  if (typeof options["output"] === "string") state.output = options["output"];
10059
10079
  if (options["format"] === "json") state.format = "json";
10060
10080
  }
@@ -10468,7 +10488,7 @@ function buildResult(_rows, outcomes) {
10468
10488
  async function handleImportCommand(args, options) {
10469
10489
  const csvPath = args[0];
10470
10490
  if (csvPath === void 0 || csvPath === "") {
10471
- return "Error: CSV file path is required. Usage: nexus-agents research import <csv-file> [--dryRun]";
10491
+ return "Error: CSV file path is required. Usage: nexus-agents research import <csv-file> [--dry-run]";
10472
10492
  }
10473
10493
  const dryRun = options["dryRun"] === true;
10474
10494
  const result = await executeImport({ csvPath, dryRun });
@@ -20045,7 +20065,7 @@ function startImprovementReviewScheduler(options) {
20045
20065
  let running = false;
20046
20066
  const runOnce = async () => {
20047
20067
  try {
20048
- const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-D4HGTRP6.js");
20068
+ const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-SWCCCRAU.js");
20049
20069
  const input = ImprovementReviewInputSchema2.parse({ fileIssues });
20050
20070
  const result = await runImprovementReview2(input, { logger: logger23 });
20051
20071
  logger23.info("Scheduled improvement_review complete", {
@@ -23065,18 +23085,9 @@ var RESEARCH_HELP = {
23065
23085
  };
23066
23086
  var FITNESS_AUDIT_HELP = {
23067
23087
  command: "fitness-audit",
23068
- examples: [
23069
- "nexus-agents fitness-audit",
23070
- "nexus-agents fitness-audit --format=json",
23071
- "nexus-agents fitness-audit --min-severity=warning"
23072
- ],
23088
+ examples: ["nexus-agents fitness-audit", "nexus-agents fitness-audit --format=json"],
23073
23089
  flags: [
23074
- { flag: "--format=<fmt>", description: "Output format: json, text", defaultValue: "text" },
23075
- {
23076
- flag: "--min-severity=<sev>",
23077
- description: "Filter: info, warning, critical",
23078
- defaultValue: "all"
23079
- }
23090
+ { flag: "--format=<fmt>", description: "Output format: json, text", defaultValue: "text" }
23080
23091
  ]
23081
23092
  };
23082
23093
  var REVIEW_HELP = {
@@ -23511,6 +23522,26 @@ async function handleIndexCommand2(args) {
23511
23522
  process.stdout.write(formatIndexResult(result) + "\n");
23512
23523
  return cliExit(result.success ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
23513
23524
  }
23525
+ var RESEARCH_FORWARDED_OPTIONS = [
23526
+ "topic",
23527
+ "status",
23528
+ "max",
23529
+ "createIssues",
23530
+ "vote",
23531
+ "generate",
23532
+ "check",
23533
+ "strict",
23534
+ "silent",
23535
+ "noCheckFiles"
23536
+ ];
23537
+ function researchSubcommandOptions(opts) {
23538
+ return Object.fromEntries(
23539
+ RESEARCH_FORWARDED_OPTIONS.filter((key) => opts[key] !== void 0).map((key) => [
23540
+ key,
23541
+ opts[key]
23542
+ ])
23543
+ );
23544
+ }
23514
23545
  async function handleResearchCommand(args) {
23515
23546
  const subcommand = args.subcommand;
23516
23547
  if (!isValidResearchSubcommand(subcommand)) {
@@ -23529,6 +23560,7 @@ async function handleResearchCommand(args) {
23529
23560
  if (args.options.dryRun) {
23530
23561
  options["dryRun"] = true;
23531
23562
  }
23563
+ Object.assign(options, researchSubcommandOptions(args.options));
23532
23564
  if (args.options.source !== void 0) {
23533
23565
  const source = ResearchDiscoverInputSchema.shape.source.safeParse(args.options.source);
23534
23566
  if (!source.success) {
@@ -23577,17 +23609,12 @@ async function handleRegistryCommand(args) {
23577
23609
  }
23578
23610
  }
23579
23611
  function handleValidationCommand(args) {
23580
- const options = parseValidationArgs(
23581
- args.positionals,
23582
- args.options.format,
23583
- args.options.verbose,
23584
- {
23585
- period: args.options.period,
23586
- model: args.options.model,
23587
- taskType: args.options.taskType,
23588
- minSample: args.options.minSample
23589
- }
23590
- );
23612
+ const options = parseValidationArgs(args.positionals, args.options.format, args.options.verbose, {
23613
+ period: args.options.period,
23614
+ model: args.options.model,
23615
+ taskType: args.options.taskType,
23616
+ minSample: args.options.minSample
23617
+ });
23591
23618
  const exitCode = validationDashboardCommand(options);
23592
23619
  return cliExitFromStatus(exitCode);
23593
23620
  }
@@ -23673,6 +23700,9 @@ async function handleSprintCommand(args) {
23673
23700
  subcommand,
23674
23701
  format: args.options.format === "json" ? "json" : "text"
23675
23702
  };
23703
+ if (args.options.vote === true) {
23704
+ sprintOpts.vote = true;
23705
+ }
23676
23706
  if (args.options.createIssue) {
23677
23707
  sprintOpts.vote = true;
23678
23708
  sprintOpts.createIssue = true;
@@ -24598,8 +24628,9 @@ async function handleReleaseValidateCommand(args) {
24598
24628
  options: {
24599
24629
  ...version !== void 0 && { version },
24600
24630
  verbose: args.options.verbose,
24601
- strict: args.options.force
24602
- // Reuse force flag for strict mode
24631
+ // `--strict` is the documented spelling (#6693); `--force` stays an alias.
24632
+ strict: args.options.strict === true || args.options.force,
24633
+ ...args.options.skip !== void 0 && { skip: args.options.skip }
24603
24634
  }
24604
24635
  });
24605
24636
  return cliExitFromStatus(exitCode);
@@ -29131,7 +29162,7 @@ function checkEarlyExits(fromBase, toBase, dryRun) {
29131
29162
  dryRun,
29132
29163
  subdirs: [],
29133
29164
  success: false,
29134
- summary: "No git repo detected from cwd. Run from inside a repo or pass --to <path> to choose an explicit destination."
29165
+ summary: "No git repo detected from cwd. Run from inside a repo or pass --output <path> to choose an explicit destination."
29135
29166
  };
29136
29167
  }
29137
29168
  if (!existsSync25(fromBase)) {
@@ -29423,6 +29454,39 @@ function parseVoteBarFlags(values) {
29423
29454
  };
29424
29455
  }
29425
29456
 
29457
+ // src/cli/subcommand-flag-options.ts
29458
+ function parseMax(value) {
29459
+ if (value === void 0) return void 0;
29460
+ const num = Number(value);
29461
+ if (!Number.isInteger(num) || num <= 0) {
29462
+ throw new Error(`--max must be a positive integer; got '${value}'`);
29463
+ }
29464
+ return num;
29465
+ }
29466
+ function buildSwitches(values) {
29467
+ return {
29468
+ ...values.vote && { vote: true },
29469
+ ...values["create-issues"] && { createIssues: true },
29470
+ // `research index --generate --check --strict --silent --no-check-files`
29471
+ ...values.generate && { generate: true },
29472
+ ...values.check && { check: true },
29473
+ ...values.strict && { strict: true },
29474
+ ...values.silent && { silent: true },
29475
+ ...values["no-check-files"] && { noCheckFiles: true }
29476
+ };
29477
+ }
29478
+ function buildSubcommandFlagOptions(values) {
29479
+ const max = parseMax(values.max);
29480
+ const { topic, status, skip } = values;
29481
+ return {
29482
+ ...topic !== void 0 && { topic },
29483
+ ...status !== void 0 && { status },
29484
+ ...max !== void 0 && { max },
29485
+ ...skip !== void 0 && skip.length > 0 && { skip },
29486
+ ...buildSwitches(values)
29487
+ };
29488
+ }
29489
+
29426
29490
  // src/cli/cli-options-builders.ts
29427
29491
  function parseNumericOption(value) {
29428
29492
  if (value === void 0) return void 0;
@@ -29464,9 +29528,7 @@ function parseNoQuorumPolicy(value) {
29464
29528
  if (value === "fail" || value === "exit2" || value === "retry") {
29465
29529
  return value;
29466
29530
  }
29467
- throw new Error(
29468
- `--on-no-quorum must be one of ${NO_QUORUM_POLICIES.join(", ")}; got '${value}'`
29469
- );
29531
+ throw new Error(`--on-no-quorum must be one of ${NO_QUORUM_POLICIES.join(", ")}; got '${value}'`);
29470
29532
  }
29471
29533
  function parseVoteTimeout(value) {
29472
29534
  if (value === void 0) return void 0;
@@ -29610,7 +29672,8 @@ function buildOptions(values) {
29610
29672
  ...buildLearningMetricsOptions(values),
29611
29673
  ...buildSetupOptions(values),
29612
29674
  ...buildInitOptions(values),
29613
- ...buildImprovementReviewOptions(values)
29675
+ ...buildImprovementReviewOptions(values),
29676
+ ...buildSubcommandFlagOptions(values)
29614
29677
  };
29615
29678
  }
29616
29679