summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-10-15 20:12:37 -0400
committerDax Raad <[email protected]>2025-10-15 20:12:37 -0400
commitab8471a7ff2a50170efaf390b5fc467628861ab9 (patch)
treebb79bb19a5e5bf9ddf0e47879927022781fdbda4
parent4c674b075b9c6fefc9dee2405456f5dc5fc1d43e (diff)
downloadopencode-ab8471a7ff2a50170efaf390b5fc467628861ab9.tar.gz
opencode-ab8471a7ff2a50170efaf390b5fc467628861ab9.zip
core: filter out alpha status models from provider list
-rw-r--r--packages/opencode/src/provider/models.ts1
-rw-r--r--packages/opencode/src/provider/provider.ts25
2 files changed, 15 insertions, 11 deletions
diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts
index adcf4004b..6003c701e 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 37a0efdcb..5e87575ec 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