export const MODEL_ALIASES = [ 'sonnet', 'opus', 'haiku', 'best', 'sonnet[1m]', 'opus[1m]', 'opusplan', ] as const export type ModelAlias = (typeof MODEL_ALIASES)[number] export function isModelAlias(modelInput: string): modelInput is ModelAlias { return MODEL_ALIASES.includes(modelInput as ModelAlias) } /** * Bare model family aliases that act as wildcards in the availableModels allowlist. * When "opus" is in the allowlist, ANY opus model is allowed (opus 4.5, 4.6, etc.). * When a specific model ID is in the allowlist, only that exact version is allowed. */ export const MODEL_FAMILY_ALIASES = ['sonnet', 'opus', 'haiku'] as const export function isModelFamilyAlias(model: string): boolean { return (MODEL_FAMILY_ALIASES as readonly string[]).includes(model) }