From 0fcafa9301b3ecb0f581fc3a456daa3cd66564ff Mon Sep 17 00:00:00 2001 From: Arafatkatze Date: Thu, 8 Jan 2026 18:04:32 -0800 Subject: [PATCH] refactor: replace @ts-ignore with @ts-expect-error and add new free model - Replaced @ts-ignore-next-line with @ts-expect-error-next-line for better type safety in ClineHandler - Added "kwaipilot/kat-coder-pro:free" to the list of free models in OpenRouterModelPicker - Fixed trailing comma in providerUtils.ts filter condition --- src/core/api/providers/cline.ts | 4 ++-- webview-ui/src/components/settings/OpenRouterModelPicker.tsx | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/api/providers/cline.ts b/src/core/api/providers/cline.ts index 5da010c715..810782cb44 100644 --- a/src/core/api/providers/cline.ts +++ b/src/core/api/providers/cline.ts @@ -184,7 +184,7 @@ export class ClineHandler implements ApiHandler { if ( "reasoning_details" in delta && delta.reasoning_details && - // @ts-ignore-next-line + // @ts-expect-error-next-line delta?.reasoning_details?.length && // exists and non-0 !shouldSkipReasoningForModel(this.options.openRouterModelId) ) { @@ -196,7 +196,7 @@ export class ClineHandler implements ApiHandler { } if (!didOutputUsage && chunk.usage) { - // @ts-ignore-next-line + // @ts-expect-error-next-line let totalCost = (chunk.usage.cost || 0) + (chunk.usage.cost_details?.upstream_inference_cost || 0) if (["x-ai/grok-code-fast-1", "minimax/minimax-m2.1"].includes(this.getModel().id)) { diff --git a/webview-ui/src/components/settings/OpenRouterModelPicker.tsx b/webview-ui/src/components/settings/OpenRouterModelPicker.tsx index a7bf5c9dbe..2d3eb8e4c8 100644 --- a/webview-ui/src/components/settings/OpenRouterModelPicker.tsx +++ b/webview-ui/src/components/settings/OpenRouterModelPicker.tsx @@ -90,6 +90,11 @@ export const freeModels = [ description: "Mistral's latest model with strong coding abilities", label: "FREE", }, + { + id: "kwaipilot/kat-coder-pro:free", + description: "KwaiKAT's most advanced agentic coding model in the KAT-Coder series", + label: "FREE", + }, ] const FREE_CLINE_MODELS = freeModels.map((m) => m.id)