Skip to content

Commit 272f1a7

Browse files
committed
Replace ts-morph with tree-sitter for code parsing
ts-morph loaded full TypeScript compiler with node_modules type resolution, causing OOM on large projects (e.g. ethers.js ABI types). tree-sitter is a pure syntax parser with zero type resolution overhead. - Add language registry with pluggable mapper interface (ready for multi-lang) - Add TS/JS mapper using native tree-sitter + tree-sitter-typescript/javascript - Rewrite parseCodeFile() to use tree-sitter AST traversal - Manual relative import resolution via fs.existsSync (no type checker needed) - Rewrite extractSymbols() in codeblock.ts with tree-sitter - Remove getProject/resetProject/tsconfig watch from indexer - Remove tsconfig from project config schema - Add graphology-types devDep (fixes 19 pre-existing test suite failures) - Add npm overrides for tree-sitter-typescript peer dep compatibility
1 parent 03c0fcd commit 272f1a7

13 files changed

Lines changed: 751 additions & 464 deletions

File tree

package-lock.json

Lines changed: 94 additions & 117 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@
6060
"micromatch": "^4.0.8",
6161
"mime": "^4.1.0",
6262
"multer": "^2.1.1",
63-
"ts-morph": "^27.0.2",
63+
"tree-sitter": "^0.25.0",
64+
"tree-sitter-javascript": "^0.25.0",
65+
"tree-sitter-typescript": "^0.23.2",
6466
"ws": "^8.19.0",
6567
"yaml": "^2.8.2",
6668
"zod": "^4.3.6"
@@ -76,11 +78,17 @@
7678
"@types/node": "^25.4.0",
7779
"@types/supertest": "^7.2.0",
7880
"@types/ws": "^8.18.1",
81+
"graphology-types": "^0.24.8",
7982
"jest": "^30.3.0",
8083
"supertest": "^7.2.2",
8184
"ts-jest": "^29.4.6",
8285
"tsc-alias": "^1.8.16",
8386
"tsx": "^4.21.0",
8487
"typescript": "^5.9.3"
88+
},
89+
"overrides": {
90+
"tree-sitter-typescript": {
91+
"tree-sitter": "$tree-sitter"
92+
}
8593
}
8694
}

src/cli/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,6 @@ program
273273
codeExcludePattern: gc.code.excludePattern ?? project.excludePattern ?? undefined,
274274
filesExcludePattern: gc.files.excludePattern ?? project.excludePattern ?? undefined,
275275
chunkDepth: project.chunkDepth,
276-
tsconfig: project.tsconfig,
277276
docsModelName: `${id}:docs`,
278277
codeModelName: `${id}:code`,
279278
filesModelName: `${id}:files`,

0 commit comments

Comments
 (0)