Skip to content

Commit 9dcd2c0

Browse files
committed
refactor(webview): canonicalize ApiOptions provider identifiers
1 parent 7918f6b commit 9dcd2c0

2 files changed

Lines changed: 432 additions & 43 deletions

File tree

webview-ui/src/components/settings/ApiOptions.tsx

Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
type ProviderName,
99
type ProviderSettings,
1010
isRetiredProvider,
11+
providerIdentifiers,
1112
DEFAULT_CONSECUTIVE_MISTAKE_LIMIT,
1213
} from "@roo-code/types"
1314

@@ -207,7 +208,7 @@ const ApiOptions = ({
207208
// stops typing.
208209
useDebounce(
209210
() => {
210-
if (selectedProvider === "openai") {
211+
if (selectedProvider === providerIdentifiers.openai) {
211212
// Use our custom headers state to build the headers object.
212213
const headerObject = convertHeadersToObject(customHeaders)
213214

@@ -220,27 +221,27 @@ const ApiOptions = ({
220221
openAiHeaders: headerObject,
221222
},
222223
})
223-
} else if (selectedProvider === "ollama") {
224+
} else if (selectedProvider === providerIdentifiers.ollama) {
224225
vscode.postMessage({
225226
type: "requestOllamaModels",
226227
values: {
227228
baseUrl: apiConfiguration?.ollamaBaseUrl,
228229
apiKey: apiConfiguration?.ollamaApiKey,
229230
},
230231
})
231-
} else if (selectedProvider === "lmstudio") {
232+
} else if (selectedProvider === providerIdentifiers.lmstudio) {
232233
requestLmStudioModels(apiConfiguration?.lmStudioBaseUrl)
233-
} else if (selectedProvider === "vscode-lm") {
234+
} else if (selectedProvider === providerIdentifiers.vscodeLm) {
234235
vscode.postMessage({ type: "requestVsCodeLmModels" })
235-
} else if (selectedProvider === "litellm") {
236+
} else if (selectedProvider === providerIdentifiers.litellm) {
236237
vscode.postMessage({
237238
type: "requestRouterModels",
238239
values: {
239240
litellmApiKey: apiConfiguration?.litellmApiKey,
240241
litellmBaseUrl: apiConfiguration?.litellmBaseUrl,
241242
},
242243
})
243-
} else if (selectedProvider === "poe") {
244+
} else if (selectedProvider === providerIdentifiers.poe) {
244245
vscode.postMessage({ type: "requestRouterModels" })
245246
}
246247
},
@@ -270,7 +271,7 @@ const ApiOptions = ({
270271
// Zoo Gateway renders its own auth-state error inline (sign-in card in
271272
// ZooGateway.tsx) so it can react to zooCodeIsAuthenticated changes
272273
// without re-running this effect or threading auth state through validation.
273-
if (apiConfiguration.apiProvider === "zoo-gateway") {
274+
if (apiConfiguration.apiProvider === providerIdentifiers.zooGateway) {
274275
setErrorMessage(undefined)
275276
return
276277
}
@@ -322,7 +323,7 @@ const ApiOptions = ({
322323
}
323324

324325
// Bedrock has a special “custom-arn” pseudo-model that isn't part of MODELS_BY_PROVIDER.
325-
if (provider === "bedrock" && modelId === "custom-arn") {
326+
if (provider === providerIdentifiers.bedrock && modelId === "custom-arn") {
326327
return
327328
}
328329

@@ -441,7 +442,7 @@ const ApiOptions = ({
441442
</div>
442443
) : (
443444
<>
444-
{selectedProvider === "openrouter" && (
445+
{selectedProvider === providerIdentifiers.openrouter && (
445446
<OpenRouter
446447
apiConfiguration={apiConfiguration}
447448
setApiConfigurationField={setApiConfigurationField}
@@ -454,7 +455,7 @@ const ApiOptions = ({
454455
/>
455456
)}
456457

457-
{selectedProvider === "requesty" && (
458+
{selectedProvider === providerIdentifiers.requesty && (
458459
<Requesty
459460
uriScheme={uriScheme}
460461
apiConfiguration={apiConfiguration}
@@ -467,7 +468,7 @@ const ApiOptions = ({
467468
/>
468469
)}
469470

470-
{selectedProvider === "unbound" && (
471+
{selectedProvider === providerIdentifiers.unbound && (
471472
<Unbound
472473
apiConfiguration={apiConfiguration}
473474
setApiConfigurationField={setApiConfigurationField}
@@ -479,15 +480,15 @@ const ApiOptions = ({
479480
/>
480481
)}
481482

482-
{selectedProvider === "anthropic" && (
483+
{selectedProvider === providerIdentifiers.anthropic && (
483484
<Anthropic
484485
apiConfiguration={apiConfiguration}
485486
setApiConfigurationField={setApiConfigurationField}
486487
simplifySettings={fromWelcomeView}
487488
/>
488489
)}
489490

490-
{selectedProvider === "openai-codex" && (
491+
{selectedProvider === providerIdentifiers.openaiCodex && (
491492
<OpenAICodex
492493
apiConfiguration={apiConfiguration}
493494
setApiConfigurationField={setApiConfigurationField}
@@ -496,7 +497,7 @@ const ApiOptions = ({
496497
/>
497498
)}
498499

499-
{selectedProvider === "openai-native" && (
500+
{selectedProvider === providerIdentifiers.openaiNative && (
500501
<OpenAI
501502
apiConfiguration={apiConfiguration}
502503
setApiConfigurationField={setApiConfigurationField}
@@ -505,23 +506,23 @@ const ApiOptions = ({
505506
/>
506507
)}
507508

508-
{selectedProvider === "mistral" && (
509+
{selectedProvider === providerIdentifiers.mistral && (
509510
<Mistral
510511
apiConfiguration={apiConfiguration}
511512
setApiConfigurationField={setApiConfigurationField}
512513
simplifySettings={fromWelcomeView}
513514
/>
514515
)}
515516

516-
{selectedProvider === "baseten" && (
517+
{selectedProvider === providerIdentifiers.baseten && (
517518
<Baseten
518519
apiConfiguration={apiConfiguration}
519520
setApiConfigurationField={setApiConfigurationField}
520521
simplifySettings={fromWelcomeView}
521522
/>
522523
)}
523524

524-
{selectedProvider === "bedrock" && (
525+
{selectedProvider === providerIdentifiers.bedrock && (
525526
<Bedrock
526527
apiConfiguration={apiConfiguration}
527528
setApiConfigurationField={setApiConfigurationField}
@@ -530,21 +531,21 @@ const ApiOptions = ({
530531
/>
531532
)}
532533

533-
{selectedProvider === "vertex" && (
534+
{selectedProvider === providerIdentifiers.vertex && (
534535
<Vertex
535536
apiConfiguration={apiConfiguration}
536537
setApiConfigurationField={setApiConfigurationField}
537538
/>
538539
)}
539540

540-
{selectedProvider === "gemini" && (
541+
{selectedProvider === providerIdentifiers.gemini && (
541542
<Gemini
542543
apiConfiguration={apiConfiguration}
543544
setApiConfigurationField={setApiConfigurationField}
544545
/>
545546
)}
546547

547-
{selectedProvider === "openai" && (
548+
{selectedProvider === providerIdentifiers.openai && (
548549
<OpenAICompatible
549550
apiConfiguration={apiConfiguration}
550551
setApiConfigurationField={setApiConfigurationField}
@@ -554,37 +555,37 @@ const ApiOptions = ({
554555
/>
555556
)}
556557

557-
{selectedProvider === "lmstudio" && (
558+
{selectedProvider === providerIdentifiers.lmstudio && (
558559
<LMStudio
559560
apiConfiguration={apiConfiguration}
560561
setApiConfigurationField={setApiConfigurationField}
561562
/>
562563
)}
563564

564-
{selectedProvider === "deepseek" && (
565+
{selectedProvider === providerIdentifiers.deepseek && (
565566
<DeepSeek
566567
apiConfiguration={apiConfiguration}
567568
setApiConfigurationField={setApiConfigurationField}
568569
/>
569570
)}
570571

571-
{selectedProvider === "qwen-code" && (
572+
{selectedProvider === providerIdentifiers.qwenCode && (
572573
<QwenCode
573574
apiConfiguration={apiConfiguration}
574575
setApiConfigurationField={setApiConfigurationField}
575576
simplifySettings={fromWelcomeView}
576577
/>
577578
)}
578579

579-
{selectedProvider === "moonshot" && (
580+
{selectedProvider === providerIdentifiers.moonshot && (
580581
<Moonshot
581582
apiConfiguration={apiConfiguration}
582583
setApiConfigurationField={setApiConfigurationField}
583584
simplifySettings={fromWelcomeView}
584585
/>
585586
)}
586587

587-
{selectedProvider === "kimi-code" && (
588+
{selectedProvider === providerIdentifiers.kimiCode && (
588589
<KimiCode
589590
apiConfiguration={apiConfiguration}
590591
setApiConfigurationField={setApiConfigurationField}
@@ -593,36 +594,36 @@ const ApiOptions = ({
593594
/>
594595
)}
595596

596-
{selectedProvider === "minimax" && (
597+
{selectedProvider === providerIdentifiers.minimax && (
597598
<MiniMax
598599
apiConfiguration={apiConfiguration}
599600
setApiConfigurationField={setApiConfigurationField}
600601
/>
601602
)}
602603

603-
{selectedProvider === "mimo" && (
604+
{selectedProvider === providerIdentifiers.mimo && (
604605
<Mimo apiConfiguration={apiConfiguration} setApiConfigurationField={setApiConfigurationField} />
605606
)}
606607

607-
{selectedProvider === "vscode-lm" && (
608+
{selectedProvider === providerIdentifiers.vscodeLm && (
608609
<VSCodeLM
609610
apiConfiguration={apiConfiguration}
610611
setApiConfigurationField={setApiConfigurationField}
611612
/>
612613
)}
613614

614-
{selectedProvider === "ollama" && (
615+
{selectedProvider === providerIdentifiers.ollama && (
615616
<Ollama
616617
apiConfiguration={apiConfiguration}
617618
setApiConfigurationField={setApiConfigurationField}
618619
/>
619620
)}
620621

621-
{selectedProvider === "xai" && (
622+
{selectedProvider === providerIdentifiers.xai && (
622623
<XAI apiConfiguration={apiConfiguration} setApiConfigurationField={setApiConfigurationField} />
623624
)}
624625

625-
{selectedProvider === "litellm" && (
626+
{selectedProvider === providerIdentifiers.litellm && (
626627
<LiteLLM
627628
apiConfiguration={apiConfiguration}
628629
setApiConfigurationField={setApiConfigurationField}
@@ -632,18 +633,18 @@ const ApiOptions = ({
632633
/>
633634
)}
634635

635-
{selectedProvider === "sambanova" && (
636+
{selectedProvider === providerIdentifiers.sambanova && (
636637
<SambaNova
637638
apiConfiguration={apiConfiguration}
638639
setApiConfigurationField={setApiConfigurationField}
639640
/>
640641
)}
641642

642-
{selectedProvider === "zai" && (
643+
{selectedProvider === providerIdentifiers.zai && (
643644
<ZAi apiConfiguration={apiConfiguration} setApiConfigurationField={setApiConfigurationField} />
644645
)}
645646

646-
{selectedProvider === "vercel-ai-gateway" && (
647+
{selectedProvider === providerIdentifiers.vercelAiGateway && (
647648
<VercelAiGateway
648649
apiConfiguration={apiConfiguration}
649650
setApiConfigurationField={setApiConfigurationField}
@@ -654,7 +655,7 @@ const ApiOptions = ({
654655
/>
655656
)}
656657

657-
{selectedProvider === "opencode-go" && (
658+
{selectedProvider === providerIdentifiers.opencodeGo && (
658659
<OpenCodeGo
659660
apiConfiguration={apiConfiguration}
660661
setApiConfigurationField={setApiConfigurationField}
@@ -665,7 +666,7 @@ const ApiOptions = ({
665666
/>
666667
)}
667668

668-
{selectedProvider === "kenari" && (
669+
{selectedProvider === providerIdentifiers.kenari && (
669670
<Kenari
670671
apiConfiguration={apiConfiguration}
671672
setApiConfigurationField={setApiConfigurationField}
@@ -676,7 +677,7 @@ const ApiOptions = ({
676677
/>
677678
)}
678679

679-
{selectedProvider === "zoo-gateway" && (
680+
{selectedProvider === providerIdentifiers.zooGateway && (
680681
<ZooGateway
681682
apiConfiguration={apiConfiguration}
682683
setApiConfigurationField={setApiConfigurationField}
@@ -687,21 +688,21 @@ const ApiOptions = ({
687688
/>
688689
)}
689690

690-
{selectedProvider === "fireworks" && (
691+
{selectedProvider === providerIdentifiers.fireworks && (
691692
<Fireworks
692693
apiConfiguration={apiConfiguration}
693694
setApiConfigurationField={setApiConfigurationField}
694695
/>
695696
)}
696697

697-
{selectedProvider === "friendli" && (
698+
{selectedProvider === providerIdentifiers.friendli && (
698699
<Friendli
699700
apiConfiguration={apiConfiguration}
700701
setApiConfigurationField={setApiConfigurationField}
701702
/>
702703
)}
703704

704-
{selectedProvider === "poe" && (
705+
{selectedProvider === providerIdentifiers.poe && (
705706
<Poe
706707
apiConfiguration={apiConfiguration}
707708
setApiConfigurationField={setApiConfigurationField}
@@ -737,7 +738,7 @@ const ApiOptions = ({
737738
}
738739
/>
739740

740-
{selectedProvider === "bedrock" && selectedModelId === "custom-arn" && (
741+
{selectedProvider === providerIdentifiers.bedrock && selectedModelId === "custom-arn" && (
741742
<BedrockCustomArn
742743
apiConfiguration={apiConfiguration}
743744
setApiConfigurationField={setApiConfigurationField}
@@ -796,7 +797,7 @@ const ApiOptions = ({
796797
}
797798
onChange={(value) => setApiConfigurationField("consecutiveMistakeLimit", value)}
798799
/>
799-
{selectedProvider === "poe" && (
800+
{selectedProvider === providerIdentifiers.poe && (
800801
<VSCodeTextField
801802
value={apiConfiguration?.poeBaseUrl || ""}
802803
onInput={handleInputChange("poeBaseUrl")}
@@ -807,7 +808,7 @@ const ApiOptions = ({
807808
</label>
808809
</VSCodeTextField>
809810
)}
810-
{selectedProvider === "openrouter" &&
811+
{selectedProvider === providerIdentifiers.openrouter &&
811812
openRouterModelProviders &&
812813
Object.keys(openRouterModelProviders).length > 0 && (
813814
<div>

0 commit comments

Comments
 (0)