codevault 1.5.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +75 -40
- package/README.md +112 -345
- package/dist/chunking/file-grouper.d.ts +1 -1
- package/dist/chunking/file-grouper.d.ts.map +1 -1
- package/dist/chunking/file-grouper.js +2 -19
- package/dist/chunking/file-grouper.js.map +1 -1
- package/dist/chunking/semantic-chunker.d.ts.map +1 -1
- package/dist/chunking/semantic-chunker.js +4 -19
- package/dist/chunking/semantic-chunker.js.map +1 -1
- package/dist/cli/commands/chat-cmd.d.ts +3 -0
- package/dist/cli/commands/chat-cmd.d.ts.map +1 -0
- package/dist/cli/commands/chat-cmd.js +194 -0
- package/dist/cli/commands/chat-cmd.js.map +1 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/config/constants.d.ts +326 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +214 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +11 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/core/batch-indexer.d.ts +14 -2
- package/dist/core/batch-indexer.d.ts.map +1 -1
- package/dist/core/batch-indexer.js +107 -79
- package/dist/core/batch-indexer.js.map +1 -1
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +4 -28
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +8 -5
- package/dist/core/search.js.map +1 -1
- package/dist/database/db.d.ts +44 -5
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +270 -109
- package/dist/database/db.js.map +1 -1
- package/dist/mcp/schemas.d.ts +166 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +159 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp-server.js +31 -38
- package/dist/mcp-server.js.map +1 -1
- package/dist/providers/chat-llm.d.ts.map +1 -1
- package/dist/providers/chat-llm.js +4 -1
- package/dist/providers/chat-llm.js.map +1 -1
- package/dist/ranking/symbol-boost.d.ts.map +1 -1
- package/dist/ranking/symbol-boost.js +28 -7
- package/dist/ranking/symbol-boost.js.map +1 -1
- package/dist/storage/encrypted-chunks.d.ts.map +1 -1
- package/dist/storage/encrypted-chunks.js +3 -2
- package/dist/storage/encrypted-chunks.js.map +1 -1
- package/dist/symbols/extract.d.ts.map +1 -1
- package/dist/symbols/extract.js +27 -6
- package/dist/symbols/extract.js.map +1 -1
- package/dist/symbols/graph.d.ts.map +1 -1
- package/dist/symbols/graph.js +1 -1
- package/dist/symbols/graph.js.map +1 -1
- package/dist/synthesis/conversational-synthesizer.d.ts +61 -0
- package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -0
- package/dist/synthesis/conversational-synthesizer.js +286 -0
- package/dist/synthesis/conversational-synthesizer.js.map +1 -0
- package/dist/utils/indexer-with-progress.d.ts.map +1 -1
- package/dist/utils/indexer-with-progress.js +12 -27
- package/dist/utils/indexer-with-progress.js.map +1 -1
- package/dist/utils/logger.d.ts +55 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +121 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mutex.d.ts +63 -0
- package/dist/utils/mutex.d.ts.map +1 -0
- package/dist/utils/mutex.js +123 -0
- package/dist/utils/mutex.js.map +1 -0
- package/dist/utils/path-helpers.d.ts +27 -0
- package/dist/utils/path-helpers.d.ts.map +1 -0
- package/dist/utils/path-helpers.js +55 -0
- package/dist/utils/path-helpers.js.map +1 -0
- package/dist/utils/scan-patterns.d.ts +5 -0
- package/dist/utils/scan-patterns.d.ts.map +1 -0
- package/dist/utils/scan-patterns.js +29 -0
- package/dist/utils/scan-patterns.js.map +1 -0
- package/package.json +4 -3
- package/dist/providers/ollama.d.ts +0 -13
- package/dist/providers/ollama.d.ts.map +0 -1
- package/dist/providers/ollama.js +0 -50
- package/dist/providers/ollama.js.map +0 -1
|
@@ -21,7 +21,7 @@ export declare class BatchEmbeddingProcessor {
|
|
|
21
21
|
private db;
|
|
22
22
|
private batch;
|
|
23
23
|
private batchSize;
|
|
24
|
-
private
|
|
24
|
+
private mutex;
|
|
25
25
|
constructor(embeddingProvider: EmbeddingProvider, db: Database, batchSize?: number);
|
|
26
26
|
/**
|
|
27
27
|
* Add a chunk to the batch queue
|
|
@@ -32,9 +32,21 @@ export declare class BatchEmbeddingProcessor {
|
|
|
32
32
|
*/
|
|
33
33
|
flush(): Promise<void>;
|
|
34
34
|
/**
|
|
35
|
-
* Process the current batch
|
|
35
|
+
* Process the current batch (with mutex protection)
|
|
36
36
|
*/
|
|
37
37
|
private processBatch;
|
|
38
|
+
/**
|
|
39
|
+
* Process a batch with smart error handling and retry logic
|
|
40
|
+
*/
|
|
41
|
+
private processBatchWithRetry;
|
|
42
|
+
/**
|
|
43
|
+
* Internal batch processing implementation with database transactions
|
|
44
|
+
*/
|
|
45
|
+
private processBatchInternal;
|
|
46
|
+
/**
|
|
47
|
+
* Fall back to processing chunks individually
|
|
48
|
+
*/
|
|
49
|
+
private fallbackToIndividualProcessing;
|
|
38
50
|
/**
|
|
39
51
|
* Get current batch size for monitoring
|
|
40
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-indexer.d.ts","sourceRoot":"","sources":["../../src/core/batch-indexer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-indexer.d.ts","sourceRoot":"","sources":["../../src/core/batch-indexer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA8BlD,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,GAAG,CAAC;QACvB,kBAAkB,EAAE,GAAG,EAAE,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,GAAG,CAAC;KAClB,CAAC;CACH;AAED,qBAAa,uBAAuB;IAMhC,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,EAAE;IANZ,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAe;gBAGlB,iBAAiB,EAAE,iBAAiB,EACpC,EAAE,EAAE,QAAQ,EACpB,SAAS,GAAE,MAAmB;IAKhC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IASlD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;YACW,YAAY;IAS1B;;OAEG;YACW,qBAAqB;IAkCnC;;OAEG;YACW,oBAAoB;IAyClC;;OAEG;YACW,8BAA8B;IA4C5C;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { BATCH_SIZE } from '../providers/base.js';
|
|
2
|
+
import { Mutex } from '../utils/mutex.js';
|
|
3
|
+
import { log } from '../utils/logger.js';
|
|
2
4
|
const MAX_BATCH_RETRIES = 3;
|
|
3
5
|
const INITIAL_RETRY_DELAY_MS = 1000;
|
|
4
6
|
function isRateLimitError(error) {
|
|
@@ -23,8 +25,7 @@ export class BatchEmbeddingProcessor {
|
|
|
23
25
|
db;
|
|
24
26
|
batch = [];
|
|
25
27
|
batchSize;
|
|
26
|
-
|
|
27
|
-
processing = false;
|
|
28
|
+
mutex = new Mutex();
|
|
28
29
|
constructor(embeddingProvider, db, batchSize = BATCH_SIZE) {
|
|
29
30
|
this.embeddingProvider = embeddingProvider;
|
|
30
31
|
this.db = db;
|
|
@@ -35,10 +36,6 @@ export class BatchEmbeddingProcessor {
|
|
|
35
36
|
*/
|
|
36
37
|
async addChunk(chunk) {
|
|
37
38
|
this.batch.push(chunk);
|
|
38
|
-
// FIX: Wait for any ongoing processing to complete before checking batch size
|
|
39
|
-
while (this.processing) {
|
|
40
|
-
await new Promise(resolve => setTimeout(resolve, 10));
|
|
41
|
-
}
|
|
42
39
|
// Process batch when it reaches the threshold
|
|
43
40
|
if (this.batch.length >= this.batchSize) {
|
|
44
41
|
await this.processBatch();
|
|
@@ -48,41 +45,77 @@ export class BatchEmbeddingProcessor {
|
|
|
48
45
|
* Process any remaining chunks in the batch
|
|
49
46
|
*/
|
|
50
47
|
async flush() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
48
|
+
await this.mutex.runExclusive(async () => {
|
|
49
|
+
if (this.batch.length > 0) {
|
|
50
|
+
await this.processBatchWithRetry(this.batch, 0);
|
|
51
|
+
this.batch = [];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
58
54
|
}
|
|
59
55
|
/**
|
|
60
|
-
* Process the current batch
|
|
56
|
+
* Process the current batch (with mutex protection)
|
|
61
57
|
*/
|
|
62
58
|
async processBatch() {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
await this.mutex.runExclusive(async () => {
|
|
60
|
+
if (this.batch.length > 0) {
|
|
61
|
+
await this.processBatchWithRetry(this.batch, 0);
|
|
62
|
+
this.batch = [];
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Process a batch with smart error handling and retry logic
|
|
68
|
+
*/
|
|
69
|
+
async processBatchWithRetry(currentBatch, retryCount) {
|
|
69
70
|
try {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
await this.processBatchInternal(currentBatch);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
// Smart error handling based on error type
|
|
75
|
+
if (isBatchSizeError(error) && currentBatch.length > 1) {
|
|
76
|
+
// Batch too large - split in half and retry
|
|
77
|
+
log.warn(`Batch size too large (${currentBatch.length} chunks), splitting and retrying`);
|
|
78
|
+
const mid = Math.floor(currentBatch.length / 2);
|
|
79
|
+
const firstHalf = currentBatch.slice(0, mid);
|
|
80
|
+
const secondHalf = currentBatch.slice(mid);
|
|
81
|
+
// Process both halves recursively
|
|
82
|
+
await this.processBatchWithRetry(firstHalf, 0);
|
|
83
|
+
await this.processBatchWithRetry(secondHalf, 0);
|
|
84
|
+
return;
|
|
75
85
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
else if (isRateLimitError(error) && retryCount < MAX_BATCH_RETRIES) {
|
|
87
|
+
// Rate limit error - exponential backoff
|
|
88
|
+
const delay = INITIAL_RETRY_DELAY_MS * Math.pow(2, retryCount);
|
|
89
|
+
log.warn(`Rate limit hit, retrying batch in ${delay}ms (attempt ${retryCount + 1}/${MAX_BATCH_RETRIES})`);
|
|
90
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
91
|
+
await this.processBatchWithRetry(currentBatch, retryCount + 1);
|
|
92
|
+
return;
|
|
80
93
|
}
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
94
|
+
// Other errors or max retries reached - fall back to individual processing
|
|
95
|
+
log.error(`Batch processing failed for ${currentBatch.length} chunks`, error);
|
|
96
|
+
log.warn('Falling back to individual processing (this will be slower)');
|
|
97
|
+
await this.fallbackToIndividualProcessing(currentBatch);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Internal batch processing implementation with database transactions
|
|
102
|
+
*/
|
|
103
|
+
async processBatchInternal(batch) {
|
|
104
|
+
if (batch.length === 0)
|
|
105
|
+
return;
|
|
106
|
+
// Extract texts for embedding
|
|
107
|
+
const texts = batch.map(chunk => chunk.enhancedEmbeddingText);
|
|
108
|
+
// Log batching activity
|
|
109
|
+
log.info(`Processing batch of ${texts.length} chunks`);
|
|
110
|
+
// Generate embeddings in batch (single API call for all)
|
|
111
|
+
const embeddings = await this.embeddingProvider.generateEmbeddings(texts);
|
|
112
|
+
log.info(`Batch complete (${texts.length} embeddings generated)`);
|
|
113
|
+
// Store all embeddings in database within a transaction
|
|
114
|
+
await this.db.transaction(() => {
|
|
115
|
+
for (let i = 0; i < batch.length; i++) {
|
|
116
|
+
const chunk = batch[i];
|
|
84
117
|
const embedding = embeddings[i];
|
|
85
|
-
|
|
118
|
+
this.db.insertChunk({
|
|
86
119
|
id: chunk.chunkId,
|
|
87
120
|
file_path: chunk.params.rel,
|
|
88
121
|
symbol: chunk.params.symbol,
|
|
@@ -100,55 +133,50 @@ export class BatchEmbeddingProcessor {
|
|
|
100
133
|
context_info: chunk.params.contextInfo
|
|
101
134
|
});
|
|
102
135
|
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
catch (individualError) {
|
|
133
|
-
console.error(`Failed to process chunk ${chunk.chunkId}:`, individualError);
|
|
134
|
-
errors.push({
|
|
135
|
-
chunkId: chunk.chunkId,
|
|
136
|
-
error: individualError
|
|
137
|
-
});
|
|
138
|
-
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Fall back to processing chunks individually
|
|
140
|
+
*/
|
|
141
|
+
async fallbackToIndividualProcessing(batch) {
|
|
142
|
+
// Collect errors but continue processing all chunks to avoid data loss
|
|
143
|
+
const errors = [];
|
|
144
|
+
for (const chunk of batch) {
|
|
145
|
+
try {
|
|
146
|
+
const embedding = await this.embeddingProvider.generateEmbedding(chunk.enhancedEmbeddingText);
|
|
147
|
+
this.db.insertChunk({
|
|
148
|
+
id: chunk.chunkId,
|
|
149
|
+
file_path: chunk.params.rel,
|
|
150
|
+
symbol: chunk.params.symbol,
|
|
151
|
+
sha: chunk.params.sha,
|
|
152
|
+
lang: chunk.params.lang,
|
|
153
|
+
chunk_type: chunk.params.chunkType,
|
|
154
|
+
embedding,
|
|
155
|
+
embedding_provider: this.embeddingProvider.getName(),
|
|
156
|
+
embedding_dimensions: this.embeddingProvider.getDimensions(),
|
|
157
|
+
codevault_tags: chunk.params.codevaultMetadata.tags,
|
|
158
|
+
codevault_intent: chunk.params.codevaultMetadata.intent,
|
|
159
|
+
codevault_description: chunk.params.codevaultMetadata.description,
|
|
160
|
+
doc_comments: chunk.params.docComments,
|
|
161
|
+
variables_used: chunk.params.importantVariables,
|
|
162
|
+
context_info: chunk.params.contextInfo
|
|
163
|
+
});
|
|
139
164
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
165
|
+
catch (individualError) {
|
|
166
|
+
log.error(`Failed to process chunk ${chunk.chunkId}`, individualError);
|
|
167
|
+
errors.push({
|
|
168
|
+
chunkId: chunk.chunkId,
|
|
169
|
+
error: individualError
|
|
170
|
+
});
|
|
147
171
|
}
|
|
148
172
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
173
|
+
// Report errors but don't throw to allow indexing to continue
|
|
174
|
+
if (errors.length > 0) {
|
|
175
|
+
log.warn(`${errors.length}/${batch.length} chunks failed in fallback processing`);
|
|
176
|
+
if (errors.length === batch.length) {
|
|
177
|
+
// Only throw if ALL chunks failed
|
|
178
|
+
throw new Error(`All ${errors.length} chunks failed to process: ${errors[0].error.message}`);
|
|
179
|
+
}
|
|
152
180
|
}
|
|
153
181
|
}
|
|
154
182
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-indexer.js","sourceRoot":"","sources":["../../src/core/batch-indexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-indexer.js","sourceRoot":"","sources":["../../src/core/batch-indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAiB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAiB,MAAM,YAAY,CAAC;AAMzF,wBAAsB,YAAY,CAAC,EACjC,QAAc,EACd,QAAiB,EACjB,UAAiB,EACjB,YAAmB,EACnB,YAAiB,EACjB,yBAAgC,EAChC,WAAuB,EACxB,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8sBxD"}
|
package/dist/core/indexer.js
CHANGED
|
@@ -19,6 +19,8 @@ import { extractSymbolName } from './symbol-extractor.js';
|
|
|
19
19
|
import { extractCodevaultMetadata, extractSemanticTags, extractImportantVariables, extractDocComments, generateEnhancedEmbeddingText } from './metadata.js';
|
|
20
20
|
import { Database, initDatabase } from '../database/db.js';
|
|
21
21
|
import { BatchEmbeddingProcessor } from './batch-indexer.js';
|
|
22
|
+
import { DEFAULT_SCAN_IGNORES } from '../utils/scan-patterns.js';
|
|
23
|
+
import { SIZE_THRESHOLD, CHUNK_SIZE } from '../config/constants.js';
|
|
22
24
|
export async function indexProject({ repoPath = '.', provider = 'auto', onProgress = null, changedFiles = null, deletedFiles = [], embeddingProviderOverride = null, encryptMode = undefined } = {}) {
|
|
23
25
|
const repo = path.resolve(repoPath);
|
|
24
26
|
if (!fs.existsSync(repo)) {
|
|
@@ -40,31 +42,7 @@ export async function indexProject({ repoPath = '.', provider = 'auto', onProgre
|
|
|
40
42
|
cwd: repo,
|
|
41
43
|
absolute: false,
|
|
42
44
|
followSymbolicLinks: false,
|
|
43
|
-
ignore:
|
|
44
|
-
'**/vendor/**',
|
|
45
|
-
'**/node_modules/**',
|
|
46
|
-
'**/.git/**',
|
|
47
|
-
'**/storage/**',
|
|
48
|
-
'**/dist/**',
|
|
49
|
-
'**/build/**',
|
|
50
|
-
'**/tmp/**',
|
|
51
|
-
'**/temp/**',
|
|
52
|
-
'**/.npm/**',
|
|
53
|
-
'**/.yarn/**',
|
|
54
|
-
'**/Library/**',
|
|
55
|
-
'**/System/**',
|
|
56
|
-
'**/.Trash/**',
|
|
57
|
-
'**/.codevault/**',
|
|
58
|
-
'**/codevault.codemap.json',
|
|
59
|
-
'**/codevault.codemap.json.backup-*',
|
|
60
|
-
'**/package-lock.json',
|
|
61
|
-
'**/yarn.lock',
|
|
62
|
-
'**/pnpm-lock.yaml',
|
|
63
|
-
'**/*.json',
|
|
64
|
-
'**/*.sh',
|
|
65
|
-
'**/examples/**',
|
|
66
|
-
'**/assets/**'
|
|
67
|
-
],
|
|
45
|
+
ignore: DEFAULT_SCAN_IGNORES,
|
|
68
46
|
onlyFiles: true,
|
|
69
47
|
dot: false
|
|
70
48
|
});
|
|
@@ -277,8 +255,6 @@ export async function indexProject({ repoPath = '.', provider = 'auto', onProgre
|
|
|
277
255
|
if (previousMerkle && previousMerkle.shaFile === fileHash) {
|
|
278
256
|
continue;
|
|
279
257
|
}
|
|
280
|
-
const SIZE_THRESHOLD = 30000;
|
|
281
|
-
const CHUNK_SIZE = 30000;
|
|
282
258
|
let tree;
|
|
283
259
|
try {
|
|
284
260
|
parser.setLanguage(rule.ts);
|
|
@@ -343,7 +319,7 @@ export async function indexProject({ repoPath = '.', provider = 'auto', onProgre
|
|
|
343
319
|
await yieldChunk(nodeGroup.nodes[0]);
|
|
344
320
|
return;
|
|
345
321
|
}
|
|
346
|
-
const combinedChunk = createCombinedChunk(nodeGroup, source
|
|
322
|
+
const combinedChunk = createCombinedChunk(nodeGroup, source);
|
|
347
323
|
if (combinedChunk) {
|
|
348
324
|
chunkingStats.totalNodes += nodeGroup.nodes.length;
|
|
349
325
|
chunkingStats.fileGrouped = (chunkingStats.fileGrouped || 0) + 1;
|
package/dist/core/indexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AA0EjF,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AA4HD,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,SAAK,EACV,QAAQ,SAAS,EACjB,WAAW,SAAM,EACjB,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CA0X3B;AAED,wBAAsB,WAAW,CAAC,KAAK,SAAK,EAAE,WAAW,SAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+C1F;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAqBtF"}
|
package/dist/core/search.js
CHANGED
|
@@ -8,7 +8,9 @@ import { BM25Index } from '../search/bm25.js';
|
|
|
8
8
|
import { reciprocalRankFusion } from '../search/hybrid.js';
|
|
9
9
|
import { rerankWithAPI } from '../ranking/api-reranker.js';
|
|
10
10
|
import { applySymbolBoost } from '../ranking/symbol-boost.js';
|
|
11
|
+
import { log } from '../utils/logger.js';
|
|
11
12
|
import { readChunkFromDisk } from '../storage/encrypted-chunks.js';
|
|
13
|
+
import { RRF_K, DOC_BOOST } from '../config/constants.js';
|
|
12
14
|
// FIX: Add cache size limits to prevent memory leaks in long-running processes
|
|
13
15
|
const MAX_BM25_CACHE_SIZE = Number.parseInt(process.env.CODEVAULT_MAX_BM25_CACHE || '10', 10);
|
|
14
16
|
const MAX_CHUNK_TEXT_CACHE_SIZE = Number.parseInt(process.env.CODEVAULT_MAX_CHUNK_CACHE || '1000', 10);
|
|
@@ -223,7 +225,7 @@ export async function searchCode(query, limit = 10, provider = 'auto', workingPa
|
|
|
223
225
|
});
|
|
224
226
|
}
|
|
225
227
|
catch (error) {
|
|
226
|
-
|
|
228
|
+
log.warn('Failed to parse codevault_tags for chunk', { chunkId: chunk.id, error });
|
|
227
229
|
}
|
|
228
230
|
}
|
|
229
231
|
let docBoost = 0;
|
|
@@ -234,7 +236,7 @@ export async function searchCode(query, limit = 10, provider = 'auto', workingPa
|
|
|
234
236
|
filePath.includes('changelog') ||
|
|
235
237
|
filePath.includes('contributing') ||
|
|
236
238
|
filePath.endsWith('.md')) {
|
|
237
|
-
docBoost =
|
|
239
|
+
docBoost = DOC_BOOST;
|
|
238
240
|
}
|
|
239
241
|
const finalScore = Math.min(vectorSimilarity + boostScore + docBoost, 1.0);
|
|
240
242
|
const info = {
|
|
@@ -267,7 +269,7 @@ export async function searchCode(query, limit = 10, provider = 'auto', workingPa
|
|
|
267
269
|
let bm25Fused = false;
|
|
268
270
|
let bm25CandidateCount = 0;
|
|
269
271
|
if (remainingSlots > 0) {
|
|
270
|
-
const selectionBudget = Math.max(remainingSlots,
|
|
272
|
+
const selectionBudget = Math.max(remainingSlots, RRF_K);
|
|
271
273
|
const vectorPool = sortedResults.slice(0, selectionBudget);
|
|
272
274
|
if (hybridEnabled && bm25Enabled) {
|
|
273
275
|
const bm25Index = ensureBm25IndexForChunks(basePath, chunkDir, embeddingProvider.getName(), embeddingProvider.getDimensions(), scopedChunks);
|
|
@@ -281,7 +283,7 @@ export async function searchCode(query, limit = 10, provider = 'auto', workingPa
|
|
|
281
283
|
vectorResults: vectorPool.map((item) => ({ id: item.id, score: item.score })),
|
|
282
284
|
bm25Results: bm25Results.map(item => ({ id: item.id, score: item.score })),
|
|
283
285
|
limit: selectionBudget,
|
|
284
|
-
k:
|
|
286
|
+
k: RRF_K
|
|
285
287
|
});
|
|
286
288
|
if (fused.length > 0) {
|
|
287
289
|
bm25Fused = true;
|
|
@@ -297,7 +299,7 @@ export async function searchCode(query, limit = 10, provider = 'auto', workingPa
|
|
|
297
299
|
info.vectorRank = entry.vectorRank;
|
|
298
300
|
return info;
|
|
299
301
|
})
|
|
300
|
-
.filter(
|
|
302
|
+
.filter((item) => item !== null);
|
|
301
303
|
}
|
|
302
304
|
}
|
|
303
305
|
}
|
|
@@ -334,6 +336,7 @@ export async function searchCode(query, limit = 10, provider = 'auto', workingPa
|
|
|
334
336
|
}
|
|
335
337
|
});
|
|
336
338
|
if (Array.isArray(reranked) && reranked.length === vectorResults.length) {
|
|
339
|
+
// Reranker preserves input objects and adds rerankerScore/rerankerRank
|
|
337
340
|
vectorResults = reranked;
|
|
338
341
|
}
|
|
339
342
|
}
|