diff --git a/packages/stats/core/src/domain/geo.ts b/packages/stats/core/src/domain/geo.ts index 4b184469998..f7b8f635429 100644 --- a/packages/stats/core/src/domain/geo.ts +++ b/packages/stats/core/src/domain/geo.ts @@ -199,7 +199,11 @@ export class GeoStatRepo extends Context.Service DatabaseError.make({ cause }), diff --git a/packages/stats/core/src/domain/inference.test.ts b/packages/stats/core/src/domain/inference.test.ts index 2dfd16a1cf5..021acc8b72b 100644 --- a/packages/stats/core/src/domain/inference.test.ts +++ b/packages/stats/core/src/domain/inference.test.ts @@ -38,6 +38,17 @@ describe("inference stat normalization", () => { expect(statProvider("unknown", "", "custom-provider")).toBe("custom-provider") }) + test("attributes hy4 preview traffic to Tencent instead of the unknown provider", () => { + expect(modelAuthor("hy4-preview")).toBe("tencent") + expect(toModelAggregate(aggregate("hy4-preview", "opencode"))).toMatchObject([ + { model: "hy4-preview", provider: "tencent" }, + ]) + expect(toProviderAggregate(aggregate("hy4-preview", "opencode"))).toMatchObject([{ provider: "tencent" }]) + expect(toGeoAggregate({ ...aggregate("hy4-preview", "opencode"), country: "US" })).toMatchObject([ + { model: "hy4-preview", provider: "tencent" }, + ]) + }) + test("merges union alpha routes without exposing the provider", () => { ;["opencode-go/union-alpha", "opencode/union-alpha"].forEach((model) => { expect(statModel(model, "")).toBe("union-alpha") diff --git a/packages/stats/core/src/domain/model-normalization.ts b/packages/stats/core/src/domain/model-normalization.ts index 0895187ada1..af3d8423fa9 100644 --- a/packages/stats/core/src/domain/model-normalization.ts +++ b/packages/stats/core/src/domain/model-normalization.ts @@ -6,6 +6,7 @@ export const MODEL_AUTHOR_RULES = [ { match: "gpt", author: "openai" }, { match: "grok", author: "xai" }, { match: "hy3", author: "tencent" }, + { match: "hy4", author: "tencent" }, { match: "kimi", author: "moonshot" }, { match: "mimo", author: "xiaomi" }, { match: "minimax", author: "minimax" }, diff --git a/packages/stats/core/src/domain/model.ts b/packages/stats/core/src/domain/model.ts index 2ad266eab84..d58e25d0bbe 100644 --- a/packages/stats/core/src/domain/model.ts +++ b/packages/stats/core/src/domain/model.ts @@ -186,6 +186,7 @@ export class ModelStatRepo extends Context.Service