< Summary

Information
Class: Intentum.Core.Pipeline.IntentResolutionPipeline
Assembly: Intentum.Core
File(s): /home/runner/work/Intentum/Intentum/src/Intentum.Core/Pipeline/IntentResolutionPipeline.cs
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 48
Line coverage: 100%
Branch coverage
87%
Covered branches: 7
Total branches: 8
Branch coverage: 87.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)83.33%66100%
Infer(...)100%22100%

File(s)

/home/runner/work/Intentum/Intentum/src/Intentum.Core/Pipeline/IntentResolutionPipeline.cs

#LineLine coverage
 1using Intentum.Core.Behavior;
 2using Intentum.Core.Contracts;
 3using Intentum.Core.Intents;
 4
 5namespace Intentum.Core.Pipeline;
 6
 7/// <summary>
 8/// Runs the intent resolution pipeline: signal → vector → inference → confidence.
 9/// Each step is pluggable (ISignalToVector, IIntentInferenceStep, IConfidenceCalculator).
 10/// Implements IIntentModel so it can be used wherever an intent model is required.
 11/// </summary>
 12public sealed class IntentResolutionPipeline : IIntentModel
 13{
 14    private readonly ISignalToVector _signalToVector;
 15    private readonly IIntentInferenceStep _inferenceStep;
 16    private readonly IConfidenceCalculator _confidenceCalculator;
 17
 18    /// <summary>
 19    /// Creates a pipeline with the given steps. Pass null for any step to use the default.
 20    /// </summary>
 8321    public IntentResolutionPipeline(
 8322        IIntentInferenceStep inferenceStep,
 8323        ISignalToVector? signalToVector = null,
 8324        IConfidenceCalculator? confidenceCalculator = null)
 8325    {
 8326        _inferenceStep = inferenceStep ?? throw new ArgumentNullException(nameof(inferenceStep));
 8327        _signalToVector = signalToVector ?? new DefaultSignalToVector();
 8328        _confidenceCalculator = confidenceCalculator ?? new DefaultConfidenceCalculator();
 8329    }
 30
 31    /// <inheritdoc />
 32    public Intent Infer(BehaviorSpace behaviorSpace, BehaviorVector? precomputedVector = null)
 10733    {
 10734        var vector = precomputedVector ?? _signalToVector.ToVector(behaviorSpace);
 35
 10736        var result = _inferenceStep.Infer(behaviorSpace, vector);
 37
 10738        var score = Math.Clamp(result.Score, 0, 1);
 10739        var confidence = _confidenceCalculator.FromScore(score);
 40
 10741        return new Intent(
 10742            Name: result.Name,
 10743            Signals: result.Signals,
 10744            Confidence: confidence,
 10745            Reasoning: result.Reasoning
 10746        );
 10747    }
 48}