getProviderForUsage method
Gets the appropriate LLM provider based on usage type.
usageType - The type of task (planning or coding).
For LLMUsageType.planning: Uses planningProvider from config, falls back to preferredProvider or Gemini.
For LLMUsageType.coding: Uses codingProvider from config, falls back to preferredProvider or Gemini.
Returns null if no provider is configured with valid API keys.
Implementation
Future<LLMProvider?> getProviderForUsage(LLMUsageType usageType) async {
final config = await _configService.loadConfig();
String? providerName;
switch (usageType) {
case LLMUsageType.planning:
providerName =
config.planningProvider ?? config.preferredProvider ?? 'gemini';
break;
case LLMUsageType.coding:
providerName =
config.codingProvider ?? config.preferredProvider ?? 'gemini';
break;
}
return getProvider(providerName);
}