@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.
Files changed (107) hide show
  1. package/dist/core/context/compact-context.d.ts +2 -1
  2. package/dist/core/context/compact-context.d.ts.map +1 -1
  3. package/dist/core/context/compact-context.js +29 -16
  4. package/dist/core/context/compact-context.js.map +1 -1
  5. package/dist/core/context/context-assembler.d.ts +9 -0
  6. package/dist/core/context/context-assembler.d.ts.map +1 -1
  7. package/dist/core/context/context-assembler.js +25 -2
  8. package/dist/core/context/context-assembler.js.map +1 -1
  9. package/dist/core/context/rag-context.d.ts +9 -0
  10. package/dist/core/context/rag-context.d.ts.map +1 -1
  11. package/dist/core/context/rag-context.js +29 -3
  12. package/dist/core/context/rag-context.js.map +1 -1
  13. package/dist/core/context/task-context-cache.d.ts +33 -0
  14. package/dist/core/context/task-context-cache.d.ts.map +1 -0
  15. package/dist/core/context/task-context-cache.js +61 -0
  16. package/dist/core/context/task-context-cache.js.map +1 -0
  17. package/dist/core/rag/multi-strategy-retrieval.d.ts.map +1 -1
  18. package/dist/core/rag/multi-strategy-retrieval.js +3 -6
  19. package/dist/core/rag/multi-strategy-retrieval.js.map +1 -1
  20. package/dist/core/rag/phase-boost-cache.d.ts +20 -0
  21. package/dist/core/rag/phase-boost-cache.d.ts.map +1 -0
  22. package/dist/core/rag/phase-boost-cache.js +50 -0
  23. package/dist/core/rag/phase-boost-cache.js.map +1 -0
  24. package/dist/core/rag/query-cache.d.ts +6 -8
  25. package/dist/core/rag/query-cache.d.ts.map +1 -1
  26. package/dist/core/rag/query-cache.js +21 -38
  27. package/dist/core/rag/query-cache.js.map +1 -1
  28. package/dist/core/rag/rag-pipeline.d.ts.map +1 -1
  29. package/dist/core/rag/rag-pipeline.js +14 -3
  30. package/dist/core/rag/rag-pipeline.js.map +1 -1
  31. package/dist/core/rag/tfidf-embedding-cache.d.ts +20 -0
  32. package/dist/core/rag/tfidf-embedding-cache.d.ts.map +1 -0
  33. package/dist/core/rag/tfidf-embedding-cache.js +46 -0
  34. package/dist/core/rag/tfidf-embedding-cache.js.map +1 -0
  35. package/dist/core/store/graph-snapshot-cache.d.ts +40 -0
  36. package/dist/core/store/graph-snapshot-cache.d.ts.map +1 -0
  37. package/dist/core/store/graph-snapshot-cache.js +39 -0
  38. package/dist/core/store/graph-snapshot-cache.js.map +1 -0
  39. package/dist/core/store/knowledge-store.d.ts +11 -0
  40. package/dist/core/store/knowledge-store.d.ts.map +1 -1
  41. package/dist/core/store/knowledge-store.js +48 -1
  42. package/dist/core/store/knowledge-store.js.map +1 -1
  43. package/dist/core/store/migrations.d.ts.map +1 -1
  44. package/dist/core/store/migrations.js +9 -0
  45. package/dist/core/store/migrations.js.map +1 -1
  46. package/dist/core/translation/ir/ir-converter.d.ts +17 -0
  47. package/dist/core/translation/ir/ir-converter.d.ts.map +1 -0
  48. package/dist/core/translation/ir/ir-converter.js +103 -0
  49. package/dist/core/translation/ir/ir-converter.js.map +1 -0
  50. package/dist/core/translation/ir/ir-types.d.ts +50 -0
  51. package/dist/core/translation/ir/ir-types.d.ts.map +1 -0
  52. package/dist/core/translation/ir/ir-types.js +42 -0
  53. package/dist/core/translation/ir/ir-types.js.map +1 -0
  54. package/dist/core/translation/memory/translation-memory.d.ts +66 -0
  55. package/dist/core/translation/memory/translation-memory.d.ts.map +1 -0
  56. package/dist/core/translation/memory/translation-memory.js +85 -0
  57. package/dist/core/translation/memory/translation-memory.js.map +1 -0
  58. package/dist/core/translation/parsers/csharp-parser-adapter.d.ts +9 -0
  59. package/dist/core/translation/parsers/csharp-parser-adapter.d.ts.map +1 -0
  60. package/dist/core/translation/parsers/csharp-parser-adapter.js +61 -0
  61. package/dist/core/translation/parsers/csharp-parser-adapter.js.map +1 -0
  62. package/dist/core/translation/parsers/go-parser-adapter.d.ts +9 -0
  63. package/dist/core/translation/parsers/go-parser-adapter.d.ts.map +1 -0
  64. package/dist/core/translation/parsers/go-parser-adapter.js +40 -0
  65. package/dist/core/translation/parsers/go-parser-adapter.js.map +1 -0
  66. package/dist/core/translation/parsers/java-parser-adapter.d.ts +9 -0
  67. package/dist/core/translation/parsers/java-parser-adapter.d.ts.map +1 -0
  68. package/dist/core/translation/parsers/java-parser-adapter.js +48 -0
  69. package/dist/core/translation/parsers/java-parser-adapter.js.map +1 -0
  70. package/dist/core/translation/parsers/ruby-parser-adapter.d.ts +9 -0
  71. package/dist/core/translation/parsers/ruby-parser-adapter.d.ts.map +1 -0
  72. package/dist/core/translation/parsers/ruby-parser-adapter.js +45 -0
  73. package/dist/core/translation/parsers/ruby-parser-adapter.js.map +1 -0
  74. package/dist/core/translation/parsers/rust-parser-adapter.d.ts +9 -0
  75. package/dist/core/translation/parsers/rust-parser-adapter.d.ts.map +1 -0
  76. package/dist/core/translation/parsers/rust-parser-adapter.js +47 -0
  77. package/dist/core/translation/parsers/rust-parser-adapter.js.map +1 -0
  78. package/dist/core/translation/pipeline/translation-pipeline.d.ts +42 -0
  79. package/dist/core/translation/pipeline/translation-pipeline.d.ts.map +1 -0
  80. package/dist/core/translation/pipeline/translation-pipeline.js +127 -0
  81. package/dist/core/translation/pipeline/translation-pipeline.js.map +1 -0
  82. package/dist/core/translation/repair/repair-loop.d.ts +40 -0
  83. package/dist/core/translation/repair/repair-loop.d.ts.map +1 -0
  84. package/dist/core/translation/repair/repair-loop.js +68 -0
  85. package/dist/core/translation/repair/repair-loop.js.map +1 -0
  86. package/dist/core/translation/rules/python-to-ts-rules.d.ts +7 -0
  87. package/dist/core/translation/rules/python-to-ts-rules.d.ts.map +1 -0
  88. package/dist/core/translation/rules/python-to-ts-rules.js +160 -0
  89. package/dist/core/translation/rules/python-to-ts-rules.js.map +1 -0
  90. package/dist/core/translation/rules/rule-engine.d.ts +38 -0
  91. package/dist/core/translation/rules/rule-engine.d.ts.map +1 -0
  92. package/dist/core/translation/rules/rule-engine.js +95 -0
  93. package/dist/core/translation/rules/rule-engine.js.map +1 -0
  94. package/dist/core/translation/rules/rule-schema.d.ts +53 -0
  95. package/dist/core/translation/rules/rule-schema.d.ts.map +1 -0
  96. package/dist/core/translation/rules/rule-schema.js +62 -0
  97. package/dist/core/translation/rules/rule-schema.js.map +1 -0
  98. package/dist/core/translation/rules/ts-to-python-rules.d.ts +7 -0
  99. package/dist/core/translation/rules/ts-to-python-rules.d.ts.map +1 -0
  100. package/dist/core/translation/rules/ts-to-python-rules.js +188 -0
  101. package/dist/core/translation/rules/ts-to-python-rules.js.map +1 -0
  102. package/dist/core/translation/ucr/construct-seed-data.json +7132 -0
  103. package/dist/core/translation/validators/code-validator.d.ts +30 -0
  104. package/dist/core/translation/validators/code-validator.d.ts.map +1 -0
  105. package/dist/core/translation/validators/code-validator.js +159 -0
  106. package/dist/core/translation/validators/code-validator.js.map +1 -0
  107. 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.19.3",
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.17.0",
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"