resolveModel function

ModelConfig? resolveModel(
  1. String name
)

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;
}