openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
34 lines (33 loc) • 2.23 kB
JavaScript
import { r as collectNestedErrorCandidates } from "./error-coercion-D_-xJ90S.js";
import { r as defaultRuntime } from "./runtime-CF2WjnNZ.js";
import { t as formatCliCommand } from "./command-format-C7YfyMTd.js";
import { t as formatErrorMessage } from "./errors-Db3Ymjlb.js";
import { t as createSubsystemLogger } from "./subsystem-Dy2tqXOS.js";
import { i as isSqliteSchemaVersionError } from "./sqlite-user-version-DFJCxX41.js";
import { n as findOpenClawStateDatabaseSchemaMigrationRequiredError } from "./openclaw-state-db-schema-migration-required-BAOXvPBh.js";
import { r as findOpenClawAgentDatabaseMediaMigrationRequiredError } from "./openclaw-agent-db-migration-required-BHhCEvlh.js";
//#region src/cli/gateway-cli/startup-maintenance.ts
const gatewayLog = createSubsystemLogger("gateway");
function resolveGatewayStartupMaintenanceReason(error) {
if (collectNestedErrorCandidates(error).some(isSqliteSchemaVersionError)) return "a newer OpenClaw build";
if (findOpenClawAgentDatabaseMediaMigrationRequiredError(error)) return "offline media migration";
if (findOpenClawStateDatabaseSchemaMigrationRequiredError(error)) return "state database schema migration";
}
async function handleGatewayStartupMaintenance(error) {
const reason = resolveGatewayStartupMaintenanceReason(error);
if (!reason) return false;
const guidance = reason === "a newer OpenClaw build" ? "Start the Gateway with a build that supports these database schemas. This install cannot repair a newer database." : `Run ${formatCliCommand("openclaw doctor --fix")} to repair and restart it.`;
let parked = false;
try {
const { parkCurrentLaunchAgentForMaintenance } = await import("./launchd-DRW9hezU.js");
parked = await parkCurrentLaunchAgentForMaintenance();
} catch (parkError) {
gatewayLog.error(`failed to park the managed LaunchAgent: ${formatErrorMessage(parkError)}`);
}
gatewayLog.error(`gateway requires ${reason}${parked ? "; parked the managed LaunchAgent" : ""}. ${guidance}`);
defaultRuntime.error(`Gateway failed to start: ${formatErrorMessage(error)}. ${guidance}`);
defaultRuntime.exit(78);
return true;
}
//#endregion
export { resolveGatewayStartupMaintenanceReason as n, handleGatewayStartupMaintenance as t };