refactor: update Codex models to latest OpenAI models

- Replace gpt-5-codex, gpt-5-codex-mini, codex-1, codex-mini-latest, gpt-5
- Add gpt-5.1-codex-max, gpt-5.1-codex-mini, gpt-5.2, gpt-5.1
- Update thinking support for all Codex models
This commit is contained in:
DhanushSantosh
2026-01-08 14:22:35 +05:30
parent d1bd131cab
commit 4d80a93710
7 changed files with 131 additions and 168 deletions

View File

@@ -7,16 +7,17 @@
import { CODEX_MODEL_MAP } from '@automaker/types'; import { CODEX_MODEL_MAP } from '@automaker/types';
import type { ModelDefinition } from './types.js'; import type { ModelDefinition } from './types.js';
const CONTEXT_WINDOW_200K = 200000; const CONTEXT_WINDOW_256K = 256000;
const CONTEXT_WINDOW_128K = 128000; const CONTEXT_WINDOW_128K = 128000;
const MAX_OUTPUT_32K = 32000; const MAX_OUTPUT_32K = 32000;
const MAX_OUTPUT_16K = 16000; const MAX_OUTPUT_16K = 16000;
/** /**
* All available Codex models with their specifications * All available Codex models with their specifications
* Based on https://developers.openai.com/codex/models/
*/ */
export const CODEX_MODELS: ModelDefinition[] = [ export const CODEX_MODELS: ModelDefinition[] = [
// ========== Codex-Specific Models ========== // ========== Recommended Codex Models ==========
{ {
id: CODEX_MODEL_MAP.gpt52Codex, id: CODEX_MODEL_MAP.gpt52Codex,
name: 'GPT-5.2-Codex', name: 'GPT-5.2-Codex',
@@ -24,7 +25,7 @@ export const CODEX_MODELS: ModelDefinition[] = [
provider: 'openai', provider: 'openai',
description: description:
'Most advanced agentic coding model for complex software engineering (default for ChatGPT users).', '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, maxOutputTokens: MAX_OUTPUT_32K,
supportsVision: true, supportsVision: true,
supportsTools: true, supportsTools: true,
@@ -33,38 +34,12 @@ export const CODEX_MODELS: ModelDefinition[] = [
hasReasoning: true, hasReasoning: true,
}, },
{ {
id: CODEX_MODEL_MAP.gpt5Codex, id: CODEX_MODEL_MAP.gpt51CodexMax,
name: 'GPT-5-Codex', name: 'GPT-5.1-Codex-Max',
modelString: CODEX_MODEL_MAP.gpt5Codex, modelString: CODEX_MODEL_MAP.gpt51CodexMax,
provider: 'openai', provider: 'openai',
description: 'Purpose-built for Codex CLI with versatile tool use (default for CLI users).', description: 'Optimized for long-horizon, agentic coding tasks in Codex.',
contextWindow: CONTEXT_WINDOW_200K, contextWindow: CONTEXT_WINDOW_256K,
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,
maxOutputTokens: MAX_OUTPUT_32K, maxOutputTokens: MAX_OUTPUT_32K,
supportsVision: true, supportsVision: true,
supportsTools: true, supportsTools: true,
@@ -72,27 +47,40 @@ export const CODEX_MODELS: ModelDefinition[] = [
hasReasoning: true, hasReasoning: true,
}, },
{ {
id: CODEX_MODEL_MAP.codexMiniLatest, id: CODEX_MODEL_MAP.gpt51CodexMini,
name: 'Codex-Mini-Latest', name: 'GPT-5.1-Codex-Mini',
modelString: CODEX_MODEL_MAP.codexMiniLatest, modelString: CODEX_MODEL_MAP.gpt51CodexMini,
provider: 'openai', 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, contextWindow: CONTEXT_WINDOW_128K,
maxOutputTokens: MAX_OUTPUT_16K, maxOutputTokens: MAX_OUTPUT_16K,
supportsVision: true, supportsVision: true,
supportsTools: true, supportsTools: true,
tier: 'standard' as const, tier: 'basic' as const,
hasReasoning: false, hasReasoning: false,
}, },
// ========== Base GPT-5 Model ========== // ========== General-Purpose GPT Models ==========
{ {
id: CODEX_MODEL_MAP.gpt5, id: CODEX_MODEL_MAP.gpt52,
name: 'GPT-5', name: 'GPT-5.2',
modelString: CODEX_MODEL_MAP.gpt5, modelString: CODEX_MODEL_MAP.gpt52,
provider: 'openai', provider: 'openai',
description: 'GPT-5 base flagship model with strong general-purpose capabilities.', description: 'Best general agentic model for tasks across industries and domains.',
contextWindow: CONTEXT_WINDOW_200K, 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, maxOutputTokens: MAX_OUTPUT_32K,
supportsVision: true, supportsVision: true,
supportsTools: true, supportsTools: true,

View File

@@ -58,47 +58,39 @@ export const CODEX_MODELS: ModelOption[] = [
{ {
id: CODEX_MODEL_MAP.gpt52Codex, id: CODEX_MODEL_MAP.gpt52Codex,
label: 'GPT-5.2-Codex', 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', badge: 'Premium',
provider: 'codex', provider: 'codex',
hasThinking: true, hasThinking: true,
}, },
{ {
id: CODEX_MODEL_MAP.gpt5Codex, id: CODEX_MODEL_MAP.gpt51CodexMax,
label: 'GPT-5-Codex', label: 'GPT-5.1-Codex-Max',
description: 'Purpose-built for Codex CLI (default for CLI users).', description: 'Optimized for long-horizon, agentic coding tasks in Codex.',
badge: 'Balanced', badge: 'Premium',
provider: 'codex', provider: 'codex',
hasThinking: true, hasThinking: true,
}, },
{ {
id: CODEX_MODEL_MAP.gpt5CodexMini, id: CODEX_MODEL_MAP.gpt51CodexMini,
label: 'GPT-5-Codex-Mini', label: 'GPT-5.1-Codex-Mini',
description: 'Faster workflows for code Q&A and editing.', description: 'Smaller, more cost-effective version for faster workflows.',
badge: 'Speed', badge: 'Speed',
provider: 'codex', provider: 'codex',
hasThinking: false, hasThinking: false,
}, },
{ {
id: CODEX_MODEL_MAP.codex1, id: CODEX_MODEL_MAP.gpt52,
label: 'Codex-1', label: 'GPT-5.2',
description: 'o3-based model optimized for software engineering.', description: 'Best general agentic model for tasks across industries and domains.',
badge: 'Premium', badge: 'Balanced',
provider: 'codex', provider: 'codex',
hasThinking: true, hasThinking: true,
}, },
{ {
id: CODEX_MODEL_MAP.codexMiniLatest, id: CODEX_MODEL_MAP.gpt51,
label: 'Codex-Mini-Latest', label: 'GPT-5.1',
description: 'o4-mini-based model for faster workflows.', description: 'Great for coding and agentic tasks across domains.',
badge: 'Balanced',
provider: 'codex',
hasThinking: false,
},
{
id: CODEX_MODEL_MAP.gpt5,
label: 'GPT-5',
description: 'GPT-5 base flagship model.',
badge: 'Balanced', badge: 'Balanced',
provider: 'codex', provider: 'codex',
hasThinking: true, hasThinking: true,

View File

@@ -34,30 +34,25 @@ const CODEX_MODEL_INFO: Record<CodexModelId, CodexModelInfo> = {
label: 'GPT-5.2-Codex', label: 'GPT-5.2-Codex',
description: 'Most advanced agentic coding model for complex software engineering', description: 'Most advanced agentic coding model for complex software engineering',
}, },
'gpt-5-codex': { 'gpt-5.1-codex-max': {
id: 'gpt-5-codex', id: 'gpt-5.1-codex-max',
label: 'GPT-5-Codex', label: 'GPT-5.1-Codex-Max',
description: 'Purpose-built for Codex CLI with versatile tool use', description: 'Optimized for long-horizon, agentic coding tasks in Codex',
}, },
'gpt-5-codex-mini': { 'gpt-5.1-codex-mini': {
id: 'gpt-5-codex-mini', id: 'gpt-5.1-codex-mini',
label: 'GPT-5-Codex-Mini', label: 'GPT-5.1-Codex-Mini',
description: 'Faster workflows optimized for low-latency code Q&A and editing', description: 'Smaller, more cost-effective version for faster workflows',
}, },
'codex-1': { 'gpt-5.2': {
id: 'codex-1', id: 'gpt-5.2',
label: 'Codex-1', label: 'GPT-5.2',
description: 'Version of o3 optimized for software engineering', description: 'Best general agentic model for tasks across industries and domains',
}, },
'codex-mini-latest': { 'gpt-5.1': {
id: 'codex-mini-latest', id: 'gpt-5.1',
label: 'Codex-Mini-Latest', label: 'GPT-5.1',
description: 'Version of o4-mini for Codex, optimized for faster workflows', description: 'Great for coding and agentic tasks across domains',
},
'gpt-5': {
id: 'gpt-5',
label: 'GPT-5',
description: 'GPT-5 base flagship model',
}, },
}; };
@@ -168,16 +163,15 @@ export function CodexModelConfiguration({
function getModelDisplayName(modelId: string): string { function getModelDisplayName(modelId: string): string {
const displayNames: Record<string, string> = { const displayNames: Record<string, string> = {
'gpt-5.2-codex': 'GPT-5.2-Codex', 'gpt-5.2-codex': 'GPT-5.2-Codex',
'gpt-5-codex': 'GPT-5-Codex', 'gpt-5.1-codex-max': 'GPT-5.1-Codex-Max',
'gpt-5-codex-mini': 'GPT-5-Codex-Mini', 'gpt-5.1-codex-mini': 'GPT-5.1-Codex-Mini',
'codex-1': 'Codex-1', 'gpt-5.2': 'GPT-5.2',
'codex-mini-latest': 'Codex-Mini-Latest', 'gpt-5.1': 'GPT-5.1',
'gpt-5': 'GPT-5',
}; };
return displayNames[modelId] || modelId; return displayNames[modelId] || modelId;
} }
function supportsReasoningEffort(modelId: string): boolean { 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); return reasoningModels.includes(modelId);
} }

View File

@@ -1,6 +1,7 @@
import { clsx, type ClassValue } from 'clsx'; import { clsx, type ClassValue } from 'clsx';
import { twMerge } from 'tailwind-merge'; import { twMerge } from 'tailwind-merge';
import type { ModelAlias, ModelProvider } from '@/store/app-store'; import type { ModelAlias, ModelProvider } from '@/store/app-store';
import { CODEX_MODEL_CONFIG_MAP, codexModelHasThinking } from '@automaker/types';
export function cn(...inputs: ClassValue[]) { export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs)); return twMerge(clsx(inputs));
@@ -10,6 +11,13 @@ export function cn(...inputs: ClassValue[]) {
* Determine if the current model supports extended thinking controls * Determine if the current model supports extended thinking controls
*/ */
export function modelSupportsThinking(_model?: ModelAlias | string): boolean { 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 // All Claude models support thinking
return true; return true;
} }

View File

@@ -4,12 +4,11 @@
* Reference: https://developers.openai.com/codex/models/ * Reference: https://developers.openai.com/codex/models/
*/ */
export type CodexModelId = export type CodexModelId =
| 'gpt-5.2-codex' // Most advanced agentic coding model for complex software engineering | 'gpt-5.2-codex'
| 'gpt-5-codex' // Purpose-built for Codex CLI with versatile tool use | 'gpt-5.1-codex-max'
| 'gpt-5-codex-mini' // Faster workflows optimized for low-latency code Q&A and editing | 'gpt-5.1-codex-mini'
| 'codex-1' // Version of o3 optimized for software engineering | 'gpt-5.2'
| 'codex-mini-latest' // Version of o4-mini for Codex, optimized for faster workflows | 'gpt-5.1';
| 'gpt-5'; // GPT-5 base flagship model
/** /**
* Codex model metadata * Codex model metadata
@@ -32,40 +31,33 @@ export const CODEX_MODEL_CONFIG_MAP: Record<CodexModelId, CodexModelConfig> = {
label: 'GPT-5.2-Codex', label: 'GPT-5.2-Codex',
description: 'Most advanced agentic coding model for complex software engineering', description: 'Most advanced agentic coding model for complex software engineering',
hasThinking: true, hasThinking: true,
supportsVision: true, // GPT-5 supports vision supportsVision: true,
}, },
'gpt-5-codex': { 'gpt-5.1-codex-max': {
id: 'gpt-5-codex', id: 'gpt-5.1-codex-max',
label: 'GPT-5-Codex', label: 'GPT-5.1-Codex-Max',
description: 'Purpose-built for Codex CLI with versatile tool use', description: 'Optimized for long-horizon, agentic coding tasks in Codex',
hasThinking: true, hasThinking: true,
supportsVision: true, supportsVision: true,
}, },
'gpt-5-codex-mini': { 'gpt-5.1-codex-mini': {
id: 'gpt-5-codex-mini', id: 'gpt-5.1-codex-mini',
label: 'GPT-5-Codex-Mini', label: 'GPT-5.1-Codex-Mini',
description: 'Faster workflows optimized for low-latency code Q&A and editing', description: 'Smaller, more cost-effective version for faster workflows',
hasThinking: false, hasThinking: false,
supportsVision: true, supportsVision: true,
}, },
'codex-1': { 'gpt-5.2': {
id: 'codex-1', id: 'gpt-5.2',
label: 'Codex-1', label: 'GPT-5.2',
description: 'Version of o3 optimized for software engineering', description: 'Best general agentic model for tasks across industries and domains',
hasThinking: true, hasThinking: true,
supportsVision: true, supportsVision: true,
}, },
'codex-mini-latest': { 'gpt-5.1': {
id: 'codex-mini-latest', id: 'gpt-5.1',
label: 'Codex-Mini-Latest', label: 'GPT-5.1',
description: 'Version of o4-mini for Codex, optimized for faster workflows', description: 'Great for coding and agentic tasks across domains',
hasThinking: false,
supportsVision: true,
},
'gpt-5': {
id: 'gpt-5',
label: 'GPT-5',
description: 'GPT-5 base flagship model',
hasThinking: true, hasThinking: true,
supportsVision: true, supportsVision: true,
}, },

View File

@@ -74,47 +74,39 @@ export const CODEX_MODELS: (ModelOption & { hasReasoning?: boolean })[] = [
{ {
id: CODEX_MODEL_MAP.gpt52Codex, id: CODEX_MODEL_MAP.gpt52Codex,
label: 'GPT-5.2-Codex', 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', badge: 'Premium',
provider: 'codex', provider: 'codex',
hasReasoning: true, hasReasoning: true,
}, },
{ {
id: CODEX_MODEL_MAP.gpt5Codex, id: CODEX_MODEL_MAP.gpt51CodexMax,
label: 'GPT-5-Codex', label: 'GPT-5.1-Codex-Max',
description: 'Purpose-built for Codex CLI (default for CLI users).', description: 'Optimized for long-horizon, agentic coding tasks in Codex.',
badge: 'Balanced', badge: 'Premium',
provider: 'codex', provider: 'codex',
hasReasoning: true, hasReasoning: true,
}, },
{ {
id: CODEX_MODEL_MAP.gpt5CodexMini, id: CODEX_MODEL_MAP.gpt51CodexMini,
label: 'GPT-5-Codex-Mini', label: 'GPT-5.1-Codex-Mini',
description: 'Faster workflows for code Q&A and editing.', description: 'Smaller, more cost-effective version for faster workflows.',
badge: 'Speed', badge: 'Speed',
provider: 'codex', provider: 'codex',
hasReasoning: false, hasReasoning: false,
}, },
{ {
id: CODEX_MODEL_MAP.codex1, id: CODEX_MODEL_MAP.gpt52,
label: 'Codex-1', label: 'GPT-5.2',
description: 'o3-based model optimized for software engineering.', description: 'Best general agentic model for tasks across industries and domains.',
badge: 'Premium', badge: 'Balanced',
provider: 'codex', provider: 'codex',
hasReasoning: true, hasReasoning: true,
}, },
{ {
id: CODEX_MODEL_MAP.codexMiniLatest, id: CODEX_MODEL_MAP.gpt51,
label: 'Codex-Mini-Latest', label: 'GPT-5.1',
description: 'o4-mini-based model for faster workflows.', description: 'Great for coding and agentic tasks across domains.',
badge: 'Balanced',
provider: 'codex',
hasReasoning: false,
},
{
id: CODEX_MODEL_MAP.gpt5,
label: 'GPT-5',
description: 'GPT-5 base flagship model.',
badge: 'Balanced', badge: 'Balanced',
provider: 'codex', provider: 'codex',
hasReasoning: true, hasReasoning: true,
@@ -203,11 +195,10 @@ export function getModelDisplayName(model: ModelAlias | string): string {
sonnet: 'Claude Sonnet', sonnet: 'Claude Sonnet',
opus: 'Claude Opus', opus: 'Claude Opus',
[CODEX_MODEL_MAP.gpt52Codex]: 'GPT-5.2-Codex', [CODEX_MODEL_MAP.gpt52Codex]: 'GPT-5.2-Codex',
[CODEX_MODEL_MAP.gpt5Codex]: 'GPT-5-Codex', [CODEX_MODEL_MAP.gpt51CodexMax]: 'GPT-5.1-Codex-Max',
[CODEX_MODEL_MAP.gpt5CodexMini]: 'GPT-5-Codex-Mini', [CODEX_MODEL_MAP.gpt51CodexMini]: 'GPT-5.1-Codex-Mini',
[CODEX_MODEL_MAP.codex1]: 'Codex-1', [CODEX_MODEL_MAP.gpt52]: 'GPT-5.2',
[CODEX_MODEL_MAP.codexMiniLatest]: 'Codex-Mini-Latest', [CODEX_MODEL_MAP.gpt51]: 'GPT-5.1',
[CODEX_MODEL_MAP.gpt5]: 'GPT-5',
}; };
return displayNames[model] || model; return displayNames[model] || model;
} }

View File

@@ -13,21 +13,19 @@ export const CLAUDE_MODEL_MAP: Record<string, string> = {
* See: https://developers.openai.com/codex/models/ * See: https://developers.openai.com/codex/models/
*/ */
export const CODEX_MODEL_MAP = { 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) */ /** Most advanced agentic coding model for complex software engineering (default for ChatGPT users) */
gpt52Codex: 'gpt-5.2-codex', gpt52Codex: 'gpt-5.2-codex',
/** Purpose-built for Codex CLI with versatile tool use (default for CLI users) */ /** Optimized for long-horizon, agentic coding tasks in Codex */
gpt5Codex: 'gpt-5-codex', gpt51CodexMax: 'gpt-5.1-codex-max',
/** Faster workflows optimized for low-latency code Q&A and editing */ /** Smaller, more cost-effective version for faster workflows */
gpt5CodexMini: 'gpt-5-codex-mini', gpt51CodexMini: 'gpt-5.1-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',
// Base GPT-5 model (also available in Codex) // General-purpose GPT models (also available in Codex)
/** GPT-5 base flagship model */ /** Best general agentic model for tasks across industries and domains */
gpt5: 'gpt-5', gpt52: 'gpt-5.2',
/** Great for coding and agentic tasks across domains */
gpt51: 'gpt-5.1',
} as const; } as const;
export const CODEX_MODEL_IDS = Object.values(CODEX_MODEL_MAP); 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([ export const REASONING_CAPABLE_MODELS = new Set([
CODEX_MODEL_MAP.gpt52Codex, CODEX_MODEL_MAP.gpt52Codex,
CODEX_MODEL_MAP.gpt5Codex, CODEX_MODEL_MAP.gpt51CodexMax,
CODEX_MODEL_MAP.gpt5, CODEX_MODEL_MAP.gpt52,
CODEX_MODEL_MAP.codex1, // o3-based model CODEX_MODEL_MAP.gpt51,
]); ]);
/** /**