code-session-memory 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,482 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * sessions sub-commands for code-session-memory CLI
5
+ *
6
+ * sessions [list] Browse sessions (interactive TUI)
7
+ * sessions list --filter Browse with filter step first
8
+ * sessions print [id] Print all chunks of a session to stdout
9
+ * sessions print --filter Pick session interactively with filter, then print
10
+ * sessions delete [id] Delete a session from the DB
11
+ * sessions delete --filter Pick session interactively with filter, then delete
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.cmdSessionsList = cmdSessionsList;
48
+ exports.cmdSessionsPrint = cmdSessionsPrint;
49
+ exports.cmdSessionsDelete = cmdSessionsDelete;
50
+ exports.cmdSessions = cmdSessions;
51
+ const clack = __importStar(require("@clack/prompts"));
52
+ const database_1 = require("./database");
53
+ const database_2 = require("./database");
54
+ // ---------------------------------------------------------------------------
55
+ // Formatting helpers
56
+ // ---------------------------------------------------------------------------
57
+ function bold(s) { return `\x1b[1m${s}\x1b[0m`; }
58
+ function green(s) { return `\x1b[32m${s}\x1b[0m`; }
59
+ function red(s) { return `\x1b[31m${s}\x1b[0m`; }
60
+ function dim(s) { return `\x1b[2m${s}\x1b[0m`; }
61
+ function cyan(s) { return `\x1b[36m${s}\x1b[0m`; }
62
+ function yellow(s) { return `\x1b[33m${s}\x1b[0m`; }
63
+ function fmtDate(unixMs) {
64
+ if (!unixMs)
65
+ return dim("unknown date");
66
+ return new Date(unixMs).toISOString().slice(0, 10);
67
+ }
68
+ function fmtSource(source) {
69
+ return source === "opencode" ? cyan("opencode") : yellow("claude-code");
70
+ }
71
+ function fmtTitle(title) {
72
+ return title || dim("(untitled)");
73
+ }
74
+ function fmtProject(project) {
75
+ if (!project)
76
+ return dim("—");
77
+ const parts = project.replace(/\\/g, "/").split("/").filter(Boolean);
78
+ return parts.length > 2 ? dim("…/" + parts.slice(-2).join("/")) : dim(project);
79
+ }
80
+ function hr(char = "─", width = 72) {
81
+ return char.repeat(width);
82
+ }
83
+ // ---------------------------------------------------------------------------
84
+ // DB helpers (open/close around each command)
85
+ // ---------------------------------------------------------------------------
86
+ function withDb(fn) {
87
+ const dbPath = (0, database_1.resolveDbPath)();
88
+ const db = (0, database_1.openDatabase)({ dbPath });
89
+ try {
90
+ return fn(db);
91
+ }
92
+ finally {
93
+ db.close();
94
+ }
95
+ }
96
+ // ---------------------------------------------------------------------------
97
+ // Label builder for the session picker
98
+ // ---------------------------------------------------------------------------
99
+ function sessionLabel(s) {
100
+ const date = fmtDate(s.updated_at);
101
+ const chunks = `${s.chunk_count} chunk${s.chunk_count !== 1 ? "s" : ""}`;
102
+ const title = fmtTitle(s.session_title).padEnd(40);
103
+ return `${title} ${date} ${chunks}`;
104
+ }
105
+ function sessionHint(s) {
106
+ return `${fmtSource(s.source)} ${fmtProject(s.project)}`;
107
+ }
108
+ // ---------------------------------------------------------------------------
109
+ // Filter step (shown when --filter flag is present)
110
+ // ---------------------------------------------------------------------------
111
+ async function runFilterStep() {
112
+ clack.intro(bold("Filter sessions"));
113
+ const sourceAnswer = await clack.select({
114
+ message: "Source",
115
+ options: [
116
+ { value: "all", label: "All tools" },
117
+ { value: "opencode", label: "OpenCode" },
118
+ { value: "claude-code", label: "Claude Code" },
119
+ ],
120
+ initialValue: "all",
121
+ });
122
+ if (clack.isCancel(sourceAnswer)) {
123
+ clack.cancel("Cancelled.");
124
+ process.exit(0);
125
+ }
126
+ const dateAnswer = await clack.select({
127
+ message: "Date range",
128
+ options: [
129
+ { value: "all", label: "All time" },
130
+ { value: "7d", label: "Last 7 days" },
131
+ { value: "30d", label: "Last 30 days" },
132
+ { value: "90d", label: "Last 90 days" },
133
+ { value: "recent", label: "Last N days", hint: "enter a number" },
134
+ { value: "older", label: "Older than N days", hint: "enter a number" },
135
+ ],
136
+ initialValue: "all",
137
+ });
138
+ if (clack.isCancel(dateAnswer)) {
139
+ clack.cancel("Cancelled.");
140
+ process.exit(0);
141
+ }
142
+ const filter = {};
143
+ if (sourceAnswer !== "all") {
144
+ filter.source = sourceAnswer;
145
+ }
146
+ const nowMs = Date.now();
147
+ const DAY_MS = 86400 * 1000;
148
+ if (dateAnswer === "7d") {
149
+ filter.fromDate = nowMs - 7 * DAY_MS;
150
+ }
151
+ else if (dateAnswer === "30d") {
152
+ filter.fromDate = nowMs - 30 * DAY_MS;
153
+ }
154
+ else if (dateAnswer === "90d") {
155
+ filter.fromDate = nowMs - 90 * DAY_MS;
156
+ }
157
+ else if (dateAnswer === "recent") {
158
+ const nAnswer = await clack.text({
159
+ message: "Show sessions from the last how many days?",
160
+ placeholder: "14",
161
+ validate(v) {
162
+ if (!v || isNaN(Number(v)) || Number(v) <= 0)
163
+ return "Please enter a positive number.";
164
+ },
165
+ });
166
+ if (clack.isCancel(nAnswer)) {
167
+ clack.cancel("Cancelled.");
168
+ process.exit(0);
169
+ }
170
+ filter.fromDate = nowMs - Number(nAnswer) * DAY_MS;
171
+ }
172
+ else if (dateAnswer === "older") {
173
+ const nAnswer = await clack.text({
174
+ message: "Show sessions older than how many days?",
175
+ placeholder: "30",
176
+ validate(v) {
177
+ if (!v || isNaN(Number(v)) || Number(v) <= 0)
178
+ return "Please enter a positive number.";
179
+ },
180
+ });
181
+ if (clack.isCancel(nAnswer)) {
182
+ clack.cancel("Cancelled.");
183
+ process.exit(0);
184
+ }
185
+ filter.toDate = nowMs - Number(nAnswer) * DAY_MS;
186
+ }
187
+ return filter;
188
+ }
189
+ // ---------------------------------------------------------------------------
190
+ // Shared session picker
191
+ // Returns the chosen SessionRow, or null if the user cancelled / exited.
192
+ // When withFilter is true, runs the filter step first.
193
+ // ---------------------------------------------------------------------------
194
+ async function pickSession(withFilter) {
195
+ let filter = {};
196
+ if (withFilter) {
197
+ filter = await runFilterStep();
198
+ console.log();
199
+ }
200
+ const sessions = withDb((db) => (0, database_2.listSessions)(db, filter));
201
+ if (sessions.length === 0) {
202
+ clack.log.warn("No sessions match the current filter.");
203
+ return null;
204
+ }
205
+ const chosen = await clack.select({
206
+ message: `${sessions.length} session${sessions.length !== 1 ? "s" : ""}${withFilter ? dim(" (filtered)") : ""} — pick one`,
207
+ options: [
208
+ ...sessions.map((s) => ({
209
+ value: s.session_id,
210
+ label: sessionLabel(s),
211
+ hint: sessionHint(s),
212
+ })),
213
+ { value: "__cancel__", label: dim("Cancel") },
214
+ ],
215
+ maxItems: 12,
216
+ });
217
+ if (clack.isCancel(chosen) || chosen === "__cancel__")
218
+ return null;
219
+ return sessions.find((s) => s.session_id === chosen) ?? null;
220
+ }
221
+ // ---------------------------------------------------------------------------
222
+ // Action loop for a selected session (used by sessions list)
223
+ // ---------------------------------------------------------------------------
224
+ async function sessionActionLoop(session) {
225
+ while (true) {
226
+ clack.log.message([
227
+ `${bold(fmtTitle(session.session_title))}`,
228
+ `${fmtSource(session.source)} ${fmtDate(session.updated_at)} ${session.chunk_count} chunks`,
229
+ `Project: ${session.project || dim("—")}`,
230
+ `ID: ${dim(session.session_id)}`,
231
+ ].join("\n"), { symbol: "○" });
232
+ const action = await clack.select({
233
+ message: "What would you like to do?",
234
+ options: [
235
+ { value: "print", label: "Print session", hint: "output all chunks to stdout" },
236
+ { value: "delete", label: "Delete session", hint: "remove from DB" },
237
+ { value: "back", label: "Back to list" },
238
+ ],
239
+ });
240
+ if (clack.isCancel(action) || action === "back")
241
+ return "back";
242
+ if (action === "print") {
243
+ clack.outro(dim("Printing session…"));
244
+ printSession(session.session_id);
245
+ return "exit";
246
+ }
247
+ if (action === "delete") {
248
+ const confirmed = await clack.confirm({
249
+ message: `Delete "${fmtTitle(session.session_title)}" (${session.chunk_count} chunks)?`,
250
+ initialValue: false,
251
+ });
252
+ if (clack.isCancel(confirmed) || !confirmed) {
253
+ clack.log.info("Deletion cancelled.");
254
+ continue;
255
+ }
256
+ const deleted = withDb((db) => (0, database_2.deleteSession)(db, session.session_id));
257
+ clack.log.success(`Deleted ${deleted} chunks.`);
258
+ clack.log.warn("Note: if this session's source files still exist, it will be re-indexed on the next agent turn.");
259
+ return "back";
260
+ }
261
+ }
262
+ }
263
+ // ---------------------------------------------------------------------------
264
+ // sessions list
265
+ // ---------------------------------------------------------------------------
266
+ async function cmdSessionsList(args) {
267
+ const withFilter = args.includes("--filter");
268
+ if (!withFilter) {
269
+ clack.intro(bold("Sessions"));
270
+ }
271
+ // Main browse loop — re-shown after back/delete so the user can keep browsing
272
+ let filter = {};
273
+ let filterResolved = false;
274
+ while (true) {
275
+ // Run filter step once (first iteration only, if --filter was passed)
276
+ if (withFilter && !filterResolved) {
277
+ filter = await runFilterStep();
278
+ filterResolved = true;
279
+ console.log();
280
+ }
281
+ const sessions = withDb((db) => (0, database_2.listSessions)(db, filter));
282
+ if (sessions.length === 0) {
283
+ clack.log.warn("No sessions match the current filter.");
284
+ clack.outro("Done.");
285
+ return;
286
+ }
287
+ const chosen = await clack.select({
288
+ message: `${sessions.length} session${sessions.length !== 1 ? "s" : ""} ${withFilter ? dim("(filtered)") : ""}`,
289
+ options: [
290
+ ...sessions.map((s) => ({
291
+ value: s.session_id,
292
+ label: sessionLabel(s),
293
+ hint: sessionHint(s),
294
+ })),
295
+ { value: "__exit__", label: dim("Exit") },
296
+ ],
297
+ maxItems: 12,
298
+ });
299
+ if (clack.isCancel(chosen) || chosen === "__exit__") {
300
+ clack.outro("Done.");
301
+ return;
302
+ }
303
+ const session = sessions.find((s) => s.session_id === chosen);
304
+ const result = await sessionActionLoop(session);
305
+ if (result === "exit")
306
+ return;
307
+ // result === "back" → loop again, refresh session list
308
+ }
309
+ }
310
+ // ---------------------------------------------------------------------------
311
+ // sessions print [id]
312
+ // ---------------------------------------------------------------------------
313
+ async function cmdSessionsPrint(sessionId, args = []) {
314
+ const withFilter = args.includes("--filter");
315
+ if (!sessionId) {
316
+ // No ID given — launch interactive picker
317
+ clack.intro(bold("Print session"));
318
+ const session = await pickSession(withFilter);
319
+ if (!session) {
320
+ clack.outro("Cancelled.");
321
+ return;
322
+ }
323
+ clack.outro(dim("Printing session…"));
324
+ printSession(session.session_id);
325
+ return;
326
+ }
327
+ printSession(sessionId);
328
+ }
329
+ function printSession(sessionId) {
330
+ const { session, chunks } = withDb((db) => {
331
+ const rows = (0, database_2.listSessions)(db, {});
332
+ const session = rows.find((s) => s.session_id === sessionId);
333
+ const chunks = (0, database_2.getSessionChunksOrdered)(db, sessionId);
334
+ return { session, chunks };
335
+ });
336
+ if (!session && chunks.length === 0) {
337
+ console.error(`No session found with ID: ${sessionId}`);
338
+ process.exit(1);
339
+ }
340
+ const useTty = process.stdout.isTTY;
341
+ const b = (s) => useTty ? bold(s) : s;
342
+ const d = (s) => useTty ? dim(s) : s;
343
+ const c = (s) => useTty ? cyan(s) : s;
344
+ const y = (s) => useTty ? yellow(s) : s;
345
+ const title = session?.session_title || "(untitled)";
346
+ const source = session?.source || "unknown";
347
+ const date = session ? fmtDate(session.updated_at) : "unknown";
348
+ const project = session?.project || "—";
349
+ console.log(hr());
350
+ console.log(`${b("Session:")} ${title}`);
351
+ console.log(`${b("Source:")} ${source === "opencode" ? c(source) : y(source)} ${d(date)}`);
352
+ console.log(`${b("Project:")} ${project}`);
353
+ console.log(`${b("ID:")} ${d(sessionId)}`);
354
+ console.log(`${b("Chunks:")} ${chunks.length}`);
355
+ console.log(hr());
356
+ const total = chunks.length;
357
+ for (let i = 0; i < chunks.length; i++) {
358
+ const chunk = chunks[i];
359
+ console.log();
360
+ console.log(b(`## Chunk ${i + 1}/${total}`) + ` ${d("—")} Section: ${chunk.section || d("(none)")}`);
361
+ console.log();
362
+ console.log(chunk.content);
363
+ }
364
+ console.log();
365
+ console.log(hr());
366
+ }
367
+ // ---------------------------------------------------------------------------
368
+ // sessions delete [id]
369
+ // ---------------------------------------------------------------------------
370
+ async function cmdSessionsDelete(sessionId, args = []) {
371
+ const withFilter = args.includes("--filter");
372
+ clack.intro(bold("Delete session"));
373
+ let session = null;
374
+ if (!sessionId) {
375
+ // No ID given — launch interactive picker
376
+ session = await pickSession(withFilter);
377
+ if (!session) {
378
+ clack.outro("Cancelled.");
379
+ return;
380
+ }
381
+ }
382
+ else {
383
+ session = withDb((db) => {
384
+ const rows = (0, database_2.listSessions)(db, {});
385
+ return rows.find((s) => s.session_id === sessionId) ?? null;
386
+ });
387
+ if (!session) {
388
+ console.error(`No session found with ID: ${sessionId}`);
389
+ process.exit(1);
390
+ }
391
+ }
392
+ clack.log.message([
393
+ `${bold(fmtTitle(session.session_title))}`,
394
+ `${fmtSource(session.source)} ${fmtDate(session.updated_at)} ${session.chunk_count} chunks`,
395
+ `Project: ${session.project || dim("—")}`,
396
+ `ID: ${dim(session.session_id)}`,
397
+ ].join("\n"), { symbol: "○" });
398
+ const confirmed = await clack.confirm({
399
+ message: `Delete this session (${session.chunk_count} chunks)?`,
400
+ initialValue: false,
401
+ });
402
+ if (clack.isCancel(confirmed) || !confirmed) {
403
+ clack.cancel("Deletion cancelled — database was not modified.");
404
+ return;
405
+ }
406
+ const deleted = withDb((db) => (0, database_2.deleteSession)(db, session.session_id));
407
+ clack.log.success(`Deleted ${deleted} chunks.`);
408
+ clack.log.warn("Note: if this session's source files still exist, it will be re-indexed on the next agent turn.");
409
+ clack.outro("Done.");
410
+ }
411
+ // ---------------------------------------------------------------------------
412
+ // Help
413
+ // ---------------------------------------------------------------------------
414
+ function sessionsHelp() {
415
+ const b = (s) => `\x1b[1m${s}\x1b[0m`;
416
+ console.log(`
417
+ ${b("sessions")} — Browse, inspect, and delete indexed sessions
418
+
419
+ ${b("Usage:")}
420
+ npx code-session-memory sessions Browse sessions interactively
421
+ npx code-session-memory sessions --filter Apply source/date filters before browsing
422
+ npx code-session-memory sessions list Same as above (explicit sub-command)
423
+ npx code-session-memory sessions list --filter Same with filter step
424
+
425
+ npx code-session-memory sessions print Pick a session interactively, then print
426
+ npx code-session-memory sessions print --filter Pick with filter, then print
427
+ npx code-session-memory sessions print <id> Print all chunks of a session directly
428
+
429
+ npx code-session-memory sessions delete Pick a session interactively, then delete
430
+ npx code-session-memory sessions delete --filter Pick with filter, then delete
431
+ npx code-session-memory sessions delete <id> Delete a session directly
432
+
433
+ ${b("Filter options")} (with --filter):
434
+ Source: All tools / OpenCode / Claude Code
435
+ Date range: Last 7 / 30 / 90 days, last N days (custom), older than N days (custom)
436
+
437
+ ${b("Notes:")}
438
+ - Deleting a session only removes it from the DB. If the source files still
439
+ exist, the session will be re-indexed on the next agent turn.
440
+ - "sessions print" output is pipe-friendly (no ANSI when stdout is not a TTY).
441
+ `);
442
+ }
443
+ // ---------------------------------------------------------------------------
444
+ // Entry point: dispatch sessions sub-commands
445
+ // ---------------------------------------------------------------------------
446
+ async function cmdSessions(argv) {
447
+ const sub = argv[0] ?? "list";
448
+ // Help flag anywhere in argv
449
+ if (argv.includes("--help") || argv.includes("-h")) {
450
+ sessionsHelp();
451
+ return;
452
+ }
453
+ switch (sub) {
454
+ case "list":
455
+ await cmdSessionsList(argv.slice(1));
456
+ break;
457
+ case "print": {
458
+ // argv[1] is either an ID or a flag (--filter) or absent
459
+ const maybeId = argv[1] && !argv[1].startsWith("-") ? argv[1] : undefined;
460
+ const restArgs = maybeId ? argv.slice(2) : argv.slice(1);
461
+ await cmdSessionsPrint(maybeId, restArgs);
462
+ break;
463
+ }
464
+ case "delete": {
465
+ const maybeId = argv[1] && !argv[1].startsWith("-") ? argv[1] : undefined;
466
+ const restArgs = maybeId ? argv.slice(2) : argv.slice(1);
467
+ await cmdSessionsDelete(maybeId, restArgs);
468
+ break;
469
+ }
470
+ default:
471
+ // Treat unknown first arg as implicit "list" (e.g. `sessions --filter`)
472
+ if (sub.startsWith("-")) {
473
+ await cmdSessionsList(argv);
474
+ }
475
+ else {
476
+ console.error(`Unknown sessions sub-command: ${sub}`);
477
+ console.error('Run "npx code-session-memory sessions --help" for usage.');
478
+ process.exit(1);
479
+ }
480
+ }
481
+ }
482
+ //# sourceMappingURL=cli-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-sessions.js","sourceRoot":"","sources":["../../src/cli-sessions.ts"],"names":[],"mappings":"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"}
package/dist/src/cli.d.ts CHANGED
@@ -3,9 +3,11 @@
3
3
  * code-session-memory CLI
4
4
  *
5
5
  * Usage:
6
- * npx code-session-memory install — install for OpenCode + Claude Code
7
- * npx code-session-memory status — show installation status
8
- * npx code-session-memory uninstall — remove all installed components
6
+ * npx code-session-memory install — install for OpenCode + Claude Code
7
+ * npx code-session-memory status — show installation status
8
+ * npx code-session-memory uninstall — remove all installed components
9
+ * npx code-session-memory reset-db — wipe the database (with confirmation)
10
+ * npx code-session-memory sessions — browse / print / delete sessions
9
11
  */
10
12
  export {};
11
13
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}