From ab8471a7ff2a50170efaf390b5fc467628861ab9 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Wed, 15 Oct 2025 20:12:37 -0400 Subject: [PATCH] core: filter out alpha status models from provider list --- packages/opencode/src/provider/models.ts | 1 + packages/opencode/src/provider/provider.ts | 25 ++++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts index adcf4004..6003c701 100644 --- a/packages/opencode/src/provider/models.ts +++ b/packages/opencode/src/provider/models.ts @@ -35,6 +35,7 @@ export namespace ModelsDev { }) .optional(), experimental: z.boolean().optional(), + status: z.enum(["alpha", "beta"]).optional(), options: z.record(z.string(), z.any()), provider: z.object({ npm: z.string() }).optional(), }) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 37a0efdc..5e87575e 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -270,17 +270,17 @@ export namespace Provider { cost: !model.cost && !existing?.cost ? { - input: 0, - output: 0, - cache_read: 0, - cache_write: 0, - } + input: 0, + output: 0, + cache_read: 0, + cache_write: 0, + } : { - cache_read: 0, - cache_write: 0, - ...existing?.cost, - ...model.cost, - }, + cache_read: 0, + cache_write: 0, + ...existing?.cost, + ...model.cost, + }, options: { ...existing?.options, ...model.options, @@ -361,7 +361,10 @@ export namespace Provider { modelID !== "gpt-5-chat-latest" && !(providerID === "openrouter" && modelID === "openai/gpt-5-chat"), ) // Filter out experimental models - .filter(([, model]) => !model.experimental || Flag.OPENCODE_ENABLE_EXPERIMENTAL_MODELS), + .filter( + ([, model]) => + (!model.experimental && model.status !== "alpha") || Flag.OPENCODE_ENABLE_EXPERIMENTAL_MODELS, + ), ) provider.info.models = filteredModels