refactor(core): rename model package predicate (#45457)

This commit is contained in:
Kit Langton
2026-08-27 11:44:30 -04:00
committed by GitHub
parent 5253603583
commit c33dc8808b
3 changed files with 11 additions and 6 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@opencode-ai/core": minor
---
Rename ModelResolver.supported to ModelResolver.hasPackage. Consumers of the old export must update the name; the predicate remains Boolean(model.package), checking only whether a catalog model declares a provider package, not whether it can be loaded. Default-model selection behavior is unchanged.
+3 -3
View File
@@ -261,7 +261,7 @@ export const resolveModel = (
dependencies?: Dependencies,
) => withVariant(model, variant).pipe(Effect.flatMap((model) => fromCatalogModel(model, credential, dependencies)))
export const supported = (model: Info) => Boolean(model.package)
export const hasPackage = (model: Info) => Boolean(model.package)
/** Resolves catalog selections into runtime models for the current Location. */
export const layer = Layer.effect(
@@ -309,9 +309,9 @@ export const layer = Layer.effect(
.default()
.pipe(
Effect.flatMap((model) =>
model && supported(model)
model && hasPackage(model)
? Effect.succeed(model)
: Effect.map(catalog.model.available(), (models) => models.find(supported)),
: Effect.map(catalog.model.available(), (models) => models.find(hasPackage)),
),
)
if (!selected) return undefined
+3 -3
View File
@@ -1306,9 +1306,9 @@ describe("ModelResolver", () => {
it.effect("reports whether a catalog model declares a provider package", () =>
Effect.sync(() => {
expect(ModelResolver.supported(model(Provider.aisdk("@ai-sdk/openai")))).toBe(true)
expect(ModelResolver.supported(model("@opencode-ai/ai/providers/custom"))).toBe(true)
expect(ModelResolver.supported(model(undefined))).toBe(false)
expect(ModelResolver.hasPackage(model(Provider.aisdk("@ai-sdk/openai")))).toBe(true)
expect(ModelResolver.hasPackage(model("@opencode-ai/ai/providers/custom"))).toBe(true)
expect(ModelResolver.hasPackage(model(undefined))).toBe(false)
}),
)
})