@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.
- package/dist/client/assets/ActivityView-B00t5YvM.js +1 -0
- package/dist/client/assets/{GitHubActionsDialog-BABPYwJP.js → GitHubActionsDialog-DL1RASVT.js} +1 -1
- package/dist/client/assets/{VerificationDialog-LN87YY0r.js → VerificationDialog-CYCrlqmj.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-DBXhcjPI.js → architectureDiagram-3BPJPVTR-D154Ue77.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-c3auwNH7.js → blockDiagram-GPEHLZMM-Bczo8yL4.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-DH2YznEQ.js → c4Diagram-AAUBKEIU-DhNO2xdU.js} +1 -1
- package/dist/client/assets/channel-UfTuRVnD.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-D0_MoyXZ.js → chunk-2J33WTMH-C-9oXMQh.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-DLvSp1DN.js → chunk-3OPIFGDE-C0WrA6dp.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-B4sX8Htk.js → chunk-5ZQYHXKU-DJ6o7jkk.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-CkdnShG1.js → chunk-727SXJPM-MjJ8OutE.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-BdPfgkcs.js → chunk-AQP2D5EJ-HYanGaMO.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-CK-DpVF6.js → chunk-CSCIHK7Q-CNZTo9o2.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-DSbTWVl2.js → chunk-KSCS5N6A-Dz-GLjci.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-DuQ4EPLl.js → chunk-L5ZTLDWV-DgLLQVzW.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-CtpoXWMY.js → chunk-LZXEDZCA-Da9lwzEw.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-CDfNOP6o.js → chunk-ND2GUHAM-BPnz-91H.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-s6ReY4ev.js → chunk-NZK2D7GU-BfIcF7tV.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-DxqYGKhS.js → chunk-O5CBEL6O-B3QOwsKP.js} +1 -1
- package/dist/client/assets/{chunk-WU5MYG2G-BvrhxyV8.js → chunk-WU5MYG2G-BBED6bLU.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-D3uRQkFY.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Cf_xrP1l.js +1 -0
- package/dist/client/assets/{dagre-BM42HDAG-DEK_rftr.js → dagre-BM42HDAG-Cwumk4ZR.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-CpobcZnv.js → diagram-2AECGRRQ-ClslRirB.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-zL1D1L_8.js → diagram-5GNKFQAL-CzE9h3uR.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-gyW-Vc7c.js → diagram-KO2AKTUF-Drs_bJ92.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-DDEYc8sh.js → diagram-LMA3HP47-CxxNSrFg.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-BtUrfJnE.js → diagram-OG6HWLK6-BHHFOg_M.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-qGrmpmmk.js → erDiagram-TEJ5UH35-CLYVwEgc.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-DO1Nm1FA.js → flowDiagram-I6XJVG4X-s3nCY3e0.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DGuMVCAc.js → ganttDiagram-6RSMTGT7-Bw1QcLzc.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CehPAc8-.js → gitGraphDiagram-PVQCEYII-Bi7EO2ZX.js} +1 -1
- package/dist/client/assets/index-Bg3l17L3.css +2 -0
- package/dist/client/assets/index-XSKL8H3C.js +276 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-BkRaMDId.js → infoDiagram-5YYISTIA-BamFbqOO.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-B45ubODJ.js → ishikawaDiagram-YF4QCWOH-DH43ZIY5.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-BLxrlitK.js → journeyDiagram-JHISSGLW-BPgBXUEQ.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-DmyeJDyy.js → kanban-definition-UN3LZRKU-CjMJrDcd.js} +1 -1
- package/dist/client/assets/{line-BhwjsX6t.js → line-Btqc-Cax.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-CPvivy_u.js → mermaid-parser.core-Bl51lVG0.js} +1 -1
- package/dist/client/assets/{mermaid.core-Dr0kld-g.js → mermaid.core-s9FJYhni.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-dfudPzBR.js → mindmap-definition-RKZ34NQL-kakxNN97.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-BhsIQVNX.js → pieDiagram-4H26LBE5-BQYRlP-G.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CAKxScLD.js → quadrantDiagram-W4KKPZXB-DGJRVtrA.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-Br6jIbke.js → requirementDiagram-4Y6WPE33-BSUtkGbI.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BqujNgnY.js → sankeyDiagram-5OEKKPKP-CN9oFkiG.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Dr_VM_ei.js → sequenceDiagram-3UESZ5HK-Dv60bCDo.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-CDbSbbTW.js → stateDiagram-AJRCARHV-C_YPsL77.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-fcBW8vtz.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-CnuLuWDs.js → timeline-definition-PNZ67QCA-Y5JAv2Im.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CVAhxdBZ.js → vennDiagram-CIIHVFJN-CvVupaFs.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Dmczey27.js → wardleyDiagram-YWT4CUSO-CXPkAtzZ.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-Bl6JGLCU.js → xychartDiagram-2RQKCTM6-BOrLRJbu.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/db.js +640 -0
- package/dist/server/db.js.map +1 -1
- package/dist/server/index.js +787 -124
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/agentCatalog.js +35 -0
- package/dist/server/lib/agentCatalog.js.map +1 -0
- package/dist/server/lib/agentModelConfig.js +151 -0
- package/dist/server/lib/agentModelConfig.js.map +1 -0
- package/dist/server/lib/agentRuns.js +1 -0
- package/dist/server/lib/agentRuns.js.map +1 -1
- package/dist/server/lib/automationCheckGate.js +98 -9
- package/dist/server/lib/automationCheckGate.js.map +1 -1
- package/dist/server/lib/automationLoopAgentEvidence.js +42 -0
- package/dist/server/lib/automationLoopAgentEvidence.js.map +1 -0
- package/dist/server/lib/automationLoopProjection.js +339 -0
- package/dist/server/lib/automationLoopProjection.js.map +1 -0
- package/dist/server/lib/automationProgression.js +115 -6
- package/dist/server/lib/automationProgression.js.map +1 -1
- package/dist/server/lib/automationReconciliation.js +27 -11
- package/dist/server/lib/automationReconciliation.js.map +1 -1
- package/dist/server/lib/automationResumeDecision.js +55 -15
- package/dist/server/lib/automationResumeDecision.js.map +1 -1
- package/dist/server/lib/automationReviewGate.js +352 -26
- package/dist/server/lib/automationReviewGate.js.map +1 -1
- package/dist/server/lib/buildFlow.js +12 -0
- package/dist/server/lib/buildFlow.js.map +1 -1
- package/dist/server/lib/bundleReviewOperations.js +40 -23
- package/dist/server/lib/bundleReviewOperations.js.map +1 -1
- package/dist/server/lib/chatOperations.js +26 -4
- package/dist/server/lib/chatOperations.js.map +1 -1
- package/dist/server/lib/checkAutoFix.js +5 -4
- package/dist/server/lib/checkAutoFix.js.map +1 -1
- package/dist/server/lib/checkAutoFixDetails.js +54 -9
- package/dist/server/lib/checkAutoFixDetails.js.map +1 -1
- package/dist/server/lib/checkExecutionEnvironment.js +1 -1
- package/dist/server/lib/checkGateEvaluations.js +6 -1
- package/dist/server/lib/checkGateEvaluations.js.map +1 -1
- package/dist/server/lib/checkRepair.js +30 -0
- package/dist/server/lib/checkRepair.js.map +1 -1
- package/dist/server/lib/checkRunner.js +11 -6
- package/dist/server/lib/checkRunner.js.map +1 -1
- package/dist/server/lib/checkRuns.js +1 -1
- package/dist/server/lib/claudeAgentProvider.js +19 -0
- package/dist/server/lib/claudeAgentProvider.js.map +1 -1
- package/dist/server/lib/executionEnvironmentValidation.js +9 -3
- package/dist/server/lib/executionEnvironmentValidation.js.map +1 -1
- package/dist/server/lib/executionRuns.js +17 -3
- package/dist/server/lib/executionRuns.js.map +1 -1
- package/dist/server/lib/executionTimeline.js +3 -0
- package/dist/server/lib/executionTimeline.js.map +1 -1
- package/dist/server/lib/lightweightPrompt.js +13 -40
- package/dist/server/lib/lightweightPrompt.js.map +1 -1
- package/dist/server/lib/mobileAccess.js +47 -3
- package/dist/server/lib/mobileAccess.js.map +1 -1
- package/dist/server/lib/modelResolutionErrors.js +24 -0
- package/dist/server/lib/modelResolutionErrors.js.map +1 -0
- package/dist/server/lib/models.js +9 -9
- package/dist/server/lib/models.js.map +1 -1
- package/dist/server/lib/projectAutoConfig.js +15 -52
- package/dist/server/lib/projectAutoConfig.js.map +1 -1
- package/dist/server/lib/projectMemoryScan.js +15 -9
- package/dist/server/lib/projectMemoryScan.js.map +1 -1
- package/dist/server/lib/projects.js +59 -4
- package/dist/server/lib/projects.js.map +1 -1
- package/dist/server/lib/reviewRepairCompletion.js +126 -0
- package/dist/server/lib/reviewRepairCompletion.js.map +1 -0
- package/dist/server/lib/reviewRepairIterationRecords.js +149 -0
- package/dist/server/lib/reviewRepairIterationRecords.js.map +1 -0
- package/dist/server/lib/reviewRepairIterations.js +590 -0
- package/dist/server/lib/reviewRepairIterations.js.map +1 -0
- package/dist/server/lib/reviewRepairReconciliation.js +588 -0
- package/dist/server/lib/reviewRepairReconciliation.js.map +1 -0
- package/dist/server/lib/reviewerConfig.js +18 -7
- package/dist/server/lib/reviewerConfig.js.map +1 -1
- package/dist/server/lib/run.js +21 -20
- package/dist/server/lib/run.js.map +1 -1
- package/dist/server/lib/shell.js +13 -0
- package/dist/server/lib/shell.js.map +1 -1
- package/dist/server/lib/specArtifact.js +1 -1
- package/dist/server/lib/specArtifact.js.map +1 -1
- package/dist/server/lib/specGraphFeature.js +2 -2
- package/dist/server/lib/specGraphFeature.js.map +1 -1
- package/dist/server/lib/specOperations.js +26 -4
- package/dist/server/lib/specOperations.js.map +1 -1
- package/dist/server/lib/specRepositoryEvidenceFormatting.js +2 -2
- package/dist/server/lib/specRepositoryEvidenceFormatting.js.map +1 -1
- package/dist/server/lib/specRepositoryImpact.js +3 -3
- package/dist/server/lib/specRepositoryImpact.js.map +1 -1
- package/dist/server/lib/specReviewContext.js +7 -1
- package/dist/server/lib/specReviewContext.js.map +1 -1
- package/dist/server/lib/specReviewOperations.js +20 -7
- package/dist/server/lib/specReviewOperations.js.map +1 -1
- package/dist/server/lib/specSnapshotEvidence.js +3 -3
- package/dist/server/lib/specSnapshotEvidence.js.map +1 -1
- package/dist/server/lib/ticketAutomation.js +9 -11
- package/dist/server/lib/ticketAutomation.js.map +1 -1
- package/dist/server/lib/ticketAutomationCommit.js +21 -11
- package/dist/server/lib/ticketAutomationCommit.js.map +1 -1
- package/dist/server/lib/ticketFollowUpOperations.js +3 -1
- package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
- package/dist/server/lib/ticketSettingsOperations.js +9 -0
- package/dist/server/lib/ticketSettingsOperations.js.map +1 -1
- package/dist/server/lib/ticketWorkflowOperations.js +2 -6
- package/dist/server/lib/ticketWorkflowOperations.js.map +1 -1
- package/dist/server/lib/tickets.js +16 -6
- package/dist/server/lib/tickets.js.map +1 -1
- package/dist/server/lib/types.js +45 -0
- package/dist/server/lib/types.js.map +1 -1
- package/dist/server/workers/followUp.js +76 -1
- package/dist/server/workers/followUp.js.map +1 -1
- package/dist/server/workers/repositoryGraphAnalyzer.js +3 -2
- package/dist/server/workers/repositoryGraphAnalyzer.js.map +1 -1
- package/dist/server/workers/repositoryGraphAnalyzerBootstrap.js +20 -0
- package/dist/server/workers/repositoryGraphAnalyzerBootstrap.js.map +1 -0
- package/dist/server/workers/review.js +292 -60
- package/dist/server/workers/review.js.map +1 -1
- package/dist/server/workers/specReview.js +17 -8
- package/dist/server/workers/specReview.js.map +1 -1
- package/dist/server/workers/specSession.js +33 -23
- package/dist/server/workers/specSession.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/ActivityView-C5OrI0uK.js +0 -1
- package/dist/client/assets/channel-CYsnLOcX.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CElk31Q4.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-lnAahwmt.js +0 -1
- package/dist/client/assets/index-1CokwSFm.css +0 -2
- package/dist/client/assets/index-DtefHOHC.js +0 -276
- 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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"}
|