nexus-agents 2.166.0 → 2.166.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/{child-mcp-config-LQ4IKFSN.js → child-mcp-config-AUA4TFBG.js} +2 -2
  2. package/dist/{chunk-3HVF4BG4.js → chunk-3LVB5OE2.js} +2 -2
  3. package/dist/{chunk-YPPYRLDF.js → chunk-6LXTT6AK.js} +2 -2
  4. package/dist/{chunk-YOFRUVPJ.js → chunk-76Q6GTPU.js} +2 -2
  5. package/dist/{chunk-3ACDP4E6.js → chunk-AO4X3BMP.js} +26 -9
  6. package/dist/chunk-AO4X3BMP.js.map +1 -0
  7. package/dist/{chunk-RXI5ONP7.js → chunk-AWPSFL5C.js} +2 -2
  8. package/dist/{chunk-NBPA4PQD.js → chunk-BFDVV3Q3.js} +2 -2
  9. package/dist/{chunk-MYNI3CYT.js → chunk-BZFF3YWU.js} +4 -4
  10. package/dist/{chunk-LQ2ABFLI.js → chunk-DMFMJFRY.js} +2 -2
  11. package/dist/{chunk-TZNJCTNQ.js → chunk-F2YZ3U6O.js} +2 -2
  12. package/dist/{chunk-2255SARF.js → chunk-FKHQWC2L.js} +2 -2
  13. package/dist/{chunk-55NRU7SV.js → chunk-FQNG6ZIW.js} +8 -8
  14. package/dist/{chunk-2UMMVKUW.js → chunk-FZV4YAYT.js} +3 -3
  15. package/dist/{chunk-33X5V4PL.js → chunk-GS3UPAUE.js} +2 -2
  16. package/dist/{chunk-U43BUJSN.js → chunk-HNAFWKJG.js} +7 -7
  17. package/dist/{chunk-MQUSJVER.js → chunk-I7OZP6FS.js} +4 -4
  18. package/dist/{chunk-RBN4WXOA.js → chunk-IF46G2LM.js} +2 -2
  19. package/dist/{chunk-RC5SCDGF.js → chunk-JBH4CU46.js} +180 -86
  20. package/dist/{chunk-RC5SCDGF.js.map → chunk-JBH4CU46.js.map} +1 -1
  21. package/dist/{chunk-CVLVWHXG.js → chunk-JYVPM37A.js} +5 -5
  22. package/dist/{chunk-LUP26FMZ.js → chunk-K2IX6BEK.js} +4 -4
  23. package/dist/{chunk-ZNY7MM2J.js → chunk-LRBEUBZ3.js} +3 -3
  24. package/dist/{chunk-FKOWIKR4.js → chunk-NEQJSYJH.js} +3 -3
  25. package/dist/{chunk-LKSG75LC.js → chunk-OI6H3DL6.js} +4 -4
  26. package/dist/{chunk-TFYQRAWT.js → chunk-ORRKK563.js} +3 -3
  27. package/dist/{chunk-6PYVTJZF.js → chunk-P54BDACX.js} +2 -2
  28. package/dist/{chunk-DUUMMELV.js → chunk-PRSGZQNB.js} +3 -3
  29. package/dist/{chunk-OUBDTDTC.js → chunk-PXTZ6RPP.js} +7 -7
  30. package/dist/{chunk-SF2AK3JB.js → chunk-THI3VWHO.js} +2 -2
  31. package/dist/{chunk-WOQCCQSE.js → chunk-UO6C5J5D.js} +5 -5
  32. package/dist/{chunk-JV64QX3Y.js → chunk-UWRDWX6L.js} +2 -2
  33. package/dist/{chunk-3SMFRAX5.js → chunk-V5RPW2ZX.js} +3 -3
  34. package/dist/{chunk-JBZMUKT4.js → chunk-WL4SGKAW.js} +2 -2
  35. package/dist/{chunk-3GYRM7D6.js → chunk-WOY6TQCH.js} +33 -9
  36. package/dist/{chunk-3GYRM7D6.js.map → chunk-WOY6TQCH.js.map} +1 -1
  37. package/dist/{chunk-NXJJZEUO.js → chunk-YKTVN2TF.js} +2 -2
  38. package/dist/{chunk-PZ3BB3PO.js → chunk-Z66EEQ4A.js} +3 -3
  39. package/dist/{chunk-IXZXG2MY.js → chunk-ZI4PO2A3.js} +7 -7
  40. package/dist/{cli-circuit-breaker-5IGBBD7R.js → cli-circuit-breaker-FSUDU7BV.js} +4 -4
  41. package/dist/cli.js +135 -108
  42. package/dist/cli.js.map +1 -1
  43. package/dist/codebase-search-DKLEA4PR.js +12 -0
  44. package/dist/{composite-router-62KI56W6.js → composite-router-HC4YLG5W.js} +2 -2
  45. package/dist/{consensus-vote-M4ZELBV4.js → consensus-vote-KWPS6WNH.js} +15 -15
  46. package/dist/{context-retriever-5UJC5KDZ.js → context-retriever-YCKTCDGM.js} +10 -8
  47. package/dist/{doctor-deep-7OR5MYMI.js → doctor-deep-4UARVVSD.js} +3 -3
  48. package/dist/{expert-bridge-BNMCDENK.js → expert-bridge-EAR6XZJA.js} +4 -4
  49. package/dist/{factory-QLW773DP.js → factory-7SVW7XMV.js} +5 -5
  50. package/dist/{factory-77GX5DG4.js → factory-JYAUOFEN.js} +8 -8
  51. package/dist/{improvement-review-KDM6OL25.js → improvement-review-AHSY5ZXD.js} +5 -5
  52. package/dist/index.d.ts +3 -0
  53. package/dist/index.js +31 -31
  54. package/dist/{init-opencode-FXKABSGS.js → init-opencode-5BKE7UEB.js} +6 -6
  55. package/dist/{issue-triage-OVX4VSUN.js → issue-triage-TNV4R33I.js} +6 -6
  56. package/dist/{pr-reviewer-helpers-VGIBNZBX.js → pr-reviewer-helpers-ZC2I5ZYD.js} +4 -4
  57. package/dist/{registry-command-CGMRLZQ2.js → registry-command-O2GLHG3G.js} +2 -2
  58. package/dist/{repo-security-plan-TBCMGL5Z.js → repo-security-plan-CFRLHIMY.js} +3 -3
  59. package/dist/{research-helpers-synthesize-76ZZYWJ5.js → research-helpers-synthesize-ONWBGXHO.js} +4 -4
  60. package/dist/{routing-memory-PZ4LTLXJ.js → routing-memory-XHZKEPUH.js} +2 -2
  61. package/dist/{session-memory-C55R7LGY.js → session-memory-5QVKDE4U.js} +3 -3
  62. package/dist/{setup-command-HMXY5UHN.js → setup-command-G7OB4QQG.js} +11 -11
  63. package/dist/{setup-config-SMRMMT6Z.js → setup-config-MMBOL5CW.js} +3 -3
  64. package/dist/{setup-custom-api-42JXTJHU.js → setup-custom-api-RQ3BUMJC.js} +3 -3
  65. package/dist/{tool-memory-LCDNVPFI.js → tool-memory-VK4IZLPN.js} +5 -5
  66. package/dist/{unified-registry-XEXWGKV5.js → unified-registry-ZOTGM4EY.js} +9 -9
  67. package/dist/{weather-report-DPADAXFN.js → weather-report-MPD66LKP.js} +2 -2
  68. package/package.json +5 -5
  69. package/dist/chunk-3ACDP4E6.js.map +0 -1
  70. package/dist/codebase-search-PWMWLU7O.js +0 -8
  71. /package/dist/{child-mcp-config-LQ4IKFSN.js.map → child-mcp-config-AUA4TFBG.js.map} +0 -0
  72. /package/dist/{chunk-3HVF4BG4.js.map → chunk-3LVB5OE2.js.map} +0 -0
  73. /package/dist/{chunk-YPPYRLDF.js.map → chunk-6LXTT6AK.js.map} +0 -0
  74. /package/dist/{chunk-YOFRUVPJ.js.map → chunk-76Q6GTPU.js.map} +0 -0
  75. /package/dist/{chunk-RXI5ONP7.js.map → chunk-AWPSFL5C.js.map} +0 -0
  76. /package/dist/{chunk-NBPA4PQD.js.map → chunk-BFDVV3Q3.js.map} +0 -0
  77. /package/dist/{chunk-MYNI3CYT.js.map → chunk-BZFF3YWU.js.map} +0 -0
  78. /package/dist/{chunk-LQ2ABFLI.js.map → chunk-DMFMJFRY.js.map} +0 -0
  79. /package/dist/{chunk-TZNJCTNQ.js.map → chunk-F2YZ3U6O.js.map} +0 -0
  80. /package/dist/{chunk-2255SARF.js.map → chunk-FKHQWC2L.js.map} +0 -0
  81. /package/dist/{chunk-55NRU7SV.js.map → chunk-FQNG6ZIW.js.map} +0 -0
  82. /package/dist/{chunk-2UMMVKUW.js.map → chunk-FZV4YAYT.js.map} +0 -0
  83. /package/dist/{chunk-33X5V4PL.js.map → chunk-GS3UPAUE.js.map} +0 -0
  84. /package/dist/{chunk-U43BUJSN.js.map → chunk-HNAFWKJG.js.map} +0 -0
  85. /package/dist/{chunk-MQUSJVER.js.map → chunk-I7OZP6FS.js.map} +0 -0
  86. /package/dist/{chunk-RBN4WXOA.js.map → chunk-IF46G2LM.js.map} +0 -0
  87. /package/dist/{chunk-CVLVWHXG.js.map → chunk-JYVPM37A.js.map} +0 -0
  88. /package/dist/{chunk-LUP26FMZ.js.map → chunk-K2IX6BEK.js.map} +0 -0
  89. /package/dist/{chunk-ZNY7MM2J.js.map → chunk-LRBEUBZ3.js.map} +0 -0
  90. /package/dist/{chunk-FKOWIKR4.js.map → chunk-NEQJSYJH.js.map} +0 -0
  91. /package/dist/{chunk-LKSG75LC.js.map → chunk-OI6H3DL6.js.map} +0 -0
  92. /package/dist/{chunk-TFYQRAWT.js.map → chunk-ORRKK563.js.map} +0 -0
  93. /package/dist/{chunk-6PYVTJZF.js.map → chunk-P54BDACX.js.map} +0 -0
  94. /package/dist/{chunk-DUUMMELV.js.map → chunk-PRSGZQNB.js.map} +0 -0
  95. /package/dist/{chunk-OUBDTDTC.js.map → chunk-PXTZ6RPP.js.map} +0 -0
  96. /package/dist/{chunk-SF2AK3JB.js.map → chunk-THI3VWHO.js.map} +0 -0
  97. /package/dist/{chunk-WOQCCQSE.js.map → chunk-UO6C5J5D.js.map} +0 -0
  98. /package/dist/{chunk-JV64QX3Y.js.map → chunk-UWRDWX6L.js.map} +0 -0
  99. /package/dist/{chunk-3SMFRAX5.js.map → chunk-V5RPW2ZX.js.map} +0 -0
  100. /package/dist/{chunk-JBZMUKT4.js.map → chunk-WL4SGKAW.js.map} +0 -0
  101. /package/dist/{chunk-NXJJZEUO.js.map → chunk-YKTVN2TF.js.map} +0 -0
  102. /package/dist/{chunk-PZ3BB3PO.js.map → chunk-Z66EEQ4A.js.map} +0 -0
  103. /package/dist/{chunk-IXZXG2MY.js.map → chunk-ZI4PO2A3.js.map} +0 -0
  104. /package/dist/{cli-circuit-breaker-5IGBBD7R.js.map → cli-circuit-breaker-FSUDU7BV.js.map} +0 -0
  105. /package/dist/{codebase-search-PWMWLU7O.js.map → codebase-search-DKLEA4PR.js.map} +0 -0
  106. /package/dist/{composite-router-62KI56W6.js.map → composite-router-HC4YLG5W.js.map} +0 -0
  107. /package/dist/{consensus-vote-M4ZELBV4.js.map → consensus-vote-KWPS6WNH.js.map} +0 -0
  108. /package/dist/{context-retriever-5UJC5KDZ.js.map → context-retriever-YCKTCDGM.js.map} +0 -0
  109. /package/dist/{doctor-deep-7OR5MYMI.js.map → doctor-deep-4UARVVSD.js.map} +0 -0
  110. /package/dist/{expert-bridge-BNMCDENK.js.map → expert-bridge-EAR6XZJA.js.map} +0 -0
  111. /package/dist/{factory-77GX5DG4.js.map → factory-7SVW7XMV.js.map} +0 -0
  112. /package/dist/{factory-QLW773DP.js.map → factory-JYAUOFEN.js.map} +0 -0
  113. /package/dist/{improvement-review-KDM6OL25.js.map → improvement-review-AHSY5ZXD.js.map} +0 -0
  114. /package/dist/{init-opencode-FXKABSGS.js.map → init-opencode-5BKE7UEB.js.map} +0 -0
  115. /package/dist/{issue-triage-OVX4VSUN.js.map → issue-triage-TNV4R33I.js.map} +0 -0
  116. /package/dist/{pr-reviewer-helpers-VGIBNZBX.js.map → pr-reviewer-helpers-ZC2I5ZYD.js.map} +0 -0
  117. /package/dist/{registry-command-CGMRLZQ2.js.map → registry-command-O2GLHG3G.js.map} +0 -0
  118. /package/dist/{repo-security-plan-TBCMGL5Z.js.map → repo-security-plan-CFRLHIMY.js.map} +0 -0
  119. /package/dist/{research-helpers-synthesize-76ZZYWJ5.js.map → research-helpers-synthesize-ONWBGXHO.js.map} +0 -0
  120. /package/dist/{routing-memory-PZ4LTLXJ.js.map → routing-memory-XHZKEPUH.js.map} +0 -0
  121. /package/dist/{session-memory-C55R7LGY.js.map → session-memory-5QVKDE4U.js.map} +0 -0
  122. /package/dist/{setup-command-HMXY5UHN.js.map → setup-command-G7OB4QQG.js.map} +0 -0
  123. /package/dist/{setup-config-SMRMMT6Z.js.map → setup-config-MMBOL5CW.js.map} +0 -0
  124. /package/dist/{setup-custom-api-42JXTJHU.js.map → setup-custom-api-RQ3BUMJC.js.map} +0 -0
  125. /package/dist/{tool-memory-LCDNVPFI.js.map → tool-memory-VK4IZLPN.js.map} +0 -0
  126. /package/dist/{unified-registry-XEXWGKV5.js.map → unified-registry-ZOTGM4EY.js.map} +0 -0
  127. /package/dist/{weather-report-DPADAXFN.js.map → weather-report-MPD66LKP.js.map} +0 -0
@@ -11,7 +11,7 @@ import {
11
11
  isRateLimitLikeError,
12
12
  lookupInTreeCapability,
13
13
  ok
14
- } from "./chunk-PZ3BB3PO.js";
14
+ } from "./chunk-Z66EEQ4A.js";
15
15
 
16
16
  // src/config/model-parameter-support.ts
17
17
  function parseClaudeMajorMinor(bareId) {
@@ -828,4 +828,4 @@ export {
828
828
  DEFAULT_COLLECT_STREAM_MAX_CHUNKS,
829
829
  collectStream
830
830
  };
831
- //# sourceMappingURL=chunk-NXJJZEUO.js.map
831
+ //# sourceMappingURL=chunk-YKTVN2TF.js.map
@@ -2619,7 +2619,7 @@ function setDefaultRegistry(registry) {
2619
2619
  }
2620
2620
  async function reloadDefaultRegistry() {
2621
2621
  globalRegistry = buildDefaultRegistry();
2622
- const { resetGlobalRegistry } = await import("./unified-registry-XEXWGKV5.js");
2622
+ const { resetGlobalRegistry } = await import("./unified-registry-ZOTGM4EY.js");
2623
2623
  resetGlobalRegistry();
2624
2624
  return globalRegistry;
2625
2625
  }
@@ -14357,7 +14357,7 @@ var CompositeRouter = class _CompositeRouter {
14357
14357
  */
14358
14358
  async consultUnifiedContext(task) {
14359
14359
  try {
14360
- const { getContextForTask, inferTaskCategory } = await import("./context-retriever-5UJC5KDZ.js");
14360
+ const { getContextForTask, inferTaskCategory } = await import("./context-retriever-YCKTCDGM.js");
14361
14361
  const ctx = await getContextForTask({
14362
14362
  task: task.content,
14363
14363
  category: inferTaskCategory(task.content),
@@ -15946,4 +15946,4 @@ export {
15946
15946
  AgentCapability,
15947
15947
  OrchestratorError
15948
15948
  };
15949
- //# sourceMappingURL=chunk-PZ3BB3PO.js.map
15949
+ //# sourceMappingURL=chunk-Z66EEQ4A.js.map
@@ -5,24 +5,24 @@ import {
5
5
  planOptionalParams,
6
6
  requireApiKey,
7
7
  validateApiKeyPresence
8
- } from "./chunk-NXJJZEUO.js";
8
+ } from "./chunk-YKTVN2TF.js";
9
9
  import {
10
10
  CUSTOM_API_BASE_URL_ENV,
11
11
  CUSTOM_API_DEFAULT_MODEL,
12
12
  PROVIDER_ENV_KEYS,
13
13
  assertCustomApiHostResolvesPublic,
14
14
  validateCustomApiBaseUrl
15
- } from "./chunk-6PYVTJZF.js";
15
+ } from "./chunk-P54BDACX.js";
16
16
  import {
17
17
  CliCircuitBreaker,
18
18
  DEFAULT_CIRCUIT_BREAKER_CONFIG
19
- } from "./chunk-RXI5ONP7.js";
19
+ } from "./chunk-AWPSFL5C.js";
20
20
  import {
21
21
  getAvailabilityCache
22
- } from "./chunk-3HVF4BG4.js";
22
+ } from "./chunk-3LVB5OE2.js";
23
23
  import {
24
24
  generateHyphenId
25
- } from "./chunk-33X5V4PL.js";
25
+ } from "./chunk-GS3UPAUE.js";
26
26
  import {
27
27
  CLI_SUBPROCESS_TIMEOUTS,
28
28
  CLI_TIMEOUTS,
@@ -58,7 +58,7 @@ import {
58
58
  loadModelsDevSnapshot,
59
59
  ok,
60
60
  resolveCliAlias
61
- } from "./chunk-PZ3BB3PO.js";
61
+ } from "./chunk-Z66EEQ4A.js";
62
62
 
63
63
  // src/cli-adapters/cli-to-model-adapter.ts
64
64
  var CliToModelAdapter = class {
@@ -4867,4 +4867,4 @@ export {
4867
4867
  SdkAdapter,
4868
4868
  createAutoAdapter
4869
4869
  };
4870
- //# sourceMappingURL=chunk-IXZXG2MY.js.map
4870
+ //# sourceMappingURL=chunk-ZI4PO2A3.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CliCircuitBreakerIntegration,
3
3
  createCliCircuitBreakerIntegration
4
- } from "./chunk-FKOWIKR4.js";
5
- import "./chunk-RXI5ONP7.js";
6
- import "./chunk-PZ3BB3PO.js";
4
+ } from "./chunk-NEQJSYJH.js";
5
+ import "./chunk-AWPSFL5C.js";
6
+ import "./chunk-Z66EEQ4A.js";
7
7
  import "./chunk-AXTD4TFK.js";
8
8
  import "./chunk-DHVMSIT5.js";
9
9
  import "./chunk-ZPWHCABL.js";
@@ -11,4 +11,4 @@ export {
11
11
  CliCircuitBreakerIntegration,
12
12
  createCliCircuitBreakerIntegration
13
13
  };
14
- //# sourceMappingURL=cli-circuit-breaker-5IGBBD7R.js.map
14
+ //# sourceMappingURL=cli-circuit-breaker-FSUDU7BV.js.map
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  buildOpenAICompatAdapters,
4
4
  readOpenAICompatEnv
5
- } from "./chunk-LKSG75LC.js";
5
+ } from "./chunk-OI6H3DL6.js";
6
6
  import {
7
7
  calculateConsensus,
8
8
  countByCategory,
@@ -17,13 +17,13 @@ import {
17
17
  generateSummary,
18
18
  parseFindings,
19
19
  sumFindings
20
- } from "./chunk-ZNY7MM2J.js";
21
- import "./chunk-SF2AK3JB.js";
20
+ } from "./chunk-LRBEUBZ3.js";
21
+ import "./chunk-THI3VWHO.js";
22
22
  import {
23
23
  setupCommandAsync,
24
24
  verifyCommand
25
- } from "./chunk-WOQCCQSE.js";
26
- import "./chunk-2255SARF.js";
25
+ } from "./chunk-UO6C5J5D.js";
26
+ import "./chunk-FKHQWC2L.js";
27
27
  import {
28
28
  AuthHandler,
29
29
  DEFAULT_EXPERTS,
@@ -142,11 +142,11 @@ import {
142
142
  validateCommand,
143
143
  validateWorkflow,
144
144
  wrapInMarkdownFence
145
- } from "./chunk-RC5SCDGF.js";
146
- import "./chunk-2UMMVKUW.js";
147
- import "./chunk-YOFRUVPJ.js";
145
+ } from "./chunk-JBH4CU46.js";
146
+ import "./chunk-FZV4YAYT.js";
147
+ import "./chunk-76Q6GTPU.js";
148
148
  import "./chunk-HFOQKCD2.js";
149
- import "./chunk-3ACDP4E6.js";
149
+ import "./chunk-AO4X3BMP.js";
150
150
  import {
151
151
  CATEGORY_DISPLAY_NAMES,
152
152
  DEFAULT_PR_REVIEW_CONFIG
@@ -170,11 +170,11 @@ import {
170
170
  loadConfig,
171
171
  runDoctor,
172
172
  validateNexusEnv
173
- } from "./chunk-OUBDTDTC.js";
174
- import "./chunk-FKOWIKR4.js";
173
+ } from "./chunk-PXTZ6RPP.js";
174
+ import "./chunk-NEQJSYJH.js";
175
175
  import {
176
176
  shutdownExpertBridge
177
- } from "./chunk-U43BUJSN.js";
177
+ } from "./chunk-HNAFWKJG.js";
178
178
  import {
179
179
  ConsensusVoteInputSchema,
180
180
  DEFAULT_VOTE_TIMEOUT_MS,
@@ -184,25 +184,25 @@ import {
184
184
  executeVoting,
185
185
  mapOutcomeToDecision,
186
186
  registerConsensusVoteTool
187
- } from "./chunk-55NRU7SV.js";
187
+ } from "./chunk-FQNG6ZIW.js";
188
188
  import {
189
189
  loadUsageEvents,
190
190
  rollupByModel
191
- } from "./chunk-JBZMUKT4.js";
191
+ } from "./chunk-WL4SGKAW.js";
192
192
  import {
193
193
  synthesizeResearch
194
- } from "./chunk-TFYQRAWT.js";
194
+ } from "./chunk-ORRKK563.js";
195
195
  import {
196
196
  classifyTrust,
197
197
  createFullGitHubProvider,
198
198
  evaluatePolicy,
199
199
  parsePRUrl
200
- } from "./chunk-CVLVWHXG.js";
201
- import "./chunk-RBN4WXOA.js";
200
+ } from "./chunk-JYVPM37A.js";
201
+ import "./chunk-IF46G2LM.js";
202
202
  import {
203
203
  ReputationCache,
204
204
  sanitizeInput
205
- } from "./chunk-TZNJCTNQ.js";
205
+ } from "./chunk-F2YZ3U6O.js";
206
206
  import {
207
207
  ImprovementReviewInputSchema,
208
208
  calculateFitnessScore,
@@ -216,11 +216,11 @@ import {
216
216
  registerImprovementReviewTool,
217
217
  runImprovementReview,
218
218
  scanForSecrets
219
- } from "./chunk-DUUMMELV.js";
219
+ } from "./chunk-PRSGZQNB.js";
220
220
  import {
221
221
  createDefaultPolicyFirewall
222
- } from "./chunk-3SMFRAX5.js";
223
- import "./chunk-NBPA4PQD.js";
222
+ } from "./chunk-V5RPW2ZX.js";
223
+ import "./chunk-BFDVV3Q3.js";
224
224
  import {
225
225
  PaperStatusSchema,
226
226
  createResearchIssue,
@@ -243,32 +243,32 @@ import {
243
243
  loadSourcesRegistry,
244
244
  rankDiscoveredItems,
245
245
  saveSourcesRegistry
246
- } from "./chunk-3GYRM7D6.js";
246
+ } from "./chunk-WOY6TQCH.js";
247
247
  import {
248
248
  resolveToken
249
- } from "./chunk-JV64QX3Y.js";
249
+ } from "./chunk-UWRDWX6L.js";
250
250
  import {
251
251
  loadPapersRegistry,
252
252
  loadTechniquesRegistry,
253
253
  savePapersRegistry
254
- } from "./chunk-YPPYRLDF.js";
254
+ } from "./chunk-6LXTT6AK.js";
255
255
  import "./chunk-NUBSJGQZ.js";
256
256
  import {
257
257
  MemoryError,
258
258
  shutdownToolMemory
259
- } from "./chunk-MQUSJVER.js";
259
+ } from "./chunk-I7OZP6FS.js";
260
260
  import {
261
261
  capitalize,
262
262
  capitalizeKebab,
263
263
  truncateSentence
264
264
  } from "./chunk-6T3EPABN.js";
265
- import "./chunk-LQ2ABFLI.js";
265
+ import "./chunk-DMFMJFRY.js";
266
266
  import "./chunk-ZM4O442V.js";
267
267
  import "./chunk-PINS44XA.js";
268
268
  import "./chunk-KSQSWEFH.js";
269
269
  import {
270
270
  createUnifiedRegistry
271
- } from "./chunk-MYNI3CYT.js";
271
+ } from "./chunk-BZFF3YWU.js";
272
272
  import {
273
273
  NEXUS_SUBPROCESS_DEPTH_ENV,
274
274
  createAllAdapters,
@@ -276,14 +276,14 @@ import {
276
276
  isRecord,
277
277
  probeAllClis,
278
278
  readSubprocessDepth
279
- } from "./chunk-IXZXG2MY.js";
280
- import "./chunk-NXJJZEUO.js";
279
+ } from "./chunk-ZI4PO2A3.js";
280
+ import "./chunk-YKTVN2TF.js";
281
281
  import {
282
282
  DEFAULTS
283
- } from "./chunk-6PYVTJZF.js";
284
- import "./chunk-RXI5ONP7.js";
285
- import "./chunk-3HVF4BG4.js";
286
- import "./chunk-33X5V4PL.js";
283
+ } from "./chunk-P54BDACX.js";
284
+ import "./chunk-AWPSFL5C.js";
285
+ import "./chunk-3LVB5OE2.js";
286
+ import "./chunk-GS3UPAUE.js";
287
287
  import {
288
288
  API_TIMEOUTS,
289
289
  AgentCapability,
@@ -357,7 +357,7 @@ import {
357
357
  validateTimeout,
358
358
  writeEmptyLine,
359
359
  writeLine
360
- } from "./chunk-PZ3BB3PO.js";
360
+ } from "./chunk-Z66EEQ4A.js";
361
361
  import "./chunk-AXTD4TFK.js";
362
362
  import {
363
363
  applyPortableMode,
@@ -4035,7 +4035,7 @@ ${file.patch}
4035
4035
  violations: policyResult.violations
4036
4036
  });
4037
4037
  }
4038
- const { formatReviewComment: formatReviewComment2 } = await import("./pr-reviewer-helpers-VGIBNZBX.js");
4038
+ const { formatReviewComment: formatReviewComment2 } = await import("./pr-reviewer-helpers-ZC2I5ZYD.js");
4039
4039
  const body = formatReviewComment2(result);
4040
4040
  const postResult = await provider.createReview(pr.prNumber, body, result.decision);
4041
4041
  if (!postResult.ok) {
@@ -10000,17 +10000,31 @@ function extractDependencies(sourceFile) {
10000
10000
  }
10001
10001
 
10002
10002
  // src/indexer/description-extraction.ts
10003
- function classifyJsDocLine(trimmed, inComment) {
10004
- if (trimmed.startsWith("/**")) return "start";
10003
+ function isPlainBlockComment(trimmed) {
10004
+ return trimmed.startsWith("/*") && trimmed.endsWith("*/");
10005
+ }
10006
+ function classifyOutsideComment(trimmed) {
10007
+ if (isPlainBlockComment(trimmed)) return "skip";
10008
+ if (trimmed.length > 0 && !trimmed.startsWith("//")) return "stop";
10009
+ return "skip";
10010
+ }
10011
+ function classifyInsideComment(trimmed) {
10005
10012
  if (trimmed.endsWith("*/")) return "end";
10006
- if (!inComment && trimmed.length > 0 && !trimmed.startsWith("//")) return "stop";
10007
- if (!inComment) return "skip";
10008
10013
  if (trimmed.startsWith("* @") || trimmed.startsWith("@")) return "skip";
10009
10014
  return "content";
10010
10015
  }
10016
+ function classifyJsDocLine(trimmed, inComment) {
10017
+ if (trimmed.startsWith("/**")) {
10018
+ return trimmed.endsWith("*/") ? "startEnd" : "start";
10019
+ }
10020
+ return inComment ? classifyInsideComment(trimmed) : classifyOutsideComment(trimmed);
10021
+ }
10011
10022
  function extractJsDocLineContent(trimmed) {
10012
10023
  return trimmed.startsWith("*") ? trimmed.slice(1).trim() : trimmed;
10013
10024
  }
10025
+ function extractInlineJsDocContent(trimmed) {
10026
+ return trimmed.slice(3, -2).trim();
10027
+ }
10014
10028
  function truncateDescription(full) {
10015
10029
  return truncateSentence(full, 150);
10016
10030
  }
@@ -10025,6 +10039,11 @@ function extractDescription(sourceFile) {
10025
10039
  inComment = true;
10026
10040
  continue;
10027
10041
  }
10042
+ if (result === "startEnd") {
10043
+ const inline = extractInlineJsDocContent(trimmed);
10044
+ if (inline.length > 0) description.push(inline);
10045
+ break;
10046
+ }
10028
10047
  if (result === "end" || result === "stop") break;
10029
10048
  if (result === "skip") continue;
10030
10049
  const content = extractJsDocLineContent(trimmed);
@@ -10056,20 +10075,11 @@ function extractFileEntry(sourceFile, rootDir, extractDescriptions) {
10056
10075
  }
10057
10076
  return entry;
10058
10077
  }
10059
- function shouldExcludeFile(filePath, excludePatterns, rootDir) {
10060
- return excludePatterns.some((pattern) => {
10061
- const patternBase = pattern.replace(/\*\*/g, "").replace(/\*/g, "");
10062
- return filePath.includes(patternBase.replace(rootDir, "").replace(/^\//, ""));
10063
- });
10064
- }
10065
- function processSourceFiles(project, rootDir, excludePatterns, extractDescriptions) {
10078
+ function processSourceFiles(project, rootDir, extractDescriptions) {
10066
10079
  const files = [];
10067
10080
  const errors = [];
10068
10081
  for (const sourceFile of project.getSourceFiles()) {
10069
10082
  const filePath = sourceFile.getFilePath();
10070
- if (shouldExcludeFile(filePath, excludePatterns, rootDir)) {
10071
- continue;
10072
- }
10073
10083
  try {
10074
10084
  files.push(extractFileEntry(sourceFile, rootDir, extractDescriptions));
10075
10085
  } catch (err2) {
@@ -10088,15 +10098,10 @@ function extractProject(options = {}) {
10088
10098
  });
10089
10099
  const rootDir = path9.resolve(process.cwd(), opts.rootDir);
10090
10100
  const includePatterns = opts.include.map((p) => path9.join(rootDir, p));
10091
- const excludePatterns = opts.exclude.map((p) => path9.join(rootDir, p));
10101
+ const excludePatterns = opts.exclude.map((p) => `!${path9.join(rootDir, p)}`);
10092
10102
  try {
10093
- project.addSourceFilesAtPaths(includePatterns);
10094
- const { files, errors } = processSourceFiles(
10095
- project,
10096
- rootDir,
10097
- excludePatterns,
10098
- opts.extractDescriptions
10099
- );
10103
+ project.addSourceFilesAtPaths([...includePatterns, ...excludePatterns]);
10104
+ const { files, errors } = processSourceFiles(project, rootDir, opts.extractDescriptions);
10100
10105
  return { files, errors, durationMs: getTimeProvider().now() - startTime };
10101
10106
  } catch (err2) {
10102
10107
  const message = err2 instanceof Error ? err2.message : String(err2);
@@ -10778,12 +10783,12 @@ function extractMcpTools(project, packageRoot, mcpToolsPath, warnings) {
10778
10783
  const fileName = path13.basename(filePath);
10779
10784
  if (fileName.endsWith(".test.ts") || fileName === "index.ts") continue;
10780
10785
  const relativePath = path13.relative(process.cwd(), filePath);
10781
- const extractedTools = extractToolsFromFile(sourceFile, relativePath);
10786
+ const extractedTools = extractToolsFromFile(sourceFile, relativePath, warnings);
10782
10787
  tools.push(...extractedTools);
10783
10788
  }
10784
10789
  return tools;
10785
10790
  }
10786
- function extractToolsFromFile(sourceFile, relativePath) {
10791
+ function extractToolsFromFile(sourceFile, relativePath, warnings) {
10787
10792
  const tools = [];
10788
10793
  if (sourceFile === void 0) return tools;
10789
10794
  const callExpressions = sourceFile.getDescendantsOfKind(SyntaxKind2.CallExpression);
@@ -10799,71 +10804,93 @@ function extractToolsFromFile(sourceFile, relativePath) {
10799
10804
  continue;
10800
10805
  }
10801
10806
  const toolName = nameArg.getText().replace(/['"`]/g, "");
10802
- const { description, schemaArg } = extractToolMeta(callText, args, sourceFile);
10807
+ const { description, schemaArg } = extractToolMeta(callText, args);
10803
10808
  let parameters = [];
10804
10809
  if (schemaArg !== void 0) {
10805
- parameters = extractParametersFromSchema(schemaArg, sourceFile);
10810
+ parameters = extractParametersFromSchema(schemaArg);
10806
10811
  }
10807
- tools.push({
10812
+ const tool = {
10808
10813
  name: toolName,
10809
10814
  description: description.replace(/\\n/g, " ").trim(),
10810
10815
  parameters,
10811
10816
  source_file: relativePath,
10812
10817
  source_line: callExpr.getStartLineNumber()
10813
- });
10818
+ };
10819
+ maybeWarnEmptyTool(tool, warnings);
10820
+ tools.push(tool);
10814
10821
  }
10815
10822
  return tools;
10816
10823
  }
10817
- function resolvePropertyValue(prop, sourceFile) {
10824
+ function maybeWarnEmptyTool(tool, warnings) {
10825
+ if (warnings === void 0) return;
10826
+ if (tool.description !== "" || tool.parameters.length > 0) return;
10827
+ warnings.push(
10828
+ `MCP tool "${tool.name}" (${tool.source_file}:${String(tool.source_line)}) resolved to an empty description AND empty parameters. Its description/inputSchema likely reference an identifier the extractor could not resolve statically (#2153).`
10829
+ );
10830
+ }
10831
+ function resolveIdentifierInitializer(symbol) {
10832
+ for (const decl of symbol?.getDeclarations() ?? []) {
10833
+ const varDecl = decl.asKind(SyntaxKind2.VariableDeclaration);
10834
+ const init = varDecl?.getInitializer();
10835
+ if (init !== void 0) return init;
10836
+ }
10837
+ return void 0;
10838
+ }
10839
+ function resolvePropertyValue(prop) {
10818
10840
  const propAssign = prop.asKind(SyntaxKind2.PropertyAssignment);
10819
- if (propAssign !== void 0) return propAssign.getInitializer();
10841
+ if (propAssign !== void 0) {
10842
+ const init = propAssign.getInitializer();
10843
+ if (init?.getKind() === SyntaxKind2.Identifier) {
10844
+ return resolveIdentifierInitializer(init.getSymbol());
10845
+ }
10846
+ return init;
10847
+ }
10820
10848
  const shorthand = prop.asKind(SyntaxKind2.ShorthandPropertyAssignment);
10821
- if (shorthand !== void 0 && sourceFile !== void 0) {
10822
- const varDecl = sourceFile.getVariableDeclaration(shorthand.getName());
10823
- return varDecl?.getInitializer();
10849
+ if (shorthand !== void 0) {
10850
+ return resolveIdentifierInitializer(shorthand.getValueSymbol());
10824
10851
  }
10825
10852
  return void 0;
10826
10853
  }
10827
- function extractToolMeta(callText, args, _sourceFile) {
10828
- let description = "";
10829
- let schemaArg;
10830
- if (callText.endsWith(".registerTool")) {
10831
- const configArg = args[1];
10832
- if (configArg !== void 0) {
10833
- const configObj = configArg.asKind(SyntaxKind2.ObjectLiteralExpression);
10834
- if (configObj !== void 0) {
10835
- const descProp = configObj.getProperty("description");
10836
- if (descProp !== void 0) {
10837
- const init = resolvePropertyValue(descProp, _sourceFile);
10838
- description = init?.getText().replace(/^['"]|['"]$/g, "") ?? "";
10839
- }
10840
- const schemaProp = configObj.getProperty("inputSchema");
10841
- if (schemaProp !== void 0) {
10842
- schemaArg = resolvePropertyValue(schemaProp, _sourceFile);
10843
- }
10844
- }
10845
- }
10846
- } else {
10847
- const descArg = args[1];
10848
- if (descArg !== void 0) {
10849
- description = descArg.getText().replace(/^['"]|['"]$/g, "");
10854
+ function extractStringValue(node) {
10855
+ if (node === void 0) return "";
10856
+ const kind = node.getKind();
10857
+ if (kind === SyntaxKind2.StringLiteral || kind === SyntaxKind2.NoSubstitutionTemplateLiteral) {
10858
+ return node.asKind(kind)?.getLiteralText() ?? "";
10859
+ }
10860
+ if (kind === SyntaxKind2.BinaryExpression) {
10861
+ const bin = node.asKind(SyntaxKind2.BinaryExpression);
10862
+ if (bin?.getOperatorToken().getKind() === SyntaxKind2.PlusToken) {
10863
+ return extractStringValue(bin.getLeft()) + extractStringValue(bin.getRight());
10850
10864
  }
10851
- schemaArg = args[2];
10852
10865
  }
10866
+ return "";
10867
+ }
10868
+ function extractToolMeta(callText, args) {
10869
+ if (callText.endsWith(".registerTool")) {
10870
+ return extractRegisterToolMeta(args[1]);
10871
+ }
10872
+ return {
10873
+ description: extractStringValue(args[1]),
10874
+ schemaArg: args[2]
10875
+ };
10876
+ }
10877
+ function extractRegisterToolMeta(configArg) {
10878
+ const configObj = configArg?.asKind(SyntaxKind2.ObjectLiteralExpression);
10879
+ if (configObj === void 0) return { description: "", schemaArg: void 0 };
10880
+ const descProp = configObj.getProperty("description");
10881
+ const description = descProp === void 0 ? "" : extractStringValue(resolvePropertyValue(descProp));
10882
+ const schemaProp = configObj.getProperty("inputSchema");
10883
+ const schemaArg = schemaProp === void 0 ? void 0 : resolvePropertyValue(schemaProp);
10853
10884
  return { description, schemaArg };
10854
10885
  }
10855
- function extractParametersFromSchema(schemaArg, sourceFile) {
10886
+ function extractParametersFromSchema(schemaArg) {
10856
10887
  if (schemaArg.getKind() === SyntaxKind2.ObjectLiteralExpression) {
10857
10888
  return extractZodParameters(schemaArg);
10858
10889
  }
10859
- if (schemaArg.getKind() === SyntaxKind2.Identifier && sourceFile !== void 0) {
10860
- const varName = schemaArg.getText();
10861
- const varDecl = sourceFile.getVariableDeclaration(varName);
10862
- if (varDecl !== void 0) {
10863
- const init = varDecl.getInitializer();
10864
- if (init !== void 0) {
10865
- return extractZodParameters(init);
10866
- }
10890
+ if (schemaArg.getKind() === SyntaxKind2.Identifier) {
10891
+ const init = resolveIdentifierInitializer(schemaArg.getSymbol());
10892
+ if (init !== void 0) {
10893
+ return extractZodParameters(init);
10867
10894
  }
10868
10895
  }
10869
10896
  return [];
@@ -17859,7 +17886,7 @@ function startImprovementReviewScheduler(options) {
17859
17886
  let running = false;
17860
17887
  const runOnce = async () => {
17861
17888
  try {
17862
- const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-KDM6OL25.js");
17889
+ const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-AHSY5ZXD.js");
17863
17890
  const input = ImprovementReviewInputSchema2.parse({ fileIssues });
17864
17891
  const result = await runImprovementReview2(input, { logger: logger19 });
17865
17892
  logger19.info("Scheduled improvement_review complete", {
@@ -19898,7 +19925,7 @@ function adaptConfigToLibrary(config) {
19898
19925
  }
19899
19926
  function createBeliefPromoter() {
19900
19927
  return async (event) => {
19901
- const { getToolMemory } = await import("./tool-memory-LCDNVPFI.js");
19928
+ const { getToolMemory } = await import("./tool-memory-VK4IZLPN.js");
19902
19929
  const tm = getToolMemory();
19903
19930
  await tm.recordBelief(
19904
19931
  `skill:${event.name}`,
@@ -21074,7 +21101,7 @@ async function handleResearchCommand(args) {
21074
21101
  }
21075
21102
  }
21076
21103
  async function handleRegistryCommand(args) {
21077
- const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-CGMRLZQ2.js");
21104
+ const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-O2GLHG3G.js");
21078
21105
  const subcommand = args.subcommand;
21079
21106
  if (!isValidRegistrySubcommand(subcommand)) {
21080
21107
  process.stdout.write(`${formatRegistryUsage()}
@@ -21122,7 +21149,7 @@ async function handleVerifyCommand(args) {
21122
21149
  async function handleDoctorCommand(args) {
21123
21150
  const exitCode = await doctorCommand({ fix: args.options.fix });
21124
21151
  if (args.options.deep) {
21125
- const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-7OR5MYMI.js");
21152
+ const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-4UARVVSD.js");
21126
21153
  const diag = runDeepDiagnostics2();
21127
21154
  process.stdout.write(formatDeepDiagnostics2(diag) + "\n");
21128
21155
  }
@@ -21172,7 +21199,7 @@ async function runInitPortableFlow(args) {
21172
21199
  return cliExit(result.success ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
21173
21200
  }
21174
21201
  async function runInitOpencodeFlow(args) {
21175
- const { runInitOpencode } = await import("./init-opencode-FXKABSGS.js");
21202
+ const { runInitOpencode } = await import("./init-opencode-5BKE7UEB.js");
21176
21203
  const opencodePath = args.options.opencode;
21177
21204
  if (opencodePath === void 0 || opencodePath === "") {
21178
21205
  process.stderr.write("Error: --opencode requires a path argument.\n");
@@ -21198,7 +21225,7 @@ async function runInitOpencodeFlow(args) {
21198
21225
  return cliExit(EXIT_CODES.SUCCESS);
21199
21226
  }
21200
21227
  async function renderOpencodeValidate(opencodePath) {
21201
- const { runOpencodeValidate } = await import("./init-opencode-FXKABSGS.js");
21228
+ const { runOpencodeValidate } = await import("./init-opencode-5BKE7UEB.js");
21202
21229
  const result = await runOpencodeValidate(opencodePath);
21203
21230
  if (!result.ok) {
21204
21231
  process.stderr.write(`init --opencode --validate: ${result.reason ?? "failed"}
@@ -21237,7 +21264,7 @@ async function handleSetupCommandAsync(args) {
21237
21264
  return cliExitFromStatus(exitCode);
21238
21265
  }
21239
21266
  async function runCustomApiSetup(args) {
21240
- const { configureCustomApi } = await import("./setup-custom-api-42JXTJHU.js");
21267
+ const { configureCustomApi } = await import("./setup-custom-api-RQ3BUMJC.js");
21241
21268
  const baseUrl = args.options.customApi;
21242
21269
  if (baseUrl === void 0) return EXIT_CODES.SERVER_START_FAILED;
21243
21270
  const input = {