Skip to content

Commit 7453e78

Browse files
authored
feat: opencode go provider list (#15203)
1 parent bb8a171 commit 7453e78

21 files changed

Lines changed: 77 additions & 5 deletions

File tree

packages/app/src/components/dialog-select-model-unpaid.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,20 @@ export const DialogSelectModelUnpaid: Component = () => {
9797
<div class="w-full flex items-center gap-x-3">
9898
<ProviderIcon data-slot="list-item-extra-icon" id={i.id as IconName} />
9999
<span>{i.name}</span>
100+
<Show when={i.id === "opencode"}>
101+
<div class="text-14-regular text-text-weak">{language.t("dialog.provider.opencode.tagline")}</div>
102+
</Show>
100103
<Show when={i.id === "opencode"}>
101104
<Tag>{language.t("dialog.provider.tag.recommended")}</Tag>
102105
</Show>
106+
<Show when={i.id === "opencode-go"}>
107+
<>
108+
<div class="text-14-regular text-text-weak">
109+
{language.t("dialog.provider.opencodeGo.tagline")}
110+
</div>
111+
<Tag>{language.t("dialog.provider.tag.recommended")}</Tag>
112+
</>
113+
</Show>
103114
<Show when={i.id === "anthropic"}>
104115
<div class="text-14-regular text-text-weak">{language.t("dialog.provider.anthropic.note")}</div>
105116
</Show>

packages/app/src/components/dialog-select-provider.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export const DialogSelectProvider: Component = () => {
2929
if (id === "anthropic") return language.t("dialog.provider.anthropic.note")
3030
if (id === "openai") return language.t("dialog.provider.openai.note")
3131
if (id.startsWith("github-copilot")) return language.t("dialog.provider.copilot.note")
32+
if (id === "opencode-go") return language.t("dialog.provider.opencodeGo.tagline")
3233
}
3334

3435
return (
@@ -70,13 +71,19 @@ export const DialogSelectProvider: Component = () => {
7071
<div class="px-1.25 w-full flex items-center gap-x-3">
7172
<ProviderIcon data-slot="list-item-extra-icon" id={icon(i.id)} />
7273
<span>{i.name}</span>
74+
<Show when={i.id === "opencode"}>
75+
<div class="text-14-regular text-text-weak">{language.t("dialog.provider.opencode.tagline")}</div>
76+
</Show>
7377
<Show when={i.id === CUSTOM_ID}>
7478
<Tag>{language.t("settings.providers.tag.custom")}</Tag>
7579
</Show>
7680
<Show when={i.id === "opencode"}>
7781
<Tag>{language.t("dialog.provider.tag.recommended")}</Tag>
7882
</Show>
7983
<Show when={note(i.id)}>{(value) => <div class="text-14-regular text-text-weak">{value()}</div>}</Show>
84+
<Show when={i.id === "opencode-go"}>
85+
<Tag>{language.t("dialog.provider.tag.recommended")}</Tag>
86+
</Show>
8087
</div>
8188
)}
8289
</List>

packages/app/src/components/settings-providers.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,22 @@ export const SettingsProviders: Component = () => {
187187
<div class="flex items-center gap-x-3">
188188
<ProviderIcon id={icon(item.id)} class="size-5 shrink-0 icon-strong-base" />
189189
<span class="text-14-medium text-text-strong">{item.name}</span>
190+
<Show when={item.id === "opencode"}>
191+
<span class="text-14-regular text-text-weak">
192+
{language.t("dialog.provider.opencode.tagline")}
193+
</span>
194+
</Show>
190195
<Show when={item.id === "opencode"}>
191196
<Tag>{language.t("dialog.provider.tag.recommended")}</Tag>
192197
</Show>
198+
<Show when={item.id === "opencode-go"}>
199+
<>
200+
<span class="text-14-regular text-text-weak">
201+
{language.t("dialog.provider.opencodeGo.tagline")}
202+
</span>
203+
<Tag>{language.t("dialog.provider.tag.recommended")}</Tag>
204+
</>
205+
</Show>
193206
</div>
194207
<Show when={note(item.id)}>
195208
{(key) => <span class="text-12-regular text-text-weak pl-8">{language.t(key())}</span>}

packages/app/src/hooks/use-providers.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,16 @@ import { decode64 } from "@/utils/base64"
33
import { useParams } from "@solidjs/router"
44
import { createMemo } from "solid-js"
55

6-
export const popularProviders = ["opencode", "anthropic", "github-copilot", "openai", "google", "openrouter", "vercel"]
6+
export const popularProviders = [
7+
"opencode",
8+
"opencode-go",
9+
"anthropic",
10+
"github-copilot",
11+
"openai",
12+
"google",
13+
"openrouter",
14+
"vercel",
15+
]
716
const popularProviderSet = new Set(popularProviders)
817

918
export function useProviders() {

packages/app/src/i18n/ar.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ export const dict = {
9191
"dialog.provider.group.other": "آخر",
9292
"dialog.provider.tag.recommended": "موصى به",
9393
"dialog.provider.opencode.note": "نماذج مختارة تتضمن Claude و GPT و Gemini والمزيد",
94+
"dialog.provider.opencode.tagline": "نماذج موثوقة ومحسنة",
95+
"dialog.provider.opencodeGo.tagline": "اشتراك منخفض التكلفة للجميع",
9496
"dialog.provider.anthropic.note": "اتصل باستخدام Claude Pro/Max أو مفتاح API",
9597
"dialog.provider.copilot.note": "اتصل باستخدام Copilot أو مفتاح API",
9698
"dialog.provider.openai.note": "اتصل باستخدام ChatGPT Pro/Plus أو مفتاح API",

packages/app/src/i18n/br.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ export const dict = {
9191
"dialog.provider.group.other": "Outro",
9292
"dialog.provider.tag.recommended": "Recomendado",
9393
"dialog.provider.opencode.note": "Modelos selecionados incluindo Claude, GPT, Gemini e mais",
94+
"dialog.provider.opencode.tagline": "Modelos otimizados e confiáveis",
95+
"dialog.provider.opencodeGo.tagline": "Assinatura de baixo custo para todos",
9496
"dialog.provider.anthropic.note": "Conectar com Claude Pro/Max ou chave de API",
9597
"dialog.provider.copilot.note": "Conectar com Copilot ou chave de API",
9698
"dialog.provider.openai.note": "Conectar com ChatGPT Pro/Plus ou chave de API",

packages/app/src/i18n/bs.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ export const dict = {
9999
"dialog.provider.group.other": "Ostalo",
100100
"dialog.provider.tag.recommended": "Preporučeno",
101101
"dialog.provider.opencode.note": "Kurirani modeli uključujući Claude, GPT, Gemini i druge",
102+
"dialog.provider.opencode.tagline": "Pouzdani optimizovani modeli",
103+
"dialog.provider.opencodeGo.tagline": "Povoljna pretplata za sve",
102104
"dialog.provider.anthropic.note": "Direktan pristup Claude modelima, uključujući Pro i Max",
103105
"dialog.provider.copilot.note": "AI modeli za pomoć pri kodiranju putem GitHub Copilot",
104106
"dialog.provider.openai.note": "GPT modeli za brze, sposobne opšte AI zadatke",

packages/app/src/i18n/da.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ export const dict = {
9999
"dialog.provider.group.other": "Andre",
100100
"dialog.provider.tag.recommended": "Anbefalet",
101101
"dialog.provider.opencode.note": "Udvalgte modeller inklusive Claude, GPT, Gemini og flere",
102+
"dialog.provider.opencode.tagline": "Pålidelige optimerede modeller",
103+
"dialog.provider.opencodeGo.tagline": "Billigt abonnement for alle",
102104
"dialog.provider.anthropic.note": "Direkte adgang til Claude-modeller, inklusive Pro og Max",
103105
"dialog.provider.copilot.note": "AI-modeller til kodningsassistance via GitHub Copilot",
104106
"dialog.provider.openai.note": "GPT-modeller til hurtige, kompetente generelle AI-opgaver",

packages/app/src/i18n/de.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ export const dict = {
9595
"dialog.provider.group.other": "Andere",
9696
"dialog.provider.tag.recommended": "Empfohlen",
9797
"dialog.provider.opencode.note": "Kuratierte Modelle inklusive Claude, GPT, Gemini und mehr",
98+
"dialog.provider.opencode.tagline": "Zuverlässige, optimierte Modelle",
99+
"dialog.provider.opencodeGo.tagline": "Kostengünstiges Abo für alle",
98100
"dialog.provider.anthropic.note": "Mit Claude Pro/Max oder API-Schlüssel verbinden",
99101
"dialog.provider.copilot.note": "Mit Copilot oder API-Schlüssel verbinden",
100102
"dialog.provider.openai.note": "Mit ChatGPT Pro/Plus oder API-Schlüssel verbinden",

packages/app/src/i18n/en.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ export const dict = {
9999
"dialog.provider.group.other": "Other",
100100
"dialog.provider.tag.recommended": "Recommended",
101101
"dialog.provider.opencode.note": "Curated models including Claude, GPT, Gemini and more",
102+
"dialog.provider.opencode.tagline": "Reliable optimized models",
103+
"dialog.provider.opencodeGo.tagline": "Low cost subscription for everyone",
102104
"dialog.provider.anthropic.note": "Direct access to Claude models, including Pro and Max",
103105
"dialog.provider.copilot.note": "AI models for coding assistance via GitHub Copilot",
104106
"dialog.provider.openai.note": "GPT models for fast, capable general AI tasks",

0 commit comments

Comments
 (0)