< Summary

Information
Class: Elsa.AI.Host.Tools.Workflows.WorkflowValidateDraftTool
Assembly: Elsa.AI.Host
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Host/Tools/Workflows/WorkflowValidateDraftTool.cs
Line coverage
50%
Covered lines: 9
Uncovered lines: 9
Coverable lines: 18
Total lines: 30
Line coverage: 50%
Branch coverage
0%
Covered branches: 0
Total branches: 6
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%4260%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Host/Tools/Workflows/WorkflowValidateDraftTool.cs

#LineLine coverage
 1using Elsa.AI.Abstractions.Models;
 2using Elsa.AI.Host.Services;
 3
 4namespace Elsa.AI.Host.Tools.Workflows;
 5
 456public class WorkflowValidateDraftTool(WorkflowDraftValidationService validationService, AIGroundingResultFormatter form
 7{
 908    public override AIToolDefinition Definition { get; } = ReadOnlyDefinition(
 459        "workflows.validateDraft",
 4510        "Validate workflow draft",
 4511        "Validate a workflow draft against installed activity descriptors and baseline metadata.",
 4512        GroundingToolSchemas.WithProperties(
 4513            ("draft", GroundingToolSchemas.Object("Workflow draft JSON payload.")),
 4514            ("baselineVersionId", GroundingToolSchemas.String("Baseline workflow version ID.")),
 4515            ("expectedBaselineVersionId", GroundingToolSchemas.String("Expected current baseline version ID."))));
 16
 17    public override ValueTask<AIToolResult> ExecuteAsync(AIToolExecutionContext context, CancellationToken cancellationT
 18    {
 019        var draft = GetObject(context.Arguments, "draft") ?? [];
 020        var diagnostics = validationService.Validate(draft, GetString(context.Arguments, "baselineVersionId"), GetString
 021        var hasErrors = diagnostics.Any(x => x.Severity == AIValidationSeverity.Error);
 022        var result = formatter.CreateResult(
 023            hasErrors ? "Workflow draft validation failed." : "Workflow draft validation completed.",
 024            diagnostics.Select(AIGroundingJson.ToJsonObject),
 025            diagnostics.Count,
 026            ["ActivityRegistry"]);
 27
 028        return ValueTask.FromResult(result with { Status = hasErrors ? AIToolInvocationStatus.Failed : AIToolInvocationS
 29    }
 30}