@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.
- package/README.md +217 -0
- package/dist/ai/index.d.ts +3 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +2 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/providers.d.ts +27 -0
- package/dist/ai/providers.d.ts.map +1 -0
- package/dist/ai/providers.js +105 -0
- package/dist/ai/providers.js.map +1 -0
- package/dist/ai/types.d.ts +47 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/capture/change-scanner.d.ts +20 -0
- package/dist/capture/change-scanner.d.ts.map +1 -0
- package/dist/capture/change-scanner.js +71 -0
- package/dist/capture/change-scanner.js.map +1 -0
- package/dist/capture/conflict-resolver.d.ts +21 -0
- package/dist/capture/conflict-resolver.d.ts.map +1 -0
- package/dist/capture/conflict-resolver.js +45 -0
- package/dist/capture/conflict-resolver.js.map +1 -0
- package/dist/capture/critique-types.d.ts +60 -0
- package/dist/capture/critique-types.d.ts.map +1 -0
- package/dist/capture/critique-types.js +2 -0
- package/dist/capture/critique-types.js.map +1 -0
- package/dist/capture/entry-critique.d.ts +30 -0
- package/dist/capture/entry-critique.d.ts.map +1 -0
- package/dist/capture/entry-critique.js +137 -0
- package/dist/capture/entry-critique.js.map +1 -0
- package/dist/capture/entry-generator.d.ts +32 -0
- package/dist/capture/entry-generator.d.ts.map +1 -0
- package/dist/capture/entry-generator.js +209 -0
- package/dist/capture/entry-generator.js.map +1 -0
- package/dist/capture/entry-qa.d.ts +28 -0
- package/dist/capture/entry-qa.d.ts.map +1 -0
- package/dist/capture/entry-qa.js +84 -0
- package/dist/capture/entry-qa.js.map +1 -0
- package/dist/capture/entry-regeneration.d.ts +29 -0
- package/dist/capture/entry-regeneration.d.ts.map +1 -0
- package/dist/capture/entry-regeneration.js +164 -0
- package/dist/capture/entry-regeneration.js.map +1 -0
- package/dist/capture/entry-validator.d.ts +18 -0
- package/dist/capture/entry-validator.d.ts.map +1 -0
- package/dist/capture/entry-validator.js +47 -0
- package/dist/capture/entry-validator.js.map +1 -0
- package/dist/capture/heuristics.d.ts +30 -0
- package/dist/capture/heuristics.d.ts.map +1 -0
- package/dist/capture/heuristics.js +223 -0
- package/dist/capture/heuristics.js.map +1 -0
- package/dist/capture/index.d.ts +7 -0
- package/dist/capture/index.d.ts.map +1 -0
- package/dist/capture/index.js +11 -0
- package/dist/capture/index.js.map +1 -0
- package/dist/capture/quality-report.d.ts +19 -0
- package/dist/capture/quality-report.d.ts.map +1 -0
- package/dist/capture/quality-report.js +161 -0
- package/dist/capture/quality-report.js.map +1 -0
- package/dist/capture/review-flow.d.ts +37 -0
- package/dist/capture/review-flow.d.ts.map +1 -0
- package/dist/capture/review-flow.js +212 -0
- package/dist/capture/review-flow.js.map +1 -0
- package/dist/capture/types.d.ts +114 -0
- package/dist/capture/types.d.ts.map +1 -0
- package/dist/capture/types.js +2 -0
- package/dist/capture/types.js.map +1 -0
- package/dist/commands/discover.d.ts +6 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +147 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/execute.d.ts +12 -0
- package/dist/commands/execute.d.ts.map +1 -0
- package/dist/commands/execute.js +113 -0
- package/dist/commands/execute.js.map +1 -0
- package/dist/commands/export.d.ts +26 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +291 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/finalize.d.ts +12 -0
- package/dist/commands/finalize.d.ts.map +1 -0
- package/dist/commands/finalize.js +225 -0
- package/dist/commands/finalize.js.map +1 -0
- package/dist/commands/guide.d.ts +12 -0
- package/dist/commands/guide.d.ts.map +1 -0
- package/dist/commands/guide.js +28 -0
- package/dist/commands/guide.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +22 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/log-change.d.ts +14 -0
- package/dist/commands/log-change.d.ts.map +1 -0
- package/dist/commands/log-change.js +243 -0
- package/dist/commands/log-change.js.map +1 -0
- package/dist/commands/plan.d.ts +12 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +162 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/review-manifest.d.ts +39 -0
- package/dist/commands/review-manifest.d.ts.map +1 -0
- package/dist/commands/review-manifest.js +178 -0
- package/dist/commands/review-manifest.js.map +1 -0
- package/dist/commands/setup-manifests.d.ts +12 -0
- package/dist/commands/setup-manifests.d.ts.map +1 -0
- package/dist/commands/setup-manifests.js +229 -0
- package/dist/commands/setup-manifests.js.map +1 -0
- package/dist/config/defaults.d.ts +15 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +36 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +17 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +104 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/schema.d.ts +33 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +110 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +16 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/phase-manager.d.ts +53 -0
- package/dist/core/phase-manager.d.ts.map +1 -0
- package/dist/core/phase-manager.js +124 -0
- package/dist/core/phase-manager.js.map +1 -0
- package/dist/core/upgrade-state.d.ts +24 -0
- package/dist/core/upgrade-state.d.ts.map +1 -0
- package/dist/core/upgrade-state.js +32 -0
- package/dist/core/upgrade-state.js.map +1 -0
- package/dist/discovery/index.d.ts +5 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +4 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/orchestrator.d.ts +46 -0
- package/dist/discovery/orchestrator.d.ts.map +1 -0
- package/dist/discovery/orchestrator.js +124 -0
- package/dist/discovery/orchestrator.js.map +1 -0
- package/dist/discovery/scanners/config-detector.d.ts +24 -0
- package/dist/discovery/scanners/config-detector.d.ts.map +1 -0
- package/dist/discovery/scanners/config-detector.js +82 -0
- package/dist/discovery/scanners/config-detector.js.map +1 -0
- package/dist/discovery/scanners/cv-scanner.d.ts +30 -0
- package/dist/discovery/scanners/cv-scanner.d.ts.map +1 -0
- package/dist/discovery/scanners/cv-scanner.js +85 -0
- package/dist/discovery/scanners/cv-scanner.js.map +1 -0
- package/dist/discovery/scanners/index.d.ts +6 -0
- package/dist/discovery/scanners/index.d.ts.map +1 -0
- package/dist/discovery/scanners/index.js +6 -0
- package/dist/discovery/scanners/index.js.map +1 -0
- package/dist/discovery/scanners/maven-scanner.d.ts +33 -0
- package/dist/discovery/scanners/maven-scanner.d.ts.map +1 -0
- package/dist/discovery/scanners/maven-scanner.js +96 -0
- package/dist/discovery/scanners/maven-scanner.js.map +1 -0
- package/dist/discovery/scanners/repo-scanner.d.ts +9 -0
- package/dist/discovery/scanners/repo-scanner.d.ts.map +1 -0
- package/dist/discovery/scanners/repo-scanner.js +80 -0
- package/dist/discovery/scanners/repo-scanner.js.map +1 -0
- package/dist/discovery/scanners/version-resolver.d.ts +45 -0
- package/dist/discovery/scanners/version-resolver.d.ts.map +1 -0
- package/dist/discovery/scanners/version-resolver.js +119 -0
- package/dist/discovery/scanners/version-resolver.js.map +1 -0
- package/dist/discovery/types.d.ts +156 -0
- package/dist/discovery/types.d.ts.map +1 -0
- package/dist/discovery/types.js +2 -0
- package/dist/discovery/types.js.map +1 -0
- package/dist/discovery/validators/index.d.ts +2 -0
- package/dist/discovery/validators/index.d.ts.map +1 -0
- package/dist/discovery/validators/index.js +2 -0
- package/dist/discovery/validators/index.js.map +1 -0
- package/dist/discovery/validators/upgrade-validator.d.ts +34 -0
- package/dist/discovery/validators/upgrade-validator.d.ts.map +1 -0
- package/dist/discovery/validators/upgrade-validator.js +135 -0
- package/dist/discovery/validators/upgrade-validator.js.map +1 -0
- package/dist/docs/docs-client.d.ts +44 -0
- package/dist/docs/docs-client.d.ts.map +1 -0
- package/dist/docs/docs-client.js +161 -0
- package/dist/docs/docs-client.js.map +1 -0
- package/dist/docs/docs-context.d.ts +23 -0
- package/dist/docs/docs-context.d.ts.map +1 -0
- package/dist/docs/docs-context.js +41 -0
- package/dist/docs/docs-context.js.map +1 -0
- package/dist/docs/index.d.ts +4 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +3 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/types.d.ts +27 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/types.js +2 -0
- package/dist/docs/types.js.map +1 -0
- package/dist/execution/diff-presenter.d.ts +52 -0
- package/dist/execution/diff-presenter.d.ts.map +1 -0
- package/dist/execution/diff-presenter.js +148 -0
- package/dist/execution/diff-presenter.js.map +1 -0
- package/dist/execution/executors/ai-assisted.d.ts +28 -0
- package/dist/execution/executors/ai-assisted.d.ts.map +1 -0
- package/dist/execution/executors/ai-assisted.js +226 -0
- package/dist/execution/executors/ai-assisted.js.map +1 -0
- package/dist/execution/executors/automated.d.ts +15 -0
- package/dist/execution/executors/automated.d.ts.map +1 -0
- package/dist/execution/executors/automated.js +37 -0
- package/dist/execution/executors/automated.js.map +1 -0
- package/dist/execution/executors/cv-gate.d.ts +23 -0
- package/dist/execution/executors/cv-gate.d.ts.map +1 -0
- package/dist/execution/executors/cv-gate.js +63 -0
- package/dist/execution/executors/cv-gate.js.map +1 -0
- package/dist/execution/executors/index.d.ts +7 -0
- package/dist/execution/executors/index.d.ts.map +1 -0
- package/dist/execution/executors/index.js +7 -0
- package/dist/execution/executors/index.js.map +1 -0
- package/dist/execution/executors/manual.d.ts +18 -0
- package/dist/execution/executors/manual.d.ts.map +1 -0
- package/dist/execution/executors/manual.js +31 -0
- package/dist/execution/executors/manual.js.map +1 -0
- package/dist/execution/executors/override-resolution.d.ts +27 -0
- package/dist/execution/executors/override-resolution.d.ts.map +1 -0
- package/dist/execution/executors/override-resolution.js +79 -0
- package/dist/execution/executors/override-resolution.js.map +1 -0
- package/dist/execution/executors/version-bump.d.ts +20 -0
- package/dist/execution/executors/version-bump.d.ts.map +1 -0
- package/dist/execution/executors/version-bump.js +65 -0
- package/dist/execution/executors/version-bump.js.map +1 -0
- package/dist/execution/file-transformer.d.ts +25 -0
- package/dist/execution/file-transformer.d.ts.map +1 -0
- package/dist/execution/file-transformer.js +74 -0
- package/dist/execution/file-transformer.js.map +1 -0
- package/dist/execution/index.d.ts +7 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +9 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/state-manager.d.ts +27 -0
- package/dist/execution/state-manager.d.ts.map +1 -0
- package/dist/execution/state-manager.js +48 -0
- package/dist/execution/state-manager.js.map +1 -0
- package/dist/execution/step-executor.d.ts +68 -0
- package/dist/execution/step-executor.d.ts.map +1 -0
- package/dist/execution/step-executor.js +243 -0
- package/dist/execution/step-executor.js.map +1 -0
- package/dist/execution/types.d.ts +92 -0
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/execution/types.js +2 -0
- package/dist/execution/types.js.map +1 -0
- package/dist/guide/GuideRunner.d.ts +62 -0
- package/dist/guide/GuideRunner.d.ts.map +1 -0
- package/dist/guide/GuideRunner.js +390 -0
- package/dist/guide/GuideRunner.js.map +1 -0
- package/dist/guide/chat/ChatContextBuilder.d.ts +44 -0
- package/dist/guide/chat/ChatContextBuilder.d.ts.map +1 -0
- package/dist/guide/chat/ChatContextBuilder.js +121 -0
- package/dist/guide/chat/ChatContextBuilder.js.map +1 -0
- package/dist/guide/chat/ChatLoop.d.ts +18 -0
- package/dist/guide/chat/ChatLoop.d.ts.map +1 -0
- package/dist/guide/chat/ChatLoop.js +59 -0
- package/dist/guide/chat/ChatLoop.js.map +1 -0
- package/dist/guide/chat/StepCoach.d.ts +22 -0
- package/dist/guide/chat/StepCoach.d.ts.map +1 -0
- package/dist/guide/chat/StepCoach.js +39 -0
- package/dist/guide/chat/StepCoach.js.map +1 -0
- package/dist/guide/chat/index.d.ts +4 -0
- package/dist/guide/chat/index.d.ts.map +1 -0
- package/dist/guide/chat/index.js +4 -0
- package/dist/guide/chat/index.js.map +1 -0
- package/dist/guide/index.d.ts +3 -0
- package/dist/guide/index.d.ts.map +1 -0
- package/dist/guide/index.js +2 -0
- package/dist/guide/index.js.map +1 -0
- package/dist/guide/phases/DiscoveryPhase.d.ts +30 -0
- package/dist/guide/phases/DiscoveryPhase.d.ts.map +1 -0
- package/dist/guide/phases/DiscoveryPhase.js +238 -0
- package/dist/guide/phases/DiscoveryPhase.js.map +1 -0
- package/dist/guide/phases/ExecutionPhase.d.ts +80 -0
- package/dist/guide/phases/ExecutionPhase.d.ts.map +1 -0
- package/dist/guide/phases/ExecutionPhase.js +574 -0
- package/dist/guide/phases/ExecutionPhase.js.map +1 -0
- package/dist/guide/phases/PlanPhase.d.ts +22 -0
- package/dist/guide/phases/PlanPhase.d.ts.map +1 -0
- package/dist/guide/phases/PlanPhase.js +200 -0
- package/dist/guide/phases/PlanPhase.js.map +1 -0
- package/dist/guide/phases/index.d.ts +4 -0
- package/dist/guide/phases/index.d.ts.map +1 -0
- package/dist/guide/phases/index.js +4 -0
- package/dist/guide/phases/index.js.map +1 -0
- package/dist/guide/rendering/formatters.d.ts +126 -0
- package/dist/guide/rendering/formatters.d.ts.map +1 -0
- package/dist/guide/rendering/formatters.js +340 -0
- package/dist/guide/rendering/formatters.js.map +1 -0
- package/dist/guide/rendering/index.d.ts +2 -0
- package/dist/guide/rendering/index.d.ts.map +1 -0
- package/dist/guide/rendering/index.js +2 -0
- package/dist/guide/rendering/index.js.map +1 -0
- package/dist/guide/rendering/platform-changes.d.ts +18 -0
- package/dist/guide/rendering/platform-changes.d.ts.map +1 -0
- package/dist/guide/rendering/platform-changes.js +86 -0
- package/dist/guide/rendering/platform-changes.js.map +1 -0
- package/dist/guide/types.d.ts +100 -0
- package/dist/guide/types.d.ts.map +1 -0
- package/dist/guide/types.js +2 -0
- package/dist/guide/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +138 -0
- package/dist/index.js.map +1 -0
- package/dist/manifests/maven-settings.d.ts +7 -0
- package/dist/manifests/maven-settings.d.ts.map +1 -0
- package/dist/manifests/maven-settings.js +33 -0
- package/dist/manifests/maven-settings.js.map +1 -0
- package/dist/manifests/parent-properties.d.ts +12 -0
- package/dist/manifests/parent-properties.d.ts.map +1 -0
- package/dist/manifests/parent-properties.js +28 -0
- package/dist/manifests/parent-properties.js.map +1 -0
- package/dist/manifests/schema.json +198 -0
- package/dist/manifests/unreleased.yaml +3 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +13 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/resources/index.d.ts +32 -0
- package/dist/mcp/resources/index.d.ts.map +1 -0
- package/dist/mcp/resources/index.js +55 -0
- package/dist/mcp/resources/index.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +162 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/complete-step.d.ts +26 -0
- package/dist/mcp/tools/complete-step.d.ts.map +1 -0
- package/dist/mcp/tools/complete-step.js +73 -0
- package/dist/mcp/tools/complete-step.js.map +1 -0
- package/dist/mcp/tools/create-upgrade-plan.d.ts +36 -0
- package/dist/mcp/tools/create-upgrade-plan.d.ts.map +1 -0
- package/dist/mcp/tools/create-upgrade-plan.js +143 -0
- package/dist/mcp/tools/create-upgrade-plan.js.map +1 -0
- package/dist/mcp/tools/discover-project.d.ts +33 -0
- package/dist/mcp/tools/discover-project.d.ts.map +1 -0
- package/dist/mcp/tools/discover-project.js +96 -0
- package/dist/mcp/tools/discover-project.js.map +1 -0
- package/dist/mcp/tools/get-next-step.d.ts +54 -0
- package/dist/mcp/tools/get-next-step.d.ts.map +1 -0
- package/dist/mcp/tools/get-next-step.js +110 -0
- package/dist/mcp/tools/get-next-step.js.map +1 -0
- package/dist/mcp/tools/get-upgrade-status.d.ts +25 -0
- package/dist/mcp/tools/get-upgrade-status.d.ts.map +1 -0
- package/dist/mcp/tools/get-upgrade-status.js +79 -0
- package/dist/mcp/tools/get-upgrade-status.js.map +1 -0
- package/dist/mcp/tools/upgrade-targets.d.ts +19 -0
- package/dist/mcp/tools/upgrade-targets.d.ts.map +1 -0
- package/dist/mcp/tools/upgrade-targets.js +132 -0
- package/dist/mcp/tools/upgrade-targets.js.map +1 -0
- package/dist/planning/ai-analyzer.d.ts +20 -0
- package/dist/planning/ai-analyzer.d.ts.map +1 -0
- package/dist/planning/ai-analyzer.js +97 -0
- package/dist/planning/ai-analyzer.js.map +1 -0
- package/dist/planning/index.d.ts +8 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +13 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/manifest-loader.d.ts +54 -0
- package/dist/planning/manifest-loader.d.ts.map +1 -0
- package/dist/planning/manifest-loader.js +233 -0
- package/dist/planning/manifest-loader.js.map +1 -0
- package/dist/planning/manifest-schema.d.ts +41 -0
- package/dist/planning/manifest-schema.d.ts.map +1 -0
- package/dist/planning/manifest-schema.js +71 -0
- package/dist/planning/manifest-schema.js.map +1 -0
- package/dist/planning/override-analyzer.d.ts +12 -0
- package/dist/planning/override-analyzer.d.ts.map +1 -0
- package/dist/planning/override-analyzer.js +42 -0
- package/dist/planning/override-analyzer.js.map +1 -0
- package/dist/planning/plan-generator.d.ts +15 -0
- package/dist/planning/plan-generator.d.ts.map +1 -0
- package/dist/planning/plan-generator.js +250 -0
- package/dist/planning/plan-generator.js.map +1 -0
- package/dist/planning/project-matcher.d.ts +65 -0
- package/dist/planning/project-matcher.d.ts.map +1 -0
- package/dist/planning/project-matcher.js +265 -0
- package/dist/planning/project-matcher.js.map +1 -0
- package/dist/planning/types.d.ts +237 -0
- package/dist/planning/types.d.ts.map +1 -0
- package/dist/planning/types.js +2 -0
- package/dist/planning/types.js.map +1 -0
- package/dist/types/index.d.ts +90 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/command-helpers.d.ts +14 -0
- package/dist/utils/command-helpers.d.ts.map +1 -0
- package/dist/utils/command-helpers.js +18 -0
- package/dist/utils/command-helpers.js.map +1 -0
- package/dist/utils/diff.d.ts +42 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +80 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/error.d.ts +5 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +8 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/fs.d.ts +50 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +117 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +31 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +62 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/output-writer.d.ts +26 -0
- package/dist/utils/output-writer.d.ts.map +1 -0
- package/dist/utils/output-writer.js +62 -0
- package/dist/utils/output-writer.js.map +1 -0
- package/dist/utils/pom-parser.d.ts +94 -0
- package/dist/utils/pom-parser.d.ts.map +1 -0
- package/dist/utils/pom-parser.js +120 -0
- package/dist/utils/pom-parser.js.map +1 -0
- package/dist/utils/spinner.d.ts +35 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +46 -0
- package/dist/utils/spinner.js.map +1 -0
- 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
|