@mcp-graph-workflow/mcp-graph 5.19.3 → 5.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/context/compact-context.d.ts +2 -1
- package/dist/core/context/compact-context.d.ts.map +1 -1
- package/dist/core/context/compact-context.js +29 -16
- package/dist/core/context/compact-context.js.map +1 -1
- package/dist/core/context/context-assembler.d.ts +9 -0
- package/dist/core/context/context-assembler.d.ts.map +1 -1
- package/dist/core/context/context-assembler.js +25 -2
- package/dist/core/context/context-assembler.js.map +1 -1
- package/dist/core/context/rag-context.d.ts +9 -0
- package/dist/core/context/rag-context.d.ts.map +1 -1
- package/dist/core/context/rag-context.js +29 -3
- package/dist/core/context/rag-context.js.map +1 -1
- package/dist/core/context/task-context-cache.d.ts +33 -0
- package/dist/core/context/task-context-cache.d.ts.map +1 -0
- package/dist/core/context/task-context-cache.js +61 -0
- package/dist/core/context/task-context-cache.js.map +1 -0
- package/dist/core/rag/multi-strategy-retrieval.d.ts.map +1 -1
- package/dist/core/rag/multi-strategy-retrieval.js +3 -6
- package/dist/core/rag/multi-strategy-retrieval.js.map +1 -1
- package/dist/core/rag/phase-boost-cache.d.ts +20 -0
- package/dist/core/rag/phase-boost-cache.d.ts.map +1 -0
- package/dist/core/rag/phase-boost-cache.js +50 -0
- package/dist/core/rag/phase-boost-cache.js.map +1 -0
- package/dist/core/rag/query-cache.d.ts +6 -8
- package/dist/core/rag/query-cache.d.ts.map +1 -1
- package/dist/core/rag/query-cache.js +21 -38
- package/dist/core/rag/query-cache.js.map +1 -1
- package/dist/core/rag/rag-pipeline.d.ts.map +1 -1
- package/dist/core/rag/rag-pipeline.js +14 -3
- package/dist/core/rag/rag-pipeline.js.map +1 -1
- package/dist/core/rag/tfidf-embedding-cache.d.ts +20 -0
- package/dist/core/rag/tfidf-embedding-cache.d.ts.map +1 -0
- package/dist/core/rag/tfidf-embedding-cache.js +46 -0
- package/dist/core/rag/tfidf-embedding-cache.js.map +1 -0
- package/dist/core/store/graph-snapshot-cache.d.ts +40 -0
- package/dist/core/store/graph-snapshot-cache.d.ts.map +1 -0
- package/dist/core/store/graph-snapshot-cache.js +39 -0
- package/dist/core/store/graph-snapshot-cache.js.map +1 -0
- package/dist/core/store/knowledge-store.d.ts +11 -0
- package/dist/core/store/knowledge-store.d.ts.map +1 -1
- package/dist/core/store/knowledge-store.js +48 -1
- package/dist/core/store/knowledge-store.js.map +1 -1
- package/dist/core/store/migrations.d.ts.map +1 -1
- package/dist/core/store/migrations.js +9 -0
- package/dist/core/store/migrations.js.map +1 -1
- package/dist/core/translation/ir/ir-converter.d.ts +17 -0
- package/dist/core/translation/ir/ir-converter.d.ts.map +1 -0
- package/dist/core/translation/ir/ir-converter.js +103 -0
- package/dist/core/translation/ir/ir-converter.js.map +1 -0
- package/dist/core/translation/ir/ir-types.d.ts +50 -0
- package/dist/core/translation/ir/ir-types.d.ts.map +1 -0
- package/dist/core/translation/ir/ir-types.js +42 -0
- package/dist/core/translation/ir/ir-types.js.map +1 -0
- package/dist/core/translation/memory/translation-memory.d.ts +66 -0
- package/dist/core/translation/memory/translation-memory.d.ts.map +1 -0
- package/dist/core/translation/memory/translation-memory.js +85 -0
- package/dist/core/translation/memory/translation-memory.js.map +1 -0
- package/dist/core/translation/parsers/csharp-parser-adapter.d.ts +9 -0
- package/dist/core/translation/parsers/csharp-parser-adapter.d.ts.map +1 -0
- package/dist/core/translation/parsers/csharp-parser-adapter.js +61 -0
- package/dist/core/translation/parsers/csharp-parser-adapter.js.map +1 -0
- package/dist/core/translation/parsers/go-parser-adapter.d.ts +9 -0
- package/dist/core/translation/parsers/go-parser-adapter.d.ts.map +1 -0
- package/dist/core/translation/parsers/go-parser-adapter.js +40 -0
- package/dist/core/translation/parsers/go-parser-adapter.js.map +1 -0
- package/dist/core/translation/parsers/java-parser-adapter.d.ts +9 -0
- package/dist/core/translation/parsers/java-parser-adapter.d.ts.map +1 -0
- package/dist/core/translation/parsers/java-parser-adapter.js +48 -0
- package/dist/core/translation/parsers/java-parser-adapter.js.map +1 -0
- package/dist/core/translation/parsers/ruby-parser-adapter.d.ts +9 -0
- package/dist/core/translation/parsers/ruby-parser-adapter.d.ts.map +1 -0
- package/dist/core/translation/parsers/ruby-parser-adapter.js +45 -0
- package/dist/core/translation/parsers/ruby-parser-adapter.js.map +1 -0
- package/dist/core/translation/parsers/rust-parser-adapter.d.ts +9 -0
- package/dist/core/translation/parsers/rust-parser-adapter.d.ts.map +1 -0
- package/dist/core/translation/parsers/rust-parser-adapter.js +47 -0
- package/dist/core/translation/parsers/rust-parser-adapter.js.map +1 -0
- package/dist/core/translation/pipeline/translation-pipeline.d.ts +42 -0
- package/dist/core/translation/pipeline/translation-pipeline.d.ts.map +1 -0
- package/dist/core/translation/pipeline/translation-pipeline.js +127 -0
- package/dist/core/translation/pipeline/translation-pipeline.js.map +1 -0
- package/dist/core/translation/repair/repair-loop.d.ts +40 -0
- package/dist/core/translation/repair/repair-loop.d.ts.map +1 -0
- package/dist/core/translation/repair/repair-loop.js +68 -0
- package/dist/core/translation/repair/repair-loop.js.map +1 -0
- package/dist/core/translation/rules/python-to-ts-rules.d.ts +7 -0
- package/dist/core/translation/rules/python-to-ts-rules.d.ts.map +1 -0
- package/dist/core/translation/rules/python-to-ts-rules.js +160 -0
- package/dist/core/translation/rules/python-to-ts-rules.js.map +1 -0
- package/dist/core/translation/rules/rule-engine.d.ts +38 -0
- package/dist/core/translation/rules/rule-engine.d.ts.map +1 -0
- package/dist/core/translation/rules/rule-engine.js +95 -0
- package/dist/core/translation/rules/rule-engine.js.map +1 -0
- package/dist/core/translation/rules/rule-schema.d.ts +53 -0
- package/dist/core/translation/rules/rule-schema.d.ts.map +1 -0
- package/dist/core/translation/rules/rule-schema.js +62 -0
- package/dist/core/translation/rules/rule-schema.js.map +1 -0
- package/dist/core/translation/rules/ts-to-python-rules.d.ts +7 -0
- package/dist/core/translation/rules/ts-to-python-rules.d.ts.map +1 -0
- package/dist/core/translation/rules/ts-to-python-rules.js +188 -0
- package/dist/core/translation/rules/ts-to-python-rules.js.map +1 -0
- package/dist/core/translation/ucr/construct-seed-data.json +7132 -0
- package/dist/core/translation/validators/code-validator.d.ts +30 -0
- package/dist/core/translation/validators/code-validator.d.ts.map +1 -0
- package/dist/core/translation/validators/code-validator.js +159 -0
- package/dist/core/translation/validators/code-validator.js.map +1 -0
- package/package.json +7 -5
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Validators — syntax validation for translated code.
|
|
3
|
+
*
|
|
4
|
+
* TypeScript: uses ts.createSourceFile to parse and detect syntax errors.
|
|
5
|
+
* Python: uses heuristic checks (indentation, brackets, colons, keywords).
|
|
6
|
+
*
|
|
7
|
+
* No external dependencies — all local analysis.
|
|
8
|
+
*/
|
|
9
|
+
export interface ValidationError {
|
|
10
|
+
line: number;
|
|
11
|
+
column?: number;
|
|
12
|
+
message: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ValidationResult {
|
|
15
|
+
valid: boolean;
|
|
16
|
+
language: string;
|
|
17
|
+
errors: ValidationError[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Validate TypeScript code by parsing with the TS compiler.
|
|
21
|
+
* Detects syntax errors (not type errors — no type-checker).
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateTypescript(code: string): ValidationResult;
|
|
24
|
+
/**
|
|
25
|
+
* Validate Python code using heuristic checks.
|
|
26
|
+
* Checks: indentation consistency, bracket matching, colon placement,
|
|
27
|
+
* basic keyword structure.
|
|
28
|
+
*/
|
|
29
|
+
export declare function validatePython(code: string): ValidationResult;
|
|
30
|
+
//# sourceMappingURL=code-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-validator.d.ts","sourceRoot":"","sources":["../../../../src/core/translation/validators/code-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA6BjE;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAqB7D"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Validators — syntax validation for translated code.
|
|
3
|
+
*
|
|
4
|
+
* TypeScript: uses ts.createSourceFile to parse and detect syntax errors.
|
|
5
|
+
* Python: uses heuristic checks (indentation, brackets, colons, keywords).
|
|
6
|
+
*
|
|
7
|
+
* No external dependencies — all local analysis.
|
|
8
|
+
*/
|
|
9
|
+
import ts from "typescript";
|
|
10
|
+
// ── TypeScript Validator ───────────────────────────
|
|
11
|
+
/**
|
|
12
|
+
* Validate TypeScript code by parsing with the TS compiler.
|
|
13
|
+
* Detects syntax errors (not type errors — no type-checker).
|
|
14
|
+
*/
|
|
15
|
+
export function validateTypescript(code) {
|
|
16
|
+
const sourceFile = ts.createSourceFile("validation.ts", code, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
17
|
+
const errors = [];
|
|
18
|
+
// Access internal parseDiagnostics (not public API — may change in future TS versions).
|
|
19
|
+
// The public alternative ts.getPreEmitDiagnostics() requires a Program, which is heavier.
|
|
20
|
+
const diagnostics = sourceFile.parseDiagnostics ?? [];
|
|
21
|
+
for (const diag of diagnostics) {
|
|
22
|
+
const pos = sourceFile.getLineAndCharacterOfPosition(diag.start ?? 0);
|
|
23
|
+
errors.push({
|
|
24
|
+
line: pos.line + 1,
|
|
25
|
+
column: pos.character + 1,
|
|
26
|
+
message: ts.flattenDiagnosticMessageText(diag.messageText, "\n"),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
valid: errors.length === 0,
|
|
31
|
+
language: "typescript",
|
|
32
|
+
errors,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// ── Python Validator ───────────────────────────────
|
|
36
|
+
/**
|
|
37
|
+
* Validate Python code using heuristic checks.
|
|
38
|
+
* Checks: indentation consistency, bracket matching, colon placement,
|
|
39
|
+
* basic keyword structure.
|
|
40
|
+
*/
|
|
41
|
+
export function validatePython(code) {
|
|
42
|
+
const errors = [];
|
|
43
|
+
const lines = code.split("\n");
|
|
44
|
+
// Check bracket/paren matching
|
|
45
|
+
const bracketErrors = checkBracketMatching(lines);
|
|
46
|
+
errors.push(...bracketErrors);
|
|
47
|
+
// Check indentation after colon-terminated lines
|
|
48
|
+
const indentErrors = checkPythonIndentation(lines);
|
|
49
|
+
errors.push(...indentErrors);
|
|
50
|
+
// Check colon placement on def/class/if/for/while/try/except/with
|
|
51
|
+
const colonErrors = checkColonPlacement(lines);
|
|
52
|
+
errors.push(...colonErrors);
|
|
53
|
+
return {
|
|
54
|
+
valid: errors.length === 0,
|
|
55
|
+
language: "python",
|
|
56
|
+
errors,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// ── Python Heuristic Helpers ───────────────────────
|
|
60
|
+
function checkBracketMatching(lines) {
|
|
61
|
+
const errors = [];
|
|
62
|
+
const stack = [];
|
|
63
|
+
const openers = { "(": ")", "[": "]", "{": "}" };
|
|
64
|
+
const closers = { ")": "(", "]": "[", "}": "{" };
|
|
65
|
+
for (let i = 0; i < lines.length; i++) {
|
|
66
|
+
const line = lines[i];
|
|
67
|
+
// Skip strings (simplified — doesn't handle all edge cases)
|
|
68
|
+
let inString = false;
|
|
69
|
+
let stringChar = "";
|
|
70
|
+
for (let j = 0; j < line.length; j++) {
|
|
71
|
+
const ch = line[j];
|
|
72
|
+
if (!inString && (ch === "'" || ch === '"')) {
|
|
73
|
+
inString = true;
|
|
74
|
+
stringChar = ch;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (inString && ch === stringChar) {
|
|
78
|
+
inString = false;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (inString || ch === "#")
|
|
82
|
+
break; // comment — skip rest of line
|
|
83
|
+
if (openers[ch]) {
|
|
84
|
+
stack.push({ char: ch, line: i + 1 });
|
|
85
|
+
}
|
|
86
|
+
else if (closers[ch]) {
|
|
87
|
+
if (stack.length === 0 || stack[stack.length - 1].char !== closers[ch]) {
|
|
88
|
+
errors.push({ line: i + 1, message: `Unmatched '${ch}'` });
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
stack.pop();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
for (const item of stack) {
|
|
97
|
+
errors.push({ line: item.line, message: `Unmatched '${item.char}'` });
|
|
98
|
+
}
|
|
99
|
+
return errors;
|
|
100
|
+
}
|
|
101
|
+
function checkPythonIndentation(lines) {
|
|
102
|
+
const errors = [];
|
|
103
|
+
const blockKeywords = /^\s*(def |class |if |elif |else:|for |while |try:|except |finally:|with |async def |async for |async with )/;
|
|
104
|
+
for (let i = 0; i < lines.length - 1; i++) {
|
|
105
|
+
const line = lines[i];
|
|
106
|
+
const trimmed = line.trimStart();
|
|
107
|
+
// Skip empty lines and comments
|
|
108
|
+
if (trimmed === "" || trimmed.startsWith("#"))
|
|
109
|
+
continue;
|
|
110
|
+
// If line ends with colon (block opener), next non-empty line must be indented more
|
|
111
|
+
if (trimmed.endsWith(":") && blockKeywords.test(line)) {
|
|
112
|
+
const currentIndent = line.length - trimmed.length;
|
|
113
|
+
const nextLine = findNextNonEmptyLine(lines, i + 1);
|
|
114
|
+
if (nextLine !== null) {
|
|
115
|
+
const nextTrimmed = lines[nextLine].trimStart();
|
|
116
|
+
const nextIndent = lines[nextLine].length - nextTrimmed.length;
|
|
117
|
+
if (nextIndent <= currentIndent && nextTrimmed !== "" && !nextTrimmed.startsWith("#")) {
|
|
118
|
+
errors.push({
|
|
119
|
+
line: nextLine + 1,
|
|
120
|
+
message: `Expected indented block after '${trimmed.slice(0, 30)}'`,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return errors;
|
|
127
|
+
}
|
|
128
|
+
function checkColonPlacement(lines) {
|
|
129
|
+
const errors = [];
|
|
130
|
+
const needsColon = /^\s*(def |class |if |elif |else|for |while |try|except |finally|with |async def |async for |async with )/;
|
|
131
|
+
for (let i = 0; i < lines.length; i++) {
|
|
132
|
+
const line = lines[i];
|
|
133
|
+
const trimmed = line.trimStart();
|
|
134
|
+
if (trimmed === "" || trimmed.startsWith("#"))
|
|
135
|
+
continue;
|
|
136
|
+
if (needsColon.test(line)) {
|
|
137
|
+
// These keywords need a colon at end of line (or before comment)
|
|
138
|
+
const withoutComment = trimmed.split("#")[0].trimEnd();
|
|
139
|
+
if (!withoutComment.endsWith(":") && !withoutComment.endsWith(":\\")) {
|
|
140
|
+
// Allow multi-line (line ending with \ or open bracket)
|
|
141
|
+
if (!withoutComment.endsWith("\\") && !withoutComment.endsWith(",") && !withoutComment.endsWith("(")) {
|
|
142
|
+
errors.push({
|
|
143
|
+
line: i + 1,
|
|
144
|
+
message: `Expected ':' at end of '${trimmed.slice(0, 40)}'`,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return errors;
|
|
151
|
+
}
|
|
152
|
+
function findNextNonEmptyLine(lines, start) {
|
|
153
|
+
for (let i = start; i < lines.length; i++) {
|
|
154
|
+
if (lines[i].trim() !== "")
|
|
155
|
+
return i;
|
|
156
|
+
}
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=code-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-validator.js","sourceRoot":"","sources":["../../../../src/core/translation/validators/code-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-graph-workflow/mcp-graph",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.20.0",
|
|
4
4
|
"description": "MCP local-first PRD to task graph — transforms text into executable structure",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"dashboard:install": "cd src/web/dashboard && npm install",
|
|
17
17
|
"dashboard:dev": "cd src/web/dashboard && npm run dev",
|
|
18
18
|
"dashboard:build": "cd src/web/dashboard && npm run build",
|
|
19
|
-
"build": "tsc && npm run dashboard:build && npm run copy-dashboard",
|
|
19
|
+
"build": "tsc && npm run copy-assets && npm run dashboard:build && npm run copy-dashboard",
|
|
20
|
+
"copy-assets": "node -e \"const fs=require('fs');fs.cpSync('src/core/translation/ucr/construct-seed-data.json','dist/core/translation/ucr/construct-seed-data.json')\"",
|
|
20
21
|
"copy-dashboard": "node -e \"const fs=require('fs');if(fs.existsSync('dist/web/dashboard/dist')){fs.rmSync('dist/web/dashboard/dist',{recursive:true})};fs.cpSync('src/web/dashboard/dist','dist/web/dashboard/dist',{recursive:true})\"",
|
|
21
22
|
"start": "node dist/mcp/server.js",
|
|
22
23
|
"test": "vitest run",
|
|
@@ -77,13 +78,14 @@
|
|
|
77
78
|
"vitest": "^4.0.18"
|
|
78
79
|
},
|
|
79
80
|
"dependencies": {
|
|
80
|
-
"@mcp-graph-workflow/mcp-graph": "^5.
|
|
81
|
+
"@mcp-graph-workflow/mcp-graph": "^5.19.3",
|
|
81
82
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
82
83
|
"better-sqlite3": "^12.6.2",
|
|
83
84
|
"cheerio": "^1.2.0",
|
|
84
85
|
"commander": "^14.0.3",
|
|
85
86
|
"express": "^5.2.1",
|
|
86
87
|
"fast-xml-parser": "^5.5.8",
|
|
88
|
+
"lru-cache": "^11.2.7",
|
|
87
89
|
"mammoth": "^1.12.0",
|
|
88
90
|
"multer": "^2.1.1",
|
|
89
91
|
"pdf-parse": "^2.4.5",
|
|
@@ -93,9 +95,9 @@
|
|
|
93
95
|
"zod": "^4.3.6"
|
|
94
96
|
},
|
|
95
97
|
"optionalDependencies": {
|
|
98
|
+
"intelephense": ">=1.10.0",
|
|
96
99
|
"typescript": ">=5.0.0",
|
|
97
|
-
"typescript-language-server": ">=4.0.0"
|
|
98
|
-
"intelephense": ">=1.10.0"
|
|
100
|
+
"typescript-language-server": ">=4.0.0"
|
|
99
101
|
},
|
|
100
102
|
"peerDependencies": {
|
|
101
103
|
"typescript": ">=5.0.0"
|