openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
55 lines (54 loc) • 2.55 kB
JavaScript
import { i as executeSqliteQuerySync, o as getNodeSqliteKysely } from "./kysely-sync-DUWzQvCU.mjs";
import { n as normalizeAgentId } from "./agent-id-D1-Q6vR4.mjs";
import "./session-key-DY3MOX4N.mjs";
import { r as captureOpenClawStateWorkerContext } from "./openclaw-state-worker-context-BvvgY6-t.mjs";
//#region src/state/agent-provenance.ts
async function recordAgentProvenance(agentId, provenance, options = {}) {
const context = captureOpenClawStateWorkerContext({
...options,
path: options.database?.path ?? options.path
});
const input = {
agentId: normalizeAgentId(agentId),
createdVia: provenance.createdVia,
creatorAgentId: provenance.creatorAgentId ? normalizeAgentId(provenance.creatorAgentId) : null,
createdAtMs: options.nowMs ?? Date.now()
};
const { executeOpenClawStateWorker } = await import("./openclaw-state-worker-store-x5r3Lkjl.mjs");
await executeOpenClawStateWorker(context, {
type: "agentProvenance.record",
input
});
}
const DISPLAY_PROVENANCE_BATCH_SIZE = 256;
/** Read provenance for the selected presentation roster in bounded worker batches. */
async function readAgentProvenanceForDisplay(agentIds, options = {}) {
if (agentIds.length === 0) return [];
const context = captureOpenClawStateWorkerContext(options);
const requestedIds = agentIds.map(normalizeAgentId);
const { executeOpenClawStateWorker } = await import("./openclaw-state-worker-store-x5r3Lkjl.mjs");
const records = [];
for (let offset = 0; offset < requestedIds.length; offset += DISPLAY_PROVENANCE_BATCH_SIZE) {
const batch = await executeOpenClawStateWorker(context, {
type: "agentProvenance.readBatch",
input: { agentIds: requestedIds.slice(offset, offset + DISPLAY_PROVENANCE_BATCH_SIZE) }
});
records.push(...batch);
}
return records;
}
async function listAgentProvenance(options = {}) {
const context = captureOpenClawStateWorkerContext(options);
const { executeOpenClawStateWorker } = await import("./openclaw-state-worker-store-x5r3Lkjl.mjs");
return executeOpenClawStateWorker(context, {
type: "agentProvenance.list",
input: void 0
});
}
/** Delete one row inside the caller's authoritative state transaction. */
function deleteAgentProvenanceForAgent(database, agentId) {
const db = getNodeSqliteKysely(database);
executeSqliteQuerySync(database, db.deleteFrom("agent_provenance").where("agent_id", "=", normalizeAgentId(agentId)));
}
//#endregion
export { recordAgentProvenance as i, listAgentProvenance as n, readAgentProvenanceForDisplay as r, deleteAgentProvenanceForAgent as t };