nexus-agents 2.75.1 → 2.77.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 (100) hide show
  1. package/dist/{adaptive-memory-OJY3IVNM.js → adaptive-memory-EI564K4C.js} +3 -3
  2. package/dist/{child-mcp-config-KMCKKPNY.js → child-mcp-config-MJMUF7TL.js} +2 -2
  3. package/dist/{chunk-Q3RFPJYK.js → chunk-3MRM53T4.js} +8 -2
  4. package/dist/{chunk-Q3RFPJYK.js.map → chunk-3MRM53T4.js.map} +1 -1
  5. package/dist/{chunk-EQHYXT56.js → chunk-3VWMM6UF.js} +2 -2
  6. package/dist/{chunk-QON7LR7J.js → chunk-5WHWKY32.js} +2 -2
  7. package/dist/{chunk-3SZBDLFX.js → chunk-6AY5DK4E.js} +3 -3
  8. package/dist/{chunk-PAFH336F.js → chunk-7NK7BTWP.js} +2 -2
  9. package/dist/{chunk-3ESCBV47.js → chunk-BJ2OMC7P.js} +2 -2
  10. package/dist/{chunk-Q6JDV36D.js → chunk-C2LLQ6TW.js} +3 -3
  11. package/dist/{chunk-DGELGUZF.js → chunk-CM3TORGV.js} +2 -2
  12. package/dist/{chunk-T5VPZZYX.js → chunk-CPPZCNAS.js} +135 -30
  13. package/dist/chunk-CPPZCNAS.js.map +1 -0
  14. package/dist/{chunk-4K6L7RKC.js → chunk-DIB6V67T.js} +3 -3
  15. package/dist/{chunk-44MVIL3F.js → chunk-DSQ5XM4O.js} +4 -4
  16. package/dist/{chunk-VJD5LANR.js → chunk-ERWXGXV2.js} +3 -3
  17. package/dist/{chunk-BK54O5J5.js → chunk-G6ZPVADX.js} +2 -2
  18. package/dist/{chunk-NQR7QAZX.js → chunk-IPWCD22D.js} +2 -2
  19. package/dist/{chunk-Q7FTNKPO.js → chunk-JN6UWGHH.js} +62 -28
  20. package/dist/chunk-JN6UWGHH.js.map +1 -0
  21. package/dist/{chunk-5LHKTF5L.js → chunk-KYCZCROX.js} +4 -4
  22. package/dist/{chunk-2SVS5WRV.js → chunk-MGLWPN2I.js} +2 -2
  23. package/dist/{chunk-S6LQJZY4.js → chunk-N2QNLBS5.js} +7 -7
  24. package/dist/{chunk-TBRNRW2Q.js → chunk-PWTJGGKB.js} +2 -2
  25. package/dist/{chunk-MKIYBAGV.js → chunk-T3LEOO3A.js} +25 -25
  26. package/dist/{chunk-NC2LECY6.js → chunk-VEF6DCQU.js} +3 -3
  27. package/dist/{chunk-UWJKMBPL.js → chunk-X3BU5MIG.js} +6 -6
  28. package/dist/{chunk-G5VE2DZS.js → chunk-YJ2IGAD2.js} +2 -2
  29. package/dist/{chunk-GS3GW7C7.js → chunk-YQMQSJQK.js} +2 -2
  30. package/dist/{chunk-CCODJRS6.js → chunk-ZKOBXAPK.js} +2 -2
  31. package/dist/{cli-circuit-breaker-STXIH563.js → cli-circuit-breaker-YX4BWZD5.js} +4 -4
  32. package/dist/cli.js +33 -31
  33. package/dist/cli.js.map +1 -1
  34. package/dist/{composite-router-7AHZN3VI.js → composite-router-S6E26BCI.js} +2 -2
  35. package/dist/{consensus-vote-XY55C7WQ.js → consensus-vote-UR3JU7RI.js} +11 -11
  36. package/dist/{doctor-deep-ONHJTGR4.js → doctor-deep-BRU5ZUJI.js} +3 -3
  37. package/dist/{expert-bridge-3AWQHR65.js → expert-bridge-DWBO2HXZ.js} +3 -3
  38. package/dist/{factory-E5NMAMZC.js → factory-A7DTCCUY.js} +5 -5
  39. package/dist/{factory-HWHQ44BB.js → factory-LXOVC44K.js} +4 -4
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js +22 -22
  42. package/dist/{init-opencode-Z7OQ5RCB.js → init-opencode-CFE7M6XA.js} +25 -5
  43. package/dist/init-opencode-CFE7M6XA.js.map +1 -0
  44. package/dist/{issue-triage-UWBHMQHC.js → issue-triage-6XD6CVPB.js} +4 -4
  45. package/dist/{mobimem-G4UXJTCV.js → mobimem-CG2MNS7V.js} +2 -2
  46. package/dist/{registry-command-HYWVRAHE.js → registry-command-RPPC7N2K.js} +2 -2
  47. package/dist/{repo-security-plan-W35CXK3T.js → repo-security-plan-EIL2BV3S.js} +3 -3
  48. package/dist/{research-helpers-synthesize-GUQORWL4.js → research-helpers-synthesize-36TUTUUA.js} +5 -3
  49. package/dist/{routing-memory-VOJBOX3X.js → routing-memory-5VTX7LQX.js} +2 -2
  50. package/dist/{session-memory-B6LQMF4N.js → session-memory-7XBV6BMY.js} +3 -3
  51. package/dist/{setup-command-KP3QVBEW.js → setup-command-JE5VMKGI.js} +9 -9
  52. package/dist/{setup-config-53MHJA7S.js → setup-config-EI5KROA3.js} +3 -3
  53. package/dist/{setup-custom-api-VD5W754A.js → setup-custom-api-WM5W5AY5.js} +4 -4
  54. package/dist/{weather-report-APASTJDQ.js → weather-report-YJMVKJGA.js} +2 -2
  55. package/package.json +1 -1
  56. package/dist/chunk-Q7FTNKPO.js.map +0 -1
  57. package/dist/chunk-T5VPZZYX.js.map +0 -1
  58. package/dist/init-opencode-Z7OQ5RCB.js.map +0 -1
  59. /package/dist/{adaptive-memory-OJY3IVNM.js.map → adaptive-memory-EI564K4C.js.map} +0 -0
  60. /package/dist/{child-mcp-config-KMCKKPNY.js.map → child-mcp-config-MJMUF7TL.js.map} +0 -0
  61. /package/dist/{chunk-EQHYXT56.js.map → chunk-3VWMM6UF.js.map} +0 -0
  62. /package/dist/{chunk-QON7LR7J.js.map → chunk-5WHWKY32.js.map} +0 -0
  63. /package/dist/{chunk-3SZBDLFX.js.map → chunk-6AY5DK4E.js.map} +0 -0
  64. /package/dist/{chunk-PAFH336F.js.map → chunk-7NK7BTWP.js.map} +0 -0
  65. /package/dist/{chunk-3ESCBV47.js.map → chunk-BJ2OMC7P.js.map} +0 -0
  66. /package/dist/{chunk-Q6JDV36D.js.map → chunk-C2LLQ6TW.js.map} +0 -0
  67. /package/dist/{chunk-DGELGUZF.js.map → chunk-CM3TORGV.js.map} +0 -0
  68. /package/dist/{chunk-4K6L7RKC.js.map → chunk-DIB6V67T.js.map} +0 -0
  69. /package/dist/{chunk-44MVIL3F.js.map → chunk-DSQ5XM4O.js.map} +0 -0
  70. /package/dist/{chunk-VJD5LANR.js.map → chunk-ERWXGXV2.js.map} +0 -0
  71. /package/dist/{chunk-BK54O5J5.js.map → chunk-G6ZPVADX.js.map} +0 -0
  72. /package/dist/{chunk-NQR7QAZX.js.map → chunk-IPWCD22D.js.map} +0 -0
  73. /package/dist/{chunk-5LHKTF5L.js.map → chunk-KYCZCROX.js.map} +0 -0
  74. /package/dist/{chunk-2SVS5WRV.js.map → chunk-MGLWPN2I.js.map} +0 -0
  75. /package/dist/{chunk-S6LQJZY4.js.map → chunk-N2QNLBS5.js.map} +0 -0
  76. /package/dist/{chunk-TBRNRW2Q.js.map → chunk-PWTJGGKB.js.map} +0 -0
  77. /package/dist/{chunk-MKIYBAGV.js.map → chunk-T3LEOO3A.js.map} +0 -0
  78. /package/dist/{chunk-NC2LECY6.js.map → chunk-VEF6DCQU.js.map} +0 -0
  79. /package/dist/{chunk-UWJKMBPL.js.map → chunk-X3BU5MIG.js.map} +0 -0
  80. /package/dist/{chunk-G5VE2DZS.js.map → chunk-YJ2IGAD2.js.map} +0 -0
  81. /package/dist/{chunk-GS3GW7C7.js.map → chunk-YQMQSJQK.js.map} +0 -0
  82. /package/dist/{chunk-CCODJRS6.js.map → chunk-ZKOBXAPK.js.map} +0 -0
  83. /package/dist/{cli-circuit-breaker-STXIH563.js.map → cli-circuit-breaker-YX4BWZD5.js.map} +0 -0
  84. /package/dist/{composite-router-7AHZN3VI.js.map → composite-router-S6E26BCI.js.map} +0 -0
  85. /package/dist/{consensus-vote-XY55C7WQ.js.map → consensus-vote-UR3JU7RI.js.map} +0 -0
  86. /package/dist/{doctor-deep-ONHJTGR4.js.map → doctor-deep-BRU5ZUJI.js.map} +0 -0
  87. /package/dist/{expert-bridge-3AWQHR65.js.map → expert-bridge-DWBO2HXZ.js.map} +0 -0
  88. /package/dist/{factory-E5NMAMZC.js.map → factory-A7DTCCUY.js.map} +0 -0
  89. /package/dist/{factory-HWHQ44BB.js.map → factory-LXOVC44K.js.map} +0 -0
  90. /package/dist/{issue-triage-UWBHMQHC.js.map → issue-triage-6XD6CVPB.js.map} +0 -0
  91. /package/dist/{mobimem-G4UXJTCV.js.map → mobimem-CG2MNS7V.js.map} +0 -0
  92. /package/dist/{registry-command-HYWVRAHE.js.map → registry-command-RPPC7N2K.js.map} +0 -0
  93. /package/dist/{repo-security-plan-W35CXK3T.js.map → repo-security-plan-EIL2BV3S.js.map} +0 -0
  94. /package/dist/{research-helpers-synthesize-GUQORWL4.js.map → research-helpers-synthesize-36TUTUUA.js.map} +0 -0
  95. /package/dist/{routing-memory-VOJBOX3X.js.map → routing-memory-5VTX7LQX.js.map} +0 -0
  96. /package/dist/{session-memory-B6LQMF4N.js.map → session-memory-7XBV6BMY.js.map} +0 -0
  97. /package/dist/{setup-command-KP3QVBEW.js.map → setup-command-JE5VMKGI.js.map} +0 -0
  98. /package/dist/{setup-config-53MHJA7S.js.map → setup-config-EI5KROA3.js.map} +0 -0
  99. /package/dist/{setup-custom-api-VD5W754A.js.map → setup-custom-api-WM5W5AY5.js.map} +0 -0
  100. /package/dist/{weather-report-APASTJDQ.js.map → weather-report-YJMVKJGA.js.map} +0 -0
@@ -4,10 +4,10 @@ import {
4
4
  import {
5
5
  getTokenEnvVars,
6
6
  resolveToken
7
- } from "./chunk-2SVS5WRV.js";
7
+ } from "./chunk-MGLWPN2I.js";
8
8
  import {
9
9
  executeExpert
10
- } from "./chunk-UWJKMBPL.js";
10
+ } from "./chunk-X3BU5MIG.js";
11
11
  import {
12
12
  DEFAULT_RELEVANCE_CONFIG,
13
13
  EventTopics,
@@ -37,7 +37,7 @@ import {
37
37
  withAccessPolicy,
38
38
  withProgressHeartbeat,
39
39
  wrapToolWithTimeout
40
- } from "./chunk-T5VPZZYX.js";
40
+ } from "./chunk-CPPZCNAS.js";
41
41
  import {
42
42
  REGISTRY_PATH,
43
43
  getProjectRoot,
@@ -46,14 +46,14 @@ import {
46
46
  normalizeTopicToCanonical,
47
47
  savePapersRegistry,
48
48
  synthesizeResearch
49
- } from "./chunk-Q7FTNKPO.js";
49
+ } from "./chunk-JN6UWGHH.js";
50
50
  import {
51
51
  IssueTriage,
52
52
  sanitizeInput
53
- } from "./chunk-VJD5LANR.js";
53
+ } from "./chunk-ERWXGXV2.js";
54
54
  import {
55
55
  generateSecurityPlan
56
- } from "./chunk-CCODJRS6.js";
56
+ } from "./chunk-ZKOBXAPK.js";
57
57
  import {
58
58
  analyzeGitHubRepo
59
59
  } from "./chunk-BC3M4VLP.js";
@@ -70,10 +70,10 @@ import {
70
70
  clampTaskTtl,
71
71
  getAvailabilityCache,
72
72
  resolveFallback
73
- } from "./chunk-S6LQJZY4.js";
73
+ } from "./chunk-N2QNLBS5.js";
74
74
  import {
75
75
  DEFAULTS
76
- } from "./chunk-GS3GW7C7.js";
76
+ } from "./chunk-YQMQSJQK.js";
77
77
  import {
78
78
  resolveInsideRoot
79
79
  } from "./chunk-NUBSJGQZ.js";
@@ -84,7 +84,7 @@ import {
84
84
  getAvailableClis,
85
85
  sleep,
86
86
  withTimeout
87
- } from "./chunk-NC2LECY6.js";
87
+ } from "./chunk-VEF6DCQU.js";
88
88
  import {
89
89
  BUILT_IN_EXPERTS,
90
90
  BuiltInExpertTypeSchema,
@@ -93,11 +93,11 @@ import {
93
93
  } from "./chunk-ZM4O442V.js";
94
94
  import {
95
95
  createSessionMemory
96
- } from "./chunk-EQHYXT56.js";
96
+ } from "./chunk-3VWMM6UF.js";
97
97
  import {
98
98
  MemoryImportance,
99
99
  calculateTextJaccardSimilarity
100
- } from "./chunk-3ESCBV47.js";
100
+ } from "./chunk-BJ2OMC7P.js";
101
101
  import {
102
102
  STOPWORDS,
103
103
  capitalizeWords,
@@ -172,7 +172,7 @@ import {
172
172
  resolveModelIdentitySync,
173
173
  toExpertTaskAnalysisResult,
174
174
  withStep
175
- } from "./chunk-Q3RFPJYK.js";
175
+ } from "./chunk-3MRM53T4.js";
176
176
  import {
177
177
  getNexusDataDir,
178
178
  nexusDataPath
@@ -41772,7 +41772,7 @@ async function tryIssueTriage(task) {
41772
41772
  try {
41773
41773
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
41774
41774
  if (issueMatch === null) return null;
41775
- const { createIssueTriage } = await import("./issue-triage-UWBHMQHC.js");
41775
+ const { createIssueTriage } = await import("./issue-triage-6XD6CVPB.js");
41776
41776
  const triage = createIssueTriage();
41777
41777
  const owner = issueMatch[1] ?? "";
41778
41778
  const num = issueMatch[2] ?? "";
@@ -41800,7 +41800,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
41800
41800
  ]);
41801
41801
  async function classifyWithLLM(task) {
41802
41802
  try {
41803
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-3AWQHR65.js");
41803
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-DWBO2HXZ.js");
41804
41804
  const prompt = [
41805
41805
  "Classify this task into exactly one pipeline template.",
41806
41806
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -42592,7 +42592,7 @@ var memoryInitPromise = null;
42592
42592
  async function initPipelineMemory() {
42593
42593
  if (cachedMemory !== null) return cachedMemory;
42594
42594
  try {
42595
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-B6LQMF4N.js");
42595
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-7XBV6BMY.js");
42596
42596
  const { getLearningDir } = await import("./learning-persistence-N6ILD2HX.js");
42597
42597
  const mem = createSessionMemory2(getLearningDir());
42598
42598
  mem.startSession(`pipeline-${String(Date.now())}`);
@@ -42644,7 +42644,7 @@ async function persistMobiMemState() {
42644
42644
  const { isPersistenceEnabled } = await import("./learning-persistence-N6ILD2HX.js");
42645
42645
  if (!isPersistenceEnabled()) return;
42646
42646
  const { nexusDataPath: nexusDataPath2 } = await import("./nexus-data-dir-77UO7N6J.js");
42647
- const { createMobiMem } = await import("./mobimem-G4UXJTCV.js");
42647
+ const { createMobiMem } = await import("./mobimem-CG2MNS7V.js");
42648
42648
  const mobimem = createMobiMem();
42649
42649
  const savePath = nexusDataPath2("memory", "mobimem-state.json");
42650
42650
  await mobimem.save(savePath);
@@ -42661,7 +42661,7 @@ function recordRoutingExperience(category, success, durationMs) {
42661
42661
  callRecord(routingMemoryCache);
42662
42662
  return;
42663
42663
  }
42664
- void import("./routing-memory-VOJBOX3X.js").then(({ createRoutingMemory }) => {
42664
+ void import("./routing-memory-5VTX7LQX.js").then(({ createRoutingMemory }) => {
42665
42665
  routingMemoryCache = createRoutingMemory();
42666
42666
  callRecord(routingMemoryCache);
42667
42667
  }).catch((error) => {
@@ -42690,7 +42690,7 @@ ${text}` : "";
42690
42690
  }
42691
42691
  async function getWeatherContext() {
42692
42692
  try {
42693
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-APASTJDQ.js");
42693
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-YJMVKJGA.js");
42694
42694
  const report = generateWeatherReport2({ includeAdaptive: true });
42695
42695
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
42696
42696
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -42707,7 +42707,7 @@ ${lines}
42707
42707
  }
42708
42708
  async function getMemoryContext(task) {
42709
42709
  try {
42710
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-B6LQMF4N.js");
42710
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-7XBV6BMY.js");
42711
42711
  const { getLearningDir } = await import("./learning-persistence-N6ILD2HX.js");
42712
42712
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
42713
42713
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -42800,7 +42800,7 @@ ${contextBlock}`;
42800
42800
  const strategy = config.votingStrategy ?? "higher_order";
42801
42801
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
42802
42802
  try {
42803
- const { executeVoting } = await import("./consensus-vote-XY55C7WQ.js");
42803
+ const { executeVoting } = await import("./consensus-vote-UR3JU7RI.js");
42804
42804
  const votingResult = await executeVoting(
42805
42805
  {
42806
42806
  proposal: plan.slice(0, 4e3),
@@ -43665,7 +43665,7 @@ async function extractSymbolsForTask(task) {
43665
43665
  }
43666
43666
  async function retrieveAdaptiveMemory(task) {
43667
43667
  try {
43668
- const { AdaptiveMemoryBackend } = await import("./adaptive-memory-OJY3IVNM.js");
43668
+ const { AdaptiveMemoryBackend } = await import("./adaptive-memory-EI564K4C.js");
43669
43669
  const path14 = await import("path");
43670
43670
  const { nexusDataPath: nexusDataPath2 } = await import("./nexus-data-dir-77UO7N6J.js");
43671
43671
  const baseDir = nexusDataPath2("memory");
@@ -43684,7 +43684,7 @@ async function retrieveAdaptiveMemory(task) {
43684
43684
  }
43685
43685
  async function queryResearchRegistry(task) {
43686
43686
  try {
43687
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-GUQORWL4.js");
43687
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-36TUTUUA.js");
43688
43688
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
43689
43689
  if (topic === void 0) return null;
43690
43690
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -43769,7 +43769,7 @@ function createScanStageWrapper() {
43769
43769
  try {
43770
43770
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
43771
43771
  if (slug !== void 0) {
43772
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-W35CXK3T.js");
43772
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-EIL2BV3S.js");
43773
43773
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
43774
43774
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
43775
43775
  ctx.sharedMemory.write("scan", "decision", { recommendations: recs });
@@ -49303,7 +49303,7 @@ var GitHubTaskTracker = class {
49303
49303
  cachedProvider = null;
49304
49304
  async getProvider() {
49305
49305
  if (this.cachedProvider !== null) return this.cachedProvider;
49306
- const { createScmProvider } = await import("./factory-E5NMAMZC.js");
49306
+ const { createScmProvider } = await import("./factory-A7DTCCUY.js");
49307
49307
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
49308
49308
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
49309
49309
  this.cachedProvider = result.value;
@@ -50007,4 +50007,4 @@ export {
50007
50007
  detectBackend,
50008
50008
  createTaskTracker
50009
50009
  };
50010
- //# sourceMappingURL=chunk-MKIYBAGV.js.map
50010
+ //# sourceMappingURL=chunk-T3LEOO3A.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CliCircuitBreaker,
3
3
  DEFAULT_CIRCUIT_BREAKER_CONFIG
4
- } from "./chunk-TBRNRW2Q.js";
4
+ } from "./chunk-PWTJGGKB.js";
5
5
  import {
6
6
  CLI_SUBPROCESS_TIMEOUTS,
7
7
  CLI_TIMEOUTS,
@@ -24,7 +24,7 @@ import {
24
24
  getTimeProvider,
25
25
  isRateLimitText,
26
26
  ok
27
- } from "./chunk-Q3RFPJYK.js";
27
+ } from "./chunk-3MRM53T4.js";
28
28
 
29
29
  // src/cli-adapters/subprocess-adapter.ts
30
30
  import { spawn } from "child_process";
@@ -2869,4 +2869,4 @@ export {
2869
2869
  isCliAvailable,
2870
2870
  getAvailableClis
2871
2871
  };
2872
- //# sourceMappingURL=chunk-NC2LECY6.js.map
2872
+ //# sourceMappingURL=chunk-VEF6DCQU.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createLogger,
3
3
  getTimeProvider,
4
4
  isRateLimitText
5
- } from "./chunk-Q3RFPJYK.js";
5
+ } from "./chunk-3MRM53T4.js";
6
6
 
7
7
  // src/pipeline/expert-bridge.ts
8
8
  var logger = createLogger({ component: "expert-bridge" });
@@ -12,7 +12,7 @@ var cachedMcpConfigPath = null;
12
12
  async function getMcpConfigPath() {
13
13
  if (cachedMcpConfigPath !== null) return cachedMcpConfigPath;
14
14
  try {
15
- const { generateMcpConfig } = await import("./child-mcp-config-KMCKKPNY.js");
15
+ const { generateMcpConfig } = await import("./child-mcp-config-MJMUF7TL.js");
16
16
  const config = await generateMcpConfig();
17
17
  cachedMcpConfigPath = config.configPath;
18
18
  return cachedMcpConfigPath;
@@ -38,13 +38,13 @@ function adaptCompositeRouter(compositeRouter) {
38
38
  }
39
39
  async function getRouter() {
40
40
  if (cachedRouter !== null) return cachedRouter;
41
- const { createAllAdapters } = await import("./factory-HWHQ44BB.js");
42
- const { createCompositeRouter } = await import("./composite-router-7AHZN3VI.js");
41
+ const { createAllAdapters } = await import("./factory-LXOVC44K.js");
42
+ const { createCompositeRouter } = await import("./composite-router-S6E26BCI.js");
43
43
  const adapters = createAllAdapters();
44
44
  if (adapters.size === 0) return null;
45
45
  cachedRouter = adaptCompositeRouter(createCompositeRouter(adapters));
46
46
  try {
47
- const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-STXIH563.js");
47
+ const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-YX4BWZD5.js");
48
48
  cachedCircuitBreaker = createCliCircuitBreakerIntegration([...adapters.values()]);
49
49
  } catch (error) {
50
50
  const msg = error instanceof Error ? error.message : String(error);
@@ -136,4 +136,4 @@ ${prompt}`;
136
136
  export {
137
137
  executeExpert
138
138
  };
139
- //# sourceMappingURL=chunk-UWJKMBPL.js.map
139
+ //# sourceMappingURL=chunk-X3BU5MIG.js.map
@@ -2,7 +2,7 @@ import {
2
2
  TASK_CATEGORIES,
3
3
  getAdaptiveBonus,
4
4
  getOutcomeStore
5
- } from "./chunk-Q3RFPJYK.js";
5
+ } from "./chunk-3MRM53T4.js";
6
6
 
7
7
  // src/cli/doctor-deep.ts
8
8
  var CLI_NAMES = ["claude", "gemini", "codex", "opencode"];
@@ -106,4 +106,4 @@ export {
106
106
  runDeepDiagnostics,
107
107
  formatDeepDiagnostics
108
108
  };
109
- //# sourceMappingURL=chunk-G5VE2DZS.js.map
109
+ //# sourceMappingURL=chunk-YJ2IGAD2.js.map
@@ -5,7 +5,7 @@ import {
5
5
  MCP_TIMEOUTS,
6
6
  TEST_TIMEOUTS,
7
7
  WORKFLOW_TIMEOUTS
8
- } from "./chunk-Q3RFPJYK.js";
8
+ } from "./chunk-3MRM53T4.js";
9
9
 
10
10
  // src/config/defaults-env.ts
11
11
  function parseIntEnv(envKey, fallback) {
@@ -399,4 +399,4 @@ export {
399
399
  CUSTOM_API_DEFAULT_MODEL,
400
400
  DEFAULTS
401
401
  };
402
- //# sourceMappingURL=chunk-GS3GW7C7.js.map
402
+ //# sourceMappingURL=chunk-YQMQSJQK.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  createLogger,
6
6
  getTimeProvider
7
- } from "./chunk-Q3RFPJYK.js";
7
+ } from "./chunk-3MRM53T4.js";
8
8
 
9
9
  // src/mcp/tools/scanner-registry-fetcher.ts
10
10
  import { z } from "zod";
@@ -698,4 +698,4 @@ export {
698
698
  generateSecurityPlan,
699
699
  buildPlanFromAnalysis
700
700
  };
701
- //# sourceMappingURL=chunk-CCODJRS6.js.map
701
+ //# sourceMappingURL=chunk-ZKOBXAPK.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CliCircuitBreakerIntegration,
3
3
  createCliCircuitBreakerIntegration
4
- } from "./chunk-3SZBDLFX.js";
5
- import "./chunk-TBRNRW2Q.js";
6
- import "./chunk-Q3RFPJYK.js";
4
+ } from "./chunk-6AY5DK4E.js";
5
+ import "./chunk-PWTJGGKB.js";
6
+ import "./chunk-3MRM53T4.js";
7
7
  import "./chunk-I7ORMAO7.js";
8
8
  import "./chunk-GOT7OAL5.js";
9
9
  import "./chunk-UP2VWCW5.js";
@@ -11,4 +11,4 @@ export {
11
11
  CliCircuitBreakerIntegration,
12
12
  createCliCircuitBreakerIntegration
13
13
  };
14
- //# sourceMappingURL=cli-circuit-breaker-STXIH563.js.map
14
+ //# sourceMappingURL=cli-circuit-breaker-YX4BWZD5.js.map
package/dist/cli.js CHANGED
@@ -12,18 +12,18 @@ import {
12
12
  parseFindings,
13
13
  sumFindings
14
14
  } from "./chunk-6E3NMMEY.js";
15
- import "./chunk-G5VE2DZS.js";
15
+ import "./chunk-YJ2IGAD2.js";
16
16
  import {
17
17
  buildOpenAICompatAdapters,
18
18
  loadUsageEvents,
19
19
  readOpenAICompatEnv,
20
20
  rollupByModel
21
- } from "./chunk-Q6JDV36D.js";
21
+ } from "./chunk-C2LLQ6TW.js";
22
22
  import {
23
23
  setupCommandAsync,
24
24
  verifyCommand
25
- } from "./chunk-5LHKTF5L.js";
26
- import "./chunk-DGELGUZF.js";
25
+ } from "./chunk-KYCZCROX.js";
26
+ import "./chunk-CM3TORGV.js";
27
27
  import {
28
28
  AuthHandler,
29
29
  DEFAULT_EXPERTS,
@@ -152,17 +152,17 @@ import {
152
152
  validateCommand,
153
153
  validateWorkflow,
154
154
  wrapInMarkdownFence
155
- } from "./chunk-MKIYBAGV.js";
155
+ } from "./chunk-T3LEOO3A.js";
156
156
  import "./chunk-ED6VQWNG.js";
157
157
  import {
158
158
  resolveToken
159
- } from "./chunk-2SVS5WRV.js";
159
+ } from "./chunk-MGLWPN2I.js";
160
160
  import {
161
161
  CATEGORY_DISPLAY_NAMES,
162
162
  DEFAULT_PR_REVIEW_CONFIG
163
163
  } from "./chunk-X2M7OF27.js";
164
- import "./chunk-4K6L7RKC.js";
165
- import "./chunk-UWJKMBPL.js";
164
+ import "./chunk-DIB6V67T.js";
165
+ import "./chunk-X3BU5MIG.js";
166
166
  import {
167
167
  DEFAULT_VOTE_TIMEOUT_MS,
168
168
  ErrorPolicySchema,
@@ -176,24 +176,24 @@ import {
176
176
  shutdownToolMemory,
177
177
  toolStructuredError,
178
178
  warnIfSimulatedOutsideTests
179
- } from "./chunk-T5VPZZYX.js";
180
- import "./chunk-NQR7QAZX.js";
181
- import "./chunk-PAFH336F.js";
179
+ } from "./chunk-CPPZCNAS.js";
180
+ import "./chunk-IPWCD22D.js";
181
+ import "./chunk-7NK7BTWP.js";
182
182
  import {
183
183
  loadPapersRegistry,
184
184
  loadTechniquesRegistry,
185
185
  savePapersRegistry,
186
186
  synthesizeResearch
187
- } from "./chunk-Q7FTNKPO.js";
187
+ } from "./chunk-JN6UWGHH.js";
188
188
  import {
189
189
  classifyTrust,
190
190
  createFullGitHubProvider,
191
191
  evaluatePolicy,
192
192
  parsePRUrl,
193
193
  sanitizeInput
194
- } from "./chunk-VJD5LANR.js";
195
- import "./chunk-BK54O5J5.js";
196
- import "./chunk-CCODJRS6.js";
194
+ } from "./chunk-ERWXGXV2.js";
195
+ import "./chunk-G6ZPVADX.js";
196
+ import "./chunk-ZKOBXAPK.js";
197
197
  import "./chunk-BC3M4VLP.js";
198
198
  import "./chunk-AP2FD37C.js";
199
199
  import "./chunk-BQ4YXGGQ.js";
@@ -216,29 +216,29 @@ import {
216
216
  probeAllClis,
217
217
  runDoctor,
218
218
  validateNexusEnv
219
- } from "./chunk-S6LQJZY4.js";
220
- import "./chunk-QON7LR7J.js";
219
+ } from "./chunk-N2QNLBS5.js";
220
+ import "./chunk-5WHWKY32.js";
221
221
  import {
222
222
  DEFAULTS
223
- } from "./chunk-GS3GW7C7.js";
223
+ } from "./chunk-YQMQSJQK.js";
224
224
  import "./chunk-NUBSJGQZ.js";
225
225
  import {
226
226
  createAllAdapters,
227
227
  getAvailableClis,
228
228
  isRecord
229
- } from "./chunk-NC2LECY6.js";
229
+ } from "./chunk-VEF6DCQU.js";
230
230
  import "./chunk-ZM4O442V.js";
231
- import "./chunk-EQHYXT56.js";
231
+ import "./chunk-3VWMM6UF.js";
232
232
  import {
233
233
  MemoryError
234
- } from "./chunk-3ESCBV47.js";
234
+ } from "./chunk-BJ2OMC7P.js";
235
235
  import {
236
236
  capitalize,
237
237
  capitalizeKebab,
238
238
  truncateSentence
239
239
  } from "./chunk-633WH2ML.js";
240
- import "./chunk-3SZBDLFX.js";
241
- import "./chunk-TBRNRW2Q.js";
240
+ import "./chunk-6AY5DK4E.js";
241
+ import "./chunk-PWTJGGKB.js";
242
242
  import {
243
243
  API_TIMEOUTS,
244
244
  AgentCapability,
@@ -306,7 +306,7 @@ import {
306
306
  validateTimeout,
307
307
  writeEmptyLine,
308
308
  writeLine
309
- } from "./chunk-Q3RFPJYK.js";
309
+ } from "./chunk-3MRM53T4.js";
310
310
  import "./chunk-I7ORMAO7.js";
311
311
  import {
312
312
  detectSandbox,
@@ -8638,11 +8638,13 @@ function formatSynthesisResult(synthesis) {
8638
8638
  }
8639
8639
  function formatCluster(cluster, lines) {
8640
8640
  lines.push(`## ${cluster.topic} (${String(cluster.paperCount)} papers)`);
8641
- lines.push(`Papers: ${cluster.papers.join(", ")}`);
8641
+ lines.push(`Papers: ${cluster.papers.map((p) => p.title).join(", ")}`);
8642
8642
  if (cluster.commonThemes.length > 0) lines.push(`Themes: ${cluster.commonThemes.join(", ")}`);
8643
8643
  if (cluster.keyInsights.length > 0) {
8644
8644
  lines.push("Key insights:");
8645
- for (const insight of cluster.keyInsights.slice(0, 5)) lines.push(` - ${insight}`);
8645
+ for (const insight of cluster.keyInsights.slice(0, 5)) {
8646
+ lines.push(` - ${insight.insight} [${insight.sourcePaperIds.join(", ")}]`);
8647
+ }
8646
8648
  }
8647
8649
  if (cluster.implementationOpportunities.length > 0) {
8648
8650
  lines.push(`Opportunities: ${cluster.implementationOpportunities.join(", ")}`);
@@ -19834,7 +19836,7 @@ async function handleResearchCommand(args) {
19834
19836
  }
19835
19837
  }
19836
19838
  async function handleRegistryCommand(args) {
19837
- const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-HYWVRAHE.js");
19839
+ const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-RPPC7N2K.js");
19838
19840
  const subcommand = args.subcommand;
19839
19841
  if (!isValidRegistrySubcommand(subcommand)) {
19840
19842
  process.stdout.write(`${formatRegistryUsage()}
@@ -19882,7 +19884,7 @@ async function handleVerifyCommand(args) {
19882
19884
  async function handleDoctorCommand(args) {
19883
19885
  const exitCode = await doctorCommand({ fix: args.options.fix });
19884
19886
  if (args.options.deep) {
19885
- const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-ONHJTGR4.js");
19887
+ const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-BRU5ZUJI.js");
19886
19888
  const diag = runDeepDiagnostics2();
19887
19889
  process.stdout.write(formatDeepDiagnostics2(diag) + "\n");
19888
19890
  }
@@ -19926,7 +19928,7 @@ async function handleInitCommand(args) {
19926
19928
  process.exit(result.success ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
19927
19929
  }
19928
19930
  async function runInitOpencodeFlow(args) {
19929
- const { runInitOpencode } = await import("./init-opencode-Z7OQ5RCB.js");
19931
+ const { runInitOpencode } = await import("./init-opencode-CFE7M6XA.js");
19930
19932
  const opencodePath = args.options.opencode;
19931
19933
  if (opencodePath === void 0 || opencodePath === "") {
19932
19934
  process.stderr.write("Error: --opencode requires a path argument.\n");
@@ -19953,7 +19955,7 @@ async function runInitOpencodeFlow(args) {
19953
19955
  process.exit(EXIT_CODES.SUCCESS);
19954
19956
  }
19955
19957
  async function renderOpencodeValidate(opencodePath) {
19956
- const { runOpencodeValidate } = await import("./init-opencode-Z7OQ5RCB.js");
19958
+ const { runOpencodeValidate } = await import("./init-opencode-CFE7M6XA.js");
19957
19959
  const result = await runOpencodeValidate(opencodePath);
19958
19960
  if (!result.ok) {
19959
19961
  process.stderr.write(`init --opencode --validate: ${result.reason ?? "failed"}
@@ -19993,7 +19995,7 @@ async function handleSetupCommandAsync(args) {
19993
19995
  process.exit(exitCode === 0 ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
19994
19996
  }
19995
19997
  async function runCustomApiSetup(args) {
19996
- const { configureCustomApi } = await import("./setup-custom-api-VD5W754A.js");
19998
+ const { configureCustomApi } = await import("./setup-custom-api-WM5W5AY5.js");
19997
19999
  const baseUrl = args.options.customApi;
19998
20000
  if (baseUrl === void 0) return EXIT_CODES.SERVER_START_FAILED;
19999
20001
  const input = {