getStats method

RegistryStats getStats()

Get registry statistics

Implementation

RegistryStats getStats() {
  final allCapabilities = _capabilities.values.expand((caps) => caps).toSet();

  final capabilityCount = <LLMCapability, int>{};
  for (final capability in allCapabilities) {
    capabilityCount[capability] = _capabilities.values
        .where((caps) => caps.contains(capability))
        .length;
  }

  return RegistryStats(
    totalProviders: _providers.length,
    totalCapabilities: allCapabilities.length,
    capabilityDistribution: capabilityCount,
    averageCapabilitiesPerProvider: _providers.isEmpty
        ? 0.0
        : _capabilities.values
                .map((caps) => caps.length)
                .reduce((a, b) => a + b) /
            _providers.length,
  );
}