From 58eefa8d3dfec5f3dc384b9ebfe765305b9ac190 Mon Sep 17 00:00:00 2001 From: Carlos Gutierrez Date: Sat, 15 Nov 2025 18:49:30 -0700 Subject: [PATCH] Filter model selector to only show models with configured API keys --- packages/coding-agent/src/tui/model-selector.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/coding-agent/src/tui/model-selector.ts b/packages/coding-agent/src/tui/model-selector.ts index 8e1c5daa..d9eabd6a 100644 --- a/packages/coding-agent/src/tui/model-selector.ts +++ b/packages/coding-agent/src/tui/model-selector.ts @@ -1,4 +1,4 @@ -import { getModels, getProviders, type Model } from "@mariozechner/pi-ai"; +import { getApiKey, getModels, getProviders, type Model } from "@mariozechner/pi-ai"; import { Container, Input, Spacer, Text } from "@mariozechner/pi-tui"; import chalk from "chalk"; @@ -71,8 +71,11 @@ export class ModelSelectorComponent extends Container { } } + // Filter out models from providers without API keys + const filteredModels = models.filter((item) => getApiKey(item.provider as any) !== undefined); + // Sort: current model first, then by provider - models.sort((a, b) => { + filteredModels.sort((a, b) => { const aIsCurrent = this.currentModel?.id === a.model.id; const bIsCurrent = this.currentModel?.id === b.model.id; if (aIsCurrent && !bIsCurrent) return -1; @@ -80,8 +83,8 @@ export class ModelSelectorComponent extends Container { return a.provider.localeCompare(b.provider); }); - this.allModels = models; - this.filteredModels = models; + this.allModels = filteredModels; + this.filteredModels = filteredModels; } private filterModels(query: string): void {