openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
83 lines (82 loc) • 4.29 kB
JavaScript
import { t as resolveCliArgvInvocation } from "./argv-invocation-C1WhAkJL.js";
import { t as createLazyImportLoader } from "./lazy-promise-DGqyc4Y4.js";
import { a as routeLogsToStderr } from "./console-BSaonU6s.js";
import { t as measureCliCommandStartup } from "./command-startup-timing-BgLkSqND.js";
import { t as ensureCliPluginRegistryLoaded } from "./plugin-registry-loader-RMGKX1EX.js";
import { t as resolveCliCommandPathPolicy } from "./command-path-policy-CYBY98jZ.js";
import { t as resolveCliStartupPolicy } from "./command-startup-policy-CJsX-cqe.js";
//#region src/cli/command-bootstrap.ts
const configGuardModuleLoader = createLazyImportLoader(() => import("./config-guard-IFxtClBu.js"));
function loadConfigGuardModule() {
return configGuardModuleLoader.load();
}
/** Run the lazy command bootstrap steps selected by command policy. */
async function ensureCliCommandBootstrap(params) {
if (!params.skipConfigGuard) await measureCliCommandStartup("config-ready", async () => {
const { ensureConfigReady } = await loadConfigGuardModule();
await ensureConfigReady({
runtime: params.runtime,
commandPath: params.commandPath,
measure: (stage, run) => measureCliCommandStartup(stage, run),
...params.allowInvalid ? { allowInvalid: true } : {},
...params.validateConfigOnly ? { validateConfigOnly: true } : {},
...params.beforeStateMigrations ? { beforeStateMigrations: params.beforeStateMigrations } : {},
...params.suppressDoctorStdout ? { suppressDoctorStdout: true } : {},
...params.skipPristineStartupStateMigrations ? { skipPristineStartupStateMigrations: true } : {},
...params.skipPristineCoreStateMigrations ? { skipPristineCoreStateMigrations: true } : {}
});
});
if (!params.loadPlugins) return;
const pluginRegistryLoadPolicy = params.pluginRegistry ?? resolveCliCommandPathPolicy(params.commandPath).pluginRegistry;
await measureCliCommandStartup("plugin-registry", () => ensureCliPluginRegistryLoaded({
scope: pluginRegistryLoadPolicy.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 = params.commandPath ?? invocation.commandPath;
return {
invocation,
commandPath,
startupPolicy: resolveCliStartupPolicy({
argv: params.argv,
commandPath,
jsonOutputMode: params.jsonOutputMode,
machineOutputMode: params.machineOutputMode,
env: params.env
})
};
}
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-BY4ckbqm.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,
...params.beforeStateMigrations ? { beforeStateMigrations: params.beforeStateMigrations } : {},
loadPlugins: params.loadPlugins ?? params.startupPolicy.loadPlugins,
pluginRegistry: params.startupPolicy.pluginRegistry,
skipConfigGuard: params.skipConfigGuard ?? params.startupPolicy.skipConfigGuard,
...params.validateConfigOnly ?? params.startupPolicy.validateConfigOnly ? { validateConfigOnly: true } : {},
...params.skipPristineStartupStateMigrations ? { skipPristineStartupStateMigrations: true } : {},
...params.skipPristineCoreStateMigrations ? { skipPristineCoreStateMigrations: true } : {}
});
}
//#endregion
export { ensureCliExecutionBootstrap as n, resolveCliExecutionStartupContext as r, applyCliExecutionStartupPresentation as t };