nexus-agents 8.40.1 → 8.41.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.
Files changed (29) hide show
  1. package/dist/{chunk-R2RSCTDL.js → chunk-C25ILGJ6.js} +3 -3
  2. package/dist/{chunk-N2L2OOIR.js → chunk-FLRN74US.js} +2 -2
  3. package/dist/{chunk-W42LJQCX.js → chunk-IEQ2MJJ3.js} +2 -2
  4. package/dist/{chunk-3HVXE7IZ.js → chunk-L454YZK6.js} +3 -3
  5. package/dist/{chunk-VUKPI3WQ.js → chunk-QPPR7KQH.js} +3 -3
  6. package/dist/{chunk-3KRAFSYC.js → chunk-QWU7PEVK.js} +81 -45
  7. package/dist/chunk-QWU7PEVK.js.map +1 -0
  8. package/dist/{chunk-SHDBGUVD.js → chunk-RZ5YSYCB.js} +2 -2
  9. package/dist/{chunk-XIKVBZKG.js → chunk-SCIVDNY5.js} +11 -2
  10. package/dist/{chunk-XIKVBZKG.js.map → chunk-SCIVDNY5.js.map} +1 -1
  11. package/dist/cli.js +9 -9
  12. package/dist/{consensus-vote-ZLSBT2OX.js → consensus-vote-HZRHWXLS.js} +5 -5
  13. package/dist/{improvement-review-Z233JBED.js → improvement-review-23W6GCNG.js} +5 -5
  14. package/dist/index.d.ts +30 -1
  15. package/dist/index.js +8 -8
  16. package/dist/{issue-triage-WP4SOZWZ.js → issue-triage-RL6AMSBZ.js} +3 -3
  17. package/dist/{setup-data-dir-HYI2V7X2.js → setup-data-dir-EA4UT4CG.js} +3 -3
  18. package/package.json +1 -1
  19. package/dist/chunk-3KRAFSYC.js.map +0 -1
  20. /package/dist/{chunk-R2RSCTDL.js.map → chunk-C25ILGJ6.js.map} +0 -0
  21. /package/dist/{chunk-N2L2OOIR.js.map → chunk-FLRN74US.js.map} +0 -0
  22. /package/dist/{chunk-W42LJQCX.js.map → chunk-IEQ2MJJ3.js.map} +0 -0
  23. /package/dist/{chunk-3HVXE7IZ.js.map → chunk-L454YZK6.js.map} +0 -0
  24. /package/dist/{chunk-VUKPI3WQ.js.map → chunk-QPPR7KQH.js.map} +0 -0
  25. /package/dist/{chunk-SHDBGUVD.js.map → chunk-RZ5YSYCB.js.map} +0 -0
  26. /package/dist/{consensus-vote-ZLSBT2OX.js.map → consensus-vote-HZRHWXLS.js.map} +0 -0
  27. /package/dist/{improvement-review-Z233JBED.js.map → improvement-review-23W6GCNG.js.map} +0 -0
  28. /package/dist/{issue-triage-WP4SOZWZ.js.map → issue-triage-RL6AMSBZ.js.map} +0 -0
  29. /package/dist/{setup-data-dir-HYI2V7X2.js.map → setup-data-dir-EA4UT4CG.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-N2L2OOIR.js";
3
+ } from "./chunk-FLRN74US.js";
4
4
  import {
5
5
  emitClawGuardViolation
6
- } from "./chunk-XIKVBZKG.js";
6
+ } from "./chunk-SCIVDNY5.js";
7
7
  import {
8
8
  CACHE_TIMEOUTS,
9
9
  MCP_TIMEOUTS,
@@ -2306,4 +2306,4 @@ export {
2306
2306
  VOTING_THRESHOLDS,
2307
2307
  ConsensusMetricsSchema
2308
2308
  };
2309
- //# sourceMappingURL=chunk-R2RSCTDL.js.map
2309
+ //# sourceMappingURL=chunk-C25ILGJ6.js.map
@@ -1,6 +1,6 @@
1
1
  // src/version.ts
2
2
  import semver from "semver";
3
- var VERSION = true ? "8.40.1" : "dev";
3
+ var VERSION = true ? "8.41.0" : "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-N2L2OOIR.js.map
14
+ //# sourceMappingURL=chunk-FLRN74US.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-R2RSCTDL.js";
10
+ } from "./chunk-C25ILGJ6.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -2173,4 +2173,4 @@ export {
2173
2173
  runImprovementReview,
2174
2174
  registerImprovementReviewTool
2175
2175
  };
2176
- //# sourceMappingURL=chunk-W42LJQCX.js.map
2176
+ //# sourceMappingURL=chunk-IEQ2MJJ3.js.map
@@ -8,7 +8,7 @@ import {
8
8
  NODE_ENGINE_RANGE,
9
9
  VERSION,
10
10
  isNodeVersionSupported
11
- } from "./chunk-N2L2OOIR.js";
11
+ } from "./chunk-FLRN74US.js";
12
12
  import {
13
13
  capitalize
14
14
  } from "./chunk-7LP6VJRP.js";
@@ -1228,7 +1228,7 @@ async function runDoctorFix(result) {
1228
1228
  writeLine2("\u2500".repeat(40));
1229
1229
  let fixCount = 0;
1230
1230
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
1231
- const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-HYI2V7X2.js");
1231
+ const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-EA4UT4CG.js");
1232
1232
  const outcome = describeDataDirFix2(initDataDirectories2());
1233
1233
  writeLine2(outcome.line);
1234
1234
  if (outcome.counted) fixCount++;
@@ -1330,4 +1330,4 @@ export {
1330
1330
  startStdioServer,
1331
1331
  closeServer
1332
1332
  };
1333
- //# sourceMappingURL=chunk-3HVXE7IZ.js.map
1333
+ //# sourceMappingURL=chunk-L454YZK6.js.map
@@ -23,10 +23,10 @@ import {
23
23
  toolSuccessStructured,
24
24
  withProgressHeartbeat,
25
25
  wrapToolWithTimeout
26
- } from "./chunk-R2RSCTDL.js";
26
+ } from "./chunk-C25ILGJ6.js";
27
27
  import {
28
28
  VERSION
29
- } from "./chunk-N2L2OOIR.js";
29
+ } from "./chunk-FLRN74US.js";
30
30
  import {
31
31
  assessPanelIndependence,
32
32
  countDistinctModels,
@@ -7830,4 +7830,4 @@ export {
7830
7830
  CONSENSUS_VOTE_TOOL_SCHEMA,
7831
7831
  registerConsensusVoteTool
7832
7832
  };
7833
- //# sourceMappingURL=chunk-VUKPI3WQ.js.map
7833
+ //# sourceMappingURL=chunk-QPPR7KQH.js.map
@@ -21,7 +21,7 @@ import {
21
21
  import {
22
22
  DEFAULT_TASK_TTL_MS,
23
23
  clampTaskTtl
24
- } from "./chunk-3HVXE7IZ.js";
24
+ } from "./chunk-L454YZK6.js";
25
25
  import {
26
26
  executeExpert
27
27
  } from "./chunk-WBU27C3E.js";
@@ -55,7 +55,7 @@ import {
55
55
  toJobSummary,
56
56
  updateStage,
57
57
  writeJobCancelled
58
- } from "./chunk-VUKPI3WQ.js";
58
+ } from "./chunk-QPPR7KQH.js";
59
59
  import {
60
60
  allOf,
61
61
  anyOf
@@ -68,14 +68,14 @@ import {
68
68
  IssueTriage,
69
69
  createDurableAuditSink,
70
70
  createDurableAuditTrail
71
- } from "./chunk-SHDBGUVD.js";
71
+ } from "./chunk-RZ5YSYCB.js";
72
72
  import {
73
73
  resolveEnvMode,
74
74
  sanitizeInput
75
75
  } from "./chunk-KRD3OF3M.js";
76
76
  import {
77
77
  withPrerequisite
78
- } from "./chunk-W42LJQCX.js";
78
+ } from "./chunk-IEQ2MJJ3.js";
79
79
  import {
80
80
  NOOP_NOTIFIER,
81
81
  RateLimiter,
@@ -100,12 +100,12 @@ import {
100
100
  withAuditTrail,
101
101
  withProgressHeartbeat,
102
102
  wrapToolWithTimeout
103
- } from "./chunk-R2RSCTDL.js";
103
+ } from "./chunk-C25ILGJ6.js";
104
104
  import {
105
105
  createAuditTrail,
106
106
  createGraphAuditBridge,
107
107
  emitPipelinePolicyEvent
108
- } from "./chunk-XIKVBZKG.js";
108
+ } from "./chunk-SCIVDNY5.js";
109
109
  import {
110
110
  EventTopics,
111
111
  createEvent,
@@ -29730,6 +29730,15 @@ function emitNodeResults(ctx, results, options) {
29730
29730
  error: r.error ?? "unknown",
29731
29731
  timestamp: ts
29732
29732
  });
29733
+ } else if (r.status === "interrupted" || r.status === "skipped") {
29734
+ emit({
29735
+ type: "node_not_completed",
29736
+ nodeId: r.nodeId,
29737
+ stepNumber: ctx.stepsExecuted,
29738
+ reason: r.status,
29739
+ ...r.error !== void 0 ? { detail: r.error } : {},
29740
+ timestamp: ts
29741
+ });
29733
29742
  } else {
29734
29743
  const resultKeys = Object.keys(r.stateUpdates);
29735
29744
  emit({
@@ -29778,7 +29787,7 @@ function emitContextUnavailable(args, options) {
29778
29787
  timestamp: getTimeProvider().now()
29779
29788
  });
29780
29789
  }
29781
- function emitExecutionComplete(totalSteps, totalNodes, durationMs, options) {
29790
+ function emitExecutionComplete(totalSteps, totalNodes, durationMs, options, halted) {
29782
29791
  const emit = options?.onEvent;
29783
29792
  if (emit === void 0) return;
29784
29793
  emit({
@@ -29786,6 +29795,9 @@ function emitExecutionComplete(totalSteps, totalNodes, durationMs, options) {
29786
29795
  totalSteps,
29787
29796
  totalNodes,
29788
29797
  durationMs,
29798
+ // Omitted when the run genuinely finished, so an unpaused execution is
29799
+ // unchanged for every existing consumer.
29800
+ ...halted === true ? { halted: true } : {},
29789
29801
  timestamp: getTimeProvider().now()
29790
29802
  });
29791
29803
  }
@@ -30023,7 +30035,14 @@ async function executeGraph(graph, initialInputs, options) {
30023
30035
  stepsExecuted: ctx.stepsExecuted,
30024
30036
  durationMs: totalDurationMs
30025
30037
  });
30026
- emitExecutionComplete(ctx.stepsExecuted, ctx.allResults.length, totalDurationMs, options);
30038
+ const wasHalted = ctx.pendingInterrupt !== void 0;
30039
+ emitExecutionComplete(
30040
+ ctx.stepsExecuted,
30041
+ ctx.allResults.length,
30042
+ totalDurationMs,
30043
+ options,
30044
+ wasHalted
30045
+ );
30027
30046
  if (ctx.pendingInterrupt !== void 0) {
30028
30047
  const halted = saveInterruptCheckpoint(ctx, options);
30029
30048
  return ok({
@@ -41165,6 +41184,56 @@ function recordTriageOutcome(success, durationMs, errorMsg) {
41165
41184
  // src/mcp/tools/run-graph-workflow.ts
41166
41185
  import { z as z79 } from "zod";
41167
41186
  import { randomUUID as randomUUID11 } from "node:crypto";
41187
+
41188
+ // src/mcp/tools/run-graph-workflow-events.ts
41189
+ function isHookEvent(event) {
41190
+ return event.type === "hook_started" || event.type === "hook_completed" || event.type === "hook_failed";
41191
+ }
41192
+ function formatHookDetail(event) {
41193
+ const where = `${event.hookPhase}: ${event.hookName} on ${event.nodeId}`;
41194
+ switch (event.type) {
41195
+ case "hook_started":
41196
+ return where;
41197
+ case "hook_completed":
41198
+ return `${where} in ${String(event.durationMs)}ms`;
41199
+ case "hook_failed":
41200
+ return `${where}: ${event.error}`;
41201
+ }
41202
+ }
41203
+ function formatNotCompleted(event) {
41204
+ return `${event.nodeId} ${event.reason}${event.detail !== void 0 ? `: ${event.detail}` : ""}`;
41205
+ }
41206
+ function formatNodeDetail(event) {
41207
+ switch (event.type) {
41208
+ case "node_started":
41209
+ return `Starting ${event.nodeId}`;
41210
+ case "node_completed":
41211
+ return `${event.nodeId} in ${String(event.durationMs)}ms`;
41212
+ case "node_error":
41213
+ return `${event.nodeId}: ${event.error}`;
41214
+ case "node_not_completed":
41215
+ return formatNotCompleted(event);
41216
+ }
41217
+ }
41218
+ function isNodeEvent(event) {
41219
+ return event.type === "node_started" || event.type === "node_completed" || event.type === "node_error" || event.type === "node_not_completed";
41220
+ }
41221
+ function formatDetail(event) {
41222
+ if (isHookEvent(event)) return formatHookDetail(event);
41223
+ if (isNodeEvent(event)) return formatNodeDetail(event);
41224
+ switch (event.type) {
41225
+ case "step_completed":
41226
+ return `${String(event.nodesExecuted)} nodes`;
41227
+ case "execution_complete":
41228
+ return `${String(event.totalSteps)} steps, ${String(event.durationMs)}ms` + (event.halted === true ? " (HALTED \u2014 awaiting input, not finished)" : "");
41229
+ case "state_updated":
41230
+ return event.updatedKeys.join(", ");
41231
+ case "context_unavailable":
41232
+ return `Context unavailable for category '${event.category}': ${event.error}`;
41233
+ }
41234
+ }
41235
+
41236
+ // src/mcp/tools/run-graph-workflow.ts
41168
41237
  var RunGraphWorkflowInputSchema = z79.object({
41169
41238
  workflow: z79.string().min(1).max(100).describe("Name of the predefined graph workflow to execute"),
41170
41239
  inputs: z79.record(z79.string(), z79.unknown()).optional().default({}).describe("Input values for the workflow"),
@@ -41350,39 +41419,6 @@ function toEventSummary(event) {
41350
41419
  }
41351
41420
  return { type: event.type, detail: formatDetail(event) };
41352
41421
  }
41353
- function isHookEvent(event) {
41354
- return event.type === "hook_started" || event.type === "hook_completed" || event.type === "hook_failed";
41355
- }
41356
- function formatHookDetail(event) {
41357
- const where = `${event.hookPhase}: ${event.hookName} on ${event.nodeId}`;
41358
- switch (event.type) {
41359
- case "hook_started":
41360
- return where;
41361
- case "hook_completed":
41362
- return `${where} in ${String(event.durationMs)}ms`;
41363
- case "hook_failed":
41364
- return `${where}: ${event.error}`;
41365
- }
41366
- }
41367
- function formatDetail(event) {
41368
- if (isHookEvent(event)) return formatHookDetail(event);
41369
- switch (event.type) {
41370
- case "node_started":
41371
- return `Starting ${event.nodeId}`;
41372
- case "node_completed":
41373
- return `${event.nodeId} in ${String(event.durationMs)}ms`;
41374
- case "node_error":
41375
- return `${event.nodeId}: ${event.error}`;
41376
- case "step_completed":
41377
- return `${String(event.nodesExecuted)} nodes`;
41378
- case "execution_complete":
41379
- return `${String(event.totalSteps)} steps, ${String(event.durationMs)}ms`;
41380
- case "state_updated":
41381
- return event.updatedKeys.join(", ");
41382
- case "context_unavailable":
41383
- return `Context unavailable for category '${event.category}': ${event.error}`;
41384
- }
41385
- }
41386
41422
  function createErrorResponse(opts) {
41387
41423
  return {
41388
41424
  workflow: opts.workflow,
@@ -45497,7 +45533,7 @@ async function tryIssueTriage(task) {
45497
45533
  try {
45498
45534
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
45499
45535
  if (issueMatch === null) return null;
45500
- const { createIssueTriage } = await import("./issue-triage-WP4SOZWZ.js");
45536
+ const { createIssueTriage } = await import("./issue-triage-RL6AMSBZ.js");
45501
45537
  const triage = createIssueTriage();
45502
45538
  const owner = issueMatch[1] ?? "";
45503
45539
  const num = issueMatch[2] ?? "";
@@ -45899,7 +45935,7 @@ function buildVotingInput(plan, config) {
45899
45935
  }
45900
45936
  async function executeSingleVote(plan, config, log) {
45901
45937
  try {
45902
- const { executeVoting } = await import("./consensus-vote-ZLSBT2OX.js");
45938
+ const { executeVoting } = await import("./consensus-vote-HZRHWXLS.js");
45903
45939
  const input = buildVotingInput(plan, config);
45904
45940
  const result = await executeVoting(input, log);
45905
45941
  return parseVotingResult(result);
@@ -47691,7 +47727,7 @@ ${contextBlock}`;
47691
47727
  const strategy = config.votingStrategy ?? "higher_order";
47692
47728
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
47693
47729
  try {
47694
- const { executeVoting } = await import("./consensus-vote-ZLSBT2OX.js");
47730
+ const { executeVoting } = await import("./consensus-vote-HZRHWXLS.js");
47695
47731
  const votingResult = await executeVoting(
47696
47732
  {
47697
47733
  proposal: buildVoteProposal(plan, research),
@@ -56372,4 +56408,4 @@ export {
56372
56408
  startPipelineEventBridge,
56373
56409
  shutdownPipelineEventBridge
56374
56410
  };
56375
- //# sourceMappingURL=chunk-3KRAFSYC.js.map
56411
+ //# sourceMappingURL=chunk-QWU7PEVK.js.map