@sashabogi/foundation 2.1.0 → 2.3.1

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 (57) hide show
  1. package/dist/cli.js +236 -2
  2. package/dist/cli.js.map +1 -1
  3. package/dist/tools/demerzel/engine.d.ts +3 -2
  4. package/dist/tools/demerzel/engine.d.ts.map +1 -1
  5. package/dist/tools/demerzel/engine.js +7 -7
  6. package/dist/tools/demerzel/engine.js.map +1 -1
  7. package/dist/tools/demerzel/enhanced-snapshot.d.ts +10 -2
  8. package/dist/tools/demerzel/enhanced-snapshot.d.ts.map +1 -1
  9. package/dist/tools/demerzel/enhanced-snapshot.js +156 -77
  10. package/dist/tools/demerzel/enhanced-snapshot.js.map +1 -1
  11. package/dist/tools/demerzel/index.d.ts +1 -1
  12. package/dist/tools/demerzel/index.d.ts.map +1 -1
  13. package/dist/tools/demerzel/index.js +53 -36
  14. package/dist/tools/demerzel/index.js.map +1 -1
  15. package/dist/tools/demerzel/semantic-search.d.ts +2 -2
  16. package/dist/tools/demerzel/semantic-search.d.ts.map +1 -1
  17. package/dist/tools/demerzel/semantic-search.js +4 -3
  18. package/dist/tools/demerzel/semantic-search.js.map +1 -1
  19. package/dist/tools/demerzel/snapshot.d.ts +34 -1
  20. package/dist/tools/demerzel/snapshot.d.ts.map +1 -1
  21. package/dist/tools/demerzel/snapshot.js +70 -34
  22. package/dist/tools/demerzel/snapshot.js.map +1 -1
  23. package/dist/tools/demerzel/zstd-io.d.ts +40 -0
  24. package/dist/tools/demerzel/zstd-io.d.ts.map +1 -0
  25. package/dist/tools/demerzel/zstd-io.js +69 -0
  26. package/dist/tools/demerzel/zstd-io.js.map +1 -0
  27. package/dist/tools/gaia/index.d.ts +5 -4
  28. package/dist/tools/gaia/index.d.ts.map +1 -1
  29. package/dist/tools/gaia/index.js +155 -8
  30. package/dist/tools/gaia/index.js.map +1 -1
  31. package/dist/tools/gaia/storage.d.ts +31 -2
  32. package/dist/tools/gaia/storage.d.ts.map +1 -1
  33. package/dist/tools/gaia/storage.js +110 -6
  34. package/dist/tools/gaia/storage.js.map +1 -1
  35. package/dist/tools/gaia/transcript-ingester.d.ts +81 -0
  36. package/dist/tools/gaia/transcript-ingester.d.ts.map +1 -0
  37. package/dist/tools/gaia/transcript-ingester.js +418 -0
  38. package/dist/tools/gaia/transcript-ingester.js.map +1 -0
  39. package/dist/vault/dashboard.d.ts +10 -0
  40. package/dist/vault/dashboard.d.ts.map +1 -0
  41. package/dist/vault/dashboard.js +145 -0
  42. package/dist/vault/dashboard.js.map +1 -0
  43. package/dist/vault/sync.d.ts +64 -0
  44. package/dist/vault/sync.d.ts.map +1 -0
  45. package/dist/vault/sync.js +372 -0
  46. package/dist/vault/sync.js.map +1 -0
  47. package/dist/vault/transform.d.ts +25 -0
  48. package/dist/vault/transform.d.ts.map +1 -0
  49. package/dist/vault/transform.js +155 -0
  50. package/dist/vault/transform.js.map +1 -0
  51. package/package.json +2 -1
  52. package/packages/ui/dist/assets/index-BCBAHIpG.css +1 -0
  53. package/packages/ui/dist/assets/index-CxRK0aqp.js +387 -0
  54. package/packages/ui/dist/index.html +2 -2
  55. package/docs/foundation +0 -0
  56. package/packages/ui/dist/assets/index-DVS_pYGH.css +0 -1
  57. package/packages/ui/dist/assets/index-WNO_oIqP.js +0 -312
@@ -14,10 +14,11 @@
14
14
  *
15
15
  * Ported from Argus to Foundation.
16
16
  */
17
- import { readFileSync, writeFileSync } from 'fs';
17
+ import { readFileSync } from 'fs';
18
18
  import { join, dirname, extname, basename } from 'path';
19
19
  import { execSync } from 'child_process';
20
20
  import { createSnapshot } from './snapshot.js';
21
+ import { readSnapshotContent, writeCompressed } from './zstd-io.js';
21
22
  /**
22
23
  * Parse imports from TypeScript/JavaScript content
23
24
  */
@@ -319,12 +320,117 @@ function resolveImportPath(importPath, fromFile, projectFiles) {
319
320
  return undefined;
320
321
  }
321
322
  /**
322
- * Create an enhanced snapshot with structural metadata
323
+ * Build the full-mode metadata section string.
324
+ * This preserves the exact existing format for byte-identical `full` mode output.
323
325
  */
324
- export function createEnhancedSnapshot(projectPath, outputPath, options = {}) {
325
- // First create the basic snapshot
326
- const baseResult = createSnapshot(projectPath, outputPath, options);
327
- // Now parse all files for metadata
326
+ function buildFullMetadataSection(importGraph, exportGraph, symbolIndex, allExports, complexityScores, testFileMap, sourceFiles, recentChanges) {
327
+ return `
328
+
329
+ ================================================================================
330
+ METADATA: IMPORT GRAPH
331
+ ================================================================================
332
+ ${Object.entries(importGraph).map(([file, imports]) => `${file}:\n${imports.map(i => ` -> ${i}`).join('\n')}`).join('\n\n')}
333
+
334
+ ================================================================================
335
+ METADATA: EXPORT INDEX
336
+ ================================================================================
337
+ ${Object.entries(symbolIndex).map(([symbol, files]) => `${symbol}: ${files.join(', ')}`).join('\n')}
338
+
339
+ ================================================================================
340
+ METADATA: FILE EXPORTS
341
+ ================================================================================
342
+ ${allExports.map(e => `${e.file}:${e.line} - ${e.type} ${e.symbol}${e.signature ? ` ${e.signature}` : ''}`).join('\n')}
343
+
344
+ ================================================================================
345
+ METADATA: WHO IMPORTS WHOM
346
+ ================================================================================
347
+ ${Object.entries(exportGraph).map(([file, importers]) => `${file} is imported by:\n${importers.map(i => ` <- ${i}`).join('\n')}`).join('\n\n')}
348
+
349
+ ================================================================================
350
+ METADATA: COMPLEXITY SCORES
351
+ ================================================================================
352
+ ${complexityScores.map(c => `${c.file}: ${c.score} (${c.level})`).join('\n')}
353
+
354
+ ================================================================================
355
+ METADATA: TEST COVERAGE MAP
356
+ ================================================================================
357
+ ${Object.entries(testFileMap).length > 0
358
+ ? Object.entries(testFileMap).map(([src, tests]) => `${src} -> ${tests.join(', ')}`).join('\n')
359
+ : '(no test file mappings found)'}
360
+ ${sourceFiles.filter(f => /\.(tsx?|jsx?)$/.test(f) &&
361
+ !f.includes('.test.') &&
362
+ !f.includes('.spec.') &&
363
+ !f.includes('__tests__') &&
364
+ !testFileMap[f]).map(f => `${f} -> (no tests)`).join('\n')}
365
+ ${recentChanges !== null ? `
366
+
367
+ ================================================================================
368
+ METADATA: RECENT CHANGES (last 7 days)
369
+ ================================================================================
370
+ ${recentChanges.length > 0
371
+ ? recentChanges.map(c => `${c.file}: ${c.commits} commit${c.commits !== 1 ? 's' : ''}, ${c.authors} author${c.authors !== 1 ? 's' : ''}`).join('\n')
372
+ : '(no changes in the last 7 days)'}` : ''}
373
+ `;
374
+ }
375
+ /**
376
+ * Build the graph-mode metadata section.
377
+ * Contains: import graph, export index (symbol → files), file exports, who-imports-whom.
378
+ * Omits: file bodies, complexity, test coverage, recent changes.
379
+ */
380
+ function buildGraphMetadataSection(importGraph, exportGraph, symbolIndex, allExports) {
381
+ return `
382
+
383
+ ================================================================================
384
+ METADATA: IMPORT GRAPH
385
+ ================================================================================
386
+ ${Object.entries(importGraph).map(([file, imports]) => `${file}:\n${imports.map(i => ` -> ${i}`).join('\n')}`).join('\n\n')}
387
+
388
+ ================================================================================
389
+ METADATA: EXPORT INDEX
390
+ ================================================================================
391
+ ${Object.entries(symbolIndex).map(([symbol, files]) => `${symbol}: ${files.join(', ')}`).join('\n')}
392
+
393
+ ================================================================================
394
+ METADATA: FILE EXPORTS
395
+ ================================================================================
396
+ ${allExports.map(e => `${e.file}:${e.line} - ${e.type} ${e.symbol}${e.signature ? ` ${e.signature}` : ''}`).join('\n')}
397
+
398
+ ================================================================================
399
+ METADATA: WHO IMPORTS WHOM
400
+ ================================================================================
401
+ ${Object.entries(exportGraph).map(([file, importers]) => `${file} is imported by:\n${importers.map(i => ` <- ${i}`).join('\n')}`).join('\n\n')}
402
+ `;
403
+ }
404
+ /**
405
+ * Build the index-mode metadata section.
406
+ * Contains: file exports only (top-level symbol declarations per file).
407
+ * The base snapshot already contains the FILE TREE from createSnapshot.
408
+ */
409
+ function buildIndexMetadataSection(allExports) {
410
+ return `
411
+
412
+ ================================================================================
413
+ METADATA: FILE EXPORTS
414
+ ================================================================================
415
+ ${allExports.map(e => `${e.file}:${e.line} - ${e.type} ${e.symbol}${e.signature ? ` ${e.signature}` : ''}`).join('\n')}
416
+ `;
417
+ }
418
+ /**
419
+ * Create an enhanced snapshot with structural metadata.
420
+ *
421
+ * Writes a compressed `.zst` file to disk. The `outputPath` parameter is the
422
+ * canonical (uncompressed) path; the actual on-disk file is `outputPath + ".zst"`.
423
+ *
424
+ * Mode behaviour (controlled via `options.mode`):
425
+ * - `"full"` — all file bodies + all metadata sections (default)
426
+ * - `"graph"` — file tree + import/export graph + symbol index (~80% smaller)
427
+ * - `"index"` — file tree + top-level exports only (~95% smaller)
428
+ */
429
+ export async function createEnhancedSnapshot(projectPath, outputPath, options = {}) {
430
+ const mode = options.mode ?? 'full';
431
+ // First create the basic snapshot (writes .zst)
432
+ const baseResult = await createSnapshot(projectPath, outputPath, options);
433
+ // Now parse all files for metadata (reads source files directly, not the snapshot)
328
434
  const allImports = [];
329
435
  const allExports = [];
330
436
  const fileIndex = {};
@@ -389,82 +495,55 @@ export function createEnhancedSnapshot(projectPath, outputPath, options = {}) {
389
495
  symbolIndex[exp.symbol].push(exp.file);
390
496
  }
391
497
  }
392
- // Calculate complexity scores for all files
498
+ // Calculate complexity scores (full mode only — skip for graph/index to save time)
393
499
  const complexityScores = [];
394
- for (const [relPath] of Object.entries(fileIndex)) {
395
- const fullPath = join(projectPath, relPath);
396
- try {
397
- const content = readFileSync(fullPath, 'utf-8');
398
- const score = calculateComplexity(content);
399
- complexityScores.push({
400
- file: relPath,
401
- score,
402
- level: getComplexityLevel(score),
403
- });
404
- }
405
- catch {
406
- // Skip files that can't be read
500
+ if (mode === 'full') {
501
+ for (const [relPath] of Object.entries(fileIndex)) {
502
+ const fullPath = join(projectPath, relPath);
503
+ try {
504
+ const content = readFileSync(fullPath, 'utf-8');
505
+ const score = calculateComplexity(content);
506
+ complexityScores.push({
507
+ file: relPath,
508
+ score,
509
+ level: getComplexityLevel(score),
510
+ });
511
+ }
512
+ catch {
513
+ // Skip files that can't be read
514
+ }
407
515
  }
516
+ // Sort by complexity score (highest first)
517
+ complexityScores.sort((a, b) => b.score - a.score);
408
518
  }
409
- // Sort by complexity score (highest first)
410
- complexityScores.sort((a, b) => b.score - a.score);
411
- // Map test files to source files
412
- const testFileMap = mapTestFiles(baseResult.files);
413
- // Get recent git changes (null if not a git repo)
414
- const recentChanges = getRecentChanges(projectPath);
415
- // Append metadata to snapshot file
416
- const metadataSection = `
417
-
418
- ================================================================================
419
- METADATA: IMPORT GRAPH
420
- ================================================================================
421
- ${Object.entries(importGraph).map(([file, imports]) => `${file}:\n${imports.map(i => ` -> ${i}`).join('\n')}`).join('\n\n')}
422
-
423
- ================================================================================
424
- METADATA: EXPORT INDEX
425
- ================================================================================
426
- ${Object.entries(symbolIndex).map(([symbol, files]) => `${symbol}: ${files.join(', ')}`).join('\n')}
427
-
428
- ================================================================================
429
- METADATA: FILE EXPORTS
430
- ================================================================================
431
- ${allExports.map(e => `${e.file}:${e.line} - ${e.type} ${e.symbol}${e.signature ? ` ${e.signature}` : ''}`).join('\n')}
432
-
433
- ================================================================================
434
- METADATA: WHO IMPORTS WHOM
435
- ================================================================================
436
- ${Object.entries(exportGraph).map(([file, importers]) => `${file} is imported by:\n${importers.map(i => ` <- ${i}`).join('\n')}`).join('\n\n')}
437
-
438
- ================================================================================
439
- METADATA: COMPLEXITY SCORES
440
- ================================================================================
441
- ${complexityScores.map(c => `${c.file}: ${c.score} (${c.level})`).join('\n')}
442
-
443
- ================================================================================
444
- METADATA: TEST COVERAGE MAP
445
- ================================================================================
446
- ${Object.entries(testFileMap).length > 0
447
- ? Object.entries(testFileMap).map(([src, tests]) => `${src} -> ${tests.join(', ')}`).join('\n')
448
- : '(no test file mappings found)'}
449
- ${baseResult.files.filter(f => /\.(tsx?|jsx?)$/.test(f) &&
450
- !f.includes('.test.') &&
451
- !f.includes('.spec.') &&
452
- !f.includes('__tests__') &&
453
- !testFileMap[f]).map(f => `${f} -> (no tests)`).join('\n')}
454
- ${recentChanges !== null ? `
455
-
456
- ================================================================================
457
- METADATA: RECENT CHANGES (last 7 days)
458
- ================================================================================
459
- ${recentChanges.length > 0
460
- ? recentChanges.map(c => `${c.file}: ${c.commits} commit${c.commits !== 1 ? 's' : ''}, ${c.authors} author${c.authors !== 1 ? 's' : ''}`).join('\n')
461
- : '(no changes in the last 7 days)'}` : ''}
462
- `;
463
- // Append to snapshot
464
- const existingContent = readFileSync(outputPath, 'utf-8');
465
- writeFileSync(outputPath, existingContent + metadataSection);
519
+ // Map test files to source files (full mode only)
520
+ const testFileMap = mode === 'full' ? mapTestFiles(baseResult.files) : {};
521
+ // Get recent git changes (full mode only)
522
+ const recentChanges = mode === 'full' ? getRecentChanges(projectPath) : null;
523
+ // Build the metadata section appropriate for the mode
524
+ let metadataSection;
525
+ if (mode === 'graph') {
526
+ metadataSection = buildGraphMetadataSection(importGraph, exportGraph, symbolIndex, allExports);
527
+ }
528
+ else if (mode === 'index') {
529
+ metadataSection = buildIndexMetadataSection(allExports);
530
+ }
531
+ else {
532
+ metadataSection = buildFullMetadataSection(importGraph, exportGraph, symbolIndex, allExports, complexityScores, testFileMap, baseResult.files, recentChanges);
533
+ }
534
+ // Read back the base snapshot content, append metadata, rewrite as compressed
535
+ const existingContent = await readSnapshotContent(outputPath);
536
+ const finalContent = existingContent + metadataSection;
537
+ const diskPath = await writeCompressed(outputPath, finalContent);
538
+ const totalLines = finalContent.split('\n').length;
539
+ const totalSize = Buffer.byteLength(finalContent, 'utf-8');
466
540
  return {
467
541
  ...baseResult,
542
+ outputPath,
543
+ diskPath,
544
+ totalLines,
545
+ totalSize,
546
+ mode,
468
547
  metadata: {
469
548
  imports: allImports,
470
549
  exports: allExports,
@@ -1 +1 @@
1
- {"version":3,"file":"enhanced-snapshot.js","sourceRoot":"","sources":["../../../src/tools/demerzel/enhanced-snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enhanced-snapshot.js","sourceRoot":"","sources":["../../../src/tools/demerzel/enhanced-snapshot.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ import { SemanticIndex } from './semantic-search.js';
26
26
  export declare function registerDemerzelTools(server: McpServer): void;
27
27
  export { createSnapshot, createEnhancedSnapshot, analyze, searchDocument, SemanticIndex };
28
28
  export type { AIProvider, Message, CompletionResult, AnalysisOptions, AnalysisResult } from './engine.js';
29
- export type { SnapshotOptions, SnapshotResult } from './snapshot.js';
29
+ export type { SnapshotOptions, SnapshotResult, SnapshotMode } from './snapshot.js';
30
30
  export type { EnhancedSnapshotResult, ImportInfo, ExportInfo, FileMetadata, ComplexityInfo, RecentChangeInfo } from './enhanced-snapshot.js';
31
31
  export type { SearchResult } from './semantic-search.js';
32
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/demerzel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAAE,cAAc,EAAgD,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAA+B,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,cAAc,EAAwD,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAuMrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+nB7D;AAGD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AAC1F,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1G,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACrE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC7I,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/demerzel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAAE,cAAc,EAAgD,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAA+B,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,cAAc,EAAwD,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwMrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6oB7D;AAGD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AAC1F,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1G,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnF,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC7I,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
@@ -19,7 +19,7 @@
19
19
  * Ported from Argus to Foundation.
20
20
  */
21
21
  import { z } from 'zod';
22
- import { existsSync, readFileSync, statSync, mkdtempSync, unlinkSync } from 'fs';
22
+ import { existsSync, statSync, mkdtempSync, unlinkSync } from 'fs';
23
23
  import { join, resolve } from 'path';
24
24
  import { tmpdir } from 'os';
25
25
  import { createSnapshot, DEFAULT_EXTENSIONS, DEFAULT_EXCLUDE_PATTERNS } from './snapshot.js';
@@ -29,6 +29,7 @@ import { SemanticIndex } from './semantic-search.js';
29
29
  import { ConfigService } from '../../services/config.service.js';
30
30
  import { ProviderService } from '../../services/provider.service.js';
31
31
  import { isSessionDelegation } from '../../providers/types.js';
32
+ import { readSnapshotContent, snapshotExists, resolveSnapshotPath } from './zstd-io.js';
32
33
  // Tool limits and defaults
33
34
  const DEFAULT_FIND_FILES_LIMIT = 100;
34
35
  const MAX_FIND_FILES_LIMIT = 500;
@@ -206,7 +207,10 @@ export function registerDemerzelTools(server) {
206
207
  path: z.string().describe('Path to the codebase directory'),
207
208
  enhanced: z.boolean().optional().describe('Create enhanced snapshot with import graph (default: true)'),
208
209
  output: z.string().optional().describe('Output path for snapshot (default: .foundation/snapshot.txt)'),
209
- }, async ({ path, enhanced = true, output }) => {
210
+ mode: z.enum(['full', 'graph', 'index']).optional().describe('Snapshot generation mode. "full" = all file bodies + metadata (default, largest). ' +
211
+ '"graph" = import/export graph + symbol index only, no file bodies (~80% smaller). ' +
212
+ '"index" = file tree + top-level exports only (~95% smaller).'),
213
+ }, async ({ path, enhanced = true, output, mode = 'full' }) => {
210
214
  const projectPath = resolve(path);
211
215
  if (!existsSync(projectPath)) {
212
216
  return {
@@ -216,21 +220,22 @@ export function registerDemerzelTools(server) {
216
220
  }
217
221
  const outputPath = output ? resolve(output) : join(projectPath, '.foundation', 'snapshot.txt');
218
222
  try {
223
+ const snapshotOptions = {
224
+ extensions: DEFAULT_EXTENSIONS,
225
+ excludePatterns: DEFAULT_EXCLUDE_PATTERNS,
226
+ mode: mode,
227
+ };
219
228
  const result = enhanced
220
- ? createEnhancedSnapshot(projectPath, outputPath, {
221
- extensions: DEFAULT_EXTENSIONS,
222
- excludePatterns: DEFAULT_EXCLUDE_PATTERNS,
223
- })
224
- : createSnapshot(projectPath, outputPath, {
225
- extensions: DEFAULT_EXTENSIONS,
226
- excludePatterns: DEFAULT_EXCLUDE_PATTERNS,
227
- });
229
+ ? await createEnhancedSnapshot(projectPath, outputPath, snapshotOptions)
230
+ : await createSnapshot(projectPath, outputPath, snapshotOptions);
228
231
  const response = {
229
232
  outputPath: result.outputPath,
233
+ diskPath: result.diskPath,
230
234
  fileCount: result.fileCount,
231
235
  totalLines: result.totalLines,
232
236
  totalSize: result.totalSize,
233
237
  enhanced,
238
+ mode: result.mode,
234
239
  };
235
240
  if (enhanced && 'metadata' in result) {
236
241
  const enhancedResult = result;
@@ -265,14 +270,14 @@ export function registerDemerzelTools(server) {
265
270
  isError: true,
266
271
  };
267
272
  }
268
- if (!existsSync(snapshotPath)) {
273
+ if (!snapshotExists(snapshotPath)) {
269
274
  return {
270
275
  content: [{ type: 'text', text: `Error: Snapshot not found: ${snapshotPath}. Run demerzel_snapshot first.` }],
271
276
  isError: true,
272
277
  };
273
278
  }
274
279
  try {
275
- const matches = searchDocument(snapshotPath, pattern, {
280
+ const matches = await searchDocument(snapshotPath, pattern, {
276
281
  caseInsensitive,
277
282
  maxResults: Math.min(maxResults, MAX_SEARCH_RESULTS),
278
283
  });
@@ -325,14 +330,14 @@ export function registerDemerzelTools(server) {
325
330
  isError: true,
326
331
  };
327
332
  }
328
- if (!existsSync(snapshotPath)) {
333
+ if (!snapshotExists(snapshotPath)) {
329
334
  return {
330
335
  content: [{ type: 'text', text: `Error: Snapshot not found: ${snapshotPath}. Run demerzel_snapshot first.` }],
331
336
  isError: true,
332
337
  };
333
338
  }
334
339
  try {
335
- const content = readFileSync(snapshotPath, 'utf-8');
340
+ const content = await readSnapshotContent(snapshotPath);
336
341
  // Extract all FILE: markers
337
342
  const fileRegex = /^FILE: \.\/(.+)$/gm;
338
343
  const files = [];
@@ -376,14 +381,14 @@ export function registerDemerzelTools(server) {
376
381
  symbol: z.string().describe('Symbol name to find (e.g., "AuthProvider", "useAuth")'),
377
382
  }, async ({ path, symbol }) => {
378
383
  const snapshotPath = resolve(path);
379
- if (!existsSync(snapshotPath)) {
384
+ if (!snapshotExists(snapshotPath)) {
380
385
  return {
381
386
  content: [{ type: 'text', text: `Error: Snapshot not found: ${snapshotPath}` }],
382
387
  isError: true,
383
388
  };
384
389
  }
385
390
  try {
386
- const content = readFileSync(snapshotPath, 'utf-8');
391
+ const content = await readSnapshotContent(snapshotPath);
387
392
  const metadata = parseSnapshotMetadata(content);
388
393
  if (!metadata) {
389
394
  return {
@@ -418,14 +423,14 @@ export function registerDemerzelTools(server) {
418
423
  target: z.string().describe('File path to find importers of (e.g., "src/auth.ts")'),
419
424
  }, async ({ path, target }) => {
420
425
  const snapshotPath = resolve(path);
421
- if (!existsSync(snapshotPath)) {
426
+ if (!snapshotExists(snapshotPath)) {
422
427
  return {
423
428
  content: [{ type: 'text', text: `Error: Snapshot not found: ${snapshotPath}` }],
424
429
  isError: true,
425
430
  };
426
431
  }
427
432
  try {
428
- const content = readFileSync(snapshotPath, 'utf-8');
433
+ const content = await readSnapshotContent(snapshotPath);
429
434
  const metadata = parseSnapshotMetadata(content);
430
435
  if (!metadata) {
431
436
  return {
@@ -477,14 +482,14 @@ export function registerDemerzelTools(server) {
477
482
  file: z.string().describe('File path to get dependencies for'),
478
483
  }, async ({ path, file }) => {
479
484
  const snapshotPath = resolve(path);
480
- if (!existsSync(snapshotPath)) {
485
+ if (!snapshotExists(snapshotPath)) {
481
486
  return {
482
487
  content: [{ type: 'text', text: `Error: Snapshot not found: ${snapshotPath}` }],
483
488
  isError: true,
484
489
  };
485
490
  }
486
491
  try {
487
- const content = readFileSync(snapshotPath, 'utf-8');
492
+ const content = await readSnapshotContent(snapshotPath);
488
493
  const metadata = parseSnapshotMetadata(content);
489
494
  if (!metadata) {
490
495
  return {
@@ -530,14 +535,14 @@ export function registerDemerzelTools(server) {
530
535
  after: z.number().optional().describe('Lines after (default: 10)'),
531
536
  }, async ({ path, file, line, before = 10, after = 10 }) => {
532
537
  const snapshotPath = resolve(path);
533
- if (!existsSync(snapshotPath)) {
538
+ if (!snapshotExists(snapshotPath)) {
534
539
  return {
535
540
  content: [{ type: 'text', text: `Error: Snapshot not found: ${snapshotPath}` }],
536
541
  isError: true,
537
542
  };
538
543
  }
539
544
  try {
540
- const content = readFileSync(snapshotPath, 'utf-8');
545
+ const content = await readSnapshotContent(snapshotPath);
541
546
  // Find the file section in the snapshot
542
547
  const normalizedTarget = file.replace(/^\.\//, '');
543
548
  const fileMarkerVariants = [
@@ -605,6 +610,7 @@ export function registerDemerzelTools(server) {
605
610
  isError: true,
606
611
  };
607
612
  }
613
+ // Canonical (uncompressed) snapshot path — actual disk file is <snapshotPath>.zst
608
614
  let snapshotPath = inputPath;
609
615
  let tempSnapshot = false;
610
616
  try {
@@ -613,7 +619,7 @@ export function registerDemerzelTools(server) {
613
619
  if (stats.isDirectory()) {
614
620
  const tempDir = mkdtempSync(join(tmpdir(), 'demerzel-'));
615
621
  snapshotPath = join(tempDir, 'snapshot.txt');
616
- createEnhancedSnapshot(inputPath, snapshotPath, {
622
+ await createEnhancedSnapshot(inputPath, snapshotPath, {
617
623
  extensions: DEFAULT_EXTENSIONS,
618
624
  excludePatterns: DEFAULT_EXCLUDE_PATTERNS,
619
625
  });
@@ -659,12 +665,21 @@ export function registerDemerzelTools(server) {
659
665
  };
660
666
  }
661
667
  finally {
662
- if (tempSnapshot && existsSync(snapshotPath)) {
663
- try {
664
- unlinkSync(snapshotPath);
668
+ if (tempSnapshot) {
669
+ // Clean up the compressed snapshot (.zst)
670
+ const zstPath = snapshotPath + '.zst';
671
+ if (existsSync(zstPath)) {
672
+ try {
673
+ unlinkSync(zstPath);
674
+ }
675
+ catch { /* ignore */ }
665
676
  }
666
- catch {
667
- // Ignore cleanup errors
677
+ // Also clean up legacy uncompressed path if it exists
678
+ if (existsSync(snapshotPath)) {
679
+ try {
680
+ unlinkSync(snapshotPath);
681
+ }
682
+ catch { /* ignore */ }
668
683
  }
669
684
  }
670
685
  }
@@ -684,7 +699,7 @@ export function registerDemerzelTools(server) {
684
699
  }
685
700
  const snapshotPath = join(projectPath, '.foundation', 'snapshot.txt');
686
701
  const indexPath = join(projectPath, '.foundation', 'search.db');
687
- if (!existsSync(snapshotPath)) {
702
+ if (!snapshotExists(snapshotPath)) {
688
703
  return {
689
704
  content: [{ type: 'text', text: `Error: Snapshot not found: ${snapshotPath}. Run demerzel_snapshot first.` }],
690
705
  isError: true,
@@ -693,14 +708,16 @@ export function registerDemerzelTools(server) {
693
708
  let index = null;
694
709
  try {
695
710
  index = new SemanticIndex(indexPath);
696
- // Check if index needs rebuilding
697
- const stats = index.getStats();
698
- const snapshotMtime = statSync(snapshotPath).mtimeMs;
699
- const needsReindex = !stats.lastIndexed ||
700
- new Date(stats.lastIndexed).getTime() < snapshotMtime ||
701
- stats.snapshotPath !== snapshotPath;
711
+ // Check if index needs rebuilding.
712
+ // resolveSnapshotPath returns the actual on-disk file (.zst or legacy .txt)
713
+ const indexStats = index.getStats();
714
+ const diskPath = resolveSnapshotPath(snapshotPath);
715
+ const snapshotMtime = diskPath ? statSync(diskPath).mtimeMs : 0;
716
+ const needsReindex = !indexStats.lastIndexed ||
717
+ new Date(indexStats.lastIndexed).getTime() < snapshotMtime ||
718
+ indexStats.snapshotPath !== snapshotPath;
702
719
  if (needsReindex) {
703
- index.indexFromSnapshot(snapshotPath);
720
+ await index.indexFromSnapshot(snapshotPath);
704
721
  }
705
722
  const results = index.search(query, limit);
706
723
  return {