openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
34 lines (33 loc) • 1.41 kB
JavaScript
import { s as OPENCLAW_SQLITE_BUSY_TIMEOUT_MS } from "../../openclaw-state-db-contract-CQDemVBb.mjs";
import { a as runSqliteImmediateTransactionSync, t as assertTransactionUsable } from "../../sqlite-transaction-DlnLAQiX.mjs";
import { V as recordContextEngineTurnOutboxSchemaCommitted } from "../../openclaw-agent-db-validation-cache-D5sa3PLF.mjs";
import { n as executeContextEngineTurnOutboxCommand } from "../../context-engine-turn-outbox-iwoy2a8g.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 runSqliteImmediateTransactionSync(db, () => {
context.admit("transaction");
return executeContextEngineTurnOutboxCommand(db, command);
}, {
operationLabel: `context-engine.turn-outbox.${command.type}`,
busyTimeoutMs: OPENCLAW_SQLITE_BUSY_TIMEOUT_MS,
databaseLabel: context.databasePath,
withCommit(commit) {
context.admit("commit");
commit();
recordContextEngineTurnOutboxSchemaCommitted(db);
}
});
},
assertSettled() {
assertTransactionUsable(db);
if (db.isTransaction) throw new Error("Context-engine turn outbox transaction did not settle");
},
close() {}
};
}
//#endregion
export { bindSqliteWorkerBackend };