// scratch.js — run with: SQLITE_PATH=./packages/memory-service/data/test-copy.db node scratch.js const { getDB } = require('./packages/memory-service/src/db'); const episodic = require('./packages/memory-service/src/episodic'); const db = getDB(); // Backdate half the episodes to 10-40 days old, give some fake access history const eps = db.prepare('SELECT id FROM episodes').all(); const now = Math.floor(Date.now() / 1000); for (const { id } of eps) { if (Math.random() < 0.5) continue; // leave half young, so the age floor stays testable const daysOld = 10 + Math.floor(Math.random() * 30); const createdAt = now - daysOld * 86400; const touched = Math.random() < 0.6; db.prepare(` UPDATE episodes SET created_at = ?, access_count = ?, last_accessed_at = ? WHERE id = ? `).run( createdAt, touched ? 1 + Math.floor(Math.random() * 5) : 0, touched ? (createdAt + Math.floor(Math.random() * daysOld) * 86400) * 1000 : null, // accessed sometime after creation, in ms id ); } // Now run the actual candidate function against the doctored data console.table(episodic.getConsolidationCandidates(1)); // whatever session id has rows