summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRavi Kumar <[email protected]>2025-12-09 02:58:32 +0530
committerGitHub <[email protected]>2025-12-08 15:28:32 -0600
commite38814c5976882d79cae4ed4a6d317766538b61c (patch)
tree1eebc80b17a2f03723d34a914a83ff65825a8f39
parent4d42daa9a3331bb761e1955c6cf5c66e26c29a35 (diff)
downloadopencode-e38814c5976882d79cae4ed4a6d317766538b61c.tar.gz
opencode-e38814c5976882d79cae4ed4a6d317766538b61c.zip
fix: apply provider filtering to /connect endpoint (#5233)
-rw-r--r--packages/opencode/src/cli/cmd/auth.ts5
-rw-r--r--packages/opencode/src/server/server.ts17
2 files changed, 17 insertions, 5 deletions
diff --git a/packages/opencode/src/cli/cmd/auth.ts b/packages/opencode/src/cli/cmd/auth.ts
index af4424e24..61fe4e5bd 100644
--- a/packages/opencode/src/cli/cmd/auth.ts
+++ b/packages/opencode/src/cli/cmd/auth.ts
@@ -143,7 +143,10 @@ export const AuthLoginCommand = cmd({
map((x) => ({
label: x.name,
value: x.id,
- hint: priority[x.id] <= 1 ? "recommended" : undefined,
+ hint: {
+ opencode: "recommended",
+ anthropic: "Claude Max or API key",
+ }[x.id],
})),
),
{
diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts
index 855663cb9..f98670be3 100644
--- a/packages/opencode/src/server/server.ts
+++ b/packages/opencode/src/server/server.ts
@@ -1447,10 +1447,19 @@ export namespace Server {
},
}),
async (c) => {
- const providers = pipe(
- await ModelsDev.get(),
- mapValues((x) => Provider.fromModelsDevProvider(x)),
- )
+ const config = await Config.get()
+ const disabled = new Set(config.disabled_providers ?? [])
+ const enabled = config.enabled_providers ? new Set(config.enabled_providers) : undefined
+
+ const allProviders = await ModelsDev.get()
+ const filteredProviders: Record<string, (typeof allProviders)[string]> = {}
+ for (const [key, value] of Object.entries(allProviders)) {
+ if ((enabled ? enabled.has(key) : true) && !disabled.has(key)) {
+ filteredProviders[key] = value
+ }
+ }
+
+ const providers = mapValues(filteredProviders, (x) => Provider.fromModelsDevProvider(x))
const connected = await Provider.list().then((x) => Object.keys(x))
return c.json({
all: Object.values(providers),