@liendev/core 0.24.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.
Files changed (74) hide show
  1. package/dist/frameworks/python/config.d.ts +6 -0
  2. package/dist/frameworks/python/config.d.ts.map +1 -0
  3. package/dist/frameworks/python/config.js +73 -0
  4. package/dist/frameworks/python/config.js.map +1 -0
  5. package/dist/frameworks/python/detector.d.ts +7 -0
  6. package/dist/frameworks/python/detector.d.ts.map +1 -0
  7. package/dist/frameworks/python/detector.js +129 -0
  8. package/dist/frameworks/python/detector.js.map +1 -0
  9. package/dist/frameworks/registry.d.ts +1 -1
  10. package/dist/frameworks/registry.d.ts.map +1 -1
  11. package/dist/frameworks/registry.js +3 -1
  12. package/dist/frameworks/registry.js.map +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/indexer/ast/chunker.d.ts.map +1 -1
  18. package/dist/indexer/ast/chunker.js +86 -50
  19. package/dist/indexer/ast/chunker.js.map +1 -1
  20. package/dist/indexer/ast/extractors/index.d.ts +25 -0
  21. package/dist/indexer/ast/extractors/index.d.ts.map +1 -0
  22. package/dist/indexer/ast/extractors/index.js +49 -0
  23. package/dist/indexer/ast/extractors/index.js.map +1 -0
  24. package/dist/indexer/ast/extractors/javascript.d.ts +32 -0
  25. package/dist/indexer/ast/extractors/javascript.d.ts.map +1 -0
  26. package/dist/indexer/ast/extractors/javascript.js +97 -0
  27. package/dist/indexer/ast/extractors/javascript.js.map +1 -0
  28. package/dist/indexer/ast/extractors/php.d.ts +34 -0
  29. package/dist/indexer/ast/extractors/php.d.ts.map +1 -0
  30. package/dist/indexer/ast/extractors/php.js +79 -0
  31. package/dist/indexer/ast/extractors/php.js.map +1 -0
  32. package/dist/indexer/ast/extractors/python.d.ts +22 -0
  33. package/dist/indexer/ast/extractors/python.d.ts.map +1 -0
  34. package/dist/indexer/ast/extractors/python.js +57 -0
  35. package/dist/indexer/ast/extractors/python.js.map +1 -0
  36. package/dist/indexer/ast/extractors/types.d.ts +52 -0
  37. package/dist/indexer/ast/extractors/types.d.ts.map +1 -0
  38. package/dist/indexer/ast/extractors/types.js +2 -0
  39. package/dist/indexer/ast/extractors/types.js.map +1 -0
  40. package/dist/indexer/ast/symbols.d.ts +72 -1
  41. package/dist/indexer/ast/symbols.d.ts.map +1 -1
  42. package/dist/indexer/ast/symbols.js +520 -0
  43. package/dist/indexer/ast/symbols.js.map +1 -1
  44. package/dist/indexer/chunk-batch-processor.d.ts +3 -1
  45. package/dist/indexer/chunk-batch-processor.d.ts.map +1 -1
  46. package/dist/indexer/chunk-batch-processor.js +3 -1
  47. package/dist/indexer/chunk-batch-processor.js.map +1 -1
  48. package/dist/indexer/content-hash.d.ts +20 -0
  49. package/dist/indexer/content-hash.d.ts.map +1 -0
  50. package/dist/indexer/content-hash.js +91 -0
  51. package/dist/indexer/content-hash.js.map +1 -0
  52. package/dist/indexer/incremental.d.ts.map +1 -1
  53. package/dist/indexer/incremental.js +78 -56
  54. package/dist/indexer/incremental.js.map +1 -1
  55. package/dist/indexer/index.d.ts.map +1 -1
  56. package/dist/indexer/index.js +52 -37
  57. package/dist/indexer/index.js.map +1 -1
  58. package/dist/indexer/manifest.d.ts +35 -2
  59. package/dist/indexer/manifest.d.ts.map +1 -1
  60. package/dist/indexer/manifest.js +114 -18
  61. package/dist/indexer/manifest.js.map +1 -1
  62. package/dist/indexer/types.d.ts +18 -0
  63. package/dist/indexer/types.d.ts.map +1 -1
  64. package/dist/vectordb/batch-insert.d.ts.map +1 -1
  65. package/dist/vectordb/batch-insert.js +97 -23
  66. package/dist/vectordb/batch-insert.js.map +1 -1
  67. package/dist/vectordb/qdrant-payload-mapper.d.ts +11 -0
  68. package/dist/vectordb/qdrant-payload-mapper.d.ts.map +1 -1
  69. package/dist/vectordb/qdrant-payload-mapper.js +33 -0
  70. package/dist/vectordb/qdrant-payload-mapper.js.map +1 -1
  71. package/dist/vectordb/query.d.ts.map +1 -1
  72. package/dist/vectordb/query.js +107 -10
  73. package/dist/vectordb/query.js.map +1 -1
  74. package/package.json +1 -1
@@ -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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"}