From 079095d7a943e5f95ce6c5651c2d5797e8ab881b Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sun, 21 Sep 2025 04:43:25 -0400 Subject: [PATCH] core: filter models without keys in opencode provider --- packages/opencode/src/provider/provider.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 14f6ec09..5283da6a 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -16,10 +16,7 @@ import { Flag } from "../flag/flag" export namespace Provider { const log = Log.create({ service: "provider" }) - type CustomLoader = ( - provider: ModelsDev.Provider, - api?: string, - ) => Promise<{ + type CustomLoader = (provider: ModelsDev.Provider) => Promise<{ autoload: boolean getModel?: (sdk: any, modelID: string) => Promise options?: Record @@ -40,6 +37,19 @@ export namespace Provider { } }, async opencode(input) { + const hasKey = await (async () => { + if (input.env.some((item) => process.env[item])) return true + if (await Auth.get(input.id)) return true + return false + })() + + if (!hasKey) { + for (const [key, value] of Object.entries(input.models)) { + if (value.cost.input === 0) continue + delete input.models[key] + } + } + return { autoload: Object.keys(input.models).length > 0, options: {},