Просмотр исходного кода

core: filter out alpha status models from provider list

Dax Raad 4 месяцев назад
Родитель
Сommit
ab8471a7ff
2 измененных файлов с 15 добавлено и 11 удалено
  1. 1 0
      packages/opencode/src/provider/models.ts
  2. 14 11
      packages/opencode/src/provider/provider.ts

+ 1 - 0
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(),
     })

+ 14 - 11
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