using StellaOps.Scheduler.Models; namespace StellaOps.Scheduler.Plugin; /// /// Callback interface for plugins to report progress and update Run state. /// public interface IRunProgressReporter { /// /// Reports progress as completed/total with an optional message. /// Task ReportProgressAsync(int completed, int total, string? message = null, CancellationToken ct = default); /// /// Transitions the Run to a new state, optionally recording an error. /// Task TransitionStateAsync(RunState newState, string? error = null, CancellationToken ct = default); /// /// Appends a log entry to the Run's execution log. /// Task AppendLogAsync(string message, string level = "info", CancellationToken ct = default); }