From 35f5a00a673d68b63e1c6d4843dd0956c8eaf164 Mon Sep 17 00:00:00 2001 From: backryun Date: Sun, 9 Aug 2026 00:40:46 +0900 Subject: [PATCH] fix(types): accept synced catalog model rows --- .../api/v1/models/catalogSyncedCoverage.ts | 1 - ...catalog-synced-static-preservation.test.ts | 20 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/app/api/v1/models/catalogSyncedCoverage.ts b/src/app/api/v1/models/catalogSyncedCoverage.ts index 7ca21b7905..7a49445d71 100644 --- a/src/app/api/v1/models/catalogSyncedCoverage.ts +++ b/src/app/api/v1/models/catalogSyncedCoverage.ts @@ -13,7 +13,6 @@ export interface SyncedModelRow { id?: unknown; - [key: string]: unknown; } /** diff --git a/tests/unit/catalog-synced-static-preservation.test.ts b/tests/unit/catalog-synced-static-preservation.test.ts index 2803f83652..d6b6748fb2 100644 --- a/tests/unit/catalog-synced-static-preservation.test.ts +++ b/tests/unit/catalog-synced-static-preservation.test.ts @@ -5,6 +5,7 @@ import { buildSyncedModelIdsByCanonicalProvider, shouldSuppressStaticModelBySyncedCoverage, } from "../../src/app/api/v1/models/catalogSyncedCoverage.ts"; +import type { SyncedAvailableModel } from "../../src/lib/db/models/synced.ts"; test("static model covered by synced list IS suppressed (current behavior kept)", () => { assert.equal( @@ -51,16 +52,17 @@ test("no synced models -> nothing suppressed", () => { }); test("buildSyncedModelIdsByCanonicalProvider groups synced ids by canonical provider", () => { + const syncedModels: Record = { + "command-code": [ + { id: "gpt-5.6-luna", name: "Luna", source: "imported" }, + { id: "moonshotai/Kimi-K3", name: "Kimi K3", source: "imported" }, + { id: "", name: "Invalid", source: "imported" }, + ], + deepseek: [{ id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", source: "imported" }], + }; const byCanonical = buildSyncedModelIdsByCanonicalProvider( - { - "command-code": [ - { id: "gpt-5.6-luna" }, - { id: "moonshotai/Kimi-K3" }, - { id: "" }, // empty id ignored - ], - deepseek: [{ id: "deepseek-v4-flash" }], - }, - (aliasOrId, fallback) => aliasOrId === "cmd" ? "command-code" : (fallback || aliasOrId), + syncedModels, + (aliasOrId, fallback) => (aliasOrId === "cmd" ? "command-code" : fallback || aliasOrId), {}, { "command-code": "cmd" } );