openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
25 lines (24 loc) • 1.1 kB
JavaScript
import { s as OPENCLAW_SQLITE_BUSY_TIMEOUT_MS } from "../../openclaw-state-db-contract-BYv0nUQr.mjs";
import { s as runSqliteWorkerTransactionSync, t as assertTransactionUsable } from "../../sqlite-transaction-DBRLvCDM.mjs";
import { n as executeContextEngineTurnOutboxCommand } from "../../context-engine-turn-outbox-CrKyGqEu.mjs";
//#region src/agents/harness/context-engine-turn-outbox.worker.ts
/** Borrows the canonical agent connection for one admitted outbox operation. */
function bindSqliteWorkerBackend(_input, context) {
const db = context.database;
return {
execute(command) {
return runSqliteWorkerTransactionSync(context, () => executeContextEngineTurnOutboxCommand(db, command), {
operationLabel: `context-engine.turn-outbox.${command.type}`,
busyTimeoutMs: OPENCLAW_SQLITE_BUSY_TIMEOUT_MS,
databaseLabel: context.databasePath
});
},
assertSettled() {
assertTransactionUsable(db);
if (db.isTransaction) throw new Error("Context-engine turn outbox transaction did not settle");
},
close() {}
};
}
//#endregion
export { bindSqliteWorkerBackend };