nexus-agents 8.74.2 → 8.75.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 (129) hide show
  1. package/dist/{ast-rule-runner-K35WYUOD.js → ast-rule-runner-S6BMBE5T.js} +3 -3
  2. package/dist/{child-mcp-config-B2CWZ2ZK.js → child-mcp-config-ZZ66QGIU.js} +2 -2
  3. package/dist/{chunk-43RJNTUZ.js → chunk-2BTJ5FNP.js} +2 -2
  4. package/dist/{chunk-PWEGOADT.js → chunk-2WO24CL5.js} +22 -14
  5. package/dist/chunk-2WO24CL5.js.map +1 -0
  6. package/dist/{chunk-2KXRL4OW.js → chunk-3CTDUBNC.js} +2 -2
  7. package/dist/{chunk-TUTS6S2G.js → chunk-4D3LWDEK.js} +8 -8
  8. package/dist/{chunk-ZKEULHX6.js → chunk-4I66XLEU.js} +7 -7
  9. package/dist/{chunk-4PWDDMLH.js → chunk-4Q3EURVU.js} +51 -10
  10. package/dist/chunk-4Q3EURVU.js.map +1 -0
  11. package/dist/{chunk-5QE6DJMH.js → chunk-5AR3IEKE.js} +5 -5
  12. package/dist/{chunk-GENL3TXA.js → chunk-5DQDMHSW.js} +2 -2
  13. package/dist/{chunk-Z2XB5IKO.js → chunk-74UUAGBU.js} +2 -2
  14. package/dist/{chunk-QW5FSTLJ.js → chunk-7GOBJ6MR.js} +2 -2
  15. package/dist/{chunk-ADHIHFBA.js → chunk-A3Q4QZ6G.js} +2 -2
  16. package/dist/{chunk-6Y24JDBR.js → chunk-A3TT5LFA.js} +49 -36
  17. package/dist/chunk-A3TT5LFA.js.map +1 -0
  18. package/dist/{chunk-D5ST2Y4W.js → chunk-BM272XDR.js} +3 -3
  19. package/dist/{chunk-MYGTMAHW.js → chunk-DTT5TSJV.js} +3 -3
  20. package/dist/{chunk-GW7SZ555.js → chunk-DYCSNMYD.js} +2 -2
  21. package/dist/{chunk-CYZ3DUQV.js → chunk-GA5VPMGG.js} +2 -2
  22. package/dist/{chunk-NC7X6WQL.js → chunk-GEZQW3SK.js} +2 -2
  23. package/dist/{chunk-HO2UPJ7T.js → chunk-HO4P3ONC.js} +36 -11
  24. package/dist/{chunk-HO2UPJ7T.js.map → chunk-HO4P3ONC.js.map} +1 -1
  25. package/dist/{chunk-DSTEEVDR.js → chunk-IZGDLLDP.js} +2 -2
  26. package/dist/{chunk-5E33WGDR.js → chunk-J6VKBPJQ.js} +2 -2
  27. package/dist/{chunk-22VQMTR6.js → chunk-KUCHJFK3.js} +2 -2
  28. package/dist/{chunk-47624RRN.js → chunk-LMCC5TTU.js} +2 -2
  29. package/dist/{chunk-6DPQOIE7.js → chunk-LY53XG4N.js} +2 -2
  30. package/dist/{chunk-NLRIEHAY.js → chunk-M2WCQBXR.js} +4 -4
  31. package/dist/{chunk-RGEJZIOJ.js → chunk-NDFVPB3Q.js} +2 -2
  32. package/dist/{chunk-M6DJ6AE3.js → chunk-OB2BQ2ES.js} +9 -9
  33. package/dist/{chunk-I2KBD37Y.js → chunk-SPQILQFG.js} +3 -3
  34. package/dist/{chunk-ZDVNHXRV.js → chunk-UVLHFNVM.js} +2 -2
  35. package/dist/{chunk-IQTHG5BO.js → chunk-W6YF4G2Y.js} +2 -2
  36. package/dist/{chunk-TL5NV5JH.js → chunk-WBPQYYTY.js} +4 -4
  37. package/dist/{chunk-B227FYGQ.js → chunk-WZPF7SI7.js} +4 -4
  38. package/dist/{chunk-ST7RKS3P.js → chunk-X4BBJZDE.js} +2 -2
  39. package/dist/{chunk-I5DGPV2X.js → chunk-Y4WMOZNI.js} +3 -3
  40. package/dist/{chunk-3PI3INR3.js → chunk-ZVINGGSG.js} +5 -5
  41. package/dist/{cli-circuit-breaker-Q73YH6FS.js → cli-circuit-breaker-YXZUZW2J.js} +3 -3
  42. package/dist/cli.js +235 -45
  43. package/dist/cli.js.map +1 -1
  44. package/dist/{composite-router-XKE225G5.js → composite-router-JLI4TRKG.js} +2 -2
  45. package/dist/{consensus-vote-YCETKP4M.js → consensus-vote-NU7M7ESH.js} +16 -16
  46. package/dist/{context-retriever-5BL34V6Y.js → context-retriever-6QUKMGAE.js} +8 -8
  47. package/dist/{doctor-deep-UYXLA4HG.js → doctor-deep-2WDIAMWF.js} +3 -3
  48. package/dist/{doctor-live-7I6STRL7.js → doctor-live-RAZLLAGJ.js} +10 -10
  49. package/dist/{expert-bridge-PLY7MNUK.js → expert-bridge-VJNZ6HBX.js} +4 -4
  50. package/dist/{factory-5XIEO5EA.js → factory-2LWHAH27.js} +5 -5
  51. package/dist/{factory-ZCMLOSDY.js → factory-PTY5BXS5.js} +9 -9
  52. package/dist/{improvement-review-CF5SWXUB.js → improvement-review-NHUWYT4N.js} +5 -5
  53. package/dist/index.js +31 -31
  54. package/dist/{init-opencode-UTF4K2LR.js → init-opencode-ADIEXXXN.js} +6 -6
  55. package/dist/issue-triage-55YTFO6G.js +16 -0
  56. package/dist/{pr-reviewer-helpers-RMOEXYCO.js → pr-reviewer-helpers-3PNRHJFT.js} +4 -4
  57. package/dist/{registry-command-XFM4XIGJ.js → registry-command-KI2RZGFI.js} +2 -2
  58. package/dist/{repo-security-plan-YWANNRJE.js → repo-security-plan-M4XWUPTW.js} +3 -3
  59. package/dist/{research-helpers-synthesize-QFKDDHRE.js → research-helpers-synthesize-CB2IUVZ3.js} +4 -4
  60. package/dist/{routing-memory-T22PQ5FF.js → routing-memory-RO2J5NBQ.js} +2 -2
  61. package/dist/{session-memory-ZNIJGF7Z.js → session-memory-VXMVCDJU.js} +3 -3
  62. package/dist/{setup-config-XC5KSYGO.js → setup-config-4EHZ5LHZ.js} +3 -3
  63. package/dist/{setup-custom-api-5WL5D24S.js → setup-custom-api-YCHOWLRA.js} +4 -4
  64. package/dist/setup-data-dir-FMUOFRN6.js +31 -0
  65. package/dist/{tool-memory-JNHE2VP2.js → tool-memory-EXKJZ34V.js} +5 -5
  66. package/dist/{unified-registry-5IIFYGBI.js → unified-registry-PPLQ26Q6.js} +10 -10
  67. package/dist/{weather-report-3AZHFDM3.js → weather-report-PJC3GJLD.js} +2 -2
  68. package/package.json +1 -1
  69. package/dist/chunk-4PWDDMLH.js.map +0 -1
  70. package/dist/chunk-6Y24JDBR.js.map +0 -1
  71. package/dist/chunk-PWEGOADT.js.map +0 -1
  72. package/dist/issue-triage-KCRQNDYX.js +0 -16
  73. package/dist/setup-data-dir-6PEJ3YF7.js +0 -31
  74. /package/dist/{ast-rule-runner-K35WYUOD.js.map → ast-rule-runner-S6BMBE5T.js.map} +0 -0
  75. /package/dist/{child-mcp-config-B2CWZ2ZK.js.map → child-mcp-config-ZZ66QGIU.js.map} +0 -0
  76. /package/dist/{chunk-43RJNTUZ.js.map → chunk-2BTJ5FNP.js.map} +0 -0
  77. /package/dist/{chunk-2KXRL4OW.js.map → chunk-3CTDUBNC.js.map} +0 -0
  78. /package/dist/{chunk-TUTS6S2G.js.map → chunk-4D3LWDEK.js.map} +0 -0
  79. /package/dist/{chunk-ZKEULHX6.js.map → chunk-4I66XLEU.js.map} +0 -0
  80. /package/dist/{chunk-5QE6DJMH.js.map → chunk-5AR3IEKE.js.map} +0 -0
  81. /package/dist/{chunk-GENL3TXA.js.map → chunk-5DQDMHSW.js.map} +0 -0
  82. /package/dist/{chunk-Z2XB5IKO.js.map → chunk-74UUAGBU.js.map} +0 -0
  83. /package/dist/{chunk-QW5FSTLJ.js.map → chunk-7GOBJ6MR.js.map} +0 -0
  84. /package/dist/{chunk-ADHIHFBA.js.map → chunk-A3Q4QZ6G.js.map} +0 -0
  85. /package/dist/{chunk-D5ST2Y4W.js.map → chunk-BM272XDR.js.map} +0 -0
  86. /package/dist/{chunk-MYGTMAHW.js.map → chunk-DTT5TSJV.js.map} +0 -0
  87. /package/dist/{chunk-GW7SZ555.js.map → chunk-DYCSNMYD.js.map} +0 -0
  88. /package/dist/{chunk-CYZ3DUQV.js.map → chunk-GA5VPMGG.js.map} +0 -0
  89. /package/dist/{chunk-NC7X6WQL.js.map → chunk-GEZQW3SK.js.map} +0 -0
  90. /package/dist/{chunk-DSTEEVDR.js.map → chunk-IZGDLLDP.js.map} +0 -0
  91. /package/dist/{chunk-5E33WGDR.js.map → chunk-J6VKBPJQ.js.map} +0 -0
  92. /package/dist/{chunk-22VQMTR6.js.map → chunk-KUCHJFK3.js.map} +0 -0
  93. /package/dist/{chunk-47624RRN.js.map → chunk-LMCC5TTU.js.map} +0 -0
  94. /package/dist/{chunk-6DPQOIE7.js.map → chunk-LY53XG4N.js.map} +0 -0
  95. /package/dist/{chunk-NLRIEHAY.js.map → chunk-M2WCQBXR.js.map} +0 -0
  96. /package/dist/{chunk-RGEJZIOJ.js.map → chunk-NDFVPB3Q.js.map} +0 -0
  97. /package/dist/{chunk-M6DJ6AE3.js.map → chunk-OB2BQ2ES.js.map} +0 -0
  98. /package/dist/{chunk-I2KBD37Y.js.map → chunk-SPQILQFG.js.map} +0 -0
  99. /package/dist/{chunk-ZDVNHXRV.js.map → chunk-UVLHFNVM.js.map} +0 -0
  100. /package/dist/{chunk-IQTHG5BO.js.map → chunk-W6YF4G2Y.js.map} +0 -0
  101. /package/dist/{chunk-TL5NV5JH.js.map → chunk-WBPQYYTY.js.map} +0 -0
  102. /package/dist/{chunk-B227FYGQ.js.map → chunk-WZPF7SI7.js.map} +0 -0
  103. /package/dist/{chunk-ST7RKS3P.js.map → chunk-X4BBJZDE.js.map} +0 -0
  104. /package/dist/{chunk-I5DGPV2X.js.map → chunk-Y4WMOZNI.js.map} +0 -0
  105. /package/dist/{chunk-3PI3INR3.js.map → chunk-ZVINGGSG.js.map} +0 -0
  106. /package/dist/{cli-circuit-breaker-Q73YH6FS.js.map → cli-circuit-breaker-YXZUZW2J.js.map} +0 -0
  107. /package/dist/{composite-router-XKE225G5.js.map → composite-router-JLI4TRKG.js.map} +0 -0
  108. /package/dist/{consensus-vote-YCETKP4M.js.map → consensus-vote-NU7M7ESH.js.map} +0 -0
  109. /package/dist/{context-retriever-5BL34V6Y.js.map → context-retriever-6QUKMGAE.js.map} +0 -0
  110. /package/dist/{doctor-deep-UYXLA4HG.js.map → doctor-deep-2WDIAMWF.js.map} +0 -0
  111. /package/dist/{doctor-live-7I6STRL7.js.map → doctor-live-RAZLLAGJ.js.map} +0 -0
  112. /package/dist/{expert-bridge-PLY7MNUK.js.map → expert-bridge-VJNZ6HBX.js.map} +0 -0
  113. /package/dist/{factory-5XIEO5EA.js.map → factory-2LWHAH27.js.map} +0 -0
  114. /package/dist/{factory-ZCMLOSDY.js.map → factory-PTY5BXS5.js.map} +0 -0
  115. /package/dist/{improvement-review-CF5SWXUB.js.map → improvement-review-NHUWYT4N.js.map} +0 -0
  116. /package/dist/{init-opencode-UTF4K2LR.js.map → init-opencode-ADIEXXXN.js.map} +0 -0
  117. /package/dist/{issue-triage-KCRQNDYX.js.map → issue-triage-55YTFO6G.js.map} +0 -0
  118. /package/dist/{pr-reviewer-helpers-RMOEXYCO.js.map → pr-reviewer-helpers-3PNRHJFT.js.map} +0 -0
  119. /package/dist/{registry-command-XFM4XIGJ.js.map → registry-command-KI2RZGFI.js.map} +0 -0
  120. /package/dist/{repo-security-plan-YWANNRJE.js.map → repo-security-plan-M4XWUPTW.js.map} +0 -0
  121. /package/dist/{research-helpers-synthesize-QFKDDHRE.js.map → research-helpers-synthesize-CB2IUVZ3.js.map} +0 -0
  122. /package/dist/{routing-memory-T22PQ5FF.js.map → routing-memory-RO2J5NBQ.js.map} +0 -0
  123. /package/dist/{session-memory-ZNIJGF7Z.js.map → session-memory-VXMVCDJU.js.map} +0 -0
  124. /package/dist/{setup-config-XC5KSYGO.js.map → setup-config-4EHZ5LHZ.js.map} +0 -0
  125. /package/dist/{setup-custom-api-5WL5D24S.js.map → setup-custom-api-YCHOWLRA.js.map} +0 -0
  126. /package/dist/{setup-data-dir-6PEJ3YF7.js.map → setup-data-dir-FMUOFRN6.js.map} +0 -0
  127. /package/dist/{tool-memory-JNHE2VP2.js.map → tool-memory-EXKJZ34V.js.map} +0 -0
  128. /package/dist/{unified-registry-5IIFYGBI.js.map → unified-registry-PPLQ26Q6.js.map} +0 -0
  129. /package/dist/{weather-report-3AZHFDM3.js.map → weather-report-PJC3GJLD.js.map} +0 -0
@@ -2627,7 +2627,7 @@ function setDefaultRegistry(registry) {
2627
2627
  }
2628
2628
  async function reloadDefaultRegistry() {
2629
2629
  globalRegistry = buildDefaultRegistry();
2630
- const { resetGlobalRegistry } = await import("./unified-registry-5IIFYGBI.js");
2630
+ const { resetGlobalRegistry } = await import("./unified-registry-PPLQ26Q6.js");
2631
2631
  resetGlobalRegistry();
2632
2632
  return globalRegistry;
2633
2633
  }
@@ -5975,6 +5975,8 @@ var PROVIDER_ENV_KEYS = {
5975
5975
  var CUSTOM_API_BASE_URL_ENV = "NEXUS_CUSTOM_API_BASE_URL";
5976
5976
  var CUSTOM_API_ALLOW_PRIVATE_ENV = "NEXUS_CUSTOM_API_ALLOW_PRIVATE";
5977
5977
  var GATEWAY_COST_ENV = "NEXUS_GATEWAY_COST";
5978
+ var OPENAI_COMPAT_ENDPOINT_ENV = "NEXUS_OPENAI_COMPAT_ENDPOINT";
5979
+ var DEFAULT_OPENAI_COMPAT_ENDPOINT = "openai-compat";
5978
5980
 
5979
5981
  // src/adapters/sdk/gateway-cost.ts
5980
5982
  var PricedSchema = z8.object({
@@ -6100,6 +6102,23 @@ function warnIfGatewayCostUndeclared(arm, logger14, env = process.env) {
6100
6102
  );
6101
6103
  }
6102
6104
 
6105
+ // src/adapters/sdk/gateway-catalog.ts
6106
+ var catalogs = /* @__PURE__ */ new Map();
6107
+ function setGatewayCatalog(arm, modelIds) {
6108
+ if (modelIds.length === 0) {
6109
+ throw new Error(
6110
+ `Gateway catalogue for ${arm} is empty; an arm with no model is not registrable`
6111
+ );
6112
+ }
6113
+ catalogs.set(arm, [...modelIds]);
6114
+ }
6115
+ function getGatewayCatalog(arm) {
6116
+ return catalogs.get(arm);
6117
+ }
6118
+ function clearGatewayCatalog(arm) {
6119
+ catalogs.delete(arm);
6120
+ }
6121
+
6103
6122
  // src/cli-adapters/budget-arm-cost.ts
6104
6123
  function estimateRegistryCostUsd(slot, inputTokens, outputTokens) {
6105
6124
  const pricing = getModelPricing(getDefaultModelForCli(slot));
@@ -6109,26 +6128,43 @@ function estimateRegistryCostUsd(slot, inputTokens, outputTokens) {
6109
6128
  { inputPer1M: pricing.inputPer1M, outputPer1M: pricing.outputPer1M }
6110
6129
  ).costUsd;
6111
6130
  }
6112
- function estimateArmCostUsd(arm, inputTokens, outputTokens, env = process.env) {
6131
+ function gatewayPricingModel(arm, modelId) {
6132
+ return modelId ?? getGatewayCatalog(arm)?.[0];
6133
+ }
6134
+ function estimateGatewayModelCostUsd(modelId, inputTokens, outputTokens) {
6135
+ const pricing = getDefaultRegistry().getEntry(modelId).pricing;
6136
+ if (pricing === void 0) return void 0;
6137
+ return computeTokenCost(
6138
+ { input: inputTokens, output: outputTokens },
6139
+ { inputPer1M: pricing.inputPer1M, outputPer1M: pricing.outputPer1M }
6140
+ ).costUsd;
6141
+ }
6142
+ function estimateArmCostUsd(arm, inputTokens, outputTokens, env = process.env, modelId) {
6113
6143
  if (!isGatewayArmId(arm)) {
6114
- return estimateRegistryCostUsd(routingArmDisplaySlot(arm), inputTokens, outputTokens);
6144
+ return estimateRegistryCostUsd(observedArmDisplaySlot(arm), inputTokens, outputTokens);
6115
6145
  }
6116
6146
  const declaration = resolveGatewayCostDeclaration(arm, env);
6117
6147
  if (declaration === void 0) return void 0;
6118
6148
  const rates = gatewayCostRates(declaration);
6119
- if (rates === "registry") {
6120
- return estimateRegistryCostUsd(routingArmDisplaySlot(arm), inputTokens, outputTokens);
6149
+ if (rates !== "registry") {
6150
+ return computeTokenCost({ input: inputTokens, output: outputTokens }, rates).costUsd;
6151
+ }
6152
+ const model = gatewayPricingModel(arm, modelId);
6153
+ if (model === void 0) {
6154
+ return estimateRegistryCostUsd(observedArmDisplaySlot(arm), inputTokens, outputTokens);
6121
6155
  }
6122
- return computeTokenCost({ input: inputTokens, output: outputTokens }, rates).costUsd;
6156
+ return estimateGatewayModelCostUsd(model, inputTokens, outputTokens);
6123
6157
  }
6124
6158
  function estimateBudgetArmCostUsd(arm, inputTokens, outputTokens, env = process.env) {
6125
6159
  if (isGatewayArmId(arm)) return estimateArmCostUsd(arm, inputTokens, outputTokens, env);
6126
6160
  return estimateCost(routingArmDisplaySlot(arm), inputTokens, outputTokens);
6127
6161
  }
6128
- function describeUnpricedArm(arm, env = process.env) {
6162
+ function describeUnpricedArm(arm, env = process.env, modelId) {
6129
6163
  const gap = gatewayCostGap(arm, env);
6130
6164
  if (gap !== void 0) return `gateway cost ${gap}`;
6131
- return `gateway cost priced at registry rates, but ${routingArmDisplaySlot(arm)} has no registry pricing`;
6165
+ const model = isGatewayArmId(arm) ? gatewayPricingModel(arm, modelId) : void 0;
6166
+ const subject = model ?? observedArmDisplaySlot(arm);
6167
+ return `gateway cost priced at registry rates, but ${subject} has no registry pricing`;
6132
6168
  }
6133
6169
 
6134
6170
  // src/cli-adapters/budget-router.ts
@@ -15649,7 +15685,7 @@ var CompositeRouter = class _CompositeRouter {
15649
15685
  */
15650
15686
  async consultUnifiedContext(task) {
15651
15687
  try {
15652
- const { getContextForTask, inferTaskCategory } = await import("./context-retriever-5BL34V6Y.js");
15688
+ const { getContextForTask, inferTaskCategory } = await import("./context-retriever-6QUKMGAE.js");
15653
15689
  const ctx = await getContextForTask({
15654
15690
  task: task.content,
15655
15691
  category: inferTaskCategory(task.content),
@@ -17130,8 +17166,11 @@ export {
17130
17166
  CUSTOM_API_BASE_URL_ENV,
17131
17167
  CUSTOM_API_ALLOW_PRIVATE_ENV,
17132
17168
  GATEWAY_COST_ENV,
17169
+ OPENAI_COMPAT_ENDPOINT_ENV,
17170
+ DEFAULT_OPENAI_COMPAT_ENDPOINT,
17133
17171
  parseGatewayCostEnv,
17134
17172
  gatewayCostStatus,
17173
+ resolveGatewayCostDeclaration,
17135
17174
  describeGatewayCostDeclaration,
17136
17175
  warnIfGatewayCostUndeclared,
17137
17176
  ModelRegistry,
@@ -17191,6 +17230,8 @@ export {
17191
17230
  toExpertTaskAnalysisResult,
17192
17231
  getRandomProvider,
17193
17232
  NEUTRAL_BANDIT_FEATURE,
17233
+ setGatewayCatalog,
17234
+ clearGatewayCatalog,
17194
17235
  DEFAULT_TOPSIS_CRITERIA,
17195
17236
  DEFAULT_TOPSIS_CONFIG,
17196
17237
  DEFAULT_MODEL_PROFILES,
@@ -17264,4 +17305,4 @@ export {
17264
17305
  AgentCapability,
17265
17306
  OrchestratorError
17266
17307
  };
17267
- //# sourceMappingURL=chunk-4PWDDMLH.js.map
17308
+ //# sourceMappingURL=chunk-4Q3EURVU.js.map