using Luna.Agents.Abstractions; using Luna.Agents.Core; using Luna.Agents.Librarian; using Luna.Configuration.Extensions; using Microsoft.Extensions.DependencyInjection; namespace Luna.Agents.Extensions; public static class ServiceCollectionExtensions { extension(IServiceCollection services) { public IServiceCollection AddAgents() { services.AddAgent(); services.AddAgent(); return services; } public IServiceCollection AddAgent(string? name = null) where TAgent : class, IAgent { name ??= TAgent.Name; services.AddAgentOptions(name); services.AddKeyedTransient(name); return services; } } }