fix(opencode): allow empty provider config default (#34167)

Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
This commit is contained in:
opencode-agent[bot] 2026-06-26 23:19:42 -05:00 committed by GitHub
parent 225a1fbf35
commit 9903abc704
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View file

@ -1934,7 +1934,8 @@ export const layer = Layer.effect(
return { providerID: entry.providerID, modelID: entry.modelID }
}
const provider = Object.values(s.providers).find((p) => !cfg.provider || Object.keys(cfg.provider).includes(p.id))
const configured = Object.keys(cfg.provider ?? {})
const provider = Object.values(s.providers).find((p) => configured.length === 0 || configured.includes(p.id))
if (!provider) return yield* new NoProvidersError()
const [model] = sort(Object.values(provider.models))
if (!model) return yield* new NoModelsError({ providerID: provider.id })

View file

@ -356,6 +356,17 @@ it.instance(
{ config: { model: "anthropic/claude-sonnet-4-20250514" } },
)
it.instance(
"defaultModel treats empty provider config as no allowlist",
Effect.gen(function* () {
yield* setProcessEnv("ANTHROPIC_API_KEY", "test-api-key")
const model = yield* Provider.use.defaultModel()
expect(model.providerID).toBeDefined()
expect(model.modelID).toBeDefined()
}),
{ config: { provider: {} } },
)
it.instance(
"defaultModel returns a typed error when config excludes every provider",
Effect.gen(function* () {