@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.
- package/dist/frameworks/python/config.d.ts +6 -0
- package/dist/frameworks/python/config.d.ts.map +1 -0
- package/dist/frameworks/python/config.js +73 -0
- package/dist/frameworks/python/config.js.map +1 -0
- package/dist/frameworks/python/detector.d.ts +7 -0
- package/dist/frameworks/python/detector.d.ts.map +1 -0
- package/dist/frameworks/python/detector.js +129 -0
- package/dist/frameworks/python/detector.js.map +1 -0
- package/dist/frameworks/registry.d.ts +1 -1
- package/dist/frameworks/registry.d.ts.map +1 -1
- package/dist/frameworks/registry.js +3 -1
- package/dist/frameworks/registry.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/indexer/ast/chunker.d.ts.map +1 -1
- package/dist/indexer/ast/chunker.js +86 -50
- package/dist/indexer/ast/chunker.js.map +1 -1
- package/dist/indexer/ast/extractors/index.d.ts +25 -0
- package/dist/indexer/ast/extractors/index.d.ts.map +1 -0
- package/dist/indexer/ast/extractors/index.js +49 -0
- package/dist/indexer/ast/extractors/index.js.map +1 -0
- package/dist/indexer/ast/extractors/javascript.d.ts +32 -0
- package/dist/indexer/ast/extractors/javascript.d.ts.map +1 -0
- package/dist/indexer/ast/extractors/javascript.js +97 -0
- package/dist/indexer/ast/extractors/javascript.js.map +1 -0
- package/dist/indexer/ast/extractors/php.d.ts +34 -0
- package/dist/indexer/ast/extractors/php.d.ts.map +1 -0
- package/dist/indexer/ast/extractors/php.js +79 -0
- package/dist/indexer/ast/extractors/php.js.map +1 -0
- package/dist/indexer/ast/extractors/python.d.ts +22 -0
- package/dist/indexer/ast/extractors/python.d.ts.map +1 -0
- package/dist/indexer/ast/extractors/python.js +57 -0
- package/dist/indexer/ast/extractors/python.js.map +1 -0
- package/dist/indexer/ast/extractors/types.d.ts +52 -0
- package/dist/indexer/ast/extractors/types.d.ts.map +1 -0
- package/dist/indexer/ast/extractors/types.js +2 -0
- package/dist/indexer/ast/extractors/types.js.map +1 -0
- package/dist/indexer/ast/symbols.d.ts +72 -1
- package/dist/indexer/ast/symbols.d.ts.map +1 -1
- package/dist/indexer/ast/symbols.js +520 -0
- package/dist/indexer/ast/symbols.js.map +1 -1
- package/dist/indexer/chunk-batch-processor.d.ts +3 -1
- package/dist/indexer/chunk-batch-processor.d.ts.map +1 -1
- package/dist/indexer/chunk-batch-processor.js +3 -1
- package/dist/indexer/chunk-batch-processor.js.map +1 -1
- package/dist/indexer/content-hash.d.ts +20 -0
- package/dist/indexer/content-hash.d.ts.map +1 -0
- package/dist/indexer/content-hash.js +91 -0
- package/dist/indexer/content-hash.js.map +1 -0
- package/dist/indexer/incremental.d.ts.map +1 -1
- package/dist/indexer/incremental.js +78 -56
- package/dist/indexer/incremental.js.map +1 -1
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +52 -37
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/manifest.d.ts +35 -2
- package/dist/indexer/manifest.d.ts.map +1 -1
- package/dist/indexer/manifest.js +114 -18
- package/dist/indexer/manifest.js.map +1 -1
- package/dist/indexer/types.d.ts +18 -0
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/vectordb/batch-insert.d.ts.map +1 -1
- package/dist/vectordb/batch-insert.js +97 -23
- package/dist/vectordb/batch-insert.js.map +1 -1
- package/dist/vectordb/qdrant-payload-mapper.d.ts +11 -0
- package/dist/vectordb/qdrant-payload-mapper.d.ts.map +1 -1
- package/dist/vectordb/qdrant-payload-mapper.js +33 -0
- package/dist/vectordb/qdrant-payload-mapper.js.map +1 -1
- package/dist/vectordb/query.d.ts.map +1 -1
- package/dist/vectordb/query.js +107 -10
- package/dist/vectordb/query.js.map +1 -1
- 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;
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
246
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;GAGG;AACH,SAAS,aAAa,CAAC,WAAmB;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM;SACpB,UAAU,CAAC,KAAK,CAAC;SACjB,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,KAAK,CAAC;SACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,OAAO,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB,EAAE,OAAgB;IACxE,0EAA0E;IAC1E,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhD,oCAAoC;IACpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,+BAA+B;IAC/B,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,8BAA8B;IAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;
|
|
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;
|
|
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"}
|
package/dist/indexer/index.js
CHANGED
|
@@ -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
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
//
|
|
364
|
+
// 6. Save results
|
|
341
365
|
options.onProgress?.({ phase: 'saving', message: 'Saving index manifest...' });
|
|
342
|
-
|
|
343
|
-
const
|
|
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:
|
|
372
|
+
filesProcessed: progressTracker.getProcessedCount(),
|
|
358
373
|
chunksProcessed: processedChunks,
|
|
359
374
|
});
|
|
360
375
|
return {
|
|
361
376
|
success: true,
|
|
362
|
-
filesIndexed:
|
|
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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"}
|