Rename OSS_PROXY_MODEL to DEFAULT_PROXY_MODEL; default Router proxy to Kimi K2.6.

Derive the platform default from moonshotai/kimi-k2 openRouterResolve, add models.dev drift coverage, and promote repos on default-branch workflow pushes when still needs_setup.
This commit is contained in:
Colin McDonnell
2026-05-22 15:52:20 +00:00
committed by pullfrog[bot]
parent fb22cb3ae3
commit 7c5ed7add0
5 changed files with 40 additions and 1 deletions
+1
View File
@@ -29,6 +29,7 @@ export function formatMcpToolRef(agentId: AgentId, toolName: string): string {
// model alias registry lives in models.ts — re-exported here for shared access
export type { ModelAlias, ModelProvider, ProviderConfig } from "./models.ts";
export {
DEFAULT_PROXY_MODEL,
getModelEnvVars,
getModelManagedCredentials,
getModelProvider,
+1
View File
@@ -16,6 +16,7 @@ export type {
WriteablePayload,
} from "../external.ts";
export {
DEFAULT_PROXY_MODEL,
getModelEnvVars,
getModelManagedCredentials,
getModelProvider,
+7
View File
@@ -1,5 +1,6 @@
import { describe, expect, it } from "vitest";
import {
DEFAULT_PROXY_MODEL,
getModelEnvVars,
getModelProvider,
isBedrockAnthropicId,
@@ -134,6 +135,12 @@ describe("resolveDisplayAlias", () => {
});
});
describe("DEFAULT_PROXY_MODEL", () => {
it("tracks moonshotai/kimi-k2 openRouterResolve", () => {
expect(DEFAULT_PROXY_MODEL).toBe(resolveOpenRouterModel("moonshotai/kimi-k2"));
});
});
describe("resolveOpenRouterModel", () => {
it("returns the openrouter specifier for a non-deprecated alias", () => {
expect(resolveOpenRouterModel("anthropic/claude-opus")).toBe(
+7
View File
@@ -570,6 +570,13 @@ export const modelAliases: ModelAlias[] = Object.entries(providers).flatMap(
}))
);
/** OpenRouter target when Router or OSS funding is active and `repo.model` is null. */
const defaultProxyAlias = modelAliases.find((a) => a.slug === "moonshotai/kimi-k2");
if (!defaultProxyAlias?.openRouterResolve) {
throw new Error("DEFAULT_PROXY_MODEL: moonshotai/kimi-k2 missing openRouterResolve");
}
export const DEFAULT_PROXY_MODEL = defaultProxyAlias.openRouterResolve;
// ── resolution ─────────────────────────────────────────────────────────────────
/** resolve a model slug to its concrete models.dev specifier (e.g. "anthropic/claude-opus-4-6") */
+24 -1
View File
@@ -1,5 +1,5 @@
import { describe, expect, it } from "vitest";
import { modelAliases, resolveDisplayAlias } from "../models.ts";
import { DEFAULT_PROXY_MODEL, modelAliases, resolveDisplayAlias } from "../models.ts";
// ── catalog drift tests ─────────────────────────────────────────────────────
//
@@ -99,6 +99,29 @@ describe("openRouterResolve models.dev validity", async () => {
}
});
describe("DEFAULT_PROXY_MODEL models.dev validity", async () => {
const data = await api;
const parsed = parseResolve(DEFAULT_PROXY_MODEL);
it(`${DEFAULT_PROXY_MODEL} exists on models.dev`, () => {
const providerData = data[parsed.provider];
expect(providerData, `provider "${parsed.provider}" not found on models.dev`).toBeDefined();
const model = providerData.models[parsed.modelId];
expect(
model,
`model "${parsed.modelId}" not found under ${parsed.provider} on models.dev`
).toBeDefined();
});
it(`${DEFAULT_PROXY_MODEL} is not deprecated on models.dev`, () => {
const model = data[parsed.provider]?.models[parsed.modelId];
if (!model) return;
expect(model.status, `${DEFAULT_PROXY_MODEL} is deprecated on models.dev`).not.toBe(
"deprecated"
);
});
});
type OpenRouterModel = { id: string };
type OpenRouterModelsResponse = { data: OpenRouterModel[] };