openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
34 lines (33 loc) • 1.55 kB
JavaScript
import { t as deferSqlitePostCommitPublication } from "./sqlite-post-commit-PDRfkj0T.mjs";
import { i as runWithSqliteWorkerStateContext } from "./sqlite-worker-state-context-ifl-DKqr.mjs";
import { l as runOpenClawStateWriteTransaction } from "./openclaw-state-db-VZFEEleX.mjs";
import { h as getOperatorApprovalResolutionKey } from "./operator-approval-store.transitions-B59qeaAf.mjs";
import { t as executeOperatorApprovalOperation } from "./operator-approval-store.operations-GH4gqiDV.mjs";
//#region src/gateway/operator-approval-store.native.ts
function executeNativeOperatorApproval(type, input, context, assertCurrent, onCommitted) {
context.admission.assertCurrent();
return runWithSqliteWorkerStateContext(context, () => {
const options = {
env: context.environment,
path: context.admission.databasePath
};
return runOpenClawStateWriteTransaction((database) => {
assertCurrent();
const result = executeOperatorApprovalOperation(type, input, {
...options,
database
});
if (onCommitted && type === "operatorApprovals.resolve" && "outcome" in result && result.outcome === "resolved") {
const receipt = {
type: "operatorApprovals.resolve",
resolutionKey: getOperatorApprovalResolutionKey(result.record)
};
if (!deferSqlitePostCommitPublication(database.db, () => onCommitted(receipt))) throw new Error("Operator approval commit receipt requires a transaction owner");
}
assertCurrent();
return result;
}, options);
});
}
//#endregion
export { executeNativeOperatorApproval };