nexus-agents 8.89.2 → 8.89.4

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 (127) hide show
  1. package/dist/{ast-rule-runner-AMZCLKRV.js → ast-rule-runner-NOWNF5QY.js} +3 -3
  2. package/dist/{child-mcp-config-7DSYI325.js → child-mcp-config-UBKF4SOL.js} +2 -2
  3. package/dist/{chunk-XU2SJKFK.js → chunk-2C5ABWLK.js} +2 -2
  4. package/dist/{chunk-SCXCJSTT.js → chunk-3E4BZR3V.js} +2 -2
  5. package/dist/{chunk-BJXSG5YL.js → chunk-4W4S6OBP.js} +4 -4
  6. package/dist/{chunk-Z5VUMKF5.js → chunk-5JZ635RM.js} +3 -3
  7. package/dist/{chunk-ZTTBGME2.js → chunk-5XCRXV43.js} +2 -2
  8. package/dist/{chunk-KQE7EFBF.js → chunk-6YQ55DOE.js} +5 -5
  9. package/dist/{chunk-AXBEG6VW.js → chunk-6ZPHMRJQ.js} +4 -4
  10. package/dist/{chunk-3PQIIMHN.js → chunk-DGW6C2PT.js} +60 -21
  11. package/dist/chunk-DGW6C2PT.js.map +1 -0
  12. package/dist/{chunk-OQB3XC5O.js → chunk-EZNIYU5T.js} +7 -2
  13. package/dist/{chunk-OQB3XC5O.js.map → chunk-EZNIYU5T.js.map} +1 -1
  14. package/dist/{chunk-CG7OSI5P.js → chunk-F3PIVN3B.js} +2 -2
  15. package/dist/{chunk-5GZ4UN5F.js → chunk-GLG667IV.js} +2 -2
  16. package/dist/{chunk-UDWZJY3V.js → chunk-GPEGBNGB.js} +2 -2
  17. package/dist/{chunk-JYKRCQSU.js → chunk-H7PL2D5A.js} +5 -5
  18. package/dist/{chunk-GYQIIAVM.js → chunk-K6IVHUEK.js} +3 -3
  19. package/dist/{chunk-5XZCL7QT.js → chunk-LBYA22G5.js} +11 -11
  20. package/dist/{chunk-3IBALX36.js → chunk-LVL6WCWK.js} +2 -2
  21. package/dist/{chunk-E6AJH4F4.js → chunk-NBVYSGSS.js} +37 -37
  22. package/dist/{chunk-GXBXZCY7.js → chunk-NRSAOTT7.js} +10 -10
  23. package/dist/{chunk-NZN3SWSZ.js → chunk-P2RI4DGX.js} +4 -3
  24. package/dist/{chunk-JYZNPK62.js → chunk-P5ND7MWI.js} +8 -8
  25. package/dist/{chunk-TRCYUQ4M.js → chunk-PEN5XFMP.js} +2 -2
  26. package/dist/{chunk-XJAGCUMD.js → chunk-R57JPKHJ.js} +2 -2
  27. package/dist/{chunk-4IV25ZUM.js → chunk-RQBI56JN.js} +2 -2
  28. package/dist/{chunk-6FFBX665.js → chunk-SFHIXQGK.js} +2 -2
  29. package/dist/{chunk-5UCGVAEZ.js → chunk-SXS2YQUK.js} +4 -4
  30. package/dist/{chunk-VM4HZT3B.js → chunk-TFZDHQ45.js} +4 -4
  31. package/dist/{chunk-JRZEB4OQ.js → chunk-U2C6V65K.js} +2 -2
  32. package/dist/{chunk-LZNYQYDU.js → chunk-UR2KFP6P.js} +2 -2
  33. package/dist/{chunk-EKZ6V7SE.js → chunk-XM2GVJPE.js} +7 -7
  34. package/dist/{chunk-HLXXP3CS.js → chunk-XS3IJG4V.js} +3 -3
  35. package/dist/{chunk-ILA4UGXI.js → chunk-YBW45NIZ.js} +2 -2
  36. package/dist/{chunk-PENEGF75.js → chunk-YG3UYPKL.js} +2 -2
  37. package/dist/{chunk-LFFXUHX3.js → chunk-YT7EP2B6.js} +2 -2
  38. package/dist/{chunk-TLFZPJOY.js → chunk-YYVBEHM3.js} +4 -4
  39. package/dist/{cli-circuit-breaker-MCQG3PQK.js → cli-circuit-breaker-IFVKXCHQ.js} +3 -3
  40. package/dist/cli.js +91 -68
  41. package/dist/cli.js.map +1 -1
  42. package/dist/{composite-router-QAYCHEFG.js → composite-router-7LFS4CMF.js} +2 -2
  43. package/dist/{consensus-vote-UHNEKOO7.js → consensus-vote-SA2KVDQA.js} +17 -17
  44. package/dist/{context-retriever-UXQCDDRY.js → context-retriever-V7OWZW7R.js} +8 -8
  45. package/dist/{doctor-deep-QRLRDFM4.js → doctor-deep-GJPTXS2N.js} +4 -3
  46. package/dist/{doctor-live-CUKBQSSH.js → doctor-live-ET5O7O2D.js} +10 -10
  47. package/dist/{expert-bridge-ZG2IA3RJ.js → expert-bridge-G656VGZG.js} +4 -4
  48. package/dist/{factory-RQEHJ4AW.js → factory-BQBFECEV.js} +9 -9
  49. package/dist/{factory-FPNYFKXU.js → factory-N34PTEMW.js} +5 -5
  50. package/dist/{improvement-review-N36SVUDG.js → improvement-review-YIXDCEX4.js} +5 -5
  51. package/dist/index.js +31 -31
  52. package/dist/{init-opencode-4QECASK4.js → init-opencode-33EU3PD6.js} +5 -5
  53. package/dist/issue-triage-URFEVDIX.js +16 -0
  54. package/dist/{pr-reviewer-helpers-RK5IT4US.js → pr-reviewer-helpers-ZDAJARQ7.js} +5 -5
  55. package/dist/{registry-command-MBZFFDWS.js → registry-command-AB7KP7DK.js} +2 -2
  56. package/dist/{repo-security-plan-W76YLC2M.js → repo-security-plan-YV3ZFKGO.js} +3 -3
  57. package/dist/{research-helpers-synthesize-GI5JFAQM.js → research-helpers-synthesize-EOHUBGH3.js} +4 -4
  58. package/dist/{routing-memory-WLCUOPDE.js → routing-memory-34JWGSAI.js} +2 -2
  59. package/dist/{session-memory-HU3XMQEH.js → session-memory-QGIJCM7P.js} +3 -3
  60. package/dist/{setup-config-XA756R2O.js → setup-config-3KBMBPCN.js} +3 -3
  61. package/dist/{setup-custom-api-ETBGOE7O.js → setup-custom-api-652FK232.js} +4 -4
  62. package/dist/setup-data-dir-XJMN4ALO.js +32 -0
  63. package/dist/{tool-memory-7XMQAQQM.js → tool-memory-SPPCBLKQ.js} +5 -5
  64. package/dist/{unified-registry-LR4OCUFI.js → unified-registry-ZOLSOVYN.js} +10 -10
  65. package/dist/{weather-report-UYKQUSBB.js → weather-report-OHHDUNX3.js} +2 -2
  66. package/package.json +1 -1
  67. package/dist/chunk-3PQIIMHN.js.map +0 -1
  68. package/dist/issue-triage-BIEZBWV2.js +0 -16
  69. package/dist/setup-data-dir-UNM34FGW.js +0 -32
  70. /package/dist/{ast-rule-runner-AMZCLKRV.js.map → ast-rule-runner-NOWNF5QY.js.map} +0 -0
  71. /package/dist/{child-mcp-config-7DSYI325.js.map → child-mcp-config-UBKF4SOL.js.map} +0 -0
  72. /package/dist/{chunk-XU2SJKFK.js.map → chunk-2C5ABWLK.js.map} +0 -0
  73. /package/dist/{chunk-SCXCJSTT.js.map → chunk-3E4BZR3V.js.map} +0 -0
  74. /package/dist/{chunk-BJXSG5YL.js.map → chunk-4W4S6OBP.js.map} +0 -0
  75. /package/dist/{chunk-Z5VUMKF5.js.map → chunk-5JZ635RM.js.map} +0 -0
  76. /package/dist/{chunk-ZTTBGME2.js.map → chunk-5XCRXV43.js.map} +0 -0
  77. /package/dist/{chunk-KQE7EFBF.js.map → chunk-6YQ55DOE.js.map} +0 -0
  78. /package/dist/{chunk-AXBEG6VW.js.map → chunk-6ZPHMRJQ.js.map} +0 -0
  79. /package/dist/{chunk-CG7OSI5P.js.map → chunk-F3PIVN3B.js.map} +0 -0
  80. /package/dist/{chunk-5GZ4UN5F.js.map → chunk-GLG667IV.js.map} +0 -0
  81. /package/dist/{chunk-UDWZJY3V.js.map → chunk-GPEGBNGB.js.map} +0 -0
  82. /package/dist/{chunk-JYKRCQSU.js.map → chunk-H7PL2D5A.js.map} +0 -0
  83. /package/dist/{chunk-GYQIIAVM.js.map → chunk-K6IVHUEK.js.map} +0 -0
  84. /package/dist/{chunk-5XZCL7QT.js.map → chunk-LBYA22G5.js.map} +0 -0
  85. /package/dist/{chunk-3IBALX36.js.map → chunk-LVL6WCWK.js.map} +0 -0
  86. /package/dist/{chunk-E6AJH4F4.js.map → chunk-NBVYSGSS.js.map} +0 -0
  87. /package/dist/{chunk-GXBXZCY7.js.map → chunk-NRSAOTT7.js.map} +0 -0
  88. /package/dist/{chunk-NZN3SWSZ.js.map → chunk-P2RI4DGX.js.map} +0 -0
  89. /package/dist/{chunk-JYZNPK62.js.map → chunk-P5ND7MWI.js.map} +0 -0
  90. /package/dist/{chunk-TRCYUQ4M.js.map → chunk-PEN5XFMP.js.map} +0 -0
  91. /package/dist/{chunk-XJAGCUMD.js.map → chunk-R57JPKHJ.js.map} +0 -0
  92. /package/dist/{chunk-4IV25ZUM.js.map → chunk-RQBI56JN.js.map} +0 -0
  93. /package/dist/{chunk-6FFBX665.js.map → chunk-SFHIXQGK.js.map} +0 -0
  94. /package/dist/{chunk-5UCGVAEZ.js.map → chunk-SXS2YQUK.js.map} +0 -0
  95. /package/dist/{chunk-VM4HZT3B.js.map → chunk-TFZDHQ45.js.map} +0 -0
  96. /package/dist/{chunk-JRZEB4OQ.js.map → chunk-U2C6V65K.js.map} +0 -0
  97. /package/dist/{chunk-LZNYQYDU.js.map → chunk-UR2KFP6P.js.map} +0 -0
  98. /package/dist/{chunk-EKZ6V7SE.js.map → chunk-XM2GVJPE.js.map} +0 -0
  99. /package/dist/{chunk-HLXXP3CS.js.map → chunk-XS3IJG4V.js.map} +0 -0
  100. /package/dist/{chunk-ILA4UGXI.js.map → chunk-YBW45NIZ.js.map} +0 -0
  101. /package/dist/{chunk-PENEGF75.js.map → chunk-YG3UYPKL.js.map} +0 -0
  102. /package/dist/{chunk-LFFXUHX3.js.map → chunk-YT7EP2B6.js.map} +0 -0
  103. /package/dist/{chunk-TLFZPJOY.js.map → chunk-YYVBEHM3.js.map} +0 -0
  104. /package/dist/{cli-circuit-breaker-MCQG3PQK.js.map → cli-circuit-breaker-IFVKXCHQ.js.map} +0 -0
  105. /package/dist/{composite-router-QAYCHEFG.js.map → composite-router-7LFS4CMF.js.map} +0 -0
  106. /package/dist/{consensus-vote-UHNEKOO7.js.map → consensus-vote-SA2KVDQA.js.map} +0 -0
  107. /package/dist/{context-retriever-UXQCDDRY.js.map → context-retriever-V7OWZW7R.js.map} +0 -0
  108. /package/dist/{doctor-deep-QRLRDFM4.js.map → doctor-deep-GJPTXS2N.js.map} +0 -0
  109. /package/dist/{doctor-live-CUKBQSSH.js.map → doctor-live-ET5O7O2D.js.map} +0 -0
  110. /package/dist/{expert-bridge-ZG2IA3RJ.js.map → expert-bridge-G656VGZG.js.map} +0 -0
  111. /package/dist/{factory-FPNYFKXU.js.map → factory-BQBFECEV.js.map} +0 -0
  112. /package/dist/{factory-RQEHJ4AW.js.map → factory-N34PTEMW.js.map} +0 -0
  113. /package/dist/{improvement-review-N36SVUDG.js.map → improvement-review-YIXDCEX4.js.map} +0 -0
  114. /package/dist/{init-opencode-4QECASK4.js.map → init-opencode-33EU3PD6.js.map} +0 -0
  115. /package/dist/{issue-triage-BIEZBWV2.js.map → issue-triage-URFEVDIX.js.map} +0 -0
  116. /package/dist/{pr-reviewer-helpers-RK5IT4US.js.map → pr-reviewer-helpers-ZDAJARQ7.js.map} +0 -0
  117. /package/dist/{registry-command-MBZFFDWS.js.map → registry-command-AB7KP7DK.js.map} +0 -0
  118. /package/dist/{repo-security-plan-W76YLC2M.js.map → repo-security-plan-YV3ZFKGO.js.map} +0 -0
  119. /package/dist/{research-helpers-synthesize-GI5JFAQM.js.map → research-helpers-synthesize-EOHUBGH3.js.map} +0 -0
  120. /package/dist/{routing-memory-WLCUOPDE.js.map → routing-memory-34JWGSAI.js.map} +0 -0
  121. /package/dist/{session-memory-HU3XMQEH.js.map → session-memory-QGIJCM7P.js.map} +0 -0
  122. /package/dist/{setup-config-XA756R2O.js.map → setup-config-3KBMBPCN.js.map} +0 -0
  123. /package/dist/{setup-custom-api-ETBGOE7O.js.map → setup-custom-api-652FK232.js.map} +0 -0
  124. /package/dist/{setup-data-dir-UNM34FGW.js.map → setup-data-dir-XJMN4ALO.js.map} +0 -0
  125. /package/dist/{tool-memory-7XMQAQQM.js.map → tool-memory-SPPCBLKQ.js.map} +0 -0
  126. /package/dist/{unified-registry-LR4OCUFI.js.map → unified-registry-ZOLSOVYN.js.map} +0 -0
  127. /package/dist/{weather-report-UYKQUSBB.js.map → weather-report-OHHDUNX3.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getErrorMessage
3
- } from "./chunk-NZN3SWSZ.js";
3
+ } from "./chunk-P2RI4DGX.js";
4
4
 
5
5
  // src/cli/setup-config.ts
6
6
  import { copyFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
@@ -77,4 +77,4 @@ function ensureBackup(outputPath) {
77
77
  export {
78
78
  runConfigInitSync
79
79
  };
80
- //# sourceMappingURL=chunk-PENEGF75.js.map
80
+ //# sourceMappingURL=chunk-YG3UYPKL.js.map
@@ -3,7 +3,7 @@ import {
3
3
  ValidationError,
4
4
  createLogger,
5
5
  formatZodError
6
- } from "./chunk-NZN3SWSZ.js";
6
+ } from "./chunk-P2RI4DGX.js";
7
7
 
8
8
  // src/security/ast-rule-runner.ts
9
9
  import { existsSync } from "node:fs";
@@ -241,4 +241,4 @@ export {
241
241
  collectAstQaFindings,
242
242
  runAstQaRules
243
243
  };
244
- //# sourceMappingURL=chunk-LFFXUHX3.js.map
244
+ //# sourceMappingURL=chunk-YT7EP2B6.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createAutoAdapter
3
- } from "./chunk-JYZNPK62.js";
3
+ } from "./chunk-P5ND7MWI.js";
4
4
  import {
5
5
  getDefaultCliCircuitBreakerRegistry,
6
6
  mapModelErrorToCategory
7
- } from "./chunk-XU2SJKFK.js";
7
+ } from "./chunk-2C5ABWLK.js";
8
8
  import {
9
9
  CircularBuffer,
10
10
  ConfigError,
@@ -28,7 +28,7 @@ import {
28
28
  resolveModelIdentitySync,
29
29
  toRateLimitError,
30
30
  warnIfGatewayCostUndeclared
31
- } from "./chunk-NZN3SWSZ.js";
31
+ } from "./chunk-P2RI4DGX.js";
32
32
 
33
33
  // src/config/model-equivalence.ts
34
34
  function canonicalModelKey(modelId) {
@@ -975,4 +975,4 @@ export {
975
975
  getGlobalRegistry,
976
976
  resetGlobalRegistry
977
977
  };
978
- //# sourceMappingURL=chunk-TLFZPJOY.js.map
978
+ //# sourceMappingURL=chunk-YYVBEHM3.js.map
@@ -3,8 +3,8 @@ import {
3
3
  createCliCircuitBreakerIntegration,
4
4
  getCliCircuitBreakerSnapshot,
5
5
  getDefaultCliCircuitBreakerRegistry
6
- } from "./chunk-XU2SJKFK.js";
7
- import "./chunk-NZN3SWSZ.js";
6
+ } from "./chunk-2C5ABWLK.js";
7
+ import "./chunk-P2RI4DGX.js";
8
8
  import "./chunk-UE7A2XHM.js";
9
9
  import "./chunk-LWOX65CP.js";
10
10
  import "./chunk-PX6F3LHL.js";
@@ -14,4 +14,4 @@ export {
14
14
  getCliCircuitBreakerSnapshot,
15
15
  getDefaultCliCircuitBreakerRegistry
16
16
  };
17
- //# sourceMappingURL=cli-circuit-breaker-MCQG3PQK.js.map
17
+ //# sourceMappingURL=cli-circuit-breaker-IFVKXCHQ.js.map
package/dist/cli.js CHANGED
@@ -23,11 +23,11 @@ import {
23
23
  parseExpertReview,
24
24
  reviewPostingBlock,
25
25
  sumFindings
26
- } from "./chunk-AXBEG6VW.js";
27
- import "./chunk-3PQIIMHN.js";
26
+ } from "./chunk-6ZPHMRJQ.js";
27
+ import "./chunk-DGW6C2PT.js";
28
28
  import {
29
29
  runConfigInitSync
30
- } from "./chunk-PENEGF75.js";
30
+ } from "./chunk-YG3UYPKL.js";
31
31
  import {
32
32
  AuthHandler,
33
33
  CustomExpertDefinitionSchema,
@@ -155,11 +155,11 @@ import {
155
155
  validateNexusEnv,
156
156
  validateWorkflow,
157
157
  wrapInMarkdownFence
158
- } from "./chunk-E6AJH4F4.js";
159
- import "./chunk-3IBALX36.js";
158
+ } from "./chunk-NBVYSGSS.js";
159
+ import "./chunk-LVL6WCWK.js";
160
160
  import "./chunk-4GDMHCKX.js";
161
161
  import "./chunk-7ETWTSTB.js";
162
- import "./chunk-LFFXUHX3.js";
162
+ import "./chunk-YT7EP2B6.js";
163
163
  import {
164
164
  CATEGORY_DISPLAY_NAMES,
165
165
  DEFAULT_PR_REVIEW_CONFIG
@@ -175,11 +175,11 @@ import {
175
175
  doctorCommand,
176
176
  initDataDirectories,
177
177
  runDoctor
178
- } from "./chunk-5XZCL7QT.js";
179
- import "./chunk-TRCYUQ4M.js";
178
+ } from "./chunk-LBYA22G5.js";
179
+ import "./chunk-PEN5XFMP.js";
180
180
  import {
181
181
  shutdownExpertBridge
182
- } from "./chunk-EKZ6V7SE.js";
182
+ } from "./chunk-XM2GVJPE.js";
183
183
  import {
184
184
  ConsensusVoteInputSchema,
185
185
  DEFAULT_VOTE_TIMEOUT_MS,
@@ -197,19 +197,19 @@ import {
197
197
  registerConsensusVoteTool,
198
198
  seatFallbacks,
199
199
  toRecordDecision
200
- } from "./chunk-GXBXZCY7.js";
200
+ } from "./chunk-NRSAOTT7.js";
201
201
  import {
202
202
  buildOpenAICompatAdapters,
203
203
  readOpenAICompatEndpoint,
204
204
  readOpenAICompatEnv
205
- } from "./chunk-BJXSG5YL.js";
205
+ } from "./chunk-4W4S6OBP.js";
206
206
  import {
207
207
  allOf,
208
208
  anyOf
209
- } from "./chunk-OQB3XC5O.js";
209
+ } from "./chunk-EZNIYU5T.js";
210
210
  import {
211
211
  synthesizeResearch
212
- } from "./chunk-Z5VUMKF5.js";
212
+ } from "./chunk-5JZ635RM.js";
213
213
  import {
214
214
  DRAFT_REPLY_BODY_MAX_LENGTH,
215
215
  configureUntrustedInputFirewall,
@@ -220,12 +220,12 @@ import {
220
220
  runUntrustedInputFirewall,
221
221
  validateActionCorroboration,
222
222
  validateAgentAction
223
- } from "./chunk-JYKRCQSU.js";
224
- import "./chunk-SCXCJSTT.js";
223
+ } from "./chunk-H7PL2D5A.js";
224
+ import "./chunk-3E4BZR3V.js";
225
225
  import {
226
226
  ReputationCache,
227
227
  sanitizeInput
228
- } from "./chunk-5GZ4UN5F.js";
228
+ } from "./chunk-GLG667IV.js";
229
229
  import {
230
230
  ImprovementReviewInputSchema,
231
231
  calculateFitnessScore,
@@ -239,7 +239,7 @@ import {
239
239
  registerImprovementReviewTool,
240
240
  runImprovementReview,
241
241
  scanForSecrets
242
- } from "./chunk-HLXXP3CS.js";
242
+ } from "./chunk-XS3IJG4V.js";
243
243
  import {
244
244
  createDefaultPolicyFirewall,
245
245
  formatPolicyRolloutMode,
@@ -249,17 +249,17 @@ import {
249
249
  setGlobalPolicyFirewall,
250
250
  setSecureHandlerAuditLogger,
251
251
  stagePolicyFirewallForRollout
252
- } from "./chunk-GYQIIAVM.js";
252
+ } from "./chunk-K6IVHUEK.js";
253
253
  import {
254
254
  NODE_ENGINE_RANGE,
255
255
  VERSION,
256
256
  isNodeVersionSupported
257
- } from "./chunk-JRZEB4OQ.js";
257
+ } from "./chunk-U2C6V65K.js";
258
258
  import {
259
259
  claimGlobalRegistry,
260
260
  createUnifiedRegistry,
261
261
  getGlobalRegistry
262
- } from "./chunk-TLFZPJOY.js";
262
+ } from "./chunk-YYVBEHM3.js";
263
263
  import {
264
264
  CodebaseIndexSchema,
265
265
  PaperStatusSchema,
@@ -285,7 +285,7 @@ import {
285
285
  loadSourcesRegistry,
286
286
  rankDiscoveredItems,
287
287
  saveSourcesRegistry
288
- } from "./chunk-KQE7EFBF.js";
288
+ } from "./chunk-6YQ55DOE.js";
289
289
  import {
290
290
  getTsMorph
291
291
  } from "./chunk-W654ME6B.js";
@@ -293,21 +293,21 @@ import {
293
293
  loadPapersRegistry,
294
294
  loadTechniquesRegistry,
295
295
  savePapersRegistry
296
- } from "./chunk-CG7OSI5P.js";
296
+ } from "./chunk-F3PIVN3B.js";
297
297
  import {
298
298
  resolveToken
299
- } from "./chunk-UDWZJY3V.js";
299
+ } from "./chunk-GPEGBNGB.js";
300
300
  import {
301
301
  MemoryError,
302
302
  configureToolMemory,
303
303
  shutdownToolMemory
304
- } from "./chunk-VM4HZT3B.js";
304
+ } from "./chunk-TFZDHQ45.js";
305
305
  import {
306
306
  capitalize,
307
307
  capitalizeKebab,
308
308
  truncateText
309
309
  } from "./chunk-7LP6VJRP.js";
310
- import "./chunk-ILA4UGXI.js";
310
+ import "./chunk-YBW45NIZ.js";
311
311
  import {
312
312
  BUILT_IN_EXPERTS
313
313
  } from "./chunk-AHI43IQB.js";
@@ -321,30 +321,30 @@ import {
321
321
  probeAllClis,
322
322
  readSubprocessDepth,
323
323
  safeJsonParse
324
- } from "./chunk-JYZNPK62.js";
325
- import "./chunk-ZTTBGME2.js";
324
+ } from "./chunk-P5ND7MWI.js";
325
+ import "./chunk-5XCRXV43.js";
326
326
  import {
327
327
  DEFAULTS
328
- } from "./chunk-XJAGCUMD.js";
328
+ } from "./chunk-R57JPKHJ.js";
329
329
  import {
330
330
  hostnameOf,
331
331
  warnDeprecatedGatewayEnvOnce
332
- } from "./chunk-LZNYQYDU.js";
332
+ } from "./chunk-UR2KFP6P.js";
333
333
  import {
334
334
  getNexusTmpDir,
335
335
  nexusMkdtempSync
336
336
  } from "./chunk-OITVVSWO.js";
337
- import "./chunk-6FFBX665.js";
337
+ import "./chunk-SFHIXQGK.js";
338
338
  import "./chunk-2NDA4DHW.js";
339
339
  import {
340
340
  DEFAULT_EXECUTION_MODE
341
341
  } from "./chunk-ECJ52NSK.js";
342
342
  import "./chunk-QZUG667L.js";
343
- import "./chunk-4IV25ZUM.js";
343
+ import "./chunk-RQBI56JN.js";
344
344
  import {
345
345
  getDefaultCliCircuitBreakerRegistry,
346
346
  mapModelErrorToCategory
347
- } from "./chunk-XU2SJKFK.js";
347
+ } from "./chunk-2C5ABWLK.js";
348
348
  import {
349
349
  API_TIMEOUTS,
350
350
  AgentCapability,
@@ -440,7 +440,7 @@ import {
440
440
  validateTimeout,
441
441
  writeEmptyLine,
442
442
  writeLine
443
- } from "./chunk-NZN3SWSZ.js";
443
+ } from "./chunk-P2RI4DGX.js";
444
444
  import "./chunk-UE7A2XHM.js";
445
445
  import {
446
446
  applyPortableMode,
@@ -4537,7 +4537,7 @@ Provide a structured review with:
4537
4537
  * (Source: Issue #828 — Wire policy gate into production pipeline)
4538
4538
  */
4539
4539
  async postReviewToGitHub(provider, pr, result, context) {
4540
- const { formatReviewComment: formatReviewComment2 } = await import("./pr-reviewer-helpers-RK5IT4US.js");
4540
+ const { formatReviewComment: formatReviewComment2 } = await import("./pr-reviewer-helpers-ZDAJARQ7.js");
4541
4541
  const formattedBody = formatReviewComment2(result);
4542
4542
  const body = truncateText(formattedBody, DRAFT_REPLY_BODY_MAX_LENGTH, "\u2026[review truncated]");
4543
4543
  const sources = buildReviewCitations(pr.files);
@@ -12277,7 +12277,7 @@ function probeGrammars(register, parse6, probes = GRAMMAR_PROBES) {
12277
12277
  }
12278
12278
  async function loadGrammarModules() {
12279
12279
  const [{ ensurePolyglotLangs }, napi] = await Promise.all([
12280
- import("./ast-rule-runner-AMZCLKRV.js"),
12280
+ import("./ast-rule-runner-NOWNF5QY.js"),
12281
12281
  import("@ast-grep/napi")
12282
12282
  ]);
12283
12283
  return { register: ensurePolyglotLangs, parse: napi.parse };
@@ -19877,7 +19877,7 @@ function startImprovementReviewScheduler(options) {
19877
19877
  let running = false;
19878
19878
  const runOnce = async () => {
19879
19879
  try {
19880
- const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-N36SVUDG.js");
19880
+ const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-YIXDCEX4.js");
19881
19881
  const input = ImprovementReviewInputSchema2.parse({ fileIssues });
19882
19882
  const result = await runImprovementReview2(input, { logger: logger23 });
19883
19883
  logger23.info("Scheduled improvement_review complete", {
@@ -20771,12 +20771,53 @@ function logFinalEventBusStats(logger23) {
20771
20771
  errorCount: finalStats.errorCount
20772
20772
  });
20773
20773
  }
20774
- function watchParentProcess(logger23) {
20775
- const monitor = getStdinLifecycleMonitor();
20774
+ var SHUTDOWN_CLEANUP_TIMEOUT_MS = 12e3;
20775
+ function createGracefulShutdown(options) {
20776
+ const { cleanup, logger: logger23 } = options;
20777
+ const exit = options.exit ?? ((code) => process.exit(code));
20778
+ const timeoutMs = options.timeoutMs ?? SHUTDOWN_CLEANUP_TIMEOUT_MS;
20779
+ let isShuttingDown = false;
20780
+ return async (reason) => {
20781
+ if (isShuttingDown) {
20782
+ logger23.debug("Shutdown already in progress, ignoring signal", { signal: reason });
20783
+ return;
20784
+ }
20785
+ isShuttingDown = true;
20786
+ logger23.info("Received shutdown signal", { signal: reason });
20787
+ let timer;
20788
+ const timedOut = new Promise((resolve16) => {
20789
+ timer = setTimeout(() => {
20790
+ resolve16("timeout");
20791
+ }, timeoutMs);
20792
+ });
20793
+ try {
20794
+ const outcome = await Promise.race([cleanup().then(() => "done"), timedOut]);
20795
+ if (outcome === "timeout") {
20796
+ logger23.error(
20797
+ "Shutdown cleanup timed out; exiting without completing it",
20798
+ new Error(`shutdown cleanup exceeded ${String(timeoutMs)}ms (trigger: ${reason})`)
20799
+ );
20800
+ exit(EXIT_CODES.SHUTDOWN_ERROR);
20801
+ return;
20802
+ }
20803
+ logger23.info("Shutdown complete");
20804
+ exit(EXIT_CODES.SUCCESS);
20805
+ } catch (error) {
20806
+ logger23.error(
20807
+ "Error during shutdown",
20808
+ error instanceof Error ? error : new Error(String(error))
20809
+ );
20810
+ exit(EXIT_CODES.SHUTDOWN_ERROR);
20811
+ } finally {
20812
+ clearTimeout(timer);
20813
+ }
20814
+ };
20815
+ }
20816
+ function watchParentProcess(logger23, requestShutdown, monitor = getStdinLifecycleMonitor()) {
20776
20817
  monitor.start();
20777
20818
  monitor.onClose(() => {
20778
20819
  logger23.warn("Parent process closed stdin, shutting down");
20779
- process.exit(0);
20820
+ return requestShutdown("parent-gone");
20780
20821
  });
20781
20822
  }
20782
20823
 
@@ -22171,7 +22212,7 @@ function adaptConfigToLibrary(config) {
22171
22212
  }
22172
22213
  function createBeliefPromoter() {
22173
22214
  return async (event) => {
22174
- const { getToolMemory } = await import("./tool-memory-7XMQAQQM.js");
22215
+ const { getToolMemory } = await import("./tool-memory-SPPCBLKQ.js");
22175
22216
  const tm = getToolMemory();
22176
22217
  await tm.recordBelief(
22177
22218
  `skill:${event.name}`,
@@ -22394,26 +22435,7 @@ function logSecurityConfig(logger23, config) {
22394
22435
 
22395
22436
  // src/cli-server.ts
22396
22437
  function setupShutdownHandlers(cleanup, logger23) {
22397
- let isShuttingDown = false;
22398
- const handleShutdown = async (signal) => {
22399
- if (isShuttingDown) {
22400
- logger23.debug("Shutdown already in progress, ignoring signal", { signal });
22401
- return;
22402
- }
22403
- isShuttingDown = true;
22404
- logger23.info("Received shutdown signal", { signal });
22405
- try {
22406
- await cleanup();
22407
- logger23.info("Shutdown complete");
22408
- process.exit(EXIT_CODES.SUCCESS);
22409
- } catch (error) {
22410
- logger23.error(
22411
- "Error during shutdown",
22412
- error instanceof Error ? error : new Error(String(error))
22413
- );
22414
- process.exit(EXIT_CODES.SHUTDOWN_ERROR);
22415
- }
22416
- };
22438
+ const handleShutdown = createGracefulShutdown({ cleanup, logger: logger23 });
22417
22439
  const onSignal = (signal) => () => {
22418
22440
  handleShutdown(signal).catch((err2) => {
22419
22441
  logger23.error("Shutdown handler crashed", err2 instanceof Error ? err2 : new Error(String(err2)));
@@ -22431,6 +22453,7 @@ function setupShutdownHandlers(cleanup, logger23) {
22431
22453
  logger23.error("Unhandled rejection", error);
22432
22454
  process.exit(EXIT_CODES.SERVER_START_FAILED);
22433
22455
  });
22456
+ return handleShutdown;
22434
22457
  }
22435
22458
  function logStartupInfo(logger23, detectionResult, verbose) {
22436
22459
  logger23.info("Starting Nexus Agents", {
@@ -22659,7 +22682,6 @@ async function startServer(verbose, mode, modeWasExplicit = false, orchestratorO
22659
22682
  const { server, serverLogger, observer, eventBusBridge, auditLogger } = await initializeSubsystems(configResult.config, logger23);
22660
22683
  await connectToStdioTransport(server, logger23, serverLogger);
22661
22684
  const eventContext = recordServerStartup(observer);
22662
- watchParentProcess(logger23);
22663
22685
  const cleanup = createShutdownCleanup({
22664
22686
  eventBusBridge,
22665
22687
  observer,
@@ -22669,7 +22691,8 @@ async function startServer(verbose, mode, modeWasExplicit = false, orchestratorO
22669
22691
  logger: logger23,
22670
22692
  auditLogger
22671
22693
  });
22672
- setupShutdownHandlers(cleanup, logger23);
22694
+ const requestShutdown = setupShutdownHandlers(cleanup, logger23);
22695
+ watchParentProcess(logger23, requestShutdown);
22673
22696
  clearTimeout(startupWatchdog);
22674
22697
  recordStartupComplete(auditLogger, mode);
22675
22698
  logger23.debug("Server running, waiting for requests...");
@@ -23402,7 +23425,7 @@ async function handleResearchCommand(args) {
23402
23425
  }
23403
23426
  }
23404
23427
  async function handleRegistryCommand(args) {
23405
- const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-MBZFFDWS.js");
23428
+ const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-AB7KP7DK.js");
23406
23429
  const subcommand = args.subcommand;
23407
23430
  if (!isValidRegistrySubcommand(subcommand)) {
23408
23431
  process.stdout.write(`${formatRegistryUsage()}
@@ -23450,12 +23473,12 @@ async function handleVerifyCommand(args) {
23450
23473
  async function handleDoctorCommand(args) {
23451
23474
  const exitCode = await doctorCommand({ fix: args.options.fix });
23452
23475
  if (args.options.deep) {
23453
- const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-QRLRDFM4.js");
23476
+ const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-GJPTXS2N.js");
23454
23477
  const diag = runDeepDiagnostics2();
23455
23478
  process.stdout.write(formatDeepDiagnostics2(diag) + "\n");
23456
23479
  }
23457
23480
  if (args.options.live) {
23458
- const { runLiveReadiness, formatLiveReadiness } = await import("./doctor-live-CUKBQSSH.js");
23481
+ const { runLiveReadiness, formatLiveReadiness } = await import("./doctor-live-ET5O7O2D.js");
23459
23482
  const report = await runLiveReadiness();
23460
23483
  process.stdout.write(formatLiveReadiness(report) + "\n");
23461
23484
  if (report.some((r) => r.levels.serves.status === "failed")) {
@@ -24188,7 +24211,7 @@ async function runInitPortableFlow(args) {
24188
24211
  return cliExit(result.success ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
24189
24212
  }
24190
24213
  async function runInitOpencodeFlow(args) {
24191
- const { runInitOpencode } = await import("./init-opencode-4QECASK4.js");
24214
+ const { runInitOpencode } = await import("./init-opencode-33EU3PD6.js");
24192
24215
  const opencodePath = args.options.opencode;
24193
24216
  if (opencodePath === void 0 || opencodePath === "") {
24194
24217
  process.stderr.write("Error: --opencode requires a path argument.\n");
@@ -24214,7 +24237,7 @@ async function runInitOpencodeFlow(args) {
24214
24237
  return cliExit(EXIT_CODES.SUCCESS);
24215
24238
  }
24216
24239
  async function renderOpencodeValidate(opencodePath) {
24217
- const { runOpencodeValidate } = await import("./init-opencode-4QECASK4.js");
24240
+ const { runOpencodeValidate } = await import("./init-opencode-33EU3PD6.js");
24218
24241
  const result = await runOpencodeValidate(opencodePath);
24219
24242
  if (!result.ok) {
24220
24243
  process.stderr.write(`init --opencode --validate: ${result.reason ?? "failed"}
@@ -24253,7 +24276,7 @@ async function handleSetupCommandAsync(args) {
24253
24276
  return cliExitFromStatus(exitCode);
24254
24277
  }
24255
24278
  async function runCustomApiSetup(args) {
24256
- const { configureCustomApi } = await import("./setup-custom-api-ETBGOE7O.js");
24279
+ const { configureCustomApi } = await import("./setup-custom-api-652FK232.js");
24257
24280
  const baseUrl = args.options.customApi;
24258
24281
  if (baseUrl === void 0) return EXIT_CODES.SERVER_START_FAILED;
24259
24282
  const input = {