executeByCapabilities static method

Future<Map<String, dynamic>> executeByCapabilities(
  1. dynamic provider,
  2. Map<LLMCapability, Future Function()> actions
)

Execute multiple actions based on available capabilities Best for: Feature detection and conditional execution

Implementation

static Future<Map<String, dynamic>> executeByCapabilities(
  dynamic provider,
  Map<LLMCapability, Future<dynamic> Function()> actions,
) async {
  final results = <String, dynamic>{};

  if (provider is! ProviderCapabilities) {
    return results;
  }

  for (final entry in actions.entries) {
    if (provider.supports(entry.key)) {
      try {
        results[entry.key.name] = await entry.value();
      } catch (e) {
        results[entry.key.name] = 'Error: $e';
      }
    } else {
      results[entry.key.name] = 'Not supported';
    }
  }

  return results;
}