using CliFx.Attributes; namespace AaLog.Cli.Commands { /// Shared option set inherited by every read command. Kept as an abstract base so /// CliFx still treats each subclass as a distinct command, but option declarations /// only live in one place. public abstract class ReadCommandBase { [CommandOption("log-dir", Description = "Override the log directory. Defaults to C:\\ProgramData\\ArchestrA\\LogFiles.")] public string LogDirectory { get; init; } [CommandOption("component", Description = "Substring (or regex with --regex) to match against the Component field.")] public string Component { get; init; } [CommandOption("level", Description = "Substring (or regex with --regex) to match against the Level / LogFlag field (Info, Warning, Error, ...).")] public string Level { get; init; } [CommandOption("message", Description = "Substring (or regex with --regex) to match against the Message body.")] public string Message { get; init; } [CommandOption("regex", Description = "Treat --component / --level / --message as regular expressions instead of substrings.")] public bool UseRegex { get; init; } [CommandOption("llm-json", Description = "Emit a stable JSON envelope { query, count, records } instead of human-readable lines.")] public bool LlmJson { get; init; } } }