zone-ai-agent 0.4.0

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 (301) hide show
  1. package/.gittignore +4 -0
  2. package/README.md +36 -0
  3. package/dist/api/server.js +136 -0
  4. package/dist/api/server.js.map +1 -0
  5. package/dist/apply/applyPatchPlan.js +17 -0
  6. package/dist/apply/applyPatchPlan.js.map +1 -0
  7. package/dist/apply/canApplyDecision.js +26 -0
  8. package/dist/apply/canApplyDecision.js.map +1 -0
  9. package/dist/apply/patchPlan.js +3 -0
  10. package/dist/apply/patchPlan.js.map +1 -0
  11. package/dist/apply/renderApplyResult.js +18 -0
  12. package/dist/apply/renderApplyResult.js.map +1 -0
  13. package/dist/apply/runApplyFlow.js +40 -0
  14. package/dist/apply/runApplyFlow.js.map +1 -0
  15. package/dist/apply/types.js +3 -0
  16. package/dist/apply/types.js.map +1 -0
  17. package/dist/audit/auditDiffIntelligence.js +3 -0
  18. package/dist/audit/auditDiffIntelligence.js.map +1 -0
  19. package/dist/audit/auditSnapshot.js +87 -0
  20. package/dist/audit/auditSnapshot.js.map +1 -0
  21. package/dist/audit/renderAuditDiff.js +64 -0
  22. package/dist/audit/renderAuditDiff.js.map +1 -0
  23. package/dist/audit/snapshotDiff.js +53 -0
  24. package/dist/audit/snapshotDiff.js.map +1 -0
  25. package/dist/audit/snapshotReader.js +31 -0
  26. package/dist/audit/snapshotReader.js.map +1 -0
  27. package/dist/audit/snapshotWriter.js +59 -0
  28. package/dist/audit/snapshotWriter.js.map +1 -0
  29. package/dist/ci/evaluateCiResult.js +142 -0
  30. package/dist/ci/evaluateCiResult.js.map +1 -0
  31. package/dist/cli/buildGeneratedPatchPlanPreview.js +65 -0
  32. package/dist/cli/buildGeneratedPatchPlanPreview.js.map +1 -0
  33. package/dist/cli/colors.js +28 -0
  34. package/dist/cli/colors.js.map +1 -0
  35. package/dist/cli/diffOutput.js +37 -0
  36. package/dist/cli/diffOutput.js.map +1 -0
  37. package/dist/cli/index.js +850 -0
  38. package/dist/cli/index.js.map +1 -0
  39. package/dist/cli/loadPatchPlan.js +52 -0
  40. package/dist/cli/loadPatchPlan.js.map +1 -0
  41. package/dist/cli/output.js +34 -0
  42. package/dist/cli/output.js.map +1 -0
  43. package/dist/cli/parseCliArgs.js +3 -0
  44. package/dist/cli/parseCliArgs.js.map +1 -0
  45. package/dist/cli/runGeneratedPatchPlanFlow.js +23 -0
  46. package/dist/cli/runGeneratedPatchPlanFlow.js.map +1 -0
  47. package/dist/components/LoginForm.js +64 -0
  48. package/dist/components/LoginForm.js.map +1 -0
  49. package/dist/core/analyzeCodePatterns.js +3 -0
  50. package/dist/core/analyzeCodePatterns.js.map +1 -0
  51. package/dist/core/applyLlmPatches.js +43 -0
  52. package/dist/core/applyLlmPatches.js.map +1 -0
  53. package/dist/core/buildConfidenceBreakdownFromSignals.js +33 -0
  54. package/dist/core/buildConfidenceBreakdownFromSignals.js.map +1 -0
  55. package/dist/core/buildDecisionAuditSnapshot.js +18 -0
  56. package/dist/core/buildDecisionAuditSnapshot.js.map +1 -0
  57. package/dist/core/buildDecisionTrace.js +113 -0
  58. package/dist/core/buildDecisionTrace.js.map +1 -0
  59. package/dist/core/buildFallbackPatchPlan.js +23 -0
  60. package/dist/core/buildFallbackPatchPlan.js.map +1 -0
  61. package/dist/core/buildFallbackPlan.js +25 -0
  62. package/dist/core/buildFallbackPlan.js.map +1 -0
  63. package/dist/core/buildSchemaAwareContext.js +49 -0
  64. package/dist/core/buildSchemaAwareContext.js.map +1 -0
  65. package/dist/core/buildTaskExecutionContext.js +70 -0
  66. package/dist/core/buildTaskExecutionContext.js.map +1 -0
  67. package/dist/core/ciEvaluator.js +83 -0
  68. package/dist/core/ciEvaluator.js.map +1 -0
  69. package/dist/core/computeRiskScore.js +43 -0
  70. package/dist/core/computeRiskScore.js.map +1 -0
  71. package/dist/core/computeRiskScoreDetails.js +106 -0
  72. package/dist/core/computeRiskScoreDetails.js.map +1 -0
  73. package/dist/core/confidenceGate.js +83 -0
  74. package/dist/core/confidenceGate.js.map +1 -0
  75. package/dist/core/decision/buildDecisionExplanation.js +91 -0
  76. package/dist/core/decision/buildDecisionExplanation.js.map +1 -0
  77. package/dist/core/decision/buildDecisionReasonCodes.js +65 -0
  78. package/dist/core/decision/buildDecisionReasonCodes.js.map +1 -0
  79. package/dist/core/decision/buildReasonSummaryLine.js +24 -0
  80. package/dist/core/decision/buildReasonSummaryLine.js.map +1 -0
  81. package/dist/core/decision/buildRecommendation.js +43 -0
  82. package/dist/core/decision/buildRecommendation.js.map +1 -0
  83. package/dist/core/decision/decideExecutionMode.js +125 -0
  84. package/dist/core/decision/decideExecutionMode.js.map +1 -0
  85. package/dist/core/decision/decisionReasonCodeMeta.js +91 -0
  86. package/dist/core/decision/decisionReasonCodeMeta.js.map +1 -0
  87. package/dist/core/decision/renderDecisionSummary.js +115 -0
  88. package/dist/core/decision/renderDecisionSummary.js.map +1 -0
  89. package/dist/core/detectResourceStorage.js +78 -0
  90. package/dist/core/detectResourceStorage.js.map +1 -0
  91. package/dist/core/formatOutput.js +53 -0
  92. package/dist/core/formatOutput.js.map +1 -0
  93. package/dist/core/intentAwareScore.js +35 -0
  94. package/dist/core/intentAwareScore.js.map +1 -0
  95. package/dist/core/loadSavedAgentResult.js +18 -0
  96. package/dist/core/loadSavedAgentResult.js.map +1 -0
  97. package/dist/core/normalizeIssues.js +50 -0
  98. package/dist/core/normalizeIssues.js.map +1 -0
  99. package/dist/core/normalizeSignals.js +40 -0
  100. package/dist/core/normalizeSignals.js.map +1 -0
  101. package/dist/core/output/zoneStageTypes.js +3 -0
  102. package/dist/core/output/zoneStageTypes.js.map +1 -0
  103. package/dist/core/patchRiskAnalyzer.js +50 -0
  104. package/dist/core/patchRiskAnalyzer.js.map +1 -0
  105. package/dist/core/renderRunAgentResult.js +77 -0
  106. package/dist/core/renderRunAgentResult.js.map +1 -0
  107. package/dist/core/result/buildApplyStageResult.js +61 -0
  108. package/dist/core/result/buildApplyStageResult.js.map +1 -0
  109. package/dist/core/result/buildCliViewModel.js +79 -0
  110. package/dist/core/result/buildCliViewModel.js.map +1 -0
  111. package/dist/core/result/buildConversionStageResult.js +62 -0
  112. package/dist/core/result/buildConversionStageResult.js.map +1 -0
  113. package/dist/core/result/buildDecisionStageResult.js +61 -0
  114. package/dist/core/result/buildDecisionStageResult.js.map +1 -0
  115. package/dist/core/result/buildExecutionResult.js +148 -0
  116. package/dist/core/result/buildExecutionResult.js.map +1 -0
  117. package/dist/core/result/buildPreviewStageResult.js +47 -0
  118. package/dist/core/result/buildPreviewStageResult.js.map +1 -0
  119. package/dist/core/result/buildSavedDecisionExplanation.js +52 -0
  120. package/dist/core/result/buildSavedDecisionExplanation.js.map +1 -0
  121. package/dist/core/result/buildSavedRecommendation.js +39 -0
  122. package/dist/core/result/buildSavedRecommendation.js.map +1 -0
  123. package/dist/core/result/buildStageResultV2.js +52 -0
  124. package/dist/core/result/buildStageResultV2.js.map +1 -0
  125. package/dist/core/result/renderBundledResult.js +47 -0
  126. package/dist/core/result/renderBundledResult.js.map +1 -0
  127. package/dist/core/result/renderCliResult.js +93 -0
  128. package/dist/core/result/renderCliResult.js.map +1 -0
  129. package/dist/core/result/scoreTopRisks.js +205 -0
  130. package/dist/core/result/scoreTopRisks.js.map +1 -0
  131. package/dist/core/runAgent.js +210 -0
  132. package/dist/core/runAgent.js.map +1 -0
  133. package/dist/core/runFeatureAgent.js +684 -0
  134. package/dist/core/runFeatureAgent.js.map +1 -0
  135. package/dist/core/runLlmPatchFlow.js +522 -0
  136. package/dist/core/runLlmPatchFlow.js.map +1 -0
  137. package/dist/core/saveAgentResult.js +234 -0
  138. package/dist/core/saveAgentResult.js.map +1 -0
  139. package/dist/core/scoring/computeConfidenceBreakdown.js +130 -0
  140. package/dist/core/scoring/computeConfidenceBreakdown.js.map +1 -0
  141. package/dist/core/scoring/computeConfidenceScore.js +37 -0
  142. package/dist/core/scoring/computeConfidenceScore.js.map +1 -0
  143. package/dist/core/scoring/confidenceRules.js +58 -0
  144. package/dist/core/scoring/confidenceRules.js.map +1 -0
  145. package/dist/core/scoring/confidenceScore.js +8 -0
  146. package/dist/core/scoring/confidenceScore.js.map +1 -0
  147. package/dist/core/selectRelevantBlocks.js +58 -0
  148. package/dist/core/selectRelevantBlocks.js.map +1 -0
  149. package/dist/core/selfHealingLoop.js +209 -0
  150. package/dist/core/selfHealingLoop.js.map +1 -0
  151. package/dist/core/taskIntentParser.js +165 -0
  152. package/dist/core/taskIntentParser.js.map +1 -0
  153. package/dist/core/types/agentResult.js +3 -0
  154. package/dist/core/types/agentResult.js.map +1 -0
  155. package/dist/core/types/risk.js +3 -0
  156. package/dist/core/types/risk.js.map +1 -0
  157. package/dist/core/validatePatchAgainstSchema.js +100 -0
  158. package/dist/core/validatePatchAgainstSchema.js.map +1 -0
  159. package/dist/core/validateSuggestedArchitecture.js +24 -0
  160. package/dist/core/validateSuggestedArchitecture.js.map +1 -0
  161. package/dist/engine/buildDecisionExplanation.js +114 -0
  162. package/dist/engine/buildDecisionExplanation.js.map +1 -0
  163. package/dist/engine/contradictionDetector.js +40 -0
  164. package/dist/engine/contradictionDetector.js.map +1 -0
  165. package/dist/engine/decisionEngine.js +19 -0
  166. package/dist/engine/decisionEngine.js.map +1 -0
  167. package/dist/llm/openaiClient.js +19 -0
  168. package/dist/llm/openaiClient.js.map +1 -0
  169. package/dist/llm/planFeature.js +57 -0
  170. package/dist/llm/planFeature.js.map +1 -0
  171. package/dist/llm/planFix.js +3 -0
  172. package/dist/llm/planFix.js.map +1 -0
  173. package/dist/llm/planFullPatch.js +62 -0
  174. package/dist/llm/planFullPatch.js.map +1 -0
  175. package/dist/llm/planPatchPreview.js +60 -0
  176. package/dist/llm/planPatchPreview.js.map +1 -0
  177. package/dist/llm/prompts.js +131 -0
  178. package/dist/llm/prompts.js.map +1 -0
  179. package/dist/llm/schemas.js +28 -0
  180. package/dist/llm/schemas.js.map +1 -0
  181. package/dist/patch/apply/formatApplyFlowResult.js +23 -0
  182. package/dist/patch/apply/formatApplyFlowResult.js.map +1 -0
  183. package/dist/patch/apply/renderApplyFlowResult.js +15 -0
  184. package/dist/patch/apply/renderApplyFlowResult.js.map +1 -0
  185. package/dist/patch/apply/runApplyFlow.js +88 -0
  186. package/dist/patch/apply/runApplyFlow.js.map +1 -0
  187. package/dist/patch/applyFlowTypes.js +3 -0
  188. package/dist/patch/applyFlowTypes.js.map +1 -0
  189. package/dist/patch/applyPatchPlan.js +117 -0
  190. package/dist/patch/applyPatchPlan.js.map +1 -0
  191. package/dist/patch/backupFile.js +23 -0
  192. package/dist/patch/backupFile.js.map +1 -0
  193. package/dist/patch/conversion/canConvertGeneratedPlanToPatchPlan.js +57 -0
  194. package/dist/patch/conversion/canConvertGeneratedPlanToPatchPlan.js.map +1 -0
  195. package/dist/patch/conversion/convertGeneratedPlanToPatchPlan.js +38 -0
  196. package/dist/patch/conversion/convertGeneratedPlanToPatchPlan.js.map +1 -0
  197. package/dist/patch/conversion/formatGeneratedPlanConversionFailure.js +17 -0
  198. package/dist/patch/conversion/formatGeneratedPlanConversionFailure.js.map +1 -0
  199. package/dist/patch/conversion/generatedPlanConversionFailureMeta.js +40 -0
  200. package/dist/patch/conversion/generatedPlanConversionFailureMeta.js.map +1 -0
  201. package/dist/patch/conversion/generatedPlanConversionTypes.js +3 -0
  202. package/dist/patch/conversion/generatedPlanConversionTypes.js.map +1 -0
  203. package/dist/patch/conversion/renderGeneratedPlanConversionFailure.js +16 -0
  204. package/dist/patch/conversion/renderGeneratedPlanConversionFailure.js.map +1 -0
  205. package/dist/patch/generatedPlanConversion.js +96 -0
  206. package/dist/patch/generatedPlanConversion.js.map +1 -0
  207. package/dist/patch/patchAnchors.js +3 -0
  208. package/dist/patch/patchAnchors.js.map +1 -0
  209. package/dist/patch/patchValidationRules.js +116 -0
  210. package/dist/patch/patchValidationRules.js.map +1 -0
  211. package/dist/patch/patchValidationTypes.js +3 -0
  212. package/dist/patch/patchValidationTypes.js.map +1 -0
  213. package/dist/patch/renderApplyFlowResult.js +26 -0
  214. package/dist/patch/renderApplyFlowResult.js.map +1 -0
  215. package/dist/patch/validatePatchPlan.js +148 -0
  216. package/dist/patch/validatePatchPlan.js.map +1 -0
  217. package/dist/patch-generation/buildGeneratedPatchPlan.js +94 -0
  218. package/dist/patch-generation/buildGeneratedPatchPlan.js.map +1 -0
  219. package/dist/patch-generation/buildPatchOperations.js +41 -0
  220. package/dist/patch-generation/buildPatchOperations.js.map +1 -0
  221. package/dist/patch-generation/classifyPatchIntent.js +62 -0
  222. package/dist/patch-generation/classifyPatchIntent.js.map +1 -0
  223. package/dist/patch-generation/formatGeneratedPatchPlanPreview.js +25 -0
  224. package/dist/patch-generation/formatGeneratedPatchPlanPreview.js.map +1 -0
  225. package/dist/patch-generation/generatePatchPlan.js +74 -0
  226. package/dist/patch-generation/generatePatchPlan.js.map +1 -0
  227. package/dist/patch-generation/generatedPatchPlanTypes.js +3 -0
  228. package/dist/patch-generation/generatedPatchPlanTypes.js.map +1 -0
  229. package/dist/patch-generation/isIntentAllowed.js +15 -0
  230. package/dist/patch-generation/isIntentAllowed.js.map +1 -0
  231. package/dist/patch-generation/renderGeneratedPatchPlan.js +62 -0
  232. package/dist/patch-generation/renderGeneratedPatchPlan.js.map +1 -0
  233. package/dist/prompts/developerPrompt.js +213 -0
  234. package/dist/prompts/developerPrompt.js.map +1 -0
  235. package/dist/prompts/fullPatchPrompt.js +82 -0
  236. package/dist/prompts/fullPatchPrompt.js.map +1 -0
  237. package/dist/prompts/patchPreviewPrompt.js +83 -0
  238. package/dist/prompts/patchPreviewPrompt.js.map +1 -0
  239. package/dist/prompts/planFeaturePrompt.js +73 -0
  240. package/dist/prompts/planFeaturePrompt.js.map +1 -0
  241. package/dist/prompts/testEngineerContext.js +184 -0
  242. package/dist/prompts/testEngineerContext.js.map +1 -0
  243. package/dist/prompts/testEngineerPrompt.js +135 -0
  244. package/dist/prompts/testEngineerPrompt.js.map +1 -0
  245. package/dist/repo/analyzeProjectPatterns.js +46 -0
  246. package/dist/repo/analyzeProjectPatterns.js.map +1 -0
  247. package/dist/repo/detectProjectStructure.js +45 -0
  248. package/dist/repo/detectProjectStructure.js.map +1 -0
  249. package/dist/repo/getGitChangedFiles.js +96 -0
  250. package/dist/repo/getGitChangedFiles.js.map +1 -0
  251. package/dist/repo/loadSchemaSnapshot.js +29 -0
  252. package/dist/repo/loadSchemaSnapshot.js.map +1 -0
  253. package/dist/repo/rankRelevantFiles.js +306 -0
  254. package/dist/repo/rankRelevantFiles.js.map +1 -0
  255. package/dist/repo/readProjectFiles.js +27 -0
  256. package/dist/repo/readProjectFiles.js.map +1 -0
  257. package/dist/repo/scanRepo.js +93 -0
  258. package/dist/repo/scanRepo.js.map +1 -0
  259. package/dist/repo/validateSuggestedFiles.js +66 -0
  260. package/dist/repo/validateSuggestedFiles.js.map +1 -0
  261. package/dist/roles/dataAnalystContext.js +155 -0
  262. package/dist/roles/dataAnalystContext.js.map +1 -0
  263. package/dist/roles/detectDataSchema.js +152 -0
  264. package/dist/roles/detectDataSchema.js.map +1 -0
  265. package/dist/roles/detectTestComplexity.js +74 -0
  266. package/dist/roles/detectTestComplexity.js.map +1 -0
  267. package/dist/roles/detectTestFramework.js +166 -0
  268. package/dist/roles/detectTestFramework.js.map +1 -0
  269. package/dist/roles/runDataAnalystFlow.js +221 -0
  270. package/dist/roles/runDataAnalystFlow.js.map +1 -0
  271. package/dist/roles/runTestEngineerFlow.js +266 -0
  272. package/dist/roles/runTestEngineerFlow.js.map +1 -0
  273. package/dist/roles/testEngineerContext.js +282 -0
  274. package/dist/roles/testEngineerContext.js.map +1 -0
  275. package/dist/roles/testOutputValidator.js +474 -0
  276. package/dist/roles/testOutputValidator.js.map +1 -0
  277. package/dist/types/agent.js +3 -0
  278. package/dist/types/agent.js.map +1 -0
  279. package/dist/types/analysis.js +3 -0
  280. package/dist/types/analysis.js.map +1 -0
  281. package/dist/types/patch.js +3 -0
  282. package/dist/types/patch.js.map +1 -0
  283. package/dist/types/project.js +3 -0
  284. package/dist/types/project.js.map +1 -0
  285. package/dist/types/schema.js +3 -0
  286. package/dist/types/schema.js.map +1 -0
  287. package/dist/utils/executionTracker.js +33 -0
  288. package/dist/utils/executionTracker.js.map +1 -0
  289. package/dist/utils/files.js +35 -0
  290. package/dist/utils/files.js.map +1 -0
  291. package/dist/utils/logger.js +179 -0
  292. package/dist/utils/logger.js.map +1 -0
  293. package/dist/utils/paths.js +14 -0
  294. package/dist/utils/paths.js.map +1 -0
  295. package/dist/utils/trace.js +10 -0
  296. package/dist/utils/trace.js.map +1 -0
  297. package/dist/utils/validation.js +24 -0
  298. package/dist/utils/validation.js.map +1 -0
  299. package/package.json +53 -0
  300. package/tsconfig.json +17 -0
  301. package/vitest.config.ts +21 -0
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sortIssuesBySeverity = sortIssuesBySeverity;
4
+ exports.countIssues = countIssues;
5
+ exports.groupIssues = groupIssues;
6
+ exports.buildExecutionResult = buildExecutionResult;
7
+ const scoreTopRisks_js_1 = require("./scoreTopRisks.js");
8
+ function severityWeight(severity) {
9
+ if (severity === "error")
10
+ return 3;
11
+ if (severity === "warning")
12
+ return 2;
13
+ return 1;
14
+ }
15
+ function normalizeIssueGroupKey(source, code) {
16
+ if (source === "schema")
17
+ return "schema";
18
+ if (source === "confidence")
19
+ return "confidence";
20
+ if (source === "decision")
21
+ return "decision";
22
+ if (source === "architecture")
23
+ return "architecture";
24
+ if (source === "patch")
25
+ return "validation";
26
+ if (code?.startsWith("schema_"))
27
+ return "schema";
28
+ if (code?.startsWith("confidence_"))
29
+ return "confidence";
30
+ if (code?.startsWith("decision_"))
31
+ return "decision";
32
+ if (code?.startsWith("arch_"))
33
+ return "architecture";
34
+ return "other";
35
+ }
36
+ function getGroupLabel(key) {
37
+ switch (key) {
38
+ case "validation":
39
+ return "Validation";
40
+ case "schema":
41
+ return "Schema";
42
+ case "confidence":
43
+ return "Confidence";
44
+ case "decision":
45
+ return "Decision";
46
+ case "architecture":
47
+ return "Architecture";
48
+ default:
49
+ return "Other";
50
+ }
51
+ }
52
+ function sortIssuesBySeverity(input) {
53
+ return [...input].sort((a, b) => {
54
+ const severityDiff = severityWeight(b.severity) - severityWeight(a.severity);
55
+ if (severityDiff !== 0)
56
+ return severityDiff;
57
+ const sourceDiff = (a.source ?? "").localeCompare(b.source ?? "");
58
+ if (sourceDiff !== 0)
59
+ return sourceDiff;
60
+ return a.code.localeCompare(b.code);
61
+ });
62
+ }
63
+ function countIssues(input) {
64
+ const errors = input.filter((item) => item.severity === "error").length;
65
+ const warnings = input.filter((item) => item.severity === "warning").length;
66
+ return {
67
+ total: input.length,
68
+ errors,
69
+ warnings
70
+ };
71
+ }
72
+ function groupIssues(input) {
73
+ const buckets = new Map();
74
+ for (const issue of input) {
75
+ const key = normalizeIssueGroupKey(issue.source, issue.code);
76
+ const items = buckets.get(key) ?? [];
77
+ items.push(issue);
78
+ buckets.set(key, items);
79
+ }
80
+ return Array.from(buckets.entries())
81
+ .map(([key, issues]) => {
82
+ const sorted = sortIssuesBySeverity(issues);
83
+ return {
84
+ key,
85
+ label: getGroupLabel(key),
86
+ total: sorted.length,
87
+ errors: sorted.filter((item) => item.severity === "error").length,
88
+ warnings: sorted.filter((item) => item.severity === "warning").length,
89
+ issues: sorted
90
+ };
91
+ })
92
+ .sort((a, b) => {
93
+ if (a.errors !== b.errors)
94
+ return b.errors - a.errors;
95
+ if (a.warnings !== b.warnings)
96
+ return b.warnings - a.warnings;
97
+ return a.label.localeCompare(b.label);
98
+ });
99
+ }
100
+ function buildExecutionResult(input) {
101
+ const sortedIssues = sortIssuesBySeverity(input.issues);
102
+ const counts = countIssues(sortedIssues);
103
+ return {
104
+ version: 2,
105
+ generatedAt: new Date().toISOString(),
106
+ runId: input.runId,
107
+ task: {
108
+ raw: input.rawTask,
109
+ normalized: input.normalizedTask
110
+ },
111
+ project: {
112
+ targetPath: input.targetPath,
113
+ diffAware: input.diffAware,
114
+ mode: input.mode,
115
+ ci: input.ci
116
+ },
117
+ decision: {
118
+ mode: input.decisionMode,
119
+ recommendation: input.recommendation,
120
+ reasons: input.reasons
121
+ },
122
+ confidence: {
123
+ score: input.confidenceBreakdown.score,
124
+ breakdown: input.confidenceBreakdown
125
+ },
126
+ issues: {
127
+ ...counts,
128
+ items: sortedIssues,
129
+ groups: groupIssues(sortedIssues),
130
+ topRisks: (0, scoreTopRisks_js_1.scoreTopRisks)({
131
+ issues: sortedIssues,
132
+ decisionMode: input.decisionMode,
133
+ limit: 5
134
+ })
135
+ },
136
+ patch: input.patchTargets
137
+ ? {
138
+ totalTargets: input.patchTargets.length,
139
+ targets: input.patchTargets
140
+ }
141
+ : undefined,
142
+ debug: {
143
+ suggestedFiles: input.suggestedFiles,
144
+ notes: input.notes
145
+ }
146
+ };
147
+ }
148
+ //# sourceMappingURL=buildExecutionResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildExecutionResult.js","sourceRoot":"","sources":["../../../src/core/result/buildExecutionResult.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildPreviewStageResult = buildPreviewStageResult;
4
+ const buildStageResultV2_js_1 = require("./buildStageResultV2.js");
5
+ function resolveStatus(operationCount) {
6
+ return operationCount > 0 ? "success" : "info";
7
+ }
8
+ function resolveSeverity(operationCount) {
9
+ return operationCount > 0 ? "ok" : "warning";
10
+ }
11
+ function resolveCode(operationCount) {
12
+ return operationCount > 0 ? "ZONE_OK" : "ZONE_SKIPPED";
13
+ }
14
+ function resolveSummary(operationCount) {
15
+ if (operationCount === 0) {
16
+ return "Generated patch preview contains no operations.";
17
+ }
18
+ if (operationCount === 1) {
19
+ return "Generated patch preview contains 1 operation.";
20
+ }
21
+ return `Generated patch preview contains ${operationCount} operations.`;
22
+ }
23
+ function resolveDetails(plan) {
24
+ if (plan.operations.length === 0) {
25
+ return undefined;
26
+ }
27
+ return plan.operations
28
+ .map((operation, index) => {
29
+ const filePath = "filePath" in operation && typeof operation.filePath === "string"
30
+ ? operation.filePath
31
+ : "unknown";
32
+ return `${index + 1}. ${operation.type} -> ${filePath}`;
33
+ })
34
+ .join("\n");
35
+ }
36
+ function buildPreviewStageResult(plan) {
37
+ const operationCount = plan.operations.length;
38
+ return (0, buildStageResultV2_js_1.buildStageResultV2)({
39
+ stage: "generated_patch_preview",
40
+ status: resolveStatus(operationCount),
41
+ severity: resolveSeverity(operationCount),
42
+ code: resolveCode(operationCount),
43
+ summary: resolveSummary(operationCount),
44
+ details: resolveDetails(plan),
45
+ });
46
+ }
47
+ //# sourceMappingURL=buildPreviewStageResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildPreviewStageResult.js","sourceRoot":"","sources":["../../../src/core/result/buildPreviewStageResult.ts"],"names":[],"mappings":";;AA0CA,0DAWC;AAnDD,mEAA6D;AAE7D,SAAS,aAAa,CAAC,cAAsB;IAC3C,OAAO,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED,SAAS,eAAe,CAAC,cAAsB;IAC7C,OAAO,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,cAAsB;IACzC,OAAO,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,cAAsB;IAC5C,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IACD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,+CAA+C,CAAC;IACzD,CAAC;IACD,OAAO,oCAAoC,cAAc,cAAc,CAAC;AAC1E,CAAC;AAED,SAAS,cAAc,CAAC,IAAwB;IAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,UAAU;SACnB,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,QAAQ,GACZ,UAAU,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ;YAC/D,CAAC,CAAC,SAAS,CAAC,QAAQ;YACpB,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,GAAG,KAAK,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,OAAO,QAAQ,EAAE,CAAC;IAC1D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAAwB;IAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAE9C,OAAO,IAAA,0CAAkB,EAAC;QACxB,KAAK,EAAE,yBAAyB;QAChC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC;QACrC,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC;QACzC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC;QACjC,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC;QACvC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSavedDecisionExplanation = buildSavedDecisionExplanation;
4
+ function buildLead(result) {
5
+ switch (result.decision.mode) {
6
+ case "blocked":
7
+ return "Decision was saved as BLOCKED because blocking signals were detected in the result.";
8
+ case "preview":
9
+ return "Decision was saved as PREVIEW ONLY because manual review is still required.";
10
+ case "apply":
11
+ return "Decision was saved as SAFE TO APPLY because no blocking execution signals were recorded.";
12
+ }
13
+ }
14
+ function buildIssueLines(result) {
15
+ const lines = [];
16
+ const errorCount = result.issues?.summary?.errors ?? 0;
17
+ const warningCount = result.issues?.summary?.warnings ?? 0;
18
+ if (errorCount > 0) {
19
+ lines.push(`- ${errorCount} error-level issue(s) remain in the saved result`);
20
+ }
21
+ if (warningCount > 0) {
22
+ lines.push(`- ${warningCount} warning-level issue(s) remain in the saved result`);
23
+ }
24
+ const seriousRiskCount = result.issues?.topRisks?.filter((risk) => risk.severity === "high" || risk.severity === "medium").length ?? 0;
25
+ if (seriousRiskCount > 0) {
26
+ lines.push(`- ${seriousRiskCount} medium/high top risk(s) remain visible in the saved result`);
27
+ }
28
+ return lines;
29
+ }
30
+ function buildClosing(result) {
31
+ switch (result.decision.mode) {
32
+ case "blocked":
33
+ return "Automatic apply is not recommended until blocking issues are resolved.";
34
+ case "preview":
35
+ return "Automatic apply is not recommended until review is completed.";
36
+ case "apply":
37
+ return "Automatic apply can proceed under the current safeguards.";
38
+ }
39
+ }
40
+ function buildSavedDecisionExplanation(result) {
41
+ const lines = [];
42
+ lines.push(buildLead(result));
43
+ const issueLines = buildIssueLines(result);
44
+ if (issueLines.length > 0) {
45
+ lines.push("");
46
+ lines.push(...issueLines);
47
+ }
48
+ lines.push("");
49
+ lines.push(buildClosing(result));
50
+ return lines.join("\n");
51
+ }
52
+ //# sourceMappingURL=buildSavedDecisionExplanation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSavedDecisionExplanation.js","sourceRoot":"","sources":["../../../src/core/result/buildSavedDecisionExplanation.ts"],"names":[],"mappings":";;AAkDA,sEAiBC;AAjED,SAAS,SAAS,CAAC,MAAwB;IACzC,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,KAAK,SAAS;YACZ,OAAO,qFAAqF,CAAC;QAC/F,KAAK,SAAS;YACZ,OAAO,6EAA6E,CAAC;QACvF,KAAK,OAAO;YACV,OAAO,0FAA0F,CAAC;IACtG,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAwB;IAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;IAE3D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,kDAAkD,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,oDAAoD,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,gBAAgB,GACpB,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CACjE,CAAC,MAAM,IAAI,CAAC,CAAC;IAEhB,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,KAAK,gBAAgB,6DAA6D,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAAwB;IAC5C,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,KAAK,SAAS;YACZ,OAAO,wEAAwE,CAAC;QAClF,KAAK,SAAS;YACZ,OAAO,+DAA+D,CAAC;QACzE,KAAK,OAAO;YACV,OAAO,2DAA2D,CAAC;IACvE,CAAC;AACH,CAAC;AAED,SAAgB,6BAA6B,CAC3C,MAAwB;IAExB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSavedRecommendation = buildSavedRecommendation;
4
+ function hasSchemaSignals(result) {
5
+ const schemaIssues = result.validation.schema ?? [];
6
+ return schemaIssues.length > 0;
7
+ }
8
+ function hasPatchSignals(result) {
9
+ const patchIssues = result.validation.patch ?? [];
10
+ return patchIssues.length > 0;
11
+ }
12
+ function hasHighTopRisk(result) {
13
+ return (result.issues?.topRisks ?? []).some((risk) => risk.severity === "high");
14
+ }
15
+ function buildSavedRecommendation(result) {
16
+ if (result.decision.recommendation) {
17
+ return result.decision.recommendation;
18
+ }
19
+ if (result.decision.mode === "blocked") {
20
+ if (hasSchemaSignals(result)) {
21
+ return "Do not apply automatically. Resolve schema issues and verify schema alignment first.";
22
+ }
23
+ return "Do not apply automatically. Fix blocking validation issues first.";
24
+ }
25
+ if (result.decision.mode === "preview") {
26
+ if (hasHighTopRisk(result)) {
27
+ return "Preview the patch and complete manual review before any apply step because high-severity risks are still present.";
28
+ }
29
+ if (hasSchemaSignals(result)) {
30
+ return "Preview the patch and verify schema alignment before any apply step.";
31
+ }
32
+ if (hasPatchSignals(result)) {
33
+ return "Preview the patch and review patch scope before any apply step.";
34
+ }
35
+ return "Preview the patch and review warnings before any apply step.";
36
+ }
37
+ return "Patch can be applied automatically under current safeguards.";
38
+ }
39
+ //# sourceMappingURL=buildSavedRecommendation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSavedRecommendation.js","sourceRoot":"","sources":["../../../src/core/result/buildSavedRecommendation.ts"],"names":[],"mappings":";;AAgBA,4DA8BC;AA5CD,SAAS,gBAAgB,CAAC,MAAwB;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;IACpD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CAAC,MAAwB;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;IAClD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;AAClF,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAAwB;IAC/D,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;IACxC,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,sFAAsF,CAAC;QAChG,CAAC;QAED,OAAO,mEAAmE,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,mHAAmH,CAAC;QAC7H,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,sEAAsE,CAAC;QAChF,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,iEAAiE,CAAC;QAC3E,CAAC;QAED,OAAO,8DAA8D,CAAC;IACxE,CAAC;IAED,OAAO,8DAA8D,CAAC;AACxE,CAAC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildStageResultV2 = buildStageResultV2;
4
+ exports.buildBundledResult = buildBundledResult;
5
+ function buildStageResultV2(input) {
6
+ return {
7
+ stage: input.stage,
8
+ status: input.status,
9
+ severity: input.severity,
10
+ code: input.code,
11
+ summary: input.summary,
12
+ details: input.details,
13
+ timestamps: input.timestamps,
14
+ meta: {
15
+ stage: input.stage,
16
+ version: "2.0",
17
+ engine: "zone",
18
+ },
19
+ };
20
+ }
21
+ function buildBundledResult(input) {
22
+ const stageList = Object.values(input.stages).filter((s) => s !== undefined);
23
+ const hasFatal = stageList.some((s) => s.severity === "fatal");
24
+ const hasError = stageList.some((s) => s.severity === "error");
25
+ const hasWarning = stageList.some((s) => s.severity === "warning");
26
+ const overallSeverity = hasFatal
27
+ ? "fatal"
28
+ : hasError
29
+ ? "error"
30
+ : hasWarning
31
+ ? "warning"
32
+ : "ok";
33
+ const hasBlocked = stageList.some((s) => s.status === "blocked");
34
+ const hasFailed = stageList.some((s) => s.status === "failed");
35
+ const allSuccess = stageList.every((s) => s.status === "success");
36
+ const overallStatus = hasBlocked
37
+ ? "blocked"
38
+ : hasFailed
39
+ ? "failed"
40
+ : allSuccess
41
+ ? "success"
42
+ : "info";
43
+ return {
44
+ engine: "zone",
45
+ version: "2.0",
46
+ overallStatus,
47
+ overallSeverity,
48
+ timestamps: input.timestamps,
49
+ stages: input.stages,
50
+ };
51
+ }
52
+ //# sourceMappingURL=buildStageResultV2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildStageResultV2.js","sourceRoot":"","sources":["../../../src/core/result/buildStageResultV2.ts"],"names":[],"mappings":";;AAUA,gDAuBC;AAED,gDAwCC;AAjED,SAAgB,kBAAkB,CAAC,KAQlC;IACC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAGlC;IACC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAClD,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,KAAK,SAAS,CAC/C,CAAC;IAEF,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAEnE,MAAM,eAAe,GAAiB,QAAQ;QAC5C,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAElE,MAAM,aAAa,GAAoB,UAAU;QAC/C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,CAAC;IAEX,OAAO;QACL,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,KAAK;QACd,aAAa;QACb,eAAe;QACf,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderBundledResult = renderBundledResult;
4
+ function renderStage(stage) {
5
+ const lines = [
6
+ `--- Stage: ${stage.stage} ---`,
7
+ `Status: ${stage.status}`,
8
+ `Severity: ${stage.severity}`,
9
+ `Code: ${stage.code}`,
10
+ `Summary: ${stage.summary}`,
11
+ ];
12
+ if (stage.details !== undefined) {
13
+ lines.push(`Details: ${stage.details}`);
14
+ }
15
+ return lines.join("\n");
16
+ }
17
+ function renderBundledResult(result) {
18
+ const sections = [
19
+ "=== ZONE BUNDLED RESULT ===",
20
+ `Engine: ${result.engine}`,
21
+ `Version: ${result.version}`,
22
+ `Overall Status: ${result.overallStatus}`,
23
+ `Overall Severity: ${result.overallSeverity}`,
24
+ ];
25
+ const stageOrder = [
26
+ "decision",
27
+ "generated_patch_preview",
28
+ "generated_patch_conversion",
29
+ "apply",
30
+ ];
31
+ for (const key of stageOrder) {
32
+ const stage = result.stages[key];
33
+ if (stage !== undefined) {
34
+ sections.push(renderStage(stage));
35
+ }
36
+ }
37
+ if (result.timestamps !== undefined) {
38
+ sections.push([
39
+ "--- Timestamps ---",
40
+ `Started: ${result.timestamps.startedAt}`,
41
+ `Completed: ${result.timestamps.completedAt}`,
42
+ `Duration: ${result.timestamps.durationMs}ms`,
43
+ ].join("\n"));
44
+ }
45
+ return sections.join("\n");
46
+ }
47
+ //# sourceMappingURL=renderBundledResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderBundledResult.js","sourceRoot":"","sources":["../../../src/core/result/renderBundledResult.ts"],"names":[],"mappings":";;AAkBA,kDAmCC;AAnDD,SAAS,WAAW,CAAC,KAAwB;IAC3C,MAAM,KAAK,GAAa;QACtB,cAAc,KAAK,CAAC,KAAK,MAAM;QAC/B,WAAW,KAAK,CAAC,MAAM,EAAE;QACzB,aAAa,KAAK,CAAC,QAAQ,EAAE;QAC7B,SAAS,KAAK,CAAC,IAAI,EAAE;QACrB,YAAY,KAAK,CAAC,OAAO,EAAE;KAC5B,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAyB;IAC3D,MAAM,QAAQ,GAAa;QACzB,6BAA6B;QAC7B,WAAW,MAAM,CAAC,MAAM,EAAE;QAC1B,YAAY,MAAM,CAAC,OAAO,EAAE;QAC5B,mBAAmB,MAAM,CAAC,aAAa,EAAE;QACzC,qBAAqB,MAAM,CAAC,eAAe,EAAE;KAC9C,CAAC;IAEJ,MAAM,UAAU,GAAG;QACf,UAAU;QACV,yBAAyB;QACzB,4BAA4B;QAC5B,OAAO;KACC,CAAC;IAEX,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,QAAQ,CAAC,IAAI,CACX;YACE,oBAAoB;YACpB,YAAY,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE;YACzC,cAAc,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;YAC7C,aAAa,MAAM,CAAC,UAAU,CAAC,UAAU,IAAI;SAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderCliResult = renderCliResult;
4
+ const buildSavedDecisionExplanation_js_1 = require("./buildSavedDecisionExplanation.js");
5
+ function renderSummary(view) {
6
+ const lines = [];
7
+ lines.push(`Decision: ${view.decisionLabel}`);
8
+ lines.push(view.statusLine);
9
+ lines.push(`Confidence: ${view.confidenceScore}`);
10
+ lines.push(`Issues: ${view.errorCount} error, ${view.warningCount} warning`);
11
+ lines.push(`Recommendation: ${view.recommendation}`);
12
+ const firstRisk = view.topRisks[0];
13
+ if (firstRisk) {
14
+ lines.push(`Top Risk: ${firstRisk.severity} (score: ${firstRisk.score}) - ${firstRisk.title}`);
15
+ }
16
+ return lines.join("\n");
17
+ }
18
+ function renderTopRisks(topRisks) {
19
+ if (topRisks.length === 0) {
20
+ return "Top Risks: none";
21
+ }
22
+ const lines = ["Top Risks (prioritized)"];
23
+ for (let i = 0; i < topRisks.length; i++) {
24
+ const risk = topRisks[i];
25
+ if (!risk)
26
+ continue;
27
+ lines.push(`${i + 1}. [${risk.severity}] score=${risk.score} | ${risk.title} (${risk.category})`);
28
+ lines.push(` ${risk.description}`);
29
+ }
30
+ return lines.join("\n");
31
+ }
32
+ function renderExecution(view) {
33
+ const exec = view.rawResult.execution;
34
+ if (!exec)
35
+ return null;
36
+ const lines = [];
37
+ lines.push("Execution");
38
+ lines.push(`- Trace ID: ${exec.traceId}`);
39
+ lines.push(`- Started: ${exec.startedAt}`);
40
+ lines.push(`- Finished: ${exec.finishedAt}`);
41
+ lines.push(`- Duration: ${exec.durationMs} ms`);
42
+ if (exec.phases.length > 0) {
43
+ lines.push("Phases");
44
+ for (const p of exec.phases) {
45
+ lines.push(`- ${p.name}: ${p.durationMs} ms`);
46
+ }
47
+ }
48
+ return lines.join("\n");
49
+ }
50
+ function renderDetailed(view) {
51
+ const sections = [];
52
+ sections.push(`Decision: ${view.decisionLabel}`);
53
+ sections.push(`Status: ${view.statusLine}`);
54
+ sections.push(`Confidence: ${view.confidenceScore}`);
55
+ sections.push(`Issue Summary: ${view.errorCount} error, ${view.warningCount} warning`);
56
+ sections.push(`Recommendation\n${view.recommendation}`);
57
+ sections.push(`Explanation\n${(0, buildSavedDecisionExplanation_js_1.buildSavedDecisionExplanation)(view.rawResult)}`);
58
+ sections.push(renderTopRisks(view.topRisks));
59
+ if (view.notes.length > 0) {
60
+ sections.push(["Notes", ...view.notes.map((note) => `- ${note}`)].join("\n"));
61
+ }
62
+ const execSection = renderExecution(view);
63
+ if (execSection) {
64
+ sections.push(execSection);
65
+ }
66
+ if (view.groupedIssues.length > 0) {
67
+ const groupedText = view.groupedIssues
68
+ .map((group) => {
69
+ const lines = [];
70
+ lines.push(`${group.label} (${group.errors} error, ${group.warnings} warning)`);
71
+ for (const issue of group.issues) {
72
+ lines.push(`- [${issue.severity.toUpperCase()}] ${issue.code}: ${issue.message}`);
73
+ }
74
+ return lines.join("\n");
75
+ })
76
+ .join("\n\n");
77
+ sections.push(`Issues\n${groupedText}`);
78
+ }
79
+ return sections.join("\n\n");
80
+ }
81
+ function renderCliResult(view, format) {
82
+ switch (format) {
83
+ case "summary":
84
+ return renderSummary(view);
85
+ case "detailed":
86
+ return renderDetailed(view);
87
+ case "json":
88
+ return JSON.stringify(view.rawResult, null, 2);
89
+ case "bundled":
90
+ return renderSummary(view);
91
+ }
92
+ }
93
+ //# sourceMappingURL=renderCliResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderCliResult.js","sourceRoot":"","sources":["../../../src/core/result/renderCliResult.ts"],"names":[],"mappings":";;AAwGA,0CAcC;AApHD,yFAAmF;AACnF,SAAS,aAAa,CAAC,IAAkB;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,WAAW,IAAI,CAAC,YAAY,UAAU,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CACR,aAAa,SAAS,CAAC,QAAQ,YAAY,SAAS,CAAC,KAAK,OAAO,SAAS,CAAC,KAAK,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,QAAuB;IAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,yBAAyB,CAAC,CAAC;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,KAAK,CAAC,IAAI,CACR,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,GAAG,CACtF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,IAAkB;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;IAEhD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,IAAkB;IACxC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,UAAU,WAAW,IAAI,CAAC,YAAY,UAAU,CAAC,CAAC;IACvF,QAAQ,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAA,gEAA6B,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAE/E,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa;aACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,WAAW,KAAK,CAAC,QAAQ,WAAW,CAAC,CAAC;YAEhF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CACR,MAAM,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CACtE,CAAC;YACJ,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,QAAQ,CAAC,IAAI,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AACD,SAAgB,eAAe,CAC7B,IAAkB,EAClB,MAAuB;IAEvB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}