diff --git a/packages/app/src/components/combined-model-selector.tsx b/packages/app/src/components/combined-model-selector.tsx index 5db10b5ce..423478106 100644 --- a/packages/app/src/components/combined-model-selector.tsx +++ b/packages/app/src/components/combined-model-selector.tsx @@ -63,8 +63,6 @@ import { type ProviderSelectorProvider, } from "@/provider-selection/provider-selection"; -// TODO: this should be configured per provider in the provider manifest -const PROVIDERS_WITH_MODEL_DESCRIPTIONS = new Set(["opencode", "pi"]); const DESKTOP_PROVIDER_VIEW_MIN_HEIGHT = 220; const DESKTOP_PROVIDER_VIEW_MAX_HEIGHT = 400; const DESKTOP_PROVIDER_VIEW_BASE_HEIGHT = 80; @@ -198,12 +196,10 @@ function ModelRow({ ], ); - const showDescription = row.description && PROVIDERS_WITH_MODEL_DESCRIPTIONS.has(row.provider); - return ( { providerLabel: "Codex", modelId: "gpt-5.4", modelLabel: "GPT-5.4", - description: undefined, + description: "gpt-5.4", isDefault: undefined, }, ], diff --git a/packages/app/src/provider-selection/provider-selection.ts b/packages/app/src/provider-selection/provider-selection.ts index 797554e24..291d1650a 100644 --- a/packages/app/src/provider-selection/provider-selection.ts +++ b/packages/app/src/provider-selection/provider-selection.ts @@ -47,7 +47,7 @@ function buildModelRows( providerLabel, modelId: model.id, modelLabel: model.label, - description: model.description, + description: model.description ?? model.id, isDefault: model.isDefault, })); } diff --git a/packages/server/src/server/agent/providers/pi/agent.test.ts b/packages/server/src/server/agent/providers/pi/agent.test.ts index 26238d810..d4718cbed 100644 --- a/packages/server/src/server/agent/providers/pi/agent.test.ts +++ b/packages/server/src/server/agent/providers/pi/agent.test.ts @@ -1158,6 +1158,11 @@ describe("transformPiModels", () => { id: "openrouter/google/gemini-2.5-flash-lite", label: "openrouter/google/gemini_2.5 flash lite", }, + { + provider: "pi", + id: "openrouter/openai/gpt-5.5", + label: "openrouter/OpenAI: GPT-5.5", + }, ]), ).toEqual([ { @@ -1166,6 +1171,12 @@ describe("transformPiModels", () => { label: "gemini 2.5 flash lite", description: "openrouter/google/gemini_2.5 flash lite", }, + { + provider: "pi", + id: "openrouter/openai/gpt-5.5", + label: "GPT-5.5", + description: "openrouter/OpenAI: GPT-5.5", + }, ]); }); }); diff --git a/packages/server/src/server/agent/providers/pi/agent.ts b/packages/server/src/server/agent/providers/pi/agent.ts index 6ea21d37d..2cb4be782 100644 --- a/packages/server/src/server/agent/providers/pi/agent.ts +++ b/packages/server/src/server/agent/providers/pi/agent.ts @@ -237,7 +237,13 @@ interface PiSlashCommandInvocation { type AutoCompactMode = boolean | "toggle" | "unknown"; function normalizePiModelLabel(label: string): string { - return label.trim().replace(/[_\s]+/g, " "); + const normalizedLabel = label.trim().replace(/[_\s]+/g, " "); + const vendorSeparatorIndex = normalizedLabel.indexOf(": "); + if (vendorSeparatorIndex === -1) { + return normalizedLabel; + } + + return normalizedLabel.slice(vendorSeparatorIndex + 2).trim(); } export function transformPiModels(models: AgentModelDefinition[]): AgentModelDefinition[] {