openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
30 lines (29 loc) • 1.49 kB
JavaScript
import { a as OPENCLAW_DATABASE_SCHEMA_DOCS_URL } from "./openclaw-state-db-contract-DYCYxE4w.js";
import { r as preflightOpenClawDatabaseSchemas } from "./openclaw-database-preflight-DmhpNBQv.js";
//#region src/cli/update-cli/schema-preflight.ts
function formatSchemaRefusalLines(schemas, dryRun = false) {
const prefix = dryRun ? "Would refuse update" : "Update refused";
return [
...schemas.incompatible.map((database) => {
const agent = database.agentId ? ` (agent ${database.agentId})` : "";
return `${prefix}: ${database.kind} database${agent} ${database.path} has schema ${database.foundVersion}; target supports ${database.supportedVersion}; writer build ${database.writerAppVersion ?? "unknown"}.`;
}),
...schemas.indeterminate.map((database) => `${prefix}: could not inspect ${database.kind} database ${database.path}: ${database.reason}; retry once the gateway releases it.`),
OPENCLAW_DATABASE_SCHEMA_DOCS_URL,
"Installing manually via npm bypasses this guard; back up first and verify compatibility."
];
}
function checkTargetDatabaseSchemas(supportedVersions, env = process.env) {
return supportedVersions ? preflightOpenClawDatabaseSchemas({
env,
supportedVersions
}) : {
incompatible: [],
indeterminate: []
};
}
function hasSchemaRefusal(schemas) {
return schemas.incompatible.length > 0 || schemas.indeterminate.length > 0;
}
//#endregion
export { formatSchemaRefusalLines as n, hasSchemaRefusal as r, checkTargetDatabaseSchemas as t };