@bloomreach/brxm-upgrade 0.1.1

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 (420) hide show
  1. package/README.md +217 -0
  2. package/dist/ai/index.d.ts +3 -0
  3. package/dist/ai/index.d.ts.map +1 -0
  4. package/dist/ai/index.js +2 -0
  5. package/dist/ai/index.js.map +1 -0
  6. package/dist/ai/providers.d.ts +27 -0
  7. package/dist/ai/providers.d.ts.map +1 -0
  8. package/dist/ai/providers.js +105 -0
  9. package/dist/ai/providers.js.map +1 -0
  10. package/dist/ai/types.d.ts +47 -0
  11. package/dist/ai/types.d.ts.map +1 -0
  12. package/dist/ai/types.js +2 -0
  13. package/dist/ai/types.js.map +1 -0
  14. package/dist/capture/change-scanner.d.ts +20 -0
  15. package/dist/capture/change-scanner.d.ts.map +1 -0
  16. package/dist/capture/change-scanner.js +71 -0
  17. package/dist/capture/change-scanner.js.map +1 -0
  18. package/dist/capture/conflict-resolver.d.ts +21 -0
  19. package/dist/capture/conflict-resolver.d.ts.map +1 -0
  20. package/dist/capture/conflict-resolver.js +45 -0
  21. package/dist/capture/conflict-resolver.js.map +1 -0
  22. package/dist/capture/critique-types.d.ts +60 -0
  23. package/dist/capture/critique-types.d.ts.map +1 -0
  24. package/dist/capture/critique-types.js +2 -0
  25. package/dist/capture/critique-types.js.map +1 -0
  26. package/dist/capture/entry-critique.d.ts +30 -0
  27. package/dist/capture/entry-critique.d.ts.map +1 -0
  28. package/dist/capture/entry-critique.js +137 -0
  29. package/dist/capture/entry-critique.js.map +1 -0
  30. package/dist/capture/entry-generator.d.ts +32 -0
  31. package/dist/capture/entry-generator.d.ts.map +1 -0
  32. package/dist/capture/entry-generator.js +209 -0
  33. package/dist/capture/entry-generator.js.map +1 -0
  34. package/dist/capture/entry-qa.d.ts +28 -0
  35. package/dist/capture/entry-qa.d.ts.map +1 -0
  36. package/dist/capture/entry-qa.js +84 -0
  37. package/dist/capture/entry-qa.js.map +1 -0
  38. package/dist/capture/entry-regeneration.d.ts +29 -0
  39. package/dist/capture/entry-regeneration.d.ts.map +1 -0
  40. package/dist/capture/entry-regeneration.js +164 -0
  41. package/dist/capture/entry-regeneration.js.map +1 -0
  42. package/dist/capture/entry-validator.d.ts +18 -0
  43. package/dist/capture/entry-validator.d.ts.map +1 -0
  44. package/dist/capture/entry-validator.js +47 -0
  45. package/dist/capture/entry-validator.js.map +1 -0
  46. package/dist/capture/heuristics.d.ts +30 -0
  47. package/dist/capture/heuristics.d.ts.map +1 -0
  48. package/dist/capture/heuristics.js +223 -0
  49. package/dist/capture/heuristics.js.map +1 -0
  50. package/dist/capture/index.d.ts +7 -0
  51. package/dist/capture/index.d.ts.map +1 -0
  52. package/dist/capture/index.js +11 -0
  53. package/dist/capture/index.js.map +1 -0
  54. package/dist/capture/quality-report.d.ts +19 -0
  55. package/dist/capture/quality-report.d.ts.map +1 -0
  56. package/dist/capture/quality-report.js +161 -0
  57. package/dist/capture/quality-report.js.map +1 -0
  58. package/dist/capture/review-flow.d.ts +37 -0
  59. package/dist/capture/review-flow.d.ts.map +1 -0
  60. package/dist/capture/review-flow.js +212 -0
  61. package/dist/capture/review-flow.js.map +1 -0
  62. package/dist/capture/types.d.ts +114 -0
  63. package/dist/capture/types.d.ts.map +1 -0
  64. package/dist/capture/types.js +2 -0
  65. package/dist/capture/types.js.map +1 -0
  66. package/dist/commands/discover.d.ts +6 -0
  67. package/dist/commands/discover.d.ts.map +1 -0
  68. package/dist/commands/discover.js +147 -0
  69. package/dist/commands/discover.js.map +1 -0
  70. package/dist/commands/execute.d.ts +12 -0
  71. package/dist/commands/execute.d.ts.map +1 -0
  72. package/dist/commands/execute.js +113 -0
  73. package/dist/commands/execute.js.map +1 -0
  74. package/dist/commands/export.d.ts +26 -0
  75. package/dist/commands/export.d.ts.map +1 -0
  76. package/dist/commands/export.js +291 -0
  77. package/dist/commands/export.js.map +1 -0
  78. package/dist/commands/finalize.d.ts +12 -0
  79. package/dist/commands/finalize.d.ts.map +1 -0
  80. package/dist/commands/finalize.js +225 -0
  81. package/dist/commands/finalize.js.map +1 -0
  82. package/dist/commands/guide.d.ts +12 -0
  83. package/dist/commands/guide.d.ts.map +1 -0
  84. package/dist/commands/guide.js +28 -0
  85. package/dist/commands/guide.js.map +1 -0
  86. package/dist/commands/index.d.ts +6 -0
  87. package/dist/commands/index.d.ts.map +1 -0
  88. package/dist/commands/index.js +22 -0
  89. package/dist/commands/index.js.map +1 -0
  90. package/dist/commands/log-change.d.ts +14 -0
  91. package/dist/commands/log-change.d.ts.map +1 -0
  92. package/dist/commands/log-change.js +243 -0
  93. package/dist/commands/log-change.js.map +1 -0
  94. package/dist/commands/plan.d.ts +12 -0
  95. package/dist/commands/plan.d.ts.map +1 -0
  96. package/dist/commands/plan.js +162 -0
  97. package/dist/commands/plan.js.map +1 -0
  98. package/dist/commands/review-manifest.d.ts +39 -0
  99. package/dist/commands/review-manifest.d.ts.map +1 -0
  100. package/dist/commands/review-manifest.js +178 -0
  101. package/dist/commands/review-manifest.js.map +1 -0
  102. package/dist/commands/setup-manifests.d.ts +12 -0
  103. package/dist/commands/setup-manifests.d.ts.map +1 -0
  104. package/dist/commands/setup-manifests.js +229 -0
  105. package/dist/commands/setup-manifests.js.map +1 -0
  106. package/dist/config/defaults.d.ts +15 -0
  107. package/dist/config/defaults.d.ts.map +1 -0
  108. package/dist/config/defaults.js +36 -0
  109. package/dist/config/defaults.js.map +1 -0
  110. package/dist/config/index.d.ts +17 -0
  111. package/dist/config/index.d.ts.map +1 -0
  112. package/dist/config/index.js +104 -0
  113. package/dist/config/index.js.map +1 -0
  114. package/dist/config/schema.d.ts +33 -0
  115. package/dist/config/schema.d.ts.map +1 -0
  116. package/dist/config/schema.js +110 -0
  117. package/dist/config/schema.js.map +1 -0
  118. package/dist/core/index.d.ts +12 -0
  119. package/dist/core/index.d.ts.map +1 -0
  120. package/dist/core/index.js +16 -0
  121. package/dist/core/index.js.map +1 -0
  122. package/dist/core/phase-manager.d.ts +53 -0
  123. package/dist/core/phase-manager.d.ts.map +1 -0
  124. package/dist/core/phase-manager.js +124 -0
  125. package/dist/core/phase-manager.js.map +1 -0
  126. package/dist/core/upgrade-state.d.ts +24 -0
  127. package/dist/core/upgrade-state.d.ts.map +1 -0
  128. package/dist/core/upgrade-state.js +32 -0
  129. package/dist/core/upgrade-state.js.map +1 -0
  130. package/dist/discovery/index.d.ts +5 -0
  131. package/dist/discovery/index.d.ts.map +1 -0
  132. package/dist/discovery/index.js +4 -0
  133. package/dist/discovery/index.js.map +1 -0
  134. package/dist/discovery/orchestrator.d.ts +46 -0
  135. package/dist/discovery/orchestrator.d.ts.map +1 -0
  136. package/dist/discovery/orchestrator.js +124 -0
  137. package/dist/discovery/orchestrator.js.map +1 -0
  138. package/dist/discovery/scanners/config-detector.d.ts +24 -0
  139. package/dist/discovery/scanners/config-detector.d.ts.map +1 -0
  140. package/dist/discovery/scanners/config-detector.js +82 -0
  141. package/dist/discovery/scanners/config-detector.js.map +1 -0
  142. package/dist/discovery/scanners/cv-scanner.d.ts +30 -0
  143. package/dist/discovery/scanners/cv-scanner.d.ts.map +1 -0
  144. package/dist/discovery/scanners/cv-scanner.js +85 -0
  145. package/dist/discovery/scanners/cv-scanner.js.map +1 -0
  146. package/dist/discovery/scanners/index.d.ts +6 -0
  147. package/dist/discovery/scanners/index.d.ts.map +1 -0
  148. package/dist/discovery/scanners/index.js +6 -0
  149. package/dist/discovery/scanners/index.js.map +1 -0
  150. package/dist/discovery/scanners/maven-scanner.d.ts +33 -0
  151. package/dist/discovery/scanners/maven-scanner.d.ts.map +1 -0
  152. package/dist/discovery/scanners/maven-scanner.js +96 -0
  153. package/dist/discovery/scanners/maven-scanner.js.map +1 -0
  154. package/dist/discovery/scanners/repo-scanner.d.ts +9 -0
  155. package/dist/discovery/scanners/repo-scanner.d.ts.map +1 -0
  156. package/dist/discovery/scanners/repo-scanner.js +80 -0
  157. package/dist/discovery/scanners/repo-scanner.js.map +1 -0
  158. package/dist/discovery/scanners/version-resolver.d.ts +45 -0
  159. package/dist/discovery/scanners/version-resolver.d.ts.map +1 -0
  160. package/dist/discovery/scanners/version-resolver.js +119 -0
  161. package/dist/discovery/scanners/version-resolver.js.map +1 -0
  162. package/dist/discovery/types.d.ts +156 -0
  163. package/dist/discovery/types.d.ts.map +1 -0
  164. package/dist/discovery/types.js +2 -0
  165. package/dist/discovery/types.js.map +1 -0
  166. package/dist/discovery/validators/index.d.ts +2 -0
  167. package/dist/discovery/validators/index.d.ts.map +1 -0
  168. package/dist/discovery/validators/index.js +2 -0
  169. package/dist/discovery/validators/index.js.map +1 -0
  170. package/dist/discovery/validators/upgrade-validator.d.ts +34 -0
  171. package/dist/discovery/validators/upgrade-validator.d.ts.map +1 -0
  172. package/dist/discovery/validators/upgrade-validator.js +135 -0
  173. package/dist/discovery/validators/upgrade-validator.js.map +1 -0
  174. package/dist/docs/docs-client.d.ts +44 -0
  175. package/dist/docs/docs-client.d.ts.map +1 -0
  176. package/dist/docs/docs-client.js +161 -0
  177. package/dist/docs/docs-client.js.map +1 -0
  178. package/dist/docs/docs-context.d.ts +23 -0
  179. package/dist/docs/docs-context.d.ts.map +1 -0
  180. package/dist/docs/docs-context.js +41 -0
  181. package/dist/docs/docs-context.js.map +1 -0
  182. package/dist/docs/index.d.ts +4 -0
  183. package/dist/docs/index.d.ts.map +1 -0
  184. package/dist/docs/index.js +3 -0
  185. package/dist/docs/index.js.map +1 -0
  186. package/dist/docs/types.d.ts +27 -0
  187. package/dist/docs/types.d.ts.map +1 -0
  188. package/dist/docs/types.js +2 -0
  189. package/dist/docs/types.js.map +1 -0
  190. package/dist/execution/diff-presenter.d.ts +52 -0
  191. package/dist/execution/diff-presenter.d.ts.map +1 -0
  192. package/dist/execution/diff-presenter.js +148 -0
  193. package/dist/execution/diff-presenter.js.map +1 -0
  194. package/dist/execution/executors/ai-assisted.d.ts +28 -0
  195. package/dist/execution/executors/ai-assisted.d.ts.map +1 -0
  196. package/dist/execution/executors/ai-assisted.js +226 -0
  197. package/dist/execution/executors/ai-assisted.js.map +1 -0
  198. package/dist/execution/executors/automated.d.ts +15 -0
  199. package/dist/execution/executors/automated.d.ts.map +1 -0
  200. package/dist/execution/executors/automated.js +37 -0
  201. package/dist/execution/executors/automated.js.map +1 -0
  202. package/dist/execution/executors/cv-gate.d.ts +23 -0
  203. package/dist/execution/executors/cv-gate.d.ts.map +1 -0
  204. package/dist/execution/executors/cv-gate.js +63 -0
  205. package/dist/execution/executors/cv-gate.js.map +1 -0
  206. package/dist/execution/executors/index.d.ts +7 -0
  207. package/dist/execution/executors/index.d.ts.map +1 -0
  208. package/dist/execution/executors/index.js +7 -0
  209. package/dist/execution/executors/index.js.map +1 -0
  210. package/dist/execution/executors/manual.d.ts +18 -0
  211. package/dist/execution/executors/manual.d.ts.map +1 -0
  212. package/dist/execution/executors/manual.js +31 -0
  213. package/dist/execution/executors/manual.js.map +1 -0
  214. package/dist/execution/executors/override-resolution.d.ts +27 -0
  215. package/dist/execution/executors/override-resolution.d.ts.map +1 -0
  216. package/dist/execution/executors/override-resolution.js +79 -0
  217. package/dist/execution/executors/override-resolution.js.map +1 -0
  218. package/dist/execution/executors/version-bump.d.ts +20 -0
  219. package/dist/execution/executors/version-bump.d.ts.map +1 -0
  220. package/dist/execution/executors/version-bump.js +65 -0
  221. package/dist/execution/executors/version-bump.js.map +1 -0
  222. package/dist/execution/file-transformer.d.ts +25 -0
  223. package/dist/execution/file-transformer.d.ts.map +1 -0
  224. package/dist/execution/file-transformer.js +74 -0
  225. package/dist/execution/file-transformer.js.map +1 -0
  226. package/dist/execution/index.d.ts +7 -0
  227. package/dist/execution/index.d.ts.map +1 -0
  228. package/dist/execution/index.js +9 -0
  229. package/dist/execution/index.js.map +1 -0
  230. package/dist/execution/state-manager.d.ts +27 -0
  231. package/dist/execution/state-manager.d.ts.map +1 -0
  232. package/dist/execution/state-manager.js +48 -0
  233. package/dist/execution/state-manager.js.map +1 -0
  234. package/dist/execution/step-executor.d.ts +68 -0
  235. package/dist/execution/step-executor.d.ts.map +1 -0
  236. package/dist/execution/step-executor.js +243 -0
  237. package/dist/execution/step-executor.js.map +1 -0
  238. package/dist/execution/types.d.ts +92 -0
  239. package/dist/execution/types.d.ts.map +1 -0
  240. package/dist/execution/types.js +2 -0
  241. package/dist/execution/types.js.map +1 -0
  242. package/dist/guide/GuideRunner.d.ts +62 -0
  243. package/dist/guide/GuideRunner.d.ts.map +1 -0
  244. package/dist/guide/GuideRunner.js +390 -0
  245. package/dist/guide/GuideRunner.js.map +1 -0
  246. package/dist/guide/chat/ChatContextBuilder.d.ts +44 -0
  247. package/dist/guide/chat/ChatContextBuilder.d.ts.map +1 -0
  248. package/dist/guide/chat/ChatContextBuilder.js +121 -0
  249. package/dist/guide/chat/ChatContextBuilder.js.map +1 -0
  250. package/dist/guide/chat/ChatLoop.d.ts +18 -0
  251. package/dist/guide/chat/ChatLoop.d.ts.map +1 -0
  252. package/dist/guide/chat/ChatLoop.js +59 -0
  253. package/dist/guide/chat/ChatLoop.js.map +1 -0
  254. package/dist/guide/chat/StepCoach.d.ts +22 -0
  255. package/dist/guide/chat/StepCoach.d.ts.map +1 -0
  256. package/dist/guide/chat/StepCoach.js +39 -0
  257. package/dist/guide/chat/StepCoach.js.map +1 -0
  258. package/dist/guide/chat/index.d.ts +4 -0
  259. package/dist/guide/chat/index.d.ts.map +1 -0
  260. package/dist/guide/chat/index.js +4 -0
  261. package/dist/guide/chat/index.js.map +1 -0
  262. package/dist/guide/index.d.ts +3 -0
  263. package/dist/guide/index.d.ts.map +1 -0
  264. package/dist/guide/index.js +2 -0
  265. package/dist/guide/index.js.map +1 -0
  266. package/dist/guide/phases/DiscoveryPhase.d.ts +30 -0
  267. package/dist/guide/phases/DiscoveryPhase.d.ts.map +1 -0
  268. package/dist/guide/phases/DiscoveryPhase.js +238 -0
  269. package/dist/guide/phases/DiscoveryPhase.js.map +1 -0
  270. package/dist/guide/phases/ExecutionPhase.d.ts +80 -0
  271. package/dist/guide/phases/ExecutionPhase.d.ts.map +1 -0
  272. package/dist/guide/phases/ExecutionPhase.js +574 -0
  273. package/dist/guide/phases/ExecutionPhase.js.map +1 -0
  274. package/dist/guide/phases/PlanPhase.d.ts +22 -0
  275. package/dist/guide/phases/PlanPhase.d.ts.map +1 -0
  276. package/dist/guide/phases/PlanPhase.js +200 -0
  277. package/dist/guide/phases/PlanPhase.js.map +1 -0
  278. package/dist/guide/phases/index.d.ts +4 -0
  279. package/dist/guide/phases/index.d.ts.map +1 -0
  280. package/dist/guide/phases/index.js +4 -0
  281. package/dist/guide/phases/index.js.map +1 -0
  282. package/dist/guide/rendering/formatters.d.ts +126 -0
  283. package/dist/guide/rendering/formatters.d.ts.map +1 -0
  284. package/dist/guide/rendering/formatters.js +340 -0
  285. package/dist/guide/rendering/formatters.js.map +1 -0
  286. package/dist/guide/rendering/index.d.ts +2 -0
  287. package/dist/guide/rendering/index.d.ts.map +1 -0
  288. package/dist/guide/rendering/index.js +2 -0
  289. package/dist/guide/rendering/index.js.map +1 -0
  290. package/dist/guide/rendering/platform-changes.d.ts +18 -0
  291. package/dist/guide/rendering/platform-changes.d.ts.map +1 -0
  292. package/dist/guide/rendering/platform-changes.js +86 -0
  293. package/dist/guide/rendering/platform-changes.js.map +1 -0
  294. package/dist/guide/types.d.ts +100 -0
  295. package/dist/guide/types.d.ts.map +1 -0
  296. package/dist/guide/types.js +2 -0
  297. package/dist/guide/types.js.map +1 -0
  298. package/dist/index.d.ts +3 -0
  299. package/dist/index.d.ts.map +1 -0
  300. package/dist/index.js +138 -0
  301. package/dist/index.js.map +1 -0
  302. package/dist/manifests/maven-settings.d.ts +7 -0
  303. package/dist/manifests/maven-settings.d.ts.map +1 -0
  304. package/dist/manifests/maven-settings.js +33 -0
  305. package/dist/manifests/maven-settings.js.map +1 -0
  306. package/dist/manifests/parent-properties.d.ts +12 -0
  307. package/dist/manifests/parent-properties.d.ts.map +1 -0
  308. package/dist/manifests/parent-properties.js +28 -0
  309. package/dist/manifests/parent-properties.js.map +1 -0
  310. package/dist/manifests/schema.json +198 -0
  311. package/dist/manifests/unreleased.yaml +3 -0
  312. package/dist/mcp/index.d.ts +3 -0
  313. package/dist/mcp/index.d.ts.map +1 -0
  314. package/dist/mcp/index.js +13 -0
  315. package/dist/mcp/index.js.map +1 -0
  316. package/dist/mcp/resources/index.d.ts +32 -0
  317. package/dist/mcp/resources/index.d.ts.map +1 -0
  318. package/dist/mcp/resources/index.js +55 -0
  319. package/dist/mcp/resources/index.js.map +1 -0
  320. package/dist/mcp/server.d.ts +9 -0
  321. package/dist/mcp/server.d.ts.map +1 -0
  322. package/dist/mcp/server.js +162 -0
  323. package/dist/mcp/server.js.map +1 -0
  324. package/dist/mcp/tools/complete-step.d.ts +26 -0
  325. package/dist/mcp/tools/complete-step.d.ts.map +1 -0
  326. package/dist/mcp/tools/complete-step.js +73 -0
  327. package/dist/mcp/tools/complete-step.js.map +1 -0
  328. package/dist/mcp/tools/create-upgrade-plan.d.ts +36 -0
  329. package/dist/mcp/tools/create-upgrade-plan.d.ts.map +1 -0
  330. package/dist/mcp/tools/create-upgrade-plan.js +143 -0
  331. package/dist/mcp/tools/create-upgrade-plan.js.map +1 -0
  332. package/dist/mcp/tools/discover-project.d.ts +33 -0
  333. package/dist/mcp/tools/discover-project.d.ts.map +1 -0
  334. package/dist/mcp/tools/discover-project.js +96 -0
  335. package/dist/mcp/tools/discover-project.js.map +1 -0
  336. package/dist/mcp/tools/get-next-step.d.ts +54 -0
  337. package/dist/mcp/tools/get-next-step.d.ts.map +1 -0
  338. package/dist/mcp/tools/get-next-step.js +110 -0
  339. package/dist/mcp/tools/get-next-step.js.map +1 -0
  340. package/dist/mcp/tools/get-upgrade-status.d.ts +25 -0
  341. package/dist/mcp/tools/get-upgrade-status.d.ts.map +1 -0
  342. package/dist/mcp/tools/get-upgrade-status.js +79 -0
  343. package/dist/mcp/tools/get-upgrade-status.js.map +1 -0
  344. package/dist/mcp/tools/upgrade-targets.d.ts +19 -0
  345. package/dist/mcp/tools/upgrade-targets.d.ts.map +1 -0
  346. package/dist/mcp/tools/upgrade-targets.js +132 -0
  347. package/dist/mcp/tools/upgrade-targets.js.map +1 -0
  348. package/dist/planning/ai-analyzer.d.ts +20 -0
  349. package/dist/planning/ai-analyzer.d.ts.map +1 -0
  350. package/dist/planning/ai-analyzer.js +97 -0
  351. package/dist/planning/ai-analyzer.js.map +1 -0
  352. package/dist/planning/index.d.ts +8 -0
  353. package/dist/planning/index.d.ts.map +1 -0
  354. package/dist/planning/index.js +13 -0
  355. package/dist/planning/index.js.map +1 -0
  356. package/dist/planning/manifest-loader.d.ts +54 -0
  357. package/dist/planning/manifest-loader.d.ts.map +1 -0
  358. package/dist/planning/manifest-loader.js +233 -0
  359. package/dist/planning/manifest-loader.js.map +1 -0
  360. package/dist/planning/manifest-schema.d.ts +41 -0
  361. package/dist/planning/manifest-schema.d.ts.map +1 -0
  362. package/dist/planning/manifest-schema.js +71 -0
  363. package/dist/planning/manifest-schema.js.map +1 -0
  364. package/dist/planning/override-analyzer.d.ts +12 -0
  365. package/dist/planning/override-analyzer.d.ts.map +1 -0
  366. package/dist/planning/override-analyzer.js +42 -0
  367. package/dist/planning/override-analyzer.js.map +1 -0
  368. package/dist/planning/plan-generator.d.ts +15 -0
  369. package/dist/planning/plan-generator.d.ts.map +1 -0
  370. package/dist/planning/plan-generator.js +250 -0
  371. package/dist/planning/plan-generator.js.map +1 -0
  372. package/dist/planning/project-matcher.d.ts +65 -0
  373. package/dist/planning/project-matcher.d.ts.map +1 -0
  374. package/dist/planning/project-matcher.js +265 -0
  375. package/dist/planning/project-matcher.js.map +1 -0
  376. package/dist/planning/types.d.ts +237 -0
  377. package/dist/planning/types.d.ts.map +1 -0
  378. package/dist/planning/types.js +2 -0
  379. package/dist/planning/types.js.map +1 -0
  380. package/dist/types/index.d.ts +90 -0
  381. package/dist/types/index.d.ts.map +1 -0
  382. package/dist/types/index.js +2 -0
  383. package/dist/types/index.js.map +1 -0
  384. package/dist/utils/command-helpers.d.ts +14 -0
  385. package/dist/utils/command-helpers.d.ts.map +1 -0
  386. package/dist/utils/command-helpers.js +18 -0
  387. package/dist/utils/command-helpers.js.map +1 -0
  388. package/dist/utils/diff.d.ts +42 -0
  389. package/dist/utils/diff.d.ts.map +1 -0
  390. package/dist/utils/diff.js +80 -0
  391. package/dist/utils/diff.js.map +1 -0
  392. package/dist/utils/error.d.ts +5 -0
  393. package/dist/utils/error.d.ts.map +1 -0
  394. package/dist/utils/error.js +8 -0
  395. package/dist/utils/error.js.map +1 -0
  396. package/dist/utils/fs.d.ts +50 -0
  397. package/dist/utils/fs.d.ts.map +1 -0
  398. package/dist/utils/fs.js +117 -0
  399. package/dist/utils/fs.js.map +1 -0
  400. package/dist/utils/index.d.ts +9 -0
  401. package/dist/utils/index.d.ts.map +1 -0
  402. package/dist/utils/index.js +9 -0
  403. package/dist/utils/index.js.map +1 -0
  404. package/dist/utils/logger.d.ts +31 -0
  405. package/dist/utils/logger.d.ts.map +1 -0
  406. package/dist/utils/logger.js +62 -0
  407. package/dist/utils/logger.js.map +1 -0
  408. package/dist/utils/output-writer.d.ts +26 -0
  409. package/dist/utils/output-writer.d.ts.map +1 -0
  410. package/dist/utils/output-writer.js +62 -0
  411. package/dist/utils/output-writer.js.map +1 -0
  412. package/dist/utils/pom-parser.d.ts +94 -0
  413. package/dist/utils/pom-parser.d.ts.map +1 -0
  414. package/dist/utils/pom-parser.js +120 -0
  415. package/dist/utils/pom-parser.js.map +1 -0
  416. package/dist/utils/spinner.d.ts +35 -0
  417. package/dist/utils/spinner.d.ts.map +1 -0
  418. package/dist/utils/spinner.js +46 -0
  419. package/dist/utils/spinner.js.map +1 -0
  420. package/package.json +75 -0
@@ -0,0 +1,340 @@
1
+ import chalk from 'chalk';
2
+ /**
3
+ * Format a phase progress header.
4
+ *
5
+ * @param phaseNumber - Current phase number (1-indexed)
6
+ * @param totalPhases - Total number of phases
7
+ * @param name - Display name for the phase
8
+ * @returns Formatted header string with separator line
9
+ */
10
+ export function formatPhaseHeader(phaseNumber, totalPhases, name) {
11
+ const lines = [
12
+ '',
13
+ chalk.bold(`● Phase ${phaseNumber} of ${totalPhases} — ${name}`),
14
+ chalk.dim('━'.repeat(40)),
15
+ '',
16
+ ];
17
+ return lines.join('\n');
18
+ }
19
+ /**
20
+ * Format a version card with AI-generated summary.
21
+ *
22
+ * @param summary - Version summary containing headline and bullet points
23
+ * @returns Formatted card string showing version details
24
+ */
25
+ export function formatVersionCard(summary) {
26
+ const lines = [
27
+ ` ${chalk.bold(summary.version)} — ${summary.headline}`,
28
+ ...summary.bullets.map((b) => ` ${chalk.dim('•')} ${b}`),
29
+ chalk.dim(` ${summary.automatedCount} automated, ${summary.reviewCount} need review`),
30
+ ];
31
+ return lines.join('\n');
32
+ }
33
+ /**
34
+ * Format a step briefing header for the execution phase.
35
+ *
36
+ * Displays step number, description, risk level indicator, type, automation
37
+ * status, and count of affected files.
38
+ *
39
+ * @param input - Step briefing data
40
+ * @returns Formatted briefing string
41
+ */
42
+ export function formatStepBriefing(input) {
43
+ const riskBlocks = '■'.repeat(Math.min(input.riskLevel, 5)) +
44
+ '□'.repeat(Math.max(5 - input.riskLevel, 0));
45
+ const riskLabels = ['Very Low', 'Low', 'Medium', 'High', 'Critical'];
46
+ const riskLabel = riskLabels[Math.min(Math.max(input.riskLevel - 1, 0), 4)];
47
+ const automationLabel = input.automatable === 'true'
48
+ ? chalk.green('Automated')
49
+ : input.automatable === 'partial'
50
+ ? chalk.yellow('AI-Assisted')
51
+ : chalk.red('Manual');
52
+ const lines = [
53
+ '',
54
+ chalk.bold(`Step ${input.stepNumber}/${input.totalSteps}: ${input.description}`),
55
+ `Risk: ${riskBlocks} (${riskLabel}) | Type: ${input.type} | ${automationLabel}`,
56
+ ];
57
+ if (input.affectedFileCount > 0) {
58
+ lines.push(chalk.dim(`Files affected: ${input.affectedFileCount}`));
59
+ }
60
+ return lines.join('\n');
61
+ }
62
+ /**
63
+ * Format a progress bar for execution phase.
64
+ *
65
+ * @param current - Number of completed steps
66
+ * @param total - Total number of steps
67
+ * @returns Formatted progress bar string with fraction
68
+ */
69
+ export function formatProgressBar(current, total) {
70
+ const width = 20;
71
+ const filled = Math.round((current / total) * width);
72
+ const bar = '█'.repeat(filled) + '░'.repeat(width - filled);
73
+ return `Progress: [${bar}] ${current}/${total}`;
74
+ }
75
+ // ── Banner layout constants (shared by welcome & resume banners) ──────────
76
+ /** Total inner width of the banner box (between │ borders). */
77
+ const BANNER_BOX_WIDTH = 56;
78
+ /** Visible character width of each logo line (excluding ANSI codes). */
79
+ const LOGO_VISIBLE_WIDTH = 9;
80
+ /** Left padding before the logo inside the box. */
81
+ const LOGO_LEFT_PAD = 2;
82
+ /** Gap between logo and text columns. */
83
+ const LOGO_TEXT_GAP = 3;
84
+ /** Column where text starts (left pad + logo width + gap). */
85
+ const BANNER_TEXT_START_COL = LOGO_LEFT_PAD + LOGO_VISIBLE_WIDTH + LOGO_TEXT_GAP;
86
+ /**
87
+ * Render the Bloomreach logo as three colored lines.
88
+ *
89
+ * Uses chalk RGB for Bloomreach brand colors:
90
+ * - Yellow (244, 208, 0) for the diamond shape
91
+ * - Blue (0, 47, 108) for the center "b" on yellow background
92
+ *
93
+ * @returns Array of 3 logo lines (each 9 visible chars wide)
94
+ */
95
+ function bloomreachLogo() {
96
+ const y = chalk.rgb(244, 208, 0);
97
+ const yd = chalk.dim.rgb(244, 208, 0);
98
+ const b = chalk.bgRgb(244, 208, 0).rgb(0, 47, 108);
99
+ return [
100
+ ` ${yd('░')}${y('▓███▓')}${yd('░')} `,
101
+ `${y('▓███')}${b('b')}${y('███▓')}`,
102
+ ` ${yd('░')}${y('▓███▓')}${yd('░')} `,
103
+ ];
104
+ }
105
+ /**
106
+ * Format the welcome banner shown at guide start.
107
+ *
108
+ * @param currentVersion - Currently detected brXM version, if already known
109
+ * @returns Formatted welcome banner string
110
+ */
111
+ export function formatWelcomeBanner(currentVersion) {
112
+ const logo = bloomreachLogo();
113
+ const title = 'brXM Upgrade Guide';
114
+ const versionText = currentVersion
115
+ ? `Current version: ${currentVersion}`
116
+ : 'Discover, plan, and execute your upgrade';
117
+ const emptyLinePad = ' '.repeat(BANNER_BOX_WIDTH - BANNER_TEXT_START_COL);
118
+ const titlePad = ' '.repeat(Math.max(0, BANNER_BOX_WIDTH - BANNER_TEXT_START_COL - title.length));
119
+ const versionPad = ' '.repeat(Math.max(0, BANNER_BOX_WIDTH - BANNER_TEXT_START_COL - versionText.length));
120
+ const lines = [
121
+ '',
122
+ chalk.bold('╭' + '─'.repeat(BANNER_BOX_WIDTH) + '╮'),
123
+ chalk.bold('│') + ' '.repeat(LOGO_LEFT_PAD) + logo[0] + ' '.repeat(LOGO_TEXT_GAP) + emptyLinePad + chalk.bold('│'),
124
+ chalk.bold('│') + ' '.repeat(LOGO_LEFT_PAD) + logo[1] + ' '.repeat(LOGO_TEXT_GAP) + title + titlePad + chalk.bold('│'),
125
+ chalk.bold('│') + ' '.repeat(LOGO_LEFT_PAD) + logo[2] + ' '.repeat(LOGO_TEXT_GAP) + versionText + versionPad + chalk.bold('│'),
126
+ chalk.bold('╰' + '─'.repeat(BANNER_BOX_WIDTH) + '╯'),
127
+ '',
128
+ ];
129
+ return lines.join('\n');
130
+ }
131
+ /**
132
+ * Format the resume detection banner shown when prior state exists.
133
+ *
134
+ * @param state - Resume state containing discovery, plan, and execution info
135
+ * @returns Formatted resume banner string
136
+ */
137
+ export function formatResumeBanner(state) {
138
+ const logo = bloomreachLogo();
139
+ const title = 'brXM Upgrade Guide';
140
+ const subtitle = 'Previous session detected';
141
+ const emptyLinePad = ' '.repeat(BANNER_BOX_WIDTH - BANNER_TEXT_START_COL);
142
+ const titlePad = ' '.repeat(Math.max(0, BANNER_BOX_WIDTH - BANNER_TEXT_START_COL - title.length));
143
+ const subtitlePad = ' '.repeat(Math.max(0, BANNER_BOX_WIDTH - BANNER_TEXT_START_COL - subtitle.length));
144
+ const lines = [
145
+ '',
146
+ chalk.bold('╭' + '─'.repeat(BANNER_BOX_WIDTH) + '╮'),
147
+ chalk.bold('│') + ' '.repeat(LOGO_LEFT_PAD) + logo[0] + ' '.repeat(LOGO_TEXT_GAP) + emptyLinePad + chalk.bold('│'),
148
+ chalk.bold('│') + ' '.repeat(LOGO_LEFT_PAD) + logo[1] + ' '.repeat(LOGO_TEXT_GAP) + title + titlePad + chalk.bold('│'),
149
+ chalk.bold('│') + ' '.repeat(LOGO_LEFT_PAD) + logo[2] + ' '.repeat(LOGO_TEXT_GAP) + subtitle + subtitlePad + chalk.bold('│'),
150
+ chalk.bold('╰' + '─'.repeat(BANNER_BOX_WIDTH) + '╯'),
151
+ '',
152
+ 'Found existing upgrade state:',
153
+ ];
154
+ if (state.hasDiscovery) {
155
+ lines.push(` ${chalk.green('•')} Discovery: ${chalk.green('✓')} completed`);
156
+ }
157
+ if (state.hasPlan) {
158
+ lines.push(` ${chalk.green('•')} Plan: ${chalk.green('✓')} generated`);
159
+ }
160
+ if (state.hasExecution && state.executionState) {
161
+ const completed = state.executionState.completedSteps.length;
162
+ lines.push(` ${chalk.green('•')} Execution: ${completed} steps completed`);
163
+ }
164
+ lines.push('');
165
+ return lines.join('\n');
166
+ }
167
+ /**
168
+ * Format the 3-step explanation shown after the welcome banner.
169
+ *
170
+ * @returns Formatted intro text describing the three upgrade phases
171
+ */
172
+ export function formatIntroExplanation() {
173
+ return [
174
+ '',
175
+ chalk.dim('This tool will guide you through upgrading your brXM'),
176
+ chalk.dim('project in three steps:'),
177
+ '',
178
+ ' 1. ' + chalk.bold('Discover') + ' \u2014 scan your project and check readiness',
179
+ ' 2. ' + chalk.bold('Plan') + ' \u2014 create a step-by-step upgrade plan',
180
+ ' 3. ' + chalk.bold('Execute') + ' \u2014 apply changes with guidance',
181
+ '',
182
+ chalk.dim('We will detect your current version during discovery and let you'),
183
+ chalk.dim('choose a target version before planning the upgrade.'),
184
+ '',
185
+ ].join('\n');
186
+ }
187
+ /**
188
+ * Format a brief phase intro description.
189
+ *
190
+ * @param phaseName - Name of the phase ('Discover', 'Plan', or 'Execute')
191
+ * @param context - Optional dynamic values for the phase intro
192
+ * @returns Formatted phase intro text
193
+ */
194
+ export function formatPhaseIntro(phaseName, context) {
195
+ switch (phaseName) {
196
+ case 'Discover':
197
+ return [
198
+ chalk.dim('We\'ll detect your current version, let you pick a target,'),
199
+ chalk.dim('then scan your project to check upgrade readiness.'),
200
+ '',
201
+ ].join('\n');
202
+ case 'Plan':
203
+ if (context?.totalChanges && context.fromVersion && context.toVersion) {
204
+ return [
205
+ chalk.dim(`We'll analyze all ${context.totalChanges} changes in the ${context.fromVersion} → ${context.toVersion}`),
206
+ chalk.dim('upgrade and organize them into a step-by-step plan.'),
207
+ '',
208
+ ].join('\n');
209
+ }
210
+ return [
211
+ chalk.dim('We\'ll analyze all changes and organize them into a step-by-step plan.'),
212
+ '',
213
+ ].join('\n');
214
+ case 'Execute':
215
+ return [
216
+ chalk.dim('We\'ll walk through each step of the plan. For each change'),
217
+ chalk.dim('you can apply it, preview the diff, ask questions, or skip.'),
218
+ '',
219
+ ].join('\n');
220
+ default:
221
+ return '';
222
+ }
223
+ }
224
+ /**
225
+ * Format a transition block between phases.
226
+ *
227
+ * Returns the display text (without the continue prompt — that's for inquirer).
228
+ *
229
+ * @param message - Transition message with whatHappened and whatIsNext
230
+ * @returns Formatted transition text
231
+ */
232
+ export function formatTransition(message) {
233
+ const lines = [
234
+ '',
235
+ chalk.green('✓ ') + chalk.bold(message.whatHappened.split('\n')[0]),
236
+ '',
237
+ ...message.whatHappened.split('\n').slice(1).map((l) => ' ' + l),
238
+ '',
239
+ ...message.whatIsNext.split('\n').map((l) => ' ' + l),
240
+ '',
241
+ ];
242
+ return lines.join('\n');
243
+ }
244
+ /**
245
+ * Format the final outro after execution completes.
246
+ *
247
+ * Includes summary statistics, manual steps remaining, and next-step guidance.
248
+ *
249
+ * @param data - Outro data including versions, counts, duration, and manual steps
250
+ * @returns Formatted outro text
251
+ */
252
+ export function formatOutro(data) {
253
+ const lines = [
254
+ '',
255
+ chalk.green('✓ ') + chalk.bold(`Upgrade complete — ${data.fromVersion} → ${data.toVersion}`),
256
+ '',
257
+ ` Applied: ${data.applied}`,
258
+ ` Skipped: ${data.skipped}${data.skipped > 0 ? ' (manual review needed)' : ''}`,
259
+ ];
260
+ if (data.failed > 0) {
261
+ lines.push(` Failed: ${data.failed}`);
262
+ }
263
+ lines.push(` Duration: ${Math.round(data.duration / 1000)}s`);
264
+ if (data.manualStepsRemaining.length > 0) {
265
+ lines.push('');
266
+ lines.push(chalk.bold(' Manual Steps Remaining:'));
267
+ for (const step of data.manualStepsRemaining) {
268
+ lines.push(` ${chalk.yellow('□')} Step ${step.stepNumber}: ${step.description}`);
269
+ if (step.manualSteps) {
270
+ for (const ms of step.manualSteps) {
271
+ lines.push(` ${chalk.dim('•')} ${ms}`);
272
+ }
273
+ }
274
+ }
275
+ }
276
+ lines.push('');
277
+ lines.push(chalk.bold(' What\'s next:'));
278
+ lines.push(` • Review applied changes: ${chalk.dim('git diff')}`);
279
+ lines.push(` • Build and test: ${chalk.dim('mvn clean install')}`);
280
+ if (data.failed > 0) {
281
+ lines.push(` • Re-run failed steps: ${chalk.dim('brxm-upgrade execute --resume')}`);
282
+ }
283
+ lines.push(` • View your upgrade plan: ${chalk.dim('.brxm-upgrade/plan.json')}`);
284
+ if (data.manualStepsRemaining.length > 0) {
285
+ lines.push(` • Complete ${data.manualStepsRemaining.length} manual step(s) listed above`);
286
+ }
287
+ lines.push('');
288
+ lines.push(chalk.dim(' For additional guidance, consult the upgrade documentation'));
289
+ lines.push(chalk.dim(' at https://xmdocumentation.bloomreach.com'));
290
+ lines.push('');
291
+ return lines.join('\n');
292
+ }
293
+ /**
294
+ * Word-wrap and indent text for clean terminal display.
295
+ *
296
+ * Long paragraphs are wrapped so that every visual line starts with the
297
+ * indent — no ragged left edge from terminal line-wrapping. Blank lines
298
+ * between paragraphs are preserved.
299
+ *
300
+ * @param text - Raw text to indent and wrap
301
+ * @param indent - Number of spaces to indent (default 2)
302
+ * @param maxWidth - Target line width including indent (default 80)
303
+ */
304
+ export function wrapIndentedText(text, indent = 2, maxWidth = 80) {
305
+ const pad = ' '.repeat(indent);
306
+ const contentWidth = maxWidth - indent;
307
+ return text
308
+ .split('\n')
309
+ .flatMap((line) => {
310
+ if (line.trim() === '')
311
+ return [''];
312
+ return wordWrap(line.trim(), contentWidth).map((wrapped) => pad + wrapped);
313
+ })
314
+ .join('\n');
315
+ }
316
+ /**
317
+ * Break a single line into multiple lines at word boundaries,
318
+ * each no longer than maxWidth characters.
319
+ */
320
+ function wordWrap(line, maxWidth) {
321
+ if (line.length <= maxWidth)
322
+ return [line];
323
+ const result = [];
324
+ let remaining = line;
325
+ while (remaining.length > maxWidth) {
326
+ // Find the last space within maxWidth
327
+ let breakAt = remaining.lastIndexOf(' ', maxWidth);
328
+ if (breakAt <= 0) {
329
+ // No space found — force break at maxWidth
330
+ breakAt = maxWidth;
331
+ }
332
+ result.push(remaining.slice(0, breakAt));
333
+ remaining = remaining.slice(breakAt).trimStart();
334
+ }
335
+ if (remaining.length > 0) {
336
+ result.push(remaining);
337
+ }
338
+ return result;
339
+ }
340
+ //# sourceMappingURL=formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../src/guide/rendering/formatters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { formatPhaseHeader, formatVersionCard, formatStepBriefing, formatProgressBar, formatWelcomeBanner, formatResumeBanner, } from './formatters.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/guide/rendering/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { formatPhaseHeader, formatVersionCard, formatStepBriefing, formatProgressBar, formatWelcomeBanner, formatResumeBanner, } from './formatters.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/guide/rendering/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ManifestEntry, ManifestEntryType } from '../../planning/types.js';
2
+ type InformationalCategory = 'security' | 'performance' | 'ui_ux' | 'internal_cleanup' | 'configuration';
3
+ /** Map an entry type to an informational category. */
4
+ export declare function categoryFromType(type: ManifestEntryType): InformationalCategory;
5
+ /** Group informational entries by category. */
6
+ export declare function groupByCategory(entries: ManifestEntry[]): Map<InformationalCategory, ManifestEntry[]>;
7
+ /** Format the Platform Changes Summary for CLI output. */
8
+ export declare function formatPlatformChangesSummary(entries: ManifestEntry[], fromVersion: string, toVersion: string): string;
9
+ /** Build structured payload for MCP responses, grouping entries by category. */
10
+ export declare function buildPlatformChangesPayload(entries: ManifestEntry[]): Array<{
11
+ category: string;
12
+ entries: Array<{
13
+ id: string;
14
+ summary: string;
15
+ }>;
16
+ }>;
17
+ export {};
18
+ //# sourceMappingURL=platform-changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-changes.d.ts","sourceRoot":"","sources":["../../../src/guide/rendering/platform-changes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEhF,KAAK,qBAAqB,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAqBzG,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,CAE/E;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,qBAAqB,EAAE,aAAa,EAAE,CAAC,CAWrG;AAED,0DAA0D;AAC1D,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,aAAa,EAAE,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAoCR;AAED,gFAAgF;AAChF,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,aAAa,EAAE,GACvB,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAsB9E"}
@@ -0,0 +1,86 @@
1
+ import chalk from 'chalk';
2
+ const CATEGORY_LABELS = {
3
+ security: 'Security',
4
+ performance: 'Performance',
5
+ ui_ux: 'UI/UX',
6
+ internal_cleanup: 'Internal Cleanup',
7
+ configuration: 'Configuration',
8
+ };
9
+ const TYPE_TO_CATEGORY = {
10
+ security_configuration: 'security',
11
+ repository_migration: 'internal_cleanup',
12
+ configuration_migration: 'configuration',
13
+ frontend_migration: 'ui_ux',
14
+ maven_update: 'configuration',
15
+ dependency_migration: 'configuration',
16
+ namespace_migration: 'configuration',
17
+ api_migration: 'configuration',
18
+ };
19
+ /** Map an entry type to an informational category. */
20
+ export function categoryFromType(type) {
21
+ return TYPE_TO_CATEGORY[type] ?? 'configuration';
22
+ }
23
+ /** Group informational entries by category. */
24
+ export function groupByCategory(entries) {
25
+ const groups = new Map();
26
+ for (const entry of entries) {
27
+ const category = entry.informational_category ?? categoryFromType(entry.type);
28
+ const list = groups.get(category) ?? [];
29
+ list.push(entry);
30
+ groups.set(category, list);
31
+ }
32
+ return groups;
33
+ }
34
+ /** Format the Platform Changes Summary for CLI output. */
35
+ export function formatPlatformChangesSummary(entries, fromVersion, toVersion) {
36
+ if (entries.length === 0)
37
+ return '';
38
+ const lines = [];
39
+ const title = `Platform Changes Summary (${fromVersion} → ${toVersion})`;
40
+ lines.push('');
41
+ lines.push(chalk.cyan('╭' + '─'.repeat(title.length + 4) + '╮'));
42
+ lines.push(chalk.cyan('│ ') + chalk.bold.white(title) + chalk.cyan(' │'));
43
+ lines.push(chalk.cyan('╰' + '─'.repeat(title.length + 4) + '╯'));
44
+ lines.push('');
45
+ const grouped = groupByCategory(entries);
46
+ const categoryOrder = [
47
+ 'security', 'performance', 'ui_ux', 'internal_cleanup', 'configuration',
48
+ ];
49
+ for (const category of categoryOrder) {
50
+ const group = grouped.get(category);
51
+ if (!group || group.length === 0)
52
+ continue;
53
+ const label = CATEGORY_LABELS[category];
54
+ const count = group.length;
55
+ lines.push(chalk.bold(`${label} (${count} change${count === 1 ? '' : 's'})`));
56
+ for (const entry of group) {
57
+ const summary = entry.changelog_summary ?? entry.description;
58
+ const ticket = entry.jira_ticket ? ` (${entry.jira_ticket})` : '';
59
+ lines.push(` - ${summary}${ticket}`);
60
+ }
61
+ lines.push('');
62
+ }
63
+ return lines.join('\n');
64
+ }
65
+ /** Build structured payload for MCP responses, grouping entries by category. */
66
+ export function buildPlatformChangesPayload(entries) {
67
+ const grouped = groupByCategory(entries);
68
+ const result = [];
69
+ const categoryOrder = [
70
+ 'security', 'performance', 'ui_ux', 'internal_cleanup', 'configuration',
71
+ ];
72
+ for (const category of categoryOrder) {
73
+ const group = grouped.get(category);
74
+ if (!group || group.length === 0)
75
+ continue;
76
+ result.push({
77
+ category: CATEGORY_LABELS[category],
78
+ entries: group.map((e) => ({
79
+ id: e.id,
80
+ summary: e.changelog_summary ?? e.description,
81
+ })),
82
+ });
83
+ }
84
+ return result;
85
+ }
86
+ //# sourceMappingURL=platform-changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-changes.js","sourceRoot":"","sources":["../../../src/guide/rendering/platform-changes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import type { AIClient } from '../ai/types.js';
2
+ import type { BrxmUpgradeConfig } from '../config/index.js';
3
+ import type { ProjectContext } from '../discovery/types.js';
4
+ import type { UpgradePlan, PlanStep, ManifestLoadOptions } from '../planning/types.js';
5
+ import type { ExecutionState, StepExecutionResult } from '../execution/types.js';
6
+ import type { DocsClient } from '../docs/docs-client.js';
7
+ import type { UpgradeState } from '../core/upgrade-state.js';
8
+ /**
9
+ * Structured transition message shown between phases.
10
+ * Explains what happened and what's coming next.
11
+ */
12
+ export interface TransitionMessage {
13
+ /** What this phase accomplished (e.g., "We scanned your project and found 5 modules...") */
14
+ whatHappened: string;
15
+ /** What the next phase will do (e.g., "We'll analyze all 27 changes...") */
16
+ whatIsNext: string;
17
+ /** The continue prompt (e.g., "Continue to planning?") */
18
+ continuePrompt: string;
19
+ }
20
+ /**
21
+ * Result of a single guide phase.
22
+ */
23
+ export interface PhaseResult {
24
+ success: boolean;
25
+ summary: string;
26
+ data?: unknown;
27
+ error?: string;
28
+ transitionMessage?: TransitionMessage;
29
+ }
30
+ /**
31
+ * Shared context passed between guide phases.
32
+ * Accumulates state as each phase completes.
33
+ */
34
+ export interface GuideContext {
35
+ projectRoot: string;
36
+ config: BrxmUpgradeConfig;
37
+ manifestOptions: ManifestLoadOptions;
38
+ ai?: AIClient;
39
+ docsClient?: DocsClient;
40
+ currentVersion?: string;
41
+ targetVersion?: string;
42
+ discovery?: ProjectContext;
43
+ plan?: UpgradePlan;
44
+ executionState?: ExecutionState;
45
+ executionResults?: StepExecutionResult[];
46
+ }
47
+ /**
48
+ * Interface for a single guide phase.
49
+ */
50
+ export interface GuidePhase {
51
+ readonly name: string;
52
+ readonly phaseNumber: number;
53
+ readonly totalPhases: number;
54
+ readonly canChat: boolean;
55
+ run(context: GuideContext): Promise<PhaseResult>;
56
+ }
57
+ /**
58
+ * AI-generated summary for a single version.
59
+ */
60
+ export interface VersionSummary {
61
+ version: string;
62
+ headline: string;
63
+ bullets: string[];
64
+ automatedCount: number;
65
+ reviewCount: number;
66
+ }
67
+ /**
68
+ * Cache structure for version summaries.
69
+ */
70
+ export interface VersionSummaryCache {
71
+ /** ISO-8601 timestamp string (e.g. `"2023-01-01T12:00:00.000Z"`) */
72
+ generatedAt: string;
73
+ fromVersion: string;
74
+ summaries: VersionSummary[];
75
+ }
76
+ /**
77
+ * Final summary of the guided upgrade run.
78
+ */
79
+ export interface GuideSummary {
80
+ fromVersion: string;
81
+ toVersion: string;
82
+ completedSteps: number;
83
+ skippedSteps: number;
84
+ manualStepsRemaining: PlanStep[];
85
+ /** Total elapsed time in milliseconds */
86
+ duration: number;
87
+ }
88
+ /**
89
+ * Resume state detected on startup.
90
+ */
91
+ export interface ResumeState {
92
+ hasDiscovery: boolean;
93
+ hasPlan: boolean;
94
+ hasExecution: boolean;
95
+ discovery?: ProjectContext;
96
+ plan?: UpgradePlan;
97
+ executionState?: ExecutionState;
98
+ upgradeState?: UpgradeState;
99
+ }
100
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/guide/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/guide/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}