opencode-windsurf-codeium 0.1.26 → 0.1.28

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.
@@ -9,8 +9,216 @@
9
9
  * 2. Search: grep -oE 'CLAUDE[A-Z0-9_]+\s*=\s*[0-9]+' extension.js
10
10
  */
11
11
  import { ModelEnum } from './types.js';
12
+ // ==========================================================================
13
+ // Variant Catalog
14
+ // ==========================================================================
15
+ const VARIANT_CATALOG = {
16
+ // Claude thinking variants
17
+ 'claude-3.7-sonnet': {
18
+ id: 'claude-3.7-sonnet',
19
+ defaultEnum: ModelEnum.CLAUDE_3_7_SONNET_20250219,
20
+ variants: {
21
+ thinking: { enumValue: ModelEnum.CLAUDE_3_7_SONNET_20250219_THINKING, description: 'Thinking mode' },
22
+ },
23
+ },
24
+ 'claude-4.5-sonnet': {
25
+ id: 'claude-4.5-sonnet',
26
+ defaultEnum: ModelEnum.CLAUDE_4_5_SONNET,
27
+ variants: {
28
+ thinking: { enumValue: ModelEnum.CLAUDE_4_5_SONNET_THINKING, description: 'Thinking mode' },
29
+ },
30
+ },
31
+ 'claude-4.5-opus': {
32
+ id: 'claude-4.5-opus',
33
+ defaultEnum: ModelEnum.CLAUDE_4_5_OPUS,
34
+ variants: {
35
+ thinking: { enumValue: ModelEnum.CLAUDE_4_5_OPUS_THINKING, description: 'Thinking mode' },
36
+ },
37
+ },
38
+ 'claude-4.1-opus': {
39
+ id: 'claude-4.1-opus',
40
+ defaultEnum: ModelEnum.CLAUDE_4_1_OPUS,
41
+ variants: {
42
+ thinking: { enumValue: ModelEnum.CLAUDE_4_1_OPUS_THINKING, description: 'Thinking mode' },
43
+ },
44
+ aliases: ['claude-4-1-opus'],
45
+ },
46
+ 'claude-4-opus': {
47
+ id: 'claude-4-opus',
48
+ defaultEnum: ModelEnum.CLAUDE_4_OPUS,
49
+ variants: {
50
+ thinking: { enumValue: ModelEnum.CLAUDE_4_OPUS_THINKING, description: 'Thinking mode' },
51
+ },
52
+ },
53
+ 'claude-4-sonnet': {
54
+ id: 'claude-4-sonnet',
55
+ defaultEnum: ModelEnum.CLAUDE_4_SONNET,
56
+ variants: {
57
+ thinking: { enumValue: ModelEnum.CLAUDE_4_SONNET_THINKING, description: 'Thinking mode' },
58
+ },
59
+ },
60
+ // Google Gemini 2.5 / 3.0
61
+ 'gemini-2.5-flash': {
62
+ id: 'gemini-2.5-flash',
63
+ defaultEnum: ModelEnum.GEMINI_2_5_FLASH,
64
+ variants: {
65
+ thinking: { enumValue: ModelEnum.GEMINI_2_5_FLASH_THINKING, description: 'Thinking budget enabled' },
66
+ lite: { enumValue: ModelEnum.GEMINI_2_5_FLASH_LITE, description: 'Lite / lower cost' },
67
+ },
68
+ aliases: ['gemini-2-5-flash'],
69
+ },
70
+ // Google Gemini 3.0 Pro
71
+ 'gemini-3.0-pro': {
72
+ id: 'gemini-3.0-pro',
73
+ defaultEnum: ModelEnum.GEMINI_3_0_PRO_MEDIUM,
74
+ variants: {
75
+ minimal: { enumValue: ModelEnum.GEMINI_3_0_PRO_MINIMAL, description: 'Cheaper, least reasoning' },
76
+ low: { enumValue: ModelEnum.GEMINI_3_0_PRO_LOW, description: 'Lower cost / speed' },
77
+ medium: { enumValue: ModelEnum.GEMINI_3_0_PRO_MEDIUM, description: 'Balanced (default)' },
78
+ high: { enumValue: ModelEnum.GEMINI_3_0_PRO_HIGH, description: 'Higher reasoning budget' },
79
+ },
80
+ aliases: ['gemini-3-0-pro'],
81
+ },
82
+ // Google Gemini 3.0 Flash
83
+ 'gemini-3.0-flash': {
84
+ id: 'gemini-3.0-flash',
85
+ defaultEnum: ModelEnum.GEMINI_3_0_FLASH_MEDIUM,
86
+ variants: {
87
+ minimal: { enumValue: ModelEnum.GEMINI_3_0_FLASH_MINIMAL, description: 'Cheapest, lowest latency' },
88
+ low: { enumValue: ModelEnum.GEMINI_3_0_FLASH_LOW, description: 'Low thinking budget' },
89
+ medium: { enumValue: ModelEnum.GEMINI_3_0_FLASH_MEDIUM, description: 'Balanced (default)' },
90
+ high: { enumValue: ModelEnum.GEMINI_3_0_FLASH_HIGH, description: 'Higher reasoning budget' },
91
+ },
92
+ aliases: ['gemini-3-0-flash'],
93
+ },
94
+ // GPT 5.2
95
+ 'gpt-5.2': {
96
+ id: 'gpt-5.2',
97
+ defaultEnum: ModelEnum.GPT_5_2_MEDIUM,
98
+ variants: {
99
+ low: { enumValue: ModelEnum.GPT_5_2_LOW, description: 'Lower cost' },
100
+ medium: { enumValue: ModelEnum.GPT_5_2_MEDIUM, description: 'Balanced (default)' },
101
+ high: { enumValue: ModelEnum.GPT_5_2_HIGH, description: 'Higher capability' },
102
+ xhigh: { enumValue: ModelEnum.GPT_5_2_XHIGH, description: 'Maximum capability' },
103
+ priority: { enumValue: ModelEnum.GPT_5_2_MEDIUM_PRIORITY, description: 'Priority routing (medium)' },
104
+ 'low-priority': { enumValue: ModelEnum.GPT_5_2_LOW_PRIORITY, description: 'Priority routing (low)' },
105
+ 'high-priority': { enumValue: ModelEnum.GPT_5_2_HIGH_PRIORITY, description: 'Priority routing (high)' },
106
+ 'xhigh-priority': { enumValue: ModelEnum.GPT_5_2_XHIGH_PRIORITY, description: 'Priority routing (xhigh)' },
107
+ },
108
+ aliases: ['gpt-5-2'],
109
+ },
110
+ // GPT 5
111
+ 'gpt-5': {
112
+ id: 'gpt-5',
113
+ defaultEnum: ModelEnum.GPT_5,
114
+ variants: {
115
+ low: { enumValue: ModelEnum.GPT_5_LOW, description: 'Lower cost' },
116
+ high: { enumValue: ModelEnum.GPT_5_HIGH, description: 'Higher capability' },
117
+ nano: { enumValue: ModelEnum.GPT_5_NANO, description: 'Small footprint' },
118
+ },
119
+ },
120
+ // GPT 5.1 Codex families
121
+ 'gpt-5.1-codex-mini': {
122
+ id: 'gpt-5.1-codex-mini',
123
+ defaultEnum: ModelEnum.GPT_5_1_CODEX_MINI_MEDIUM,
124
+ variants: {
125
+ low: { enumValue: ModelEnum.GPT_5_1_CODEX_MINI_LOW },
126
+ medium: { enumValue: ModelEnum.GPT_5_1_CODEX_MINI_MEDIUM },
127
+ high: { enumValue: ModelEnum.GPT_5_1_CODEX_MINI_HIGH },
128
+ },
129
+ aliases: ['gpt-5-1-codex-mini'],
130
+ },
131
+ 'gpt-5.1-codex': {
132
+ id: 'gpt-5.1-codex',
133
+ defaultEnum: ModelEnum.GPT_5_1_CODEX_MEDIUM,
134
+ variants: {
135
+ low: { enumValue: ModelEnum.GPT_5_1_CODEX_LOW },
136
+ medium: { enumValue: ModelEnum.GPT_5_1_CODEX_MEDIUM },
137
+ high: { enumValue: ModelEnum.GPT_5_1_CODEX_HIGH },
138
+ },
139
+ aliases: ['gpt-5-1-codex'],
140
+ },
141
+ 'gpt-5.1-codex-max': {
142
+ id: 'gpt-5.1-codex-max',
143
+ defaultEnum: ModelEnum.GPT_5_1_CODEX_MAX_MEDIUM,
144
+ variants: {
145
+ low: { enumValue: ModelEnum.GPT_5_1_CODEX_MAX_LOW },
146
+ medium: { enumValue: ModelEnum.GPT_5_1_CODEX_MAX_MEDIUM },
147
+ high: { enumValue: ModelEnum.GPT_5_1_CODEX_MAX_HIGH },
148
+ },
149
+ aliases: ['gpt-5-1-codex-max'],
150
+ },
151
+ // O series
152
+ o3: {
153
+ id: 'o3',
154
+ defaultEnum: ModelEnum.O3,
155
+ variants: {
156
+ low: { enumValue: ModelEnum.O3_LOW },
157
+ high: { enumValue: ModelEnum.O3_HIGH },
158
+ },
159
+ },
160
+ 'o3-pro': {
161
+ id: 'o3-pro',
162
+ defaultEnum: ModelEnum.O3_PRO,
163
+ variants: {
164
+ low: { enumValue: ModelEnum.O3_PRO_LOW },
165
+ high: { enumValue: ModelEnum.O3_PRO_HIGH },
166
+ },
167
+ },
168
+ 'o4-mini': {
169
+ id: 'o4-mini',
170
+ defaultEnum: ModelEnum.O4_MINI,
171
+ variants: {
172
+ low: { enumValue: ModelEnum.O4_MINI_LOW },
173
+ high: { enumValue: ModelEnum.O4_MINI_HIGH },
174
+ },
175
+ },
176
+ };
177
+ const VARIANT_NAME_SET = new Set();
178
+ for (const entry of Object.values(VARIANT_CATALOG)) {
179
+ if (entry.variants) {
180
+ for (const variantKey of Object.keys(entry.variants)) {
181
+ VARIANT_NAME_SET.add(`${entry.id}-${variantKey}`);
182
+ if (entry.aliases) {
183
+ for (const alias of entry.aliases) {
184
+ VARIANT_NAME_SET.add(`${alias}-${variantKey}`);
185
+ }
186
+ }
187
+ }
188
+ }
189
+ }
190
+ // Mapping of alias -> canonical id for quick lookup
191
+ const ALIAS_TO_ID = Object.values(VARIANT_CATALOG).reduce((acc, entry) => {
192
+ acc[entry.id] = entry.id;
193
+ for (const alias of entry.aliases || []) {
194
+ acc[alias] = entry.id;
195
+ }
196
+ return acc;
197
+ }, {});
198
+ function normalizeModelId(modelName) {
199
+ return modelName.toLowerCase().trim();
200
+ }
201
+ function splitModelAndVariant(raw) {
202
+ const normalized = normalizeModelId(raw);
203
+ // Allow colon-delimited (opencode variants) or suffix "-<variant>"
204
+ const colonIdx = normalized.indexOf(':');
205
+ if (colonIdx !== -1) {
206
+ const base = normalized.slice(0, colonIdx);
207
+ const variant = normalized.slice(colonIdx + 1).trim();
208
+ return { base, variant: variant || undefined };
209
+ }
210
+ const parts = normalized.split('-');
211
+ if (parts.length > 1) {
212
+ const maybeVariant = parts[parts.length - 1];
213
+ const base = parts.slice(0, -1).join('-');
214
+ if (VARIANT_CATALOG[ALIAS_TO_ID[base] || base]?.variants?.[maybeVariant]) {
215
+ return { base, variant: maybeVariant };
216
+ }
217
+ }
218
+ return { base: normalized };
219
+ }
12
220
  // ============================================================================
13
- // Model Name Mappings
221
+ // Model Name Mappings (legacy fallback)
14
222
  // ============================================================================
15
223
  /**
16
224
  * Map of model name strings to their protobuf enum values
@@ -334,14 +542,34 @@ const ENUM_TO_MODEL_NAME = {
334
542
  // ============================================================================
335
543
  // Public API
336
544
  // ============================================================================
545
+ export function resolveModel(modelName, variantOverride) {
546
+ const { base, variant } = splitModelAndVariant(modelName);
547
+ const baseId = ALIAS_TO_ID[base] || base;
548
+ const entry = VARIANT_CATALOG[baseId];
549
+ if (entry) {
550
+ const effectiveVariant = (variantOverride || variant || '').trim().toLowerCase();
551
+ if (effectiveVariant && entry.variants?.[effectiveVariant]) {
552
+ return {
553
+ enumValue: entry.variants[effectiveVariant].enumValue,
554
+ modelId: entry.id,
555
+ variant: effectiveVariant,
556
+ };
557
+ }
558
+ return { enumValue: entry.defaultEnum, modelId: entry.id };
559
+ }
560
+ // Fallback to legacy map
561
+ const normalized = normalizeModelId(modelName);
562
+ const enumValue = MODEL_NAME_TO_ENUM[normalized];
563
+ if (enumValue) {
564
+ return { enumValue, modelId: normalized };
565
+ }
566
+ return { enumValue: ModelEnum.CLAUDE_3_5_SONNET_20241022, modelId: 'claude-3.5-sonnet' };
567
+ }
337
568
  /**
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
569
+ * Convert a model name string (optionally including variant) to enum
341
570
  */
342
- export function modelNameToEnum(modelName) {
343
- const normalized = modelName.toLowerCase().trim();
344
- return MODEL_NAME_TO_ENUM[normalized] ?? ModelEnum.CLAUDE_3_5_SONNET_20241022;
571
+ export function modelNameToEnum(modelName, variantOverride) {
572
+ return resolveModel(modelName, variantOverride).enumValue;
345
573
  }
346
574
  /**
347
575
  * Convert a protobuf enum value to a canonical model name
@@ -352,39 +580,63 @@ export function enumToModelName(enumValue) {
352
580
  return ENUM_TO_MODEL_NAME[enumValue] ?? 'claude-3.5-sonnet';
353
581
  }
354
582
  /**
355
- * Get all supported model names
356
- * @returns Array of all supported model name strings
583
+ * Get all supported model names (includes legacy aliases)
357
584
  */
358
585
  export function getSupportedModels() {
359
- return Object.keys(MODEL_NAME_TO_ENUM);
586
+ const fromVariants = Object.keys(VARIANT_CATALOG);
587
+ const aliases = [];
588
+ for (const entry of Object.values(VARIANT_CATALOG)) {
589
+ if (entry.aliases)
590
+ aliases.push(...entry.aliases);
591
+ if (entry.variants) {
592
+ for (const variantKey of Object.keys(entry.variants)) {
593
+ aliases.push(`${entry.id}-${variantKey}`);
594
+ for (const alias of entry.aliases || []) {
595
+ aliases.push(`${alias}-${variantKey}`);
596
+ }
597
+ }
598
+ }
599
+ }
600
+ return Array.from(new Set([...fromVariants, ...aliases, ...Object.keys(MODEL_NAME_TO_ENUM)]));
360
601
  }
361
602
  /**
362
- * Check if a model name is supported
363
- * @param modelName - Model name to check
364
- * @returns True if the model is supported
603
+ * Check if a model name is supported (canonical or alias or variant)
365
604
  */
366
605
  export function isModelSupported(modelName) {
367
- return modelName.toLowerCase().trim() in MODEL_NAME_TO_ENUM;
606
+ const normalized = normalizeModelId(modelName);
607
+ const { base, variant } = splitModelAndVariant(normalized);
608
+ const baseId = ALIAS_TO_ID[base] || base;
609
+ if (variant && VARIANT_CATALOG[baseId]?.variants?.[variant])
610
+ return true;
611
+ if (VARIANT_CATALOG[baseId])
612
+ return true;
613
+ return normalized in MODEL_NAME_TO_ENUM;
368
614
  }
369
- /**
370
- * Get the default model name
371
- * @returns The default model name
372
- */
615
+ /** Default canonical model */
373
616
  export function getDefaultModel() {
374
617
  return 'claude-3.5-sonnet';
375
618
  }
376
- /**
377
- * Get the default model enum value
378
- * @returns The default model enum value
379
- */
380
619
  export function getDefaultModelEnum() {
381
620
  return ModelEnum.CLAUDE_3_5_SONNET_20241022;
382
621
  }
383
622
  /**
384
- * Get canonical model names (one per enum value, no aliases)
385
- * @returns Array of canonical model names
623
+ * Canonical models (no variants), aligned with OpenCode listing
386
624
  */
387
625
  export function getCanonicalModels() {
388
- return Object.values(ENUM_TO_MODEL_NAME).filter((v) => v !== undefined);
626
+ const bases = new Set(Object.keys(VARIANT_CATALOG));
627
+ // Add non-variant canonical names derived from enum mapping
628
+ for (const name of Object.values(ENUM_TO_MODEL_NAME)) {
629
+ if (!name)
630
+ continue;
631
+ if (VARIANT_NAME_SET.has(name))
632
+ continue; // skip variant entries
633
+ if (!bases.has(name))
634
+ bases.add(name);
635
+ }
636
+ return Array.from(bases).sort();
637
+ }
638
+ export function getModelVariants(modelId) {
639
+ const baseId = ALIAS_TO_ID[normalizeModelId(modelId)] || normalizeModelId(modelId);
640
+ return VARIANT_CATALOG[baseId]?.variants;
389
641
  }
390
642
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/plugin/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/plugin/models.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA8tB9D;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC9B,aAAY,MAAkB,MACxB,UAAU,WAAW,KAAG,OAAO,CAAC,KAAK,CA6B3C,CAAC;AAEJ,qCAAqC;AACrC,eAAO,MAAM,cAAc,aAhCR,WAAW,KAAG,OAAO,CAAC,KAAK,CAgCM,CAAC;AAErD,8BAA8B;AAC9B,eAAO,MAAM,aAAa,aAnCP,WAAW,KAAG,OAAO,CAAC,KAAK,CAmCc,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA6wB9D;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC9B,aAAY,MAAkB,MACxB,UAAU,WAAW,KAAG,OAAO,CAAC,KAAK,CA6B3C,CAAC;AAEJ,qCAAqC;AACrC,eAAO,MAAM,cAAc,aAhCR,WAAW,KAAG,OAAO,CAAC,KAAK,CAgCM,CAAC;AAErD,8BAA8B;AAC9B,eAAO,MAAM,aAAa,aAnCP,WAAW,KAAG,OAAO,CAAC,KAAK,CAmCc,CAAC"}
@@ -14,10 +14,24 @@
14
14
  * - User must be logged into Windsurf (provides API key in ~/.codeium/config.json)
15
15
  */
16
16
  import * as crypto from 'crypto';
17
- import { getCredentials, isWindsurfRunning } from './plugin/auth.js';
17
+ import { getCredentials, getCredentialsWithRetry, isWindsurfRunning } from './plugin/auth.js';
18
18
  import { streamChatGenerator } from './plugin/grpc-client.js';
19
- import { getDefaultModel, getCanonicalModels } from './plugin/models.js';
19
+ import { getDefaultModel, getCanonicalModels, getModelVariants, resolveModel, } from './plugin/models.js';
20
20
  import { PLUGIN_ID } from './constants.js';
21
+ function extractVariantFromProviderOptions(providerOptions) {
22
+ if (!providerOptions)
23
+ return undefined;
24
+ const windsurf = providerOptions.windsurf;
25
+ const candidate = windsurf?.variant ??
26
+ windsurf?.variantID ??
27
+ windsurf?.variantId ??
28
+ providerOptions.variant ??
29
+ providerOptions.variantID ??
30
+ providerOptions.variantId;
31
+ if (candidate && typeof candidate === 'string')
32
+ return candidate;
33
+ return undefined;
34
+ }
21
35
  async function runWindsurfOnce(credentials, model, prompt) {
22
36
  const chunks = [];
23
37
  const generator = streamChatGenerator(credentials, {
@@ -347,7 +361,12 @@ function createOpenAICompatibleResponse(id, model, content, isStreaming, finishR
347
361
  function createStreamingResponse(credentials, request) {
348
362
  const encoder = new TextEncoder();
349
363
  const responseId = `chatcmpl-${crypto.randomUUID()}`;
350
- const model = request.model || getDefaultModel();
364
+ const requestedModel = request.model || getDefaultModel();
365
+ const variantOverride = extractVariantFromProviderOptions(request.providerOptions);
366
+ const resolved = resolveModel(requestedModel, variantOverride);
367
+ const effectiveModel = resolved.variant
368
+ ? `${resolved.modelId}:${resolved.variant}`
369
+ : resolved.modelId;
351
370
  return new ReadableStream({
352
371
  async start(controller) {
353
372
  try {
@@ -361,15 +380,15 @@ function createStreamingResponse(credentials, request) {
361
380
  : m.content.map((p) => p.text || '').join(''),
362
381
  }));
363
382
  const generator = streamChatGenerator(credentials, {
364
- model,
383
+ model: effectiveModel,
365
384
  messages,
366
385
  });
367
386
  for await (const chunk of generator) {
368
- const responseChunk = createOpenAICompatibleResponse(responseId, model, chunk, true);
387
+ const responseChunk = createOpenAICompatibleResponse(responseId, requestedModel, chunk, true);
369
388
  controller.enqueue(encoder.encode(`data: ${JSON.stringify(responseChunk)}\n\n`));
370
389
  }
371
390
  // Send final chunk with finish_reason
372
- const finalChunk = createOpenAICompatibleResponse(responseId, model, '', true, 'stop');
391
+ const finalChunk = createOpenAICompatibleResponse(responseId, requestedModel, '', true, 'stop');
373
392
  controller.enqueue(encoder.encode(`data: ${JSON.stringify(finalChunk)}\n\n`));
374
393
  // Send [DONE] marker
375
394
  controller.enqueue(encoder.encode('data: [DONE]\n\n'));
@@ -388,7 +407,12 @@ function createStreamingResponse(credentials, request) {
388
407
  */
389
408
  async function createNonStreamingResponse(credentials, request) {
390
409
  const responseId = `chatcmpl-${crypto.randomUUID()}`;
391
- const model = request.model || getDefaultModel();
410
+ const requestedModel = request.model || getDefaultModel();
411
+ const variantOverride = extractVariantFromProviderOptions(request.providerOptions);
412
+ const resolved = resolveModel(requestedModel, variantOverride);
413
+ const effectiveModel = resolved.variant
414
+ ? `${resolved.modelId}:${resolved.variant}`
415
+ : resolved.modelId;
392
416
  const chunks = [];
393
417
  // Convert messages
394
418
  const messages = request.messages
@@ -400,14 +424,14 @@ async function createNonStreamingResponse(credentials, request) {
400
424
  : m.content.map((p) => p.text || '').join(''),
401
425
  }));
402
426
  const generator = streamChatGenerator(credentials, {
403
- model,
427
+ model: effectiveModel,
404
428
  messages,
405
429
  });
406
430
  for await (const chunk of generator) {
407
431
  chunks.push(chunk);
408
432
  }
409
433
  const fullContent = chunks.join('');
410
- return createOpenAICompatibleResponse(responseId, model, fullContent, false, 'stop');
434
+ return createOpenAICompatibleResponse(responseId, requestedModel, fullContent, false, 'stop');
411
435
  }
412
436
  // ============================================================================
413
437
  // Local Proxy Server (like cursor-auth pattern)
@@ -452,12 +476,23 @@ async function ensureWindsurfProxyServer() {
452
476
  const models = getCanonicalModels();
453
477
  return new Response(JSON.stringify({
454
478
  object: 'list',
455
- data: models.map((id) => ({
456
- id,
457
- object: 'model',
458
- created: Math.floor(Date.now() / 1000),
459
- owned_by: 'windsurf',
460
- })),
479
+ data: models.map((id) => {
480
+ const variants = getModelVariants(id);
481
+ return {
482
+ id,
483
+ object: 'model',
484
+ created: Math.floor(Date.now() / 1000),
485
+ owned_by: 'windsurf',
486
+ ...(variants
487
+ ? {
488
+ variants: Object.entries(variants).map(([name, meta]) => ({
489
+ id: name,
490
+ description: meta.description,
491
+ })),
492
+ }
493
+ : {}),
494
+ };
495
+ }),
461
496
  }), { status: 200, headers: { 'Content-Type': 'application/json' } });
462
497
  }
463
498
  // Chat completions endpoint
@@ -466,7 +501,14 @@ async function ensureWindsurfProxyServer() {
466
501
  return openAIError(503, 'Windsurf is not running. Please launch Windsurf first.');
467
502
  }
468
503
  try {
469
- const credentials = getCredentials();
504
+ let credentials;
505
+ try {
506
+ credentials = await getCredentialsWithRetry();
507
+ }
508
+ catch (authError) {
509
+ // Fallback to sync version if async fails
510
+ credentials = getCredentials();
511
+ }
470
512
  const body = await req.json().catch(() => ({}));
471
513
  const requestBody = body;
472
514
  const isStreaming = requestBody.stream === true;