diff --git a/apps/web/src/lib/ai/core/ai-providers-config.ts b/apps/web/src/lib/ai/core/ai-providers-config.ts index d59b73c5ce..c6841eeb50 100644 --- a/apps/web/src/lib/ai/core/ai-providers-config.ts +++ b/apps/web/src/lib/ai/core/ai-providers-config.ts @@ -22,6 +22,10 @@ export const AI_PROVIDERS = { 'anthropic/claude-3-haiku': 'Claude 3 Haiku', // OpenAI Models (2025) + 'openai/gpt-5.2': 'GPT-5.2', + 'openai/gpt-5.2-codex': 'GPT-5.2 Codex', + 'openai/gpt-5.2-mini': 'GPT-5.2 Mini', + 'openai/gpt-5.2-nano': 'GPT-5.2 Nano', 'openai/gpt-5.1': 'GPT-5.1', 'openai/gpt-5.1-codex': 'GPT-5.1 Codex', 'openai/gpt-5.1-codex-mini': 'GPT-5.1 Codex Mini', @@ -160,6 +164,12 @@ export const AI_PROVIDERS = { openai: { name: 'OpenAI', models: { + // GPT-5.2 Models (2025) + 'gpt-5.2': 'GPT-5.2', + 'gpt-5.2-codex': 'GPT-5.2 Codex', + 'gpt-5.2-mini': 'GPT-5.2 Mini', + 'gpt-5.2-nano': 'GPT-5.2 Nano', + // GPT-5.1 Models (2025) 'gpt-5.1': 'GPT-5.1', 'gpt-5.1-codex': 'GPT-5.1 Codex', diff --git a/apps/web/src/lib/ai/core/model-capabilities.ts b/apps/web/src/lib/ai/core/model-capabilities.ts index 5b1eb4b2e8..e2c2878622 100644 --- a/apps/web/src/lib/ai/core/model-capabilities.ts +++ b/apps/web/src/lib/ai/core/model-capabilities.ts @@ -12,6 +12,23 @@ const capabilityLogger = loggers.ai.child({ module: 'model-capabilities' }); * Includes models that can process images, PDFs with images, etc. */ const VISION_CAPABLE_MODELS: Record = { + // OpenAI GPT-5.2 Models (all have vision) + 'gpt-5.2': true, + 'gpt-5.2-codex': true, + 'gpt-5.2-mini': true, + 'gpt-5.2-nano': true, + 'openai/gpt-5.2': true, + 'openai/gpt-5.2-codex': true, + 'openai/gpt-5.2-mini': true, + 'openai/gpt-5.2-nano': true, + + // OpenAI GPT-5.1 Models (all have vision) + 'gpt-5.1': true, + 'gpt-5.1-codex': true, + 'openai/gpt-5.1': true, + 'openai/gpt-5.1-codex': true, + 'openai/gpt-5.1-codex-mini': true, + // OpenAI GPT-5 Models (all have vision) 'gpt-5': true, 'gpt-5-mini': true, diff --git a/packages/lib/src/monitoring/ai-context-calculator.ts b/packages/lib/src/monitoring/ai-context-calculator.ts index 1ab5df399d..e843c39ac3 100644 --- a/packages/lib/src/monitoring/ai-context-calculator.ts +++ b/packages/lib/src/monitoring/ai-context-calculator.ts @@ -139,6 +139,18 @@ export function getContextWindowSize(model: string, provider?: string): number { // OpenAI models if (providerLower === 'openai' || modelLower.includes('gpt')) { + // GPT-5.2 models (400k/256k context) + if (modelLower.includes('gpt-5.2')) { + if (modelLower.includes('mini') || modelLower.includes('nano')) { + return 256_000; + } + return 400_000; + } + // GPT-5.1 models (400k context) + if (modelLower.includes('gpt-5.1')) { + return 400_000; + } + // GPT-5.0 models (272k/128k context) if (modelLower.includes('gpt-5')) { if (modelLower.includes('mini') || modelLower.includes('nano')) { return 128_000; diff --git a/packages/lib/src/monitoring/ai-monitoring.ts b/packages/lib/src/monitoring/ai-monitoring.ts index 6512712bda..66c2307cd9 100644 --- a/packages/lib/src/monitoring/ai-monitoring.ts +++ b/packages/lib/src/monitoring/ai-monitoring.ts @@ -21,6 +21,10 @@ export const AI_PRICING = { 'anthropic/claude-opus-4.1': { input: 15.00, output: 75.00 }, // OpenRouter Paid Models - OpenAI + 'openai/gpt-5.2': { input: 1.75, output: 14.00 }, + 'openai/gpt-5.2-codex': { input: 1.75, output: 14.00 }, + 'openai/gpt-5.2-mini': { input: 0.35, output: 2.80 }, + 'openai/gpt-5.2-nano': { input: 0.07, output: 0.56 }, 'openai/gpt-5.1': { input: 10.00, output: 40.00 }, 'openai/gpt-5.1-codex': { input: 10.00, output: 40.00 }, 'openai/gpt-5.1-codex-mini': { input: 5.00, output: 20.00 }, @@ -90,7 +94,11 @@ export const AI_PRICING = { 'gemini-1.5-flash-8b': { input: 0.0375, output: 0.15 }, 'gemini-1.5-pro': { input: 1.25, output: 5.00 }, - // OpenAI Direct Models (platform.openai.com/docs/pricing, Dec 2025) + // OpenAI Direct Models (platform.openai.com/docs/pricing, Jan 2026) + 'gpt-5.2': { input: 1.75, output: 14.00 }, + 'gpt-5.2-codex': { input: 1.75, output: 14.00 }, + 'gpt-5.2-mini': { input: 0.35, output: 2.80 }, + 'gpt-5.2-nano': { input: 0.07, output: 0.56 }, 'gpt-5.1': { input: 10.00, output: 40.00 }, 'gpt-5.1-codex': { input: 10.00, output: 40.00 }, 'gpt-5': { input: 1.25, output: 10.00 }, @@ -189,6 +197,10 @@ export const MODEL_CONTEXT_WINDOWS = { 'anthropic/claude-opus-4.1': 200000, // OpenRouter Models - OpenAI + 'openai/gpt-5.2': 400000, + 'openai/gpt-5.2-codex': 400000, + 'openai/gpt-5.2-mini': 256000, + 'openai/gpt-5.2-nano': 256000, 'openai/gpt-5.1': 400000, 'openai/gpt-5.1-codex': 400000, 'openai/gpt-5.1-codex-mini': 400000, @@ -262,6 +274,10 @@ export const MODEL_CONTEXT_WINDOWS = { 'gemini-1.5-pro': 2000000, // OpenAI Direct Models + 'gpt-5.2': 400000, + 'gpt-5.2-codex': 400000, + 'gpt-5.2-mini': 256000, + 'gpt-5.2-nano': 256000, 'gpt-5.1': 400000, 'gpt-5.1-codex': 400000, 'gpt-5': 272000,