nexus-agents 2.117.1 → 2.117.3

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.
@@ -40,7 +40,7 @@ import {
40
40
  } from "./chunk-CH7QIDHQ.js";
41
41
 
42
42
  // src/version.ts
43
- var VERSION = true ? "2.117.1" : "dev";
43
+ var VERSION = true ? "2.117.3" : "dev";
44
44
 
45
45
  // src/config/schemas-core.ts
46
46
  import { z } from "zod";
@@ -2099,7 +2099,7 @@ async function runDoctorFix(result) {
2099
2099
  writeLine2("\u2500".repeat(40));
2100
2100
  let fixCount = 0;
2101
2101
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2102
- const { runSetup } = await import("./setup-command-HZIEHUB7.js");
2102
+ const { runSetup } = await import("./setup-command-B7ROF5J3.js");
2103
2103
  const setupResult = runSetup({
2104
2104
  skipMcp: true,
2105
2105
  skipRules: true,
@@ -2211,4 +2211,4 @@ export {
2211
2211
  startStdioServer,
2212
2212
  closeServer
2213
2213
  };
2214
- //# sourceMappingURL=chunk-WHUPWMGD.js.map
2214
+ //# sourceMappingURL=chunk-KU7GX43O.js.map
@@ -8,7 +8,7 @@ import {
8
8
  checkSqlite,
9
9
  defaultConfig,
10
10
  initDataDirectories
11
- } from "./chunk-WHUPWMGD.js";
11
+ } from "./chunk-KU7GX43O.js";
12
12
  import {
13
13
  probeAllClis
14
14
  } from "./chunk-ONSYPTQV.js";
@@ -1987,4 +1987,4 @@ export {
1987
1987
  setupCommand,
1988
1988
  setupCommandAsync
1989
1989
  };
1990
- //# sourceMappingURL=chunk-PBGHWE2M.js.map
1990
+ //# sourceMappingURL=chunk-KY6UJGXP.js.map
@@ -115,7 +115,7 @@ import {
115
115
  DEFAULT_TASK_TTL_MS,
116
116
  DEFAULT_TOOL_RATE_LIMITS,
117
117
  clampTaskTtl
118
- } from "./chunk-WHUPWMGD.js";
118
+ } from "./chunk-KU7GX43O.js";
119
119
  import {
120
120
  resolveInsideRoot
121
121
  } from "./chunk-NUBSJGQZ.js";
@@ -40417,8 +40417,6 @@ var PIPELINE_STATE_KEYS = {
40417
40417
  QA_ITERATIONS: "qaIterations",
40418
40418
  SECURITY_PASSED: "securityPassed",
40419
40419
  FINDINGS: "findings",
40420
- SYNTHESIS: "synthesis",
40421
- DELIVERABLES: "deliverables",
40422
40420
  PARSED_SPEC: "parsedSpec",
40423
40421
  SCAFFOLD_OUTPUT: "scaffoldOutput",
40424
40422
  COMPLETED: "completed"
@@ -40429,7 +40427,11 @@ var logger33 = createLogger({ component: "pipeline-graph" });
40429
40427
  function compilePipelineGraph(template, stages) {
40430
40428
  const missing = findMissingStages(template, stages);
40431
40429
  if (missing.length > 0) {
40432
- return { ok: false, error: `Missing stage implementations: ${missing.join(", ")}` };
40430
+ const available = [...stages.keys()].sort().join(", ");
40431
+ return {
40432
+ ok: false,
40433
+ error: `Pipeline template '${template.id}' references stage(s) with no implementation in the selected registry: ${missing.join(", ")}. Available stages: ${available || "(none)"}. Pick a different \`template\` whose stages are all implemented, or implement the missing stage(s).`
40434
+ };
40433
40435
  }
40434
40436
  const builder = new GraphBuilder();
40435
40437
  registerStateFields(builder);
@@ -40463,8 +40465,6 @@ function registerStateFields(builder) {
40463
40465
  builder.addState(keys.QA_ITERATIONS, { defaultValue: 0, reducer: { type: "overwrite" } });
40464
40466
  builder.addState(keys.SECURITY_PASSED, { defaultValue: false, reducer: { type: "overwrite" } });
40465
40467
  builder.addState(keys.FINDINGS, { defaultValue: [], reducer: { type: "overwrite" } });
40466
- builder.addState(keys.SYNTHESIS, { defaultValue: null, reducer: { type: "overwrite" } });
40467
- builder.addState(keys.DELIVERABLES, { defaultValue: [], reducer: { type: "overwrite" } });
40468
40468
  builder.addState(keys.PARSED_SPEC, { defaultValue: null, reducer: { type: "overwrite" } });
40469
40469
  builder.addState(keys.SCAFFOLD_OUTPUT, { defaultValue: null, reducer: { type: "overwrite" } });
40470
40470
  builder.addState(keys.COMPLETED, { defaultValue: false, reducer: { type: "overwrite" } });
@@ -40596,12 +40596,6 @@ var DEV_PIPELINE_TEMPLATE = {
40596
40596
  stages: ["research", "plan", "vote", "decompose", "implement", "qa", "security"],
40597
40597
  dryRunStopAfter: "vote"
40598
40598
  };
40599
- var RESEARCH_PIPELINE_TEMPLATE = {
40600
- id: "research",
40601
- name: "Research Pipeline",
40602
- stages: ["decompose", "investigate", "synthesize", "vote", "scaffold"],
40603
- dryRunStopAfter: "vote"
40604
- };
40605
40599
  var AUDIT_PIPELINE_TEMPLATE = {
40606
40600
  id: "audit",
40607
40601
  name: "Security Audit Pipeline",
@@ -40631,7 +40625,12 @@ var GENERAL_PIPELINE_TEMPLATE = {
40631
40625
  };
40632
40626
  var PIPELINE_TEMPLATES = /* @__PURE__ */ new Map([
40633
40627
  ["dev", DEV_PIPELINE_TEMPLATE],
40634
- ["research", RESEARCH_PIPELINE_TEMPLATE],
40628
+ // The `research` template (decompose → investigate → synthesize → vote →
40629
+ // scaffold) was retired in #3488: `investigate`/`synthesize` had no stage
40630
+ // implementation and the order was incoherent, so it could never run.
40631
+ // Research-classified tasks fall back to `general`/`dev` (#3489), which
40632
+ // already cover research → plan → vote. The complete-but-unwired
40633
+ // `runResearchPipeline` subsystem (#1711) is a separate decision — see #3492.
40635
40634
  ["audit", AUDIT_PIPELINE_TEMPLATE],
40636
40635
  ["greenfield", GREENFIELD_PIPELINE_TEMPLATE],
40637
40636
  ["general", GENERAL_PIPELINE_TEMPLATE]
@@ -40870,7 +40869,7 @@ async function runAdaptiveOrchestrator(task, options) {
40870
40869
  }
40871
40870
  const templateId = options.templateId ?? classification.pipelineType;
40872
40871
  const selectionMethod = options.templateId !== void 0 ? "explicit" : "auto-detected";
40873
- const template = resolveTemplate(templateId);
40872
+ const template = ensureRunnableTemplate(resolveTemplate(templateId), options.stages);
40874
40873
  logger35.info("Adaptive orchestrator routing", {
40875
40874
  templateId: template.id,
40876
40875
  selectionMethod,
@@ -40881,14 +40880,40 @@ async function runAdaptiveOrchestrator(task, options) {
40881
40880
  const result = await runGraphPipeline(cleanTask, template, options.stages, options);
40882
40881
  return { ...result, selectionMethod, taskClassification: classification };
40883
40882
  }
40883
+ var RETIRED_TEMPLATE_ALIASES = { research: "general" };
40884
40884
  function resolveTemplate(templateId) {
40885
- const template = getTemplate(templateId);
40885
+ const resolvedId = RETIRED_TEMPLATE_ALIASES[templateId] ?? templateId;
40886
+ const template = getTemplate(resolvedId);
40886
40887
  if (template !== void 0) return template;
40887
40888
  logger35.warn("Unknown template, falling back to dev", { templateId });
40888
40889
  const fallback = PIPELINE_TEMPLATES.get("dev");
40889
40890
  if (fallback !== void 0) return fallback;
40890
40891
  return { id: "dev", name: "Development", stages: [] };
40891
40892
  }
40893
+ var RUNNABLE_FALLBACK_TEMPLATES = ["general", "dev"];
40894
+ function ensureRunnableTemplate(template, stages) {
40895
+ const missing = findMissingStages(template, stages);
40896
+ if (missing.length === 0) return template;
40897
+ for (const id of RUNNABLE_FALLBACK_TEMPLATES) {
40898
+ const candidate = PIPELINE_TEMPLATES.get(id);
40899
+ if (candidate !== void 0 && findMissingStages(candidate, stages).length === 0) {
40900
+ logger35.warn("Selected template is not runnable in this registry \u2014 falling back", {
40901
+ requested: template.id,
40902
+ missingStages: missing,
40903
+ fallback: id
40904
+ });
40905
+ return candidate;
40906
+ }
40907
+ }
40908
+ logger35.warn(
40909
+ "No runnable fallback template for this registry; compile will report missing stages",
40910
+ {
40911
+ requested: template.id,
40912
+ missingStages: missing
40913
+ }
40914
+ );
40915
+ return template;
40916
+ }
40892
40917
 
40893
40918
  // src/security/sarif-types.ts
40894
40919
  import { z as z86 } from "zod";
@@ -48872,7 +48897,6 @@ export {
48872
48897
  runGraphPipeline,
48873
48898
  extractStateValue,
48874
48899
  DEV_PIPELINE_TEMPLATE,
48875
- RESEARCH_PIPELINE_TEMPLATE,
48876
48900
  AUDIT_PIPELINE_TEMPLATE,
48877
48901
  GENERAL_PIPELINE_TEMPLATE,
48878
48902
  PIPELINE_TEMPLATES,
@@ -48935,4 +48959,4 @@ export {
48935
48959
  detectBackend,
48936
48960
  createTaskTracker
48937
48961
  };
48938
- //# sourceMappingURL=chunk-C4PE66KX.js.map
48962
+ //# sourceMappingURL=chunk-KZJHMSH6.js.map