resolveModel function
Resolve a model name (alias or ID) to a ModelConfig.
Implementation
ModelConfig? resolveModel(String name) {
final lower = name.toLowerCase().trim();
// Direct lookup
if (modelRegistry.containsKey(lower)) return modelRegistry[lower];
// Alias lookup
final aliasId = modelAliases[lower];
if (aliasId != null) return modelRegistry[aliasId];
// Partial match (e.g., "sonnet-4-6" → "claude-sonnet-4-6")
for (final entry in modelRegistry.entries) {
if (entry.key.contains(lower)) return entry.value;
if (entry.value.displayName.toLowerCase().contains(lower)) {
return entry.value;
}
}
// Provider-specific ID match
for (final entry in modelRegistry.entries) {
for (final providerId in entry.value.providerIds.values) {
if (providerId.contains(lower)) return entry.value;
}
}
return null;
}