diff --git a/.changeset/model-package-name.md b/.changeset/model-package-name.md new file mode 100644 index 00000000000..1622c9a1915 --- /dev/null +++ b/.changeset/model-package-name.md @@ -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. diff --git a/packages/core/src/model-resolver.ts b/packages/core/src/model-resolver.ts index 3f4760bc586..6750e7c2489 100644 --- a/packages/core/src/model-resolver.ts +++ b/packages/core/src/model-resolver.ts @@ -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 diff --git a/packages/core/test/model-resolver.test.ts b/packages/core/test/model-resolver.test.ts index fd651a8ec46..2552153131d 100644 --- a/packages/core/test/model-resolver.test.ts +++ b/packages/core/test/model-resolver.test.ts @@ -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) }), ) })