namespace Kompas.Mcp.Core.Startup;

/// <summary>Аргументы командной строки хоста, разбираемые до поднятия MCP-сервера.</summary>
/// <remarks>
/// Версия печатается из <c>AssemblyVersion</c> (три компонента) и сверяется командой
/// <c>/kompas:doctor</c> со строкой из <c>server.lock.json</c> посимвольно. <c>AssemblyVersion</c>
/// хранит только числа, поэтому тег вида <c>v1.2.3-rc.1</c> собрался бы молча, а <c>--version</c>
/// напечатал бы <c>1.2.3</c> — сверка дала бы ложное расхождение. Предрелизные теги вводить
/// нельзя, не пересмотрев этот вывод.
/// </remarks>
public static class CliArguments
{
    /// <summary>Запрошена ли печать версии (<c>--version</c> / <c>-v</c>).</summary>
    public static bool IsVersionRequest(string[] args)
        => args.Any(a => string.Equals(a, "--version", StringComparison.Ordinal)
                      || string.Equals(a, "-v", StringComparison.Ordinal));
}
