using ConsoleLogStreaming.Core.DependencyInjection; using ConsoleLogStreaming.Core.Options; using Elsa.Diagnostics.ConsoleLogs.RealTime; using Elsa.Diagnostics.ConsoleLogs.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; namespace Elsa.Diagnostics.ConsoleLogs.Extensions; public static class HostServiceCollectionExtensions { /// /// Registers the host-level console capture pipeline. /// public static IServiceCollection AddConsoleLogsHost(this IServiceCollection services, Action? configure = null) { services.AddConsoleLogContextServices(); services.AddConsoleLogStreaming(options => { ElsaConsoleLogOptions.ConfigureDefaults(options); configure?.Invoke(options); }); services.AddSignalR(); services.DecorateConsoleLogProvider(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddEnumerable(ServiceDescriptor.Singleton()); return services; } }