@archpilotlabs/archpilot 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/CHANGELOG.md +538 -0
  2. package/README.md +1 -0
  3. package/dist/archpilot-cli.js +850 -159
  4. package/dist/cli/src/archpilot-cli.js +5523 -0
  5. package/dist/cli/src/archpilot-cli.js.map +1 -0
  6. package/dist/core/src/adr/adrLoader.js +97 -0
  7. package/dist/core/src/adr/adrLoader.js.map +1 -0
  8. package/dist/core/src/adr/adrParser.js +77 -0
  9. package/dist/core/src/adr/adrParser.js.map +1 -0
  10. package/dist/core/src/adr/adrTemplate.js +45 -0
  11. package/dist/core/src/adr/adrTemplate.js.map +1 -0
  12. package/dist/core/src/adr/adrTypes.js +3 -0
  13. package/dist/core/src/adr/adrTypes.js.map +1 -0
  14. package/dist/core/src/adr/adrValidation.js +160 -0
  15. package/dist/core/src/adr/adrValidation.js.map +1 -0
  16. package/dist/core/src/adr/index.js +9 -0
  17. package/dist/core/src/adr/index.js.map +1 -0
  18. package/dist/core/src/adrManagement.js +174 -0
  19. package/dist/core/src/adrManagement.js.map +1 -0
  20. package/dist/core/src/adrRequirementStatus.js +62 -0
  21. package/dist/core/src/adrRequirementStatus.js.map +1 -0
  22. package/dist/core/src/adrScaffoldGeneration.js +325 -0
  23. package/dist/core/src/adrScaffoldGeneration.js.map +1 -0
  24. package/dist/core/src/apiDesignAnalysis.js +869 -0
  25. package/dist/core/src/apiDesignAnalysis.js.map +1 -0
  26. package/dist/core/src/applicationLayeringAnalysis.js +920 -0
  27. package/dist/core/src/applicationLayeringAnalysis.js.map +1 -0
  28. package/dist/core/src/applyRulePack.js +117 -0
  29. package/dist/core/src/applyRulePack.js.map +1 -0
  30. package/dist/core/src/architectureBaseline.js +271 -0
  31. package/dist/core/src/architectureBaseline.js.map +1 -0
  32. package/dist/core/src/architectureComponentDiscoveryDefaults.js +139 -0
  33. package/dist/core/src/architectureComponentDiscoveryDefaults.js.map +1 -0
  34. package/dist/core/src/architectureDependencyContext.js +316 -0
  35. package/dist/core/src/architectureDependencyContext.js.map +1 -0
  36. package/dist/core/src/architectureDriftDetection.js +96 -0
  37. package/dist/core/src/architectureDriftDetection.js.map +1 -0
  38. package/dist/core/src/architectureDriftTimeline.js +221 -0
  39. package/dist/core/src/architectureDriftTimeline.js.map +1 -0
  40. package/dist/core/src/architectureGovernanceBaseline.js +469 -0
  41. package/dist/core/src/architectureGovernanceBaseline.js.map +1 -0
  42. package/dist/core/src/architectureHealthHistory.js +208 -0
  43. package/dist/core/src/architectureHealthHistory.js.map +1 -0
  44. package/dist/core/src/architectureHealthScore.js +657 -0
  45. package/dist/core/src/architectureHealthScore.js.map +1 -0
  46. package/dist/core/src/architectureInit.js +826 -0
  47. package/dist/core/src/architectureInit.js.map +1 -0
  48. package/dist/core/src/architectureMap.js +727 -0
  49. package/dist/core/src/architectureMap.js.map +1 -0
  50. package/dist/core/src/architectureMigrationPreview.js +467 -0
  51. package/dist/core/src/architectureMigrationPreview.js.map +1 -0
  52. package/dist/core/src/architectureModelRefresh.js +209 -0
  53. package/dist/core/src/architectureModelRefresh.js.map +1 -0
  54. package/dist/core/src/architectureReportWorkflow.js +139 -0
  55. package/dist/core/src/architectureReportWorkflow.js.map +1 -0
  56. package/dist/core/src/architectureValidation.js +3879 -0
  57. package/dist/core/src/architectureValidation.js.map +1 -0
  58. package/dist/core/src/architectureWorkspaceModel.js +166 -0
  59. package/dist/core/src/architectureWorkspaceModel.js.map +1 -0
  60. package/dist/core/src/authorizationTenantAnalysis.js +652 -0
  61. package/dist/core/src/authorizationTenantAnalysis.js.map +1 -0
  62. package/dist/core/src/bootstrapArchitectureConfig.js +150 -0
  63. package/dist/core/src/bootstrapArchitectureConfig.js.map +1 -0
  64. package/dist/core/src/changeRisk/changeRiskAssessment.js +251 -0
  65. package/dist/core/src/changeRisk/changeRiskAssessment.js.map +1 -0
  66. package/dist/core/src/changeRisk/changeRiskTypes.js +3 -0
  67. package/dist/core/src/changeRisk/changeRiskTypes.js.map +1 -0
  68. package/dist/core/src/changeRisk/index.js +6 -0
  69. package/dist/core/src/changeRisk/index.js.map +1 -0
  70. package/dist/core/src/ci/githubInlineAnnotations.js +245 -0
  71. package/dist/core/src/ci/githubInlineAnnotations.js.map +1 -0
  72. package/dist/core/src/ci/githubPrCommentAdapter.js +232 -0
  73. package/dist/core/src/ci/githubPrCommentAdapter.js.map +1 -0
  74. package/dist/core/src/ciWorkflowTemplates.js +1042 -0
  75. package/dist/core/src/ciWorkflowTemplates.js.map +1 -0
  76. package/dist/core/src/compliance/complianceExportBuilder.js +122 -0
  77. package/dist/core/src/compliance/complianceExportBuilder.js.map +1 -0
  78. package/dist/core/src/compliance/complianceExportTypes.js +3 -0
  79. package/dist/core/src/compliance/complianceExportTypes.js.map +1 -0
  80. package/dist/core/src/compliance/complianceExportWriter.js +48 -0
  81. package/dist/core/src/compliance/complianceExportWriter.js.map +1 -0
  82. package/dist/core/src/compliance/complianceRulePackResolver.js +62 -0
  83. package/dist/core/src/compliance/complianceRulePackResolver.js.map +1 -0
  84. package/dist/core/src/config/index.js +17 -0
  85. package/dist/core/src/config/index.js.map +1 -0
  86. package/dist/core/src/config/projectConfig.js +224 -0
  87. package/dist/core/src/config/projectConfig.js.map +1 -0
  88. package/dist/core/src/config/projectIdentity.js +160 -0
  89. package/dist/core/src/config/projectIdentity.js.map +1 -0
  90. package/dist/core/src/dataQueryRiskDetection.js +1203 -0
  91. package/dist/core/src/dataQueryRiskDetection.js.map +1 -0
  92. package/dist/core/src/dependencyValidation.js +2557 -0
  93. package/dist/core/src/dependencyValidation.js.map +1 -0
  94. package/dist/core/src/discoverAdrs.js +15 -0
  95. package/dist/core/src/discoverAdrs.js.map +1 -0
  96. package/dist/core/src/drift/driftComparator.js +49 -0
  97. package/dist/core/src/drift/driftComparator.js.map +1 -0
  98. package/dist/core/src/drift/driftSnapshotLoader.js +136 -0
  99. package/dist/core/src/drift/driftSnapshotLoader.js.map +1 -0
  100. package/dist/core/src/drift/driftSnapshotTypes.js +3 -0
  101. package/dist/core/src/drift/driftSnapshotTypes.js.map +1 -0
  102. package/dist/core/src/drift/driftSnapshotWriter.js +48 -0
  103. package/dist/core/src/drift/driftSnapshotWriter.js.map +1 -0
  104. package/dist/core/src/drift/index.js +6 -0
  105. package/dist/core/src/drift/index.js.map +1 -0
  106. package/dist/core/src/eventArchitectureAnalysis.js +925 -0
  107. package/dist/core/src/eventArchitectureAnalysis.js.map +1 -0
  108. package/dist/core/src/findingTargetResolution.js +117 -0
  109. package/dist/core/src/findingTargetResolution.js.map +1 -0
  110. package/dist/core/src/generateArchitectureDiagrams.js +57 -0
  111. package/dist/core/src/generateArchitectureDiagrams.js.map +1 -0
  112. package/dist/core/src/generateImpactAnalysis.js +366 -0
  113. package/dist/core/src/generateImpactAnalysis.js.map +1 -0
  114. package/dist/core/src/generateOnboardingDocs.js +262 -0
  115. package/dist/core/src/generateOnboardingDocs.js.map +1 -0
  116. package/dist/core/src/governance/cloudConnection.js +203 -0
  117. package/dist/core/src/governance/cloudConnection.js.map +1 -0
  118. package/dist/core/src/governance/governanceContracts.js +129 -0
  119. package/dist/core/src/governance/governanceContracts.js.map +1 -0
  120. package/dist/core/src/governance/governanceGitMetadata.js +78 -0
  121. package/dist/core/src/governance/governanceGitMetadata.js.map +1 -0
  122. package/dist/core/src/governance/governanceUploadClient.js +119 -0
  123. package/dist/core/src/governance/governanceUploadClient.js.map +1 -0
  124. package/dist/core/src/governance/governanceUploadLimitErrorFormatting.js +155 -0
  125. package/dist/core/src/governance/governanceUploadLimitErrorFormatting.js.map +1 -0
  126. package/dist/core/src/governance/governanceUploadPayload.js +439 -0
  127. package/dist/core/src/governance/governanceUploadPayload.js.map +1 -0
  128. package/dist/core/src/governance/runGovernanceUpload.js +103 -0
  129. package/dist/core/src/governance/runGovernanceUpload.js.map +1 -0
  130. package/dist/core/src/impactAnalysisEngine.js +376 -0
  131. package/dist/core/src/impactAnalysisEngine.js.map +1 -0
  132. package/dist/core/src/initializationState.js +99 -0
  133. package/dist/core/src/initializationState.js.map +1 -0
  134. package/dist/core/src/managedArtifacts.js +151 -0
  135. package/dist/core/src/managedArtifacts.js.map +1 -0
  136. package/dist/core/src/moduleContractValidation.js +266 -0
  137. package/dist/core/src/moduleContractValidation.js.map +1 -0
  138. package/dist/core/src/moduleContractsGenerator.js +337 -0
  139. package/dist/core/src/moduleContractsGenerator.js.map +1 -0
  140. package/dist/core/src/moduleDiscovery.js +416 -0
  141. package/dist/core/src/moduleDiscovery.js.map +1 -0
  142. package/dist/core/src/moduleScope.js +426 -0
  143. package/dist/core/src/moduleScope.js.map +1 -0
  144. package/dist/core/src/onboardingGuidance.js +74 -0
  145. package/dist/core/src/onboardingGuidance.js.map +1 -0
  146. package/dist/core/src/operationalLogging.js +7 -0
  147. package/dist/core/src/operationalLogging.js.map +1 -0
  148. package/dist/core/src/packageVersion.js +52 -0
  149. package/dist/core/src/packageVersion.js.map +1 -0
  150. package/dist/core/src/policy/effectivePolicyResolver.js +91 -0
  151. package/dist/core/src/policy/effectivePolicyResolver.js.map +1 -0
  152. package/dist/core/src/policy/exceptionLoader.js +285 -0
  153. package/dist/core/src/policy/exceptionLoader.js.map +1 -0
  154. package/dist/core/src/policy/remotePolicyLoader.js +227 -0
  155. package/dist/core/src/policy/remotePolicyLoader.js.map +1 -0
  156. package/dist/core/src/policy/remotePolicyTypes.js +3 -0
  157. package/dist/core/src/policy/remotePolicyTypes.js.map +1 -0
  158. package/dist/core/src/policy/riskPolicyConfig.js +206 -0
  159. package/dist/core/src/policy/riskPolicyConfig.js.map +1 -0
  160. package/dist/core/src/policy/riskPolicyEnforcement.js +203 -0
  161. package/dist/core/src/policy/riskPolicyEnforcement.js.map +1 -0
  162. package/dist/core/src/policy/riskPolicyExitCode.js +16 -0
  163. package/dist/core/src/policy/riskPolicyExitCode.js.map +1 -0
  164. package/dist/core/src/policy/riskPolicyInitializer.js +90 -0
  165. package/dist/core/src/policy/riskPolicyInitializer.js.map +1 -0
  166. package/dist/core/src/quickFix/quickFixEngine.js +132 -0
  167. package/dist/core/src/quickFix/quickFixEngine.js.map +1 -0
  168. package/dist/core/src/quickFix/quickFixMessaging.js +15 -0
  169. package/dist/core/src/quickFix/quickFixMessaging.js.map +1 -0
  170. package/dist/core/src/quickFix/quickFixProviders.js +87 -0
  171. package/dist/core/src/quickFix/quickFixProviders.js.map +1 -0
  172. package/dist/core/src/quickFix/quickFixTypes.js +3 -0
  173. package/dist/core/src/quickFix/quickFixTypes.js.map +1 -0
  174. package/dist/core/src/remediation/fileHelpers.js +86 -0
  175. package/dist/core/src/remediation/fileHelpers.js.map +1 -0
  176. package/dist/core/src/remediation/fixRegistry.js +645 -0
  177. package/dist/core/src/remediation/fixRegistry.js.map +1 -0
  178. package/dist/core/src/remediation/index.js +8 -0
  179. package/dist/core/src/remediation/index.js.map +1 -0
  180. package/dist/core/src/remediation/remediationEngine.js +207 -0
  181. package/dist/core/src/remediation/remediationEngine.js.map +1 -0
  182. package/dist/core/src/reporting/adrReporter.js +59 -0
  183. package/dist/core/src/reporting/adrReporter.js.map +1 -0
  184. package/dist/core/src/reporting/architectureBaselineReporter.js +64 -0
  185. package/dist/core/src/reporting/architectureBaselineReporter.js.map +1 -0
  186. package/dist/core/src/reporting/architectureDiagramReporter.js +148 -0
  187. package/dist/core/src/reporting/architectureDiagramReporter.js.map +1 -0
  188. package/dist/core/src/reporting/architectureDriftTimelineReporter.js +44 -0
  189. package/dist/core/src/reporting/architectureDriftTimelineReporter.js.map +1 -0
  190. package/dist/core/src/reporting/architectureHealthHistoryReporter.js +51 -0
  191. package/dist/core/src/reporting/architectureHealthHistoryReporter.js.map +1 -0
  192. package/dist/core/src/reporting/architectureMapReporter.js +228 -0
  193. package/dist/core/src/reporting/architectureMapReporter.js.map +1 -0
  194. package/dist/core/src/reporting/architecturePrCommentReporter.js +324 -0
  195. package/dist/core/src/reporting/architecturePrCommentReporter.js.map +1 -0
  196. package/dist/core/src/reporting/architecturePrReviewReporter.js +389 -0
  197. package/dist/core/src/reporting/architecturePrReviewReporter.js.map +1 -0
  198. package/dist/core/src/reporting/architectureReportArtifacts.js +166 -0
  199. package/dist/core/src/reporting/architectureReportArtifacts.js.map +1 -0
  200. package/dist/core/src/reporting/architectureReviewReportGenerator.js +382 -0
  201. package/dist/core/src/reporting/architectureReviewReportGenerator.js.map +1 -0
  202. package/dist/core/src/reporting/architectureReviewReporter.js +1633 -0
  203. package/dist/core/src/reporting/architectureReviewReporter.js.map +1 -0
  204. package/dist/core/src/reporting/architectureRiskAssessment.js +101 -0
  205. package/dist/core/src/reporting/architectureRiskAssessment.js.map +1 -0
  206. package/dist/core/src/reporting/architectureScoreBadge.js +177 -0
  207. package/dist/core/src/reporting/architectureScoreBadge.js.map +1 -0
  208. package/dist/core/src/reporting/architectureSupplementalReporters.js +124 -0
  209. package/dist/core/src/reporting/architectureSupplementalReporters.js.map +1 -0
  210. package/dist/core/src/reporting/changeRiskAssessment.js +6 -0
  211. package/dist/core/src/reporting/changeRiskAssessment.js.map +1 -0
  212. package/dist/core/src/reporting/changeRiskTypes.js +3 -0
  213. package/dist/core/src/reporting/changeRiskTypes.js.map +1 -0
  214. package/dist/core/src/reporting/impactAnalysisReporter.js +111 -0
  215. package/dist/core/src/reporting/impactAnalysisReporter.js.map +1 -0
  216. package/dist/core/src/reporting/onboardingDocsReporter.js +113 -0
  217. package/dist/core/src/reporting/onboardingDocsReporter.js.map +1 -0
  218. package/dist/core/src/reporting/rulePackReporter.js +61 -0
  219. package/dist/core/src/reporting/rulePackReporter.js.map +1 -0
  220. package/dist/core/src/reporting/safetyControlsDetection.js +343 -0
  221. package/dist/core/src/reporting/safetyControlsDetection.js.map +1 -0
  222. package/dist/core/src/resolveRuleAdrs.js +31 -0
  223. package/dist/core/src/resolveRuleAdrs.js.map +1 -0
  224. package/dist/core/src/reviewGenerationWorkflow.js +220 -0
  225. package/dist/core/src/reviewGenerationWorkflow.js.map +1 -0
  226. package/dist/core/src/rulePacks/index.js +17 -0
  227. package/dist/core/src/rulePacks/index.js.map +1 -0
  228. package/dist/core/src/rulePacks/layeredMonolithRulePack.js +45 -0
  229. package/dist/core/src/rulePacks/layeredMonolithRulePack.js.map +1 -0
  230. package/dist/core/src/rulePacks/modularMonolithRulePack.js +41 -0
  231. package/dist/core/src/rulePacks/modularMonolithRulePack.js.map +1 -0
  232. package/dist/core/src/rulePacks/types.js +3 -0
  233. package/dist/core/src/rulePacks/types.js.map +1 -0
  234. package/dist/core/src/setupNextSteps.js +939 -0
  235. package/dist/core/src/setupNextSteps.js.map +1 -0
  236. package/dist/core/src/setupRefresh.js +152 -0
  237. package/dist/core/src/setupRefresh.js.map +1 -0
  238. package/dist/core/src/smartInit/apiDbHintDetection.js +836 -0
  239. package/dist/core/src/smartInit/apiDbHintDetection.js.map +1 -0
  240. package/dist/core/src/smartInit/architectureProposalBuilder.js +1215 -0
  241. package/dist/core/src/smartInit/architectureProposalBuilder.js.map +1 -0
  242. package/dist/core/src/smartInit/architectureStyleDetection.js +472 -0
  243. package/dist/core/src/smartInit/architectureStyleDetection.js.map +1 -0
  244. package/dist/core/src/smartInit/archpilotIgnore.js +139 -0
  245. package/dist/core/src/smartInit/archpilotIgnore.js.map +1 -0
  246. package/dist/core/src/smartInit/componentDetection.js +1084 -0
  247. package/dist/core/src/smartInit/componentDetection.js.map +1 -0
  248. package/dist/core/src/smartInit/implementationProfileResolution.js +53 -0
  249. package/dist/core/src/smartInit/implementationProfileResolution.js.map +1 -0
  250. package/dist/core/src/smartInit/index.js +31 -0
  251. package/dist/core/src/smartInit/index.js.map +1 -0
  252. package/dist/core/src/smartInit/moduleDetection.js +982 -0
  253. package/dist/core/src/smartInit/moduleDetection.js.map +1 -0
  254. package/dist/core/src/smartInit/projectKindDetection.js +437 -0
  255. package/dist/core/src/smartInit/projectKindDetection.js.map +1 -0
  256. package/dist/core/src/smartInit/repoTopologyDetection.js +470 -0
  257. package/dist/core/src/smartInit/repoTopologyDetection.js.map +1 -0
  258. package/dist/core/src/smartInit/runContext.js +112 -0
  259. package/dist/core/src/smartInit/runContext.js.map +1 -0
  260. package/dist/core/src/smartInit/smartInitEngine.js +94 -0
  261. package/dist/core/src/smartInit/smartInitEngine.js.map +1 -0
  262. package/dist/core/src/smartInit/stackDetection.js +503 -0
  263. package/dist/core/src/smartInit/stackDetection.js.map +1 -0
  264. package/dist/core/src/smartInit/toolingHintDetection.js +345 -0
  265. package/dist/core/src/smartInit/toolingHintDetection.js.map +1 -0
  266. package/dist/core/src/sourceScopeClassification.js +83 -0
  267. package/dist/core/src/sourceScopeClassification.js.map +1 -0
  268. package/dist/core/src/stackAdapters.js +2475 -0
  269. package/dist/core/src/stackAdapters.js.map +1 -0
  270. package/dist/core/src/stackMetadata.js +157 -0
  271. package/dist/core/src/stackMetadata.js.map +1 -0
  272. package/dist/core/src/suppressions/index.js +3 -0
  273. package/dist/core/src/suppressions/index.js.map +1 -0
  274. package/dist/core/src/suppressions/suppressionReporter.js +38 -0
  275. package/dist/core/src/suppressions/suppressionReporter.js.map +1 -0
  276. package/dist/core/src/suppressions/suppressionTypes.js +3 -0
  277. package/dist/core/src/suppressions/suppressionTypes.js.map +1 -0
  278. package/dist/core/src/suppressions/suppressionValidator.js +119 -0
  279. package/dist/core/src/suppressions/suppressionValidator.js.map +1 -0
  280. package/dist/core/src/transactionDomainAnalysis.js +1416 -0
  281. package/dist/core/src/transactionDomainAnalysis.js.map +1 -0
  282. package/dist/core/src/validation/changedFilesResolver.js +165 -0
  283. package/dist/core/src/validation/changedFilesResolver.js.map +1 -0
  284. package/dist/core/src/validationProfiling.js +33 -0
  285. package/dist/core/src/validationProfiling.js.map +1 -0
  286. package/dist/core/src/validationRuleExplanations.js +69 -0
  287. package/dist/core/src/validationRuleExplanations.js.map +1 -0
  288. package/dist/core/src/validationSourceInventory.js +200 -0
  289. package/dist/core/src/validationSourceInventory.js.map +1 -0
  290. package/dist/core/src/validationSuppressions.js +231 -0
  291. package/dist/core/src/validationSuppressions.js.map +1 -0
  292. package/dist/core/src/validationTypeScriptAstCache.js +82 -0
  293. package/dist/core/src/validationTypeScriptAstCache.js.map +1 -0
  294. package/dist/core/src/validationWorkflow.js +222 -0
  295. package/dist/core/src/validationWorkflow.js.map +1 -0
  296. package/dist/core/src/workspaceRoot.js +68 -0
  297. package/dist/core/src/workspaceRoot.js.map +1 -0
  298. package/package.json +3 -2
@@ -0,0 +1,382 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.architectureReviewReportJsonPathRelative = exports.architectureReviewReportMarkdownPathRelative = void 0;
4
+ exports.buildArchitectureReviewReportPayload = buildArchitectureReviewReportPayload;
5
+ exports.renderArchitectureReviewReportJson = renderArchitectureReviewReportJson;
6
+ exports.buildReviewGeneratePrerequisiteMessage = buildReviewGeneratePrerequisiteMessage;
7
+ exports.renderArchitectureReviewReportMarkdown = renderArchitectureReviewReportMarkdown;
8
+ const validationRuleExplanations_1 = require("../validationRuleExplanations");
9
+ const resolveRuleAdrs_1 = require("../resolveRuleAdrs");
10
+ const architectureReviewReporter_1 = require("./architectureReviewReporter");
11
+ exports.architectureReviewReportMarkdownPathRelative = '.archpilot/reports/architecture-review-report.md';
12
+ exports.architectureReviewReportJsonPathRelative = '.archpilot/reports/architecture-review-report.json';
13
+ function getFindingLocation(finding) {
14
+ if (!finding.sourceFile) {
15
+ return undefined;
16
+ }
17
+ if (finding.sourceLine === undefined) {
18
+ return finding.sourceFile;
19
+ }
20
+ return `${finding.sourceFile}:${finding.sourceLine}`;
21
+ }
22
+ function toRenderedFinding(finding, discoveredAdrs) {
23
+ const explanation = (0, validationRuleExplanations_1.resolveValidationExplanation)(finding.id);
24
+ return {
25
+ ruleId: finding.id,
26
+ title: finding.title,
27
+ severity: finding.severity,
28
+ classification: finding.kind,
29
+ message: finding.message,
30
+ whyItMatters: explanation.whyItMatters,
31
+ howToFix: explanation.howToFix,
32
+ relatedAdrs: (0, resolveRuleAdrs_1.resolveRuleAdrs)(finding.id, discoveredAdrs),
33
+ ...(finding.module ? { module: finding.module } : {}),
34
+ ...(finding.target ? { target: finding.target } : {}),
35
+ ...(finding.filePath ? { filePath: finding.filePath } : {}),
36
+ ...(finding.table ? { table: finding.table } : {}),
37
+ ...(finding.api ? { api: finding.api } : {}),
38
+ ...(finding.findingType ? { findingType: finding.findingType } : {}),
39
+ ...(getFindingLocation(finding) ? { location: getFindingLocation(finding) } : {}),
40
+ };
41
+ }
42
+ function toLines(values) {
43
+ return values.length > 0 ? values.map((value) => `- ${value}`).join('\n') : '- (none)';
44
+ }
45
+ function buildPostureLabel(healthTrend) {
46
+ if (!healthTrend) {
47
+ return 'Not available in this run';
48
+ }
49
+ if (healthTrend.trendDirection === 'improving') {
50
+ return 'Improving';
51
+ }
52
+ if (healthTrend.trendDirection === 'declining') {
53
+ return 'Declining';
54
+ }
55
+ if (healthTrend.trendDirection === 'stable') {
56
+ return 'Stable';
57
+ }
58
+ return 'Not available in this run';
59
+ }
60
+ function buildHighlights(summary) {
61
+ const blocking = summary.findings
62
+ .filter((finding) => finding.severity === 'error')
63
+ .slice(0, 3)
64
+ .map((finding) => `[${finding.id}] ${finding.title}`);
65
+ const advisory = summary.findings
66
+ .filter((finding) => finding.severity === 'warning')
67
+ .slice(0, 3)
68
+ .map((finding) => `[${finding.id}] ${finding.title}`);
69
+ const positives = [];
70
+ if (summary.counts.errors === 0 && summary.counts.warnings === 0) {
71
+ positives.push('No active error/warning architecture violations.');
72
+ }
73
+ if (summary.counts.exceptions && summary.counts.exceptions > 0) {
74
+ positives.push(`${summary.counts.exceptions} approved exception(s) were applied deterministically.`);
75
+ }
76
+ return { blocking, advisory, positives };
77
+ }
78
+ function buildImpactAvailability(summary) {
79
+ const hasAnyScopedSignals = summary.impactAnalysis.changedModules.length > 0 ||
80
+ summary.impactAnalysis.directDependents.length > 0 ||
81
+ summary.impactAnalysis.transitiveDependents.length > 0 ||
82
+ (summary.impactAnalysis.affectedSurface?.impactedContracts.length ?? 0) > 0 ||
83
+ (summary.impactAnalysis.affectedSurface?.impactedPublicEntrypoints.length ?? 0) > 0 ||
84
+ (summary.impactAnalysis.affectedSurface?.impactedAdrs.length ?? 0) > 0 ||
85
+ (summary.impactAnalysis.affectedSurface?.impactedArchitectureArtifacts.length ?? 0) > 0;
86
+ if (hasAnyScopedSignals) {
87
+ return { available: true };
88
+ }
89
+ if (!summary.changeRisk.signals.diffContextAvailable) {
90
+ return {
91
+ available: false,
92
+ note: 'Change-scoped impact data is not available for this full validation run.',
93
+ };
94
+ }
95
+ return { available: false, note: 'No architecture impact signals were detected for this run.' };
96
+ }
97
+ function buildNextActions(summary) {
98
+ const actions = [];
99
+ const topBlocking = summary.findings.find((finding) => finding.severity === 'error');
100
+ if (topBlocking) {
101
+ actions.push(`Resolve ${topBlocking.id} first to reduce blocking architecture risk.`);
102
+ }
103
+ if (summary.setupGaps > 0) {
104
+ actions.push('Address setup gaps first (for example `archpilot bootstrap --with-contracts`) before deeper governance review.');
105
+ }
106
+ if (summary.adrRequirement.required) {
107
+ actions.push(summary.adrRequirement.suggestedCommand
108
+ ? `Document the change with ADR coverage: ${summary.adrRequirement.suggestedCommand}`
109
+ : 'Document the change with ADR coverage for the triggered policy outcome.');
110
+ }
111
+ if ((summary.safetyControls?.findings.length ?? 0) > 0) {
112
+ for (const finding of summary.safetyControls?.findings ?? []) {
113
+ if (finding.ruleId === 'AP-SAFE-002') {
114
+ actions.push('Create rollback evidence: .archpilot/rollout/rollback-plan.md.');
115
+ }
116
+ if (finding.ruleId === 'AP-SAFE-003') {
117
+ actions.push('Create or fix feature flag rollout evidence: .archpilot/rollout/feature-flags.json.');
118
+ }
119
+ }
120
+ }
121
+ if (summary.findings.length > 0) {
122
+ const topFixRule = summary.findings[0]?.id;
123
+ if (topFixRule) {
124
+ actions.push(`Review available deterministic fix actions: \`archpilot fix ${topFixRule}\`.`);
125
+ }
126
+ }
127
+ if (actions.length === 0) {
128
+ actions.push('No immediate architecture remediation actions are required.');
129
+ }
130
+ return actions.slice(0, 4);
131
+ }
132
+ function buildArchitectureReviewReportPayload(input) {
133
+ const summary = input.summary;
134
+ const discoveredAdrs = input.discoveredAdrs ?? [];
135
+ const highlights = buildHighlights(summary);
136
+ const impactAvailability = buildImpactAvailability(summary);
137
+ const blockingFindings = summary.findings.filter((finding) => finding.severity === 'error');
138
+ const warningFindings = summary.findings.filter((finding) => finding.severity === 'warning');
139
+ const setupGapFindings = summary.findings.filter((finding) => finding.kind === 'setup-gap');
140
+ const exceptionFindings = summary.passedChecks.filter((finding) => finding.status === 'exception');
141
+ const nextActions = buildNextActions(summary);
142
+ const postureTrend = buildPostureLabel(input.healthTrend);
143
+ return {
144
+ generatedAt: summary.generatedAtUtc,
145
+ project: {
146
+ projectName: summary.projectName,
147
+ ...(input.projectIdentity ? input.projectIdentity : {}),
148
+ },
149
+ summary: {
150
+ outcome: summary.enforcement.enforcementDecision ?? summary.enforcement.action.toUpperCase(),
151
+ postureTrend,
152
+ totalFindings: summary.findings.length,
153
+ counts: summary.counts,
154
+ },
155
+ scores: {
156
+ architectureHealth: summary.healthScore,
157
+ setupReadiness: summary.readinessScore,
158
+ categoryScores: summary.categoryScores,
159
+ readinessCategoryScores: summary.readinessCategoryScores,
160
+ scoreExplanation: summary.scoreExplanation,
161
+ },
162
+ risk: {
163
+ governanceRiskLevel: summary.risk.level.toUpperCase(),
164
+ changeRiskLevel: summary.changeRisk.riskLevel.toUpperCase(),
165
+ changeRiskSummary: summary.changeRisk.summary,
166
+ reasons: summary.risk.reasons,
167
+ },
168
+ enforcement: {
169
+ policyLevel: summary.enforcement.policyLevel ?? 'n/a',
170
+ enforcementDecision: summary.enforcement.enforcementDecision ?? summary.enforcement.action.toUpperCase(),
171
+ matchedThreshold: summary.enforcement.matchedThreshold,
172
+ reasons: summary.enforcement.reasons,
173
+ ciExitBehavior: summary.enforcement.ciExitBehavior,
174
+ },
175
+ adr: {
176
+ required: summary.adrRequirement.required,
177
+ satisfied: summary.adrRequirement.required ? summary.adrRequirement.satisfied : 'n/a',
178
+ reasons: summary.adrRequirement.reasons,
179
+ suggestedCommand: summary.adrRequirement.suggestedCommand,
180
+ suggestedFilenameHint: summary.adrRequirement.suggestedFilenameHint,
181
+ },
182
+ safetyControls: summary.safetyControls
183
+ ? {
184
+ triggered: summary.safetyControls.triggered,
185
+ applicable: summary.safetyControls.applicable,
186
+ triggerReasons: summary.safetyControls.triggerReasons,
187
+ summary: summary.safetyControls.summary,
188
+ missingControls: summary.safetyControls.missingControls,
189
+ findings: summary.safetyControls.findings,
190
+ controlsChecked: summary.safetyControls.controlsChecked,
191
+ }
192
+ : {
193
+ triggered: false,
194
+ applicable: false,
195
+ triggerReasons: [],
196
+ summary: 'Safety controls analysis not available in this run.',
197
+ missingControls: [],
198
+ findings: [],
199
+ controlsChecked: [],
200
+ },
201
+ exceptions: {
202
+ count: summary.counts.exceptions ?? 0,
203
+ findings: exceptionFindings.map((finding) => toRenderedFinding(finding, discoveredAdrs)),
204
+ },
205
+ suppressions: {
206
+ count: summary.counts.suppressed,
207
+ ignoredCount: summary.counts.ignoredSuppressions,
208
+ },
209
+ impact: {
210
+ available: impactAvailability.available,
211
+ ...(impactAvailability.note ? { note: impactAvailability.note } : {}),
212
+ level: summary.impactAnalysis.impactLevel,
213
+ score: summary.impactAnalysis.impactRadiusScore,
214
+ changedModules: summary.impactAnalysis.changedModules,
215
+ directlyAffectedModules: summary.impactAnalysis.affectedSurface?.directlyAffectedModules ?? [],
216
+ transitivelyAffectedModules: summary.impactAnalysis.affectedSurface?.transitivelyAffectedModules ?? [],
217
+ impactedContracts: summary.impactAnalysis.affectedSurface?.impactedContracts ?? [],
218
+ impactedPublicEntrypoints: summary.impactAnalysis.affectedSurface?.impactedPublicEntrypoints ?? [],
219
+ impactedAdrs: summary.impactAnalysis.affectedSurface?.impactedAdrs ?? [],
220
+ impactedArchitectureArtifacts: summary.impactAnalysis.affectedSurface?.impactedArchitectureArtifacts ?? [],
221
+ },
222
+ highlights,
223
+ findings: {
224
+ blocking: blockingFindings.map((finding) => toRenderedFinding(finding, discoveredAdrs)),
225
+ warnings: warningFindings.map((finding) => toRenderedFinding(finding, discoveredAdrs)),
226
+ setupGaps: setupGapFindings.map((finding) => toRenderedFinding(finding, discoveredAdrs)),
227
+ exceptions: exceptionFindings.map((finding) => toRenderedFinding(finding, discoveredAdrs)),
228
+ },
229
+ ...(summary.componentSummary ? { componentSummary: summary.componentSummary } : {}),
230
+ nextActions,
231
+ };
232
+ }
233
+ function renderArchitectureReviewReportJson(input) {
234
+ return `${JSON.stringify(buildArchitectureReviewReportPayload(input), null, 2)}\n`;
235
+ }
236
+ function buildReviewGeneratePrerequisiteMessage() {
237
+ return 'Architecture review summary artifact is missing. Run `archpilot validate` first to generate .archpilot/reports/architecture-summary.json.';
238
+ }
239
+ function renderArchitectureReviewReportMarkdown(input) {
240
+ const payload = buildArchitectureReviewReportPayload(input);
241
+ const summary = input.summary;
242
+ const highlights = payload.highlights;
243
+ const findings = payload.findings;
244
+ const impact = payload.impact;
245
+ const nextActions = payload.nextActions;
246
+ const safetyControls = payload.safetyControls;
247
+ const adrDisplay = (0, architectureReviewReporter_1.resolveAdrRequirementDisplay)({
248
+ enforcementAction: summary.enforcement.action,
249
+ adrRequirement: summary.adrRequirement,
250
+ findings: summary.findings,
251
+ });
252
+ const renderFindingGroup = (items) => items.length === 0
253
+ ? '- (none)'
254
+ : items
255
+ .map((item) => [
256
+ `- [${item.ruleId}] ${item.title}`,
257
+ ` - Severity: ${item.severity}`,
258
+ ` - Classification: ${item.classification}`,
259
+ ` - Message: ${item.message}`,
260
+ ...(item.module ? [` - Module: ${item.module}`] : []),
261
+ ...(item.target ? [` - Target: ${item.target}`] : []),
262
+ ...(item.filePath ? [` - File Path: ${item.filePath}`] : []),
263
+ ...(item.api ? [` - API: ${item.api}`] : []),
264
+ ...(item.table ? [` - Table: ${item.table}`] : []),
265
+ ...(item.findingType ? [` - Type: ${item.findingType}`] : []),
266
+ ...(item.location ? [` - Location: ${item.location}`] : []),
267
+ ` - Why it matters: ${item.whyItMatters}`,
268
+ ` - How to fix: ${item.howToFix}`,
269
+ ` - Related ADRs: ${item.relatedAdrs.length > 0
270
+ ? item.relatedAdrs
271
+ .map((adr) => `${adr.id}${adr.filePath ? ` (${adr.filePath})` : ''}`)
272
+ .join(', ')
273
+ : '(none)'}`,
274
+ ].join('\n'))
275
+ .join('\n');
276
+ return `# ArchPilot Architecture Review Report
277
+
278
+ ## Executive Summary
279
+ - Review outcome: ${String(payload.summary.outcome)}
280
+ - Architecture Health Score: ${summary.healthScore} / 100
281
+ - Setup Readiness Score: ${summary.readinessScore} / 100
282
+ - Trend: ${String(payload.summary.postureTrend)}
283
+ - Change Risk: ${summary.changeRisk.riskLevel.toUpperCase()} (${summary.changeRisk.summary})
284
+ - Architecture Review Level: ${summary.risk.level.toUpperCase()}
285
+ - Enforcement Outcome: ${summary.enforcement.enforcementDecision ?? summary.enforcement.action.toUpperCase()}
286
+ - ADR Required: ${adrDisplay.requiredLabel}
287
+ - ADR Satisfied: ${adrDisplay.satisfiedLabel}
288
+ - Approved Exceptions: ${summary.counts.exceptions ?? 0}
289
+ - Timestamp (UTC): ${summary.generatedAtUtc}
290
+ - Project: ${summary.projectName}
291
+ ${input.projectIdentity ? `- Repository ID: ${input.projectIdentity.repositoryId}` : ''}
292
+
293
+ ## Review Highlights
294
+ ### Top Blocking Concerns
295
+ ${toLines(highlights.blocking)}
296
+ ### Top Advisory Concerns
297
+ ${toLines(highlights.advisory)}
298
+ ### Notable Positives
299
+ ${toLines(highlights.positives)}
300
+
301
+ ## Architecture Posture
302
+ - Findings: errors=${summary.counts.errors}, warnings=${summary.counts.warnings}, info=${summary.counts.info}
303
+ - Classification: violations=${summary.qualityFindings}, setup-gaps=${summary.setupGaps}, guidance=${summary.guidanceFindings}, exceptions=${summary.counts.exceptions ?? 0}
304
+ - Score breakdown: architecture=${summary.healthScore}/100, readiness=${summary.readinessScore}/100
305
+ - Weighted base health: ${summary.scoreExplanation.weightedBaseScore}/100
306
+ - Posture trend: ${String(payload.summary.postureTrend)}
307
+
308
+ ### Largest Score Contributors
309
+ ${summary.scoreExplanation.largestScoreContributors.length === 0
310
+ ? '- (none)'
311
+ : summary.scoreExplanation.largestScoreContributors.map((entry) => `- ${entry}`).join('\n')}
312
+
313
+ ## Change Impact Summary
314
+ ${impact.available
315
+ ? `- Changed modules: ${impact.changedModules.join(', ') || '(none)'}
316
+ - Directly affected modules: ${impact.directlyAffectedModules.join(', ') || '(none)'}
317
+ - Transitively affected modules: ${impact.transitivelyAffectedModules.join(', ') || '(none)'}
318
+ - Impacted contracts: ${impact.impactedContracts.join(', ') || '(none)'}
319
+ - Impacted public entrypoints: ${impact.impactedPublicEntrypoints.join(', ') || '(none)'}
320
+ - Impacted ADRs: ${impact.impactedAdrs.join(', ') || '(none)'}
321
+ - Impacted architecture artifacts: ${impact.impactedArchitectureArtifacts.join(', ') || '(none)'}`
322
+ : `- ${impact.note ?? 'Not available in this run.'}`}
323
+
324
+ ## Enforcement and ADR Review
325
+ - Risk level: ${summary.risk.level.toUpperCase()}
326
+ - Policy level: ${summary.enforcement.policyLevel?.toUpperCase() ?? 'N/A'}
327
+ - Matched threshold: ${summary.enforcement.matchedThreshold
328
+ ? `${summary.enforcement.matchedThreshold.id ?? '(unknown)'}`
329
+ : 'N/A'}
330
+ - Enforcement decision: ${summary.enforcement.enforcementDecision ?? summary.enforcement.action.toUpperCase()}
331
+ - ADR Required: ${adrDisplay.requiredLabel}
332
+ - ADR Satisfied: ${adrDisplay.satisfiedLabel}
333
+ - Reasons:
334
+ ${toLines(summary.enforcement.reasons)}
335
+ - ADR Reasons:
336
+ ${toLines(adrDisplay.reasons)}
337
+ ${adrDisplay.state === 'required' && summary.adrRequirement.suggestedCommand
338
+ ? `- Suggested ADR command: ${summary.adrRequirement.suggestedCommand}`
339
+ : ''}
340
+ ${adrDisplay.state === 'required' && summary.adrRequirement.suggestedFilenameHint
341
+ ? `- Suggested ADR filename hint: ${summary.adrRequirement.suggestedFilenameHint}`
342
+ : ''}
343
+
344
+ ## Recommended Deployment Safety Controls
345
+ - Triggered: ${safetyControls.triggered ? 'YES' : 'NO'}
346
+ - Applicable: ${safetyControls.applicable ? 'YES' : 'NO'}
347
+ - Summary: ${safetyControls.summary}
348
+ - Trigger reasons:
349
+ ${toLines(safetyControls.triggerReasons)}
350
+ - Controls checked:
351
+ ${safetyControls.controlsChecked.length === 0
352
+ ? '- (none)'
353
+ : safetyControls.controlsChecked
354
+ .map((control) => `- ${control.controlType}: ${control.status} (required=${control.required ? 'yes' : 'no'})${control.evidencePath ? ` [${control.evidencePath}]` : ''}${control.evidenceDetail ? ` (${control.evidenceDetail})` : ''}`)
355
+ .join('\n')}
356
+ - Missing controls:
357
+ ${safetyControls.findings.length === 0
358
+ ? '- (none)'
359
+ : safetyControls.findings
360
+ .map((finding) => `- [${finding.ruleId}] ${finding.message}${finding.evidencePath ? ` (${finding.evidencePath})` : ''}`)
361
+ .join('\n')}
362
+
363
+ ## Exceptions and Suppressions
364
+ - Approved exceptions matched: ${summary.counts.exceptions ?? 0}
365
+ - Suppressed findings: ${summary.counts.suppressed}
366
+ - Ignored suppression directives: ${summary.counts.ignoredSuppressions}
367
+
368
+ ## Key Findings
369
+ ### 1. Blocking / Highest Severity Violations
370
+ ${renderFindingGroup(findings.blocking)}
371
+ ### 2. Warnings / Advisory Issues
372
+ ${renderFindingGroup(findings.warnings)}
373
+ ### 3. Setup Gaps
374
+ ${renderFindingGroup(findings.setupGaps)}
375
+ ### 4. Exceptions (Summary)
376
+ ${renderFindingGroup(findings.exceptions)}
377
+
378
+ ## Recommended Next Actions
379
+ ${toLines(nextActions)}
380
+ `;
381
+ }
382
+ //# sourceMappingURL=architectureReviewReportGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architectureReviewReportGenerator.js","sourceRoot":"","sources":["../../../../../core/src/reporting/architectureReviewReportGenerator.ts"],"names":[],"mappings":"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"}