2026-03-06 11:56:03 +09:00
|
|
|
import { normalizeModelID } from "../../shared/model-normalization"
|
|
|
|
|
|
2026-03-06 12:00:54 +09:00
|
|
|
const ANTHROPIC_PREFIX = "anthropic/"
|
2026-03-06 11:56:03 +09:00
|
|
|
|
2026-03-06 12:06:57 +09:00
|
|
|
const CLAUDE_CODE_ALIAS_MAP: Record<string, string> = {
|
|
|
|
|
sonnet: `${ANTHROPIC_PREFIX}claude-sonnet-4-6`,
|
|
|
|
|
opus: `${ANTHROPIC_PREFIX}claude-opus-4-6`,
|
|
|
|
|
haiku: `${ANTHROPIC_PREFIX}claude-haiku-4-5`,
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-06 11:56:03 +09:00
|
|
|
export function mapClaudeModelToOpenCode(model: string | undefined): string | undefined {
|
|
|
|
|
if (!model) return undefined
|
|
|
|
|
|
|
|
|
|
const trimmed = model.trim()
|
|
|
|
|
if (trimmed.length === 0) return undefined
|
|
|
|
|
|
2026-03-06 12:06:57 +09:00
|
|
|
if (trimmed === "inherit") return undefined
|
|
|
|
|
|
|
|
|
|
const aliasResult = CLAUDE_CODE_ALIAS_MAP[trimmed.toLowerCase()]
|
|
|
|
|
if (aliasResult) return aliasResult
|
|
|
|
|
|
|
|
|
|
if (trimmed.includes("/")) return trimmed
|
2026-03-06 12:00:54 +09:00
|
|
|
|
|
|
|
|
const normalized = normalizeModelID(trimmed)
|
|
|
|
|
|
|
|
|
|
if (normalized.startsWith("claude-")) {
|
|
|
|
|
return `${ANTHROPIC_PREFIX}${normalized}`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return normalized
|
2026-03-06 11:56:03 +09:00
|
|
|
}
|