@liendev/core 0.27.0 → 0.28.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.
package/dist/index.d.ts CHANGED
@@ -32,6 +32,7 @@ export { chunkFile } from './indexer/chunker.js';
32
32
  export { scanCodebase, scanCodebaseWithFrameworks, detectLanguage } from './indexer/scanner.js';
33
33
  export { indexSingleFile, indexMultipleFiles, normalizeToRelativePath } from './indexer/incremental.js';
34
34
  export { extractSymbols } from './indexer/symbol-extractor.js';
35
+ export { computeContentHash, isHashAlgorithmCompatible } from './indexer/content-hash.js';
35
36
  export { LocalEmbeddings } from './embeddings/local.js';
36
37
  export { CachedEmbeddings } from './embeddings/cache.js';
37
38
  export type { EmbeddingService } from './embeddings/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -33,6 +33,7 @@ export { chunkFile } from './indexer/chunker.js';
33
33
  export { scanCodebase, scanCodebaseWithFrameworks, detectLanguage } from './indexer/scanner.js';
34
34
  export { indexSingleFile, indexMultipleFiles, normalizeToRelativePath } from './indexer/incremental.js';
35
35
  export { extractSymbols } from './indexer/symbol-extractor.js';
36
+ export { computeContentHash, isHashAlgorithmCompatible } from './indexer/content-hash.js';
36
37
  // =============================================================================
37
38
  // EMBEDDINGS
38
39
  // =============================================================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGrH,gFAAgF;AAChF,+DAA+D;AAC/D,gFAAgF;AAChF,iEAAiE;AACjE,2EAA2E;AAC3E,gEAAgE;AAChE,6BAA6B;AAC7B,uCAAuC;AAEvC,OAAO,EAAE,aAAa,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,aAAa,IAAI,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGrG;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC;AAE1D;;GAEG;AACH,uCAAuC;AACvC;;GAEG;AACH,uCAAuC;AACvC;;GAEG;AACH,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAM3E,gDAAgD;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC;AAExD,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEvG,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,SAAS,EACT,WAAW,EACX,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAqB3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,EACZ,yBAAyB,EACzB,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ export interface FileIndexEntry {
33
33
  filepath: string;
34
34
  chunkCount: number;
35
35
  mtime: number;
36
+ contentHash: string;
36
37
  }
37
38
  /**
38
39
  * Process embeddings in micro-batches to prevent event loop blocking.
@@ -75,8 +76,9 @@ export declare class ChunkBatchProcessor {
75
76
  * @param chunks - Code chunks to add
76
77
  * @param filepath - Source file path (for manifest)
77
78
  * @param mtime - File modification time in ms (for change detection)
79
+ * @param contentHash - Content hash for change detection
78
80
  */
79
- addChunks(chunks: CodeChunk[], filepath: string, mtime: number): Promise<void>;
81
+ addChunks(chunks: CodeChunk[], filepath: string, mtime: number, contentHash: string): Promise<void>;
80
82
  /**
81
83
  * Flush any remaining accumulated chunks.
82
84
  * Call this after all files have been processed.
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-batch-processor.d.ts","sourceRoot":"","sources":["../../src/indexer/chunk-batch-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,gBAAgB,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC,CAazB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAZlC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,mBAAmB,CAAK;IAGhC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,eAAe,CAA8B;gBAGlC,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,oBAAoB,EAC5B,eAAe,EAAE,eAAe;IAGnD;;;;;;;OAOG;IACG,SAAS,CACb,MAAM,EAAE,SAAS,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IA2ChB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACH,UAAU,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,cAAc,EAAE,CAAA;KAAE;IAOzE;;;OAGG;YACW,iBAAiB;IAU/B;;;OAGG;YACW,SAAS;CA4CxB"}
1
+ {"version":3,"file":"chunk-batch-processor.d.ts","sourceRoot":"","sources":["../../src/indexer/chunk-batch-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,gBAAgB,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC,CAazB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAZlC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,mBAAmB,CAAK;IAGhC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,eAAe,CAA8B;gBAGlC,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,oBAAoB,EAC5B,eAAe,EAAE,eAAe;IAGnD;;;;;;;;OAQG;IACG,SAAS,CACb,MAAM,EAAE,SAAS,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IA4ChB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACH,UAAU,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,cAAc,EAAE,CAAA;KAAE;IAOzE;;;OAGG;YACW,iBAAiB;IAU/B;;;OAGG;YACW,SAAS;CA4CxB"}
@@ -70,8 +70,9 @@ export class ChunkBatchProcessor {
70
70
  * @param chunks - Code chunks to add
71
71
  * @param filepath - Source file path (for manifest)
72
72
  * @param mtime - File modification time in ms (for change detection)
73
+ * @param contentHash - Content hash for change detection
73
74
  */
74
- async addChunks(chunks, filepath, mtime) {
75
+ async addChunks(chunks, filepath, mtime, contentHash) {
75
76
  if (chunks.length === 0) {
76
77
  return;
77
78
  }
@@ -97,6 +98,7 @@ export class ChunkBatchProcessor {
97
98
  filepath,
98
99
  chunkCount: chunks.length,
99
100
  mtime,
101
+ contentHash,
100
102
  });
101
103
  // Process if batch threshold reached
102
104
  if (this.accumulator.length >= this.config.batchThreshold) {
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-batch-processor.js","sourceRoot":"","sources":["../../src/indexer/chunk-batch-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chunk-batch-processor.js","sourceRoot":"","sources":["../../src/indexer/chunk-batch-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Compute a content hash for change detection.
3
+ *
4
+ * For small files (<1MB), computes hash of entire content.
5
+ * For large files (>=1MB), uses fingerprint approach (first 8KB + last 8KB + size).
6
+ *
7
+ * Returns 16-character hash (or 'L' prefix + 15 chars for large files).
8
+ *
9
+ * @param filepath - Absolute path to the file
10
+ * @returns Content hash string, or empty string if file cannot be read
11
+ */
12
+ export declare function computeContentHash(filepath: string): Promise<string>;
13
+ /**
14
+ * Check if hash algorithm is compatible with current implementation.
15
+ *
16
+ * @param algorithm - Hash algorithm version from manifest
17
+ * @returns true if compatible, false otherwise
18
+ */
19
+ export declare function isHashAlgorithmCompatible(algorithm?: string): boolean;
20
+ //# sourceMappingURL=content-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-hash.d.ts","sourceRoot":"","sources":["../../src/indexer/content-hash.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB1E;AA8CD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAMrE"}
@@ -0,0 +1,91 @@
1
+ import crypto from 'crypto';
2
+ import fs from 'fs/promises';
3
+ /**
4
+ * Threshold for using fingerprint approach (1MB)
5
+ */
6
+ const LARGE_FILE_THRESHOLD = 1024 * 1024;
7
+ /**
8
+ * Sample size for large file fingerprinting (8KB)
9
+ */
10
+ const SAMPLE_SIZE = 8192;
11
+ /**
12
+ * Compute a content hash for change detection.
13
+ *
14
+ * For small files (<1MB), computes hash of entire content.
15
+ * For large files (>=1MB), uses fingerprint approach (first 8KB + last 8KB + size).
16
+ *
17
+ * Returns 16-character hash (or 'L' prefix + 15 chars for large files).
18
+ *
19
+ * @param filepath - Absolute path to the file
20
+ * @returns Content hash string, or empty string if file cannot be read
21
+ */
22
+ export async function computeContentHash(filepath) {
23
+ try {
24
+ const stats = await fs.stat(filepath);
25
+ // For large files, use fingerprint: first 8KB + last 8KB + file size
26
+ if (stats.size > LARGE_FILE_THRESHOLD) {
27
+ return await computeLargeFileFingerprint(filepath, stats.size);
28
+ }
29
+ // For normal files, hash entire content (read as binary to support all file types)
30
+ const content = await fs.readFile(filepath);
31
+ return crypto.createHash('sha256').update(content).digest('hex').slice(0, 16);
32
+ }
33
+ catch (err) {
34
+ // If file can't be read, return empty hash (will trigger reindex)
35
+ // Common cases: file deleted, permission denied, file handle issues
36
+ return '';
37
+ }
38
+ }
39
+ /**
40
+ * Compute fingerprint for large files to avoid reading entire content.
41
+ * Uses first 8KB + last 8KB + file size.
42
+ *
43
+ * Note: This function is only used for files larger than 1MB (LARGE_FILE_THRESHOLD),
44
+ * so the sampled head (first 8KB) and tail (last 8KB) regions never overlap
45
+ * (even for files just over 1MB, 1MB >> 16KB ensures distinct regions).
46
+ *
47
+ * **Known Limitation**: Changes made exclusively to the middle of large files
48
+ * (i.e., modifications that don't affect the first or last 8KB) will NOT be detected.
49
+ * This is an acceptable trade-off for performance, as the primary use case is detecting
50
+ * `touch` operations and header/footer changes. Files with substantive code changes
51
+ * typically have modifications near the beginning or end.
52
+ *
53
+ * @param filepath - Absolute path to the file
54
+ * @param size - File size in bytes
55
+ * @returns Fingerprint hash with 'L' prefix
56
+ */
57
+ async function computeLargeFileFingerprint(filepath, size) {
58
+ const handle = await fs.open(filepath, 'r');
59
+ try {
60
+ const headBuffer = Buffer.alloc(SAMPLE_SIZE);
61
+ const tailBuffer = Buffer.alloc(SAMPLE_SIZE);
62
+ // Read first 8KB
63
+ await handle.read(headBuffer, 0, SAMPLE_SIZE, 0);
64
+ // Read last 8KB
65
+ const tailOffset = Math.max(0, size - SAMPLE_SIZE);
66
+ await handle.read(tailBuffer, 0, SAMPLE_SIZE, tailOffset);
67
+ // Combine: head + tail + size
68
+ const hash = crypto.createHash('sha256');
69
+ hash.update(headBuffer);
70
+ hash.update(tailBuffer);
71
+ hash.update(size.toString());
72
+ return 'L' + hash.digest('hex').slice(0, 15); // 'L' prefix = large file fingerprint
73
+ }
74
+ finally {
75
+ await handle.close();
76
+ }
77
+ }
78
+ /**
79
+ * Check if hash algorithm is compatible with current implementation.
80
+ *
81
+ * @param algorithm - Hash algorithm version from manifest
82
+ * @returns true if compatible, false otherwise
83
+ */
84
+ export function isHashAlgorithmCompatible(algorithm) {
85
+ // If no algorithm specified, assume old format (still compatible)
86
+ if (!algorithm)
87
+ return true;
88
+ // Current supported algorithms
89
+ return algorithm === 'sha256-16' || algorithm === 'sha256-16-large';
90
+ }
91
+ //# sourceMappingURL=content-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-hash.js","sourceRoot":"","sources":["../../src/indexer/content-hash.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B;;GAEG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtC,qEAAqE;QACrE,IAAI,KAAK,CAAC,IAAI,GAAG,oBAAoB,EAAE,CAAC;YACtC,OAAO,MAAM,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QAED,mFAAmF;QACnF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,kEAAkE;QAClE,oEAAoE;QACpE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,UAAU,2BAA2B,CAAC,QAAgB,EAAE,IAAY;IACvE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7C,iBAAiB;QACjB,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAEjD,gBAAgB;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;QACnD,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAE1D,8BAA8B;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE7B,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sCAAsC;IACtF,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAkB;IAC1D,kEAAkE;IAClE,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,+BAA+B;IAC/B,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,iBAAiB,CAAC;AACtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../../src/indexer/incremental.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAwB9D;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAoBlF;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8FD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAkEf;AAkCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CAmGjB"}
1
+ {"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../../src/indexer/incremental.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAyB9D;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAoBlF;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA+FD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAqEf;AA6HD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CAyCjB"}
@@ -4,6 +4,7 @@ import crypto from 'crypto';
4
4
  import { chunkFile } from './chunker.js';
5
5
  import { DEFAULT_CHUNK_SIZE, DEFAULT_CHUNK_OVERLAP, } from '../constants.js';
6
6
  import { ManifestManager } from './manifest.js';
7
+ import { computeContentHash } from './content-hash.js';
7
8
  import { EMBEDDING_MICRO_BATCH_SIZE } from '../constants.js';
8
9
  import { Ok, Err, isOk } from '../utils/result.js';
9
10
  /**
@@ -81,7 +82,7 @@ async function processFileContent(filepath, content, embeddings, verbose, rootDi
81
82
  if (chunks.length === 0) {
82
83
  // Empty file - return null so caller can handle appropriately
83
84
  if (verbose) {
84
- console.error(`[Lien] Empty file: ${filepath}`);
85
+ console.log(`[Lien] Empty file (0 chunks): ${filepath}`);
85
86
  }
86
87
  return null;
87
88
  }
@@ -129,7 +130,7 @@ export async function indexSingleFile(filepath, vectorDB, embeddings, options =
129
130
  catch {
130
131
  // File doesn't exist - delete from index and manifest using normalized path
131
132
  if (verbose) {
132
- console.error(`[Lien] File deleted: ${normalizedPath}`);
133
+ console.log(`[Lien] File deleted: ${normalizedPath}`);
133
134
  }
134
135
  await vectorDB.deleteByFile(normalizedPath);
135
136
  const manifest = new ManifestManager(vectorDB.dbPath);
@@ -140,8 +141,9 @@ export async function indexSingleFile(filepath, vectorDB, embeddings, options =
140
141
  const content = await fs.readFile(filepath, 'utf-8');
141
142
  // Process file content (chunking + embeddings) - use normalized path for storage
142
143
  const result = await processFileContent(normalizedPath, content, embeddings, verbose || false, rootDir);
143
- // Get actual file mtime for manifest
144
+ // Get actual file mtime and compute content hash for manifest
144
145
  const stats = await fs.stat(filepath);
146
+ const contentHash = await computeContentHash(filepath);
145
147
  const manifest = new ManifestManager(vectorDB.dbPath);
146
148
  if (result === null) {
147
149
  // Empty file - remove from vector DB but keep in manifest with chunkCount: 0
@@ -150,6 +152,7 @@ export async function indexSingleFile(filepath, vectorDB, embeddings, options =
150
152
  filepath: normalizedPath,
151
153
  lastModified: stats.mtimeMs,
152
154
  chunkCount: 0,
155
+ contentHash,
153
156
  });
154
157
  return;
155
158
  }
@@ -160,9 +163,10 @@ export async function indexSingleFile(filepath, vectorDB, embeddings, options =
160
163
  filepath: normalizedPath,
161
164
  lastModified: stats.mtimeMs,
162
165
  chunkCount: result.chunkCount,
166
+ contentHash,
163
167
  });
164
168
  if (verbose) {
165
- console.error(`[Lien] ✓ Updated ${normalizedPath} (${result.chunkCount} chunks)`);
169
+ console.log(`[Lien] ✓ Updated ${normalizedPath} (${result.chunkCount} chunks)`);
166
170
  }
167
171
  }
168
172
  catch (error) {
@@ -182,18 +186,82 @@ async function processSingleFileForIndexing(filepath, normalizedPath, embeddings
182
186
  // Read file stats and content using original path (for filesystem access)
183
187
  const stats = await fs.stat(filepath);
184
188
  const content = await fs.readFile(filepath, 'utf-8');
189
+ const contentHash = await computeContentHash(filepath);
185
190
  // Process content using normalized path (for storage)
186
191
  const result = await processFileContent(normalizedPath, content, embeddings, verbose, rootDir);
187
192
  return Ok({
188
193
  filepath: normalizedPath, // Store normalized path
189
194
  result,
190
195
  mtime: stats.mtimeMs,
196
+ contentHash,
191
197
  });
192
198
  }
193
199
  catch (error) {
194
200
  return Err(`Failed to process ${normalizedPath}: ${error}`);
195
201
  }
196
202
  }
203
+ /**
204
+ * Handle indexing result for an empty file
205
+ */
206
+ async function handleEmptyFile(storedPath, mtime, contentHash, vectorDB) {
207
+ // Remove from vector DB
208
+ try {
209
+ await vectorDB.deleteByFile(storedPath);
210
+ }
211
+ catch {
212
+ // Ignore errors if file wasn't in index
213
+ }
214
+ // Update manifest immediately for empty files (not batched)
215
+ const manifest = new ManifestManager(vectorDB.dbPath);
216
+ await manifest.updateFile(storedPath, {
217
+ filepath: storedPath,
218
+ lastModified: mtime,
219
+ chunkCount: 0,
220
+ contentHash,
221
+ });
222
+ }
223
+ /**
224
+ * Handle indexing result for a non-empty file
225
+ */
226
+ async function handleNonEmptyFile(storedPath, processResult, mtime, contentHash, vectorDB, verbose, manifestEntries) {
227
+ // Delete old chunks if they exist
228
+ try {
229
+ await vectorDB.deleteByFile(storedPath);
230
+ }
231
+ catch {
232
+ // Ignore - file might not be in index yet
233
+ }
234
+ // Insert new chunks
235
+ await vectorDB.insertBatch(processResult.vectors, processResult.chunks.map(c => c.metadata), processResult.texts);
236
+ // Queue manifest update (batch at end)
237
+ manifestEntries.push({
238
+ filepath: storedPath,
239
+ chunkCount: processResult.chunkCount,
240
+ mtime,
241
+ contentHash,
242
+ });
243
+ if (verbose) {
244
+ console.log(`[Lien] ✓ Updated ${storedPath} (${processResult.chunkCount} chunks)`);
245
+ }
246
+ }
247
+ /**
248
+ * Handle file deletion (file doesn't exist or couldn't be read)
249
+ */
250
+ async function handleFileNotFound(normalizedPath, errorMessage, vectorDB, verbose) {
251
+ if (verbose) {
252
+ console.error(`[Lien] ${errorMessage}`);
253
+ }
254
+ try {
255
+ await vectorDB.deleteByFile(normalizedPath);
256
+ const manifest = new ManifestManager(vectorDB.dbPath);
257
+ await manifest.removeFile(normalizedPath);
258
+ }
259
+ catch {
260
+ if (verbose) {
261
+ console.log(`[Lien] Note: ${normalizedPath} not in index`);
262
+ }
263
+ }
264
+ }
197
265
  /**
198
266
  * Indexes multiple files incrementally.
199
267
  * Processes files sequentially for simplicity and reliability.
@@ -218,67 +286,20 @@ export async function indexMultipleFiles(filepaths, vectorDB, embeddings, option
218
286
  const manifestEntries = [];
219
287
  // Process each file sequentially (simple and reliable)
220
288
  for (const filepath of filepaths) {
221
- // Normalize to relative path for consistent storage and queries
222
- // This ensures paths from git diff (absolute) match paths from scanner (relative)
223
289
  const normalizedPath = normalizeToRelativePath(filepath);
224
290
  const result = await processSingleFileForIndexing(filepath, normalizedPath, embeddings, verbose || false, rootDir);
225
291
  if (isOk(result)) {
226
- const { filepath: storedPath, result: processResult, mtime } = result.value;
292
+ const { filepath: storedPath, result: processResult, mtime, contentHash } = result.value;
227
293
  if (processResult === null) {
228
- // Empty file - remove from vector DB but keep in manifest with chunkCount: 0
229
- try {
230
- await vectorDB.deleteByFile(storedPath);
231
- }
232
- catch (error) {
233
- // Ignore errors if file wasn't in index
234
- }
235
- // Update manifest immediately for empty files (not batched)
236
- const manifest = new ManifestManager(vectorDB.dbPath);
237
- await manifest.updateFile(storedPath, {
238
- filepath: storedPath,
239
- lastModified: mtime,
240
- chunkCount: 0,
241
- });
242
- processedCount++;
243
- continue;
294
+ await handleEmptyFile(storedPath, mtime, contentHash, vectorDB);
244
295
  }
245
- // Non-empty file - delete old chunks if they exist
246
- try {
247
- await vectorDB.deleteByFile(storedPath);
248
- }
249
- catch (error) {
250
- // Ignore - file might not be in index yet
251
- }
252
- // Insert new chunks
253
- await vectorDB.insertBatch(processResult.vectors, processResult.chunks.map(c => c.metadata), processResult.texts);
254
- // Queue manifest update (batch at end)
255
- manifestEntries.push({
256
- filepath: storedPath,
257
- chunkCount: processResult.chunkCount,
258
- mtime,
259
- });
260
- if (verbose) {
261
- console.error(`[Lien] ✓ Updated ${storedPath} (${processResult.chunkCount} chunks)`);
296
+ else {
297
+ await handleNonEmptyFile(storedPath, processResult, mtime, contentHash, vectorDB, verbose || false, manifestEntries);
262
298
  }
263
299
  processedCount++;
264
300
  }
265
301
  else {
266
- // File doesn't exist or couldn't be read - handle deletion
267
- if (verbose) {
268
- console.error(`[Lien] ${result.error}`);
269
- }
270
- try {
271
- await vectorDB.deleteByFile(normalizedPath);
272
- const manifest = new ManifestManager(vectorDB.dbPath);
273
- await manifest.removeFile(normalizedPath);
274
- }
275
- catch (error) {
276
- // Ignore errors if file wasn't in index
277
- if (verbose) {
278
- console.error(`[Lien] Note: ${normalizedPath} not in index`);
279
- }
280
- }
281
- // Count as processed regardless of deletion success/failure
302
+ await handleFileNotFound(normalizedPath, result.error, vectorDB, verbose || false);
282
303
  processedCount++;
283
304
  }
284
305
  }
@@ -289,6 +310,7 @@ export async function indexMultipleFiles(filepaths, vectorDB, embeddings, option
289
310
  filepath: entry.filepath,
290
311
  lastModified: entry.mtime, // Use actual file mtime for accurate change detection
291
312
  chunkCount: entry.chunkCount,
313
+ contentHash: entry.contentHash, // Include content hash for change detection
292
314
  })));
293
315
  }
294
316
  return processedCount;
@@ -1 +1 @@
1
- {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/indexer/incremental.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/indexer/incremental.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAgBtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,iDAAiD;IACjD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgDD,8CAA8C;AAC9C,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAsEzE;AAwVD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiC1F;AAGD,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAkBtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,iDAAiD;IACjD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgDD,8CAA8C;AAC9C,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAsEzE;AA8WD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiC1F;AAGD,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
@@ -16,6 +16,7 @@ import { detectAllFrameworks } from '../frameworks/detector-service.js';
16
16
  import { getFrameworkDetector } from '../frameworks/registry.js';
17
17
  import { DEFAULT_CHUNK_SIZE, DEFAULT_CHUNK_OVERLAP, DEFAULT_CONCURRENCY, DEFAULT_EMBEDDING_BATCH_SIZE, } from '../constants.js';
18
18
  import { chunkFile } from './chunker.js';
19
+ import { computeContentHash } from './content-hash.js';
19
20
  import { LocalEmbeddings } from '../embeddings/local.js';
20
21
  import { createVectorDB } from '../vectordb/factory.js';
21
22
  import { writeVersionFile } from '../vectordb/version.js';
@@ -250,8 +251,10 @@ async function processFileForIndexing(file, batchProcessor, indexConfig, progres
250
251
  progressTracker.incrementFiles();
251
252
  return false;
252
253
  }
254
+ // Compute content hash for change detection
255
+ const contentHash = await computeContentHash(file);
253
256
  // Add chunks to batch processor (handles mutex internally)
254
- await batchProcessor.addChunks(chunks, file, stats.mtimeMs);
257
+ await batchProcessor.addChunks(chunks, file, stats.mtimeMs, contentHash);
255
258
  progressTracker.incrementFiles();
256
259
  return true;
257
260
  }
@@ -261,10 +264,48 @@ async function processFileForIndexing(file, batchProcessor, indexConfig, progres
261
264
  }
262
265
  }
263
266
  /**
264
- * Perform a full index of the codebase.
267
+ * Create progress tracker for full indexing
268
+ */
269
+ function createProgressTracker(files, onProgress) {
270
+ const processedCount = { value: 0 };
271
+ return {
272
+ incrementFiles: () => {
273
+ processedCount.value++;
274
+ onProgress?.({
275
+ phase: 'indexing',
276
+ message: `Processing files...`,
277
+ filesTotal: files.length,
278
+ filesProcessed: processedCount.value,
279
+ });
280
+ },
281
+ incrementChunks: () => { },
282
+ getProcessedCount: () => processedCount.value,
283
+ start: () => { },
284
+ stop: () => { },
285
+ };
286
+ }
287
+ /**
288
+ * Save indexing results to manifest and write version file
289
+ */
290
+ async function saveIndexResults(batchProcessor, vectorDB, rootDir) {
291
+ const { indexedFiles } = batchProcessor.getResults();
292
+ const manifest = new ManifestManager(vectorDB.dbPath);
293
+ await manifest.updateFiles(indexedFiles.map(entry => ({
294
+ filepath: entry.filepath,
295
+ lastModified: entry.mtime,
296
+ chunkCount: entry.chunkCount,
297
+ contentHash: entry.contentHash,
298
+ })));
299
+ // Save git state if in a git repo
300
+ await updateGitState(rootDir, vectorDB, manifest);
301
+ // Write version file to mark successful completion
302
+ await writeVersionFile(vectorDB.dbPath);
303
+ }
304
+ /**
305
+ * Perform full indexing of the codebase
265
306
  */
266
307
  async function performFullIndex(rootDir, vectorDB, options, startTime) {
267
- // 1. Clear existing index (required for schema changes)
308
+ // 1. Clear existing index
268
309
  options.onProgress?.({ phase: 'initializing', message: 'Clearing existing index...' });
269
310
  await vectorDB.clear();
270
311
  // 2. Scan for files
@@ -280,7 +321,7 @@ async function performFullIndex(rootDir, vectorDB, options, startTime) {
280
321
  error: 'No files found to index',
281
322
  };
282
323
  }
283
- // 3. Initialize embeddings model
324
+ // 3. Initialize embeddings
284
325
  options.onProgress?.({
285
326
  phase: 'embedding',
286
327
  message: 'Loading embedding model...',
@@ -292,23 +333,7 @@ async function performFullIndex(rootDir, vectorDB, options, startTime) {
292
333
  }
293
334
  // 4. Setup processing infrastructure
294
335
  const indexConfig = getIndexingConfig(rootDir);
295
- const processedCount = { value: 0 };
296
- // Create a simple progress tracker that works with callbacks
297
- const progressTracker = {
298
- incrementFiles: () => {
299
- processedCount.value++;
300
- options.onProgress?.({
301
- phase: 'indexing',
302
- message: `Processing files...`,
303
- filesTotal: files.length,
304
- filesProcessed: processedCount.value,
305
- });
306
- },
307
- incrementChunks: () => { },
308
- getProcessedCount: () => processedCount.value,
309
- start: () => { },
310
- stop: () => { },
311
- };
336
+ const progressTracker = createProgressTracker(files, options.onProgress);
312
337
  const batchProcessor = new ChunkBatchProcessor(vectorDB, embeddings, {
313
338
  batchThreshold: 100,
314
339
  embeddingBatchSize: indexConfig.embeddingBatchSize,
@@ -324,42 +349,32 @@ async function performFullIndex(rootDir, vectorDB, options, startTime) {
324
349
  const limit = pLimit(indexConfig.concurrency);
325
350
  const filePromises = files.map(file => limit(() => processFileForIndexing(file, batchProcessor, indexConfig, progressTracker, options.verbose ?? false)));
326
351
  await Promise.all(filePromises);
327
- // 6. Flush remaining chunks
328
352
  await batchProcessor.flush();
329
353
  }
330
354
  catch (error) {
331
355
  return {
332
356
  success: false,
333
- filesIndexed: processedCount.value,
357
+ filesIndexed: progressTracker.getProcessedCount(),
334
358
  chunksCreated: 0,
335
359
  durationMs: Date.now() - startTime,
336
360
  incremental: false,
337
361
  error: error instanceof Error ? error.message : String(error),
338
362
  };
339
363
  }
340
- // 7. Save results
364
+ // 6. Save results
341
365
  options.onProgress?.({ phase: 'saving', message: 'Saving index manifest...' });
342
- const { processedChunks, indexedFiles } = batchProcessor.getResults();
343
- const manifest = new ManifestManager(vectorDB.dbPath);
344
- await manifest.updateFiles(indexedFiles.map(entry => ({
345
- filepath: entry.filepath,
346
- lastModified: entry.mtime,
347
- chunkCount: entry.chunkCount,
348
- })));
349
- // Save git state if in a git repo
350
- await updateGitState(rootDir, vectorDB, manifest);
351
- // Write version file to mark successful completion
352
- await writeVersionFile(vectorDB.dbPath);
366
+ await saveIndexResults(batchProcessor, vectorDB, rootDir);
367
+ const { processedChunks } = batchProcessor.getResults();
353
368
  options.onProgress?.({
354
369
  phase: 'complete',
355
370
  message: 'Indexing complete',
356
371
  filesTotal: files.length,
357
- filesProcessed: processedCount.value,
372
+ filesProcessed: progressTracker.getProcessedCount(),
358
373
  chunksProcessed: processedChunks,
359
374
  });
360
375
  return {
361
376
  success: true,
362
- filesIndexed: processedCount.value,
377
+ filesIndexed: progressTracker.getProcessedCount(),
363
378
  chunksCreated: processedChunks,
364
379
  durationMs: Date.now() - startTime,
365
380
  incremental: false,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface FileEntry {
6
6
  filepath: string;
7
7
  lastModified: number;
8
8
  chunkCount: number;
9
+ contentHash?: string;
9
10
  }
10
11
  /**
11
12
  * Index manifest tracking all indexed files and version information
@@ -16,6 +17,7 @@ export interface IndexManifest {
16
17
  lastIndexed: number;
17
18
  gitState?: GitState;
18
19
  files: Record<string, FileEntry>;
20
+ hashAlgorithm?: 'sha256-16' | 'sha256-16-large';
19
21
  }
20
22
  /**
21
23
  * Manages the index manifest file, tracking which files are indexed
@@ -87,6 +89,16 @@ export declare class ManifestManager {
87
89
  * @param gitState - Current git state
88
90
  */
89
91
  updateGitState(gitState: GitState): Promise<void>;
92
+ /**
93
+ * Perform an atomic transaction on the manifest.
94
+ * The updater function receives the current manifest and can modify it.
95
+ * All changes are applied atomically under lock protection.
96
+ *
97
+ * @param updater - Function that modifies the manifest
98
+ * @returns Result returned by updater function
99
+ * @throws Error if transaction fails
100
+ */
101
+ transaction<T>(updater: (manifest: IndexManifest) => T | Promise<T>): Promise<T>;
90
102
  /**
91
103
  * Gets the list of files currently in the manifest
92
104
  *
@@ -94,12 +106,33 @@ export declare class ManifestManager {
94
106
  */
95
107
  getIndexedFiles(): Promise<string[]>;
96
108
  /**
97
- * Detects which files have changed based on mtime comparison
109
+ * Check if a file needs reindexing based on mtime and content hash.
110
+ * Returns true if file should be reindexed, false otherwise.
111
+ * Updates entry mtime if content unchanged.
112
+ *
113
+ * @param filepath - File path (relative to project root)
114
+ * @param mtime - Current file modification time
115
+ * @param entry - Existing manifest entry
116
+ * @param hashCompatible - Whether hash algorithm is compatible
117
+ * @param rootDir - Project root directory for resolving relative paths
118
+ */
119
+ private shouldReindexFile;
120
+ /**
121
+ * Detects which files have changed based on mtime and content hash comparison.
122
+ *
123
+ * Uses a two-stage approach:
124
+ * 1. Quick mtime check - if unchanged, skip file
125
+ * 2. Content hash check - if mtime changed but hash matches, skip reindex
126
+ *
127
+ * This avoids unnecessary reindexing when files are touched without content changes.
128
+ *
129
+ * Thread-safe: Uses the same update lock as other manifest operations.
98
130
  *
99
131
  * @param currentFiles - Map of current files with their mtimes
132
+ * @param rootDir - Optional project root directory for resolving relative paths (required for hash checking)
100
133
  * @returns Array of filepaths that have changed
101
134
  */
102
- getChangedFiles(currentFiles: Map<string, number>): Promise<string[]>;
135
+ getChangedFiles(currentFiles: Map<string, number>, rootDir?: string): Promise<string[]>;
103
136
  /**
104
137
  * Gets files that are in the manifest but not in the current file list
105
138
  * (i.e., deleted files)
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/indexer/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAqB;IAEvC;;;OAGG;gBACS,SAAS,EAAE,MAAM;IAK7B;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA8B3C;;;;;OAKG;IACG,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBlD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnE;;;;;;;;OAQG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjD;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtD;;;;;OAKG;IACG,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAO1C;;;;;OAKG;IACG,eAAe,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB3E;;;;;;OAMG;IACG,eAAe,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAenE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAQpB"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/indexer/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAqB;IAEvC;;;OAGG;gBACS,SAAS,EAAE,MAAM;IAK7B;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA8B3C;;;;;OAKG;IACG,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnE;;;;;;;;OAQG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjD;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtD;;;;;OAKG;IACG,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD;;;;;;;;OAQG;IACG,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA+BtF;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAO1C;;;;;;;;;;OAUG;YACW,iBAAiB;IAkC/B;;;;;;;;;;;;;;OAcG;IACG,eAAe,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuD7F;;;;;;OAMG;IACG,eAAe,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAenE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAQpB"}
@@ -2,6 +2,7 @@ import fs from 'fs/promises';
2
2
  import path from 'path';
3
3
  import { INDEX_FORMAT_VERSION } from '../constants.js';
4
4
  import { getPackageVersion } from '../utils/version.js';
5
+ import { computeContentHash, isHashAlgorithmCompatible } from './content-hash.js';
5
6
  const MANIFEST_FILE = 'manifest.json';
6
7
  /**
7
8
  * Manages the index manifest file, tracking which files are indexed
@@ -76,6 +77,7 @@ export class ManifestManager {
76
77
  formatVersion: INDEX_FORMAT_VERSION,
77
78
  lienVersion: getPackageVersion(),
78
79
  lastIndexed: Date.now(),
80
+ hashAlgorithm: 'sha256-16-large', // Current hash algorithm
79
81
  };
80
82
  const content = JSON.stringify(manifestToSave, null, 2);
81
83
  await fs.writeFile(this.manifestPath, content, 'utf-8');
@@ -175,6 +177,39 @@ export class ManifestManager {
175
177
  // Wait for this operation to complete
176
178
  await this.updateLock;
177
179
  }
180
+ /**
181
+ * Perform an atomic transaction on the manifest.
182
+ * The updater function receives the current manifest and can modify it.
183
+ * All changes are applied atomically under lock protection.
184
+ *
185
+ * @param updater - Function that modifies the manifest
186
+ * @returns Result returned by updater function
187
+ * @throws Error if transaction fails
188
+ */
189
+ async transaction(updater) {
190
+ let result;
191
+ let error;
192
+ // Chain this operation to the lock to ensure atomicity
193
+ this.updateLock = this.updateLock.then(async () => {
194
+ const manifest = await this.load() || this.createEmpty();
195
+ // Execute updater function
196
+ result = await Promise.resolve(updater(manifest));
197
+ // Save changes
198
+ await this.save(manifest);
199
+ }).catch(err => {
200
+ console.error(`[Lien] Failed to execute manifest transaction: ${err}`);
201
+ error = err instanceof Error ? err : new Error(String(err));
202
+ // Return to reset lock - don't let errors block future operations
203
+ return undefined;
204
+ });
205
+ // Wait for this operation to complete
206
+ await this.updateLock;
207
+ // If an error occurred, throw it
208
+ if (error) {
209
+ throw error;
210
+ }
211
+ return result;
212
+ }
178
213
  /**
179
214
  * Gets the list of files currently in the manifest
180
215
  *
@@ -187,30 +222,91 @@ export class ManifestManager {
187
222
  return Object.keys(manifest.files);
188
223
  }
189
224
  /**
190
- * Detects which files have changed based on mtime comparison
225
+ * Check if a file needs reindexing based on mtime and content hash.
226
+ * Returns true if file should be reindexed, false otherwise.
227
+ * Updates entry mtime if content unchanged.
228
+ *
229
+ * @param filepath - File path (relative to project root)
230
+ * @param mtime - Current file modification time
231
+ * @param entry - Existing manifest entry
232
+ * @param hashCompatible - Whether hash algorithm is compatible
233
+ * @param rootDir - Project root directory for resolving relative paths
234
+ */
235
+ async shouldReindexFile(filepath, mtime, entry, hashCompatible, rootDir) {
236
+ // New file
237
+ if (!entry) {
238
+ return { needsReindex: true, mtimeUpdated: false };
239
+ }
240
+ // Quick check: if mtime unchanged, skip
241
+ if (entry.lastModified === mtime) {
242
+ return { needsReindex: false, mtimeUpdated: false };
243
+ }
244
+ // mtime changed - check if content actually changed (if hash available and rootDir provided)
245
+ if (hashCompatible && entry.contentHash && rootDir) {
246
+ // Resolve relative path against rootDir
247
+ const absolutePath = path.isAbsolute(filepath) ? filepath : path.join(rootDir, filepath);
248
+ const currentHash = await computeContentHash(absolutePath);
249
+ if (currentHash && currentHash === entry.contentHash) {
250
+ // Content unchanged - update mtime and skip reindex
251
+ entry.lastModified = mtime;
252
+ return { needsReindex: false, mtimeUpdated: true };
253
+ }
254
+ }
255
+ // Content changed or hash unavailable
256
+ return { needsReindex: true, mtimeUpdated: false };
257
+ }
258
+ /**
259
+ * Detects which files have changed based on mtime and content hash comparison.
260
+ *
261
+ * Uses a two-stage approach:
262
+ * 1. Quick mtime check - if unchanged, skip file
263
+ * 2. Content hash check - if mtime changed but hash matches, skip reindex
264
+ *
265
+ * This avoids unnecessary reindexing when files are touched without content changes.
266
+ *
267
+ * Thread-safe: Uses the same update lock as other manifest operations.
191
268
  *
192
269
  * @param currentFiles - Map of current files with their mtimes
270
+ * @param rootDir - Optional project root directory for resolving relative paths (required for hash checking)
193
271
  * @returns Array of filepaths that have changed
194
272
  */
195
- async getChangedFiles(currentFiles) {
196
- const manifest = await this.load();
197
- if (!manifest) {
198
- // No manifest = all files are "changed" (need full index)
199
- return Array.from(currentFiles.keys());
200
- }
201
- const changedFiles = [];
202
- for (const [filepath, mtime] of currentFiles) {
203
- const entry = manifest.files[filepath];
204
- if (!entry) {
205
- // New file
206
- changedFiles.push(filepath);
273
+ async getChangedFiles(currentFiles, rootDir) {
274
+ // Protect against concurrent updates using the same lock as updateFile/updateFiles
275
+ const result = this.updateLock.then(async () => {
276
+ const manifest = await this.load();
277
+ if (!manifest) {
278
+ // No manifest = all files are "changed" (need full index)
279
+ return Array.from(currentFiles.keys());
207
280
  }
208
- else if (entry.lastModified < mtime) {
209
- // File modified since last index
210
- changedFiles.push(filepath);
281
+ const hashCompatible = isHashAlgorithmCompatible(manifest.hashAlgorithm);
282
+ const changedFiles = [];
283
+ let skippedByHash = 0;
284
+ let manifestNeedsUpdate = false;
285
+ for (const [filepath, mtime] of currentFiles) {
286
+ const entry = manifest.files[filepath];
287
+ const { needsReindex, mtimeUpdated } = await this.shouldReindexFile(filepath, mtime, entry, hashCompatible, rootDir);
288
+ if (needsReindex) {
289
+ changedFiles.push(filepath);
290
+ }
291
+ else if (mtimeUpdated) {
292
+ skippedByHash++;
293
+ manifestNeedsUpdate = true;
294
+ }
211
295
  }
212
- }
213
- return changedFiles;
296
+ // Save manifest if we updated any mtimes
297
+ if (manifestNeedsUpdate) {
298
+ await this.save(manifest);
299
+ }
300
+ if (skippedByHash > 0) {
301
+ console.log(`[Lien] Skipped ${skippedByHash} file(s) with unchanged content`);
302
+ }
303
+ return changedFiles;
304
+ });
305
+ // Update the lock for the next operation, with error handling
306
+ this.updateLock = result.then(() => { }, (error) => {
307
+ console.error('[Lien] Warning: Failed to get changed files:', error);
308
+ });
309
+ return result;
214
310
  }
215
311
  /**
216
312
  * Gets files that are in the manifest but not in the current file list
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/indexer/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/indexer/manifest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liendev/core",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
4
4
  "description": "Core indexing and analysis engine for Lien",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",