diff --git a/apps/server/src/providers/codex-models.ts b/apps/server/src/providers/codex-models.ts index 14dd566f..141d5355 100644 --- a/apps/server/src/providers/codex-models.ts +++ b/apps/server/src/providers/codex-models.ts @@ -7,16 +7,17 @@ import { CODEX_MODEL_MAP } from '@automaker/types'; import type { ModelDefinition } from './types.js'; -const CONTEXT_WINDOW_200K = 200000; +const CONTEXT_WINDOW_256K = 256000; const CONTEXT_WINDOW_128K = 128000; const MAX_OUTPUT_32K = 32000; const MAX_OUTPUT_16K = 16000; /** * All available Codex models with their specifications + * Based on https://developers.openai.com/codex/models/ */ export const CODEX_MODELS: ModelDefinition[] = [ - // ========== Codex-Specific Models ========== + // ========== Recommended Codex Models ========== { id: CODEX_MODEL_MAP.gpt52Codex, name: 'GPT-5.2-Codex', @@ -24,7 +25,7 @@ export const CODEX_MODELS: ModelDefinition[] = [ provider: 'openai', description: 'Most advanced agentic coding model for complex software engineering (default for ChatGPT users).', - contextWindow: CONTEXT_WINDOW_200K, + contextWindow: CONTEXT_WINDOW_256K, maxOutputTokens: MAX_OUTPUT_32K, supportsVision: true, supportsTools: true, @@ -33,38 +34,12 @@ export const CODEX_MODELS: ModelDefinition[] = [ hasReasoning: true, }, { - id: CODEX_MODEL_MAP.gpt5Codex, - name: 'GPT-5-Codex', - modelString: CODEX_MODEL_MAP.gpt5Codex, + id: CODEX_MODEL_MAP.gpt51CodexMax, + name: 'GPT-5.1-Codex-Max', + modelString: CODEX_MODEL_MAP.gpt51CodexMax, provider: 'openai', - description: 'Purpose-built for Codex CLI with versatile tool use (default for CLI users).', - contextWindow: CONTEXT_WINDOW_200K, - maxOutputTokens: MAX_OUTPUT_32K, - supportsVision: true, - supportsTools: true, - tier: 'standard' as const, - hasReasoning: true, - }, - { - id: CODEX_MODEL_MAP.gpt5CodexMini, - name: 'GPT-5-Codex-Mini', - modelString: CODEX_MODEL_MAP.gpt5CodexMini, - provider: 'openai', - description: 'Faster workflows optimized for low-latency code Q&A and editing.', - contextWindow: CONTEXT_WINDOW_128K, - maxOutputTokens: MAX_OUTPUT_16K, - supportsVision: false, - supportsTools: true, - tier: 'basic' as const, - hasReasoning: false, - }, - { - id: CODEX_MODEL_MAP.codex1, - name: 'Codex-1', - modelString: CODEX_MODEL_MAP.codex1, - provider: 'openai', - description: 'Version of o3 optimized for software engineering with advanced reasoning.', - contextWindow: CONTEXT_WINDOW_200K, + description: 'Optimized for long-horizon, agentic coding tasks in Codex.', + contextWindow: CONTEXT_WINDOW_256K, maxOutputTokens: MAX_OUTPUT_32K, supportsVision: true, supportsTools: true, @@ -72,27 +47,40 @@ export const CODEX_MODELS: ModelDefinition[] = [ hasReasoning: true, }, { - id: CODEX_MODEL_MAP.codexMiniLatest, - name: 'Codex-Mini-Latest', - modelString: CODEX_MODEL_MAP.codexMiniLatest, + id: CODEX_MODEL_MAP.gpt51CodexMini, + name: 'GPT-5.1-Codex-Mini', + modelString: CODEX_MODEL_MAP.gpt51CodexMini, provider: 'openai', - description: 'Version of o4-mini designed for Codex with faster workflows.', + description: 'Smaller, more cost-effective version for faster workflows.', contextWindow: CONTEXT_WINDOW_128K, maxOutputTokens: MAX_OUTPUT_16K, supportsVision: true, supportsTools: true, - tier: 'standard' as const, + tier: 'basic' as const, hasReasoning: false, }, - // ========== Base GPT-5 Model ========== + // ========== General-Purpose GPT Models ========== { - id: CODEX_MODEL_MAP.gpt5, - name: 'GPT-5', - modelString: CODEX_MODEL_MAP.gpt5, + id: CODEX_MODEL_MAP.gpt52, + name: 'GPT-5.2', + modelString: CODEX_MODEL_MAP.gpt52, provider: 'openai', - description: 'GPT-5 base flagship model with strong general-purpose capabilities.', - contextWindow: CONTEXT_WINDOW_200K, + description: 'Best general agentic model for tasks across industries and domains.', + contextWindow: CONTEXT_WINDOW_256K, + maxOutputTokens: MAX_OUTPUT_32K, + supportsVision: true, + supportsTools: true, + tier: 'standard' as const, + hasReasoning: true, + }, + { + id: CODEX_MODEL_MAP.gpt51, + name: 'GPT-5.1', + modelString: CODEX_MODEL_MAP.gpt51, + provider: 'openai', + description: 'Great for coding and agentic tasks across domains.', + contextWindow: CONTEXT_WINDOW_256K, maxOutputTokens: MAX_OUTPUT_32K, supportsVision: true, supportsTools: true, diff --git a/apps/ui/src/components/views/board-view/shared/model-constants.ts b/apps/ui/src/components/views/board-view/shared/model-constants.ts index 40aba2b7..7a41633e 100644 --- a/apps/ui/src/components/views/board-view/shared/model-constants.ts +++ b/apps/ui/src/components/views/board-view/shared/model-constants.ts @@ -58,47 +58,39 @@ export const CODEX_MODELS: ModelOption[] = [ { id: CODEX_MODEL_MAP.gpt52Codex, label: 'GPT-5.2-Codex', - description: 'Most advanced agentic coding model (default for ChatGPT users).', + description: 'Most advanced agentic coding model for complex software engineering.', badge: 'Premium', provider: 'codex', hasThinking: true, }, { - id: CODEX_MODEL_MAP.gpt5Codex, - label: 'GPT-5-Codex', - description: 'Purpose-built for Codex CLI (default for CLI users).', - badge: 'Balanced', + id: CODEX_MODEL_MAP.gpt51CodexMax, + label: 'GPT-5.1-Codex-Max', + description: 'Optimized for long-horizon, agentic coding tasks in Codex.', + badge: 'Premium', provider: 'codex', hasThinking: true, }, { - id: CODEX_MODEL_MAP.gpt5CodexMini, - label: 'GPT-5-Codex-Mini', - description: 'Faster workflows for code Q&A and editing.', + id: CODEX_MODEL_MAP.gpt51CodexMini, + label: 'GPT-5.1-Codex-Mini', + description: 'Smaller, more cost-effective version for faster workflows.', badge: 'Speed', provider: 'codex', hasThinking: false, }, { - id: CODEX_MODEL_MAP.codex1, - label: 'Codex-1', - description: 'o3-based model optimized for software engineering.', - badge: 'Premium', + id: CODEX_MODEL_MAP.gpt52, + label: 'GPT-5.2', + description: 'Best general agentic model for tasks across industries and domains.', + badge: 'Balanced', provider: 'codex', hasThinking: true, }, { - id: CODEX_MODEL_MAP.codexMiniLatest, - label: 'Codex-Mini-Latest', - description: 'o4-mini-based model for faster workflows.', - badge: 'Balanced', - provider: 'codex', - hasThinking: false, - }, - { - id: CODEX_MODEL_MAP.gpt5, - label: 'GPT-5', - description: 'GPT-5 base flagship model.', + id: CODEX_MODEL_MAP.gpt51, + label: 'GPT-5.1', + description: 'Great for coding and agentic tasks across domains.', badge: 'Balanced', provider: 'codex', hasThinking: true, diff --git a/apps/ui/src/components/views/settings-view/providers/codex-model-configuration.tsx b/apps/ui/src/components/views/settings-view/providers/codex-model-configuration.tsx index e3849f26..51d652b3 100644 --- a/apps/ui/src/components/views/settings-view/providers/codex-model-configuration.tsx +++ b/apps/ui/src/components/views/settings-view/providers/codex-model-configuration.tsx @@ -34,30 +34,25 @@ const CODEX_MODEL_INFO: Record = { label: 'GPT-5.2-Codex', description: 'Most advanced agentic coding model for complex software engineering', }, - 'gpt-5-codex': { - id: 'gpt-5-codex', - label: 'GPT-5-Codex', - description: 'Purpose-built for Codex CLI with versatile tool use', + 'gpt-5.1-codex-max': { + id: 'gpt-5.1-codex-max', + label: 'GPT-5.1-Codex-Max', + description: 'Optimized for long-horizon, agentic coding tasks in Codex', }, - 'gpt-5-codex-mini': { - id: 'gpt-5-codex-mini', - label: 'GPT-5-Codex-Mini', - description: 'Faster workflows optimized for low-latency code Q&A and editing', + 'gpt-5.1-codex-mini': { + id: 'gpt-5.1-codex-mini', + label: 'GPT-5.1-Codex-Mini', + description: 'Smaller, more cost-effective version for faster workflows', }, - 'codex-1': { - id: 'codex-1', - label: 'Codex-1', - description: 'Version of o3 optimized for software engineering', + 'gpt-5.2': { + id: 'gpt-5.2', + label: 'GPT-5.2', + description: 'Best general agentic model for tasks across industries and domains', }, - 'codex-mini-latest': { - id: 'codex-mini-latest', - label: 'Codex-Mini-Latest', - description: 'Version of o4-mini for Codex, optimized for faster workflows', - }, - 'gpt-5': { - id: 'gpt-5', - label: 'GPT-5', - description: 'GPT-5 base flagship model', + 'gpt-5.1': { + id: 'gpt-5.1', + label: 'GPT-5.1', + description: 'Great for coding and agentic tasks across domains', }, }; @@ -168,16 +163,15 @@ export function CodexModelConfiguration({ function getModelDisplayName(modelId: string): string { const displayNames: Record = { 'gpt-5.2-codex': 'GPT-5.2-Codex', - 'gpt-5-codex': 'GPT-5-Codex', - 'gpt-5-codex-mini': 'GPT-5-Codex-Mini', - 'codex-1': 'Codex-1', - 'codex-mini-latest': 'Codex-Mini-Latest', - 'gpt-5': 'GPT-5', + 'gpt-5.1-codex-max': 'GPT-5.1-Codex-Max', + 'gpt-5.1-codex-mini': 'GPT-5.1-Codex-Mini', + 'gpt-5.2': 'GPT-5.2', + 'gpt-5.1': 'GPT-5.1', }; return displayNames[modelId] || modelId; } function supportsReasoningEffort(modelId: string): boolean { - const reasoningModels = ['gpt-5.2-codex', 'gpt-5-codex', 'gpt-5', 'codex-1']; + const reasoningModels = ['gpt-5.2-codex', 'gpt-5.1-codex-max', 'gpt-5.2', 'gpt-5.1']; return reasoningModels.includes(modelId); } diff --git a/apps/ui/src/lib/utils.ts b/apps/ui/src/lib/utils.ts index a26772a6..542edf4a 100644 --- a/apps/ui/src/lib/utils.ts +++ b/apps/ui/src/lib/utils.ts @@ -1,6 +1,7 @@ import { clsx, type ClassValue } from 'clsx'; import { twMerge } from 'tailwind-merge'; import type { ModelAlias, ModelProvider } from '@/store/app-store'; +import { CODEX_MODEL_CONFIG_MAP, codexModelHasThinking } from '@automaker/types'; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); @@ -10,6 +11,13 @@ export function cn(...inputs: ClassValue[]) { * Determine if the current model supports extended thinking controls */ export function modelSupportsThinking(_model?: ModelAlias | string): boolean { + if (!_model) return true; + + // Check if it's a Codex model with thinking support + if (_model.startsWith('gpt-') && _model in CODEX_MODEL_CONFIG_MAP) { + return codexModelHasThinking(_model as any); + } + // All Claude models support thinking return true; } diff --git a/libs/types/src/codex-models.ts b/libs/types/src/codex-models.ts index 8914ffa5..71ee3c62 100644 --- a/libs/types/src/codex-models.ts +++ b/libs/types/src/codex-models.ts @@ -4,12 +4,11 @@ * Reference: https://developers.openai.com/codex/models/ */ export type CodexModelId = - | 'gpt-5.2-codex' // Most advanced agentic coding model for complex software engineering - | 'gpt-5-codex' // Purpose-built for Codex CLI with versatile tool use - | 'gpt-5-codex-mini' // Faster workflows optimized for low-latency code Q&A and editing - | 'codex-1' // Version of o3 optimized for software engineering - | 'codex-mini-latest' // Version of o4-mini for Codex, optimized for faster workflows - | 'gpt-5'; // GPT-5 base flagship model + | 'gpt-5.2-codex' + | 'gpt-5.1-codex-max' + | 'gpt-5.1-codex-mini' + | 'gpt-5.2' + | 'gpt-5.1'; /** * Codex model metadata @@ -32,40 +31,33 @@ export const CODEX_MODEL_CONFIG_MAP: Record = { label: 'GPT-5.2-Codex', description: 'Most advanced agentic coding model for complex software engineering', hasThinking: true, - supportsVision: true, // GPT-5 supports vision + supportsVision: true, }, - 'gpt-5-codex': { - id: 'gpt-5-codex', - label: 'GPT-5-Codex', - description: 'Purpose-built for Codex CLI with versatile tool use', + 'gpt-5.1-codex-max': { + id: 'gpt-5.1-codex-max', + label: 'GPT-5.1-Codex-Max', + description: 'Optimized for long-horizon, agentic coding tasks in Codex', hasThinking: true, supportsVision: true, }, - 'gpt-5-codex-mini': { - id: 'gpt-5-codex-mini', - label: 'GPT-5-Codex-Mini', - description: 'Faster workflows optimized for low-latency code Q&A and editing', + 'gpt-5.1-codex-mini': { + id: 'gpt-5.1-codex-mini', + label: 'GPT-5.1-Codex-Mini', + description: 'Smaller, more cost-effective version for faster workflows', hasThinking: false, supportsVision: true, }, - 'codex-1': { - id: 'codex-1', - label: 'Codex-1', - description: 'Version of o3 optimized for software engineering', + 'gpt-5.2': { + id: 'gpt-5.2', + label: 'GPT-5.2', + description: 'Best general agentic model for tasks across industries and domains', hasThinking: true, supportsVision: true, }, - 'codex-mini-latest': { - id: 'codex-mini-latest', - label: 'Codex-Mini-Latest', - description: 'Version of o4-mini for Codex, optimized for faster workflows', - hasThinking: false, - supportsVision: true, - }, - 'gpt-5': { - id: 'gpt-5', - label: 'GPT-5', - description: 'GPT-5 base flagship model', + 'gpt-5.1': { + id: 'gpt-5.1', + label: 'GPT-5.1', + description: 'Great for coding and agentic tasks across domains', hasThinking: true, supportsVision: true, }, diff --git a/libs/types/src/model-display.ts b/libs/types/src/model-display.ts index 6e79b592..235466cd 100644 --- a/libs/types/src/model-display.ts +++ b/libs/types/src/model-display.ts @@ -74,47 +74,39 @@ export const CODEX_MODELS: (ModelOption & { hasReasoning?: boolean })[] = [ { id: CODEX_MODEL_MAP.gpt52Codex, label: 'GPT-5.2-Codex', - description: 'Most advanced agentic coding model (default for ChatGPT users).', + description: 'Most advanced agentic coding model for complex software engineering.', badge: 'Premium', provider: 'codex', hasReasoning: true, }, { - id: CODEX_MODEL_MAP.gpt5Codex, - label: 'GPT-5-Codex', - description: 'Purpose-built for Codex CLI (default for CLI users).', - badge: 'Balanced', + id: CODEX_MODEL_MAP.gpt51CodexMax, + label: 'GPT-5.1-Codex-Max', + description: 'Optimized for long-horizon, agentic coding tasks in Codex.', + badge: 'Premium', provider: 'codex', hasReasoning: true, }, { - id: CODEX_MODEL_MAP.gpt5CodexMini, - label: 'GPT-5-Codex-Mini', - description: 'Faster workflows for code Q&A and editing.', + id: CODEX_MODEL_MAP.gpt51CodexMini, + label: 'GPT-5.1-Codex-Mini', + description: 'Smaller, more cost-effective version for faster workflows.', badge: 'Speed', provider: 'codex', hasReasoning: false, }, { - id: CODEX_MODEL_MAP.codex1, - label: 'Codex-1', - description: 'o3-based model optimized for software engineering.', - badge: 'Premium', + id: CODEX_MODEL_MAP.gpt52, + label: 'GPT-5.2', + description: 'Best general agentic model for tasks across industries and domains.', + badge: 'Balanced', provider: 'codex', hasReasoning: true, }, { - id: CODEX_MODEL_MAP.codexMiniLatest, - label: 'Codex-Mini-Latest', - description: 'o4-mini-based model for faster workflows.', - badge: 'Balanced', - provider: 'codex', - hasReasoning: false, - }, - { - id: CODEX_MODEL_MAP.gpt5, - label: 'GPT-5', - description: 'GPT-5 base flagship model.', + id: CODEX_MODEL_MAP.gpt51, + label: 'GPT-5.1', + description: 'Great for coding and agentic tasks across domains.', badge: 'Balanced', provider: 'codex', hasReasoning: true, @@ -203,11 +195,10 @@ export function getModelDisplayName(model: ModelAlias | string): string { sonnet: 'Claude Sonnet', opus: 'Claude Opus', [CODEX_MODEL_MAP.gpt52Codex]: 'GPT-5.2-Codex', - [CODEX_MODEL_MAP.gpt5Codex]: 'GPT-5-Codex', - [CODEX_MODEL_MAP.gpt5CodexMini]: 'GPT-5-Codex-Mini', - [CODEX_MODEL_MAP.codex1]: 'Codex-1', - [CODEX_MODEL_MAP.codexMiniLatest]: 'Codex-Mini-Latest', - [CODEX_MODEL_MAP.gpt5]: 'GPT-5', + [CODEX_MODEL_MAP.gpt51CodexMax]: 'GPT-5.1-Codex-Max', + [CODEX_MODEL_MAP.gpt51CodexMini]: 'GPT-5.1-Codex-Mini', + [CODEX_MODEL_MAP.gpt52]: 'GPT-5.2', + [CODEX_MODEL_MAP.gpt51]: 'GPT-5.1', }; return displayNames[model] || model; } diff --git a/libs/types/src/model.ts b/libs/types/src/model.ts index d16fd215..4ba04765 100644 --- a/libs/types/src/model.ts +++ b/libs/types/src/model.ts @@ -13,21 +13,19 @@ export const CLAUDE_MODEL_MAP: Record = { * See: https://developers.openai.com/codex/models/ */ export const CODEX_MODEL_MAP = { - // Codex-specific models + // Recommended Codex-specific models /** Most advanced agentic coding model for complex software engineering (default for ChatGPT users) */ gpt52Codex: 'gpt-5.2-codex', - /** Purpose-built for Codex CLI with versatile tool use (default for CLI users) */ - gpt5Codex: 'gpt-5-codex', - /** Faster workflows optimized for low-latency code Q&A and editing */ - gpt5CodexMini: 'gpt-5-codex-mini', - /** Version of o3 optimized for software engineering */ - codex1: 'codex-1', - /** Version of o4-mini for Codex, optimized for faster workflows */ - codexMiniLatest: 'codex-mini-latest', + /** Optimized for long-horizon, agentic coding tasks in Codex */ + gpt51CodexMax: 'gpt-5.1-codex-max', + /** Smaller, more cost-effective version for faster workflows */ + gpt51CodexMini: 'gpt-5.1-codex-mini', - // Base GPT-5 model (also available in Codex) - /** GPT-5 base flagship model */ - gpt5: 'gpt-5', + // General-purpose GPT models (also available in Codex) + /** Best general agentic model for tasks across industries and domains */ + gpt52: 'gpt-5.2', + /** Great for coding and agentic tasks across domains */ + gpt51: 'gpt-5.1', } as const; export const CODEX_MODEL_IDS = Object.values(CODEX_MODEL_MAP); @@ -38,9 +36,9 @@ export const CODEX_MODEL_IDS = Object.values(CODEX_MODEL_MAP); */ export const REASONING_CAPABLE_MODELS = new Set([ CODEX_MODEL_MAP.gpt52Codex, - CODEX_MODEL_MAP.gpt5Codex, - CODEX_MODEL_MAP.gpt5, - CODEX_MODEL_MAP.codex1, // o3-based model + CODEX_MODEL_MAP.gpt51CodexMax, + CODEX_MODEL_MAP.gpt52, + CODEX_MODEL_MAP.gpt51, ]); /**