openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
93 lines (92 loc) • 4.02 kB
JavaScript
import { t as resolveCliArgvInvocation } from "./argv-invocation-CxGUjPqA.js";
import { t as createLazyImportLoader } from "./lazy-promise-BONnzNfb.js";
import { t as loggingState } from "./state-CHRYWIGY.js";
import { a as routeLogsToStderr } from "./console-BOsG6sD1.js";
import { t as resolveCliCommandPathPolicy } from "./command-path-policy-B0jd3lsl.js";
import { t as resolveCliStartupPolicy } from "./command-startup-policy-DRnpD6uX.js";
//#region src/cli/plugin-registry-loader.ts
const pluginRegistryModuleLoader = createLazyImportLoader(() => import("./plugin-registry-Bf2Y6BxX.js"));
function loadPluginRegistryModule() {
return pluginRegistryModuleLoader.load();
}
/** Load the CLI plugin registry and optionally route activation logs to stderr. */
async function ensureCliPluginRegistryLoaded(params) {
const { ensurePluginRegistryLoaded } = await loadPluginRegistryModule();
const previousForceStderr = loggingState.forceConsoleToStderr;
if (params.routeLogsToStderr) loggingState.forceConsoleToStderr = true;
try {
ensurePluginRegistryLoaded({
scope: params.scope,
...params.config ? { config: params.config } : {},
...params.activationSourceConfig ? { activationSourceConfig: params.activationSourceConfig } : {}
});
} finally {
loggingState.forceConsoleToStderr = previousForceStderr;
}
}
//#endregion
//#region src/cli/command-bootstrap.ts
const configGuardModuleLoader = createLazyImportLoader(() => import("./config-guard-BR4ExzNl.js"));
function loadConfigGuardModule() {
return configGuardModuleLoader.load();
}
/** Run the lazy command bootstrap steps selected by command policy. */
async function ensureCliCommandBootstrap(params) {
if (!params.skipConfigGuard) {
const { ensureConfigReady } = await loadConfigGuardModule();
await ensureConfigReady({
runtime: params.runtime,
commandPath: params.commandPath,
...params.allowInvalid ? { allowInvalid: true } : {},
...params.suppressDoctorStdout ? { suppressDoctorStdout: true } : {}
});
}
if (!params.loadPlugins) return;
await ensureCliPluginRegistryLoaded({
scope: (params.pluginRegistry ?? resolveCliCommandPathPolicy(params.commandPath).pluginRegistry).scope,
routeLogsToStderr: params.suppressDoctorStdout
});
}
//#endregion
//#region src/cli/command-execution-startup.ts
const hasJsonFlag = (argv) => argv.some((arg) => arg === "--json" || arg.startsWith("--json="));
const hasVersionFlag = (argv) => argv.some((arg) => arg === "--version" || arg === "-V");
function resolveCliExecutionStartupContext(params) {
const invocation = resolveCliArgvInvocation(params.argv);
const { commandPath } = invocation;
return {
invocation,
commandPath,
startupPolicy: resolveCliStartupPolicy({
argv: params.argv,
commandPath,
jsonOutputMode: params.jsonOutputMode,
env: params.env,
routeMode: params.routeMode
})
};
}
async function applyCliExecutionStartupPresentation(params) {
if (params.startupPolicy.suppressDoctorStdout && params.routeLogsToStderrOnSuppress !== false) routeLogsToStderr();
if (params.startupPolicy.hideBanner || params.showBanner === false || !params.version) return;
if (params.argv && (hasJsonFlag(params.argv) || hasVersionFlag(params.argv))) return;
const { emitCliBanner } = await import("./banner-hr7cW9zI.js");
if (params.argv) {
emitCliBanner(params.version, { argv: params.argv });
return;
}
emitCliBanner(params.version);
}
async function ensureCliExecutionBootstrap(params) {
await ensureCliCommandBootstrap({
runtime: params.runtime,
commandPath: params.commandPath,
suppressDoctorStdout: params.startupPolicy.suppressDoctorStdout,
allowInvalid: params.allowInvalid,
loadPlugins: params.loadPlugins ?? params.startupPolicy.loadPlugins,
pluginRegistry: params.startupPolicy.pluginRegistry,
skipConfigGuard: params.skipConfigGuard ?? params.startupPolicy.skipConfigGuard
});
}
//#endregion
export { ensureCliExecutionBootstrap as n, resolveCliExecutionStartupContext as r, applyCliExecutionStartupPresentation as t };