fix: try provider/model-id fallback in /lock-model for OpenRouter models

This commit is contained in:
2026-06-09 14:24:22 +10:00
parent 375c796d28
commit 3a4db35b16

View File

@@ -14,11 +14,11 @@ let lockedModel: any = null;
const MODELS: Record<string, { provider: string; id: string }> = { const MODELS: Record<string, { provider: string; id: string }> = {
"free-core": { provider: "openrouter", id: "free" }, "free-core": { provider: "openrouter", id: "free" },
"router-eval": { provider: "openrouter", id: "free" }, "router-eval": { provider: "openrouter", id: "free" },
"economy-devops": { provider: "openrouter", id: "qwen/qwen3.6-flash" }, "economy-devops": { provider: "opencode-go", id: "deepseek/deepseek-v4-flash" },
"economy-code": { provider: "openrouter", id: "deepseek/deepseek-v4-flash" }, "economy-code": { provider: "opencode-go", id: "deepseek/deepseek-v4-pro" },
"precision-devops": { provider: "openrouter", id: "qwen/qwen-2.5-72b-instruct" }, "precision-devops": { provider: "openrouter", id: "deepseek/deepseek-v4-pro" },
"precision-code-high":{ provider: "openrouter", id: "deepseek/deepseek-v4-pro" }, "precision-code-high":{ provider: "openrouter", id: "deepseek/deepseek-v4-pro" },
"precision-react": { provider: "openrouter", id: "qwen/qwen3-coder-plus" }, "precision-react": { provider: "openrouter", id: "deepseek/deepseek-v4-pro" },
"context-heavy": { provider: "openrouter", id: "moonshotai/kimi-k2.6" }, "context-heavy": { provider: "openrouter", id: "moonshotai/kimi-k2.6" },
}; };
@@ -57,7 +57,12 @@ export default function (pi: ExtensionAPI) {
} }
const provider = modelId.substring(0, slashIdx); const provider = modelId.substring(0, slashIdx);
const id = modelId.substring(slashIdx + 1); const id = modelId.substring(slashIdx + 1);
const model = ctx.modelRegistry.find(provider, id); let model = ctx.modelRegistry.find(provider, id);
if (!model) {
// OpenRouter model IDs include provider prefix (e.g. "openrouter/owl-alpha")
// so try with the full provider/model-id format
model = ctx.modelRegistry.find(provider, `${provider}/${id}`);
}
if (!model) { if (!model) {
ctx.ui.notify(`Model not found: ${modelId}`, "error"); ctx.ui.notify(`Model not found: ${modelId}`, "error");
return; return;