//#region src/utils/model-tiers.ts
const TIER_FAST = "fast";
const TIER_STANDARD = "standard";
const TIER_REASONING = "reasoning";
const MODEL_TIER_RULES = [
	["gpt-4o-mini", TIER_FAST],
	["gpt-4.1-mini", TIER_FAST],
	["gpt-4.1-nano", TIER_FAST],
	["gpt-3.5", TIER_FAST],
	["o1-mini", TIER_FAST],
	["o3-mini", TIER_FAST],
	["o4-mini", TIER_FAST],
	["o1-pro", TIER_REASONING],
	["o1-preview", TIER_REASONING],
	["o1", TIER_REASONING],
	["o3", TIER_REASONING],
	["o4", TIER_REASONING],
	["gpt-4o", TIER_STANDARD],
	["gpt-4.1", TIER_STANDARD],
	["gpt-4-turbo", TIER_STANDARD],
	["gpt-4", TIER_STANDARD],
	["claude-3-haiku", TIER_FAST],
	["claude-3.5-haiku", TIER_FAST],
	["claude-haiku", TIER_FAST],
	["claude-3-opus", TIER_STANDARD],
	["claude-opus", TIER_STANDARD],
	["claude-sonnet", TIER_STANDARD],
	["claude-3.5-sonnet", TIER_STANDARD],
	["claude-3-sonnet", TIER_STANDARD],
	["claude-4", TIER_STANDARD],
	["gemini-2.0-flash", TIER_FAST],
	["gemini-1.5-flash", TIER_FAST],
	["gemini-flash", TIER_FAST],
	["gemini-2.0-pro", TIER_STANDARD],
	["gemini-1.5-pro", TIER_STANDARD],
	["gemini-pro", TIER_STANDARD],
	["gemini-ultra", TIER_REASONING],
	["mistral-small", TIER_FAST],
	["mistral-tiny", TIER_FAST],
	["pixtral", TIER_FAST],
	["mistral-large", TIER_STANDARD],
	["mistral-medium", TIER_STANDARD],
	["mixtral", TIER_STANDARD],
	["mistral-nemo", TIER_STANDARD],
	["llama-3.3", TIER_STANDARD],
	["llama-3.2", TIER_FAST],
	["llama-3.1-405b", TIER_STANDARD],
	["llama-3.1-70b", TIER_STANDARD],
	["llama-3.1-8b", TIER_FAST],
	["llama-3-70b", TIER_STANDARD],
	["llama-3-8b", TIER_FAST],
	["llama", TIER_STANDARD],
	["command-r-plus", TIER_STANDARD],
	["command-r", TIER_FAST],
	["command-light", TIER_FAST],
	["command", TIER_STANDARD],
	["deepseek-r1", TIER_REASONING],
	["deepseek-v3", TIER_STANDARD],
	["deepseek-chat", TIER_STANDARD],
	["deepseek-coder", TIER_STANDARD],
	["deepseek", TIER_STANDARD]
];
function inferModelTier(modelName) {
	const lower = modelName.toLowerCase();
	const normalized = lower.includes(":") ? lower.split(":", 2)[1] ?? lower : lower;
	for (const [pattern, tier] of MODEL_TIER_RULES) {
		if (pattern === "o1" || pattern === "o3" || pattern === "o4") continue;
		if (normalized.includes(pattern)) return tier;
	}
	if (normalized.match(/(?:^|[^a-z0-9])(o[134])(?:$|[^a-z0-9])/) != null) return TIER_REASONING;
	return TIER_STANDARD;
}

//#endregion
export { TIER_FAST, TIER_REASONING, TIER_STANDARD, inferModelTier };
//# sourceMappingURL=model-tiers.js.map