nexus-agents 2.155.1 → 2.156.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 (121) hide show
  1. package/dist/{child-mcp-config-5TDFQBX4.js → child-mcp-config-3YUKLM5F.js} +2 -2
  2. package/dist/{chunk-KBHRWQBL.js → chunk-3NT6NAXD.js} +2 -2
  3. package/dist/{chunk-J2P7FOEZ.js → chunk-3S2OPUGU.js} +2 -2
  4. package/dist/{chunk-QJC2XU2B.js → chunk-47WFM6QH.js} +4 -4
  5. package/dist/{chunk-52UVXXYA.js → chunk-5FH7QZIT.js} +2 -2
  6. package/dist/{chunk-SRT2VLNP.js → chunk-5ULXLPVP.js} +2 -2
  7. package/dist/{chunk-7TFBRAV7.js → chunk-6ZKQRTTQ.js} +4 -4
  8. package/dist/{chunk-D4N7KBBT.js → chunk-7YOJXOFN.js} +4 -4
  9. package/dist/{chunk-XNW3W2OU.js → chunk-AEPCCXMK.js} +3 -3
  10. package/dist/{chunk-6LFKY2NE.js → chunk-BEJWHTRX.js} +8 -8
  11. package/dist/{chunk-F5R53HDK.js → chunk-BGAK4N74.js} +7 -7
  12. package/dist/{chunk-XDYOJQKC.js → chunk-BM26VPV5.js} +2 -2
  13. package/dist/{chunk-CBGVR52X.js → chunk-EJ3MAR5M.js} +3 -3
  14. package/dist/{chunk-MRYEJZQI.js → chunk-GAZMJBCK.js} +34 -34
  15. package/dist/{chunk-7ZBXMLTJ.js → chunk-GYWYCCJC.js} +2 -2
  16. package/dist/{chunk-V7DS6V3U.js → chunk-HUN7CEAU.js} +3 -3
  17. package/dist/{chunk-IZVRLJIX.js → chunk-HWG437YQ.js} +2 -2
  18. package/dist/{chunk-6FIWYWPM.js → chunk-IDOAR55M.js} +7 -7
  19. package/dist/{chunk-22MKYE4Y.js → chunk-IILTUCFB.js} +2 -2
  20. package/dist/{chunk-F42V2BKN.js → chunk-JZ4PCEEN.js} +2 -2
  21. package/dist/{chunk-TWXCQOZN.js → chunk-LZ2LHYDO.js} +3 -3
  22. package/dist/{chunk-PRMXFOWF.js → chunk-M532SJS6.js} +7 -7
  23. package/dist/{chunk-ZFUFS44V.js → chunk-MYSS22Q2.js} +2 -2
  24. package/dist/{chunk-O25A3VXX.js → chunk-NELFMLLR.js} +2 -2
  25. package/dist/{chunk-ZLNGFULQ.js → chunk-O7VPOR5A.js} +5 -5
  26. package/dist/{chunk-C63M3XXN.js → chunk-ODE5GDJ7.js} +5 -5
  27. package/dist/{chunk-ZVGM3MPI.js → chunk-PZDDA6IW.js} +3 -3
  28. package/dist/{chunk-N3Y6J2FL.js → chunk-RCSDD2QY.js} +132 -3
  29. package/dist/chunk-RCSDD2QY.js.map +1 -0
  30. package/dist/{chunk-VHRF6VOS.js → chunk-SCJ2EB6Z.js} +2 -2
  31. package/dist/{chunk-MY22I2FD.js → chunk-TKCXD36G.js} +4 -4
  32. package/dist/{chunk-DJTWGM7I.js → chunk-TNRTP5FW.js} +2 -2
  33. package/dist/{chunk-VC7EUQH4.js → chunk-UAGYCCHY.js} +2 -2
  34. package/dist/{chunk-DZCMTSNS.js → chunk-XGUZ2OQK.js} +3 -3
  35. package/dist/{chunk-BMHQATIA.js → chunk-YGYJUPVX.js} +2 -2
  36. package/dist/{chunk-QERDNK6B.js → chunk-YZQXCCEA.js} +5 -5
  37. package/dist/{cli-circuit-breaker-G7NRAWQE.js → cli-circuit-breaker-Q43YSBCB.js} +4 -4
  38. package/dist/cli.js +41 -41
  39. package/dist/{composite-router-7S2MLIHW.js → composite-router-5UHJFOB3.js} +2 -2
  40. package/dist/{consensus-vote-CQBTPJRD.js → consensus-vote-6REGRDS6.js} +15 -15
  41. package/dist/{context-retriever-FTLRG2N6.js → context-retriever-33SGXV33.js} +8 -8
  42. package/dist/{doctor-deep-VU5VELP2.js → doctor-deep-RAN4HGOH.js} +3 -3
  43. package/dist/{expert-bridge-MJJDMA6Z.js → expert-bridge-RJP57L75.js} +4 -4
  44. package/dist/{factory-2XKATTCM.js → factory-C5PY7R6O.js} +8 -8
  45. package/dist/{factory-RS462DMM.js → factory-YOUM5MCV.js} +5 -5
  46. package/dist/{improvement-review-CCE655BZ.js → improvement-review-H5BQ2JXK.js} +5 -5
  47. package/dist/index.d.ts +42 -0
  48. package/dist/index.js +30 -30
  49. package/dist/{init-opencode-3QHEWOJV.js → init-opencode-KHODCXA6.js} +6 -6
  50. package/dist/{issue-triage-QOD3WWIM.js → issue-triage-OP3FDRKY.js} +6 -6
  51. package/dist/{pr-reviewer-helpers-7IE2EX6M.js → pr-reviewer-helpers-UF42XZB6.js} +4 -4
  52. package/dist/{registry-command-PFOEWIKM.js → registry-command-EZ7735GC.js} +2 -2
  53. package/dist/{repo-security-plan-ELSKPBOD.js → repo-security-plan-D62HB5PK.js} +3 -3
  54. package/dist/{research-helpers-synthesize-DTNUWPRP.js → research-helpers-synthesize-KUA53BAD.js} +4 -4
  55. package/dist/{routing-memory-VBJMY6PE.js → routing-memory-FE4EQUXO.js} +2 -2
  56. package/dist/{session-memory-BFT6O2F7.js → session-memory-RA7KE6CX.js} +3 -3
  57. package/dist/{setup-command-J7P6DIFV.js → setup-command-KTFOFNJZ.js} +11 -11
  58. package/dist/{setup-config-ZC2AJ4IN.js → setup-config-SHG2DMZJ.js} +3 -3
  59. package/dist/{setup-custom-api-6ALI76FS.js → setup-custom-api-NVS4EPBG.js} +3 -3
  60. package/dist/{tool-memory-KJAOR22P.js → tool-memory-UQH2FTAS.js} +5 -5
  61. package/dist/{unified-registry-SMGX7OMN.js → unified-registry-MMQXU622.js} +9 -9
  62. package/dist/{weather-report-GLZ2LI7V.js → weather-report-HRQCJEU5.js} +2 -2
  63. package/package.json +1 -1
  64. package/dist/chunk-N3Y6J2FL.js.map +0 -1
  65. /package/dist/{child-mcp-config-5TDFQBX4.js.map → child-mcp-config-3YUKLM5F.js.map} +0 -0
  66. /package/dist/{chunk-KBHRWQBL.js.map → chunk-3NT6NAXD.js.map} +0 -0
  67. /package/dist/{chunk-J2P7FOEZ.js.map → chunk-3S2OPUGU.js.map} +0 -0
  68. /package/dist/{chunk-QJC2XU2B.js.map → chunk-47WFM6QH.js.map} +0 -0
  69. /package/dist/{chunk-52UVXXYA.js.map → chunk-5FH7QZIT.js.map} +0 -0
  70. /package/dist/{chunk-SRT2VLNP.js.map → chunk-5ULXLPVP.js.map} +0 -0
  71. /package/dist/{chunk-7TFBRAV7.js.map → chunk-6ZKQRTTQ.js.map} +0 -0
  72. /package/dist/{chunk-D4N7KBBT.js.map → chunk-7YOJXOFN.js.map} +0 -0
  73. /package/dist/{chunk-XNW3W2OU.js.map → chunk-AEPCCXMK.js.map} +0 -0
  74. /package/dist/{chunk-6LFKY2NE.js.map → chunk-BEJWHTRX.js.map} +0 -0
  75. /package/dist/{chunk-F5R53HDK.js.map → chunk-BGAK4N74.js.map} +0 -0
  76. /package/dist/{chunk-XDYOJQKC.js.map → chunk-BM26VPV5.js.map} +0 -0
  77. /package/dist/{chunk-CBGVR52X.js.map → chunk-EJ3MAR5M.js.map} +0 -0
  78. /package/dist/{chunk-MRYEJZQI.js.map → chunk-GAZMJBCK.js.map} +0 -0
  79. /package/dist/{chunk-7ZBXMLTJ.js.map → chunk-GYWYCCJC.js.map} +0 -0
  80. /package/dist/{chunk-V7DS6V3U.js.map → chunk-HUN7CEAU.js.map} +0 -0
  81. /package/dist/{chunk-IZVRLJIX.js.map → chunk-HWG437YQ.js.map} +0 -0
  82. /package/dist/{chunk-6FIWYWPM.js.map → chunk-IDOAR55M.js.map} +0 -0
  83. /package/dist/{chunk-22MKYE4Y.js.map → chunk-IILTUCFB.js.map} +0 -0
  84. /package/dist/{chunk-F42V2BKN.js.map → chunk-JZ4PCEEN.js.map} +0 -0
  85. /package/dist/{chunk-TWXCQOZN.js.map → chunk-LZ2LHYDO.js.map} +0 -0
  86. /package/dist/{chunk-PRMXFOWF.js.map → chunk-M532SJS6.js.map} +0 -0
  87. /package/dist/{chunk-ZFUFS44V.js.map → chunk-MYSS22Q2.js.map} +0 -0
  88. /package/dist/{chunk-O25A3VXX.js.map → chunk-NELFMLLR.js.map} +0 -0
  89. /package/dist/{chunk-ZLNGFULQ.js.map → chunk-O7VPOR5A.js.map} +0 -0
  90. /package/dist/{chunk-C63M3XXN.js.map → chunk-ODE5GDJ7.js.map} +0 -0
  91. /package/dist/{chunk-ZVGM3MPI.js.map → chunk-PZDDA6IW.js.map} +0 -0
  92. /package/dist/{chunk-VHRF6VOS.js.map → chunk-SCJ2EB6Z.js.map} +0 -0
  93. /package/dist/{chunk-MY22I2FD.js.map → chunk-TKCXD36G.js.map} +0 -0
  94. /package/dist/{chunk-DJTWGM7I.js.map → chunk-TNRTP5FW.js.map} +0 -0
  95. /package/dist/{chunk-VC7EUQH4.js.map → chunk-UAGYCCHY.js.map} +0 -0
  96. /package/dist/{chunk-DZCMTSNS.js.map → chunk-XGUZ2OQK.js.map} +0 -0
  97. /package/dist/{chunk-BMHQATIA.js.map → chunk-YGYJUPVX.js.map} +0 -0
  98. /package/dist/{chunk-QERDNK6B.js.map → chunk-YZQXCCEA.js.map} +0 -0
  99. /package/dist/{cli-circuit-breaker-G7NRAWQE.js.map → cli-circuit-breaker-Q43YSBCB.js.map} +0 -0
  100. /package/dist/{composite-router-7S2MLIHW.js.map → composite-router-5UHJFOB3.js.map} +0 -0
  101. /package/dist/{consensus-vote-CQBTPJRD.js.map → consensus-vote-6REGRDS6.js.map} +0 -0
  102. /package/dist/{context-retriever-FTLRG2N6.js.map → context-retriever-33SGXV33.js.map} +0 -0
  103. /package/dist/{doctor-deep-VU5VELP2.js.map → doctor-deep-RAN4HGOH.js.map} +0 -0
  104. /package/dist/{expert-bridge-MJJDMA6Z.js.map → expert-bridge-RJP57L75.js.map} +0 -0
  105. /package/dist/{factory-2XKATTCM.js.map → factory-C5PY7R6O.js.map} +0 -0
  106. /package/dist/{factory-RS462DMM.js.map → factory-YOUM5MCV.js.map} +0 -0
  107. /package/dist/{improvement-review-CCE655BZ.js.map → improvement-review-H5BQ2JXK.js.map} +0 -0
  108. /package/dist/{init-opencode-3QHEWOJV.js.map → init-opencode-KHODCXA6.js.map} +0 -0
  109. /package/dist/{issue-triage-QOD3WWIM.js.map → issue-triage-OP3FDRKY.js.map} +0 -0
  110. /package/dist/{pr-reviewer-helpers-7IE2EX6M.js.map → pr-reviewer-helpers-UF42XZB6.js.map} +0 -0
  111. /package/dist/{registry-command-PFOEWIKM.js.map → registry-command-EZ7735GC.js.map} +0 -0
  112. /package/dist/{repo-security-plan-ELSKPBOD.js.map → repo-security-plan-D62HB5PK.js.map} +0 -0
  113. /package/dist/{research-helpers-synthesize-DTNUWPRP.js.map → research-helpers-synthesize-KUA53BAD.js.map} +0 -0
  114. /package/dist/{routing-memory-VBJMY6PE.js.map → routing-memory-FE4EQUXO.js.map} +0 -0
  115. /package/dist/{session-memory-BFT6O2F7.js.map → session-memory-RA7KE6CX.js.map} +0 -0
  116. /package/dist/{setup-command-J7P6DIFV.js.map → setup-command-KTFOFNJZ.js.map} +0 -0
  117. /package/dist/{setup-config-ZC2AJ4IN.js.map → setup-config-SHG2DMZJ.js.map} +0 -0
  118. /package/dist/{setup-custom-api-6ALI76FS.js.map → setup-custom-api-NVS4EPBG.js.map} +0 -0
  119. /package/dist/{tool-memory-KJAOR22P.js.map → tool-memory-UQH2FTAS.js.map} +0 -0
  120. /package/dist/{unified-registry-SMGX7OMN.js.map → unified-registry-MMQXU622.js.map} +0 -0
  121. /package/dist/{weather-report-GLZ2LI7V.js.map → weather-report-HRQCJEU5.js.map} +0 -0
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  createAllAdapters,
9
9
  probeCli
10
- } from "./chunk-PRMXFOWF.js";
10
+ } from "./chunk-M532SJS6.js";
11
11
  import {
12
12
  DEFAULTS
13
- } from "./chunk-DJTWGM7I.js";
13
+ } from "./chunk-TNRTP5FW.js";
14
14
  import {
15
15
  CliNameSchema,
16
16
  DEFAULT_CAPABILITIES,
@@ -26,7 +26,7 @@ import {
26
26
  ok,
27
27
  symbols,
28
28
  writeLine
29
- } from "./chunk-N3Y6J2FL.js";
29
+ } from "./chunk-RCSDD2QY.js";
30
30
  import {
31
31
  getLearningDir,
32
32
  getOutcomesFile,
@@ -42,7 +42,7 @@ import {
42
42
  } from "./chunk-DHVMSIT5.js";
43
43
 
44
44
  // src/version.ts
45
- var VERSION = true ? "2.155.1" : "dev";
45
+ var VERSION = true ? "2.156.0" : "dev";
46
46
 
47
47
  // src/config/schemas-core.ts
48
48
  import { z } from "zod";
@@ -2132,7 +2132,7 @@ async function runDoctorFix(result) {
2132
2132
  writeLine2("\u2500".repeat(40));
2133
2133
  let fixCount = 0;
2134
2134
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2135
- const { runSetup } = await import("./setup-command-J7P6DIFV.js");
2135
+ const { runSetup } = await import("./setup-command-KTFOFNJZ.js");
2136
2136
  const setupResult = runSetup({
2137
2137
  skipMcp: true,
2138
2138
  skipRules: true,
@@ -2146,7 +2146,7 @@ async function runDoctorFix(result) {
2146
2146
  }
2147
2147
  }
2148
2148
  if (!result.configFile.found) {
2149
- const { runConfigInitSync } = await import("./setup-config-ZC2AJ4IN.js");
2149
+ const { runConfigInitSync } = await import("./setup-config-SHG2DMZJ.js");
2150
2150
  const configResult = runConfigInitSync(process.cwd(), false, false);
2151
2151
  if (configResult.success && configResult.created) {
2152
2152
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -2245,4 +2245,4 @@ export {
2245
2245
  startStdioServer,
2246
2246
  closeServer
2247
2247
  };
2248
- //# sourceMappingURL=chunk-6FIWYWPM.js.map
2248
+ //# sourceMappingURL=chunk-IDOAR55M.js.map
@@ -4,7 +4,7 @@ import {
4
4
  getErrorMessage,
5
5
  getTimeProvider,
6
6
  ok
7
- } from "./chunk-N3Y6J2FL.js";
7
+ } from "./chunk-RCSDD2QY.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-22MKYE4Y.js.map
355
+ //# sourceMappingURL=chunk-IILTUCFB.js.map
@@ -11,7 +11,7 @@ import {
11
11
  isRateLimitLikeError,
12
12
  lookupInTreeCapability,
13
13
  ok
14
- } from "./chunk-N3Y6J2FL.js";
14
+ } from "./chunk-RCSDD2QY.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-F42V2BKN.js.map
831
+ //# sourceMappingURL=chunk-JZ4PCEEN.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-ZVGM3MPI.js";
10
+ } from "./chunk-PZDDA6IW.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-N3Y6J2FL.js";
22
+ } from "./chunk-RCSDD2QY.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-TWXCQOZN.js.map
2135
+ //# sourceMappingURL=chunk-LZ2LHYDO.js.map
@@ -5,24 +5,24 @@ import {
5
5
  planOptionalParams,
6
6
  requireApiKey,
7
7
  validateApiKeyPresence
8
- } from "./chunk-F42V2BKN.js";
8
+ } from "./chunk-JZ4PCEEN.js";
9
9
  import {
10
10
  CUSTOM_API_BASE_URL_ENV,
11
11
  CUSTOM_API_DEFAULT_MODEL,
12
12
  PROVIDER_ENV_KEYS,
13
13
  assertCustomApiHostResolvesPublic,
14
14
  validateCustomApiBaseUrl
15
- } from "./chunk-DJTWGM7I.js";
15
+ } from "./chunk-TNRTP5FW.js";
16
16
  import {
17
17
  CliCircuitBreaker,
18
18
  DEFAULT_CIRCUIT_BREAKER_CONFIG
19
- } from "./chunk-7ZBXMLTJ.js";
19
+ } from "./chunk-GYWYCCJC.js";
20
20
  import {
21
21
  getAvailabilityCache
22
- } from "./chunk-BMHQATIA.js";
22
+ } from "./chunk-YGYJUPVX.js";
23
23
  import {
24
24
  generateHyphenId
25
- } from "./chunk-ZFUFS44V.js";
25
+ } from "./chunk-MYSS22Q2.js";
26
26
  import {
27
27
  CLI_SUBPROCESS_TIMEOUTS,
28
28
  CLI_TIMEOUTS,
@@ -58,7 +58,7 @@ import {
58
58
  loadModelsDevSnapshot,
59
59
  ok,
60
60
  resolveCliAlias
61
- } from "./chunk-N3Y6J2FL.js";
61
+ } from "./chunk-RCSDD2QY.js";
62
62
 
63
63
  // src/cli-adapters/cli-to-model-adapter.ts
64
64
  var CliToModelAdapter = class {
@@ -4867,4 +4867,4 @@ export {
4867
4867
  SdkAdapter,
4868
4868
  createAutoAdapter
4869
4869
  };
4870
- //# sourceMappingURL=chunk-PRMXFOWF.js.map
4870
+ //# sourceMappingURL=chunk-M532SJS6.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRandomProvider,
3
3
  getTimeProvider
4
- } from "./chunk-N3Y6J2FL.js";
4
+ } from "./chunk-RCSDD2QY.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-ZFUFS44V.js.map
27
+ //# sourceMappingURL=chunk-MYSS22Q2.js.map
@@ -4,7 +4,7 @@ import {
4
4
  err,
5
5
  getErrorMessage,
6
6
  ok
7
- } from "./chunk-N3Y6J2FL.js";
7
+ } from "./chunk-RCSDD2QY.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-O25A3VXX.js.map
266
+ //# sourceMappingURL=chunk-NELFMLLR.js.map
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  resolveToken
3
- } from "./chunk-J2P7FOEZ.js";
3
+ } from "./chunk-3S2OPUGU.js";
4
4
  import {
5
5
  REGISTRY_PATH,
6
6
  getProjectRoot,
7
7
  loadPapersRegistry,
8
8
  loadTechniquesRegistry,
9
9
  savePapersRegistry
10
- } from "./chunk-IZVRLJIX.js";
10
+ } from "./chunk-HWG437YQ.js";
11
11
  import {
12
12
  resolveInsideRoot
13
13
  } from "./chunk-NUBSJGQZ.js";
14
14
  import {
15
15
  getToolMemory
16
- } from "./chunk-D4N7KBBT.js";
16
+ } from "./chunk-7YOJXOFN.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-N3Y6J2FL.js";
30
+ } from "./chunk-RCSDD2QY.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-ZLNGFULQ.js.map
2689
+ //# sourceMappingURL=chunk-O7VPOR5A.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runConfigInitSync
3
- } from "./chunk-SRT2VLNP.js";
3
+ } from "./chunk-5ULXLPVP.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-6FIWYWPM.js";
11
+ } from "./chunk-IDOAR55M.js";
12
12
  import {
13
13
  BUILT_IN_EXPERTS
14
14
  } from "./chunk-ZM4O442V.js";
15
15
  import {
16
16
  probeAllClis
17
- } from "./chunk-PRMXFOWF.js";
17
+ } from "./chunk-M532SJS6.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-N3Y6J2FL.js";
28
+ } from "./chunk-RCSDD2QY.js";
29
29
  import {
30
30
  ensureGitignored,
31
31
  findRepoRoot
@@ -2000,4 +2000,4 @@ export {
2000
2000
  setupCommand,
2001
2001
  setupCommandAsync
2002
2002
  };
2003
- //# sourceMappingURL=chunk-C63M3XXN.js.map
2003
+ //# sourceMappingURL=chunk-ODE5GDJ7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  emitClawGuardViolation
3
- } from "./chunk-XDYOJQKC.js";
3
+ } from "./chunk-BM26VPV5.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-N3Y6J2FL.js";
19
+ } from "./chunk-RCSDD2QY.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-ZVGM3MPI.js.map
2026
+ //# sourceMappingURL=chunk-PZDDA6IW.js.map
@@ -1778,6 +1778,70 @@ function buildInTreeEntries() {
1778
1778
  return DEFAULT_MODEL_CAPABILITIES.models.map(toEntry);
1779
1779
  }
1780
1780
 
1781
+ // src/config/model-fuzzy-resolution.ts
1782
+ var MAX_FUZZY_ID_LENGTH = 256;
1783
+ var BREADTH_SOURCES = /* @__PURE__ */ new Set(["models-dev", "generated"]);
1784
+ var SOURCE_RANK = {
1785
+ manifest: 0,
1786
+ "in-tree": 1,
1787
+ "models-dev": 2,
1788
+ generated: 3,
1789
+ derived: 4
1790
+ };
1791
+ function byTierPriority(a, b) {
1792
+ return SOURCE_RANK[a.source] - SOURCE_RANK[b.source];
1793
+ }
1794
+ function versionKey(version) {
1795
+ return normaliseModelId(version).replace(/\./g, "-");
1796
+ }
1797
+ function entryVersion(entry) {
1798
+ return entry.version ?? resolveModelIdentitySync(entry.id).version;
1799
+ }
1800
+ function identityKeyFor(identity) {
1801
+ if (identity.vendor === "unknown" || identity.family === "unknown") return void 0;
1802
+ if (identity.version === void 0) return void 0;
1803
+ return `${identity.vendor}|${identity.family}|${versionKey(identity.version)}`;
1804
+ }
1805
+ function buildIdentityIndex(entries) {
1806
+ const index = /* @__PURE__ */ new Map();
1807
+ for (const entry of entries) {
1808
+ const version = entryVersion(entry);
1809
+ if (version === void 0) continue;
1810
+ const key = identityKeyFor({ vendor: entry.vendor, family: entry.family, version });
1811
+ if (key === void 0) continue;
1812
+ const bucket = index.get(key);
1813
+ if (bucket === void 0) index.set(key, [entry]);
1814
+ else bucket.push(entry);
1815
+ }
1816
+ return index;
1817
+ }
1818
+ function samePricing(a, b) {
1819
+ return a.inputPer1M === b.inputPer1M && a.outputPer1M === b.outputPer1M;
1820
+ }
1821
+ function isEffectivelySameModel(a, b) {
1822
+ if (normaliseModelId(a.id) === normaliseModelId(b.id)) return true;
1823
+ if (a.pricing === void 0 || b.pricing === void 0) return false;
1824
+ return samePricing(a.pricing, b.pricing) && a.contextWindow === b.contextWindow && a.maxOutputTokens === b.maxOutputTokens;
1825
+ }
1826
+ function dedupeEffectiveDuplicates(candidates) {
1827
+ const kept = [];
1828
+ for (const candidate of candidates) {
1829
+ if (!kept.some((k) => isEffectivelySameModel(k, candidate))) kept.push(candidate);
1830
+ }
1831
+ return kept;
1832
+ }
1833
+ function uniqueCandidate(candidates) {
1834
+ const distinct = dedupeEffectiveDuplicates(candidates);
1835
+ return distinct.length === 1 ? distinct[0] : void 0;
1836
+ }
1837
+ function selectIdentityCandidate(candidates) {
1838
+ if (candidates === void 0) return void 0;
1839
+ const ranked = [...candidates].sort(byTierPriority);
1840
+ const authoritative = ranked.filter((e) => !BREADTH_SOURCES.has(e.source));
1841
+ if (authoritative.length > 0) return uniqueCandidate(authoritative);
1842
+ return uniqueCandidate(ranked.filter((e) => BREADTH_SOURCES.has(e.source)));
1843
+ }
1844
+
1781
1845
  // src/config/manifest-overlay.ts
1782
1846
  import { existsSync, readFileSync, statSync } from "fs";
1783
1847
  import { parse as parseYaml } from "yaml";
@@ -2249,6 +2313,13 @@ var ModelRegistry = class {
2249
2313
  byId = /* @__PURE__ */ new Map();
2250
2314
  byAlias = /* @__PURE__ */ new Map();
2251
2315
  // alias → canonical id
2316
+ /**
2317
+ * `vendor|family|version` → candidate entries, for the identity tier
2318
+ * (#4164). Built ONCE, lazily on the first fuzzy lookup — the entry maps
2319
+ * are immutable after construction, so it never goes stale. No caching of
2320
+ * UNMATCHED ids happens anywhere (the index only holds loaded entries).
2321
+ */
2322
+ identityIndex;
2252
2323
  constructor(options = {}) {
2253
2324
  if (options.generatedEntries !== void 0) {
2254
2325
  this.loadEntries(options.generatedEntries);
@@ -2266,12 +2337,20 @@ var ModelRegistry = class {
2266
2337
  /**
2267
2338
  * Resolve a model id to its full metadata entry. Always returns —
2268
2339
  * unknown models get a derived entry with sensible defaults.
2340
+ *
2341
+ * On exact miss, the normalized/identity resolution tier (#4164) runs
2342
+ * BEFORE derivation so decorated gateway ids (`Claude_Opus_4.8_hardened`)
2343
+ * still pick up the canonical entry's pricing/metadata.
2269
2344
  */
2270
2345
  getEntry(modelId, hints) {
2271
2346
  const direct = this.lookupExact(modelId);
2272
2347
  if (direct !== void 0 && direct.source !== "models-dev" && direct.source !== "generated") {
2273
2348
  return direct;
2274
2349
  }
2350
+ if (direct === void 0) {
2351
+ const fuzzy = this.lookupFuzzy(modelId, hints);
2352
+ if (fuzzy !== void 0) return fuzzy;
2353
+ }
2275
2354
  const identity = resolveModelIdentitySync(modelId, augmentHints(hints, direct));
2276
2355
  const derived = deriveEntry(modelId, identity);
2277
2356
  if (direct !== void 0 && identity.vendor !== "unknown") {
@@ -2306,6 +2385,39 @@ var ModelRegistry = class {
2306
2385
  if (canonical !== void 0) return this.byId.get(canonical);
2307
2386
  return void 0;
2308
2387
  }
2388
+ /**
2389
+ * Normalized/identity resolution tier (#4164). Runs on exact miss only:
2390
+ * (a) retry `lookupExact` with the `normaliseModelId`-normalized id so
2391
+ * aliases + alias-shadow (#3293) keep working;
2392
+ * (b) identity-match {vendor, family, version} against the load-time
2393
+ * index — version required on both sides, tier-ordered uniqueness,
2394
+ * fail closed on ambiguity (see model-fuzzy-resolution.ts).
2395
+ * Over-long ids skip the tier entirely (straight to derivation).
2396
+ */
2397
+ lookupFuzzy(modelId, hints) {
2398
+ if (modelId.length > MAX_FUZZY_ID_LENGTH) return void 0;
2399
+ const normalized = normaliseModelId(modelId);
2400
+ const byNormalized = normalized === modelId ? void 0 : this.lookupExact(normalized);
2401
+ if (byNormalized !== void 0) {
2402
+ return this.resolveMatched(byNormalized, modelId, hints, "normalized");
2403
+ }
2404
+ const key = identityKeyFor(resolveModelIdentitySync(modelId, hints));
2405
+ if (key === void 0) return void 0;
2406
+ this.identityIndex ??= buildIdentityIndex(this.byId.values());
2407
+ const matched = selectIdentityCandidate(this.identityIndex.get(key));
2408
+ if (matched === void 0) return void 0;
2409
+ return this.resolveMatched(matched, modelId, hints, "identity");
2410
+ }
2411
+ /**
2412
+ * Build the entry returned for a fuzzy match: a fresh COPY that keeps the
2413
+ * CALLER'S id and takes behaviour from derivation for that original id —
2414
+ * the matched entry grants pricing/metadata only.
2415
+ */
2416
+ resolveMatched(matched, modelId, hints, matchedVia) {
2417
+ const identity = resolveModelIdentitySync(modelId, augmentHints(hints, matched));
2418
+ const derived = deriveEntry(modelId, identity);
2419
+ return mergeMatchedWithDerived(matched, derived, matchedVia);
2420
+ }
2309
2421
  loadEntries(entries) {
2310
2422
  for (const entry of entries) {
2311
2423
  this.byId.set(entry.id, entry);
@@ -2342,6 +2454,23 @@ function mergeSnapshotWithDerived(snapshot, derived) {
2342
2454
  source: "derived"
2343
2455
  };
2344
2456
  }
2457
+ function mergeMatchedWithDerived(matched, derived, matchedVia) {
2458
+ const merged = {
2459
+ ...mergeSnapshotWithDerived(matched, derived)
2460
+ };
2461
+ delete merged.aliases;
2462
+ delete merged.cliName;
2463
+ delete merged.cliAlias;
2464
+ delete merged.cliModelName;
2465
+ delete merged.unsupportedParameters;
2466
+ delete merged.maxTokensParam;
2467
+ delete merged.verifiedAt;
2468
+ merged.id = derived.id;
2469
+ if (derived.version !== void 0) merged.version = derived.version;
2470
+ merged.matchedVia = matchedVia;
2471
+ merged.resolvedFrom = matched.id;
2472
+ return merged;
2473
+ }
2345
2474
  var globalRegistry;
2346
2475
  function getDefaultRegistry() {
2347
2476
  globalRegistry ??= buildDefaultRegistry();
@@ -2372,7 +2501,7 @@ function setDefaultRegistry(registry) {
2372
2501
  }
2373
2502
  async function reloadDefaultRegistry() {
2374
2503
  globalRegistry = buildDefaultRegistry();
2375
- const { resetGlobalRegistry } = await import("./unified-registry-SMGX7OMN.js");
2504
+ const { resetGlobalRegistry } = await import("./unified-registry-MMQXU622.js");
2376
2505
  resetGlobalRegistry();
2377
2506
  return globalRegistry;
2378
2507
  }
@@ -13656,7 +13785,7 @@ var CompositeRouter = class _CompositeRouter {
13656
13785
  */
13657
13786
  async consultUnifiedContext(task) {
13658
13787
  try {
13659
- const { getContextForTask, inferTaskCategory } = await import("./context-retriever-FTLRG2N6.js");
13788
+ const { getContextForTask, inferTaskCategory } = await import("./context-retriever-33SGXV33.js");
13660
13789
  const ctx = await getContextForTask({
13661
13790
  task: task.content,
13662
13791
  category: inferTaskCategory(task.content),
@@ -15159,4 +15288,4 @@ export {
15159
15288
  AgentCapability,
15160
15289
  OrchestratorError
15161
15290
  };
15162
- //# sourceMappingURL=chunk-N3Y6J2FL.js.map
15291
+ //# sourceMappingURL=chunk-RCSDD2QY.js.map