diff options
| author | Ravi Kumar <[email protected]> | 2025-12-09 02:58:32 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-08 15:28:32 -0600 |
| commit | e38814c5976882d79cae4ed4a6d317766538b61c (patch) | |
| tree | 1eebc80b17a2f03723d34a914a83ff65825a8f39 | |
| parent | 4d42daa9a3331bb761e1955c6cf5c66e26c29a35 (diff) | |
| download | opencode-e38814c5976882d79cae4ed4a6d317766538b61c.tar.gz opencode-e38814c5976882d79cae4ed4a6d317766538b61c.zip | |
fix: apply provider filtering to /connect endpoint (#5233)
| -rw-r--r-- | packages/opencode/src/cli/cmd/auth.ts | 5 | ||||
| -rw-r--r-- | packages/opencode/src/server/server.ts | 17 |
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), |
