< Summary

Information
Class: Elsa.Extensions.ServiceCollectionExtensions
Assembly: Elsa.AI.Host
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Host/Extensions/ServiceCollectionExtensions.cs
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 38
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddAIHostServices(...)100%22100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Host/Extensions/ServiceCollectionExtensions.cs

#LineLine coverage
 1using Elsa.AI.Abstractions.Contracts;
 2using Elsa.AI.Host.Context;
 3using Elsa.AI.Host.Options;
 4using Elsa.AI.Host.Services;
 5using Elsa.AI.Host.Streaming;
 6using Microsoft.Extensions.DependencyInjection;
 7using Microsoft.Extensions.DependencyInjection.Extensions;
 8using Microsoft.Extensions.Hosting;
 9
 10// ReSharper disable once CheckNamespace
 11namespace Elsa.Extensions;
 12
 13public static class ServiceCollectionExtensions
 14{
 15    public static IServiceCollection AddAIHostServices(this IServiceCollection services, Action<AIHostOptions>? configur
 16    {
 5117        if (configureOptions != null)
 1218            services.Configure(configureOptions);
 19
 5120        services.AddLogging();
 5121        services.AddOptions<AIHostOptions>();
 5122        services.TryAddSingleton<InMemoryAIConversationStore>();
 9023        services.TryAddSingleton<IAIConversationStore>(sp => sp.GetRequiredService<InMemoryAIConversationStore>());
 5124        services.TryAddEnumerable(ServiceDescriptor.Singleton<IAIContextProvider, WorkflowDefinitionContextProvider>());
 5125        services.TryAddEnumerable(ServiceDescriptor.Singleton<IAIContextProvider, WorkflowInstanceContextProvider>());
 5126        services.TryAddSingleton<AIContextResolver>();
 5127        services.TryAddEnumerable(ServiceDescriptor.Singleton<IHostedService, AIContextProviderValidationHostedService>(
 5128        services.TryAddSingleton<AIToolEnablementService>();
 5129        services.TryAddSingleton<IAIToolRegistry, AIToolRegistry>();
 5130        services.TryAddScoped<IAIOrchestrator, AIOrchestrator>();
 5131        services.TryAddSingleton<AIStreamSessionManager>();
 5132        services.TryAddSingleton<AIStreamEventMapper>();
 5133        services.TryAddSingleton<AIAuditSink>();
 9134        services.TryAddSingleton<IAIAuditSink>(sp => sp.GetRequiredService<AIAuditSink>());
 35
 5136        return services;
 37    }
 38}