namespace ClaudeDo.Worker.Runner; public sealed record RunResult { public required int ExitCode { get; init; } public string? ResultMarkdown { get; init; } public string? ErrorMarkdown { get; init; } public string? StructuredOutputJson { get; init; } public string? SessionId { get; init; } public int TurnCount { get; init; } public int TokensIn { get; init; } public int TokensOut { get; init; } public IReadOnlyList Blocks { get; init; } = Array.Empty(); public string? ResultSubtype { get; init; } public string? TerminalReason { get; init; } public IReadOnlyList Errors { get; init; } = Array.Empty(); public bool IsSuccess => ExitCode == 0 && ResultMarkdown is not null; }