@glwhappen/web-code 1.32.9 → 1.32.11

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 (167) hide show
  1. package/README.de.md +1 -1
  2. package/README.ko.md +1 -1
  3. package/README.md +1 -1
  4. package/README.ru.md +1 -1
  5. package/README.tr.md +1 -1
  6. package/README.zh-CN.md +1 -1
  7. package/dist/api-docs.html +6 -7
  8. package/dist/assets/{index-D_7CSvqO.js → index-CBo8yakG.js} +276 -261
  9. package/dist/assets/index-Dl5QP21C.css +32 -0
  10. package/dist/index.html +2 -2
  11. package/dist/modelConstants.js +841 -0
  12. package/dist-server/server/claude-sdk.js +57 -34
  13. package/dist-server/server/claude-sdk.js.map +1 -1
  14. package/dist-server/server/cursor-cli.js +6 -3
  15. package/dist-server/server/cursor-cli.js.map +1 -1
  16. package/dist-server/server/gemini-cli.js +3 -1
  17. package/dist-server/server/gemini-cli.js.map +1 -1
  18. package/dist-server/server/gemini-response-handler.js +34 -0
  19. package/dist-server/server/gemini-response-handler.js.map +1 -1
  20. package/dist-server/server/index.js +131 -19
  21. package/dist-server/server/index.js.map +1 -1
  22. package/dist-server/server/modules/database/index.js +1 -0
  23. package/dist-server/server/modules/database/index.js.map +1 -1
  24. package/dist-server/server/modules/projects/services/project-management.service.js +1 -0
  25. package/dist-server/server/modules/projects/services/project-management.service.js.map +1 -1
  26. package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js +4 -0
  27. package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js.map +1 -1
  28. package/dist-server/server/modules/providers/list/claude/claude-models.provider.js +143 -0
  29. package/dist-server/server/modules/providers/list/claude/claude-models.provider.js.map +1 -0
  30. package/dist-server/server/modules/providers/list/claude/claude.provider.js +2 -0
  31. package/dist-server/server/modules/providers/list/claude/claude.provider.js.map +1 -1
  32. package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +84 -0
  33. package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -0
  34. package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js +7 -39
  35. package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js.map +1 -1
  36. package/dist-server/server/modules/providers/list/codex/codex.provider.js +2 -0
  37. package/dist-server/server/modules/providers/list/codex/codex.provider.js.map +1 -1
  38. package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js +754 -0
  39. package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js.map +1 -0
  40. package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js +2 -15
  41. package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js.map +1 -1
  42. package/dist-server/server/modules/providers/list/cursor/cursor.provider.js +2 -0
  43. package/dist-server/server/modules/providers/list/cursor/cursor.provider.js.map +1 -1
  44. package/dist-server/server/modules/providers/list/gemini/gemini-models.provider.js +27 -0
  45. package/dist-server/server/modules/providers/list/gemini/gemini-models.provider.js.map +1 -0
  46. package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js +3 -9
  47. package/dist-server/server/modules/providers/list/gemini/gemini-sessions.provider.js.map +1 -1
  48. package/dist-server/server/modules/providers/list/gemini/gemini.provider.js +2 -0
  49. package/dist-server/server/modules/providers/list/gemini/gemini.provider.js.map +1 -1
  50. package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js +92 -0
  51. package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js.map +1 -0
  52. package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js +181 -0
  53. package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js.map +1 -0
  54. package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +267 -0
  55. package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js.map +1 -0
  56. package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +115 -0
  57. package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js.map +1 -0
  58. package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js +410 -0
  59. package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js.map +1 -0
  60. package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js +62 -0
  61. package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js.map +1 -0
  62. package/dist-server/server/modules/providers/list/opencode/opencode.provider.js +19 -0
  63. package/dist-server/server/modules/providers/list/opencode/opencode.provider.js.map +1 -0
  64. package/dist-server/server/modules/providers/provider.registry.js +2 -0
  65. package/dist-server/server/modules/providers/provider.registry.js.map +1 -1
  66. package/dist-server/server/modules/providers/provider.routes.js +42 -1
  67. package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
  68. package/dist-server/server/modules/providers/services/mcp.service.js +1 -9
  69. package/dist-server/server/modules/providers/services/mcp.service.js.map +1 -1
  70. package/dist-server/server/modules/providers/services/provider-models.service.js +199 -0
  71. package/dist-server/server/modules/providers/services/provider-models.service.js.map +1 -0
  72. package/dist-server/server/modules/providers/services/session-synchronizer.service.js +1 -0
  73. package/dist-server/server/modules/providers/services/session-synchronizer.service.js.map +1 -1
  74. package/dist-server/server/modules/providers/services/sessions-watcher.service.js +7 -0
  75. package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -1
  76. package/dist-server/server/modules/providers/shared/base/abstract.provider.js.map +1 -1
  77. package/dist-server/server/modules/providers/tests/mcp.test.js +73 -6
  78. package/dist-server/server/modules/providers/tests/mcp.test.js.map +1 -1
  79. package/dist-server/server/modules/providers/tests/opencode-models.test.js +66 -0
  80. package/dist-server/server/modules/providers/tests/opencode-models.test.js.map +1 -0
  81. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +264 -0
  82. package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -0
  83. package/dist-server/server/modules/providers/tests/provider-models.service.test.js +270 -0
  84. package/dist-server/server/modules/providers/tests/provider-models.service.test.js.map +1 -0
  85. package/dist-server/server/modules/providers/tests/skills.test.js +33 -0
  86. package/dist-server/server/modules/providers/tests/skills.test.js.map +1 -1
  87. package/dist-server/server/modules/websocket/services/chat-websocket.service.js +18 -1
  88. package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -1
  89. package/dist-server/server/modules/websocket/services/shell-websocket.service.js +9 -1
  90. package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
  91. package/dist-server/server/openai-codex.js +32 -4
  92. package/dist-server/server/openai-codex.js.map +1 -1
  93. package/dist-server/server/opencode-cli.js +287 -0
  94. package/dist-server/server/opencode-cli.js.map +1 -0
  95. package/dist-server/server/opencode-cli.test.js +84 -0
  96. package/dist-server/server/opencode-cli.test.js.map +1 -0
  97. package/dist-server/server/routes/agent.js +21 -8
  98. package/dist-server/server/routes/agent.js.map +1 -1
  99. package/dist-server/server/routes/commands.js +202 -209
  100. package/dist-server/server/routes/commands.js.map +1 -1
  101. package/dist-server/server/routes/cursor.js +2 -2
  102. package/dist-server/server/routes/cursor.js.map +1 -1
  103. package/dist-server/server/routes/settings.js +0 -10
  104. package/dist-server/server/routes/settings.js.map +1 -1
  105. package/dist-server/server/routes/tests/commands.test.js +76 -0
  106. package/dist-server/server/routes/tests/commands.test.js.map +1 -0
  107. package/dist-server/server/shared/utils.js +286 -0
  108. package/dist-server/server/shared/utils.js.map +1 -1
  109. package/package.json +3 -1
  110. package/public/api-docs.html +878 -0
  111. package/public/modelConstants.js +841 -0
  112. package/server/claude-sdk.js +64 -35
  113. package/server/cursor-cli.js +6 -3
  114. package/server/gemini-cli.js +7 -1
  115. package/server/gemini-response-handler.js +38 -0
  116. package/server/index.js +150 -19
  117. package/server/modules/database/index.ts +1 -0
  118. package/server/modules/projects/services/project-management.service.ts +2 -0
  119. package/server/modules/projects/services/projects-with-sessions-fetch.service.ts +7 -1
  120. package/server/modules/providers/README.md +11 -3
  121. package/server/modules/providers/list/claude/claude-models.provider.ts +193 -0
  122. package/server/modules/providers/list/claude/claude.provider.ts +3 -0
  123. package/server/modules/providers/list/codex/codex-models.provider.ts +125 -0
  124. package/server/modules/providers/list/codex/codex-skills.provider.ts +10 -50
  125. package/server/modules/providers/list/codex/codex.provider.ts +3 -0
  126. package/server/modules/providers/list/cursor/cursor-models.provider.ts +820 -0
  127. package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +7 -20
  128. package/server/modules/providers/list/cursor/cursor.provider.ts +3 -0
  129. package/server/modules/providers/list/gemini/gemini-models.provider.ts +42 -0
  130. package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +3 -10
  131. package/server/modules/providers/list/gemini/gemini.provider.ts +3 -0
  132. package/server/modules/providers/list/opencode/opencode-auth.provider.ts +111 -0
  133. package/server/modules/providers/list/opencode/opencode-mcp.provider.ts +228 -0
  134. package/server/modules/providers/list/opencode/opencode-models.provider.ts +339 -0
  135. package/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.ts +158 -0
  136. package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +506 -0
  137. package/server/modules/providers/list/opencode/opencode-skills.provider.ts +78 -0
  138. package/server/modules/providers/list/opencode/opencode.provider.ts +27 -0
  139. package/server/modules/providers/provider.registry.ts +2 -0
  140. package/server/modules/providers/provider.routes.ts +62 -2
  141. package/server/modules/providers/services/mcp.service.ts +1 -12
  142. package/server/modules/providers/services/provider-models.service.ts +325 -0
  143. package/server/modules/providers/services/session-synchronizer.service.ts +1 -0
  144. package/server/modules/providers/services/sessions-watcher.service.ts +8 -0
  145. package/server/modules/providers/shared/base/abstract.provider.ts +2 -0
  146. package/server/modules/providers/tests/mcp.test.ts +93 -6
  147. package/server/modules/providers/tests/opencode-models.test.ts +73 -0
  148. package/server/modules/providers/tests/opencode-sessions.test.ts +336 -0
  149. package/server/modules/providers/tests/provider-models.service.test.ts +318 -0
  150. package/server/modules/providers/tests/skills.test.ts +66 -0
  151. package/server/modules/websocket/services/chat-websocket.service.ts +21 -1
  152. package/server/modules/websocket/services/shell-websocket.service.ts +9 -0
  153. package/server/openai-codex.js +40 -4
  154. package/server/opencode-cli.js +336 -0
  155. package/server/opencode-cli.test.js +95 -0
  156. package/server/routes/agent.js +22 -8
  157. package/server/routes/commands.js +254 -233
  158. package/server/routes/cursor.js +2 -2
  159. package/server/routes/settings.js +1 -10
  160. package/server/routes/tests/commands.test.js +82 -0
  161. package/server/shared/interfaces.ts +45 -0
  162. package/server/shared/types.ts +88 -1
  163. package/server/shared/utils.ts +384 -0
  164. package/dist/assets/index-DdxLnCfK.css +0 -32
  165. package/dist-server/shared/modelConstants.js +0 -99
  166. package/dist-server/shared/modelConstants.js.map +0 -1
  167. package/shared/modelConstants.js +0 -107
@@ -0,0 +1,841 @@
1
+ /**
2
+ * Documentation Model Definitions
3
+ * Used by README links and the public API docs.
4
+ */
5
+
6
+ /**
7
+ * Claude (Anthropic) Models
8
+ */
9
+ export const CLAUDE_MODELS = {
10
+ OPTIONS: [
11
+ {
12
+ value: "default",
13
+ label: "Default (recommended)",
14
+ description: "Use the default model (currently Opus 4.7 (1M context)) · $5/$25 per Mtok",
15
+ },
16
+ {
17
+ value: "sonnet",
18
+ label: "Sonnet",
19
+ description: "Sonnet 4.6 · Best for everyday tasks · $3/$15 per Mtok",
20
+ },
21
+ {
22
+ value: "sonnet[1m]",
23
+ label: "Sonnet (1M context)",
24
+ description: "Sonnet 4.6 for long sessions · $3/$15 per Mtok",
25
+ },
26
+ {
27
+ value: "haiku",
28
+ label: "Haiku",
29
+ description: "Haiku 4.5 · Fastest for quick answers · $1/$5 per Mtok",
30
+ },
31
+ ],
32
+
33
+ DEFAULT: "default",
34
+ };
35
+
36
+ /**
37
+ * Cursor Models
38
+ */
39
+ export const CURSOR_MODELS = {
40
+ OPTIONS: [
41
+ { value: "auto", label: "auto", description: "Auto" },
42
+ {
43
+ value: "composer-2-fast",
44
+ label: "composer-2-fast",
45
+ description: "Composer 2 Fast",
46
+ },
47
+ {
48
+ value: "composer-2",
49
+ label: "composer-2",
50
+ description: "Composer 2",
51
+ },
52
+ {
53
+ value: "gpt-5.3-codex-low",
54
+ label: "gpt-5.3-codex-low",
55
+ description: "Codex 5.3 Low",
56
+ },
57
+ {
58
+ value: "gpt-5.3-codex-low-fast",
59
+ label: "gpt-5.3-codex-low-fast",
60
+ description: "Codex 5.3 Low Fast",
61
+ },
62
+ {
63
+ value: "gpt-5.3-codex",
64
+ label: "gpt-5.3-codex",
65
+ description: "Codex 5.3",
66
+ },
67
+ {
68
+ value: "gpt-5.3-codex-fast",
69
+ label: "gpt-5.3-codex-fast",
70
+ description: "Codex 5.3 Fast",
71
+ },
72
+ {
73
+ value: "gpt-5.3-codex-high",
74
+ label: "gpt-5.3-codex-high",
75
+ description: "Codex 5.3 High",
76
+ },
77
+ {
78
+ value: "gpt-5.3-codex-high-fast",
79
+ label: "gpt-5.3-codex-high-fast",
80
+ description: "Codex 5.3 High Fast",
81
+ },
82
+ {
83
+ value: "gpt-5.3-codex-xhigh",
84
+ label: "gpt-5.3-codex-xhigh",
85
+ description: "Codex 5.3 Extra High",
86
+ },
87
+ {
88
+ value: "gpt-5.3-codex-xhigh-fast",
89
+ label: "gpt-5.3-codex-xhigh-fast",
90
+ description: "Codex 5.3 Extra High Fast",
91
+ },
92
+ { value: "gpt-5.2", label: "gpt-5.2", description: "GPT-5.2" },
93
+ {
94
+ value: "gpt-5.2-codex-low",
95
+ label: "gpt-5.2-codex-low",
96
+ description: "Codex 5.2 Low",
97
+ },
98
+ {
99
+ value: "gpt-5.2-codex-low-fast",
100
+ label: "gpt-5.2-codex-low-fast",
101
+ description: "Codex 5.2 Low Fast",
102
+ },
103
+ {
104
+ value: "gpt-5.2-codex",
105
+ label: "gpt-5.2-codex",
106
+ description: "Codex 5.2",
107
+ },
108
+ {
109
+ value: "gpt-5.2-codex-fast",
110
+ label: "gpt-5.2-codex-fast",
111
+ description: "Codex 5.2 Fast",
112
+ },
113
+ {
114
+ value: "gpt-5.2-codex-high",
115
+ label: "gpt-5.2-codex-high",
116
+ description: "Codex 5.2 High",
117
+ },
118
+ {
119
+ value: "gpt-5.2-codex-high-fast",
120
+ label: "gpt-5.2-codex-high-fast",
121
+ description: "Codex 5.2 High Fast",
122
+ },
123
+ {
124
+ value: "gpt-5.2-codex-xhigh",
125
+ label: "gpt-5.2-codex-xhigh",
126
+ description: "Codex 5.2 Extra High",
127
+ },
128
+ {
129
+ value: "gpt-5.2-codex-xhigh-fast",
130
+ label: "gpt-5.2-codex-xhigh-fast",
131
+ description: "Codex 5.2 Extra High Fast",
132
+ },
133
+ {
134
+ value: "gpt-5.1-codex-max-low",
135
+ label: "gpt-5.1-codex-max-low",
136
+ description: "Codex 5.1 Max Low",
137
+ },
138
+ {
139
+ value: "gpt-5.1-codex-max-low-fast",
140
+ label: "gpt-5.1-codex-max-low-fast",
141
+ description: "Codex 5.1 Max Low Fast",
142
+ },
143
+ {
144
+ value: "gpt-5.1-codex-max-medium",
145
+ label: "gpt-5.1-codex-max-medium",
146
+ description: "Codex 5.1 Max",
147
+ },
148
+ {
149
+ value: "gpt-5.1-codex-max-medium-fast",
150
+ label: "gpt-5.1-codex-max-medium-fast",
151
+ description: "Codex 5.1 Max Medium Fast",
152
+ },
153
+ {
154
+ value: "gpt-5.1-codex-max-high",
155
+ label: "gpt-5.1-codex-max-high",
156
+ description: "Codex 5.1 Max High",
157
+ },
158
+ {
159
+ value: "gpt-5.1-codex-max-high-fast",
160
+ label: "gpt-5.1-codex-max-high-fast",
161
+ description: "Codex 5.1 Max High Fast",
162
+ },
163
+ {
164
+ value: "gpt-5.1-codex-max-xhigh",
165
+ label: "gpt-5.1-codex-max-xhigh",
166
+ description: "Codex 5.1 Max Extra High",
167
+ },
168
+ {
169
+ value: "gpt-5.1-codex-max-xhigh-fast",
170
+ label: "gpt-5.1-codex-max-xhigh-fast",
171
+ description: "Codex 5.1 Max Extra High Fast",
172
+ },
173
+ {
174
+ value: "composer-2.5",
175
+ label: "composer-2.5",
176
+ description: "Composer 2.5",
177
+ },
178
+ {
179
+ value: "gpt-5.5-high",
180
+ label: "gpt-5.5-high",
181
+ description: "GPT-5.5 1M High",
182
+ },
183
+ {
184
+ value: "gpt-5.5-high-fast",
185
+ label: "gpt-5.5-high-fast",
186
+ description: "GPT-5.5 High Fast",
187
+ },
188
+ {
189
+ value: "claude-opus-4-7-thinking-high",
190
+ label: "claude-opus-4-7-thinking-high",
191
+ description: "Opus 4.7 1M High Thinking",
192
+ },
193
+ {
194
+ value: "gpt-5.4-high",
195
+ label: "gpt-5.4-high",
196
+ description: "GPT-5.4 1M High",
197
+ },
198
+ {
199
+ value: "gpt-5.4-high-fast",
200
+ label: "gpt-5.4-high-fast",
201
+ description: "GPT-5.4 High Fast",
202
+ },
203
+ {
204
+ value: "claude-4.6-opus-high-thinking",
205
+ label: "claude-4.6-opus-high-thinking",
206
+ description: "Opus 4.6 1M Thinking",
207
+ },
208
+ {
209
+ value: "claude-4.6-opus-high-thinking-fast",
210
+ label: "claude-4.6-opus-high-thinking-fast",
211
+ description: "Opus 4.6 1M Thinking Fast",
212
+ },
213
+ {
214
+ value: "composer-2.5-fast",
215
+ label: "composer-2.5-fast",
216
+ description: "Composer 2.5 Fast",
217
+ },
218
+ {
219
+ value: "gpt-5.5-none",
220
+ label: "gpt-5.5-none",
221
+ description: "GPT-5.5 1M None",
222
+ },
223
+ {
224
+ value: "gpt-5.5-none-fast",
225
+ label: "gpt-5.5-none-fast",
226
+ description: "GPT-5.5 None Fast",
227
+ },
228
+ {
229
+ value: "gpt-5.5-low",
230
+ label: "gpt-5.5-low",
231
+ description: "GPT-5.5 1M Low",
232
+ },
233
+ {
234
+ value: "gpt-5.5-low-fast",
235
+ label: "gpt-5.5-low-fast",
236
+ description: "GPT-5.5 Low Fast",
237
+ },
238
+ {
239
+ value: "gpt-5.5-medium",
240
+ label: "gpt-5.5-medium",
241
+ description: "GPT-5.5 1M",
242
+ },
243
+ {
244
+ value: "gpt-5.5-medium-fast",
245
+ label: "gpt-5.5-medium-fast",
246
+ description: "GPT-5.5 Fast",
247
+ },
248
+ {
249
+ value: "gpt-5.5-extra-high",
250
+ label: "gpt-5.5-extra-high",
251
+ description: "GPT-5.5 1M Extra High",
252
+ },
253
+ {
254
+ value: "gpt-5.5-extra-high-fast",
255
+ label: "gpt-5.5-extra-high-fast",
256
+ description: "GPT-5.5 Extra High Fast",
257
+ },
258
+ {
259
+ value: "claude-4.6-sonnet-medium",
260
+ label: "claude-4.6-sonnet-medium",
261
+ description: "Sonnet 4.6 1M",
262
+ },
263
+ {
264
+ value: "claude-4.6-sonnet-medium-thinking",
265
+ label: "claude-4.6-sonnet-medium-thinking",
266
+ description: "Sonnet 4.6 1M Thinking",
267
+ },
268
+ {
269
+ value: "claude-opus-4-7-low",
270
+ label: "claude-opus-4-7-low",
271
+ description: "Opus 4.7 1M Low",
272
+ },
273
+ {
274
+ value: "claude-opus-4-7-low-fast",
275
+ label: "claude-opus-4-7-low-fast",
276
+ description: "Opus 4.7 1M Low Fast",
277
+ },
278
+ {
279
+ value: "claude-opus-4-7-medium",
280
+ label: "claude-opus-4-7-medium",
281
+ description: "Opus 4.7 1M Medium",
282
+ },
283
+ {
284
+ value: "claude-opus-4-7-medium-fast",
285
+ label: "claude-opus-4-7-medium-fast",
286
+ description: "Opus 4.7 1M Medium Fast",
287
+ },
288
+ {
289
+ value: "claude-opus-4-7-high",
290
+ label: "claude-opus-4-7-high",
291
+ description: "Opus 4.7 1M High",
292
+ },
293
+ {
294
+ value: "claude-opus-4-7-high-fast",
295
+ label: "claude-opus-4-7-high-fast",
296
+ description: "Opus 4.7 1M High Fast",
297
+ },
298
+ {
299
+ value: "claude-opus-4-7-xhigh",
300
+ label: "claude-opus-4-7-xhigh",
301
+ description: "Opus 4.7 1M",
302
+ },
303
+ {
304
+ value: "claude-opus-4-7-xhigh-fast",
305
+ label: "claude-opus-4-7-xhigh-fast",
306
+ description: "Opus 4.7 1M Fast",
307
+ },
308
+ {
309
+ value: "claude-opus-4-7-max",
310
+ label: "claude-opus-4-7-max",
311
+ description: "Opus 4.7 1M Max",
312
+ },
313
+ {
314
+ value: "claude-opus-4-7-max-fast",
315
+ label: "claude-opus-4-7-max-fast",
316
+ description: "Opus 4.7 1M Max Fast",
317
+ },
318
+ {
319
+ value: "claude-opus-4-7-thinking-low",
320
+ label: "claude-opus-4-7-thinking-low",
321
+ description: "Opus 4.7 1M Low Thinking",
322
+ },
323
+ {
324
+ value: "claude-opus-4-7-thinking-low-fast",
325
+ label: "claude-opus-4-7-thinking-low-fast",
326
+ description: "Opus 4.7 1M Low Thinking Fast",
327
+ },
328
+ {
329
+ value: "claude-opus-4-7-thinking-medium",
330
+ label: "claude-opus-4-7-thinking-medium",
331
+ description: "Opus 4.7 1M Medium Thinking",
332
+ },
333
+ {
334
+ value: "claude-opus-4-7-thinking-medium-fast",
335
+ label: "claude-opus-4-7-thinking-medium-fast",
336
+ description: "Opus 4.7 1M Medium Thinking Fast",
337
+ },
338
+ {
339
+ value: "claude-opus-4-7-thinking-high-fast",
340
+ label: "claude-opus-4-7-thinking-high-fast",
341
+ description: "Opus 4.7 1M High Thinking Fast",
342
+ },
343
+ {
344
+ value: "claude-opus-4-7-thinking-xhigh",
345
+ label: "claude-opus-4-7-thinking-xhigh",
346
+ description: "Opus 4.7 1M Thinking",
347
+ },
348
+ {
349
+ value: "claude-opus-4-7-thinking-xhigh-fast",
350
+ label: "claude-opus-4-7-thinking-xhigh-fast",
351
+ description: "Opus 4.7 1M Thinking Fast",
352
+ },
353
+ {
354
+ value: "claude-opus-4-7-thinking-max",
355
+ label: "claude-opus-4-7-thinking-max",
356
+ description: "Opus 4.7 1M Max Thinking",
357
+ },
358
+ {
359
+ value: "claude-opus-4-7-thinking-max-fast",
360
+ label: "claude-opus-4-7-thinking-max-fast",
361
+ description: "Opus 4.7 1M Max Thinking Fast",
362
+ },
363
+ {
364
+ value: "grok-build-0.1",
365
+ label: "grok-build-0.1",
366
+ description: "Grok Build 0.1 1M",
367
+ },
368
+ {
369
+ value: "gpt-5.4-low",
370
+ label: "gpt-5.4-low",
371
+ description: "GPT-5.4 1M Low",
372
+ },
373
+ {
374
+ value: "gpt-5.4-medium",
375
+ label: "gpt-5.4-medium",
376
+ description: "GPT-5.4 1M",
377
+ },
378
+ {
379
+ value: "gpt-5.4-medium-fast",
380
+ label: "gpt-5.4-medium-fast",
381
+ description: "GPT-5.4 Fast",
382
+ },
383
+ {
384
+ value: "gpt-5.4-xhigh",
385
+ label: "gpt-5.4-xhigh",
386
+ description: "GPT-5.4 1M Extra High",
387
+ },
388
+ {
389
+ value: "gpt-5.4-xhigh-fast",
390
+ label: "gpt-5.4-xhigh-fast",
391
+ description: "GPT-5.4 Extra High Fast",
392
+ },
393
+ {
394
+ value: "claude-4.6-opus-high",
395
+ label: "claude-4.6-opus-high",
396
+ description: "Opus 4.6 1M",
397
+ },
398
+ {
399
+ value: "claude-4.6-opus-max",
400
+ label: "claude-4.6-opus-max",
401
+ description: "Opus 4.6 1M Max",
402
+ },
403
+ {
404
+ value: "claude-4.6-opus-max-thinking",
405
+ label: "claude-4.6-opus-max-thinking",
406
+ description: "Opus 4.6 1M Max Thinking",
407
+ },
408
+ {
409
+ value: "claude-4.6-opus-max-thinking-fast",
410
+ label: "claude-4.6-opus-max-thinking-fast",
411
+ description: "Opus 4.6 1M Max Thinking Fast",
412
+ },
413
+ {
414
+ value: "claude-4.5-opus-high",
415
+ label: "claude-4.5-opus-high",
416
+ description: "Opus 4.5",
417
+ },
418
+ {
419
+ value: "claude-4.5-opus-high-thinking",
420
+ label: "claude-4.5-opus-high-thinking",
421
+ description: "Opus 4.5 Thinking",
422
+ },
423
+ {
424
+ value: "gpt-5.2-low",
425
+ label: "gpt-5.2-low",
426
+ description: "GPT-5.2 Low",
427
+ },
428
+ {
429
+ value: "gpt-5.2-low-fast",
430
+ label: "gpt-5.2-low-fast",
431
+ description: "GPT-5.2 Low Fast",
432
+ },
433
+ {
434
+ value: "gpt-5.2-fast",
435
+ label: "gpt-5.2-fast",
436
+ description: "GPT-5.2 Fast",
437
+ },
438
+ {
439
+ value: "gpt-5.2-high",
440
+ label: "gpt-5.2-high",
441
+ description: "GPT-5.2 High",
442
+ },
443
+ {
444
+ value: "gpt-5.2-high-fast",
445
+ label: "gpt-5.2-high-fast",
446
+ description: "GPT-5.2 High Fast",
447
+ },
448
+ {
449
+ value: "gpt-5.2-xhigh",
450
+ label: "gpt-5.2-xhigh",
451
+ description: "GPT-5.2 Extra High",
452
+ },
453
+ {
454
+ value: "gpt-5.2-xhigh-fast",
455
+ label: "gpt-5.2-xhigh-fast",
456
+ description: "GPT-5.2 Extra High Fast",
457
+ },
458
+ {
459
+ value: "gemini-3.1-pro",
460
+ label: "gemini-3.1-pro",
461
+ description: "Gemini 3.1 Pro",
462
+ },
463
+ {
464
+ value: "gpt-5.4-mini-none",
465
+ label: "gpt-5.4-mini-none",
466
+ description: "GPT-5.4 Mini None",
467
+ },
468
+ {
469
+ value: "gpt-5.4-mini-low",
470
+ label: "gpt-5.4-mini-low",
471
+ description: "GPT-5.4 Mini Low",
472
+ },
473
+ {
474
+ value: "gpt-5.4-mini-medium",
475
+ label: "gpt-5.4-mini-medium",
476
+ description: "GPT-5.4 Mini",
477
+ },
478
+ {
479
+ value: "gpt-5.4-mini-high",
480
+ label: "gpt-5.4-mini-high",
481
+ description: "GPT-5.4 Mini High",
482
+ },
483
+ {
484
+ value: "gpt-5.4-mini-xhigh",
485
+ label: "gpt-5.4-mini-xhigh",
486
+ description: "GPT-5.4 Mini Extra High",
487
+ },
488
+ {
489
+ value: "gpt-5.4-nano-none",
490
+ label: "gpt-5.4-nano-none",
491
+ description: "GPT-5.4 Nano None",
492
+ },
493
+ {
494
+ value: "gpt-5.4-nano-low",
495
+ label: "gpt-5.4-nano-low",
496
+ description: "GPT-5.4 Nano Low",
497
+ },
498
+ {
499
+ value: "gpt-5.4-nano-medium",
500
+ label: "gpt-5.4-nano-medium",
501
+ description: "GPT-5.4 Nano",
502
+ },
503
+ {
504
+ value: "gpt-5.4-nano-high",
505
+ label: "gpt-5.4-nano-high",
506
+ description: "GPT-5.4 Nano High",
507
+ },
508
+ {
509
+ value: "gpt-5.4-nano-xhigh",
510
+ label: "gpt-5.4-nano-xhigh",
511
+ description: "GPT-5.4 Nano Extra High",
512
+ },
513
+ {
514
+ value: "grok-4.3",
515
+ label: "grok-4.3",
516
+ description: "Grok 4.3 1M",
517
+ },
518
+ {
519
+ value: "claude-4.5-sonnet",
520
+ label: "claude-4.5-sonnet",
521
+ description: "Sonnet 4.5",
522
+ },
523
+ {
524
+ value: "claude-4.5-sonnet-thinking",
525
+ label: "claude-4.5-sonnet-thinking",
526
+ description: "Sonnet 4.5 Thinking",
527
+ },
528
+ {
529
+ value: "gpt-5.1-low",
530
+ label: "gpt-5.1-low",
531
+ description: "GPT-5.1 Low",
532
+ },
533
+ {
534
+ value: "gpt-5.1",
535
+ label: "gpt-5.1",
536
+ description: "GPT-5.1",
537
+ },
538
+ {
539
+ value: "gpt-5.1-high",
540
+ label: "gpt-5.1-high",
541
+ description: "GPT-5.1 High",
542
+ },
543
+ {
544
+ value: "gemini-3-flash",
545
+ label: "gemini-3-flash",
546
+ description: "Gemini 3 Flash",
547
+ },
548
+ {
549
+ value: "gemini-3.5-flash",
550
+ label: "gemini-3.5-flash",
551
+ description: "Gemini 3.5 Flash",
552
+ },
553
+ {
554
+ value: "gpt-5.1-codex-mini-low",
555
+ label: "gpt-5.1-codex-mini-low",
556
+ description: "Codex 5.1 Mini Low",
557
+ },
558
+ {
559
+ value: "gpt-5.1-codex-mini",
560
+ label: "gpt-5.1-codex-mini",
561
+ description: "Codex 5.1 Mini",
562
+ },
563
+ {
564
+ value: "gpt-5.1-codex-mini-high",
565
+ label: "gpt-5.1-codex-mini-high",
566
+ description: "Codex 5.1 Mini High",
567
+ },
568
+ {
569
+ value: "claude-4-sonnet",
570
+ label: "claude-4-sonnet",
571
+ description: "Sonnet 4",
572
+ },
573
+ {
574
+ value: "claude-4-sonnet-thinking",
575
+ label: "claude-4-sonnet-thinking",
576
+ description: "Sonnet 4 Thinking",
577
+ },
578
+ {
579
+ value: "gpt-5-mini",
580
+ label: "gpt-5-mini",
581
+ description: "GPT-5 Mini",
582
+ },
583
+ {
584
+ value: "kimi-k2.5",
585
+ label: "kimi-k2.5",
586
+ description: "Kimi K2.5",
587
+ },
588
+ ],
589
+
590
+ DEFAULT: "composer-2.5-fast",
591
+ };
592
+
593
+ /**
594
+ * Codex (OpenAI) Models
595
+ */
596
+ export const CODEX_MODELS = {
597
+ OPTIONS: [
598
+ { value: "gpt-5.5", label: "gpt-5.5" },
599
+ { value: "gpt-5.4", label: "gpt-5.4" },
600
+ { value: "gpt-5.4-mini", label: "gpt-5.4-mini" },
601
+ { value: "gpt-5.3-codex", label: "gpt-5.3-codex" },
602
+ { value: "gpt-5.2", label: "gpt-5.2" },
603
+ ],
604
+
605
+ DEFAULT: "gpt-5.4",
606
+ };
607
+
608
+ /**
609
+ * Gemini Models
610
+ */
611
+ export const GEMINI_MODELS = {
612
+ OPTIONS: [
613
+ { value: "gemini-3.1-pro-preview", label: "Gemini 3.1 Pro Preview" },
614
+ { value: "gemini-3-pro-preview", label: "Gemini 3 Pro Preview" },
615
+ { value: "gemini-3-flash-preview", label: "Gemini 3 Flash Preview" },
616
+ { value: "gemini-2.5-flash", label: "Gemini 2.5 Flash" },
617
+ { value: "gemini-2.5-pro", label: "Gemini 2.5 Pro" },
618
+ { value: "gemini-2.0-flash-lite", label: "Gemini 2.0 Flash Lite" },
619
+ { value: "gemini-2.0-flash", label: "Gemini 2.0 Flash" },
620
+ { value: "gemini-2.0-pro-exp", label: "Gemini 2.0 Pro Experimental" },
621
+ {
622
+ value: "gemini-2.0-flash-thinking-exp",
623
+ label: "Gemini 2.0 Flash Thinking",
624
+ },
625
+ ],
626
+
627
+ DEFAULT: "gemini-3.1-pro-preview",
628
+ };
629
+
630
+ /**
631
+ * OpenCode Models
632
+ *
633
+ * OpenCode model ids include the upstream provider prefix.
634
+ */
635
+ export const OPENCODE_MODELS = {
636
+ OPTIONS: [
637
+ {
638
+ value: "opencode/big-pickle",
639
+ label: "Big Pickle",
640
+ description: "opencode - opencode/big-pickle",
641
+ },
642
+ {
643
+ value: "opencode/deepseek-v4-flash-free",
644
+ label: "Deepseek V4 Flash Free",
645
+ description: "opencode - opencode/deepseek-v4-flash-free",
646
+ },
647
+ {
648
+ value: "opencode/nemotron-3-super-free",
649
+ label: "Nemotron 3 Super Free",
650
+ description: "opencode - opencode/nemotron-3-super-free",
651
+ },
652
+ {
653
+ value: "anthropic/claude-3-5-haiku-20241022",
654
+ label: "Claude 3.5 Haiku (2024-10-22)",
655
+ description: "anthropic - anthropic/claude-3-5-haiku-20241022",
656
+ },
657
+ {
658
+ value: "anthropic/claude-3-5-haiku-latest",
659
+ label: "Claude 3.5 Haiku Latest",
660
+ description: "anthropic - anthropic/claude-3-5-haiku-latest",
661
+ },
662
+ {
663
+ value: "anthropic/claude-3-5-sonnet-20240620",
664
+ label: "Claude 3.5 Sonnet (2024-06-20)",
665
+ description: "anthropic - anthropic/claude-3-5-sonnet-20240620",
666
+ },
667
+ {
668
+ value: "anthropic/claude-3-5-sonnet-20241022",
669
+ label: "Claude 3.5 Sonnet (2024-10-22)",
670
+ description: "anthropic - anthropic/claude-3-5-sonnet-20241022",
671
+ },
672
+ {
673
+ value: "anthropic/claude-3-7-sonnet-20250219",
674
+ label: "Claude 3.7 Sonnet (2025-02-19)",
675
+ description: "anthropic - anthropic/claude-3-7-sonnet-20250219",
676
+ },
677
+ {
678
+ value: "anthropic/claude-3-haiku-20240307",
679
+ label: "Claude 3 Haiku (2024-03-07)",
680
+ description: "anthropic - anthropic/claude-3-haiku-20240307",
681
+ },
682
+ {
683
+ value: "anthropic/claude-3-opus-20240229",
684
+ label: "Claude 3 Opus (2024-02-29)",
685
+ description: "anthropic - anthropic/claude-3-opus-20240229",
686
+ },
687
+ {
688
+ value: "anthropic/claude-3-sonnet-20240229",
689
+ label: "Claude 3 Sonnet (2024-02-29)",
690
+ description: "anthropic - anthropic/claude-3-sonnet-20240229",
691
+ },
692
+ {
693
+ value: "anthropic/claude-haiku-4-5",
694
+ label: "Claude Haiku 4.5",
695
+ description: "anthropic - anthropic/claude-haiku-4-5",
696
+ },
697
+ {
698
+ value: "anthropic/claude-haiku-4-5-20251001",
699
+ label: "Claude Haiku 4.5 (2025-10-01)",
700
+ description: "anthropic - anthropic/claude-haiku-4-5-20251001",
701
+ },
702
+ {
703
+ value: "anthropic/claude-opus-4-0",
704
+ label: "Claude Opus 4.0",
705
+ description: "anthropic - anthropic/claude-opus-4-0",
706
+ },
707
+ {
708
+ value: "anthropic/claude-opus-4-1",
709
+ label: "Claude Opus 4.1",
710
+ description: "anthropic - anthropic/claude-opus-4-1",
711
+ },
712
+ {
713
+ value: "anthropic/claude-opus-4-1-20250805",
714
+ label: "Claude Opus 4.1 (2025-08-05)",
715
+ description: "anthropic - anthropic/claude-opus-4-1-20250805",
716
+ },
717
+ {
718
+ value: "anthropic/claude-opus-4-20250514",
719
+ label: "Claude Opus 4 (2025-05-14)",
720
+ description: "anthropic - anthropic/claude-opus-4-20250514",
721
+ },
722
+ {
723
+ value: "anthropic/claude-opus-4-5",
724
+ label: "Claude Opus 4.5",
725
+ description: "anthropic - anthropic/claude-opus-4-5",
726
+ },
727
+ {
728
+ value: "anthropic/claude-opus-4-5-20251101",
729
+ label: "Claude Opus 4.5 (2025-11-01)",
730
+ description: "anthropic - anthropic/claude-opus-4-5-20251101",
731
+ },
732
+ {
733
+ value: "anthropic/claude-opus-4-6",
734
+ label: "Claude Opus 4.6",
735
+ description: "anthropic - anthropic/claude-opus-4-6",
736
+ },
737
+ {
738
+ value: "anthropic/claude-opus-4-6-fast",
739
+ label: "Claude Opus 4.6 Fast",
740
+ description: "anthropic - anthropic/claude-opus-4-6-fast",
741
+ },
742
+ {
743
+ value: "anthropic/claude-opus-4-7",
744
+ label: "Claude Opus 4.7",
745
+ description: "anthropic - anthropic/claude-opus-4-7",
746
+ },
747
+ {
748
+ value: "anthropic/claude-opus-4-7-fast",
749
+ label: "Claude Opus 4.7 Fast",
750
+ description: "anthropic - anthropic/claude-opus-4-7-fast",
751
+ },
752
+ {
753
+ value: "anthropic/claude-sonnet-4-0",
754
+ label: "Claude Sonnet 4.0",
755
+ description: "anthropic - anthropic/claude-sonnet-4-0",
756
+ },
757
+ {
758
+ value: "anthropic/claude-sonnet-4-20250514",
759
+ label: "Claude Sonnet 4 (2025-05-14)",
760
+ description: "anthropic - anthropic/claude-sonnet-4-20250514",
761
+ },
762
+ {
763
+ value: "anthropic/claude-sonnet-4-5",
764
+ label: "Claude Sonnet 4.5",
765
+ description: "anthropic - anthropic/claude-sonnet-4-5",
766
+ },
767
+ {
768
+ value: "anthropic/claude-sonnet-4-5-20250929",
769
+ label: "Claude Sonnet 4.5 (2025-09-29)",
770
+ description: "anthropic - anthropic/claude-sonnet-4-5-20250929",
771
+ },
772
+ {
773
+ value: "anthropic/claude-sonnet-4-6",
774
+ label: "Claude Sonnet 4.6",
775
+ description: "anthropic - anthropic/claude-sonnet-4-6",
776
+ },
777
+ {
778
+ value: "openai/gpt-5.2",
779
+ label: "GPT-5.2",
780
+ description: "openai - openai/gpt-5.2",
781
+ },
782
+ {
783
+ value: "openai/gpt-5.3-codex",
784
+ label: "GPT-5.3 Codex",
785
+ description: "openai - openai/gpt-5.3-codex",
786
+ },
787
+ {
788
+ value: "openai/gpt-5.3-codex-spark",
789
+ label: "GPT-5.3 Codex Spark",
790
+ description: "openai - openai/gpt-5.3-codex-spark",
791
+ },
792
+ {
793
+ value: "openai/gpt-5.4",
794
+ label: "GPT-5.4",
795
+ description: "openai - openai/gpt-5.4",
796
+ },
797
+ {
798
+ value: "openai/gpt-5.4-fast",
799
+ label: "GPT-5.4 Fast",
800
+ description: "openai - openai/gpt-5.4-fast",
801
+ },
802
+ {
803
+ value: "openai/gpt-5.4-mini",
804
+ label: "GPT-5.4 Mini",
805
+ description: "openai - openai/gpt-5.4-mini",
806
+ },
807
+ {
808
+ value: "openai/gpt-5.4-mini-fast",
809
+ label: "GPT-5.4 Mini Fast",
810
+ description: "openai - openai/gpt-5.4-mini-fast",
811
+ },
812
+ {
813
+ value: "openai/gpt-5.5",
814
+ label: "GPT-5.5",
815
+ description: "openai - openai/gpt-5.5",
816
+ },
817
+ {
818
+ value: "openai/gpt-5.5-fast",
819
+ label: "GPT-5.5 Fast",
820
+ description: "openai - openai/gpt-5.5-fast",
821
+ },
822
+ {
823
+ value: "openai/gpt-5.5-pro",
824
+ label: "GPT-5.5 Pro",
825
+ description: "openai - openai/gpt-5.5-pro",
826
+ },
827
+ ],
828
+
829
+ DEFAULT: "anthropic/claude-sonnet-4-5",
830
+ };
831
+
832
+ /**
833
+ * Ordered provider registry. Display order in documentation.
834
+ */
835
+ export const PROVIDERS = [
836
+ { id: "claude", name: "Anthropic", models: CLAUDE_MODELS },
837
+ { id: "codex", name: "OpenAI", models: CODEX_MODELS },
838
+ { id: "gemini", name: "Google", models: GEMINI_MODELS },
839
+ { id: "cursor", name: "Cursor", models: CURSOR_MODELS },
840
+ { id: "opencode", name: "OpenCode", models: OPENCODE_MODELS },
841
+ ];