ai-mind-map 1.1.2 → 1.4.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/README.md +167 -120
- package/dist/change-tracker/change-log.d.ts.map +1 -1
- package/dist/change-tracker/change-log.js +1 -0
- package/dist/change-tracker/change-log.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +54 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +283 -22
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +102 -76
- package/dist/install.js.map +1 -1
- package/dist/knowledge-graph/changelog.d.ts +175 -0
- package/dist/knowledge-graph/changelog.d.ts.map +1 -0
- package/dist/knowledge-graph/changelog.js +509 -0
- package/dist/knowledge-graph/changelog.js.map +1 -0
- package/dist/knowledge-graph/graph.d.ts +40 -0
- package/dist/knowledge-graph/graph.d.ts.map +1 -1
- package/dist/knowledge-graph/graph.js +76 -11
- package/dist/knowledge-graph/graph.js.map +1 -1
- package/dist/knowledge-graph/indexer.d.ts +15 -0
- package/dist/knowledge-graph/indexer.d.ts.map +1 -1
- package/dist/knowledge-graph/indexer.js +155 -34
- package/dist/knowledge-graph/indexer.js.map +1 -1
- package/dist/knowledge-graph/parser.d.ts +11 -0
- package/dist/knowledge-graph/parser.d.ts.map +1 -1
- package/dist/knowledge-graph/parser.js +70 -11
- package/dist/knowledge-graph/parser.js.map +1 -1
- package/dist/knowledge-graph/semantic-search.d.ts +166 -0
- package/dist/knowledge-graph/semantic-search.d.ts.map +1 -0
- package/dist/knowledge-graph/semantic-search.js +601 -0
- package/dist/knowledge-graph/semantic-search.js.map +1 -0
- package/dist/memory/shared-sync.d.ts +47 -0
- package/dist/memory/shared-sync.d.ts.map +1 -0
- package/dist/memory/shared-sync.js +219 -0
- package/dist/memory/shared-sync.js.map +1 -0
- package/dist/tools/advanced-tools.d.ts +2 -1
- package/dist/tools/advanced-tools.d.ts.map +1 -1
- package/dist/tools/advanced-tools.js +38 -1
- package/dist/tools/advanced-tools.js.map +1 -1
- package/dist/tools/digest-tools.d.ts +15 -0
- package/dist/tools/digest-tools.d.ts.map +1 -0
- package/dist/tools/digest-tools.js +332 -0
- package/dist/tools/digest-tools.js.map +1 -0
- package/dist/tools/semantic-tools.d.ts +20 -0
- package/dist/tools/semantic-tools.d.ts.map +1 -0
- package/dist/tools/semantic-tools.js +141 -0
- package/dist/tools/semantic-tools.js.map +1 -0
- package/dist/tools/session-tools.d.ts +17 -0
- package/dist/tools/session-tools.d.ts.map +1 -0
- package/dist/tools/session-tools.js +233 -0
- package/dist/tools/session-tools.js.map +1 -0
- package/dist/tools/smart-tools.d.ts +2 -1
- package/dist/tools/smart-tools.d.ts.map +1 -1
- package/dist/tools/smart-tools.js +76 -21
- package/dist/tools/smart-tools.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/package.json +9 -3
|
@@ -17,6 +17,8 @@ import ignore from 'ignore';
|
|
|
17
17
|
import { parseFile, parseFiles, isSupportedFile, detectLanguage, getSupportedExtensions, generateContentHash, } from './parser.js';
|
|
18
18
|
/** Maximum file size to index (default 512KB). Files larger than this are skipped to prevent OOM. */
|
|
19
19
|
const MAX_FILE_SIZE_BYTES = 512 * 1024;
|
|
20
|
+
/** Memory pressure threshold — pause indexing if heap usage exceeds this fraction. */
|
|
21
|
+
const MEMORY_PRESSURE_THRESHOLD = 0.80;
|
|
20
22
|
// ============================================================
|
|
21
23
|
// Indexer Class
|
|
22
24
|
// ============================================================
|
|
@@ -28,6 +30,7 @@ export class Indexer {
|
|
|
28
30
|
graph;
|
|
29
31
|
config;
|
|
30
32
|
ig;
|
|
33
|
+
changelog = null;
|
|
31
34
|
constructor(graph, config) {
|
|
32
35
|
this.graph = graph;
|
|
33
36
|
this.config = config;
|
|
@@ -35,6 +38,10 @@ export class Indexer {
|
|
|
35
38
|
// Load .gitignore patterns
|
|
36
39
|
this.loadIgnorePatterns();
|
|
37
40
|
}
|
|
41
|
+
/** Attach a changelog engine for node-level change tracking */
|
|
42
|
+
setChangelog(changelog) {
|
|
43
|
+
this.changelog = changelog;
|
|
44
|
+
}
|
|
38
45
|
/** Load ignore patterns from .gitignore and config */
|
|
39
46
|
loadIgnorePatterns() {
|
|
40
47
|
// Add config-specified ignore patterns
|
|
@@ -272,22 +279,37 @@ export class Indexer {
|
|
|
272
279
|
// Find files to add/update and files to delete
|
|
273
280
|
const filesToParse = [];
|
|
274
281
|
const filesToDelete = [];
|
|
275
|
-
//
|
|
282
|
+
// ── mtime-first staleness detection (10x faster) ──────────
|
|
283
|
+
// First check mtime+size via stat() (~0.1ms/file). Only hash
|
|
284
|
+
// files whose metadata changed (~3ms/file). This avoids
|
|
285
|
+
// reading every file on every incremental index.
|
|
276
286
|
for (const filePath of currentFiles) {
|
|
277
287
|
const existingHash = this.graph.getFileHash(filePath);
|
|
278
288
|
if (!existingHash) {
|
|
279
|
-
// New file
|
|
289
|
+
// New file — always parse
|
|
280
290
|
filesToParse.push(filePath);
|
|
281
291
|
continue;
|
|
282
292
|
}
|
|
283
|
-
//
|
|
293
|
+
// Fast path: check mtime+size from file_index table
|
|
294
|
+
const fileEntry = this.graph.getFileIndexEntry(filePath);
|
|
284
295
|
try {
|
|
296
|
+
const fileStat = await stat(filePath);
|
|
297
|
+
if (fileEntry) {
|
|
298
|
+
// If mtime AND size match, file is unchanged (fast path — 99% of cases)
|
|
299
|
+
if (fileStat.mtimeMs === fileEntry.mtime_ms && fileStat.size === fileEntry.size_bytes) {
|
|
300
|
+
stats.filesSkipped++;
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Slow path: metadata changed, verify with content hash
|
|
285
305
|
const content = await readFile(filePath, 'utf-8');
|
|
286
306
|
const currentHash = generateContentHash(content);
|
|
287
307
|
if (currentHash !== existingHash) {
|
|
288
308
|
filesToParse.push(filePath);
|
|
289
309
|
}
|
|
290
310
|
else {
|
|
311
|
+
// Content unchanged despite metadata change — update file_index
|
|
312
|
+
this.graph.upsertFileIndex(filePath, fileStat.mtimeMs, fileStat.size, currentHash);
|
|
291
313
|
stats.filesSkipped++;
|
|
292
314
|
}
|
|
293
315
|
}
|
|
@@ -310,7 +332,8 @@ export class Indexer {
|
|
|
310
332
|
message: `Removing ${filesToDelete.length} deleted files...`,
|
|
311
333
|
});
|
|
312
334
|
for (const filePath of filesToDelete) {
|
|
313
|
-
|
|
335
|
+
this.graph.deleteFileNodes(filePath);
|
|
336
|
+
this.graph.removeFileIndex(filePath);
|
|
314
337
|
stats.filesDeleted++;
|
|
315
338
|
}
|
|
316
339
|
}
|
|
@@ -322,39 +345,80 @@ export class Indexer {
|
|
|
322
345
|
total: filesToParse.length,
|
|
323
346
|
message: `Parsing ${filesToParse.length} changed files...`,
|
|
324
347
|
});
|
|
325
|
-
|
|
348
|
+
// ── Memory-aware indexing ─────────────────────────────
|
|
349
|
+
// Check memory pressure before parsing. If approaching
|
|
350
|
+
// 80% heap usage, stop and report partial results.
|
|
351
|
+
const memInfo = process.memoryUsage();
|
|
352
|
+
if (memInfo.heapUsed / memInfo.heapTotal > MEMORY_PRESSURE_THRESHOLD) {
|
|
353
|
+
console.error(`[ai-mind-map] Memory pressure: ${(memInfo.heapUsed / 1024 / 1024).toFixed(0)}MB / ` +
|
|
354
|
+
`${(memInfo.heapTotal / 1024 / 1024).toFixed(0)}MB. ` +
|
|
355
|
+
`Skipping ${filesToParse.length} files to prevent OOM.`);
|
|
356
|
+
stats.filesSkipped += filesToParse.length;
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
const parseResults = await parseFiles(filesToParse, 8, (current, total) => {
|
|
360
|
+
onProgress?.({
|
|
361
|
+
phase: 'parsing',
|
|
362
|
+
current,
|
|
363
|
+
total,
|
|
364
|
+
currentFile: filesToParse[Math.min(current, filesToParse.length - 1)],
|
|
365
|
+
message: `Parsed ${current}/${total} changed files`,
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
// Phase 4: Store results
|
|
326
369
|
onProgress?.({
|
|
327
|
-
phase: '
|
|
328
|
-
current,
|
|
329
|
-
total,
|
|
330
|
-
|
|
331
|
-
message: `Parsed ${current}/${total} changed files`,
|
|
370
|
+
phase: 'storing',
|
|
371
|
+
current: 0,
|
|
372
|
+
total: parseResults.length,
|
|
373
|
+
message: 'Updating knowledge graph...',
|
|
332
374
|
});
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
stats.
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
375
|
+
for (let i = 0; i < parseResults.length; i++) {
|
|
376
|
+
// Check memory between files
|
|
377
|
+
if (i > 0 && i % 100 === 0) {
|
|
378
|
+
const mem = process.memoryUsage();
|
|
379
|
+
if (mem.heapUsed / mem.heapTotal > MEMORY_PRESSURE_THRESHOLD) {
|
|
380
|
+
console.error(`[ai-mind-map] Memory pressure at file ${i}/${parseResults.length}. ` +
|
|
381
|
+
`Stopping early to prevent OOM.`);
|
|
382
|
+
stats.filesSkipped += parseResults.length - i;
|
|
383
|
+
break;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
const result = parseResults[i];
|
|
387
|
+
if (result.nodes.length === 0 && result.parseErrors.length > 0) {
|
|
388
|
+
stats.parseErrors += result.parseErrors.length;
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
stats.filesParsed++;
|
|
392
|
+
stats.nodesCreated += result.nodes.length;
|
|
393
|
+
stats.edgesCreated += result.edges.length;
|
|
394
|
+
if (result.language !== 'unknown') {
|
|
395
|
+
stats.languages[result.language] = (stats.languages[result.language] ?? 0) + 1;
|
|
396
|
+
}
|
|
397
|
+
if (result.parseErrors.length > 0) {
|
|
398
|
+
stats.parseErrors += result.parseErrors.length;
|
|
399
|
+
}
|
|
400
|
+
// Record changes before replacing (changelog diffing)
|
|
401
|
+
if (this.changelog) {
|
|
402
|
+
try {
|
|
403
|
+
const oldNodes = this.graph.getNodesForFile(result.filePath);
|
|
404
|
+
this.changelog.recordChanges(result.filePath, oldNodes, result.nodes);
|
|
405
|
+
}
|
|
406
|
+
catch {
|
|
407
|
+
// Changelog recording is non-critical
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
// Replace file data atomically
|
|
411
|
+
this.graph.replaceFileData(result.filePath, result.nodes, result.edges);
|
|
412
|
+
// Update file_index for future mtime-first detection
|
|
413
|
+
try {
|
|
414
|
+
const fileStat = await stat(result.filePath);
|
|
415
|
+
const fileHash = result.nodes.find(n => n.type === 'file')?.hash ?? '';
|
|
416
|
+
this.graph.upsertFileIndex(result.filePath, fileStat.mtimeMs, fileStat.size, fileHash);
|
|
417
|
+
}
|
|
418
|
+
catch {
|
|
419
|
+
// File may have been deleted between parse and store
|
|
420
|
+
}
|
|
355
421
|
}
|
|
356
|
-
// Replace file data atomically
|
|
357
|
-
this.graph.replaceFileData(result.filePath, result.nodes, result.edges);
|
|
358
422
|
}
|
|
359
423
|
}
|
|
360
424
|
// Phase 5: Complete
|
|
@@ -401,6 +465,16 @@ export class Indexer {
|
|
|
401
465
|
}
|
|
402
466
|
const result = await parseFile(filePath);
|
|
403
467
|
if (result.nodes.length > 0) {
|
|
468
|
+
// Record changes before replacing (changelog diffing)
|
|
469
|
+
if (this.changelog) {
|
|
470
|
+
try {
|
|
471
|
+
const oldNodes = this.graph.getNodesForFile(filePath);
|
|
472
|
+
this.changelog.recordChanges(filePath, oldNodes, result.nodes);
|
|
473
|
+
}
|
|
474
|
+
catch {
|
|
475
|
+
// Changelog recording is non-critical
|
|
476
|
+
}
|
|
477
|
+
}
|
|
404
478
|
this.graph.replaceFileData(filePath, result.nodes, result.edges);
|
|
405
479
|
}
|
|
406
480
|
return result;
|
|
@@ -412,8 +486,55 @@ export class Indexer {
|
|
|
412
486
|
* @returns Number of nodes removed
|
|
413
487
|
*/
|
|
414
488
|
removeFile(filePath) {
|
|
489
|
+
this.graph.removeFileIndex(filePath);
|
|
415
490
|
return this.graph.deleteFileNodes(filePath);
|
|
416
491
|
}
|
|
492
|
+
/**
|
|
493
|
+
* Get a stale report: files changed since last index, detected via mtime comparison.
|
|
494
|
+
* This is a fast O(n) stat() scan — much cheaper than full content hashing.
|
|
495
|
+
*/
|
|
496
|
+
async getStaleReport() {
|
|
497
|
+
const currentFiles = await this.scanFiles();
|
|
498
|
+
const currentSet = new Set(currentFiles);
|
|
499
|
+
const staleFiles = [];
|
|
500
|
+
const newFiles = [];
|
|
501
|
+
const deletedFiles = [];
|
|
502
|
+
let lastIndexedAt = 0;
|
|
503
|
+
// Check current files against file_index
|
|
504
|
+
for (const filePath of currentFiles) {
|
|
505
|
+
const entry = this.graph.getFileIndexEntry(filePath);
|
|
506
|
+
if (!entry) {
|
|
507
|
+
newFiles.push(filePath);
|
|
508
|
+
continue;
|
|
509
|
+
}
|
|
510
|
+
if (entry.indexed_at > lastIndexedAt) {
|
|
511
|
+
lastIndexedAt = entry.indexed_at;
|
|
512
|
+
}
|
|
513
|
+
try {
|
|
514
|
+
const fileStat = await stat(filePath);
|
|
515
|
+
if (fileStat.mtimeMs !== entry.mtime_ms || fileStat.size !== entry.size_bytes) {
|
|
516
|
+
staleFiles.push(filePath);
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
catch {
|
|
520
|
+
staleFiles.push(filePath); // Can't stat → probably changed or deleted
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
// Check for deleted files still in file_index
|
|
524
|
+
const allEntries = this.graph.getAllFileIndexEntries();
|
|
525
|
+
for (const entry of allEntries) {
|
|
526
|
+
if (!currentSet.has(entry.file_path)) {
|
|
527
|
+
deletedFiles.push(entry.file_path);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
return {
|
|
531
|
+
staleFiles,
|
|
532
|
+
newFiles,
|
|
533
|
+
deletedFiles,
|
|
534
|
+
totalTracked: this.graph.getFileIndexCount(),
|
|
535
|
+
lastIndexedAt,
|
|
536
|
+
};
|
|
537
|
+
}
|
|
417
538
|
/**
|
|
418
539
|
* Auto-detect the languages used in the project based on file extension distribution.
|
|
419
540
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/knowledge-graph/indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/knowledge-graph/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,4 +52,15 @@ export declare function isSupportedFile(filePath: string): boolean;
|
|
|
52
52
|
* Get the list of supported languages.
|
|
53
53
|
*/
|
|
54
54
|
export declare function getSupportedLanguages(): string[];
|
|
55
|
+
/** Report the status of each language parser (tree-sitter vs regex fallback) */
|
|
56
|
+
export declare function getParserStatus(): {
|
|
57
|
+
treeSitterAvailable: boolean;
|
|
58
|
+
languages: Array<{
|
|
59
|
+
language: string;
|
|
60
|
+
extensions: string[];
|
|
61
|
+
hasTreeSitter: boolean;
|
|
62
|
+
treeSitterStatus: 'loaded' | 'failed' | 'not_available' | 'no_grammar';
|
|
63
|
+
hasFallback: boolean;
|
|
64
|
+
}>;
|
|
65
|
+
};
|
|
55
66
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/knowledge-graph/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EAIV,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/knowledge-graph/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EAIV,MAAM,aAAa,CAAC;AA0ErB,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAMD,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnF;AAED,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED,wCAAwC;AACxC,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAm9BD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAmEvF;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,GAAE,MAAU,EACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpD,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED,gFAAgF;AAChF,wBAAgB,eAAe,IAAI;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,GAAG,eAAe,GAAG,YAAY,CAAC;QACvE,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;CACJ,CAgCA"}
|
|
@@ -72,6 +72,9 @@ const GRAMMAR_MAP = {
|
|
|
72
72
|
ruby: 'tree-sitter-ruby',
|
|
73
73
|
php: 'tree-sitter-php',
|
|
74
74
|
bash: 'tree-sitter-bash',
|
|
75
|
+
kotlin: '@tree-sitter-grammars/tree-sitter-kotlin',
|
|
76
|
+
swift: 'tree-sitter-swift',
|
|
77
|
+
dart: 'tree-sitter-dart',
|
|
75
78
|
};
|
|
76
79
|
// ============================================================
|
|
77
80
|
// Helpers
|
|
@@ -117,34 +120,54 @@ function cleanDocComment(raw) {
|
|
|
117
120
|
let treeSitterParser = null;
|
|
118
121
|
const loadedGrammars = new Map();
|
|
119
122
|
let treeSitterAvailable = null;
|
|
123
|
+
const failedGrammars = new Set();
|
|
120
124
|
/** Attempt to load the tree-sitter module and a language grammar */
|
|
121
125
|
async function getTreeSitterParser(language) {
|
|
122
|
-
// If
|
|
126
|
+
// If the core tree-sitter module is unavailable, skip entirely
|
|
123
127
|
if (treeSitterAvailable === false) {
|
|
124
128
|
return null;
|
|
125
129
|
}
|
|
130
|
+
// If this specific grammar already failed, skip it (don't retry)
|
|
131
|
+
if (failedGrammars.has(language)) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
126
134
|
try {
|
|
135
|
+
// Load the core tree-sitter module (once)
|
|
127
136
|
if (!treeSitterParser) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
137
|
+
try {
|
|
138
|
+
const TreeSitter = (await import('tree-sitter')).default;
|
|
139
|
+
treeSitterParser = new TreeSitter();
|
|
140
|
+
treeSitterAvailable = true;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
treeSitterAvailable = false;
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
131
146
|
}
|
|
147
|
+
// Load the language grammar
|
|
132
148
|
if (!loadedGrammars.has(language)) {
|
|
133
149
|
const grammarPkg = GRAMMAR_MAP[language];
|
|
134
150
|
if (!grammarPkg)
|
|
135
151
|
return null;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
152
|
+
try {
|
|
153
|
+
let grammarModule = await import(grammarPkg);
|
|
154
|
+
let grammar = grammarModule.default ?? grammarModule;
|
|
155
|
+
// TypeScript grammar package exports { typescript, tsx }
|
|
156
|
+
if (language === 'typescript' && grammar.typescript) {
|
|
157
|
+
grammar = grammar.typescript;
|
|
158
|
+
}
|
|
159
|
+
loadedGrammars.set(language, grammar);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
// Mark only THIS grammar as failed, not all of tree-sitter
|
|
163
|
+
failedGrammars.add(language);
|
|
164
|
+
return null;
|
|
141
165
|
}
|
|
142
|
-
loadedGrammars.set(language, grammar);
|
|
143
166
|
}
|
|
144
167
|
return { parser: treeSitterParser, grammar: loadedGrammars.get(language) };
|
|
145
168
|
}
|
|
146
169
|
catch {
|
|
147
|
-
|
|
170
|
+
// Unexpected error — don't disable everything, just return null
|
|
148
171
|
return null;
|
|
149
172
|
}
|
|
150
173
|
}
|
|
@@ -1087,4 +1110,40 @@ export function isSupportedFile(filePath) {
|
|
|
1087
1110
|
export function getSupportedLanguages() {
|
|
1088
1111
|
return [...new Set(Object.values(EXTENSION_MAP))];
|
|
1089
1112
|
}
|
|
1113
|
+
/** Report the status of each language parser (tree-sitter vs regex fallback) */
|
|
1114
|
+
export function getParserStatus() {
|
|
1115
|
+
const languages = getSupportedLanguages();
|
|
1116
|
+
return {
|
|
1117
|
+
treeSitterAvailable: treeSitterAvailable === true,
|
|
1118
|
+
languages: languages.map(lang => {
|
|
1119
|
+
const hasGrammar = lang in GRAMMAR_MAP;
|
|
1120
|
+
const extensions = Object.entries(EXTENSION_MAP)
|
|
1121
|
+
.filter(([_, l]) => l === lang)
|
|
1122
|
+
.map(([ext]) => ext);
|
|
1123
|
+
let treeSitterStatus;
|
|
1124
|
+
if (!hasGrammar) {
|
|
1125
|
+
treeSitterStatus = 'no_grammar';
|
|
1126
|
+
}
|
|
1127
|
+
else if (treeSitterAvailable === false) {
|
|
1128
|
+
treeSitterStatus = 'not_available';
|
|
1129
|
+
}
|
|
1130
|
+
else if (failedGrammars.has(lang)) {
|
|
1131
|
+
treeSitterStatus = 'failed';
|
|
1132
|
+
}
|
|
1133
|
+
else if (loadedGrammars.has(lang)) {
|
|
1134
|
+
treeSitterStatus = 'loaded';
|
|
1135
|
+
}
|
|
1136
|
+
else {
|
|
1137
|
+
treeSitterStatus = 'not_available';
|
|
1138
|
+
}
|
|
1139
|
+
return {
|
|
1140
|
+
language: lang,
|
|
1141
|
+
extensions,
|
|
1142
|
+
hasTreeSitter: hasGrammar && loadedGrammars.has(lang),
|
|
1143
|
+
treeSitterStatus,
|
|
1144
|
+
hasFallback: lang in REGEX_PATTERNS,
|
|
1145
|
+
};
|
|
1146
|
+
}),
|
|
1147
|
+
};
|
|
1148
|
+
}
|
|
1090
1149
|
//# sourceMappingURL=parser.js.map
|