UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

49 lines (48 loc) • 2.35 kB
import { l as normalizeOptionalString } from "./string-coerce-6kR-86XC.mjs"; import { c as isRecord } from "./record-coerce-TIsquoVR.mjs"; import { r as isMissingPathError } from "./errno-FR4CRyya.mjs"; import { t as parseJsonWithJson5Fallback } from "./parse-json-compat-BBtWoq5_.mjs"; import "./errors-BSdPMFao.mjs"; import { v as writeTextAtomic } from "./json-files-Br8qKrAz.mjs"; import { n as normalizeAgentId } from "./agent-id-D1-Q6vR4.mjs"; import { A as parseAgentSessionKey } from "./session-key-BC4m_Ly5.mjs"; import { l as runOpenClawStateWriteTransaction } from "./openclaw-state-db-VZFEEleX.mjs"; import { s as materializeCronRowAgentOwners } from "./row-codec-CXnIpQeG.mjs"; import { t as cronStoreKey } from "./key-BBZ40bDq.mjs"; import path from "node:path"; import fs from "node:fs/promises"; //#region src/cron/legacy-default-agent-owner-migration.ts async function materializeLegacyJsonOwners(storePath, agentId) { let raw; try { raw = await fs.readFile(storePath, "utf8"); } catch (error) { if (isMissingPathError(error)) return 0; throw error; } const parsed = parseJsonWithJson5Fallback(raw); const jobs = Array.isArray(parsed) ? parsed : isRecord(parsed) && Array.isArray(parsed.jobs) ? parsed.jobs : []; let rewritten = 0; for (const job of jobs) { if (!isRecord(job) || normalizeOptionalString(job.agentId) || parseAgentSessionKey(normalizeOptionalString(job.sessionKey))?.agentId) continue; job.agentId = agentId; rewritten += 1; } if (rewritten === 0) return 0; await writeTextAtomic(storePath, JSON.stringify(parsed, null, 2), { mode: 384, tempPrefix: path.basename(storePath), trailingNewline: true, beforeRename: async () => { if (await fs.readFile(storePath, "utf8") !== raw) throw new Error("legacy cron source changed while assigning its retained owner"); } }); return rewritten; } async function materializeLegacyDefaultCronJobOwners(params) { const agentId = normalizeAgentId(params.legacyDefaultAgentId); const storePath = path.resolve(params.storePath); return runOpenClawStateWriteTransaction(({ db }) => materializeCronRowAgentOwners(db, cronStoreKey(storePath), agentId), { env: params.env }, { operationLabel: "cron.legacy-default-owner" }) + await materializeLegacyJsonOwners(storePath, agentId); } //#endregion export { materializeLegacyDefaultCronJobOwners as t };