opencode-windsurf-codeium 0.1.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.
@@ -0,0 +1,390 @@
1
+ /**
2
+ * Model name to enum mappings for Windsurf gRPC protocol
3
+ *
4
+ * Maps OpenAI-compatible model names to Windsurf protobuf enum values.
5
+ * These values were extracted from Windsurf's extension.js.
6
+ *
7
+ * To discover/verify these values:
8
+ * 1. Find: /Applications/Windsurf.app/Contents/Resources/app/extensions/windsurf/dist/extension.js
9
+ * 2. Search: grep -oE 'CLAUDE[A-Z0-9_]+\s*=\s*[0-9]+' extension.js
10
+ */
11
+ import { ModelEnum } from './types.js';
12
+ // ============================================================================
13
+ // Model Name Mappings
14
+ // ============================================================================
15
+ /**
16
+ * Map of model name strings to their protobuf enum values
17
+ * Supports multiple aliases for each model
18
+ */
19
+ const MODEL_NAME_TO_ENUM = {
20
+ // ============================================================================
21
+ // Claude Models
22
+ // ============================================================================
23
+ 'claude-3-opus': ModelEnum.CLAUDE_3_OPUS_20240229,
24
+ 'claude-3-opus-20240229': ModelEnum.CLAUDE_3_OPUS_20240229,
25
+ 'claude-3-sonnet': ModelEnum.CLAUDE_3_SONNET_20240229,
26
+ 'claude-3-sonnet-20240229': ModelEnum.CLAUDE_3_SONNET_20240229,
27
+ 'claude-3-haiku': ModelEnum.CLAUDE_3_HAIKU_20240307,
28
+ 'claude-3-haiku-20240307': ModelEnum.CLAUDE_3_HAIKU_20240307,
29
+ 'claude-3.5-sonnet': ModelEnum.CLAUDE_3_5_SONNET_20241022,
30
+ 'claude-3-5-sonnet': ModelEnum.CLAUDE_3_5_SONNET_20241022,
31
+ 'claude-3-5-sonnet-20241022': ModelEnum.CLAUDE_3_5_SONNET_20241022,
32
+ 'claude-3.5-haiku': ModelEnum.CLAUDE_3_5_HAIKU_20241022,
33
+ 'claude-3-5-haiku': ModelEnum.CLAUDE_3_5_HAIKU_20241022,
34
+ 'claude-3-5-haiku-20241022': ModelEnum.CLAUDE_3_5_HAIKU_20241022,
35
+ 'claude-3.7-sonnet': ModelEnum.CLAUDE_3_7_SONNET_20250219,
36
+ 'claude-3-7-sonnet': ModelEnum.CLAUDE_3_7_SONNET_20250219,
37
+ 'claude-3-7-sonnet-20250219': ModelEnum.CLAUDE_3_7_SONNET_20250219,
38
+ 'claude-3.7-sonnet-thinking': ModelEnum.CLAUDE_3_7_SONNET_20250219_THINKING,
39
+ 'claude-3-7-sonnet-thinking': ModelEnum.CLAUDE_3_7_SONNET_20250219_THINKING,
40
+ 'claude-4-opus': ModelEnum.CLAUDE_4_OPUS,
41
+ 'claude-4-opus-thinking': ModelEnum.CLAUDE_4_OPUS_THINKING,
42
+ 'claude-4-sonnet': ModelEnum.CLAUDE_4_SONNET,
43
+ 'claude-4-sonnet-thinking': ModelEnum.CLAUDE_4_SONNET_THINKING,
44
+ 'claude-4.1-opus': ModelEnum.CLAUDE_4_1_OPUS,
45
+ 'claude-4-1-opus': ModelEnum.CLAUDE_4_1_OPUS,
46
+ 'claude-4.1-opus-thinking': ModelEnum.CLAUDE_4_1_OPUS_THINKING,
47
+ 'claude-4-1-opus-thinking': ModelEnum.CLAUDE_4_1_OPUS_THINKING,
48
+ 'claude-4.5-sonnet': ModelEnum.CLAUDE_4_5_SONNET,
49
+ 'claude-4-5-sonnet': ModelEnum.CLAUDE_4_5_SONNET,
50
+ 'claude-4.5-sonnet-thinking': ModelEnum.CLAUDE_4_5_SONNET_THINKING,
51
+ 'claude-4-5-sonnet-thinking': ModelEnum.CLAUDE_4_5_SONNET_THINKING,
52
+ // NOTE: claude-4.5-sonnet-1m is defined in enum but not available via API
53
+ 'claude-4.5-opus': ModelEnum.CLAUDE_4_5_OPUS,
54
+ 'claude-4-5-opus': ModelEnum.CLAUDE_4_5_OPUS,
55
+ 'claude-4.5-opus-thinking': ModelEnum.CLAUDE_4_5_OPUS_THINKING,
56
+ 'claude-4-5-opus-thinking': ModelEnum.CLAUDE_4_5_OPUS_THINKING,
57
+ 'claude-code': ModelEnum.CLAUDE_CODE,
58
+ // ============================================================================
59
+ // GPT Models
60
+ // ============================================================================
61
+ 'gpt-4': ModelEnum.GPT_4,
62
+ 'gpt-4-turbo': ModelEnum.GPT_4_1106_PREVIEW,
63
+ 'gpt-4-1106-preview': ModelEnum.GPT_4_1106_PREVIEW,
64
+ 'gpt-4o': ModelEnum.GPT_4O_2024_08_06,
65
+ 'gpt-4o-2024-08-06': ModelEnum.GPT_4O_2024_08_06,
66
+ 'gpt-4o-mini': ModelEnum.GPT_4O_MINI_2024_07_18,
67
+ 'gpt-4o-mini-2024-07-18': ModelEnum.GPT_4O_MINI_2024_07_18,
68
+ // NOTE: gpt-4.5 is defined in enum but not available via API
69
+ 'gpt-4.1': ModelEnum.GPT_4_1_2025_04_14,
70
+ 'gpt-4-1': ModelEnum.GPT_4_1_2025_04_14,
71
+ 'gpt-4.1-mini': ModelEnum.GPT_4_1_MINI_2025_04_14,
72
+ 'gpt-4-1-mini': ModelEnum.GPT_4_1_MINI_2025_04_14,
73
+ 'gpt-4.1-nano': ModelEnum.GPT_4_1_NANO_2025_04_14,
74
+ 'gpt-4-1-nano': ModelEnum.GPT_4_1_NANO_2025_04_14,
75
+ 'gpt-5': ModelEnum.GPT_5,
76
+ 'gpt-5-nano': ModelEnum.GPT_5_NANO,
77
+ 'gpt-5-low': ModelEnum.GPT_5_LOW,
78
+ 'gpt-5-high': ModelEnum.GPT_5_HIGH,
79
+ 'gpt-5-codex': ModelEnum.GPT_5_CODEX,
80
+ // GPT 5.1 Codex variants
81
+ 'gpt-5.1-codex-mini-low': ModelEnum.GPT_5_1_CODEX_MINI_LOW,
82
+ 'gpt-5.1-codex-mini-medium': ModelEnum.GPT_5_1_CODEX_MINI_MEDIUM,
83
+ 'gpt-5.1-codex-mini-high': ModelEnum.GPT_5_1_CODEX_MINI_HIGH,
84
+ 'gpt-5.1-codex-mini': ModelEnum.GPT_5_1_CODEX_MINI_MEDIUM,
85
+ 'gpt-5.1-codex-low': ModelEnum.GPT_5_1_CODEX_LOW,
86
+ 'gpt-5.1-codex-medium': ModelEnum.GPT_5_1_CODEX_MEDIUM,
87
+ 'gpt-5.1-codex-high': ModelEnum.GPT_5_1_CODEX_HIGH,
88
+ 'gpt-5.1-codex': ModelEnum.GPT_5_1_CODEX_MEDIUM,
89
+ 'gpt-5.1-codex-max-low': ModelEnum.GPT_5_1_CODEX_MAX_LOW,
90
+ 'gpt-5.1-codex-max-medium': ModelEnum.GPT_5_1_CODEX_MAX_MEDIUM,
91
+ 'gpt-5.1-codex-max-high': ModelEnum.GPT_5_1_CODEX_MAX_HIGH,
92
+ 'gpt-5.1-codex-max': ModelEnum.GPT_5_1_CODEX_MAX_MEDIUM,
93
+ // GPT 5.2 variants
94
+ 'gpt-5.2': ModelEnum.GPT_5_2_MEDIUM,
95
+ 'gpt-5-2': ModelEnum.GPT_5_2_MEDIUM,
96
+ 'gpt-5.2-low': ModelEnum.GPT_5_2_LOW,
97
+ 'gpt-5-2-low': ModelEnum.GPT_5_2_LOW,
98
+ 'gpt-5.2-high': ModelEnum.GPT_5_2_HIGH,
99
+ 'gpt-5-2-high': ModelEnum.GPT_5_2_HIGH,
100
+ 'gpt-5.2-xhigh': ModelEnum.GPT_5_2_XHIGH,
101
+ 'gpt-5-2-xhigh': ModelEnum.GPT_5_2_XHIGH,
102
+ 'gpt-5.2-priority': ModelEnum.GPT_5_2_MEDIUM_PRIORITY,
103
+ 'gpt-5.2-low-priority': ModelEnum.GPT_5_2_LOW_PRIORITY,
104
+ 'gpt-5.2-high-priority': ModelEnum.GPT_5_2_HIGH_PRIORITY,
105
+ 'gpt-5.2-xhigh-priority': ModelEnum.GPT_5_2_XHIGH_PRIORITY,
106
+ // ============================================================================
107
+ // O-Series (OpenAI Reasoning)
108
+ // NOTE: o1, o1-mini, o1-preview are deprecated - use o3/o4 series instead
109
+ // ============================================================================
110
+ 'o3': ModelEnum.O3,
111
+ 'o3-mini': ModelEnum.O3_MINI,
112
+ 'o3-low': ModelEnum.O3_LOW,
113
+ 'o3-high': ModelEnum.O3_HIGH,
114
+ 'o3-pro': ModelEnum.O3_PRO,
115
+ 'o3-pro-low': ModelEnum.O3_PRO_LOW,
116
+ 'o3-pro-high': ModelEnum.O3_PRO_HIGH,
117
+ 'o4-mini': ModelEnum.O4_MINI,
118
+ 'o4-mini-low': ModelEnum.O4_MINI_LOW,
119
+ 'o4-mini-high': ModelEnum.O4_MINI_HIGH,
120
+ // ============================================================================
121
+ // Google Gemini
122
+ // NOTE: gemini-1.0-pro and gemini-1.5-pro are deprecated - use 2.x+ versions
123
+ // ============================================================================
124
+ 'gemini-2.0-flash': ModelEnum.GEMINI_2_0_FLASH,
125
+ 'gemini-2-0-flash': ModelEnum.GEMINI_2_0_FLASH,
126
+ 'gemini-2.5-pro': ModelEnum.GEMINI_2_5_PRO,
127
+ 'gemini-2-5-pro': ModelEnum.GEMINI_2_5_PRO,
128
+ 'gemini-2.5-flash': ModelEnum.GEMINI_2_5_FLASH,
129
+ 'gemini-2-5-flash': ModelEnum.GEMINI_2_5_FLASH,
130
+ 'gemini-2.5-flash-thinking': ModelEnum.GEMINI_2_5_FLASH_THINKING,
131
+ 'gemini-2-5-flash-thinking': ModelEnum.GEMINI_2_5_FLASH_THINKING,
132
+ 'gemini-2.5-flash-lite': ModelEnum.GEMINI_2_5_FLASH_LITE,
133
+ 'gemini-2-5-flash-lite': ModelEnum.GEMINI_2_5_FLASH_LITE,
134
+ 'gemini-3.0-pro-low': ModelEnum.GEMINI_3_0_PRO_LOW,
135
+ 'gemini-3-0-pro-low': ModelEnum.GEMINI_3_0_PRO_LOW,
136
+ 'gemini-3.0-pro-high': ModelEnum.GEMINI_3_0_PRO_HIGH,
137
+ 'gemini-3-0-pro-high': ModelEnum.GEMINI_3_0_PRO_HIGH,
138
+ 'gemini-3.0-pro': ModelEnum.GEMINI_3_0_PRO_MEDIUM,
139
+ 'gemini-3-0-pro': ModelEnum.GEMINI_3_0_PRO_MEDIUM,
140
+ 'gemini-3.0-pro-minimal': ModelEnum.GEMINI_3_0_PRO_MINIMAL,
141
+ 'gemini-3-0-pro-minimal': ModelEnum.GEMINI_3_0_PRO_MINIMAL,
142
+ 'gemini-3.0-pro-medium': ModelEnum.GEMINI_3_0_PRO_MEDIUM,
143
+ 'gemini-3-0-pro-medium': ModelEnum.GEMINI_3_0_PRO_MEDIUM,
144
+ 'gemini-3.0-flash': ModelEnum.GEMINI_3_0_FLASH_MEDIUM,
145
+ 'gemini-3-0-flash': ModelEnum.GEMINI_3_0_FLASH_MEDIUM,
146
+ 'gemini-3.0-flash-minimal': ModelEnum.GEMINI_3_0_FLASH_MINIMAL,
147
+ 'gemini-3-0-flash-minimal': ModelEnum.GEMINI_3_0_FLASH_MINIMAL,
148
+ 'gemini-3.0-flash-low': ModelEnum.GEMINI_3_0_FLASH_LOW,
149
+ 'gemini-3-0-flash-low': ModelEnum.GEMINI_3_0_FLASH_LOW,
150
+ 'gemini-3.0-flash-medium': ModelEnum.GEMINI_3_0_FLASH_MEDIUM,
151
+ 'gemini-3-0-flash-medium': ModelEnum.GEMINI_3_0_FLASH_MEDIUM,
152
+ 'gemini-3.0-flash-high': ModelEnum.GEMINI_3_0_FLASH_HIGH,
153
+ 'gemini-3-0-flash-high': ModelEnum.GEMINI_3_0_FLASH_HIGH,
154
+ // ============================================================================
155
+ // DeepSeek
156
+ // ============================================================================
157
+ 'deepseek-v3': ModelEnum.DEEPSEEK_V3,
158
+ 'deepseek-v3-2': ModelEnum.DEEPSEEK_V3_2,
159
+ 'deepseek-r1': ModelEnum.DEEPSEEK_R1,
160
+ 'deepseek-r1-fast': ModelEnum.DEEPSEEK_R1_FAST,
161
+ 'deepseek-r1-slow': ModelEnum.DEEPSEEK_R1_SLOW,
162
+ // ============================================================================
163
+ // Llama
164
+ // ============================================================================
165
+ 'llama-3.1-8b': ModelEnum.LLAMA_3_1_8B_INSTRUCT,
166
+ 'llama-3-1-8b': ModelEnum.LLAMA_3_1_8B_INSTRUCT,
167
+ 'llama-3.1-70b': ModelEnum.LLAMA_3_1_70B_INSTRUCT,
168
+ 'llama-3-1-70b': ModelEnum.LLAMA_3_1_70B_INSTRUCT,
169
+ 'llama-3.1-405b': ModelEnum.LLAMA_3_1_405B_INSTRUCT,
170
+ 'llama-3-1-405b': ModelEnum.LLAMA_3_1_405B_INSTRUCT,
171
+ 'llama-3.3-70b': ModelEnum.LLAMA_3_3_70B_INSTRUCT,
172
+ 'llama-3-3-70b': ModelEnum.LLAMA_3_3_70B_INSTRUCT,
173
+ 'llama-3.3-70b-r1': ModelEnum.LLAMA_3_3_70B_INSTRUCT_R1,
174
+ 'llama-3-3-70b-r1': ModelEnum.LLAMA_3_3_70B_INSTRUCT_R1,
175
+ // ============================================================================
176
+ // Qwen
177
+ // ============================================================================
178
+ 'qwen-2.5-7b': ModelEnum.QWEN_2_5_7B_INSTRUCT,
179
+ 'qwen-2-5-7b': ModelEnum.QWEN_2_5_7B_INSTRUCT,
180
+ 'qwen-2.5-32b': ModelEnum.QWEN_2_5_32B_INSTRUCT,
181
+ 'qwen-2-5-32b': ModelEnum.QWEN_2_5_32B_INSTRUCT,
182
+ 'qwen-2.5-72b': ModelEnum.QWEN_2_5_72B_INSTRUCT,
183
+ 'qwen-2-5-72b': ModelEnum.QWEN_2_5_72B_INSTRUCT,
184
+ 'qwen-3-235b': ModelEnum.QWEN_3_235B_INSTRUCT,
185
+ 'qwen-3-coder-480b': ModelEnum.QWEN_3_CODER_480B_INSTRUCT,
186
+ 'qwen-3-coder-480b-fast': ModelEnum.QWEN_3_CODER_480B_INSTRUCT_FAST,
187
+ 'qwen-3-coder': ModelEnum.QWEN_3_CODER_480B_INSTRUCT,
188
+ 'qwen-2.5-32b-r1': ModelEnum.QWEN_2_5_32B_INSTRUCT_R1,
189
+ 'qwen-2-5-32b-r1': ModelEnum.QWEN_2_5_32B_INSTRUCT_R1,
190
+ // ============================================================================
191
+ // XAI Grok
192
+ // ============================================================================
193
+ 'grok-2': ModelEnum.GROK_2,
194
+ 'grok-3': ModelEnum.GROK_3,
195
+ 'grok-3-mini': ModelEnum.GROK_3_MINI_REASONING,
196
+ 'grok-code-fast': ModelEnum.GROK_CODE_FAST,
197
+ // ============================================================================
198
+ // Other Models
199
+ // ============================================================================
200
+ 'mistral-7b': ModelEnum.MISTRAL_7B,
201
+ 'kimi-k2': ModelEnum.KIMI_K2,
202
+ 'kimi-k2-thinking': ModelEnum.KIMI_K2_THINKING,
203
+ 'glm-4.5': ModelEnum.GLM_4_5,
204
+ 'glm-4-5': ModelEnum.GLM_4_5,
205
+ 'glm-4.5-fast': ModelEnum.GLM_4_5_FAST,
206
+ 'glm-4-5-fast': ModelEnum.GLM_4_5_FAST,
207
+ 'glm-4.6': ModelEnum.GLM_4_6,
208
+ 'glm-4-6': ModelEnum.GLM_4_6,
209
+ 'glm-4.6-fast': ModelEnum.GLM_4_6_FAST,
210
+ 'glm-4-6-fast': ModelEnum.GLM_4_6_FAST,
211
+ 'glm-4.7': ModelEnum.GLM_4_7,
212
+ 'glm-4-7': ModelEnum.GLM_4_7,
213
+ 'glm-4.7-fast': ModelEnum.GLM_4_7_FAST,
214
+ 'glm-4-7-fast': ModelEnum.GLM_4_7_FAST,
215
+ 'minimax-m2': ModelEnum.MINIMAX_M2,
216
+ 'minimax-m2.1': ModelEnum.MINIMAX_M2_1,
217
+ 'minimax-m2-1': ModelEnum.MINIMAX_M2_1,
218
+ 'swe-1.5': ModelEnum.SWE_1_5,
219
+ 'swe-1-5': ModelEnum.SWE_1_5,
220
+ 'swe-1.5-thinking': ModelEnum.SWE_1_5_THINKING,
221
+ 'swe-1-5-thinking': ModelEnum.SWE_1_5_THINKING,
222
+ 'swe-1.5-slow': ModelEnum.SWE_1_5_SLOW,
223
+ 'swe-1-5-slow': ModelEnum.SWE_1_5_SLOW,
224
+ };
225
+ /**
226
+ * Reverse mapping from enum values to canonical model names
227
+ */
228
+ const ENUM_TO_MODEL_NAME = {
229
+ // Claude
230
+ [ModelEnum.CLAUDE_3_OPUS_20240229]: 'claude-3-opus',
231
+ [ModelEnum.CLAUDE_3_SONNET_20240229]: 'claude-3-sonnet',
232
+ [ModelEnum.CLAUDE_3_HAIKU_20240307]: 'claude-3-haiku',
233
+ [ModelEnum.CLAUDE_3_5_SONNET_20241022]: 'claude-3.5-sonnet',
234
+ [ModelEnum.CLAUDE_3_5_HAIKU_20241022]: 'claude-3.5-haiku',
235
+ [ModelEnum.CLAUDE_3_7_SONNET_20250219]: 'claude-3.7-sonnet',
236
+ [ModelEnum.CLAUDE_3_7_SONNET_20250219_THINKING]: 'claude-3.7-sonnet-thinking',
237
+ [ModelEnum.CLAUDE_4_OPUS]: 'claude-4-opus',
238
+ [ModelEnum.CLAUDE_4_OPUS_THINKING]: 'claude-4-opus-thinking',
239
+ [ModelEnum.CLAUDE_4_SONNET]: 'claude-4-sonnet',
240
+ [ModelEnum.CLAUDE_4_SONNET_THINKING]: 'claude-4-sonnet-thinking',
241
+ [ModelEnum.CLAUDE_4_1_OPUS]: 'claude-4.1-opus',
242
+ [ModelEnum.CLAUDE_4_1_OPUS_THINKING]: 'claude-4.1-opus-thinking',
243
+ [ModelEnum.CLAUDE_4_5_SONNET]: 'claude-4.5-sonnet',
244
+ [ModelEnum.CLAUDE_4_5_SONNET_THINKING]: 'claude-4.5-sonnet-thinking',
245
+ // NOTE: CLAUDE_4_5_SONNET_1M not available via API
246
+ [ModelEnum.CLAUDE_4_5_OPUS]: 'claude-4.5-opus',
247
+ [ModelEnum.CLAUDE_4_5_OPUS_THINKING]: 'claude-4.5-opus-thinking',
248
+ [ModelEnum.CLAUDE_CODE]: 'claude-code',
249
+ // GPT
250
+ [ModelEnum.GPT_4]: 'gpt-4',
251
+ [ModelEnum.GPT_4_1106_PREVIEW]: 'gpt-4-turbo',
252
+ [ModelEnum.GPT_4O_2024_08_06]: 'gpt-4o',
253
+ [ModelEnum.GPT_4O_MINI_2024_07_18]: 'gpt-4o-mini',
254
+ // NOTE: GPT_4_5 not available via API
255
+ [ModelEnum.GPT_4_1_2025_04_14]: 'gpt-4.1',
256
+ [ModelEnum.GPT_4_1_MINI_2025_04_14]: 'gpt-4.1-mini',
257
+ [ModelEnum.GPT_4_1_NANO_2025_04_14]: 'gpt-4.1-nano',
258
+ [ModelEnum.GPT_5]: 'gpt-5',
259
+ [ModelEnum.GPT_5_NANO]: 'gpt-5-nano',
260
+ [ModelEnum.GPT_5_LOW]: 'gpt-5-low',
261
+ [ModelEnum.GPT_5_HIGH]: 'gpt-5-high',
262
+ [ModelEnum.GPT_5_CODEX]: 'gpt-5-codex',
263
+ [ModelEnum.GPT_5_1_CODEX_MINI_MEDIUM]: 'gpt-5.1-codex-mini',
264
+ [ModelEnum.GPT_5_1_CODEX_MEDIUM]: 'gpt-5.1-codex',
265
+ [ModelEnum.GPT_5_1_CODEX_MAX_MEDIUM]: 'gpt-5.1-codex-max',
266
+ [ModelEnum.GPT_5_2_LOW]: 'gpt-5.2-low',
267
+ [ModelEnum.GPT_5_2_MEDIUM]: 'gpt-5.2',
268
+ [ModelEnum.GPT_5_2_HIGH]: 'gpt-5.2-high',
269
+ [ModelEnum.GPT_5_2_XHIGH]: 'gpt-5.2-xhigh',
270
+ [ModelEnum.GPT_5_2_MEDIUM_PRIORITY]: 'gpt-5.2-priority',
271
+ // O-Series (o1 series deprecated - use o3/o4)
272
+ [ModelEnum.O3]: 'o3',
273
+ [ModelEnum.O3_MINI]: 'o3-mini',
274
+ [ModelEnum.O3_LOW]: 'o3-low',
275
+ [ModelEnum.O3_HIGH]: 'o3-high',
276
+ [ModelEnum.O3_PRO]: 'o3-pro',
277
+ [ModelEnum.O3_PRO_LOW]: 'o3-pro-low',
278
+ [ModelEnum.O3_PRO_HIGH]: 'o3-pro-high',
279
+ [ModelEnum.O4_MINI]: 'o4-mini',
280
+ [ModelEnum.O4_MINI_LOW]: 'o4-mini-low',
281
+ [ModelEnum.O4_MINI_HIGH]: 'o4-mini-high',
282
+ // Gemini (1.x series deprecated - use 2.x+)
283
+ [ModelEnum.GEMINI_2_0_FLASH]: 'gemini-2.0-flash',
284
+ [ModelEnum.GEMINI_2_5_PRO]: 'gemini-2.5-pro',
285
+ [ModelEnum.GEMINI_2_5_FLASH]: 'gemini-2.5-flash',
286
+ [ModelEnum.GEMINI_2_5_FLASH_THINKING]: 'gemini-2.5-flash-thinking',
287
+ [ModelEnum.GEMINI_2_5_FLASH_LITE]: 'gemini-2.5-flash-lite',
288
+ [ModelEnum.GEMINI_3_0_PRO_LOW]: 'gemini-3.0-pro-low',
289
+ [ModelEnum.GEMINI_3_0_PRO_HIGH]: 'gemini-3.0-pro-high',
290
+ [ModelEnum.GEMINI_3_0_PRO_MEDIUM]: 'gemini-3.0-pro',
291
+ [ModelEnum.GEMINI_3_0_FLASH_MEDIUM]: 'gemini-3.0-flash',
292
+ [ModelEnum.GEMINI_3_0_FLASH_HIGH]: 'gemini-3.0-flash-high',
293
+ // DeepSeek
294
+ [ModelEnum.DEEPSEEK_V3]: 'deepseek-v3',
295
+ [ModelEnum.DEEPSEEK_V3_2]: 'deepseek-v3-2',
296
+ [ModelEnum.DEEPSEEK_R1]: 'deepseek-r1',
297
+ [ModelEnum.DEEPSEEK_R1_FAST]: 'deepseek-r1-fast',
298
+ [ModelEnum.DEEPSEEK_R1_SLOW]: 'deepseek-r1-slow',
299
+ // Llama
300
+ [ModelEnum.LLAMA_3_1_8B_INSTRUCT]: 'llama-3.1-8b',
301
+ [ModelEnum.LLAMA_3_1_70B_INSTRUCT]: 'llama-3.1-70b',
302
+ [ModelEnum.LLAMA_3_1_405B_INSTRUCT]: 'llama-3.1-405b',
303
+ [ModelEnum.LLAMA_3_3_70B_INSTRUCT]: 'llama-3.3-70b',
304
+ [ModelEnum.LLAMA_3_3_70B_INSTRUCT_R1]: 'llama-3.3-70b-r1',
305
+ // Qwen
306
+ [ModelEnum.QWEN_2_5_7B_INSTRUCT]: 'qwen-2.5-7b',
307
+ [ModelEnum.QWEN_2_5_32B_INSTRUCT]: 'qwen-2.5-32b',
308
+ [ModelEnum.QWEN_2_5_72B_INSTRUCT]: 'qwen-2.5-72b',
309
+ [ModelEnum.QWEN_2_5_32B_INSTRUCT_R1]: 'qwen-2.5-32b-r1',
310
+ [ModelEnum.QWEN_3_235B_INSTRUCT]: 'qwen-3-235b',
311
+ [ModelEnum.QWEN_3_CODER_480B_INSTRUCT]: 'qwen-3-coder-480b',
312
+ [ModelEnum.QWEN_3_CODER_480B_INSTRUCT_FAST]: 'qwen-3-coder-480b-fast',
313
+ // Grok
314
+ [ModelEnum.GROK_2]: 'grok-2',
315
+ [ModelEnum.GROK_3]: 'grok-3',
316
+ [ModelEnum.GROK_3_MINI_REASONING]: 'grok-3-mini',
317
+ [ModelEnum.GROK_CODE_FAST]: 'grok-code-fast',
318
+ // Other
319
+ [ModelEnum.MISTRAL_7B]: 'mistral-7b',
320
+ [ModelEnum.KIMI_K2]: 'kimi-k2',
321
+ [ModelEnum.KIMI_K2_THINKING]: 'kimi-k2-thinking',
322
+ [ModelEnum.GLM_4_5]: 'glm-4.5',
323
+ [ModelEnum.GLM_4_5_FAST]: 'glm-4.5-fast',
324
+ [ModelEnum.GLM_4_6]: 'glm-4.6',
325
+ [ModelEnum.GLM_4_6_FAST]: 'glm-4.6-fast',
326
+ [ModelEnum.GLM_4_7]: 'glm-4.7',
327
+ [ModelEnum.GLM_4_7_FAST]: 'glm-4.7-fast',
328
+ [ModelEnum.MINIMAX_M2]: 'minimax-m2',
329
+ [ModelEnum.MINIMAX_M2_1]: 'minimax-m2.1',
330
+ [ModelEnum.SWE_1_5]: 'swe-1.5',
331
+ [ModelEnum.SWE_1_5_THINKING]: 'swe-1.5-thinking',
332
+ [ModelEnum.SWE_1_5_SLOW]: 'swe-1.5-slow',
333
+ };
334
+ // ============================================================================
335
+ // Public API
336
+ // ============================================================================
337
+ /**
338
+ * Convert a model name string to its protobuf enum value
339
+ * @param modelName - Model name (e.g., "claude-4-sonnet", "gpt-4o")
340
+ * @returns The corresponding enum value, defaults to CLAUDE_3_5_SONNET if unknown
341
+ */
342
+ export function modelNameToEnum(modelName) {
343
+ const normalized = modelName.toLowerCase().trim();
344
+ return MODEL_NAME_TO_ENUM[normalized] ?? ModelEnum.CLAUDE_3_5_SONNET_20241022;
345
+ }
346
+ /**
347
+ * Convert a protobuf enum value to a canonical model name
348
+ * @param enumValue - The enum value
349
+ * @returns The canonical model name string
350
+ */
351
+ export function enumToModelName(enumValue) {
352
+ return ENUM_TO_MODEL_NAME[enumValue] ?? 'claude-3.5-sonnet';
353
+ }
354
+ /**
355
+ * Get all supported model names
356
+ * @returns Array of all supported model name strings
357
+ */
358
+ export function getSupportedModels() {
359
+ return Object.keys(MODEL_NAME_TO_ENUM);
360
+ }
361
+ /**
362
+ * Check if a model name is supported
363
+ * @param modelName - Model name to check
364
+ * @returns True if the model is supported
365
+ */
366
+ export function isModelSupported(modelName) {
367
+ return modelName.toLowerCase().trim() in MODEL_NAME_TO_ENUM;
368
+ }
369
+ /**
370
+ * Get the default model name
371
+ * @returns The default model name
372
+ */
373
+ export function getDefaultModel() {
374
+ return 'claude-3.5-sonnet';
375
+ }
376
+ /**
377
+ * Get the default model enum value
378
+ * @returns The default model enum value
379
+ */
380
+ export function getDefaultModelEnum() {
381
+ return ModelEnum.CLAUDE_3_5_SONNET_20241022;
382
+ }
383
+ /**
384
+ * Get canonical model names (one per enum value, no aliases)
385
+ * @returns Array of canonical model names
386
+ */
387
+ export function getCanonicalModels() {
388
+ return Object.values(ENUM_TO_MODEL_NAME).filter((v) => v !== undefined);
389
+ }
390
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/plugin/models.ts"],"names":[],"mappings":"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"}