openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
46 lines (45 loc) • 1.92 kB
JavaScript
import { T as collectUniqueCommandDescriptors, _ as getSubCliEntries, b as getCoreCliCommandDescriptors, w as addCommandDescriptorsToProgram } from "./argv-CnfL__6a.js";
import { n as VERSION } from "./version-Crcn9X9T.js";
import { t as configureProgramHelp } from "./help-CjhBUART.js";
import { t as getPluginCliCommandDescriptors } from "./cli-C3goHYAD.js";
import { Command } from "commander";
//#region src/cli/program/root-help.ts
async function buildRootHelpProgram(renderOptions) {
const program = new Command();
const pluginDescriptors = renderOptions?.includePluginDescriptors === true || renderOptions?.config ? await getPluginCliCommandDescriptors(renderOptions.config, renderOptions.env, { pluginSdkResolution: renderOptions.pluginSdkResolution }) : [];
configureProgramHelp(program, {
programVersion: VERSION,
channelOptions: [],
messageChannelOptions: "",
agentChannelOptions: ""
}, { commandsWithSubcommands: new Set(pluginDescriptors.filter((descriptor) => descriptor.hasSubcommands).map((descriptor) => descriptor.name)) });
addCommandDescriptorsToProgram(program, collectUniqueCommandDescriptors([
getCoreCliCommandDescriptors(),
getSubCliEntries(),
pluginDescriptors
]));
return program;
}
/** Render root help text for tests, docs, and command output. */
async function renderRootHelpText(renderOptions) {
const program = await buildRootHelpProgram(renderOptions);
let output = "";
const originalWrite = process.stdout.write.bind(process.stdout);
const captureWrite = ((chunk) => {
output += String(chunk);
return true;
});
process.stdout.write = captureWrite;
try {
program.outputHelp();
} finally {
process.stdout.write = originalWrite;
}
return output;
}
/** Write rendered root help directly to stdout. */
async function outputRootHelp(renderOptions) {
process.stdout.write(await renderRootHelpText(renderOptions));
}
//#endregion
export { outputRootHelp };