nexus-agents 8.73.1 → 8.74.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 (132) hide show
  1. package/dist/{ast-rule-runner-6XYO26ND.js → ast-rule-runner-K35WYUOD.js} +3 -3
  2. package/dist/{child-mcp-config-RGGZXRY5.js → child-mcp-config-B2CWZ2ZK.js} +2 -2
  3. package/dist/{chunk-AM3SBI6U.js → chunk-22VQMTR6.js} +2 -2
  4. package/dist/{chunk-HZEPJMP4.js → chunk-2KXRL4OW.js} +2 -2
  5. package/dist/{chunk-DSBCOWEN.js → chunk-3FK67YI4.js} +55 -37
  6. package/dist/chunk-3FK67YI4.js.map +1 -0
  7. package/dist/{chunk-ERYTWOXV.js → chunk-3PI3INR3.js} +5 -5
  8. package/dist/{chunk-6LRQVB6J.js → chunk-43RJNTUZ.js} +2 -2
  9. package/dist/{chunk-QRCCI4PS.js → chunk-47624RRN.js} +2 -2
  10. package/dist/{chunk-QXMVHFW7.js → chunk-4PWDDMLH.js} +512 -319
  11. package/dist/chunk-4PWDDMLH.js.map +1 -0
  12. package/dist/{chunk-WZGUYIQA.js → chunk-4XP43CH7.js} +3 -3
  13. package/dist/{chunk-BKD734HL.js → chunk-5E33WGDR.js} +3 -15
  14. package/dist/chunk-5E33WGDR.js.map +1 -0
  15. package/dist/{chunk-MH376WDZ.js → chunk-5QE6DJMH.js} +5 -5
  16. package/dist/{chunk-6NWIPX4E.js → chunk-6DPQOIE7.js} +2 -2
  17. package/dist/{chunk-5LBLNPCD.js → chunk-ADHIHFBA.js} +2 -2
  18. package/dist/{chunk-2YYS65XE.js → chunk-B227FYGQ.js} +4 -4
  19. package/dist/{chunk-NSX7C7GA.js → chunk-BQMUX3TR.js} +9 -9
  20. package/dist/{chunk-ALYZL2P2.js → chunk-CYZ3DUQV.js} +2 -2
  21. package/dist/{chunk-YLG77EAY.js → chunk-DSTEEVDR.js} +2 -2
  22. package/dist/{chunk-ZJGZKNYN.js → chunk-GENL3TXA.js} +2 -2
  23. package/dist/{chunk-WSAXCNCP.js → chunk-GW7SZ555.js} +2 -2
  24. package/dist/{chunk-IZFNVCTM.js → chunk-HO2UPJ7T.js} +5 -5
  25. package/dist/{chunk-G2M2JSRU.js → chunk-I5DGPV2X.js} +3 -3
  26. package/dist/{chunk-YQUUI66R.js → chunk-IQTHG5BO.js} +2 -2
  27. package/dist/{chunk-5NC4I44Y.js → chunk-MPWPST6S.js} +3 -3
  28. package/dist/{chunk-RCISIRX7.js → chunk-MYEDID77.js} +48 -20
  29. package/dist/chunk-MYEDID77.js.map +1 -0
  30. package/dist/{chunk-2GYLTWEC.js → chunk-MYGTMAHW.js} +3 -3
  31. package/dist/{chunk-SKVFEQF7.js → chunk-NC7X6WQL.js} +2 -2
  32. package/dist/{chunk-XH73ZNH2.js → chunk-NLRIEHAY.js} +4 -4
  33. package/dist/{chunk-UDXIRE5Z.js → chunk-RGEJZIOJ.js} +2 -2
  34. package/dist/{chunk-BVCKYGMS.js → chunk-ST7RKS3P.js} +2 -2
  35. package/dist/{chunk-AQ6NLVIB.js → chunk-TL5NV5JH.js} +10 -6
  36. package/dist/{chunk-AQ6NLVIB.js.map → chunk-TL5NV5JH.js.map} +1 -1
  37. package/dist/{chunk-2X765QTY.js → chunk-TUTS6S2G.js} +15 -12
  38. package/dist/chunk-TUTS6S2G.js.map +1 -0
  39. package/dist/{chunk-YDZSLPM5.js → chunk-XJI5YBBR.js} +2 -2
  40. package/dist/{chunk-A7JEVXYD.js → chunk-Z2XB5IKO.js} +2 -2
  41. package/dist/{chunk-T4Q5AAYP.js → chunk-ZDVNHXRV.js} +2 -2
  42. package/dist/{chunk-KCMHX6AZ.js → chunk-ZKEULHX6.js} +7 -7
  43. package/dist/{cli-circuit-breaker-EXSKYWNR.js → cli-circuit-breaker-Q73YH6FS.js} +3 -3
  44. package/dist/cli.js +43 -43
  45. package/dist/{composite-router-MNEKQMT4.js → composite-router-XKE225G5.js} +2 -2
  46. package/dist/{consensus-vote-H4T6XK3A.js → consensus-vote-5RFJPG5F.js} +16 -16
  47. package/dist/{context-retriever-XP47NAWK.js → context-retriever-5BL34V6Y.js} +8 -8
  48. package/dist/{doctor-deep-EUOI4PJU.js → doctor-deep-UYXLA4HG.js} +3 -3
  49. package/dist/{doctor-live-3PX3T73Y.js → doctor-live-7I6STRL7.js} +10 -10
  50. package/dist/{expert-bridge-XYKGSZER.js → expert-bridge-PLY7MNUK.js} +4 -4
  51. package/dist/{factory-MEITN7TW.js → factory-5XIEO5EA.js} +5 -5
  52. package/dist/{factory-6NL5M2B6.js → factory-ZCMLOSDY.js} +9 -9
  53. package/dist/{improvement-review-OGTR6QXW.js → improvement-review-LDBUOL7B.js} +5 -5
  54. package/dist/index.d.ts +3 -1
  55. package/dist/index.js +32 -33
  56. package/dist/index.js.map +1 -1
  57. package/dist/{init-opencode-OZZKYONS.js → init-opencode-UFYH4SDG.js} +6 -6
  58. package/dist/issue-triage-KCRQNDYX.js +16 -0
  59. package/dist/{pr-reviewer-helpers-C34ZVDMR.js → pr-reviewer-helpers-RMOEXYCO.js} +4 -4
  60. package/dist/{registry-command-J7IRDKMR.js → registry-command-XFM4XIGJ.js} +2 -2
  61. package/dist/{repo-security-plan-ZWNLJX53.js → repo-security-plan-YWANNRJE.js} +3 -3
  62. package/dist/{research-helpers-synthesize-DHFIDH3H.js → research-helpers-synthesize-QFKDDHRE.js} +4 -4
  63. package/dist/{routing-memory-XV627IOT.js → routing-memory-T22PQ5FF.js} +2 -2
  64. package/dist/{session-memory-PJGNXWPZ.js → session-memory-ZNIJGF7Z.js} +3 -3
  65. package/dist/{setup-config-5Z6BKTYP.js → setup-config-XC5KSYGO.js} +3 -3
  66. package/dist/{setup-custom-api-KX45Z4YT.js → setup-custom-api-5WL5D24S.js} +6 -6
  67. package/dist/setup-data-dir-I2Q4KJ7M.js +31 -0
  68. package/dist/{tool-memory-D2HBFDKI.js → tool-memory-JNHE2VP2.js} +5 -5
  69. package/dist/{unified-registry-IPC36ILH.js → unified-registry-5IIFYGBI.js} +10 -10
  70. package/dist/{weather-report-536EMQ24.js → weather-report-3AZHFDM3.js} +2 -2
  71. package/package.json +1 -1
  72. package/dist/chunk-2X765QTY.js.map +0 -1
  73. package/dist/chunk-BKD734HL.js.map +0 -1
  74. package/dist/chunk-DSBCOWEN.js.map +0 -1
  75. package/dist/chunk-QXMVHFW7.js.map +0 -1
  76. package/dist/chunk-RCISIRX7.js.map +0 -1
  77. package/dist/issue-triage-7Y7WIMHD.js +0 -16
  78. package/dist/setup-data-dir-XB5R2AHL.js +0 -31
  79. /package/dist/{ast-rule-runner-6XYO26ND.js.map → ast-rule-runner-K35WYUOD.js.map} +0 -0
  80. /package/dist/{child-mcp-config-RGGZXRY5.js.map → child-mcp-config-B2CWZ2ZK.js.map} +0 -0
  81. /package/dist/{chunk-AM3SBI6U.js.map → chunk-22VQMTR6.js.map} +0 -0
  82. /package/dist/{chunk-HZEPJMP4.js.map → chunk-2KXRL4OW.js.map} +0 -0
  83. /package/dist/{chunk-ERYTWOXV.js.map → chunk-3PI3INR3.js.map} +0 -0
  84. /package/dist/{chunk-6LRQVB6J.js.map → chunk-43RJNTUZ.js.map} +0 -0
  85. /package/dist/{chunk-QRCCI4PS.js.map → chunk-47624RRN.js.map} +0 -0
  86. /package/dist/{chunk-WZGUYIQA.js.map → chunk-4XP43CH7.js.map} +0 -0
  87. /package/dist/{chunk-MH376WDZ.js.map → chunk-5QE6DJMH.js.map} +0 -0
  88. /package/dist/{chunk-6NWIPX4E.js.map → chunk-6DPQOIE7.js.map} +0 -0
  89. /package/dist/{chunk-5LBLNPCD.js.map → chunk-ADHIHFBA.js.map} +0 -0
  90. /package/dist/{chunk-2YYS65XE.js.map → chunk-B227FYGQ.js.map} +0 -0
  91. /package/dist/{chunk-NSX7C7GA.js.map → chunk-BQMUX3TR.js.map} +0 -0
  92. /package/dist/{chunk-ALYZL2P2.js.map → chunk-CYZ3DUQV.js.map} +0 -0
  93. /package/dist/{chunk-YLG77EAY.js.map → chunk-DSTEEVDR.js.map} +0 -0
  94. /package/dist/{chunk-ZJGZKNYN.js.map → chunk-GENL3TXA.js.map} +0 -0
  95. /package/dist/{chunk-WSAXCNCP.js.map → chunk-GW7SZ555.js.map} +0 -0
  96. /package/dist/{chunk-IZFNVCTM.js.map → chunk-HO2UPJ7T.js.map} +0 -0
  97. /package/dist/{chunk-G2M2JSRU.js.map → chunk-I5DGPV2X.js.map} +0 -0
  98. /package/dist/{chunk-YQUUI66R.js.map → chunk-IQTHG5BO.js.map} +0 -0
  99. /package/dist/{chunk-5NC4I44Y.js.map → chunk-MPWPST6S.js.map} +0 -0
  100. /package/dist/{chunk-2GYLTWEC.js.map → chunk-MYGTMAHW.js.map} +0 -0
  101. /package/dist/{chunk-SKVFEQF7.js.map → chunk-NC7X6WQL.js.map} +0 -0
  102. /package/dist/{chunk-XH73ZNH2.js.map → chunk-NLRIEHAY.js.map} +0 -0
  103. /package/dist/{chunk-UDXIRE5Z.js.map → chunk-RGEJZIOJ.js.map} +0 -0
  104. /package/dist/{chunk-BVCKYGMS.js.map → chunk-ST7RKS3P.js.map} +0 -0
  105. /package/dist/{chunk-YDZSLPM5.js.map → chunk-XJI5YBBR.js.map} +0 -0
  106. /package/dist/{chunk-A7JEVXYD.js.map → chunk-Z2XB5IKO.js.map} +0 -0
  107. /package/dist/{chunk-T4Q5AAYP.js.map → chunk-ZDVNHXRV.js.map} +0 -0
  108. /package/dist/{chunk-KCMHX6AZ.js.map → chunk-ZKEULHX6.js.map} +0 -0
  109. /package/dist/{cli-circuit-breaker-EXSKYWNR.js.map → cli-circuit-breaker-Q73YH6FS.js.map} +0 -0
  110. /package/dist/{composite-router-MNEKQMT4.js.map → composite-router-XKE225G5.js.map} +0 -0
  111. /package/dist/{consensus-vote-H4T6XK3A.js.map → consensus-vote-5RFJPG5F.js.map} +0 -0
  112. /package/dist/{context-retriever-XP47NAWK.js.map → context-retriever-5BL34V6Y.js.map} +0 -0
  113. /package/dist/{doctor-deep-EUOI4PJU.js.map → doctor-deep-UYXLA4HG.js.map} +0 -0
  114. /package/dist/{doctor-live-3PX3T73Y.js.map → doctor-live-7I6STRL7.js.map} +0 -0
  115. /package/dist/{expert-bridge-XYKGSZER.js.map → expert-bridge-PLY7MNUK.js.map} +0 -0
  116. /package/dist/{factory-6NL5M2B6.js.map → factory-5XIEO5EA.js.map} +0 -0
  117. /package/dist/{factory-MEITN7TW.js.map → factory-ZCMLOSDY.js.map} +0 -0
  118. /package/dist/{improvement-review-OGTR6QXW.js.map → improvement-review-LDBUOL7B.js.map} +0 -0
  119. /package/dist/{init-opencode-OZZKYONS.js.map → init-opencode-UFYH4SDG.js.map} +0 -0
  120. /package/dist/{issue-triage-7Y7WIMHD.js.map → issue-triage-KCRQNDYX.js.map} +0 -0
  121. /package/dist/{pr-reviewer-helpers-C34ZVDMR.js.map → pr-reviewer-helpers-RMOEXYCO.js.map} +0 -0
  122. /package/dist/{registry-command-J7IRDKMR.js.map → registry-command-XFM4XIGJ.js.map} +0 -0
  123. /package/dist/{repo-security-plan-ZWNLJX53.js.map → repo-security-plan-YWANNRJE.js.map} +0 -0
  124. /package/dist/{research-helpers-synthesize-DHFIDH3H.js.map → research-helpers-synthesize-QFKDDHRE.js.map} +0 -0
  125. /package/dist/{routing-memory-XV627IOT.js.map → routing-memory-T22PQ5FF.js.map} +0 -0
  126. /package/dist/{session-memory-PJGNXWPZ.js.map → session-memory-ZNIJGF7Z.js.map} +0 -0
  127. /package/dist/{setup-config-5Z6BKTYP.js.map → setup-config-XC5KSYGO.js.map} +0 -0
  128. /package/dist/{setup-custom-api-KX45Z4YT.js.map → setup-custom-api-5WL5D24S.js.map} +0 -0
  129. /package/dist/{setup-data-dir-XB5R2AHL.js.map → setup-data-dir-I2Q4KJ7M.js.map} +0 -0
  130. /package/dist/{tool-memory-D2HBFDKI.js.map → tool-memory-JNHE2VP2.js.map} +0 -0
  131. /package/dist/{unified-registry-IPC36ILH.js.map → unified-registry-5IIFYGBI.js.map} +0 -0
  132. /package/dist/{weather-report-536EMQ24.js.map → weather-report-3AZHFDM3.js.map} +0 -0
@@ -9,8 +9,8 @@ import {
9
9
  getBuiltInAstRulesPath,
10
10
  loadRules,
11
11
  runAstQaRules
12
- } from "./chunk-A7JEVXYD.js";
13
- import "./chunk-QXMVHFW7.js";
12
+ } from "./chunk-Z2XB5IKO.js";
13
+ import "./chunk-4PWDDMLH.js";
14
14
  import "./chunk-4UHDDCRB.js";
15
15
  import "./chunk-RNDHNRSX.js";
16
16
  import "./chunk-PX6F3LHL.js";
@@ -26,4 +26,4 @@ export {
26
26
  loadRules,
27
27
  runAstQaRules
28
28
  };
29
- //# sourceMappingURL=ast-rule-runner-6XYO26ND.js.map
29
+ //# sourceMappingURL=ast-rule-runner-K35WYUOD.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HERI7LXN.js";
4
4
  import {
5
5
  createLogger
6
- } from "./chunk-QXMVHFW7.js";
6
+ } from "./chunk-4PWDDMLH.js";
7
7
  import "./chunk-4UHDDCRB.js";
8
8
  import "./chunk-RNDHNRSX.js";
9
9
  import "./chunk-PX6F3LHL.js";
@@ -60,4 +60,4 @@ export {
60
60
  generateMcpConfig,
61
61
  getDefaultAllowedTools
62
62
  };
63
- //# sourceMappingURL=child-mcp-config-RGGZXRY5.js.map
63
+ //# sourceMappingURL=child-mcp-config-B2CWZ2ZK.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createLogger,
3
3
  err,
4
4
  ok
5
- } from "./chunk-QXMVHFW7.js";
5
+ } from "./chunk-4PWDDMLH.js";
6
6
 
7
7
  // src/scm/token-resolver.ts
8
8
  import { execFile } from "node:child_process";
@@ -87,4 +87,4 @@ export {
87
87
  hasToken,
88
88
  getTokenEnvVars
89
89
  };
90
- //# sourceMappingURL=chunk-AM3SBI6U.js.map
90
+ //# sourceMappingURL=chunk-22VQMTR6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getErrorMessage
3
- } from "./chunk-QXMVHFW7.js";
3
+ } from "./chunk-4PWDDMLH.js";
4
4
 
5
5
  // src/cli/setup-config.ts
6
6
  import { copyFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
@@ -77,4 +77,4 @@ function ensureBackup(outputPath) {
77
77
  export {
78
78
  runConfigInitSync
79
79
  };
80
- //# sourceMappingURL=chunk-HZEPJMP4.js.map
80
+ //# sourceMappingURL=chunk-2KXRL4OW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  generateSecurityPlan
3
- } from "./chunk-ALYZL2P2.js";
3
+ } from "./chunk-CYZ3DUQV.js";
4
4
  import {
5
5
  analyzeGitHubRepo
6
6
  } from "./chunk-4GDMHCKX.js";
@@ -21,10 +21,10 @@ import {
21
21
  import {
22
22
  DEFAULT_TASK_TTL_MS,
23
23
  clampTaskTtl
24
- } from "./chunk-RCISIRX7.js";
24
+ } from "./chunk-MYEDID77.js";
25
25
  import {
26
26
  executeExpert
27
- } from "./chunk-KCMHX6AZ.js";
27
+ } from "./chunk-ZKEULHX6.js";
28
28
  import {
29
29
  DEPRECATED_MODE_ALIAS_INPUT,
30
30
  JobStatusSchema,
@@ -71,7 +71,7 @@ import {
71
71
  updateStage,
72
72
  withWarnings,
73
73
  writeJobCancelled
74
- } from "./chunk-NSX7C7GA.js";
74
+ } from "./chunk-BQMUX3TR.js";
75
75
  import {
76
76
  allOf,
77
77
  anyOf
@@ -79,7 +79,7 @@ import {
79
79
  import {
80
80
  normalizeTopicToCanonical,
81
81
  synthesizeResearch
82
- } from "./chunk-2GYLTWEC.js";
82
+ } from "./chunk-MYGTMAHW.js";
83
83
  import {
84
84
  IssueTriage,
85
85
  createAuditTrail,
@@ -87,13 +87,13 @@ import {
87
87
  createDurableAuditTrail,
88
88
  createGraphAuditBridge,
89
89
  emitPipelinePolicyEvent
90
- } from "./chunk-ERYTWOXV.js";
90
+ } from "./chunk-3PI3INR3.js";
91
91
  import {
92
92
  sanitizeInput
93
- } from "./chunk-5LBLNPCD.js";
93
+ } from "./chunk-ADHIHFBA.js";
94
94
  import {
95
95
  withPrerequisite
96
- } from "./chunk-5NC4I44Y.js";
96
+ } from "./chunk-MPWPST6S.js";
97
97
  import {
98
98
  NOOP_NOTIFIER,
99
99
  RateLimiter,
@@ -116,14 +116,14 @@ import {
116
116
  toolSuccessStructured,
117
117
  withProgressHeartbeat,
118
118
  wrapToolWithTimeout
119
- } from "./chunk-WZGUYIQA.js";
119
+ } from "./chunk-4XP43CH7.js";
120
120
  import {
121
121
  EventTopics,
122
122
  UNRESOLVED_MODEL_ID,
123
123
  createEvent,
124
124
  getGlobalEventBus,
125
125
  getGlobalRegistry
126
- } from "./chunk-AQ6NLVIB.js";
126
+ } from "./chunk-TL5NV5JH.js";
127
127
  import {
128
128
  IDENTIFIER_RE,
129
129
  LANG_VALUES,
@@ -156,7 +156,7 @@ import {
156
156
  parseRegistry,
157
157
  sourceExistsInRegistry,
158
158
  summarizeContextForPrompt
159
- } from "./chunk-MH376WDZ.js";
159
+ } from "./chunk-5QE6DJMH.js";
160
160
  import {
161
161
  REGISTRY_PATH,
162
162
  getProjectRoot,
@@ -164,25 +164,25 @@ import {
164
164
  loadTechniquesRegistry,
165
165
  resolveInsideRoot,
166
166
  resolveRegistryRoot
167
- } from "./chunk-WSAXCNCP.js";
167
+ } from "./chunk-GW7SZ555.js";
168
168
  import {
169
169
  getTokenEnvVars,
170
170
  resolveToken
171
- } from "./chunk-AM3SBI6U.js";
171
+ } from "./chunk-22VQMTR6.js";
172
172
  import {
173
173
  DEFAULT_RELEVANCE_CONFIG,
174
174
  MemoryImportance,
175
175
  MemoryType,
176
176
  calculateTextJaccardSimilarity,
177
177
  getToolMemory
178
- } from "./chunk-2YYS65XE.js";
178
+ } from "./chunk-B227FYGQ.js";
179
179
  import {
180
180
  STOPWORDS,
181
181
  truncateWithInfo
182
182
  } from "./chunk-7LP6VJRP.js";
183
183
  import {
184
184
  createSessionMemory
185
- } from "./chunk-6NWIPX4E.js";
185
+ } from "./chunk-6DPQOIE7.js";
186
186
  import {
187
187
  BUILT_IN_EXPERTS,
188
188
  BuiltInExpertTypeSchema,
@@ -200,25 +200,25 @@ import {
200
200
  getAvailableClis,
201
201
  sleep,
202
202
  withTimeout
203
- } from "./chunk-2X765QTY.js";
203
+ } from "./chunk-TUTS6S2G.js";
204
204
  import {
205
205
  BaseAdapter,
206
206
  createStream,
207
207
  requireApiKey,
208
208
  validateApiKeyPresence
209
- } from "./chunk-T4Q5AAYP.js";
209
+ } from "./chunk-ZDVNHXRV.js";
210
210
  import {
211
211
  DEFAULTS
212
- } from "./chunk-BVCKYGMS.js";
212
+ } from "./chunk-ST7RKS3P.js";
213
213
  import {
214
214
  getAvailabilityCache,
215
215
  getCliForModelId,
216
216
  resolveFallback
217
- } from "./chunk-UDXIRE5Z.js";
217
+ } from "./chunk-RGEJZIOJ.js";
218
218
  import {
219
219
  generateHyphenId,
220
220
  generateUUID
221
- } from "./chunk-YQUUI66R.js";
221
+ } from "./chunk-IQTHG5BO.js";
222
222
  import {
223
223
  AGENT_ROUTER_TIMEOUTS,
224
224
  API_TIMEOUTS,
@@ -319,6 +319,7 @@ import {
319
319
  matchesAnyKeyword,
320
320
  modelSupportsAll,
321
321
  ok,
322
+ parseGatewayCostEnv,
322
323
  rankStrategiesByManifest,
323
324
  recordRoutingGaps,
324
325
  researchContextFromText,
@@ -329,7 +330,7 @@ import {
329
330
  selectStrategyByManifest,
330
331
  toExpertTaskAnalysisResult,
331
332
  withStep
332
- } from "./chunk-QXMVHFW7.js";
333
+ } from "./chunk-4PWDDMLH.js";
333
334
  import {
334
335
  ensureLearningDir,
335
336
  getMetaOutcomesFile,
@@ -1103,6 +1104,18 @@ var NexusEnvSchema = z11.object({
1103
1104
  NEXUS_CUSTOM_API_BASE_URL: z11.string().optional(),
1104
1105
  NEXUS_CUSTOM_API_KEY: z11.string().optional(),
1105
1106
  NEXUS_CUSTOM_MODEL: z11.string().optional(),
1107
+ // #4392 increment 2: what a gateway arm costs (GATEWAY_COST_ENV; spelled
1108
+ // out because scripts/check-env-schema-coverage.ts reads keys by regex).
1109
+ // Validated by the same parser every runtime reader uses, so "invalid" here
1110
+ // means UNDECLARED there — the task-class cost ceiling and the per-task
1111
+ // budget exclude the gateway (#6393) and `doctor` warns.
1112
+ // The parser's own reason is forwarded (superRefine, not a fixed message):
1113
+ // "duplicate endpoint key" and "more than one bare declaration" are different
1114
+ // fixes, and a grammar reminder names neither.
1115
+ NEXUS_GATEWAY_COST: z11.string().superRefine((v, ctx) => {
1116
+ const parsed = parseGatewayCostEnv(v);
1117
+ if (!parsed.ok) ctx.addIssue({ code: "custom", message: parsed.error.message });
1118
+ }).optional(),
1106
1119
  NEXUS_MODEL_REGISTRY_OVERLAY: z11.string().optional(),
1107
1120
  NEXUS_OPENAI_COMPAT_KEY: z11.string().optional(),
1108
1121
  NEXUS_OPENAI_COMPAT_URL: z11.string().optional(),
@@ -1156,6 +1169,8 @@ var NexusEnvSchema = z11.object({
1156
1169
  }).optional()
1157
1170
  });
1158
1171
  var KNOWN_NAMES = Object.keys(NexusEnvSchema.shape);
1172
+ var REDACTED_VALUE_VARS = /* @__PURE__ */ new Set(["NEXUS_GATEWAY_COST"]);
1173
+ var REDACTED_VALUE = "<redacted>";
1159
1174
  var DYNAMIC_FAMILIES = [
1160
1175
  {
1161
1176
  // cli/voter-model-overrides.ts:24 — `NEXUS_VOTER_MODEL_${role.toUpperCase()}`
@@ -1221,7 +1236,8 @@ function logValidationWarnings(logger57, unknownVars, invalidVars, ineffectiveVa
1221
1236
  logger57.warn(`Unknown environment variable: ${u.name}${hint}`);
1222
1237
  }
1223
1238
  for (const inv of invalidVars) {
1224
- logger57.warn(`Invalid environment variable ${inv.name}="${inv.value}": ${inv.error}`);
1239
+ const shown = inv.value === REDACTED_VALUE ? REDACTED_VALUE : `"${inv.value}"`;
1240
+ logger57.warn(`Invalid environment variable ${inv.name}=${shown}: ${inv.error}`);
1225
1241
  }
1226
1242
  for (const ineff of ineffectiveVars) {
1227
1243
  logger57.warn(
@@ -1261,7 +1277,9 @@ function validateNexusEnv(logger57) {
1261
1277
  const varName = String(issue.path[0]);
1262
1278
  invalidVars.push({
1263
1279
  name: varName,
1264
- value: knownRecord[varName] ?? "",
1280
+ // Redacted at the record, not only at the log line: the record is
1281
+ // returned to callers, and a copy is one more place a key can leak.
1282
+ value: REDACTED_VALUE_VARS.has(varName) ? REDACTED_VALUE : knownRecord[varName] ?? "",
1265
1283
  error: issue.message
1266
1284
  });
1267
1285
  }
@@ -30060,7 +30078,7 @@ function execIdFields(executionId) {
30060
30078
  async function populateUnifiedContextOnState(state, options) {
30061
30079
  const taskCandidate = state["task"];
30062
30080
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
30063
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-XP47NAWK.js");
30081
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-5BL34V6Y.js");
30064
30082
  const category = inferTaskCategory2(taskCandidate);
30065
30083
  const executionId = options?.executionId;
30066
30084
  const execFields = execIdFields(executionId);
@@ -45443,7 +45461,7 @@ async function tryIssueTriage(task) {
45443
45461
  try {
45444
45462
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
45445
45463
  if (issueMatch === null) return null;
45446
- const { createIssueTriage } = await import("./issue-triage-7Y7WIMHD.js");
45464
+ const { createIssueTriage } = await import("./issue-triage-KCRQNDYX.js");
45447
45465
  const triage = createIssueTriage();
45448
45466
  const owner = issueMatch[1] ?? "";
45449
45467
  const num2 = issueMatch[2] ?? "";
@@ -45471,7 +45489,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
45471
45489
  ]);
45472
45490
  async function classifyWithLLM(task) {
45473
45491
  try {
45474
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-XYKGSZER.js");
45492
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-PLY7MNUK.js");
45475
45493
  const prompt = [
45476
45494
  "Classify this task into exactly one pipeline template.",
45477
45495
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -45845,7 +45863,7 @@ function buildVotingInput(plan, config) {
45845
45863
  }
45846
45864
  async function executeSingleVote(plan, config, log) {
45847
45865
  try {
45848
- const { executeVoting } = await import("./consensus-vote-H4T6XK3A.js");
45866
+ const { executeVoting } = await import("./consensus-vote-5RFJPG5F.js");
45849
45867
  const input = buildVotingInput(plan, config);
45850
45868
  const result = await executeVoting(input, log);
45851
45869
  return parseVotingResult(result);
@@ -47410,7 +47428,7 @@ var memoryInitPromise = null;
47410
47428
  async function initPipelineMemory() {
47411
47429
  if (cachedMemory !== null) return cachedMemory;
47412
47430
  try {
47413
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-PJGNXWPZ.js");
47431
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-ZNIJGF7Z.js");
47414
47432
  const { getLearningDir } = await import("./learning-persistence-7BEPQEGN.js");
47415
47433
  const mem = createSessionMemory2(getLearningDir());
47416
47434
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -47472,7 +47490,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
47472
47490
  callRecord(routingMemoryCache);
47473
47491
  return;
47474
47492
  }
47475
- routingMemoryInitPromise ??= import("./routing-memory-XV627IOT.js").then(({ createRoutingMemory }) => {
47493
+ routingMemoryInitPromise ??= import("./routing-memory-T22PQ5FF.js").then(({ createRoutingMemory }) => {
47476
47494
  routingMemoryCache ??= createRoutingMemory();
47477
47495
  return routingMemoryCache;
47478
47496
  }).catch((error) => {
@@ -47506,7 +47524,7 @@ ${text}` : "";
47506
47524
  }
47507
47525
  async function getWeatherContext() {
47508
47526
  try {
47509
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-536EMQ24.js");
47527
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-3AZHFDM3.js");
47510
47528
  const report = generateWeatherReport2({ includeAdaptive: true });
47511
47529
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
47512
47530
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -47524,7 +47542,7 @@ ${lines}
47524
47542
  }
47525
47543
  async function getMemoryContext(task) {
47526
47544
  try {
47527
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-PJGNXWPZ.js");
47545
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-ZNIJGF7Z.js");
47528
47546
  const { getLearningDir } = await import("./learning-persistence-7BEPQEGN.js");
47529
47547
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
47530
47548
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -47649,7 +47667,7 @@ ${contextBlock}`;
47649
47667
  const strategy = config.votingStrategy ?? "higher_order";
47650
47668
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
47651
47669
  try {
47652
- const { executeVoting } = await import("./consensus-vote-H4T6XK3A.js");
47670
+ const { executeVoting } = await import("./consensus-vote-5RFJPG5F.js");
47653
47671
  const votingResult = await executeVoting(
47654
47672
  {
47655
47673
  proposal: buildVoteProposal(plan, research),
@@ -48080,7 +48098,7 @@ async function searchCodebaseForTask(task) {
48080
48098
  }
48081
48099
  async function queryResearchRegistry(task) {
48082
48100
  try {
48083
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-DHFIDH3H.js");
48101
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-QFKDDHRE.js");
48084
48102
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
48085
48103
  if (topic === void 0) return null;
48086
48104
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -48151,7 +48169,7 @@ function createScanStageWrapper() {
48151
48169
  try {
48152
48170
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
48153
48171
  if (slug !== void 0) {
48154
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-ZWNLJX53.js");
48172
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-YWANNRJE.js");
48155
48173
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
48156
48174
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
48157
48175
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -51851,7 +51869,7 @@ var GitHubTaskTracker = class {
51851
51869
  cachedProvider = null;
51852
51870
  async getProvider() {
51853
51871
  if (this.cachedProvider !== null) return this.cachedProvider;
51854
- const { createScmProvider } = await import("./factory-MEITN7TW.js");
51872
+ const { createScmProvider } = await import("./factory-5XIEO5EA.js");
51855
51873
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
51856
51874
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
51857
51875
  this.cachedProvider = result.value;
@@ -52823,7 +52841,7 @@ async function probeSource(source, includeModelIds) {
52823
52841
  }
52824
52842
  }
52825
52843
  async function defaultSources(includeOpenRouter) {
52826
- const { createAllAdapters: createAllAdapters2 } = await import("./factory-6NL5M2B6.js");
52844
+ const { createAllAdapters: createAllAdapters2 } = await import("./factory-ZCMLOSDY.js");
52827
52845
  const adapters = createAllAdapters2();
52828
52846
  return buildDefaultModelSources(adapters, { includeOpenRouter });
52829
52847
  }
@@ -56899,4 +56917,4 @@ export {
56899
56917
  startPipelineEventBridge,
56900
56918
  shutdownPipelineEventBridge
56901
56919
  };
56902
- //# sourceMappingURL=chunk-DSBCOWEN.js.map
56920
+ //# sourceMappingURL=chunk-3FK67YI4.js.map