Files
openclaw/src/cli/command-registration-policy.ts
2026-04-08 11:47:59 +01:00

33 lines
1020 B
TypeScript

import { isTruthyEnvValue } from "../infra/env.js";
import { resolveCliArgvInvocation } from "./argv-invocation.js";
export function shouldRegisterPrimaryCommandOnly(argv: string[]): boolean {
const invocation = resolveCliArgvInvocation(argv);
return invocation.primary !== null || !invocation.hasHelpOrVersion;
}
export function shouldSkipPluginCommandRegistration(params: {
argv: string[];
primary: string | null;
hasBuiltinPrimary: boolean;
}): boolean {
if (params.hasBuiltinPrimary) {
return true;
}
if (!params.primary) {
return resolveCliArgvInvocation(params.argv).hasHelpOrVersion;
}
return false;
}
export function shouldEagerRegisterSubcommands(env: NodeJS.ProcessEnv = process.env): boolean {
return isTruthyEnvValue(env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS);
}
export function shouldRegisterPrimarySubcommandOnly(
argv: string[],
env: NodeJS.ProcessEnv = process.env,
): boolean {
return !shouldEagerRegisterSubcommands(env) && shouldRegisterPrimaryCommandOnly(argv);
}