@sema-agent/core
Version:
Stateless, task-oriented AI agent core
15 lines (14 loc) • 536 B
JavaScript
export const RUN_EDITED_FILES_CAP = 1000;
export function createEditedFilesLedger(cap = RUN_EDITED_FILES_CAP) {
const counts = new Map();
return {
note: (n) => {
const seen = counts.get(n.key);
if (seen !== undefined)
seen.edits += 1;
else if (counts.size < cap)
counts.set(n.key, { path: n.path, edits: 1 });
},
snapshot: () => (counts.size > 0 ? [...counts.values()].map(({ path, edits }) => ({ path, edits })) : undefined),
};
}