< Summary

Information
Class: NexusLabs.Needlr.AgentFramework.Workflows.SyringeGraphWorkflowExtensions
Assembly: NexusLabs.Needlr.AgentFramework.Workflows
File(s): /home/runner/work/needlr/needlr/src/NexusLabs.Needlr.AgentFramework.Workflows/SyringeGraphWorkflowExtensions.cs
Line coverage
100%
Covered lines: 2
Uncovered lines: 0
Coverable lines: 2
Total lines: 32
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
UsingGraphWorkflows(...)100%11100%

File(s)

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

#LineLine coverage
 1using NexusLabs.Needlr.Injection;
 2
 3namespace NexusLabs.Needlr.AgentFramework.Workflows;
 4
 5/// <summary>
 6/// Syringe extension to register graph workflow services alongside the
 7/// agent framework. Call after <c>UsingAgentFramework()</c> in the syringe
 8/// fluent chain.
 9/// </summary>
 10/// <example>
 11/// <code>
 12/// var provider = new Syringe()
 13///     .UsingReflection()
 14///     .UsingAgentFramework(af => af.Configure(...))
 15///     .UsingGraphWorkflows()
 16///     .BuildServiceProvider(config);
 17///
 18/// var runner = provider.GetRequiredService&lt;IGraphWorkflowRunner&gt;();
 19/// var result = await runner.RunGraphAsync("my-graph", "input");
 20/// </code>
 21/// </example>
 22public static class SyringeGraphWorkflowExtensions
 23{
 24    /// <summary>
 25    /// Registers <see cref="IGraphWorkflowRunner"/> and its dependencies.
 26    /// Must be called after <c>UsingAgentFramework()</c>.
 27    /// </summary>
 28    public static ConfiguredSyringe UsingGraphWorkflows(
 29        this ConfiguredSyringe syringe) =>
 3630        syringe.UsingPostPluginRegistrationCallback(
 7231            services => services.AddGraphWorkflowRunner());
 32}