@mcp-graph-workflow/mcp-graph 5.15.1 → 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 (178) 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/code-graph.d.ts.map +1 -1
  5. package/dist/api/routes/code-graph.js +2 -1
  6. package/dist/api/routes/code-graph.js.map +1 -1
  7. package/dist/api/routes/translation.d.ts +7 -0
  8. package/dist/api/routes/translation.d.ts.map +1 -0
  9. package/dist/api/routes/translation.js +170 -0
  10. package/dist/api/routes/translation.js.map +1 -0
  11. package/dist/core/config/ai-memory-generator.js +3 -3
  12. package/dist/core/context/compact-context.d.ts.map +1 -1
  13. package/dist/core/context/compact-context.js +7 -9
  14. package/dist/core/context/compact-context.js.map +1 -1
  15. package/dist/core/events/event-types.d.ts +32 -1
  16. package/dist/core/events/event-types.d.ts.map +1 -1
  17. package/dist/core/lsp/lsp-bridge.d.ts +12 -2
  18. package/dist/core/lsp/lsp-bridge.d.ts.map +1 -1
  19. package/dist/core/lsp/lsp-bridge.js +139 -3
  20. package/dist/core/lsp/lsp-bridge.js.map +1 -1
  21. package/dist/core/lsp/lsp-edit-applier.d.ts +23 -0
  22. package/dist/core/lsp/lsp-edit-applier.d.ts.map +1 -0
  23. package/dist/core/lsp/lsp-edit-applier.js +204 -0
  24. package/dist/core/lsp/lsp-edit-applier.js.map +1 -0
  25. package/dist/core/lsp/lsp-server-manager.d.ts.map +1 -1
  26. package/dist/core/lsp/lsp-server-manager.js +18 -0
  27. package/dist/core/lsp/lsp-server-manager.js.map +1 -1
  28. package/dist/core/lsp/lsp-types.d.ts +35 -0
  29. package/dist/core/lsp/lsp-types.d.ts.map +1 -1
  30. package/dist/core/lsp/lsp-types.js +20 -0
  31. package/dist/core/lsp/lsp-types.js.map +1 -1
  32. package/dist/core/planner/lifecycle-phase.d.ts +18 -0
  33. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  34. package/dist/core/planner/lifecycle-phase.js +112 -0
  35. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  36. package/dist/core/rag/query-cache.js +2 -2
  37. package/dist/core/rag/query-cache.js.map +1 -1
  38. package/dist/core/rag/response-cache.d.ts +38 -0
  39. package/dist/core/rag/response-cache.d.ts.map +1 -0
  40. package/dist/core/rag/response-cache.js +84 -0
  41. package/dist/core/rag/response-cache.js.map +1 -0
  42. package/dist/core/siebel/wsdl-correlation.d.ts.map +1 -1
  43. package/dist/core/siebel/wsdl-correlation.js +2 -13
  44. package/dist/core/siebel/wsdl-correlation.js.map +1 -1
  45. package/dist/core/store/migrations.d.ts.map +1 -1
  46. package/dist/core/store/migrations.js +97 -0
  47. package/dist/core/store/migrations.js.map +1 -1
  48. package/dist/core/store/tool-call-log.d.ts +26 -0
  49. package/dist/core/store/tool-call-log.d.ts.map +1 -0
  50. package/dist/core/store/tool-call-log.js +66 -0
  51. package/dist/core/store/tool-call-log.js.map +1 -0
  52. package/dist/core/translation/confidence/ambiguity-detector.d.ts +18 -0
  53. package/dist/core/translation/confidence/ambiguity-detector.d.ts.map +1 -0
  54. package/dist/core/translation/confidence/ambiguity-detector.js +80 -0
  55. package/dist/core/translation/confidence/ambiguity-detector.js.map +1 -0
  56. package/dist/core/translation/confidence/equivalence-scorer.d.ts +22 -0
  57. package/dist/core/translation/confidence/equivalence-scorer.d.ts.map +1 -0
  58. package/dist/core/translation/confidence/equivalence-scorer.js +72 -0
  59. package/dist/core/translation/confidence/equivalence-scorer.js.map +1 -0
  60. package/dist/core/translation/generators/generator-adapter.d.ts +22 -0
  61. package/dist/core/translation/generators/generator-adapter.d.ts.map +1 -0
  62. package/dist/core/translation/generators/generator-adapter.js +6 -0
  63. package/dist/core/translation/generators/generator-adapter.js.map +1 -0
  64. package/dist/core/translation/generators/python-generator.d.ts +15 -0
  65. package/dist/core/translation/generators/python-generator.d.ts.map +1 -0
  66. package/dist/core/translation/generators/python-generator.js +74 -0
  67. package/dist/core/translation/generators/python-generator.js.map +1 -0
  68. package/dist/core/translation/generators/ts-generator.d.ts +14 -0
  69. package/dist/core/translation/generators/ts-generator.d.ts.map +1 -0
  70. package/dist/core/translation/generators/ts-generator.js +56 -0
  71. package/dist/core/translation/generators/ts-generator.js.map +1 -0
  72. package/dist/core/translation/language-detect.d.ts +12 -0
  73. package/dist/core/translation/language-detect.d.ts.map +1 -0
  74. package/dist/core/translation/language-detect.js +140 -0
  75. package/dist/core/translation/language-detect.js.map +1 -0
  76. package/dist/core/translation/parsers/parser-adapter.d.ts +23 -0
  77. package/dist/core/translation/parsers/parser-adapter.d.ts.map +1 -0
  78. package/dist/core/translation/parsers/parser-adapter.js +6 -0
  79. package/dist/core/translation/parsers/parser-adapter.js.map +1 -0
  80. package/dist/core/translation/parsers/python-parser-adapter.d.ts +10 -0
  81. package/dist/core/translation/parsers/python-parser-adapter.d.ts.map +1 -0
  82. package/dist/core/translation/parsers/python-parser-adapter.js +85 -0
  83. package/dist/core/translation/parsers/python-parser-adapter.js.map +1 -0
  84. package/dist/core/translation/parsers/ts-parser-adapter.d.ts +10 -0
  85. package/dist/core/translation/parsers/ts-parser-adapter.d.ts.map +1 -0
  86. package/dist/core/translation/parsers/ts-parser-adapter.js +145 -0
  87. package/dist/core/translation/parsers/ts-parser-adapter.js.map +1 -0
  88. package/dist/core/translation/prompt-builder.d.ts +34 -0
  89. package/dist/core/translation/prompt-builder.d.ts.map +1 -0
  90. package/dist/core/translation/prompt-builder.js +137 -0
  91. package/dist/core/translation/prompt-builder.js.map +1 -0
  92. package/dist/core/translation/translation-orchestrator.d.ts +67 -0
  93. package/dist/core/translation/translation-orchestrator.d.ts.map +1 -0
  94. package/dist/core/translation/translation-orchestrator.js +204 -0
  95. package/dist/core/translation/translation-orchestrator.js.map +1 -0
  96. package/dist/core/translation/translation-store.d.ts +35 -0
  97. package/dist/core/translation/translation-store.d.ts.map +1 -0
  98. package/dist/core/translation/translation-store.js +96 -0
  99. package/dist/core/translation/translation-store.js.map +1 -0
  100. package/dist/core/translation/translation-types.d.ts +156 -0
  101. package/dist/core/translation/translation-types.d.ts.map +1 -0
  102. package/dist/core/translation/translation-types.js +86 -0
  103. package/dist/core/translation/translation-types.js.map +1 -0
  104. package/dist/core/translation/ucr/construct-registry.d.ts +36 -0
  105. package/dist/core/translation/ucr/construct-registry.d.ts.map +1 -0
  106. package/dist/core/translation/ucr/construct-registry.js +159 -0
  107. package/dist/core/translation/ucr/construct-registry.js.map +1 -0
  108. package/dist/core/translation/ucr/construct-seed.d.ts +12 -0
  109. package/dist/core/translation/ucr/construct-seed.d.ts.map +1 -0
  110. package/dist/core/translation/ucr/construct-seed.js +35 -0
  111. package/dist/core/translation/ucr/construct-seed.js.map +1 -0
  112. package/dist/core/translation/ucr/construct-types.d.ts +174 -0
  113. package/dist/core/translation/ucr/construct-types.d.ts.map +1 -0
  114. package/dist/core/translation/ucr/construct-types.js +88 -0
  115. package/dist/core/translation/ucr/construct-types.js.map +1 -0
  116. package/dist/core/utils/ac-helpers.d.ts +6 -0
  117. package/dist/core/utils/ac-helpers.d.ts.map +1 -1
  118. package/dist/core/utils/ac-helpers.js +15 -0
  119. package/dist/core/utils/ac-helpers.js.map +1 -1
  120. package/dist/core/utils/constants.d.ts +19 -0
  121. package/dist/core/utils/constants.d.ts.map +1 -1
  122. package/dist/core/utils/constants.js +23 -0
  123. package/dist/core/utils/constants.js.map +1 -1
  124. package/dist/core/utils/errors.d.ts +12 -0
  125. package/dist/core/utils/errors.d.ts.map +1 -1
  126. package/dist/core/utils/errors.js +25 -0
  127. package/dist/core/utils/errors.js.map +1 -1
  128. package/dist/core/utils/similarity.d.ts +9 -0
  129. package/dist/core/utils/similarity.d.ts.map +1 -0
  130. package/dist/core/utils/similarity.js +20 -0
  131. package/dist/core/utils/similarity.js.map +1 -0
  132. package/dist/mcp/code-intelligence-wrapper.d.ts +79 -0
  133. package/dist/mcp/code-intelligence-wrapper.d.ts.map +1 -0
  134. package/dist/mcp/code-intelligence-wrapper.js +286 -0
  135. package/dist/mcp/code-intelligence-wrapper.js.map +1 -0
  136. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  137. package/dist/mcp/lifecycle-wrapper.js +56 -1
  138. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  139. package/dist/mcp/tools/code-intelligence.d.ts +2 -0
  140. package/dist/mcp/tools/code-intelligence.d.ts.map +1 -1
  141. package/dist/mcp/tools/code-intelligence.js +157 -3
  142. package/dist/mcp/tools/code-intelligence.js.map +1 -1
  143. package/dist/mcp/tools/index.d.ts.map +1 -1
  144. package/dist/mcp/tools/index.js +3 -0
  145. package/dist/mcp/tools/index.js.map +1 -1
  146. package/dist/mcp/tools/rag-context.d.ts +1 -1
  147. package/dist/mcp/tools/rag-context.d.ts.map +1 -1
  148. package/dist/mcp/tools/rag-context.js +21 -2
  149. package/dist/mcp/tools/rag-context.js.map +1 -1
  150. package/dist/mcp/tools/set-phase.d.ts.map +1 -1
  151. package/dist/mcp/tools/set-phase.js +24 -4
  152. package/dist/mcp/tools/set-phase.js.map +1 -1
  153. package/dist/schemas/designer-schema.d.ts +4 -4
  154. package/dist/schemas/siebel.schema.d.ts +13 -13
  155. package/dist/web/dashboard/dist/assets/{benchmark-tab-B1A0SasV.js → benchmark-tab-CjkvhBH9.js} +1 -1
  156. package/dist/web/dashboard/dist/assets/{context-tab-DUkoXaRk.js → context-tab-CDCm-rDm.js} +1 -1
  157. package/dist/web/dashboard/dist/assets/{gitnexus-tab-CRQq2LPk.js → gitnexus-tab-C8ya-m0E.js} +1 -1
  158. package/dist/web/dashboard/dist/assets/{graph-section-B3yPYErO.js → graph-section-CUyy5O7e.js} +1 -1
  159. package/dist/web/dashboard/dist/assets/{graph-tab-C6EW5fp0.js → graph-tab-0C2cf7FY.js} +1 -1
  160. package/dist/web/dashboard/dist/assets/{graph-utils-BYuSG24r.js → graph-utils-DThe_TpW.js} +1 -1
  161. package/dist/web/dashboard/dist/assets/{index-BWMXofAC.js → index-CG74l_GF.js} +1 -1
  162. package/dist/web/dashboard/dist/assets/index-DA2Y0E4s.css +1 -0
  163. package/dist/web/dashboard/dist/assets/{index-Cs6DRCJ0.js → index-D_2dsvO7.js} +1 -1
  164. package/dist/web/dashboard/dist/assets/{index-C_1iski-.js → index-gkGjyOqz.js} +47 -42
  165. package/dist/web/dashboard/dist/assets/{insights-tab-B_dx9SpZ.js → insights-tab-C7zJ-naw.js} +1 -1
  166. package/dist/web/dashboard/dist/assets/{journey-tab-CO7oVMz6.js → journey-tab-CL_lunyr.js} +1 -1
  167. package/dist/web/dashboard/dist/assets/languages-tab-BDD3QwUT.js +1 -0
  168. package/dist/web/dashboard/dist/assets/{logs-tab-DOBGn4V2.js → logs-tab-B7w7XA3o.js} +1 -1
  169. package/dist/web/dashboard/dist/assets/lsp-tab-BTbRAwqG.js +74 -0
  170. package/dist/web/dashboard/dist/assets/{memories-tab-DpIssCFl.js → memories-tab-CbRr4xFM.js} +1 -1
  171. package/dist/web/dashboard/dist/assets/{prd-backlog-tab-T6zNUi5_.js → prd-backlog-tab-w32D0W8F.js} +1 -1
  172. package/dist/web/dashboard/dist/assets/{siebel-tab-B0pcpfzn.js → siebel-tab-BKuaD7Pf.js} +3 -3
  173. package/dist/web/dashboard/dist/assets/{skills-tab-DiqEcBjJ.js → skills-tab-VQC98jyT.js} +1 -1
  174. package/dist/web/dashboard/dist/assets/{style-gKCWR_EQ.js → style-DkI8Vt9Y.js} +1 -1
  175. package/dist/web/dashboard/dist/index.html +2 -2
  176. package/package.json +2 -2
  177. package/dist/web/dashboard/dist/assets/index-bRmGsVKn.css +0 -1
  178. package/dist/web/dashboard/dist/assets/lsp-tab-BNDlSPfa.js +0 -69
@@ -0,0 +1,86 @@
1
+ import { z } from "zod/v4";
2
+ // --- Translation Job Status ---
3
+ export const TranslationJobStatusSchema = z.enum([
4
+ "pending", "analyzing", "translating", "validating", "done", "failed",
5
+ ]);
6
+ // --- Translation Scope ---
7
+ export const TranslationScopeSchema = z.enum(["snippet", "function", "module"]);
8
+ // --- Translation Job ---
9
+ export const TranslationJobSchema = z.object({
10
+ id: z.string(),
11
+ projectId: z.string(),
12
+ sourceLanguage: z.string(),
13
+ targetLanguage: z.string(),
14
+ sourceCode: z.string(),
15
+ targetCode: z.string().optional(),
16
+ status: TranslationJobStatusSchema,
17
+ scope: TranslationScopeSchema,
18
+ constraints: z.record(z.string(), z.unknown()).optional(),
19
+ confidenceScore: z.number().min(0).max(1).optional(),
20
+ warnings: z.array(z.string()).optional(),
21
+ errorMessage: z.string().optional(),
22
+ createdAt: z.string(),
23
+ updatedAt: z.string(),
24
+ });
25
+ // --- Translation Construct Info (per-construct in analysis) ---
26
+ export const TranslationConstructInfoSchema = z.object({
27
+ canonicalName: z.string(),
28
+ count: z.number().int().min(0),
29
+ confidence: z.number().min(0).max(1),
30
+ });
31
+ // --- Translation Analysis ---
32
+ export const TranslationAnalysisSchema = z.object({
33
+ detectedLanguage: z.string(),
34
+ detectedConfidence: z.number().min(0).max(1).optional(),
35
+ constructs: z.array(TranslationConstructInfoSchema),
36
+ complexityScore: z.number().min(0).max(1),
37
+ estimatedTranslatability: z.number().min(0).max(1),
38
+ ambiguousConstructs: z.array(z.string()).optional(),
39
+ totalConstructs: z.number().int().min(0),
40
+ });
41
+ // --- Translation Metrics ---
42
+ export const TranslationMetricsSchema = z.object({
43
+ parseSuccess: z.boolean(),
44
+ lintSuccess: z.boolean(),
45
+ typeCheckSuccess: z.boolean(),
46
+ ruleCoverage: z.number().min(0).max(1),
47
+ templateCoverage: z.number().min(0).max(1),
48
+ llmInterventions: z.number().int().min(0),
49
+ tokensConsumed: z.number().int().min(0),
50
+ totalTimeMs: z.number().int().min(0),
51
+ });
52
+ // --- Translation Mapping Report (per-construct in result) ---
53
+ export const TranslationMappingReportSchema = z.object({
54
+ sourceConstruct: z.string(),
55
+ targetConstruct: z.string(),
56
+ method: z.enum(["rule", "template", "llm"]),
57
+ confidence: z.number().min(0).max(1),
58
+ });
59
+ // --- Translation Result ---
60
+ export const TranslationResultSchema = z.object({
61
+ targetCode: z.string(),
62
+ mappingReport: z.array(TranslationMappingReportSchema),
63
+ warnings: z.array(z.string()),
64
+ confidenceScore: z.number().min(0).max(1),
65
+ repairIterations: z.number().int().min(0),
66
+ metrics: TranslationMetricsSchema,
67
+ });
68
+ // --- Evidence Pack ---
69
+ export const EvidenceTranslatedConstructSchema = z.object({
70
+ source: z.string(),
71
+ target: z.string(),
72
+ method: z.enum(["rule", "template", "llm"]),
73
+ });
74
+ export const EvidenceRiskSchema = z.object({
75
+ construct: z.string(),
76
+ severity: z.enum(["low", "medium", "high"]),
77
+ message: z.string(),
78
+ });
79
+ export const EvidencePackSchema = z.object({
80
+ diff: z.string(),
81
+ translatedConstructs: z.array(EvidenceTranslatedConstructSchema),
82
+ risks: z.array(EvidenceRiskSchema),
83
+ confidenceScore: z.number().min(0).max(1),
84
+ humanReviewPoints: z.array(z.string()),
85
+ });
86
+ //# sourceMappingURL=translation-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation-types.js","sourceRoot":"","sources":["../../../src/core/translation/translation-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,iCAAiC;AAEjC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/C,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;CACtE,CAAC,CAAC;AAIH,4BAA4B;AAE5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAIhF,0BAA0B;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,0BAA0B;IAClC,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAIH,iEAAiE;AAEjE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC,CAAC,CAAC;AAIH,+BAA+B;AAE/B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;IACnD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACzC,CAAC,CAAC;AAIH,8BAA8B;AAE9B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC,CAAC,CAAC;AAIH,+DAA+D;AAE/D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC,CAAC,CAAC;AAIH,6BAA6B;AAE7B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;IACtD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,wBAAwB;CAClC,CAAC,CAAC;AAIH,wBAAwB;AAExB,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC;IAChE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACvC,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Universal Construct Registry — SQLite CRUD + queries.
3
+ * Uses the shared Database instance from SqliteStore.
4
+ */
5
+ import type Database from "better-sqlite3";
6
+ import type { UcrCategory, UcrConstruct, UcrLanguageMapping, UcrSeedData } from "./construct-types.js";
7
+ export interface TranslationPathResult {
8
+ sourceMapping: UcrLanguageMapping;
9
+ targetMapping: UcrLanguageMapping;
10
+ confidence: number;
11
+ alternatives: UcrLanguageMapping[];
12
+ }
13
+ export interface SeedResult {
14
+ categories: number;
15
+ constructs: number;
16
+ mappings: number;
17
+ }
18
+ export declare class ConstructRegistry {
19
+ private readonly db;
20
+ constructor(db: Database.Database);
21
+ insertCategory(cat: UcrCategory): void;
22
+ getCategory(id: string): UcrCategory | null;
23
+ listCategories(): UcrCategory[];
24
+ insertConstruct(construct: UcrConstruct): void;
25
+ getConstruct(canonicalName: string): UcrConstruct | null;
26
+ getConstructById(id: string): UcrConstruct | null;
27
+ getConstructsByCategory(categoryId: string): UcrConstruct[];
28
+ searchConstructs(query: string): UcrConstruct[];
29
+ insertMapping(mapping: UcrLanguageMapping): void;
30
+ getMappings(constructId: string, languageId: string): UcrLanguageMapping[];
31
+ getPrimaryMapping(constructId: string, languageId: string): UcrLanguageMapping | null;
32
+ findTranslationPath(constructId: string, sourceLang: string, targetLang: string): TranslationPathResult | null;
33
+ updateConfidence(mappingId: string, delta: number): void;
34
+ seedFromJson(data: UcrSeedData): SeedResult;
35
+ }
36
+ //# sourceMappingURL=construct-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct-registry.d.ts","sourceRoot":"","sources":["../../../../src/core/translation/ucr/construct-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAmE9B,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,kBAAkB,CAAC;IAClC,aAAa,EAAE,kBAAkB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAID,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIlD,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAOtC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK3C,cAAc,IAAI,WAAW,EAAE;IAO/B,eAAe,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAc9C,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAKxD,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAKjD,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,EAAE;IAK3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;IAe/C,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAgBhD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAS1E,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAYrF,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI;IAiB9G,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAUxD,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU;CA4B5C"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Universal Construct Registry — SQLite CRUD + queries.
3
+ * Uses the shared Database instance from SqliteStore.
4
+ */
5
+ import { logger } from "../../utils/logger.js";
6
+ // ── Mappers ──────────────────────────────────────────────
7
+ function rowToCategory(row) {
8
+ return {
9
+ id: row.id,
10
+ name: row.name,
11
+ ...(row.description != null && { description: row.description }),
12
+ };
13
+ }
14
+ function rowToConstruct(row) {
15
+ return {
16
+ id: row.id,
17
+ categoryId: row.category_id,
18
+ canonicalName: row.canonical_name,
19
+ ...(row.description != null && { description: row.description }),
20
+ ...(row.semantic_group != null && { semanticGroup: row.semantic_group }),
21
+ ...(row.metadata != null && { metadata: JSON.parse(row.metadata) }),
22
+ };
23
+ }
24
+ function rowToMapping(row) {
25
+ return {
26
+ id: row.id,
27
+ constructId: row.construct_id,
28
+ languageId: row.language_id,
29
+ syntaxPattern: row.syntax_pattern,
30
+ ...(row.ast_node_type != null && { astNodeType: row.ast_node_type }),
31
+ confidence: row.confidence,
32
+ isPrimary: row.is_primary === 1,
33
+ ...(row.constraints != null && { constraints: JSON.parse(row.constraints) }),
34
+ };
35
+ }
36
+ // ── Registry class ───────────────────────────────────────
37
+ export class ConstructRegistry {
38
+ db;
39
+ constructor(db) {
40
+ this.db = db;
41
+ }
42
+ // ── Categories ──────────────────────────────────────────
43
+ insertCategory(cat) {
44
+ this.db.prepare(`
45
+ INSERT OR IGNORE INTO ucr_categories (id, name, description)
46
+ VALUES (?, ?, ?)
47
+ `).run(cat.id, cat.name, cat.description ?? null);
48
+ }
49
+ getCategory(id) {
50
+ const row = this.db.prepare("SELECT * FROM ucr_categories WHERE id = ?").get(id);
51
+ return row ? rowToCategory(row) : null;
52
+ }
53
+ listCategories() {
54
+ const rows = this.db.prepare("SELECT * FROM ucr_categories ORDER BY name").all();
55
+ return rows.map(rowToCategory);
56
+ }
57
+ // ── Constructs ──────────────────────────────────────────
58
+ insertConstruct(construct) {
59
+ this.db.prepare(`
60
+ INSERT OR IGNORE INTO ucr_constructs (id, category_id, canonical_name, description, semantic_group, metadata)
61
+ VALUES (?, ?, ?, ?, ?, ?)
62
+ `).run(construct.id, construct.categoryId, construct.canonicalName, construct.description ?? null, construct.semanticGroup ?? null, construct.metadata ? JSON.stringify(construct.metadata) : null);
63
+ }
64
+ getConstruct(canonicalName) {
65
+ const row = this.db.prepare("SELECT * FROM ucr_constructs WHERE canonical_name = ?").get(canonicalName);
66
+ return row ? rowToConstruct(row) : null;
67
+ }
68
+ getConstructById(id) {
69
+ const row = this.db.prepare("SELECT * FROM ucr_constructs WHERE id = ?").get(id);
70
+ return row ? rowToConstruct(row) : null;
71
+ }
72
+ getConstructsByCategory(categoryId) {
73
+ const rows = this.db.prepare("SELECT * FROM ucr_constructs WHERE category_id = ? ORDER BY canonical_name").all(categoryId);
74
+ return rows.map(rowToConstruct);
75
+ }
76
+ searchConstructs(query) {
77
+ const sanitized = query.replace(/['"]/g, "").trim();
78
+ if (!sanitized)
79
+ return [];
80
+ const rows = this.db.prepare(`
81
+ SELECT c.* FROM ucr_constructs c
82
+ WHERE c.canonical_name LIKE ? OR c.description LIKE ? OR c.semantic_group LIKE ?
83
+ ORDER BY c.canonical_name
84
+ LIMIT 50
85
+ `).all(`%${sanitized}%`, `%${sanitized}%`, `%${sanitized}%`);
86
+ return rows.map(rowToConstruct);
87
+ }
88
+ // ── Language Mappings ───────────────────────────────────
89
+ insertMapping(mapping) {
90
+ this.db.prepare(`
91
+ INSERT OR IGNORE INTO ucr_language_mappings (id, construct_id, language_id, syntax_pattern, ast_node_type, confidence, is_primary, constraints)
92
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
93
+ `).run(mapping.id, mapping.constructId, mapping.languageId, mapping.syntaxPattern, mapping.astNodeType ?? null, mapping.confidence, mapping.isPrimary ? 1 : 0, mapping.constraints ? JSON.stringify(mapping.constraints) : null);
94
+ }
95
+ getMappings(constructId, languageId) {
96
+ const rows = this.db.prepare(`
97
+ SELECT * FROM ucr_language_mappings
98
+ WHERE construct_id = ? AND language_id = ?
99
+ ORDER BY is_primary DESC, confidence DESC
100
+ `).all(constructId, languageId);
101
+ return rows.map(rowToMapping);
102
+ }
103
+ getPrimaryMapping(constructId, languageId) {
104
+ const row = this.db.prepare(`
105
+ SELECT * FROM ucr_language_mappings
106
+ WHERE construct_id = ? AND language_id = ? AND is_primary = 1
107
+ ORDER BY confidence DESC
108
+ LIMIT 1
109
+ `).get(constructId, languageId);
110
+ return row ? rowToMapping(row) : null;
111
+ }
112
+ // ── Translation Path ───────────────────────────────────
113
+ findTranslationPath(constructId, sourceLang, targetLang) {
114
+ const sourceMapping = this.getPrimaryMapping(constructId, sourceLang);
115
+ if (!sourceMapping)
116
+ return null;
117
+ const targetMapping = this.getPrimaryMapping(constructId, targetLang);
118
+ if (!targetMapping)
119
+ return null;
120
+ const allTargetMappings = this.getMappings(constructId, targetLang);
121
+ const alternatives = allTargetMappings.filter((m) => m.id !== targetMapping.id);
122
+ const confidence = Math.min(sourceMapping.confidence, targetMapping.confidence);
123
+ return { sourceMapping, targetMapping, confidence, alternatives };
124
+ }
125
+ // ── Confidence Update ──────────────────────────────────
126
+ updateConfidence(mappingId, delta) {
127
+ this.db.prepare(`
128
+ UPDATE ucr_language_mappings
129
+ SET confidence = MIN(1.0, MAX(0.0, confidence + ?))
130
+ WHERE id = ?
131
+ `).run(delta, mappingId);
132
+ }
133
+ // ── Seed ───────────────────────────────────────────────
134
+ seedFromJson(data) {
135
+ const result = { categories: 0, constructs: 0, mappings: 0 };
136
+ const tx = this.db.transaction(() => {
137
+ for (const cat of data.categories) {
138
+ this.insertCategory(cat);
139
+ result.categories++;
140
+ }
141
+ for (const construct of data.constructs) {
142
+ this.insertConstruct(construct);
143
+ result.constructs++;
144
+ }
145
+ for (const mapping of data.mappings) {
146
+ this.insertMapping(mapping);
147
+ result.mappings++;
148
+ }
149
+ });
150
+ tx();
151
+ logger.info("ucr:seed", {
152
+ categories: result.categories,
153
+ constructs: result.constructs,
154
+ mappings: result.mappings,
155
+ });
156
+ return result;
157
+ }
158
+ }
159
+ //# sourceMappingURL=construct-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct-registry.js","sourceRoot":"","sources":["../../../../src/core/translation/ucr/construct-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * UCR Seed Loader — loads construct-seed-data.json into ConstructRegistry.
3
+ */
4
+ import type { UcrSeedData } from "./construct-types.js";
5
+ import type { ConstructRegistry, SeedResult } from "./construct-registry.js";
6
+ /** Load the built-in seed data and populate the registry. Idempotent. */
7
+ export declare function loadAndSeedRegistry(registry: ConstructRegistry): SeedResult;
8
+ /** Load seed data from a custom JSON file and populate the registry. Validates against Zod schema. */
9
+ export declare function seedRegistryFromFile(registry: ConstructRegistry, filePath: string): SeedResult;
10
+ /** Parse and validate seed data without inserting (dry-run). */
11
+ export declare function validateSeedData(filePath: string): UcrSeedData;
12
+ //# sourceMappingURL=construct-seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct-seed.d.ts","sourceRoot":"","sources":["../../../../src/core/translation/ucr/construct-seed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAM7E,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,UAAU,CAE3E;AAED,sGAAsG;AACtG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAgB9F;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAI9D"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * UCR Seed Loader — loads construct-seed-data.json into ConstructRegistry.
3
+ */
4
+ import { readFileSync } from "node:fs";
5
+ import { resolve, dirname } from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ import { UcrSeedDataSchema } from "./construct-types.js";
8
+ import { logger } from "../../utils/logger.js";
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const DEFAULT_SEED_PATH = resolve(__dirname, "construct-seed-data.json");
11
+ /** Load the built-in seed data and populate the registry. Idempotent. */
12
+ export function loadAndSeedRegistry(registry) {
13
+ return seedRegistryFromFile(registry, DEFAULT_SEED_PATH);
14
+ }
15
+ /** Load seed data from a custom JSON file and populate the registry. Validates against Zod schema. */
16
+ export function seedRegistryFromFile(registry, filePath) {
17
+ const raw = readFileSync(filePath, "utf-8");
18
+ const parsed = JSON.parse(raw);
19
+ const validated = UcrSeedDataSchema.parse(parsed);
20
+ const result = registry.seedFromJson(validated);
21
+ logger.info("ucr:seed:file", {
22
+ file: filePath,
23
+ categories: result.categories,
24
+ constructs: result.constructs,
25
+ mappings: result.mappings,
26
+ });
27
+ return result;
28
+ }
29
+ /** Parse and validate seed data without inserting (dry-run). */
30
+ export function validateSeedData(filePath) {
31
+ const raw = readFileSync(filePath, "utf-8");
32
+ const parsed = JSON.parse(raw);
33
+ return UcrSeedDataSchema.parse(parsed);
34
+ }
35
+ //# sourceMappingURL=construct-seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct-seed.js","sourceRoot":"","sources":["../../../../src/core/translation/ucr/construct-seed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AAEzE,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CAAC,QAA2B;IAC7D,OAAO,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,oBAAoB,CAAC,QAA2B,EAAE,QAAgB;IAChF,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IAE1C,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEhD,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;QAC3B,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IAC1C,OAAO,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,174 @@
1
+ import { z } from "zod/v4";
2
+ export declare const UcrCategorySchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ name: z.ZodString;
5
+ description: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ export type UcrCategory = z.infer<typeof UcrCategorySchema>;
8
+ export declare const UcrConstructSchema: z.ZodObject<{
9
+ id: z.ZodString;
10
+ categoryId: z.ZodString;
11
+ canonicalName: z.ZodString;
12
+ description: z.ZodOptional<z.ZodString>;
13
+ semanticGroup: z.ZodOptional<z.ZodString>;
14
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
15
+ }, z.core.$strip>;
16
+ export type UcrConstruct = z.infer<typeof UcrConstructSchema>;
17
+ export declare const UcrLanguageMappingSchema: z.ZodObject<{
18
+ id: z.ZodString;
19
+ constructId: z.ZodString;
20
+ languageId: z.ZodString;
21
+ syntaxPattern: z.ZodString;
22
+ astNodeType: z.ZodOptional<z.ZodString>;
23
+ confidence: z.ZodNumber;
24
+ isPrimary: z.ZodBoolean;
25
+ constraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
26
+ }, z.core.$strip>;
27
+ export type UcrLanguageMapping = z.infer<typeof UcrLanguageMappingSchema>;
28
+ export declare const EquivalenceTypeSchema: z.ZodEnum<{
29
+ none: "none";
30
+ exact: "exact";
31
+ syntactic: "syntactic";
32
+ semantic: "semantic";
33
+ }>;
34
+ export type EquivalenceType = z.infer<typeof EquivalenceTypeSchema>;
35
+ export declare const UcrEquivalenceClassSchema: z.ZodObject<{
36
+ id: z.ZodString;
37
+ name: z.ZodString;
38
+ description: z.ZodOptional<z.ZodString>;
39
+ equivalenceType: z.ZodEnum<{
40
+ none: "none";
41
+ exact: "exact";
42
+ syntactic: "syntactic";
43
+ semantic: "semantic";
44
+ }>;
45
+ }, z.core.$strip>;
46
+ export type UcrEquivalenceClass = z.infer<typeof UcrEquivalenceClassSchema>;
47
+ export type CanonicalConstruct = {
48
+ constructId: string;
49
+ canonicalName: string;
50
+ sourceText: string;
51
+ startLine: number;
52
+ endLine: number;
53
+ children: CanonicalConstruct[];
54
+ metadata?: Record<string, unknown>;
55
+ };
56
+ export declare const CanonicalConstructSchema: z.ZodType<CanonicalConstruct>;
57
+ export declare const TranslationPathSchema: z.ZodObject<{
58
+ sourceMapping: z.ZodObject<{
59
+ id: z.ZodString;
60
+ constructId: z.ZodString;
61
+ languageId: z.ZodString;
62
+ syntaxPattern: z.ZodString;
63
+ astNodeType: z.ZodOptional<z.ZodString>;
64
+ confidence: z.ZodNumber;
65
+ isPrimary: z.ZodBoolean;
66
+ constraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
67
+ }, z.core.$strip>;
68
+ targetMapping: z.ZodObject<{
69
+ id: z.ZodString;
70
+ constructId: z.ZodString;
71
+ languageId: z.ZodString;
72
+ syntaxPattern: z.ZodString;
73
+ astNodeType: z.ZodOptional<z.ZodString>;
74
+ confidence: z.ZodNumber;
75
+ isPrimary: z.ZodBoolean;
76
+ constraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
77
+ }, z.core.$strip>;
78
+ confidence: z.ZodNumber;
79
+ alternatives: z.ZodArray<z.ZodObject<{
80
+ id: z.ZodString;
81
+ constructId: z.ZodString;
82
+ languageId: z.ZodString;
83
+ syntaxPattern: z.ZodString;
84
+ astNodeType: z.ZodOptional<z.ZodString>;
85
+ confidence: z.ZodNumber;
86
+ isPrimary: z.ZodBoolean;
87
+ constraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
88
+ }, z.core.$strip>>;
89
+ }, z.core.$strip>;
90
+ export type TranslationPath = z.infer<typeof TranslationPathSchema>;
91
+ export declare const TranslationScoreAlternativeSchema: z.ZodObject<{
92
+ mappingId: z.ZodString;
93
+ confidence: z.ZodNumber;
94
+ reason: z.ZodString;
95
+ }, z.core.$strip>;
96
+ export declare const TranslationScoreSchema: z.ZodObject<{
97
+ constructId: z.ZodString;
98
+ staticConfidence: z.ZodNumber;
99
+ contextualConfidence: z.ZodNumber;
100
+ finalConfidence: z.ZodNumber;
101
+ selectedMappingId: z.ZodString;
102
+ alternatives: z.ZodArray<z.ZodObject<{
103
+ mappingId: z.ZodString;
104
+ confidence: z.ZodNumber;
105
+ reason: z.ZodString;
106
+ }, z.core.$strip>>;
107
+ needsAiAssist: z.ZodBoolean;
108
+ }, z.core.$strip>;
109
+ export type TranslationScore = z.infer<typeof TranslationScoreSchema>;
110
+ export declare const AmbiguityTypeSchema: z.ZodEnum<{
111
+ multiple_targets: "multiple_targets";
112
+ no_target: "no_target";
113
+ lossy_translation: "lossy_translation";
114
+ }>;
115
+ export type AmbiguityType = z.infer<typeof AmbiguityTypeSchema>;
116
+ export declare const AmbiguityCandidateSchema: z.ZodObject<{
117
+ mappingId: z.ZodString;
118
+ confidence: z.ZodNumber;
119
+ tradeoff: z.ZodString;
120
+ }, z.core.$strip>;
121
+ export declare const AmbiguityReportSchema: z.ZodObject<{
122
+ constructId: z.ZodString;
123
+ canonicalName: z.ZodString;
124
+ ambiguityType: z.ZodEnum<{
125
+ multiple_targets: "multiple_targets";
126
+ no_target: "no_target";
127
+ lossy_translation: "lossy_translation";
128
+ }>;
129
+ candidates: z.ZodArray<z.ZodObject<{
130
+ mappingId: z.ZodString;
131
+ confidence: z.ZodNumber;
132
+ tradeoff: z.ZodString;
133
+ }, z.core.$strip>>;
134
+ recommendation: z.ZodOptional<z.ZodString>;
135
+ }, z.core.$strip>;
136
+ export type AmbiguityReport = z.infer<typeof AmbiguityReportSchema>;
137
+ export declare const UcrSeedDataSchema: z.ZodObject<{
138
+ categories: z.ZodArray<z.ZodObject<{
139
+ id: z.ZodString;
140
+ name: z.ZodString;
141
+ description: z.ZodOptional<z.ZodString>;
142
+ }, z.core.$strip>>;
143
+ constructs: z.ZodArray<z.ZodObject<{
144
+ id: z.ZodString;
145
+ categoryId: z.ZodString;
146
+ canonicalName: z.ZodString;
147
+ description: z.ZodOptional<z.ZodString>;
148
+ semanticGroup: z.ZodOptional<z.ZodString>;
149
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
150
+ }, z.core.$strip>>;
151
+ mappings: z.ZodArray<z.ZodObject<{
152
+ id: z.ZodString;
153
+ constructId: z.ZodString;
154
+ languageId: z.ZodString;
155
+ syntaxPattern: z.ZodString;
156
+ astNodeType: z.ZodOptional<z.ZodString>;
157
+ confidence: z.ZodNumber;
158
+ isPrimary: z.ZodBoolean;
159
+ constraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
160
+ }, z.core.$strip>>;
161
+ equivalenceClasses: z.ZodOptional<z.ZodArray<z.ZodObject<{
162
+ id: z.ZodString;
163
+ name: z.ZodString;
164
+ description: z.ZodOptional<z.ZodString>;
165
+ equivalenceType: z.ZodEnum<{
166
+ none: "none";
167
+ exact: "exact";
168
+ syntactic: "syntactic";
169
+ semantic: "semantic";
170
+ }>;
171
+ }, z.core.$strip>>>;
172
+ }, z.core.$strip>;
173
+ export type UcrSeedData = z.infer<typeof UcrSeedDataSchema>;
174
+ //# sourceMappingURL=construct-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct-types.d.ts","sourceRoot":"","sources":["../../../../src/core/translation/ucr/construct-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI5D,eAAO,MAAM,kBAAkB;;;;;;;iBAO7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,eAAO,MAAM,wBAAwB;;;;;;;;;iBASnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,eAAO,MAAM,qBAAqB;;;;;EAAqD,CAAC;AAExF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,yBAAyB;;;;;;;;;;iBAKpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAI5E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAUlE,CAAC;AAIF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,iCAAiC;;;;iBAI5C,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAQjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,mBAAmB;;;;EAAiE,CAAC;AAElG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { z } from "zod/v4";
2
+ // --- UCR Category ---
3
+ export const UcrCategorySchema = z.object({
4
+ id: z.string(),
5
+ name: z.string(),
6
+ description: z.string().optional(),
7
+ });
8
+ // --- UCR Construct (canonical) ---
9
+ export const UcrConstructSchema = z.object({
10
+ id: z.string(),
11
+ categoryId: z.string(),
12
+ canonicalName: z.string(),
13
+ description: z.string().optional(),
14
+ semanticGroup: z.string().optional(),
15
+ metadata: z.record(z.string(), z.unknown()).optional(),
16
+ });
17
+ // --- UCR Language Mapping ---
18
+ export const UcrLanguageMappingSchema = z.object({
19
+ id: z.string(),
20
+ constructId: z.string(),
21
+ languageId: z.string(),
22
+ syntaxPattern: z.string(),
23
+ astNodeType: z.string().optional(),
24
+ confidence: z.number().min(0).max(1),
25
+ isPrimary: z.boolean(),
26
+ constraints: z.record(z.string(), z.unknown()).optional(),
27
+ });
28
+ // --- UCR Equivalence Class ---
29
+ export const EquivalenceTypeSchema = z.enum(["exact", "syntactic", "semantic", "none"]);
30
+ export const UcrEquivalenceClassSchema = z.object({
31
+ id: z.string(),
32
+ name: z.string(),
33
+ description: z.string().optional(),
34
+ equivalenceType: EquivalenceTypeSchema,
35
+ });
36
+ export const CanonicalConstructSchema = z.lazy(() => z.object({
37
+ constructId: z.string(),
38
+ canonicalName: z.string(),
39
+ sourceText: z.string(),
40
+ startLine: z.number().int(),
41
+ endLine: z.number().int(),
42
+ children: z.array(CanonicalConstructSchema),
43
+ metadata: z.record(z.string(), z.unknown()).optional(),
44
+ }));
45
+ // --- Translation Path (UCR lookup result) ---
46
+ export const TranslationPathSchema = z.object({
47
+ sourceMapping: UcrLanguageMappingSchema,
48
+ targetMapping: UcrLanguageMappingSchema,
49
+ confidence: z.number().min(0).max(1),
50
+ alternatives: z.array(UcrLanguageMappingSchema),
51
+ });
52
+ // --- Translation Score (per-construct scoring) ---
53
+ export const TranslationScoreAlternativeSchema = z.object({
54
+ mappingId: z.string(),
55
+ confidence: z.number().min(0).max(1),
56
+ reason: z.string(),
57
+ });
58
+ export const TranslationScoreSchema = z.object({
59
+ constructId: z.string(),
60
+ staticConfidence: z.number().min(0).max(1),
61
+ contextualConfidence: z.number().min(0).max(1),
62
+ finalConfidence: z.number().min(0).max(1),
63
+ selectedMappingId: z.string(),
64
+ alternatives: z.array(TranslationScoreAlternativeSchema),
65
+ needsAiAssist: z.boolean(),
66
+ });
67
+ // --- Ambiguity Report ---
68
+ export const AmbiguityTypeSchema = z.enum(["multiple_targets", "no_target", "lossy_translation"]);
69
+ export const AmbiguityCandidateSchema = z.object({
70
+ mappingId: z.string(),
71
+ confidence: z.number().min(0).max(1),
72
+ tradeoff: z.string(),
73
+ });
74
+ export const AmbiguityReportSchema = z.object({
75
+ constructId: z.string(),
76
+ canonicalName: z.string(),
77
+ ambiguityType: AmbiguityTypeSchema,
78
+ candidates: z.array(AmbiguityCandidateSchema),
79
+ recommendation: z.string().optional(),
80
+ });
81
+ // --- UCR Seed Data (JSON import format) ---
82
+ export const UcrSeedDataSchema = z.object({
83
+ categories: z.array(UcrCategorySchema),
84
+ constructs: z.array(UcrConstructSchema),
85
+ mappings: z.array(UcrLanguageMappingSchema),
86
+ equivalenceClasses: z.array(UcrEquivalenceClassSchema).optional(),
87
+ });
88
+ //# sourceMappingURL=construct-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct-types.js","sourceRoot":"","sources":["../../../../src/core/translation/ucr/construct-types.ts"],"names":[],"mappings":"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"}