@mcp-graph-workflow/mcp-graph 5.16.0 → 5.17.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 (173) hide show
  1. package/dist/api/router.d.ts.map +1 -1
  2. package/dist/api/router.js +2 -0
  3. package/dist/api/router.js.map +1 -1
  4. package/dist/api/routes/translation.d.ts +7 -0
  5. package/dist/api/routes/translation.d.ts.map +1 -0
  6. package/dist/api/routes/translation.js +170 -0
  7. package/dist/api/routes/translation.js.map +1 -0
  8. package/dist/core/config/ai-memory-generator.js +3 -3
  9. package/dist/core/context/compact-context.d.ts.map +1 -1
  10. package/dist/core/context/compact-context.js +7 -9
  11. package/dist/core/context/compact-context.js.map +1 -1
  12. package/dist/core/events/event-types.d.ts +32 -1
  13. package/dist/core/events/event-types.d.ts.map +1 -1
  14. package/dist/core/lsp/lsp-bridge.d.ts +12 -2
  15. package/dist/core/lsp/lsp-bridge.d.ts.map +1 -1
  16. package/dist/core/lsp/lsp-bridge.js +139 -3
  17. package/dist/core/lsp/lsp-bridge.js.map +1 -1
  18. package/dist/core/lsp/lsp-edit-applier.d.ts +23 -0
  19. package/dist/core/lsp/lsp-edit-applier.d.ts.map +1 -0
  20. package/dist/core/lsp/lsp-edit-applier.js +204 -0
  21. package/dist/core/lsp/lsp-edit-applier.js.map +1 -0
  22. package/dist/core/lsp/lsp-server-manager.d.ts.map +1 -1
  23. package/dist/core/lsp/lsp-server-manager.js +18 -0
  24. package/dist/core/lsp/lsp-server-manager.js.map +1 -1
  25. package/dist/core/lsp/lsp-types.d.ts +35 -0
  26. package/dist/core/lsp/lsp-types.d.ts.map +1 -1
  27. package/dist/core/lsp/lsp-types.js +20 -0
  28. package/dist/core/lsp/lsp-types.js.map +1 -1
  29. package/dist/core/planner/lifecycle-phase.d.ts +18 -0
  30. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  31. package/dist/core/planner/lifecycle-phase.js +112 -0
  32. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  33. package/dist/core/rag/query-cache.js +2 -2
  34. package/dist/core/rag/query-cache.js.map +1 -1
  35. package/dist/core/rag/response-cache.d.ts +38 -0
  36. package/dist/core/rag/response-cache.d.ts.map +1 -0
  37. package/dist/core/rag/response-cache.js +84 -0
  38. package/dist/core/rag/response-cache.js.map +1 -0
  39. package/dist/core/siebel/wsdl-correlation.d.ts.map +1 -1
  40. package/dist/core/siebel/wsdl-correlation.js +2 -13
  41. package/dist/core/siebel/wsdl-correlation.js.map +1 -1
  42. package/dist/core/store/migrations.d.ts.map +1 -1
  43. package/dist/core/store/migrations.js +97 -0
  44. package/dist/core/store/migrations.js.map +1 -1
  45. package/dist/core/store/tool-call-log.d.ts +26 -0
  46. package/dist/core/store/tool-call-log.d.ts.map +1 -0
  47. package/dist/core/store/tool-call-log.js +66 -0
  48. package/dist/core/store/tool-call-log.js.map +1 -0
  49. package/dist/core/translation/confidence/ambiguity-detector.d.ts +18 -0
  50. package/dist/core/translation/confidence/ambiguity-detector.d.ts.map +1 -0
  51. package/dist/core/translation/confidence/ambiguity-detector.js +80 -0
  52. package/dist/core/translation/confidence/ambiguity-detector.js.map +1 -0
  53. package/dist/core/translation/confidence/equivalence-scorer.d.ts +22 -0
  54. package/dist/core/translation/confidence/equivalence-scorer.d.ts.map +1 -0
  55. package/dist/core/translation/confidence/equivalence-scorer.js +72 -0
  56. package/dist/core/translation/confidence/equivalence-scorer.js.map +1 -0
  57. package/dist/core/translation/generators/generator-adapter.d.ts +22 -0
  58. package/dist/core/translation/generators/generator-adapter.d.ts.map +1 -0
  59. package/dist/core/translation/generators/generator-adapter.js +6 -0
  60. package/dist/core/translation/generators/generator-adapter.js.map +1 -0
  61. package/dist/core/translation/generators/python-generator.d.ts +15 -0
  62. package/dist/core/translation/generators/python-generator.d.ts.map +1 -0
  63. package/dist/core/translation/generators/python-generator.js +74 -0
  64. package/dist/core/translation/generators/python-generator.js.map +1 -0
  65. package/dist/core/translation/generators/ts-generator.d.ts +14 -0
  66. package/dist/core/translation/generators/ts-generator.d.ts.map +1 -0
  67. package/dist/core/translation/generators/ts-generator.js +56 -0
  68. package/dist/core/translation/generators/ts-generator.js.map +1 -0
  69. package/dist/core/translation/language-detect.d.ts +12 -0
  70. package/dist/core/translation/language-detect.d.ts.map +1 -0
  71. package/dist/core/translation/language-detect.js +140 -0
  72. package/dist/core/translation/language-detect.js.map +1 -0
  73. package/dist/core/translation/parsers/parser-adapter.d.ts +23 -0
  74. package/dist/core/translation/parsers/parser-adapter.d.ts.map +1 -0
  75. package/dist/core/translation/parsers/parser-adapter.js +6 -0
  76. package/dist/core/translation/parsers/parser-adapter.js.map +1 -0
  77. package/dist/core/translation/parsers/python-parser-adapter.d.ts +10 -0
  78. package/dist/core/translation/parsers/python-parser-adapter.d.ts.map +1 -0
  79. package/dist/core/translation/parsers/python-parser-adapter.js +85 -0
  80. package/dist/core/translation/parsers/python-parser-adapter.js.map +1 -0
  81. package/dist/core/translation/parsers/ts-parser-adapter.d.ts +10 -0
  82. package/dist/core/translation/parsers/ts-parser-adapter.d.ts.map +1 -0
  83. package/dist/core/translation/parsers/ts-parser-adapter.js +145 -0
  84. package/dist/core/translation/parsers/ts-parser-adapter.js.map +1 -0
  85. package/dist/core/translation/prompt-builder.d.ts +34 -0
  86. package/dist/core/translation/prompt-builder.d.ts.map +1 -0
  87. package/dist/core/translation/prompt-builder.js +137 -0
  88. package/dist/core/translation/prompt-builder.js.map +1 -0
  89. package/dist/core/translation/translation-orchestrator.d.ts +67 -0
  90. package/dist/core/translation/translation-orchestrator.d.ts.map +1 -0
  91. package/dist/core/translation/translation-orchestrator.js +204 -0
  92. package/dist/core/translation/translation-orchestrator.js.map +1 -0
  93. package/dist/core/translation/translation-store.d.ts +35 -0
  94. package/dist/core/translation/translation-store.d.ts.map +1 -0
  95. package/dist/core/translation/translation-store.js +96 -0
  96. package/dist/core/translation/translation-store.js.map +1 -0
  97. package/dist/core/translation/translation-types.d.ts +156 -0
  98. package/dist/core/translation/translation-types.d.ts.map +1 -0
  99. package/dist/core/translation/translation-types.js +86 -0
  100. package/dist/core/translation/translation-types.js.map +1 -0
  101. package/dist/core/translation/ucr/construct-registry.d.ts +36 -0
  102. package/dist/core/translation/ucr/construct-registry.d.ts.map +1 -0
  103. package/dist/core/translation/ucr/construct-registry.js +159 -0
  104. package/dist/core/translation/ucr/construct-registry.js.map +1 -0
  105. package/dist/core/translation/ucr/construct-seed.d.ts +12 -0
  106. package/dist/core/translation/ucr/construct-seed.d.ts.map +1 -0
  107. package/dist/core/translation/ucr/construct-seed.js +35 -0
  108. package/dist/core/translation/ucr/construct-seed.js.map +1 -0
  109. package/dist/core/translation/ucr/construct-types.d.ts +174 -0
  110. package/dist/core/translation/ucr/construct-types.d.ts.map +1 -0
  111. package/dist/core/translation/ucr/construct-types.js +88 -0
  112. package/dist/core/translation/ucr/construct-types.js.map +1 -0
  113. package/dist/core/utils/ac-helpers.d.ts +6 -0
  114. package/dist/core/utils/ac-helpers.d.ts.map +1 -1
  115. package/dist/core/utils/ac-helpers.js +15 -0
  116. package/dist/core/utils/ac-helpers.js.map +1 -1
  117. package/dist/core/utils/constants.d.ts +19 -0
  118. package/dist/core/utils/constants.d.ts.map +1 -1
  119. package/dist/core/utils/constants.js +23 -0
  120. package/dist/core/utils/constants.js.map +1 -1
  121. package/dist/core/utils/errors.d.ts +12 -0
  122. package/dist/core/utils/errors.d.ts.map +1 -1
  123. package/dist/core/utils/errors.js +25 -0
  124. package/dist/core/utils/errors.js.map +1 -1
  125. package/dist/core/utils/similarity.d.ts +9 -0
  126. package/dist/core/utils/similarity.d.ts.map +1 -0
  127. package/dist/core/utils/similarity.js +20 -0
  128. package/dist/core/utils/similarity.js.map +1 -0
  129. package/dist/mcp/code-intelligence-wrapper.d.ts +79 -0
  130. package/dist/mcp/code-intelligence-wrapper.d.ts.map +1 -0
  131. package/dist/mcp/code-intelligence-wrapper.js +286 -0
  132. package/dist/mcp/code-intelligence-wrapper.js.map +1 -0
  133. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  134. package/dist/mcp/lifecycle-wrapper.js +56 -1
  135. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  136. package/dist/mcp/tools/code-intelligence.d.ts +2 -0
  137. package/dist/mcp/tools/code-intelligence.d.ts.map +1 -1
  138. package/dist/mcp/tools/code-intelligence.js +157 -3
  139. package/dist/mcp/tools/code-intelligence.js.map +1 -1
  140. package/dist/mcp/tools/index.d.ts.map +1 -1
  141. package/dist/mcp/tools/index.js +3 -0
  142. package/dist/mcp/tools/index.js.map +1 -1
  143. package/dist/mcp/tools/rag-context.d.ts +1 -1
  144. package/dist/mcp/tools/rag-context.d.ts.map +1 -1
  145. package/dist/mcp/tools/rag-context.js +21 -2
  146. package/dist/mcp/tools/rag-context.js.map +1 -1
  147. package/dist/mcp/tools/set-phase.d.ts.map +1 -1
  148. package/dist/mcp/tools/set-phase.js +24 -4
  149. package/dist/mcp/tools/set-phase.js.map +1 -1
  150. package/dist/schemas/designer-schema.d.ts +4 -4
  151. package/dist/schemas/siebel.schema.d.ts +13 -13
  152. package/dist/web/dashboard/dist/assets/{benchmark-tab-LbjYcnjd.js → benchmark-tab-CjkvhBH9.js} +1 -1
  153. package/dist/web/dashboard/dist/assets/{context-tab-u_l0XUXT.js → context-tab-CDCm-rDm.js} +1 -1
  154. package/dist/web/dashboard/dist/assets/{gitnexus-tab-K304jKR3.js → gitnexus-tab-C8ya-m0E.js} +1 -1
  155. package/dist/web/dashboard/dist/assets/{graph-section-3_2LPo7V.js → graph-section-CUyy5O7e.js} +1 -1
  156. package/dist/web/dashboard/dist/assets/{graph-tab-KG6GQq1a.js → graph-tab-0C2cf7FY.js} +1 -1
  157. package/dist/web/dashboard/dist/assets/{graph-utils-cpyaBhnE.js → graph-utils-DThe_TpW.js} +1 -1
  158. package/dist/web/dashboard/dist/assets/{index-DY9euqve.js → index-CG74l_GF.js} +1 -1
  159. package/dist/web/dashboard/dist/assets/{index-C1UckjqB.css → index-DA2Y0E4s.css} +1 -1
  160. package/dist/web/dashboard/dist/assets/{index-Clwhz2ad.js → index-D_2dsvO7.js} +1 -1
  161. package/dist/web/dashboard/dist/assets/{index-Co7yktBf.js → index-gkGjyOqz.js} +47 -42
  162. package/dist/web/dashboard/dist/assets/{insights-tab-yrnRR8CL.js → insights-tab-C7zJ-naw.js} +1 -1
  163. package/dist/web/dashboard/dist/assets/{journey-tab-Cfh-qkYk.js → journey-tab-CL_lunyr.js} +1 -1
  164. package/dist/web/dashboard/dist/assets/languages-tab-BDD3QwUT.js +1 -0
  165. package/dist/web/dashboard/dist/assets/{logs-tab-B-8O6WzQ.js → logs-tab-B7w7XA3o.js} +1 -1
  166. package/dist/web/dashboard/dist/assets/{lsp-tab-CBM8pixC.js → lsp-tab-BTbRAwqG.js} +1 -1
  167. package/dist/web/dashboard/dist/assets/{memories-tab-5t0pfAsS.js → memories-tab-CbRr4xFM.js} +1 -1
  168. package/dist/web/dashboard/dist/assets/{prd-backlog-tab-Bgt2qin9.js → prd-backlog-tab-w32D0W8F.js} +1 -1
  169. package/dist/web/dashboard/dist/assets/{siebel-tab-CjYyszVw.js → siebel-tab-BKuaD7Pf.js} +3 -3
  170. package/dist/web/dashboard/dist/assets/{skills-tab-D-6Tem1J.js → skills-tab-VQC98jyT.js} +1 -1
  171. package/dist/web/dashboard/dist/assets/{style-Ci_RUKMJ.js → style-DkI8Vt9Y.js} +1 -1
  172. package/dist/web/dashboard/dist/index.html +2 -2
  173. package/package.json +2 -2
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Language Detection from Code Snippets — heuristic keyword/pattern detection.
3
+ * Returns languageId, confidence (0-1), and indicators explaining the detection.
4
+ */
5
+ export { detectProjectLanguages } from "../lsp/language-detector.js";
6
+ const PROFILES = [
7
+ {
8
+ id: "typescript",
9
+ unique: [
10
+ /\binterface\s+\w+\s*\{/, /\btype\s+\w+\s*=/, /\benum\s+\w+\s*\{/,
11
+ /:\s*(string|number|boolean|void)\b/, /\bas\s+(string|number|boolean)\b/,
12
+ ],
13
+ strong: [
14
+ /\bconst\s+\w+\s*[:=]/, /\bimport\s*\{[^}]+\}\s*from\s*['"]/, /\bexport\s+(function|class|const|interface|type)\b/,
15
+ /=>\s*\{/, /\bPromise</, /\bconsole\.\w+\(/,
16
+ ],
17
+ weak: [
18
+ /\bfunction\s+\w+/, /\bclass\s+\w+/, /\breturn\s+/, /\bnew\s+\w+/,
19
+ ],
20
+ },
21
+ {
22
+ id: "python",
23
+ unique: [
24
+ /^(\s*)def\s+\w+\s*\(/m, /^(\s*)class\s+\w+.*:\s*$/m,
25
+ /^from\s+\S+\s+import\s+/m, /^\s*elif\s+/m,
26
+ /\bprint\s*\(/, /\bTrue\b/, /\bFalse\b/, /\bNone\b/,
27
+ /^\s*@\w+/m, /\basync\s+def\b/,
28
+ ],
29
+ strong: [
30
+ /^import\s+\w+\s*$/m, /\bself\.\w+/, /\bpass\b/,
31
+ /:\s*$\n\s+/m, /\bf["']/, /\braise\s+\w+/,
32
+ ],
33
+ weak: [
34
+ /\bif\s+.*:\s*$/m, /\bfor\s+\w+\s+in\s+/m, /\bwhile\s+/m,
35
+ ],
36
+ },
37
+ {
38
+ id: "go",
39
+ unique: [
40
+ /^package\s+\w+/m, /\bfunc\s+\w*\s*\(/, /\b:=\s*/,
41
+ /\bgo\s+func\b/, /\bdefer\s+/, /\bchan\s+/,
42
+ /\bfmt\.\w+/, /\bgoroutine/,
43
+ ],
44
+ strong: [
45
+ /\bvar\s+\w+\s+\w+/, /\bstruct\s*\{/, /\binterface\s*\{/,
46
+ /\berr\s*!=\s*nil/, /\brange\s+/,
47
+ ],
48
+ weak: [
49
+ /\breturn\s+/, /\bif\s+.*\{/,
50
+ ],
51
+ },
52
+ {
53
+ id: "java",
54
+ unique: [
55
+ /\bpublic\s+(static\s+)?void\s+main\b/, /\bSystem\.out\.print/,
56
+ /\bpublic\s+class\s+\w+/, /\bprivate\s+(static\s+)?\w+\s+\w+/,
57
+ /\bnew\s+ArrayList</, /\bextends\s+\w+\s*\{/,
58
+ ],
59
+ strong: [
60
+ /\b@Override\b/, /\b@Autowired\b/, /\bimport\s+java\./,
61
+ /\bList<\w+>/, /\bString\[\]\s+\w+/, /\bthrows\s+\w+/,
62
+ ],
63
+ weak: [
64
+ /\bpublic\s+\w+/, /\bprivate\s+\w+/, /\bprotected\s+\w+/,
65
+ ],
66
+ },
67
+ {
68
+ id: "csharp",
69
+ unique: [
70
+ /\busing\s+System\b/, /\bnamespace\s+\w+/, /\bConsole\.Write/,
71
+ /\.Where\(/, /\.Select\(/, /\.ToList\(\)/,
72
+ /\bvar\s+\w+\s*=\s*.*\.Where/, /\basync\s+Task</,
73
+ ],
74
+ strong: [
75
+ /\busing\s+\w+\.\w+;/, /\bstring\.\w+/, /\bint\s+\w+/,
76
+ /\bpublic\s+(override|virtual)\b/,
77
+ ],
78
+ weak: [
79
+ /\bpublic\s+\w+/, /\bclass\s+\w+/,
80
+ ],
81
+ },
82
+ {
83
+ id: "rust",
84
+ unique: [
85
+ /\bfn\s+\w+\s*\(/, /\blet\s+mut\s+/, /\bimpl\s+\w+/,
86
+ /\bprintln!\(/, /\b->\s*(Self|&)/, /\bstruct\s+\w+\s*\{/,
87
+ /\bmatch\s+\w+\s*\{/, /\bOption</, /\bResult</,
88
+ ],
89
+ strong: [
90
+ /\buse\s+\w+::/, /\bpub\s+(fn|struct|enum)\b/, /\b&self\b/,
91
+ /\bunwrap\(\)/, /\b\.clone\(\)/,
92
+ ],
93
+ weak: [
94
+ /\blet\s+\w+/, /\breturn\s+/,
95
+ ],
96
+ },
97
+ ];
98
+ const UNIQUE_WEIGHT = 3;
99
+ const STRONG_WEIGHT = 1.5;
100
+ const WEAK_WEIGHT = 0.5;
101
+ export function detectLanguageFromCode(code) {
102
+ if (!code.trim()) {
103
+ return { languageId: "unknown", confidence: 0, indicators: [] };
104
+ }
105
+ let bestLang = "unknown";
106
+ let bestScore = 0;
107
+ let bestIndicators = [];
108
+ for (const profile of PROFILES) {
109
+ let score = 0;
110
+ const indicators = [];
111
+ for (const pattern of profile.unique) {
112
+ if (pattern.test(code)) {
113
+ score += UNIQUE_WEIGHT;
114
+ indicators.push(`unique: ${pattern.source.substring(0, 40)}`);
115
+ }
116
+ }
117
+ for (const pattern of profile.strong) {
118
+ if (pattern.test(code)) {
119
+ score += STRONG_WEIGHT;
120
+ indicators.push(`strong: ${pattern.source.substring(0, 40)}`);
121
+ }
122
+ }
123
+ for (const pattern of profile.weak) {
124
+ if (pattern.test(code)) {
125
+ score += WEAK_WEIGHT;
126
+ indicators.push(`weak: ${pattern.source.substring(0, 40)}`);
127
+ }
128
+ }
129
+ if (score > bestScore) {
130
+ bestScore = score;
131
+ bestLang = profile.id;
132
+ bestIndicators = indicators;
133
+ }
134
+ }
135
+ // Normalize confidence: map score to 0-1 range
136
+ // A score of ~6+ is high confidence, ~3 is medium, <2 is low
137
+ const confidence = Math.min(bestScore / 8, 1);
138
+ return { languageId: bestLang, confidence, indicators: bestIndicators };
139
+ }
140
+ //# sourceMappingURL=language-detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-detect.js","sourceRoot":"","sources":["../../../src/core/translation/language-detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Parser Adapter interface — language-agnostic contract for parsing code into
3
+ * canonical constructs from the UCR (Universal Construct Registry).
4
+ */
5
+ /** A construct detected in source code, mapped to a UCR canonical ID. */
6
+ export interface ParsedConstruct {
7
+ /** UCR canonical construct ID (e.g., "uc_fn_def", "uc_class_def") */
8
+ constructId: string;
9
+ /** Name of the construct if applicable (function name, class name, etc.) */
10
+ name?: string;
11
+ /** 1-based start line in source */
12
+ startLine: number;
13
+ /** 1-based end line in source */
14
+ endLine: number;
15
+ }
16
+ /** Adapter interface for language-specific parsers. */
17
+ export interface ParserAdapter {
18
+ /** Language identifier (matches UCR language_id, e.g., "typescript", "python") */
19
+ readonly languageId: string;
20
+ /** Parse a code snippet and return detected canonical constructs. */
21
+ parseSnippet(code: string): ParsedConstruct[];
22
+ }
23
+ //# sourceMappingURL=parser-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-adapter.d.ts","sourceRoot":"","sources":["../../../../src/core/translation/parsers/parser-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,qEAAqE;IACrE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CAC/C"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Parser Adapter interface — language-agnostic contract for parsing code into
3
+ * canonical constructs from the UCR (Universal Construct Registry).
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=parser-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-adapter.js","sourceRoot":"","sources":["../../../../src/core/translation/parsers/parser-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Python Parser Adapter — heuristic regex + line-based parser for Python code.
3
+ * Maps detected constructs to UCR canonical IDs without requiring a Python AST library.
4
+ */
5
+ import type { ParserAdapter, ParsedConstruct } from "./parser-adapter.js";
6
+ export declare class PythonParserAdapter implements ParserAdapter {
7
+ readonly languageId = "python";
8
+ parseSnippet(code: string): ParsedConstruct[];
9
+ }
10
+ //# sourceMappingURL=python-parser-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-parser-adapter.d.ts","sourceRoot":"","sources":["../../../../src/core/translation/parsers/python-parser-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA+C1E,qBAAa,mBAAoB,YAAW,aAAa;IACvD,QAAQ,CAAC,UAAU,YAAY;IAE/B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;CA8C9C"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Python Parser Adapter — heuristic regex + line-based parser for Python code.
3
+ * Maps detected constructs to UCR canonical IDs without requiring a Python AST library.
4
+ */
5
+ const LINE_RULES = [
6
+ // async def must come before def
7
+ { pattern: /^(\s*)async\s+def\s+(\w+)/, constructId: "uc_async_fn", nameGroup: 2 },
8
+ { pattern: /^(\s*)def\s+(\w+)/, constructId: "uc_fn_def", nameGroup: 2 },
9
+ // class with inheritance
10
+ {
11
+ pattern: /^(\s*)class\s+(\w+)\s*\([^)]+\)\s*:/,
12
+ constructId: "uc_class_def",
13
+ nameGroup: 2,
14
+ also: [{ constructId: "uc_extends" }],
15
+ },
16
+ // class without inheritance
17
+ { pattern: /^(\s*)class\s+(\w+)/, constructId: "uc_class_def", nameGroup: 2 },
18
+ // from x import y (named import)
19
+ { pattern: /^from\s+\S+\s+import\s+/, constructId: "uc_import_named" },
20
+ // import x (default/module import)
21
+ { pattern: /^import\s+\w+/, constructId: "uc_import_default" },
22
+ // if/elif/else
23
+ { pattern: /^(\s*)(if|elif)\s+.+:/, constructId: "uc_if_else" },
24
+ // for loop (Python for is always for-each style)
25
+ { pattern: /^(\s*)for\s+\w+\s+in\s+/, constructId: "uc_for_each" },
26
+ // while loop
27
+ { pattern: /^(\s*)while\s+/, constructId: "uc_while" },
28
+ // try/except
29
+ { pattern: /^(\s*)try\s*:/, constructId: "uc_try_catch" },
30
+ // raise (throw)
31
+ { pattern: /^(\s*)raise\s+/, constructId: "uc_throw" },
32
+ // return
33
+ { pattern: /^(\s*)return\b/, constructId: "uc_return" },
34
+ // await expression
35
+ { pattern: /\bawait\s+/, constructId: "uc_await" },
36
+ // continue
37
+ { pattern: /^(\s*)continue\s*$/, constructId: "uc_continue" },
38
+ // break
39
+ { pattern: /^(\s*)break\s*$/, constructId: "uc_break" },
40
+ ];
41
+ export class PythonParserAdapter {
42
+ languageId = "python";
43
+ parseSnippet(code) {
44
+ if (!code.trim())
45
+ return [];
46
+ const lines = code.split("\n");
47
+ const constructs = [];
48
+ const seen = new Set();
49
+ for (let i = 0; i < lines.length; i++) {
50
+ const line = lines[i];
51
+ const lineNum = i + 1;
52
+ for (const rule of LINE_RULES) {
53
+ const match = rule.pattern.exec(line);
54
+ if (!match)
55
+ continue;
56
+ // Deduplicate if/else — only emit once per if block
57
+ if (rule.constructId === "uc_if_else") {
58
+ const key = `${rule.constructId}:${lineNum}`;
59
+ if (seen.has(key))
60
+ continue;
61
+ seen.add(key);
62
+ }
63
+ const name = rule.nameGroup ? match[rule.nameGroup] : undefined;
64
+ constructs.push({
65
+ constructId: rule.constructId,
66
+ name,
67
+ startLine: lineNum,
68
+ endLine: lineNum,
69
+ });
70
+ if (rule.also) {
71
+ for (const extra of rule.also) {
72
+ constructs.push({
73
+ constructId: extra.constructId,
74
+ startLine: lineNum,
75
+ endLine: lineNum,
76
+ });
77
+ }
78
+ }
79
+ break; // Only first matching rule per line
80
+ }
81
+ }
82
+ return constructs;
83
+ }
84
+ }
85
+ //# sourceMappingURL=python-parser-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-parser-adapter.js","sourceRoot":"","sources":["../../../../src/core/translation/parsers/python-parser-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * TypeScript Parser Adapter — parses TS/JS code into UCR canonical constructs
3
+ * using the TypeScript compiler API (ts.createSourceFile + AST walk).
4
+ */
5
+ import type { ParserAdapter, ParsedConstruct } from "./parser-adapter.js";
6
+ export declare class TsParserAdapter implements ParserAdapter {
7
+ readonly languageId = "typescript";
8
+ parseSnippet(code: string): ParsedConstruct[];
9
+ }
10
+ //# sourceMappingURL=ts-parser-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-parser-adapter.d.ts","sourceRoot":"","sources":["../../../../src/core/translation/parsers/ts-parser-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE1E,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,UAAU,gBAAgB;IAEnC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;CAe9C"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * TypeScript Parser Adapter — parses TS/JS code into UCR canonical constructs
3
+ * using the TypeScript compiler API (ts.createSourceFile + AST walk).
4
+ */
5
+ import ts from "typescript";
6
+ export class TsParserAdapter {
7
+ languageId = "typescript";
8
+ parseSnippet(code) {
9
+ if (!code.trim())
10
+ return [];
11
+ const sourceFile = ts.createSourceFile("snippet.ts", code, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
12
+ const constructs = [];
13
+ const visit = (node) => {
14
+ const mapped = mapNode(node, sourceFile);
15
+ if (mapped)
16
+ constructs.push(...mapped);
17
+ ts.forEachChild(node, visit);
18
+ };
19
+ ts.forEachChild(sourceFile, visit);
20
+ return constructs;
21
+ }
22
+ }
23
+ function getLines(node, sf) {
24
+ const start = sf.getLineAndCharacterOfPosition(node.getStart(sf));
25
+ const end = sf.getLineAndCharacterOfPosition(node.getEnd());
26
+ return { startLine: start.line + 1, endLine: end.line + 1 };
27
+ }
28
+ function mapNode(node, sf) {
29
+ const lines = getLines(node, sf);
30
+ // Function declaration
31
+ if (ts.isFunctionDeclaration(node) && node.name) {
32
+ const results = [{ constructId: "uc_fn_def", name: node.name.text, ...lines }];
33
+ if (hasAsyncModifier(node)) {
34
+ results.push({ constructId: "uc_async_fn", name: node.name.text, ...lines });
35
+ }
36
+ return results;
37
+ }
38
+ // Arrow function (const x = (...) => ...)
39
+ if (ts.isVariableDeclaration(node) && node.initializer && ts.isArrowFunction(node.initializer)) {
40
+ const name = ts.isIdentifier(node.name) ? node.name.text : undefined;
41
+ return [{ constructId: "uc_arrow_fn", name, ...lines }];
42
+ }
43
+ // Class declaration
44
+ if (ts.isClassDeclaration(node) && node.name) {
45
+ const results = [{ constructId: "uc_class_def", name: node.name.text, ...lines }];
46
+ if (node.heritageClauses) {
47
+ for (const clause of node.heritageClauses) {
48
+ if (clause.token === ts.SyntaxKind.ExtendsKeyword) {
49
+ results.push({ constructId: "uc_extends", ...lines });
50
+ }
51
+ if (clause.token === ts.SyntaxKind.ImplementsKeyword) {
52
+ results.push({ constructId: "uc_implements", ...lines });
53
+ }
54
+ }
55
+ }
56
+ return results;
57
+ }
58
+ // Interface declaration
59
+ if (ts.isInterfaceDeclaration(node)) {
60
+ return [{ constructId: "uc_interface", name: node.name.text, ...lines }];
61
+ }
62
+ // Type alias
63
+ if (ts.isTypeAliasDeclaration(node)) {
64
+ return [{ constructId: "uc_type_alias", name: node.name.text, ...lines }];
65
+ }
66
+ // Enum declaration
67
+ if (ts.isEnumDeclaration(node)) {
68
+ return [{ constructId: "uc_type_enum", name: node.name.text, ...lines }];
69
+ }
70
+ // Import declaration
71
+ if (ts.isImportDeclaration(node) && node.importClause) {
72
+ const results = [];
73
+ const clause = node.importClause;
74
+ if (clause.name) {
75
+ results.push({ constructId: "uc_import_default", ...lines });
76
+ }
77
+ if (clause.namedBindings) {
78
+ if (ts.isNamedImports(clause.namedBindings)) {
79
+ results.push({ constructId: "uc_import_named", ...lines });
80
+ }
81
+ if (ts.isNamespaceImport(clause.namedBindings)) {
82
+ results.push({ constructId: "uc_import_namespace", ...lines });
83
+ }
84
+ }
85
+ return results.length > 0 ? results : null;
86
+ }
87
+ // If statement
88
+ if (ts.isIfStatement(node)) {
89
+ return [{ constructId: "uc_if_else", ...lines }];
90
+ }
91
+ // For statement
92
+ if (ts.isForStatement(node)) {
93
+ return [{ constructId: "uc_for_loop", ...lines }];
94
+ }
95
+ // ForOf / ForIn
96
+ if (ts.isForOfStatement(node) || ts.isForInStatement(node)) {
97
+ return [{ constructId: "uc_for_each", ...lines }];
98
+ }
99
+ // While
100
+ if (ts.isWhileStatement(node)) {
101
+ return [{ constructId: "uc_while", ...lines }];
102
+ }
103
+ // Do/While
104
+ if (ts.isDoStatement(node)) {
105
+ return [{ constructId: "uc_do_while", ...lines }];
106
+ }
107
+ // Try/Catch
108
+ if (ts.isTryStatement(node)) {
109
+ const results = [{ constructId: "uc_try_catch", ...lines }];
110
+ if (node.finallyBlock) {
111
+ results.push({ constructId: "uc_try_finally", ...lines });
112
+ }
113
+ return results;
114
+ }
115
+ // Switch
116
+ if (ts.isSwitchStatement(node)) {
117
+ return [{ constructId: "uc_switch", ...lines }];
118
+ }
119
+ // Throw
120
+ if (ts.isThrowStatement(node)) {
121
+ return [{ constructId: "uc_throw", ...lines }];
122
+ }
123
+ // Return
124
+ if (ts.isReturnStatement(node)) {
125
+ return [{ constructId: "uc_return", ...lines }];
126
+ }
127
+ // Await expression
128
+ if (ts.isAwaitExpression(node)) {
129
+ return [{ constructId: "uc_await", ...lines }];
130
+ }
131
+ // Export (named)
132
+ if (ts.isExportDeclaration(node)) {
133
+ return [{ constructId: "uc_export_named", ...lines }];
134
+ }
135
+ // Export default
136
+ if (ts.isExportAssignment(node)) {
137
+ return [{ constructId: "uc_export_default", ...lines }];
138
+ }
139
+ return null;
140
+ }
141
+ function hasAsyncModifier(node) {
142
+ const modifiers = ts.getModifiers(node);
143
+ return modifiers?.some((m) => m.kind === ts.SyntaxKind.AsyncKeyword) ?? false;
144
+ }
145
+ //# sourceMappingURL=ts-parser-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-parser-adapter.js","sourceRoot":"","sources":["../../../../src/core/translation/parsers/ts-parser-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Prompt Builder — generates structured LLM prompts for code translation.
3
+ *
4
+ * 4 prompt types:
5
+ * - mapping: analyze constructs and determine best mapping strategy
6
+ * - translation: full code translation with construct context
7
+ * - syntactic repair: fix syntax errors in generated code
8
+ * - semantic repair: fix semantic issues preserving meaning
9
+ */
10
+ import type { TranslationScore, AmbiguityReport } from "./ucr/construct-types.js";
11
+ export interface PromptContext {
12
+ sourceLanguage: string;
13
+ targetLanguage: string;
14
+ sourceCode: string;
15
+ scores: TranslationScore[];
16
+ ambiguities: AmbiguityReport[];
17
+ }
18
+ /**
19
+ * Build a mapping prompt — asks the LLM to analyze constructs and choose mappings.
20
+ */
21
+ export declare function buildMappingPrompt(ctx: PromptContext): string;
22
+ /**
23
+ * Build a full translation prompt — asks the LLM to translate the code.
24
+ */
25
+ export declare function buildTranslationPrompt(ctx: PromptContext): string;
26
+ /**
27
+ * Build a syntactic repair prompt — fix syntax errors in generated code.
28
+ */
29
+ export declare function buildSyntacticRepairPrompt(ctx: PromptContext, brokenCode: string, errors: string[]): string;
30
+ /**
31
+ * Build a semantic repair prompt — fix semantic issues preserving meaning.
32
+ */
33
+ export declare function buildSemanticRepairPrompt(ctx: PromptContext, targetCode: string, issues: string[]): string;
34
+ //# sourceMappingURL=prompt-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/core/translation/prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAElF,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAmC7D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAkDjE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAuBR"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Prompt Builder — generates structured LLM prompts for code translation.
3
+ *
4
+ * 4 prompt types:
5
+ * - mapping: analyze constructs and determine best mapping strategy
6
+ * - translation: full code translation with construct context
7
+ * - syntactic repair: fix syntax errors in generated code
8
+ * - semantic repair: fix semantic issues preserving meaning
9
+ */
10
+ /**
11
+ * Build a mapping prompt — asks the LLM to analyze constructs and choose mappings.
12
+ */
13
+ export function buildMappingPrompt(ctx) {
14
+ const sections = [
15
+ `## Construct Mapping Analysis`,
16
+ ``,
17
+ `**Source language**: ${ctx.sourceLanguage}`,
18
+ `**Target language**: ${ctx.targetLanguage}`,
19
+ ``,
20
+ `### Detected Constructs`,
21
+ ``,
22
+ formatScoresTable(ctx.scores),
23
+ ];
24
+ if (ctx.ambiguities.length > 0) {
25
+ sections.push(``, `### Ambiguities Requiring Decision`, ``);
26
+ for (const amb of ctx.ambiguities) {
27
+ sections.push(`- **${amb.canonicalName}** (${amb.ambiguityType}): ${amb.candidates.length} candidates`);
28
+ for (const c of amb.candidates) {
29
+ sections.push(` - ${c.tradeoff} (confidence: ${c.confidence})`);
30
+ }
31
+ if (amb.recommendation) {
32
+ sections.push(` → Recommendation: ${amb.recommendation}`);
33
+ }
34
+ }
35
+ }
36
+ sections.push(``, `### Instructions`, `For each construct above, confirm or override the selected mapping.`, `For ambiguous constructs, justify your choice.`);
37
+ return sections.join("\n");
38
+ }
39
+ /**
40
+ * Build a full translation prompt — asks the LLM to translate the code.
41
+ */
42
+ export function buildTranslationPrompt(ctx) {
43
+ const deterministicCount = ctx.scores.filter((s) => !s.needsAiAssist).length;
44
+ const aiAssistCount = ctx.scores.filter((s) => s.needsAiAssist).length;
45
+ const sections = [
46
+ `## Code Translation: ${ctx.sourceLanguage} → ${ctx.targetLanguage}`,
47
+ ``,
48
+ `### Source Code`,
49
+ "```" + ctx.sourceLanguage,
50
+ ctx.sourceCode,
51
+ "```",
52
+ ``,
53
+ `### Construct Analysis`,
54
+ `- **Deterministic mappings**: ${deterministicCount} (high confidence, direct translation)`,
55
+ `- **AI-assisted mappings**: ${aiAssistCount} (require judgment)`,
56
+ ``,
57
+ formatScoresTable(ctx.scores),
58
+ ];
59
+ if (aiAssistCount > 0) {
60
+ sections.push(``, `### Constructs Requiring AI Judgment`);
61
+ for (const score of ctx.scores.filter((s) => s.needsAiAssist)) {
62
+ sections.push(`- **${score.constructId}** (confidence: ${score.finalConfidence.toFixed(2)})`);
63
+ if (score.alternatives.length > 0) {
64
+ for (const alt of score.alternatives) {
65
+ sections.push(` - Alternative: ${alt.reason} (${alt.confidence})`);
66
+ }
67
+ }
68
+ }
69
+ }
70
+ if (ctx.ambiguities.length > 0) {
71
+ sections.push(``, `### Ambiguity Warnings`);
72
+ for (const amb of ctx.ambiguities) {
73
+ sections.push(`- **${amb.canonicalName}**: ${amb.ambiguityType} — ${amb.recommendation ?? "review needed"}`);
74
+ }
75
+ }
76
+ sections.push(``, `### Instructions`, `Translate the source code to ${ctx.targetLanguage}.`, `Use the construct mappings above. For AI-assisted constructs, choose the best mapping.`, `Preserve semantics, follow ${ctx.targetLanguage} conventions (naming, idioms).`, `Return ONLY the translated code.`);
77
+ return sections.join("\n");
78
+ }
79
+ /**
80
+ * Build a syntactic repair prompt — fix syntax errors in generated code.
81
+ */
82
+ export function buildSyntacticRepairPrompt(ctx, brokenCode, errors) {
83
+ return [
84
+ `## Syntactic Repair: ${ctx.targetLanguage}`,
85
+ ``,
86
+ `The following ${ctx.targetLanguage} code has syntax errors. Fix them while preserving the intended logic.`,
87
+ ``,
88
+ `### Code with Errors`,
89
+ "```" + ctx.targetLanguage,
90
+ brokenCode,
91
+ "```",
92
+ ``,
93
+ `### Errors`,
94
+ ...errors.map((e) => `- ${e}`),
95
+ ``,
96
+ `### Instructions`,
97
+ `Fix ONLY the syntax errors. Do not change logic or structure.`,
98
+ `Return the corrected code.`,
99
+ ].join("\n");
100
+ }
101
+ /**
102
+ * Build a semantic repair prompt — fix semantic issues preserving meaning.
103
+ */
104
+ export function buildSemanticRepairPrompt(ctx, targetCode, issues) {
105
+ return [
106
+ `## Semantic Repair: ${ctx.sourceLanguage} → ${ctx.targetLanguage}`,
107
+ ``,
108
+ `The translated code has semantic issues — it may not preserve the original behavior.`,
109
+ ``,
110
+ `### Original Source (${ctx.sourceLanguage})`,
111
+ "```" + ctx.sourceLanguage,
112
+ ctx.sourceCode,
113
+ "```",
114
+ ``,
115
+ `### Current Translation (${ctx.targetLanguage})`,
116
+ "```" + ctx.targetLanguage,
117
+ targetCode,
118
+ "```",
119
+ ``,
120
+ `### Semantic Issues`,
121
+ ...issues.map((i) => `- ${i}`),
122
+ ``,
123
+ `### Instructions`,
124
+ `Fix the semantic issues to ensure the ${ctx.targetLanguage} code behaves identically to the ${ctx.sourceLanguage} source.`,
125
+ `Return the corrected code.`,
126
+ ].join("\n");
127
+ }
128
+ function formatScoresTable(scores) {
129
+ if (scores.length === 0)
130
+ return "_No constructs detected._";
131
+ const lines = ["| Construct | Confidence | AI Assist |", "|-----------|------------|-----------|"];
132
+ for (const s of scores) {
133
+ lines.push(`| ${s.constructId} | ${s.finalConfidence.toFixed(2)} | ${s.needsAiAssist ? "Yes" : "No"} |`);
134
+ }
135
+ return lines.join("\n");
136
+ }
137
+ //# sourceMappingURL=prompt-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/core/translation/prompt-builder.ts"],"names":[],"mappings":"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"}