openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
31 lines (30 loc) • 1.95 kB
JavaScript
import { s as requestSqliteWorkerOperationAdmission } from "./sqlite-worker-operation-admission-C5lBzzTk.mjs";
import { l as runOpenClawStateWriteTransaction } from "./openclaw-state-db-DJZ7EKoI.mjs";
import { d as withOpenClawStateDatabaseReadOnly } from "./openclaw-state-db-readonly-ywwvuxdQ.mjs";
import { a as readNativeHookRelayBridgeSnapshotFromDatabase, i as pruneNativeHookRelayBridgeRecordsInDatabase, n as deleteNativeHookRelayBridgeRecordIfOwnedInDatabase, o as renewOrRestoreNativeHookRelayBridgeRecordInDatabase, r as listNativeHookRelayBridgeSnapshotsInDatabase, s as writeNativeHookRelayBridgeRecordInDatabase } from "./native-hook-relay-store.kernel-Cp8lZUSC.mjs";
//#region src/agents/harness/native-hook-relay-store.worker.ts
function relayMutation(mutate, requiresAdmission = false) {
return (input, { open, stateOptions }) => runOpenClawStateWriteTransaction((database) => {
if (requiresAdmission) requestSqliteWorkerOperationAdmission({
stage: "transaction",
facts: void 0
});
return mutate(database, input);
}, {
database: open(),
...stateOptions()
});
}
const nativeHookRelayOperations = {
"nativeHookRelay.read": (input, { stateOptions }) => withOpenClawStateDatabaseReadOnly((database) => readNativeHookRelayBridgeSnapshotFromDatabase({
database,
relayId: input.relayId
})?.record, stateOptions()),
"nativeHookRelay.listSnapshots": (_input, { open }) => listNativeHookRelayBridgeSnapshotsInDatabase(open()),
"nativeHookRelay.write": relayMutation(writeNativeHookRelayBridgeRecordInDatabase, true),
"nativeHookRelay.renew": relayMutation(renewOrRestoreNativeHookRelayBridgeRecordInDatabase, true),
"nativeHookRelay.deleteOwned": relayMutation(deleteNativeHookRelayBridgeRecordIfOwnedInDatabase),
"nativeHookRelay.prune": relayMutation((database, input) => pruneNativeHookRelayBridgeRecordsInDatabase(database, input.candidates, input.nowMs))
};
//#endregion
export { nativeHookRelayOperations };