agent-relay 4.0.40 → 6.0.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 (217) hide show
  1. package/dist/index.cjs +599 -197
  2. package/dist/packages/sdk/src/provisioner/local-jwks.d.ts +25 -0
  3. package/dist/packages/sdk/src/provisioner/local-jwks.d.ts.map +1 -0
  4. package/dist/packages/sdk/src/provisioner/local-jwks.js +70 -0
  5. package/dist/packages/sdk/src/provisioner/local-jwks.js.map +1 -0
  6. package/dist/packages/sdk/src/provisioner/token.d.ts +6 -3
  7. package/dist/packages/sdk/src/provisioner/token.d.ts.map +1 -1
  8. package/dist/packages/sdk/src/provisioner/token.js +11 -8
  9. package/dist/packages/sdk/src/provisioner/token.js.map +1 -1
  10. package/dist/src/cli/commands/on/provision.d.ts +2 -1
  11. package/dist/src/cli/commands/on/provision.d.ts.map +1 -1
  12. package/dist/src/cli/commands/on/provision.js +5 -4
  13. package/dist/src/cli/commands/on/provision.js.map +1 -1
  14. package/dist/src/cli/commands/on/services.d.ts +1 -0
  15. package/dist/src/cli/commands/on/services.d.ts.map +1 -1
  16. package/dist/src/cli/commands/on/services.js +9 -0
  17. package/dist/src/cli/commands/on/services.js.map +1 -1
  18. package/dist/src/cli/commands/on/start.d.ts +6 -3
  19. package/dist/src/cli/commands/on/start.d.ts.map +1 -1
  20. package/dist/src/cli/commands/on/start.js +310 -297
  21. package/dist/src/cli/commands/on/start.js.map +1 -1
  22. package/dist/src/cli/commands/on/token.d.ts +3 -1
  23. package/dist/src/cli/commands/on/token.d.ts.map +1 -1
  24. package/dist/src/cli/commands/on/token.js +3 -3
  25. package/dist/src/cli/commands/on/token.js.map +1 -1
  26. package/node_modules/@agent-relay/broker-darwin-arm64/README.md +11 -0
  27. package/node_modules/@agent-relay/broker-darwin-arm64/package.json +17 -0
  28. package/node_modules/@agent-relay/broker-darwin-x64/README.md +11 -0
  29. package/node_modules/@agent-relay/broker-darwin-x64/bin/.gitkeep +0 -0
  30. package/node_modules/@agent-relay/broker-darwin-x64/package.json +17 -0
  31. package/node_modules/@agent-relay/broker-linux-arm64/README.md +12 -0
  32. package/node_modules/@agent-relay/broker-linux-arm64/bin/.gitkeep +0 -0
  33. package/node_modules/@agent-relay/broker-linux-arm64/package.json +17 -0
  34. package/node_modules/@agent-relay/broker-linux-x64/README.md +12 -0
  35. package/node_modules/@agent-relay/broker-linux-x64/bin/.gitkeep +0 -0
  36. package/node_modules/@agent-relay/broker-linux-x64/package.json +17 -0
  37. package/node_modules/@agent-relay/broker-win32-x64/README.md +11 -0
  38. package/node_modules/@agent-relay/broker-win32-x64/bin/.gitkeep +0 -0
  39. package/node_modules/@agent-relay/broker-win32-x64/package.json +17 -0
  40. package/node_modules/@agent-relay/cloud/package.json +2 -2
  41. package/node_modules/@agent-relay/config/dist/cli-registry.generated.d.ts +353 -157
  42. package/node_modules/@agent-relay/config/dist/cli-registry.generated.d.ts.map +1 -1
  43. package/node_modules/@agent-relay/config/dist/cli-registry.generated.js +356 -160
  44. package/node_modules/@agent-relay/config/dist/cli-registry.generated.js.map +1 -1
  45. package/node_modules/@agent-relay/config/package.json +1 -1
  46. package/node_modules/@agent-relay/hooks/package.json +4 -4
  47. package/node_modules/@agent-relay/sdk/dist/broker-path.d.ts +18 -7
  48. package/node_modules/@agent-relay/sdk/dist/broker-path.d.ts.map +1 -1
  49. package/node_modules/@agent-relay/sdk/dist/broker-path.js +92 -20
  50. package/node_modules/@agent-relay/sdk/dist/broker-path.js.map +1 -1
  51. package/node_modules/@agent-relay/sdk/dist/client.d.ts.map +1 -1
  52. package/node_modules/@agent-relay/sdk/dist/client.js +9 -2
  53. package/node_modules/@agent-relay/sdk/dist/client.js.map +1 -1
  54. package/node_modules/@agent-relay/sdk/dist/provisioner/__tests__/audit.test.js +2 -2
  55. package/node_modules/@agent-relay/sdk/dist/provisioner/__tests__/audit.test.js.map +1 -1
  56. package/node_modules/@agent-relay/sdk/dist/provisioner/__tests__/token-factory.test.js +29 -17
  57. package/node_modules/@agent-relay/sdk/dist/provisioner/__tests__/token-factory.test.js.map +1 -1
  58. package/node_modules/@agent-relay/sdk/dist/provisioner/__tests__/token.test.js +8 -3
  59. package/node_modules/@agent-relay/sdk/dist/provisioner/__tests__/token.test.js.map +1 -1
  60. package/node_modules/@agent-relay/sdk/dist/provisioner/index.d.ts +1 -0
  61. package/node_modules/@agent-relay/sdk/dist/provisioner/index.d.ts.map +1 -1
  62. package/node_modules/@agent-relay/sdk/dist/provisioner/index.js +5 -2
  63. package/node_modules/@agent-relay/sdk/dist/provisioner/index.js.map +1 -1
  64. package/node_modules/@agent-relay/sdk/dist/provisioner/local-jwks.d.ts +25 -0
  65. package/node_modules/@agent-relay/sdk/dist/provisioner/local-jwks.d.ts.map +1 -0
  66. package/node_modules/@agent-relay/sdk/dist/provisioner/local-jwks.js +70 -0
  67. package/node_modules/@agent-relay/sdk/dist/provisioner/local-jwks.js.map +1 -0
  68. package/node_modules/@agent-relay/sdk/dist/provisioner/token.d.ts +6 -3
  69. package/node_modules/@agent-relay/sdk/dist/provisioner/token.d.ts.map +1 -1
  70. package/node_modules/@agent-relay/sdk/dist/provisioner/token.js +11 -8
  71. package/node_modules/@agent-relay/sdk/dist/provisioner/token.js.map +1 -1
  72. package/node_modules/@agent-relay/sdk/dist/provisioner/types.d.ts +3 -2
  73. package/node_modules/@agent-relay/sdk/dist/provisioner/types.d.ts.map +1 -1
  74. package/node_modules/@agent-relay/sdk/dist/workflows/__tests__/sibling-links.test.d.ts +2 -0
  75. package/node_modules/@agent-relay/sdk/dist/workflows/__tests__/sibling-links.test.d.ts.map +1 -0
  76. package/node_modules/@agent-relay/sdk/dist/workflows/__tests__/sibling-links.test.js +166 -0
  77. package/node_modules/@agent-relay/sdk/dist/workflows/__tests__/sibling-links.test.js.map +1 -0
  78. package/node_modules/@agent-relay/sdk/dist/workflows/index.d.ts +2 -0
  79. package/node_modules/@agent-relay/sdk/dist/workflows/index.d.ts.map +1 -1
  80. package/node_modules/@agent-relay/sdk/dist/workflows/index.js +1 -0
  81. package/node_modules/@agent-relay/sdk/dist/workflows/index.js.map +1 -1
  82. package/node_modules/@agent-relay/sdk/dist/workflows/runner.d.ts.map +1 -1
  83. package/node_modules/@agent-relay/sdk/dist/workflows/runner.js +18 -1
  84. package/node_modules/@agent-relay/sdk/dist/workflows/runner.js.map +1 -1
  85. package/node_modules/@agent-relay/sdk/dist/workflows/sibling-links.d.ts +100 -0
  86. package/node_modules/@agent-relay/sdk/dist/workflows/sibling-links.d.ts.map +1 -0
  87. package/node_modules/@agent-relay/sdk/dist/workflows/sibling-links.js +205 -0
  88. package/node_modules/@agent-relay/sdk/dist/workflows/sibling-links.js.map +1 -0
  89. package/node_modules/@agent-relay/sdk/package.json +10 -3
  90. package/node_modules/@agent-relay/telemetry/package.json +1 -1
  91. package/node_modules/@agent-relay/trajectory/package.json +2 -2
  92. package/node_modules/@agent-relay/user-directory/package.json +2 -2
  93. package/node_modules/@agent-relay/utils/package.json +2 -2
  94. package/node_modules/@aws-sdk/core/package.json +5 -5
  95. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  96. package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
  97. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  98. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  99. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  100. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  101. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  102. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  103. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +4 -4
  104. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +5 -5
  105. package/node_modules/@aws-sdk/middleware-user-agent/package.json +4 -4
  106. package/node_modules/@aws-sdk/nested-clients/package.json +14 -14
  107. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  108. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  109. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  110. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +0 -2
  111. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +0 -2
  112. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  113. package/node_modules/@nodable/entities/README.md +41 -0
  114. package/node_modules/@nodable/entities/package.json +54 -0
  115. package/node_modules/@nodable/entities/src/EntityDecoder.js +543 -0
  116. package/node_modules/@nodable/entities/src/EntityEncoder.js +194 -0
  117. package/node_modules/@nodable/entities/src/entities.js +1177 -0
  118. package/node_modules/@nodable/entities/src/entityTries.js +49 -0
  119. package/node_modules/@nodable/entities/src/index.d.ts +264 -0
  120. package/node_modules/@nodable/entities/src/index.js +29 -0
  121. package/node_modules/@smithy/core/package.json +2 -2
  122. package/node_modules/@smithy/middleware-endpoint/package.json +3 -3
  123. package/node_modules/@smithy/middleware-retry/package.json +4 -4
  124. package/node_modules/@smithy/middleware-serde/package.json +2 -2
  125. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +27 -16
  126. package/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +5 -0
  127. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +22 -16
  128. package/node_modules/@smithy/node-http-handler/dist-types/http2/ClientHttp2SessionRef.d.ts +4 -0
  129. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +2 -4
  130. package/node_modules/@smithy/node-http-handler/package.json +1 -1
  131. package/node_modules/@smithy/smithy-client/package.json +4 -4
  132. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
  133. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  134. package/node_modules/@smithy/util-retry/dist-cjs/index.js +20 -10
  135. package/node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js +20 -10
  136. package/node_modules/@smithy/util-retry/dist-types/StandardRetryStrategy.d.ts +12 -4
  137. package/node_modules/@smithy/util-retry/package.json +1 -1
  138. package/node_modules/@smithy/util-stream/package.json +2 -2
  139. package/node_modules/fast-xml-parser/CHANGELOG.md +53 -0
  140. package/node_modules/fast-xml-parser/README.md +8 -28
  141. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js +1 -1
  142. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +1 -1
  143. package/node_modules/fast-xml-parser/lib/fxp.cjs +1 -1
  144. package/node_modules/fast-xml-parser/lib/fxp.d.cts +172 -6
  145. package/node_modules/fast-xml-parser/lib/fxp.min.js +1 -1
  146. package/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -1
  147. package/node_modules/fast-xml-parser/lib/fxparser.min.js +1 -1
  148. package/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -1
  149. package/node_modules/fast-xml-parser/package.json +5 -4
  150. package/node_modules/fast-xml-parser/src/fxp.d.ts +162 -3
  151. package/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +2 -5
  152. package/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +15 -11
  153. package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +168 -244
  154. package/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +1 -1
  155. package/package.json +9 -10
  156. package/packages/cloud/package.json +2 -2
  157. package/packages/config/dist/cli-registry.generated.d.ts +353 -157
  158. package/packages/config/dist/cli-registry.generated.d.ts.map +1 -1
  159. package/packages/config/dist/cli-registry.generated.js +356 -160
  160. package/packages/config/dist/cli-registry.generated.js.map +1 -1
  161. package/packages/config/package.json +1 -1
  162. package/packages/hooks/package.json +4 -4
  163. package/packages/sdk/dist/broker-path.d.ts +18 -7
  164. package/packages/sdk/dist/broker-path.d.ts.map +1 -1
  165. package/packages/sdk/dist/broker-path.js +92 -20
  166. package/packages/sdk/dist/broker-path.js.map +1 -1
  167. package/packages/sdk/dist/client.d.ts.map +1 -1
  168. package/packages/sdk/dist/client.js +9 -2
  169. package/packages/sdk/dist/client.js.map +1 -1
  170. package/packages/sdk/dist/provisioner/__tests__/audit.test.js +2 -2
  171. package/packages/sdk/dist/provisioner/__tests__/audit.test.js.map +1 -1
  172. package/packages/sdk/dist/provisioner/__tests__/token-factory.test.js +29 -17
  173. package/packages/sdk/dist/provisioner/__tests__/token-factory.test.js.map +1 -1
  174. package/packages/sdk/dist/provisioner/__tests__/token.test.js +8 -3
  175. package/packages/sdk/dist/provisioner/__tests__/token.test.js.map +1 -1
  176. package/packages/sdk/dist/provisioner/index.d.ts +1 -0
  177. package/packages/sdk/dist/provisioner/index.d.ts.map +1 -1
  178. package/packages/sdk/dist/provisioner/index.js +5 -2
  179. package/packages/sdk/dist/provisioner/index.js.map +1 -1
  180. package/packages/sdk/dist/provisioner/local-jwks.d.ts +25 -0
  181. package/packages/sdk/dist/provisioner/local-jwks.d.ts.map +1 -0
  182. package/packages/sdk/dist/provisioner/local-jwks.js +70 -0
  183. package/packages/sdk/dist/provisioner/local-jwks.js.map +1 -0
  184. package/packages/sdk/dist/provisioner/token.d.ts +6 -3
  185. package/packages/sdk/dist/provisioner/token.d.ts.map +1 -1
  186. package/packages/sdk/dist/provisioner/token.js +11 -8
  187. package/packages/sdk/dist/provisioner/token.js.map +1 -1
  188. package/packages/sdk/dist/provisioner/types.d.ts +3 -2
  189. package/packages/sdk/dist/provisioner/types.d.ts.map +1 -1
  190. package/packages/sdk/dist/workflows/__tests__/sibling-links.test.d.ts +2 -0
  191. package/packages/sdk/dist/workflows/__tests__/sibling-links.test.d.ts.map +1 -0
  192. package/packages/sdk/dist/workflows/__tests__/sibling-links.test.js +166 -0
  193. package/packages/sdk/dist/workflows/__tests__/sibling-links.test.js.map +1 -0
  194. package/packages/sdk/dist/workflows/index.d.ts +2 -0
  195. package/packages/sdk/dist/workflows/index.d.ts.map +1 -1
  196. package/packages/sdk/dist/workflows/index.js +1 -0
  197. package/packages/sdk/dist/workflows/index.js.map +1 -1
  198. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -1
  199. package/packages/sdk/dist/workflows/runner.js +18 -1
  200. package/packages/sdk/dist/workflows/runner.js.map +1 -1
  201. package/packages/sdk/dist/workflows/sibling-links.d.ts +100 -0
  202. package/packages/sdk/dist/workflows/sibling-links.d.ts.map +1 -0
  203. package/packages/sdk/dist/workflows/sibling-links.js +205 -0
  204. package/packages/sdk/dist/workflows/sibling-links.js.map +1 -0
  205. package/packages/sdk/package.json +10 -3
  206. package/packages/telemetry/package.json +1 -1
  207. package/packages/trajectory/package.json +2 -2
  208. package/packages/user-directory/package.json +2 -2
  209. package/packages/utils/package.json +2 -2
  210. package/scripts/postinstall.js +9 -146
  211. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  212. package/bin/agent-relay-broker-darwin-x64 +0 -0
  213. package/bin/agent-relay-broker-linux-arm64 +0 -0
  214. package/bin/agent-relay-broker-linux-x64 +0 -0
  215. package/node_modules/fast-xml-parser/lib/pem.d.cts +0 -148
  216. package/node_modules/fast-xml-parser/src/pem.d.ts +0 -135
  217. /package/{bin → node_modules/@agent-relay/broker-darwin-arm64/bin}/.gitkeep +0 -0
@@ -13,10 +13,10 @@
13
13
  export const CLIVersions = {
14
14
  /** Claude Code v2.1.72 */
15
15
  CLAUDE: '2.1.72',
16
- /** Codex CLI v0.114.0 */
17
- CODEX: '0.114.0',
18
- /** Gemini CLI v0.33.0 */
19
- GEMINI: '0.33.0',
16
+ /** Codex CLI v0.124.0 */
17
+ CODEX: '0.124.0',
18
+ /** Gemini CLI v0.39.1 */
19
+ GEMINI: '0.39.1',
20
20
  /** Cursor v2026.02.27-e7d2ef6 */
21
21
  CURSOR: '2026.02.27-e7d2ef6',
22
22
  /** Droid v0.1.0 */
@@ -56,7 +56,7 @@ export const ClaudeModels = {
56
56
  * Codex CLI model identifiers.
57
57
  */
58
58
  export const CodexModels = {
59
- /** GPT-5.4 — Latest frontier agentic coding model (default) */
59
+ /** GPT-5.4 — Frontier model for complex coding, research, and real-world work. (default) */
60
60
  GPT_5_4: 'gpt-5.4',
61
61
  /** GPT-5.3 Codex — Frontier agentic coding model */
62
62
  GPT_5_3_CODEX: 'gpt-5.3-codex',
@@ -90,94 +90,192 @@ export const GeminiModels = {
90
90
  * Cursor model identifiers.
91
91
  */
92
92
  export const CursorModels = {
93
- /** Claude 4.6 Opus (Thinking) (default) */
94
- OPUS_4_6_THINKING: 'opus-4.6-thinking',
95
- /** Claude 4.6 Opus */
96
- OPUS_4_6: 'opus-4.6',
97
- /** Claude 4.5 Opus */
98
- OPUS_4_5: 'opus-4.5',
99
- /** Claude 4.5 Opus (Thinking) */
100
- OPUS_4_5_THINKING: 'opus-4.5-thinking',
101
- /** Claude 4.6 Sonnet */
102
- SONNET_4_6: 'sonnet-4.6',
103
- /** Claude 4.6 Sonnet (Thinking) */
104
- SONNET_4_6_THINKING: 'sonnet-4.6-thinking',
105
- /** Claude 4.5 Sonnet */
106
- SONNET_4_5: 'sonnet-4.5',
107
- /** Claude 4.5 Sonnet (Thinking) */
108
- SONNET_4_5_THINKING: 'sonnet-4.5-thinking',
93
+ /** Composer 2 Fast (default) */
94
+ COMPOSER_2_FAST: 'composer-2-fast',
95
+ /** Composer 2 */
96
+ COMPOSER_2: 'composer-2',
109
97
  /** Composer 1.5 */
110
98
  COMPOSER_1_5: 'composer-1.5',
111
- /** Composer 1 */
112
- COMPOSER_1: 'composer-1',
113
- /** GPT-5.4 Extra High */
114
- GPT_5_4_XHIGH: 'gpt-5.4-xhigh',
115
- /** GPT-5.4 Extra High Fast */
116
- GPT_5_4_XHIGH_FAST: 'gpt-5.4-xhigh-fast',
117
- /** GPT-5.4 High */
99
+ /** Codex 5.3 Low */
100
+ GPT_5_3_CODEX_LOW: 'gpt-5.3-codex-low',
101
+ /** Codex 5.3 Low Fast */
102
+ GPT_5_3_CODEX_LOW_FAST: 'gpt-5.3-codex-low-fast',
103
+ /** Codex 5.3 */
104
+ GPT_5_3_CODEX: 'gpt-5.3-codex',
105
+ /** Codex 5.3 Fast */
106
+ GPT_5_3_CODEX_FAST: 'gpt-5.3-codex-fast',
107
+ /** Codex 5.3 High */
108
+ GPT_5_3_CODEX_HIGH: 'gpt-5.3-codex-high',
109
+ /** Codex 5.3 High Fast */
110
+ GPT_5_3_CODEX_HIGH_FAST: 'gpt-5.3-codex-high-fast',
111
+ /** Codex 5.3 Extra High */
112
+ GPT_5_3_CODEX_XHIGH: 'gpt-5.3-codex-xhigh',
113
+ /** Codex 5.3 Extra High Fast */
114
+ GPT_5_3_CODEX_XHIGH_FAST: 'gpt-5.3-codex-xhigh-fast',
115
+ /** GPT-5.2 */
116
+ GPT_5_2: 'gpt-5.2',
117
+ /** Codex 5.3 Spark Low */
118
+ GPT_5_3_CODEX_SPARK_PREVIEW_LOW: 'gpt-5.3-codex-spark-preview-low',
119
+ /** Codex 5.3 Spark */
120
+ GPT_5_3_CODEX_SPARK_PREVIEW: 'gpt-5.3-codex-spark-preview',
121
+ /** Codex 5.3 Spark High */
122
+ GPT_5_3_CODEX_SPARK_PREVIEW_HIGH: 'gpt-5.3-codex-spark-preview-high',
123
+ /** Codex 5.3 Spark Extra High */
124
+ GPT_5_3_CODEX_SPARK_PREVIEW_XHIGH: 'gpt-5.3-codex-spark-preview-xhigh',
125
+ /** Codex 5.2 Low */
126
+ GPT_5_2_CODEX_LOW: 'gpt-5.2-codex-low',
127
+ /** Codex 5.2 Low Fast */
128
+ GPT_5_2_CODEX_LOW_FAST: 'gpt-5.2-codex-low-fast',
129
+ /** Codex 5.2 */
130
+ GPT_5_2_CODEX: 'gpt-5.2-codex',
131
+ /** Codex 5.2 Fast */
132
+ GPT_5_2_CODEX_FAST: 'gpt-5.2-codex-fast',
133
+ /** Codex 5.2 High */
134
+ GPT_5_2_CODEX_HIGH: 'gpt-5.2-codex-high',
135
+ /** Codex 5.2 High Fast */
136
+ GPT_5_2_CODEX_HIGH_FAST: 'gpt-5.2-codex-high-fast',
137
+ /** Codex 5.2 Extra High */
138
+ GPT_5_2_CODEX_XHIGH: 'gpt-5.2-codex-xhigh',
139
+ /** Codex 5.2 Extra High Fast */
140
+ GPT_5_2_CODEX_XHIGH_FAST: 'gpt-5.2-codex-xhigh-fast',
141
+ /** Codex 5.1 Max Low */
142
+ GPT_5_1_CODEX_MAX_LOW: 'gpt-5.1-codex-max-low',
143
+ /** Codex 5.1 Max Low Fast */
144
+ GPT_5_1_CODEX_MAX_LOW_FAST: 'gpt-5.1-codex-max-low-fast',
145
+ /** Codex 5.1 Max */
146
+ GPT_5_1_CODEX_MAX_MEDIUM: 'gpt-5.1-codex-max-medium',
147
+ /** Codex 5.1 Max Medium Fast */
148
+ GPT_5_1_CODEX_MAX_MEDIUM_FAST: 'gpt-5.1-codex-max-medium-fast',
149
+ /** Codex 5.1 Max High */
150
+ GPT_5_1_CODEX_MAX_HIGH: 'gpt-5.1-codex-max-high',
151
+ /** Codex 5.1 Max High Fast */
152
+ GPT_5_1_CODEX_MAX_HIGH_FAST: 'gpt-5.1-codex-max-high-fast',
153
+ /** Codex 5.1 Max Extra High */
154
+ GPT_5_1_CODEX_MAX_XHIGH: 'gpt-5.1-codex-max-xhigh',
155
+ /** Codex 5.1 Max Extra High Fast */
156
+ GPT_5_1_CODEX_MAX_XHIGH_FAST: 'gpt-5.1-codex-max-xhigh-fast',
157
+ /** Opus 4.7 1M High Thinking */
158
+ CLAUDE_OPUS_4_7_THINKING_HIGH: 'claude-opus-4-7-thinking-high',
159
+ /** GPT-5.4 1M High */
118
160
  GPT_5_4_HIGH: 'gpt-5.4-high',
119
161
  /** GPT-5.4 High Fast */
120
162
  GPT_5_4_HIGH_FAST: 'gpt-5.4-high-fast',
121
- /** GPT-5.4 */
163
+ /** GPT-5.4 Extra High Fast */
164
+ GPT_5_4_XHIGH_FAST: 'gpt-5.4-xhigh-fast',
165
+ /** Opus 4.6 1M Thinking Fast */
166
+ CLAUDE_4_6_OPUS_HIGH_THINKING_FAST: 'claude-4.6-opus-high-thinking-fast',
167
+ /** Sonnet 4.6 1M */
168
+ CLAUDE_4_6_SONNET_MEDIUM: 'claude-4.6-sonnet-medium',
169
+ /** Sonnet 4.6 1M Thinking */
170
+ CLAUDE_4_6_SONNET_MEDIUM_THINKING: 'claude-4.6-sonnet-medium-thinking',
171
+ /** Opus 4.7 1M Low */
172
+ CLAUDE_OPUS_4_7_LOW: 'claude-opus-4-7-low',
173
+ /** Opus 4.7 1M Medium */
174
+ CLAUDE_OPUS_4_7_MEDIUM: 'claude-opus-4-7-medium',
175
+ /** Opus 4.7 1M High */
176
+ CLAUDE_OPUS_4_7_HIGH: 'claude-opus-4-7-high',
177
+ /** Opus 4.7 1M */
178
+ CLAUDE_OPUS_4_7_XHIGH: 'claude-opus-4-7-xhigh',
179
+ /** Opus 4.7 1M Max */
180
+ CLAUDE_OPUS_4_7_MAX: 'claude-opus-4-7-max',
181
+ /** Opus 4.7 1M Low Thinking */
182
+ CLAUDE_OPUS_4_7_THINKING_LOW: 'claude-opus-4-7-thinking-low',
183
+ /** Opus 4.7 1M Medium Thinking */
184
+ CLAUDE_OPUS_4_7_THINKING_MEDIUM: 'claude-opus-4-7-thinking-medium',
185
+ /** Opus 4.7 1M Thinking */
186
+ CLAUDE_OPUS_4_7_THINKING_XHIGH: 'claude-opus-4-7-thinking-xhigh',
187
+ /** Opus 4.7 1M Max Thinking */
188
+ CLAUDE_OPUS_4_7_THINKING_MAX: 'claude-opus-4-7-thinking-max',
189
+ /** GPT-5.4 1M Low */
190
+ GPT_5_4_LOW: 'gpt-5.4-low',
191
+ /** GPT-5.4 1M */
122
192
  GPT_5_4_MEDIUM: 'gpt-5.4-medium',
123
193
  /** GPT-5.4 Fast */
124
194
  GPT_5_4_MEDIUM_FAST: 'gpt-5.4-medium-fast',
125
- /** GPT-5.4 Low */
126
- GPT_5_4_LOW: 'gpt-5.4-low',
127
- /** GPT-5.3 Codex Extra High */
128
- GPT_5_3_CODEX_XHIGH: 'gpt-5.3-codex-xhigh',
129
- /** GPT-5.3 Codex Extra High Fast */
130
- GPT_5_3_CODEX_XHIGH_FAST: 'gpt-5.3-codex-xhigh-fast',
131
- /** GPT-5.3 Codex High */
132
- GPT_5_3_CODEX_HIGH: 'gpt-5.3-codex-high',
133
- /** GPT-5.3 Codex High Fast */
134
- GPT_5_3_CODEX_HIGH_FAST: 'gpt-5.3-codex-high-fast',
135
- /** GPT-5.3 Codex */
136
- GPT_5_3_CODEX: 'gpt-5.3-codex',
137
- /** GPT-5.3 Codex Fast */
138
- GPT_5_3_CODEX_FAST: 'gpt-5.3-codex-fast',
139
- /** GPT-5.3 Codex Low */
140
- GPT_5_3_CODEX_LOW: 'gpt-5.3-codex-low',
141
- /** GPT-5.3 Codex Low Fast */
142
- GPT_5_3_CODEX_LOW_FAST: 'gpt-5.3-codex-low-fast',
143
- /** GPT-5.3 Codex Spark */
144
- GPT_5_3_CODEX_SPARK_PREVIEW: 'gpt-5.3-codex-spark-preview',
145
- /** GPT-5.2 Codex Extra High */
146
- GPT_5_2_CODEX_XHIGH: 'gpt-5.2-codex-xhigh',
147
- /** GPT-5.2 Codex Extra High Fast */
148
- GPT_5_2_CODEX_XHIGH_FAST: 'gpt-5.2-codex-xhigh-fast',
149
- /** GPT-5.2 Codex High */
150
- GPT_5_2_CODEX_HIGH: 'gpt-5.2-codex-high',
151
- /** GPT-5.2 Codex High Fast */
152
- GPT_5_2_CODEX_HIGH_FAST: 'gpt-5.2-codex-high-fast',
153
- /** GPT-5.2 Codex */
154
- GPT_5_2_CODEX: 'gpt-5.2-codex',
155
- /** GPT-5.2 Codex Fast */
156
- GPT_5_2_CODEX_FAST: 'gpt-5.2-codex-fast',
157
- /** GPT-5.2 Codex Low */
158
- GPT_5_2_CODEX_LOW: 'gpt-5.2-codex-low',
159
- /** GPT-5.2 Codex Low Fast */
160
- GPT_5_2_CODEX_LOW_FAST: 'gpt-5.2-codex-low-fast',
161
- /** GPT-5.2 */
162
- GPT_5_2: 'gpt-5.2',
195
+ /** GPT-5.4 1M Extra High */
196
+ GPT_5_4_XHIGH: 'gpt-5.4-xhigh',
197
+ /** Opus 4.6 1M */
198
+ CLAUDE_4_6_OPUS_HIGH: 'claude-4.6-opus-high',
199
+ /** Opus 4.6 1M Max */
200
+ CLAUDE_4_6_OPUS_MAX: 'claude-4.6-opus-max',
201
+ /** Opus 4.6 1M Thinking */
202
+ CLAUDE_4_6_OPUS_HIGH_THINKING: 'claude-4.6-opus-high-thinking',
203
+ /** Opus 4.6 1M Max Thinking */
204
+ CLAUDE_4_6_OPUS_MAX_THINKING: 'claude-4.6-opus-max-thinking',
205
+ /** Opus 4.6 1M Max Thinking Fast */
206
+ CLAUDE_4_6_OPUS_MAX_THINKING_FAST: 'claude-4.6-opus-max-thinking-fast',
207
+ /** Opus 4.5 */
208
+ CLAUDE_4_5_OPUS_HIGH: 'claude-4.5-opus-high',
209
+ /** Opus 4.5 Thinking */
210
+ CLAUDE_4_5_OPUS_HIGH_THINKING: 'claude-4.5-opus-high-thinking',
211
+ /** GPT-5.2 Low */
212
+ GPT_5_2_LOW: 'gpt-5.2-low',
213
+ /** GPT-5.2 Low Fast */
214
+ GPT_5_2_LOW_FAST: 'gpt-5.2-low-fast',
215
+ /** GPT-5.2 Fast */
216
+ GPT_5_2_FAST: 'gpt-5.2-fast',
163
217
  /** GPT-5.2 High */
164
218
  GPT_5_2_HIGH: 'gpt-5.2-high',
165
- /** GPT-5.1 Codex Max */
166
- GPT_5_1_CODEX_MAX: 'gpt-5.1-codex-max',
167
- /** GPT-5.1 Codex Max High */
168
- GPT_5_1_CODEX_MAX_HIGH: 'gpt-5.1-codex-max-high',
169
- /** GPT-5.1 Codex Mini */
170
- GPT_5_1_CODEX_MINI: 'gpt-5.1-codex-mini',
171
- /** GPT-5.1 High */
172
- GPT_5_1_HIGH: 'gpt-5.1-high',
219
+ /** GPT-5.2 High Fast */
220
+ GPT_5_2_HIGH_FAST: 'gpt-5.2-high-fast',
221
+ /** GPT-5.2 Extra High */
222
+ GPT_5_2_XHIGH: 'gpt-5.2-xhigh',
223
+ /** GPT-5.2 Extra High Fast */
224
+ GPT_5_2_XHIGH_FAST: 'gpt-5.2-xhigh-fast',
173
225
  /** Gemini 3.1 Pro */
174
226
  GEMINI_3_1_PRO: 'gemini-3.1-pro',
175
- /** Gemini 3 Pro */
176
- GEMINI_3_PRO: 'gemini-3-pro',
227
+ /** GPT-5.4 Mini None */
228
+ GPT_5_4_MINI_NONE: 'gpt-5.4-mini-none',
229
+ /** GPT-5.4 Mini Low */
230
+ GPT_5_4_MINI_LOW: 'gpt-5.4-mini-low',
231
+ /** GPT-5.4 Mini */
232
+ GPT_5_4_MINI_MEDIUM: 'gpt-5.4-mini-medium',
233
+ /** GPT-5.4 Mini High */
234
+ GPT_5_4_MINI_HIGH: 'gpt-5.4-mini-high',
235
+ /** GPT-5.4 Mini Extra High */
236
+ GPT_5_4_MINI_XHIGH: 'gpt-5.4-mini-xhigh',
237
+ /** GPT-5.4 Nano None */
238
+ GPT_5_4_NANO_NONE: 'gpt-5.4-nano-none',
239
+ /** GPT-5.4 Nano Low */
240
+ GPT_5_4_NANO_LOW: 'gpt-5.4-nano-low',
241
+ /** GPT-5.4 Nano */
242
+ GPT_5_4_NANO_MEDIUM: 'gpt-5.4-nano-medium',
243
+ /** GPT-5.4 Nano High */
244
+ GPT_5_4_NANO_HIGH: 'gpt-5.4-nano-high',
245
+ /** GPT-5.4 Nano Extra High */
246
+ GPT_5_4_NANO_XHIGH: 'gpt-5.4-nano-xhigh',
247
+ /** Grok 4.20 */
248
+ GROK_4_20: 'grok-4-20',
249
+ /** Grok 4.20 Thinking */
250
+ GROK_4_20_THINKING: 'grok-4-20-thinking',
251
+ /** Sonnet 4.5 1M */
252
+ CLAUDE_4_5_SONNET: 'claude-4.5-sonnet',
253
+ /** Sonnet 4.5 1M Thinking */
254
+ CLAUDE_4_5_SONNET_THINKING: 'claude-4.5-sonnet-thinking',
255
+ /** GPT-5.1 Low */
256
+ GPT_5_1_LOW: 'gpt-5.1-low',
257
+ /** GPT-5.1 */
258
+ GPT_5_1: 'gpt-5.1',
259
+ /** GPT-5.1 High */
260
+ GPT_5_1_HIGH: 'gpt-5.1-high',
177
261
  /** Gemini 3 Flash */
178
262
  GEMINI_3_FLASH: 'gemini-3-flash',
179
- /** Grok */
180
- GROK: 'grok',
263
+ /** Codex 5.1 Mini Low */
264
+ GPT_5_1_CODEX_MINI_LOW: 'gpt-5.1-codex-mini-low',
265
+ /** Codex 5.1 Mini */
266
+ GPT_5_1_CODEX_MINI: 'gpt-5.1-codex-mini',
267
+ /** Codex 5.1 Mini High */
268
+ GPT_5_1_CODEX_MINI_HIGH: 'gpt-5.1-codex-mini-high',
269
+ /** Sonnet 4 */
270
+ CLAUDE_4_SONNET: 'claude-4-sonnet',
271
+ /** Sonnet 4 1M */
272
+ CLAUDE_4_SONNET_1M: 'claude-4-sonnet-1m',
273
+ /** Sonnet 4 Thinking */
274
+ CLAUDE_4_SONNET_THINKING: 'claude-4-sonnet-thinking',
275
+ /** Sonnet 4 1M Thinking */
276
+ CLAUDE_4_SONNET_1M_THINKING: 'claude-4-sonnet-1m-thinking',
277
+ /** GPT-5 Mini */
278
+ GPT_5_MINI: 'gpt-5-mini',
181
279
  /** Kimi K2.5 */
182
280
  KIMI_K2_5: 'kimi-k2.5',
183
281
  };
@@ -314,7 +412,7 @@ export const CLAUDE_MODEL_OPTIONS = [
314
412
  * Codex CLI model options for UI dropdowns.
315
413
  */
316
414
  export const CODEX_MODEL_OPTIONS = [
317
- { value: 'gpt-5.4', label: 'GPT-5.4 — Latest frontier agentic coding model', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
415
+ { value: 'gpt-5.4', label: 'GPT-5.4 — Frontier model for complex coding, research, and real-world work.', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
318
416
  { value: 'gpt-5.3-codex', label: 'GPT-5.3 Codex — Frontier agentic coding model', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
319
417
  { value: 'gpt-5.3-codex-spark', label: 'GPT-5.3 Codex Spark — Ultra-fast coding model', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
320
418
  { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex — Frontier agentic coding model', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
@@ -336,50 +434,99 @@ export const GEMINI_MODEL_OPTIONS = [
336
434
  * Cursor model options for UI dropdowns.
337
435
  */
338
436
  export const CURSOR_MODEL_OPTIONS = [
339
- { value: 'opus-4.6-thinking', label: 'Claude 4.6 Opus (Thinking)' },
340
- { value: 'opus-4.6', label: 'Claude 4.6 Opus' },
341
- { value: 'opus-4.5', label: 'Claude 4.5 Opus' },
342
- { value: 'opus-4.5-thinking', label: 'Claude 4.5 Opus (Thinking)' },
343
- { value: 'sonnet-4.6', label: 'Claude 4.6 Sonnet' },
344
- { value: 'sonnet-4.6-thinking', label: 'Claude 4.6 Sonnet (Thinking)' },
345
- { value: 'sonnet-4.5', label: 'Claude 4.5 Sonnet' },
346
- { value: 'sonnet-4.5-thinking', label: 'Claude 4.5 Sonnet (Thinking)' },
437
+ { value: 'composer-2-fast', label: 'Composer 2 Fast' },
438
+ { value: 'composer-2', label: 'Composer 2' },
347
439
  { value: 'composer-1.5', label: 'Composer 1.5' },
348
- { value: 'composer-1', label: 'Composer 1' },
349
- { value: 'gpt-5.4-xhigh', label: 'GPT-5.4 Extra High' },
350
- { value: 'gpt-5.4-xhigh-fast', label: 'GPT-5.4 Extra High Fast' },
351
- { value: 'gpt-5.4-high', label: 'GPT-5.4 High' },
440
+ { value: 'gpt-5.3-codex-low', label: 'Codex 5.3 Low' },
441
+ { value: 'gpt-5.3-codex-low-fast', label: 'Codex 5.3 Low Fast' },
442
+ { value: 'gpt-5.3-codex', label: 'Codex 5.3' },
443
+ { value: 'gpt-5.3-codex-fast', label: 'Codex 5.3 Fast' },
444
+ { value: 'gpt-5.3-codex-high', label: 'Codex 5.3 High' },
445
+ { value: 'gpt-5.3-codex-high-fast', label: 'Codex 5.3 High Fast' },
446
+ { value: 'gpt-5.3-codex-xhigh', label: 'Codex 5.3 Extra High' },
447
+ { value: 'gpt-5.3-codex-xhigh-fast', label: 'Codex 5.3 Extra High Fast' },
448
+ { value: 'gpt-5.2', label: 'GPT-5.2' },
449
+ { value: 'gpt-5.3-codex-spark-preview-low', label: 'Codex 5.3 Spark Low' },
450
+ { value: 'gpt-5.3-codex-spark-preview', label: 'Codex 5.3 Spark' },
451
+ { value: 'gpt-5.3-codex-spark-preview-high', label: 'Codex 5.3 Spark High' },
452
+ { value: 'gpt-5.3-codex-spark-preview-xhigh', label: 'Codex 5.3 Spark Extra High' },
453
+ { value: 'gpt-5.2-codex-low', label: 'Codex 5.2 Low' },
454
+ { value: 'gpt-5.2-codex-low-fast', label: 'Codex 5.2 Low Fast' },
455
+ { value: 'gpt-5.2-codex', label: 'Codex 5.2' },
456
+ { value: 'gpt-5.2-codex-fast', label: 'Codex 5.2 Fast' },
457
+ { value: 'gpt-5.2-codex-high', label: 'Codex 5.2 High' },
458
+ { value: 'gpt-5.2-codex-high-fast', label: 'Codex 5.2 High Fast' },
459
+ { value: 'gpt-5.2-codex-xhigh', label: 'Codex 5.2 Extra High' },
460
+ { value: 'gpt-5.2-codex-xhigh-fast', label: 'Codex 5.2 Extra High Fast' },
461
+ { value: 'gpt-5.1-codex-max-low', label: 'Codex 5.1 Max Low' },
462
+ { value: 'gpt-5.1-codex-max-low-fast', label: 'Codex 5.1 Max Low Fast' },
463
+ { value: 'gpt-5.1-codex-max-medium', label: 'Codex 5.1 Max' },
464
+ { value: 'gpt-5.1-codex-max-medium-fast', label: 'Codex 5.1 Max Medium Fast' },
465
+ { value: 'gpt-5.1-codex-max-high', label: 'Codex 5.1 Max High' },
466
+ { value: 'gpt-5.1-codex-max-high-fast', label: 'Codex 5.1 Max High Fast' },
467
+ { value: 'gpt-5.1-codex-max-xhigh', label: 'Codex 5.1 Max Extra High' },
468
+ { value: 'gpt-5.1-codex-max-xhigh-fast', label: 'Codex 5.1 Max Extra High Fast' },
469
+ { value: 'claude-opus-4-7-thinking-high', label: 'Opus 4.7 1M High Thinking' },
470
+ { value: 'gpt-5.4-high', label: 'GPT-5.4 1M High' },
352
471
  { value: 'gpt-5.4-high-fast', label: 'GPT-5.4 High Fast' },
353
- { value: 'gpt-5.4-medium', label: 'GPT-5.4' },
472
+ { value: 'gpt-5.4-xhigh-fast', label: 'GPT-5.4 Extra High Fast' },
473
+ { value: 'claude-4.6-opus-high-thinking-fast', label: 'Opus 4.6 1M Thinking Fast' },
474
+ { value: 'claude-4.6-sonnet-medium', label: 'Sonnet 4.6 1M' },
475
+ { value: 'claude-4.6-sonnet-medium-thinking', label: 'Sonnet 4.6 1M Thinking' },
476
+ { value: 'claude-opus-4-7-low', label: 'Opus 4.7 1M Low' },
477
+ { value: 'claude-opus-4-7-medium', label: 'Opus 4.7 1M Medium' },
478
+ { value: 'claude-opus-4-7-high', label: 'Opus 4.7 1M High' },
479
+ { value: 'claude-opus-4-7-xhigh', label: 'Opus 4.7 1M' },
480
+ { value: 'claude-opus-4-7-max', label: 'Opus 4.7 1M Max' },
481
+ { value: 'claude-opus-4-7-thinking-low', label: 'Opus 4.7 1M Low Thinking' },
482
+ { value: 'claude-opus-4-7-thinking-medium', label: 'Opus 4.7 1M Medium Thinking' },
483
+ { value: 'claude-opus-4-7-thinking-xhigh', label: 'Opus 4.7 1M Thinking' },
484
+ { value: 'claude-opus-4-7-thinking-max', label: 'Opus 4.7 1M Max Thinking' },
485
+ { value: 'gpt-5.4-low', label: 'GPT-5.4 1M Low' },
486
+ { value: 'gpt-5.4-medium', label: 'GPT-5.4 1M' },
354
487
  { value: 'gpt-5.4-medium-fast', label: 'GPT-5.4 Fast' },
355
- { value: 'gpt-5.4-low', label: 'GPT-5.4 Low' },
356
- { value: 'gpt-5.3-codex-xhigh', label: 'GPT-5.3 Codex Extra High' },
357
- { value: 'gpt-5.3-codex-xhigh-fast', label: 'GPT-5.3 Codex Extra High Fast' },
358
- { value: 'gpt-5.3-codex-high', label: 'GPT-5.3 Codex High' },
359
- { value: 'gpt-5.3-codex-high-fast', label: 'GPT-5.3 Codex High Fast' },
360
- { value: 'gpt-5.3-codex', label: 'GPT-5.3 Codex' },
361
- { value: 'gpt-5.3-codex-fast', label: 'GPT-5.3 Codex Fast' },
362
- { value: 'gpt-5.3-codex-low', label: 'GPT-5.3 Codex Low' },
363
- { value: 'gpt-5.3-codex-low-fast', label: 'GPT-5.3 Codex Low Fast' },
364
- { value: 'gpt-5.3-codex-spark-preview', label: 'GPT-5.3 Codex Spark' },
365
- { value: 'gpt-5.2-codex-xhigh', label: 'GPT-5.2 Codex Extra High' },
366
- { value: 'gpt-5.2-codex-xhigh-fast', label: 'GPT-5.2 Codex Extra High Fast' },
367
- { value: 'gpt-5.2-codex-high', label: 'GPT-5.2 Codex High' },
368
- { value: 'gpt-5.2-codex-high-fast', label: 'GPT-5.2 Codex High Fast' },
369
- { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex' },
370
- { value: 'gpt-5.2-codex-fast', label: 'GPT-5.2 Codex Fast' },
371
- { value: 'gpt-5.2-codex-low', label: 'GPT-5.2 Codex Low' },
372
- { value: 'gpt-5.2-codex-low-fast', label: 'GPT-5.2 Codex Low Fast' },
373
- { value: 'gpt-5.2', label: 'GPT-5.2' },
488
+ { value: 'gpt-5.4-xhigh', label: 'GPT-5.4 1M Extra High' },
489
+ { value: 'claude-4.6-opus-high', label: 'Opus 4.6 1M' },
490
+ { value: 'claude-4.6-opus-max', label: 'Opus 4.6 1M Max' },
491
+ { value: 'claude-4.6-opus-high-thinking', label: 'Opus 4.6 1M Thinking' },
492
+ { value: 'claude-4.6-opus-max-thinking', label: 'Opus 4.6 1M Max Thinking' },
493
+ { value: 'claude-4.6-opus-max-thinking-fast', label: 'Opus 4.6 1M Max Thinking Fast' },
494
+ { value: 'claude-4.5-opus-high', label: 'Opus 4.5' },
495
+ { value: 'claude-4.5-opus-high-thinking', label: 'Opus 4.5 Thinking' },
496
+ { value: 'gpt-5.2-low', label: 'GPT-5.2 Low' },
497
+ { value: 'gpt-5.2-low-fast', label: 'GPT-5.2 Low Fast' },
498
+ { value: 'gpt-5.2-fast', label: 'GPT-5.2 Fast' },
374
499
  { value: 'gpt-5.2-high', label: 'GPT-5.2 High' },
375
- { value: 'gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max' },
376
- { value: 'gpt-5.1-codex-max-high', label: 'GPT-5.1 Codex Max High' },
377
- { value: 'gpt-5.1-codex-mini', label: 'GPT-5.1 Codex Mini' },
378
- { value: 'gpt-5.1-high', label: 'GPT-5.1 High' },
500
+ { value: 'gpt-5.2-high-fast', label: 'GPT-5.2 High Fast' },
501
+ { value: 'gpt-5.2-xhigh', label: 'GPT-5.2 Extra High' },
502
+ { value: 'gpt-5.2-xhigh-fast', label: 'GPT-5.2 Extra High Fast' },
379
503
  { value: 'gemini-3.1-pro', label: 'Gemini 3.1 Pro' },
380
- { value: 'gemini-3-pro', label: 'Gemini 3 Pro' },
504
+ { value: 'gpt-5.4-mini-none', label: 'GPT-5.4 Mini None' },
505
+ { value: 'gpt-5.4-mini-low', label: 'GPT-5.4 Mini Low' },
506
+ { value: 'gpt-5.4-mini-medium', label: 'GPT-5.4 Mini' },
507
+ { value: 'gpt-5.4-mini-high', label: 'GPT-5.4 Mini High' },
508
+ { value: 'gpt-5.4-mini-xhigh', label: 'GPT-5.4 Mini Extra High' },
509
+ { value: 'gpt-5.4-nano-none', label: 'GPT-5.4 Nano None' },
510
+ { value: 'gpt-5.4-nano-low', label: 'GPT-5.4 Nano Low' },
511
+ { value: 'gpt-5.4-nano-medium', label: 'GPT-5.4 Nano' },
512
+ { value: 'gpt-5.4-nano-high', label: 'GPT-5.4 Nano High' },
513
+ { value: 'gpt-5.4-nano-xhigh', label: 'GPT-5.4 Nano Extra High' },
514
+ { value: 'grok-4-20', label: 'Grok 4.20' },
515
+ { value: 'grok-4-20-thinking', label: 'Grok 4.20 Thinking' },
516
+ { value: 'claude-4.5-sonnet', label: 'Sonnet 4.5 1M' },
517
+ { value: 'claude-4.5-sonnet-thinking', label: 'Sonnet 4.5 1M Thinking' },
518
+ { value: 'gpt-5.1-low', label: 'GPT-5.1 Low' },
519
+ { value: 'gpt-5.1', label: 'GPT-5.1' },
520
+ { value: 'gpt-5.1-high', label: 'GPT-5.1 High' },
381
521
  { value: 'gemini-3-flash', label: 'Gemini 3 Flash' },
382
- { value: 'grok', label: 'Grok' },
522
+ { value: 'gpt-5.1-codex-mini-low', label: 'Codex 5.1 Mini Low' },
523
+ { value: 'gpt-5.1-codex-mini', label: 'Codex 5.1 Mini' },
524
+ { value: 'gpt-5.1-codex-mini-high', label: 'Codex 5.1 Mini High' },
525
+ { value: 'claude-4-sonnet', label: 'Sonnet 4' },
526
+ { value: 'claude-4-sonnet-1m', label: 'Sonnet 4 1M' },
527
+ { value: 'claude-4-sonnet-thinking', label: 'Sonnet 4 Thinking' },
528
+ { value: 'claude-4-sonnet-1m-thinking', label: 'Sonnet 4 1M Thinking' },
529
+ { value: 'gpt-5-mini', label: 'GPT-5 Mini' },
383
530
  { value: 'kimi-k2.5', label: 'Kimi K2.5' },
384
531
  ];
385
532
  /**
@@ -456,7 +603,7 @@ export const CLAUDE_MODEL_METADATA = {
456
603
  * Codex CLI model metadata keyed by model id.
457
604
  */
458
605
  export const CODEX_MODEL_METADATA = {
459
- 'gpt-5.4': { value: 'gpt-5.4', label: 'GPT-5.4 — Latest frontier agentic coding model', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
606
+ 'gpt-5.4': { value: 'gpt-5.4', label: 'GPT-5.4 — Frontier model for complex coding, research, and real-world work.', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
460
607
  'gpt-5.3-codex': { value: 'gpt-5.3-codex', label: 'GPT-5.3 Codex — Frontier agentic coding model', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
461
608
  'gpt-5.3-codex-spark': { value: 'gpt-5.3-codex-spark', label: 'GPT-5.3 Codex Spark — Ultra-fast coding model', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
462
609
  'gpt-5.2-codex': { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex — Frontier agentic coding model', reasoningEfforts: ["low", "medium", "high", "xhigh"], defaultReasoningEffort: 'xhigh' },
@@ -478,50 +625,99 @@ export const GEMINI_MODEL_METADATA = {
478
625
  * Cursor model metadata keyed by model id.
479
626
  */
480
627
  export const CURSOR_MODEL_METADATA = {
481
- 'opus-4.6-thinking': { value: 'opus-4.6-thinking', label: 'Claude 4.6 Opus (Thinking)' },
482
- 'opus-4.6': { value: 'opus-4.6', label: 'Claude 4.6 Opus' },
483
- 'opus-4.5': { value: 'opus-4.5', label: 'Claude 4.5 Opus' },
484
- 'opus-4.5-thinking': { value: 'opus-4.5-thinking', label: 'Claude 4.5 Opus (Thinking)' },
485
- 'sonnet-4.6': { value: 'sonnet-4.6', label: 'Claude 4.6 Sonnet' },
486
- 'sonnet-4.6-thinking': { value: 'sonnet-4.6-thinking', label: 'Claude 4.6 Sonnet (Thinking)' },
487
- 'sonnet-4.5': { value: 'sonnet-4.5', label: 'Claude 4.5 Sonnet' },
488
- 'sonnet-4.5-thinking': { value: 'sonnet-4.5-thinking', label: 'Claude 4.5 Sonnet (Thinking)' },
628
+ 'composer-2-fast': { value: 'composer-2-fast', label: 'Composer 2 Fast' },
629
+ 'composer-2': { value: 'composer-2', label: 'Composer 2' },
489
630
  'composer-1.5': { value: 'composer-1.5', label: 'Composer 1.5' },
490
- 'composer-1': { value: 'composer-1', label: 'Composer 1' },
491
- 'gpt-5.4-xhigh': { value: 'gpt-5.4-xhigh', label: 'GPT-5.4 Extra High' },
492
- 'gpt-5.4-xhigh-fast': { value: 'gpt-5.4-xhigh-fast', label: 'GPT-5.4 Extra High Fast' },
493
- 'gpt-5.4-high': { value: 'gpt-5.4-high', label: 'GPT-5.4 High' },
631
+ 'gpt-5.3-codex-low': { value: 'gpt-5.3-codex-low', label: 'Codex 5.3 Low' },
632
+ 'gpt-5.3-codex-low-fast': { value: 'gpt-5.3-codex-low-fast', label: 'Codex 5.3 Low Fast' },
633
+ 'gpt-5.3-codex': { value: 'gpt-5.3-codex', label: 'Codex 5.3' },
634
+ 'gpt-5.3-codex-fast': { value: 'gpt-5.3-codex-fast', label: 'Codex 5.3 Fast' },
635
+ 'gpt-5.3-codex-high': { value: 'gpt-5.3-codex-high', label: 'Codex 5.3 High' },
636
+ 'gpt-5.3-codex-high-fast': { value: 'gpt-5.3-codex-high-fast', label: 'Codex 5.3 High Fast' },
637
+ 'gpt-5.3-codex-xhigh': { value: 'gpt-5.3-codex-xhigh', label: 'Codex 5.3 Extra High' },
638
+ 'gpt-5.3-codex-xhigh-fast': { value: 'gpt-5.3-codex-xhigh-fast', label: 'Codex 5.3 Extra High Fast' },
639
+ 'gpt-5.2': { value: 'gpt-5.2', label: 'GPT-5.2' },
640
+ 'gpt-5.3-codex-spark-preview-low': { value: 'gpt-5.3-codex-spark-preview-low', label: 'Codex 5.3 Spark Low' },
641
+ 'gpt-5.3-codex-spark-preview': { value: 'gpt-5.3-codex-spark-preview', label: 'Codex 5.3 Spark' },
642
+ 'gpt-5.3-codex-spark-preview-high': { value: 'gpt-5.3-codex-spark-preview-high', label: 'Codex 5.3 Spark High' },
643
+ 'gpt-5.3-codex-spark-preview-xhigh': { value: 'gpt-5.3-codex-spark-preview-xhigh', label: 'Codex 5.3 Spark Extra High' },
644
+ 'gpt-5.2-codex-low': { value: 'gpt-5.2-codex-low', label: 'Codex 5.2 Low' },
645
+ 'gpt-5.2-codex-low-fast': { value: 'gpt-5.2-codex-low-fast', label: 'Codex 5.2 Low Fast' },
646
+ 'gpt-5.2-codex': { value: 'gpt-5.2-codex', label: 'Codex 5.2' },
647
+ 'gpt-5.2-codex-fast': { value: 'gpt-5.2-codex-fast', label: 'Codex 5.2 Fast' },
648
+ 'gpt-5.2-codex-high': { value: 'gpt-5.2-codex-high', label: 'Codex 5.2 High' },
649
+ 'gpt-5.2-codex-high-fast': { value: 'gpt-5.2-codex-high-fast', label: 'Codex 5.2 High Fast' },
650
+ 'gpt-5.2-codex-xhigh': { value: 'gpt-5.2-codex-xhigh', label: 'Codex 5.2 Extra High' },
651
+ 'gpt-5.2-codex-xhigh-fast': { value: 'gpt-5.2-codex-xhigh-fast', label: 'Codex 5.2 Extra High Fast' },
652
+ 'gpt-5.1-codex-max-low': { value: 'gpt-5.1-codex-max-low', label: 'Codex 5.1 Max Low' },
653
+ 'gpt-5.1-codex-max-low-fast': { value: 'gpt-5.1-codex-max-low-fast', label: 'Codex 5.1 Max Low Fast' },
654
+ 'gpt-5.1-codex-max-medium': { value: 'gpt-5.1-codex-max-medium', label: 'Codex 5.1 Max' },
655
+ 'gpt-5.1-codex-max-medium-fast': { value: 'gpt-5.1-codex-max-medium-fast', label: 'Codex 5.1 Max Medium Fast' },
656
+ 'gpt-5.1-codex-max-high': { value: 'gpt-5.1-codex-max-high', label: 'Codex 5.1 Max High' },
657
+ 'gpt-5.1-codex-max-high-fast': { value: 'gpt-5.1-codex-max-high-fast', label: 'Codex 5.1 Max High Fast' },
658
+ 'gpt-5.1-codex-max-xhigh': { value: 'gpt-5.1-codex-max-xhigh', label: 'Codex 5.1 Max Extra High' },
659
+ 'gpt-5.1-codex-max-xhigh-fast': { value: 'gpt-5.1-codex-max-xhigh-fast', label: 'Codex 5.1 Max Extra High Fast' },
660
+ 'claude-opus-4-7-thinking-high': { value: 'claude-opus-4-7-thinking-high', label: 'Opus 4.7 1M High Thinking' },
661
+ 'gpt-5.4-high': { value: 'gpt-5.4-high', label: 'GPT-5.4 1M High' },
494
662
  'gpt-5.4-high-fast': { value: 'gpt-5.4-high-fast', label: 'GPT-5.4 High Fast' },
495
- 'gpt-5.4-medium': { value: 'gpt-5.4-medium', label: 'GPT-5.4' },
663
+ 'gpt-5.4-xhigh-fast': { value: 'gpt-5.4-xhigh-fast', label: 'GPT-5.4 Extra High Fast' },
664
+ 'claude-4.6-opus-high-thinking-fast': { value: 'claude-4.6-opus-high-thinking-fast', label: 'Opus 4.6 1M Thinking Fast' },
665
+ 'claude-4.6-sonnet-medium': { value: 'claude-4.6-sonnet-medium', label: 'Sonnet 4.6 1M' },
666
+ 'claude-4.6-sonnet-medium-thinking': { value: 'claude-4.6-sonnet-medium-thinking', label: 'Sonnet 4.6 1M Thinking' },
667
+ 'claude-opus-4-7-low': { value: 'claude-opus-4-7-low', label: 'Opus 4.7 1M Low' },
668
+ 'claude-opus-4-7-medium': { value: 'claude-opus-4-7-medium', label: 'Opus 4.7 1M Medium' },
669
+ 'claude-opus-4-7-high': { value: 'claude-opus-4-7-high', label: 'Opus 4.7 1M High' },
670
+ 'claude-opus-4-7-xhigh': { value: 'claude-opus-4-7-xhigh', label: 'Opus 4.7 1M' },
671
+ 'claude-opus-4-7-max': { value: 'claude-opus-4-7-max', label: 'Opus 4.7 1M Max' },
672
+ 'claude-opus-4-7-thinking-low': { value: 'claude-opus-4-7-thinking-low', label: 'Opus 4.7 1M Low Thinking' },
673
+ 'claude-opus-4-7-thinking-medium': { value: 'claude-opus-4-7-thinking-medium', label: 'Opus 4.7 1M Medium Thinking' },
674
+ 'claude-opus-4-7-thinking-xhigh': { value: 'claude-opus-4-7-thinking-xhigh', label: 'Opus 4.7 1M Thinking' },
675
+ 'claude-opus-4-7-thinking-max': { value: 'claude-opus-4-7-thinking-max', label: 'Opus 4.7 1M Max Thinking' },
676
+ 'gpt-5.4-low': { value: 'gpt-5.4-low', label: 'GPT-5.4 1M Low' },
677
+ 'gpt-5.4-medium': { value: 'gpt-5.4-medium', label: 'GPT-5.4 1M' },
496
678
  'gpt-5.4-medium-fast': { value: 'gpt-5.4-medium-fast', label: 'GPT-5.4 Fast' },
497
- 'gpt-5.4-low': { value: 'gpt-5.4-low', label: 'GPT-5.4 Low' },
498
- 'gpt-5.3-codex-xhigh': { value: 'gpt-5.3-codex-xhigh', label: 'GPT-5.3 Codex Extra High' },
499
- 'gpt-5.3-codex-xhigh-fast': { value: 'gpt-5.3-codex-xhigh-fast', label: 'GPT-5.3 Codex Extra High Fast' },
500
- 'gpt-5.3-codex-high': { value: 'gpt-5.3-codex-high', label: 'GPT-5.3 Codex High' },
501
- 'gpt-5.3-codex-high-fast': { value: 'gpt-5.3-codex-high-fast', label: 'GPT-5.3 Codex High Fast' },
502
- 'gpt-5.3-codex': { value: 'gpt-5.3-codex', label: 'GPT-5.3 Codex' },
503
- 'gpt-5.3-codex-fast': { value: 'gpt-5.3-codex-fast', label: 'GPT-5.3 Codex Fast' },
504
- 'gpt-5.3-codex-low': { value: 'gpt-5.3-codex-low', label: 'GPT-5.3 Codex Low' },
505
- 'gpt-5.3-codex-low-fast': { value: 'gpt-5.3-codex-low-fast', label: 'GPT-5.3 Codex Low Fast' },
506
- 'gpt-5.3-codex-spark-preview': { value: 'gpt-5.3-codex-spark-preview', label: 'GPT-5.3 Codex Spark' },
507
- 'gpt-5.2-codex-xhigh': { value: 'gpt-5.2-codex-xhigh', label: 'GPT-5.2 Codex Extra High' },
508
- 'gpt-5.2-codex-xhigh-fast': { value: 'gpt-5.2-codex-xhigh-fast', label: 'GPT-5.2 Codex Extra High Fast' },
509
- 'gpt-5.2-codex-high': { value: 'gpt-5.2-codex-high', label: 'GPT-5.2 Codex High' },
510
- 'gpt-5.2-codex-high-fast': { value: 'gpt-5.2-codex-high-fast', label: 'GPT-5.2 Codex High Fast' },
511
- 'gpt-5.2-codex': { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex' },
512
- 'gpt-5.2-codex-fast': { value: 'gpt-5.2-codex-fast', label: 'GPT-5.2 Codex Fast' },
513
- 'gpt-5.2-codex-low': { value: 'gpt-5.2-codex-low', label: 'GPT-5.2 Codex Low' },
514
- 'gpt-5.2-codex-low-fast': { value: 'gpt-5.2-codex-low-fast', label: 'GPT-5.2 Codex Low Fast' },
515
- 'gpt-5.2': { value: 'gpt-5.2', label: 'GPT-5.2' },
679
+ 'gpt-5.4-xhigh': { value: 'gpt-5.4-xhigh', label: 'GPT-5.4 1M Extra High' },
680
+ 'claude-4.6-opus-high': { value: 'claude-4.6-opus-high', label: 'Opus 4.6 1M' },
681
+ 'claude-4.6-opus-max': { value: 'claude-4.6-opus-max', label: 'Opus 4.6 1M Max' },
682
+ 'claude-4.6-opus-high-thinking': { value: 'claude-4.6-opus-high-thinking', label: 'Opus 4.6 1M Thinking' },
683
+ 'claude-4.6-opus-max-thinking': { value: 'claude-4.6-opus-max-thinking', label: 'Opus 4.6 1M Max Thinking' },
684
+ 'claude-4.6-opus-max-thinking-fast': { value: 'claude-4.6-opus-max-thinking-fast', label: 'Opus 4.6 1M Max Thinking Fast' },
685
+ 'claude-4.5-opus-high': { value: 'claude-4.5-opus-high', label: 'Opus 4.5' },
686
+ 'claude-4.5-opus-high-thinking': { value: 'claude-4.5-opus-high-thinking', label: 'Opus 4.5 Thinking' },
687
+ 'gpt-5.2-low': { value: 'gpt-5.2-low', label: 'GPT-5.2 Low' },
688
+ 'gpt-5.2-low-fast': { value: 'gpt-5.2-low-fast', label: 'GPT-5.2 Low Fast' },
689
+ 'gpt-5.2-fast': { value: 'gpt-5.2-fast', label: 'GPT-5.2 Fast' },
516
690
  'gpt-5.2-high': { value: 'gpt-5.2-high', label: 'GPT-5.2 High' },
517
- 'gpt-5.1-codex-max': { value: 'gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max' },
518
- 'gpt-5.1-codex-max-high': { value: 'gpt-5.1-codex-max-high', label: 'GPT-5.1 Codex Max High' },
519
- 'gpt-5.1-codex-mini': { value: 'gpt-5.1-codex-mini', label: 'GPT-5.1 Codex Mini' },
520
- 'gpt-5.1-high': { value: 'gpt-5.1-high', label: 'GPT-5.1 High' },
691
+ 'gpt-5.2-high-fast': { value: 'gpt-5.2-high-fast', label: 'GPT-5.2 High Fast' },
692
+ 'gpt-5.2-xhigh': { value: 'gpt-5.2-xhigh', label: 'GPT-5.2 Extra High' },
693
+ 'gpt-5.2-xhigh-fast': { value: 'gpt-5.2-xhigh-fast', label: 'GPT-5.2 Extra High Fast' },
521
694
  'gemini-3.1-pro': { value: 'gemini-3.1-pro', label: 'Gemini 3.1 Pro' },
522
- 'gemini-3-pro': { value: 'gemini-3-pro', label: 'Gemini 3 Pro' },
695
+ 'gpt-5.4-mini-none': { value: 'gpt-5.4-mini-none', label: 'GPT-5.4 Mini None' },
696
+ 'gpt-5.4-mini-low': { value: 'gpt-5.4-mini-low', label: 'GPT-5.4 Mini Low' },
697
+ 'gpt-5.4-mini-medium': { value: 'gpt-5.4-mini-medium', label: 'GPT-5.4 Mini' },
698
+ 'gpt-5.4-mini-high': { value: 'gpt-5.4-mini-high', label: 'GPT-5.4 Mini High' },
699
+ 'gpt-5.4-mini-xhigh': { value: 'gpt-5.4-mini-xhigh', label: 'GPT-5.4 Mini Extra High' },
700
+ 'gpt-5.4-nano-none': { value: 'gpt-5.4-nano-none', label: 'GPT-5.4 Nano None' },
701
+ 'gpt-5.4-nano-low': { value: 'gpt-5.4-nano-low', label: 'GPT-5.4 Nano Low' },
702
+ 'gpt-5.4-nano-medium': { value: 'gpt-5.4-nano-medium', label: 'GPT-5.4 Nano' },
703
+ 'gpt-5.4-nano-high': { value: 'gpt-5.4-nano-high', label: 'GPT-5.4 Nano High' },
704
+ 'gpt-5.4-nano-xhigh': { value: 'gpt-5.4-nano-xhigh', label: 'GPT-5.4 Nano Extra High' },
705
+ 'grok-4-20': { value: 'grok-4-20', label: 'Grok 4.20' },
706
+ 'grok-4-20-thinking': { value: 'grok-4-20-thinking', label: 'Grok 4.20 Thinking' },
707
+ 'claude-4.5-sonnet': { value: 'claude-4.5-sonnet', label: 'Sonnet 4.5 1M' },
708
+ 'claude-4.5-sonnet-thinking': { value: 'claude-4.5-sonnet-thinking', label: 'Sonnet 4.5 1M Thinking' },
709
+ 'gpt-5.1-low': { value: 'gpt-5.1-low', label: 'GPT-5.1 Low' },
710
+ 'gpt-5.1': { value: 'gpt-5.1', label: 'GPT-5.1' },
711
+ 'gpt-5.1-high': { value: 'gpt-5.1-high', label: 'GPT-5.1 High' },
523
712
  'gemini-3-flash': { value: 'gemini-3-flash', label: 'Gemini 3 Flash' },
524
- 'grok': { value: 'grok', label: 'Grok' },
713
+ 'gpt-5.1-codex-mini-low': { value: 'gpt-5.1-codex-mini-low', label: 'Codex 5.1 Mini Low' },
714
+ 'gpt-5.1-codex-mini': { value: 'gpt-5.1-codex-mini', label: 'Codex 5.1 Mini' },
715
+ 'gpt-5.1-codex-mini-high': { value: 'gpt-5.1-codex-mini-high', label: 'Codex 5.1 Mini High' },
716
+ 'claude-4-sonnet': { value: 'claude-4-sonnet', label: 'Sonnet 4' },
717
+ 'claude-4-sonnet-1m': { value: 'claude-4-sonnet-1m', label: 'Sonnet 4 1M' },
718
+ 'claude-4-sonnet-thinking': { value: 'claude-4-sonnet-thinking', label: 'Sonnet 4 Thinking' },
719
+ 'claude-4-sonnet-1m-thinking': { value: 'claude-4-sonnet-1m-thinking', label: 'Sonnet 4 1M Thinking' },
720
+ 'gpt-5-mini': { value: 'gpt-5-mini', label: 'GPT-5 Mini' },
525
721
  'kimi-k2.5': { value: 'kimi-k2.5', label: 'Kimi K2.5' },
526
722
  };
527
723
  /**
@@ -704,14 +900,14 @@ export const CLIRegistry = {
704
900
  codex: {
705
901
  name: 'Codex CLI',
706
902
  package: '@openai/codex',
707
- version: '0.114.0',
903
+ version: '0.124.0',
708
904
  install: 'npm install -g @openai/codex',
709
905
  npmLink: 'https://www.npmjs.com/package/@openai/codex',
710
906
  },
711
907
  gemini: {
712
908
  name: 'Gemini CLI',
713
909
  package: '@google/gemini-cli',
714
- version: '0.33.0',
910
+ version: '0.39.1',
715
911
  install: 'npm install -g @google/gemini-cli',
716
912
  npmLink: 'https://www.npmjs.com/package/@google/gemini-cli',
717
913
  },
@@ -758,7 +954,7 @@ export const DefaultModels = {
758
954
  claude: 'sonnet',
759
955
  codex: 'gpt-5.4',
760
956
  gemini: 'gemini-3.1-pro-preview',
761
- cursor: 'opus-4.6-thinking',
957
+ cursor: 'composer-2-fast',
762
958
  droid: 'opus-4.6-fast',
763
959
  opencode: 'openai/gpt-5.2',
764
960
  };