add deprecated model fallback chain resolution

models can now be marked `deprecated: true` with a `fallback` slug
pointing to a replacement. `resolveCliModel` follows the chain
recursively (with cycle detection) until it finds a non-deprecated
model. this keeps deprecated models in the registry for backward
compatibility instead of removing them.

marks opencode/mimo-v2-pro-free as deprecated with fallback to
opencode/nemotron-3-super-free.

Made-with: Cursor
This commit is contained in:
Colin McDonnell
2026-04-03 18:45:47 +00:00
committed by pullfrog[bot]
parent a45c164b18
commit b8c4d5b716
6 changed files with 87 additions and 26 deletions
+7 -3
View File
@@ -37686,7 +37686,9 @@ var providers = {
displayName: "MiMo V2 Pro",
resolve: "opencode/mimo-v2-pro-free",
envVars: [],
isFree: true
isFree: true,
deprecated: true,
fallback: "opencode/nemotron-3-super-free"
},
"minimax-m2.5-free": {
displayName: "MiniMax M2.5",
@@ -37773,7 +37775,9 @@ var modelAliases = Object.entries(providers).flatMap(
resolve: def.resolve,
openRouterResolve: def.openRouterResolve,
preferred: def.preferred ?? false,
isFree: def.isFree ?? false
isFree: def.isFree ?? false,
deprecated: def.deprecated ?? false,
fallback: def.fallback
}))
);
@@ -41557,7 +41561,7 @@ var core3 = __toESM(require_core(), 1);
// package.json
var package_default = {
name: "@pullfrog/pullfrog",
version: "0.0.188",
version: "0.0.189",
type: "module",
files: [
"index.js",