@straiffi/archon 1.10.1 → 1.10.3

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 (182) hide show
  1. package/dist/client/assets/ActivityView-B00t5YvM.js +1 -0
  2. package/dist/client/assets/{GitHubActionsDialog-BABPYwJP.js → GitHubActionsDialog-DL1RASVT.js} +1 -1
  3. package/dist/client/assets/{VerificationDialog-LN87YY0r.js → VerificationDialog-CYCrlqmj.js} +1 -1
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DBXhcjPI.js → architectureDiagram-3BPJPVTR-D154Ue77.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-c3auwNH7.js → blockDiagram-GPEHLZMM-Bczo8yL4.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-DH2YznEQ.js → c4Diagram-AAUBKEIU-DhNO2xdU.js} +1 -1
  7. package/dist/client/assets/channel-UfTuRVnD.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-D0_MoyXZ.js → chunk-2J33WTMH-C-9oXMQh.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-DLvSp1DN.js → chunk-3OPIFGDE-C0WrA6dp.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-B4sX8Htk.js → chunk-5ZQYHXKU-DJ6o7jkk.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-CkdnShG1.js → chunk-727SXJPM-MjJ8OutE.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-BdPfgkcs.js → chunk-AQP2D5EJ-HYanGaMO.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-CK-DpVF6.js → chunk-CSCIHK7Q-CNZTo9o2.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-DSbTWVl2.js → chunk-KSCS5N6A-Dz-GLjci.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-DuQ4EPLl.js → chunk-L5ZTLDWV-DgLLQVzW.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-CtpoXWMY.js → chunk-LZXEDZCA-Da9lwzEw.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-CDfNOP6o.js → chunk-ND2GUHAM-BPnz-91H.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-s6ReY4ev.js → chunk-NZK2D7GU-BfIcF7tV.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-DxqYGKhS.js → chunk-O5CBEL6O-B3QOwsKP.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-BvrhxyV8.js → chunk-WU5MYG2G-BBED6bLU.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-D3uRQkFY.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Cf_xrP1l.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-DEK_rftr.js → dagre-BM42HDAG-Cwumk4ZR.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-CpobcZnv.js → diagram-2AECGRRQ-ClslRirB.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-zL1D1L_8.js → diagram-5GNKFQAL-CzE9h3uR.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-gyW-Vc7c.js → diagram-KO2AKTUF-Drs_bJ92.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-DDEYc8sh.js → diagram-LMA3HP47-CxxNSrFg.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-BtUrfJnE.js → diagram-OG6HWLK6-BHHFOg_M.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-qGrmpmmk.js → erDiagram-TEJ5UH35-CLYVwEgc.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-DO1Nm1FA.js → flowDiagram-I6XJVG4X-s3nCY3e0.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-DGuMVCAc.js → ganttDiagram-6RSMTGT7-Bw1QcLzc.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CehPAc8-.js → gitGraphDiagram-PVQCEYII-Bi7EO2ZX.js} +1 -1
  33. package/dist/client/assets/index-Bg3l17L3.css +2 -0
  34. package/dist/client/assets/index-XSKL8H3C.js +276 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-BkRaMDId.js → infoDiagram-5YYISTIA-BamFbqOO.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-B45ubODJ.js → ishikawaDiagram-YF4QCWOH-DH43ZIY5.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-BLxrlitK.js → journeyDiagram-JHISSGLW-BPgBXUEQ.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-DmyeJDyy.js → kanban-definition-UN3LZRKU-CjMJrDcd.js} +1 -1
  39. package/dist/client/assets/{line-BhwjsX6t.js → line-Btqc-Cax.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-CPvivy_u.js → mermaid-parser.core-Bl51lVG0.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-Dr0kld-g.js → mermaid.core-s9FJYhni.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-dfudPzBR.js → mindmap-definition-RKZ34NQL-kakxNN97.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-BhsIQVNX.js → pieDiagram-4H26LBE5-BQYRlP-G.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CAKxScLD.js → quadrantDiagram-W4KKPZXB-DGJRVtrA.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-Br6jIbke.js → requirementDiagram-4Y6WPE33-BSUtkGbI.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BqujNgnY.js → sankeyDiagram-5OEKKPKP-CN9oFkiG.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Dr_VM_ei.js → sequenceDiagram-3UESZ5HK-Dv60bCDo.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-CDbSbbTW.js → stateDiagram-AJRCARHV-C_YPsL77.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-fcBW8vtz.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-CnuLuWDs.js → timeline-definition-PNZ67QCA-Y5JAv2Im.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-CVAhxdBZ.js → vennDiagram-CIIHVFJN-CvVupaFs.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Dmczey27.js → wardleyDiagram-YWT4CUSO-CXPkAtzZ.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-Bl6JGLCU.js → xychartDiagram-2RQKCTM6-BOrLRJbu.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +640 -0
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +787 -124
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/agentCatalog.js +35 -0
  60. package/dist/server/lib/agentCatalog.js.map +1 -0
  61. package/dist/server/lib/agentModelConfig.js +151 -0
  62. package/dist/server/lib/agentModelConfig.js.map +1 -0
  63. package/dist/server/lib/agentRuns.js +1 -0
  64. package/dist/server/lib/agentRuns.js.map +1 -1
  65. package/dist/server/lib/automationCheckGate.js +98 -9
  66. package/dist/server/lib/automationCheckGate.js.map +1 -1
  67. package/dist/server/lib/automationLoopAgentEvidence.js +42 -0
  68. package/dist/server/lib/automationLoopAgentEvidence.js.map +1 -0
  69. package/dist/server/lib/automationLoopProjection.js +339 -0
  70. package/dist/server/lib/automationLoopProjection.js.map +1 -0
  71. package/dist/server/lib/automationProgression.js +115 -6
  72. package/dist/server/lib/automationProgression.js.map +1 -1
  73. package/dist/server/lib/automationReconciliation.js +27 -11
  74. package/dist/server/lib/automationReconciliation.js.map +1 -1
  75. package/dist/server/lib/automationResumeDecision.js +55 -15
  76. package/dist/server/lib/automationResumeDecision.js.map +1 -1
  77. package/dist/server/lib/automationReviewGate.js +352 -26
  78. package/dist/server/lib/automationReviewGate.js.map +1 -1
  79. package/dist/server/lib/buildFlow.js +12 -0
  80. package/dist/server/lib/buildFlow.js.map +1 -1
  81. package/dist/server/lib/bundleReviewOperations.js +40 -23
  82. package/dist/server/lib/bundleReviewOperations.js.map +1 -1
  83. package/dist/server/lib/chatOperations.js +26 -4
  84. package/dist/server/lib/chatOperations.js.map +1 -1
  85. package/dist/server/lib/checkAutoFix.js +5 -4
  86. package/dist/server/lib/checkAutoFix.js.map +1 -1
  87. package/dist/server/lib/checkAutoFixDetails.js +54 -9
  88. package/dist/server/lib/checkAutoFixDetails.js.map +1 -1
  89. package/dist/server/lib/checkExecutionEnvironment.js +1 -1
  90. package/dist/server/lib/checkGateEvaluations.js +6 -1
  91. package/dist/server/lib/checkGateEvaluations.js.map +1 -1
  92. package/dist/server/lib/checkRepair.js +30 -0
  93. package/dist/server/lib/checkRepair.js.map +1 -1
  94. package/dist/server/lib/checkRunner.js +11 -6
  95. package/dist/server/lib/checkRunner.js.map +1 -1
  96. package/dist/server/lib/checkRuns.js +1 -1
  97. package/dist/server/lib/claudeAgentProvider.js +19 -0
  98. package/dist/server/lib/claudeAgentProvider.js.map +1 -1
  99. package/dist/server/lib/executionEnvironmentValidation.js +9 -3
  100. package/dist/server/lib/executionEnvironmentValidation.js.map +1 -1
  101. package/dist/server/lib/executionRuns.js +17 -3
  102. package/dist/server/lib/executionRuns.js.map +1 -1
  103. package/dist/server/lib/executionTimeline.js +3 -0
  104. package/dist/server/lib/executionTimeline.js.map +1 -1
  105. package/dist/server/lib/lightweightPrompt.js +13 -40
  106. package/dist/server/lib/lightweightPrompt.js.map +1 -1
  107. package/dist/server/lib/mobileAccess.js +47 -3
  108. package/dist/server/lib/mobileAccess.js.map +1 -1
  109. package/dist/server/lib/modelResolutionErrors.js +24 -0
  110. package/dist/server/lib/modelResolutionErrors.js.map +1 -0
  111. package/dist/server/lib/models.js +9 -9
  112. package/dist/server/lib/models.js.map +1 -1
  113. package/dist/server/lib/projectAutoConfig.js +15 -52
  114. package/dist/server/lib/projectAutoConfig.js.map +1 -1
  115. package/dist/server/lib/projectMemoryScan.js +15 -9
  116. package/dist/server/lib/projectMemoryScan.js.map +1 -1
  117. package/dist/server/lib/projects.js +59 -4
  118. package/dist/server/lib/projects.js.map +1 -1
  119. package/dist/server/lib/reviewRepairCompletion.js +126 -0
  120. package/dist/server/lib/reviewRepairCompletion.js.map +1 -0
  121. package/dist/server/lib/reviewRepairIterationRecords.js +149 -0
  122. package/dist/server/lib/reviewRepairIterationRecords.js.map +1 -0
  123. package/dist/server/lib/reviewRepairIterations.js +590 -0
  124. package/dist/server/lib/reviewRepairIterations.js.map +1 -0
  125. package/dist/server/lib/reviewRepairReconciliation.js +588 -0
  126. package/dist/server/lib/reviewRepairReconciliation.js.map +1 -0
  127. package/dist/server/lib/reviewerConfig.js +18 -7
  128. package/dist/server/lib/reviewerConfig.js.map +1 -1
  129. package/dist/server/lib/run.js +21 -20
  130. package/dist/server/lib/run.js.map +1 -1
  131. package/dist/server/lib/shell.js +13 -0
  132. package/dist/server/lib/shell.js.map +1 -1
  133. package/dist/server/lib/specArtifact.js +1 -1
  134. package/dist/server/lib/specArtifact.js.map +1 -1
  135. package/dist/server/lib/specGraphFeature.js +2 -2
  136. package/dist/server/lib/specGraphFeature.js.map +1 -1
  137. package/dist/server/lib/specOperations.js +26 -4
  138. package/dist/server/lib/specOperations.js.map +1 -1
  139. package/dist/server/lib/specRepositoryEvidenceFormatting.js +2 -2
  140. package/dist/server/lib/specRepositoryEvidenceFormatting.js.map +1 -1
  141. package/dist/server/lib/specRepositoryImpact.js +3 -3
  142. package/dist/server/lib/specRepositoryImpact.js.map +1 -1
  143. package/dist/server/lib/specReviewContext.js +7 -1
  144. package/dist/server/lib/specReviewContext.js.map +1 -1
  145. package/dist/server/lib/specReviewOperations.js +20 -7
  146. package/dist/server/lib/specReviewOperations.js.map +1 -1
  147. package/dist/server/lib/specSnapshotEvidence.js +3 -3
  148. package/dist/server/lib/specSnapshotEvidence.js.map +1 -1
  149. package/dist/server/lib/ticketAutomation.js +9 -11
  150. package/dist/server/lib/ticketAutomation.js.map +1 -1
  151. package/dist/server/lib/ticketAutomationCommit.js +21 -11
  152. package/dist/server/lib/ticketAutomationCommit.js.map +1 -1
  153. package/dist/server/lib/ticketFollowUpOperations.js +3 -1
  154. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  155. package/dist/server/lib/ticketSettingsOperations.js +9 -0
  156. package/dist/server/lib/ticketSettingsOperations.js.map +1 -1
  157. package/dist/server/lib/ticketWorkflowOperations.js +2 -6
  158. package/dist/server/lib/ticketWorkflowOperations.js.map +1 -1
  159. package/dist/server/lib/tickets.js +16 -6
  160. package/dist/server/lib/tickets.js.map +1 -1
  161. package/dist/server/lib/types.js +45 -0
  162. package/dist/server/lib/types.js.map +1 -1
  163. package/dist/server/workers/followUp.js +76 -1
  164. package/dist/server/workers/followUp.js.map +1 -1
  165. package/dist/server/workers/repositoryGraphAnalyzer.js +3 -2
  166. package/dist/server/workers/repositoryGraphAnalyzer.js.map +1 -1
  167. package/dist/server/workers/repositoryGraphAnalyzerBootstrap.js +20 -0
  168. package/dist/server/workers/repositoryGraphAnalyzerBootstrap.js.map +1 -0
  169. package/dist/server/workers/review.js +292 -60
  170. package/dist/server/workers/review.js.map +1 -1
  171. package/dist/server/workers/specReview.js +17 -8
  172. package/dist/server/workers/specReview.js.map +1 -1
  173. package/dist/server/workers/specSession.js +33 -23
  174. package/dist/server/workers/specSession.js.map +1 -1
  175. package/package.json +1 -1
  176. package/dist/client/assets/ActivityView-C5OrI0uK.js +0 -1
  177. package/dist/client/assets/channel-CYsnLOcX.js +0 -1
  178. package/dist/client/assets/classDiagram-4FO5ZUOK-CElk31Q4.js +0 -1
  179. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-lnAahwmt.js +0 -1
  180. package/dist/client/assets/index-1CokwSFm.css +0 -2
  181. package/dist/client/assets/index-DtefHOHC.js +0 -276
  182. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-p-kfFJi7.js +0 -1
@@ -0,0 +1,126 @@
1
+ import { getEffectiveProject } from './projects.js';
2
+ import { createAutomationReviewFixInTransaction, ensureAutomationProgressionInTransaction, resolveProgressionForChild, } from './automationProgression.js';
3
+ import { attachReviewRepairActionEnvelopeInTransaction, appendReviewRepairIterationDecisionInTransaction, attachReviewRepairResultInTransaction, claimReviewRepairIterationInTransaction, getReviewRepairIterationByVerification, pauseReviewRepairIterationInTransaction, terminalizeReviewRepairIterationInTransaction, } from './reviewRepairIterations.js';
4
+ import { countBlockingFindings, decideReviewAutomation, getBundleAutomationState, resolveAutomationConfig, } from './ticketAutomation.js';
5
+ import { getTicket } from './tickets.js';
6
+ import { validateWorkflowContext } from './types.js';
7
+ export const persistReviewCompletionAutomationInTransaction = (transaction, ticket, project, reviewRunId, parsedStatus, findings, executionContext, initiation) => {
8
+ if (!ticket.worktree_bundle_id || !ticket.project_id) {
9
+ return null;
10
+ }
11
+ const projectId = ticket.project_id;
12
+ const bundleId = ticket.worktree_bundle_id;
13
+ const liveTicket = getTicket(ticket.id) ?? ticket;
14
+ const liveProject = getEffectiveProject(liveTicket) ?? project;
15
+ const automationConfig = resolveAutomationConfig(liveTicket.bundle ?? null, liveProject);
16
+ const decision = decideReviewAutomation(automationConfig, getBundleAutomationState(projectId, bundleId), reviewRunId, parsedStatus, findings);
17
+ const ownedProgression = initiation.initiator === 'automation'
18
+ ? resolveProgressionForChild({ projectId, bundleId, childRunId: executionContext.runId })
19
+ : null;
20
+ const verificationIteration = ownedProgression
21
+ ? getReviewRepairIterationByVerification(projectId, executionContext.runId)
22
+ : null;
23
+ if (verificationIteration?.phase === 'verification_active') {
24
+ const resultingBlockingCount = parsedStatus === 'completed'
25
+ ? countBlockingFindings(findings, automationConfig)
26
+ : null;
27
+ if (parsedStatus === 'completed' && reviewRunId) {
28
+ attachReviewRepairResultInTransaction(transaction, {
29
+ projectId,
30
+ iterationId: verificationIteration.id,
31
+ expectedPhase: 'verification_active',
32
+ expectedVerificationRunId: executionContext.runId,
33
+ resultingReviewRunId: reviewRunId,
34
+ });
35
+ }
36
+ appendReviewRepairIterationDecisionInTransaction(transaction, {
37
+ projectId,
38
+ iterationId: verificationIteration.id,
39
+ decisionPoint: 'verification_completion',
40
+ effectiveAutomationConfig: automationConfig,
41
+ decisionCode: parsedStatus === 'completed' ? 'verification_completed' : 'verification_failed',
42
+ operationRunId: executionContext.runId,
43
+ });
44
+ const terminal = decision.kind === 'fix_iteration'
45
+ ? { outcome: 'continuing', stopReason: null }
46
+ : decision.kind === 'clean'
47
+ ? { outcome: 'repaired', stopReason: 'no_blocking_findings' }
48
+ : decision.kind === 'exhausted'
49
+ ? { outcome: 'exhausted', stopReason: 'max_iterations' }
50
+ : decision.kind === 'pause_blocking'
51
+ ? { outcome: 'interrupted', stopReason: 'automation_disabled' }
52
+ : parsedStatus !== 'completed'
53
+ ? { outcome: 'failed', stopReason: 'verification_failed' }
54
+ : { outcome: 'interrupted', stopReason: 'configuration_changed' };
55
+ if (parsedStatus !== 'completed') {
56
+ pauseReviewRepairIterationInTransaction(transaction, {
57
+ projectId,
58
+ iterationId: verificationIteration.id,
59
+ expectedPhase: 'verification_active',
60
+ expectedCurrentRunId: executionContext.runId,
61
+ stopReason: 'verification_failed',
62
+ });
63
+ }
64
+ else {
65
+ terminalizeReviewRepairIterationInTransaction(transaction, {
66
+ projectId,
67
+ iterationId: verificationIteration.id,
68
+ expectedPhase: 'verification_active',
69
+ expectedCurrentRunId: executionContext.runId,
70
+ outcome: terminal.outcome,
71
+ stopReason: terminal.stopReason,
72
+ resultingBlockingCount,
73
+ });
74
+ }
75
+ }
76
+ let progressionRunId = ownedProgression?.id ?? null;
77
+ let repair = null;
78
+ if (decision.kind === 'fix_iteration' && reviewRunId) {
79
+ progressionRunId = progressionRunId ?? ensureAutomationProgressionInTransaction(transaction, {
80
+ projectId,
81
+ bundleId,
82
+ ticketId: ticket.id,
83
+ ticketTitle: ticket.title,
84
+ parentRunId: executionContext.runId,
85
+ workflowContext: initiation.workflowContext,
86
+ }).runId;
87
+ const iteration = claimReviewRepairIterationInTransaction(transaction, {
88
+ projectId,
89
+ worktreeBundleId: bundleId,
90
+ ownerTicketId: ticket.id,
91
+ automationProgressionRunId: progressionRunId,
92
+ triggeringReviewExecutionRunId: executionContext.runId,
93
+ triggeringReviewRunId: reviewRunId,
94
+ triggeringBlockingCount: countBlockingFindings(findings, automationConfig),
95
+ effectiveAutomationConfig: automationConfig,
96
+ decisionCode: 'repair_admitted',
97
+ });
98
+ if (iteration.phase === 'observed') {
99
+ const workflowContext = validateWorkflowContext({
100
+ ...(initiation.workflowContext ?? {}),
101
+ review_finding_run_id: reviewRunId,
102
+ review_severity: automationConfig.reviewSeverity,
103
+ });
104
+ const reviewFix = createAutomationReviewFixInTransaction(transaction, {
105
+ projectId,
106
+ bundleId,
107
+ ticketId: ticket.id,
108
+ ticketTitle: ticket.title,
109
+ progressionRunId,
110
+ workflowContext,
111
+ triggeringReviewRunId: executionContext.runId,
112
+ reviewFindingRunId: reviewRunId,
113
+ reviewSeverity: automationConfig.reviewSeverity,
114
+ });
115
+ attachReviewRepairActionEnvelopeInTransaction(transaction, {
116
+ projectId,
117
+ iterationId: iteration.id,
118
+ expectedPhase: 'observed',
119
+ runId: reviewFix.runId,
120
+ });
121
+ repair = { iterationId: iteration.id, reviewFix };
122
+ }
123
+ }
124
+ return { config: automationConfig, decision, progressionRunId, repair };
125
+ };
126
+ //# sourceMappingURL=reviewRepairCompletion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewRepairCompletion.js","sourceRoot":"","sources":["../../../server/lib/reviewRepairCompletion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import db from '../db.js';
2
+ const MAX_CONFIG_BYTES = 16 * 1024;
3
+ const MAX_WORKSPACE_EVIDENCE_BYTES = 64 * 1024;
4
+ const parseObject = (value, label) => {
5
+ if (value === null) {
6
+ return null;
7
+ }
8
+ const parsed = JSON.parse(value);
9
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
10
+ throw new Error(`${label} is not an object`);
11
+ }
12
+ return parsed;
13
+ };
14
+ const validateEffectiveConfig = (config) => {
15
+ if (!['manual', 'auto_review', 'auto_commit', 'auto_push', 'auto_pr'].includes(config.depth)) {
16
+ throw new Error('Invalid Review repair automation depth');
17
+ }
18
+ if (typeof config.reviewFixEnabled !== 'boolean' || typeof config.pauseOnOpenQuestions !== 'boolean') {
19
+ throw new Error('Invalid Review repair automation flags');
20
+ }
21
+ if (!['high', 'medium', 'low'].includes(config.reviewSeverity)) {
22
+ throw new Error('Invalid Review repair severity');
23
+ }
24
+ if (!Number.isSafeInteger(config.reviewMaxIterations) || config.reviewMaxIterations < 1 || config.reviewMaxIterations > 10) {
25
+ throw new Error('Invalid Review repair maximum iterations');
26
+ }
27
+ return config;
28
+ };
29
+ const serializeObject = (value, label, maximumBytes) => {
30
+ let serialized;
31
+ try {
32
+ serialized = JSON.stringify(value);
33
+ }
34
+ catch {
35
+ throw new Error(`${label} must be JSON serializable`);
36
+ }
37
+ if (Buffer.byteLength(serialized, 'utf8') > maximumBytes) {
38
+ throw new Error(`${label} exceeds ${maximumBytes} bytes`);
39
+ }
40
+ return serialized;
41
+ };
42
+ export const serializeEffectiveConfig = (config) => (serializeObject(validateEffectiveConfig(config), 'Review repair effective automation configuration', MAX_CONFIG_BYTES));
43
+ export const serializeWorkspaceEvidence = (evidence) => (evidence ? serializeObject(evidence, 'Review repair workspace evidence', MAX_WORKSPACE_EVIDENCE_BYTES) : null);
44
+ const hydrateIteration = (row) => {
45
+ const { claim_effective_automation_config_json: configJson, workspace_evidence_json: workspaceEvidenceJson, ...iteration } = row;
46
+ return {
47
+ ...iteration,
48
+ claim_effective_automation_config: validateEffectiveConfig(parseObject(configJson, 'Review repair effective automation configuration')),
49
+ workspace_evidence: parseObject(workspaceEvidenceJson, 'Review repair workspace evidence'),
50
+ };
51
+ };
52
+ export const hydrateDecision = (row) => {
53
+ const { effective_automation_config_json: configJson, ...decision } = row;
54
+ return {
55
+ ...decision,
56
+ effective_automation_config: validateEffectiveConfig(parseObject(configJson, 'Review repair decision configuration')),
57
+ };
58
+ };
59
+ const iterationSelect = `
60
+ SELECT id, project_id, worktree_bundle_id, owner_ticket_id,
61
+ automation_progression_run_id, ordinal, triggering_review_execution_run_id,
62
+ triggering_review_run_id, action_envelope_run_id, action_run_id, gate_batch_run_id,
63
+ gate_source_batch_run_id, gate_evaluation_id, resulting_review_execution_run_id,
64
+ resulting_review_run_id, triggering_blocking_count, resulting_blocking_count,
65
+ claim_effective_automation_config_json, phase, outcome, stop_reason,
66
+ workspace_evidence_json, observed_at, action_claimed_at, action_active_at,
67
+ gate_pending_at, gate_active_at, verification_pending_at, verification_active_at,
68
+ paused_at, terminal_at, created_at, updated_at
69
+ FROM review_repair_iterations
70
+ `;
71
+ export const listReviewRepairIterationsByProgressionIds = (projectId, progressionRunIds) => {
72
+ const ids = [...new Set(progressionRunIds)];
73
+ if (ids.length === 0) {
74
+ return [];
75
+ }
76
+ const rows = db.prepare(`
77
+ ${iterationSelect}
78
+ WHERE project_id = ? AND automation_progression_run_id IN (${ids.map(() => '?').join(', ')})
79
+ ORDER BY automation_progression_run_id, ordinal
80
+ `).all(projectId, ...ids);
81
+ return rows.map(hydrateIteration);
82
+ };
83
+ export const listReviewRepairIterationDecisionsByIterationIds = (projectId, iterationIds) => {
84
+ const ids = [...new Set(iterationIds)];
85
+ if (ids.length === 0) {
86
+ return [];
87
+ }
88
+ const rows = db.prepare(`
89
+ SELECT decision.id, decision.iteration_id, decision.operation_run_id, decision.sequence,
90
+ decision.decision_point, decision.effective_automation_config_json,
91
+ decision.decision_code, decision.created_at
92
+ FROM review_repair_iteration_decisions decision
93
+ JOIN review_repair_iterations iteration ON iteration.id = decision.iteration_id
94
+ WHERE iteration.project_id = ? AND decision.iteration_id IN (${ids.map(() => '?').join(', ')})
95
+ ORDER BY decision.iteration_id, decision.sequence
96
+ `).all(projectId, ...ids);
97
+ return rows.map(hydrateDecision);
98
+ };
99
+ export const loadReviewRepairIteration = (projectId, iterationId) => {
100
+ const row = db.prepare(`${iterationSelect} WHERE project_id = ? AND id = ?`).get(projectId, iterationId);
101
+ return row ? hydrateIteration(row) : null;
102
+ };
103
+ export const loadReviewRepairIterationByTriggeringReview = (projectId, triggeringReviewExecutionRunId) => {
104
+ const row = db.prepare(`
105
+ ${iterationSelect}
106
+ WHERE project_id = ? AND triggering_review_execution_run_id = ?
107
+ ORDER BY ordinal DESC LIMIT 1
108
+ `).get(projectId, triggeringReviewExecutionRunId);
109
+ return row ? hydrateIteration(row) : null;
110
+ };
111
+ export const loadActiveReviewRepairIteration = (projectId, progressionRunId) => {
112
+ const row = db.prepare(`
113
+ ${iterationSelect}
114
+ WHERE project_id = ? AND automation_progression_run_id = ? AND phase <> 'terminal'
115
+ ORDER BY ordinal DESC LIMIT 1
116
+ `).get(projectId, progressionRunId);
117
+ return row ? hydrateIteration(row) : null;
118
+ };
119
+ export const loadReviewRepairIterationByAction = (projectId, actionRunId) => {
120
+ const row = db.prepare(`
121
+ ${iterationSelect}
122
+ WHERE project_id = ? AND action_run_id = ?
123
+ LIMIT 1
124
+ `).get(projectId, actionRunId);
125
+ return row ? hydrateIteration(row) : null;
126
+ };
127
+ export const loadReviewRepairIterationByVerification = (projectId, verificationRunId) => {
128
+ const row = db.prepare(`
129
+ ${iterationSelect}
130
+ WHERE project_id = ? AND resulting_review_execution_run_id = ?
131
+ LIMIT 1
132
+ `).get(projectId, verificationRunId);
133
+ return row ? hydrateIteration(row) : null;
134
+ };
135
+ export const requireReviewRepairIteration = (projectId, iterationId) => {
136
+ const iteration = loadReviewRepairIteration(projectId, iterationId);
137
+ if (!iteration) {
138
+ throw new Error(`Review repair iteration ${iterationId} does not exist`);
139
+ }
140
+ return iteration;
141
+ };
142
+ export const assertReviewRepairIterationChanged = (changes, projectId, iterationId, message) => {
143
+ if (changes !== 1) {
144
+ requireReviewRepairIteration(projectId, iterationId);
145
+ throw new Error(message);
146
+ }
147
+ return requireReviewRepairIteration(projectId, iterationId);
148
+ };
149
+ //# sourceMappingURL=reviewRepairIterationRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewRepairIterationRecords.js","sourceRoot":"","sources":["../../../server/lib/reviewRepairIterationRecords.ts"],"names":[],"mappings":"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"}