(shortName: string)
| 152 | * Maps internal variants to their public names based on model family. |
| 153 | */ |
| 154 | export function sanitizeModelName(shortName: string): string { |
| 155 | // Map internal variants to public equivalents based on model family |
| 156 | if (shortName.includes('opus-4-6')) return 'claude-opus-4-6' |
| 157 | if (shortName.includes('opus-4-5')) return 'claude-opus-4-5' |
| 158 | if (shortName.includes('opus-4-1')) return 'claude-opus-4-1' |
| 159 | if (shortName.includes('opus-4')) return 'claude-opus-4' |
| 160 | if (shortName.includes('sonnet-4-6')) return 'claude-sonnet-4-6' |
| 161 | if (shortName.includes('sonnet-4-5')) return 'claude-sonnet-4-5' |
| 162 | if (shortName.includes('sonnet-4')) return 'claude-sonnet-4' |
| 163 | if (shortName.includes('sonnet-3-7')) return 'claude-sonnet-3-7' |
| 164 | if (shortName.includes('haiku-4-5')) return 'claude-haiku-4-5' |
| 165 | if (shortName.includes('haiku-3-5')) return 'claude-haiku-3-5' |
| 166 | // Unknown models get a generic name |
| 167 | return 'claude' |
| 168 | } |
| 169 | |
| 170 | /** |
| 171 | * Attribution state for tracking Claude's contributions to files. |
no outgoing calls
no test coverage detected