@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,162 @@
|
|
|
1
|
+
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { handleGetUpgradeStatus } from './tools/get-upgrade-status.js';
|
|
4
|
+
import { handleDiscoverProject } from './tools/discover-project.js';
|
|
5
|
+
import { handleCreateUpgradePlan } from './tools/create-upgrade-plan.js';
|
|
6
|
+
import { handleGetNextStep } from './tools/get-next-step.js';
|
|
7
|
+
import { handleCompleteStep } from './tools/complete-step.js';
|
|
8
|
+
import { readDiscoveryResource, readPlanResource, readStepResource, readProgressResource, } from './resources/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create and configure the brxm-upgrade MCP server with all registered tools.
|
|
11
|
+
*
|
|
12
|
+
* @param projectDir - The root directory of the project to upgrade.
|
|
13
|
+
* Defaults to the current working directory.
|
|
14
|
+
*/
|
|
15
|
+
export function createServer(projectDir) {
|
|
16
|
+
const server = new McpServer({
|
|
17
|
+
name: 'brxm-upgrade',
|
|
18
|
+
version: '0.1.0',
|
|
19
|
+
});
|
|
20
|
+
const cwd = projectDir ?? process.cwd();
|
|
21
|
+
server.tool('get_upgrade_status', 'Get the current upgrade phase and what to do next. Call this first.', {}, async () => {
|
|
22
|
+
const result = await handleGetUpgradeStatus(cwd);
|
|
23
|
+
return {
|
|
24
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
server.tool('discover_project', 'Analyze the project structure, detect the current brXM version from pom.xml, and report the supported upgrade target versions. Run this before creating an upgrade plan.', { targetVersion: z.string().optional().describe('Optional target brXM version. Must be one of the supported newer versions reported by discovery.') }, async ({ targetVersion }) => {
|
|
28
|
+
try {
|
|
29
|
+
const result = await handleDiscoverProject(cwd, targetVersion);
|
|
30
|
+
return {
|
|
31
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return {
|
|
36
|
+
isError: true,
|
|
37
|
+
content: [{ type: 'text', text: JSON.stringify({
|
|
38
|
+
error: error instanceof Error ? error.message : 'Discovery failed',
|
|
39
|
+
nextAction: 'Check that the project directory contains a valid pom.xml',
|
|
40
|
+
}) }],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
server.tool('create_upgrade_plan', 'Generate an upgrade plan based on project discovery. Requires discover_project to be run first. If targetVersion is omitted, the latest supported newer version is used. If no newer supported version exists, this returns that no plan is needed.', {
|
|
45
|
+
targetVersion: z.string().optional().describe('Optional target brXM version. Must be one of the supported newer versions reported by discovery.'),
|
|
46
|
+
}, async ({ targetVersion }) => {
|
|
47
|
+
try {
|
|
48
|
+
const result = await handleCreateUpgradePlan(cwd, targetVersion);
|
|
49
|
+
return {
|
|
50
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
return {
|
|
55
|
+
isError: true,
|
|
56
|
+
content: [{ type: 'text', text: JSON.stringify({
|
|
57
|
+
error: error instanceof Error ? error.message : 'Plan generation failed',
|
|
58
|
+
nextAction: 'Run discover_project first, then try again',
|
|
59
|
+
}) }],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
server.tool('get_next_step', 'Get detailed instructions for the next pending upgrade step. Returns null when all steps are complete.', {}, async () => {
|
|
64
|
+
try {
|
|
65
|
+
const result = await handleGetNextStep(cwd);
|
|
66
|
+
if (!result) {
|
|
67
|
+
return {
|
|
68
|
+
content: [{ type: 'text', text: JSON.stringify({
|
|
69
|
+
message: 'All upgrade steps are complete.',
|
|
70
|
+
nextAction: 'Review your changes and run your build.',
|
|
71
|
+
}, null, 2) }],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
return {
|
|
80
|
+
isError: true,
|
|
81
|
+
content: [{ type: 'text', text: JSON.stringify({
|
|
82
|
+
error: error instanceof Error ? error.message : 'Failed to get next step',
|
|
83
|
+
nextAction: 'Check upgrade status with get_upgrade_status',
|
|
84
|
+
}) }],
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
server.tool('complete_step', 'Mark the current upgrade step as completed or skipped.', {
|
|
89
|
+
stepId: z.number().describe('Step number to complete'),
|
|
90
|
+
status: z.enum(['completed', 'skipped']).describe('Whether step was completed or skipped'),
|
|
91
|
+
}, async (params) => {
|
|
92
|
+
try {
|
|
93
|
+
const result = await handleCompleteStep(cwd, params);
|
|
94
|
+
return {
|
|
95
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
return {
|
|
100
|
+
isError: true,
|
|
101
|
+
content: [{ type: 'text', text: JSON.stringify({
|
|
102
|
+
error: error instanceof Error ? error.message : 'Failed to complete step',
|
|
103
|
+
nextAction: 'Check the upgrade status with get_upgrade_status',
|
|
104
|
+
}) }],
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
// --- Resources ---
|
|
109
|
+
server.resource('upgrade-status', 'upgrade://status', { description: 'Current upgrade phase, versions, progress, and next action' }, async () => {
|
|
110
|
+
const data = await handleGetUpgradeStatus(cwd);
|
|
111
|
+
return {
|
|
112
|
+
contents: [{
|
|
113
|
+
uri: 'upgrade://status',
|
|
114
|
+
text: JSON.stringify(data, null, 2),
|
|
115
|
+
mimeType: 'application/json',
|
|
116
|
+
}],
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
server.resource('upgrade-discovery', 'upgrade://discovery', { description: 'Full project context from discovery phase' }, async () => {
|
|
120
|
+
const data = await readDiscoveryResource(cwd);
|
|
121
|
+
return {
|
|
122
|
+
contents: [{
|
|
123
|
+
uri: 'upgrade://discovery',
|
|
124
|
+
text: data ? JSON.stringify(data, null, 2) : 'No discovery data. Run discover_project first.',
|
|
125
|
+
mimeType: 'application/json',
|
|
126
|
+
}],
|
|
127
|
+
};
|
|
128
|
+
});
|
|
129
|
+
server.resource('upgrade-plan', 'upgrade://plan', { description: 'Complete upgrade plan with all steps' }, async () => {
|
|
130
|
+
const data = await readPlanResource(cwd);
|
|
131
|
+
return {
|
|
132
|
+
contents: [{
|
|
133
|
+
uri: 'upgrade://plan',
|
|
134
|
+
text: data ? JSON.stringify(data, null, 2) : 'No plan. Run create_upgrade_plan first.',
|
|
135
|
+
mimeType: 'application/json',
|
|
136
|
+
}],
|
|
137
|
+
};
|
|
138
|
+
});
|
|
139
|
+
server.resource('upgrade-progress', 'upgrade://progress', { description: 'Execution progress with step statuses' }, async () => {
|
|
140
|
+
const data = await readProgressResource(cwd);
|
|
141
|
+
return {
|
|
142
|
+
contents: [{
|
|
143
|
+
uri: 'upgrade://progress',
|
|
144
|
+
text: data ? JSON.stringify(data, null, 2) : 'No progress data.',
|
|
145
|
+
mimeType: 'application/json',
|
|
146
|
+
}],
|
|
147
|
+
};
|
|
148
|
+
});
|
|
149
|
+
server.resource('upgrade-step', new ResourceTemplate('upgrade://plan/steps/{stepId}', { list: undefined }), { description: 'Detailed information about a specific upgrade step' }, async (uri, variables) => {
|
|
150
|
+
const stepId = parseInt(String(variables.stepId), 10);
|
|
151
|
+
const data = await readStepResource(cwd, stepId);
|
|
152
|
+
return {
|
|
153
|
+
contents: [{
|
|
154
|
+
uri: uri.href,
|
|
155
|
+
text: data ? JSON.stringify(data, null, 2) : `Step ${stepId} not found.`,
|
|
156
|
+
mimeType: 'application/json',
|
|
157
|
+
}],
|
|
158
|
+
};
|
|
159
|
+
});
|
|
160
|
+
return server;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parameters accepted by the complete_step tool.
|
|
3
|
+
*/
|
|
4
|
+
export interface CompleteStepParams {
|
|
5
|
+
stepId: number;
|
|
6
|
+
status: 'completed' | 'skipped';
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Result returned after marking a step as completed or skipped.
|
|
10
|
+
*/
|
|
11
|
+
export interface CompleteStepResult {
|
|
12
|
+
acknowledged: boolean;
|
|
13
|
+
nextAction: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Mark an upgrade step as completed or skipped.
|
|
17
|
+
*
|
|
18
|
+
* Loads (or creates) the execution state, records the step outcome, checks
|
|
19
|
+
* whether all plan steps are now done, and persists the updated state.
|
|
20
|
+
*
|
|
21
|
+
* @param projectDir - Root directory of the project being upgraded.
|
|
22
|
+
* @param params - Step identifier and completion status.
|
|
23
|
+
* @throws When no upgrade plan exists.
|
|
24
|
+
*/
|
|
25
|
+
export declare function handleCompleteStep(projectDir: string, params: CompleteStepParams): Promise<CompleteStepResult>;
|
|
26
|
+
//# sourceMappingURL=complete-step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete-step.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/complete-step.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAwE7B"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { writeTextFile, ensureDir, getOutputDir, joinPaths, } from '../../utils/fs.js';
|
|
2
|
+
import { PhaseManager } from '../../core/phase-manager.js';
|
|
3
|
+
/**
|
|
4
|
+
* Mark an upgrade step as completed or skipped.
|
|
5
|
+
*
|
|
6
|
+
* Loads (or creates) the execution state, records the step outcome, checks
|
|
7
|
+
* whether all plan steps are now done, and persists the updated state.
|
|
8
|
+
*
|
|
9
|
+
* @param projectDir - Root directory of the project being upgraded.
|
|
10
|
+
* @param params - Step identifier and completion status.
|
|
11
|
+
* @throws When no upgrade plan exists.
|
|
12
|
+
*/
|
|
13
|
+
export async function handleCompleteStep(projectDir, params) {
|
|
14
|
+
const pm = new PhaseManager(projectDir);
|
|
15
|
+
const plan = await pm.loadPlan();
|
|
16
|
+
if (!plan) {
|
|
17
|
+
throw new Error('No upgrade plan found. Call create_upgrade_plan first.');
|
|
18
|
+
}
|
|
19
|
+
const stateDir = getOutputDir(projectDir);
|
|
20
|
+
const statePath = joinPaths(stateDir, 'execution-state.json');
|
|
21
|
+
// Validate step exists in plan
|
|
22
|
+
const stepExists = plan.steps.some((s) => s.stepNumber === params.stepId);
|
|
23
|
+
if (!stepExists) {
|
|
24
|
+
throw new Error(`Step ${params.stepId} not found in plan. Valid steps: ${plan.steps.map((s) => s.stepNumber).join(', ')}`);
|
|
25
|
+
}
|
|
26
|
+
// Load or create execution state
|
|
27
|
+
let state;
|
|
28
|
+
const existingState = await pm.loadExecutionState();
|
|
29
|
+
if (existingState) {
|
|
30
|
+
state = existingState;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
state = {
|
|
34
|
+
planFile: 'plan.json',
|
|
35
|
+
planGeneratedAt: plan.generatedAt,
|
|
36
|
+
currentStep: 1,
|
|
37
|
+
completedSteps: [],
|
|
38
|
+
skippedSteps: [],
|
|
39
|
+
failedSteps: [],
|
|
40
|
+
startedAt: new Date().toISOString(),
|
|
41
|
+
updatedAt: new Date().toISOString(),
|
|
42
|
+
isComplete: false,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Enforce ordering: can only complete the next pending step
|
|
46
|
+
const done = new Set([...state.completedSteps, ...state.skippedSteps]);
|
|
47
|
+
if (done.has(params.stepId)) {
|
|
48
|
+
throw new Error(`Step ${params.stepId} has already been ${state.completedSteps.includes(params.stepId) ? 'completed' : 'skipped'}.`);
|
|
49
|
+
}
|
|
50
|
+
const nextPending = plan.steps.find((s) => !done.has(s.stepNumber));
|
|
51
|
+
if (nextPending && nextPending.stepNumber !== params.stepId) {
|
|
52
|
+
throw new Error(`Cannot complete step ${params.stepId} out of order. Next pending step is ${nextPending.stepNumber}. Call get_next_step to see what's next.`);
|
|
53
|
+
}
|
|
54
|
+
// Update state based on step outcome
|
|
55
|
+
if (params.status === 'completed') {
|
|
56
|
+
state.completedSteps.push(params.stepId);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
state.skippedSteps.push(params.stepId);
|
|
60
|
+
}
|
|
61
|
+
// Check if all steps are done
|
|
62
|
+
const allDone = new Set([...state.completedSteps, ...state.skippedSteps]);
|
|
63
|
+
state.isComplete = plan.steps.every((s) => allDone.has(s.stepNumber));
|
|
64
|
+
state.currentStep = params.stepId + 1;
|
|
65
|
+
state.updatedAt = new Date().toISOString();
|
|
66
|
+
// Persist
|
|
67
|
+
await ensureDir(stateDir);
|
|
68
|
+
await writeTextFile(statePath, JSON.stringify(state, null, 2));
|
|
69
|
+
const phase = state.isComplete ? 'completed' : 'executing';
|
|
70
|
+
const nextAction = pm.getNextAction(phase);
|
|
71
|
+
return { acknowledged: true, nextAction };
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=complete-step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete-step.js","sourceRoot":"","sources":["../../../src/mcp/tools/complete-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ManifestLoadOptions } from '../../planning/types.js';
|
|
2
|
+
import { type UpgradeTargetSelectionMode } from './upgrade-targets.js';
|
|
3
|
+
export interface CreatePlanResult {
|
|
4
|
+
totalSteps: number;
|
|
5
|
+
breakdown: {
|
|
6
|
+
automated: number;
|
|
7
|
+
aiAssisted: number;
|
|
8
|
+
manual: number;
|
|
9
|
+
};
|
|
10
|
+
estimatedRisk: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
fromVersion: string;
|
|
13
|
+
toVersion: string;
|
|
14
|
+
supportedTargetVersions: string[];
|
|
15
|
+
latestSupportedVersion?: string;
|
|
16
|
+
recommendedTargetVersion?: string;
|
|
17
|
+
targetSelectionMode: UpgradeTargetSelectionMode;
|
|
18
|
+
planRequired: boolean;
|
|
19
|
+
informationalCount: number;
|
|
20
|
+
nextAction: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generate an upgrade plan based on project discovery data.
|
|
24
|
+
*
|
|
25
|
+
* Loads manifests for the detected version range, matches them against the
|
|
26
|
+
* discovered project structure, generates a step-by-step plan, and persists
|
|
27
|
+
* the result to `plan.json` in the project's `.brxm-upgrade` directory.
|
|
28
|
+
*
|
|
29
|
+
* @param projectDir - Root directory of the project to upgrade.
|
|
30
|
+
* @param manifestOptions - Options controlling how manifests are loaded.
|
|
31
|
+
* Defaults to bundled manifests.
|
|
32
|
+
* @returns A summary of the generated upgrade plan.
|
|
33
|
+
* @throws When no discovery data is found (discover_project must run first).
|
|
34
|
+
*/
|
|
35
|
+
export declare function handleCreateUpgradePlan(projectDir: string, targetVersion?: string, manifestOptions?: ManifestLoadOptions): Promise<CreatePlanResult>;
|
|
36
|
+
//# sourceMappingURL=create-upgrade-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-upgrade-plan.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/create-upgrade-plan.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMnE,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,EAAE,0BAA0B,CAAC;IAChD,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,mBAAmB,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAoK3B"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { rm } from 'node:fs/promises';
|
|
2
|
+
import { pathExists, readTextFile, writeTextFile, ensureDir, getOutputDir, joinPaths, } from '../../utils/fs.js';
|
|
3
|
+
import { loadManifestsForUpgrade } from '../../planning/manifest-loader.js';
|
|
4
|
+
import { matchManifestsToProject } from '../../planning/project-matcher.js';
|
|
5
|
+
import { generatePlan } from '../../planning/plan-generator.js';
|
|
6
|
+
import { analyzeEntriesWithAI } from '../../planning/ai-analyzer.js';
|
|
7
|
+
import { loadConfig, getApiKey } from '../../config/index.js';
|
|
8
|
+
import { createAIClient } from '../../ai/index.js';
|
|
9
|
+
import { DocsClient } from '../../docs/index.js';
|
|
10
|
+
import { loadUpgradeState, saveUpgradeState } from '../../core/upgrade-state.js';
|
|
11
|
+
import { resolvePlanningTargetVersion, } from './upgrade-targets.js';
|
|
12
|
+
/**
|
|
13
|
+
* Generate an upgrade plan based on project discovery data.
|
|
14
|
+
*
|
|
15
|
+
* Loads manifests for the detected version range, matches them against the
|
|
16
|
+
* discovered project structure, generates a step-by-step plan, and persists
|
|
17
|
+
* the result to `plan.json` in the project's `.brxm-upgrade` directory.
|
|
18
|
+
*
|
|
19
|
+
* @param projectDir - Root directory of the project to upgrade.
|
|
20
|
+
* @param manifestOptions - Options controlling how manifests are loaded.
|
|
21
|
+
* Defaults to bundled manifests.
|
|
22
|
+
* @returns A summary of the generated upgrade plan.
|
|
23
|
+
* @throws When no discovery data is found (discover_project must run first).
|
|
24
|
+
*/
|
|
25
|
+
export async function handleCreateUpgradePlan(projectDir, targetVersion, manifestOptions) {
|
|
26
|
+
let docsClient;
|
|
27
|
+
try {
|
|
28
|
+
// Load discovery
|
|
29
|
+
const stateDir = getOutputDir(projectDir);
|
|
30
|
+
const discoveryPath = joinPaths(stateDir, 'discovery.json');
|
|
31
|
+
if (!(await pathExists(discoveryPath))) {
|
|
32
|
+
throw new Error('No discovery data found. Call discover_project first.');
|
|
33
|
+
}
|
|
34
|
+
const discovery = JSON.parse(await readTextFile(discoveryPath));
|
|
35
|
+
const fromVersion = discovery.build.brxmVersion;
|
|
36
|
+
// Resolve target version
|
|
37
|
+
const config = await loadConfig(projectDir);
|
|
38
|
+
const options = manifestOptions ?? {
|
|
39
|
+
source: config.upgrade.source,
|
|
40
|
+
url: config.upgrade.url,
|
|
41
|
+
localPath: config.upgrade.localPath,
|
|
42
|
+
};
|
|
43
|
+
const upgradeState = await loadUpgradeState(projectDir);
|
|
44
|
+
const targetResolution = await resolvePlanningTargetVersion(projectDir, fromVersion, {
|
|
45
|
+
requestedTargetVersion: targetVersion,
|
|
46
|
+
persistedTargetVersion: upgradeState?.targetVersion,
|
|
47
|
+
manifestOptions: options,
|
|
48
|
+
});
|
|
49
|
+
const toVersion = targetResolution.selectedTargetVersion ?? fromVersion;
|
|
50
|
+
if (!targetResolution.planRequired) {
|
|
51
|
+
await saveUpgradeState(projectDir, {
|
|
52
|
+
currentVersion: fromVersion,
|
|
53
|
+
targetVersion: toVersion,
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
totalSteps: 0,
|
|
57
|
+
breakdown: {
|
|
58
|
+
automated: 0,
|
|
59
|
+
aiAssisted: 0,
|
|
60
|
+
manual: 0,
|
|
61
|
+
},
|
|
62
|
+
estimatedRisk: 'None',
|
|
63
|
+
summary: `No upgrade plan needed. Project is already on the latest supported upgrade target ${fromVersion}.`,
|
|
64
|
+
fromVersion,
|
|
65
|
+
toVersion,
|
|
66
|
+
supportedTargetVersions: targetResolution.supportedTargetVersions,
|
|
67
|
+
latestSupportedVersion: targetResolution.latestSupportedVersion,
|
|
68
|
+
recommendedTargetVersion: targetResolution.recommendedTargetVersion,
|
|
69
|
+
targetSelectionMode: targetResolution.selectionMode,
|
|
70
|
+
planRequired: false,
|
|
71
|
+
informationalCount: 0,
|
|
72
|
+
nextAction: 'No upgrade plan is needed. Review the discovery results or continue with your usual validation steps.',
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// Load manifests and match to project
|
|
76
|
+
const manifests = await loadManifestsForUpgrade(fromVersion, toVersion, options);
|
|
77
|
+
const matches = await matchManifestsToProject(manifests, discovery, {
|
|
78
|
+
projectRoot: projectDir,
|
|
79
|
+
});
|
|
80
|
+
const applicableMatches = matches.filter((match) => match.applies);
|
|
81
|
+
let aiAnalysisEnabled = false;
|
|
82
|
+
const partialEntries = applicableMatches.filter((match) => match.entry.automatable === 'partial');
|
|
83
|
+
if (partialEntries.length > 0) {
|
|
84
|
+
const apiKey = getApiKey(config.ai.provider, config.ai.apiKeyEnv);
|
|
85
|
+
if (apiKey) {
|
|
86
|
+
const aiClient = createAIClient(config.ai.provider, config.ai.model, apiKey, config.ai.baseUrl);
|
|
87
|
+
docsClient = new DocsClient();
|
|
88
|
+
const analyses = await analyzeEntriesWithAI(partialEntries.map((match) => ({
|
|
89
|
+
entry: match.entry,
|
|
90
|
+
affectedFiles: match.affectedFiles,
|
|
91
|
+
})), discovery, aiClient, undefined, docsClient);
|
|
92
|
+
for (const match of applicableMatches) {
|
|
93
|
+
const analysis = analyses.get(match.entry.id);
|
|
94
|
+
if (analysis) {
|
|
95
|
+
match.aiAnalysis = analysis;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
aiAnalysisEnabled = true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Generate plan
|
|
102
|
+
const plan = generatePlan(applicableMatches, fromVersion, toVersion, manifests.map((manifest) => manifest.version), '.brxm-upgrade/discovery.json');
|
|
103
|
+
plan.aiAnalysisEnabled = aiAnalysisEnabled;
|
|
104
|
+
// Persist plan and clear stale execution state from any prior run
|
|
105
|
+
await ensureDir(stateDir);
|
|
106
|
+
await writeTextFile(joinPaths(stateDir, 'plan.json'), JSON.stringify(plan, null, 2));
|
|
107
|
+
await rm(joinPaths(stateDir, 'execution-state.json'), { force: true });
|
|
108
|
+
await saveUpgradeState(projectDir, {
|
|
109
|
+
currentVersion: fromVersion,
|
|
110
|
+
targetVersion: toVersion,
|
|
111
|
+
});
|
|
112
|
+
const { summary } = plan;
|
|
113
|
+
const avgRisk = summary.averageRiskLevel;
|
|
114
|
+
const riskLabel = avgRisk <= 2 ? 'Low' : avgRisk <= 3.5 ? 'Medium' : 'High';
|
|
115
|
+
const infoCount = plan.informationalEntries?.length ?? 0;
|
|
116
|
+
const infoSuffix = infoCount > 0
|
|
117
|
+
? ` and ${infoCount} platform change note${infoCount === 1 ? '' : 's'}`
|
|
118
|
+
: '';
|
|
119
|
+
return {
|
|
120
|
+
totalSteps: summary.totalSteps,
|
|
121
|
+
breakdown: {
|
|
122
|
+
automated: summary.automatedSteps,
|
|
123
|
+
aiAssisted: summary.aiAssistedSteps,
|
|
124
|
+
manual: summary.manualSteps,
|
|
125
|
+
},
|
|
126
|
+
estimatedRisk: `${riskLabel} (avg ${avgRisk.toFixed(1)}/5)`,
|
|
127
|
+
summary: `Upgrade from ${fromVersion} to ${toVersion}: ${summary.totalSteps} steps affecting ${summary.totalFilesAffected} files.`,
|
|
128
|
+
fromVersion,
|
|
129
|
+
toVersion,
|
|
130
|
+
supportedTargetVersions: targetResolution.supportedTargetVersions,
|
|
131
|
+
latestSupportedVersion: targetResolution.latestSupportedVersion,
|
|
132
|
+
recommendedTargetVersion: targetResolution.recommendedTargetVersion,
|
|
133
|
+
targetSelectionMode: targetResolution.selectionMode,
|
|
134
|
+
planRequired: true,
|
|
135
|
+
informationalCount: infoCount,
|
|
136
|
+
nextAction: `Call get_next_step to begin applying ${summary.totalSteps} upgrade step${summary.totalSteps === 1 ? '' : 's'}${infoSuffix}.`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
await docsClient?.disconnect();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=create-upgrade-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-upgrade-plan.js","sourceRoot":"","sources":["../../../src/mcp/tools/create-upgrade-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACL,4BAA4B,GAE7B,MAAM,sBAAsB,CAAC;AAkB9B;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAAkB,EAClB,aAAsB,EACtB,eAAqC;IAErC,IAAI,UAAkC,CAAC;IACvC,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAE5D,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,MAAM,YAAY,CAAC,aAAa,CAAC,CAChB,CAAC;QACpB,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;QAEhD,yBAAyB;QACzB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAwB,eAAe,IAAI;YACtD,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;YAC7B,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;YACvB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;SACpC,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,MAAM,4BAA4B,CACzD,UAAU,EACV,WAAW,EACX;YACE,sBAAsB,EAAE,aAAa;YACrC,sBAAsB,EAAE,YAAY,EAAE,aAAa;YACnD,eAAe,EAAE,OAAO;SACzB,CACF,CAAC;QACF,MAAM,SAAS,GAAG,gBAAgB,CAAC,qBAAqB,IAAI,WAAW,CAAC;QAExE,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;YACnC,MAAM,gBAAgB,CAAC,UAAU,EAAE;gBACjC,cAAc,EAAE,WAAW;gBAC3B,aAAa,EAAE,SAAS;aACzB,CAAC,CAAC;YAEH,OAAO;gBACL,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE;oBACT,SAAS,EAAE,CAAC;oBACZ,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,CAAC;iBACV;gBACD,aAAa,EAAE,MAAM;gBACrB,OAAO,EAAE,qFAAqF,WAAW,GAAG;gBAC5G,WAAW;gBACX,SAAS;gBACT,uBAAuB,EAAE,gBAAgB,CAAC,uBAAuB;gBACjE,sBAAsB,EAAE,gBAAgB,CAAC,sBAAsB;gBAC/D,wBAAwB,EAAE,gBAAgB,CAAC,wBAAwB;gBACnE,mBAAmB,EAAE,gBAAgB,CAAC,aAAa;gBACnD,YAAY,EAAE,KAAK;gBACnB,kBAAkB,EAAE,CAAC;gBACrB,UAAU,EACR,uGAAuG;aAC1G,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAC7C,WAAW,EACX,SAAS,EACT,OAAO,CACR,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE;YAClE,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnE,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CACjD,CAAC;QACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,cAAc,CAC7B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EACf,MAAM,EACN,MAAM,CAAC,EAAE,CAAC,OAAO,CAClB,CAAC;gBACF,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAC,CAAC,EACH,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,CACX,CAAC;gBACF,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;oBACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC9C,IAAI,QAAQ,EAAE,CAAC;wBACb,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBACD,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,MAAM,IAAI,GAAG,YAAY,CACvB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC7C,8BAA8B,CAC/B,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAE3C,kEAAkE;QAClE,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,aAAa,CACjB,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAC9B,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,sBAAsB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,gBAAgB,CAAC,UAAU,EAAE;YACjC,cAAc,EAAE,WAAW;YAC3B,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACzC,MAAM,SAAS,GACb,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,CAAC;QACzD,MAAM,UAAU,GACd,SAAS,GAAG,CAAC;YACX,CAAC,CAAC,QAAQ,SAAS,wBAAwB,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YACvE,CAAC,CAAC,EAAE,CAAC;QAET,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE;gBACT,SAAS,EAAE,OAAO,CAAC,cAAc;gBACjC,UAAU,EAAE,OAAO,CAAC,eAAe;gBACnC,MAAM,EAAE,OAAO,CAAC,WAAW;aAC5B;YACD,aAAa,EAAE,GAAG,SAAS,SAAS,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YAC3D,OAAO,EAAE,gBAAgB,WAAW,OAAO,SAAS,KAAK,OAAO,CAAC,UAAU,oBAAoB,OAAO,CAAC,kBAAkB,SAAS;YAClI,WAAW;YACX,SAAS;YACT,uBAAuB,EAAE,gBAAgB,CAAC,uBAAuB;YACjE,sBAAsB,EAAE,gBAAgB,CAAC,sBAAsB;YAC/D,wBAAwB,EAAE,gBAAgB,CAAC,wBAAwB;YACnE,mBAAmB,EAAE,gBAAgB,CAAC,aAAa;YACnD,YAAY,EAAE,IAAI;YAClB,kBAAkB,EAAE,SAAS;YAC7B,UAAU,EAAE,wCAAwC,OAAO,CAAC,UAAU,gBAAgB,OAAO,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,GAAG;SAC1I,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,UAAU,EAAE,UAAU,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type UpgradeTargetSelectionMode } from './upgrade-targets.js';
|
|
2
|
+
export interface DiscoverProjectResult {
|
|
3
|
+
currentVersion: string;
|
|
4
|
+
targetVersion?: string;
|
|
5
|
+
supportedTargetVersions: string[];
|
|
6
|
+
latestSupportedVersion?: string;
|
|
7
|
+
recommendedTargetVersion?: string;
|
|
8
|
+
targetSelectionMode: UpgradeTargetSelectionMode;
|
|
9
|
+
modules: Array<{
|
|
10
|
+
name: string;
|
|
11
|
+
artifactId: string;
|
|
12
|
+
javaFiles?: number;
|
|
13
|
+
}>;
|
|
14
|
+
javaFileCount: number;
|
|
15
|
+
highlights: string[];
|
|
16
|
+
isUpgradeReady: boolean;
|
|
17
|
+
planRequired: boolean;
|
|
18
|
+
nextAction: string;
|
|
19
|
+
versionSource: 'pom.xml';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Handle the discover_project MCP tool call.
|
|
23
|
+
*
|
|
24
|
+
* Runs the full discovery pipeline against the given project directory,
|
|
25
|
+
* persists the result to `.brxm-upgrade/discovery.json`, and returns
|
|
26
|
+
* a structured summary for the AI agent.
|
|
27
|
+
*
|
|
28
|
+
* @param projectDir - Absolute path to the project root directory
|
|
29
|
+
* @param targetVersion - Optional target brXM version to upgrade to
|
|
30
|
+
* @returns Structured discovery result with version, modules, and highlights
|
|
31
|
+
*/
|
|
32
|
+
export declare function handleDiscoverProject(projectDir: string, targetVersion?: string): Promise<DiscoverProjectResult>;
|
|
33
|
+
//# sourceMappingURL=discover-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-project.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/discover-project.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,EAAE,0BAA0B,CAAC;IAChD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,SAAS,CAAC;CAC1B;AAiDD;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,qBAAqB,CAAC,CA0DhC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { DiscoveryOrchestrator } from '../../discovery/orchestrator.js';
|
|
2
|
+
import { rm } from 'node:fs/promises';
|
|
3
|
+
import { ensureDir, writeTextFile, getOutputDir, joinPaths } from '../../utils/fs.js';
|
|
4
|
+
import { saveUpgradeState } from '../../core/upgrade-state.js';
|
|
5
|
+
import { resolveDiscoveryTargetVersion, } from './upgrade-targets.js';
|
|
6
|
+
function buildHighlights(context) {
|
|
7
|
+
const highlights = [];
|
|
8
|
+
highlights.push(`${context.build.moduleCount} Maven modules detected`);
|
|
9
|
+
highlights.push(`${context.build.totalJavaFiles} Java source files`);
|
|
10
|
+
if (context.repo.groovyScripts.length > 0) {
|
|
11
|
+
highlights.push(`${context.repo.groovyScripts.length} Groovy updater scripts found`);
|
|
12
|
+
}
|
|
13
|
+
if (context.config.cvReports.length > 0) {
|
|
14
|
+
highlights.push('Configuration Verifier report present');
|
|
15
|
+
}
|
|
16
|
+
if (context.build.overrides.length > 0) {
|
|
17
|
+
highlights.push(`${context.build.overrides.length} version override(s) detected — will be analyzed during planning`);
|
|
18
|
+
}
|
|
19
|
+
if (context.repo.hasBootstrap) {
|
|
20
|
+
highlights.push(`${context.repo.bootstrapPaths.length} bootstrap configurations`);
|
|
21
|
+
}
|
|
22
|
+
if (context.validations.length > 0) {
|
|
23
|
+
const errors = context.validations.filter((v) => v.severity === 'error').length;
|
|
24
|
+
const warnings = context.validations.filter((v) => v.severity === 'warning').length;
|
|
25
|
+
if (errors > 0)
|
|
26
|
+
highlights.push(`${errors} validation errors`);
|
|
27
|
+
if (warnings > 0)
|
|
28
|
+
highlights.push(`${warnings} validation warnings`);
|
|
29
|
+
}
|
|
30
|
+
return highlights;
|
|
31
|
+
}
|
|
32
|
+
function buildNextAction(selectionMode, currentVersion, targetVersion, supportedTargetVersions, recommendedTargetVersion) {
|
|
33
|
+
switch (selectionMode) {
|
|
34
|
+
case 'none_supported':
|
|
35
|
+
return `No upgrade plan is needed. The project is already on the latest supported upgrade target ${currentVersion}.`;
|
|
36
|
+
case 'single_supported_target':
|
|
37
|
+
return `Only one supported upgrade target is available (${targetVersion}). Call create_upgrade_plan without specifying targetVersion.`;
|
|
38
|
+
case 'multiple_supported_targets':
|
|
39
|
+
return `Choose one of the supported target versions (${supportedTargetVersions.join(', ')}) and call create_upgrade_plan. If targetVersion is omitted there, it will default to ${recommendedTargetVersion}.`;
|
|
40
|
+
case 'explicit_target':
|
|
41
|
+
return `Call create_upgrade_plan to generate the upgrade plan for target version ${targetVersion}.`;
|
|
42
|
+
default:
|
|
43
|
+
return 'Call create_upgrade_plan to generate the upgrade plan.';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Handle the discover_project MCP tool call.
|
|
48
|
+
*
|
|
49
|
+
* Runs the full discovery pipeline against the given project directory,
|
|
50
|
+
* persists the result to `.brxm-upgrade/discovery.json`, and returns
|
|
51
|
+
* a structured summary for the AI agent.
|
|
52
|
+
*
|
|
53
|
+
* @param projectDir - Absolute path to the project root directory
|
|
54
|
+
* @param targetVersion - Optional target brXM version to upgrade to
|
|
55
|
+
* @returns Structured discovery result with version, modules, and highlights
|
|
56
|
+
*/
|
|
57
|
+
export async function handleDiscoverProject(projectDir, targetVersion) {
|
|
58
|
+
const orchestrator = new DiscoveryOrchestrator();
|
|
59
|
+
const discoveryResult = await orchestrator.discover(projectDir);
|
|
60
|
+
if (!discoveryResult.success || !discoveryResult.context) {
|
|
61
|
+
throw new Error(`Discovery failed: ${discoveryResult.error ?? 'Unknown error'}`);
|
|
62
|
+
}
|
|
63
|
+
const context = discoveryResult.context;
|
|
64
|
+
const targetResolution = await resolveDiscoveryTargetVersion(projectDir, context.build.brxmVersion, targetVersion);
|
|
65
|
+
// Persist discovery result to state directory
|
|
66
|
+
const stateDir = getOutputDir(projectDir);
|
|
67
|
+
await ensureDir(stateDir);
|
|
68
|
+
await writeTextFile(joinPaths(stateDir, 'discovery.json'), JSON.stringify(context, null, 2));
|
|
69
|
+
await saveUpgradeState(projectDir, {
|
|
70
|
+
currentVersion: context.build.brxmVersion,
|
|
71
|
+
targetVersion: targetResolution.selectedTargetVersion,
|
|
72
|
+
});
|
|
73
|
+
// Clear stale plan and execution state from any prior discovery run
|
|
74
|
+
await rm(joinPaths(stateDir, 'plan.json'), { force: true });
|
|
75
|
+
await rm(joinPaths(stateDir, 'execution-state.json'), { force: true });
|
|
76
|
+
return {
|
|
77
|
+
currentVersion: context.build.brxmVersion,
|
|
78
|
+
targetVersion: targetResolution.selectedTargetVersion,
|
|
79
|
+
supportedTargetVersions: targetResolution.supportedTargetVersions,
|
|
80
|
+
latestSupportedVersion: targetResolution.latestSupportedVersion,
|
|
81
|
+
recommendedTargetVersion: targetResolution.recommendedTargetVersion,
|
|
82
|
+
targetSelectionMode: targetResolution.selectionMode,
|
|
83
|
+
modules: context.build.modules.map((m) => ({
|
|
84
|
+
name: m.name,
|
|
85
|
+
artifactId: m.artifactId,
|
|
86
|
+
javaFiles: m.javaFileCount,
|
|
87
|
+
})),
|
|
88
|
+
javaFileCount: context.build.totalJavaFiles,
|
|
89
|
+
highlights: buildHighlights(context),
|
|
90
|
+
isUpgradeReady: context.isUpgradeReady,
|
|
91
|
+
planRequired: targetResolution.planRequired,
|
|
92
|
+
nextAction: buildNextAction(targetResolution.selectionMode, context.build.brxmVersion, targetResolution.selectedTargetVersion, targetResolution.supportedTargetVersions, targetResolution.recommendedTargetVersion),
|
|
93
|
+
versionSource: 'pom.xml',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=discover-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-project.js","sourceRoot":"","sources":["../../../src/mcp/tools/discover-project.ts"],"names":[],"mappings":"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"}
|