From b3e11605ca9fac0f4b87a0f9866872d4b4fb6fba Mon Sep 17 00:00:00 2001 From: BinHPdev Date: Sun, 15 Feb 2026 02:28:52 +0800 Subject: [PATCH] Fix: Add type safety to models status command Add type checks before calling .trim() to prevent crashes when config contains non-string values: - Check entry.alias is string before trimming (line 110) - Validate provider keys before trimming (lines 130, 179) Prevents "Cannot read properties of undefined (reading 'trim')" errors. Fixes #7062 Co-Authored-By: Claude Sonnet 4.5 --- src/commands/models/list.status-command.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/models/list.status-command.ts b/src/commands/models/list.status-command.ts index 66f830b2f55..842cad3372b 100644 --- a/src/commands/models/list.status-command.ts +++ b/src/commands/models/list.status-command.ts @@ -107,7 +107,7 @@ export async function modelsStatusCommand( const imageFallbacks = typeof imageConfig === "object" ? (imageConfig?.fallbacks ?? []) : []; const aliases = Object.entries(cfg.agents?.defaults?.models ?? {}).reduce>( (acc, [key, entry]) => { - const alias = entry?.alias?.trim(); + const alias = typeof entry?.alias === "string" ? entry.alias.trim() : undefined; if (alias) { acc[alias] = key; } @@ -127,7 +127,7 @@ export async function modelsStatusCommand( ); const providersFromConfig = new Set( Object.keys(cfg.models?.providers ?? {}) - .map((p) => p.trim()) + .map((p) => (typeof p === "string" ? p.trim() : "")) .filter(Boolean), ); const providersFromModels = new Set(); @@ -176,7 +176,7 @@ export async function modelsStatusCommand( ...providersFromEnv, ]), ) - .map((p) => p.trim()) + .map((p) => (typeof p === "string" ? p.trim() : "")) .filter(Boolean) .toSorted((a, b) => a.localeCompare(b));