nexus-agents 3.2.2 → 3.3.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 (126) hide show
  1. package/dist/{child-mcp-config-IGZEHG37.js → child-mcp-config-EXZDHJBP.js} +3 -3
  2. package/dist/{chunk-SDVDWM3C.js → chunk-24GBX2E2.js} +5 -5
  3. package/dist/{chunk-ATNHVLKJ.js → chunk-26NSVQ65.js} +52 -17
  4. package/dist/chunk-26NSVQ65.js.map +1 -0
  5. package/dist/{chunk-47WSUCLS.js → chunk-3T3TZZKG.js} +3 -3
  6. package/dist/{chunk-WKJWUK67.js → chunk-3UYBYO46.js} +35 -35
  7. package/dist/{chunk-GQ5LHJD2.js → chunk-5QAGT56O.js} +2 -2
  8. package/dist/{chunk-25TDC2C4.js → chunk-5ZSWBPUZ.js} +2 -2
  9. package/dist/{chunk-F47KBREM.js → chunk-63EFLUVS.js} +2 -2
  10. package/dist/{chunk-GTU2GK4H.js → chunk-7HDPHBKE.js} +4 -4
  11. package/dist/{chunk-4AF6CP7P.js → chunk-7L7CUYAY.js} +4 -4
  12. package/dist/{chunk-OKVCJFZM.js → chunk-7OVUQKM2.js} +2 -2
  13. package/dist/{chunk-GMJUXSLK.js → chunk-CYXQRAJ2.js} +5 -5
  14. package/dist/{chunk-2WRW3MWB.js → chunk-DGMNPTPG.js} +3 -3
  15. package/dist/{chunk-43YJRZZW.js → chunk-E6YS4KOL.js} +2 -2
  16. package/dist/{chunk-5HG2M5CP.js → chunk-EQGTPGN6.js} +73 -8
  17. package/dist/chunk-EQGTPGN6.js.map +1 -0
  18. package/dist/{chunk-HEZ6VTMO.js → chunk-EV42DVHG.js} +2 -2
  19. package/dist/{chunk-ZBTEOM3T.js → chunk-FSDHFY3C.js} +2 -2
  20. package/dist/{chunk-TIQXKIIA.js → chunk-G2C4WNK7.js} +2 -2
  21. package/dist/{chunk-EL62KWUE.js → chunk-H3B6BSBZ.js} +7 -7
  22. package/dist/{chunk-D33VCEA6.js → chunk-HPQ6QOTI.js} +5 -5
  23. package/dist/{chunk-T6HI32EC.js → chunk-IHMUW7N5.js} +2 -2
  24. package/dist/{chunk-E6JME6SQ.js → chunk-M4IFLNLT.js} +2 -2
  25. package/dist/{chunk-Z2VEERCP.js → chunk-MRSTTALY.js} +3 -3
  26. package/dist/{chunk-OVAO5IMR.js → chunk-NNBX6YZI.js} +2 -2
  27. package/dist/{chunk-A5QBZ5EC.js → chunk-QJPR3Y4E.js} +71 -33
  28. package/dist/chunk-QJPR3Y4E.js.map +1 -0
  29. package/dist/{chunk-RHO52DBX.js → chunk-QZDWVJN6.js} +2 -2
  30. package/dist/{chunk-5NRFPUNP.js → chunk-RAYKASM4.js} +8 -8
  31. package/dist/{chunk-PE35GMXD.js → chunk-SISWFC5K.js} +5 -5
  32. package/dist/{chunk-YAF73ZMR.js → chunk-SNJNRDKZ.js} +2 -1
  33. package/dist/{chunk-NGFG5TIB.js → chunk-U64WRZQ2.js} +2 -2
  34. package/dist/{chunk-VV7KSMMR.js → chunk-UNDYHLRR.js} +3 -3
  35. package/dist/{chunk-UBHTXZR6.js → chunk-UWVHFMU2.js} +4 -4
  36. package/dist/{chunk-QRZPGTZN.js → chunk-YC3RAOU5.js} +2 -2
  37. package/dist/{chunk-344IEWHJ.js → chunk-YWGMDZR4.js} +2 -2
  38. package/dist/{chunk-ENZ3IWEM.js → chunk-ZP5QHPDX.js} +2 -2
  39. package/dist/{cli-circuit-breaker-FTN4E7PN.js → cli-circuit-breaker-76YQJDYE.js} +3 -3
  40. package/dist/cli.js +44 -41
  41. package/dist/cli.js.map +1 -1
  42. package/dist/{composite-router-AHUNMSEQ.js → composite-router-2SGU5BWW.js} +2 -2
  43. package/dist/{consensus-vote-PPZUA3EN.js → consensus-vote-UF73LBG6.js} +17 -17
  44. package/dist/{context-retriever-UDERFG2L.js → context-retriever-MBGPFZA7.js} +8 -8
  45. package/dist/{doctor-deep-XZX7RNDG.js → doctor-deep-N7ZS6YNE.js} +3 -3
  46. package/dist/{expert-bridge-NIYLN24L.js → expert-bridge-GSDGOVQT.js} +4 -4
  47. package/dist/factory-6AR32KPC.js +25 -0
  48. package/dist/{factory-2VYANO2Z.js → factory-KBKFR56R.js} +5 -5
  49. package/dist/{improvement-review-Z3BEZS73.js → improvement-review-B7DR4Y3C.js} +5 -5
  50. package/dist/index.d.ts +21 -0
  51. package/dist/index.js +31 -31
  52. package/dist/{init-opencode-3ENXQJKC.js → init-opencode-QBHHYWWF.js} +6 -6
  53. package/dist/{issue-triage-Q7SYODHT.js → issue-triage-5JONYJ5X.js} +6 -6
  54. package/dist/{pr-reviewer-helpers-CVMB2PRH.js → pr-reviewer-helpers-JMZOSZGY.js} +4 -4
  55. package/dist/{registry-command-XPA6LFHZ.js → registry-command-ZN2N6NB6.js} +2 -2
  56. package/dist/{repo-security-plan-NUMTKVMR.js → repo-security-plan-LM6CQJDK.js} +3 -3
  57. package/dist/{research-helpers-synthesize-EHDMCB6P.js → research-helpers-synthesize-5T3WTCAR.js} +4 -4
  58. package/dist/{routing-memory-3XURCXXF.js → routing-memory-WOYMTDXS.js} +2 -2
  59. package/dist/{session-memory-QISTJJOX.js → session-memory-2E2RFJQO.js} +3 -3
  60. package/dist/{setup-command-NPGRBUWK.js → setup-command-ILFC6FWM.js} +15 -15
  61. package/dist/{setup-config-D6V7HW6W.js → setup-config-GKSERLN5.js} +3 -3
  62. package/dist/{setup-custom-api-U2EUVTPO.js → setup-custom-api-DWREDJNN.js} +4 -4
  63. package/dist/{tool-memory-BR7N6EB6.js → tool-memory-CHAKVXF5.js} +5 -5
  64. package/dist/unified-registry-7WZ2BLIC.js +26 -0
  65. package/dist/{weather-report-22DR27KY.js → weather-report-UDBU5F52.js} +2 -2
  66. package/package.json +1 -1
  67. package/dist/chunk-5HG2M5CP.js.map +0 -1
  68. package/dist/chunk-A5QBZ5EC.js.map +0 -1
  69. package/dist/chunk-ATNHVLKJ.js.map +0 -1
  70. package/dist/factory-KDNW4GTS.js +0 -25
  71. package/dist/unified-registry-K4DRV5PF.js +0 -26
  72. /package/dist/{child-mcp-config-IGZEHG37.js.map → child-mcp-config-EXZDHJBP.js.map} +0 -0
  73. /package/dist/{chunk-SDVDWM3C.js.map → chunk-24GBX2E2.js.map} +0 -0
  74. /package/dist/{chunk-47WSUCLS.js.map → chunk-3T3TZZKG.js.map} +0 -0
  75. /package/dist/{chunk-WKJWUK67.js.map → chunk-3UYBYO46.js.map} +0 -0
  76. /package/dist/{chunk-GQ5LHJD2.js.map → chunk-5QAGT56O.js.map} +0 -0
  77. /package/dist/{chunk-25TDC2C4.js.map → chunk-5ZSWBPUZ.js.map} +0 -0
  78. /package/dist/{chunk-F47KBREM.js.map → chunk-63EFLUVS.js.map} +0 -0
  79. /package/dist/{chunk-GTU2GK4H.js.map → chunk-7HDPHBKE.js.map} +0 -0
  80. /package/dist/{chunk-4AF6CP7P.js.map → chunk-7L7CUYAY.js.map} +0 -0
  81. /package/dist/{chunk-OKVCJFZM.js.map → chunk-7OVUQKM2.js.map} +0 -0
  82. /package/dist/{chunk-GMJUXSLK.js.map → chunk-CYXQRAJ2.js.map} +0 -0
  83. /package/dist/{chunk-2WRW3MWB.js.map → chunk-DGMNPTPG.js.map} +0 -0
  84. /package/dist/{chunk-43YJRZZW.js.map → chunk-E6YS4KOL.js.map} +0 -0
  85. /package/dist/{chunk-HEZ6VTMO.js.map → chunk-EV42DVHG.js.map} +0 -0
  86. /package/dist/{chunk-ZBTEOM3T.js.map → chunk-FSDHFY3C.js.map} +0 -0
  87. /package/dist/{chunk-TIQXKIIA.js.map → chunk-G2C4WNK7.js.map} +0 -0
  88. /package/dist/{chunk-EL62KWUE.js.map → chunk-H3B6BSBZ.js.map} +0 -0
  89. /package/dist/{chunk-D33VCEA6.js.map → chunk-HPQ6QOTI.js.map} +0 -0
  90. /package/dist/{chunk-T6HI32EC.js.map → chunk-IHMUW7N5.js.map} +0 -0
  91. /package/dist/{chunk-E6JME6SQ.js.map → chunk-M4IFLNLT.js.map} +0 -0
  92. /package/dist/{chunk-Z2VEERCP.js.map → chunk-MRSTTALY.js.map} +0 -0
  93. /package/dist/{chunk-OVAO5IMR.js.map → chunk-NNBX6YZI.js.map} +0 -0
  94. /package/dist/{chunk-RHO52DBX.js.map → chunk-QZDWVJN6.js.map} +0 -0
  95. /package/dist/{chunk-5NRFPUNP.js.map → chunk-RAYKASM4.js.map} +0 -0
  96. /package/dist/{chunk-PE35GMXD.js.map → chunk-SISWFC5K.js.map} +0 -0
  97. /package/dist/{chunk-YAF73ZMR.js.map → chunk-SNJNRDKZ.js.map} +0 -0
  98. /package/dist/{chunk-NGFG5TIB.js.map → chunk-U64WRZQ2.js.map} +0 -0
  99. /package/dist/{chunk-VV7KSMMR.js.map → chunk-UNDYHLRR.js.map} +0 -0
  100. /package/dist/{chunk-UBHTXZR6.js.map → chunk-UWVHFMU2.js.map} +0 -0
  101. /package/dist/{chunk-QRZPGTZN.js.map → chunk-YC3RAOU5.js.map} +0 -0
  102. /package/dist/{chunk-344IEWHJ.js.map → chunk-YWGMDZR4.js.map} +0 -0
  103. /package/dist/{chunk-ENZ3IWEM.js.map → chunk-ZP5QHPDX.js.map} +0 -0
  104. /package/dist/{cli-circuit-breaker-FTN4E7PN.js.map → cli-circuit-breaker-76YQJDYE.js.map} +0 -0
  105. /package/dist/{composite-router-AHUNMSEQ.js.map → composite-router-2SGU5BWW.js.map} +0 -0
  106. /package/dist/{consensus-vote-PPZUA3EN.js.map → consensus-vote-UF73LBG6.js.map} +0 -0
  107. /package/dist/{context-retriever-UDERFG2L.js.map → context-retriever-MBGPFZA7.js.map} +0 -0
  108. /package/dist/{doctor-deep-XZX7RNDG.js.map → doctor-deep-N7ZS6YNE.js.map} +0 -0
  109. /package/dist/{expert-bridge-NIYLN24L.js.map → expert-bridge-GSDGOVQT.js.map} +0 -0
  110. /package/dist/{factory-2VYANO2Z.js.map → factory-6AR32KPC.js.map} +0 -0
  111. /package/dist/{factory-KDNW4GTS.js.map → factory-KBKFR56R.js.map} +0 -0
  112. /package/dist/{improvement-review-Z3BEZS73.js.map → improvement-review-B7DR4Y3C.js.map} +0 -0
  113. /package/dist/{init-opencode-3ENXQJKC.js.map → init-opencode-QBHHYWWF.js.map} +0 -0
  114. /package/dist/{issue-triage-Q7SYODHT.js.map → issue-triage-5JONYJ5X.js.map} +0 -0
  115. /package/dist/{pr-reviewer-helpers-CVMB2PRH.js.map → pr-reviewer-helpers-JMZOSZGY.js.map} +0 -0
  116. /package/dist/{registry-command-XPA6LFHZ.js.map → registry-command-ZN2N6NB6.js.map} +0 -0
  117. /package/dist/{repo-security-plan-NUMTKVMR.js.map → repo-security-plan-LM6CQJDK.js.map} +0 -0
  118. /package/dist/{research-helpers-synthesize-EHDMCB6P.js.map → research-helpers-synthesize-5T3WTCAR.js.map} +0 -0
  119. /package/dist/{routing-memory-3XURCXXF.js.map → routing-memory-WOYMTDXS.js.map} +0 -0
  120. /package/dist/{session-memory-QISTJJOX.js.map → session-memory-2E2RFJQO.js.map} +0 -0
  121. /package/dist/{setup-command-NPGRBUWK.js.map → setup-command-ILFC6FWM.js.map} +0 -0
  122. /package/dist/{setup-config-D6V7HW6W.js.map → setup-config-GKSERLN5.js.map} +0 -0
  123. /package/dist/{setup-custom-api-U2EUVTPO.js.map → setup-custom-api-DWREDJNN.js.map} +0 -0
  124. /package/dist/{tool-memory-BR7N6EB6.js.map → tool-memory-CHAKVXF5.js.map} +0 -0
  125. /package/dist/{unified-registry-K4DRV5PF.js.map → unified-registry-7WZ2BLIC.js.map} +0 -0
  126. /package/dist/{weather-report-22DR27KY.js.map → weather-report-UDBU5F52.js.map} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-VV7KSMMR.js";
10
+ } from "./chunk-UNDYHLRR.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -19,7 +19,7 @@ import {
19
19
  getPipelineEventBus,
20
20
  getTimeProvider,
21
21
  isDeclaredNeverDeprecate
22
- } from "./chunk-ATNHVLKJ.js";
22
+ } from "./chunk-26NSVQ65.js";
23
23
  import {
24
24
  getNexusDataDir,
25
25
  nexusDataPath
@@ -2132,4 +2132,4 @@ export {
2132
2132
  runImprovementReview,
2133
2133
  registerImprovementReviewTool
2134
2134
  };
2135
- //# sourceMappingURL=chunk-47WSUCLS.js.map
2135
+ //# sourceMappingURL=chunk-3T3TZZKG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  generateSecurityPlan
3
- } from "./chunk-ENZ3IWEM.js";
3
+ } from "./chunk-ZP5QHPDX.js";
4
4
  import {
5
5
  analyzeGitHubRepo
6
6
  } from "./chunk-HFOQKCD2.js";
@@ -21,10 +21,10 @@ import {
21
21
  DEFAULT_TASK_TTL_MS,
22
22
  DEFAULT_TOOL_RATE_LIMITS,
23
23
  clampTaskTtl
24
- } from "./chunk-5HG2M5CP.js";
24
+ } from "./chunk-EQGTPGN6.js";
25
25
  import {
26
26
  executeExpert
27
- } from "./chunk-EL62KWUE.js";
27
+ } from "./chunk-H3B6BSBZ.js";
28
28
  import {
29
29
  JobStatusSchema,
30
30
  abortJob,
@@ -45,21 +45,21 @@ import {
45
45
  simulationDeniedResult,
46
46
  toJobSummary,
47
47
  writeJobCancelled
48
- } from "./chunk-5NRFPUNP.js";
48
+ } from "./chunk-RAYKASM4.js";
49
49
  import {
50
50
  normalizeTopicToCanonical,
51
51
  synthesizeResearch
52
- } from "./chunk-Z2VEERCP.js";
52
+ } from "./chunk-MRSTTALY.js";
53
53
  import {
54
54
  IssueTriage
55
- } from "./chunk-PE35GMXD.js";
55
+ } from "./chunk-SISWFC5K.js";
56
56
  import {
57
57
  resolveEnvMode,
58
58
  sanitizeInput
59
- } from "./chunk-TIQXKIIA.js";
59
+ } from "./chunk-G2C4WNK7.js";
60
60
  import {
61
61
  withPrerequisite
62
- } from "./chunk-47WSUCLS.js";
62
+ } from "./chunk-3T3TZZKG.js";
63
63
  import {
64
64
  NOOP_NOTIFIER,
65
65
  RateLimiter,
@@ -82,18 +82,18 @@ import {
82
82
  withAuditTrail,
83
83
  withProgressHeartbeat,
84
84
  wrapToolWithTimeout
85
- } from "./chunk-VV7KSMMR.js";
85
+ } from "./chunk-UNDYHLRR.js";
86
86
  import {
87
87
  createAuditTrail,
88
88
  createGraphAuditBridge,
89
89
  emitPipelinePolicyEvent
90
- } from "./chunk-F47KBREM.js";
90
+ } from "./chunk-63EFLUVS.js";
91
91
  import {
92
92
  EventTopics,
93
93
  createEvent,
94
94
  getGlobalEventBus,
95
95
  getGlobalRegistry
96
- } from "./chunk-4AF6CP7P.js";
96
+ } from "./chunk-7L7CUYAY.js";
97
97
  import {
98
98
  IDENTIFIER_RE,
99
99
  LANG_VALUES,
@@ -126,15 +126,15 @@ import {
126
126
  parseRegistry,
127
127
  sourceExistsInRegistry,
128
128
  summarizeContextForPrompt
129
- } from "./chunk-D33VCEA6.js";
129
+ } from "./chunk-HPQ6QOTI.js";
130
130
  import {
131
131
  getTokenEnvVars,
132
132
  resolveToken
133
- } from "./chunk-T6HI32EC.js";
133
+ } from "./chunk-IHMUW7N5.js";
134
134
  import {
135
135
  loadPapersRegistry,
136
136
  loadTechniquesRegistry
137
- } from "./chunk-E6JME6SQ.js";
137
+ } from "./chunk-M4IFLNLT.js";
138
138
  import {
139
139
  resolveInsideRoot
140
140
  } from "./chunk-NUBSJGQZ.js";
@@ -143,14 +143,14 @@ import {
143
143
  MemoryImportance,
144
144
  calculateTextJaccardSimilarity,
145
145
  getToolMemory
146
- } from "./chunk-GTU2GK4H.js";
146
+ } from "./chunk-7HDPHBKE.js";
147
147
  import {
148
148
  STOPWORDS,
149
149
  truncateWithInfo
150
150
  } from "./chunk-6T3EPABN.js";
151
151
  import {
152
152
  createSessionMemory
153
- } from "./chunk-QRZPGTZN.js";
153
+ } from "./chunk-YC3RAOU5.js";
154
154
  import {
155
155
  BUILT_IN_EXPERTS,
156
156
  BuiltInExpertTypeSchema,
@@ -168,25 +168,25 @@ import {
168
168
  getAvailableClis,
169
169
  sleep,
170
170
  withTimeout
171
- } from "./chunk-A5QBZ5EC.js";
171
+ } from "./chunk-QJPR3Y4E.js";
172
172
  import {
173
173
  BaseAdapter,
174
174
  createStream,
175
175
  requireApiKey,
176
176
  validateApiKeyPresence
177
- } from "./chunk-HEZ6VTMO.js";
177
+ } from "./chunk-EV42DVHG.js";
178
178
  import {
179
179
  DEFAULTS
180
- } from "./chunk-NGFG5TIB.js";
180
+ } from "./chunk-U64WRZQ2.js";
181
181
  import {
182
182
  getAvailabilityCache,
183
183
  getCliForModelId,
184
184
  resolveFallback
185
- } from "./chunk-RHO52DBX.js";
185
+ } from "./chunk-QZDWVJN6.js";
186
186
  import {
187
187
  generateHyphenId,
188
188
  generateUUID
189
- } from "./chunk-25TDC2C4.js";
189
+ } from "./chunk-5ZSWBPUZ.js";
190
190
  import {
191
191
  AGENT_ROUTER_TIMEOUTS,
192
192
  API_TIMEOUTS,
@@ -283,7 +283,7 @@ import {
283
283
  selectStrategyByManifest,
284
284
  toExpertTaskAnalysisResult,
285
285
  withStep
286
- } from "./chunk-ATNHVLKJ.js";
286
+ } from "./chunk-26NSVQ65.js";
287
287
  import {
288
288
  ensureLearningDir,
289
289
  getMetaOutcomesFile,
@@ -28353,7 +28353,7 @@ function execIdFields(executionId) {
28353
28353
  async function populateUnifiedContextOnState(state, options) {
28354
28354
  const taskCandidate = state["task"];
28355
28355
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
28356
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-UDERFG2L.js");
28356
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-MBGPFZA7.js");
28357
28357
  const category = inferTaskCategory2(taskCandidate);
28358
28358
  const executionId = options?.executionId;
28359
28359
  const execFields = execIdFields(executionId);
@@ -43889,7 +43889,7 @@ async function tryIssueTriage(task) {
43889
43889
  try {
43890
43890
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
43891
43891
  if (issueMatch === null) return null;
43892
- const { createIssueTriage } = await import("./issue-triage-Q7SYODHT.js");
43892
+ const { createIssueTriage } = await import("./issue-triage-5JONYJ5X.js");
43893
43893
  const triage = createIssueTriage();
43894
43894
  const owner = issueMatch[1] ?? "";
43895
43895
  const num = issueMatch[2] ?? "";
@@ -43917,7 +43917,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
43917
43917
  ]);
43918
43918
  async function classifyWithLLM(task) {
43919
43919
  try {
43920
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-NIYLN24L.js");
43920
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-GSDGOVQT.js");
43921
43921
  const prompt = [
43922
43922
  "Classify this task into exactly one pipeline template.",
43923
43923
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -45558,7 +45558,7 @@ var memoryInitPromise = null;
45558
45558
  async function initPipelineMemory() {
45559
45559
  if (cachedMemory !== null) return cachedMemory;
45560
45560
  try {
45561
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-QISTJJOX.js");
45561
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-2E2RFJQO.js");
45562
45562
  const { getLearningDir } = await import("./learning-persistence-EGY4VKKO.js");
45563
45563
  const mem = createSessionMemory2(getLearningDir());
45564
45564
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -45620,7 +45620,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
45620
45620
  callRecord(routingMemoryCache);
45621
45621
  return;
45622
45622
  }
45623
- routingMemoryInitPromise ??= import("./routing-memory-3XURCXXF.js").then(({ createRoutingMemory }) => {
45623
+ routingMemoryInitPromise ??= import("./routing-memory-WOYMTDXS.js").then(({ createRoutingMemory }) => {
45624
45624
  routingMemoryCache ??= createRoutingMemory();
45625
45625
  return routingMemoryCache;
45626
45626
  }).catch((error) => {
@@ -45654,7 +45654,7 @@ ${text}` : "";
45654
45654
  }
45655
45655
  async function getWeatherContext() {
45656
45656
  try {
45657
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-22DR27KY.js");
45657
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-UDBU5F52.js");
45658
45658
  const report = generateWeatherReport2({ includeAdaptive: true });
45659
45659
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
45660
45660
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -45672,7 +45672,7 @@ ${lines}
45672
45672
  }
45673
45673
  async function getMemoryContext(task) {
45674
45674
  try {
45675
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-QISTJJOX.js");
45675
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-2E2RFJQO.js");
45676
45676
  const { getLearningDir } = await import("./learning-persistence-EGY4VKKO.js");
45677
45677
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
45678
45678
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -45787,7 +45787,7 @@ ${contextBlock}`;
45787
45787
  const strategy = config.votingStrategy ?? "higher_order";
45788
45788
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
45789
45789
  try {
45790
- const { executeVoting } = await import("./consensus-vote-PPZUA3EN.js");
45790
+ const { executeVoting } = await import("./consensus-vote-UF73LBG6.js");
45791
45791
  const votingResult = await executeVoting(
45792
45792
  {
45793
45793
  proposal: buildVoteProposal(plan, research),
@@ -46228,7 +46228,7 @@ async function searchCodebaseForTask(task) {
46228
46228
  }
46229
46229
  async function queryResearchRegistry(task) {
46230
46230
  try {
46231
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-EHDMCB6P.js");
46231
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-5T3WTCAR.js");
46232
46232
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
46233
46233
  if (topic === void 0) return null;
46234
46234
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -46299,7 +46299,7 @@ function createScanStageWrapper() {
46299
46299
  try {
46300
46300
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
46301
46301
  if (slug !== void 0) {
46302
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-NUMTKVMR.js");
46302
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-LM6CQJDK.js");
46303
46303
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
46304
46304
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
46305
46305
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -49304,7 +49304,7 @@ var GitHubTaskTracker = class {
49304
49304
  cachedProvider = null;
49305
49305
  async getProvider() {
49306
49306
  if (this.cachedProvider !== null) return this.cachedProvider;
49307
- const { createScmProvider } = await import("./factory-2VYANO2Z.js");
49307
+ const { createScmProvider } = await import("./factory-KBKFR56R.js");
49308
49308
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
49309
49309
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
49310
49310
  this.cachedProvider = result.value;
@@ -50146,7 +50146,7 @@ async function probeSource(source, includeModelIds) {
50146
50146
  }
50147
50147
  }
50148
50148
  async function defaultSources(includeOpenRouter) {
50149
- const { createAllAdapters: createAllAdapters2 } = await import("./factory-KDNW4GTS.js");
50149
+ const { createAllAdapters: createAllAdapters2 } = await import("./factory-6AR32KPC.js");
50150
50150
  const adapters = createAllAdapters2();
50151
50151
  return buildDefaultModelSources(adapters, { includeOpenRouter });
50152
50152
  }
@@ -54166,4 +54166,4 @@ export {
54166
54166
  shutdownFeedbackSubscriber,
54167
54167
  createEventBusBridge
54168
54168
  };
54169
- //# sourceMappingURL=chunk-WKJWUK67.js.map
54169
+ //# sourceMappingURL=chunk-3UYBYO46.js.map
@@ -4,7 +4,7 @@ import {
4
4
  err,
5
5
  getErrorMessage,
6
6
  ok
7
- } from "./chunk-ATNHVLKJ.js";
7
+ } from "./chunk-26NSVQ65.js";
8
8
 
9
9
  // src/scm/types.ts
10
10
  var ScmError = class extends Error {
@@ -263,4 +263,4 @@ export {
263
263
  ScmError,
264
264
  GitHubProvider
265
265
  };
266
- //# sourceMappingURL=chunk-GQ5LHJD2.js.map
266
+ //# sourceMappingURL=chunk-5QAGT56O.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRandomProvider,
3
3
  getTimeProvider
4
- } from "./chunk-ATNHVLKJ.js";
4
+ } from "./chunk-26NSVQ65.js";
5
5
 
6
6
  // src/utils/id-utils.ts
7
7
  import { randomUUID } from "crypto";
@@ -24,4 +24,4 @@ export {
24
24
  generateHyphenId,
25
25
  generateUUID
26
26
  };
27
- //# sourceMappingURL=chunk-25TDC2C4.js.map
27
+ //# sourceMappingURL=chunk-5ZSWBPUZ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getTimeProvider
3
- } from "./chunk-ATNHVLKJ.js";
3
+ } from "./chunk-26NSVQ65.js";
4
4
 
5
5
  // src/security/audit-trail.ts
6
6
  var MAX_EVENTS = 1e4;
@@ -205,4 +205,4 @@ export {
205
205
  createGraphAuditBridge,
206
206
  createAuditTrail
207
207
  };
208
- //# sourceMappingURL=chunk-F47KBREM.js.map
208
+ //# sourceMappingURL=chunk-63EFLUVS.js.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-6T3EPABN.js";
6
6
  import {
7
7
  SessionMemory
8
- } from "./chunk-QRZPGTZN.js";
8
+ } from "./chunk-YC3RAOU5.js";
9
9
  import {
10
10
  StatsOnlyAdapter,
11
11
  ensureSharedMemoryRegistry
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-KSQSWEFH.js";
16
16
  import {
17
17
  generateId
18
- } from "./chunk-25TDC2C4.js";
18
+ } from "./chunk-5ZSWBPUZ.js";
19
19
  import {
20
20
  ErrorCode,
21
21
  NexusError,
@@ -28,7 +28,7 @@ import {
28
28
  getTimeProvider,
29
29
  ok,
30
30
  setSharedMobiMemDbPathResolver
31
- } from "./chunk-ATNHVLKJ.js";
31
+ } from "./chunk-26NSVQ65.js";
32
32
  import {
33
33
  nexusDataPath
34
34
  } from "./chunk-OQLFRJCW.js";
@@ -5552,4 +5552,4 @@ export {
5552
5552
  reinitializeMemoryBackends,
5553
5553
  ToolMemoryManager
5554
5554
  };
5555
- //# sourceMappingURL=chunk-GTU2GK4H.js.map
5555
+ //# sourceMappingURL=chunk-7HDPHBKE.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createAutoAdapter
3
- } from "./chunk-A5QBZ5EC.js";
3
+ } from "./chunk-QJPR3Y4E.js";
4
4
  import {
5
5
  mapModelErrorToCategory
6
- } from "./chunk-OKVCJFZM.js";
6
+ } from "./chunk-7OVUQKM2.js";
7
7
  import {
8
8
  CLI_NAMES,
9
9
  CircularBuffer,
@@ -21,7 +21,7 @@ import {
21
21
  ok,
22
22
  recordRateLimitEvent,
23
23
  toRateLimitError
24
- } from "./chunk-ATNHVLKJ.js";
24
+ } from "./chunk-26NSVQ65.js";
25
25
 
26
26
  // src/agents/collaboration/event-bus-helpers.ts
27
27
  import { randomUUID } from "crypto";
@@ -833,4 +833,4 @@ export {
833
833
  getGlobalRegistry,
834
834
  resetGlobalRegistry
835
835
  };
836
- //# sourceMappingURL=chunk-4AF6CP7P.js.map
836
+ //# sourceMappingURL=chunk-7L7CUYAY.js.map
@@ -8,7 +8,7 @@ import {
8
8
  getTimeProvider,
9
9
  isRateLimitText,
10
10
  ok
11
- } from "./chunk-ATNHVLKJ.js";
11
+ } from "./chunk-26NSVQ65.js";
12
12
 
13
13
  // src/cli-adapters/circuit-breaker-types.ts
14
14
  var CircuitErrorCode = {
@@ -540,4 +540,4 @@ export {
540
540
  CliCircuitBreakerIntegration,
541
541
  createCliCircuitBreakerIntegration
542
542
  };
543
- //# sourceMappingURL=chunk-OKVCJFZM.js.map
543
+ //# sourceMappingURL=chunk-7OVUQKM2.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  computeCostDetail,
3
3
  recordUsageEvent
4
- } from "./chunk-344IEWHJ.js";
4
+ } from "./chunk-YWGMDZR4.js";
5
5
  import {
6
6
  BaseAdapter,
7
7
  createStream,
8
8
  planOptionalParams,
9
9
  requireApiKey,
10
10
  validateApiKeyPresence
11
- } from "./chunk-HEZ6VTMO.js";
11
+ } from "./chunk-EV42DVHG.js";
12
12
  import {
13
13
  assertCustomApiHostResolvesPublic
14
- } from "./chunk-ZBTEOM3T.js";
14
+ } from "./chunk-FSDHFY3C.js";
15
15
  import {
16
16
  ConfigError,
17
17
  ModelCapability,
@@ -22,7 +22,7 @@ import {
22
22
  getTimeProvider,
23
23
  getTokenEstimator,
24
24
  ok
25
- } from "./chunk-ATNHVLKJ.js";
25
+ } from "./chunk-26NSVQ65.js";
26
26
 
27
27
  // src/adapters/openai-types.ts
28
28
  var OPENAI_MODELS = {
@@ -831,4 +831,4 @@ export {
831
831
  discoverModels,
832
832
  buildOpenAICompatAdapters
833
833
  };
834
- //# sourceMappingURL=chunk-GMJUXSLK.js.map
834
+ //# sourceMappingURL=chunk-CYXQRAJ2.js.map
@@ -9,11 +9,11 @@ import {
9
9
  gateWithReputation,
10
10
  resolveReputationGatingMode,
11
11
  sanitizeInput
12
- } from "./chunk-TIQXKIIA.js";
12
+ } from "./chunk-G2C4WNK7.js";
13
13
  import {
14
14
  createLogger,
15
15
  getTimeProvider
16
- } from "./chunk-ATNHVLKJ.js";
16
+ } from "./chunk-26NSVQ65.js";
17
17
 
18
18
  // src/dogfooding/pr-reviewer-helpers.ts
19
19
  import { randomUUID } from "crypto";
@@ -288,4 +288,4 @@ export {
288
288
  formatReviewComment,
289
289
  createFailedReview
290
290
  };
291
- //# sourceMappingURL=chunk-2WRW3MWB.js.map
291
+ //# sourceMappingURL=chunk-DGMNPTPG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getErrorMessage
3
- } from "./chunk-ATNHVLKJ.js";
3
+ } from "./chunk-26NSVQ65.js";
4
4
 
5
5
  // src/cli/setup-config.ts
6
6
  import { copyFileSync, existsSync, mkdirSync, writeFileSync } from "fs";
@@ -77,4 +77,4 @@ function ensureBackup(outputPath) {
77
77
  export {
78
78
  runConfigInitSync
79
79
  };
80
- //# sourceMappingURL=chunk-43YJRZZW.js.map
80
+ //# sourceMappingURL=chunk-E6YS4KOL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readOpenAICompatEnv
3
- } from "./chunk-GMJUXSLK.js";
3
+ } from "./chunk-CYXQRAJ2.js";
4
4
  import {
5
5
  resolveInsideRoot
6
6
  } from "./chunk-NUBSJGQZ.js";
@@ -10,10 +10,13 @@ import {
10
10
  import {
11
11
  createAllAdapters,
12
12
  probeCli
13
- } from "./chunk-A5QBZ5EC.js";
13
+ } from "./chunk-QJPR3Y4E.js";
14
14
  import {
15
15
  DEFAULTS
16
- } from "./chunk-NGFG5TIB.js";
16
+ } from "./chunk-U64WRZQ2.js";
17
+ import {
18
+ getNexusTmpDir
19
+ } from "./chunk-SNJNRDKZ.js";
17
20
  import {
18
21
  CliNameSchema,
19
22
  DEFAULT_CAPABILITIES,
@@ -30,7 +33,7 @@ import {
30
33
  ok,
31
34
  symbols,
32
35
  writeLine
33
- } from "./chunk-ATNHVLKJ.js";
36
+ } from "./chunk-26NSVQ65.js";
34
37
  import {
35
38
  getLearningDir,
36
39
  getOutcomesFile,
@@ -46,7 +49,7 @@ import {
46
49
  } from "./chunk-OQLFRJCW.js";
47
50
 
48
51
  // src/version.ts
49
- var VERSION = true ? "3.2.2" : "dev";
52
+ var VERSION = true ? "3.3.0" : "dev";
50
53
 
51
54
  // src/config/schemas-core.ts
52
55
  import { z } from "zod";
@@ -1250,6 +1253,65 @@ import {
1250
1253
  constants as fsConstants
1251
1254
  } from "fs";
1252
1255
 
1256
+ // src/cli/doctor-scratch-space.ts
1257
+ import { statfsSync } from "fs";
1258
+ var MIB = 1024 * 1024;
1259
+ var GIB = 1024 * 1024 * 1024;
1260
+ var CRITICAL_FREE_BYTES = 512 * MIB;
1261
+ var WARN_FREE_BYTES = 2 * GIB;
1262
+ function formatBytes(bytes) {
1263
+ if (bytes >= GIB) return `${(bytes / GIB).toFixed(1)} GiB`;
1264
+ return `${(bytes / MIB).toFixed(0)} MiB`;
1265
+ }
1266
+ function grade(freeBytes) {
1267
+ if (freeBytes < CRITICAL_FREE_BYTES) return "critical";
1268
+ if (freeBytes < WARN_FREE_BYTES) return "warn";
1269
+ return "ok";
1270
+ }
1271
+ function checkScratchSpace(root = getNexusTmpDir(), statfs = statfsSync) {
1272
+ let reading;
1273
+ try {
1274
+ reading = statfs(root);
1275
+ } catch {
1276
+ return {
1277
+ root,
1278
+ available: false,
1279
+ freeBytes: 0,
1280
+ totalBytes: 0,
1281
+ percentUsed: 0,
1282
+ severity: "ok",
1283
+ message: `Scratch filesystem at ${root} could not be read (statfs unavailable)`
1284
+ };
1285
+ }
1286
+ const totalBytes = reading.blocks * reading.bsize;
1287
+ const freeBytes = reading.bavail * reading.bsize;
1288
+ const percentUsed = totalBytes > 0 ? Math.round((totalBytes - freeBytes) / totalBytes * 100) : 100;
1289
+ const severity = grade(freeBytes);
1290
+ return {
1291
+ root,
1292
+ available: true,
1293
+ freeBytes,
1294
+ totalBytes,
1295
+ percentUsed,
1296
+ severity,
1297
+ message: `${formatBytes(freeBytes)} free of ${formatBytes(totalBytes)} (${String(percentUsed)}% used)`
1298
+ };
1299
+ }
1300
+ function formatScratchSpace(check) {
1301
+ if (!check.available) {
1302
+ return ` \u26A0 Scratch space: ${check.message}`;
1303
+ }
1304
+ const icon = check.severity === "ok" ? "\u2713" : check.severity === "warn" ? "\u26A0" : "\u2717";
1305
+ const line = ` ${icon} Scratch space (${check.root}): ${check.message}`;
1306
+ if (check.severity === "ok") return line;
1307
+ return [
1308
+ line,
1309
+ " A full scratch filesystem fails subprocesses at the write step, after",
1310
+ " they have done their work, so output is lost rather than refused.",
1311
+ " Free space, or point NEXUS_TMPDIR at a roomier filesystem."
1312
+ ].join("\n");
1313
+ }
1314
+
1253
1315
  // src/mcp/server.ts
1254
1316
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1255
1317
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -1724,6 +1786,7 @@ function printDoctorResults(result) {
1724
1786
  writeLine("");
1725
1787
  printSqliteCheck(result.sqliteCheck);
1726
1788
  printDataDirectory(result.dataDirectory);
1789
+ writeLine(formatScratchSpace(result.scratchSpace));
1727
1790
  writeLine("");
1728
1791
  printSandbox(result.sandbox);
1729
1792
  printHarnessAlignment(result.harnessAlignment);
@@ -2151,6 +2214,7 @@ async function runDoctor() {
2151
2214
  const sandbox = checkSandbox();
2152
2215
  const harnessAlignment = checkHarnessAlignment();
2153
2216
  const voterTransport = checkVoterTransport();
2217
+ const scratchSpace = checkScratchSpace();
2154
2218
  const hasAuthMethod = apiKeys.some((k) => k.configured) || clis.some((c) => c.installed && c.authenticated);
2155
2219
  const allHealthy = nodeVersion.supported && hasAuthMethod && mcpServerReady && clis.every((c) => c.installed && c.authenticated && c.versionStatus !== "unsupported");
2156
2220
  return {
@@ -2167,6 +2231,7 @@ async function runDoctor() {
2167
2231
  sandbox,
2168
2232
  harnessAlignment,
2169
2233
  voterTransport,
2234
+ scratchSpace,
2170
2235
  allHealthy,
2171
2236
  timestamp: new Date(getTimeProvider().now())
2172
2237
  };
@@ -2188,7 +2253,7 @@ async function runDoctorFix(result) {
2188
2253
  writeLine2("\u2500".repeat(40));
2189
2254
  let fixCount = 0;
2190
2255
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2191
- const { runSetup } = await import("./setup-command-NPGRBUWK.js");
2256
+ const { runSetup } = await import("./setup-command-ILFC6FWM.js");
2192
2257
  const setupResult = runSetup({
2193
2258
  skipMcp: true,
2194
2259
  skipRules: true,
@@ -2202,7 +2267,7 @@ async function runDoctorFix(result) {
2202
2267
  }
2203
2268
  }
2204
2269
  if (!result.configFile.found) {
2205
- const { runConfigInitSync } = await import("./setup-config-D6V7HW6W.js");
2270
+ const { runConfigInitSync } = await import("./setup-config-GKSERLN5.js");
2206
2271
  const configResult = runConfigInitSync(process.cwd(), false, false);
2207
2272
  if (configResult.success && configResult.created) {
2208
2273
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -2301,4 +2366,4 @@ export {
2301
2366
  startStdioServer,
2302
2367
  closeServer
2303
2368
  };
2304
- //# sourceMappingURL=chunk-5HG2M5CP.js.map
2369
+ //# sourceMappingURL=chunk-EQGTPGN6.js.map