From 5df3c22be8d3d55227cceadf66e40d099ee1089b Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Wed, 11 Mar 2026 20:45:39 -0300 Subject: [PATCH] fix(ts): wrap unknown dataObj fields with toRecord() in usage.ts (Kimi usage parser) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Six TypeScript errors on lines 921/922/925/926/939/948: - dataObj.five_hour / seven_day are 'unknown', can't be passed directly to hasUtilization/createQuotaObject which expect JsonRecord — wrap with toRecord() - dataObj.user is 'unknown', can't chain .membership?.level — use toRecord() first --- open-sse/services/usage.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/open-sse/services/usage.ts b/open-sse/services/usage.ts index 2f945beba9..36855dc8d8 100644 --- a/open-sse/services/usage.ts +++ b/open-sse/services/usage.ts @@ -918,12 +918,12 @@ async function getKimiUsage(accessToken) { }; }; - if (hasUtilization(dataObj.five_hour)) { - quotas["session (5h)"] = createQuotaObject(dataObj.five_hour); + if (hasUtilization(toRecord(dataObj.five_hour))) { + quotas["session (5h)"] = createQuotaObject(toRecord(dataObj.five_hour)); } - if (hasUtilization(dataObj.seven_day)) { - quotas["weekly (7d)"] = createQuotaObject(dataObj.seven_day); + if (hasUtilization(toRecord(dataObj.seven_day))) { + quotas["weekly (7d)"] = createQuotaObject(toRecord(dataObj.seven_day)); } // Check for model-specific quotas @@ -936,7 +936,8 @@ async function getKimiUsage(accessToken) { } if (Object.keys(quotas).length > 0) { - const membershipLevel = dataObj.user?.membership?.level; + const userRecord = toRecord(dataObj.user); + const membershipLevel = toRecord(userRecord.membership).level; const planName = getKimiPlanName(membershipLevel); return { plan: planName || "Kimi Coding", @@ -945,7 +946,8 @@ async function getKimiUsage(accessToken) { } // No quota data in response - const membershipLevel = dataObj.user?.membership?.level; + const userRecord = toRecord(dataObj.user); + const membershipLevel = toRecord(userRecord.membership).level; const planName = getKimiPlanName(membershipLevel); return { plan: planName || "Kimi Coding",