nexus-agents 2.161.1 → 2.162.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 (122) hide show
  1. package/dist/{child-mcp-config-YBBGGRIQ.js → child-mcp-config-VXXBVJY3.js} +2 -2
  2. package/dist/{chunk-HTDA53XN.js → chunk-23ZSFBBM.js} +8 -8
  3. package/dist/{chunk-VBFXKKSJ.js → chunk-6FWMNTPO.js} +4 -4
  4. package/dist/{chunk-MSLY2T7V.js → chunk-6ILEOLNW.js} +2 -2
  5. package/dist/{chunk-BYIK3SEP.js → chunk-754RDQAS.js} +2 -2
  6. package/dist/{chunk-5AGWDSRC.js → chunk-7QWGLBCE.js} +5 -5
  7. package/dist/{chunk-47SHVEUS.js → chunk-DBHK6EDT.js} +2 -2
  8. package/dist/{chunk-QUPEN5ZT.js → chunk-DXEYJAGO.js} +2 -2
  9. package/dist/{chunk-JTNG2GEO.js → chunk-EQJR6WMY.js} +2 -2
  10. package/dist/{chunk-A3ADATJQ.js → chunk-EVYIQ6N5.js} +5 -5
  11. package/dist/{chunk-M2MCHF2N.js → chunk-EZHYOWWO.js} +2 -2
  12. package/dist/{chunk-HLIL4IAV.js → chunk-FFH35IKD.js} +3 -3
  13. package/dist/{chunk-JVLGCODA.js → chunk-GJSJRJ6Y.js} +2 -2
  14. package/dist/{chunk-VUEYMYJL.js → chunk-GMSYKYFA.js} +2 -2
  15. package/dist/{chunk-KG7TUZCP.js → chunk-HJZ3RES7.js} +2 -2
  16. package/dist/{chunk-WL74YS6H.js → chunk-JB37LBSG.js} +7 -7
  17. package/dist/{chunk-NNBOROVK.js → chunk-JIXCOX7D.js} +3 -3
  18. package/dist/{chunk-KJ6JJ24E.js → chunk-JYR6SBUB.js} +4 -4
  19. package/dist/{chunk-KFURXCQX.js → chunk-MJLN336B.js} +3 -3
  20. package/dist/{chunk-YZ5FJXMZ.js → chunk-MJOHZFJP.js} +22 -9
  21. package/dist/chunk-MJOHZFJP.js.map +1 -0
  22. package/dist/{chunk-N4P5S6NC.js → chunk-N67NSSQT.js} +2 -2
  23. package/dist/{chunk-SVEMQWSS.js → chunk-RDYGX6MQ.js} +2 -2
  24. package/dist/{chunk-LZG6T6NF.js → chunk-RN5ISNYK.js} +3 -3
  25. package/dist/{chunk-SDBXLOV4.js → chunk-THUX4X43.js} +3 -3
  26. package/dist/{chunk-F64ZVDTS.js → chunk-TJJW4BGX.js} +4 -4
  27. package/dist/{chunk-A4IQ3WIV.js → chunk-U4KMGGGF.js} +2 -2
  28. package/dist/{chunk-OFNGKIRB.js → chunk-V7CIVDNO.js} +3 -3
  29. package/dist/{chunk-M43WDHS7.js → chunk-VWV34IMA.js} +2 -2
  30. package/dist/{chunk-DSZPCPLU.js → chunk-W3ZTVYZN.js} +2 -2
  31. package/dist/{chunk-X2K6JQXF.js → chunk-WGDZFYP3.js} +382 -293
  32. package/dist/chunk-WGDZFYP3.js.map +1 -0
  33. package/dist/{chunk-Q3VSFJMW.js → chunk-WP6L2PTV.js} +7 -7
  34. package/dist/{chunk-BO2OKI3L.js → chunk-XWAV3UC2.js} +5 -5
  35. package/dist/{chunk-TAFGCQKM.js → chunk-YUAQRJRF.js} +4 -4
  36. package/dist/{chunk-NJDGWKIG.js → chunk-ZGSAYLPE.js} +2 -2
  37. package/dist/{chunk-22WY2UZO.js → chunk-ZIPTXCET.js} +34 -34
  38. package/dist/{cli-circuit-breaker-LRXSQ43Q.js → cli-circuit-breaker-B4RH2ELX.js} +4 -4
  39. package/dist/cli.js +41 -41
  40. package/dist/{composite-router-5Q4PGWS6.js → composite-router-4PYFIB2G.js} +2 -2
  41. package/dist/{consensus-vote-EO5OR5VC.js → consensus-vote-MM5YG3A5.js} +15 -15
  42. package/dist/{context-retriever-CEVBKMKI.js → context-retriever-YGPEAEPO.js} +8 -8
  43. package/dist/{doctor-deep-IGJ742A2.js → doctor-deep-N576AXQE.js} +3 -3
  44. package/dist/{expert-bridge-XP4CXZJD.js → expert-bridge-YEE7F6TA.js} +4 -4
  45. package/dist/{factory-6RKIL4XS.js → factory-NQEQY7NV.js} +5 -5
  46. package/dist/{factory-YZ7GKC66.js → factory-TWK2UKNH.js} +8 -8
  47. package/dist/{improvement-review-LCWLZWSS.js → improvement-review-5CZJIOEH.js} +5 -5
  48. package/dist/index.d.ts +51 -24
  49. package/dist/index.js +30 -30
  50. package/dist/{init-opencode-LFHJR4NV.js → init-opencode-R3PEVUUI.js} +6 -6
  51. package/dist/{issue-triage-MG34EMJJ.js → issue-triage-Y35K4BUV.js} +6 -6
  52. package/dist/{pr-reviewer-helpers-PEKSWICD.js → pr-reviewer-helpers-TOMMTISB.js} +4 -4
  53. package/dist/{registry-command-ZASDTWMF.js → registry-command-EBGQHFT3.js} +2 -2
  54. package/dist/{repo-security-plan-SVVLDD3L.js → repo-security-plan-CWJ3Z4CC.js} +3 -3
  55. package/dist/{research-helpers-synthesize-PUFJCIXW.js → research-helpers-synthesize-UNLGVEND.js} +4 -4
  56. package/dist/{routing-memory-ZEHSEZQN.js → routing-memory-MTGIZZUO.js} +2 -2
  57. package/dist/{session-memory-64GGDTTO.js → session-memory-QGUF5TNU.js} +3 -3
  58. package/dist/{setup-command-LPNACGEN.js → setup-command-6QSWQMBJ.js} +11 -11
  59. package/dist/{setup-config-I7EAJHBG.js → setup-config-4TGGV7AQ.js} +3 -3
  60. package/dist/{setup-custom-api-KZUQVSAX.js → setup-custom-api-QON4YKJ3.js} +3 -3
  61. package/dist/{tool-memory-BGWJJRJK.js → tool-memory-SNH4B5Q7.js} +5 -5
  62. package/dist/{unified-registry-DAFMWYGI.js → unified-registry-XEA2GEOZ.js} +9 -9
  63. package/dist/{weather-report-4DZAU577.js → weather-report-QQ42WBNZ.js} +2 -2
  64. package/package.json +1 -1
  65. package/dist/chunk-X2K6JQXF.js.map +0 -1
  66. package/dist/chunk-YZ5FJXMZ.js.map +0 -1
  67. /package/dist/{child-mcp-config-YBBGGRIQ.js.map → child-mcp-config-VXXBVJY3.js.map} +0 -0
  68. /package/dist/{chunk-HTDA53XN.js.map → chunk-23ZSFBBM.js.map} +0 -0
  69. /package/dist/{chunk-VBFXKKSJ.js.map → chunk-6FWMNTPO.js.map} +0 -0
  70. /package/dist/{chunk-MSLY2T7V.js.map → chunk-6ILEOLNW.js.map} +0 -0
  71. /package/dist/{chunk-BYIK3SEP.js.map → chunk-754RDQAS.js.map} +0 -0
  72. /package/dist/{chunk-5AGWDSRC.js.map → chunk-7QWGLBCE.js.map} +0 -0
  73. /package/dist/{chunk-47SHVEUS.js.map → chunk-DBHK6EDT.js.map} +0 -0
  74. /package/dist/{chunk-QUPEN5ZT.js.map → chunk-DXEYJAGO.js.map} +0 -0
  75. /package/dist/{chunk-JTNG2GEO.js.map → chunk-EQJR6WMY.js.map} +0 -0
  76. /package/dist/{chunk-A3ADATJQ.js.map → chunk-EVYIQ6N5.js.map} +0 -0
  77. /package/dist/{chunk-M2MCHF2N.js.map → chunk-EZHYOWWO.js.map} +0 -0
  78. /package/dist/{chunk-HLIL4IAV.js.map → chunk-FFH35IKD.js.map} +0 -0
  79. /package/dist/{chunk-JVLGCODA.js.map → chunk-GJSJRJ6Y.js.map} +0 -0
  80. /package/dist/{chunk-VUEYMYJL.js.map → chunk-GMSYKYFA.js.map} +0 -0
  81. /package/dist/{chunk-KG7TUZCP.js.map → chunk-HJZ3RES7.js.map} +0 -0
  82. /package/dist/{chunk-WL74YS6H.js.map → chunk-JB37LBSG.js.map} +0 -0
  83. /package/dist/{chunk-NNBOROVK.js.map → chunk-JIXCOX7D.js.map} +0 -0
  84. /package/dist/{chunk-KJ6JJ24E.js.map → chunk-JYR6SBUB.js.map} +0 -0
  85. /package/dist/{chunk-KFURXCQX.js.map → chunk-MJLN336B.js.map} +0 -0
  86. /package/dist/{chunk-N4P5S6NC.js.map → chunk-N67NSSQT.js.map} +0 -0
  87. /package/dist/{chunk-SVEMQWSS.js.map → chunk-RDYGX6MQ.js.map} +0 -0
  88. /package/dist/{chunk-LZG6T6NF.js.map → chunk-RN5ISNYK.js.map} +0 -0
  89. /package/dist/{chunk-SDBXLOV4.js.map → chunk-THUX4X43.js.map} +0 -0
  90. /package/dist/{chunk-F64ZVDTS.js.map → chunk-TJJW4BGX.js.map} +0 -0
  91. /package/dist/{chunk-A4IQ3WIV.js.map → chunk-U4KMGGGF.js.map} +0 -0
  92. /package/dist/{chunk-OFNGKIRB.js.map → chunk-V7CIVDNO.js.map} +0 -0
  93. /package/dist/{chunk-M43WDHS7.js.map → chunk-VWV34IMA.js.map} +0 -0
  94. /package/dist/{chunk-DSZPCPLU.js.map → chunk-W3ZTVYZN.js.map} +0 -0
  95. /package/dist/{chunk-Q3VSFJMW.js.map → chunk-WP6L2PTV.js.map} +0 -0
  96. /package/dist/{chunk-BO2OKI3L.js.map → chunk-XWAV3UC2.js.map} +0 -0
  97. /package/dist/{chunk-TAFGCQKM.js.map → chunk-YUAQRJRF.js.map} +0 -0
  98. /package/dist/{chunk-NJDGWKIG.js.map → chunk-ZGSAYLPE.js.map} +0 -0
  99. /package/dist/{chunk-22WY2UZO.js.map → chunk-ZIPTXCET.js.map} +0 -0
  100. /package/dist/{cli-circuit-breaker-LRXSQ43Q.js.map → cli-circuit-breaker-B4RH2ELX.js.map} +0 -0
  101. /package/dist/{composite-router-5Q4PGWS6.js.map → composite-router-4PYFIB2G.js.map} +0 -0
  102. /package/dist/{consensus-vote-EO5OR5VC.js.map → consensus-vote-MM5YG3A5.js.map} +0 -0
  103. /package/dist/{context-retriever-CEVBKMKI.js.map → context-retriever-YGPEAEPO.js.map} +0 -0
  104. /package/dist/{doctor-deep-IGJ742A2.js.map → doctor-deep-N576AXQE.js.map} +0 -0
  105. /package/dist/{expert-bridge-XP4CXZJD.js.map → expert-bridge-YEE7F6TA.js.map} +0 -0
  106. /package/dist/{factory-6RKIL4XS.js.map → factory-NQEQY7NV.js.map} +0 -0
  107. /package/dist/{factory-YZ7GKC66.js.map → factory-TWK2UKNH.js.map} +0 -0
  108. /package/dist/{improvement-review-LCWLZWSS.js.map → improvement-review-5CZJIOEH.js.map} +0 -0
  109. /package/dist/{init-opencode-LFHJR4NV.js.map → init-opencode-R3PEVUUI.js.map} +0 -0
  110. /package/dist/{issue-triage-MG34EMJJ.js.map → issue-triage-Y35K4BUV.js.map} +0 -0
  111. /package/dist/{pr-reviewer-helpers-PEKSWICD.js.map → pr-reviewer-helpers-TOMMTISB.js.map} +0 -0
  112. /package/dist/{registry-command-ZASDTWMF.js.map → registry-command-EBGQHFT3.js.map} +0 -0
  113. /package/dist/{repo-security-plan-SVVLDD3L.js.map → repo-security-plan-CWJ3Z4CC.js.map} +0 -0
  114. /package/dist/{research-helpers-synthesize-PUFJCIXW.js.map → research-helpers-synthesize-UNLGVEND.js.map} +0 -0
  115. /package/dist/{routing-memory-ZEHSEZQN.js.map → routing-memory-MTGIZZUO.js.map} +0 -0
  116. /package/dist/{session-memory-64GGDTTO.js.map → session-memory-QGUF5TNU.js.map} +0 -0
  117. /package/dist/{setup-command-LPNACGEN.js.map → setup-command-6QSWQMBJ.js.map} +0 -0
  118. /package/dist/{setup-config-I7EAJHBG.js.map → setup-config-4TGGV7AQ.js.map} +0 -0
  119. /package/dist/{setup-custom-api-KZUQVSAX.js.map → setup-custom-api-QON4YKJ3.js.map} +0 -0
  120. /package/dist/{tool-memory-BGWJJRJK.js.map → tool-memory-SNH4B5Q7.js.map} +0 -0
  121. /package/dist/{unified-registry-DAFMWYGI.js.map → unified-registry-XEA2GEOZ.js.map} +0 -0
  122. /package/dist/{weather-report-4DZAU577.js.map → weather-report-QQ42WBNZ.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createLogger
3
- } from "./chunk-X2K6JQXF.js";
3
+ } from "./chunk-WGDZFYP3.js";
4
4
  import "./chunk-NL7SZQPW.js";
5
5
  import "./chunk-DHVMSIT5.js";
6
6
  import "./chunk-ZPWHCABL.js";
@@ -60,4 +60,4 @@ export {
60
60
  generateMcpConfig,
61
61
  getDefaultAllowedTools
62
62
  };
63
- //# sourceMappingURL=child-mcp-config-YBBGGRIQ.js.map
63
+ //# sourceMappingURL=child-mcp-config-VXXBVJY3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  computeCostDetail
3
- } from "./chunk-MSLY2T7V.js";
3
+ } from "./chunk-6ILEOLNW.js";
4
4
  import {
5
5
  DEFAULT_CONSENSUS_CONFIG,
6
6
  DEFAULT_INCREMENTAL_QUORUM_CONFIG,
@@ -18,20 +18,20 @@ import {
18
18
  toolSuccess,
19
19
  withProgressHeartbeat,
20
20
  wrapToolWithTimeout
21
- } from "./chunk-HLIL4IAV.js";
21
+ } from "./chunk-FFH35IKD.js";
22
22
  import {
23
23
  getToolMemory
24
- } from "./chunk-F64ZVDTS.js";
24
+ } from "./chunk-TJJW4BGX.js";
25
25
  import {
26
26
  createEvent,
27
27
  getGlobalRegistry
28
- } from "./chunk-TAFGCQKM.js";
28
+ } from "./chunk-YUAQRJRF.js";
29
29
  import {
30
30
  authRemediation,
31
31
  delay,
32
32
  getAvailableClis,
33
33
  withTimeout
34
- } from "./chunk-Q3VSFJMW.js";
34
+ } from "./chunk-WP6L2PTV.js";
35
35
  import {
36
36
  AgentError,
37
37
  CLI_NAMES,
@@ -59,7 +59,7 @@ import {
59
59
  registerPersistentOutcomeStoreFactory,
60
60
  resolveClassGuardMs,
61
61
  resolveVoteTimeout
62
- } from "./chunk-X2K6JQXF.js";
62
+ } from "./chunk-WGDZFYP3.js";
63
63
  import {
64
64
  ensureLearningDir,
65
65
  getOutcomesFile
@@ -5866,7 +5866,7 @@ async function processVotesWithCascade(engineVotes, opts) {
5866
5866
  var CONTRARIAN_ESCALATION_THRESHOLD = 0.8;
5867
5867
  async function runContrarianCheck(proposal, log) {
5868
5868
  try {
5869
- const { executeExpert } = await import("./expert-bridge-XP4CXZJD.js");
5869
+ const { executeExpert } = await import("./expert-bridge-YEE7F6TA.js");
5870
5870
  const prompt = [
5871
5871
  "You are a contrarian analyst. Your job is to find reasons this proposal should be REJECTED.",
5872
5872
  "Look for: YAGNI (not needed), MISALIGNED (wrong tech/architecture), SECURITY_RISK, SCOPE_CREEP.",
@@ -6382,4 +6382,4 @@ export {
6382
6382
  CONSENSUS_VOTE_OUTPUT_SCHEMA,
6383
6383
  registerConsensusVoteTool
6384
6384
  };
6385
- //# sourceMappingURL=chunk-HTDA53XN.js.map
6385
+ //# sourceMappingURL=chunk-23ZSFBBM.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  GitHubProvider,
3
3
  ScmError
4
- } from "./chunk-JVLGCODA.js";
4
+ } from "./chunk-GJSJRJ6Y.js";
5
5
  import {
6
6
  resolveToken
7
- } from "./chunk-NJDGWKIG.js";
7
+ } from "./chunk-ZGSAYLPE.js";
8
8
  import {
9
9
  err,
10
10
  ok
11
- } from "./chunk-X2K6JQXF.js";
11
+ } from "./chunk-WGDZFYP3.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-VBFXKKSJ.js.map
44
+ //# sourceMappingURL=chunk-6FWMNTPO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getDefaultRegistry
3
- } from "./chunk-X2K6JQXF.js";
3
+ } from "./chunk-WGDZFYP3.js";
4
4
  import {
5
5
  getNexusDataDir
6
6
  } from "./chunk-DHVMSIT5.js";
@@ -124,4 +124,4 @@ export {
124
124
  loadUsageEvents,
125
125
  rollupByModel
126
126
  };
127
- //# sourceMappingURL=chunk-MSLY2T7V.js.map
127
+ //# sourceMappingURL=chunk-6ILEOLNW.js.map
@@ -8,7 +8,7 @@ import {
8
8
  getErrorMessage,
9
9
  ok,
10
10
  parseBoolEnv
11
- } from "./chunk-X2K6JQXF.js";
11
+ } from "./chunk-WGDZFYP3.js";
12
12
 
13
13
  // src/cli/research-helpers-io.ts
14
14
  import * as fs2 from "fs/promises";
@@ -146,4 +146,4 @@ export {
146
146
  loadPapersRegistry,
147
147
  savePapersRegistry
148
148
  };
149
- //# sourceMappingURL=chunk-BYIK3SEP.js.map
149
+ //# sourceMappingURL=chunk-754RDQAS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runConfigInitSync
3
- } from "./chunk-DSZPCPLU.js";
3
+ } from "./chunk-W3ZTVYZN.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-YZ5FJXMZ.js";
11
+ } from "./chunk-MJOHZFJP.js";
12
12
  import {
13
13
  BUILT_IN_EXPERTS
14
14
  } from "./chunk-ZM4O442V.js";
15
15
  import {
16
16
  probeAllClis
17
- } from "./chunk-Q3VSFJMW.js";
17
+ } from "./chunk-WP6L2PTV.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-X2K6JQXF.js";
28
+ } from "./chunk-WGDZFYP3.js";
29
29
  import {
30
30
  ensureGitignored,
31
31
  findRepoRoot
@@ -2001,4 +2001,4 @@ export {
2001
2001
  setupCommand,
2002
2002
  setupCommandAsync
2003
2003
  };
2004
- //# sourceMappingURL=chunk-5AGWDSRC.js.map
2004
+ //# sourceMappingURL=chunk-7QWGLBCE.js.map
@@ -11,7 +11,7 @@ import {
11
11
  isRateLimitLikeError,
12
12
  lookupInTreeCapability,
13
13
  ok
14
- } from "./chunk-X2K6JQXF.js";
14
+ } from "./chunk-WGDZFYP3.js";
15
15
 
16
16
  // src/config/model-parameter-support.ts
17
17
  function parseClaudeMajorMinor(bareId) {
@@ -828,4 +828,4 @@ export {
828
828
  DEFAULT_COLLECT_STREAM_MAX_CHUNKS,
829
829
  collectStream
830
830
  };
831
- //# sourceMappingURL=chunk-47SHVEUS.js.map
831
+ //# sourceMappingURL=chunk-DBHK6EDT.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRandomProvider,
3
3
  getTimeProvider
4
- } from "./chunk-X2K6JQXF.js";
4
+ } from "./chunk-WGDZFYP3.js";
5
5
 
6
6
  // src/utils/id-utils.ts
7
7
  import { randomUUID } from "crypto";
@@ -24,4 +24,4 @@ export {
24
24
  generateHyphenId,
25
25
  generateUUID
26
26
  };
27
- //# sourceMappingURL=chunk-QUPEN5ZT.js.map
27
+ //# sourceMappingURL=chunk-DXEYJAGO.js.map
@@ -2,7 +2,7 @@ import {
2
2
  TASK_CATEGORIES,
3
3
  getAdaptiveBonus,
4
4
  getOutcomeStore
5
- } from "./chunk-X2K6JQXF.js";
5
+ } from "./chunk-WGDZFYP3.js";
6
6
 
7
7
  // src/cli/doctor-deep.ts
8
8
  var CLI_NAMES = ["claude", "gemini", "codex", "opencode"];
@@ -106,4 +106,4 @@ export {
106
106
  runDeepDiagnostics,
107
107
  formatDeepDiagnostics
108
108
  };
109
- //# sourceMappingURL=chunk-JTNG2GEO.js.map
109
+ //# sourceMappingURL=chunk-EQJR6WMY.js.map
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  resolveToken
3
- } from "./chunk-NJDGWKIG.js";
3
+ } from "./chunk-ZGSAYLPE.js";
4
4
  import {
5
5
  REGISTRY_PATH,
6
6
  getProjectRoot,
7
7
  loadPapersRegistry,
8
8
  loadTechniquesRegistry,
9
9
  savePapersRegistry
10
- } from "./chunk-BYIK3SEP.js";
10
+ } from "./chunk-754RDQAS.js";
11
11
  import {
12
12
  resolveInsideRoot
13
13
  } from "./chunk-NUBSJGQZ.js";
14
14
  import {
15
15
  getToolMemory
16
- } from "./chunk-F64ZVDTS.js";
16
+ } from "./chunk-TJJW4BGX.js";
17
17
  import {
18
18
  capitalizeWords
19
19
  } from "./chunk-6T3EPABN.js";
@@ -27,7 +27,7 @@ import {
27
27
  getOutcomeStore,
28
28
  getTimeProvider,
29
29
  registerPersistentDistillerFactory
30
- } from "./chunk-X2K6JQXF.js";
30
+ } from "./chunk-WGDZFYP3.js";
31
31
  import {
32
32
  ensureLearningDir,
33
33
  getRulesFile
@@ -2686,4 +2686,4 @@ export {
2686
2686
  summarizeContextForPrompt,
2687
2687
  getContextPromptPrefix
2688
2688
  };
2689
- //# sourceMappingURL=chunk-A3ADATJQ.js.map
2689
+ //# sourceMappingURL=chunk-EVYIQ6N5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  MODEL_IDS,
4
4
  getTimeProvider,
5
5
  resolveModelIdentitySync
6
- } from "./chunk-X2K6JQXF.js";
6
+ } from "./chunk-WGDZFYP3.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-M2MCHF2N.js.map
153
+ //# sourceMappingURL=chunk-EZHYOWWO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  emitClawGuardViolation
3
- } from "./chunk-N4P5S6NC.js";
3
+ } from "./chunk-N67NSSQT.js";
4
4
  import {
5
5
  CACHE_TIMEOUTS,
6
6
  MCP_TIMEOUTS,
@@ -16,7 +16,7 @@ import {
16
16
  getTimeProvider,
17
17
  ok,
18
18
  resolveToolClassGuardMs
19
- } from "./chunk-X2K6JQXF.js";
19
+ } from "./chunk-WGDZFYP3.js";
20
20
  import {
21
21
  getNexusDataDir
22
22
  } from "./chunk-DHVMSIT5.js";
@@ -2023,4 +2023,4 @@ export {
2023
2023
  VOTING_THRESHOLDS,
2024
2024
  ConsensusMetricsSchema
2025
2025
  };
2026
- //# sourceMappingURL=chunk-HLIL4IAV.js.map
2026
+ //# sourceMappingURL=chunk-FFH35IKD.js.map
@@ -4,7 +4,7 @@ import {
4
4
  err,
5
5
  getErrorMessage,
6
6
  ok
7
- } from "./chunk-X2K6JQXF.js";
7
+ } from "./chunk-WGDZFYP3.js";
8
8
 
9
9
  // src/scm/types.ts
10
10
  var ScmError = class extends Error {
@@ -263,4 +263,4 @@ export {
263
263
  ScmError,
264
264
  GitHubProvider
265
265
  };
266
- //# sourceMappingURL=chunk-JVLGCODA.js.map
266
+ //# sourceMappingURL=chunk-GJSJRJ6Y.js.map
@@ -2,7 +2,7 @@ import {
2
2
  CACHE_TIMEOUTS,
3
3
  createLogger,
4
4
  getTimeProvider
5
- } from "./chunk-X2K6JQXF.js";
5
+ } from "./chunk-WGDZFYP3.js";
6
6
 
7
7
  // src/security/trust-types.ts
8
8
  import { z } from "zod";
@@ -560,4 +560,4 @@ export {
560
560
  resolveReputationGatingMode,
561
561
  gateWithReputation
562
562
  };
563
- //# sourceMappingURL=chunk-VUEYMYJL.js.map
563
+ //# sourceMappingURL=chunk-GMSYKYFA.js.map
@@ -5,7 +5,7 @@ import {
5
5
  getErrorMessage,
6
6
  getTimeProvider,
7
7
  ok
8
- } from "./chunk-X2K6JQXF.js";
8
+ } from "./chunk-WGDZFYP3.js";
9
9
 
10
10
  // src/cli-adapters/circuit-breaker-types.ts
11
11
  var CircuitErrorCode = {
@@ -375,4 +375,4 @@ export {
375
375
  mapCliErrorToCategory,
376
376
  mapModelErrorToCategory
377
377
  };
378
- //# sourceMappingURL=chunk-KG7TUZCP.js.map
378
+ //# sourceMappingURL=chunk-HJZ3RES7.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  resolveCliSlot
3
- } from "./chunk-M2MCHF2N.js";
3
+ } from "./chunk-EZHYOWWO.js";
4
4
  import {
5
5
  createLogger,
6
6
  getTimeProvider,
7
7
  isRateLimitText
8
- } from "./chunk-X2K6JQXF.js";
8
+ } from "./chunk-WGDZFYP3.js";
9
9
 
10
10
  // src/pipeline/expert-bridge.ts
11
11
  function resolveCliFromModelString(model) {
@@ -21,7 +21,7 @@ async function getMcpConfigPath() {
21
21
  if (cachedMcpConfigPath !== null) return cachedMcpConfigPath;
22
22
  mcpConfigInitPromise ??= (async () => {
23
23
  try {
24
- const { generateMcpConfig } = await import("./child-mcp-config-YBBGGRIQ.js");
24
+ const { generateMcpConfig } = await import("./child-mcp-config-VXXBVJY3.js");
25
25
  const config = await generateMcpConfig();
26
26
  cachedMcpConfigPath = config.configPath;
27
27
  cachedMcpConfigCleanup = config.cleanup;
@@ -93,8 +93,8 @@ var routerInitPromise = null;
93
93
  async function getRouter() {
94
94
  if (cachedRouter !== null) return cachedRouter;
95
95
  routerInitPromise ??= (async () => {
96
- const { createAllAdapters } = await import("./factory-YZ7GKC66.js");
97
- const { createCompositeRouter } = await import("./composite-router-5Q4PGWS6.js");
96
+ const { createAllAdapters } = await import("./factory-TWK2UKNH.js");
97
+ const { createCompositeRouter } = await import("./composite-router-4PYFIB2G.js");
98
98
  const adapters = createAllAdapters();
99
99
  if (adapters.size === 0) {
100
100
  routerInitPromise = null;
@@ -102,7 +102,7 @@ async function getRouter() {
102
102
  }
103
103
  cachedRouter = adaptCompositeRouter(createCompositeRouter(adapters));
104
104
  try {
105
- const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-LRXSQ43Q.js");
105
+ const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-B4RH2ELX.js");
106
106
  cachedCircuitBreaker = createCliCircuitBreakerIntegration([...adapters.values()]);
107
107
  } catch (error) {
108
108
  const msg = error instanceof Error ? error.message : String(error);
@@ -213,4 +213,4 @@ export {
213
213
  tokenSplitFromUsage,
214
214
  executeExpert
215
215
  };
216
- //# sourceMappingURL=chunk-WL74YS6H.js.map
216
+ //# sourceMappingURL=chunk-JB37LBSG.js.map
@@ -4,14 +4,14 @@ import {
4
4
  planOptionalParams,
5
5
  requireApiKey,
6
6
  validateApiKeyPresence
7
- } from "./chunk-47SHVEUS.js";
7
+ } from "./chunk-DBHK6EDT.js";
8
8
  import {
9
9
  ModelCapability,
10
10
  err,
11
11
  getCliModelName,
12
12
  getTokenEstimator,
13
13
  ok
14
- } from "./chunk-X2K6JQXF.js";
14
+ } from "./chunk-WGDZFYP3.js";
15
15
 
16
16
  // src/adapters/openai-types.ts
17
17
  var OPENAI_MODELS = {
@@ -609,4 +609,4 @@ export {
609
609
  OpenAIAdapter,
610
610
  createOpenAIAdapter
611
611
  };
612
- //# sourceMappingURL=chunk-NNBOROVK.js.map
612
+ //# sourceMappingURL=chunk-JIXCOX7D.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  OpenAIAdapter
3
- } from "./chunk-NNBOROVK.js";
3
+ } from "./chunk-JIXCOX7D.js";
4
4
  import {
5
5
  computeCostDetail,
6
6
  recordUsageEvent
7
- } from "./chunk-MSLY2T7V.js";
7
+ } from "./chunk-6ILEOLNW.js";
8
8
  import {
9
9
  ConfigError,
10
10
  createLogger,
@@ -12,7 +12,7 @@ import {
12
12
  getErrorMessage,
13
13
  getTimeProvider,
14
14
  ok
15
- } from "./chunk-X2K6JQXF.js";
15
+ } from "./chunk-WGDZFYP3.js";
16
16
 
17
17
  // src/config/opencode-bridge.ts
18
18
  import { readFileSync } from "fs";
@@ -194,4 +194,4 @@ export {
194
194
  discoverModels,
195
195
  buildOpenAICompatAdapters
196
196
  };
197
- //# sourceMappingURL=chunk-KJ6JJ24E.js.map
197
+ //# sourceMappingURL=chunk-JYR6SBUB.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-HLIL4IAV.js";
10
+ } from "./chunk-FFH35IKD.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -19,7 +19,7 @@ import {
19
19
  getPipelineEventBus,
20
20
  getTimeProvider,
21
21
  isDeclaredNeverDeprecate
22
- } from "./chunk-X2K6JQXF.js";
22
+ } from "./chunk-WGDZFYP3.js";
23
23
  import {
24
24
  getNexusDataDir,
25
25
  nexusDataPath
@@ -2132,4 +2132,4 @@ export {
2132
2132
  runImprovementReview,
2133
2133
  registerImprovementReviewTool
2134
2134
  };
2135
- //# sourceMappingURL=chunk-KFURXCQX.js.map
2135
+ //# sourceMappingURL=chunk-MJLN336B.js.map
@@ -7,15 +7,16 @@ import {
7
7
  import {
8
8
  createAllAdapters,
9
9
  probeCli
10
- } from "./chunk-Q3VSFJMW.js";
10
+ } from "./chunk-WP6L2PTV.js";
11
11
  import {
12
12
  DEFAULTS
13
- } from "./chunk-SVEMQWSS.js";
13
+ } from "./chunk-RDYGX6MQ.js";
14
14
  import {
15
15
  CliNameSchema,
16
16
  DEFAULT_CAPABILITIES,
17
17
  DEFAULT_COMPOSITE_CONFIG,
18
18
  DEFAULT_ZERO_ROUTER_CONFIG,
19
+ TaskCategorySchema,
19
20
  colors,
20
21
  createLogger,
21
22
  err,
@@ -26,7 +27,7 @@ import {
26
27
  ok,
27
28
  symbols,
28
29
  writeLine
29
- } from "./chunk-X2K6JQXF.js";
30
+ } from "./chunk-WGDZFYP3.js";
30
31
  import {
31
32
  getLearningDir,
32
33
  getOutcomesFile,
@@ -42,7 +43,7 @@ import {
42
43
  } from "./chunk-DHVMSIT5.js";
43
44
 
44
45
  // src/version.ts
45
- var VERSION = true ? "2.161.1" : "dev";
46
+ var VERSION = true ? "2.162.1" : "dev";
46
47
 
47
48
  // src/config/schemas-core.ts
48
49
  import { z } from "zod";
@@ -366,7 +367,16 @@ var BudgetConstraintsSchema = z8.object({
366
367
  /** Maximum cost per request in USD */
367
368
  maxCostUsd: z8.number().positive().optional(),
368
369
  /** Maximum latency per request in milliseconds */
369
- maxLatencyMs: z8.number().positive().optional()
370
+ maxLatencyMs: z8.number().positive().optional(),
371
+ /**
372
+ * Per-task-class cost ceilings in USD, keyed by `TaskCategory`
373
+ * (#4196, #4214). Keys are validated against the enum so a typo'd
374
+ * class fails config parsing instead of silently configuring nothing.
375
+ * Absent → no ceiling (OFF/unlimited). Enforced only under
376
+ * `NEXUS_BILLING_MODE=api`; a candidate with missing registry pricing
377
+ * fails a configured ceiling (fail-closed).
378
+ */
379
+ taskClassMaxCostUsd: z8.partialRecord(TaskCategorySchema, z8.number().positive()).optional()
370
380
  }).optional();
371
381
  var TopsisCriterionSchema = z8.object({
372
382
  /** Criterion name (e.g., 'quality', 'cost', 'latency') */
@@ -851,11 +861,14 @@ function resolveStageFlags(stagesConfig) {
851
861
  }
852
862
  return result;
853
863
  }
864
+ function resolveBillingModeFromEnv() {
865
+ return process.env["NEXUS_BILLING_MODE"] === "api" ? "api" : DEFAULT_COMPOSITE_CONFIG.billingMode;
866
+ }
854
867
  function buildBaseConfig(config, stagesConfig) {
855
868
  const stageFlags = resolveStageFlags(stagesConfig);
856
869
  return {
857
870
  ...stageFlags,
858
- billingMode: DEFAULT_COMPOSITE_CONFIG.billingMode,
871
+ billingMode: resolveBillingModeFromEnv(),
859
872
  latencyScoreWeight: config.latencyScoreWeight,
860
873
  budgetConstraints: config.budget,
861
874
  linucbAlpha: config.linucb?.alpha ?? DEFAULT_COMPOSITE_CONFIG.linucbAlpha,
@@ -2139,7 +2152,7 @@ async function runDoctorFix(result) {
2139
2152
  writeLine2("\u2500".repeat(40));
2140
2153
  let fixCount = 0;
2141
2154
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2142
- const { runSetup } = await import("./setup-command-LPNACGEN.js");
2155
+ const { runSetup } = await import("./setup-command-6QSWQMBJ.js");
2143
2156
  const setupResult = runSetup({
2144
2157
  skipMcp: true,
2145
2158
  skipRules: true,
@@ -2153,7 +2166,7 @@ async function runDoctorFix(result) {
2153
2166
  }
2154
2167
  }
2155
2168
  if (!result.configFile.found) {
2156
- const { runConfigInitSync } = await import("./setup-config-I7EAJHBG.js");
2169
+ const { runConfigInitSync } = await import("./setup-config-4TGGV7AQ.js");
2157
2170
  const configResult = runConfigInitSync(process.cwd(), false, false);
2158
2171
  if (configResult.success && configResult.created) {
2159
2172
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -2252,4 +2265,4 @@ export {
2252
2265
  startStdioServer,
2253
2266
  closeServer
2254
2267
  };
2255
- //# sourceMappingURL=chunk-YZ5FJXMZ.js.map
2268
+ //# sourceMappingURL=chunk-MJOHZFJP.js.map