@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,147 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { DiscoveryOrchestrator } from '../discovery/index.js';
4
+ import { createLogger } from '../utils/logger.js';
5
+ import { createSpinner } from '../utils/spinner.js';
6
+ import { writeTextFile, getOutputDir, joinPaths } from '../utils/fs.js';
7
+ import { getParentConfig } from '../utils/command-helpers.js';
8
+ /**
9
+ * Format a validation issue for display.
10
+ */
11
+ function formatIssue(issue) {
12
+ const icons = {
13
+ error: 'x',
14
+ warning: '!',
15
+ info: 'i',
16
+ };
17
+ const colors = {
18
+ error: chalk.red,
19
+ warning: chalk.yellow,
20
+ info: chalk.blue,
21
+ };
22
+ const icon = icons[issue.severity];
23
+ const color = colors[issue.severity];
24
+ const file = issue.file ? chalk.gray(` (${issue.file})`) : '';
25
+ return `${icon} ${color(issue.message)}${file}`;
26
+ }
27
+ /**
28
+ * Display discovery results in a formatted way.
29
+ */
30
+ /* eslint-disable no-console */
31
+ function displayResults(context) {
32
+ console.log('\n' + chalk.bold('Discovery Summary'));
33
+ console.log('-'.repeat(50));
34
+ // Version info
35
+ console.log(`\n${chalk.cyan('brXM Version:')} ${context.build.brxmVersion}`);
36
+ console.log(`${chalk.cyan('Parent POM:')} ${context.build.parentGroupId}:${context.build.parentArtifactId}`);
37
+ // Modules
38
+ console.log(`\n${chalk.cyan('Maven Modules:')} ${context.build.moduleCount}`);
39
+ for (const module of context.build.modules.slice(0, 5)) {
40
+ console.log(` - ${module.name} (${module.packaging})`);
41
+ }
42
+ if (context.build.modules.length > 5) {
43
+ console.log(chalk.gray(` ... and ${context.build.modules.length - 5} more`));
44
+ }
45
+ // Code stats
46
+ console.log(`\n${chalk.cyan('Custom Code:')} ${context.build.totalJavaFiles} Java files`);
47
+ // Repository info
48
+ if (context.repo.groovyScripts.length > 0) {
49
+ console.log(`${chalk.cyan('Groovy Scripts:')} ${context.repo.groovyScripts.length}`);
50
+ }
51
+ if (context.repo.hasBootstrap) {
52
+ console.log(`${chalk.cyan('Bootstrap:')} ${context.repo.bootstrapPaths.length} HCM files`);
53
+ }
54
+ // Config artifacts
55
+ if (context.config.cvReports.length > 0) {
56
+ console.log(`${chalk.cyan('CV Reports:')} ${context.config.cvReports.length}`);
57
+ }
58
+ // Validation issues
59
+ if (context.validations.length > 0) {
60
+ console.log('\n' + chalk.bold('Validation Results'));
61
+ console.log('-'.repeat(50));
62
+ const errors = context.validations.filter((v) => v.severity === 'error');
63
+ const warnings = context.validations.filter((v) => v.severity === 'warning');
64
+ const infos = context.validations.filter((v) => v.severity === 'info');
65
+ if (errors.length > 0) {
66
+ console.log(`\n${chalk.red.bold('Errors')} (${errors.length}):`);
67
+ errors.forEach((e) => console.log(' ' + formatIssue(e)));
68
+ }
69
+ if (warnings.length > 0) {
70
+ console.log(`\n${chalk.yellow.bold('Warnings')} (${warnings.length}):`);
71
+ warnings.forEach((w) => console.log(' ' + formatIssue(w)));
72
+ }
73
+ if (infos.length > 0) {
74
+ console.log(`\n${chalk.blue.bold('Info')} (${infos.length}):`);
75
+ infos.forEach((i) => console.log(' ' + formatIssue(i)));
76
+ }
77
+ }
78
+ // Upgrade readiness
79
+ console.log('\n' + '-'.repeat(50));
80
+ if (context.isUpgradeReady) {
81
+ console.log(chalk.green.bold('Project is ready for upgrade'));
82
+ }
83
+ else {
84
+ console.log(chalk.red.bold('Project has blocking issues - resolve before upgrading'));
85
+ }
86
+ }
87
+ /* eslint-enable no-console */
88
+ /**
89
+ * Create the discover command.
90
+ */
91
+ export function createDiscoverCommand() {
92
+ const command = new Command('discover')
93
+ .description('Analyze project structure and detect brXM version')
94
+ .option('-o, --output <path>', 'Output directory for discovery report')
95
+ .option('--skip-validation', 'Skip validation checks')
96
+ .option('--json', 'Output raw JSON instead of formatted display')
97
+ .action(async (options) => {
98
+ const config = getParentConfig(command);
99
+ const logger = createLogger({
100
+ verbose: config?.output?.verbose ?? false,
101
+ color: config?.output?.color ?? true,
102
+ });
103
+ const projectRoot = process.cwd();
104
+ const outputDir = options.output ?? getOutputDir();
105
+ const spinner = createSpinner({ text: 'Analyzing project...' });
106
+ try {
107
+ spinner.start();
108
+ const orchestrator = new DiscoveryOrchestrator();
109
+ const result = await orchestrator.discover(projectRoot, {
110
+ skipValidation: options.skipValidation,
111
+ verbose: config?.output?.verbose,
112
+ });
113
+ spinner.stop();
114
+ if (!result.success || !result.context) {
115
+ logger.error(`Discovery failed: ${result.error}`);
116
+ process.exit(1);
117
+ }
118
+ if (result.warnings && result.warnings.length > 0) {
119
+ for (const warning of result.warnings) {
120
+ logger.warn(warning);
121
+ }
122
+ }
123
+ if (options.json) {
124
+ // eslint-disable-next-line no-console
125
+ console.log(JSON.stringify(result.context, null, 2));
126
+ }
127
+ else {
128
+ displayResults(result.context);
129
+ }
130
+ const outputPath = joinPaths(outputDir, 'discovery.json');
131
+ await writeTextFile(outputPath, JSON.stringify(result.context, null, 2));
132
+ if (!options.json) {
133
+ // eslint-disable-next-line no-console
134
+ console.log(`\n${chalk.green('Saved:')} ${chalk.cyan(outputPath)}`);
135
+ // eslint-disable-next-line no-console
136
+ console.log(`\n${chalk.gray('Next step:')} Run ${chalk.cyan('brxm-upgrade plan --to <version>')} to generate an upgrade plan.`);
137
+ }
138
+ }
139
+ catch (error) {
140
+ spinner.fail('Discovery failed');
141
+ logger.error(error instanceof Error ? error.message : 'Unknown error');
142
+ process.exit(1);
143
+ }
144
+ });
145
+ return command;
146
+ }
147
+ //# sourceMappingURL=discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Create the execute command for running the upgrade plan step by step.
4
+ *
5
+ * The execute command loads a previously generated plan, initializes the
6
+ * AI provider (if available), and orchestrates the StepExecutor to
7
+ * process each upgrade step interactively or in batch mode.
8
+ *
9
+ * @returns Configured Commander command instance
10
+ */
11
+ export declare function createExecuteCommand(): Command;
12
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAmH9C"}
@@ -0,0 +1,113 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { createSpinner } from '../utils/spinner.js';
4
+ import { createLogger } from '../utils/logger.js';
5
+ import { resolvePath } from '../utils/fs.js';
6
+ import { getApiKey } from '../config/index.js';
7
+ import { createAIClient } from '../ai/index.js';
8
+ import { StepExecutor } from '../execution/step-executor.js';
9
+ import { getCommandConfig } from '../utils/command-helpers.js';
10
+ /* eslint-disable no-console */
11
+ /**
12
+ * Create the execute command for running the upgrade plan step by step.
13
+ *
14
+ * The execute command loads a previously generated plan, initializes the
15
+ * AI provider (if available), and orchestrates the StepExecutor to
16
+ * process each upgrade step interactively or in batch mode.
17
+ *
18
+ * @returns Configured Commander command instance
19
+ */
20
+ export function createExecuteCommand() {
21
+ const command = new Command('execute')
22
+ .description('Execute the upgrade plan step by step')
23
+ .option('--plan <path>', 'Path to plan.json', '.brxm-upgrade/plan.json')
24
+ .option('--dry-run', 'Show what would be changed without applying', false)
25
+ .option('--resume <step>', 'Resume from a specific step number', parseInt)
26
+ .option('--non-interactive', 'Run without prompts (auto-skip non-automated steps)', false)
27
+ .option('--auto-accept', 'Auto-accept all automated steps', false)
28
+ .option('--skip-ai', 'Skip AI analysis for partial steps', false)
29
+ .option('-v, --verbose', 'Enable verbose output', false)
30
+ .action(async (options) => {
31
+ const logger = createLogger({ verbose: options.verbose });
32
+ const spinner = createSpinner();
33
+ try {
34
+ // Load configuration
35
+ spinner.start('Loading configuration...');
36
+ const config = await getCommandConfig(command);
37
+ spinner.succeed('Configuration loaded');
38
+ spinner.start('Initializing AI provider...');
39
+ const apiKey = getApiKey(config.ai.provider, config.ai.apiKeyEnv);
40
+ if (!apiKey) {
41
+ spinner.warn(`No API key found for ${config.ai.provider}. AI features disabled.`);
42
+ }
43
+ const aiClient = apiKey
44
+ ? createAIClient(config.ai.provider, config.ai.model, apiKey, config.ai.baseUrl)
45
+ : createAIClient(config.ai.provider, config.ai.model, '', config.ai.baseUrl);
46
+ spinner.succeed(`AI provider: ${config.ai.provider}`);
47
+ const projectRoot = process.cwd();
48
+ const executor = new StepExecutor(projectRoot, aiClient);
49
+ const executeOptions = {
50
+ planPath: resolvePath(options.plan),
51
+ dryRun: options.dryRun,
52
+ resumeFromStep: options.resume,
53
+ nonInteractive: options.nonInteractive,
54
+ autoAcceptAutomated: options.autoAccept,
55
+ skipAI: options.skipAi,
56
+ verbose: options.verbose,
57
+ };
58
+ // Progress callback
59
+ const onProgress = (progress) => {
60
+ if (options.verbose) {
61
+ logger.debug(`Step ${progress.currentStep}/${progress.totalSteps}: ${progress.phase} - ${progress.currentDescription}`);
62
+ }
63
+ };
64
+ // Show execution mode
65
+ if (options.dryRun) {
66
+ console.log('');
67
+ console.log(chalk.yellow('DRY RUN MODE - No changes will be applied'));
68
+ console.log('');
69
+ }
70
+ if (options.nonInteractive) {
71
+ console.log(chalk.yellow('Running in non-interactive mode'));
72
+ }
73
+ // Execute
74
+ console.log('');
75
+ console.log(chalk.bold('Starting upgrade execution...'));
76
+ console.log('');
77
+ const results = await executor.execute(executeOptions, onProgress);
78
+ // Summary
79
+ console.log('');
80
+ console.log(chalk.bold('='.repeat(70)));
81
+ console.log(chalk.bold(' Execution Summary'));
82
+ console.log(chalk.bold('='.repeat(70)));
83
+ console.log('');
84
+ const completed = results.filter((r) => r.decision === 'accept').length;
85
+ const skipped = results.filter((r) => r.decision === 'skip').length;
86
+ const failed = results.filter((r) => !r.success).length;
87
+ console.log(`${chalk.green('Completed:')} ${completed}`);
88
+ console.log(`${chalk.yellow('Skipped:')} ${skipped}`);
89
+ console.log(`${chalk.red('Failed:')} ${failed}`);
90
+ console.log('');
91
+ if (failed > 0) {
92
+ console.log(chalk.red('Some steps failed. Review the errors above.'));
93
+ console.log('You can resume with: brxm-upgrade execute --resume <step>');
94
+ process.exit(1);
95
+ }
96
+ if (completed === results.length) {
97
+ console.log(chalk.green('Upgrade completed successfully!'));
98
+ }
99
+ else {
100
+ console.log(chalk.yellow('Upgrade partially completed.'));
101
+ console.log('Run again to continue with skipped steps.');
102
+ }
103
+ }
104
+ catch (error) {
105
+ spinner.fail('Execution failed');
106
+ logger.error(error instanceof Error ? error.message : 'Unknown error');
107
+ process.exit(1);
108
+ }
109
+ });
110
+ return command;
111
+ }
112
+ /* eslint-enable no-console */
113
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Command } from 'commander';
2
+ import type { UpgradePlan } from '../planning/types.js';
3
+ import type { ProjectContext } from '../discovery/types.js';
4
+ /**
5
+ * Generate a markdown document from an upgrade plan and project context.
6
+ *
7
+ * The output is optimized for consumption by AI coding agents: it is
8
+ * self-contained, sequentially ordered, and uses clear labels for
9
+ * automation levels so the agent knows what action to take per step.
10
+ *
11
+ * @param plan - The upgrade plan to render
12
+ * @param discovery - The project context from discovery
13
+ * @returns Formatted markdown string
14
+ */
15
+ export declare function generateExportMarkdown(plan: UpgradePlan, discovery: ProjectContext): string;
16
+ /**
17
+ * Create the export command for rendering the upgrade plan as markdown.
18
+ *
19
+ * The export command loads a previously generated plan and its associated
20
+ * discovery context, then renders them into a markdown document optimized
21
+ * for AI coding agents.
22
+ *
23
+ * @returns Configured Commander command instance
24
+ */
25
+ export declare function createExportCommand(): Command;
26
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAgM5D;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM,CAiD3F;AAyBD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAqD7C"}
@@ -0,0 +1,291 @@
1
+ import { dirname } from 'node:path';
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { createSpinner } from '../utils/spinner.js';
5
+ import { resolvePath, writeTextFile, pathExists, joinPaths, parseJsonFile, } from '../utils/fs.js';
6
+ import { getCommandConfig } from '../utils/command-helpers.js';
7
+ /* eslint-disable no-console */
8
+ /**
9
+ * Map automation level to a human-readable label.
10
+ */
11
+ function automationLabel(automatable) {
12
+ switch (automatable) {
13
+ case 'true':
14
+ return 'AUTOMATED';
15
+ case 'partial':
16
+ return 'AI-ASSISTED';
17
+ case 'false':
18
+ return 'MANUAL';
19
+ }
20
+ }
21
+ /**
22
+ * Render an AUTOMATED step body.
23
+ */
24
+ function renderAutomatedStep(step) {
25
+ const lines = [];
26
+ lines.push('This step is handled by the upgrade tool. Run:');
27
+ lines.push('');
28
+ lines.push('```');
29
+ lines.push(`brxm-upgrade execute --resume ${step.stepNumber}`);
30
+ lines.push('```');
31
+ if (step.type === 'version_bump') {
32
+ lines.push('');
33
+ lines.push('**Manual fallback:** Update the parent POM version property');
34
+ lines.push(`from \`${step.fromVersion}\` to \`${step.toVersion ?? 'target'}\` in your root \`pom.xml\`.`);
35
+ }
36
+ return lines.join('\n');
37
+ }
38
+ function isRecord(value) {
39
+ return value !== null && typeof value === 'object';
40
+ }
41
+ function isPlanStep(value) {
42
+ return isRecord(value)
43
+ && typeof value.stepNumber === 'number'
44
+ && typeof value.entryId === 'string'
45
+ && typeof value.description === 'string'
46
+ && typeof value.type === 'string'
47
+ && typeof value.automatable === 'string'
48
+ && typeof value.riskLevel === 'number'
49
+ && Array.isArray(value.affectedFiles)
50
+ && value.affectedFiles.every((file) => typeof file === 'string')
51
+ && typeof value.affectedFileCount === 'number';
52
+ }
53
+ function isUpgradePlanSummary(value) {
54
+ return isRecord(value)
55
+ && typeof value.totalSteps === 'number'
56
+ && typeof value.automatedSteps === 'number'
57
+ && typeof value.aiAssistedSteps === 'number'
58
+ && typeof value.manualSteps === 'number'
59
+ && typeof value.totalFilesAffected === 'number'
60
+ && typeof value.averageRiskLevel === 'number';
61
+ }
62
+ function isUpgradePlan(value) {
63
+ return isRecord(value)
64
+ && typeof value.generatedAt === 'string'
65
+ && typeof value.fromVersion === 'string'
66
+ && typeof value.toVersion === 'string'
67
+ && Array.isArray(value.upgradePathVersions)
68
+ && value.upgradePathVersions.every((version) => typeof version === 'string')
69
+ && Array.isArray(value.steps)
70
+ && value.steps.every(isPlanStep)
71
+ && isUpgradePlanSummary(value.summary)
72
+ && typeof value.aiAnalysisEnabled === 'boolean'
73
+ && typeof value.discoveryFile === 'string';
74
+ }
75
+ function isProjectContext(value) {
76
+ if (!isRecord(value) || !isRecord(value.build) || !isRecord(value.repo)) {
77
+ return false;
78
+ }
79
+ return typeof value.projectRoot === 'string'
80
+ && typeof value.build.brxmVersion === 'string'
81
+ && typeof value.build.moduleCount === 'number'
82
+ && typeof value.build.totalJavaFiles === 'number'
83
+ && Array.isArray(value.build.modules)
84
+ && value.build.modules.every((module) => isRecord(module) && typeof module.name === 'string')
85
+ && Array.isArray(value.repo.bootstrapPaths)
86
+ && value.repo.bootstrapPaths.every((path) => typeof path === 'string');
87
+ }
88
+ /**
89
+ * Render an AI-ASSISTED step body.
90
+ */
91
+ function renderAiAssistedStep(step) {
92
+ const lines = [];
93
+ if (step.manualSteps && step.manualSteps.length > 0) {
94
+ lines.push('### What to do');
95
+ for (const item of step.manualSteps) {
96
+ lines.push(`- ${item}`);
97
+ }
98
+ }
99
+ if (step.analysis && step.analysis.trim().length > 0) {
100
+ if (lines.length > 0)
101
+ lines.push('');
102
+ lines.push('### Migration guidance');
103
+ lines.push(step.analysis);
104
+ }
105
+ if (step.documentationUrl) {
106
+ if (lines.length > 0)
107
+ lines.push('');
108
+ lines.push('### Documentation');
109
+ lines.push(`- ${step.documentationUrl}`);
110
+ }
111
+ return lines.join('\n');
112
+ }
113
+ /**
114
+ * Render a MANUAL step body.
115
+ */
116
+ function renderManualStep(step) {
117
+ const lines = [];
118
+ if (step.manualSteps && step.manualSteps.length > 0) {
119
+ lines.push('### What to do');
120
+ for (const item of step.manualSteps) {
121
+ lines.push(`- ${item}`);
122
+ }
123
+ }
124
+ if (step.documentationUrl) {
125
+ if (lines.length > 0)
126
+ lines.push('');
127
+ lines.push('### Documentation');
128
+ lines.push(`- ${step.documentationUrl}`);
129
+ }
130
+ return lines.join('\n');
131
+ }
132
+ /**
133
+ * Render the body of a step based on its automation level.
134
+ */
135
+ function renderStepBody(step) {
136
+ switch (step.automatable) {
137
+ case 'true':
138
+ return renderAutomatedStep(step);
139
+ case 'partial':
140
+ return renderAiAssistedStep(step);
141
+ case 'false':
142
+ return renderManualStep(step);
143
+ }
144
+ }
145
+ /**
146
+ * Render a single step to markdown.
147
+ */
148
+ function renderStep(step, total) {
149
+ const label = automationLabel(step.automatable);
150
+ const lines = [];
151
+ lines.push(`## Step ${step.stepNumber} of ${total}: ${step.description} [${label}]`);
152
+ lines.push('');
153
+ lines.push(`**Entry:** \`${step.entryId}\` | **Type:** ${step.type} | **Risk:** ${step.riskLevel}/5`);
154
+ lines.push('');
155
+ const body = renderStepBody(step);
156
+ if (body.length > 0) {
157
+ lines.push(body);
158
+ }
159
+ lines.push('');
160
+ lines.push('### Affected files');
161
+ if (step.affectedFiles.length > 0) {
162
+ for (const file of step.affectedFiles) {
163
+ lines.push(`- \`${file}\``);
164
+ }
165
+ }
166
+ else {
167
+ lines.push('_None — verification only_');
168
+ }
169
+ return lines.join('\n');
170
+ }
171
+ /**
172
+ * Generate a markdown document from an upgrade plan and project context.
173
+ *
174
+ * The output is optimized for consumption by AI coding agents: it is
175
+ * self-contained, sequentially ordered, and uses clear labels for
176
+ * automation levels so the agent knows what action to take per step.
177
+ *
178
+ * @param plan - The upgrade plan to render
179
+ * @param discovery - The project context from discovery
180
+ * @returns Formatted markdown string
181
+ */
182
+ export function generateExportMarkdown(plan, discovery) {
183
+ const { summary } = plan;
184
+ const moduleNames = discovery.build.modules.map((m) => m.name).join(', ');
185
+ const sections = [];
186
+ // Header
187
+ sections.push(`# brXM Upgrade Plan: ${plan.fromVersion} \u2192 ${plan.toVersion}`);
188
+ sections.push('');
189
+ sections.push(`Generated: ${plan.generatedAt.split('T')[0]} | Steps: ${summary.totalSteps} (${summary.automatedSteps} automated, ${summary.aiAssistedSteps} AI-assisted, ${summary.manualSteps} manual)`);
190
+ // Project Context
191
+ sections.push('');
192
+ sections.push('## Project Context');
193
+ sections.push(`- **Project root**: ${discovery.projectRoot}`);
194
+ sections.push(`- **Current version**: ${discovery.build.brxmVersion}`);
195
+ sections.push(`- **Target version**: ${plan.toVersion}`);
196
+ sections.push(`- **Detected modules**: ${moduleNames} (${discovery.build.moduleCount} total)`);
197
+ sections.push(`- **Java files**: ${discovery.build.totalJavaFiles}`);
198
+ sections.push(`- **Bootstrap configs**: ${discovery.repo.bootstrapPaths.length}`);
199
+ // Instructions
200
+ sections.push('');
201
+ sections.push('## Instructions');
202
+ sections.push(`Work through each step in order. Steps marked AUTOMATED are handled
203
+ by the upgrade tool \u2014 verify the result but no manual work needed.
204
+ Steps marked AI-ASSISTED need you to implement the migration using
205
+ the guidance provided. Steps marked MANUAL require human judgment.`);
206
+ sections.push('');
207
+ sections.push(`Do not skip steps unless explicitly marked as not applicable to
208
+ this project.`);
209
+ // Steps
210
+ for (const step of plan.steps) {
211
+ sections.push('');
212
+ sections.push('---');
213
+ sections.push('');
214
+ sections.push(renderStep(step, summary.totalSteps));
215
+ }
216
+ // Trailing newline
217
+ sections.push('');
218
+ return sections.join('\n');
219
+ }
220
+ /**
221
+ * Resolve the path to discovery.json from a plan file, falling back to the
222
+ * default location if the plan's discoveryFile reference is not found.
223
+ */
224
+ async function resolveDiscoveryPath(plan, planPath) {
225
+ // Try the path recorded in the plan relative to plan directory
226
+ const planDir = dirname(planPath);
227
+ const fromPlan = resolvePath(planDir, plan.discoveryFile);
228
+ if (await pathExists(fromPlan)) {
229
+ return fromPlan;
230
+ }
231
+ // Fall back to discovery.json in the same directory as the plan file
232
+ const fallback = resolvePath(planDir, 'discovery.json');
233
+ if (await pathExists(fallback)) {
234
+ return fallback;
235
+ }
236
+ throw new Error(`Cannot find discovery.json. Tried:\n - ${fromPlan}\n - ${fallback}\nRun \`brxm-upgrade discover\` first.`);
237
+ }
238
+ /**
239
+ * Create the export command for rendering the upgrade plan as markdown.
240
+ *
241
+ * The export command loads a previously generated plan and its associated
242
+ * discovery context, then renders them into a markdown document optimized
243
+ * for AI coding agents.
244
+ *
245
+ * @returns Configured Commander command instance
246
+ */
247
+ export function createExportCommand() {
248
+ const command = new Command('export')
249
+ .description('Export the upgrade plan as a markdown document for AI agents')
250
+ .option('--plan <path>', 'Path to plan.json', '.brxm-upgrade/plan.json')
251
+ .option('--output <path>', 'Path to write the markdown file')
252
+ .action(async (options) => {
253
+ const spinner = createSpinner();
254
+ try {
255
+ const config = await getCommandConfig(command);
256
+ // Load plan
257
+ spinner.start('Loading upgrade plan...');
258
+ const planPath = resolvePath(options.plan);
259
+ if (!(await pathExists(planPath))) {
260
+ throw new Error(`Plan file not found: ${planPath}\nRun \`brxm-upgrade discover\` and \`brxm-upgrade plan\` first.`);
261
+ }
262
+ const plan = parseJsonFile(planPath, isUpgradePlan);
263
+ spinner.succeed(`Loaded plan: ${plan.fromVersion} \u2192 ${plan.toVersion} (${plan.summary.totalSteps} steps)`);
264
+ // Load discovery
265
+ spinner.start('Loading project context...');
266
+ const discoveryPath = await resolveDiscoveryPath(plan, planPath);
267
+ const discovery = parseJsonFile(discoveryPath, isProjectContext);
268
+ spinner.succeed(`Loaded project context for ${discovery.build.brxmVersion}`);
269
+ // Generate markdown
270
+ spinner.start('Generating markdown...');
271
+ const markdown = generateExportMarkdown(plan, discovery);
272
+ spinner.succeed('Markdown generated');
273
+ // Write output
274
+ const outputPath = resolvePath(options.output ?? joinPaths(config.output.exportPath, 'upgrade-plan.md'));
275
+ spinner.start(`Writing ${outputPath}...`);
276
+ await writeTextFile(outputPath, markdown);
277
+ spinner.succeed(`Written to ${outputPath}`);
278
+ console.log('');
279
+ console.log(chalk.green('Export complete.'));
280
+ console.log(`Open ${chalk.bold(outputPath)} or feed it to your AI coding agent.`);
281
+ }
282
+ catch (error) {
283
+ spinner.fail('Export failed');
284
+ console.error(error instanceof Error ? error.message : 'Unknown error');
285
+ process.exit(1);
286
+ }
287
+ });
288
+ return command;
289
+ }
290
+ /* eslint-enable no-console */
291
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Create the finalize command for promoting unreleased manifest entries to a released version.
4
+ *
5
+ * The finalize command loads the unreleased manifest, optionally generates missing
6
+ * changelog entries using AI, and writes a new versioned manifest file in the
7
+ * released directory. It then resets the unreleased manifest to empty.
8
+ *
9
+ * @returns Configured Commander command instance
10
+ */
11
+ export declare function createFinalizeCommand(): Command;
12
+ //# sourceMappingURL=finalize.d.ts.map