lsp-intelligence 0.1.0 → 0.1.2
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 +53 -5
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/live/autoImport.js +39 -21
- package/dist/tools/live/autoImport.js.map +1 -1
- package/dist/tools/primitives/typeHierarchy.js +7 -1
- package/dist/tools/primitives/typeHierarchy.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Type-aware code intelligence for AI agents — impact analysis, semantic diff, and context building via LSP.
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**24 MCP tools** across 5 layers — from basic navigation to "what breaks if I change this?" in one call.
|
|
6
6
|
|
|
7
7
|
Currently supports **TypeScript and JavaScript** projects. The architecture supports other LSP servers — additional language support is planned.
|
|
8
8
|
|
|
@@ -32,7 +32,56 @@ Or get a file overview without reading it:
|
|
|
32
32
|
{ "tool": "outline", "arguments": { "file_path": "/workspace/src/services/auth.ts" } }
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
> All tools that accept `file_path` require absolute paths.
|
|
35
|
+
> All tools that accept `file_path` require absolute paths.
|
|
36
|
+
|
|
37
|
+
## Installation
|
|
38
|
+
|
|
39
|
+
Requires **Node.js 20+**. Dependencies are installed automatically on first session start.
|
|
40
|
+
|
|
41
|
+
### Option 1: CLI (recommended)
|
|
42
|
+
|
|
43
|
+
Add the marketplace and install the plugin:
|
|
44
|
+
|
|
45
|
+
```shell
|
|
46
|
+
/plugin marketplace add perilevy/lsp-intelligence
|
|
47
|
+
/plugin install lsp-intelligence@lsp-intelligence
|
|
48
|
+
/reload-plugins
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Option 2: Project configuration (team setup)
|
|
52
|
+
|
|
53
|
+
Add to your project's `.claude/settings.json` — any teammate who clones the repo gets it automatically:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"extraKnownMarketplaces": {
|
|
58
|
+
"lsp-intelligence": {
|
|
59
|
+
"source": {
|
|
60
|
+
"source": "github",
|
|
61
|
+
"repo": "perilevy/lsp-intelligence"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"enabledPlugins": {
|
|
66
|
+
"lsp-intelligence@lsp-intelligence": true
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Option 3: npm source
|
|
72
|
+
|
|
73
|
+
Use npm source in `marketplace.json` for version pinning and built-in dependency resolution:
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"name": "lsp-intelligence",
|
|
78
|
+
"source": {
|
|
79
|
+
"source": "npm",
|
|
80
|
+
"package": "lsp-intelligence",
|
|
81
|
+
"version": "0.1.2"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
36
85
|
|
|
37
86
|
## Capabilities
|
|
38
87
|
|
|
@@ -73,7 +122,7 @@ The engine initializes once per session and stays warm. Warmup includes spawning
|
|
|
73
122
|
|
|
74
123
|
## Tools
|
|
75
124
|
|
|
76
|
-
### Layer 1: Primitives (
|
|
125
|
+
### Layer 1: Primitives (13 tools)
|
|
77
126
|
|
|
78
127
|
Direct LSP wrappers. Every tool accepts **symbol names** — agents never need to guess line numbers.
|
|
79
128
|
|
|
@@ -87,7 +136,6 @@ Direct LSP wrappers. Every tool accepts **symbol names** — agents never need t
|
|
|
87
136
|
| `document_symbols` | List all symbols in a file. |
|
|
88
137
|
| `workspace_symbols` | Search for symbols by name across the workspace. |
|
|
89
138
|
| `call_hierarchy` | Trace incoming callers or outgoing callees. |
|
|
90
|
-
| `type_hierarchy` | Explore supertypes and subtypes. |
|
|
91
139
|
| `rename` | Preview a semantic rename across the codebase (dry-run by default). |
|
|
92
140
|
| `diagnostics` | Get type errors and warnings for a file. |
|
|
93
141
|
| `completions` | Code completion suggestions. |
|
|
@@ -142,7 +190,7 @@ Post-edit verification.
|
|
|
142
190
|
├─────────────────────────────────────────────────────────┤
|
|
143
191
|
│ Layer 1: Primitives [read-only] │
|
|
144
192
|
│ find_references, hover, definition, call_hierarchy, │
|
|
145
|
-
│
|
|
193
|
+
│ rename, diagnostics, symbols, imports, exports │
|
|
146
194
|
├─────────────────────────────────────────────────────────┤
|
|
147
195
|
│ Layer 0: LSP Engine [infrastructure] │
|
|
148
196
|
│ TypeScript Server spawn, monorepo preopen, │
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,6 @@ import { findImplementations } from './tools/primitives/findImplementations.js';
|
|
|
15
15
|
import { documentSymbols } from './tools/primitives/documentSymbols.js';
|
|
16
16
|
import { workspaceSymbols } from './tools/primitives/workspaceSymbols.js';
|
|
17
17
|
import { callHierarchy } from './tools/primitives/callHierarchy.js';
|
|
18
|
-
import { typeHierarchy } from './tools/primitives/typeHierarchy.js';
|
|
19
18
|
import { rename } from './tools/primitives/rename.js';
|
|
20
19
|
import { diagnostics } from './tools/primitives/diagnostics.js';
|
|
21
20
|
import { completions } from './tools/primitives/completions.js';
|
|
@@ -50,7 +49,6 @@ async function main() {
|
|
|
50
49
|
documentSymbols,
|
|
51
50
|
workspaceSymbols,
|
|
52
51
|
callHierarchy,
|
|
53
|
-
typeHierarchy,
|
|
54
52
|
rename,
|
|
55
53
|
diagnostics,
|
|
56
54
|
completions,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO;AACP,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAEtE,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,KAAK,CAAC,+CAA+C,aAAa,EAAE,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,EACrC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;QAC1B,sBAAsB;QACtB,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,KAAK;QACL,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,MAAM;QACN,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,sBAAsB;QACtB,aAAa;QACb,UAAU;QACV,WAAW;QACX,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,mBAAmB;QACnB,OAAO;QACP,aAAa;QACb,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,OAAO,CAAC,KAAK,CAAC,oDAAoD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAEhE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -63,30 +63,48 @@ export const autoImport = defineTool({
|
|
|
63
63
|
const resolved = await engine.resolveSymbol(params.symbol);
|
|
64
64
|
const defUri = resolved.uri;
|
|
65
65
|
const defPath = uriToPath(defUri);
|
|
66
|
-
// Follow to the actual definition
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
// Follow to the actual definition — chase up to 3 hops to reach the source
|
|
67
|
+
let sourcePath = defPath;
|
|
68
|
+
let currentUri = defUri;
|
|
69
|
+
let currentPos = resolved.position;
|
|
70
|
+
for (let hop = 0; hop < 3; hop++) {
|
|
71
|
+
const def = await engine.request('textDocument/definition', {
|
|
72
|
+
textDocument: { uri: currentUri },
|
|
73
|
+
position: currentPos,
|
|
74
|
+
}, DEFAULT_TIMEOUTS.live).catch(() => null);
|
|
75
|
+
if (!def)
|
|
76
|
+
break;
|
|
77
|
+
const loc = Array.isArray(def) ? def[0] : def;
|
|
78
|
+
const newPath = uriToPath(loc.uri);
|
|
79
|
+
if (newPath === sourcePath)
|
|
80
|
+
break; // same file — stop chasing
|
|
81
|
+
sourcePath = newPath;
|
|
82
|
+
currentUri = loc.uri;
|
|
83
|
+
currentPos = loc.range.start;
|
|
84
|
+
}
|
|
74
85
|
const rel = relativePath(sourcePath, engine.workspaceRoot);
|
|
75
86
|
let importPath = rel;
|
|
87
|
+
// Strategy 0: If source is inside node_modules, extract package name directly
|
|
88
|
+
const nodeModulesMatch = sourcePath.match(/\/node_modules\/((?:@[^/]+\/)?[^/]+)/);
|
|
89
|
+
if (nodeModulesMatch) {
|
|
90
|
+
importPath = nodeModulesMatch[1];
|
|
91
|
+
}
|
|
76
92
|
// Strategy 1: Use tsconfig paths (most accurate — respects aliases)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
93
|
+
if (importPath === rel) {
|
|
94
|
+
const fromDir = params.from_file
|
|
95
|
+
? path.dirname(params.from_file)
|
|
96
|
+
: engine.workspaceRoot;
|
|
97
|
+
const tsconfigPaths = findTsConfigPaths(fromDir, engine.workspaceRoot);
|
|
98
|
+
if (tsconfigPaths) {
|
|
99
|
+
const tsconfigDir = findTsConfigDir(fromDir, engine.workspaceRoot);
|
|
100
|
+
if (tsconfigDir) {
|
|
101
|
+
const alias = resolveAlias(sourcePath, tsconfigPaths, tsconfigDir);
|
|
102
|
+
if (alias)
|
|
103
|
+
importPath = alias;
|
|
104
|
+
}
|
|
87
105
|
}
|
|
88
106
|
}
|
|
89
|
-
// Strategy 2: Fall back to package.json name
|
|
107
|
+
// Strategy 2: Fall back to package.json name for monorepo packages
|
|
90
108
|
if (importPath === rel) {
|
|
91
109
|
const pkgMatch = sourcePath.match(/\/(packages|apps|libs|modules|services)\/([^/]+)\//);
|
|
92
110
|
if (pkgMatch) {
|
|
@@ -96,10 +114,10 @@ export const autoImport = defineTool({
|
|
|
96
114
|
const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));
|
|
97
115
|
if (pkgJson.name) {
|
|
98
116
|
const afterPkg = sourcePath.replace(pkgDir, '');
|
|
99
|
-
const cleanPath = afterPkg.replace(
|
|
117
|
+
const cleanPath = afterPkg.replace(/^\/?src\//, '').replace(/\/?index\.tsx?$/, '').replace(/\.tsx?$/, '').replace(/\/$/, '');
|
|
100
118
|
importPath = !cleanPath || cleanPath === '/'
|
|
101
119
|
? pkgJson.name
|
|
102
|
-
: `${pkgJson.name}
|
|
120
|
+
: `${pkgJson.name}/${cleanPath}`;
|
|
103
121
|
}
|
|
104
122
|
}
|
|
105
123
|
catch { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoImport.js","sourceRoot":"","sources":["../../../src/tools/live/autoImport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"autoImport.js","sourceRoot":"","sources":["../../../src/tools/live/autoImport.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,13 @@ export const typeHierarchy = defineTool({
|
|
|
26
26
|
else {
|
|
27
27
|
return 'Error: Provide either symbol name or file_path + line + column.';
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
let items;
|
|
30
|
+
try {
|
|
31
|
+
items = await engine.request('textDocument/prepareTypeHierarchy', { textDocument: { uri }, position });
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return 'Type hierarchy is not supported by the current language server.';
|
|
35
|
+
}
|
|
30
36
|
if (!items || items.length === 0)
|
|
31
37
|
return 'No type hierarchy available for this symbol.';
|
|
32
38
|
const item = items[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeHierarchy.js","sourceRoot":"","sources":["../../../src/tools/primitives/typeHierarchy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAU9F,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;IACtC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,6GAA6G;IAC1H,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QACzF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACjE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;KACpE,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;QAC1B,IAAI,GAAW,EAAE,QAA6C,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7E,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnD,CAAC;aAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5D,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,OAAO,iEAAiE,CAAC;QAC3E,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"typeHierarchy.js","sourceRoot":"","sources":["../../../src/tools/primitives/typeHierarchy.ts"],"names":[],"mappings":"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"}
|