< Summary

Information
Class: Elsa.AI.Host.Tools.Runtime.WorkflowInstanceTool
Assembly: Elsa.AI.Host
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Host/Tools/Runtime/WorkflowInstanceTool.cs
Line coverage
47%
Covered lines: 8
Uncovered lines: 9
Coverable lines: 17
Total lines: 30
Line coverage: 47%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_Definition()100%11100%
ExecuteAsync()0%2040%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Host/Tools/Runtime/WorkflowInstanceTool.cs

#LineLine coverage
 1using Elsa.AI.Abstractions.Models;
 2using Elsa.AI.Host.Services;
 3
 4namespace Elsa.AI.Host.Tools.Runtime;
 5
 456public class WorkflowInstanceTool(IServiceProvider serviceProvider, RuntimeGroundingMapper mapper, AIGroundingResultForm
 7{
 908    public override AIToolDefinition Definition { get; } = ReadOnlyDefinition(
 459        "instances.get",
 4510        "Get workflow instance",
 4511        "Get a redacted workflow instance summary and bounded state evidence.",
 4512        GroundingToolSchemas.WithProperties(
 4513            ("instanceId", GroundingToolSchemas.String("Workflow instance ID.")),
 4514            ("id", GroundingToolSchemas.String("Workflow instance ID."))));
 15
 16    public override async ValueTask<AIToolResult> ExecuteAsync(AIToolExecutionContext context, CancellationToken cancell
 17    {
 018        if (WorkflowInstanceStore == null)
 019            return InstanceStoreUnavailable();
 20
 021        var instance = await FindAuthorizedInstanceAsync(context.Arguments, context.TenantId, cancellationToken);
 022        if (instance == null)
 023            return new AIToolResult { Status = AIToolInvocationStatus.Failed, Error = "Workflow instance was not found."
 24
 025        var item = AIGroundingJson.ToJsonObject(mapper.Map(instance));
 026        item["state"] = mapper.MapState(instance);
 27
 028        return Formatter.CreateResult($"Resolved workflow instance {instance.Id}.", [item], 1, ["WorkflowInstanceStore"]
 029    }
 30}