nexus-agents 2.125.38 → 2.125.39

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 (120) hide show
  1. package/dist/{child-mcp-config-TBDRJBON.js → child-mcp-config-UE7XDCSM.js} +2 -2
  2. package/dist/{chunk-JQABKB7Y.js → chunk-3K24ZTJV.js} +3 -3
  3. package/dist/{chunk-JGDKKUAR.js → chunk-3PMSAUMK.js} +2 -2
  4. package/dist/{chunk-JJX3KTDY.js → chunk-44XZ2HNA.js} +2 -2
  5. package/dist/{chunk-JWZ47MEY.js → chunk-64Y2HGC2.js} +2 -2
  6. package/dist/{chunk-SZNJJ6D2.js → chunk-6WOE454N.js} +2 -2
  7. package/dist/{chunk-3CETDGDS.js → chunk-7FMTUONH.js} +3 -3
  8. package/dist/{chunk-IYPZMGCK.js → chunk-DNDNPYQH.js} +2 -2
  9. package/dist/{chunk-6RENNJN5.js → chunk-EVACKK4H.js} +7 -7
  10. package/dist/{chunk-ABPE65WQ.js → chunk-GPP7NUW7.js} +3 -3
  11. package/dist/{chunk-MM5BUCQN.js → chunk-INOPFUAK.js} +3 -3
  12. package/dist/{chunk-4CRRZFO4.js → chunk-IWSM3DWQ.js} +5 -5
  13. package/dist/{chunk-HOK5UBVI.js → chunk-IY4MERGY.js} +4 -3
  14. package/dist/chunk-IY4MERGY.js.map +1 -0
  15. package/dist/{chunk-GK54JHWC.js → chunk-IY53KVRS.js} +5 -5
  16. package/dist/{chunk-LLILGXSQ.js → chunk-J646HAYB.js} +2 -2
  17. package/dist/{chunk-ILJRBCDU.js → chunk-JQSKFJR2.js} +4 -4
  18. package/dist/{chunk-LFVAZPD3.js → chunk-K7RTUYVI.js} +2 -2
  19. package/dist/{chunk-Q37HBFVE.js → chunk-MWLZ2QRR.js} +7 -7
  20. package/dist/{chunk-TC5EJP4W.js → chunk-OA23LZHC.js} +4 -4
  21. package/dist/{chunk-ZSD22GDP.js → chunk-OGWZ2U6S.js} +7 -6
  22. package/dist/chunk-OGWZ2U6S.js.map +1 -0
  23. package/dist/{chunk-PRFSN66J.js → chunk-PE2CEWSV.js} +7 -7
  24. package/dist/{chunk-2SIYUWT2.js → chunk-QI6TR5Z2.js} +47 -38
  25. package/dist/{chunk-2SIYUWT2.js.map → chunk-QI6TR5Z2.js.map} +1 -1
  26. package/dist/{chunk-TEH2E7NM.js → chunk-SQEK24L2.js} +2 -2
  27. package/dist/{chunk-WHYWTVEF.js → chunk-SVRZCP4Z.js} +2 -2
  28. package/dist/{chunk-YFTMYS5W.js → chunk-SX5MN5NZ.js} +7 -7
  29. package/dist/{chunk-RWSID64Q.js → chunk-UDWGHWRD.js} +2 -2
  30. package/dist/{chunk-WBK5XAEN.js → chunk-UYEQT227.js} +3 -3
  31. package/dist/{chunk-LK5ABW6P.js → chunk-WFBMP2KU.js} +2 -2
  32. package/dist/{chunk-EG2563SC.js → chunk-WHIVC24R.js} +2 -2
  33. package/dist/{chunk-2HYIE6RM.js → chunk-WIESOZJC.js} +4 -4
  34. package/dist/{chunk-FSCHYRFC.js → chunk-Z2AUPAZG.js} +3 -3
  35. package/dist/{chunk-2EAW6X46.js → chunk-ZIHWMNPJ.js} +2 -2
  36. package/dist/{chunk-GWWHOWXO.js → chunk-ZTYGG4ES.js} +9 -3
  37. package/dist/{chunk-GWWHOWXO.js.map → chunk-ZTYGG4ES.js.map} +1 -1
  38. package/dist/{cli-circuit-breaker-WA7IHKSZ.js → cli-circuit-breaker-FJ4H7HFK.js} +4 -4
  39. package/dist/cli.js +43 -42
  40. package/dist/cli.js.map +1 -1
  41. package/dist/{composite-router-7FDSFV2K.js → composite-router-HWVGDMQ7.js} +2 -2
  42. package/dist/{consensus-vote-CSKEO3LA.js → consensus-vote-ERXJD63Q.js} +13 -13
  43. package/dist/{context-retriever-FIG6GR2T.js → context-retriever-VMBODLUB.js} +8 -8
  44. package/dist/{doctor-deep-QLTX5O73.js → doctor-deep-O74SW7GH.js} +3 -3
  45. package/dist/{expert-bridge-7EM5ISBT.js → expert-bridge-LXWIDBYX.js} +4 -4
  46. package/dist/factory-4HQDN776.js +21 -0
  47. package/dist/{factory-JFRP5VFG.js → factory-VDSQB5LL.js} +5 -5
  48. package/dist/{improvement-review-JCHASOOO.js → improvement-review-XFIZBQ7I.js} +4 -4
  49. package/dist/index.js +28 -28
  50. package/dist/{init-opencode-HJW3VOJN.js → init-opencode-27GOTVDF.js} +5 -5
  51. package/dist/{issue-triage-V6K5ZORJ.js → issue-triage-4HTSVLIP.js} +5 -5
  52. package/dist/{pr-reviewer-helpers-FBBHV474.js → pr-reviewer-helpers-BJVRCXFH.js} +4 -4
  53. package/dist/{registry-command-HYLBNMK6.js → registry-command-KKGGQ5CK.js} +6 -3
  54. package/dist/registry-command-KKGGQ5CK.js.map +1 -0
  55. package/dist/{repo-security-plan-QXBFSSFH.js → repo-security-plan-JNH6ZAX2.js} +3 -3
  56. package/dist/{research-helpers-synthesize-VFRP7I2U.js → research-helpers-synthesize-OAIZNEHS.js} +4 -4
  57. package/dist/{routing-memory-QFKFPRVQ.js → routing-memory-DPOKLIAF.js} +2 -2
  58. package/dist/{session-memory-AIUVIUXQ.js → session-memory-KG6XT23Z.js} +3 -3
  59. package/dist/{setup-command-GBO3IMC5.js → setup-command-GT2DVOXY.js} +11 -11
  60. package/dist/{setup-config-ICN7E7Y7.js → setup-config-ZZEKKVW6.js} +3 -3
  61. package/dist/{setup-custom-api-7QT23MKQ.js → setup-custom-api-PUAFTVW7.js} +3 -3
  62. package/dist/{tool-memory-KSXGQNVX.js → tool-memory-LRUED473.js} +5 -5
  63. package/dist/{unified-registry-LZVKNAFP.js → unified-registry-QEIYJU7U.js} +9 -9
  64. package/dist/{weather-report-NLZXBP7Z.js → weather-report-JA5ONXGR.js} +2 -2
  65. package/package.json +1 -1
  66. package/dist/chunk-HOK5UBVI.js.map +0 -1
  67. package/dist/chunk-ZSD22GDP.js.map +0 -1
  68. package/dist/factory-VJELNN5K.js +0 -21
  69. package/dist/registry-command-HYLBNMK6.js.map +0 -1
  70. /package/dist/{child-mcp-config-TBDRJBON.js.map → child-mcp-config-UE7XDCSM.js.map} +0 -0
  71. /package/dist/{chunk-JQABKB7Y.js.map → chunk-3K24ZTJV.js.map} +0 -0
  72. /package/dist/{chunk-JGDKKUAR.js.map → chunk-3PMSAUMK.js.map} +0 -0
  73. /package/dist/{chunk-JJX3KTDY.js.map → chunk-44XZ2HNA.js.map} +0 -0
  74. /package/dist/{chunk-JWZ47MEY.js.map → chunk-64Y2HGC2.js.map} +0 -0
  75. /package/dist/{chunk-SZNJJ6D2.js.map → chunk-6WOE454N.js.map} +0 -0
  76. /package/dist/{chunk-3CETDGDS.js.map → chunk-7FMTUONH.js.map} +0 -0
  77. /package/dist/{chunk-IYPZMGCK.js.map → chunk-DNDNPYQH.js.map} +0 -0
  78. /package/dist/{chunk-6RENNJN5.js.map → chunk-EVACKK4H.js.map} +0 -0
  79. /package/dist/{chunk-ABPE65WQ.js.map → chunk-GPP7NUW7.js.map} +0 -0
  80. /package/dist/{chunk-MM5BUCQN.js.map → chunk-INOPFUAK.js.map} +0 -0
  81. /package/dist/{chunk-4CRRZFO4.js.map → chunk-IWSM3DWQ.js.map} +0 -0
  82. /package/dist/{chunk-GK54JHWC.js.map → chunk-IY53KVRS.js.map} +0 -0
  83. /package/dist/{chunk-LLILGXSQ.js.map → chunk-J646HAYB.js.map} +0 -0
  84. /package/dist/{chunk-ILJRBCDU.js.map → chunk-JQSKFJR2.js.map} +0 -0
  85. /package/dist/{chunk-LFVAZPD3.js.map → chunk-K7RTUYVI.js.map} +0 -0
  86. /package/dist/{chunk-Q37HBFVE.js.map → chunk-MWLZ2QRR.js.map} +0 -0
  87. /package/dist/{chunk-TC5EJP4W.js.map → chunk-OA23LZHC.js.map} +0 -0
  88. /package/dist/{chunk-PRFSN66J.js.map → chunk-PE2CEWSV.js.map} +0 -0
  89. /package/dist/{chunk-TEH2E7NM.js.map → chunk-SQEK24L2.js.map} +0 -0
  90. /package/dist/{chunk-WHYWTVEF.js.map → chunk-SVRZCP4Z.js.map} +0 -0
  91. /package/dist/{chunk-YFTMYS5W.js.map → chunk-SX5MN5NZ.js.map} +0 -0
  92. /package/dist/{chunk-RWSID64Q.js.map → chunk-UDWGHWRD.js.map} +0 -0
  93. /package/dist/{chunk-WBK5XAEN.js.map → chunk-UYEQT227.js.map} +0 -0
  94. /package/dist/{chunk-LK5ABW6P.js.map → chunk-WFBMP2KU.js.map} +0 -0
  95. /package/dist/{chunk-EG2563SC.js.map → chunk-WHIVC24R.js.map} +0 -0
  96. /package/dist/{chunk-2HYIE6RM.js.map → chunk-WIESOZJC.js.map} +0 -0
  97. /package/dist/{chunk-FSCHYRFC.js.map → chunk-Z2AUPAZG.js.map} +0 -0
  98. /package/dist/{chunk-2EAW6X46.js.map → chunk-ZIHWMNPJ.js.map} +0 -0
  99. /package/dist/{cli-circuit-breaker-WA7IHKSZ.js.map → cli-circuit-breaker-FJ4H7HFK.js.map} +0 -0
  100. /package/dist/{composite-router-7FDSFV2K.js.map → composite-router-HWVGDMQ7.js.map} +0 -0
  101. /package/dist/{consensus-vote-CSKEO3LA.js.map → consensus-vote-ERXJD63Q.js.map} +0 -0
  102. /package/dist/{context-retriever-FIG6GR2T.js.map → context-retriever-VMBODLUB.js.map} +0 -0
  103. /package/dist/{doctor-deep-QLTX5O73.js.map → doctor-deep-O74SW7GH.js.map} +0 -0
  104. /package/dist/{expert-bridge-7EM5ISBT.js.map → expert-bridge-LXWIDBYX.js.map} +0 -0
  105. /package/dist/{factory-JFRP5VFG.js.map → factory-4HQDN776.js.map} +0 -0
  106. /package/dist/{factory-VJELNN5K.js.map → factory-VDSQB5LL.js.map} +0 -0
  107. /package/dist/{improvement-review-JCHASOOO.js.map → improvement-review-XFIZBQ7I.js.map} +0 -0
  108. /package/dist/{init-opencode-HJW3VOJN.js.map → init-opencode-27GOTVDF.js.map} +0 -0
  109. /package/dist/{issue-triage-V6K5ZORJ.js.map → issue-triage-4HTSVLIP.js.map} +0 -0
  110. /package/dist/{pr-reviewer-helpers-FBBHV474.js.map → pr-reviewer-helpers-BJVRCXFH.js.map} +0 -0
  111. /package/dist/{repo-security-plan-QXBFSSFH.js.map → repo-security-plan-JNH6ZAX2.js.map} +0 -0
  112. /package/dist/{research-helpers-synthesize-VFRP7I2U.js.map → research-helpers-synthesize-OAIZNEHS.js.map} +0 -0
  113. /package/dist/{routing-memory-QFKFPRVQ.js.map → routing-memory-DPOKLIAF.js.map} +0 -0
  114. /package/dist/{session-memory-AIUVIUXQ.js.map → session-memory-KG6XT23Z.js.map} +0 -0
  115. /package/dist/{setup-command-GBO3IMC5.js.map → setup-command-GT2DVOXY.js.map} +0 -0
  116. /package/dist/{setup-config-ICN7E7Y7.js.map → setup-config-ZZEKKVW6.js.map} +0 -0
  117. /package/dist/{setup-custom-api-7QT23MKQ.js.map → setup-custom-api-PUAFTVW7.js.map} +0 -0
  118. /package/dist/{tool-memory-KSXGQNVX.js.map → tool-memory-LRUED473.js.map} +0 -0
  119. /package/dist/{unified-registry-LZVKNAFP.js.map → unified-registry-QEIYJU7U.js.map} +0 -0
  120. /package/dist/{weather-report-NLZXBP7Z.js.map → weather-report-JA5ONXGR.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createLogger
3
- } from "./chunk-GWWHOWXO.js";
3
+ } from "./chunk-ZTYGG4ES.js";
4
4
  import "./chunk-ZGLIHPGJ.js";
5
5
  import "./chunk-PR4QN5HX.js";
6
6
 
@@ -59,4 +59,4 @@ export {
59
59
  generateMcpConfig,
60
60
  getDefaultAllowedTools
61
61
  };
62
- //# sourceMappingURL=child-mcp-config-TBDRJBON.js.map
62
+ //# sourceMappingURL=child-mcp-config-UE7XDCSM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OpenAIAdapter
3
- } from "./chunk-WBK5XAEN.js";
3
+ } from "./chunk-UYEQT227.js";
4
4
  import {
5
5
  ConfigError,
6
6
  createLogger,
@@ -9,7 +9,7 @@ import {
9
9
  getTimeProvider,
10
10
  lookupInTreeCapability,
11
11
  ok
12
- } from "./chunk-GWWHOWXO.js";
12
+ } from "./chunk-ZTYGG4ES.js";
13
13
  import {
14
14
  getNexusDataDir
15
15
  } from "./chunk-ZGLIHPGJ.js";
@@ -307,4 +307,4 @@ export {
307
307
  discoverModels,
308
308
  buildOpenAICompatAdapters
309
309
  };
310
- //# sourceMappingURL=chunk-JQABKB7Y.js.map
310
+ //# sourceMappingURL=chunk-3K24ZTJV.js.map
@@ -10,7 +10,7 @@ import {
10
10
  getTokenEstimator,
11
11
  isRateLimitLikeError,
12
12
  ok
13
- } from "./chunk-GWWHOWXO.js";
13
+ } from "./chunk-ZTYGG4ES.js";
14
14
 
15
15
  // src/adapters/base-adapter.ts
16
16
  var AdapterModelError = class extends ModelError {
@@ -707,4 +707,4 @@ export {
707
707
  DEFAULT_COLLECT_STREAM_MAX_CHUNKS,
708
708
  collectStream
709
709
  };
710
- //# sourceMappingURL=chunk-JGDKKUAR.js.map
710
+ //# sourceMappingURL=chunk-3PMSAUMK.js.map
@@ -12,7 +12,7 @@ import {
12
12
  getTimeProvider,
13
13
  ok,
14
14
  resolveToolClassGuardMs
15
- } from "./chunk-GWWHOWXO.js";
15
+ } from "./chunk-ZTYGG4ES.js";
16
16
  import {
17
17
  getNexusDataDir
18
18
  } from "./chunk-ZGLIHPGJ.js";
@@ -2627,4 +2627,4 @@ export {
2627
2627
  VOTING_THRESHOLDS,
2628
2628
  ConsensusMetricsSchema
2629
2629
  };
2630
- //# sourceMappingURL=chunk-JJX3KTDY.js.map
2630
+ //# sourceMappingURL=chunk-44XZ2HNA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getErrorMessage
3
- } from "./chunk-GWWHOWXO.js";
3
+ } from "./chunk-ZTYGG4ES.js";
4
4
 
5
5
  // src/cli/setup-config.ts
6
6
  import { copyFileSync, existsSync, mkdirSync, writeFileSync } from "fs";
@@ -77,4 +77,4 @@ function ensureBackup(outputPath) {
77
77
  export {
78
78
  runConfigInitSync
79
79
  };
80
- //# sourceMappingURL=chunk-JWZ47MEY.js.map
80
+ //# sourceMappingURL=chunk-64Y2HGC2.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  createLogger,
6
6
  getTimeProvider
7
- } from "./chunk-GWWHOWXO.js";
7
+ } from "./chunk-ZTYGG4ES.js";
8
8
 
9
9
  // src/mcp/tools/scanner-registry-fetcher.ts
10
10
  import { z } from "zod";
@@ -721,4 +721,4 @@ export {
721
721
  generateSecurityPlan,
722
722
  buildPlanFromAnalysis
723
723
  };
724
- //# sourceMappingURL=chunk-SZNJJ6D2.js.map
724
+ //# sourceMappingURL=chunk-6WOE454N.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-JJX3KTDY.js";
10
+ } from "./chunk-44XZ2HNA.js";
11
11
  import {
12
12
  SECURITY_KEYWORDS,
13
13
  createLogger,
@@ -16,7 +16,7 @@ import {
16
16
  getOutcomeStore,
17
17
  getPipelineEventBus,
18
18
  getTimeProvider
19
- } from "./chunk-GWWHOWXO.js";
19
+ } from "./chunk-ZTYGG4ES.js";
20
20
  import {
21
21
  getNexusDataDir
22
22
  } from "./chunk-ZGLIHPGJ.js";
@@ -1296,4 +1296,4 @@ export {
1296
1296
  runImprovementReview,
1297
1297
  registerImprovementReviewTool
1298
1298
  };
1299
- //# sourceMappingURL=chunk-3CETDGDS.js.map
1299
+ //# sourceMappingURL=chunk-7FMTUONH.js.map
@@ -3,7 +3,7 @@ import {
3
3
  MODEL_IDS,
4
4
  getTimeProvider,
5
5
  resolveModelIdentitySync
6
- } from "./chunk-GWWHOWXO.js";
6
+ } from "./chunk-ZTYGG4ES.js";
7
7
 
8
8
  // src/config/model-availability.ts
9
9
  var DEFAULT_TTL_MS = 6e4;
@@ -150,4 +150,4 @@ export {
150
150
  resetAvailabilityCache,
151
151
  filterAvailableModels
152
152
  };
153
- //# sourceMappingURL=chunk-IYPZMGCK.js.map
153
+ //# sourceMappingURL=chunk-DNDNPYQH.js.map
@@ -4,24 +4,24 @@ import {
4
4
  PROVIDER_ENV_KEYS,
5
5
  assertCustomApiHostResolvesPublic,
6
6
  validateCustomApiBaseUrl
7
- } from "./chunk-WHYWTVEF.js";
7
+ } from "./chunk-SVRZCP4Z.js";
8
8
  import {
9
9
  AdapterModelError,
10
10
  BaseAdapter,
11
11
  createStream,
12
12
  requireApiKey,
13
13
  validateApiKeyPresence
14
- } from "./chunk-JGDKKUAR.js";
14
+ } from "./chunk-3PMSAUMK.js";
15
15
  import {
16
16
  CliCircuitBreaker,
17
17
  DEFAULT_CIRCUIT_BREAKER_CONFIG
18
- } from "./chunk-LLILGXSQ.js";
18
+ } from "./chunk-J646HAYB.js";
19
19
  import {
20
20
  getAvailabilityCache
21
- } from "./chunk-IYPZMGCK.js";
21
+ } from "./chunk-DNDNPYQH.js";
22
22
  import {
23
23
  generateHyphenId
24
- } from "./chunk-2EAW6X46.js";
24
+ } from "./chunk-ZIHWMNPJ.js";
25
25
  import {
26
26
  CLI_SUBPROCESS_TIMEOUTS,
27
27
  CLI_TIMEOUTS,
@@ -57,7 +57,7 @@ import {
57
57
  loadModelsDevSnapshot,
58
58
  ok,
59
59
  resolveCliAlias
60
- } from "./chunk-GWWHOWXO.js";
60
+ } from "./chunk-ZTYGG4ES.js";
61
61
 
62
62
  // src/cli-adapters/cli-to-model-adapter.ts
63
63
  var CliToModelAdapter = class {
@@ -4838,4 +4838,4 @@ export {
4838
4838
  SdkAdapter,
4839
4839
  createAutoAdapter
4840
4840
  };
4841
- //# sourceMappingURL=chunk-6RENNJN5.js.map
4841
+ //# sourceMappingURL=chunk-EVACKK4H.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  loadPapersRegistry
3
- } from "./chunk-LK5ABW6P.js";
3
+ } from "./chunk-WFBMP2KU.js";
4
4
  import {
5
5
  getErrorMessage
6
- } from "./chunk-GWWHOWXO.js";
6
+ } from "./chunk-ZTYGG4ES.js";
7
7
 
8
8
  // src/cli/research-helpers-synthesize.ts
9
9
  import { z } from "zod";
@@ -876,4 +876,4 @@ export {
876
876
  AttributedInsightSchema,
877
877
  synthesizeResearch
878
878
  };
879
- //# sourceMappingURL=chunk-ABPE65WQ.js.map
879
+ //# sourceMappingURL=chunk-GPP7NUW7.js.map
@@ -2,14 +2,14 @@ import {
2
2
  CircuitBreakerRegistry,
3
3
  CircuitError,
4
4
  mapCliErrorToCategory
5
- } from "./chunk-LLILGXSQ.js";
5
+ } from "./chunk-J646HAYB.js";
6
6
  import {
7
7
  createLogger,
8
8
  err,
9
9
  getFallbackChainForCategory,
10
10
  getTimeProvider,
11
11
  ok
12
- } from "./chunk-GWWHOWXO.js";
12
+ } from "./chunk-ZTYGG4ES.js";
13
13
 
14
14
  // src/cli-adapters/cli-circuit-breaker.ts
15
15
  var CATEGORY_TO_FALLBACK = {
@@ -152,4 +152,4 @@ export {
152
152
  CliCircuitBreakerIntegration,
153
153
  createCliCircuitBreakerIntegration
154
154
  };
155
- //# sourceMappingURL=chunk-MM5BUCQN.js.map
155
+ //# sourceMappingURL=chunk-INOPFUAK.js.map
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  resolveToken
3
- } from "./chunk-TEH2E7NM.js";
3
+ } from "./chunk-SQEK24L2.js";
4
4
  import {
5
5
  REGISTRY_PATH,
6
6
  getProjectRoot,
7
7
  loadPapersRegistry,
8
8
  loadTechniquesRegistry,
9
9
  savePapersRegistry
10
- } from "./chunk-LK5ABW6P.js";
10
+ } from "./chunk-WFBMP2KU.js";
11
11
  import {
12
12
  getToolMemory
13
- } from "./chunk-2HYIE6RM.js";
13
+ } from "./chunk-WIESOZJC.js";
14
14
  import {
15
15
  resolveInsideRoot
16
16
  } from "./chunk-NUBSJGQZ.js";
@@ -27,7 +27,7 @@ import {
27
27
  getOutcomeStore,
28
28
  getTimeProvider,
29
29
  registerPersistentDistillerFactory
30
- } from "./chunk-GWWHOWXO.js";
30
+ } from "./chunk-ZTYGG4ES.js";
31
31
  import {
32
32
  ensureLearningDir,
33
33
  getRulesFile
@@ -2683,4 +2683,4 @@ export {
2683
2683
  summarizeContextForPrompt,
2684
2684
  getContextPromptPrefix
2685
2685
  };
2686
- //# sourceMappingURL=chunk-4CRRZFO4.js.map
2686
+ //# sourceMappingURL=chunk-IWSM3DWQ.js.map
@@ -1,9 +1,10 @@
1
1
  import {
2
+ CLI_SUBPROCESS_TIMEOUTS,
2
3
  createLogger,
3
4
  err,
4
5
  getErrorMessage,
5
6
  ok
6
- } from "./chunk-GWWHOWXO.js";
7
+ } from "./chunk-ZTYGG4ES.js";
7
8
 
8
9
  // src/scm/types.ts
9
10
  var ScmError = class extends Error {
@@ -23,7 +24,7 @@ import { z } from "zod";
23
24
  var execFileAsync = promisify(execFile);
24
25
  var logger = createLogger({ component: "GitHubProvider" });
25
26
  var MAX_BUFFER = 10 * 1024 * 1024;
26
- var GH_TIMEOUT_MS = 3e4;
27
+ var GH_TIMEOUT_MS = CLI_SUBPROCESS_TIMEOUTS.ghCommandMs;
27
28
  var GhIssueJsonSchema = z.object({
28
29
  number: z.number(),
29
30
  title: z.string(),
@@ -258,4 +259,4 @@ export {
258
259
  ScmError,
259
260
  GitHubProvider
260
261
  };
261
- //# sourceMappingURL=chunk-HOK5UBVI.js.map
262
+ //# sourceMappingURL=chunk-IY4MERGY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scm/types.ts","../src/scm/github-provider.ts"],"sourcesContent":["/**\n * nexus-agents/scm - SCM Provider Types\n *\n * Shared types for the centralized SCM (Source Control Management) module.\n * Supports GitHub (REST API + gh CLI) with extensibility for GitLab/Gitea.\n *\n * @module scm/types\n * (Source: Issue #1136 — Centralized SCM Provider Module)\n */\n\nimport type { Result } from '../core/index.js';\n\n// ============================================================================\n// Token Types\n// ============================================================================\n\n/** Supported SCM platforms. */\nexport type ScmPlatform = 'github' | 'gitlab' | 'gitea';\n\n/** Token resolution strategy. */\nexport type TokenStrategy = 'env' | 'cli' | 'config';\n\n/** Resolved SCM token with metadata. */\nexport interface ScmToken {\n /** The raw token value */\n readonly value: string;\n /** How the token was resolved */\n readonly strategy: TokenStrategy;\n /** SCM platform this token is for */\n readonly platform: ScmPlatform;\n}\n\n/** Token resolution configuration. */\nexport interface TokenResolverConfig {\n /** Explicit token (highest priority) */\n readonly token?: string;\n /** SCM platform to resolve for */\n readonly platform?: ScmPlatform;\n /** Custom env var name override */\n readonly envVar?: string;\n}\n\n// ============================================================================\n// SCM Entity Types\n// ============================================================================\n\n/** SCM issue representation. */\nexport interface ScmIssue {\n readonly number: number;\n readonly title: string;\n readonly body: string;\n readonly labels: readonly string[];\n readonly author: string;\n readonly createdAt: string;\n}\n\n/** SCM pull/merge request representation. */\nexport interface ScmPullRequest {\n readonly number: number;\n readonly title: string;\n readonly body: string;\n readonly author: string;\n readonly base: string;\n readonly head: string;\n readonly url: string;\n}\n\n/** SCM comment representation. */\nexport interface ScmComment {\n readonly id: number;\n readonly body: string;\n readonly author: string;\n readonly createdAt: string;\n}\n\n/** PR creation options. */\nexport interface CreatePROptions {\n readonly title: string;\n readonly body: string;\n readonly head: string;\n readonly base: string;\n}\n\n/** PR merge options. */\nexport interface MergePROptions {\n readonly method?: 'merge' | 'squash' | 'rebase';\n readonly commitTitle?: string;\n readonly commitMessage?: string;\n readonly deleteBranch?: boolean;\n}\n\n/** PR status for merge eligibility. */\nexport interface PRStatus {\n readonly mergeable: boolean;\n readonly checksStatus: 'pending' | 'success' | 'failure';\n readonly reviewStatus: 'approved' | 'pending' | 'changes_requested';\n}\n\n/** Issue filter options. */\nexport interface IssueFilters {\n readonly labels?: readonly string[];\n readonly state?: 'open' | 'closed' | 'all';\n readonly limit?: number;\n}\n\n// ============================================================================\n// SCM Error\n// ============================================================================\n\n/** Unified SCM error with platform-aware context. */\nexport class ScmError extends Error {\n constructor(\n message: string,\n readonly platform: ScmPlatform,\n readonly statusCode?: number,\n readonly context?: Record<string, unknown>\n ) {\n super(message);\n this.name = 'ScmError';\n }\n}\n\n// ============================================================================\n// Extended Entity Types (Trait support)\n// ============================================================================\n\n/** File change in a pull request. */\nexport interface ScmFileChange {\n readonly filename: string;\n readonly status: 'added' | 'removed' | 'modified' | 'renamed' | 'copied';\n readonly additions: number;\n readonly deletions: number;\n readonly patch?: string;\n readonly previousFilename?: string;\n}\n\n/** Extended PR with file diffs and stats. Used by IScmReviewer. */\nexport interface ScmPullRequestDetail extends ScmPullRequest {\n readonly draft: boolean;\n readonly authorAssociation: string;\n readonly labels: readonly string[];\n readonly files: readonly ScmFileChange[];\n readonly additions: number;\n readonly deletions: number;\n readonly headSha: string;\n}\n\n/** Extended issue with association and state. Used by IScmReviewer. */\nexport interface ScmIssueDetail extends ScmIssue {\n readonly authorAssociation: string;\n readonly state: string;\n readonly url: string;\n}\n\n/** Extended comment with author association. */\nexport interface ScmCommentDetail extends ScmComment {\n readonly authorAssociation: string;\n}\n\n/** Review decision for a pull request. */\nexport type ScmReviewDecision = 'approve' | 'request_changes' | 'comment';\n\n/** User metadata for reputation assessment. */\nexport interface ScmUserMetadata {\n readonly login: string;\n readonly name: string | null;\n readonly company: string | null;\n readonly followers: number;\n readonly following: number;\n readonly publicRepos: number;\n readonly createdAt: string;\n}\n\n// ============================================================================\n// Provider Interface (Core)\n// ============================================================================\n\n/**\n * Core SCM provider interface.\n *\n * All methods return `Result<T, ScmError>` for consistent error handling\n * across GitHub REST API, gh CLI, and future GitLab/Gitea backends.\n */\nexport interface IScmProvider {\n /** Platform identifier. */\n readonly platform: ScmPlatform;\n\n /** Repository in owner/repo format. */\n readonly repo: string;\n\n // Issues\n getIssue(number: number): Promise<Result<ScmIssue, ScmError>>;\n listIssues(filters?: IssueFilters): Promise<Result<readonly ScmIssue[], ScmError>>;\n createIssue(\n title: string,\n body: string,\n labels?: readonly string[]\n ): Promise<Result<ScmIssue, ScmError>>;\n addLabels(issueNumber: number, labels: readonly string[]): Promise<Result<void, ScmError>>;\n\n // Pull Requests\n createPR(options: CreatePROptions): Promise<Result<ScmPullRequest, ScmError>>;\n mergePR(prNumber: number, options?: MergePROptions): Promise<Result<void, ScmError>>;\n getPRStatus(prNumber: number): Promise<Result<PRStatus, ScmError>>;\n\n // Comments\n addComment(issueNumber: number, body: string): Promise<Result<void, ScmError>>;\n listComments(issueNumber: number): Promise<Result<readonly ScmComment[], ScmError>>;\n}\n\n// ============================================================================\n// Trait Interfaces (ISP — Interface Segregation Principle)\n// ============================================================================\n\n/**\n * Review trait — PR review capabilities.\n *\n * Implemented by platforms supporting code review workflows.\n * Consumers declare this trait when they need PR file diffs or review posting.\n */\nexport interface IScmReviewer {\n /** Fetch PR with full file diffs and stats. */\n getPullRequestDetail(prNumber: number): Promise<Result<ScmPullRequestDetail, ScmError>>;\n\n /** Post a review on a pull request. */\n createReview(\n prNumber: number,\n body: string,\n decision: ScmReviewDecision\n ): Promise<Result<void, ScmError>>;\n\n /** Fetch issue with author association and state. */\n getIssueDetail(issueNumber: number): Promise<Result<ScmIssueDetail, ScmError>>;\n\n /** List comments with author associations. */\n listCommentDetails(issueNumber: number): Promise<Result<readonly ScmCommentDetail[], ScmError>>;\n}\n\n/**\n * User info trait — user metadata for reputation assessment.\n *\n * Implemented by platforms supporting user profile queries.\n * Consumers declare this trait when they need author reputation data.\n */\nexport interface IScmUserInfo {\n /** Fetch user metadata for reputation assessment. */\n fetchUserMetadata(username: string): Promise<Result<ScmUserMetadata, ScmError>>;\n}\n\n/**\n * Convenience type: provider with review capabilities.\n * Used by PR review workflows.\n */\nexport type ReviewCapableProvider = IScmProvider & IScmReviewer;\n\n/**\n * Convenience type: provider with all capabilities.\n * Used by full triage workflows that need review + user info.\n */\nexport type FullCapableProvider = IScmProvider & IScmReviewer & IScmUserInfo;\n","/**\n * nexus-agents/scm - GitHub Provider\n *\n * Unified GitHub provider using gh CLI. Implements IScmProvider with\n * Result-based error handling. Replaced the prior dual-path GitHub\n * clients (dogfooding/github-client.ts deleted in #2553;\n * workflows/self-development/github-client.ts deleted in #2402).\n *\n * @module scm/github-provider\n * (Source: Issue #1136 — Centralized SCM Provider Module)\n */\n\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport { z } from 'zod';\nimport type { Result } from '../core/index.js';\nimport { ok, err, createLogger, getErrorMessage } from '../core/index.js';\nimport type {\n IScmProvider,\n ScmIssue,\n ScmPullRequest,\n ScmComment,\n CreatePROptions,\n MergePROptions,\n PRStatus,\n IssueFilters,\n} from './types.js';\nimport { ScmError } from './types.js';\nimport { CLI_SUBPROCESS_TIMEOUTS } from '../config/timeouts.js';\n\nconst execFileAsync = promisify(execFile);\nconst logger = createLogger({ component: 'GitHubProvider' });\n\n/** Max buffer for gh CLI output (10MB). */\nconst MAX_BUFFER = 10 * 1024 * 1024;\n\n/** gh CLI subprocess runaway-guard. Centralized to the canonical gh-command\n * timeout in the central authority (#3736); same 30s value. */\nconst GH_TIMEOUT_MS = CLI_SUBPROCESS_TIMEOUTS.ghCommandMs;\n\n// ============================================================================\n// gh CLI JSON schemas (internal — #2962 site 4)\n//\n// Each schema mirrors the `--json <fields>` projection the corresponding\n// gh call asks for. They're applied via `safeParseGhJson` so a gh-schema\n// drift (a renamed field, a missing nullable, a removed nested object)\n// surfaces as a structured ScmError('schema mismatch') instead of the\n// previous TypeError-rewrapped-as-\"Failed to parse JSON\" — pre-#2962, the\n// JSON parsed fine and the mapper's `raw.labels.map` / `raw.author.login`\n// deref blew up, so debuggers chased a parser bug that didn't exist.\n// ============================================================================\n\nconst GhIssueJsonSchema = z.object({\n number: z.number(),\n title: z.string(),\n body: z.string().nullable(),\n labels: z.array(z.object({ name: z.string() })),\n author: z.object({ login: z.string() }),\n createdAt: z.string(),\n});\ntype GhIssueJson = z.infer<typeof GhIssueJsonSchema>;\n\nconst GhCommentJsonSchema = z.object({\n id: z.number(),\n body: z.string(),\n author: z.object({ login: z.string() }),\n createdAt: z.string(),\n});\ntype GhCommentJson = z.infer<typeof GhCommentJsonSchema>;\n\nconst GhPrJsonSchema = z.object({\n number: z.number(),\n title: z.string(),\n body: z.string().nullable(),\n url: z.string(),\n author: z.object({ login: z.string() }),\n baseRefName: z.string(),\n headRefName: z.string(),\n});\n// `createPR` consumes the parsed value inline; no GhPrJson alias needed.\n\nconst GhPrStatusJsonSchema = z.object({\n mergeable: z.string(),\n statusCheckRollup: z.array(z.object({ state: z.string() })).nullable(),\n reviewDecision: z.string().nullable(),\n});\ntype GhPrStatusJson = z.infer<typeof GhPrStatusJsonSchema>;\n\n/**\n * Parse + Zod-validate gh CLI output. Distinguishes:\n * - parse failure (gh returned non-JSON or empty) — \\`label: Failed to parse JSON\\`\n * - schema mismatch (gh returned valid JSON in an unexpected shape) — \\`label: schema mismatch\\`\n * Pre-#2962 both surfaced as the same misleading \"Failed to parse\" error.\n */\nfunction safeParseGhJson<T>(\n rawJson: string,\n schema: z.ZodType<T>,\n label: string\n): Result<T, ScmError> {\n let parsed: unknown;\n try {\n parsed = JSON.parse(rawJson);\n } catch (error) {\n return err(\n new ScmError(\n `${label}: Failed to parse JSON: ${getErrorMessage(error)} — preview: ${rawJson.slice(0, 120)}`,\n 'github'\n )\n );\n }\n const result = schema.safeParse(parsed);\n if (!result.success) {\n return err(\n new ScmError(\n `${label}: schema mismatch — ${result.error.issues\n .slice(0, 3)\n .map((i) => `${i.path.join('.')}: ${i.message}`)\n .join('; ')} — preview: ${rawJson.slice(0, 120)}`,\n 'github'\n )\n );\n }\n return ok(result.data);\n}\n\n// ============================================================================\n// gh CLI executor\n// ============================================================================\n\nasync function execGh(args: readonly string[], repo: string): Promise<Result<string, ScmError>> {\n const fullArgs = [...args, '--repo', repo];\n\n try {\n const { stdout } = await execFileAsync('gh', fullArgs, {\n maxBuffer: MAX_BUFFER,\n timeout: GH_TIMEOUT_MS,\n });\n return ok(stdout.trim());\n } catch (error) {\n const execError = error as { message: string; stderr?: string };\n return err(\n new ScmError(`gh command failed: ${execError.message}`, 'github', undefined, {\n command: `gh ${fullArgs.join(' ')}`,\n stderr: execError.stderr,\n })\n );\n }\n}\n\n// ============================================================================\n// Mappers\n// ============================================================================\n\nfunction mapIssue(raw: GhIssueJson): ScmIssue {\n return {\n number: raw.number,\n title: raw.title,\n body: raw.body ?? '',\n labels: raw.labels.map((l) => l.name),\n author: raw.author.login,\n createdAt: raw.createdAt,\n };\n}\n\nfunction mapComment(raw: GhCommentJson): ScmComment {\n return {\n id: raw.id,\n body: raw.body,\n author: raw.author.login,\n createdAt: raw.createdAt,\n };\n}\n\nfunction mapPRStatus(raw: GhPrStatusJson): PRStatus {\n const mergeable = raw.mergeable === 'MERGEABLE';\n\n let checksStatus: 'pending' | 'success' | 'failure' = 'pending';\n if (raw.statusCheckRollup !== null && raw.statusCheckRollup.length > 0) {\n const hasFailure = raw.statusCheckRollup.some((c) => c.state === 'FAILURE');\n const allSuccess = raw.statusCheckRollup.every(\n (c) => c.state === 'SUCCESS' || c.state === 'NEUTRAL' || c.state === 'SKIPPED'\n );\n checksStatus = hasFailure ? 'failure' : allSuccess ? 'success' : 'pending';\n }\n\n let reviewStatus: 'approved' | 'pending' | 'changes_requested' = 'pending';\n if (raw.reviewDecision === 'APPROVED') reviewStatus = 'approved';\n else if (raw.reviewDecision === 'CHANGES_REQUESTED') reviewStatus = 'changes_requested';\n\n return { mergeable, checksStatus, reviewStatus };\n}\n\n// ============================================================================\n// Provider Implementation\n// ============================================================================\n\n/**\n * GitHub provider using the gh CLI.\n *\n * Requires: gh CLI installed and authenticated.\n */\nexport class GitHubProvider implements IScmProvider {\n readonly platform = 'github' as const;\n\n constructor(readonly repo: string) {}\n\n async getIssue(number: number): Promise<Result<ScmIssue, ScmError>> {\n const fields = 'number,title,body,labels,author,createdAt';\n const args = ['issue', 'view', String(number), '--json', fields];\n\n logger.debug('Getting issue', { repo: this.repo, number });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n\n const parsed = safeParseGhJson(result.value, GhIssueJsonSchema, 'getIssue');\n if (!parsed.ok) return parsed;\n return ok(mapIssue(parsed.value));\n }\n\n async listIssues(filters?: IssueFilters): Promise<Result<readonly ScmIssue[], ScmError>> {\n const fields = 'number,title,body,labels,author,createdAt';\n const args = ['issue', 'list', '--json', fields];\n\n if (filters?.labels !== undefined && filters.labels.length > 0) {\n args.push('--label', filters.labels.join(','));\n }\n if (filters?.state !== undefined) {\n args.push('--state', filters.state);\n }\n args.push('--limit', String(filters?.limit ?? 50));\n\n logger.debug('Listing issues', { repo: this.repo, filters });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n\n const parsed = safeParseGhJson(result.value, z.array(GhIssueJsonSchema), 'listIssues');\n if (!parsed.ok) return parsed;\n return ok(parsed.value.map(mapIssue));\n }\n\n async addLabels(issueNumber: number, labels: readonly string[]): Promise<Result<void, ScmError>> {\n const args = ['issue', 'edit', String(issueNumber), '--add-label', labels.join(',')];\n\n logger.debug('Adding labels', { repo: this.repo, issueNumber, labels });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n return ok(undefined);\n }\n\n async createPR(options: CreatePROptions): Promise<Result<ScmPullRequest, ScmError>> {\n const fields = 'number,title,body,url,author,baseRefName,headRefName';\n const args = [\n 'pr',\n 'create',\n '--title',\n options.title,\n '--body',\n options.body,\n '--head',\n options.head,\n '--base',\n options.base,\n '--json',\n fields,\n ];\n\n logger.info('Creating PR', { repo: this.repo, title: options.title });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n\n const parsed = safeParseGhJson(result.value, GhPrJsonSchema, 'createPR');\n if (!parsed.ok) return parsed;\n const raw = parsed.value;\n return ok({\n number: raw.number,\n title: raw.title,\n body: raw.body ?? '',\n author: raw.author.login,\n base: raw.baseRefName,\n head: raw.headRefName,\n url: raw.url,\n });\n }\n\n async mergePR(prNumber: number, options?: MergePROptions): Promise<Result<void, ScmError>> {\n const method = options?.method ?? 'squash';\n const args = ['pr', 'merge', String(prNumber), `--${method}`];\n\n if (options?.commitTitle !== undefined) args.push('--subject', options.commitTitle);\n if (options?.commitMessage !== undefined) args.push('--body', options.commitMessage);\n if (options?.deleteBranch === true) args.push('--delete-branch');\n\n logger.info('Merging PR', { repo: this.repo, prNumber, method });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n return ok(undefined);\n }\n\n async getPRStatus(prNumber: number): Promise<Result<PRStatus, ScmError>> {\n const fields = 'mergeable,statusCheckRollup,reviewDecision';\n const args = ['pr', 'view', String(prNumber), '--json', fields];\n\n logger.debug('Getting PR status', { repo: this.repo, prNumber });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n\n const parsed = safeParseGhJson(result.value, GhPrStatusJsonSchema, 'getPRStatus');\n if (!parsed.ok) return parsed;\n return ok(mapPRStatus(parsed.value));\n }\n\n async createIssue(\n title: string,\n body: string,\n labels?: readonly string[]\n ): Promise<Result<ScmIssue, ScmError>> {\n const args = ['issue', 'create', '--title', title, '--body', body];\n if (labels !== undefined && labels.length > 0) args.push('--label', labels.join(','));\n logger.debug('Creating issue', { repo: this.repo, title });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n const url = result.value.trim();\n const match = /\\/(\\d+)$/.exec(url);\n const number = match?.[1] !== undefined ? parseInt(match[1], 10) : 0;\n return ok({\n number,\n title,\n body,\n labels: labels !== undefined ? [...labels] : [],\n author: 'pipeline',\n createdAt: new Date().toISOString(),\n });\n }\n\n async addComment(issueNumber: number, body: string): Promise<Result<void, ScmError>> {\n const args = ['issue', 'comment', String(issueNumber), '--body', body];\n\n logger.debug('Adding comment', { repo: this.repo, issueNumber });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n return ok(undefined);\n }\n\n async listComments(issueNumber: number): Promise<Result<readonly ScmComment[], ScmError>> {\n const args = ['issue', 'view', String(issueNumber), '--json', 'comments', '--jq', '.comments'];\n\n logger.debug('Listing comments', { repo: this.repo, issueNumber });\n const result = await execGh(args, this.repo);\n if (!result.ok) return result;\n\n const parsed = safeParseGhJson(result.value, z.array(GhCommentJsonSchema), 'listComments');\n if (!parsed.ok) return parsed;\n return ok(parsed.value.map(mapComment));\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runConfigInitSync
3
- } from "./chunk-JWZ47MEY.js";
3
+ } from "./chunk-64Y2HGC2.js";
4
4
  import {
5
5
  VERSION,
6
6
  checkApiKeys,
@@ -8,13 +8,13 @@ import {
8
8
  checkSqlite,
9
9
  defaultConfig,
10
10
  initDataDirectories
11
- } from "./chunk-Q37HBFVE.js";
11
+ } from "./chunk-MWLZ2QRR.js";
12
12
  import {
13
13
  BUILT_IN_EXPERTS
14
14
  } from "./chunk-ZM4O442V.js";
15
15
  import {
16
16
  probeAllClis
17
- } from "./chunk-6RENNJN5.js";
17
+ } from "./chunk-EVACKK4H.js";
18
18
  import {
19
19
  CLI_SUBPROCESS_TIMEOUTS,
20
20
  colors,
@@ -25,7 +25,7 @@ import {
25
25
  getErrorMessage,
26
26
  getTimeProvider,
27
27
  symbols
28
- } from "./chunk-GWWHOWXO.js";
28
+ } from "./chunk-ZTYGG4ES.js";
29
29
  import {
30
30
  ensureGitignored,
31
31
  findRepoRoot
@@ -2000,4 +2000,4 @@ export {
2000
2000
  setupCommand,
2001
2001
  setupCommandAsync
2002
2002
  };
2003
- //# sourceMappingURL=chunk-GK54JHWC.js.map
2003
+ //# sourceMappingURL=chunk-IY53KVRS.js.map
@@ -5,7 +5,7 @@ import {
5
5
  getErrorMessage,
6
6
  getTimeProvider,
7
7
  ok
8
- } from "./chunk-GWWHOWXO.js";
8
+ } from "./chunk-ZTYGG4ES.js";
9
9
 
10
10
  // src/cli-adapters/circuit-breaker-types.ts
11
11
  var CircuitErrorCode = {
@@ -372,4 +372,4 @@ export {
372
372
  mapCliErrorToCategory,
373
373
  mapModelErrorToCategory
374
374
  };
375
- //# sourceMappingURL=chunk-LLILGXSQ.js.map
375
+ //# sourceMappingURL=chunk-J646HAYB.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createAutoAdapter
3
- } from "./chunk-6RENNJN5.js";
3
+ } from "./chunk-EVACKK4H.js";
4
4
  import {
5
5
  mapModelErrorToCategory
6
- } from "./chunk-LLILGXSQ.js";
6
+ } from "./chunk-J646HAYB.js";
7
7
  import {
8
8
  CLI_NAMES,
9
9
  CircularBuffer,
@@ -24,7 +24,7 @@ import {
24
24
  ok,
25
25
  recordRateLimitEvent,
26
26
  toRateLimitError
27
- } from "./chunk-GWWHOWXO.js";
27
+ } from "./chunk-ZTYGG4ES.js";
28
28
 
29
29
  // src/agents/collaboration/event-bus-helpers.ts
30
30
  import { randomUUID } from "crypto";
@@ -1041,4 +1041,4 @@ export {
1041
1041
  getGlobalRegistry,
1042
1042
  resetGlobalRegistry
1043
1043
  };
1044
- //# sourceMappingURL=chunk-ILJRBCDU.js.map
1044
+ //# sourceMappingURL=chunk-JQSKFJR2.js.map
@@ -4,7 +4,7 @@ import {
4
4
  getErrorMessage,
5
5
  getTimeProvider,
6
6
  ok
7
- } from "./chunk-GWWHOWXO.js";
7
+ } from "./chunk-ZTYGG4ES.js";
8
8
 
9
9
  // src/context/session-memory.ts
10
10
  import * as fs from "fs";
@@ -351,4 +351,4 @@ export {
351
351
  SessionMemory,
352
352
  createSessionMemory
353
353
  };
354
- //# sourceMappingURL=chunk-LFVAZPD3.js.map
354
+ //# sourceMappingURL=chunk-K7RTUYVI.js.map
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  createAllAdapters,
9
9
  probeCli
10
- } from "./chunk-6RENNJN5.js";
10
+ } from "./chunk-EVACKK4H.js";
11
11
  import {
12
12
  DEFAULTS
13
- } from "./chunk-WHYWTVEF.js";
13
+ } from "./chunk-SVRZCP4Z.js";
14
14
  import {
15
15
  CliNameSchema,
16
16
  DEFAULT_CAPABILITIES,
@@ -26,7 +26,7 @@ import {
26
26
  ok,
27
27
  symbols,
28
28
  writeLine
29
- } from "./chunk-GWWHOWXO.js";
29
+ } from "./chunk-ZTYGG4ES.js";
30
30
  import {
31
31
  detectSandbox,
32
32
  getLearningDir,
@@ -40,7 +40,7 @@ import {
40
40
  } from "./chunk-ZGLIHPGJ.js";
41
41
 
42
42
  // src/version.ts
43
- var VERSION = true ? "2.125.38" : "dev";
43
+ var VERSION = true ? "2.125.39" : "dev";
44
44
 
45
45
  // src/config/schemas-core.ts
46
46
  import { z } from "zod";
@@ -2121,7 +2121,7 @@ async function runDoctorFix(result) {
2121
2121
  writeLine2("\u2500".repeat(40));
2122
2122
  let fixCount = 0;
2123
2123
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2124
- const { runSetup } = await import("./setup-command-GBO3IMC5.js");
2124
+ const { runSetup } = await import("./setup-command-GT2DVOXY.js");
2125
2125
  const setupResult = runSetup({
2126
2126
  skipMcp: true,
2127
2127
  skipRules: true,
@@ -2135,7 +2135,7 @@ async function runDoctorFix(result) {
2135
2135
  }
2136
2136
  }
2137
2137
  if (!result.configFile.found) {
2138
- const { runConfigInitSync } = await import("./setup-config-ICN7E7Y7.js");
2138
+ const { runConfigInitSync } = await import("./setup-config-ZZEKKVW6.js");
2139
2139
  const configResult = runConfigInitSync(process.cwd(), false, false);
2140
2140
  if (configResult.success && configResult.created) {
2141
2141
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -2233,4 +2233,4 @@ export {
2233
2233
  startStdioServer,
2234
2234
  closeServer
2235
2235
  };
2236
- //# sourceMappingURL=chunk-Q37HBFVE.js.map
2236
+ //# sourceMappingURL=chunk-MWLZ2QRR.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  GitHubProvider,
3
3
  ScmError
4
- } from "./chunk-HOK5UBVI.js";
4
+ } from "./chunk-IY4MERGY.js";
5
5
  import {
6
6
  resolveToken
7
- } from "./chunk-TEH2E7NM.js";
7
+ } from "./chunk-SQEK24L2.js";
8
8
  import {
9
9
  err,
10
10
  ok
11
- } from "./chunk-GWWHOWXO.js";
11
+ } from "./chunk-ZTYGG4ES.js";
12
12
 
13
13
  // src/scm/factory.ts
14
14
  async function createScmProvider(config) {
@@ -41,4 +41,4 @@ export {
41
41
  createScmProvider,
42
42
  createGitHubProvider
43
43
  };
44
- //# sourceMappingURL=chunk-TC5EJP4W.js.map
44
+ //# sourceMappingURL=chunk-OA23LZHC.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  GitHubProvider,
3
3
  ScmError
4
- } from "./chunk-HOK5UBVI.js";
4
+ } from "./chunk-IY4MERGY.js";
5
5
  import {
6
6
  ROLE_DEFAULT_TRUST,
7
7
  ReputationCache,
@@ -11,13 +11,14 @@ import {
11
11
  gateWithReputation,
12
12
  resolveReputationGatingMode,
13
13
  sanitizeInput
14
- } from "./chunk-RWSID64Q.js";
14
+ } from "./chunk-UDWGHWRD.js";
15
15
  import {
16
+ CLI_SUBPROCESS_TIMEOUTS,
16
17
  createLogger,
17
18
  err,
18
19
  getTimeProvider,
19
20
  ok
20
- } from "./chunk-GWWHOWXO.js";
21
+ } from "./chunk-ZTYGG4ES.js";
21
22
 
22
23
  // src/security/trust-classifier.ts
23
24
  function mapAuthorAssociation(association) {
@@ -763,7 +764,7 @@ async function execGhApi(endpoint, method) {
763
764
  try {
764
765
  const { stdout } = await exec("gh", args, {
765
766
  maxBuffer: 10 * 1024 * 1024,
766
- timeout: 3e4,
767
+ timeout: CLI_SUBPROCESS_TIMEOUTS.ghCommandMs,
767
768
  ...env !== void 0 ? { env } : {}
768
769
  });
769
770
  return ok(stdout.trim());
@@ -852,7 +853,7 @@ var GitHubReviewer = class {
852
853
  "-f",
853
854
  `event=${eventMap[decision]}`
854
855
  ],
855
- { maxBuffer: 10 * 1024 * 1024, timeout: 3e4 }
856
+ { maxBuffer: 10 * 1024 * 1024, timeout: CLI_SUBPROCESS_TIMEOUTS.ghCommandMs }
856
857
  );
857
858
  return ok(void 0);
858
859
  } catch (error) {
@@ -1398,4 +1399,4 @@ export {
1398
1399
  IssueTriage,
1399
1400
  createIssueTriage
1400
1401
  };
1401
- //# sourceMappingURL=chunk-ZSD22GDP.js.map
1402
+ //# sourceMappingURL=chunk-OGWZ2U6S.js.map