openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
25 lines (24 loc) • 1.12 kB
JavaScript
import { n as createPlacementWorkspaceJournalOps } from "./placement-workspace-journal-D1i7Bc34.mjs";
//#region src/gateway/worker-environments/placement-workspace-journal.worker.ts
function operation(type, execute, now = Date.now) {
return (input, { writeAdmitted }) => writeAdmitted(({ db }) => {
return {
type,
...execute(createPlacementWorkspaceJournalOps({
now: () => now(input),
write: (write) => write(db)
}), input)
};
}, {
operationLabel: type,
receipt: "result",
transactionEnvironment: "process"
});
}
const workspaceJournalOperations = {
"placementJournals.begin": operation("placementJournals.begin", (journal, input) => journal.beginWorkspaceReconciliation(input.owner, input.journal), (input) => input.nowMs ?? Date.now()),
"placementJournals.abort": operation("placementJournals.abort", (journal, input) => journal.abortWorkspaceReconciliation(input.owner, { force: input.force })),
"placementJournals.prune": operation("placementJournals.prune", (journal, _input) => journal.pruneOrphanedWorkspaceReconciliations())
};
//#endregion
export { workspaceJournalOperations };