UNPKG

agentcrumbs

Version:
44 lines 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.replay = replay; const format_js_1 = require("../format.js"); const args_js_1 = require("../args.js"); const app_store_js_1 = require("../app-store.js"); async function replay(args) { const sessionId = args[0]; const json = (0, args_js_1.hasFlag)(args, "--json"); const appCtx = (0, app_store_js_1.parseAppFlags)(args); const showApp = appCtx.allApps; if (!sessionId) { process.stderr.write("Usage: agentcrumbs replay <session-id> [--app <name>] [--all-apps] [--json]\n"); process.exit(1); } const allCrumbs = (0, app_store_js_1.readAllCrumbs)(appCtx); const sessionCrumbs = allCrumbs.filter((c) => c.sid === sessionId); if (sessionCrumbs.length === 0) { process.stderr.write(`No crumbs found for session: ${sessionId}\n`); process.exit(1); } // Sort by timestamp sessionCrumbs.sort((a, b) => new Date(a.ts).getTime() - new Date(b.ts).getTime()); const first = sessionCrumbs[0]; const last = sessionCrumbs[sessionCrumbs.length - 1]; const duration = new Date(last.ts).getTime() - new Date(first.ts).getTime(); process.stderr.write(`Replaying session ${sessionId} (${sessionCrumbs.length} crumbs, ${formatDuration(duration)})\n\n`); for (const crumb of sessionCrumbs) { if (json) { process.stdout.write((0, format_js_1.formatCrumbJson)(crumb) + "\n"); } else { process.stdout.write((0, format_js_1.formatCrumbPretty)(crumb, { showApp }) + "\n"); } } } function formatDuration(ms) { if (ms < 1000) return `${ms}ms`; if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`; return `${(ms / 60000).toFixed(1)}m`; } //# sourceMappingURL=replay.js.map