nexus-agents 8.60.1 → 8.60.2

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-C5CRQ5EH.js";
3
+ } from "./chunk-7JA62DNM.js";
4
4
  import {
5
5
  CACHE_TIMEOUTS,
6
6
  MCP_TIMEOUTS,
@@ -2115,4 +2115,4 @@ export {
2115
2115
  DEFAULT_CONSENSUS_CONFIG,
2116
2116
  ConsensusMetricsSchema
2117
2117
  };
2118
- //# sourceMappingURL=chunk-HMKX2LPT.js.map
2118
+ //# sourceMappingURL=chunk-3UAEJN4N.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-HMKX2LPT.js";
10
+ } from "./chunk-3UAEJN4N.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -2282,4 +2282,4 @@ export {
2282
2282
  runImprovementReview,
2283
2283
  registerImprovementReviewTool
2284
2284
  };
2285
- //# sourceMappingURL=chunk-L6ZP2JI4.js.map
2285
+ //# sourceMappingURL=chunk-426AIY5F.js.map
@@ -1,6 +1,6 @@
1
1
  // src/version.ts
2
2
  import semver from "semver";
3
- var VERSION = true ? "8.60.1" : "dev";
3
+ var VERSION = true ? "8.60.2" : "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-C5CRQ5EH.js.map
14
+ //# sourceMappingURL=chunk-7JA62DNM.js.map
@@ -21,7 +21,7 @@ import {
21
21
  import {
22
22
  DEFAULT_TASK_TTL_MS,
23
23
  clampTaskTtl
24
- } from "./chunk-O24AWSIT.js";
24
+ } from "./chunk-RTEZ6OJY.js";
25
25
  import {
26
26
  executeExpert
27
27
  } from "./chunk-QBVYOOEI.js";
@@ -71,7 +71,7 @@ import {
71
71
  updateStage,
72
72
  withWarnings,
73
73
  writeJobCancelled
74
- } from "./chunk-Y5V2ZZOL.js";
74
+ } from "./chunk-TCEMOFIM.js";
75
75
  import {
76
76
  allOf,
77
77
  anyOf
@@ -94,7 +94,7 @@ import {
94
94
  } from "./chunk-DIV6TBCN.js";
95
95
  import {
96
96
  withPrerequisite
97
- } from "./chunk-L6ZP2JI4.js";
97
+ } from "./chunk-426AIY5F.js";
98
98
  import {
99
99
  NOOP_NOTIFIER,
100
100
  RateLimiter,
@@ -117,7 +117,7 @@ import {
117
117
  toolSuccessStructured,
118
118
  withProgressHeartbeat,
119
119
  wrapToolWithTimeout
120
- } from "./chunk-HMKX2LPT.js";
120
+ } from "./chunk-3UAEJN4N.js";
121
121
  import {
122
122
  EventTopics,
123
123
  UNRESOLVED_MODEL_ID,
@@ -29561,6 +29561,10 @@ function dispatchAsyncRunWorkflow(deps, args) {
29561
29561
  // `handleRunWorkflow` already encapsulates the full sync path (dry-run +
29562
29562
  // validation + recording); recording its whole envelope as the job result
29563
29563
  // preserves the success/error discriminator + stepResults for polling.
29564
+ // #5393: deliberately arity-2 — `handleRunWorkflow` drives
29565
+ // `executionEngine.execute`, which has no AbortSignal option, so taking the
29566
+ // signal here would flip `signalAccepted` to true with nothing reading it.
29567
+ // Threading it needs a phase-boundary gate in the engine first: #6305.
29564
29568
  run: (_jobId, input) => handleRunWorkflow(deps, input),
29565
29569
  toEnvelope: {
29566
29570
  pending: (jobId) => successResponse({
@@ -37360,6 +37364,10 @@ function dispatchAsyncOrchestrate(params) {
37360
37364
  // taskId, so get_job_result(jobId) resolves directly from the task-state
37361
37365
  // log (orch-<ts>-<rand>) under the Stage-2 reader.
37362
37366
  freshJobId: () => generateTaskId(),
37367
+ // #5393: deliberately arity-1 — the orchestrator pipeline behind
37368
+ // `runOrchestratePipelineAsJob` has no AbortSignal surface, so taking the
37369
+ // signal would flip `signalAccepted` to true with nothing reading it.
37370
+ // Stage-boundary gate first: #6305.
37363
37371
  run: (jobId) => runOrchestratePipelineAsJob(jobId, params),
37364
37372
  toEnvelope: {
37365
37373
  pending: defaultPendingEnvelope,
@@ -41555,7 +41563,10 @@ function createEventCollector(events, enableAuditTrail, logger57, auditLogger) {
41555
41563
  auditBridge?.(event);
41556
41564
  };
41557
41565
  }
41558
- async function handleRunGraphWorkflow(input, logger57, auditLogger) {
41566
+ function nodeStatusOf(nodeResults) {
41567
+ return nodeResults.some((n) => n.status === "failed") ? "failed" : "completed";
41568
+ }
41569
+ async function handleRunGraphWorkflow(input, logger57, auditLogger, signal) {
41559
41570
  const startTime = getTimeProvider().now();
41560
41571
  const resolved = resolveGraph(input.workflow, startTime);
41561
41572
  if (!resolved.ok) return resolved.error;
@@ -41573,7 +41584,8 @@ async function handleRunGraphWorkflow(input, logger57, auditLogger) {
41573
41584
  ...checkpointStore !== void 0 ? { checkpointStore } : {},
41574
41585
  executionId,
41575
41586
  onEvent,
41576
- timeout: CLI_SUBPROCESS_TIMEOUTS.graphWorkflowMs
41587
+ timeout: CLI_SUBPROCESS_TIMEOUTS.graphWorkflowMs,
41588
+ ...signal !== void 0 ? { signal } : {}
41577
41589
  });
41578
41590
  const durationMs = getTimeProvider().now() - startTime;
41579
41591
  const checkpointCount = checkpointStore?.size() ?? 0;
@@ -41586,10 +41598,9 @@ async function handleRunGraphWorkflow(input, logger57, auditLogger) {
41586
41598
  checkpointCount
41587
41599
  });
41588
41600
  }
41589
- const nodeStatus = result.value.nodeResults.some((n) => n.status === "failed") ? "failed" : "completed";
41590
41601
  return {
41591
41602
  workflow: input.workflow,
41592
- status: nodeStatus,
41603
+ status: nodeStatusOf(result.value.nodeResults),
41593
41604
  finalState: result.value.finalState,
41594
41605
  stepsExecuted: result.value.stepsExecuted,
41595
41606
  nodesExecuted: result.value.nodeResults.length,
@@ -41610,8 +41621,8 @@ var GRAPH_WORKFLOW_SCHEMA = {
41610
41621
  // shape is what the SDK parses, so the wrong-key trap must be here too.
41611
41622
  ...asyncDispatchInput("Ignored for the `list` sentinel.")
41612
41623
  };
41613
- async function executeGraphWorkflowBody(input, logger57, notifier, auditLogger) {
41614
- const result = await handleRunGraphWorkflow(input, logger57, auditLogger);
41624
+ async function executeGraphWorkflowBody(input, logger57, notifier, auditLogger, signal) {
41625
+ const result = await handleRunGraphWorkflow(input, logger57, auditLogger, signal);
41615
41626
  const succeeded = result.status === "completed";
41616
41627
  notifier.info("run_graph_workflow", {
41617
41628
  event: succeeded ? "graph_workflow_complete" : "graph_workflow_failed",
@@ -41648,7 +41659,9 @@ function createGraphWorkflowHandler(logger57, notifier, auditLogger) {
41648
41659
  toolName: "run_graph_workflow",
41649
41660
  input,
41650
41661
  freshJobId: () => `gw-${randomUUID11()}`,
41651
- run: () => executeGraphWorkflowBody(input, logger57, notifier, auditLogger),
41662
+ // #5393: arity 3 — `runAsJob` derives `signalAccepted` from `run.length`.
41663
+ // The signal reaches `executeGraph`, which gates every super-step on it.
41664
+ run: (_jobId, _input, signal) => executeGraphWorkflowBody(input, logger57, notifier, auditLogger, signal),
41652
41665
  logger: logger57
41653
41666
  });
41654
41667
  }
@@ -42302,6 +42315,9 @@ function createExecuteSpecHandler(logger57) {
42302
42315
  toolName: "execute_spec",
42303
42316
  input,
42304
42317
  freshJobId: () => `es-${randomUUID12()}`,
42318
+ // #5393: deliberately arity-0 — `executeSpec` has no AbortSignal option,
42319
+ // so taking the signal would flip `signalAccepted` to true with nothing
42320
+ // reading it. Step-boundary gate first: #6305.
42305
42321
  run: () => createFullResponse(input, logger57),
42306
42322
  logger: logger57
42307
42323
  });
@@ -46250,7 +46266,7 @@ function buildVotingInput(plan, config) {
46250
46266
  }
46251
46267
  async function executeSingleVote(plan, config, log) {
46252
46268
  try {
46253
- const { executeVoting } = await import("./consensus-vote-2G4X4JVF.js");
46269
+ const { executeVoting } = await import("./consensus-vote-QMDRIAM7.js");
46254
46270
  const input = buildVotingInput(plan, config);
46255
46271
  const result = await executeVoting(input, log);
46256
46272
  return parseVotingResult(result);
@@ -48048,7 +48064,7 @@ ${contextBlock}`;
48048
48064
  const strategy = config.votingStrategy ?? "higher_order";
48049
48065
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
48050
48066
  try {
48051
- const { executeVoting } = await import("./consensus-vote-2G4X4JVF.js");
48067
+ const { executeVoting } = await import("./consensus-vote-QMDRIAM7.js");
48052
48068
  const votingResult = await executeVoting(
48053
48069
  {
48054
48070
  proposal: buildVoteProposal(plan, research),
@@ -49895,7 +49911,7 @@ function rollUpDecisionCost(voteResults, logger57) {
49895
49911
  }
49896
49912
  async function executePrReviewBody(input, logger57, opts = {}) {
49897
49913
  const start = Date.now();
49898
- const { gatewayAdapters: adapters, sanitization } = opts;
49914
+ const { gatewayAdapters: adapters, sanitization, signal } = opts;
49899
49915
  const panel = await preparePanelForReview(input, PR_REVIEW_ROLES, opts, logger57);
49900
49916
  const project = resolveAndLogVoterProject(input.project, logger57);
49901
49917
  const voteResults = await collectRealVotes({
@@ -49905,7 +49921,8 @@ async function executePrReviewBody(input, logger57, opts = {}) {
49905
49921
  logger: logger57,
49906
49922
  project: project.name,
49907
49923
  ...adapters !== void 0 && { gatewayAdapters: adapters },
49908
- ...panel.seats?.ok === true && { roleAdapters: panel.seats.seats }
49924
+ ...panel.seats?.ok === true && { roleAdapters: panel.seats.seats },
49925
+ signal
49909
49926
  });
49910
49927
  const reviews = voteResults.map(toPrReviewVote);
49911
49928
  const counts = summarizeReviews(reviews);
@@ -49960,9 +49977,14 @@ function makePrReviewHandler(gatewayAdapters) {
49960
49977
  toolName: "pr_review",
49961
49978
  input,
49962
49979
  freshJobId: () => `pr-${randomUUID13()}`,
49963
- run: () => executePrReviewBody(input, ctx.logger, {
49980
+ // #5393: arity 3. `runAsJob` derives `signalAccepted` from `run.length`,
49981
+ // so taking the signal is what makes the job record say cancellation
49982
+ // works — the claim follows the capability. The signal reaches
49983
+ // `collectRealVotes`, so `cancel_job` stops the seats not yet launched.
49984
+ run: (_jobId, _input, signal) => executePrReviewBody(input, ctx.logger, {
49964
49985
  ...adapterOpt,
49965
- sanitization: sanitizationViewOf(ctx)
49986
+ sanitization: sanitizationViewOf(ctx),
49987
+ signal
49966
49988
  }),
49967
49989
  logger: ctx.logger
49968
49990
  });
@@ -52609,6 +52631,9 @@ function dispatchAsyncDevPipeline(input, run, logger57) {
52609
52631
  toolName: "run_dev_pipeline",
52610
52632
  input,
52611
52633
  freshJobId: () => `dp-${randomUUID15()}`,
52634
+ // #5393: deliberately arity-0 — `runDevPipeline` has no AbortSignal
52635
+ // option, so taking the signal would flip `signalAccepted` to true with
52636
+ // nothing reading it. Stage-boundary gate first: #6305.
52612
52637
  run,
52613
52638
  logger: logger57
52614
52639
  });
@@ -52631,6 +52656,7 @@ function dispatchAsyncDevPipeline(input, run, logger57) {
52631
52656
  toolName: "run_dev_pipeline",
52632
52657
  input,
52633
52658
  freshJobId: () => sessionId,
52659
+ // #5393: deliberately arity-0 — same body as the keyless dispatch above; see #6305.
52634
52660
  run,
52635
52661
  logger: logger57
52636
52662
  });
@@ -52830,6 +52856,9 @@ async function runPipelineHandler(args, logger57, trustTier) {
52830
52856
  toolName: "run_pipeline",
52831
52857
  input,
52832
52858
  freshJobId: () => `rp-${randomUUID16()}`,
52859
+ // #5393: deliberately arity-0 — `runAdaptiveOrchestrator` has no
52860
+ // AbortSignal option, so taking the signal would flip `signalAccepted`
52861
+ // to true with nothing reading it. Stage-boundary gate first: #6305.
52833
52862
  run: () => executePipelineBody(task, stages, input.template, input.dryRun, simulated),
52834
52863
  logger: logger57
52835
52864
  });
@@ -53089,6 +53118,9 @@ async function runHandler(args, logger57, trustTier, gatewayAdapters) {
53089
53118
  toolName: "run",
53090
53119
  input,
53091
53120
  freshJobId: () => `rn-${randomUUID17()}`,
53121
+ // #5393: deliberately arity-0 — `executeGoal`'s strategy executors take
53122
+ // no AbortSignal, so taking the signal would flip `signalAccepted` to
53123
+ // true with nothing reading it. Executor-level gate first: #6305.
53092
53124
  run: () => executeRunBodyOrThrow(input, logger57, trustTier, gatewayAdapters),
53093
53125
  logger: logger57
53094
53126
  });
@@ -53490,7 +53522,7 @@ function toPanelVote(result, axes) {
53490
53522
  ...result.error !== void 0 && { errorMessage: result.error }
53491
53523
  };
53492
53524
  }
53493
- async function executeTradeoffPanelBody(input, logger57) {
53525
+ async function executeTradeoffPanelBody(input, logger57, signal) {
53494
53526
  const axes = input.axes ?? DEFAULT_AXES;
53495
53527
  const roles = input.quickMode ? QUICK_PANEL : FULL_PANEL;
53496
53528
  const start = Date.now();
@@ -53501,7 +53533,8 @@ async function executeTradeoffPanelBody(input, logger57) {
53501
53533
  proposal,
53502
53534
  simulate: input.simulate,
53503
53535
  logger: logger57,
53504
- project: project.name
53536
+ project: project.name,
53537
+ signal
53505
53538
  });
53506
53539
  const votes = voteResults.map((r) => toPanelVote(r, axes));
53507
53540
  const axisVerdicts = axes.map((a) => aggregateAxis(a, votes));
@@ -53542,7 +53575,9 @@ async function tradeoffPanelHandler(args, ctx) {
53542
53575
  toolName: "supply_chain_tradeoff_panel",
53543
53576
  input,
53544
53577
  freshJobId: () => `sc-${randomUUID18()}`,
53545
- run: () => executeTradeoffPanelBody(input, ctx.logger),
53578
+ // #5393: arity 3 — `runAsJob` derives `signalAccepted` from `run.length`.
53579
+ // The signal reaches `collectRealVotes`, so a cancel stops the un-launched seats.
53580
+ run: (_jobId, _input, signal) => executeTradeoffPanelBody(input, ctx.logger, signal),
53546
53581
  logger: ctx.logger
53547
53582
  });
53548
53583
  }
@@ -57242,4 +57277,4 @@ export {
57242
57277
  startPipelineEventBridge,
57243
57278
  shutdownPipelineEventBridge
57244
57279
  };
57245
- //# sourceMappingURL=chunk-GAEQEVSJ.js.map
57280
+ //# sourceMappingURL=chunk-Q3LSWYM5.js.map