< Summary

Information
Class: NexusLabs.Needlr.AgentFramework.Workflows.GraphWorkflowServiceExtensions
Assembly: NexusLabs.Needlr.AgentFramework.Workflows
File(s): /home/runner/work/needlr/needlr/src/NexusLabs.Needlr.AgentFramework.Workflows/GraphWorkflowServiceExtensions.cs
Line coverage
100%
Covered lines: 11
Uncovered lines: 0
Coverable lines: 11
Total lines: 33
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddGraphWorkflowRunner(...)100%11100%

File(s)

/home/runner/work/needlr/needlr/src/NexusLabs.Needlr.AgentFramework.Workflows/GraphWorkflowServiceExtensions.cs

#LineLine coverage
 1using Microsoft.Extensions.DependencyInjection;
 2using Microsoft.Extensions.DependencyInjection.Extensions;
 3
 4using NexusLabs.Needlr.AgentFramework;
 5using NexusLabs.Needlr.AgentFramework.Diagnostics;
 6using NexusLabs.Needlr.AgentFramework.Iterative;
 7
 8namespace NexusLabs.Needlr.AgentFramework.Workflows;
 9
 10/// <summary>
 11/// Extension methods for registering graph workflow services in the DI container.
 12/// </summary>
 13public static class GraphWorkflowServiceExtensions
 14{
 15    /// <summary>
 16    /// Registers <see cref="IGraphWorkflowRunner"/> and its internal dependencies.
 17    /// Call after <c>UsingAgentFramework()</c>.
 18    /// </summary>
 19    public static IServiceCollection AddGraphWorkflowRunner(this IServiceCollection services)
 20    {
 5221        services.TryAddSingleton<GraphTopologyProvider>();
 5222        services.TryAddSingleton<GraphEdgeRouter>();
 5223        services.TryAddSingleton<IGraphWorkflowRunner>(sp =>
 9224            new GraphWorkflowRunner(
 9225                sp.GetRequiredService<IWorkflowFactory>(),
 9226                sp.GetRequiredService<IAgentFactory>(),
 9227                sp.GetRequiredService<IChatClientAccessor>(),
 9228                sp.GetRequiredService<GraphTopologyProvider>(),
 9229                sp.GetRequiredService<GraphEdgeRouter>(),
 9230                sp.GetService<IAgentDiagnosticsAccessor>()));
 5231        return services;
 32    }
 33}