@mcp-graph-workflow/mcp-graph 5.4.0 → 5.5.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.
- package/dist/api/routes/code-graph.js +2 -2
- package/dist/api/routes/code-graph.js.map +1 -1
- package/dist/api/routes/folder.js +2 -2
- package/dist/api/routes/folder.js.map +1 -1
- package/dist/cli/commands/update.d.ts +3 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +60 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/code/code-indexer.d.ts +2 -2
- package/dist/core/code/code-indexer.d.ts.map +1 -1
- package/dist/core/code/code-indexer.js +3 -3
- package/dist/core/code/code-indexer.js.map +1 -1
- package/dist/core/code/code-types.d.ts +1 -1
- package/dist/core/code/code-types.d.ts.map +1 -1
- package/dist/core/code/ts-analyzer.d.ts +7 -1
- package/dist/core/code/ts-analyzer.d.ts.map +1 -1
- package/dist/core/code/ts-analyzer.js +105 -72
- package/dist/core/code/ts-analyzer.js.map +1 -1
- package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
- package/dist/core/config/ai-memory-generator.js +80 -37
- package/dist/core/config/ai-memory-generator.js.map +1 -1
- package/dist/core/importer/prd-to-graph.d.ts.map +1 -1
- package/dist/core/importer/prd-to-graph.js +49 -12
- package/dist/core/importer/prd-to-graph.js.map +1 -1
- package/dist/core/parser/classify.d.ts +1 -0
- package/dist/core/parser/classify.d.ts.map +1 -1
- package/dist/core/parser/classify.js +1 -0
- package/dist/core/parser/classify.js.map +1 -1
- package/dist/core/store/sqlite-store.d.ts.map +1 -1
- package/dist/core/store/sqlite-store.js +28 -10
- package/dist/core/store/sqlite-store.js.map +1 -1
- package/dist/mcp/init-project.d.ts +14 -0
- package/dist/mcp/init-project.d.ts.map +1 -1
- package/dist/mcp/init-project.js +140 -36
- package/dist/mcp/init-project.js.map +1 -1
- package/dist/mcp/server.js +18 -16
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/add-node.d.ts +3 -0
- package/dist/mcp/tools/add-node.d.ts.map +1 -1
- package/dist/mcp/tools/add-node.js +7 -3
- package/dist/mcp/tools/add-node.js.map +1 -1
- package/dist/mcp/tools/delete-node.d.ts +3 -0
- package/dist/mcp/tools/delete-node.d.ts.map +1 -1
- package/dist/mcp/tools/delete-node.js +7 -3
- package/dist/mcp/tools/delete-node.js.map +1 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +21 -12
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/list-skills.d.ts +1 -2
- package/dist/mcp/tools/list-skills.d.ts.map +1 -1
- package/dist/mcp/tools/list-skills.js +6 -4
- package/dist/mcp/tools/list-skills.js.map +1 -1
- package/dist/mcp/tools/manage-skill.d.ts.map +1 -1
- package/dist/mcp/tools/manage-skill.js +57 -4
- package/dist/mcp/tools/manage-skill.js.map +1 -1
- package/dist/mcp/tools/node.d.ts +9 -0
- package/dist/mcp/tools/node.d.ts.map +1 -0
- package/dist/mcp/tools/node.js +195 -0
- package/dist/mcp/tools/node.js.map +1 -0
- package/dist/mcp/tools/update-node.d.ts +3 -0
- package/dist/mcp/tools/update-node.d.ts.map +1 -1
- package/dist/mcp/tools/update-node.js +7 -3
- package/dist/mcp/tools/update-node.js.map +1 -1
- package/dist/mcp/tools/validate-ac.d.ts +3 -0
- package/dist/mcp/tools/validate-ac.d.ts.map +1 -1
- package/dist/mcp/tools/validate-ac.js +6 -2
- package/dist/mcp/tools/validate-ac.js.map +1 -1
- package/dist/mcp/tools/validate-task.d.ts +3 -0
- package/dist/mcp/tools/validate-task.d.ts.map +1 -1
- package/dist/mcp/tools/validate-task.js +6 -1
- package/dist/mcp/tools/validate-task.js.map +1 -1
- package/dist/mcp/tools/validate.d.ts +9 -0
- package/dist/mcp/tools/validate.d.ts.map +1 -0
- package/dist/mcp/tools/validate.js +70 -0
- package/dist/mcp/tools/validate.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,28 +2,61 @@
|
|
|
2
2
|
* TypeScript AST analyzer using ts.createSourceFile() (parse-only, no type checker).
|
|
3
3
|
* Extracts symbols and relations from TypeScript files syntactically.
|
|
4
4
|
* ~10-100x faster than ts.createProgram() with ~95% accuracy.
|
|
5
|
+
*
|
|
6
|
+
* Uses dynamic import for the "typescript" package so the module loads
|
|
7
|
+
* gracefully even when typescript is not installed (e.g. production / global installs).
|
|
5
8
|
*/
|
|
6
|
-
import ts from "typescript";
|
|
7
9
|
import { readFileSync } from "node:fs";
|
|
8
10
|
import path from "node:path";
|
|
9
11
|
import { logger } from "../utils/logger.js";
|
|
12
|
+
// ── Lazy TypeScript loader ──────────────────────────────
|
|
13
|
+
let tsModule = null;
|
|
14
|
+
let loadAttempted = false;
|
|
15
|
+
async function loadTypeScript() {
|
|
16
|
+
if (tsModule)
|
|
17
|
+
return tsModule;
|
|
18
|
+
if (loadAttempted)
|
|
19
|
+
return null;
|
|
20
|
+
loadAttempted = true;
|
|
21
|
+
try {
|
|
22
|
+
const mod = await import("typescript");
|
|
23
|
+
tsModule = mod.default ?? mod;
|
|
24
|
+
return tsModule;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
logger.warn("ts-analyzer:typescript-unavailable", {
|
|
28
|
+
message: "typescript not found — code analysis disabled",
|
|
29
|
+
});
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** Reset the lazy loader state (for testing purposes). */
|
|
34
|
+
export function resetTypeScriptLoader() {
|
|
35
|
+
tsModule = null;
|
|
36
|
+
loadAttempted = false;
|
|
37
|
+
}
|
|
10
38
|
/**
|
|
11
39
|
* Analyze a single TypeScript file syntactically.
|
|
12
40
|
* Returns extracted symbols and relations with paths relative to basePath.
|
|
41
|
+
* Returns empty result if the typescript package is unavailable.
|
|
13
42
|
*/
|
|
14
|
-
export function analyzeFile(filePath, basePath) {
|
|
15
|
-
const content = readFileSync(filePath, "utf-8");
|
|
43
|
+
export async function analyzeFile(filePath, basePath) {
|
|
16
44
|
const relativePath = path.relative(basePath, filePath);
|
|
17
|
-
const
|
|
18
|
-
|
|
45
|
+
const tsLib = await loadTypeScript();
|
|
46
|
+
if (!tsLib) {
|
|
47
|
+
return { file: relativePath, symbols: [], relations: [] };
|
|
48
|
+
}
|
|
49
|
+
const content = readFileSync(filePath, "utf-8");
|
|
50
|
+
const sourceFile = tsLib.createSourceFile(relativePath, content, tsLib.ScriptTarget.Latest, true, // setParentNodes
|
|
51
|
+
tsLib.ScriptKind.TS);
|
|
19
52
|
const symbols = [];
|
|
20
53
|
const relations = [];
|
|
21
54
|
// Track imports for call resolution: localName → { modulePath, importedName }
|
|
22
55
|
const importMap = new Map();
|
|
23
56
|
// First pass: collect imports
|
|
24
|
-
collectImports(sourceFile, importMap);
|
|
57
|
+
collectImports(tsLib, sourceFile, importMap);
|
|
25
58
|
// Second pass: extract symbols and relations
|
|
26
|
-
visitNode(sourceFile, sourceFile, relativePath, symbols, relations, importMap, null);
|
|
59
|
+
visitNode(tsLib, sourceFile, sourceFile, relativePath, symbols, relations, importMap, null);
|
|
27
60
|
logger.debug("ts-analyzer:file", {
|
|
28
61
|
file: relativePath,
|
|
29
62
|
symbols: symbols.length,
|
|
@@ -32,11 +65,11 @@ export function analyzeFile(filePath, basePath) {
|
|
|
32
65
|
return { file: relativePath, symbols, relations };
|
|
33
66
|
}
|
|
34
67
|
// ── Import Collection ────────────────────────────────
|
|
35
|
-
function collectImports(sourceFile, importMap) {
|
|
68
|
+
function collectImports(tsLib, sourceFile, importMap) {
|
|
36
69
|
for (const stmt of sourceFile.statements) {
|
|
37
|
-
if (!
|
|
70
|
+
if (!tsLib.isImportDeclaration(stmt))
|
|
38
71
|
continue;
|
|
39
|
-
if (!stmt.moduleSpecifier || !
|
|
72
|
+
if (!stmt.moduleSpecifier || !tsLib.isStringLiteral(stmt.moduleSpecifier))
|
|
40
73
|
continue;
|
|
41
74
|
const modulePath = stmt.moduleSpecifier.text;
|
|
42
75
|
const clause = stmt.importClause;
|
|
@@ -47,7 +80,7 @@ function collectImports(sourceFile, importMap) {
|
|
|
47
80
|
importMap.set(clause.name.text, { modulePath, importedName: "default" });
|
|
48
81
|
}
|
|
49
82
|
// Named imports: import { a, b as c } from '...'
|
|
50
|
-
if (clause.namedBindings &&
|
|
83
|
+
if (clause.namedBindings && tsLib.isNamedImports(clause.namedBindings)) {
|
|
51
84
|
for (const specifier of clause.namedBindings.elements) {
|
|
52
85
|
const localName = specifier.name.text;
|
|
53
86
|
const importedName = specifier.propertyName?.text ?? localName;
|
|
@@ -55,49 +88,49 @@ function collectImports(sourceFile, importMap) {
|
|
|
55
88
|
}
|
|
56
89
|
}
|
|
57
90
|
// Namespace import: import * as ns from '...'
|
|
58
|
-
if (clause.namedBindings &&
|
|
91
|
+
if (clause.namedBindings && tsLib.isNamespaceImport(clause.namedBindings)) {
|
|
59
92
|
importMap.set(clause.namedBindings.name.text, { modulePath, importedName: "*" });
|
|
60
93
|
}
|
|
61
94
|
}
|
|
62
95
|
}
|
|
63
96
|
// ── AST Visitor ──────────────────────────────────────
|
|
64
|
-
function visitNode(node, sourceFile, file, symbols, relations, importMap, currentClass) {
|
|
97
|
+
function visitNode(tsLib, node, sourceFile, file, symbols, relations, importMap, currentClass) {
|
|
65
98
|
// Function declarations
|
|
66
|
-
if (
|
|
99
|
+
if (tsLib.isFunctionDeclaration(node) && node.name) {
|
|
67
100
|
const name = node.name.text;
|
|
68
|
-
const { line: startLine } =
|
|
69
|
-
const { line: endLine } =
|
|
101
|
+
const { line: startLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
102
|
+
const { line: endLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getEnd());
|
|
70
103
|
symbols.push({
|
|
71
104
|
name,
|
|
72
105
|
kind: "function",
|
|
73
106
|
file,
|
|
74
107
|
startLine: startLine + 1,
|
|
75
108
|
endLine: endLine + 1,
|
|
76
|
-
exported: hasExportModifier(node),
|
|
77
|
-
signature: extractSignature(node, sourceFile),
|
|
109
|
+
exported: hasExportModifier(tsLib, node),
|
|
110
|
+
signature: extractSignature(tsLib, node, sourceFile),
|
|
78
111
|
});
|
|
79
112
|
// Scan function body for calls
|
|
80
113
|
if (node.body) {
|
|
81
|
-
collectCalls(node.body, sourceFile, file, name, relations, importMap);
|
|
114
|
+
collectCalls(tsLib, node.body, sourceFile, file, name, relations, importMap);
|
|
82
115
|
}
|
|
83
116
|
}
|
|
84
117
|
// Class declarations
|
|
85
|
-
if (
|
|
118
|
+
if (tsLib.isClassDeclaration(node) && node.name) {
|
|
86
119
|
const className = node.name.text;
|
|
87
|
-
const { line: startLine } =
|
|
88
|
-
const { line: endLine } =
|
|
120
|
+
const { line: startLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
121
|
+
const { line: endLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getEnd());
|
|
89
122
|
symbols.push({
|
|
90
123
|
name: className,
|
|
91
124
|
kind: "class",
|
|
92
125
|
file,
|
|
93
126
|
startLine: startLine + 1,
|
|
94
127
|
endLine: endLine + 1,
|
|
95
|
-
exported: hasExportModifier(node),
|
|
128
|
+
exported: hasExportModifier(tsLib, node),
|
|
96
129
|
});
|
|
97
130
|
// Heritage clauses: extends / implements
|
|
98
131
|
if (node.heritageClauses) {
|
|
99
132
|
for (const clause of node.heritageClauses) {
|
|
100
|
-
const relType = clause.token ===
|
|
133
|
+
const relType = clause.token === tsLib.SyntaxKind.ExtendsKeyword ? "extends" : "implements";
|
|
101
134
|
for (const typeExpr of clause.types) {
|
|
102
135
|
const baseName = typeExpr.expression.getText(sourceFile);
|
|
103
136
|
relations.push({
|
|
@@ -105,17 +138,17 @@ function visitNode(node, sourceFile, file, symbols, relations, importMap, curren
|
|
|
105
138
|
toSymbol: baseName,
|
|
106
139
|
type: relType,
|
|
107
140
|
file,
|
|
108
|
-
line:
|
|
141
|
+
line: tsLib.getLineAndCharacterOfPosition(sourceFile, typeExpr.getStart()).line + 1,
|
|
109
142
|
});
|
|
110
143
|
}
|
|
111
144
|
}
|
|
112
145
|
}
|
|
113
146
|
// Visit class members
|
|
114
147
|
for (const member of node.members) {
|
|
115
|
-
if (
|
|
148
|
+
if (tsLib.isMethodDeclaration(member) && member.name) {
|
|
116
149
|
const methodName = member.name.getText(sourceFile);
|
|
117
|
-
const { line: mStartLine } =
|
|
118
|
-
const { line: mEndLine } =
|
|
150
|
+
const { line: mStartLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, member.getStart());
|
|
151
|
+
const { line: mEndLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, member.getEnd());
|
|
119
152
|
symbols.push({
|
|
120
153
|
name: methodName,
|
|
121
154
|
kind: "method",
|
|
@@ -123,7 +156,7 @@ function visitNode(node, sourceFile, file, symbols, relations, importMap, curren
|
|
|
123
156
|
startLine: mStartLine + 1,
|
|
124
157
|
endLine: mEndLine + 1,
|
|
125
158
|
exported: false,
|
|
126
|
-
signature: extractSignature(member, sourceFile),
|
|
159
|
+
signature: extractSignature(tsLib, member, sourceFile),
|
|
127
160
|
});
|
|
128
161
|
relations.push({
|
|
129
162
|
fromSymbol: methodName,
|
|
@@ -134,12 +167,12 @@ function visitNode(node, sourceFile, file, symbols, relations, importMap, curren
|
|
|
134
167
|
});
|
|
135
168
|
// Scan method body for calls
|
|
136
169
|
if (member.body) {
|
|
137
|
-
collectCalls(member.body, sourceFile, file, methodName, relations, importMap);
|
|
170
|
+
collectCalls(tsLib, member.body, sourceFile, file, methodName, relations, importMap);
|
|
138
171
|
}
|
|
139
172
|
}
|
|
140
|
-
if (
|
|
141
|
-
const { line: cStartLine } =
|
|
142
|
-
const { line: cEndLine } =
|
|
173
|
+
if (tsLib.isConstructorDeclaration(member) && member.body) {
|
|
174
|
+
const { line: cStartLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, member.getStart());
|
|
175
|
+
const { line: cEndLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, member.getEnd());
|
|
143
176
|
symbols.push({
|
|
144
177
|
name: "constructor",
|
|
145
178
|
kind: "method",
|
|
@@ -155,60 +188,60 @@ function visitNode(node, sourceFile, file, symbols, relations, importMap, curren
|
|
|
155
188
|
file,
|
|
156
189
|
line: cStartLine + 1,
|
|
157
190
|
});
|
|
158
|
-
collectCalls(member.body, sourceFile, file, "constructor", relations, importMap);
|
|
191
|
+
collectCalls(tsLib, member.body, sourceFile, file, "constructor", relations, importMap);
|
|
159
192
|
}
|
|
160
193
|
}
|
|
161
194
|
return; // Don't recurse into class children again
|
|
162
195
|
}
|
|
163
196
|
// Interface declarations
|
|
164
|
-
if (
|
|
197
|
+
if (tsLib.isInterfaceDeclaration(node)) {
|
|
165
198
|
const name = node.name.text;
|
|
166
|
-
const { line: startLine } =
|
|
167
|
-
const { line: endLine } =
|
|
199
|
+
const { line: startLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
200
|
+
const { line: endLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getEnd());
|
|
168
201
|
symbols.push({
|
|
169
202
|
name,
|
|
170
203
|
kind: "interface",
|
|
171
204
|
file,
|
|
172
205
|
startLine: startLine + 1,
|
|
173
206
|
endLine: endLine + 1,
|
|
174
|
-
exported: hasExportModifier(node),
|
|
207
|
+
exported: hasExportModifier(tsLib, node),
|
|
175
208
|
});
|
|
176
209
|
}
|
|
177
210
|
// Type alias declarations
|
|
178
|
-
if (
|
|
211
|
+
if (tsLib.isTypeAliasDeclaration(node)) {
|
|
179
212
|
const name = node.name.text;
|
|
180
|
-
const { line: startLine } =
|
|
181
|
-
const { line: endLine } =
|
|
213
|
+
const { line: startLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
214
|
+
const { line: endLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getEnd());
|
|
182
215
|
symbols.push({
|
|
183
216
|
name,
|
|
184
217
|
kind: "type_alias",
|
|
185
218
|
file,
|
|
186
219
|
startLine: startLine + 1,
|
|
187
220
|
endLine: endLine + 1,
|
|
188
|
-
exported: hasExportModifier(node),
|
|
221
|
+
exported: hasExportModifier(tsLib, node),
|
|
189
222
|
});
|
|
190
223
|
}
|
|
191
224
|
// Enum declarations
|
|
192
|
-
if (
|
|
225
|
+
if (tsLib.isEnumDeclaration(node)) {
|
|
193
226
|
const name = node.name.text;
|
|
194
|
-
const { line: startLine } =
|
|
195
|
-
const { line: endLine } =
|
|
227
|
+
const { line: startLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
228
|
+
const { line: endLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getEnd());
|
|
196
229
|
symbols.push({
|
|
197
230
|
name,
|
|
198
231
|
kind: "enum",
|
|
199
232
|
file,
|
|
200
233
|
startLine: startLine + 1,
|
|
201
234
|
endLine: endLine + 1,
|
|
202
|
-
exported: hasExportModifier(node),
|
|
235
|
+
exported: hasExportModifier(tsLib, node),
|
|
203
236
|
});
|
|
204
237
|
}
|
|
205
238
|
// Variable statements (top-level exports: export const X = ...)
|
|
206
|
-
if (
|
|
239
|
+
if (tsLib.isVariableStatement(node) && hasExportModifier(tsLib, node)) {
|
|
207
240
|
for (const decl of node.declarationList.declarations) {
|
|
208
|
-
if (
|
|
241
|
+
if (tsLib.isIdentifier(decl.name)) {
|
|
209
242
|
const name = decl.name.text;
|
|
210
|
-
const { line: startLine } =
|
|
211
|
-
const { line: endLine } =
|
|
243
|
+
const { line: startLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
244
|
+
const { line: endLine } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getEnd());
|
|
212
245
|
symbols.push({
|
|
213
246
|
name,
|
|
214
247
|
kind: "variable",
|
|
@@ -221,12 +254,12 @@ function visitNode(node, sourceFile, file, symbols, relations, importMap, curren
|
|
|
221
254
|
}
|
|
222
255
|
}
|
|
223
256
|
// Import declarations → import relations (file-level, from each imported name to the file)
|
|
224
|
-
if (
|
|
257
|
+
if (tsLib.isImportDeclaration(node) && node.moduleSpecifier && tsLib.isStringLiteral(node.moduleSpecifier)) {
|
|
225
258
|
const modulePath = node.moduleSpecifier.text;
|
|
226
259
|
const clause = node.importClause;
|
|
227
260
|
if (clause) {
|
|
228
|
-
const { line } =
|
|
229
|
-
if (clause.namedBindings &&
|
|
261
|
+
const { line } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
262
|
+
if (clause.namedBindings && tsLib.isNamedImports(clause.namedBindings)) {
|
|
230
263
|
for (const specifier of clause.namedBindings.elements) {
|
|
231
264
|
const importedName = specifier.propertyName?.text ?? specifier.name.text;
|
|
232
265
|
relations.push({
|
|
@@ -252,21 +285,21 @@ function visitNode(node, sourceFile, file, symbols, relations, importMap, curren
|
|
|
252
285
|
}
|
|
253
286
|
}
|
|
254
287
|
// Recurse into children (except class which is handled above)
|
|
255
|
-
if (!
|
|
256
|
-
|
|
257
|
-
visitNode(child, sourceFile, file, symbols, relations, importMap, currentClass);
|
|
288
|
+
if (!tsLib.isClassDeclaration(node)) {
|
|
289
|
+
tsLib.forEachChild(node, (child) => {
|
|
290
|
+
visitNode(tsLib, child, sourceFile, file, symbols, relations, importMap, currentClass);
|
|
258
291
|
});
|
|
259
292
|
}
|
|
260
293
|
}
|
|
261
294
|
// ── Call Collection ──────────────────────────────────
|
|
262
|
-
function collectCalls(body, sourceFile, file, callerName, relations, importMap) {
|
|
295
|
+
function collectCalls(tsLib, body, sourceFile, file, callerName, relations, importMap) {
|
|
263
296
|
const seen = new Set();
|
|
264
297
|
function walk(node) {
|
|
265
|
-
if (
|
|
266
|
-
const calleeName = extractCalleeName(node.expression, sourceFile);
|
|
298
|
+
if (tsLib.isCallExpression(node)) {
|
|
299
|
+
const calleeName = extractCalleeName(tsLib, node.expression, sourceFile);
|
|
267
300
|
if (calleeName && calleeName !== callerName && !seen.has(calleeName)) {
|
|
268
301
|
seen.add(calleeName);
|
|
269
|
-
const { line } =
|
|
302
|
+
const { line } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
270
303
|
// Resolve through import map if available
|
|
271
304
|
const importEntry = importMap.get(calleeName);
|
|
272
305
|
const resolvedName = importEntry
|
|
@@ -283,11 +316,11 @@ function collectCalls(body, sourceFile, file, callerName, relations, importMap)
|
|
|
283
316
|
});
|
|
284
317
|
}
|
|
285
318
|
}
|
|
286
|
-
if (
|
|
287
|
-
const calleeName = extractCalleeName(node.expression, sourceFile);
|
|
319
|
+
if (tsLib.isNewExpression(node)) {
|
|
320
|
+
const calleeName = extractCalleeName(tsLib, node.expression, sourceFile);
|
|
288
321
|
if (calleeName && !seen.has(calleeName)) {
|
|
289
322
|
seen.add(calleeName);
|
|
290
|
-
const { line } =
|
|
323
|
+
const { line } = tsLib.getLineAndCharacterOfPosition(sourceFile, node.getStart());
|
|
291
324
|
relations.push({
|
|
292
325
|
fromSymbol: callerName,
|
|
293
326
|
toSymbol: calleeName,
|
|
@@ -297,29 +330,29 @@ function collectCalls(body, sourceFile, file, callerName, relations, importMap)
|
|
|
297
330
|
});
|
|
298
331
|
}
|
|
299
332
|
}
|
|
300
|
-
|
|
333
|
+
tsLib.forEachChild(node, walk);
|
|
301
334
|
}
|
|
302
335
|
walk(body);
|
|
303
336
|
}
|
|
304
337
|
// ── Helpers ──────────────────────────────────────────
|
|
305
|
-
function hasExportModifier(node) {
|
|
306
|
-
if (!
|
|
338
|
+
function hasExportModifier(tsLib, node) {
|
|
339
|
+
if (!tsLib.canHaveModifiers(node))
|
|
307
340
|
return false;
|
|
308
|
-
const modifiers =
|
|
309
|
-
return modifiers?.some((m) => m.kind ===
|
|
341
|
+
const modifiers = tsLib.getModifiers(node);
|
|
342
|
+
return modifiers?.some((m) => m.kind === tsLib.SyntaxKind.ExportKeyword) ?? false;
|
|
310
343
|
}
|
|
311
|
-
function extractCalleeName(expr, _sourceFile) {
|
|
344
|
+
function extractCalleeName(tsLib, expr, _sourceFile) {
|
|
312
345
|
// Simple identifier: foo()
|
|
313
|
-
if (
|
|
346
|
+
if (tsLib.isIdentifier(expr)) {
|
|
314
347
|
return expr.text;
|
|
315
348
|
}
|
|
316
349
|
// Property access: obj.method() → extract method name
|
|
317
|
-
if (
|
|
350
|
+
if (tsLib.isPropertyAccessExpression(expr)) {
|
|
318
351
|
return expr.name.text;
|
|
319
352
|
}
|
|
320
353
|
return null;
|
|
321
354
|
}
|
|
322
|
-
function extractSignature(node, sourceFile) {
|
|
355
|
+
function extractSignature(tsLib, node, sourceFile) {
|
|
323
356
|
if (!node.parameters || node.parameters.length === 0)
|
|
324
357
|
return undefined;
|
|
325
358
|
const params = node.parameters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-analyzer.js","sourceRoot":"","sources":["../../../src/core/code/ts-analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ts-analyzer.js","sourceRoot":"","sources":["../../../src/core/code/ts-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-memory-generator.d.ts","sourceRoot":"","sources":["../../../src/core/config/ai-memory-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,YAAY,6BAA6B,CAAC;AACvD,eAAO,MAAM,UAAU,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-memory-generator.d.ts","sourceRoot":"","sources":["../../../src/core/config/ai-memory-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,YAAY,6BAA6B,CAAC;AACvD,eAAO,MAAM,UAAU,2BAA2B,CAAC;AAsOnD,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAgBhF"}
|
|
@@ -4,6 +4,18 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export const MARKER_START = "<!-- mcp-graph:start -->";
|
|
6
6
|
export const MARKER_END = "<!-- mcp-graph:end -->";
|
|
7
|
+
const MANDATORY_EXECUTION_RULE = `### ⚠️ Regra de Execução OBRIGATÓRIA
|
|
8
|
+
|
|
9
|
+
**O mcp-graph é a fonte de verdade ABSOLUTA. Nenhuma implementação acontece fora do grafo.**
|
|
10
|
+
|
|
11
|
+
1. **Node deve existir** — antes de escrever QUALQUER código, o node correspondente DEVE existir no grafo
|
|
12
|
+
2. **Fluxo obrigatório** — \`next → context → [implementar com TDD] → update_status → next\` — SEM EXCEÇÕES
|
|
13
|
+
3. **Epic = estrutura primeiro** — criar Epic + tasks filhas + edges ANTES de implementar
|
|
14
|
+
4. **Status tracking** — \`update_status → in_progress\` ANTES de codar, \`→ done\` APÓS completar
|
|
15
|
+
5. **Validação** — usar \`validate\` (action: \`ac\`) após cada task para checar critérios de aceitação
|
|
16
|
+
6. **Zero trabalho não-rastreado** — se não tem node no grafo, CRIAR PRIMEIRO
|
|
17
|
+
|
|
18
|
+
> **Sem node no grafo = sem código escrito.**`;
|
|
7
19
|
const TOOL_TABLE_FULL = `#### Projeto & Grafo
|
|
8
20
|
|
|
9
21
|
| Tool | Quando usar |
|
|
@@ -20,9 +32,7 @@ const TOOL_TABLE_FULL = `#### Projeto & Grafo
|
|
|
20
32
|
|
|
21
33
|
| Tool | Quando usar |
|
|
22
34
|
|------|-------------|
|
|
23
|
-
| \`
|
|
24
|
-
| \`update_node\` | Atualizar campos de um node (title, description, AC, tags) |
|
|
25
|
-
| \`delete_node\` | Remover node do grafo (cascata em filhos) |
|
|
35
|
+
| \`node\` | CRUD de nodes: action \`add\` (criar), \`update\` (atualizar), \`delete\` (remover) |
|
|
26
36
|
| \`move_node\` | Mover node para outro parent |
|
|
27
37
|
| \`clone_node\` | Clonar node com filhos (deep copy) |
|
|
28
38
|
| \`edge\` | Criar/remover relações entre nodes (depends_on, blocks, related_to) |
|
|
@@ -61,8 +71,24 @@ const TOOL_TABLE_FULL = `#### Projeto & Grafo
|
|
|
61
71
|
|
|
62
72
|
| Tool | Quando usar |
|
|
63
73
|
|------|-------------|
|
|
64
|
-
| \`
|
|
65
|
-
|
|
74
|
+
| \`validate\` | Validação: action \`task\` (browser A/B com Playwright) ou \`ac\` (critérios de aceitação) |
|
|
75
|
+
|
|
76
|
+
#### Skills
|
|
77
|
+
|
|
78
|
+
| Tool | Quando usar |
|
|
79
|
+
|------|-------------|
|
|
80
|
+
| \`manage_skill\` | Gerenciar skills: action \`list\` (listar/filtrar por fase), \`enable\`/\`disable\`, CRUD de custom skills |
|
|
81
|
+
|
|
82
|
+
#### Tools Deprecated (backward compat, removidos na v7.0)
|
|
83
|
+
|
|
84
|
+
| Tool antigo | Usar no lugar |
|
|
85
|
+
|-------------|---------------|
|
|
86
|
+
| \`add_node\` | \`node\` com action:\`add\` |
|
|
87
|
+
| \`update_node\` | \`node\` com action:\`update\` |
|
|
88
|
+
| \`delete_node\` | \`node\` com action:\`delete\` |
|
|
89
|
+
| \`validate_task\` | \`validate\` com action:\`task\` |
|
|
90
|
+
| \`validate_ac\` | \`validate\` com action:\`ac\` |
|
|
91
|
+
| \`list_skills\` | \`manage_skill\` com action:\`list\` |`;
|
|
66
92
|
const ANALYZE_MODES_SECTION = `### Modos do analyze por fase
|
|
67
93
|
|
|
68
94
|
| Fase | Modo | O que verifica |
|
|
@@ -107,6 +133,39 @@ Recupera\u00E7\u00E3o: \`rag_context\` monta contexto phase-aware com budget de
|
|
|
107
133
|
- 10% metadata de fase
|
|
108
134
|
|
|
109
135
|
Manual: \`reindex_knowledge\` para rebuild completo do \u00EDndice.`;
|
|
136
|
+
const SKILLS_SECTION = `### Skills Built-in (40 skills)
|
|
137
|
+
|
|
138
|
+
40 skills mapeadas \u00E0s fases do lifecycle. Use \`list_skills\` para descobrir por fase ou ver instru\u00E7\u00F5es completas.
|
|
139
|
+
|
|
140
|
+
#### Skills por fase
|
|
141
|
+
|
|
142
|
+
| Fase | Skills sugeridas |
|
|
143
|
+
|------|-----------------|
|
|
144
|
+
| ANALYZE | \`create-prd-chat-mode\`, \`business-analyst\`, \`product-manager\` |
|
|
145
|
+
| DESIGN | \`breakdown-epic-arch\`, \`context-architect\`, \`backend-architect\` |
|
|
146
|
+
| PLAN | \`breakdown-feature-prd\`, \`track-with-mcp-graph\` |
|
|
147
|
+
| IMPLEMENT | \`subagent-driven-development\`, \`xp-bootstrap\`, \`self-healing-awareness\` |
|
|
148
|
+
| VALIDATE | \`playwright-explore-website\`, \`playwright-generate-test\`, \`e2e-testing\` |
|
|
149
|
+
| REVIEW | \`code-reviewer\`, \`code-review-checklist\`, \`review-and-refactor\`, \`observability-engineer\` |
|
|
150
|
+
|
|
151
|
+
#### Categorias adicionais (multi-fase)
|
|
152
|
+
|
|
153
|
+
| Categoria | Skills |
|
|
154
|
+
|-----------|--------|
|
|
155
|
+
| software-design | SOLID, KISS, YAGNI, DRY, clean-architecture, composition-over-inheritance |
|
|
156
|
+
| security | \`owasp-web-security\`, \`auth-and-secrets\`, \`database-and-deps-security\` |
|
|
157
|
+
| ddd | \`domain-driven-design\` (DESIGN, PLAN) |
|
|
158
|
+
| testing | \`comprehensive-testing-reference\`, \`self-healing-awareness\` (IMPLEMENT, VALIDATE) |
|
|
159
|
+
| cost-reducer | \`cloud-infra-cost\`, \`code-level-savings\`, \`finops-services\` (DESIGN, REVIEW) |
|
|
160
|
+
| frontend-design | \`ui-ux-patterns\` (DESIGN, IMPLEMENT) |
|
|
161
|
+
|
|
162
|
+
#### Custom Skills
|
|
163
|
+
|
|
164
|
+
Crie skills espec\u00EDficas do projeto via \`manage_skill\` (create/enable/disable). Custom skills s\u00E3o armazenadas no grafo e aparecem junto com as built-in em \`list_skills\`.
|
|
165
|
+
|
|
166
|
+
#### Self-Healing Awareness
|
|
167
|
+
|
|
168
|
+
A skill \`self-healing-awareness\` monitora padr\u00F5es de erro recorrentes e sugere corre\u00E7\u00F5es automaticamente. Ativa nas fases IMPLEMENT e VALIDATE.`;
|
|
110
169
|
const LIFECYCLE_SUMMARY = `### Lifecycle (8 fases)
|
|
111
170
|
|
|
112
171
|
1. **ANALYZE** \u2014 Criar PRD, definir requisitos (\`import_prd\`, \`add_node\`)
|
|
@@ -129,25 +188,26 @@ const CLI_COMMANDS = `### Comandos essenciais
|
|
|
129
188
|
\`\`\`bash
|
|
130
189
|
npx mcp-graph stats # Estat\u00EDsticas do grafo
|
|
131
190
|
npx mcp-graph list # Listar nodes
|
|
191
|
+
npx mcp-graph update # Atualizar configs para \u00FAltima vers\u00E3o
|
|
132
192
|
npx mcp-graph doctor # Validar ambiente de execu\u00E7\u00E3o
|
|
133
193
|
npx mcp-graph doctor --json # Diagn\u00F3stico em JSON estruturado
|
|
134
194
|
npx mcp-graph serve --port 3000 # Dashboard visual
|
|
135
195
|
\`\`\``;
|
|
136
|
-
|
|
137
|
-
return
|
|
138
|
-
${MARKER_START}
|
|
139
|
-
## mcp-graph \u2014 ${projectName}
|
|
196
|
+
function buildSectionBody(projectName) {
|
|
197
|
+
return `## mcp-graph \u2014 ${projectName}
|
|
140
198
|
|
|
141
199
|
Este projeto usa **mcp-graph** para gest\u00E3o de execu\u00E7\u00E3o via grafo persistente (SQLite).
|
|
142
200
|
Dados armazenados em \`workflow-graph/graph.db\` (local, gitignored).
|
|
143
201
|
|
|
144
|
-
|
|
202
|
+
${MANDATORY_EXECUTION_RULE}
|
|
203
|
+
|
|
204
|
+
### Ferramentas MCP dispon\u00EDveis (28 tools + 6 deprecated)
|
|
145
205
|
|
|
146
206
|
${TOOL_TABLE_FULL}
|
|
147
207
|
|
|
148
208
|
${ANALYZE_MODES_SECTION}
|
|
149
209
|
|
|
150
|
-
### Fluxo de trabalho
|
|
210
|
+
### Fluxo de trabalho OBRIGAT\u00D3RIO
|
|
151
211
|
|
|
152
212
|
\`\`\`
|
|
153
213
|
next \u2192 context \u2192 [implementar com TDD] \u2192 update_status \u2192 next
|
|
@@ -157,39 +217,22 @@ ${LIFECYCLE_SUMMARY}
|
|
|
157
217
|
|
|
158
218
|
${KNOWLEDGE_PIPELINE_SECTION}
|
|
159
219
|
|
|
220
|
+
${SKILLS_SECTION}
|
|
221
|
+
|
|
160
222
|
${XP_PRINCIPLES}
|
|
161
223
|
|
|
162
|
-
${CLI_COMMANDS}
|
|
224
|
+
${CLI_COMMANDS}`;
|
|
225
|
+
}
|
|
226
|
+
export function generateClaudeMdSection(projectName) {
|
|
227
|
+
return `
|
|
228
|
+
${MARKER_START}
|
|
229
|
+
${buildSectionBody(projectName)}
|
|
163
230
|
${MARKER_END}
|
|
164
231
|
`;
|
|
165
232
|
}
|
|
166
233
|
export function generateCopilotInstructions(projectName) {
|
|
167
234
|
return `${MARKER_START}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
Este projeto usa **mcp-graph** para gest\u00E3o de execu\u00E7\u00E3o via grafo persistente.
|
|
171
|
-
Dados em \`workflow-graph/graph.db\`.
|
|
172
|
-
|
|
173
|
-
### Ferramentas MCP (principais)
|
|
174
|
-
|
|
175
|
-
| Tool | Uso |
|
|
176
|
-
|------|-----|
|
|
177
|
-
| \`next\` | Pr\u00F3xima task recomendada (prioridade + deps + knowledge coverage + TDD hints) |
|
|
178
|
-
| \`context\` | Contexto comprimido (token-efficient, ~73% redu\u00E7\u00E3o) |
|
|
179
|
-
| \`update_status\` | Mudar status (backlog\u2192ready\u2192in_progress\u2192done) |
|
|
180
|
-
| \`import_prd\` | Importar PRD \u2192 segmentar \u2192 classificar \u2192 extrair \u2192 criar grafo |
|
|
181
|
-
| \`plan_sprint\` | Planejamento de sprint (capacity, velocity) |
|
|
182
|
-
| \`analyze\` | 24 modos de an\u00E1lise por fase do lifecycle |
|
|
183
|
-
| \`set_phase\` | For\u00E7ar/resetar fase do lifecycle (gate checks) |
|
|
184
|
-
| \`validate_task\` | Validar com Playwright (A/B, CSS scoping) |
|
|
185
|
-
| \`validate_ac\` | Validar crit\u00E9rios de aceita\u00E7\u00E3o (checklist autom\u00E1tico) |
|
|
186
|
-
| \`rag_context\` | Contexto RAG phase-aware (budget 60/30/10) |
|
|
187
|
-
|
|
188
|
-
### Fluxo: \`next \u2192 context \u2192 [TDD] \u2192 update_status \u2192 next\`
|
|
189
|
-
|
|
190
|
-
${LIFECYCLE_SUMMARY}
|
|
191
|
-
|
|
192
|
-
${XP_PRINCIPLES}
|
|
235
|
+
${buildSectionBody(projectName)}
|
|
193
236
|
${MARKER_END}
|
|
194
237
|
`;
|
|
195
238
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-memory-generator.js","sourceRoot":"","sources":["../../../src/core/config/ai-memory-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,CAAC;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAEnD,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"ai-memory-generator.js","sourceRoot":"","sources":["../../../src/core/config/ai-memory-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,CAAC;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAEnD,MAAM,wBAAwB,GAAG;;;;;;;;;;;8CAWa,CAAC;AAE/C,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DAwEmC,CAAC;AAE5D,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;2FA4B6D,CAAC;AAE5F,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;oEAciC,CAAC;AAErE,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iKAgC0I,CAAC;AAElK,MAAM,iBAAiB,GAAG;;;;;;;;;4EASkD,CAAC;AAE7E,MAAM,aAAa,GAAG;;;;;;wFAMkE,CAAC;AAEzF,MAAM,YAAY,GAAG;;;;;;;;;OASd,CAAC;AAER,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,OAAO,uBAAuB,WAAW;;;;;EAKzC,wBAAwB;;;;EAIxB,eAAe;;EAEf,qBAAqB;;;;;;;;EAQrB,iBAAiB;;EAEjB,0BAA0B;;EAE1B,cAAc;;EAEd,aAAa;;EAEb,YAAY,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,OAAO;EACP,YAAY;EACZ,gBAAgB,CAAC,WAAW,CAAC;EAC7B,UAAU;CACX,CAAC;AACF,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,WAAmB;IAC7D,OAAO,GAAG,YAAY;EACtB,gBAAgB,CAAC,WAAW,CAAC;EAC7B,UAAU;CACX,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,eAAuB,EAAE,UAAkB;IACtE,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAEhD,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QAChF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,MAAM,GAAG,cAAc,CAAC;AACjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd-to-graph.d.ts","sourceRoot":"","sources":["../../../src/core/importer/prd-to-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAwB,MAAM,yBAAyB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,UAAU,gBAAgB;IACxB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AA4HD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,MAAM,GACjB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"prd-to-graph.d.ts","sourceRoot":"","sources":["../../../src/core/importer/prd-to-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAwB,MAAM,yBAAyB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,UAAU,gBAAgB;IACxB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AA4HD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,MAAM,GACjB,gBAAgB,CAsJlB"}
|