Просмотр исходного кода

fix: apply provider filtering to /connect endpoint (#5233)

Ravi Kumar 2 месяцев назад
Родитель
Сommit
e38814c597
2 измененных файлов с 17 добавлено и 5 удалено
  1. 4 1
      packages/opencode/src/cli/cmd/auth.ts
  2. 13 4
      packages/opencode/src/server/server.ts

+ 4 - 1
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],
               })),
             ),
             {

+ 13 - 4
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),