From 86a91cc01aa9e9ff57543a2a404e30cc5dbe6345 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 1 Mar 2026 12:06:22 -0800 Subject: [PATCH] CLI argv: detect root-only version invocation --- src/cli/argv.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/cli/argv.ts b/src/cli/argv.ts index c996fab4b..b8b7cc39a 100644 --- a/src/cli/argv.ts +++ b/src/cli/argv.ts @@ -83,6 +83,42 @@ export function hasRootVersionAlias(argv: string[]): boolean { return hasAlias; } +export function isRootVersionInvocation(argv: string[]): boolean { + const args = argv.slice(2); + let hasVersion = false; + for (let i = 0; i < args.length; i += 1) { + const arg = args[i]; + if (!arg) { + continue; + } + if (arg === FLAG_TERMINATOR) { + break; + } + if (arg === ROOT_VERSION_ALIAS_FLAG || VERSION_FLAGS.has(arg)) { + hasVersion = true; + continue; + } + if (ROOT_BOOLEAN_FLAGS.has(arg)) { + continue; + } + if (arg.startsWith("--profile=") || arg.startsWith("--log-level=")) { + continue; + } + if (ROOT_VALUE_FLAGS.has(arg)) { + const next = args[i + 1]; + if (isValueToken(next)) { + i += 1; + } + continue; + } + if (arg.startsWith("-")) { + return false; + } + return false; + } + return hasVersion; +} + export function getFlagValue(argv: string[], name: string): string | null | undefined { const args = argv.slice(2); for (let i = 0; i < args.length; i += 1) {