mcp-codebase-intelligence 0.1.0 → 0.3.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.
Files changed (40) hide show
  1. package/README.md +97 -16
  2. package/dist/graph/code-graph.d.ts +16 -0
  3. package/dist/graph/code-graph.js +30 -4
  4. package/dist/graph/code-graph.js.map +1 -1
  5. package/dist/graph/schema.js +1 -0
  6. package/dist/graph/schema.js.map +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.js +61 -60
  9. package/dist/index.js.map +1 -1
  10. package/dist/indexer/docstring-extractor.d.ts +7 -0
  11. package/dist/indexer/docstring-extractor.js +118 -0
  12. package/dist/indexer/docstring-extractor.js.map +1 -0
  13. package/dist/indexer/file-watcher.d.ts +2 -2
  14. package/dist/indexer/file-watcher.js +24 -15
  15. package/dist/indexer/file-watcher.js.map +1 -1
  16. package/dist/indexer/lang-cpp.d.ts +3 -0
  17. package/dist/indexer/lang-cpp.js +469 -0
  18. package/dist/indexer/lang-cpp.js.map +1 -0
  19. package/dist/indexer/lang-go.js +4 -0
  20. package/dist/indexer/lang-go.js.map +1 -1
  21. package/dist/indexer/lang-java.js +4 -0
  22. package/dist/indexer/lang-java.js.map +1 -1
  23. package/dist/indexer/lang-python.js +3 -0
  24. package/dist/indexer/lang-python.js.map +1 -1
  25. package/dist/indexer/lang-rust.js +5 -0
  26. package/dist/indexer/lang-rust.js.map +1 -1
  27. package/dist/indexer/tree-sitter-indexer.js +5 -0
  28. package/dist/indexer/tree-sitter-indexer.js.map +1 -1
  29. package/dist/project-manager.d.ts +63 -0
  30. package/dist/project-manager.js +479 -0
  31. package/dist/project-manager.js.map +1 -0
  32. package/dist/tools/find-symbol.js +2 -1
  33. package/dist/tools/find-symbol.js.map +1 -1
  34. package/dist/tools/project-tools.d.ts +38 -0
  35. package/dist/tools/project-tools.js +72 -0
  36. package/dist/tools/project-tools.js.map +1 -0
  37. package/dist/tools/search-codebase.d.ts +39 -0
  38. package/dist/tools/search-codebase.js +59 -0
  39. package/dist/tools/search-codebase.js.map +1 -0
  40. package/package.json +8 -6
package/README.md CHANGED
@@ -26,26 +26,31 @@ AI coding assistants are limited by what fits in their context window. When they
26
26
 
27
27
  ## Quick Start
28
28
 
29
+ ### One-liner (no clone needed)
30
+
29
31
  ```bash
30
- # Clone and build
31
- git clone https://github.com/g-tiwari/mcp-codebase-intelligence.git
32
- cd mcp-codebase-intelligence
33
- npm install && npm run build
32
+ # Add to Claude Code via npx — auto-detects your project from cwd
33
+ claude mcp add codebase-intelligence npx mcp-codebase-intelligence
34
+ ```
35
+
36
+ Or with an explicit project path:
34
37
 
35
- # Add to Claude Code
38
+ ```bash
36
39
  claude mcp add codebase-intelligence \
37
- node /path/to/mcp-codebase-intelligence/dist/index.js \
40
+ npx mcp-codebase-intelligence \
38
41
  -e PROJECT_ROOT=/path/to/your/project
39
42
  ```
40
43
 
41
- Or add manually to your MCP config (Claude Code, Cursor, VS Code):
44
+ ### JSON config (Claude Code, Cursor, VS Code)
45
+
46
+ Add to your MCP config file:
42
47
 
43
48
  ```json
44
49
  {
45
50
  "mcpServers": {
46
51
  "codebase-intelligence": {
47
- "command": "node",
48
- "args": ["/path/to/mcp-codebase-intelligence/dist/index.js"],
52
+ "command": "npx",
53
+ "args": ["mcp-codebase-intelligence"],
49
54
  "env": {
50
55
  "PROJECT_ROOT": "/path/to/your/project"
51
56
  }
@@ -54,11 +59,68 @@ Or add manually to your MCP config (Claude Code, Cursor, VS Code):
54
59
  }
55
60
  ```
56
61
 
62
+ ### From source (for development)
63
+
64
+ ```bash
65
+ git clone https://github.com/g-tiwari/mcp-codebase-intelligence.git
66
+ cd mcp-codebase-intelligence
67
+ npm install && npm run build
68
+
69
+ claude mcp add codebase-intelligence \
70
+ node /path/to/mcp-codebase-intelligence/dist/index.js \
71
+ -e PROJECT_ROOT=/path/to/your/project
72
+ ```
73
+
57
74
  That's it. The server indexes your codebase on startup and watches for changes.
58
75
 
59
76
  ---
60
77
 
61
- ## 14 Tools
78
+ ## Multi-Project Support
79
+
80
+ Work across multiple repos, monorepos, or a mix of both — from a single MCP server.
81
+
82
+ ### Auto-detection (zero config)
83
+
84
+ When no config is set, the server auto-detects your project:
85
+
86
+ 1. Finds the git root from your current directory
87
+ 2. Detects monorepo markers (pnpm, lerna, nx, npm/yarn workspaces, go.work, Cargo workspace)
88
+ 3. Indexes accordingly
89
+
90
+ ### Multi-repo projects
91
+
92
+ Use `PROJECT_ROOTS` for projects spanning multiple repositories:
93
+
94
+ ```bash
95
+ claude mcp add codebase-intelligence \
96
+ npx mcp-codebase-intelligence \
97
+ -e PROJECT_ROOTS="/code/shared-models,/code/api-gateway,/code/android-app"
98
+ ```
99
+
100
+ ### Config file (power users)
101
+
102
+ Create `.codegraph.json` in your project root (or `~/.codegraph/config.json` for user-level config):
103
+
104
+ ```json
105
+ {
106
+ "projects": {
107
+ "tv-backend": {
108
+ "root": "/code/monorepo",
109
+ "include": ["packages/api-gateway", "packages/shared-models"],
110
+ "roots": ["/code/android-app", "/code/webos-app"]
111
+ },
112
+ "music-service": {
113
+ "roots": ["/code/music-api", "/code/music-models"]
114
+ }
115
+ }
116
+ }
117
+ ```
118
+
119
+ Then use `list_projects` and `switch_project` tools to navigate between projects.
120
+
121
+ ---
122
+
123
+ ## 17 Tools
62
124
 
63
125
  ### Code Navigation
64
126
  | Tool | What it does |
@@ -79,7 +141,7 @@ That's it. The server indexes your codebase on startup and watches for changes.
79
141
  ### Change Analysis
80
142
  | Tool | What it does |
81
143
  |------|-------------|
82
- | `semantic_diff` | Feed it `git diff` output. It identifies affected symbols, finds all downstream dependents, and flags breaking changes and high-impact modifications. |
144
+ | `semantic_diff` | Feed it a `git_ref` (e.g. `HEAD~1`). It identifies affected symbols, finds all downstream dependents, and flags breaking changes. |
83
145
  | `analyze_change_impact` | Point it at specific lines in a file. It tells you which symbols are affected and who depends on them. |
84
146
 
85
147
  ### Architecture & Discovery
@@ -88,6 +150,13 @@ That's it. The server indexes your codebase on startup and watches for changes.
88
150
  | `architecture_diagram` | Auto-generate a mermaid diagram of module dependencies, grouped by directory. |
89
151
  | `query_codebase` | Ask natural language questions: "find all API endpoints", "what does the orders module do?", "what depends on the database layer?" |
90
152
 
153
+ ### Project Management
154
+ | Tool | What it does |
155
+ |------|-------------|
156
+ | `list_projects` | Show all configured projects, their roots, and index stats. |
157
+ | `switch_project` | Change active project context. All tools operate against the selected project. |
158
+ | `add_project` | Add a new project at runtime. Indexes immediately and persists to config. |
159
+
91
160
  ### Admin
92
161
  | Tool | What it does |
93
162
  |------|-------------|
@@ -96,7 +165,7 @@ That's it. The server indexes your codebase on startup and watches for changes.
96
165
 
97
166
  ---
98
167
 
99
- ## 6 Languages
168
+ ## 8 Languages
100
169
 
101
170
  | Language | Extensions | Parser |
102
171
  |----------|-----------|--------|
@@ -106,6 +175,8 @@ That's it. The server indexes your codebase on startup and watches for changes.
106
175
  | Go | `.go` | tree-sitter |
107
176
  | Rust | `.rs` | tree-sitter |
108
177
  | Java | `.java` | tree-sitter |
178
+ | C | `.c` `.h` | tree-sitter |
179
+ | C++ | `.cpp` `.cc` `.cxx` `.hpp` `.hxx` `.hh` | tree-sitter |
109
180
 
110
181
  All languages get symbol extraction, reference tracking, import/export analysis, and call graphs. TypeScript/JavaScript additionally get LSP-powered go-to-definition, type info, and find-implementations.
111
182
 
@@ -147,18 +218,28 @@ Tested on real-world projects: Zod, Express, gin, ripgrep, gson.
147
218
  npm test
148
219
  ```
149
220
 
150
- 90 tests across 7 test suites covering all 6 language parsers, the graph engine, and semantic diff.
221
+ 108 tests across 8 test suites covering all language parsers, grammar regression tests, the graph engine, and semantic diff.
151
222
 
152
223
  ---
153
224
 
154
- ## Environment Variables
225
+ ## Configuration
226
+
227
+ ### Environment Variables
155
228
 
156
229
  | Variable | Description | Default |
157
230
  |----------|-------------|---------|
158
- | `PROJECT_ROOT` | Path to the codebase to index (required) | `cwd()` |
159
- | `DB_PATH` | Path to SQLite database file | `$PROJECT_ROOT/.codegraph/index.db` |
231
+ | `PROJECT_ROOT` | Path to a single codebase to index | git root of `cwd()` |
232
+ | `PROJECT_ROOTS` | Comma-separated paths for multi-repo projects | |
233
+ | `DB_PATH` | Path to SQLite database file | `~/.codegraph/graphs/<project>.db` |
160
234
  | `LOG_LEVEL` | Logging verbosity: debug, info, warn, error | `info` |
161
235
 
236
+ ### Config Files
237
+
238
+ | File | Scope | Purpose |
239
+ |------|-------|---------|
240
+ | `.codegraph.json` | Project (check into git) | Define project roots, monorepo scoping |
241
+ | `~/.codegraph/config.json` | User | Personal multi-project setup |
242
+
162
243
  ---
163
244
 
164
245
  ## License
@@ -10,6 +10,7 @@ export interface SymbolInfo {
10
10
  parentSymbolId?: number;
11
11
  signature?: string;
12
12
  isExported: boolean;
13
+ docstring?: string;
13
14
  }
14
15
  export interface ReferenceInfo {
15
16
  fromSymbolId: number;
@@ -79,6 +80,21 @@ export declare class CodeGraph {
79
80
  colEnd: number;
80
81
  signature: string | null;
81
82
  isExported: boolean;
83
+ docstring: string | null;
84
+ }>;
85
+ searchByDocstring(query: string, options?: {
86
+ kind?: string;
87
+ scope?: string;
88
+ limit?: number;
89
+ }): Array<{
90
+ name: string;
91
+ kind: string;
92
+ filePath: string;
93
+ lineStart: number;
94
+ lineEnd: number;
95
+ signature: string | null;
96
+ docstring: string | null;
97
+ isExported: boolean;
82
98
  }>;
83
99
  getReferences(symbolName: string, depth?: number): Array<{
84
100
  fromSymbol: string;
@@ -18,8 +18,8 @@ export class CodeGraph {
18
18
  insertFile: this.db.prepare("INSERT INTO files (path, hash) VALUES (?, ?)"),
19
19
  deleteSymbols: this.db.prepare("DELETE FROM symbols WHERE file_id = ?"),
20
20
  deleteImports: this.db.prepare("DELETE FROM imports WHERE file_id = ?"),
21
- insertSymbol: this.db.prepare(`INSERT INTO symbols (name, kind, file_id, line_start, line_end, col_start, col_end, parent_symbol_id, signature, is_exported)
22
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`),
21
+ insertSymbol: this.db.prepare(`INSERT INTO symbols (name, kind, file_id, line_start, line_end, col_start, col_end, parent_symbol_id, signature, is_exported, docstring)
22
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`),
23
23
  updateParent: this.db.prepare("UPDATE symbols SET parent_symbol_id = ? WHERE id = ?"),
24
24
  insertRef: this.db.prepare(`INSERT INTO references_ (from_symbol_id, to_symbol_name, to_symbol_bare_name, to_file_id, kind, line, col)
25
25
  VALUES (?, ?, ?, ?, ?, ?, ?)`),
@@ -68,7 +68,7 @@ export class CodeGraph {
68
68
  this.stmts.deleteImports.run(fileId);
69
69
  }
70
70
  insertSymbol(fileId, symbol) {
71
- const result = this.stmts.insertSymbol.run(symbol.name, symbol.kind, fileId, symbol.lineStart, symbol.lineEnd, symbol.colStart, symbol.colEnd, symbol.parentSymbolId ?? null, symbol.signature ?? null, symbol.isExported ? 1 : 0);
71
+ const result = this.stmts.insertSymbol.run(symbol.name, symbol.kind, fileId, symbol.lineStart, symbol.lineEnd, symbol.colStart, symbol.colEnd, symbol.parentSymbolId ?? null, symbol.signature ?? null, symbol.isExported ? 1 : 0, symbol.docstring ?? null);
72
72
  return result.lastInsertRowid;
73
73
  }
74
74
  insertReference(ref) {
@@ -175,7 +175,8 @@ export class CodeGraph {
175
175
  const limit = query.limit ?? 50;
176
176
  const sql = `
177
177
  SELECT s.name, s.kind, f.path as filePath, s.line_start as lineStart, s.line_end as lineEnd,
178
- s.col_start as colStart, s.col_end as colEnd, s.signature, s.is_exported as isExported
178
+ s.col_start as colStart, s.col_end as colEnd, s.signature, s.is_exported as isExported,
179
+ s.docstring
179
180
  FROM symbols s
180
181
  JOIN files f ON s.file_id = f.id
181
182
  ${where}
@@ -188,6 +189,31 @@ export class CodeGraph {
188
189
  params.push(query.name ?? "", limit);
189
190
  return this.db.prepare(sql).all(...params);
190
191
  }
192
+ searchByDocstring(query, options) {
193
+ const conditions = ["s.docstring IS NOT NULL AND s.docstring LIKE ?"];
194
+ const params = [`%${query}%`];
195
+ if (options?.kind) {
196
+ conditions.push("s.kind = ?");
197
+ params.push(options.kind);
198
+ }
199
+ if (options?.scope) {
200
+ conditions.push("f.path LIKE ?");
201
+ params.push(`${options.scope}%`);
202
+ }
203
+ const limit = options?.limit ?? 50;
204
+ const where = `WHERE ${conditions.join(" AND ")}`;
205
+ const sql = `
206
+ SELECT s.name, s.kind, f.path as filePath, s.line_start as lineStart, s.line_end as lineEnd,
207
+ s.signature, s.docstring, s.is_exported as isExported
208
+ FROM symbols s
209
+ JOIN files f ON s.file_id = f.id
210
+ ${where}
211
+ ORDER BY s.is_exported DESC, f.path
212
+ LIMIT ?
213
+ `;
214
+ params.push(limit);
215
+ return this.db.prepare(sql).all(...params);
216
+ }
191
217
  getReferences(symbolName, depth = 1) {
192
218
  if (depth < 1)
193
219
  depth = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAkC5C,MAAM,OAAO,SAAS;IAMA;IALpB,+DAA+D;IACvD,KAAK,CAA8C;IAC3D,6DAA6D;IACrD,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACxC,CAAC;IAEO,iBAAiB;QACvB,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC;YACjE,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACrE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC;YACnG,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC;YAC3E,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACvE,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACvE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3B;+CACuC,CACxC;YACD,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC;YACrF,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CACxB;sCAC8B,CAC/B;YACD,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3B;sCAC8B,CAC/B;YACD,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC;YAC7D,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC;YAC9D,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC;YAClE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACnE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAA+B,CAAC;QAC7E,OAAO,GAAG,EAAE,EAAE,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAiC,CAAC;QACjF,IAAI,GAAG;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,IAAY;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACnC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,eAAyB,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,MAAkB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CACxC,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,MAAM,EACN,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,cAAc,IAAI,IAAI,EAC7B,MAAM,CAAC,SAAS,IAAI,IAAI,EACxB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1B,CAAC;QACF,OAAO,MAAM,CAAC,eAAyB,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,GAAkB;QAChC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CACtB,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,gBAAgB,EACxD,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAClD,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,GAAe;QAC1C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CACzB,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,EACvD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CACzD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,QAAgB,EAAE,OAAe,EAAE,OAAqB,EAAE,UAA2B,EAAE,OAAqB;QACpH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,EAAE,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAA8H;QAC3I,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC1B,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvF,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,EAAE,CAAC;QACL,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAEO,eAAe,CAAC,QAAgB,EAAE,IAAY,EAAE,OAAqB,EAAE,UAA2B,EAAE,OAAqB;QAC/H,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3B,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC;YACvC,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC;YAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1C,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,CAAC,cAAc,GAAG,WAAW,CAAC;QACnC,CAAC;QAED,2EAA2E;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,YAAY,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC;YAC3E,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,wBAAwB;IAExB,WAAW,CAAC,KAKX;QAWC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAEhC,MAAM,GAAG,GAAG;;;;;QAKR,KAAK;;;;;;KAMR,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAUvC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,UAAkB,EAAE,QAAgB,CAAC;QAWjD,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,GAAG,EAAE;YAAE,KAAK,GAAG,EAAE,CAAC;QAE3B,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BX,CAAC;QAEF,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAUvE,CAAC;IACL,CAAC;IAED,UAAU,CAAC,QAAgB;QAMzB,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;+BAIuB,CACxB;aACA,GAAG,CAAC,QAAQ,CAKb,CAAC;IACL,CAAC;IAED,UAAU,CAAC,QAAgB;QAQzB,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;uBAKe,CAChB;aACA,GAAG,CAAC,QAAQ,CAOb,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,QAAgB,EAAE,QAAgB,CAAC;QAKpD,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;KAmBX,CAAC;QAEF,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAI7C,CAAC;IACL,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QACnE,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAmC5C,MAAM,OAAO,SAAS;IAMA;IALpB,+DAA+D;IACvD,KAAK,CAA8C;IAC3D,6DAA6D;IACrD,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACxC,CAAC;IAEO,iBAAiB;QACvB,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC;YACjE,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACrE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC;YACnG,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC;YAC3E,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACvE,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACvE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3B;kDAC0C,CAC3C;YACD,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC;YACrF,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CACxB;sCAC8B,CAC/B;YACD,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3B;sCAC8B,CAC/B;YACD,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC;YAC7D,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC;YAC9D,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC;YAClE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACnE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAA+B,CAAC;QAC7E,OAAO,GAAG,EAAE,EAAE,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAiC,CAAC;QACjF,IAAI,GAAG;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,IAAY;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACnC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,eAAyB,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,MAAkB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CACxC,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,MAAM,EACN,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,cAAc,IAAI,IAAI,EAC7B,MAAM,CAAC,SAAS,IAAI,IAAI,EACxB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzB,MAAM,CAAC,SAAS,IAAI,IAAI,CACzB,CAAC;QACF,OAAO,MAAM,CAAC,eAAyB,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,GAAkB;QAChC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CACtB,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,gBAAgB,EACxD,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAClD,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,GAAe;QAC1C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CACzB,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,EACvD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CACzD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,QAAgB,EAAE,OAAe,EAAE,OAAqB,EAAE,UAA2B,EAAE,OAAqB;QACpH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,EAAE,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAA8H;QAC3I,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC1B,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvF,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,EAAE,CAAC;QACL,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAEO,eAAe,CAAC,QAAgB,EAAE,IAAY,EAAE,OAAqB,EAAE,UAA2B,EAAE,OAAqB;QAC/H,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3B,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC;YACvC,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC;YAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1C,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,CAAC,cAAc,GAAG,WAAW,CAAC;QACnC,CAAC;QAED,2EAA2E;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,YAAY,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC;YAC3E,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,wBAAwB;IAExB,WAAW,CAAC,KAKX;QAYC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAEhC,MAAM,GAAG,GAAG;;;;;;QAMR,KAAK;;;;;;KAMR,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAWvC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,KAAa,EAAE,OAIhC;QAUC,MAAM,UAAU,GAAa,CAAC,gDAAgD,CAAC,CAAC;QAChF,MAAM,MAAM,GAAc,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEzC,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAElD,MAAM,GAAG,GAAG;;;;;QAKR,KAAK;;;KAGR,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CASvC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,UAAkB,EAAE,QAAgB,CAAC;QAWjD,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,GAAG,EAAE;YAAE,KAAK,GAAG,EAAE,CAAC;QAE3B,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BX,CAAC;QAEF,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAUvE,CAAC;IACL,CAAC;IAED,UAAU,CAAC,QAAgB;QAMzB,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;+BAIuB,CACxB;aACA,GAAG,CAAC,QAAQ,CAKb,CAAC;IACL,CAAC;IAED,UAAU,CAAC,QAAgB;QAQzB,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;uBAKe,CAChB;aACA,GAAG,CAAC,QAAQ,CAOb,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,QAAgB,EAAE,QAAgB,CAAC;QAKpD,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;KAmBX,CAAC;QAEF,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAI7C,CAAC;IACL,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QACnE,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjD,CAAC;CACF"}
@@ -23,6 +23,7 @@ export function initializeDatabase(dbPath) {
23
23
  parent_symbol_id INTEGER REFERENCES symbols(id) ON DELETE SET NULL,
24
24
  signature TEXT,
25
25
  is_exported INTEGER NOT NULL DEFAULT 0,
26
+ docstring TEXT,
26
27
  UNIQUE(name, kind, file_id, line_start)
27
28
  );
28
29
 
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/graph/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDP,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/graph/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDP,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,3 +3,4 @@ import "./indexer/lang-python.js";
3
3
  import "./indexer/lang-go.js";
4
4
  import "./indexer/lang-rust.js";
5
5
  import "./indexer/lang-java.js";
6
+ import "./indexer/lang-cpp.js";
package/dist/index.js CHANGED
@@ -1,15 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
- import path from "path";
5
- import { initializeDatabase } from "./graph/schema.js";
6
- import { CodeGraph } from "./graph/code-graph.js";
7
- import { FileWatcher } from "./indexer/file-watcher.js";
8
4
  // Language plugins — imported for side-effect (registration)
9
5
  import "./indexer/lang-python.js";
10
6
  import "./indexer/lang-go.js";
11
7
  import "./indexer/lang-rust.js";
12
8
  import "./indexer/lang-java.js";
9
+ import "./indexer/lang-cpp.js";
13
10
  import { findSymbolTool, handleFindSymbol } from "./tools/find-symbol.js";
14
11
  import { getReferencesTool, handleGetReferences } from "./tools/get-references.js";
15
12
  import { getExportsTool, handleGetExports } from "./tools/get-exports.js";
@@ -24,37 +21,46 @@ import { findImplementationsTool, handleFindImplementations } from "./tools/find
24
21
  import { semanticDiffTool, handleSemanticDiff } from "./tools/semantic-diff.js";
25
22
  import { architectureDiagramTool, handleArchitectureDiagram } from "./tools/architecture-diagram.js";
26
23
  import { naturalLanguageQueryTool, handleNaturalLanguageQuery } from "./tools/natural-language-query.js";
27
- import { LspManager } from "./lsp/lsp-manager.js";
24
+ import { searchCodebaseTool, handleSearchCodebase } from "./tools/search-codebase.js";
25
+ import { listProjectsTool, handleListProjects, switchProjectTool, handleSwitchProject, addProjectTool, handleAddProject, } from "./tools/project-tools.js";
26
+ import { ProjectManager } from "./project-manager.js";
28
27
  import { logger } from "./utils/logger.js";
29
28
  import { z } from "zod";
30
- const PROJECT_ROOT = process.env.PROJECT_ROOT || process.cwd();
31
- const DB_PATH = process.env.DB_PATH || path.join(PROJECT_ROOT, ".codegraph", "index.db");
32
29
  async function main() {
33
- // Validate PROJECT_ROOT exists and is a directory
34
- const { existsSync, statSync } = await import("fs");
35
- if (!existsSync(PROJECT_ROOT)) {
36
- logger.error(`PROJECT_ROOT does not exist: ${PROJECT_ROOT}`);
30
+ // Initialize project manager (handles all config resolution)
31
+ const pm = new ProjectManager();
32
+ await pm.initialize();
33
+ const active = pm.active;
34
+ if (!active) {
35
+ logger.error("No valid project roots found. Set PROJECT_ROOT, PROJECT_ROOTS, or create .codegraph.json");
37
36
  process.exit(1);
38
37
  }
39
- if (!statSync(PROJECT_ROOT).isDirectory()) {
40
- logger.error(`PROJECT_ROOT is not a directory: ${PROJECT_ROOT}`);
41
- process.exit(1);
42
- }
43
- logger.info(`Starting mcp-codebase-intelligence for ${PROJECT_ROOT}`);
44
- // Ensure DB directory exists
45
- const { mkdirSync } = await import("fs");
46
- mkdirSync(path.dirname(DB_PATH), { recursive: true });
47
- // Initialize database and graph
48
- const db = initializeDatabase(DB_PATH);
49
- const graph = new CodeGraph(db);
50
- const watcher = new FileWatcher(PROJECT_ROOT, graph);
38
+ const projectDesc = pm.listProjects().map(p => `${p.name}${p.active ? " (active)" : ""}: ${p.roots.join(", ")}`).join("; ");
51
39
  // Create MCP server
52
40
  const server = new McpServer({
53
41
  name: "codebase-intelligence",
54
- version: "0.1.0",
55
- description: `Semantic code intelligence for the project at: ${PROJECT_ROOT}. All tools in this server operate on this indexed project, not the user's current working directory.`,
42
+ version: "0.3.0",
43
+ description: `Semantic code intelligence. Projects: ${projectDesc}. Use list_projects to see all projects and switch_project to change context.`,
56
44
  });
57
- // Register tools
45
+ // Helper to get active graph/project (throws clear error if none)
46
+ function getActive() {
47
+ const a = pm.active;
48
+ if (!a)
49
+ throw new Error("No active project. Use list_projects and switch_project.");
50
+ return a;
51
+ }
52
+ // --- Project management tools ---
53
+ server.tool(listProjectsTool.name, listProjectsTool.description, {}, () => handleListProjects(pm));
54
+ server.tool(switchProjectTool.name, switchProjectTool.description, {
55
+ project_name: z.string().describe("Name of the project to switch to"),
56
+ }, (args) => handleSwitchProject(pm, args));
57
+ server.tool(addProjectTool.name, addProjectTool.description, {
58
+ project_name: z.string().describe("Name for the new project"),
59
+ root: z.string().optional().describe("Single root path (for a repo or monorepo)"),
60
+ roots: z.string().optional().describe("Comma-separated root paths (for multi-repo projects)"),
61
+ include: z.string().optional().describe("Comma-separated relative paths to include within root (for monorepo scoping)"),
62
+ }, (args) => handleAddProject(pm, args));
63
+ // --- Code navigation tools ---
58
64
  server.tool(findSymbolTool.name, findSymbolTool.description, {
59
65
  name: z.string().describe("Symbol name to search for (supports partial matching)"),
60
66
  kind: z
@@ -63,26 +69,26 @@ async function main() {
63
69
  .describe("Optional: filter by symbol kind"),
64
70
  scope: z.string().optional().describe("Optional: limit search to files under this path prefix"),
65
71
  limit: z.number().optional().describe("Maximum results to return (default: 20)"),
66
- }, (args) => handleFindSymbol(graph, args));
72
+ }, (args) => handleFindSymbol(getActive().graph, args));
67
73
  server.tool(getReferencesTool.name, getReferencesTool.description, {
68
74
  symbol_name: z.string().describe("Name of the symbol to find references for"),
69
75
  depth: z
70
76
  .number()
71
77
  .optional()
72
78
  .describe("How many levels of transitive references to follow (1 = direct only, default: 1, max: 10)"),
73
- }, (args) => handleGetReferences(graph, args));
79
+ }, (args) => handleGetReferences(getActive().graph, args));
74
80
  server.tool(getExportsTool.name, getExportsTool.description, {
75
81
  file_path: z.string().describe("Absolute path to the file to inspect"),
76
- }, (args) => handleGetExports(graph, args));
82
+ }, (args) => handleGetExports(getActive().graph, args));
77
83
  server.tool(getDependenciesTool.name, getDependenciesTool.description, {
78
84
  file_path: z.string().describe("Absolute path to the file to inspect"),
79
85
  depth: z
80
86
  .number()
81
87
  .optional()
82
88
  .describe("How many levels of transitive dependencies to follow (default: 1, max: 5)"),
83
- }, (args) => handleGetDependencies(graph, args));
84
- server.tool(getStatsTool.name, getStatsTool.description, {}, () => handleGetStats(graph, PROJECT_ROOT));
85
- server.tool(reindexTool.name, reindexTool.description, {}, async () => handleReindex(watcher));
89
+ }, (args) => handleGetDependencies(getActive().graph, args));
90
+ server.tool(getStatsTool.name, getStatsTool.description, {}, () => handleGetStats(getActive().graph, pm.getPrimaryRoot() || undefined));
91
+ server.tool(reindexTool.name, reindexTool.description, {}, async () => handleReindex(getActive().watcher));
86
92
  server.tool(analyzeChangeImpactTool.name, analyzeChangeImpactTool.description, {
87
93
  file_path: z.string().describe("Absolute path to the file being modified"),
88
94
  line_start: z.number().describe("Starting line number of the change (inclusive)"),
@@ -91,7 +97,7 @@ async function main() {
91
97
  .number()
92
98
  .optional()
93
99
  .describe("How many levels of transitive dependents to follow (1 = direct only, default: 2, max: 10)"),
94
- }, (args) => handleAnalyzeChangeImpact(graph, args));
100
+ }, (args) => handleAnalyzeChangeImpact(getActive().graph, args));
95
101
  server.tool(getCallGraphTool.name, getCallGraphTool.description, {
96
102
  function_name: z.string().describe("Name of the function to get the call graph for"),
97
103
  direction: z
@@ -103,52 +109,49 @@ async function main() {
103
109
  .enum(["tree", "mermaid"])
104
110
  .optional()
105
111
  .describe("Output format (default: tree)"),
106
- }, (args) => handleGetCallGraph(graph, args));
107
- // Register LSP-powered tools
108
- const lspManager = new LspManager(PROJECT_ROOT);
112
+ }, (args) => handleGetCallGraph(getActive().graph, args));
113
+ // --- LSP-powered tools ---
109
114
  server.tool(gotoDefinitionTool.name, gotoDefinitionTool.description, {
110
115
  file_path: z.string().describe("Absolute path to the file"),
111
116
  line: z.number().describe("Line number (1-based)"),
112
117
  character: z.number().describe("Column number (0-based)"),
113
- }, (args) => handleGotoDefinition(lspManager, args));
118
+ }, (args) => handleGotoDefinition(getActive().lspManager, args));
114
119
  server.tool(getTypeInfoTool.name, getTypeInfoTool.description, {
115
120
  file_path: z.string().describe("Absolute path to the file"),
116
121
  line: z.number().describe("Line number (1-based)"),
117
122
  character: z.number().describe("Column number (0-based)"),
118
- }, (args) => handleGetTypeInfo(lspManager, args));
123
+ }, (args) => handleGetTypeInfo(getActive().lspManager, args));
119
124
  server.tool(findImplementationsTool.name, findImplementationsTool.description, {
120
125
  file_path: z.string().describe("Absolute path to the file containing the interface/abstract method"),
121
126
  line: z.number().describe("Line number (1-based)"),
122
127
  character: z.number().describe("Column number (0-based)"),
123
- }, (args) => handleFindImplementations(lspManager, args));
128
+ }, (args) => handleFindImplementations(getActive().lspManager, args));
129
+ // --- Change analysis tools ---
124
130
  server.tool(semanticDiffTool.name, semanticDiffTool.description, {
125
131
  git_ref: z.string().optional().describe("Git ref to diff against (e.g. 'HEAD~1', 'HEAD~5', 'main', 'staged', 'unstaged'). Preferred over passing raw diff text."),
126
132
  diff: z.string().optional().describe("Raw unified diff text. Only use if git_ref is not applicable."),
127
133
  depth: z.number().optional().describe("Transitive dependency depth (default: 2, max: 5)"),
128
- }, (args) => handleSemanticDiff(graph, args, PROJECT_ROOT));
134
+ }, (args) => handleSemanticDiff(getActive().graph, args, pm.getPrimaryRoot() || undefined));
135
+ // --- Architecture & discovery tools ---
129
136
  server.tool(architectureDiagramTool.name, architectureDiagramTool.description, {
130
137
  scope: z.string().optional().describe("Optional: limit diagram to files under this path prefix"),
131
138
  max_depth: z.number().optional().describe("Maximum directory nesting depth for subgraph grouping (default: 2)"),
132
139
  format: z.enum(["mermaid", "text"]).optional().describe("Output format (default: mermaid)"),
133
- }, (args) => handleArchitectureDiagram(graph, args, PROJECT_ROOT));
140
+ }, (args) => handleArchitectureDiagram(getActive().graph, args, pm.getPrimaryRoot() || undefined));
134
141
  server.tool(naturalLanguageQueryTool.name, naturalLanguageQueryTool.description, {
135
142
  query: z.string().describe("Natural language question about the codebase"),
136
- }, (args) => handleNaturalLanguageQuery(graph, args));
137
- // Perform initial indexing (tree-sitter fast)
138
- await watcher.initialIndex();
139
- watcher.startWatching();
140
- // Start LSP servers in background (slow — don't block MCP)
141
- lspManager.start().then(() => {
142
- const servers = lspManager.getActiveServers();
143
- if (servers.length > 0) {
144
- logger.info(`LSP servers active: ${servers.join(", ")}`);
145
- }
146
- else {
147
- logger.info("No LSP servers started (tools still work via tree-sitter)");
148
- }
149
- }).catch((err) => {
150
- logger.warn("LSP startup failed (non-fatal)", err);
151
- });
143
+ }, (args) => handleNaturalLanguageQuery(getActive().graph, args));
144
+ server.tool(searchCodebaseTool.name, searchCodebaseTool.description, {
145
+ query: z.string().describe("Text to search for in docstrings/comments"),
146
+ kind: z
147
+ .enum(["function", "class", "interface", "type", "variable", "method", "enum", "property"])
148
+ .optional()
149
+ .describe("Optional: filter by symbol kind"),
150
+ scope: z.string().optional().describe("Optional: limit search to files under this path prefix"),
151
+ limit: z.number().optional().describe("Maximum results to return (default: 20)"),
152
+ }, (args) => handleSearchCodebase(getActive().graph, args));
153
+ // --- Start indexing and MCP server ---
154
+ await pm.startAll();
152
155
  // Start MCP server on stdio
153
156
  const transport = new StdioServerTransport();
154
157
  await server.connect(transport);
@@ -156,9 +159,7 @@ async function main() {
156
159
  // Graceful shutdown
157
160
  const shutdown = async () => {
158
161
  logger.info("Shutting down...");
159
- await watcher.stop();
160
- await lspManager.stop();
161
- db.close();
162
+ await pm.shutdown();
162
163
  process.exit(0);
163
164
  };
164
165
  process.on("SIGINT", shutdown);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import Parser from "tree-sitter";
2
+ export declare function getPrecedingComment(node: Parser.SyntaxNode): string | undefined;
3
+ /**
4
+ * Extract Python docstring — first expression_statement containing a string
5
+ * in the function/class body.
6
+ */
7
+ export declare function getPythonDocstring(node: Parser.SyntaxNode): string | undefined;