k0ntext 3.7.0 → 3.8.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.
Files changed (39) hide show
  1. package/README.md +281 -382
  2. package/dist/agent-system/timestamp-tracker.d.ts +159 -0
  3. package/dist/agent-system/timestamp-tracker.d.ts.map +1 -0
  4. package/dist/agent-system/timestamp-tracker.js +405 -0
  5. package/dist/agent-system/timestamp-tracker.js.map +1 -0
  6. package/dist/agent-system/todolist-manager.d.ts +244 -0
  7. package/dist/agent-system/todolist-manager.d.ts.map +1 -0
  8. package/dist/agent-system/todolist-manager.js +580 -0
  9. package/dist/agent-system/todolist-manager.js.map +1 -0
  10. package/dist/cli/commands/snapshot.d.ts +28 -0
  11. package/dist/cli/commands/snapshot.d.ts.map +1 -0
  12. package/dist/cli/commands/snapshot.js +408 -0
  13. package/dist/cli/commands/snapshot.js.map +1 -0
  14. package/dist/cli/version/comparator.d.ts +1 -0
  15. package/dist/cli/version/comparator.d.ts.map +1 -1
  16. package/dist/cli/version/comparator.js +1 -0
  17. package/dist/cli/version/comparator.js.map +1 -1
  18. package/dist/db/client.d.ts +5 -0
  19. package/dist/db/client.d.ts.map +1 -1
  20. package/dist/db/client.js +7 -0
  21. package/dist/db/client.js.map +1 -1
  22. package/dist/db/schema.d.ts +1 -1
  23. package/dist/db/schema.js +1 -1
  24. package/dist/services/snapshot-manager.d.ts +251 -0
  25. package/dist/services/snapshot-manager.d.ts.map +1 -0
  26. package/dist/services/snapshot-manager.js +541 -0
  27. package/dist/services/snapshot-manager.js.map +1 -0
  28. package/docs/QUICKSTART.md +1 -1
  29. package/docs/TROUBLESHOOTING.md +51 -76
  30. package/docs/plans/2026-02-11-context-engineering-enhancement.md +1402 -0
  31. package/package.json +8 -2
  32. package/src/agent-system/timestamp-tracker.ts +520 -0
  33. package/src/agent-system/todolist-manager.ts +753 -0
  34. package/src/cli/commands/snapshot.ts +471 -0
  35. package/src/cli/version/comparator.ts +1 -0
  36. package/src/db/client.ts +8 -0
  37. package/src/db/migrations/0016_add_context_system_tables.sql +38 -0
  38. package/src/db/schema.ts +1 -1
  39. package/src/services/snapshot-manager.ts +719 -0
@@ -0,0 +1,580 @@
1
+ /**
2
+ * Todo List Manager
3
+ *
4
+ * Manages persistent todo lists that survive context compactions.
5
+ * Uses markdown file storage in .claude/todos/ directory.
6
+ */
7
+ import fs from 'fs/promises';
8
+ import path from 'path';
9
+ import crypto from 'crypto';
10
+ /**
11
+ * Todo List Manager
12
+ *
13
+ * Manages persistent todo lists stored in markdown files.
14
+ */
15
+ export class TodoListManager {
16
+ db;
17
+ baseDir;
18
+ verbose;
19
+ TODO_DIR = 'todos';
20
+ ACTIVE_SUBDIR = 'active';
21
+ COMPLETED_SUBDIR = 'completed';
22
+ ARCHIVED_SUBDIR = 'archived';
23
+ constructor(db, options = {}) {
24
+ this.db = db;
25
+ this.baseDir = options.baseDir || path.join(process.cwd(), '.claude');
26
+ this.verbose = options.verbose || false;
27
+ }
28
+ /**
29
+ * Get todos directory path
30
+ */
31
+ getTodosDir() {
32
+ return path.join(this.baseDir, this.TODO_DIR);
33
+ }
34
+ /**
35
+ * Get active todos directory path
36
+ */
37
+ getActiveDir() {
38
+ return path.join(this.getTodosDir(), this.ACTIVE_SUBDIR);
39
+ }
40
+ /**
41
+ * Get completed todos directory path
42
+ */
43
+ getCompletedDir() {
44
+ return path.join(this.getTodosDir(), this.COMPLETED_SUBDIR);
45
+ }
46
+ /**
47
+ * Get archived todos directory path
48
+ */
49
+ getArchivedDir() {
50
+ return path.join(this.getTodosDir(), this.ARCHIVED_SUBDIR);
51
+ }
52
+ /**
53
+ * Ensure all required directories exist
54
+ */
55
+ async ensureDirectories() {
56
+ const dirs = [
57
+ this.getTodosDir(),
58
+ this.getActiveDir(),
59
+ this.getCompletedDir(),
60
+ this.getArchivedDir()
61
+ ];
62
+ for (const dir of dirs) {
63
+ try {
64
+ await fs.mkdir(dir, { recursive: true });
65
+ }
66
+ catch {
67
+ // Directory might already exist
68
+ }
69
+ }
70
+ }
71
+ /**
72
+ * Generate unique session ID
73
+ */
74
+ generateSessionId() {
75
+ const date = new Date().toISOString().split('T')[0].replace(/-/g, '');
76
+ const random = crypto.randomBytes(4).toString('hex').substring(0, 8);
77
+ return `sess-${date}-${random}`;
78
+ }
79
+ /**
80
+ * Generate unique task ID
81
+ */
82
+ generateTaskId() {
83
+ return crypto.randomBytes(8).toString('hex');
84
+ }
85
+ /**
86
+ * Get current timestamp
87
+ */
88
+ now() {
89
+ return new Date().toISOString();
90
+ }
91
+ /**
92
+ * Create a new todo session
93
+ *
94
+ * @param name - Session name
95
+ * @param tasks - Initial tasks (optional)
96
+ * @returns Created session
97
+ */
98
+ async createSession(name, tasks = []) {
99
+ await this.ensureDirectories();
100
+ const sessionId = this.generateSessionId();
101
+ const now = this.now();
102
+ const sessionTasks = tasks.map(task => ({
103
+ ...task,
104
+ id: this.generateTaskId(),
105
+ createdAt: now,
106
+ updatedAt: now
107
+ }));
108
+ const session = {
109
+ id: sessionId,
110
+ name,
111
+ status: 'active',
112
+ tasks: sessionTasks,
113
+ createdAt: now,
114
+ updatedAt: now
115
+ };
116
+ // Save to file
117
+ await this.saveSession(session);
118
+ // Store in database
119
+ this.storeSessionInDatabase(session);
120
+ if (this.verbose) {
121
+ console.log(`Created session: ${sessionId} with ${tasks.length} tasks`);
122
+ }
123
+ return session;
124
+ }
125
+ /**
126
+ * Get active session
127
+ *
128
+ * @returns Active session or null if none exists
129
+ */
130
+ async getActiveSession() {
131
+ await this.ensureDirectories();
132
+ const files = await fs.readdir(this.getActiveDir());
133
+ const mdFiles = files.filter(f => f.endsWith('.md') && !f.startsWith('.'));
134
+ if (mdFiles.length === 0) {
135
+ return null;
136
+ }
137
+ // Get most recent session
138
+ const latestFile = mdFiles.sort().reverse()[0];
139
+ const content = await fs.readFile(path.join(this.getActiveDir(), latestFile), 'utf-8');
140
+ return this.parseSession(content);
141
+ }
142
+ /**
143
+ * Get session by ID
144
+ *
145
+ * @param sessionId - Session ID
146
+ * @returns Session or null if not found
147
+ */
148
+ async getSession(sessionId) {
149
+ // Try active directory first
150
+ let sessionPath = path.join(this.getActiveDir(), `${sessionId}.md`);
151
+ try {
152
+ const content = await fs.readFile(sessionPath, 'utf-8');
153
+ return this.parseSession(content);
154
+ }
155
+ catch {
156
+ // Try completed directory
157
+ }
158
+ sessionPath = path.join(this.getCompletedDir(), `${sessionId}.md`);
159
+ try {
160
+ const content = await fs.readFile(sessionPath, 'utf-8');
161
+ return this.parseSession(content);
162
+ }
163
+ catch {
164
+ return null;
165
+ }
166
+ }
167
+ /**
168
+ * List all sessions
169
+ *
170
+ * @param status - Filter by status (optional)
171
+ * @returns Array of sessions
172
+ */
173
+ async listSessions(status) {
174
+ await this.ensureDirectories();
175
+ const sessions = [];
176
+ if (!status || status === 'active') {
177
+ const activeFiles = await fs.readdir(this.getActiveDir());
178
+ for (const file of activeFiles.filter(f => f.endsWith('.md'))) {
179
+ const content = await fs.readFile(path.join(this.getActiveDir(), file), 'utf-8');
180
+ sessions.push(this.parseSession(content));
181
+ }
182
+ }
183
+ if (!status || status === 'completed') {
184
+ const completedFiles = await fs.readdir(this.getCompletedDir());
185
+ for (const file of completedFiles.filter(f => f.endsWith('.md'))) {
186
+ const content = await fs.readFile(path.join(this.getCompletedDir(), file), 'utf-8');
187
+ sessions.push(this.parseSession(content));
188
+ }
189
+ }
190
+ return sessions.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
191
+ }
192
+ /**
193
+ * Update a task in the active session
194
+ *
195
+ * @param taskId - Task ID
196
+ * @param updates - Fields to update
197
+ * @returns Updated task or null if not found
198
+ */
199
+ async updateTask(taskId, updates) {
200
+ const session = await this.getActiveSession();
201
+ if (!session)
202
+ return null;
203
+ const task = session.tasks.find(t => t.id === taskId);
204
+ if (!task)
205
+ return null;
206
+ const updatedTask = { ...task, ...updates, updatedAt: this.now() };
207
+ if (updates.status === 'completed' && !task.completedAt) {
208
+ updatedTask.completedAt = this.now();
209
+ }
210
+ session.tasks = session.tasks.map(t => t.id === taskId ? updatedTask : t);
211
+ session.updatedAt = this.now();
212
+ await this.saveSession(session);
213
+ this.storeSessionInDatabase(session);
214
+ return updatedTask;
215
+ }
216
+ /**
217
+ * Add a task to the active session
218
+ *
219
+ * @param task - Task to add (without id)
220
+ * @returns Created task with ID
221
+ */
222
+ async addTask(task) {
223
+ const session = await this.getActiveSession();
224
+ if (!session) {
225
+ // Create new session if none exists
226
+ const newSession = await this.createSession('New Session', [task]);
227
+ return newSession.tasks[0];
228
+ }
229
+ const newTask = {
230
+ ...task,
231
+ id: this.generateTaskId(),
232
+ createdAt: this.now(),
233
+ updatedAt: this.now()
234
+ };
235
+ session.tasks.push(newTask);
236
+ session.updatedAt = this.now();
237
+ await this.saveSession(session);
238
+ this.storeSessionInDatabase(session);
239
+ return newTask;
240
+ }
241
+ /**
242
+ * Complete the active session
243
+ *
244
+ * @returns Completed session or null if no active session
245
+ */
246
+ async completeSession() {
247
+ const session = await this.getActiveSession();
248
+ if (!session)
249
+ return null;
250
+ const now = this.now();
251
+ session.status = 'completed';
252
+ session.updatedAt = now;
253
+ // Mark incomplete tasks as blocked
254
+ session.tasks = session.tasks.map(t => {
255
+ if (t.status !== 'completed') {
256
+ return { ...t, status: 'blocked' };
257
+ }
258
+ return t;
259
+ });
260
+ await this.saveSession(session);
261
+ // Move from active to completed
262
+ const activePath = path.join(this.getActiveDir(), `${session.id}.md`);
263
+ const completedPath = path.join(this.getCompletedDir(), `${session.id}.md`);
264
+ await fs.rename(activePath, completedPath);
265
+ this.storeSessionInDatabase(session);
266
+ return session;
267
+ }
268
+ /**
269
+ * Archive a session
270
+ *
271
+ * @param sessionId - Session ID to archive
272
+ * @returns True if archived successfully
273
+ */
274
+ async archiveSession(sessionId) {
275
+ const session = await this.getSession(sessionId);
276
+ if (!session)
277
+ return false;
278
+ // Add to archive file
279
+ const archiveDate = new Date().toISOString().split('T')[0];
280
+ const archivePath = path.join(this.getArchivedDir(), `${archiveDate}.md`);
281
+ const archiveContent = await this.generateArchiveContent(session);
282
+ await fs.appendFile(archivePath, archiveContent + '\n\n---\n\n', 'utf-8');
283
+ // Remove from completed
284
+ const completedPath = path.join(this.getCompletedDir(), `${sessionId}.md`);
285
+ await fs.unlink(completedPath);
286
+ return true;
287
+ }
288
+ /**
289
+ * Get progress for active session
290
+ *
291
+ * @returns Progress update or null if no active session
292
+ */
293
+ async getProgress() {
294
+ const session = await this.getActiveSession();
295
+ if (!session)
296
+ return null;
297
+ const total = session.tasks.length;
298
+ const completed = session.tasks.filter(t => t.status === 'completed').length;
299
+ const percentage = total > 0 ? Math.round((completed / total) * 100) : 0;
300
+ return {
301
+ sessionId: session.id,
302
+ total,
303
+ completed,
304
+ percentage
305
+ };
306
+ }
307
+ /**
308
+ * Save session to markdown file
309
+ */
310
+ async saveSession(session) {
311
+ const content = await this.generateSessionContent(session);
312
+ const filePath = path.join(session.status === 'active' ? this.getActiveDir() : this.getCompletedDir(), `${session.id}.md`);
313
+ await fs.writeFile(filePath, content, 'utf-8');
314
+ }
315
+ /**
316
+ * Generate session markdown content
317
+ */
318
+ async generateSessionContent(session) {
319
+ const statusEmoji = {
320
+ active: '🔄',
321
+ completed: '✅',
322
+ archived: '📦'
323
+ };
324
+ const taskEmoji = (status) => {
325
+ switch (status) {
326
+ case 'pending': return '[ ]';
327
+ case 'in-progress': return '[~]';
328
+ case 'completed': return '[x]';
329
+ case 'blocked': return '[-]';
330
+ case 'cancelled': return '[✗]';
331
+ }
332
+ };
333
+ let content = `# Session Todo: ${session.name}
334
+
335
+ **Session ID:** ${session.id}
336
+ **Created:** ${session.createdAt}
337
+ **Status:** ${session.status} ${statusEmoji[session.status]}
338
+
339
+ ## Tasks
340
+
341
+ `;
342
+ for (const task of session.tasks) {
343
+ content += `${taskEmoji(task.status)} Task ${task.id.substring(0, 8)}: ${task.subject}\n`;
344
+ if (task.description) {
345
+ content += ` ${task.description}\n`;
346
+ }
347
+ if (task.dependencies && task.dependencies.length > 0) {
348
+ content += ` Dependencies: ${task.dependencies.join(', ')}\n`;
349
+ }
350
+ content += '\n';
351
+ }
352
+ return content;
353
+ }
354
+ /**
355
+ * Generate archive entry content
356
+ */
357
+ async generateArchiveContent(session) {
358
+ const total = session.tasks.length;
359
+ const completed = session.tasks.filter(t => t.status === 'completed').length;
360
+ const duration = new Date(session.updatedAt).getTime() - new Date(session.createdAt).getTime();
361
+ const durationMinutes = Math.round(duration / 60000);
362
+ return `## Session: ${session.name}
363
+
364
+ **Session ID:** ${session.id}
365
+ **Status:** Completed ✅
366
+ **Duration:** ${durationMinutes}m
367
+ **Tasks:** ${completed}/${total} completed (${Math.round((completed / total) * 100)}%)
368
+
369
+ **Summary:**
370
+ All tasks for "${session.name}" completed at ${session.updatedAt}.
371
+ `;
372
+ }
373
+ /**
374
+ * Parse session from markdown content
375
+ */
376
+ parseSession(content) {
377
+ const lines = content.split('\n');
378
+ let id = '';
379
+ let name = 'Unknown Session';
380
+ let status = 'active';
381
+ let createdAt = new Date().toISOString();
382
+ let updatedAt = new Date().toISOString();
383
+ const tasks = [];
384
+ for (const line of lines) {
385
+ // Parse session metadata
386
+ const sessionMatch = line.match(/^\*\*Session ID:\s*(.+)$/);
387
+ if (sessionMatch)
388
+ id = sessionMatch[1];
389
+ const nameMatch = line.match(/^#\s+Session Todo:\s*(.+)$/);
390
+ if (nameMatch)
391
+ name = nameMatch[1];
392
+ const statusMatch = line.match(/^\*\*Status:\s*(\w+)\s/);
393
+ if (statusMatch) {
394
+ if (statusMatch[1].includes('active'))
395
+ status = 'active';
396
+ else if (statusMatch[1].includes('completed'))
397
+ status = 'completed';
398
+ else
399
+ status = 'archived';
400
+ }
401
+ const createdMatch = line.match(/^\*\*Created:\s*(.+)$/);
402
+ if (createdMatch)
403
+ createdAt = createdMatch[1];
404
+ // Parse tasks
405
+ const taskMatch = line.match(/^[\[\~x\s\-\]]\s+Task\s+([a-f0-9]+):\s*(.+)$/);
406
+ if (taskMatch) {
407
+ const taskId = taskMatch[1];
408
+ const subject = taskMatch[2];
409
+ const taskStatus = line.includes('[x]') ? 'completed' :
410
+ line.includes('[~]') ? 'in-progress' :
411
+ line.includes('[-]') ? 'blocked' :
412
+ line.includes('[✗]') ? 'cancelled' :
413
+ 'pending';
414
+ tasks.push({
415
+ id: taskId,
416
+ subject,
417
+ status: taskStatus,
418
+ createdAt,
419
+ updatedAt
420
+ });
421
+ }
422
+ }
423
+ return {
424
+ id,
425
+ name,
426
+ status,
427
+ tasks,
428
+ createdAt,
429
+ updatedAt
430
+ };
431
+ }
432
+ /**
433
+ * Store session in database
434
+ *
435
+ * Uses todo_sessions and todo_tasks tables for efficient querying.
436
+ */
437
+ storeSessionInDatabase(session) {
438
+ try {
439
+ // Check if schema supports todo tables
440
+ this.db.prepare('INSERT OR REPLACE INTO todo_sessions (id, name, created_at, updated_at, parent_session, metadata) VALUES (?, ?, ?, ?, ?, ?)').run(session.id, session.name, session.createdAt, session.updatedAt, session.parentSession, JSON.stringify(session.metadata || {}));
441
+ // Store tasks
442
+ for (const task of session.tasks) {
443
+ this.db.prepare('INSERT OR REPLACE INTO todo_tasks (id, session_id, subject, description, status, dependencies, assigned_to, created_at, updated_at, completed_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)').run(task.id, session.id, task.subject, task.description || '', task.status, JSON.stringify(task.dependencies || []), task.assignedTo || '', task.createdAt, task.updatedAt, task.completedAt);
444
+ }
445
+ if (this.verbose) {
446
+ console.log(`Stored session ${session.id} in database with ${session.tasks.length} tasks`);
447
+ }
448
+ }
449
+ catch (error) {
450
+ // Database might not have todo tables yet (migration 0016)
451
+ if (this.verbose) {
452
+ console.warn(`Could not store session in database: ${error}`);
453
+ }
454
+ }
455
+ }
456
+ /**
457
+ * Get session from database
458
+ *
459
+ * @param sessionId - Session ID
460
+ * @returns Session with tasks or null
461
+ */
462
+ getSessionFromDatabase(sessionId) {
463
+ try {
464
+ const sessionRow = this.db.prepare('SELECT * FROM todo_sessions WHERE id = ?').get(sessionId);
465
+ if (!sessionRow)
466
+ return null;
467
+ const session = sessionRow;
468
+ const tasksRows = this.db.prepare('SELECT * FROM todo_tasks WHERE session_id = ? ORDER BY created_at ASC').all(sessionId);
469
+ return {
470
+ id: typeof session.id === 'string' ? session.id : sessionId,
471
+ name: typeof session.name === 'string' ? session.name : 'Unknown',
472
+ status: (typeof session.status === 'string' && ['active', 'completed', 'archived'].includes(session.status))
473
+ ? session.status : 'active',
474
+ createdAt: typeof session.created_at === 'string' ? session.created_at : new Date().toISOString(),
475
+ updatedAt: typeof session.updated_at === 'string' ? session.updated_at : new Date().toISOString(),
476
+ parentSession: typeof session.parent_session === 'string' ? session.parent_session : undefined,
477
+ metadata: typeof session.metadata === 'string' ? JSON.parse(session.metadata) :
478
+ (session.metadata && typeof session.metadata === 'object') ? session.metadata : undefined,
479
+ tasks: tasksRows.map((t) => {
480
+ const task = t;
481
+ return {
482
+ id: typeof task.id === 'string' ? task.id : this.generateTaskId(),
483
+ subject: typeof task.subject === 'string' ? task.subject : '',
484
+ description: typeof task.description === 'string' ? task.description : undefined,
485
+ status: (typeof task.status === 'string' && ['pending', 'in-progress', 'completed', 'blocked', 'cancelled'].includes(task.status))
486
+ ? task.status : 'pending',
487
+ dependencies: typeof task.dependencies === 'string' ? JSON.parse(task.dependencies) :
488
+ (task.dependencies && Array.isArray(task.dependencies)) ? task.dependencies : undefined,
489
+ assignedTo: typeof task.assigned_to === 'string' ? task.assigned_to : undefined,
490
+ createdAt: typeof task.created_at === 'string' ? task.created_at : new Date().toISOString(),
491
+ updatedAt: typeof task.updated_at === 'string' ? task.updated_at : new Date().toISOString(),
492
+ completedAt: typeof task.completed_at === 'string' ? task.completed_at : undefined
493
+ };
494
+ })
495
+ };
496
+ }
497
+ catch (error) {
498
+ if (this.verbose) {
499
+ console.warn(`Could not read session from database: ${error}`);
500
+ }
501
+ return null;
502
+ }
503
+ }
504
+ /**
505
+ * Export session as markdown
506
+ *
507
+ * @param sessionId - Session ID
508
+ * @returns Markdown content
509
+ */
510
+ async exportSession(sessionId) {
511
+ const session = await this.getSession(sessionId);
512
+ if (!session)
513
+ return null;
514
+ return await this.generateSessionContent(session);
515
+ }
516
+ /**
517
+ * Import tasks from markdown
518
+ *
519
+ * @param markdownContent - Markdown content
520
+ * @returns Created session
521
+ */
522
+ async importTasks(markdownContent, sessionName) {
523
+ const imported = this.parseSession(markdownContent);
524
+ const tasks = imported.tasks.map(t => ({
525
+ subject: t.subject,
526
+ description: t.description,
527
+ status: t.status
528
+ }));
529
+ return await this.createSession(sessionName || 'Imported Session', tasks);
530
+ }
531
+ /**
532
+ * Clean up old archived sessions
533
+ *
534
+ * @param daysOld - Remove archives older than this many days
535
+ * @returns Number of archives removed
536
+ */
537
+ async cleanupOldArchives(daysOld = 30) {
538
+ const archiveDir = this.getArchivedDir();
539
+ const files = await fs.readdir(archiveDir);
540
+ const cutoff = Date.now() - (daysOld * 24 * 60 * 60 * 1000);
541
+ let removed = 0;
542
+ for (const file of files) {
543
+ if (!file.endsWith('.md'))
544
+ continue;
545
+ const filePath = path.join(archiveDir, file);
546
+ const stats = await fs.stat(filePath);
547
+ if (stats.mtime.getTime() < cutoff) {
548
+ await fs.unlink(filePath);
549
+ removed++;
550
+ if (this.verbose) {
551
+ console.log(`Removed old archive: ${file}`);
552
+ }
553
+ }
554
+ }
555
+ return removed;
556
+ }
557
+ /**
558
+ * Get all sessions for reporting
559
+ *
560
+ * @returns Summary of all sessions
561
+ */
562
+ async getSummary() {
563
+ const allSessions = await this.listSessions();
564
+ const activeCount = allSessions.filter(s => s.status === 'active').length;
565
+ const completedCount = allSessions.filter(s => s.status === 'completed').length;
566
+ let totalTasks = 0;
567
+ let completedTasks = 0;
568
+ for (const session of allSessions) {
569
+ totalTasks += session.tasks.length;
570
+ completedTasks += session.tasks.filter(t => t.status === 'completed').length;
571
+ }
572
+ return {
573
+ active: activeCount,
574
+ completed: completedCount,
575
+ totalTasks,
576
+ completedTasks
577
+ };
578
+ }
579
+ }
580
+ //# sourceMappingURL=todolist-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todolist-manager.js","sourceRoot":"","sources":["../../src/agent-system/todolist-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Snapshot Commands
3
+ *
4
+ * CLI commands for managing database snapshots.
5
+ * Supports create, restore, list, and diff operations.
6
+ */
7
+ import { Command } from 'commander';
8
+ /**
9
+ * Snapshot create command
10
+ */
11
+ export declare const snapshotCreateCommand: Command;
12
+ /**
13
+ * Snapshot restore command
14
+ */
15
+ export declare const snapshotRestoreCommand: Command;
16
+ /**
17
+ * Snapshot list command
18
+ */
19
+ export declare const snapshotListCommand: Command;
20
+ /**
21
+ * Snapshot diff command
22
+ */
23
+ export declare const snapshotDiffCommand: Command;
24
+ /**
25
+ * Snapshot delete command
26
+ */
27
+ export declare const snapshotDeleteCommand: Command;
28
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgEpC;;GAEG;AACH,eAAO,MAAM,qBAAqB,SA8D9B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,sBAAsB,SA0G/B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAoF5B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,mBAAmB,SA6E5B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,qBAAqB,SA+C9B,CAAC"}