nexus-agents 8.110.1 → 8.111.1

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 (138) hide show
  1. package/dist/{ast-rule-runner-ZO3T66KP.js → ast-rule-runner-QMJBY2DU.js} +3 -3
  2. package/dist/{child-mcp-config-M4MRFMP3.js → child-mcp-config-FYHJS7OK.js} +2 -2
  3. package/dist/{chunk-WKNSD7YL.js → chunk-2K5PKVFE.js} +9 -9
  4. package/dist/{chunk-ZEDLXDDY.js → chunk-2UUZKZ2U.js} +2 -2
  5. package/dist/{chunk-CGPKV4KH.js → chunk-2WW5OIKD.js} +5 -5
  6. package/dist/{chunk-JRDNNCM7.js → chunk-4YQZELVY.js} +5 -5
  7. package/dist/{chunk-BE6L6MIE.js → chunk-57IM5TNR.js} +4 -4
  8. package/dist/{chunk-D6LZY3W7.js → chunk-66IWQNWP.js} +2 -2
  9. package/dist/{chunk-G4UBTYE3.js → chunk-6NMURF4A.js} +3 -3
  10. package/dist/chunk-6NMURF4A.js.map +1 -0
  11. package/dist/{chunk-W3EXUWFG.js → chunk-72CRUGJD.js} +2 -2
  12. package/dist/{chunk-SSIS5P24.js → chunk-AI6WEQ23.js} +3 -3
  13. package/dist/{chunk-WKKSNJV3.js → chunk-B4NMODAJ.js} +4 -4
  14. package/dist/{chunk-22AF7TYV.js → chunk-CIA3WNBQ.js} +2 -2
  15. package/dist/{chunk-TAGJV5NH.js → chunk-D5H6HJFW.js} +12 -12
  16. package/dist/{chunk-LNPSEZUE.js → chunk-F7CBJAVN.js} +13 -12
  17. package/dist/chunk-F7CBJAVN.js.map +1 -0
  18. package/dist/{chunk-SARPPCY5.js → chunk-FDC3442T.js} +2 -2
  19. package/dist/{chunk-4QWRKVJS.js → chunk-FGWD6ICH.js} +3 -3
  20. package/dist/{chunk-YLQNJAJP.js → chunk-IGLCNGIF.js} +2 -2
  21. package/dist/{chunk-NBSI5ICR.js → chunk-JYDV424C.js} +3 -3
  22. package/dist/{chunk-FE2VYSSA.js → chunk-K43RR3EW.js} +2 -2
  23. package/dist/{chunk-U5TT4C5O.js → chunk-K5TYAHCZ.js} +2 -2
  24. package/dist/{chunk-METD44P2.js → chunk-KIA5SC44.js} +2 -2
  25. package/dist/{chunk-RIF7TUYH.js → chunk-KWMENWRB.js} +13 -4
  26. package/dist/chunk-KWMENWRB.js.map +1 -0
  27. package/dist/{chunk-J2QYPARH.js → chunk-KXMEPCFU.js} +2 -2
  28. package/dist/{chunk-D4JC6AOD.js → chunk-L5ZCG5RZ.js} +149 -67
  29. package/dist/{chunk-D4JC6AOD.js.map → chunk-L5ZCG5RZ.js.map} +1 -1
  30. package/dist/{chunk-C4OZ4F67.js → chunk-M7FBZLI5.js} +5 -5
  31. package/dist/{chunk-FRBFTFSQ.js → chunk-MIAJAC2F.js} +4 -4
  32. package/dist/{chunk-GDUB2OE4.js → chunk-O4CMGYGO.js} +2 -2
  33. package/dist/{chunk-GCQLEDCY.js → chunk-PLDRGUQ4.js} +5 -5
  34. package/dist/{chunk-CX3YZ4S6.js → chunk-POOZZYVN.js} +8 -8
  35. package/dist/{chunk-CDPPWCGO.js → chunk-PPOWAM44.js} +2 -2
  36. package/dist/{chunk-DNXEQKBR.js → chunk-RG4J5IBH.js} +2 -2
  37. package/dist/{chunk-O4QDBQI6.js → chunk-RP3RG4SV.js} +2 -2
  38. package/dist/{chunk-UMESP2HX.js → chunk-TUCSV6JU.js} +2 -2
  39. package/dist/{chunk-ZTOTKIAO.js → chunk-WAZC4MM7.js} +2 -2
  40. package/dist/{chunk-OM4JSIPB.js → chunk-WTHWCJEE.js} +2 -2
  41. package/dist/{chunk-5O4KT2WO.js → chunk-YFJFCHIT.js} +2 -2
  42. package/dist/{chunk-BJJOZV7O.js → chunk-YSHMDDDZ.js} +5 -5
  43. package/dist/{cli-circuit-breaker-FVO43RVL.js → cli-circuit-breaker-SRBUGNRB.js} +3 -3
  44. package/dist/cli.js +51 -47
  45. package/dist/cli.js.map +1 -1
  46. package/dist/{composite-router-SJVN7OB4.js → composite-router-GHXXREP6.js} +2 -2
  47. package/dist/{consensus-vote-54G3SYCP.js → consensus-vote-3TJFATAB.js} +18 -18
  48. package/dist/{context-retriever-SONR6BIO.js → context-retriever-YPKE2TSP.js} +8 -8
  49. package/dist/{doctor-deep-KRSLLEPY.js → doctor-deep-DCV7PUES.js} +3 -3
  50. package/dist/doctor-gateway-report-OQRLJBPJ.js +17 -0
  51. package/dist/{doctor-live-XPJKPSRM.js → doctor-live-O3XYQ3N4.js} +23 -16
  52. package/dist/doctor-live-O3XYQ3N4.js.map +1 -0
  53. package/dist/{expert-bridge-R4AM2VPK.js → expert-bridge-SL7JURER.js} +5 -5
  54. package/dist/{factory-KHLGIPPZ.js → factory-CKENERA2.js} +10 -10
  55. package/dist/{factory-G7SSRQET.js → factory-M2FHU5DB.js} +5 -5
  56. package/dist/{improvement-review-BHKZ5JUF.js → improvement-review-ZDN3PYUJ.js} +6 -6
  57. package/dist/index.js +33 -33
  58. package/dist/{init-opencode-GVENWYH4.js → init-opencode-OLLT3I65.js} +6 -6
  59. package/dist/{issue-triage-CS4WXPIE.js → issue-triage-IBIQWRUW.js} +6 -6
  60. package/dist/{openai-compat-adapter-CUETEQEQ.js → openai-compat-adapter-VGIAVB4H.js} +6 -6
  61. package/dist/{pr-reviewer-helpers-FGON5RFG.js → pr-reviewer-helpers-VHK5OHRV.js} +4 -4
  62. package/dist/{registry-command-CARW7JBG.js → registry-command-JFDSPEDT.js} +2 -2
  63. package/dist/{repo-security-plan-4KAW7ELW.js → repo-security-plan-6HXXUIIY.js} +3 -3
  64. package/dist/{research-helpers-synthesize-CYO2YUAE.js → research-helpers-synthesize-EFXLTEGS.js} +4 -4
  65. package/dist/{routing-memory-SFXZODKG.js → routing-memory-O5JGPXWZ.js} +2 -2
  66. package/dist/{session-memory-5DAEGAX5.js → session-memory-3LGL65QE.js} +3 -3
  67. package/dist/{setup-config-J6YHOKO3.js → setup-config-EBXHA4ZI.js} +3 -3
  68. package/dist/{setup-custom-api-4XKOPRRP.js → setup-custom-api-TIEYFOOF.js} +4 -4
  69. package/dist/setup-data-dir-BNP6T36S.js +34 -0
  70. package/dist/{tool-memory-YBFEA2W5.js → tool-memory-DWG6RSNT.js} +5 -5
  71. package/dist/{unified-registry-S7L5SYG2.js → unified-registry-BPDOEIKJ.js} +12 -12
  72. package/dist/{weather-report-MVSIUA23.js → weather-report-IBEH3S3K.js} +2 -2
  73. package/package.json +1 -1
  74. package/dist/chunk-G4UBTYE3.js.map +0 -1
  75. package/dist/chunk-LNPSEZUE.js.map +0 -1
  76. package/dist/chunk-RIF7TUYH.js.map +0 -1
  77. package/dist/doctor-gateway-report-N4H4LV2Q.js +0 -17
  78. package/dist/doctor-live-XPJKPSRM.js.map +0 -1
  79. package/dist/setup-data-dir-62R3ZQI4.js +0 -34
  80. /package/dist/{ast-rule-runner-ZO3T66KP.js.map → ast-rule-runner-QMJBY2DU.js.map} +0 -0
  81. /package/dist/{child-mcp-config-M4MRFMP3.js.map → child-mcp-config-FYHJS7OK.js.map} +0 -0
  82. /package/dist/{chunk-WKNSD7YL.js.map → chunk-2K5PKVFE.js.map} +0 -0
  83. /package/dist/{chunk-ZEDLXDDY.js.map → chunk-2UUZKZ2U.js.map} +0 -0
  84. /package/dist/{chunk-CGPKV4KH.js.map → chunk-2WW5OIKD.js.map} +0 -0
  85. /package/dist/{chunk-JRDNNCM7.js.map → chunk-4YQZELVY.js.map} +0 -0
  86. /package/dist/{chunk-BE6L6MIE.js.map → chunk-57IM5TNR.js.map} +0 -0
  87. /package/dist/{chunk-D6LZY3W7.js.map → chunk-66IWQNWP.js.map} +0 -0
  88. /package/dist/{chunk-W3EXUWFG.js.map → chunk-72CRUGJD.js.map} +0 -0
  89. /package/dist/{chunk-SSIS5P24.js.map → chunk-AI6WEQ23.js.map} +0 -0
  90. /package/dist/{chunk-WKKSNJV3.js.map → chunk-B4NMODAJ.js.map} +0 -0
  91. /package/dist/{chunk-22AF7TYV.js.map → chunk-CIA3WNBQ.js.map} +0 -0
  92. /package/dist/{chunk-TAGJV5NH.js.map → chunk-D5H6HJFW.js.map} +0 -0
  93. /package/dist/{chunk-SARPPCY5.js.map → chunk-FDC3442T.js.map} +0 -0
  94. /package/dist/{chunk-4QWRKVJS.js.map → chunk-FGWD6ICH.js.map} +0 -0
  95. /package/dist/{chunk-YLQNJAJP.js.map → chunk-IGLCNGIF.js.map} +0 -0
  96. /package/dist/{chunk-NBSI5ICR.js.map → chunk-JYDV424C.js.map} +0 -0
  97. /package/dist/{chunk-FE2VYSSA.js.map → chunk-K43RR3EW.js.map} +0 -0
  98. /package/dist/{chunk-U5TT4C5O.js.map → chunk-K5TYAHCZ.js.map} +0 -0
  99. /package/dist/{chunk-METD44P2.js.map → chunk-KIA5SC44.js.map} +0 -0
  100. /package/dist/{chunk-J2QYPARH.js.map → chunk-KXMEPCFU.js.map} +0 -0
  101. /package/dist/{chunk-C4OZ4F67.js.map → chunk-M7FBZLI5.js.map} +0 -0
  102. /package/dist/{chunk-FRBFTFSQ.js.map → chunk-MIAJAC2F.js.map} +0 -0
  103. /package/dist/{chunk-GDUB2OE4.js.map → chunk-O4CMGYGO.js.map} +0 -0
  104. /package/dist/{chunk-GCQLEDCY.js.map → chunk-PLDRGUQ4.js.map} +0 -0
  105. /package/dist/{chunk-CX3YZ4S6.js.map → chunk-POOZZYVN.js.map} +0 -0
  106. /package/dist/{chunk-CDPPWCGO.js.map → chunk-PPOWAM44.js.map} +0 -0
  107. /package/dist/{chunk-DNXEQKBR.js.map → chunk-RG4J5IBH.js.map} +0 -0
  108. /package/dist/{chunk-O4QDBQI6.js.map → chunk-RP3RG4SV.js.map} +0 -0
  109. /package/dist/{chunk-UMESP2HX.js.map → chunk-TUCSV6JU.js.map} +0 -0
  110. /package/dist/{chunk-ZTOTKIAO.js.map → chunk-WAZC4MM7.js.map} +0 -0
  111. /package/dist/{chunk-OM4JSIPB.js.map → chunk-WTHWCJEE.js.map} +0 -0
  112. /package/dist/{chunk-5O4KT2WO.js.map → chunk-YFJFCHIT.js.map} +0 -0
  113. /package/dist/{chunk-BJJOZV7O.js.map → chunk-YSHMDDDZ.js.map} +0 -0
  114. /package/dist/{cli-circuit-breaker-FVO43RVL.js.map → cli-circuit-breaker-SRBUGNRB.js.map} +0 -0
  115. /package/dist/{composite-router-SJVN7OB4.js.map → composite-router-GHXXREP6.js.map} +0 -0
  116. /package/dist/{consensus-vote-54G3SYCP.js.map → consensus-vote-3TJFATAB.js.map} +0 -0
  117. /package/dist/{context-retriever-SONR6BIO.js.map → context-retriever-YPKE2TSP.js.map} +0 -0
  118. /package/dist/{doctor-deep-KRSLLEPY.js.map → doctor-deep-DCV7PUES.js.map} +0 -0
  119. /package/dist/{doctor-gateway-report-N4H4LV2Q.js.map → doctor-gateway-report-OQRLJBPJ.js.map} +0 -0
  120. /package/dist/{expert-bridge-R4AM2VPK.js.map → expert-bridge-SL7JURER.js.map} +0 -0
  121. /package/dist/{factory-G7SSRQET.js.map → factory-CKENERA2.js.map} +0 -0
  122. /package/dist/{factory-KHLGIPPZ.js.map → factory-M2FHU5DB.js.map} +0 -0
  123. /package/dist/{improvement-review-BHKZ5JUF.js.map → improvement-review-ZDN3PYUJ.js.map} +0 -0
  124. /package/dist/{init-opencode-GVENWYH4.js.map → init-opencode-OLLT3I65.js.map} +0 -0
  125. /package/dist/{issue-triage-CS4WXPIE.js.map → issue-triage-IBIQWRUW.js.map} +0 -0
  126. /package/dist/{openai-compat-adapter-CUETEQEQ.js.map → openai-compat-adapter-VGIAVB4H.js.map} +0 -0
  127. /package/dist/{pr-reviewer-helpers-FGON5RFG.js.map → pr-reviewer-helpers-VHK5OHRV.js.map} +0 -0
  128. /package/dist/{registry-command-CARW7JBG.js.map → registry-command-JFDSPEDT.js.map} +0 -0
  129. /package/dist/{repo-security-plan-4KAW7ELW.js.map → repo-security-plan-6HXXUIIY.js.map} +0 -0
  130. /package/dist/{research-helpers-synthesize-CYO2YUAE.js.map → research-helpers-synthesize-EFXLTEGS.js.map} +0 -0
  131. /package/dist/{routing-memory-SFXZODKG.js.map → routing-memory-O5JGPXWZ.js.map} +0 -0
  132. /package/dist/{session-memory-5DAEGAX5.js.map → session-memory-3LGL65QE.js.map} +0 -0
  133. /package/dist/{setup-config-J6YHOKO3.js.map → setup-config-EBXHA4ZI.js.map} +0 -0
  134. /package/dist/{setup-custom-api-4XKOPRRP.js.map → setup-custom-api-TIEYFOOF.js.map} +0 -0
  135. /package/dist/{setup-data-dir-62R3ZQI4.js.map → setup-data-dir-BNP6T36S.js.map} +0 -0
  136. /package/dist/{tool-memory-YBFEA2W5.js.map → tool-memory-DWG6RSNT.js.map} +0 -0
  137. /package/dist/{unified-registry-S7L5SYG2.js.map → unified-registry-BPDOEIKJ.js.map} +0 -0
  138. /package/dist/{weather-report-MVSIUA23.js.map → weather-report-IBEH3S3K.js.map} +0 -0
@@ -9,9 +9,9 @@ import {
9
9
  getBuiltInAstRulesPath,
10
10
  loadRules,
11
11
  runAstQaRules
12
- } from "./chunk-CDPPWCGO.js";
12
+ } from "./chunk-PPOWAM44.js";
13
13
  import "./chunk-XEPZSDN5.js";
14
- import "./chunk-RIF7TUYH.js";
14
+ import "./chunk-KWMENWRB.js";
15
15
  import "./chunk-UE7A2XHM.js";
16
16
  import "./chunk-LWOX65CP.js";
17
17
  import "./chunk-PX6F3LHL.js";
@@ -27,4 +27,4 @@ export {
27
27
  loadRules,
28
28
  runAstQaRules
29
29
  };
30
- //# sourceMappingURL=ast-rule-runner-ZO3T66KP.js.map
30
+ //# sourceMappingURL=ast-rule-runner-QMJBY2DU.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-OITVVSWO.js";
4
4
  import {
5
5
  createLogger
6
- } from "./chunk-RIF7TUYH.js";
6
+ } from "./chunk-KWMENWRB.js";
7
7
  import "./chunk-UE7A2XHM.js";
8
8
  import "./chunk-LWOX65CP.js";
9
9
  import "./chunk-PX6F3LHL.js";
@@ -56,4 +56,4 @@ async function generateMcpConfig(options) {
56
56
  export {
57
57
  generateMcpConfig
58
58
  };
59
- //# sourceMappingURL=child-mcp-config-M4MRFMP3.js.map
59
+ //# sourceMappingURL=child-mcp-config-FYHJS7OK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CUSTOM_API_DEFAULT_MODEL
3
- } from "./chunk-ZEDLXDDY.js";
3
+ } from "./chunk-2UUZKZ2U.js";
4
4
  import {
5
5
  AdapterModelError,
6
6
  BaseAdapter,
@@ -10,7 +10,7 @@ import {
10
10
  readGatewayTransport,
11
11
  requireApiKey,
12
12
  validateApiKeyPresence
13
- } from "./chunk-OM4JSIPB.js";
13
+ } from "./chunk-WTHWCJEE.js";
14
14
  import {
15
15
  assertCustomApiHostResolvesPublic,
16
16
  hostnameOf,
@@ -19,22 +19,22 @@ import {
19
19
  readGatewayEnv,
20
20
  redactApiKey,
21
21
  validateCustomApiBaseUrl
22
- } from "./chunk-DNXEQKBR.js";
22
+ } from "./chunk-RG4J5IBH.js";
23
23
  import {
24
24
  sanitizeOutput
25
- } from "./chunk-22AF7TYV.js";
25
+ } from "./chunk-CIA3WNBQ.js";
26
26
  import {
27
27
  nexusMkdtempSync
28
28
  } from "./chunk-OITVVSWO.js";
29
29
  import {
30
30
  getAvailabilityCache
31
- } from "./chunk-FE2VYSSA.js";
31
+ } from "./chunk-K43RR3EW.js";
32
32
  import {
33
33
  extractSystemPrompt
34
34
  } from "./chunk-QZUG667L.js";
35
35
  import {
36
36
  generateHyphenId
37
- } from "./chunk-5O4KT2WO.js";
37
+ } from "./chunk-YFJFCHIT.js";
38
38
  import {
39
39
  CliCircuitBreaker,
40
40
  DEFAULT_CIRCUIT_BREAKER_CONFIG,
@@ -47,7 +47,7 @@ import {
47
47
  isCallerCancelled,
48
48
  isCallerInputCliError,
49
49
  isTimeoutText
50
- } from "./chunk-ZTOTKIAO.js";
50
+ } from "./chunk-WAZC4MM7.js";
51
51
  import {
52
52
  CLI_NAMES,
53
53
  CLI_SUBPROCESS_TIMEOUTS,
@@ -103,7 +103,7 @@ import {
103
103
  resolveRetryAfterMs,
104
104
  toModelTokenUsage,
105
105
  warnIfGatewayCostUndeclared
106
- } from "./chunk-RIF7TUYH.js";
106
+ } from "./chunk-KWMENWRB.js";
107
107
  import {
108
108
  parseBoolValue
109
109
  } from "./chunk-LWOX65CP.js";
@@ -5299,4 +5299,4 @@ export {
5299
5299
  SdkAdapter,
5300
5300
  createAutoAdapter
5301
5301
  };
5302
- //# sourceMappingURL=chunk-WKNSD7YL.js.map
5302
+ //# sourceMappingURL=chunk-2K5PKVFE.js.map
@@ -8,7 +8,7 @@ import {
8
8
  MCP_TIMEOUTS,
9
9
  TEST_TIMEOUTS,
10
10
  WORKFLOW_TIMEOUTS
11
- } from "./chunk-RIF7TUYH.js";
11
+ } from "./chunk-KWMENWRB.js";
12
12
  import {
13
13
  createGetToolRateLimit
14
14
  } from "./chunk-LWOX65CP.js";
@@ -223,4 +223,4 @@ export {
223
223
  CUSTOM_API_DEFAULT_MODEL,
224
224
  DEFAULTS
225
225
  };
226
- //# sourceMappingURL=chunk-ZEDLXDDY.js.map
226
+ //# sourceMappingURL=chunk-2UUZKZ2U.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  ensureGatewayDiscovered,
3
3
  gatewayDiscoveryGeneration
4
- } from "./chunk-O4QDBQI6.js";
4
+ } from "./chunk-RP3RG4SV.js";
5
5
  import {
6
6
  createAutoAdapter
7
- } from "./chunk-WKNSD7YL.js";
7
+ } from "./chunk-2K5PKVFE.js";
8
8
  import {
9
9
  getDefaultCliCircuitBreakerRegistry,
10
10
  isCallerCancelled,
11
11
  mapModelErrorToCategory
12
- } from "./chunk-ZTOTKIAO.js";
12
+ } from "./chunk-WAZC4MM7.js";
13
13
  import {
14
14
  CircularBuffer,
15
15
  ConfigError,
@@ -34,7 +34,7 @@ import {
34
34
  resolveModelIdentitySync,
35
35
  toRateLimitError,
36
36
  warnIfGatewayCostUndeclared
37
- } from "./chunk-RIF7TUYH.js";
37
+ } from "./chunk-KWMENWRB.js";
38
38
 
39
39
  // src/config/model-equivalence.ts
40
40
  var VARIANT_QUIRKS = /* @__PURE__ */ new Set(["small", "image"]);
@@ -1076,4 +1076,4 @@ export {
1076
1076
  getGlobalRegistry,
1077
1077
  resetGlobalRegistry
1078
1078
  };
1079
- //# sourceMappingURL=chunk-CGPKV4KH.js.map
1079
+ //# sourceMappingURL=chunk-2WW5OIKD.js.map
@@ -3,14 +3,14 @@ import {
3
3
  } from "./chunk-W654ME6B.js";
4
4
  import {
5
5
  resolveToken
6
- } from "./chunk-METD44P2.js";
6
+ } from "./chunk-KIA5SC44.js";
7
7
  import {
8
8
  REGISTRY_PATH,
9
9
  getProjectRoot,
10
10
  loadPapersRegistry,
11
11
  loadTechniquesRegistry,
12
12
  savePapersRegistry
13
- } from "./chunk-D6LZY3W7.js";
13
+ } from "./chunk-66IWQNWP.js";
14
14
  import {
15
15
  resolveInsideRoot
16
16
  } from "./chunk-XEPZSDN5.js";
@@ -21,7 +21,7 @@ import {
21
21
  rankedItemTrustTier,
22
22
  trustTierLabel,
23
23
  withoutUntrustedMemory
24
- } from "./chunk-BE6L6MIE.js";
24
+ } from "./chunk-57IM5TNR.js";
25
25
  import {
26
26
  capitalizeWords,
27
27
  tokenizeFiltered,
@@ -50,7 +50,7 @@ import {
50
50
  ok,
51
51
  registerPersistentDistillerFactory,
52
52
  sigmoidConfidence
53
- } from "./chunk-RIF7TUYH.js";
53
+ } from "./chunk-KWMENWRB.js";
54
54
  import {
55
55
  ensureLearningDir,
56
56
  getRulesFile
@@ -4287,4 +4287,4 @@ export {
4287
4287
  DEFAULT_CONTEXT_BUDGET_TOKENS,
4288
4288
  getContextPromptPrefix
4289
4289
  };
4290
- //# sourceMappingURL=chunk-JRDNNCM7.js.map
4290
+ //# sourceMappingURL=chunk-4YQZELVY.js.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-SX5DB6UR.js";
6
6
  import {
7
7
  SessionMemory
8
- } from "./chunk-J2QYPARH.js";
8
+ } from "./chunk-KXMEPCFU.js";
9
9
  import {
10
10
  TRUST_TIER_NUMERIC,
11
11
  TrustTierSchema
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-MUJCGBZW.js";
20
20
  import {
21
21
  generateId
22
- } from "./chunk-5O4KT2WO.js";
22
+ } from "./chunk-YFJFCHIT.js";
23
23
  import {
24
24
  ErrorCode,
25
25
  NexusError,
@@ -33,7 +33,7 @@ import {
33
33
  ok,
34
34
  openSqliteDatabase,
35
35
  setSharedMobiMemDbPathResolver
36
- } from "./chunk-RIF7TUYH.js";
36
+ } from "./chunk-KWMENWRB.js";
37
37
  import {
38
38
  nexusDataPath
39
39
  } from "./chunk-LWOX65CP.js";
@@ -5858,4 +5858,4 @@ export {
5858
5858
  shutdownToolMemory,
5859
5859
  ToolMemoryManager
5860
5860
  };
5861
- //# sourceMappingURL=chunk-BE6L6MIE.js.map
5861
+ //# sourceMappingURL=chunk-57IM5TNR.js.map
@@ -8,7 +8,7 @@ import {
8
8
  err,
9
9
  getErrorMessage,
10
10
  ok
11
- } from "./chunk-RIF7TUYH.js";
11
+ } from "./chunk-KWMENWRB.js";
12
12
  import {
13
13
  findRepoRoot,
14
14
  getActiveWorkspaceRoot,
@@ -213,4 +213,4 @@ export {
213
213
  loadPapersRegistry,
214
214
  savePapersRegistry
215
215
  };
216
- //# sourceMappingURL=chunk-D6LZY3W7.js.map
216
+ //# sourceMappingURL=chunk-66IWQNWP.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveClassGuardMs
3
- } from "./chunk-RIF7TUYH.js";
3
+ } from "./chunk-KWMENWRB.js";
4
4
 
5
5
  // src/cli/cli-readiness.ts
6
6
  var READINESS_LEVELS = ["installed", "authenticated", "serves"];
@@ -27,7 +27,7 @@ function buildGatewayReadiness(cli, gateway, serves) {
27
27
  function readinessSummary(readiness) {
28
28
  const g = readiness.gateway;
29
29
  if (g !== void 0) {
30
- const why = g.cliState === "disabled" ? "CLI disabled by NEXUS_DISABLED_CLIS" : "CLI not available";
30
+ const why = g.cliState === "disabled" ? "CLI disabled by NEXUS_DISABLED_CLIS" : g.cliListAdmitted === true ? "CLI not available: its health/auth check failed in this live run, but the CLI list above admitted it" : "CLI not available";
31
31
  const verdict = readiness.reached === "serves" ? "serves" : "not ready";
32
32
  return `served by gateway model ${g.gatewayModel} (${why}) \u2014 ${verdict}`;
33
33
  }
@@ -107,4 +107,4 @@ export {
107
107
  SERVES_PROBE_PROMPT,
108
108
  probeServes
109
109
  };
110
- //# sourceMappingURL=chunk-G4UBTYE3.js.map
110
+ //# sourceMappingURL=chunk-6NMURF4A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/cli-readiness.ts"],"sourcesContent":["/**\n * Readiness levels for a CLI adapter (#4376, #4351 criterion 7).\n *\n * Nothing in the tree could confirm that an adapter which *looks* healthy can\n * actually serve a completion. `healthCheck()` proves the binary exists at an\n * acceptable version; `cli-auth-probe` proves credentials are present and\n * unexpired, and says so explicitly — \"No live API calls.\" Neither proves the\n * adapter serves anything.\n *\n * That is the state #4351 reported: every voter returned `stop_sequence` with\n * zero tokens while every available check said healthy. The checks were not\n * wrong; they were answering a narrower question than the caller assumed.\n *\n * ## Levels, and what each one actually proves\n *\n * | level | proves | costs |\n * | --------------- | ----------------------------------------- | ----- |\n * | `installed` | the binary exists at a supported version | none |\n * | `authenticated` | credentials are present and unexpired | none |\n * | `serves` | a real completion came back with content | quota |\n *\n * `serves` is the only level that can catch #4351, and the only one that\n * spends the resource it is measuring. It therefore runs **only when\n * explicitly invoked** (`doctor --live`). Decided by a 7-voter `higher_order`\n * panel on #4376 (5 of 6 approvers): the rejected alternative cached a probe\n * result behind a TTL on the default path, which is a stale measurement\n * presented as current readiness — the same defect this module exists to fix.\n *\n * ## Not-attempted is not a failure\n *\n * The load-bearing distinction. A level that was never run reports\n * `not-attempted`, never `failed`. A reader must be able to tell \"we checked\n * and it does not serve\" from \"we did not check\", because the second is the\n * default state of every run that does not pass `--live`, and reporting it as\n * either healthy or broken would be a claim nobody measured.\n *\n * @module cli/cli-readiness\n * (Source: Issue #4376)\n */\n\nimport { resolveClassGuardMs } from '../config/timeouts.js';\nimport type { CliName } from '../cli-adapters/types.js';\n\n/** Ordered weakest to strongest. Each level subsumes the ones before it. */\nexport const READINESS_LEVELS = ['installed', 'authenticated', 'serves'] as const;\n\nexport type ReadinessLevel = (typeof READINESS_LEVELS)[number];\n\n/** What a single level's check concluded. */\nexport type LevelOutcome =\n | { readonly status: 'verified' }\n | { readonly status: 'failed'; readonly reason: string }\n /** Not run. Carries why, so the report can distinguish opt-out from error. */\n | { readonly status: 'not-attempted'; readonly reason: string };\n\n/**\n * The slot is served by a gateway model, not the CLI (#6720). Its CLI levels\n * are not measured — the CLI is disabled or not available, and is not run —\n * so only `serves` says anything, and it says it about the gateway model.\n */\nexport interface GatewayServedReadiness {\n readonly gatewayModel: string;\n /** Why the CLI does not serve the slot. */\n readonly cliState: 'disabled' | 'not-available';\n /**\n * The main doctor CLI list admitted this CLI, while this run's own\n * availability check found it not available (#6781). The two are separate\n * health checks; this records that they disagreed.\n */\n readonly cliListAdmitted?: true;\n}\n\nexport interface CliReadiness {\n readonly cli: CliName;\n readonly levels: Readonly<Record<ReadinessLevel, LevelOutcome>>;\n /** Present when a gateway model serves the slot; the levels then describe it. */\n readonly gateway?: GatewayServedReadiness;\n /**\n * The strongest level actually VERIFIED, or undefined when even `installed`\n * failed. Never inferred from a level that was not attempted.\n */\n readonly reached?: ReadinessLevel;\n}\n\n/** Human-readable statement of what a level does and does not prove. */\nexport const LEVEL_MEANING: Readonly<Record<ReadinessLevel, string>> = {\n installed: 'binary present at a supported version — proves nothing about auth or serving',\n authenticated: 'credentials present and unexpired, read locally — no API call was made',\n serves: 'a real completion returned content — the only level that proves the adapter works',\n};\n\n/**\n * The strongest verified level, stopping at the first gap.\n *\n * Stops rather than scanning for any verified level, because the ladder is\n * cumulative: a `serves` verification below a failed `authenticated` would\n * mean the two checks disagree, and reporting the higher one would paper over\n * that. A `not-attempted` level stops the ladder exactly like a failure —\n * absence of a check is not a pass.\n */\nexport function highestVerified(\n levels: Readonly<Record<ReadinessLevel, LevelOutcome>>\n): ReadinessLevel | undefined {\n let reached: ReadinessLevel | undefined;\n for (const level of READINESS_LEVELS) {\n if (levels[level].status !== 'verified') break;\n reached = level;\n }\n return reached;\n}\n\n/** Assemble a readiness result, deriving `reached` from the outcomes. */\nexport function buildReadiness(\n cli: CliName,\n levels: Readonly<Record<ReadinessLevel, LevelOutcome>>\n): CliReadiness {\n const reached = highestVerified(levels);\n return { cli, levels, ...(reached !== undefined ? { reached } : {}) };\n}\n\n/**\n * Readiness of a slot a gateway model serves (#6720). `installed` and\n * `authenticated` are the CLI's rungs and were not run — the CLI is not what\n * serves — so they are `not-attempted` with that reason, and `reached` is\n * `serves` exactly when the gateway model's completion came back.\n */\nexport function buildGatewayReadiness(\n cli: CliName,\n gateway: GatewayServedReadiness,\n serves: LevelOutcome\n): CliReadiness {\n const notRun: LevelOutcome = {\n status: 'not-attempted',\n reason: `the CLI is not run: gateway model ${gateway.gatewayModel} serves this slot`,\n };\n const levels = { installed: notRun, authenticated: notRun, serves };\n return { cli, levels, gateway, ...(serves.status === 'verified' ? { reached: 'serves' } : {}) };\n}\n\n/** The header of one readiness entry. */\nfunction readinessSummary(readiness: CliReadiness): string {\n const g = readiness.gateway;\n if (g !== undefined) {\n const why =\n g.cliState === 'disabled'\n ? 'CLI disabled by NEXUS_DISABLED_CLIS'\n : g.cliListAdmitted === true\n ? 'CLI not available: its health/auth check failed in this live run, but the CLI list above admitted it'\n : 'CLI not available';\n const verdict = readiness.reached === 'serves' ? 'serves' : 'not ready';\n return `served by gateway model ${g.gatewayModel} (${why}) — ${verdict}`;\n }\n return readiness.reached === undefined ? 'not ready' : `ready through \"${readiness.reached}\"`;\n}\n\n/**\n * Render one CLI's ladder, naming every level's state.\n *\n * Every level is printed, including the ones that did not run. A report that\n * silently omitted `serves` would read as a clean bill of health from a run\n * that never tested serving — which is precisely how #4351 went unnoticed.\n */\nexport function formatReadiness(readiness: CliReadiness): string {\n // Exhaustive rather than a ternary chain (#4563): a new LevelOutcome status\n // would otherwise fall into the '·' arm and render as \"not attempted\",\n // quietly misreporting whatever the new state actually means.\n const icon = (o: LevelOutcome): string => {\n switch (o.status) {\n case 'verified':\n return '✓';\n case 'failed':\n return '✗';\n case 'not-attempted':\n return '·';\n default: {\n const exhaustive: never = o;\n throw new Error(`Unhandled level outcome: ${JSON.stringify(exhaustive)}`);\n }\n }\n };\n\n const lines = READINESS_LEVELS.map((level) => {\n const outcome = readiness.levels[level];\n const detail = outcome.status === 'verified' ? '' : ` — ${outcome.reason}`;\n return ` ${icon(outcome)} ${level}${detail}`;\n });\n\n return [` ${readiness.cli}: ${readinessSummary(readiness)}`, ...lines].join('\\n');\n}\n\n/** The minimal adapter surface the `serves` probe needs. */\nexport interface ServesProbeTarget {\n execute(task: {\n content: string;\n maxTokens?: number;\n }): Promise<{ ok: true; value: { text: string } } | { ok: false; error: { message: string } }>;\n}\n\n/**\n * The smallest prompt that still proves generation happened.\n *\n * Short on purpose — this level spends real quota, so it asks for the least\n * that can distinguish \"served content\" from \"returned nothing\".\n */\nexport const SERVES_PROBE_PROMPT = 'Reply with the single word: ok';\n\n/**\n * Probe whether an adapter actually serves a completion.\n *\n * The check that matters is **non-empty content**, not a successful exit.\n * #4351's signature was every voter returning `stop_sequence` with zero\n * tokens: the call succeeded and produced nothing. An adapter that returns\n * `ok` with empty text has not served, and saying otherwise would reproduce\n * the exact reading that made the incident invisible.\n *\n * Bounded by the `interactive` operation-class guard. Found by running it: an\n * unbounded ladder over four adapters hung past two minutes with no output,\n * and a readiness check that never returns is worse than one that reports a\n * failure — the operator learns nothing either way, but waits for it. A\n * timeout is itself a legitimate not-ready result, not an error.\n *\n * @param adapter - The adapter to probe.\n * @param timeoutMs - Per-adapter ceiling; defaults to the interactive guard.\n */\nexport async function probeServes(\n adapter: ServesProbeTarget,\n timeoutMs: number = resolveClassGuardMs('interactive')\n): Promise<LevelOutcome> {\n let result: Awaited<ReturnType<ServesProbeTarget['execute']>>;\n try {\n result = await withDeadline(\n adapter.execute({ content: SERVES_PROBE_PROMPT, maxTokens: 16 }),\n timeoutMs\n );\n } catch (caught: unknown) {\n if (caught instanceof ProbeTimeout) {\n return {\n status: 'failed',\n reason: `no response within ${String(Math.round(timeoutMs / 1000))}s`,\n };\n }\n const message = caught instanceof Error ? caught.message : String(caught);\n return { status: 'failed', reason: `probe threw: ${message}` };\n }\n\n if (!result.ok) {\n return { status: 'failed', reason: result.error.message };\n }\n if (result.value.text.trim() === '') {\n return {\n status: 'failed',\n reason: 'call succeeded but returned no content — the #4351 signature',\n };\n }\n return { status: 'verified' };\n}\n\n/** Raised when a probe outlives its ceiling. */\nclass ProbeTimeout extends Error {}\n\n/**\n * Race a promise against a deadline.\n *\n * The underlying call is not cancelled — a CLI subprocess keeps running until\n * its own guard reaps it. What this bounds is how long the OPERATOR waits,\n * which is the thing that made an unbounded ladder unusable.\n */\nasync function withDeadline<T>(work: Promise<T>, timeoutMs: number): Promise<T> {\n let timer: NodeJS.Timeout | undefined;\n const deadline = new Promise<never>((_resolve, reject) => {\n timer = setTimeout(() => {\n reject(new ProbeTimeout());\n }, timeoutMs);\n // Deliberately NOT unref'd. An unref'd timer does not hold the event loop\n // open, so if the probed call never settles and nothing else is pending,\n // Node can exit at the await before the deadline fires — the guarantee\n // voiding itself in precisely the case it exists for. `clearTimeout` in\n // the finally is what stops it outliving a call that did settle.\n });\n\n try {\n return await Promise.race([work, deadline]);\n } finally {\n if (timer !== undefined) clearTimeout(timer);\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  // src/version.ts
2
2
  import semver from "semver";
3
- var VERSION = true ? "8.110.1" : "dev";
3
+ var VERSION = true ? "8.111.1" : "dev";
4
4
  var NODE_ENGINE_RANGE = ">=22.5.0";
5
5
  function isNodeVersionSupported(version) {
6
6
  return semver.satisfies(version, NODE_ENGINE_RANGE);
@@ -11,4 +11,4 @@ export {
11
11
  NODE_ENGINE_RANGE,
12
12
  isNodeVersionSupported
13
13
  };
14
- //# sourceMappingURL=chunk-W3EXUWFG.js.map
14
+ //# sourceMappingURL=chunk-72CRUGJD.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-WKKSNJV3.js";
10
+ } from "./chunk-B4NMODAJ.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -21,7 +21,7 @@ import {
21
21
  hasMeasuredCategory,
22
22
  isDeclaredNeverDeprecate,
23
23
  isRegisteredToolName
24
- } from "./chunk-RIF7TUYH.js";
24
+ } from "./chunk-KWMENWRB.js";
25
25
  import {
26
26
  getNexusDataDir,
27
27
  nexusDataPath
@@ -2293,4 +2293,4 @@ export {
2293
2293
  runImprovementReview,
2294
2294
  registerImprovementReviewTool
2295
2295
  };
2296
- //# sourceMappingURL=chunk-SSIS5P24.js.map
2296
+ //# sourceMappingURL=chunk-AI6WEQ23.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-W3EXUWFG.js";
3
+ } from "./chunk-72CRUGJD.js";
4
4
  import {
5
5
  resolveInsideRoot
6
6
  } from "./chunk-XEPZSDN5.js";
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  sanitizeErrorDetails,
12
12
  sanitizeStringLeaves
13
- } from "./chunk-22AF7TYV.js";
13
+ } from "./chunk-CIA3WNBQ.js";
14
14
  import {
15
15
  CACHE_TIMEOUTS,
16
16
  MCP_TIMEOUTS,
@@ -27,7 +27,7 @@ import {
27
27
  getTimeProvider,
28
28
  ok,
29
29
  resolveToolClassGuardMs
30
- } from "./chunk-RIF7TUYH.js";
30
+ } from "./chunk-KWMENWRB.js";
31
31
  import {
32
32
  getNexusDataDir,
33
33
  parseBoolValue
@@ -2329,4 +2329,4 @@ export {
2329
2329
  DEFAULT_CONSENSUS_CONFIG,
2330
2330
  ConsensusMetricsSchema
2331
2331
  };
2332
- //# sourceMappingURL=chunk-WKKSNJV3.js.map
2332
+ //# sourceMappingURL=chunk-B4NMODAJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactCredentialShapes
3
- } from "./chunk-RIF7TUYH.js";
3
+ } from "./chunk-KWMENWRB.js";
4
4
 
5
5
  // src/security/output-sanitizer.ts
6
6
  var REDACTED_KEY_PLACEHOLDER = "[REDACTED_KEY]";
@@ -54,4 +54,4 @@ export {
54
54
  sanitizeErrorDetails,
55
55
  sanitizeStringLeaves
56
56
  };
57
- //# sourceMappingURL=chunk-22AF7TYV.js.map
57
+ //# sourceMappingURL=chunk-CIA3WNBQ.js.map
@@ -19,16 +19,16 @@ import {
19
19
  toolSuccessStructured,
20
20
  withProgressHeartbeat,
21
21
  wrapToolWithTimeout
22
- } from "./chunk-WKKSNJV3.js";
22
+ } from "./chunk-B4NMODAJ.js";
23
23
  import {
24
24
  VERSION
25
- } from "./chunk-W3EXUWFG.js";
25
+ } from "./chunk-72CRUGJD.js";
26
26
  import {
27
27
  allOf
28
28
  } from "./chunk-EZNIYU5T.js";
29
29
  import {
30
30
  isGatewayModelAdapter
31
- } from "./chunk-BJJOZV7O.js";
31
+ } from "./chunk-YSHMDDDZ.js";
32
32
  import {
33
33
  UNRESOLVED_MODEL_ID,
34
34
  assessPanelIndependence,
@@ -36,29 +36,29 @@ import {
36
36
  countDistinctModels,
37
37
  createEvent,
38
38
  getGlobalRegistry
39
- } from "./chunk-CGPKV4KH.js";
39
+ } from "./chunk-2WW5OIKD.js";
40
40
  import {
41
41
  ensureGatewayDiscovered
42
- } from "./chunk-O4QDBQI6.js";
42
+ } from "./chunk-RP3RG4SV.js";
43
43
  import {
44
44
  getToolMemory
45
- } from "./chunk-BE6L6MIE.js";
45
+ } from "./chunk-57IM5TNR.js";
46
46
  import {
47
47
  delay,
48
48
  getAvailableClis,
49
49
  sleep,
50
50
  withTimeout
51
- } from "./chunk-WKNSD7YL.js";
51
+ } from "./chunk-2K5PKVFE.js";
52
52
  import {
53
53
  sanitizeErrorDetails,
54
54
  sanitizeOutput,
55
55
  sanitizeStringLeaves
56
- } from "./chunk-22AF7TYV.js";
56
+ } from "./chunk-CIA3WNBQ.js";
57
57
  import {
58
58
  isTimeoutAbortReason,
59
59
  isTimeoutText,
60
60
  raceAbort
61
- } from "./chunk-ZTOTKIAO.js";
61
+ } from "./chunk-WAZC4MM7.js";
62
62
  import {
63
63
  AgentError,
64
64
  CLI_NAMES,
@@ -100,7 +100,7 @@ import {
100
100
  resolveVoteTimeout,
101
101
  servedCostDetail,
102
102
  stepBus
103
- } from "./chunk-RIF7TUYH.js";
103
+ } from "./chunk-KWMENWRB.js";
104
104
  import {
105
105
  ensureLearningDir,
106
106
  getOutcomesFile
@@ -6637,7 +6637,7 @@ function logPartialProposal(bounded, log) {
6637
6637
  }
6638
6638
  async function runContrarianCheck(proposal, log, opts) {
6639
6639
  try {
6640
- const { executeExpert } = await import("./expert-bridge-R4AM2VPK.js");
6640
+ const { executeExpert } = await import("./expert-bridge-SL7JURER.js");
6641
6641
  const bounded = boundArtifactForReview(proposal, CONTRARIAN_PROPOSAL_BUDGET, "proposal");
6642
6642
  logPartialProposal(bounded, log);
6643
6643
  const result = await executeExpert("architecture", buildContrarianPrompt(bounded, opts), {
@@ -10061,4 +10061,4 @@ export {
10061
10061
  CONSENSUS_VOTE_TOOL_SCHEMA,
10062
10062
  registerConsensusVoteTool
10063
10063
  };
10064
- //# sourceMappingURL=chunk-TAGJV5NH.js.map
10064
+ //# sourceMappingURL=chunk-D5H6HJFW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SERVES_PROBE_PROMPT
3
- } from "./chunk-G4UBTYE3.js";
3
+ } from "./chunk-6NMURF4A.js";
4
4
  import {
5
5
  checkGatewayHealth,
6
6
  cliFailsVerdict,
@@ -8,22 +8,22 @@ import {
8
8
  gatewaySlotServing,
9
9
  gatewayVerdict,
10
10
  printVoterTransportCheck
11
- } from "./chunk-C4OZ4F67.js";
11
+ } from "./chunk-M7FBZLI5.js";
12
12
  import {
13
13
  NODE_ENGINE_RANGE,
14
14
  VERSION,
15
15
  isNodeVersionSupported
16
- } from "./chunk-W3EXUWFG.js";
16
+ } from "./chunk-72CRUGJD.js";
17
17
  import {
18
18
  allOf
19
19
  } from "./chunk-EZNIYU5T.js";
20
20
  import {
21
21
  readOpenAICompatEndpoint,
22
22
  readOpenAICompatEnv
23
- } from "./chunk-BJJOZV7O.js";
23
+ } from "./chunk-YSHMDDDZ.js";
24
24
  import {
25
25
  claimGlobalRegistry
26
- } from "./chunk-CGPKV4KH.js";
26
+ } from "./chunk-2WW5OIKD.js";
27
27
  import {
28
28
  capitalize
29
29
  } from "./chunk-SX5DB6UR.js";
@@ -35,10 +35,10 @@ import {
35
35
  createAllAdapters,
36
36
  isCliAdmitted,
37
37
  probeCli
38
- } from "./chunk-WKNSD7YL.js";
38
+ } from "./chunk-2K5PKVFE.js";
39
39
  import {
40
40
  resolveGatewayEnv
41
- } from "./chunk-DNXEQKBR.js";
41
+ } from "./chunk-RG4J5IBH.js";
42
42
  import {
43
43
  getNexusTmpDir
44
44
  } from "./chunk-OITVVSWO.js";
@@ -63,7 +63,7 @@ import {
63
63
  resolveGatewayCostDeclaration,
64
64
  symbols,
65
65
  writeLine
66
- } from "./chunk-RIF7TUYH.js";
66
+ } from "./chunk-KWMENWRB.js";
67
67
  import {
68
68
  getLearningDir,
69
69
  getOutcomesFile,
@@ -1383,9 +1383,10 @@ async function runDoctor(deps = {}) {
1383
1383
  }
1384
1384
  async function doctorCommand(options = {}) {
1385
1385
  const result = await runDoctor({ gatewayProbe: options.probe === true });
1386
+ options.onResult?.(result);
1386
1387
  printDoctorResults(result);
1387
1388
  if (options.gateway === true || options.probe === true) {
1388
- const { formatGatewayReport } = await import("./doctor-gateway-report-N4H4LV2Q.js");
1389
+ const { formatGatewayReport } = await import("./doctor-gateway-report-OQRLJBPJ.js");
1389
1390
  for (const line of formatGatewayReport(result.gateway, result.clis)) {
1390
1391
  process.stdout.write(line + "\n");
1391
1392
  }
@@ -1404,13 +1405,13 @@ async function runDoctorFix(result) {
1404
1405
  writeLine2("\u2500".repeat(40));
1405
1406
  let fixCount = 0;
1406
1407
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
1407
- const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-62R3ZQI4.js");
1408
+ const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-BNP6T36S.js");
1408
1409
  const outcome = describeDataDirFix2(initDataDirectories2());
1409
1410
  writeLine2(outcome.line);
1410
1411
  if (outcome.counted) fixCount++;
1411
1412
  }
1412
1413
  if (!result.configFile.found) {
1413
- const { runConfigInitSync } = await import("./setup-config-J6YHOKO3.js");
1414
+ const { runConfigInitSync } = await import("./setup-config-EBXHA4ZI.js");
1414
1415
  const configResult = runConfigInitSync(process.cwd(), false, false);
1415
1416
  if (configResult.success && configResult.created) {
1416
1417
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -1506,4 +1507,4 @@ export {
1506
1507
  startStdioServer,
1507
1508
  closeServer
1508
1509
  };
1509
- //# sourceMappingURL=chunk-LNPSEZUE.js.map
1510
+ //# sourceMappingURL=chunk-F7CBJAVN.js.map