UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

48 lines (47 loc) 2.13 kB
import { h as resolveFutureConfigActionBlock, m as formatFutureConfigActionBlock, n as cloneEnvWithPlatformSemantics, o as createConfigRuntimeEnv, p as ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS_ENV } from "./config-env-vars-DUfQlcAk.js"; //#region src/cli/gateway-cli/future-config-guard.ts function resolveGatewayRunFutureConfigBlock(params) { const processServiceMode = Boolean(process.env.OPENCLAW_SERVICE_MARKER?.trim()); const candidateConfig = params.config ?? (params.snapshot?.valid ? params.snapshot.sourceConfig ?? params.snapshot.config : void 0); const candidateServiceMode = !params.opts.reset && Boolean(candidateConfig ? createConfigRuntimeEnv(candidateConfig, process.env).OPENCLAW_SERVICE_MARKER?.trim() : void 0); const serviceMode = processServiceMode || candidateServiceMode; const futureAction = params.opts.reset ? { action: "reset the dev gateway state", exitCode: 1 } : serviceMode ? { action: "start the gateway service", exitCode: 78 } : params.opts.force ? { action: "force-kill gateway port listeners", exitCode: 1 } : { action: "run automatic gateway startup migrations", exitCode: 1 }; const guardEnv = serviceMode ? cloneEnvWithPlatformSemantics(process.env) : process.env; if (serviceMode) delete guardEnv[ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS_ENV]; const block = resolveFutureConfigActionBlock({ action: futureAction.action, snapshot: params.snapshot, config: params.config, env: guardEnv }); return block ? { block, exitCode: futureAction.exitCode, serviceMode } : null; } function isGatewayRunFutureConfigAllowed(params) { return resolveGatewayRunFutureConfigBlock(params) === null; } function enforceGatewayRunFutureConfigGuard(params) { const resolved = resolveGatewayRunFutureConfigBlock(params); if (!resolved) return true; if (resolved.serviceMode) delete process.env[ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS_ENV]; params.runtime.error(formatFutureConfigActionBlock(resolved.block)); params.runtime.exit(resolved.exitCode); return false; } //#endregion export { isGatewayRunFutureConfigAllowed as n, enforceGatewayRunFutureConfigGuard as t };