diff --git a/packages/types/src/model.ts b/packages/types/src/model.ts index 705f17039ec..f7192dd7969 100644 --- a/packages/types/src/model.ts +++ b/packages/types/src/model.ts @@ -80,6 +80,8 @@ export const modelInfoSchema = z.object({ cachableFields: z.array(z.string()).optional(), // Flag to indicate if the model is deprecated and should not be used deprecated: z.boolean().optional(), + // Performance warning message to display when this model is selected + performanceWarning: z.string().optional(), // Flag to indicate if the model is free (no cost) isFree: z.boolean().optional(), /** diff --git a/packages/types/src/providers/openai.ts b/packages/types/src/providers/openai.ts index a3eed1b57ce..f06f2729b09 100644 --- a/packages/types/src/providers/openai.ts +++ b/packages/types/src/providers/openai.ts @@ -81,6 +81,8 @@ export const openAiNativeModels = { outputPrice: 10.0, cacheReadsPrice: 0.13, description: "GPT-5-Codex: A version of GPT-5 optimized for agentic coding in Codex", + performanceWarning: + "GPT-5-Codex performs poorly with Roo's tool call functionality. Consider using standard GPT-5 models instead for better performance.", supportsVerbosity: true, supportsTemperature: false, }, diff --git a/webview-ui/src/components/settings/ApiOptions.tsx b/webview-ui/src/components/settings/ApiOptions.tsx index e2e7ba56157..1deb8ff8d6c 100644 --- a/webview-ui/src/components/settings/ApiOptions.tsx +++ b/webview-ui/src/components/settings/ApiOptions.tsx @@ -741,6 +741,11 @@ const ApiOptions = ({ )} + {/* Show performance warning if model has one */} + {selectedModelInfo?.performanceWarning && !selectedModelInfo.deprecated && ( + + )} + {selectedProvider === "bedrock" && selectedModelId === "custom-arn" && ( )} + {selectedModelInfo?.performanceWarning && !selectedModelInfo.deprecated && ( + + )} {selectedModelId && selectedModelInfo && !selectedModelInfo.deprecated && (