@mcp-graph-workflow/mcp-graph 5.16.0 → 5.18.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 (351) 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 +8 -0
  5. package/dist/api/routes/translation.d.ts.map +1 -0
  6. package/dist/api/routes/translation.js +174 -0
  7. package/dist/api/routes/translation.js.map +1 -0
  8. package/dist/cli/commands/import-cmd.d.ts.map +1 -1
  9. package/dist/cli/commands/import-cmd.js +2 -0
  10. package/dist/cli/commands/import-cmd.js.map +1 -1
  11. package/dist/core/analyzer/definition-of-ready.d.ts.map +1 -1
  12. package/dist/core/analyzer/definition-of-ready.js +12 -7
  13. package/dist/core/analyzer/definition-of-ready.js.map +1 -1
  14. package/dist/core/analyzer/risk-assessment.d.ts.map +1 -1
  15. package/dist/core/analyzer/risk-assessment.js +2 -0
  16. package/dist/core/analyzer/risk-assessment.js.map +1 -1
  17. package/dist/core/analyzer/scope-analyzer.d.ts.map +1 -1
  18. package/dist/core/analyzer/scope-analyzer.js +6 -3
  19. package/dist/core/analyzer/scope-analyzer.js.map +1 -1
  20. package/dist/core/config/ai-memory-generator.js +3 -3
  21. package/dist/core/context/bm25-compressor.d.ts.map +1 -1
  22. package/dist/core/context/bm25-compressor.js +5 -3
  23. package/dist/core/context/bm25-compressor.js.map +1 -1
  24. package/dist/core/context/compact-context.d.ts +2 -0
  25. package/dist/core/context/compact-context.d.ts.map +1 -1
  26. package/dist/core/context/compact-context.js +12 -12
  27. package/dist/core/context/compact-context.js.map +1 -1
  28. package/dist/core/designer/coupling-analyzer.d.ts.map +1 -1
  29. package/dist/core/designer/coupling-analyzer.js +2 -1
  30. package/dist/core/designer/coupling-analyzer.js.map +1 -1
  31. package/dist/core/events/event-types.d.ts +32 -1
  32. package/dist/core/events/event-types.d.ts.map +1 -1
  33. package/dist/core/handoff/delivery-checklist.d.ts.map +1 -1
  34. package/dist/core/handoff/delivery-checklist.js +6 -6
  35. package/dist/core/handoff/delivery-checklist.js.map +1 -1
  36. package/dist/core/implementer/sprint-progress.d.ts.map +1 -1
  37. package/dist/core/implementer/sprint-progress.js +3 -1
  38. package/dist/core/implementer/sprint-progress.js.map +1 -1
  39. package/dist/core/importer/prd-to-graph.d.ts.map +1 -1
  40. package/dist/core/importer/prd-to-graph.js +18 -6
  41. package/dist/core/importer/prd-to-graph.js.map +1 -1
  42. package/dist/core/insights/skill-recommender.d.ts.map +1 -1
  43. package/dist/core/insights/skill-recommender.js +3 -0
  44. package/dist/core/insights/skill-recommender.js.map +1 -1
  45. package/dist/core/listener/backlog-health.d.ts.map +1 -1
  46. package/dist/core/listener/backlog-health.js +3 -1
  47. package/dist/core/listener/backlog-health.js.map +1 -1
  48. package/dist/core/listener/feedback-readiness.d.ts.map +1 -1
  49. package/dist/core/listener/feedback-readiness.js +4 -5
  50. package/dist/core/listener/feedback-readiness.js.map +1 -1
  51. package/dist/core/lsp/lsp-bridge.d.ts +12 -2
  52. package/dist/core/lsp/lsp-bridge.d.ts.map +1 -1
  53. package/dist/core/lsp/lsp-bridge.js +139 -3
  54. package/dist/core/lsp/lsp-bridge.js.map +1 -1
  55. package/dist/core/lsp/lsp-edit-applier.d.ts +23 -0
  56. package/dist/core/lsp/lsp-edit-applier.d.ts.map +1 -0
  57. package/dist/core/lsp/lsp-edit-applier.js +204 -0
  58. package/dist/core/lsp/lsp-edit-applier.js.map +1 -0
  59. package/dist/core/lsp/lsp-server-manager.d.ts.map +1 -1
  60. package/dist/core/lsp/lsp-server-manager.js +18 -0
  61. package/dist/core/lsp/lsp-server-manager.js.map +1 -1
  62. package/dist/core/lsp/lsp-types.d.ts +35 -0
  63. package/dist/core/lsp/lsp-types.d.ts.map +1 -1
  64. package/dist/core/lsp/lsp-types.js +20 -0
  65. package/dist/core/lsp/lsp-types.js.map +1 -1
  66. package/dist/core/memory/memory-reader.d.ts.map +1 -1
  67. package/dist/core/memory/memory-reader.js +18 -3
  68. package/dist/core/memory/memory-reader.js.map +1 -1
  69. package/dist/core/parser/read-file.d.ts.map +1 -1
  70. package/dist/core/parser/read-file.js +11 -0
  71. package/dist/core/parser/read-file.js.map +1 -1
  72. package/dist/core/planner/decompose.d.ts.map +1 -1
  73. package/dist/core/planner/decompose.js +8 -3
  74. package/dist/core/planner/decompose.js.map +1 -1
  75. package/dist/core/planner/lifecycle-phase.d.ts +18 -0
  76. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  77. package/dist/core/planner/lifecycle-phase.js +112 -0
  78. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  79. package/dist/core/planner/next-task.js +3 -3
  80. package/dist/core/planner/next-task.js.map +1 -1
  81. package/dist/core/planner/planning-report.js +3 -2
  82. package/dist/core/planner/planning-report.js.map +1 -1
  83. package/dist/core/planner/velocity.js +3 -0
  84. package/dist/core/planner/velocity.js.map +1 -1
  85. package/dist/core/rag/query-cache.js +2 -2
  86. package/dist/core/rag/query-cache.js.map +1 -1
  87. package/dist/core/rag/response-cache.d.ts +38 -0
  88. package/dist/core/rag/response-cache.d.ts.map +1 -0
  89. package/dist/core/rag/response-cache.js +84 -0
  90. package/dist/core/rag/response-cache.js.map +1 -0
  91. package/dist/core/rag/translation-indexer.d.ts +35 -0
  92. package/dist/core/rag/translation-indexer.d.ts.map +1 -0
  93. package/dist/core/rag/translation-indexer.js +70 -0
  94. package/dist/core/rag/translation-indexer.js.map +1 -0
  95. package/dist/core/reviewer/review-readiness.d.ts.map +1 -1
  96. package/dist/core/reviewer/review-readiness.js +4 -3
  97. package/dist/core/reviewer/review-readiness.js.map +1 -1
  98. package/dist/core/search/fts-search.d.ts.map +1 -1
  99. package/dist/core/search/fts-search.js +12 -6
  100. package/dist/core/search/fts-search.js.map +1 -1
  101. package/dist/core/siebel/wsdl-contract-validator.d.ts +25 -0
  102. package/dist/core/siebel/wsdl-contract-validator.d.ts.map +1 -0
  103. package/dist/core/siebel/wsdl-contract-validator.js +80 -0
  104. package/dist/core/siebel/wsdl-contract-validator.js.map +1 -0
  105. package/dist/core/siebel/wsdl-correlation.d.ts.map +1 -1
  106. package/dist/core/siebel/wsdl-correlation.js +2 -13
  107. package/dist/core/siebel/wsdl-correlation.js.map +1 -1
  108. package/dist/core/siebel/wsdl-doc-generator.d.ts +10 -0
  109. package/dist/core/siebel/wsdl-doc-generator.d.ts.map +1 -0
  110. package/dist/core/siebel/wsdl-doc-generator.js +95 -0
  111. package/dist/core/siebel/wsdl-doc-generator.js.map +1 -0
  112. package/dist/core/store/knowledge-store.d.ts +1 -0
  113. package/dist/core/store/knowledge-store.d.ts.map +1 -1
  114. package/dist/core/store/knowledge-store.js +28 -13
  115. package/dist/core/store/knowledge-store.js.map +1 -1
  116. package/dist/core/store/migrations.d.ts.map +1 -1
  117. package/dist/core/store/migrations.js +97 -0
  118. package/dist/core/store/migrations.js.map +1 -1
  119. package/dist/core/store/path-resolver.d.ts.map +1 -1
  120. package/dist/core/store/path-resolver.js +8 -3
  121. package/dist/core/store/path-resolver.js.map +1 -1
  122. package/dist/core/store/sqlite-store.d.ts.map +1 -1
  123. package/dist/core/store/sqlite-store.js +37 -12
  124. package/dist/core/store/sqlite-store.js.map +1 -1
  125. package/dist/core/store/store-manager.d.ts.map +1 -1
  126. package/dist/core/store/store-manager.js +3 -1
  127. package/dist/core/store/store-manager.js.map +1 -1
  128. package/dist/core/store/tool-call-log.d.ts +26 -0
  129. package/dist/core/store/tool-call-log.d.ts.map +1 -0
  130. package/dist/core/store/tool-call-log.js +70 -0
  131. package/dist/core/store/tool-call-log.js.map +1 -0
  132. package/dist/core/translation/confidence/ambiguity-detector.d.ts +18 -0
  133. package/dist/core/translation/confidence/ambiguity-detector.d.ts.map +1 -0
  134. package/dist/core/translation/confidence/ambiguity-detector.js +80 -0
  135. package/dist/core/translation/confidence/ambiguity-detector.js.map +1 -0
  136. package/dist/core/translation/confidence/equivalence-scorer.d.ts +22 -0
  137. package/dist/core/translation/confidence/equivalence-scorer.d.ts.map +1 -0
  138. package/dist/core/translation/confidence/equivalence-scorer.js +72 -0
  139. package/dist/core/translation/confidence/equivalence-scorer.js.map +1 -0
  140. package/dist/core/translation/generators/generator-adapter.d.ts +22 -0
  141. package/dist/core/translation/generators/generator-adapter.d.ts.map +1 -0
  142. package/dist/core/translation/generators/generator-adapter.js +6 -0
  143. package/dist/core/translation/generators/generator-adapter.js.map +1 -0
  144. package/dist/core/translation/generators/python-generator.d.ts +15 -0
  145. package/dist/core/translation/generators/python-generator.d.ts.map +1 -0
  146. package/dist/core/translation/generators/python-generator.js +74 -0
  147. package/dist/core/translation/generators/python-generator.js.map +1 -0
  148. package/dist/core/translation/generators/ts-generator.d.ts +14 -0
  149. package/dist/core/translation/generators/ts-generator.d.ts.map +1 -0
  150. package/dist/core/translation/generators/ts-generator.js +56 -0
  151. package/dist/core/translation/generators/ts-generator.js.map +1 -0
  152. package/dist/core/translation/language-detect.d.ts +12 -0
  153. package/dist/core/translation/language-detect.d.ts.map +1 -0
  154. package/dist/core/translation/language-detect.js +140 -0
  155. package/dist/core/translation/language-detect.js.map +1 -0
  156. package/dist/core/translation/parsers/parser-adapter.d.ts +23 -0
  157. package/dist/core/translation/parsers/parser-adapter.d.ts.map +1 -0
  158. package/dist/core/translation/parsers/parser-adapter.js +6 -0
  159. package/dist/core/translation/parsers/parser-adapter.js.map +1 -0
  160. package/dist/core/translation/parsers/python-parser-adapter.d.ts +10 -0
  161. package/dist/core/translation/parsers/python-parser-adapter.d.ts.map +1 -0
  162. package/dist/core/translation/parsers/python-parser-adapter.js +85 -0
  163. package/dist/core/translation/parsers/python-parser-adapter.js.map +1 -0
  164. package/dist/core/translation/parsers/ts-parser-adapter.d.ts +10 -0
  165. package/dist/core/translation/parsers/ts-parser-adapter.d.ts.map +1 -0
  166. package/dist/core/translation/parsers/ts-parser-adapter.js +145 -0
  167. package/dist/core/translation/parsers/ts-parser-adapter.js.map +1 -0
  168. package/dist/core/translation/prompt-builder.d.ts +34 -0
  169. package/dist/core/translation/prompt-builder.d.ts.map +1 -0
  170. package/dist/core/translation/prompt-builder.js +137 -0
  171. package/dist/core/translation/prompt-builder.js.map +1 -0
  172. package/dist/core/translation/translation-orchestrator.d.ts +67 -0
  173. package/dist/core/translation/translation-orchestrator.d.ts.map +1 -0
  174. package/dist/core/translation/translation-orchestrator.js +204 -0
  175. package/dist/core/translation/translation-orchestrator.js.map +1 -0
  176. package/dist/core/translation/translation-store.d.ts +35 -0
  177. package/dist/core/translation/translation-store.d.ts.map +1 -0
  178. package/dist/core/translation/translation-store.js +96 -0
  179. package/dist/core/translation/translation-store.js.map +1 -0
  180. package/dist/core/translation/translation-types.d.ts +156 -0
  181. package/dist/core/translation/translation-types.d.ts.map +1 -0
  182. package/dist/core/translation/translation-types.js +86 -0
  183. package/dist/core/translation/translation-types.js.map +1 -0
  184. package/dist/core/translation/ucr/construct-registry.d.ts +36 -0
  185. package/dist/core/translation/ucr/construct-registry.d.ts.map +1 -0
  186. package/dist/core/translation/ucr/construct-registry.js +159 -0
  187. package/dist/core/translation/ucr/construct-registry.js.map +1 -0
  188. package/dist/core/translation/ucr/construct-seed.d.ts +12 -0
  189. package/dist/core/translation/ucr/construct-seed.d.ts.map +1 -0
  190. package/dist/core/translation/ucr/construct-seed.js +35 -0
  191. package/dist/core/translation/ucr/construct-seed.js.map +1 -0
  192. package/dist/core/translation/ucr/construct-types.d.ts +174 -0
  193. package/dist/core/translation/ucr/construct-types.d.ts.map +1 -0
  194. package/dist/core/translation/ucr/construct-types.js +88 -0
  195. package/dist/core/translation/ucr/construct-types.js.map +1 -0
  196. package/dist/core/utils/ac-helpers.d.ts +5 -2
  197. package/dist/core/utils/ac-helpers.d.ts.map +1 -1
  198. package/dist/core/utils/ac-helpers.js +35 -4
  199. package/dist/core/utils/ac-helpers.js.map +1 -1
  200. package/dist/core/utils/blocked-helpers.d.ts.map +1 -1
  201. package/dist/core/utils/blocked-helpers.js +9 -1
  202. package/dist/core/utils/blocked-helpers.js.map +1 -1
  203. package/dist/core/utils/constants.d.ts +19 -0
  204. package/dist/core/utils/constants.d.ts.map +1 -1
  205. package/dist/core/utils/constants.js +23 -0
  206. package/dist/core/utils/constants.js.map +1 -1
  207. package/dist/core/utils/errors.d.ts +12 -0
  208. package/dist/core/utils/errors.d.ts.map +1 -1
  209. package/dist/core/utils/errors.js +25 -0
  210. package/dist/core/utils/errors.js.map +1 -1
  211. package/dist/core/utils/similarity.d.ts +9 -0
  212. package/dist/core/utils/similarity.d.ts.map +1 -0
  213. package/dist/core/utils/similarity.js +20 -0
  214. package/dist/core/utils/similarity.js.map +1 -0
  215. package/dist/core/validator/done-integrity-checker.d.ts.map +1 -1
  216. package/dist/core/validator/done-integrity-checker.js +4 -2
  217. package/dist/core/validator/done-integrity-checker.js.map +1 -1
  218. package/dist/core/validator/status-flow-checker.d.ts.map +1 -1
  219. package/dist/core/validator/status-flow-checker.js +2 -1
  220. package/dist/core/validator/status-flow-checker.js.map +1 -1
  221. package/dist/mcp/code-intelligence-wrapper.d.ts +79 -0
  222. package/dist/mcp/code-intelligence-wrapper.d.ts.map +1 -0
  223. package/dist/mcp/code-intelligence-wrapper.js +291 -0
  224. package/dist/mcp/code-intelligence-wrapper.js.map +1 -0
  225. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  226. package/dist/mcp/lifecycle-wrapper.js +57 -6
  227. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  228. package/dist/mcp/tool-classification.d.ts +20 -0
  229. package/dist/mcp/tool-classification.d.ts.map +1 -0
  230. package/dist/mcp/tool-classification.js +52 -0
  231. package/dist/mcp/tool-classification.js.map +1 -0
  232. package/dist/mcp/tools/analyze-translation.d.ts +8 -0
  233. package/dist/mcp/tools/analyze-translation.d.ts.map +1 -0
  234. package/dist/mcp/tools/analyze-translation.js +53 -0
  235. package/dist/mcp/tools/analyze-translation.js.map +1 -0
  236. package/dist/mcp/tools/analyze.d.ts.map +1 -1
  237. package/dist/mcp/tools/analyze.js +8 -0
  238. package/dist/mcp/tools/analyze.js.map +1 -1
  239. package/dist/mcp/tools/clone-node.d.ts.map +1 -1
  240. package/dist/mcp/tools/clone-node.js +5 -1
  241. package/dist/mcp/tools/clone-node.js.map +1 -1
  242. package/dist/mcp/tools/code-intelligence.d.ts +2 -0
  243. package/dist/mcp/tools/code-intelligence.d.ts.map +1 -1
  244. package/dist/mcp/tools/code-intelligence.js +168 -8
  245. package/dist/mcp/tools/code-intelligence.js.map +1 -1
  246. package/dist/mcp/tools/context.d.ts.map +1 -1
  247. package/dist/mcp/tools/context.js +3 -1
  248. package/dist/mcp/tools/context.js.map +1 -1
  249. package/dist/mcp/tools/delete-node.js +1 -1
  250. package/dist/mcp/tools/delete-node.js.map +1 -1
  251. package/dist/mcp/tools/edge.d.ts.map +1 -1
  252. package/dist/mcp/tools/edge.js +33 -20
  253. package/dist/mcp/tools/edge.js.map +1 -1
  254. package/dist/mcp/tools/export.d.ts.map +1 -1
  255. package/dist/mcp/tools/export.js +26 -1
  256. package/dist/mcp/tools/export.js.map +1 -1
  257. package/dist/mcp/tools/import-prd.js +1 -1
  258. package/dist/mcp/tools/import-prd.js.map +1 -1
  259. package/dist/mcp/tools/index.d.ts.map +1 -1
  260. package/dist/mcp/tools/index.js +8 -0
  261. package/dist/mcp/tools/index.js.map +1 -1
  262. package/dist/mcp/tools/init.d.ts.map +1 -1
  263. package/dist/mcp/tools/init.js +5 -1
  264. package/dist/mcp/tools/init.js.map +1 -1
  265. package/dist/mcp/tools/knowledge-feedback.d.ts.map +1 -1
  266. package/dist/mcp/tools/knowledge-feedback.js +3 -2
  267. package/dist/mcp/tools/knowledge-feedback.js.map +1 -1
  268. package/dist/mcp/tools/list.d.ts.map +1 -1
  269. package/dist/mcp/tools/list.js +6 -1
  270. package/dist/mcp/tools/list.js.map +1 -1
  271. package/dist/mcp/tools/manage-skill.d.ts.map +1 -1
  272. package/dist/mcp/tools/manage-skill.js +6 -0
  273. package/dist/mcp/tools/manage-skill.js.map +1 -1
  274. package/dist/mcp/tools/memory.js +4 -4
  275. package/dist/mcp/tools/memory.js.map +1 -1
  276. package/dist/mcp/tools/metrics.d.ts.map +1 -1
  277. package/dist/mcp/tools/metrics.js +32 -2
  278. package/dist/mcp/tools/metrics.js.map +1 -1
  279. package/dist/mcp/tools/move-node.js +1 -1
  280. package/dist/mcp/tools/move-node.js.map +1 -1
  281. package/dist/mcp/tools/node.d.ts.map +1 -1
  282. package/dist/mcp/tools/node.js +38 -35
  283. package/dist/mcp/tools/node.js.map +1 -1
  284. package/dist/mcp/tools/rag-context.d.ts +1 -1
  285. package/dist/mcp/tools/rag-context.d.ts.map +1 -1
  286. package/dist/mcp/tools/rag-context.js +21 -2
  287. package/dist/mcp/tools/rag-context.js.map +1 -1
  288. package/dist/mcp/tools/search.d.ts.map +1 -1
  289. package/dist/mcp/tools/search.js +8 -4
  290. package/dist/mcp/tools/search.js.map +1 -1
  291. package/dist/mcp/tools/set-phase.d.ts.map +1 -1
  292. package/dist/mcp/tools/set-phase.js +26 -5
  293. package/dist/mcp/tools/set-phase.js.map +1 -1
  294. package/dist/mcp/tools/show.js +1 -1
  295. package/dist/mcp/tools/show.js.map +1 -1
  296. package/dist/mcp/tools/siebel-import-sif.d.ts.map +1 -1
  297. package/dist/mcp/tools/siebel-import-sif.js +67 -36
  298. package/dist/mcp/tools/siebel-import-sif.js.map +1 -1
  299. package/dist/mcp/tools/translate-code.d.ts +8 -0
  300. package/dist/mcp/tools/translate-code.d.ts.map +1 -0
  301. package/dist/mcp/tools/translate-code.js +73 -0
  302. package/dist/mcp/tools/translate-code.js.map +1 -0
  303. package/dist/mcp/tools/update-node.js +1 -1
  304. package/dist/mcp/tools/update-node.js.map +1 -1
  305. package/dist/mcp/tools/update-status.js +1 -1
  306. package/dist/mcp/tools/update-status.js.map +1 -1
  307. package/dist/schemas/analyzer-schema.d.ts +5 -3
  308. package/dist/schemas/analyzer-schema.d.ts.map +1 -1
  309. package/dist/schemas/analyzer-schema.js +1 -0
  310. package/dist/schemas/analyzer-schema.js.map +1 -1
  311. package/dist/schemas/designer-schema.d.ts +4 -4
  312. package/dist/schemas/implementer-schema.d.ts +1 -0
  313. package/dist/schemas/implementer-schema.d.ts.map +1 -1
  314. package/dist/schemas/implementer-schema.js +1 -0
  315. package/dist/schemas/implementer-schema.js.map +1 -1
  316. package/dist/schemas/knowledge.schema.d.ts +2 -0
  317. package/dist/schemas/knowledge.schema.d.ts.map +1 -1
  318. package/dist/schemas/knowledge.schema.js +1 -0
  319. package/dist/schemas/knowledge.schema.js.map +1 -1
  320. package/dist/schemas/node.schema.js +1 -1
  321. package/dist/schemas/node.schema.js.map +1 -1
  322. package/dist/schemas/siebel.schema.d.ts +14 -14
  323. package/dist/schemas/validator-schema.d.ts +1 -0
  324. package/dist/schemas/validator-schema.d.ts.map +1 -1
  325. package/dist/schemas/validator-schema.js +1 -0
  326. package/dist/schemas/validator-schema.js.map +1 -1
  327. package/dist/web/dashboard/dist/assets/{benchmark-tab-LbjYcnjd.js → benchmark-tab-BWbrm3fF.js} +1 -1
  328. package/dist/web/dashboard/dist/assets/{context-tab-u_l0XUXT.js → context-tab-CD1pqDb2.js} +1 -1
  329. package/dist/web/dashboard/dist/assets/{gitnexus-tab-K304jKR3.js → gitnexus-tab-DWfMYYIO.js} +1 -1
  330. package/dist/web/dashboard/dist/assets/{graph-section-3_2LPo7V.js → graph-section-ByabPxrl.js} +1 -1
  331. package/dist/web/dashboard/dist/assets/{graph-tab-KG6GQq1a.js → graph-tab-Bd2SQl25.js} +1 -1
  332. package/dist/web/dashboard/dist/assets/{graph-utils-cpyaBhnE.js → graph-utils-C3ZvD-eu.js} +1 -1
  333. package/dist/web/dashboard/dist/assets/{index-DY9euqve.js → index-CLbo-4nU.js} +1 -1
  334. package/dist/web/dashboard/dist/assets/{index-Co7yktBf.js → index-DknXi6Cq.js} +47 -42
  335. package/dist/web/dashboard/dist/assets/{index-Clwhz2ad.js → index-LPQ6gwAy.js} +1 -1
  336. package/dist/web/dashboard/dist/assets/index-jxbHgBUe.css +1 -0
  337. package/dist/web/dashboard/dist/assets/{insights-tab-yrnRR8CL.js → insights-tab-Kqy1BThw.js} +1 -1
  338. package/dist/web/dashboard/dist/assets/{journey-tab-Cfh-qkYk.js → journey-tab-CjfOzBFl.js} +1 -1
  339. package/dist/web/dashboard/dist/assets/languages-tab-BsE3pPKO.js +63 -0
  340. package/dist/web/dashboard/dist/assets/{logs-tab-B-8O6WzQ.js → logs-tab-D9XtpaKf.js} +1 -1
  341. package/dist/web/dashboard/dist/assets/lsp-tab-DN-wImxK.js +64 -0
  342. package/dist/web/dashboard/dist/assets/{memories-tab-5t0pfAsS.js → memories-tab-C9CgvCRH.js} +1 -1
  343. package/dist/web/dashboard/dist/assets/{prd-backlog-tab-Bgt2qin9.js → prd-backlog-tab-BOFkQdFu.js} +1 -1
  344. package/dist/web/dashboard/dist/assets/{siebel-tab-CjYyszVw.js → siebel-tab-BVSi4Va2.js} +3 -3
  345. package/dist/web/dashboard/dist/assets/{skills-tab-D-6Tem1J.js → skills-tab-DJpG9cOQ.js} +1 -1
  346. package/dist/web/dashboard/dist/assets/{style-Ci_RUKMJ.js → style-FoeO1y9E.js} +1 -1
  347. package/dist/web/dashboard/dist/assets/triangle-alert-B0LFw3Ht.js +11 -0
  348. package/dist/web/dashboard/dist/index.html +2 -2
  349. package/package.json +2 -2
  350. package/dist/web/dashboard/dist/assets/index-C1UckjqB.css +0 -1
  351. package/dist/web/dashboard/dist/assets/lsp-tab-CBM8pixC.js +0 -74
@@ -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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,uBAAuB;AAEvB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAIH,oCAAoC;AAEpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC;AAIH,+BAA+B;AAE/B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAIH,gCAAgC;AAEhC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAIxF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,qBAAqB;CACvC,CAAC,CAAC;AAgBH,MAAM,CAAC,MAAM,wBAAwB,GAAkC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACjF,CAAC,CAAC,MAAM,CAAC;IACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CACH,CAAC;AAEF,+CAA+C;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,wBAAwB;IACvC,aAAa,EAAE,wBAAwB;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;CAChD,CAAC,CAAC;AAIH,oDAAoD;AAEpD,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC;IACxD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;CAC3B,CAAC,CAAC;AAIH,2BAA2B;AAE3B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAIlG,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,aAAa,EAAE,mBAAmB;IAClC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAIH,6CAA6C;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAC3C,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;CAClE,CAAC,CAAC"}
@@ -3,10 +3,13 @@
3
3
  * from both inline fields and child acceptance_criteria nodes.
4
4
  */
5
5
  import type { GraphDocument } from "../graph/graph-types.js";
6
+ import type { SqliteStore } from "../store/sqlite-store.js";
7
+ export declare function getNodeAcTexts(doc: GraphDocument, nodeId: string): string[];
6
8
  /**
7
- * Get all AC texts for a node prefers inline AC, falls back to child AC node titles.
9
+ * Get all AC texts for a node using store queries (no full graph scan).
10
+ * Prefers inline AC, falls back to child AC node titles.
8
11
  */
9
- export declare function getNodeAcTexts(doc: GraphDocument, nodeId: string): string[];
12
+ export declare function getNodeAcFromStore(store: SqliteStore, nodeId: string): string[];
10
13
  /**
11
14
  * Check if a node has any AC — either inline or via child AC nodes.
12
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ac-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/ac-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAW3E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE"}
1
+ {"version":3,"file":"ac-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/ac-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAwB5D,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS3E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE"}
@@ -5,16 +5,47 @@
5
5
  /**
6
6
  * Get all AC texts for a node — prefers inline AC, falls back to child AC node titles.
7
7
  */
8
+ // Bug #096: cache index for O(1) lookups when called in loops
9
+ let _cachedDocRef = null;
10
+ let _nodeMap = new Map();
11
+ let _acByParent = new Map();
12
+ function ensureAcIndex(doc) {
13
+ if (_cachedDocRef?.deref() === doc)
14
+ return;
15
+ _cachedDocRef = new WeakRef(doc);
16
+ _nodeMap = new Map(doc.nodes.map((n) => [n.id, n]));
17
+ _acByParent = new Map();
18
+ for (const n of doc.nodes) {
19
+ if (n.type === "acceptance_criteria" && n.parentId) {
20
+ const list = _acByParent.get(n.parentId) ?? [];
21
+ list.push(n.title);
22
+ _acByParent.set(n.parentId, list);
23
+ }
24
+ }
25
+ }
8
26
  export function getNodeAcTexts(doc, nodeId) {
9
- const node = doc.nodes.find((n) => n.id === nodeId);
27
+ ensureAcIndex(doc);
28
+ const node = _nodeMap.get(nodeId);
29
+ if (!node)
30
+ return [];
31
+ const inline = node.acceptanceCriteria ?? [];
32
+ if (inline.length > 0)
33
+ return inline;
34
+ return _acByParent.get(nodeId) ?? [];
35
+ }
36
+ /**
37
+ * Get all AC texts for a node using store queries (no full graph scan).
38
+ * Prefers inline AC, falls back to child AC node titles.
39
+ */
40
+ export function getNodeAcFromStore(store, nodeId) {
41
+ const node = store.getNodeById(nodeId);
10
42
  if (!node)
11
43
  return [];
12
44
  const inline = node.acceptanceCriteria ?? [];
13
45
  if (inline.length > 0)
14
46
  return inline;
15
- // Fallback: AC child nodes by parentId
16
- return doc.nodes
17
- .filter((n) => n.type === "acceptance_criteria" && n.parentId === nodeId)
47
+ return store.getChildNodes(nodeId)
48
+ .filter((n) => n.type === "acceptance_criteria")
18
49
  .map((n) => n.title);
19
50
  }
20
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ac-helpers.js","sourceRoot":"","sources":["../../../src/core/utils/ac-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAkB,EAAE,MAAc;IAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,uCAAuC;IACvC,OAAO,GAAG,CAAC,KAAK;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;SACxE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,MAAc;IAC1D,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"ac-helpers.js","sourceRoot":"","sources":["../../../src/core/utils/ac-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,8DAA8D;AAC9D,IAAI,aAAa,GAAkC,IAAI,CAAC;AACxD,IAAI,QAAQ,GAAgD,IAAI,GAAG,EAAE,CAAC;AACtE,IAAI,WAAW,GAA0B,IAAI,GAAG,EAAE,CAAC;AAEnD,SAAS,aAAa,CAAC,GAAkB;IACvC,IAAI,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG;QAAE,OAAO;IAC3C,aAAa,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAkB,EAAE,MAAc;IAC/D,aAAa,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,OAAO,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAkB,EAAE,MAAc;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC;SAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,MAAc;IAC1D,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"blocked-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/blocked-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,kBAAkB,EAAE,CAQ5E"}
1
+ {"version":3,"file":"blocked-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/blocked-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,kBAAkB,EAAE,CAe5E"}
@@ -14,6 +14,14 @@ export function findAllBlockedTasks(doc) {
14
14
  const statusBlocked = tasks
15
15
  .filter((n) => (n.status === "blocked" || n.blocked === true) && !bottleneckIds.has(n.id))
16
16
  .map((n) => ({ id: n.id, title: n.title }));
17
- return [...bottlenecks.blockedTasks.map((b) => ({ id: b.id, title: b.title })), ...statusBlocked];
17
+ // Bug #092: final dedup by ID to prevent any duplicate entries
18
+ const merged = [...bottlenecks.blockedTasks.map((b) => ({ id: b.id, title: b.title })), ...statusBlocked];
19
+ const seen = new Set();
20
+ return merged.filter((t) => {
21
+ if (seen.has(t.id))
22
+ return false;
23
+ seen.add(t.id);
24
+ return true;
25
+ });
18
26
  }
19
27
  //# sourceMappingURL=blocked-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocked-helpers.js","sourceRoot":"","sources":["../../../src/core/utils/blocked-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOjD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAkB;IACpD,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,KAAK;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACzF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;AACpG,CAAC"}
1
+ {"version":3,"file":"blocked-helpers.js","sourceRoot":"","sources":["../../../src/core/utils/blocked-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOjD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAkB;IACpD,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,KAAK;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACzF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9C,+DAA+D;IAC/D,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;IAC1G,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -27,4 +27,23 @@ export declare const DEFAULT_TOKEN_BUDGET = 4000;
27
27
  export declare const DEFAULT_CHUNK_MAX_TOKENS = 500;
28
28
  /** Default overlap tokens between chunks */
29
29
  export declare const DEFAULT_CHUNK_OVERLAP = 50;
30
+ /** All languages supported by the UCR (matches LSP server-registry) */
31
+ export declare const SUPPORTED_LANGUAGES: readonly ["typescript", "python", "rust", "go", "java", "cpp", "ruby", "php", "kotlin", "swift", "csharp", "lua"];
32
+ export type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number];
33
+ /** Language pairs available for translation */
34
+ export declare const SUPPORTED_LANGUAGE_PAIRS: ReadonlyArray<{
35
+ from: SupportedLanguage;
36
+ to: SupportedLanguage;
37
+ }>;
38
+ /** MVP language pairs (initially only TS <-> Python) */
39
+ export declare const MVP_LANGUAGE_PAIRS: readonly {
40
+ from: SupportedLanguage;
41
+ to: SupportedLanguage;
42
+ }[];
43
+ /** Confidence threshold below which AI assistance is needed */
44
+ export declare const UCR_CONFIDENCE_THRESHOLD = 0.7;
45
+ /** Check if a language is supported */
46
+ export declare function isLanguageSupported(lang: string): lang is SupportedLanguage;
47
+ /** Check if a language pair is supported for translation */
48
+ export declare function isLanguagePairSupported(from: string, to: string): boolean;
30
49
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,yDAAyD;AACzD,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAE1C,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,iCAAiC;AACjC,eAAO,MAAM,OAAO,aAAa,CAAC;AAElC,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,kDAAkD;AAClD,eAAO,MAAM,aAAa,QAA4C,CAAC;AAEvE,wDAAwD;AACxD,eAAO,MAAM,cAAc,QAAoC,CAAC;AAEhE,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAExE,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,QAA0C,CAAC;AAI1E,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AAEtD,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAIhD,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,yDAAyD;AACzD,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAE1C,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,iCAAiC;AACjC,eAAO,MAAM,OAAO,aAAa,CAAC;AAElC,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,kDAAkD;AAClD,eAAO,MAAM,aAAa,QAA4C,CAAC;AAEvE,wDAAwD;AACxD,eAAO,MAAM,cAAc,QAAoC,CAAC;AAEhE,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAExE,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,QAA0C,CAAC;AAI1E,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AAEtD,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAIhD,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAIxC,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,mHAGtB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,EAAE,EAAE,iBAAiB,CAAA;CAAE,CAG7F,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,kBAAkB;UAN8B,iBAAiB;QAAM,iBAAiB;GAM3C,CAAC;AAE3D,+DAA+D;AAC/D,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,uCAAuC;AACvC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,iBAAiB,CAE3E;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEzE"}
@@ -31,4 +31,27 @@ export const DEFAULT_TOKEN_BUDGET = 4000;
31
31
  export const DEFAULT_CHUNK_MAX_TOKENS = 500;
32
32
  /** Default overlap tokens between chunks */
33
33
  export const DEFAULT_CHUNK_OVERLAP = 50;
34
+ // ── Translation / UCR constants ──
35
+ /** All languages supported by the UCR (matches LSP server-registry) */
36
+ export const SUPPORTED_LANGUAGES = [
37
+ "typescript", "python", "rust", "go", "java", "cpp",
38
+ "ruby", "php", "kotlin", "swift", "csharp", "lua",
39
+ ];
40
+ /** Language pairs available for translation */
41
+ export const SUPPORTED_LANGUAGE_PAIRS = [
42
+ { from: "typescript", to: "python" },
43
+ { from: "python", to: "typescript" },
44
+ ];
45
+ /** MVP language pairs (initially only TS <-> Python) */
46
+ export const MVP_LANGUAGE_PAIRS = SUPPORTED_LANGUAGE_PAIRS;
47
+ /** Confidence threshold below which AI assistance is needed */
48
+ export const UCR_CONFIDENCE_THRESHOLD = 0.7;
49
+ /** Check if a language is supported */
50
+ export function isLanguageSupported(lang) {
51
+ return SUPPORTED_LANGUAGES.includes(lang);
52
+ }
53
+ /** Check if a language pair is supported for translation */
54
+ export function isLanguagePairSupported(from, to) {
55
+ return SUPPORTED_LANGUAGE_PAIRS.some((p) => p.from === from && p.to === to);
56
+ }
34
57
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,yDAAyD;AACzD,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAE1C,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,iCAAiC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC;AAElC,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEvE,wDAAwD;AACxD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAEhE,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAExE,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAE1E,sBAAsB;AAEtB,6CAA6C;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAkB,CAAC;AAEtD,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;AAEhD,8BAA8B;AAE9B,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,oDAAoD;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,yDAAyD;AACzD,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAE1C,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,iCAAiC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC;AAElC,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEvE,wDAAwD;AACxD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAEhE,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAExE,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAE1E,sBAAsB;AAEtB,6CAA6C;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAkB,CAAC;AAEtD,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;AAEhD,8BAA8B;AAE9B,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,oDAAoD;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,oCAAoC;AAEpC,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;IACnD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK;CACzC,CAAC;AAIX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAsE;IACzG,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE;IACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE;CAC5B,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,+DAA+D;AAC/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,uCAAuC;AACvC,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,EAAU;IAC9D,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC"}
@@ -19,6 +19,18 @@ export declare class SnapshotNotFoundError extends McpGraphError {
19
19
  }
20
20
  /** Safely extract an error message from an unknown thrown value. */
21
21
  export declare function getErrorMessage(err: unknown): string;
22
+ export declare class TranslationError extends McpGraphError {
23
+ constructor(message: string);
24
+ }
25
+ export declare class UnsupportedLanguagePairError extends McpGraphError {
26
+ readonly from: string;
27
+ readonly to: string;
28
+ constructor(from: string, to: string);
29
+ }
30
+ export declare class TranslationValidationError extends McpGraphError {
31
+ readonly jobId: string;
32
+ constructor(jobId: string, message: string);
33
+ }
22
34
  export declare class LifecycleGateError extends McpGraphError {
23
35
  readonly toolName: string;
24
36
  readonly currentPhase: string;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/utils/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,wBAAyB,SAAQ,aAAa;;CAK1D;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,EAAE,EAAE,MAAM;CAIvB;AAED,qBAAa,eAAgB,SAAQ,aAAa;aACH,MAAM,EAAE,OAAO,EAAE;gBAAlD,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,OAAO,EAAE;CAI/D;AAED,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,EAAE,EAAE,MAAM;CAIvB;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,qBAAa,kBAAmB,SAAQ,aAAa;aAEjC,QAAQ,EAAE,MAAM;aAChB,YAAY,EAAE,MAAM;aACpB,MAAM,EAAE,MAAM;aACd,eAAe,EAAE,MAAM,EAAE;gBAHzB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EAAE;CAK5C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/utils/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,wBAAyB,SAAQ,aAAa;;CAK1D;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,EAAE,EAAE,MAAM;CAIvB;AAED,qBAAa,eAAgB,SAAQ,aAAa;aACH,MAAM,EAAE,OAAO,EAAE;gBAAlD,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,OAAO,EAAE;CAI/D;AAED,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,EAAE,EAAE,MAAM;CAIvB;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAID,qBAAa,gBAAiB,SAAQ,aAAa;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,4BAA6B,SAAQ,aAAa;aAE3C,IAAI,EAAE,MAAM;aACZ,EAAE,EAAE,MAAM;gBADV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM;CAK7B;AAED,qBAAa,0BAA2B,SAAQ,aAAa;aAEzC,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM,EAC7B,OAAO,EAAE,MAAM;CAKlB;AAED,qBAAa,kBAAmB,SAAQ,aAAa;aAEjC,QAAQ,EAAE,MAAM;aAChB,YAAY,EAAE,MAAM;aACpB,MAAM,EAAE,MAAM;aACd,eAAe,EAAE,MAAM,EAAE;gBAHzB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EAAE;CAK5C"}
@@ -40,6 +40,31 @@ export class SnapshotNotFoundError extends McpGraphError {
40
40
  export function getErrorMessage(err) {
41
41
  return err instanceof Error ? err.message : String(err);
42
42
  }
43
+ // ── Translation errors ──
44
+ export class TranslationError extends McpGraphError {
45
+ constructor(message) {
46
+ super(`Translation error: ${message}`);
47
+ this.name = "TranslationError";
48
+ }
49
+ }
50
+ export class UnsupportedLanguagePairError extends McpGraphError {
51
+ from;
52
+ to;
53
+ constructor(from, to) {
54
+ super(`Unsupported language pair: ${from} → ${to}`);
55
+ this.from = from;
56
+ this.to = to;
57
+ this.name = "UnsupportedLanguagePairError";
58
+ }
59
+ }
60
+ export class TranslationValidationError extends McpGraphError {
61
+ jobId;
62
+ constructor(jobId, message) {
63
+ super(`Translation validation failed for job ${jobId}: ${message}`);
64
+ this.jobId = jobId;
65
+ this.name = "TranslationValidationError";
66
+ }
67
+ }
43
68
  export class LifecycleGateError extends McpGraphError {
44
69
  toolName;
45
70
  currentPhase;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,IAAY;QACtB,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD;QACE,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,EAAU;QACpB,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IACH;IAA7C,YAAY,OAAe,EAAkB,MAAiB;QAC5D,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QADI,WAAM,GAAN,MAAM,CAAW;QAE5D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IACtD,YAAY,EAAU;QACpB,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAEjC;IACA;IACA;IACA;IAJlB,YACkB,QAAgB,EAChB,YAAoB,EACpB,MAAc,EACd,eAAyB;QAEzC,KAAK,CAAC,oBAAoB,QAAQ,gBAAgB,YAAY,MAAM,MAAM,EAAE,CAAC,CAAC;QAL9D,aAAQ,GAAR,QAAQ,CAAQ;QAChB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAU;QAGzC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,IAAY;QACtB,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD;QACE,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,EAAU;QACpB,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IACH;IAA7C,YAAY,OAAe,EAAkB,MAAiB;QAC5D,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QADI,WAAM,GAAN,MAAM,CAAW;QAE5D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IACtD,YAAY,EAAU;QACpB,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,2BAA2B;AAE3B,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,aAAa;IAE3C;IACA;IAFlB,YACkB,IAAY,EACZ,EAAU;QAE1B,KAAK,CAAC,8BAA8B,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QAHpC,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAQ;QAG1B,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,aAAa;IAEzC;IADlB,YACkB,KAAa,EAC7B,OAAe;QAEf,KAAK,CAAC,yCAAyC,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;QAHpD,UAAK,GAAL,KAAK,CAAQ;QAI7B,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAEjC;IACA;IACA;IACA;IAJlB,YACkB,QAAgB,EAChB,YAAoB,EACpB,MAAc,EACd,eAAyB;QAEzC,KAAK,CAAC,oBAAoB,QAAQ,gBAAgB,YAAY,MAAM,MAAM,EAAE,CAAC,CAAC;QAL9D,aAAQ,GAAR,QAAQ,CAAQ;QAChB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAU;QAGzC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * String similarity utilities — tokenization and Jaccard similarity.
3
+ * Extracted from siebel/wsdl-correlation.ts for reuse across modules.
4
+ */
5
+ /** Tokenize a name by splitting camelCase, PascalCase, snake_case, kebab-case. Filters single-char tokens. */
6
+ export declare function tokenize(name: string): string[];
7
+ /** Jaccard similarity between two sets: |intersection| / |union|. Returns 0 for empty sets. */
8
+ export declare function jaccardSimilarity(a: Set<string>, b: Set<string>): number;
9
+ //# sourceMappingURL=similarity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"similarity.d.ts","sourceRoot":"","sources":["../../../src/core/utils/similarity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8GAA8G;AAC9G,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/C;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAIxE"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * String similarity utilities — tokenization and Jaccard similarity.
3
+ * Extracted from siebel/wsdl-correlation.ts for reuse across modules.
4
+ */
5
+ /** Tokenize a name by splitting camelCase, PascalCase, snake_case, kebab-case. Filters single-char tokens. */
6
+ export function tokenize(name) {
7
+ return name
8
+ .replace(/([a-z])([A-Z])/g, "$1 $2")
9
+ .replace(/[_\-]/g, " ")
10
+ .toLowerCase()
11
+ .split(/\s+/)
12
+ .filter((t) => t.length > 1);
13
+ }
14
+ /** Jaccard similarity between two sets: |intersection| / |union|. Returns 0 for empty sets. */
15
+ export function jaccardSimilarity(a, b) {
16
+ const intersection = new Set([...a].filter((x) => b.has(x)));
17
+ const union = new Set([...a, ...b]);
18
+ return union.size > 0 ? intersection.size / union.size : 0;
19
+ }
20
+ //# sourceMappingURL=similarity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"similarity.js","sourceRoot":"","sources":["../../../src/core/utils/similarity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8GAA8G;AAC9G,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,iBAAiB,CAAC,CAAc,EAAE,CAAc;IAC9D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"done-integrity-checker.d.ts","sourceRoot":"","sources":["../../../src/core/validator/done-integrity-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,mCAAmC,CAAC;AAIjG,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,mBAAmB,CAsC1E"}
1
+ {"version":3,"file":"done-integrity-checker.d.ts","sourceRoot":"","sources":["../../../src/core/validator/done-integrity-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,mCAAmC,CAAC;AAIjG,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,mBAAmB,CAwC1E"}
@@ -32,7 +32,9 @@ export function checkDoneIntegrity(doc) {
32
32
  }
33
33
  }
34
34
  const passed = issues.length === 0;
35
- logger.info("done-integrity-check", { passed, issueCount: issues.length });
36
- return { issues, passed };
35
+ // Bug #074: indicate vacuous pass when no done tasks exist
36
+ const info = doneTasks.length === 0 ? "0 done tasks to check — vacuous pass" : undefined;
37
+ logger.info("done-integrity-check", { passed, issueCount: issues.length, doneTasks: doneTasks.length });
38
+ return { issues, passed, ...(info ? { info } : {}) };
37
39
  }
38
40
  //# sourceMappingURL=done-integrity-checker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"done-integrity-checker.js","sourceRoot":"","sources":["../../../src/core/validator/done-integrity-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,kBAAkB,CAAC,GAAkB;IACnD,MAAM,MAAM,GAAyB,EAAE,CAAC;IAExC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,4CAA4C;QAC5C,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,4CAA4C;aACzE,CAAC,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY,CAC7D,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,qBAAqB;oBAChC,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,+BAA+B,UAAU,CAAC,KAAK,cAAc,UAAU,CAAC,MAAM,GAAG;iBAC9G,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"done-integrity-checker.js","sourceRoot":"","sources":["../../../src/core/validator/done-integrity-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,kBAAkB,CAAC,GAAkB;IACnD,MAAM,MAAM,GAAyB,EAAE,CAAC;IAExC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,4CAA4C;QAC5C,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,4CAA4C;aACzE,CAAC,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY,CAC7D,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,qBAAqB;oBAChC,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,+BAA+B,UAAU,CAAC,KAAK,cAAc,UAAU,CAAC,MAAM,GAAG;iBAC9G,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,2DAA2D;IAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAExG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status-flow-checker.d.ts","sourceRoot":"","sources":["../../../src/core/validator/status-flow-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,mCAAmC,CAAC;AAI/F,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,gBAAgB,CAwBpE"}
1
+ {"version":3,"file":"status-flow-checker.d.ts","sourceRoot":"","sources":["../../../src/core/validator/status-flow-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,mCAAmC,CAAC;AAI/F,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,gBAAgB,CAyBpE"}
@@ -13,7 +13,8 @@ export function checkStatusFlow(doc) {
13
13
  nodeId: task.id,
14
14
  title: task.title,
15
15
  currentStatus: task.status,
16
- details: `Task "${task.title}" marcada como done sem transição de status (createdAt === updatedAt)`,
16
+ // Bug #095: note that this is a heuristic timestamps may be imprecise
17
+ details: `Task "${task.title}" marcada como done sem transição de status (createdAt === updatedAt). Nota: heurística baseada em timestamps — pode ser imprecisa.`,
17
18
  });
18
19
  }
19
20
  }