From 1e4d3eabb5c27fc138c01711d28c894e2c3d0f51 Mon Sep 17 00:00:00 2001 From: simosmik Date: Thu, 30 Apr 2026 06:55:29 +0000 Subject: [PATCH] refactor: add provider names to model constants --- shared/modelConstants.js | 10 ++++++++++ .../ProviderSelectionEmptyState.tsx | 20 ++++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/shared/modelConstants.js b/shared/modelConstants.js index fd47010b..06fb0166 100644 --- a/shared/modelConstants.js +++ b/shared/modelConstants.js @@ -94,3 +94,13 @@ export const GEMINI_MODELS = { DEFAULT: "gemini-3.1-pro-preview", }; + +/** + * Ordered provider registry. Display order in selection UIs. + */ +export const PROVIDERS = [ + { id: "claude", name: "Anthropic", models: CLAUDE_MODELS }, + { id: "codex", name: "OpenAI", models: CODEX_MODELS }, + { id: "gemini", name: "Google", models: GEMINI_MODELS }, + { id: "cursor", name: "Cursor", models: CURSOR_MODELS }, +]; diff --git a/src/components/chat/view/subcomponents/ProviderSelectionEmptyState.tsx b/src/components/chat/view/subcomponents/ProviderSelectionEmptyState.tsx index 04569e60..5a5feeb7 100644 --- a/src/components/chat/view/subcomponents/ProviderSelectionEmptyState.tsx +++ b/src/components/chat/view/subcomponents/ProviderSelectionEmptyState.tsx @@ -9,6 +9,7 @@ import { CURSOR_MODELS, CODEX_MODELS, GEMINI_MODELS, + PROVIDERS, } from "../../../../../shared/modelConstants"; import type { ProjectSession, LLMProvider } from "../../../../types/app"; import { NextTaskBanner } from "../../../task-master"; @@ -52,12 +53,11 @@ type ProviderGroup = { models: { value: string; label: string }[]; }; -const PROVIDER_GROUPS: ProviderGroup[] = [ - { id: "claude", name: "Anthropic", models: CLAUDE_MODELS.OPTIONS }, - { id: "cursor", name: "Cursor", models: CURSOR_MODELS.OPTIONS }, - { id: "codex", name: "OpenAI", models: CODEX_MODELS.OPTIONS }, - { id: "gemini", name: "Google", models: GEMINI_MODELS.OPTIONS }, -]; +const PROVIDER_GROUPS: ProviderGroup[] = PROVIDERS.map((p) => ({ + id: p.id as LLMProvider, + name: p.name, + models: p.models.OPTIONS, +})); function getModelConfig(p: LLMProvider) { if (p === "claude") return CLAUDE_MODELS; @@ -231,9 +231,14 @@ export default function ProviderSelectionEmptyState({ defaultValue: "No models found.", })} - {visibleProviderGroups.map((group) => ( + {visibleProviderGroups.map((group, idx) => ( 0 + ? "border-t border-border/40 [&_[cmdk-group-heading]]:mt-1 [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider" + : "[&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider" + } heading={ @@ -248,6 +253,7 @@ export default function ProviderSelectionEmptyState({ key={`${group.id}-${model.value}`} value={`${group.name} ${model.label}`} onSelect={() => handleModelSelect(group.id, model.value)} + className="ml-4 border-l border-border/40 pl-4" > {model.label} {isSelected && (