mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-01 20:23:36 +00:00
- 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
146 lines
3.6 KiB
TypeScript
146 lines
3.6 KiB
TypeScript
import type { ModelAlias } from '@/store/app-store';
|
|
import type { ModelProvider, ThinkingLevel, ReasoningEffort } from '@automaker/types';
|
|
import { CURSOR_MODEL_MAP, CODEX_MODEL_MAP } from '@automaker/types';
|
|
import { Brain, Zap, Scale, Cpu, Rocket, Sparkles } from 'lucide-react';
|
|
|
|
export type ModelOption = {
|
|
id: string; // Claude models use ModelAlias, Cursor models use "cursor-{id}"
|
|
label: string;
|
|
description: string;
|
|
badge?: string;
|
|
provider: ModelProvider;
|
|
hasThinking?: boolean;
|
|
};
|
|
|
|
export const CLAUDE_MODELS: ModelOption[] = [
|
|
{
|
|
id: 'haiku',
|
|
label: 'Claude Haiku',
|
|
description: 'Fast and efficient for simple tasks.',
|
|
badge: 'Speed',
|
|
provider: 'claude',
|
|
},
|
|
{
|
|
id: 'sonnet',
|
|
label: 'Claude Sonnet',
|
|
description: 'Balanced performance with strong reasoning.',
|
|
badge: 'Balanced',
|
|
provider: 'claude',
|
|
},
|
|
{
|
|
id: 'opus',
|
|
label: 'Claude Opus',
|
|
description: 'Most capable model for complex work.',
|
|
badge: 'Premium',
|
|
provider: 'claude',
|
|
},
|
|
];
|
|
|
|
/**
|
|
* Cursor models derived from CURSOR_MODEL_MAP
|
|
* ID is prefixed with "cursor-" for ProviderFactory routing
|
|
*/
|
|
export const CURSOR_MODELS: ModelOption[] = Object.entries(CURSOR_MODEL_MAP).map(
|
|
([id, config]) => ({
|
|
id: `cursor-${id}`,
|
|
label: config.label,
|
|
description: config.description,
|
|
provider: 'cursor' as ModelProvider,
|
|
hasThinking: config.hasThinking,
|
|
})
|
|
);
|
|
|
|
/**
|
|
* Codex/OpenAI models
|
|
* Official models from https://developers.openai.com/codex/models/
|
|
*/
|
|
export const CODEX_MODELS: ModelOption[] = [
|
|
{
|
|
id: CODEX_MODEL_MAP.gpt52Codex,
|
|
label: 'GPT-5.2-Codex',
|
|
description: 'Most advanced agentic coding model for complex software engineering.',
|
|
badge: 'Premium',
|
|
provider: 'codex',
|
|
hasThinking: true,
|
|
},
|
|
{
|
|
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.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.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.gpt51,
|
|
label: 'GPT-5.1',
|
|
description: 'Great for coding and agentic tasks across domains.',
|
|
badge: 'Balanced',
|
|
provider: 'codex',
|
|
hasThinking: true,
|
|
},
|
|
];
|
|
|
|
/**
|
|
* All available models (Claude + Cursor + Codex)
|
|
*/
|
|
export const ALL_MODELS: ModelOption[] = [...CLAUDE_MODELS, ...CURSOR_MODELS, ...CODEX_MODELS];
|
|
|
|
export const THINKING_LEVELS: ThinkingLevel[] = ['none', 'low', 'medium', 'high', 'ultrathink'];
|
|
|
|
export const THINKING_LEVEL_LABELS: Record<ThinkingLevel, string> = {
|
|
none: 'None',
|
|
low: 'Low',
|
|
medium: 'Med',
|
|
high: 'High',
|
|
ultrathink: 'Ultra',
|
|
};
|
|
|
|
/**
|
|
* Reasoning effort levels for Codex/OpenAI models
|
|
* All models support reasoning effort levels
|
|
*/
|
|
export const REASONING_EFFORT_LEVELS: ReasoningEffort[] = [
|
|
'none',
|
|
'minimal',
|
|
'low',
|
|
'medium',
|
|
'high',
|
|
'xhigh',
|
|
];
|
|
|
|
export const REASONING_EFFORT_LABELS: Record<ReasoningEffort, string> = {
|
|
none: 'None',
|
|
minimal: 'Min',
|
|
low: 'Low',
|
|
medium: 'Med',
|
|
high: 'High',
|
|
xhigh: 'XHigh',
|
|
};
|
|
|
|
// Profile icon mapping
|
|
export const PROFILE_ICONS: Record<string, React.ComponentType<{ className?: string }>> = {
|
|
Brain,
|
|
Zap,
|
|
Scale,
|
|
Cpu,
|
|
Rocket,
|
|
Sparkles,
|
|
};
|