namespace ClaudeDo.Worker.Runner;
/// The list handler's phase parameter, threaded from handoff_list_handler (External)
/// through HubBroadcaster/WorkerHub down to InteractiveLaunchSpecService, which picks the next
/// session's system prompt and model from it. Validated centrally here so an unknown value is
/// rejected outright instead of silently falling back to a default.
public static class MergeHelperPhase
{
public const string Wait = "wait";
public const string Merge = "merge";
public const string WaitFinal = "wait_final";
public const string MergeFinal = "merge_final";
public static readonly IReadOnlyList All = new[] { Wait, Merge, WaitFinal, MergeFinal };
public static void Validate(string phase)
{
if (!All.Contains(phase, StringComparer.Ordinal))
throw new ArgumentException($"Unknown list-handler phase '{phase}'. Allowed: {string.Join(", ", All)}.");
}
}