withCapabilityProvider<T, R> method

Future<R?> withCapabilityProvider<T, R>(
  1. LLMCapability capability,
  2. Future<R> action(
    1. T provider
    )
)

Execute action with capability-specific provider

Implementation

Future<R?> withCapabilityProvider<T, R>(
  LLMCapability capability,
  Future<R> Function(T provider) action,
) async {
  final providerIds = findProvidersWithCapability(capability);

  for (final providerId in providerIds) {
    final provider = _providers[providerId];
    if (provider is T) {
      return await action(provider);
    }
  }

  return null;
}