@asifkibria/claude-code-toolkit 1.0.2 → 1.2.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 (69) hide show
  1. package/README.md +165 -214
  2. package/dist/CLAUDE.md +7 -0
  3. package/dist/__tests__/dashboard.test.d.ts +2 -0
  4. package/dist/__tests__/dashboard.test.d.ts.map +1 -0
  5. package/dist/__tests__/dashboard.test.js +606 -0
  6. package/dist/__tests__/dashboard.test.js.map +1 -0
  7. package/dist/__tests__/mcp-validator.test.d.ts +2 -0
  8. package/dist/__tests__/mcp-validator.test.d.ts.map +1 -0
  9. package/dist/__tests__/mcp-validator.test.js +217 -0
  10. package/dist/__tests__/mcp-validator.test.js.map +1 -0
  11. package/dist/__tests__/scanner.test.js +350 -1
  12. package/dist/__tests__/scanner.test.js.map +1 -1
  13. package/dist/__tests__/security.test.d.ts +2 -0
  14. package/dist/__tests__/security.test.d.ts.map +1 -0
  15. package/dist/__tests__/security.test.js +375 -0
  16. package/dist/__tests__/security.test.js.map +1 -0
  17. package/dist/__tests__/session-recovery.test.d.ts +2 -0
  18. package/dist/__tests__/session-recovery.test.d.ts.map +1 -0
  19. package/dist/__tests__/session-recovery.test.js +230 -0
  20. package/dist/__tests__/session-recovery.test.js.map +1 -0
  21. package/dist/__tests__/storage.test.d.ts +2 -0
  22. package/dist/__tests__/storage.test.d.ts.map +1 -0
  23. package/dist/__tests__/storage.test.js +241 -0
  24. package/dist/__tests__/storage.test.js.map +1 -0
  25. package/dist/__tests__/trace.test.d.ts +2 -0
  26. package/dist/__tests__/trace.test.d.ts.map +1 -0
  27. package/dist/__tests__/trace.test.js +376 -0
  28. package/dist/__tests__/trace.test.js.map +1 -0
  29. package/dist/cli.js +501 -20
  30. package/dist/cli.js.map +1 -1
  31. package/dist/index.js +950 -3
  32. package/dist/index.js.map +1 -1
  33. package/dist/lib/dashboard-ui.d.ts +2 -0
  34. package/dist/lib/dashboard-ui.d.ts.map +1 -0
  35. package/dist/lib/dashboard-ui.js +2075 -0
  36. package/dist/lib/dashboard-ui.js.map +1 -0
  37. package/dist/lib/dashboard.d.ts +15 -0
  38. package/dist/lib/dashboard.d.ts.map +1 -0
  39. package/dist/lib/dashboard.js +1422 -0
  40. package/dist/lib/dashboard.js.map +1 -0
  41. package/dist/lib/logs.d.ts +42 -0
  42. package/dist/lib/logs.d.ts.map +1 -0
  43. package/dist/lib/logs.js +166 -0
  44. package/dist/lib/logs.js.map +1 -0
  45. package/dist/lib/mcp-validator.d.ts +86 -0
  46. package/dist/lib/mcp-validator.d.ts.map +1 -0
  47. package/dist/lib/mcp-validator.js +463 -0
  48. package/dist/lib/mcp-validator.js.map +1 -0
  49. package/dist/lib/scanner.d.ts +187 -2
  50. package/dist/lib/scanner.d.ts.map +1 -1
  51. package/dist/lib/scanner.js +1224 -14
  52. package/dist/lib/scanner.js.map +1 -1
  53. package/dist/lib/security.d.ts +57 -0
  54. package/dist/lib/security.d.ts.map +1 -0
  55. package/dist/lib/security.js +423 -0
  56. package/dist/lib/security.js.map +1 -0
  57. package/dist/lib/session-recovery.d.ts +60 -0
  58. package/dist/lib/session-recovery.d.ts.map +1 -0
  59. package/dist/lib/session-recovery.js +433 -0
  60. package/dist/lib/session-recovery.js.map +1 -0
  61. package/dist/lib/storage.d.ts +68 -0
  62. package/dist/lib/storage.d.ts.map +1 -0
  63. package/dist/lib/storage.js +500 -0
  64. package/dist/lib/storage.js.map +1 -0
  65. package/dist/lib/trace.d.ts +119 -0
  66. package/dist/lib/trace.d.ts.map +1 -0
  67. package/dist/lib/trace.js +649 -0
  68. package/dist/lib/trace.js.map +1 -0
  69. package/package.json +11 -3
@@ -0,0 +1,500 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import * as os from "os";
4
+ const CLAUDE_DIR = path.join(os.homedir(), ".claude");
5
+ const SNAPSHOTS_DIR = path.join(CLAUDE_DIR, "storage-snapshots");
6
+ const PROJECTS_DIR = path.join(CLAUDE_DIR, "projects");
7
+ function formatBytes(bytes) {
8
+ if (bytes < 1024)
9
+ return `${bytes} B`;
10
+ if (bytes < 1024 * 1024)
11
+ return `${(bytes / 1024).toFixed(1)} KB`;
12
+ if (bytes < 1024 * 1024 * 1024)
13
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
14
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
15
+ }
16
+ function getDirStats(dirPath) {
17
+ const result = { totalSize: 0, fileCount: 0, files: [] };
18
+ function walk(dir) {
19
+ try {
20
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
21
+ for (const entry of entries) {
22
+ const fullPath = path.join(dir, entry.name);
23
+ if (entry.isDirectory()) {
24
+ walk(fullPath);
25
+ }
26
+ else if (entry.isFile()) {
27
+ try {
28
+ const stat = fs.statSync(fullPath);
29
+ result.totalSize += stat.size;
30
+ result.fileCount++;
31
+ result.files.push({ path: fullPath, size: stat.size, mtime: stat.mtime });
32
+ }
33
+ catch {
34
+ // skip
35
+ }
36
+ }
37
+ }
38
+ }
39
+ catch {
40
+ // skip
41
+ }
42
+ }
43
+ if (fs.existsSync(dirPath)) {
44
+ walk(dirPath);
45
+ }
46
+ return result;
47
+ }
48
+ function isOlderThanDays(mtime, days) {
49
+ const threshold = Date.now() - days * 24 * 60 * 60 * 1000;
50
+ return mtime.getTime() < threshold;
51
+ }
52
+ function getActiveSessionIds(projectsDir) {
53
+ const ids = new Set();
54
+ try {
55
+ const projects = fs.readdirSync(projectsDir, { withFileTypes: true });
56
+ for (const proj of projects) {
57
+ if (!proj.isDirectory())
58
+ continue;
59
+ const indexPath = path.join(projectsDir, proj.name, "sessions-index.json");
60
+ try {
61
+ const data = JSON.parse(fs.readFileSync(indexPath, "utf-8"));
62
+ if (data.entries && Array.isArray(data.entries)) {
63
+ for (const entry of data.entries) {
64
+ if (entry.sessionId)
65
+ ids.add(entry.sessionId);
66
+ }
67
+ }
68
+ }
69
+ catch {
70
+ // skip
71
+ }
72
+ }
73
+ }
74
+ catch {
75
+ // skip
76
+ }
77
+ return ids;
78
+ }
79
+ function isDirEmpty(dirPath) {
80
+ try {
81
+ const entries = fs.readdirSync(dirPath);
82
+ return entries.length === 0;
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ }
88
+ export function analyzeClaudeStorage(claudeDir = CLAUDE_DIR) {
89
+ const categories = [];
90
+ const allFiles = [];
91
+ const knownDirs = [
92
+ { name: "projects", label: "projects" },
93
+ { name: "plugins", label: "plugins" },
94
+ { name: "local", label: "local" },
95
+ { name: "shell-snapshots", label: "shell-snapshots" },
96
+ { name: "file-history", label: "file-history" },
97
+ { name: "debug", label: "debug" },
98
+ { name: "todos", label: "todos" },
99
+ { name: "session-env", label: "session-env" },
100
+ { name: "cache", label: "cache" },
101
+ { name: "statsig", label: "statsig" },
102
+ { name: "agents", label: "agents" },
103
+ { name: "plans", label: "plans" },
104
+ ];
105
+ const projectsDir = path.join(claudeDir, "projects");
106
+ const activeSessionIds = getActiveSessionIds(projectsDir);
107
+ for (const dir of knownDirs) {
108
+ const dirPath = path.join(claudeDir, dir.name);
109
+ const stats = getDirStats(dirPath);
110
+ let cleanableSize = 0;
111
+ let cleanableCount = 0;
112
+ for (const file of stats.files) {
113
+ allFiles.push({ path: file.path, size: file.size });
114
+ switch (dir.name) {
115
+ case "debug":
116
+ if (isOlderThanDays(file.mtime, 7)) {
117
+ cleanableSize += file.size;
118
+ cleanableCount++;
119
+ }
120
+ break;
121
+ case "todos":
122
+ if (file.size <= 2) {
123
+ cleanableSize += file.size;
124
+ cleanableCount++;
125
+ }
126
+ break;
127
+ case "shell-snapshots":
128
+ if (isOlderThanDays(file.mtime, 7)) {
129
+ cleanableSize += file.size;
130
+ cleanableCount++;
131
+ }
132
+ break;
133
+ case "cache":
134
+ cleanableSize += file.size;
135
+ cleanableCount++;
136
+ break;
137
+ }
138
+ }
139
+ if (dir.name === "file-history") {
140
+ const fhDir = path.join(claudeDir, "file-history");
141
+ try {
142
+ const sessionDirs = fs.readdirSync(fhDir, { withFileTypes: true });
143
+ for (const sd of sessionDirs) {
144
+ if (sd.isDirectory() && !activeSessionIds.has(sd.name)) {
145
+ const orphanStats = getDirStats(path.join(fhDir, sd.name));
146
+ cleanableSize += orphanStats.totalSize;
147
+ cleanableCount += orphanStats.fileCount;
148
+ }
149
+ }
150
+ }
151
+ catch {
152
+ // skip
153
+ }
154
+ }
155
+ if (dir.name === "session-env") {
156
+ const seDir = path.join(claudeDir, "session-env");
157
+ try {
158
+ const sessionDirs = fs.readdirSync(seDir, { withFileTypes: true });
159
+ for (const sd of sessionDirs) {
160
+ if (sd.isDirectory() && isDirEmpty(path.join(seDir, sd.name))) {
161
+ cleanableCount++;
162
+ }
163
+ }
164
+ }
165
+ catch {
166
+ // skip
167
+ }
168
+ }
169
+ categories.push({
170
+ name: dir.label,
171
+ path: dirPath,
172
+ totalSize: stats.totalSize,
173
+ fileCount: stats.fileCount,
174
+ cleanableSize,
175
+ cleanableCount,
176
+ });
177
+ }
178
+ allFiles.sort((a, b) => b.size - a.size);
179
+ const largestFiles = allFiles.slice(0, 10);
180
+ const totalSize = categories.reduce((sum, c) => sum + c.totalSize, 0);
181
+ const totalCleanable = categories.reduce((sum, c) => sum + c.cleanableSize, 0);
182
+ const recommendations = [];
183
+ if (totalCleanable > 10 * 1024 * 1024) {
184
+ recommendations.push(`Run 'cct clean' to free ${formatBytes(totalCleanable)} of disk space`);
185
+ }
186
+ const debugCat = categories.find(c => c.name === "debug");
187
+ if (debugCat && debugCat.totalSize > 50 * 1024 * 1024) {
188
+ recommendations.push("Debug logs are large - consider cleaning with --category debug");
189
+ }
190
+ const projectsCat = categories.find(c => c.name === "projects");
191
+ if (projectsCat && projectsCat.totalSize > 500 * 1024 * 1024) {
192
+ recommendations.push("Projects directory is large - consider archiving old conversations");
193
+ }
194
+ return {
195
+ totalSize,
196
+ categories,
197
+ largestFiles,
198
+ recommendations,
199
+ analyzedAt: new Date(),
200
+ };
201
+ }
202
+ export function findCleanupTargets(claudeDir = CLAUDE_DIR, options = {}) {
203
+ const days = options.days ?? 7;
204
+ const filterCategories = options.categories;
205
+ const targets = [];
206
+ function shouldProcess(category) {
207
+ return !filterCategories || filterCategories.includes(category);
208
+ }
209
+ if (shouldProcess("debug")) {
210
+ const debugDir = path.join(claudeDir, "debug");
211
+ const files = [];
212
+ let totalSize = 0;
213
+ try {
214
+ const entries = fs.readdirSync(debugDir, { withFileTypes: true });
215
+ for (const entry of entries) {
216
+ if (!entry.isFile())
217
+ continue;
218
+ const fullPath = path.join(debugDir, entry.name);
219
+ try {
220
+ const stat = fs.statSync(fullPath);
221
+ if (isOlderThanDays(stat.mtime, days)) {
222
+ files.push(fullPath);
223
+ totalSize += stat.size;
224
+ }
225
+ }
226
+ catch { /* skip */ }
227
+ }
228
+ }
229
+ catch { /* skip */ }
230
+ if (files.length > 0) {
231
+ targets.push({ category: "debug", files, totalSize, reason: `Debug logs older than ${days} days` });
232
+ }
233
+ }
234
+ if (shouldProcess("todos")) {
235
+ const todosDir = path.join(claudeDir, "todos");
236
+ const files = [];
237
+ let totalSize = 0;
238
+ try {
239
+ const entries = fs.readdirSync(todosDir, { withFileTypes: true });
240
+ for (const entry of entries) {
241
+ if (!entry.isFile())
242
+ continue;
243
+ const fullPath = path.join(todosDir, entry.name);
244
+ try {
245
+ const stat = fs.statSync(fullPath);
246
+ if (stat.size <= 2) {
247
+ files.push(fullPath);
248
+ totalSize += stat.size;
249
+ }
250
+ }
251
+ catch { /* skip */ }
252
+ }
253
+ }
254
+ catch { /* skip */ }
255
+ if (files.length > 0) {
256
+ targets.push({ category: "todos", files, totalSize, reason: "Empty todo files (0-2 bytes)" });
257
+ }
258
+ }
259
+ if (shouldProcess("shell-snapshots")) {
260
+ const snapDir = path.join(claudeDir, "shell-snapshots");
261
+ const files = [];
262
+ let totalSize = 0;
263
+ try {
264
+ const entries = fs.readdirSync(snapDir, { withFileTypes: true });
265
+ for (const entry of entries) {
266
+ if (!entry.isFile())
267
+ continue;
268
+ const fullPath = path.join(snapDir, entry.name);
269
+ try {
270
+ const stat = fs.statSync(fullPath);
271
+ if (isOlderThanDays(stat.mtime, days)) {
272
+ files.push(fullPath);
273
+ totalSize += stat.size;
274
+ }
275
+ }
276
+ catch { /* skip */ }
277
+ }
278
+ }
279
+ catch { /* skip */ }
280
+ if (files.length > 0) {
281
+ targets.push({ category: "shell-snapshots", files, totalSize, reason: `Shell snapshots older than ${days} days` });
282
+ }
283
+ }
284
+ if (shouldProcess("file-history")) {
285
+ const fhDir = path.join(claudeDir, "file-history");
286
+ const projectsDir = path.join(claudeDir, "projects");
287
+ const activeIds = getActiveSessionIds(projectsDir);
288
+ const files = [];
289
+ let totalSize = 0;
290
+ try {
291
+ const sessionDirs = fs.readdirSync(fhDir, { withFileTypes: true });
292
+ for (const sd of sessionDirs) {
293
+ if (!sd.isDirectory() || activeIds.has(sd.name))
294
+ continue;
295
+ const orphanDir = path.join(fhDir, sd.name);
296
+ const stats = getDirStats(orphanDir);
297
+ files.push(orphanDir);
298
+ totalSize += stats.totalSize;
299
+ }
300
+ }
301
+ catch { /* skip */ }
302
+ if (files.length > 0) {
303
+ targets.push({ category: "file-history", files, totalSize, reason: "Orphaned file history (session no longer exists)" });
304
+ }
305
+ }
306
+ if (shouldProcess("session-env")) {
307
+ const seDir = path.join(claudeDir, "session-env");
308
+ const files = [];
309
+ try {
310
+ const entries = fs.readdirSync(seDir, { withFileTypes: true });
311
+ for (const entry of entries) {
312
+ if (!entry.isDirectory())
313
+ continue;
314
+ const fullPath = path.join(seDir, entry.name);
315
+ if (isDirEmpty(fullPath)) {
316
+ files.push(fullPath);
317
+ }
318
+ }
319
+ }
320
+ catch { /* skip */ }
321
+ if (files.length > 0) {
322
+ targets.push({ category: "session-env", files, totalSize: 0, reason: "Empty session environment directories" });
323
+ }
324
+ }
325
+ if (shouldProcess("cache")) {
326
+ const cacheDir = path.join(claudeDir, "cache");
327
+ const stats = getDirStats(cacheDir);
328
+ if (stats.fileCount > 0) {
329
+ targets.push({
330
+ category: "cache",
331
+ files: stats.files.map(f => f.path),
332
+ totalSize: stats.totalSize,
333
+ reason: "Rebuildable cache files",
334
+ });
335
+ }
336
+ }
337
+ return targets;
338
+ }
339
+ export function cleanClaudeDirectory(claudeDir = CLAUDE_DIR, options = {}) {
340
+ const dryRun = options.dryRun ?? true;
341
+ const targets = findCleanupTargets(claudeDir, options);
342
+ const result = {
343
+ deleted: [],
344
+ freed: 0,
345
+ errors: [],
346
+ dryRun,
347
+ };
348
+ if (dryRun) {
349
+ for (const target of targets) {
350
+ result.deleted.push(...target.files);
351
+ result.freed += target.totalSize;
352
+ }
353
+ return result;
354
+ }
355
+ for (const target of targets) {
356
+ for (const file of target.files) {
357
+ try {
358
+ const stat = fs.statSync(file);
359
+ if (stat.isDirectory()) {
360
+ fs.rmSync(file, { recursive: true });
361
+ }
362
+ else {
363
+ fs.unlinkSync(file);
364
+ }
365
+ result.deleted.push(file);
366
+ result.freed += target.category === "session-env" ? 0 : (stat.isDirectory() ? getDirStats(file).totalSize : stat.size);
367
+ }
368
+ catch (e) {
369
+ result.errors.push(`Failed to delete ${file}: ${e}`);
370
+ }
371
+ }
372
+ }
373
+ return result;
374
+ }
375
+ export function formatStorageReport(analysis) {
376
+ let output = "";
377
+ output += "╔══════════════════════════════════════════════╗\n";
378
+ output += "║ CLAUDE STORAGE ANALYSIS ║\n";
379
+ output += "╚══════════════════════════════════════════════╝\n\n";
380
+ output += `Total Size: ${formatBytes(analysis.totalSize)}\n\n`;
381
+ output += "Category Size Files Cleanable\n";
382
+ output += "─────────────────────────────────────────────────────\n";
383
+ for (const cat of analysis.categories) {
384
+ if (cat.totalSize === 0 && cat.fileCount === 0)
385
+ continue;
386
+ const name = cat.name.padEnd(20);
387
+ const size = formatBytes(cat.totalSize).padStart(10);
388
+ const count = String(cat.fileCount).padStart(7);
389
+ const cleanable = cat.cleanableSize > 0 ? formatBytes(cat.cleanableSize) : "-";
390
+ output += `${name} ${size} ${count} ${cleanable}\n`;
391
+ }
392
+ if (analysis.largestFiles.length > 0) {
393
+ output += "\nLargest Files:\n";
394
+ for (const file of analysis.largestFiles.slice(0, 5)) {
395
+ const relPath = path.relative(CLAUDE_DIR, file.path);
396
+ const short = relPath.length > 50 ? "..." + relPath.slice(-47) : relPath;
397
+ output += ` ${formatBytes(file.size).padStart(10)} ${short}\n`;
398
+ }
399
+ }
400
+ if (analysis.recommendations.length > 0) {
401
+ output += "\nRecommendations:\n";
402
+ for (const rec of analysis.recommendations) {
403
+ output += ` • ${rec}\n`;
404
+ }
405
+ }
406
+ return output;
407
+ }
408
+ export function formatCleanupReport(targets, result, dryRun = true) {
409
+ let output = "";
410
+ if (dryRun) {
411
+ output += "\n[DRY RUN] The following would be cleaned:\n\n";
412
+ }
413
+ else {
414
+ output += "\nCleanup Results:\n\n";
415
+ }
416
+ const totalFiles = targets.reduce((sum, t) => sum + t.files.length, 0);
417
+ const totalSize = targets.reduce((sum, t) => sum + t.totalSize, 0);
418
+ for (const target of targets) {
419
+ output += ` ${target.category}: ${target.files.length} items (${formatBytes(target.totalSize)})\n`;
420
+ output += ` Reason: ${target.reason}\n`;
421
+ }
422
+ output += `\nTotal: ${totalFiles} items, ${formatBytes(totalSize)}\n`;
423
+ if (result && !dryRun) {
424
+ if (result.errors.length > 0) {
425
+ output += `\nErrors (${result.errors.length}):\n`;
426
+ for (const err of result.errors) {
427
+ output += ` ✗ ${err}\n`;
428
+ }
429
+ }
430
+ output += `\nFreed: ${formatBytes(result.freed)}\n`;
431
+ }
432
+ if (dryRun) {
433
+ output += "\nRun without --dry-run to perform cleanup.\n";
434
+ }
435
+ return output;
436
+ }
437
+ export function saveStorageSnapshot(analysis, label = "Manual Snapshot") {
438
+ if (!fs.existsSync(SNAPSHOTS_DIR))
439
+ fs.mkdirSync(SNAPSHOTS_DIR, { recursive: true });
440
+ const id = new Date().toISOString().replace(/[:.]/g, "-");
441
+ const snapshot = { id, date: new Date(), label, analysis };
442
+ const filePath = path.join(SNAPSHOTS_DIR, `${id}.json`);
443
+ fs.writeFileSync(filePath, JSON.stringify(snapshot, null, 2));
444
+ return id;
445
+ }
446
+ export function listStorageSnapshots() {
447
+ if (!fs.existsSync(SNAPSHOTS_DIR))
448
+ return [];
449
+ return fs.readdirSync(SNAPSHOTS_DIR)
450
+ .filter(f => f.endsWith(".json"))
451
+ .map(f => {
452
+ try {
453
+ const content = fs.readFileSync(path.join(SNAPSHOTS_DIR, f), "utf-8");
454
+ const s = JSON.parse(content);
455
+ return { id: s.id, date: new Date(s.date), label: s.label, size: s.analysis.totalSize };
456
+ }
457
+ catch {
458
+ return null;
459
+ }
460
+ })
461
+ .filter((x) => !!x)
462
+ .sort((a, b) => b.date.getTime() - a.date.getTime());
463
+ }
464
+ export function loadStorageSnapshot(id) {
465
+ const filePath = path.join(SNAPSHOTS_DIR, `${id}.json`);
466
+ if (!fs.existsSync(filePath))
467
+ return null;
468
+ const s = JSON.parse(fs.readFileSync(filePath, "utf-8"));
469
+ s.date = new Date(s.date);
470
+ return s;
471
+ }
472
+ export function compareStorageSnapshots(base, current) {
473
+ const baseFiles = new Set(base.largestFiles.map(f => f.path)); // Note: largestFiles is only top 10, strictly we'd need allFiles to be accurate on added/removed.
474
+ // However, StorageAnalysis only exposes largestFiles. To do full comparisons, we'd need to store allFiles in StorageAnalysis which might be huge.
475
+ // For now, let's compare categories and totals.
476
+ const categoryDiffs = current.categories.map(c => {
477
+ const b = base.categories.find(k => k.name === c.name);
478
+ return {
479
+ name: c.name,
480
+ sizeDiff: c.totalSize - (b?.totalSize || 0),
481
+ fileDiff: c.fileCount - (b?.fileCount || 0)
482
+ };
483
+ });
484
+ return {
485
+ added: [], // Cannot determine from summary
486
+ removed: [], // Cannot determine from summary
487
+ sizeDiff: current.totalSize - base.totalSize,
488
+ fileCountDiff: current.categories.reduce((s, c) => s + c.fileCount, 0) - base.categories.reduce((s, c) => s + c.fileCount, 0),
489
+ categoryDiffs
490
+ };
491
+ }
492
+ export function deleteStorageSnapshot(id) {
493
+ const filePath = path.join(SNAPSHOTS_DIR, `${id}.json`);
494
+ if (fs.existsSync(filePath)) {
495
+ fs.unlinkSync(filePath);
496
+ return true;
497
+ }
498
+ return false;
499
+ }
500
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/lib/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ export interface TraceItem {
2
+ category: string;
3
+ path: string;
4
+ size: number;
5
+ modified: Date;
6
+ sensitivity: "critical" | "high" | "medium" | "low";
7
+ }
8
+ export interface TraceCategory {
9
+ name: string;
10
+ description: string;
11
+ sensitivity: "critical" | "high" | "medium" | "low";
12
+ items: TraceItem[];
13
+ totalSize: number;
14
+ fileCount: number;
15
+ oldestFile?: Date;
16
+ newestFile?: Date;
17
+ }
18
+ export interface TraceInventory {
19
+ totalSize: number;
20
+ totalFiles: number;
21
+ categories: TraceCategory[];
22
+ criticalItems: number;
23
+ highItems: number;
24
+ analyzedAt: Date;
25
+ }
26
+ export interface TraceCleanOptions {
27
+ categories?: string[];
28
+ project?: string;
29
+ days?: number;
30
+ dryRun?: boolean;
31
+ preserveSettings?: boolean;
32
+ exclusions?: TraceExclusion[];
33
+ }
34
+ export interface TraceCleanResult {
35
+ deleted: string[];
36
+ freed: number;
37
+ errors: string[];
38
+ categoriesAffected: string[];
39
+ dryRun: boolean;
40
+ }
41
+ export interface TraceWipeOptions {
42
+ confirm?: boolean;
43
+ keepSettings?: boolean;
44
+ keepPlugins?: boolean;
45
+ exclusions?: TraceExclusion[];
46
+ }
47
+ export interface TraceWipeResult {
48
+ filesWiped: number;
49
+ bytesFreed: number;
50
+ categoriesWiped: string[];
51
+ preserved: string[];
52
+ wipeReceipt: string;
53
+ completedAt: Date;
54
+ }
55
+ export interface TraceExclusion {
56
+ id?: string;
57
+ type: "project" | "category" | "path";
58
+ value: string;
59
+ description?: string;
60
+ }
61
+ export interface EnhancedTracePreview {
62
+ summary: {
63
+ totalFiles: number;
64
+ totalSize: number;
65
+ criticalFiles: number;
66
+ highFiles: number;
67
+ mediumFiles: number;
68
+ lowFiles: number;
69
+ };
70
+ byCategory: Array<{
71
+ name: string;
72
+ sensitivity: "critical" | "high" | "medium" | "low";
73
+ description: string;
74
+ fileCount: number;
75
+ totalSize: number;
76
+ samplePaths: string[];
77
+ impactWarning: string;
78
+ }>;
79
+ preserved: {
80
+ byExclusion: Array<{
81
+ exclusion: TraceExclusion;
82
+ matchedFiles: number;
83
+ matchedSize: number;
84
+ }>;
85
+ settings: boolean;
86
+ totalPreserved: number;
87
+ };
88
+ warnings: string[];
89
+ }
90
+ export interface TraceGuardHook {
91
+ event: string;
92
+ matcher?: string;
93
+ command: string;
94
+ description: string;
95
+ }
96
+ export interface TraceGuardConfig {
97
+ mode: string;
98
+ hooks: TraceGuardHook[];
99
+ settingsJson: string;
100
+ instructions: string;
101
+ }
102
+ export declare function generateEnhancedPreview(claudeDir: string | undefined, options: {
103
+ operation: "clean" | "wipe";
104
+ exclusions?: TraceExclusion[];
105
+ days?: number;
106
+ categories?: string[];
107
+ }): EnhancedTracePreview;
108
+ export declare function inventoryTraces(claudeDir?: string, options?: {
109
+ project?: string;
110
+ }): TraceInventory;
111
+ export declare function cleanTraces(claudeDir?: string, options?: TraceCleanOptions): TraceCleanResult;
112
+ export declare function wipeAllTraces(claudeDir?: string, options?: TraceWipeOptions): TraceWipeResult;
113
+ export declare function generateTraceGuardHooks(options?: {
114
+ mode?: "paranoid" | "moderate" | "minimal";
115
+ }): TraceGuardConfig;
116
+ export declare function formatTraceInventory(inventory: TraceInventory): string;
117
+ export declare function formatTraceCleanReport(result: TraceCleanResult): string;
118
+ export declare function formatTraceGuardConfig(config: TraceGuardConfig): string;
119
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/lib/trace.ts"],"names":[],"mappings":"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"}