From 536fae692ae0482e26dfd27a9730a26906f6e41c Mon Sep 17 00:00:00 2001 From: Colin McDonnell Date: Fri, 3 Apr 2026 18:49:24 +0000 Subject: [PATCH] update snapshot for google/gemma-4-31b release Made-with: Cursor --- entry | 5 +---- models.ts | 13 +++---------- post | 2 -- test/__snapshots__/models.test.ts.snap | 4 ++-- test/models.test.ts | 15 +++------------ 5 files changed, 9 insertions(+), 30 deletions(-) diff --git a/entry b/entry index dc6e235..72db5b8 100755 --- a/entry +++ b/entry @@ -107843,7 +107843,6 @@ var providers = { resolve: "opencode/mimo-v2-pro-free", envVars: [], isFree: true, - deprecated: true, fallback: "opencode/nemotron-3-super-free" }, "minimax-m2.5-free": { @@ -107954,7 +107953,6 @@ var modelAliases = Object.entries(providers).flatMap( openRouterResolve: def.openRouterResolve, preferred: def.preferred ?? false, isFree: def.isFree ?? false, - deprecated: def.deprecated ?? false, fallback: def.fallback })) ); @@ -107967,8 +107965,7 @@ function resolveCliModel(slug) { visited.add(current); const alias = modelAliases.find((a) => a.slug === current); if (!alias) return void 0; - if (!alias.deprecated) return alias.resolve; - if (!alias.fallback) return void 0; + if (!alias.fallback) return alias.resolve; current = alias.fallback; } return void 0; diff --git a/models.ts b/models.ts index a7c8d89..92bac2d 100644 --- a/models.ts +++ b/models.ts @@ -22,9 +22,7 @@ export interface ModelAlias { preferred: boolean; /** whether this alias is free and requires no API key */ isFree: boolean; - /** model is deprecated on models.dev — resolve via fallback chain instead */ - deprecated: boolean; - /** slug of another model to resolve to when this one is deprecated */ + /** slug of a replacement model — presence implies this model is deprecated */ fallback: string | undefined; } @@ -37,9 +35,7 @@ interface ModelDef { preferred?: boolean; envVars?: readonly string[]; isFree?: boolean; - /** model is deprecated on models.dev — kept for backward compatibility, resolved via fallback */ - deprecated?: boolean; - /** slug of another model to fall back to (e.g. "opencode/nemotron-3-super-free") */ + /** slug of a replacement model — presence implies this model is deprecated */ fallback?: string; } @@ -229,7 +225,6 @@ export const providers = { resolve: "opencode/mimo-v2-pro-free", envVars: [], isFree: true, - deprecated: true, fallback: "opencode/nemotron-3-super-free", }, "minimax-m2.5-free": { @@ -358,7 +353,6 @@ export const modelAliases: ModelAlias[] = Object.entries(providers).flatMap( openRouterResolve: def.openRouterResolve, preferred: def.preferred ?? false, isFree: def.isFree ?? false, - deprecated: def.deprecated ?? false, fallback: def.fallback, })) ); @@ -385,8 +379,7 @@ export function resolveCliModel(slug: string): string | undefined { visited.add(current); const alias = modelAliases.find((a) => a.slug === current); if (!alias) return undefined; - if (!alias.deprecated) return alias.resolve; - if (!alias.fallback) return undefined; + if (!alias.fallback) return alias.resolve; current = alias.fallback; } return undefined; diff --git a/post b/post index 183f6e3..5b28062 100755 --- a/post +++ b/post @@ -37687,7 +37687,6 @@ var providers = { resolve: "opencode/mimo-v2-pro-free", envVars: [], isFree: true, - deprecated: true, fallback: "opencode/nemotron-3-super-free" }, "minimax-m2.5-free": { @@ -37776,7 +37775,6 @@ var modelAliases = Object.entries(providers).flatMap( openRouterResolve: def.openRouterResolve, preferred: def.preferred ?? false, isFree: def.isFree ?? false, - deprecated: def.deprecated ?? false, fallback: def.fallback })) ); diff --git a/test/__snapshots__/models.test.ts.snap b/test/__snapshots__/models.test.ts.snap index 9284050..8534878 100644 --- a/test/__snapshots__/models.test.ts.snap +++ b/test/__snapshots__/models.test.ts.snap @@ -11,8 +11,8 @@ exports[`latest model per provider snapshot > matches snapshot 1`] = ` "releaseDate": "2025-12-01", }, "google": { - "modelId": "gemini-3.1-flash-lite-preview", - "releaseDate": "2026-03-03", + "modelId": "gemma-4-31b", + "releaseDate": "2026-04-02", }, "moonshotai": { "modelId": "kimi-k2.5", diff --git a/test/models.test.ts b/test/models.test.ts index 04b01f1..60970eb 100644 --- a/test/models.test.ts +++ b/test/models.test.ts @@ -38,7 +38,7 @@ describe("models.dev validity", async () => { ).toBeDefined(); }); - if (!alias.deprecated) { + if (!alias.fallback) { it(`${alias.resolve} is not deprecated`, () => { const model = data[parsed.provider]?.models[parsed.modelId]; if (!model) return; // covered by existence test above @@ -47,17 +47,8 @@ describe("models.dev validity", async () => { } } - // deprecated models must have a fallback that resolves to a non-deprecated model - const deprecatedAliases = modelAliases.filter((a) => a.deprecated); - for (const alias of deprecatedAliases) { - it(`${alias.slug} (deprecated) has a fallback`, () => { - expect( - alias.fallback, - `deprecated model "${alias.slug}" is missing a fallback` - ).toBeDefined(); - }); - - it(`${alias.slug} (deprecated) fallback chain resolves`, () => { + for (const alias of modelAliases.filter((a) => a.fallback)) { + it(`${alias.slug} fallback chain resolves to a non-deprecated model`, () => { const resolved = resolveCliModel(alias.slug); expect( resolved,