diff --git a/packages/stats/core/src/domain/inference.test.ts b/packages/stats/core/src/domain/inference.test.ts index d8937ff28e7..ad95dad18b7 100644 --- a/packages/stats/core/src/domain/inference.test.ts +++ b/packages/stats/core/src/domain/inference.test.ts @@ -4,6 +4,7 @@ import { modelAuthor, normalizeInferenceModel, statModel, statProvider } from ". describe("inference stat normalization", () => { test("normalizes model suffixes used by router/provider variants", () => { + expect(normalizeInferenceModel("GPT-5-Free")).toBe("gpt-5") expect(normalizeInferenceModel("deepseek-v4-flash-free")).toBe("deepseek-v4-flash") expect(normalizeInferenceModel("deepseek-v4-flash:global")).toBe("deepseek-v4-flash") expect(normalizeInferenceModel("mimo-v2.5-free")).toBe("mimo-v2.5") diff --git a/packages/stats/core/src/domain/model-normalization.ts b/packages/stats/core/src/domain/model-normalization.ts index 778e5edb8b9..c950fda937a 100644 --- a/packages/stats/core/src/domain/model-normalization.ts +++ b/packages/stats/core/src/domain/model-normalization.ts @@ -23,7 +23,7 @@ export const RETIRED_STAT_MODELS = ["big-pickle", ...Object.keys(MODEL_NAME_ALIA export const RETIRED_STAT_PROVIDERS = ["opencode"] export function normalizeInferenceModel(value: string | undefined) { - return (value || "unknown").replace(/(-free|:free|:global)+$/, "") || "unknown" + return (value || "unknown").toLowerCase().replace(/(-free|:free|:global)+$/, "") || "unknown" } export function modelAuthor(value: string | undefined) {