openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
37 lines (36 loc) • 1.59 kB
JavaScript
import { n as executeSqliteQuerySync } from "./kysely-sync-BMSZn9yz.mjs";
import { i as tableExists } from "./openclaw-state-db-schema-helpers-DsjDX6BL.mjs";
import { n as getInvalidPersistedCronJobReason } from "./persisted-shape-CehOOI4b.mjs";
import { y as tryParseJsonObject } from "./row-codec-CXnIpQeG.mjs";
import { r as getCronStoreKysely } from "./schema-Cj1h5M7c.mjs";
//#region src/cron/store/doctor-inventory.ts
/** Raw inspection deliberately bypasses runtime loading and its repair/filter policies. */
function inspectCronRowsForDoctor(db) {
if (!tableExists(db, "cron_jobs")) return [];
return executeSqliteQuerySync(db, getCronStoreKysely(db).selectFrom("cron_jobs").select([
"store_key",
"job_id",
"declaration_key",
"job_json",
"state_json",
"sort_order"
]).orderBy("store_key").orderBy("sort_order").orderBy("job_id")).rows.map((row) => {
const definition = tryParseJsonObject(row.job_json) ?? null;
const state = tryParseJsonObject(row.state_json);
const invalidReason = !definition ? "invalid-definition-json" : definition.id !== row.job_id ? "job-id-mismatch" : (definition.declarationKey ?? null) !== row.declaration_key ? "declaration-key-mismatch" : !state ? "invalid-state-json" : getInvalidPersistedCronJobReason({
...definition,
state
});
const inspected = {
storeKey: row.store_key,
id: row.job_id,
sortOrder: row.sort_order,
definitionJson: row.job_json,
definition
};
if (invalidReason) inspected.invalidReason = invalidReason;
return inspected;
});
}
//#endregion
export { inspectCronRowsForDoctor as t };