Skip to content

Commit aa7c184

Browse files
authored
Merge pull request #14 from O-Labz/fix/efficient-indexing-implementation
Implement efficient indexing pipeline
2 parents 3436c62 + d08db3e commit aa7c184

4 files changed

Lines changed: 7 additions & 30 deletions

File tree

src/cli/index.ts

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ program
101101
})
102102
: undefined;
103103

104-
const indexer = new Indexer(storage, graph, workspaceRoot, embeddingQueue, vectorStore);
104+
const indexer = new Indexer(storage, graph, workspaceRoot);
105105
const watcher = new FileWatcher(indexer, { debounceMs: 200 });
106106

107107
// Handle watcher errors gracefully
@@ -198,15 +198,11 @@ program
198198
const dataDir = resolve(options.dataDir);
199199
const absolutePath = resolve(repoPath);
200200

201-
const { loadConfig } = await import('../core/config.js');
202201
const { SqliteStorageProvider } = await import('../store/sqlite.js');
203202
const { LanceDBVectorStore } = await import('../store/lance.js');
204203
const { CodeGraph } = await import('../core/graph.js');
205204
const { Indexer } = await import('../core/indexer.js');
206-
const { createEmbeddingProvider } = await import('../llm/provider.js');
207-
const { EmbeddingQueue } = await import('../core/embedding-queue.js');
208205

209-
const config = loadConfig();
210206
const dbPath = resolve(dataDir, 'context-simplo.db');
211207
const lanceDbPath = resolve(dataDir, 'lancedb');
212208

@@ -218,21 +214,7 @@ program
218214

219215
const graph = new CodeGraph();
220216

221-
const embeddingProvider = await createEmbeddingProvider(config.llmProvider.value, {
222-
apiKey: config.llmApiKey.value,
223-
baseUrl: config.llmBaseUrl.value,
224-
model: config.llmEmbeddingModel.value,
225-
});
226-
227-
const embeddingQueue = config.llmProvider.value !== 'none'
228-
? new EmbeddingQueue(embeddingProvider, {
229-
concurrency: config.embeddingConcurrency.value,
230-
batchSize: config.embeddingBatchSize.value,
231-
maxRetries: 3,
232-
})
233-
: undefined;
234-
235-
const indexer = new Indexer(storage, graph, process.cwd(), embeddingQueue, vectorStore);
217+
const indexer = new Indexer(storage, graph, process.cwd());
236218

237219
const job = await indexer.indexRepository(absolutePath, {
238220
incremental: options.incremental,

src/core/indexer.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
* Security: Integrates with SecretScrubber before indexing.
2828
*/
2929

30-
import { readdir, stat, readFile } from 'fs/promises';
30+
import { readdir, stat } from 'fs/promises';
3131
import { resolve, relative, basename, dirname, join } from 'path';
3232
import { createHash } from 'crypto';
3333
import { parseFile, type ParsedFile } from './parser.js';
@@ -41,8 +41,6 @@ import type {
4141
import { ParseError } from './errors.js';
4242
import { EventEmitter } from 'events';
4343
import { ContextIgnore } from '../security/ignore.js';
44-
import type { EmbeddingQueue } from './embedding-queue.js';
45-
import type { LanceDBVectorStore } from '../store/lance.js';
4644
import type { ParsePool } from './parse-pool.js';
4745

4846
export interface IndexerOptions {
@@ -73,8 +71,6 @@ export class Indexer extends EventEmitter {
7371
public storage: StorageProvider,
7472
public graph: CodeGraphApi,
7573
private workspaceRoot: string = '/workspace',
76-
private embeddingQueue?: EmbeddingQueue,
77-
private vectorStore?: LanceDBVectorStore,
7874
private memoryGuard?: any,
7975
private parsePool?: ParsePool
8076
) {

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ async function main() {
157157
console.log('Parse pool disabled (PARSE_WORKER_POOL_SIZE=0)');
158158
}
159159

160-
const indexer = new Indexer(storage, graph, workspaceRoot, embeddingQueue, vectorStore, memoryGuard, parsePool);
160+
const indexer = new Indexer(storage, graph, workspaceRoot, memoryGuard, parsePool);
161161
console.log('Indexer ready');
162162

163163
const indexQueue = new IndexQueue({

tests/unit/mcp-handlers.test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,11 @@ describe('MCP Handlers', () => {
3939
await storage.initialize();
4040

4141
const graph = new CodeGraph();
42-
const indexer = new Indexer({
42+
const indexer = new Indexer(
4343
storage,
4444
graph,
45-
workspaceRoot,
46-
maxConcurrency: 1,
47-
});
45+
workspaceRoot
46+
);
4847

4948
const symbolicSearch = new SymbolicSearch(storage);
5049

0 commit comments

Comments
 (0)