getProviderForUsage method

Future<LLMProvider?> getProviderForUsage(
  1. LLMUsageType usageType
)

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