diff --git a/packages/core/src/plugin/provider/github-copilot.ts b/packages/core/src/plugin/provider/github-copilot.ts index c5a2e2808b8..916c0b922f7 100644 --- a/packages/core/src/plugin/provider/github-copilot.ts +++ b/packages/core/src/plugin/provider/github-copilot.ts @@ -204,10 +204,11 @@ export const GithubCopilotPlugin = define({ for (const [id, model] of loaded.models) { evt.model.update(item.provider.id, id, (draft) => Object.assign(draft, structuredClone(model))) } - } else if (loaded.baseURL) { + } else { for (const id of item.models.keys()) { evt.model.update(item.provider.id, id, (model) => { - model.settings = Provider.mergeOverlay(model.settings, { baseURL: loaded.baseURL }) + model.package = "@ai-sdk/github-copilot" + if (loaded.baseURL) model.settings = Provider.mergeOverlay(model.settings, { baseURL: loaded.baseURL }) }) } } diff --git a/packages/core/test/plugin/provider-github-copilot.test.ts b/packages/core/test/plugin/provider-github-copilot.test.ts index a64ab29b34f..6088965aa38 100644 --- a/packages/core/test/plugin/provider-github-copilot.test.ts +++ b/packages/core/test/plugin/provider-github-copilot.test.ts @@ -195,6 +195,22 @@ describe("GithubCopilotPlugin", () => { }), ) + it.effect("rewrites models.dev fallback models to the GitHub Copilot package", () => + Effect.gen(function* () { + const catalog = yield* Catalog.Service + yield* catalog.transform((catalog) => { + catalog.provider.update(Provider.ID.githubCopilot, () => {}) + catalog.model.update(Provider.ID.githubCopilot, Model.ID.make("gpt-5.6-sol"), (model) => { + model.package = "@ai-sdk/openai-compatible" + }) + }) + yield* addPlugin() + expect(required(yield* catalog.model.get(Provider.ID.githubCopilot, Model.ID.make("gpt-5.6-sol"))).package).toBe( + "@ai-sdk/github-copilot", + ) + }), + ) + it.effect("selects languageModel when responses and chat are absent", () => Effect.gen(function* () { const plugin = yield* Plugin.Service