diff options
| author | Dax Raad <[email protected]> | 2025-09-21 04:43:25 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-09-21 04:43:32 -0400 |
| commit | 079095d7a943e5f95ce6c5651c2d5797e8ab881b (patch) | |
| tree | d3e5f52b6dd89f0ade81039e0ab7f9be527acbc1 | |
| parent | 28e1d67ea4e807563f264a57b0b07f9c03905e6f (diff) | |
| download | opencode-079095d7a943e5f95ce6c5651c2d5797e8ab881b.tar.gz opencode-079095d7a943e5f95ce6c5651c2d5797e8ab881b.zip | |
core: filter models without keys in opencode provider
| -rw-r--r-- | packages/opencode/src/provider/provider.ts | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 14f6ec09a..5283da6a3 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<any> options?: Record<string, any> @@ -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: {}, |
