nexus-agents 3.4.7 → 3.5.0

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-RPGCCPR7.js → child-mcp-config-VVTPONKP.js} +2 -2
  2. package/dist/{chunk-J34IF7WA.js → chunk-3EIACKNR.js} +8 -8
  3. package/dist/{chunk-2KOTMA3Y.js → chunk-3FSBTAEC.js} +2 -2
  4. package/dist/{chunk-ZFLZL6JL.js → chunk-45IB3F6G.js} +71 -10
  5. package/dist/chunk-45IB3F6G.js.map +1 -0
  6. package/dist/{chunk-F4SOZWM5.js → chunk-4ZVNCOZH.js} +2 -2
  7. package/dist/{chunk-UAPIH3ZX.js → chunk-5MRYWJVK.js} +2 -2
  8. package/dist/{chunk-QITBS6CA.js → chunk-6DIGIJIY.js} +8 -8
  9. package/dist/{chunk-PHEB64A5.js → chunk-7GFMCMLF.js} +2 -2
  10. package/dist/{chunk-GMJGQ2XO.js → chunk-C25JA3SI.js} +4 -4
  11. package/dist/{chunk-7BBHGO7A.js → chunk-D3KHLA3D.js} +2 -2
  12. package/dist/{chunk-SLLUTZHU.js → chunk-DDY7JDTZ.js} +35 -35
  13. package/dist/{chunk-RGAC3SAM.js → chunk-EKASN4MV.js} +5 -5
  14. package/dist/{chunk-JHIKOTSP.js → chunk-GVLDWGSK.js} +7 -7
  15. package/dist/{chunk-5542NZXG.js → chunk-GWLBIDS6.js} +3 -3
  16. package/dist/{chunk-UOG5ANHL.js → chunk-HKX7HKDV.js} +3 -3
  17. package/dist/{chunk-TU25EPBM.js → chunk-HPAYIX7E.js} +2 -2
  18. package/dist/{chunk-OR2CJF3R.js → chunk-IK45M7J3.js} +5 -5
  19. package/dist/{chunk-Z53SVS5A.js → chunk-KBVU2GGV.js} +2 -2
  20. package/dist/{chunk-W4GN7VPG.js → chunk-L4J7AXP3.js} +2 -2
  21. package/dist/{chunk-SC7OLO76.js → chunk-LMGXSMC6.js} +2 -2
  22. package/dist/{chunk-WEQNCK5F.js → chunk-NWTACWXE.js} +5 -5
  23. package/dist/{chunk-YO2OXOPU.js → chunk-QDH2SQKE.js} +2 -2
  24. package/dist/{chunk-FTH6XZFA.js → chunk-QDUZSOOU.js} +2 -2
  25. package/dist/{chunk-RSUQCA2E.js → chunk-ROIGF7ZF.js} +4 -4
  26. package/dist/{chunk-6DDKUQFD.js → chunk-TPKK4ANS.js} +2 -2
  27. package/dist/{chunk-KJ2M2L6J.js → chunk-U76AVHIW.js} +2 -2
  28. package/dist/{chunk-H5BWZMLU.js → chunk-UFJDYK22.js} +4 -4
  29. package/dist/{chunk-SC522IDR.js → chunk-UKIFG26L.js} +3 -3
  30. package/dist/{chunk-XND2FD6I.js → chunk-UOA23X5A.js} +2 -2
  31. package/dist/{chunk-WGBVREBV.js → chunk-XKAUANYB.js} +2 -2
  32. package/dist/{chunk-YHSWBCZJ.js → chunk-XKGEKKKQ.js} +3 -3
  33. package/dist/{chunk-CG5TS6GJ.js → chunk-XOWOOBY7.js} +5 -5
  34. package/dist/{chunk-FBTBH65X.js → chunk-YFY64CCU.js} +5 -4
  35. package/dist/chunk-YFY64CCU.js.map +1 -0
  36. package/dist/{chunk-DXORNOYR.js → chunk-Z5HKO4TN.js} +2 -2
  37. package/dist/{cli-circuit-breaker-PETQMWAX.js → cli-circuit-breaker-BKCDXF7A.js} +3 -3
  38. package/dist/cli.js +40 -40
  39. package/dist/{composite-router-D36RXDEN.js → composite-router-7ZQW5X6M.js} +2 -2
  40. package/dist/{consensus-vote-CVXD54KV.js → consensus-vote-JAQXK6NR.js} +16 -16
  41. package/dist/{context-retriever-TCS3ZCHM.js → context-retriever-4BWVW6Z3.js} +8 -8
  42. package/dist/{doctor-deep-KCBA7PRP.js → doctor-deep-XEIFQH2B.js} +3 -3
  43. package/dist/{expert-bridge-4N5Q5T6J.js → expert-bridge-KXXOPEZF.js} +4 -4
  44. package/dist/{factory-KDJP6PLO.js → factory-DFOM4HM5.js} +5 -5
  45. package/dist/{factory-ASP7H2N6.js → factory-L74ZN3ZO.js} +9 -9
  46. package/dist/{improvement-review-5SWVO5KR.js → improvement-review-P5OTBXCR.js} +5 -5
  47. package/dist/index.d.ts +75 -1
  48. package/dist/index.js +30 -30
  49. package/dist/{init-opencode-Q6YEYFJK.js → init-opencode-ZYRLCXUF.js} +6 -6
  50. package/dist/{issue-triage-AOTQZ7RB.js → issue-triage-R543HBHK.js} +6 -6
  51. package/dist/{pr-reviewer-helpers-GAXKDXOB.js → pr-reviewer-helpers-T33G7ACC.js} +4 -4
  52. package/dist/{registry-command-AUHXXQMZ.js → registry-command-PW7PXQDH.js} +2 -2
  53. package/dist/{repo-security-plan-EGRREARY.js → repo-security-plan-RVKAJD7N.js} +3 -3
  54. package/dist/{research-helpers-synthesize-HBR26XOL.js → research-helpers-synthesize-FPBPUTJJ.js} +4 -4
  55. package/dist/{routing-memory-UJ6EC6HP.js → routing-memory-X5KJULU7.js} +2 -2
  56. package/dist/{session-memory-J47B6D5W.js → session-memory-UX5SU2ZG.js} +3 -3
  57. package/dist/{setup-command-OZLCZC5Q.js → setup-command-ISVGN73J.js} +14 -14
  58. package/dist/{setup-config-FTSQUTS7.js → setup-config-IEH3CVR5.js} +3 -3
  59. package/dist/{setup-custom-api-7FACD7AZ.js → setup-custom-api-V4K6SQQN.js} +4 -4
  60. package/dist/{tool-memory-HDV46HBY.js → tool-memory-IALII4YE.js} +5 -5
  61. package/dist/{unified-registry-OOS6RFJT.js → unified-registry-RUA3EHP4.js} +10 -10
  62. package/dist/{weather-report-SMQFSLI4.js → weather-report-PBVXX2HU.js} +2 -2
  63. package/package.json +1 -1
  64. package/dist/chunk-FBTBH65X.js.map +0 -1
  65. package/dist/chunk-ZFLZL6JL.js.map +0 -1
  66. /package/dist/{child-mcp-config-RPGCCPR7.js.map → child-mcp-config-VVTPONKP.js.map} +0 -0
  67. /package/dist/{chunk-J34IF7WA.js.map → chunk-3EIACKNR.js.map} +0 -0
  68. /package/dist/{chunk-2KOTMA3Y.js.map → chunk-3FSBTAEC.js.map} +0 -0
  69. /package/dist/{chunk-F4SOZWM5.js.map → chunk-4ZVNCOZH.js.map} +0 -0
  70. /package/dist/{chunk-UAPIH3ZX.js.map → chunk-5MRYWJVK.js.map} +0 -0
  71. /package/dist/{chunk-QITBS6CA.js.map → chunk-6DIGIJIY.js.map} +0 -0
  72. /package/dist/{chunk-PHEB64A5.js.map → chunk-7GFMCMLF.js.map} +0 -0
  73. /package/dist/{chunk-GMJGQ2XO.js.map → chunk-C25JA3SI.js.map} +0 -0
  74. /package/dist/{chunk-7BBHGO7A.js.map → chunk-D3KHLA3D.js.map} +0 -0
  75. /package/dist/{chunk-SLLUTZHU.js.map → chunk-DDY7JDTZ.js.map} +0 -0
  76. /package/dist/{chunk-RGAC3SAM.js.map → chunk-EKASN4MV.js.map} +0 -0
  77. /package/dist/{chunk-JHIKOTSP.js.map → chunk-GVLDWGSK.js.map} +0 -0
  78. /package/dist/{chunk-5542NZXG.js.map → chunk-GWLBIDS6.js.map} +0 -0
  79. /package/dist/{chunk-UOG5ANHL.js.map → chunk-HKX7HKDV.js.map} +0 -0
  80. /package/dist/{chunk-TU25EPBM.js.map → chunk-HPAYIX7E.js.map} +0 -0
  81. /package/dist/{chunk-OR2CJF3R.js.map → chunk-IK45M7J3.js.map} +0 -0
  82. /package/dist/{chunk-Z53SVS5A.js.map → chunk-KBVU2GGV.js.map} +0 -0
  83. /package/dist/{chunk-W4GN7VPG.js.map → chunk-L4J7AXP3.js.map} +0 -0
  84. /package/dist/{chunk-SC7OLO76.js.map → chunk-LMGXSMC6.js.map} +0 -0
  85. /package/dist/{chunk-WEQNCK5F.js.map → chunk-NWTACWXE.js.map} +0 -0
  86. /package/dist/{chunk-YO2OXOPU.js.map → chunk-QDH2SQKE.js.map} +0 -0
  87. /package/dist/{chunk-FTH6XZFA.js.map → chunk-QDUZSOOU.js.map} +0 -0
  88. /package/dist/{chunk-RSUQCA2E.js.map → chunk-ROIGF7ZF.js.map} +0 -0
  89. /package/dist/{chunk-6DDKUQFD.js.map → chunk-TPKK4ANS.js.map} +0 -0
  90. /package/dist/{chunk-KJ2M2L6J.js.map → chunk-U76AVHIW.js.map} +0 -0
  91. /package/dist/{chunk-H5BWZMLU.js.map → chunk-UFJDYK22.js.map} +0 -0
  92. /package/dist/{chunk-SC522IDR.js.map → chunk-UKIFG26L.js.map} +0 -0
  93. /package/dist/{chunk-XND2FD6I.js.map → chunk-UOA23X5A.js.map} +0 -0
  94. /package/dist/{chunk-WGBVREBV.js.map → chunk-XKAUANYB.js.map} +0 -0
  95. /package/dist/{chunk-YHSWBCZJ.js.map → chunk-XKGEKKKQ.js.map} +0 -0
  96. /package/dist/{chunk-CG5TS6GJ.js.map → chunk-XOWOOBY7.js.map} +0 -0
  97. /package/dist/{chunk-DXORNOYR.js.map → chunk-Z5HKO4TN.js.map} +0 -0
  98. /package/dist/{cli-circuit-breaker-PETQMWAX.js.map → cli-circuit-breaker-BKCDXF7A.js.map} +0 -0
  99. /package/dist/{composite-router-D36RXDEN.js.map → composite-router-7ZQW5X6M.js.map} +0 -0
  100. /package/dist/{consensus-vote-CVXD54KV.js.map → consensus-vote-JAQXK6NR.js.map} +0 -0
  101. /package/dist/{context-retriever-TCS3ZCHM.js.map → context-retriever-4BWVW6Z3.js.map} +0 -0
  102. /package/dist/{doctor-deep-KCBA7PRP.js.map → doctor-deep-XEIFQH2B.js.map} +0 -0
  103. /package/dist/{expert-bridge-4N5Q5T6J.js.map → expert-bridge-KXXOPEZF.js.map} +0 -0
  104. /package/dist/{factory-ASP7H2N6.js.map → factory-DFOM4HM5.js.map} +0 -0
  105. /package/dist/{factory-KDJP6PLO.js.map → factory-L74ZN3ZO.js.map} +0 -0
  106. /package/dist/{improvement-review-5SWVO5KR.js.map → improvement-review-P5OTBXCR.js.map} +0 -0
  107. /package/dist/{init-opencode-Q6YEYFJK.js.map → init-opencode-ZYRLCXUF.js.map} +0 -0
  108. /package/dist/{issue-triage-AOTQZ7RB.js.map → issue-triage-R543HBHK.js.map} +0 -0
  109. /package/dist/{pr-reviewer-helpers-GAXKDXOB.js.map → pr-reviewer-helpers-T33G7ACC.js.map} +0 -0
  110. /package/dist/{registry-command-AUHXXQMZ.js.map → registry-command-PW7PXQDH.js.map} +0 -0
  111. /package/dist/{repo-security-plan-EGRREARY.js.map → repo-security-plan-RVKAJD7N.js.map} +0 -0
  112. /package/dist/{research-helpers-synthesize-HBR26XOL.js.map → research-helpers-synthesize-FPBPUTJJ.js.map} +0 -0
  113. /package/dist/{routing-memory-UJ6EC6HP.js.map → routing-memory-X5KJULU7.js.map} +0 -0
  114. /package/dist/{session-memory-J47B6D5W.js.map → session-memory-UX5SU2ZG.js.map} +0 -0
  115. /package/dist/{setup-command-OZLCZC5Q.js.map → setup-command-ISVGN73J.js.map} +0 -0
  116. /package/dist/{setup-config-FTSQUTS7.js.map → setup-config-IEH3CVR5.js.map} +0 -0
  117. /package/dist/{setup-custom-api-7FACD7AZ.js.map → setup-custom-api-V4K6SQQN.js.map} +0 -0
  118. /package/dist/{tool-memory-HDV46HBY.js.map → tool-memory-IALII4YE.js.map} +0 -0
  119. /package/dist/{unified-registry-OOS6RFJT.js.map → unified-registry-RUA3EHP4.js.map} +0 -0
  120. /package/dist/{weather-report-SMQFSLI4.js.map → weather-report-PBVXX2HU.js.map} +0 -0
@@ -4,7 +4,7 @@ import {
4
4
  getErrorMessage,
5
5
  getTimeProvider,
6
6
  ok
7
- } from "./chunk-FBTBH65X.js";
7
+ } from "./chunk-YFY64CCU.js";
8
8
 
9
9
  // src/context/session-memory.ts
10
10
  import * as fs from "fs";
@@ -352,4 +352,4 @@ export {
352
352
  SessionMemory,
353
353
  createSessionMemory
354
354
  };
355
- //# sourceMappingURL=chunk-DXORNOYR.js.map
355
+ //# sourceMappingURL=chunk-Z5HKO4TN.js.map
@@ -3,8 +3,8 @@ import {
3
3
  createCliCircuitBreakerIntegration,
4
4
  getCliCircuitBreakerSnapshot,
5
5
  getDefaultCliCircuitBreakerRegistry
6
- } from "./chunk-7BBHGO7A.js";
7
- import "./chunk-FBTBH65X.js";
6
+ } from "./chunk-D3KHLA3D.js";
7
+ import "./chunk-YFY64CCU.js";
8
8
  import "./chunk-2HUC6NZN.js";
9
9
  import "./chunk-OQLFRJCW.js";
10
10
  import "./chunk-ZPWHCABL.js";
@@ -14,4 +14,4 @@ export {
14
14
  getCliCircuitBreakerSnapshot,
15
15
  getDefaultCliCircuitBreakerRegistry
16
16
  };
17
- //# sourceMappingURL=cli-circuit-breaker-PETQMWAX.js.map
17
+ //# sourceMappingURL=cli-circuit-breaker-BKCDXF7A.js.map
package/dist/cli.js CHANGED
@@ -13,13 +13,13 @@ import {
13
13
  generateSummary,
14
14
  parseFindings,
15
15
  sumFindings
16
- } from "./chunk-5542NZXG.js";
17
- import "./chunk-F4SOZWM5.js";
16
+ } from "./chunk-GWLBIDS6.js";
17
+ import "./chunk-4ZVNCOZH.js";
18
18
  import {
19
19
  setupCommandAsync,
20
20
  verifyCommand
21
- } from "./chunk-WEQNCK5F.js";
22
- import "./chunk-FTH6XZFA.js";
21
+ } from "./chunk-NWTACWXE.js";
22
+ import "./chunk-QDUZSOOU.js";
23
23
  import {
24
24
  AuthHandler,
25
25
  DEFAULT_EXPERTS,
@@ -139,8 +139,8 @@ import {
139
139
  validateCommand,
140
140
  validateWorkflow,
141
141
  wrapInMarkdownFence
142
- } from "./chunk-SLLUTZHU.js";
143
- import "./chunk-WGBVREBV.js";
142
+ } from "./chunk-DDY7JDTZ.js";
143
+ import "./chunk-XKAUANYB.js";
144
144
  import "./chunk-HFOQKCD2.js";
145
145
  import "./chunk-YF35FKKD.js";
146
146
  import {
@@ -166,14 +166,14 @@ import {
166
166
  loadConfig,
167
167
  runDoctor,
168
168
  validateNexusEnv
169
- } from "./chunk-J34IF7WA.js";
169
+ } from "./chunk-3EIACKNR.js";
170
170
  import {
171
171
  buildOpenAICompatAdapters,
172
172
  readOpenAICompatEnv
173
- } from "./chunk-CG5TS6GJ.js";
173
+ } from "./chunk-XOWOOBY7.js";
174
174
  import {
175
175
  shutdownExpertBridge
176
- } from "./chunk-JHIKOTSP.js";
176
+ } from "./chunk-GVLDWGSK.js";
177
177
  import {
178
178
  ConsensusVoteInputSchema,
179
179
  DEFAULT_VOTE_TIMEOUT_MS,
@@ -183,25 +183,25 @@ import {
183
183
  executeVoting,
184
184
  mapOutcomeToDecision,
185
185
  registerConsensusVoteTool
186
- } from "./chunk-QITBS6CA.js";
186
+ } from "./chunk-6DIGIJIY.js";
187
187
  import {
188
188
  loadUsageEvents,
189
189
  rollupByModel
190
- } from "./chunk-TU25EPBM.js";
190
+ } from "./chunk-HPAYIX7E.js";
191
191
  import {
192
192
  synthesizeResearch
193
- } from "./chunk-YHSWBCZJ.js";
193
+ } from "./chunk-XKGEKKKQ.js";
194
194
  import {
195
195
  classifyTrust,
196
196
  createFullGitHubProvider,
197
197
  evaluatePolicy,
198
198
  parsePRUrl
199
- } from "./chunk-OR2CJF3R.js";
200
- import "./chunk-KJ2M2L6J.js";
199
+ } from "./chunk-IK45M7J3.js";
200
+ import "./chunk-U76AVHIW.js";
201
201
  import {
202
202
  ReputationCache,
203
203
  sanitizeInput
204
- } from "./chunk-Z53SVS5A.js";
204
+ } from "./chunk-KBVU2GGV.js";
205
205
  import {
206
206
  ImprovementReviewInputSchema,
207
207
  calculateFitnessScore,
@@ -215,15 +215,15 @@ import {
215
215
  registerImprovementReviewTool,
216
216
  runImprovementReview,
217
217
  scanForSecrets
218
- } from "./chunk-SC522IDR.js";
218
+ } from "./chunk-UKIFG26L.js";
219
219
  import {
220
220
  createDefaultPolicyFirewall
221
- } from "./chunk-UOG5ANHL.js";
222
- import "./chunk-W4GN7VPG.js";
221
+ } from "./chunk-HKX7HKDV.js";
222
+ import "./chunk-L4J7AXP3.js";
223
223
  import {
224
224
  createUnifiedRegistry,
225
225
  getGlobalRegistry
226
- } from "./chunk-H5BWZMLU.js";
226
+ } from "./chunk-UFJDYK22.js";
227
227
  import {
228
228
  CodebaseIndexSchema,
229
229
  PaperStatusSchema,
@@ -249,25 +249,25 @@ import {
249
249
  loadSourcesRegistry,
250
250
  rankDiscoveredItems,
251
251
  saveSourcesRegistry
252
- } from "./chunk-RGAC3SAM.js";
252
+ } from "./chunk-EKASN4MV.js";
253
253
  import {
254
254
  resolveToken
255
- } from "./chunk-6DDKUQFD.js";
255
+ } from "./chunk-TPKK4ANS.js";
256
256
  import {
257
257
  loadPapersRegistry,
258
258
  loadTechniquesRegistry,
259
259
  savePapersRegistry
260
- } from "./chunk-YO2OXOPU.js";
260
+ } from "./chunk-QDH2SQKE.js";
261
261
  import "./chunk-NUBSJGQZ.js";
262
262
  import {
263
263
  MemoryError,
264
264
  shutdownToolMemory
265
- } from "./chunk-RSUQCA2E.js";
265
+ } from "./chunk-ROIGF7ZF.js";
266
266
  import {
267
267
  capitalize,
268
268
  capitalizeKebab
269
269
  } from "./chunk-6T3EPABN.js";
270
- import "./chunk-DXORNOYR.js";
270
+ import "./chunk-Z5HKO4TN.js";
271
271
  import "./chunk-YPNQPT2F.js";
272
272
  import "./chunk-DVKS77O5.js";
273
273
  import "./chunk-KSQSWEFH.js";
@@ -278,19 +278,19 @@ import {
278
278
  isRecord,
279
279
  probeAllClis,
280
280
  readSubprocessDepth
281
- } from "./chunk-ZFLZL6JL.js";
282
- import "./chunk-PHEB64A5.js";
281
+ } from "./chunk-45IB3F6G.js";
282
+ import "./chunk-7GFMCMLF.js";
283
283
  import {
284
284
  DEFAULTS
285
- } from "./chunk-2KOTMA3Y.js";
286
- import "./chunk-XND2FD6I.js";
285
+ } from "./chunk-3FSBTAEC.js";
286
+ import "./chunk-UOA23X5A.js";
287
287
  import {
288
288
  nexusMkdtempSync
289
289
  } from "./chunk-SNJNRDKZ.js";
290
- import "./chunk-SC7OLO76.js";
290
+ import "./chunk-LMGXSMC6.js";
291
291
  import "./chunk-QZUG667L.js";
292
- import "./chunk-UAPIH3ZX.js";
293
- import "./chunk-7BBHGO7A.js";
292
+ import "./chunk-5MRYWJVK.js";
293
+ import "./chunk-D3KHLA3D.js";
294
294
  import {
295
295
  API_TIMEOUTS,
296
296
  AgentCapability,
@@ -364,7 +364,7 @@ import {
364
364
  validateTimeout,
365
365
  writeEmptyLine,
366
366
  writeLine
367
- } from "./chunk-FBTBH65X.js";
367
+ } from "./chunk-YFY64CCU.js";
368
368
  import "./chunk-2HUC6NZN.js";
369
369
  import {
370
370
  applyPortableMode,
@@ -4071,7 +4071,7 @@ ${file.patch}
4071
4071
  violations: policyResult.violations
4072
4072
  });
4073
4073
  }
4074
- const { formatReviewComment: formatReviewComment2 } = await import("./pr-reviewer-helpers-GAXKDXOB.js");
4074
+ const { formatReviewComment: formatReviewComment2 } = await import("./pr-reviewer-helpers-T33G7ACC.js");
4075
4075
  const body = formatReviewComment2(result);
4076
4076
  const postResult = await provider.createReview(pr.prNumber, body, result.decision);
4077
4077
  if (!postResult.ok) {
@@ -17461,7 +17461,7 @@ function startImprovementReviewScheduler(options) {
17461
17461
  let running = false;
17462
17462
  const runOnce = async () => {
17463
17463
  try {
17464
- const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-5SWVO5KR.js");
17464
+ const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-P5OTBXCR.js");
17465
17465
  const input = ImprovementReviewInputSchema2.parse({ fileIssues });
17466
17466
  const result = await runImprovementReview2(input, { logger: logger19 });
17467
17467
  logger19.info("Scheduled improvement_review complete", {
@@ -19518,7 +19518,7 @@ function adaptConfigToLibrary(config) {
19518
19518
  }
19519
19519
  function createBeliefPromoter() {
19520
19520
  return async (event) => {
19521
- const { getToolMemory } = await import("./tool-memory-HDV46HBY.js");
19521
+ const { getToolMemory } = await import("./tool-memory-IALII4YE.js");
19522
19522
  const tm = getToolMemory();
19523
19523
  await tm.recordBelief(
19524
19524
  `skill:${event.name}`,
@@ -20694,7 +20694,7 @@ async function handleResearchCommand(args) {
20694
20694
  }
20695
20695
  }
20696
20696
  async function handleRegistryCommand(args) {
20697
- const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-AUHXXQMZ.js");
20697
+ const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-PW7PXQDH.js");
20698
20698
  const subcommand = args.subcommand;
20699
20699
  if (!isValidRegistrySubcommand(subcommand)) {
20700
20700
  process.stdout.write(`${formatRegistryUsage()}
@@ -20742,7 +20742,7 @@ async function handleVerifyCommand(args) {
20742
20742
  async function handleDoctorCommand(args) {
20743
20743
  const exitCode = await doctorCommand({ fix: args.options.fix });
20744
20744
  if (args.options.deep) {
20745
- const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-KCBA7PRP.js");
20745
+ const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-XEIFQH2B.js");
20746
20746
  const diag = runDeepDiagnostics2();
20747
20747
  process.stdout.write(formatDeepDiagnostics2(diag) + "\n");
20748
20748
  }
@@ -20792,7 +20792,7 @@ async function runInitPortableFlow(args) {
20792
20792
  return cliExit(result.success ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
20793
20793
  }
20794
20794
  async function runInitOpencodeFlow(args) {
20795
- const { runInitOpencode } = await import("./init-opencode-Q6YEYFJK.js");
20795
+ const { runInitOpencode } = await import("./init-opencode-ZYRLCXUF.js");
20796
20796
  const opencodePath = args.options.opencode;
20797
20797
  if (opencodePath === void 0 || opencodePath === "") {
20798
20798
  process.stderr.write("Error: --opencode requires a path argument.\n");
@@ -20818,7 +20818,7 @@ async function runInitOpencodeFlow(args) {
20818
20818
  return cliExit(EXIT_CODES.SUCCESS);
20819
20819
  }
20820
20820
  async function renderOpencodeValidate(opencodePath) {
20821
- const { runOpencodeValidate } = await import("./init-opencode-Q6YEYFJK.js");
20821
+ const { runOpencodeValidate } = await import("./init-opencode-ZYRLCXUF.js");
20822
20822
  const result = await runOpencodeValidate(opencodePath);
20823
20823
  if (!result.ok) {
20824
20824
  process.stderr.write(`init --opencode --validate: ${result.reason ?? "failed"}
@@ -20857,7 +20857,7 @@ async function handleSetupCommandAsync(args) {
20857
20857
  return cliExitFromStatus(exitCode);
20858
20858
  }
20859
20859
  async function runCustomApiSetup(args) {
20860
- const { configureCustomApi } = await import("./setup-custom-api-7FACD7AZ.js");
20860
+ const { configureCustomApi } = await import("./setup-custom-api-V4K6SQQN.js");
20861
20861
  const baseUrl = args.options.customApi;
20862
20862
  if (baseUrl === void 0) return EXIT_CODES.SERVER_START_FAILED;
20863
20863
  const input = {
@@ -4,7 +4,7 @@ import {
4
4
  CompositeRoutingError,
5
5
  DEFAULT_COMPOSITE_CONFIG,
6
6
  createCompositeRouter
7
- } from "./chunk-FBTBH65X.js";
7
+ } from "./chunk-YFY64CCU.js";
8
8
  import "./chunk-2HUC6NZN.js";
9
9
  import "./chunk-OQLFRJCW.js";
10
10
  import "./chunk-ZPWHCABL.js";
@@ -15,4 +15,4 @@ export {
15
15
  DEFAULT_COMPOSITE_CONFIG,
16
16
  createCompositeRouter
17
17
  };
18
- //# sourceMappingURL=composite-router-D36RXDEN.js.map
18
+ //# sourceMappingURL=composite-router-7ZQW5X6M.js.map
@@ -10,26 +10,26 @@ import {
10
10
  resetCorrelationTracker,
11
11
  runConsensusForGoal,
12
12
  unwrapVoteOrThrow
13
- } from "./chunk-QITBS6CA.js";
14
- import "./chunk-TU25EPBM.js";
15
- import "./chunk-UOG5ANHL.js";
16
- import "./chunk-W4GN7VPG.js";
17
- import "./chunk-H5BWZMLU.js";
18
- import "./chunk-RSUQCA2E.js";
13
+ } from "./chunk-6DIGIJIY.js";
14
+ import "./chunk-HPAYIX7E.js";
15
+ import "./chunk-HKX7HKDV.js";
16
+ import "./chunk-L4J7AXP3.js";
17
+ import "./chunk-UFJDYK22.js";
18
+ import "./chunk-ROIGF7ZF.js";
19
19
  import "./chunk-6T3EPABN.js";
20
- import "./chunk-DXORNOYR.js";
20
+ import "./chunk-Z5HKO4TN.js";
21
21
  import "./chunk-DVKS77O5.js";
22
22
  import "./chunk-KSQSWEFH.js";
23
- import "./chunk-ZFLZL6JL.js";
24
- import "./chunk-PHEB64A5.js";
25
- import "./chunk-2KOTMA3Y.js";
26
- import "./chunk-XND2FD6I.js";
23
+ import "./chunk-45IB3F6G.js";
24
+ import "./chunk-7GFMCMLF.js";
25
+ import "./chunk-3FSBTAEC.js";
26
+ import "./chunk-UOA23X5A.js";
27
27
  import "./chunk-SNJNRDKZ.js";
28
- import "./chunk-SC7OLO76.js";
28
+ import "./chunk-LMGXSMC6.js";
29
29
  import "./chunk-QZUG667L.js";
30
- import "./chunk-UAPIH3ZX.js";
31
- import "./chunk-7BBHGO7A.js";
32
- import "./chunk-FBTBH65X.js";
30
+ import "./chunk-5MRYWJVK.js";
31
+ import "./chunk-D3KHLA3D.js";
32
+ import "./chunk-YFY64CCU.js";
33
33
  import "./chunk-2HUC6NZN.js";
34
34
  import "./chunk-OQLFRJCW.js";
35
35
  import "./chunk-ZPWHCABL.js";
@@ -46,4 +46,4 @@ export {
46
46
  runConsensusForGoal,
47
47
  unwrapVoteOrThrow
48
48
  };
49
- //# sourceMappingURL=consensus-vote-CVXD54KV.js.map
49
+ //# sourceMappingURL=consensus-vote-JAQXK6NR.js.map
@@ -6,18 +6,18 @@ import {
6
6
  inferTaskCategory,
7
7
  selectRelevantResearch,
8
8
  summarizeContextForPrompt
9
- } from "./chunk-RGAC3SAM.js";
10
- import "./chunk-6DDKUQFD.js";
11
- import "./chunk-YO2OXOPU.js";
9
+ } from "./chunk-EKASN4MV.js";
10
+ import "./chunk-TPKK4ANS.js";
11
+ import "./chunk-QDH2SQKE.js";
12
12
  import "./chunk-NUBSJGQZ.js";
13
- import "./chunk-RSUQCA2E.js";
13
+ import "./chunk-ROIGF7ZF.js";
14
14
  import "./chunk-6T3EPABN.js";
15
- import "./chunk-DXORNOYR.js";
15
+ import "./chunk-Z5HKO4TN.js";
16
16
  import "./chunk-DVKS77O5.js";
17
17
  import "./chunk-KSQSWEFH.js";
18
18
  import "./chunk-QZUG667L.js";
19
- import "./chunk-UAPIH3ZX.js";
20
- import "./chunk-FBTBH65X.js";
19
+ import "./chunk-5MRYWJVK.js";
20
+ import "./chunk-YFY64CCU.js";
21
21
  import "./chunk-2HUC6NZN.js";
22
22
  import "./chunk-OQLFRJCW.js";
23
23
  import "./chunk-ZPWHCABL.js";
@@ -30,4 +30,4 @@ export {
30
30
  selectRelevantResearch,
31
31
  summarizeContextForPrompt
32
32
  };
33
- //# sourceMappingURL=context-retriever-TCS3ZCHM.js.map
33
+ //# sourceMappingURL=context-retriever-4BWVW6Z3.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  formatDeepDiagnostics,
3
3
  runDeepDiagnostics
4
- } from "./chunk-F4SOZWM5.js";
5
- import "./chunk-FBTBH65X.js";
4
+ } from "./chunk-4ZVNCOZH.js";
5
+ import "./chunk-YFY64CCU.js";
6
6
  import "./chunk-2HUC6NZN.js";
7
7
  import "./chunk-OQLFRJCW.js";
8
8
  import "./chunk-ZPWHCABL.js";
@@ -10,4 +10,4 @@ export {
10
10
  formatDeepDiagnostics,
11
11
  runDeepDiagnostics
12
12
  };
13
- //# sourceMappingURL=doctor-deep-KCBA7PRP.js.map
13
+ //# sourceMappingURL=doctor-deep-XEIFQH2B.js.map
@@ -3,9 +3,9 @@ import {
3
3
  shutdownExpertBridge,
4
4
  tokenSplitFromUsage,
5
5
  totalTokensFromUsage
6
- } from "./chunk-JHIKOTSP.js";
7
- import "./chunk-SC7OLO76.js";
8
- import "./chunk-FBTBH65X.js";
6
+ } from "./chunk-GVLDWGSK.js";
7
+ import "./chunk-LMGXSMC6.js";
8
+ import "./chunk-YFY64CCU.js";
9
9
  import "./chunk-2HUC6NZN.js";
10
10
  import "./chunk-OQLFRJCW.js";
11
11
  import "./chunk-ZPWHCABL.js";
@@ -15,4 +15,4 @@ export {
15
15
  tokenSplitFromUsage,
16
16
  totalTokensFromUsage
17
17
  };
18
- //# sourceMappingURL=expert-bridge-4N5Q5T6J.js.map
18
+ //# sourceMappingURL=expert-bridge-KXXOPEZF.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createGitHubProvider,
3
3
  createScmProvider
4
- } from "./chunk-GMJGQ2XO.js";
5
- import "./chunk-KJ2M2L6J.js";
6
- import "./chunk-6DDKUQFD.js";
7
- import "./chunk-FBTBH65X.js";
4
+ } from "./chunk-C25JA3SI.js";
5
+ import "./chunk-U76AVHIW.js";
6
+ import "./chunk-TPKK4ANS.js";
7
+ import "./chunk-YFY64CCU.js";
8
8
  import "./chunk-2HUC6NZN.js";
9
9
  import "./chunk-OQLFRJCW.js";
10
10
  import "./chunk-ZPWHCABL.js";
@@ -12,4 +12,4 @@ export {
12
12
  createGitHubProvider,
13
13
  createScmProvider
14
14
  };
15
- //# sourceMappingURL=factory-KDJP6PLO.js.map
15
+ //# sourceMappingURL=factory-DFOM4HM5.js.map
@@ -3,16 +3,16 @@ import {
3
3
  createCliAdapter,
4
4
  getAvailableClis,
5
5
  isCliAvailable
6
- } from "./chunk-ZFLZL6JL.js";
7
- import "./chunk-PHEB64A5.js";
8
- import "./chunk-2KOTMA3Y.js";
9
- import "./chunk-XND2FD6I.js";
6
+ } from "./chunk-45IB3F6G.js";
7
+ import "./chunk-7GFMCMLF.js";
8
+ import "./chunk-3FSBTAEC.js";
9
+ import "./chunk-UOA23X5A.js";
10
10
  import "./chunk-SNJNRDKZ.js";
11
- import "./chunk-SC7OLO76.js";
11
+ import "./chunk-LMGXSMC6.js";
12
12
  import "./chunk-QZUG667L.js";
13
- import "./chunk-UAPIH3ZX.js";
14
- import "./chunk-7BBHGO7A.js";
15
- import "./chunk-FBTBH65X.js";
13
+ import "./chunk-5MRYWJVK.js";
14
+ import "./chunk-D3KHLA3D.js";
15
+ import "./chunk-YFY64CCU.js";
16
16
  import "./chunk-2HUC6NZN.js";
17
17
  import "./chunk-OQLFRJCW.js";
18
18
  import "./chunk-ZPWHCABL.js";
@@ -22,4 +22,4 @@ export {
22
22
  getAvailableClis,
23
23
  isCliAvailable
24
24
  };
25
- //# sourceMappingURL=factory-ASP7H2N6.js.map
25
+ //# sourceMappingURL=factory-L74ZN3ZO.js.map
@@ -11,10 +11,10 @@ import {
11
11
  loadSelfEvalSignals,
12
12
  registerImprovementReviewTool,
13
13
  runImprovementReview
14
- } from "./chunk-SC522IDR.js";
15
- import "./chunk-UOG5ANHL.js";
16
- import "./chunk-W4GN7VPG.js";
17
- import "./chunk-FBTBH65X.js";
14
+ } from "./chunk-UKIFG26L.js";
15
+ import "./chunk-HKX7HKDV.js";
16
+ import "./chunk-L4J7AXP3.js";
17
+ import "./chunk-YFY64CCU.js";
18
18
  import "./chunk-2HUC6NZN.js";
19
19
  import "./chunk-OQLFRJCW.js";
20
20
  import "./chunk-ZPWHCABL.js";
@@ -32,4 +32,4 @@ export {
32
32
  registerImprovementReviewTool,
33
33
  runImprovementReview
34
34
  };
35
- //# sourceMappingURL=improvement-review-5SWVO5KR.js.map
35
+ //# sourceMappingURL=improvement-review-P5OTBXCR.js.map
package/dist/index.d.ts CHANGED
@@ -1057,8 +1057,49 @@ interface CapacityStatus {
1057
1057
  readonly resetTime: Date;
1058
1058
  /** Current utilization percentage (0-100) */
1059
1059
  readonly utilizationPercent: number;
1060
- /** Whether capacity is exhausted */
1060
+ /**
1061
+ * Whether this process's rolling rate window is used up (#4456).
1062
+ *
1063
+ * Local arithmetic only: this process's own spend over the last
1064
+ * {@link RATE_LIMIT_WINDOW_MS}, measured against a per-CLI constant the
1065
+ * source calls a conservative estimate. It self-clears within the window,
1066
+ * and an ordinary burst (a 7-voter panel, a subagent fan-out) sets it while
1067
+ * plenty of provider quota remains.
1068
+ *
1069
+ * This is a throttling hint, NOT evidence that the account is out of
1070
+ * capacity. Do not exclude a candidate on it — see {@link quotaExhausted}.
1071
+ */
1072
+ readonly rateLimited: boolean;
1073
+ /**
1074
+ * @deprecated Since #4456 — renamed to {@link rateLimited}, which says what
1075
+ * it actually measures. The name `exhausted` promised an account/plan
1076
+ * capacity signal while reporting a 60-second local rate heuristic, so every
1077
+ * reader inherited a claim the value could not support. Identical value;
1078
+ * scheduled for removal in the next major.
1079
+ */
1061
1080
  readonly exhausted: boolean;
1081
+ /**
1082
+ * Whether a PROVIDER asserted that durable quota is gone (#4456).
1083
+ *
1084
+ * Set only from provider-asserted evidence — a rate-limit error whose
1085
+ * `retry-after` exceeds the local window, which is the provider itself
1086
+ * saying the wait is longer than a per-minute throttle. Never inferred from
1087
+ * local counting.
1088
+ *
1089
+ * `false` means "no provider has asserted exhaustion to THIS process". It is
1090
+ * NOT a measurement that quota remains: a weekly quota burned by another
1091
+ * process is invisible here. Read it with {@link observed}; absence of
1092
+ * evidence must not be presented as capacity.
1093
+ */
1094
+ readonly quotaExhausted: boolean;
1095
+ /**
1096
+ * When the provider said the quota window clears, from `retry-after`.
1097
+ *
1098
+ * Present only alongside `quotaExhausted: true`. Absent means the provider
1099
+ * asserted exhaustion without a horizon, which is a weaker signal, not a
1100
+ * shorter one.
1101
+ */
1102
+ readonly quotaResetAt?: Date;
1062
1103
  /**
1063
1104
  * Whether this process has observed any usage of the adapter (#4374).
1064
1105
  *
@@ -26979,6 +27020,11 @@ declare class CapacityTracker {
26979
27020
  * from an idle healthy one, and both report full remaining capacity.
26980
27021
  */
26981
27022
  private hasObserved;
27023
+ /**
27024
+ * Provider-asserted quota exhaustion (#4456), with the horizon the provider
27025
+ * gave. Null until a provider says so — never inferred from local counting.
27026
+ */
27027
+ private quotaExhaustedUntil;
26982
27028
  constructor(config: CapacityTrackerConfig);
26983
27029
  /**
26984
27030
  * Records token usage from a completed request.
@@ -26988,6 +27034,23 @@ declare class CapacityTracker {
26988
27034
  * Gets current capacity status based on tracked usage.
26989
27035
  */
26990
27036
  getCapacity(): CapacityStatus;
27037
+ /**
27038
+ * Record a PROVIDER's assertion that durable quota is exhausted (#4456).
27039
+ *
27040
+ * Only a `retryAfterMs` longer than the local window counts. A shorter one
27041
+ * is an ordinary per-minute throttle, which {@link CapacityStatus.rateLimited}
27042
+ * already covers — treating it as quota exhaustion would empty the candidate
27043
+ * pool for a condition that clears in under a minute, the failure mode that
27044
+ * kept #4373's enforcement stage switched off.
27045
+ *
27046
+ * Without a `retryAfterMs` the provider gave no horizon, so nothing is
27047
+ * asserted: an exhaustion with no end is not distinguishable here from a
27048
+ * transient error, and inventing a horizon would manufacture a measurement.
27049
+ *
27050
+ * @param retryAfterMs - The provider's stated wait, from `retry-after`.
27051
+ * @returns true when the assertion was durable enough to record.
27052
+ */
27053
+ recordProviderQuotaExhaustion(retryAfterMs: number | undefined): boolean;
26991
27054
  /**
26992
27055
  * Gets time until the rate limit window resets.
26993
27056
  */
@@ -27100,6 +27163,17 @@ declare abstract class BaseCliAdapter implements ICliAdapter {
27100
27163
  * Executes task with retry logic via shared retry loop.
27101
27164
  */
27102
27165
  private executeWithRetry;
27166
+ /**
27167
+ * Feed a provider's own rate-limit assertion into capacity tracking (#4456).
27168
+ *
27169
+ * A `retry-after` the provider stated is far stronger evidence than local
27170
+ * counting: the tracker otherwise sees only this process's spend and cannot
27171
+ * observe a plan quota burned gradually or burned elsewhere, which is the
27172
+ * incident #4351 reported. Only RATE_LIMITED carries that assertion; the
27173
+ * tracker itself decides whether the stated wait is long enough to mean
27174
+ * durable quota rather than a per-minute throttle.
27175
+ */
27176
+ protected recordQuotaSignal(error: CliError): void;
27103
27177
  /**
27104
27178
  * Performs a health check.
27105
27179
  */