nexus-agents 8.85.1 → 8.85.3

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-LXMZIGCY.js → ast-rule-runner-6XKCMMSK.js} +3 -3
  2. package/dist/{child-mcp-config-OBHZQG2Q.js → child-mcp-config-DMTIHAH5.js} +2 -2
  3. package/dist/{chunk-FFUIQBDD.js → chunk-3HU4VVD7.js} +2 -2
  4. package/dist/{chunk-622UBOMB.js → chunk-5JQL2KOJ.js} +10 -10
  5. package/dist/{chunk-UA6FZ2WV.js → chunk-6ZCKENQU.js} +4 -4
  6. package/dist/{chunk-R5ASFO5P.js → chunk-ABIS6ZE7.js} +2 -2
  7. package/dist/{chunk-Y6QNLP5P.js → chunk-AHJUIF44.js} +8 -8
  8. package/dist/{chunk-LEYBZKK2.js → chunk-ALJPZZ57.js} +4 -4
  9. package/dist/{chunk-RAY3WA5Q.js → chunk-AOSBH5H7.js} +9 -9
  10. package/dist/{chunk-DY5FNADP.js → chunk-CJ2LQLZV.js} +3 -3
  11. package/dist/{chunk-CH2WD3MA.js → chunk-CPW3LHST.js} +3 -3
  12. package/dist/{chunk-KYUMXC7W.js → chunk-DMUVBBOD.js} +3 -3
  13. package/dist/{chunk-RSDKRBZC.js → chunk-DSIJ5L3Y.js} +2 -2
  14. package/dist/chunk-DSIJ5L3Y.js.map +1 -0
  15. package/dist/{chunk-AKM6ILIM.js → chunk-FQ6UCX2J.js} +5 -5
  16. package/dist/{chunk-OBTPPT3M.js → chunk-GNTWB3O2.js} +5 -5
  17. package/dist/{chunk-45EJ4PBT.js → chunk-HQQ3ES3J.js} +2 -2
  18. package/dist/{chunk-NHLKZ3KC.js → chunk-HXSR24QG.js} +2 -2
  19. package/dist/{chunk-6Q7EYNH2.js → chunk-KUZV4AW5.js} +2 -2
  20. package/dist/{chunk-IPWGHYXZ.js → chunk-KVDXUGMQ.js} +2 -2
  21. package/dist/{chunk-ZA627SSQ.js → chunk-LBIFDT6N.js} +2 -2
  22. package/dist/{chunk-BXOXALDW.js → chunk-LJNUMK67.js} +2 -2
  23. package/dist/{chunk-EX5EN5B6.js → chunk-LKNT7XND.js} +2 -2
  24. package/dist/{chunk-WRGNPNSZ.js → chunk-O6TFBXE5.js} +3 -3
  25. package/dist/{chunk-2EBCZOVZ.js → chunk-OHM625YL.js} +2 -2
  26. package/dist/{chunk-HXOEF3YP.js → chunk-OMIR6ISN.js} +61 -33
  27. package/dist/chunk-OMIR6ISN.js.map +1 -0
  28. package/dist/{chunk-HFPR4I3U.js → chunk-PFZSS67U.js} +2 -2
  29. package/dist/{chunk-WUUZ5KH2.js → chunk-QFL3BFIV.js} +2 -2
  30. package/dist/{chunk-XRPHJNVB.js → chunk-QW343BTQ.js} +5 -5
  31. package/dist/chunk-QW343BTQ.js.map +1 -0
  32. package/dist/{chunk-JN42TCDE.js → chunk-RIB56PWI.js} +2 -2
  33. package/dist/{chunk-BHLPPZZ6.js → chunk-T2ZQUZQW.js} +7 -7
  34. package/dist/{chunk-MYI5QMFW.js → chunk-TECOLJ4Z.js} +48 -38
  35. package/dist/{chunk-MYI5QMFW.js.map → chunk-TECOLJ4Z.js.map} +1 -1
  36. package/dist/{chunk-6FXHSNXA.js → chunk-UWAJUJKU.js} +2 -2
  37. package/dist/{chunk-7LGBEEKB.js → chunk-UXUOJOXL.js} +2 -2
  38. package/dist/{chunk-BW2MNDA3.js → chunk-VEMKYAW4.js} +2 -2
  39. package/dist/{chunk-UB7PB7GI.js → chunk-XGAMDSC5.js} +4 -4
  40. package/dist/{cli-circuit-breaker-GJWYQL6L.js → cli-circuit-breaker-VRTWILPB.js} +3 -3
  41. package/dist/cli.js +62 -46
  42. package/dist/cli.js.map +1 -1
  43. package/dist/{composite-router-TL5XKK5X.js → composite-router-LAMVSGZ3.js} +2 -2
  44. package/dist/{consensus-vote-EZ4SEHUH.js → consensus-vote-ZB72SHTV.js} +16 -16
  45. package/dist/{context-retriever-CC3W7XS6.js → context-retriever-VRAIKZTE.js} +8 -8
  46. package/dist/{doctor-deep-XBJ5HS3B.js → doctor-deep-ZZWIF64Z.js} +3 -3
  47. package/dist/{doctor-live-CNKTVDK6.js → doctor-live-KKIWEO3K.js} +10 -10
  48. package/dist/{expert-bridge-YPVHOWFB.js → expert-bridge-TMHBUOUK.js} +4 -4
  49. package/dist/{factory-JHBJB2O2.js → factory-KAMTEOXC.js} +9 -9
  50. package/dist/{factory-MRSIKSPG.js → factory-WAI626V6.js} +5 -5
  51. package/dist/{improvement-review-IR7PWFHW.js → improvement-review-BI3B3PQ2.js} +5 -5
  52. package/dist/index.d.ts +4 -4
  53. package/dist/index.js +30 -30
  54. package/dist/{init-opencode-FH2LR62J.js → init-opencode-EY7TUIML.js} +5 -5
  55. package/dist/issue-triage-VAWDVGET.js +16 -0
  56. package/dist/model-registry.generated.json +2949 -3961
  57. package/dist/{pr-reviewer-helpers-QG53KLXL.js → pr-reviewer-helpers-3A6ZFECZ.js} +4 -4
  58. package/dist/{registry-command-IX7IISYC.js → registry-command-PWWFOIT3.js} +2 -2
  59. package/dist/{repo-security-plan-FE2KXATO.js → repo-security-plan-Y6PXBY44.js} +3 -3
  60. package/dist/{research-helpers-synthesize-TRAPPDBV.js → research-helpers-synthesize-L22FP57N.js} +4 -4
  61. package/dist/{routing-memory-IXTZH2LJ.js → routing-memory-XFJJT5AW.js} +2 -2
  62. package/dist/{session-memory-LG3G33MF.js → session-memory-SRH5ZJRX.js} +3 -3
  63. package/dist/{setup-config-HAIUEE4A.js → setup-config-T64H4UOO.js} +3 -3
  64. package/dist/{setup-custom-api-437P3KVD.js → setup-custom-api-RQW6VSLO.js} +4 -4
  65. package/dist/setup-data-dir-ZD4N4CEP.js +32 -0
  66. package/dist/{tool-memory-A7C3WO3Q.js → tool-memory-72T6Z6H4.js} +5 -5
  67. package/dist/{unified-registry-YF3B3PDU.js → unified-registry-J2PCYXUU.js} +10 -10
  68. package/dist/{weather-report-NDQU55YN.js → weather-report-GPYYWU5C.js} +2 -2
  69. package/package.json +1 -1
  70. package/dist/chunk-HXOEF3YP.js.map +0 -1
  71. package/dist/chunk-RSDKRBZC.js.map +0 -1
  72. package/dist/chunk-XRPHJNVB.js.map +0 -1
  73. package/dist/issue-triage-TI6R4XZL.js +0 -16
  74. package/dist/setup-data-dir-CHOFWU5Y.js +0 -32
  75. /package/dist/{ast-rule-runner-LXMZIGCY.js.map → ast-rule-runner-6XKCMMSK.js.map} +0 -0
  76. /package/dist/{child-mcp-config-OBHZQG2Q.js.map → child-mcp-config-DMTIHAH5.js.map} +0 -0
  77. /package/dist/{chunk-FFUIQBDD.js.map → chunk-3HU4VVD7.js.map} +0 -0
  78. /package/dist/{chunk-622UBOMB.js.map → chunk-5JQL2KOJ.js.map} +0 -0
  79. /package/dist/{chunk-UA6FZ2WV.js.map → chunk-6ZCKENQU.js.map} +0 -0
  80. /package/dist/{chunk-R5ASFO5P.js.map → chunk-ABIS6ZE7.js.map} +0 -0
  81. /package/dist/{chunk-Y6QNLP5P.js.map → chunk-AHJUIF44.js.map} +0 -0
  82. /package/dist/{chunk-LEYBZKK2.js.map → chunk-ALJPZZ57.js.map} +0 -0
  83. /package/dist/{chunk-RAY3WA5Q.js.map → chunk-AOSBH5H7.js.map} +0 -0
  84. /package/dist/{chunk-DY5FNADP.js.map → chunk-CJ2LQLZV.js.map} +0 -0
  85. /package/dist/{chunk-CH2WD3MA.js.map → chunk-CPW3LHST.js.map} +0 -0
  86. /package/dist/{chunk-KYUMXC7W.js.map → chunk-DMUVBBOD.js.map} +0 -0
  87. /package/dist/{chunk-AKM6ILIM.js.map → chunk-FQ6UCX2J.js.map} +0 -0
  88. /package/dist/{chunk-OBTPPT3M.js.map → chunk-GNTWB3O2.js.map} +0 -0
  89. /package/dist/{chunk-45EJ4PBT.js.map → chunk-HQQ3ES3J.js.map} +0 -0
  90. /package/dist/{chunk-NHLKZ3KC.js.map → chunk-HXSR24QG.js.map} +0 -0
  91. /package/dist/{chunk-6Q7EYNH2.js.map → chunk-KUZV4AW5.js.map} +0 -0
  92. /package/dist/{chunk-IPWGHYXZ.js.map → chunk-KVDXUGMQ.js.map} +0 -0
  93. /package/dist/{chunk-ZA627SSQ.js.map → chunk-LBIFDT6N.js.map} +0 -0
  94. /package/dist/{chunk-BXOXALDW.js.map → chunk-LJNUMK67.js.map} +0 -0
  95. /package/dist/{chunk-EX5EN5B6.js.map → chunk-LKNT7XND.js.map} +0 -0
  96. /package/dist/{chunk-WRGNPNSZ.js.map → chunk-O6TFBXE5.js.map} +0 -0
  97. /package/dist/{chunk-2EBCZOVZ.js.map → chunk-OHM625YL.js.map} +0 -0
  98. /package/dist/{chunk-HFPR4I3U.js.map → chunk-PFZSS67U.js.map} +0 -0
  99. /package/dist/{chunk-WUUZ5KH2.js.map → chunk-QFL3BFIV.js.map} +0 -0
  100. /package/dist/{chunk-JN42TCDE.js.map → chunk-RIB56PWI.js.map} +0 -0
  101. /package/dist/{chunk-BHLPPZZ6.js.map → chunk-T2ZQUZQW.js.map} +0 -0
  102. /package/dist/{chunk-6FXHSNXA.js.map → chunk-UWAJUJKU.js.map} +0 -0
  103. /package/dist/{chunk-7LGBEEKB.js.map → chunk-UXUOJOXL.js.map} +0 -0
  104. /package/dist/{chunk-BW2MNDA3.js.map → chunk-VEMKYAW4.js.map} +0 -0
  105. /package/dist/{chunk-UB7PB7GI.js.map → chunk-XGAMDSC5.js.map} +0 -0
  106. /package/dist/{cli-circuit-breaker-GJWYQL6L.js.map → cli-circuit-breaker-VRTWILPB.js.map} +0 -0
  107. /package/dist/{composite-router-TL5XKK5X.js.map → composite-router-LAMVSGZ3.js.map} +0 -0
  108. /package/dist/{consensus-vote-EZ4SEHUH.js.map → consensus-vote-ZB72SHTV.js.map} +0 -0
  109. /package/dist/{context-retriever-CC3W7XS6.js.map → context-retriever-VRAIKZTE.js.map} +0 -0
  110. /package/dist/{doctor-deep-XBJ5HS3B.js.map → doctor-deep-ZZWIF64Z.js.map} +0 -0
  111. /package/dist/{doctor-live-CNKTVDK6.js.map → doctor-live-KKIWEO3K.js.map} +0 -0
  112. /package/dist/{expert-bridge-YPVHOWFB.js.map → expert-bridge-TMHBUOUK.js.map} +0 -0
  113. /package/dist/{factory-JHBJB2O2.js.map → factory-KAMTEOXC.js.map} +0 -0
  114. /package/dist/{factory-MRSIKSPG.js.map → factory-WAI626V6.js.map} +0 -0
  115. /package/dist/{improvement-review-IR7PWFHW.js.map → improvement-review-BI3B3PQ2.js.map} +0 -0
  116. /package/dist/{init-opencode-FH2LR62J.js.map → init-opencode-EY7TUIML.js.map} +0 -0
  117. /package/dist/{issue-triage-TI6R4XZL.js.map → issue-triage-VAWDVGET.js.map} +0 -0
  118. /package/dist/{pr-reviewer-helpers-QG53KLXL.js.map → pr-reviewer-helpers-3A6ZFECZ.js.map} +0 -0
  119. /package/dist/{registry-command-IX7IISYC.js.map → registry-command-PWWFOIT3.js.map} +0 -0
  120. /package/dist/{repo-security-plan-FE2KXATO.js.map → repo-security-plan-Y6PXBY44.js.map} +0 -0
  121. /package/dist/{research-helpers-synthesize-TRAPPDBV.js.map → research-helpers-synthesize-L22FP57N.js.map} +0 -0
  122. /package/dist/{routing-memory-IXTZH2LJ.js.map → routing-memory-XFJJT5AW.js.map} +0 -0
  123. /package/dist/{session-memory-LG3G33MF.js.map → session-memory-SRH5ZJRX.js.map} +0 -0
  124. /package/dist/{setup-config-HAIUEE4A.js.map → setup-config-T64H4UOO.js.map} +0 -0
  125. /package/dist/{setup-custom-api-437P3KVD.js.map → setup-custom-api-RQW6VSLO.js.map} +0 -0
  126. /package/dist/{setup-data-dir-CHOFWU5Y.js.map → setup-data-dir-ZD4N4CEP.js.map} +0 -0
  127. /package/dist/{tool-memory-A7C3WO3Q.js.map → tool-memory-72T6Z6H4.js.map} +0 -0
  128. /package/dist/{unified-registry-YF3B3PDU.js.map → unified-registry-J2PCYXUU.js.map} +0 -0
  129. /package/dist/{weather-report-NDQU55YN.js.map → weather-report-GPYYWU5C.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  MODEL_IDS,
4
4
  getTimeProvider,
5
5
  resolveModelIdentitySync
6
- } from "./chunk-HXOEF3YP.js";
6
+ } from "./chunk-OMIR6ISN.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-45EJ4PBT.js.map
153
+ //# sourceMappingURL=chunk-HQQ3ES3J.js.map
@@ -10,7 +10,7 @@ import {
10
10
  isRateLimitText,
11
11
  observedArmDisplaySlot,
12
12
  ok
13
- } from "./chunk-HXOEF3YP.js";
13
+ } from "./chunk-OMIR6ISN.js";
14
14
 
15
15
  // src/cli-adapters/circuit-breaker-types.ts
16
16
  var CircuitErrorCode = {
@@ -592,4 +592,4 @@ export {
592
592
  CliCircuitBreakerIntegration,
593
593
  createCliCircuitBreakerIntegration
594
594
  };
595
- //# sourceMappingURL=chunk-NHLKZ3KC.js.map
595
+ //# sourceMappingURL=chunk-HXSR24QG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  createLogger,
6
6
  getTimeProvider
7
- } from "./chunk-HXOEF3YP.js";
7
+ } from "./chunk-OMIR6ISN.js";
8
8
 
9
9
  // src/mcp/tools/scanner-registry-fetcher.ts
10
10
  import { z } from "zod";
@@ -740,4 +740,4 @@ export {
740
740
  generateSecurityPlan,
741
741
  buildPlanFromAnalysis
742
742
  };
743
- //# sourceMappingURL=chunk-6Q7EYNH2.js.map
743
+ //# sourceMappingURL=chunk-KUZV4AW5.js.map
@@ -4,7 +4,7 @@ import {
4
4
  getErrorMessage,
5
5
  getTimeProvider,
6
6
  ok
7
- } from "./chunk-HXOEF3YP.js";
7
+ } from "./chunk-OMIR6ISN.js";
8
8
 
9
9
  // src/context/session-memory.ts
10
10
  import * as fs from "node:fs";
@@ -370,4 +370,4 @@ export {
370
370
  SessionMemory,
371
371
  createSessionMemory
372
372
  };
373
- //# sourceMappingURL=chunk-IPWGHYXZ.js.map
373
+ //# sourceMappingURL=chunk-KVDXUGMQ.js.map
@@ -2,7 +2,7 @@ import {
2
2
  CACHE_TIMEOUTS,
3
3
  createLogger,
4
4
  getTimeProvider
5
- } from "./chunk-HXOEF3YP.js";
5
+ } from "./chunk-OMIR6ISN.js";
6
6
 
7
7
  // src/security/trust-types.ts
8
8
  import { z } from "zod";
@@ -610,4 +610,4 @@ export {
610
610
  resolveReputationGatingMode,
611
611
  gateWithReputation
612
612
  };
613
- //# sourceMappingURL=chunk-ZA627SSQ.js.map
613
+ //# sourceMappingURL=chunk-LBIFDT6N.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveClassGuardMs
3
- } from "./chunk-HXOEF3YP.js";
3
+ } from "./chunk-OMIR6ISN.js";
4
4
 
5
5
  // src/cli/cli-readiness.ts
6
6
  var READINESS_LEVELS = ["installed", "authenticated", "serves"];
@@ -90,4 +90,4 @@ export {
90
90
  SERVES_PROBE_PROMPT,
91
91
  probeServes
92
92
  };
93
- //# sourceMappingURL=chunk-BXOXALDW.js.map
93
+ //# sourceMappingURL=chunk-LJNUMK67.js.map
@@ -2,7 +2,7 @@ import {
2
2
  TASK_CATEGORIES,
3
3
  getAdaptiveBonus,
4
4
  getOutcomeStore
5
- } from "./chunk-HXOEF3YP.js";
5
+ } from "./chunk-OMIR6ISN.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-EX5EN5B6.js.map
109
+ //# sourceMappingURL=chunk-LKNT7XND.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-KYUMXC7W.js";
10
+ } from "./chunk-DMUVBBOD.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -20,7 +20,7 @@ import {
20
20
  getTimeProvider,
21
21
  isDeclaredNeverDeprecate,
22
22
  isRegisteredToolName
23
- } from "./chunk-HXOEF3YP.js";
23
+ } from "./chunk-OMIR6ISN.js";
24
24
  import {
25
25
  getNexusDataDir,
26
26
  nexusDataPath
@@ -2282,4 +2282,4 @@ export {
2282
2282
  runImprovementReview,
2283
2283
  registerImprovementReviewTool
2284
2284
  };
2285
- //# sourceMappingURL=chunk-WRGNPNSZ.js.map
2285
+ //# sourceMappingURL=chunk-O6TFBXE5.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createLogger,
3
3
  err,
4
4
  ok
5
- } from "./chunk-HXOEF3YP.js";
5
+ } from "./chunk-OMIR6ISN.js";
6
6
 
7
7
  // src/scm/token-resolver.ts
8
8
  import { execFile } from "node:child_process";
@@ -87,4 +87,4 @@ export {
87
87
  hasToken,
88
88
  getTokenEnvVars
89
89
  };
90
- //# sourceMappingURL=chunk-2EBCZOVZ.js.map
90
+ //# sourceMappingURL=chunk-OHM625YL.js.map
@@ -1303,9 +1303,9 @@ var DEFAULT_MODEL_CAPABILITIES = {
1303
1303
  },
1304
1304
  {
1305
1305
  id: "codex-5.2",
1306
- displayName: "GPT-5.3 Codex Spark",
1306
+ displayName: "GPT-5.6 Luna",
1307
1307
  provider: "openai",
1308
- contextWindow: 128e3,
1308
+ contextWindow: 105e4,
1309
1309
  outputModalities: ["text", "structured_json", "code"],
1310
1310
  inputModalities: ["text", "image", "pdf", "code"],
1311
1311
  toolCapabilities: [
@@ -1322,33 +1322,41 @@ var DEFAULT_MODEL_CAPABILITIES = {
1322
1322
  "No native image/audio/video generation",
1323
1323
  "Network access restricted in sandbox"
1324
1324
  ],
1325
- // #5091: repointed from gpt-5.2-codex, which codex 0.146.0 no longer
1326
- // serves (~/.codex/models_cache.json visibility=list). Context window,
1327
- // max output and pricing are models.dev's figures for this slug
1328
- // (snapshot 2026-08-31). Quality scores are the codex arm's tier
1329
- // positions carried over from the replaced entry, not a measurement of
1330
- // this slug; `cost` is unchanged because the price is identical.
1325
+ // 2026-09-23: repointed from gpt-5.3-codex-spark, which codex-cli 0.155.1
1326
+ // no longer serves (~/.codex/models_cache.json visibility=list; the
1327
+ // verify Codex Models check reported it). Same shape as #5091 option A:
1328
+ // the id stays (it holds the arm's outcome history), only the slug and
1329
+ // the metadata describing it move.
1330
+ // WHY gpt-5.6-luna: this id is the codex fast/spark tier. The served
1331
+ // fast models are the two "luna" variants (codex catalog: gpt-5.6-luna
1332
+ // "Older fast and efficient model"; gpt-6-luna "Fast and affordable model
1333
+ // for easier tasks"). gpt-6-luna is the cheaper of the two, so it takes
1334
+ // the mini id; this id takes gpt-5.6-luna.
1335
+ // Context window, max output and pricing are models.dev's figures for
1336
+ // this slug (snapshot 2026-09-21); the codex cache reports a 272K default
1337
+ // window. reasoning/codeGeneration/speed are tier positions CARRIED OVER
1338
+ // from the replaced entry, not a measurement of this slug; `cost` follows
1339
+ // the registry's price scale (9, as for $0.3/$1 openrouter-qwen-coder;
1340
+ // only the free model scores 10) — spark's 7 described a $1.75/$14 slug.
1331
1341
  // ROUTING CONSEQUENCE: `resolve-model-for-tier` ranks the balanced tier
1332
1342
  // by codeGeneration and breaks the 10/10/10 tie on the higher `cost`
1333
- // score, so this entry (cost 7) wins the balanced codex tier over
1334
- // codex-5.3 (5) and gpt-5.5 (4). It already did; what changed is that
1335
- // the winner now runs (spark) instead of being rejected (gpt-5.2-codex).
1336
- // `resolve-model-for-tier.test.ts` pins this so a rescore is a visible
1337
- // decision, not a side effect.
1338
- notes: "GPT-5.3 Codex Spark (models.dev 2026-08-31); fast codex-tuned tier below GPT-5.4; 128K context; sandboxed execution environment",
1339
- pricing: { inputPer1M: 1.75, outputPer1M: 14 },
1340
- qualityScores: { reasoning: 9, codeGeneration: 10, speed: 8, cost: 7 },
1341
- maxOutputTokens: 32e3,
1343
+ // score, so this entry (now cost 9) still wins the balanced codex tier
1344
+ // over codex-5.3 (5) and gpt-5.5 (4). `resolve-model-for-tier.test.ts`
1345
+ // pins it so a rescore is a visible decision, not a side effect.
1346
+ notes: 'GPT-5.6 Luna (models.dev 2026-09-21; codex catalog: "older fast and efficient model"); fast codex tier; served by codex-cli 0.155.1; 1.05M context (codex cache default window 272K)',
1347
+ pricing: { inputPer1M: 0.2, outputPer1M: 1.2 },
1348
+ qualityScores: { reasoning: 9, codeGeneration: 10, speed: 8, cost: 9 },
1349
+ maxOutputTokens: 128e3,
1342
1350
  cliName: "codex",
1343
- cliModelName: "gpt-5.3-codex-spark",
1351
+ cliModelName: "gpt-5.6-luna",
1344
1352
  unsupportedParameters: ["temperature"],
1345
1353
  maxTokensParam: "max_completion_tokens"
1346
1354
  },
1347
1355
  {
1348
1356
  id: "codex-5.1-mini",
1349
- displayName: "GPT-5.4 Mini",
1357
+ displayName: "GPT-6 Luna",
1350
1358
  provider: "openai",
1351
- contextWindow: 4e5,
1359
+ contextWindow: 105e4,
1352
1360
  outputModalities: ["text", "structured_json", "code"],
1353
1361
  inputModalities: ["text", "image", "code"],
1354
1362
  toolCapabilities: [
@@ -1360,19 +1368,25 @@ var DEFAULT_MODEL_CAPABILITIES = {
1360
1368
  ],
1361
1369
  specialFeatures: ["streaming"],
1362
1370
  constraints: ["Sandboxed execution only", "No native image/audio/video generation"],
1363
- // #5091: repointed from o3-mini, which codex 0.146.0 no longer serves
1364
- // (~/.codex/models_cache.json visibility=list). Context window, max
1365
- // output and pricing are models.dev's figures for this slug (snapshot
1366
- // 2026-08-31). Quality scores are the codex arm's tier positions carried
1367
- // over from the replaced entry, not a measurement of this slug; `cost`
1368
- // follows the registry's own price scale ($1/$5 haiku and $0.5/$3
1369
- // gemini-3-flash both score 9, and $0.75/$4.5 sits between them).
1370
- notes: "GPT-5.4 Mini (models.dev 2026-08-31); compact codex tier; fast and cost-effective for code tasks; 400K context",
1371
- pricing: { inputPer1M: 0.75, outputPer1M: 4.5 },
1371
+ // 2026-09-23: repointed from gpt-5.4-mini, which codex-cli 0.155.1 no
1372
+ // longer serves (~/.codex/models_cache.json visibility=list); #5091 had
1373
+ // repointed it from o3-mini. WHY gpt-6-luna: it is the smallest served
1374
+ // model — $0.1/$0.5 per 1M, below gpt-5.6-luna's $0.2/$1.2 — and the
1375
+ // codex catalog calls it "Fast and affordable model for easier tasks".
1376
+ // SOURCE: the committed models.dev snapshot (2026-09-21) and generated
1377
+ // catalogue (2026-09-20) predate gpt-6-luna. Context window, max output
1378
+ // and pricing are the live models.dev / LiteLLM figures for
1379
+ // `openai/gpt-6-luna` as read by `pnpm build:registry` on 2026-09-23
1380
+ // (LiteLLM: 922K max input); the codex cache reports a 272K default
1381
+ // window. Quality scores are the codex arm's tier positions carried
1382
+ // over, not a measurement of this slug; `cost` stays 9 on the registry's
1383
+ // price scale (only the free model scores 10).
1384
+ notes: 'GPT-6 Luna (models.dev/LiteLLM 2026-09-23; codex catalog: "fast and affordable model for easier tasks"); compact codex tier; served by codex-cli 0.155.1; 1.05M context (codex cache default window 272K)',
1385
+ pricing: { inputPer1M: 0.1, outputPer1M: 0.5 },
1372
1386
  qualityScores: { reasoning: 7, codeGeneration: 8, speed: 9, cost: 9 },
1373
1387
  maxOutputTokens: 128e3,
1374
1388
  cliName: "codex",
1375
- cliModelName: "gpt-5.4-mini",
1389
+ cliModelName: "gpt-6-luna",
1376
1390
  unsupportedParameters: ["temperature"],
1377
1391
  maxTokensParam: "max_completion_tokens"
1378
1392
  },
@@ -2628,7 +2642,7 @@ function setDefaultRegistry(registry) {
2628
2642
  }
2629
2643
  async function reloadDefaultRegistry() {
2630
2644
  globalRegistry = buildDefaultRegistry();
2631
- const { resetGlobalRegistry } = await import("./unified-registry-YF3B3PDU.js");
2645
+ const { resetGlobalRegistry } = await import("./unified-registry-J2PCYXUU.js");
2632
2646
  resetGlobalRegistry();
2633
2647
  return globalRegistry;
2634
2648
  }
@@ -7185,6 +7199,14 @@ function contextToFeatures(context) {
7185
7199
  context.timePressure
7186
7200
  ];
7187
7201
  }
7202
+ var BANDIT_INTERCEPT_FEATURES = ["timePressure"];
7203
+ var BANDIT_INTERCEPT_NOTE = "intercept: constant 0.5, per-arm bias, not a signal (#4875)";
7204
+ function isBanditInterceptFeature(feature) {
7205
+ return BANDIT_INTERCEPT_FEATURES.includes(feature);
7206
+ }
7207
+ function formatBanditFeatureLabel(feature) {
7208
+ return isBanditInterceptFeature(feature) ? `${feature} (intercept)` : feature;
7209
+ }
7188
7210
  function matVecMul(A, x) {
7189
7211
  const result = [];
7190
7212
  for (const row of A) {
@@ -11378,6 +11400,8 @@ function taskProfileToBanditContext(profile, budgetUtilization) {
11378
11400
  // information, but two DIFFERENT constants across live paths let the bandit
11379
11401
  // use the value as a path indicator — accidental signal rather than none.
11380
11402
  // Neutral, and equal to what the replay paths use, is the honest default.
11403
+ // Being constant, it is the per-arm intercept (no bias column exists), so
11404
+ // it must stay equal across builders (`time-pressure-agreement.test.ts`).
11381
11405
  timePressure: NEUTRAL_BANDIT_FEATURE
11382
11406
  };
11383
11407
  }
@@ -15870,7 +15894,7 @@ var CompositeRouter = class _CompositeRouter {
15870
15894
  */
15871
15895
  async consultUnifiedContext(task) {
15872
15896
  try {
15873
- const { getContextForTask, inferTaskCategory } = await import("./context-retriever-CC3W7XS6.js");
15897
+ const { getContextForTask, inferTaskCategory } = await import("./context-retriever-VRAIKZTE.js");
15874
15898
  const ctx = await getContextForTask({
15875
15899
  task: task.content,
15876
15900
  category: inferTaskCategory(task.content),
@@ -17431,6 +17455,10 @@ export {
17431
17455
  DEFAULT_TOPSIS_CONFIG,
17432
17456
  DEFAULT_MODEL_PROFILES,
17433
17457
  TopsisRouter,
17458
+ BANDIT_INTERCEPT_FEATURES,
17459
+ BANDIT_INTERCEPT_NOTE,
17460
+ isBanditInterceptFeature,
17461
+ formatBanditFeatureLabel,
17434
17462
  LinUCBBandit,
17435
17463
  DEFAULT_PREFERENCE_ROUTER_CONFIG,
17436
17464
  PreferenceRouterConfigSchema,
@@ -17501,4 +17529,4 @@ export {
17501
17529
  AgentCapability,
17502
17530
  OrchestratorError
17503
17531
  };
17504
- //# sourceMappingURL=chunk-HXOEF3YP.js.map
17532
+ //# sourceMappingURL=chunk-OMIR6ISN.js.map