namespace ClaudeDo.Data.Models; /// /// The reasoning-effort levels the claude CLI accepts for --effort. /// public static class EffortRegistry { public static readonly IReadOnlyList Levels = new[] { "low", "medium", "high", "xhigh", "max" }; public const string DefaultLevel = "high"; /// /// Validate an effort level from external input. Null/blank → null (don't pass --effort). /// Returns the canonical lowercase level; throws on an unknown value. /// public static string? NormalizeLevel(string? effort) { var e = effort?.Trim(); if (string.IsNullOrEmpty(e)) return null; foreach (var level in Levels) if (string.Equals(level, e, StringComparison.OrdinalIgnoreCase)) return level; throw new ArgumentException($"Unknown effort '{effort}'. Allowed: {string.Join(", ", Levels)}."); } }