61 lines
1.4 KiB
TypeScript
61 lines
1.4 KiB
TypeScript
export type CodexModelOption = {
|
|
value: string;
|
|
label: string;
|
|
description: string;
|
|
};
|
|
|
|
export const DEFAULT_CODEX_MODEL = 'gpt-5.4';
|
|
|
|
export const CODEX_MODEL_OPTIONS: CodexModelOption[] = [
|
|
{
|
|
value: 'gpt-5.4',
|
|
label: 'GPT-5.4',
|
|
description: '기본 균형형 모델',
|
|
},
|
|
{
|
|
value: 'gpt-5.4-mini',
|
|
label: 'GPT-5.4 Mini',
|
|
description: '빠른 응답 중심',
|
|
},
|
|
{
|
|
value: 'gpt-5.3-codex',
|
|
label: 'GPT-5.3 Codex',
|
|
description: '코딩 최적화',
|
|
},
|
|
{
|
|
value: 'gpt-5.3-codex-spark',
|
|
label: 'GPT-5.3 Codex Spark',
|
|
description: '초고속 코딩 응답',
|
|
},
|
|
{
|
|
value: 'gpt-5.2-codex',
|
|
label: 'GPT-5.2 Codex',
|
|
description: '안정적인 코드 작업',
|
|
},
|
|
{
|
|
value: 'gpt-5.1-codex-mini',
|
|
label: 'GPT-5.1 Codex Mini',
|
|
description: '가벼운 작업용',
|
|
},
|
|
{
|
|
value: 'gpt-5.1-codex-max',
|
|
label: 'GPT-5.1 Codex Max',
|
|
description: '깊은 추론 중심',
|
|
},
|
|
];
|
|
|
|
export function normalizeCodexModel(value: string | null | undefined) {
|
|
const normalized = value?.trim() ?? '';
|
|
|
|
if (!normalized) {
|
|
return DEFAULT_CODEX_MODEL;
|
|
}
|
|
|
|
return CODEX_MODEL_OPTIONS.some((option) => option.value === normalized) ? normalized : DEFAULT_CODEX_MODEL;
|
|
}
|
|
|
|
export function resolveCodexModelLabel(value: string | null | undefined) {
|
|
const normalized = normalizeCodexModel(value);
|
|
return CODEX_MODEL_OPTIONS.find((option) => option.value === normalized)?.label ?? normalized;
|
|
}
|