@simpletoolsindiaorg/engi-mcp 1.0.0 → 1.1.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.
@@ -36,77 +36,126 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.RepoIndexer = void 0;
37
37
  exports.getIndexer = getIndexer;
38
38
  exports.indexRepository = indexRepository;
39
- // Repo Indexer - Lightweight indexing for code repositories
39
+ // Repo Indexer - Lightweight, parallel indexing for code repositories
40
40
  const fs = __importStar(require("fs"));
41
+ const fsPromises = __importStar(require("fs/promises"));
41
42
  const path = __importStar(require("path"));
42
- // Supported file extensions and their languages
43
+ // ─── Constants (computed once at module load) ────────────────────────────────
43
44
  const EXTENSION_LANGUAGE_MAP = {
44
- '.ts': 'typescript',
45
- '.tsx': 'typescript',
46
- '.js': 'javascript',
47
- '.jsx': 'javascript',
48
- '.py': 'python',
49
- '.java': 'java',
50
- '.go': 'go',
51
- '.rs': 'rust',
52
- '.rb': 'ruby',
53
- '.php': 'php',
54
- '.cs': 'csharp',
55
- '.cpp': 'cpp',
56
- '.c': 'c',
57
- '.swift': 'swift',
58
- '.kt': 'kotlin',
59
- '.scala': 'scala'
45
+ '.ts': 'typescript', '.tsx': 'typescript',
46
+ '.js': 'javascript', '.jsx': 'javascript',
47
+ '.py': 'python', '.java': 'java',
48
+ '.go': 'go', '.rs': 'rust',
49
+ '.rb': 'ruby', '.php': 'php',
50
+ '.cs': 'csharp', '.cpp': 'cpp',
51
+ '.c': 'c', '.swift': 'swift',
52
+ '.kt': 'kotlin', '.scala': 'scala'
60
53
  };
61
- const TEST_PATTERNS = [
62
- 'test', 'spec', '__tests__', 'tests', '.test.', '.spec.'
63
- ];
64
- const DOC_PATTERNS = [
65
- 'readme', 'changelog', 'contributing', 'license', 'api', 'guide', 'docs'
66
- ];
54
+ const IGNORE_DIRS = new Set([
55
+ 'node_modules', '.git', 'dist', 'build', 'coverage',
56
+ '.venv', 'vendor', '__pycache__', '.next', '.nuxt', 'out'
57
+ ]);
58
+ const TEST_PATTERNS = new Set(['test', 'spec', '__tests__', 'tests']);
59
+ const TEST_EXTS = new Set(['.test.', '.spec.']);
60
+ const CONFIG_EXTS = new Set(['.json', '.yaml', '.yml', '.toml', '.ini', '.conf']);
61
+ const DOC_PATTERNS = new Set(['readme', 'changelog', 'contributing', 'license', 'api', 'guide', 'docs']);
62
+ const DOC_EXTS = new Set(['.md', '.rst', '.adoc']);
63
+ const SOURCE_EXTS = new Set(['.ts', '.tsx', '.js', '.jsx', '.py', '.java', '.go', '.rs']);
64
+ // ─── Pre-compiled regexes (compiled once, reused per file) ──────────────────
65
+ const TS_EXPORT_NAMED = /export\s+(?:const|function|class|interface|type|let|var)\s+(\w+)/g;
66
+ const TS_EXPORT_DEFAULT = /export\s+default\s+(\w+)/g;
67
+ const TS_EXPORT_BLOCK = /export\s*\{\s*([^}]+)\s*\}/g;
68
+ const TS_IMPORT = /import\s+(?:\{\s*[^}]+\s*\}|\*\s+as\s+\w+|\w+)\s+from\s+['"]([^'"]+)['"]/g;
69
+ const TS_REQUIRE = /require\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
70
+ const TS_FUNC = /(?:export\s+)?(?:async\s+)?function\s+(\w+)/g;
71
+ const TS_CLASS = /(?:export\s+)?class\s+(\w+)/g;
72
+ const TS_INTERFACE = /(?:export\s+)?interface\s+(\w+)/g;
73
+ const TS_CONST = /(?:export\s+)?(?:const|let|var)\s+(\w+)\s*=/g;
74
+ const PY_DEF = /(?:^|\n)\s*(?:def|class)\s+(\w+)/gm;
75
+ const PY_IMPORT = /(?:^|\n)\s*import\s+([^\n]+)|(?:^|\n)\s*from\s+([^\n]+)\s+import/gm;
76
+ // Stop words as a Set for O(1) lookup
77
+ const STOP_WORDS = new Set([
78
+ 'function', 'class', 'method', 'variable', 'const', 'let', 'var',
79
+ 'return', 'import', 'export', 'async', 'await', 'the', 'and', 'for',
80
+ 'with', 'this', 'that', 'from', 'type', 'interface', 'new', 'not'
81
+ ]);
82
+ // ─── Helper: fast line number from index ─────────────────────────────────────
83
+ function lineAt(content, index) {
84
+ let line = 0;
85
+ for (let i = 0; i < index; i++) {
86
+ if (content[i] === '\n')
87
+ line++;
88
+ }
89
+ return line;
90
+ }
91
+ // ─── RepoIndexer class ───────────────────────────────────────────────────────
67
92
  class RepoIndexer {
68
93
  index = null;
69
- /**
70
- * Index a repository directory
71
- */
94
+ indexing = null; // dedup concurrent calls
72
95
  async indexRepository(rootPath) {
96
+ // Deduplicate concurrent index calls on the same path
97
+ if (this.indexing)
98
+ return this.indexing;
99
+ this.indexing = this._doIndex(rootPath).finally(() => {
100
+ this.indexing = null;
101
+ });
102
+ return this.indexing;
103
+ }
104
+ getIndex() {
105
+ return this.index;
106
+ }
107
+ // ── Core indexing logic ──────────────────────────────────────────────────
108
+ async _doIndex(rootPath) {
109
+ if (!fs.existsSync(rootPath)) {
110
+ throw new Error(`Path does not exist: ${rootPath}`);
111
+ }
112
+ // 1. Scan directory tree asynchronously
113
+ const allFiles = await this.scanDirectoryAsync(rootPath);
114
+ // 2. Process all files in parallel (parallel I/O — the big win)
115
+ const results = await Promise.all(allFiles.map(filePath => this.processFile(filePath, rootPath)));
116
+ // 3. Aggregate results
73
117
  const files = new Map();
74
118
  const symbols = new Map();
75
119
  const imports = [];
76
120
  const tests = [];
77
121
  const docs = [];
78
- // Check if path exists
79
- if (!fs.existsSync(rootPath)) {
80
- throw new Error(`Path does not exist: ${rootPath}`);
122
+ for (const result of results) {
123
+ if (!result)
124
+ continue;
125
+ files.set(result.entry.path, result.entry);
126
+ if (result.symbols.length > 0)
127
+ symbols.set(result.entry.path, result.symbols);
128
+ imports.push(...result.imports);
129
+ if (result.test)
130
+ tests.push(result.test);
131
+ if (result.doc)
132
+ docs.push(result.doc);
81
133
  }
82
- // Recursively scan for files
83
- const allFiles = this.scanDirectory(rootPath, rootPath);
84
- for (const filePath of allFiles) {
85
- const stats = fs.statSync(filePath);
134
+ this.index = { files, symbols, imports, tests, docs, rootPath, lastIndexed: Date.now() };
135
+ return this.index;
136
+ }
137
+ // ── Process a single file (all reads happen in one async read) ────────────
138
+ async processFile(filePath, rootPath) {
139
+ try {
140
+ const stats = await fsPromises.stat(filePath);
86
141
  if (!stats.isFile())
87
- continue;
142
+ return null;
88
143
  const relativePath = path.relative(rootPath, filePath);
89
144
  const ext = path.extname(filePath).toLowerCase();
90
145
  const language = EXTENSION_LANGUAGE_MAP[ext] || 'unknown';
91
- // Determine file type
92
- let type = 'other';
93
146
  const baseName = path.basename(filePath).toLowerCase();
94
- if (TEST_PATTERNS.some(p => baseName.includes(p))) {
95
- type = 'test';
147
+ // Classify file type
148
+ const type = this.classifyFile(baseName, ext);
149
+ // Read file ONCE for both exports/imports AND symbols
150
+ let content = '';
151
+ const needsContent = (language === 'typescript' || language === 'javascript' || language === 'python')
152
+ && (type === 'source' || type === 'test');
153
+ if (needsContent) {
154
+ content = await fsPromises.readFile(filePath, 'utf-8');
96
155
  }
97
- else if (['.json', '.yaml', '.yml', '.toml', '.ini', '.conf'].includes(ext)) {
98
- type = 'config';
99
- }
100
- else if (DOC_PATTERNS.some(p => baseName.includes(p)) || ['.md', '.rst', '.adoc'].includes(ext)) {
101
- type = 'doc';
102
- }
103
- else if (['.ts', '.tsx', '.js', '.jsx', '.py', '.java', '.go', '.rs'].includes(ext)) {
104
- type = 'source';
105
- }
106
- // Extract exports and imports
107
- const { exports: fileExports, imports: fileImports } = this.extractExportsImports(filePath, language);
108
- // Create file entry
109
- const fileEntry = {
156
+ const { exports: fileExports, imports: fileImports } = content ? this.extractExportsImports(content, language) : { exports: [], imports: [] };
157
+ const fileSymbols = content ? this.extractSymbols(content, language, filePath) : [];
158
+ const entry = {
110
159
  path: relativePath,
111
160
  name: path.basename(filePath, ext),
112
161
  extension: ext,
@@ -117,231 +166,146 @@ class RepoIndexer {
117
166
  exports: fileExports,
118
167
  imports: fileImports
119
168
  };
120
- files.set(relativePath, fileEntry);
121
- // Add imports to edge list
122
- for (const imp of fileImports) {
123
- imports.push({
124
- from: relativePath,
125
- to: imp,
126
- types: ['import']
127
- });
128
- }
129
- // Extract symbols for source files
130
- if (type === 'source' || type === 'test') {
131
- const fileSymbols = this.extractSymbols(filePath, language);
132
- symbols.set(relativePath, fileSymbols);
133
- }
134
- // Add to test index
135
- if (type === 'test') {
136
- const testEntry = this.createTestEntry(filePath, relativePath, symbols);
137
- if (testEntry)
138
- tests.push(testEntry);
139
- }
140
- // Add to doc index
141
- if (type === 'doc') {
142
- const docEntry = this.createDocEntry(filePath, relativePath);
143
- if (docEntry)
144
- docs.push(docEntry);
145
- }
169
+ const importEdges = fileImports.map(imp => ({
170
+ from: relativePath,
171
+ to: imp,
172
+ types: ['import']
173
+ }));
174
+ const test = type === 'test' ? this.createTestEntry(filePath, relativePath) : undefined;
175
+ const doc = type === 'doc' ? this.createDocEntry(filePath, relativePath) : undefined;
176
+ return { entry, symbols: fileSymbols, imports: importEdges, test, doc };
177
+ }
178
+ catch {
179
+ return null;
146
180
  }
147
- this.index = {
148
- files,
149
- symbols,
150
- imports,
151
- tests,
152
- docs,
153
- rootPath,
154
- lastIndexed: Date.now()
155
- };
156
- return this.index;
157
- }
158
- /**
159
- * Get current index
160
- */
161
- getIndex() {
162
- return this.index;
163
181
  }
164
- /**
165
- * Scan directory for files
166
- */
167
- scanDirectory(dirPath, rootPath) {
182
+ // ── Directory scan (async + parallel subtrees) ───────────────────────────
183
+ async scanDirectoryAsync(dirPath) {
168
184
  const results = [];
169
- const ignoreDirs = ['node_modules', '.git', 'dist', 'build', 'coverage', '.venv', 'vendor', '__pycache__'];
170
185
  try {
171
- const entries = fs.readdirSync(dirPath);
186
+ const entries = await fsPromises.readdir(dirPath, { withFileTypes: true });
187
+ const subdirs = [];
172
188
  for (const entry of entries) {
173
- if (ignoreDirs.includes(entry))
174
- continue;
175
- if (entry.startsWith('.'))
189
+ if (IGNORE_DIRS.has(entry.name) || entry.name.startsWith('.'))
176
190
  continue;
177
- const fullPath = path.join(dirPath, entry);
178
- const stats = fs.statSync(fullPath);
179
- if (stats.isDirectory()) {
180
- results.push(...this.scanDirectory(fullPath, rootPath));
191
+ const fullPath = path.join(dirPath, entry.name);
192
+ if (entry.isDirectory()) {
193
+ subdirs.push(this.scanDirectoryAsync(fullPath));
181
194
  }
182
195
  else {
183
196
  results.push(fullPath);
184
197
  }
185
198
  }
199
+ // Recurse into subdirs in parallel
200
+ const nested = await Promise.all(subdirs);
201
+ for (const sub of nested)
202
+ results.push(...sub);
186
203
  }
187
- catch {
188
- // Ignore permission errors
189
- }
204
+ catch { /* ignore permission errors */ }
190
205
  return results;
191
206
  }
192
- /**
193
- * Extract exports and imports from a file (simple regex-based)
194
- */
195
- extractExportsImports(filePath, language) {
207
+ // ── File classification ──────────────────────────────────────────────────
208
+ classifyFile(baseName, ext) {
209
+ // Test check: filename contains test/spec patterns
210
+ for (const p of TEST_PATTERNS) {
211
+ if (baseName.includes(p))
212
+ return 'test';
213
+ }
214
+ for (const p of TEST_EXTS) {
215
+ if (baseName.includes(p))
216
+ return 'test';
217
+ }
218
+ if (CONFIG_EXTS.has(ext))
219
+ return 'config';
220
+ if (DOC_EXTS.has(ext))
221
+ return 'doc';
222
+ for (const p of DOC_PATTERNS) {
223
+ if (baseName.includes(p))
224
+ return 'doc';
225
+ }
226
+ if (SOURCE_EXTS.has(ext))
227
+ return 'source';
228
+ return 'other';
229
+ }
230
+ // ── Export / Import extraction (operates on pre-read content) ────────────
231
+ extractExportsImports(content, language) {
196
232
  const exports = [];
197
233
  const imports = [];
198
- try {
199
- const content = fs.readFileSync(filePath, 'utf-8');
200
- if (language === 'typescript' || language === 'javascript') {
201
- // Extract named exports: export const/function/class...
202
- const exportRegex = /export\s+(?:const|function|class|interface|type|let|var)\s+(\w+)/g;
203
- let match;
204
- while ((match = exportRegex.exec(content)) !== null) {
205
- exports.push(match[1]);
206
- }
207
- // Extract default exports
208
- const defaultExportRegex = /export\s+default\s+(\w+)/g;
209
- while ((match = defaultExportRegex.exec(content)) !== null) {
210
- exports.push(match[1]);
211
- }
212
- // Extract named exports: export { ... }
213
- const namedExportRegex = /export\s*\{\s*([^}]+)\s*\}/g;
214
- while ((match = namedExportRegex.exec(content)) !== null) {
215
- const exported = match[1].split(',').map(s => s.trim()).filter(s => s);
216
- exports.push(...exported);
217
- }
218
- // Extract imports: import ... from '...'
219
- const importRegex = /import\s+(?:\{\s*([^}]+)\s*\}|\*\s+as\s+\w+|\w+)\s+from\s+['"]([^'"]+)['"]/g;
220
- while ((match = importRegex.exec(content)) !== null) {
221
- imports.push(match[2]);
222
- }
223
- // Extract require: const ... = require('...')
224
- const requireRegex = /require\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
225
- while ((match = requireRegex.exec(content)) !== null) {
234
+ if (language === 'typescript' || language === 'javascript') {
235
+ // Reset lastIndex before each use (shared regex objects)
236
+ let rx, match;
237
+ rx = new RegExp(TS_EXPORT_NAMED.source, 'g');
238
+ while ((match = rx.exec(content)) !== null)
239
+ exports.push(match[1]);
240
+ rx = new RegExp(TS_EXPORT_DEFAULT.source, 'g');
241
+ while ((match = rx.exec(content)) !== null)
242
+ exports.push(match[1]);
243
+ rx = new RegExp(TS_EXPORT_BLOCK.source, 'g');
244
+ while ((match = rx.exec(content)) !== null) {
245
+ exports.push(...match[1].split(',').map(s => s.trim()).filter(Boolean));
246
+ }
247
+ rx = new RegExp(TS_IMPORT.source, 'g');
248
+ while ((match = rx.exec(content)) !== null) {
249
+ if (match[1])
226
250
  imports.push(match[1]);
227
- }
228
251
  }
229
- else if (language === 'python') {
230
- // Extract Python exports
231
- const pyExportRegex = /(?:^|\n)\s*(?:def|class)\s+(\w+)/gm;
232
- let match;
233
- while ((match = pyExportRegex.exec(content)) !== null) {
234
- exports.push(match[1]);
235
- }
236
- // Extract imports
237
- const pyImportRegex = /(?:^|\n)\s*import\s+([^\n]+)|(?:^|\n)\s*from\s+([^\n]+)\s+import/gm;
238
- while ((match = pyImportRegex.exec(content)) !== null) {
239
- imports.push(match[1] || match[2]);
240
- }
252
+ rx = new RegExp(TS_REQUIRE.source, 'g');
253
+ while ((match = rx.exec(content)) !== null) {
254
+ if (match[1])
255
+ imports.push(match[1]);
241
256
  }
242
- // Add more languages as needed
243
257
  }
244
- catch {
245
- // Ignore read errors
258
+ else if (language === 'python') {
259
+ let rx, match;
260
+ rx = new RegExp(PY_DEF.source, 'gm');
261
+ while ((match = rx.exec(content)) !== null)
262
+ exports.push(match[1]);
263
+ rx = new RegExp(PY_IMPORT.source, 'gm');
264
+ while ((match = rx.exec(content)) !== null) {
265
+ const m = match[1] || match[2];
266
+ if (m)
267
+ imports.push(m);
268
+ }
246
269
  }
247
270
  return { exports, imports };
248
271
  }
249
- /**
250
- * Extract symbols from a file
251
- */
252
- extractSymbols(filePath, language) {
272
+ // ── Symbol extraction (operates on pre-read content) ─────────────────────
273
+ extractSymbols(content, language, filePath) {
253
274
  const symbols = [];
254
- try {
255
- const content = fs.readFileSync(filePath, 'utf-8');
256
- const lines = content.split('\n');
257
- if (language === 'typescript' || language === 'javascript') {
258
- // Find functions
259
- const funcRegex = /(?:export\s+)?(?:async\s+)?function\s+(\w+)/g;
260
- let match;
261
- while ((match = funcRegex.exec(content)) !== null) {
262
- const line = content.substring(0, match.index).split('\n').length - 1;
263
- symbols.push({
264
- name: match[1],
265
- type: 'function',
266
- file: filePath,
267
- line,
268
- exported: content.substring(match.index - 20, match.index).includes('export')
269
- });
270
- }
271
- // Find classes
272
- const classRegex = /(?:export\s+)?class\s+(\w+)/g;
273
- while ((match = classRegex.exec(content)) !== null) {
274
- const line = content.substring(0, match.index).split('\n').length - 1;
275
- symbols.push({
276
- name: match[1],
277
- type: 'class',
278
- file: filePath,
279
- line,
280
- exported: content.substring(match.index - 20, match.index).includes('export')
281
- });
282
- }
283
- // Find interfaces
284
- const interfaceRegex = /(?:export\s+)?interface\s+(\w+)/g;
285
- while ((match = interfaceRegex.exec(content)) !== null) {
286
- const line = content.substring(0, match.index).split('\n').length - 1;
287
- symbols.push({
288
- name: match[1],
289
- type: 'interface',
290
- file: filePath,
291
- line,
292
- exported: content.substring(match.index - 20, match.index).includes('export')
293
- });
294
- }
295
- // Find const/let/var declarations
296
- const constRegex = /(?:export\s+)?(?:const|let|var)\s+(\w+)\s*=/g;
297
- while ((match = constRegex.exec(content)) !== null) {
298
- const line = content.substring(0, match.index).split('\n').length - 1;
299
- symbols.push({
300
- name: match[1],
301
- type: 'constant',
302
- file: filePath,
303
- line,
304
- exported: content.substring(match.index - 20, match.index).includes('export')
305
- });
306
- }
307
- }
275
+ if (language !== 'typescript' && language !== 'javascript')
276
+ return symbols;
277
+ const push = (name, type, idx, exported) => {
278
+ symbols.push({ name, type, file: filePath, line: lineAt(content, idx), exported });
279
+ };
280
+ let rx, match;
281
+ rx = new RegExp(TS_FUNC.source, 'g');
282
+ while ((match = rx.exec(content)) !== null) {
283
+ push(match[1], 'function', match.index, content.slice(Math.max(0, match.index - 20), match.index).includes('export'));
308
284
  }
309
- catch {
310
- // Ignore errors
285
+ rx = new RegExp(TS_CLASS.source, 'g');
286
+ while ((match = rx.exec(content)) !== null) {
287
+ push(match[1], 'class', match.index, content.slice(Math.max(0, match.index - 20), match.index).includes('export'));
288
+ }
289
+ rx = new RegExp(TS_INTERFACE.source, 'g');
290
+ while ((match = rx.exec(content)) !== null) {
291
+ push(match[1], 'interface', match.index, content.slice(Math.max(0, match.index - 20), match.index).includes('export'));
292
+ }
293
+ rx = new RegExp(TS_CONST.source, 'g');
294
+ while ((match = rx.exec(content)) !== null) {
295
+ push(match[1], 'constant', match.index, content.slice(Math.max(0, match.index - 20), match.index).includes('export'));
311
296
  }
312
297
  return symbols;
313
298
  }
314
- /**
315
- * Create test entry
316
- */
317
- createTestEntry(filePath, relativePath, symbols) {
299
+ // ── Test / Doc entry builders ────────────────────────────────────────────
300
+ createTestEntry(filePath, relativePath) {
318
301
  const name = path.basename(filePath);
319
- // Determine test type
320
302
  let type = 'unit';
321
303
  if (name.includes('integration'))
322
304
  type = 'integration';
323
305
  else if (name.includes('e2e') || name.includes('end-to-end'))
324
306
  type = 'e2e';
325
- // Try to find target file
326
- let targetFile;
327
- const targetSymbols = [];
328
- // Look for matching source file
329
- const baseName = name
330
- .replace(/\.test\.(js|ts|jsx|tsx)$/, '')
331
- .replace(/\.spec\.(js|ts|jsx|tsx)$/, '')
332
- .replace(/^test-/, '')
333
- .replace(/^spec-/, '');
334
- return {
335
- path: relativePath,
336
- name,
337
- type,
338
- targetFile,
339
- targetSymbols
340
- };
307
+ return { path: relativePath, name, type, targetSymbols: [] };
341
308
  }
342
- /**
343
- * Create documentation entry
344
- */
345
309
  createDocEntry(filePath, relativePath) {
346
310
  const name = path.basename(filePath).toLowerCase();
347
311
  let type = 'other';
@@ -353,25 +317,18 @@ class RepoIndexer {
353
317
  type = 'api';
354
318
  else if (name.includes('guide') || name.includes('docs'))
355
319
  type = 'guide';
356
- return {
357
- path: relativePath,
358
- name: path.basename(filePath),
359
- type,
360
- sections: [] // Could extract sections from markdown
361
- };
320
+ return { path: relativePath, name: path.basename(filePath), type, sections: [] };
362
321
  }
363
322
  }
364
323
  exports.RepoIndexer = RepoIndexer;
365
- // Singleton instance
324
+ // ─── Singleton ───────────────────────────────────────────────────────────────
366
325
  let indexerInstance = null;
367
326
  function getIndexer() {
368
- if (!indexerInstance) {
327
+ if (!indexerInstance)
369
328
  indexerInstance = new RepoIndexer();
370
- }
371
329
  return indexerInstance;
372
330
  }
373
331
  async function indexRepository(rootPath) {
374
- const indexer = getIndexer();
375
- return indexer.indexRepository(rootPath);
332
+ return getIndexer().indexRepository(rootPath);
376
333
  }
377
334
  //# sourceMappingURL=indexer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/core/indexer/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/core/indexer/indexer.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,11 @@
1
1
  import { ScopeQuery, ScopedResult, FileIndexEntry, TestIndexEntry } from '../types.js';
2
2
  export declare class RetrievalEngine {
3
- /**
4
- * Find the minimum relevant scope for a task
5
- */
6
3
  findScope(query: ScopeQuery): Promise<ScopedResult>;
7
- /**
8
- * Find files that match imports (dependency resolution)
9
- */
10
4
  findByImport(importPath: string): Promise<FileIndexEntry | null>;
11
- /**
12
- * Find tests related to a file
13
- */
14
5
  findRelatedTests(filePath: string): Promise<TestIndexEntry[]>;
15
- /**
16
- * Find files that import a specific file
17
- */
18
6
  findDependents(filePath: string): Promise<FileIndexEntry[]>;
19
7
  private normalizeKeywords;
20
8
  private rankFiles;
21
- private extractModules;
22
9
  private findRelevantSymbols;
23
10
  private findRelevantTests;
24
11
  private findRelevantDocs;
@@ -1 +1 @@
1
- {"version":3,"file":"retriever.d.ts","sourceRoot":"","sources":["../../../src/core/retrieval/retriever.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EACV,YAAY,EAEZ,cAAc,EAEd,cAAc,EAEf,MAAM,aAAa,CAAC;AAGrB,qBAAa,eAAe;IAC1B;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAiDzD;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAwBtE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAuBnE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAuBjE,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,SAAS;IA+DjB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,mBAAmB;CAW5B;AAKD,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD"}
1
+ {"version":3,"file":"retriever.d.ts","sourceRoot":"","sources":["../../../src/core/retrieval/retriever.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,YAAY,EAEZ,cAAc,EAEd,cAAc,EAEf,MAAM,aAAa,CAAC;AAUrB,qBAAa,eAAe;IAIpB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCnD,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAehE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyB7D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAcjE,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,mBAAmB;CAM5B;AAMD,wBAAgB,kBAAkB,IAAI,eAAe,CAGpD"}