using Sdt.Config; using Sdt.Runner; namespace Sdt.Core.Debug; public sealed record DebugRunResult( bool Success, ExecutionStopReason? StopReason, string Message, DebugProfileDefinition Profile, RunResult? RunResult, IReadOnlyList OutputLines, IReadOnlyList Probes); public sealed record DiagnosticsBundleResult( bool Success, string BundleDirectory, string? ZipPath, string Message); public sealed record DiagnosticsBundleRequest( string Category, string ProjectRoot, string SummaryMessage, IReadOnlyList OutputLines, IReadOnlyList WorkflowSteps, IReadOnlyList Probes, DebugDiagnosticsOptions DiagnosticsOptions, DevToolConfig Config, ExecutionStopReason? StopReason = null, RunResult? DebugRun = null, DebugProfileDefinition? DebugProfile = null); public interface IDebugProfileRunner { Task RunAsync( DebugProfileDefinition profile, DevToolConfig config, string projectRoot, bool verbose, Func> confirmInstallAsync, Action onOutput, Action? onEvent = null, CancellationToken cancellationToken = default); } public interface IDiagnosticsBundleService { Task WriteBundleAsync( DiagnosticsBundleRequest request, CancellationToken cancellationToken = default); }