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:16:34 +09:00
|
|
|
const CLAUDE_CODE_ALIAS_MAP = new Map<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 12:06:57 +09:00
|
|
|
|
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
|
|
|
|
|
|
2026-03-06 12:16:34 +09:00
|
|
|
const aliasResult = CLAUDE_CODE_ALIAS_MAP.get(trimmed.toLowerCase())
|
2026-03-06 12:06:57 +09:00
|
|
|
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}`
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-06 12:16:34 +09:00
|
|
|
return undefined
|
2026-03-06 11:56:03 +09:00
|
|
|
}
|