@straiffi/archon 1.7.2 → 1.7.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-DTEenQas.js +1 -0
- package/dist/client/assets/GitHubActionsDialog-BKWHonUS.js +1 -0
- package/dist/client/assets/TestsDialog-cBaoffCs.js +4 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-Do9nbC8v.js → architectureDiagram-3BPJPVTR-BzzGotac.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-DGGOLHF8.js → blockDiagram-GPEHLZMM-DIcqLHKg.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-Bz7tQybs.js → c4Diagram-AAUBKEIU-Hc1Sqmhs.js} +1 -1
- package/dist/client/assets/channel-Cym17waa.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-CJO-GmWJ.js → chunk-2J33WTMH-CWSwjsgk.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-DPAVagpC.js → chunk-3OPIFGDE-BnX3DljN.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-Cof75Mu7.js → chunk-5ZQYHXKU-EyyJlI-d.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-COuPqQ8_.js → chunk-727SXJPM-Ci6CfxWj.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-CFj5KabW.js → chunk-AQP2D5EJ-RKZNsJTm.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-C4M6w5cT.js → chunk-CSCIHK7Q-DBf0Euoj.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-ByaiwVue.js → chunk-KSCS5N6A-BmLQI_2S.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-Cx5jeot9.js → chunk-L5ZTLDWV-DKwVAb8G.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-DmGtztud.js → chunk-LZXEDZCA-axotKkbz.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-i3yuspqL.js → chunk-ND2GUHAM-BBlJ4nXC.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-CQ4E_jP4.js → chunk-NZK2D7GU-BKJGoZZt.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-D2g4VDCd.js → chunk-O5CBEL6O-C-Ghigo1.js} +1 -1
- package/dist/client/assets/{chunk-WU5MYG2G-exIu-zQ2.js → chunk-WU5MYG2G-CCzVWYcd.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BcigvvIC.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-3AdSuE0N.js +1 -0
- package/dist/client/assets/{dagre-BM42HDAG-DvF75yLZ.js → dagre-BM42HDAG-rwIdPcjI.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-DFv0HxLL.js → diagram-2AECGRRQ-DJWxOQsg.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-C_LRir0-.js → diagram-5GNKFQAL-C-mQeFtd.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-DGZxRDRy.js → diagram-KO2AKTUF-BAu6u4sR.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-UXt0uti4.js → diagram-LMA3HP47-U6CbvBn0.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-CFbZS4n5.js → diagram-OG6HWLK6-DNTwFcs1.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-CfAwZDdf.js → erDiagram-TEJ5UH35-DaHX6Xw5.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-Cdgi5z3n.js → flowDiagram-I6XJVG4X-B9hKqL2l.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DOrkFkhu.js → ganttDiagram-6RSMTGT7-BQ1HPHVO.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-cEox0peD.js → gitGraphDiagram-PVQCEYII-BBRcsmMK.js} +1 -1
- package/dist/client/assets/index-CEMaJCPS.js +273 -0
- package/dist/client/assets/index-lWftq65U.css +2 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-gm51u2Nn.js → infoDiagram-5YYISTIA-DUoNiSGC.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CjnoOIja.js → ishikawaDiagram-YF4QCWOH-DJN1y2w8.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-Dlg4DsiO.js → journeyDiagram-JHISSGLW-BxLLMT70.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BU0XZaSd.js → kanban-definition-UN3LZRKU-BdCPistJ.js} +1 -1
- package/dist/client/assets/{line-Bert22-_.js → line-4mIgXsZd.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-BvQSGDmL.js → mermaid-parser.core-Pu1QGWJ-.js} +1 -1
- package/dist/client/assets/{mermaid.core--qSAHJRj.js → mermaid.core-DnH9DrgZ.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BgFIvWWD.js → mindmap-definition-RKZ34NQL-DqE4ba3C.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-DGcbXD0M.js → pieDiagram-4H26LBE5-Crjy9ejf.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-ClkBUeia.js → quadrantDiagram-W4KKPZXB-BUSZ2VB7.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-B8CwGToU.js → requirementDiagram-4Y6WPE33-CBhFKEoV.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DTk3jL6B.js → sankeyDiagram-5OEKKPKP-CgdbY41v.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BQVrcnKf.js → sequenceDiagram-3UESZ5HK-hkp_H7AE.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-DD4yMZPB.js → stateDiagram-AJRCARHV-C6x45RWp.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DVzPjRPN.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-BnCBVqcd.js → timeline-definition-PNZ67QCA-CjnZWttQ.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-BDmLMNXS.js → vennDiagram-CIIHVFJN-DU5ZyYju.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DSLuQiEv.js → wardleyDiagram-YWT4CUSO-CaCEnCB0.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-DAq_LA4r.js → xychartDiagram-2RQKCTM6-Ce3xa37U.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/db.js +471 -39
- package/dist/server/db.js.map +1 -1
- package/dist/server/index.js +1256 -214
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/agent.js +228 -71
- package/dist/server/lib/agent.js.map +1 -1
- package/dist/server/lib/agentRuns.js +205 -38
- package/dist/server/lib/agentRuns.js.map +1 -1
- package/dist/server/lib/automationProgression.js +464 -0
- package/dist/server/lib/automationProgression.js.map +1 -0
- package/dist/server/lib/automationReconciliation.js +498 -0
- package/dist/server/lib/automationReconciliation.js.map +1 -0
- package/dist/server/lib/automationStageDetails.js +232 -0
- package/dist/server/lib/automationStageDetails.js.map +1 -0
- package/dist/server/lib/buildOpenQuestionOperations.js +223 -0
- package/dist/server/lib/buildOpenQuestionOperations.js.map +1 -0
- package/dist/server/lib/buildOpenQuestions.js +44 -0
- package/dist/server/lib/buildOpenQuestions.js.map +1 -1
- package/dist/server/lib/buildSequences.js +130 -46
- package/dist/server/lib/buildSequences.js.map +1 -1
- package/dist/server/lib/bundleReviewOperations.js +82 -9
- package/dist/server/lib/bundleReviewOperations.js.map +1 -1
- package/dist/server/lib/chatOperations.js +31 -0
- package/dist/server/lib/chatOperations.js.map +1 -1
- package/dist/server/lib/executionReconciliation.js +518 -0
- package/dist/server/lib/executionReconciliation.js.map +1 -0
- package/dist/server/lib/executionRunRetention.js +141 -0
- package/dist/server/lib/executionRunRetention.js.map +1 -0
- package/dist/server/lib/executionRuns.js +1264 -0
- package/dist/server/lib/executionRuns.js.map +1 -0
- package/dist/server/lib/git.js +385 -6
- package/dist/server/lib/git.js.map +1 -1
- package/dist/server/lib/integrations/github.js +43 -0
- package/dist/server/lib/integrations/github.js.map +1 -1
- package/dist/server/lib/integrations/githubActions.js +1 -0
- package/dist/server/lib/integrations/githubActions.js.map +1 -1
- package/dist/server/lib/integrations/githubActionsSessions.js +337 -114
- package/dist/server/lib/integrations/githubActionsSessions.js.map +1 -1
- package/dist/server/lib/projectMemorySelections.js +7 -3
- package/dist/server/lib/projectMemorySelections.js.map +1 -1
- package/dist/server/lib/shutdown.js +2 -2
- package/dist/server/lib/shutdown.js.map +1 -1
- package/dist/server/lib/specArtifact.js +3 -0
- package/dist/server/lib/specArtifact.js.map +1 -1
- package/dist/server/lib/specFormatting.js +1 -1
- package/dist/server/lib/specFormatting.js.map +1 -1
- package/dist/server/lib/specOperations.js +31 -0
- package/dist/server/lib/specOperations.js.map +1 -1
- package/dist/server/lib/specReviewContext.js +44 -14
- package/dist/server/lib/specReviewContext.js.map +1 -1
- package/dist/server/lib/specReviewDraft.js +3 -2
- package/dist/server/lib/specReviewDraft.js.map +1 -1
- package/dist/server/lib/specReviewOperations.js +44 -7
- package/dist/server/lib/specReviewOperations.js.map +1 -1
- package/dist/server/lib/specReviewValidation.js +217 -0
- package/dist/server/lib/specReviewValidation.js.map +1 -0
- package/dist/server/lib/specReviews.js +30 -2
- package/dist/server/lib/specReviews.js.map +1 -1
- package/dist/server/lib/specs.js +18 -1
- package/dist/server/lib/specs.js.map +1 -1
- package/dist/server/lib/stageSnapshots.js +197 -0
- package/dist/server/lib/stageSnapshots.js.map +1 -0
- package/dist/server/lib/testSessions.js +164 -19
- package/dist/server/lib/testSessions.js.map +1 -1
- package/dist/server/lib/ticketAutomation.js +80 -4
- package/dist/server/lib/ticketAutomation.js.map +1 -1
- package/dist/server/lib/ticketAutomationCommit.js +466 -91
- package/dist/server/lib/ticketAutomationCommit.js.map +1 -1
- package/dist/server/lib/ticketFollowUpOperations.js +214 -20
- package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
- package/dist/server/lib/ticketRunOperations.js +51 -6
- package/dist/server/lib/ticketRunOperations.js.map +1 -1
- package/dist/server/lib/ticketUndo.js +77 -168
- package/dist/server/lib/ticketUndo.js.map +1 -1
- package/dist/server/lib/ticketWorkflowOperations.js +132 -28
- package/dist/server/lib/ticketWorkflowOperations.js.map +1 -1
- package/dist/server/lib/tickets.js +41 -27
- package/dist/server/lib/tickets.js.map +1 -1
- package/dist/server/lib/transcriptRuns.js +3 -3
- package/dist/server/lib/transcriptRuns.js.map +1 -1
- package/dist/server/lib/turnExecutionErrors.js +12 -0
- package/dist/server/lib/turnExecutionErrors.js.map +1 -0
- package/dist/server/lib/types.js +57 -1
- package/dist/server/lib/types.js.map +1 -1
- package/dist/server/workers/build.js +596 -184
- package/dist/server/workers/build.js.map +1 -1
- package/dist/server/workers/chat.js +261 -130
- package/dist/server/workers/chat.js.map +1 -1
- package/dist/server/workers/followUp.js +716 -203
- package/dist/server/workers/followUp.js.map +1 -1
- package/dist/server/workers/plan.js +527 -188
- package/dist/server/workers/plan.js.map +1 -1
- package/dist/server/workers/planFollowUp.js +231 -69
- package/dist/server/workers/planFollowUp.js.map +1 -1
- package/dist/server/workers/review.js +790 -297
- package/dist/server/workers/review.js.map +1 -1
- package/dist/server/workers/specReview.js +211 -45
- package/dist/server/workers/specReview.js.map +1 -1
- package/dist/server/workers/specSession.js +425 -252
- package/dist/server/workers/specSession.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/GitHubActionsDialog-DAD5REmY.js +0 -1
- package/dist/client/assets/TestsDialog-B5NVrroq.js +0 -4
- package/dist/client/assets/TicketChangesModal-By-_gTGd.js +0 -1
- package/dist/client/assets/channel-Dd5Len0X.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-B7KUg6r8.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CQm-z5c4.js +0 -1
- package/dist/client/assets/index-BHq6-Eir.js +0 -270
- package/dist/client/assets/index-BxTc5qQT.css +0 -2
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C8yO6POT.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionRuns.js","sourceRoot":"","sources":["../../../server/lib/executionRuns.ts"],"names":[],"mappings":"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"}
|
package/dist/server/lib/git.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { execFile, execFileSync } from 'child_process';
|
|
2
|
-
import {
|
|
2
|
+
import { createHash } from 'crypto';
|
|
3
|
+
import { cpSync, existsSync, lstatSync, mkdirSync, mkdtempSync, rmSync, statSync, symlinkSync } from 'fs';
|
|
3
4
|
import { cp as cpAsync, lstat as lstatAsync, mkdir as mkdirAsync, symlink as symlinkAsync } from 'fs/promises';
|
|
5
|
+
import { tmpdir } from 'os';
|
|
4
6
|
import { dirname, isAbsolute, join, relative, resolve } from 'path';
|
|
5
7
|
import db from '../db.js';
|
|
6
8
|
import { getProjectWorktreeSync } from './projects.js';
|
|
7
9
|
const PROJECT_BRANCH_REMOTE_REFRESH_TTL_MS = 30_000;
|
|
10
|
+
const MAX_GIT_OUTPUT_BYTES = 512 * 1024 * 1024;
|
|
8
11
|
const lastProjectBranchRemoteRefreshAt = new Map();
|
|
9
12
|
const resolveCurrentBranchName = (cwd) => {
|
|
10
13
|
try {
|
|
@@ -40,6 +43,24 @@ const runGitText = (args, cwd) => {
|
|
|
40
43
|
return execFileSync('git', args, {
|
|
41
44
|
cwd,
|
|
42
45
|
encoding: 'utf8',
|
|
46
|
+
maxBuffer: MAX_GIT_OUTPUT_BYTES,
|
|
47
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const runGitTextWithEnv = (args, cwd, env) => {
|
|
51
|
+
return execFileSync('git', args, {
|
|
52
|
+
cwd,
|
|
53
|
+
encoding: 'utf8',
|
|
54
|
+
env,
|
|
55
|
+
maxBuffer: MAX_GIT_OUTPUT_BYTES,
|
|
56
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const runGitBuffer = (args, cwd) => {
|
|
60
|
+
return execFileSync('git', args, {
|
|
61
|
+
cwd,
|
|
62
|
+
encoding: 'buffer',
|
|
63
|
+
maxBuffer: MAX_GIT_OUTPUT_BYTES,
|
|
43
64
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
44
65
|
});
|
|
45
66
|
};
|
|
@@ -63,6 +84,7 @@ const runGitTextAsync = (args, cwd) => new Promise((resolvePromise, reject) => {
|
|
|
63
84
|
execFile('git', args, {
|
|
64
85
|
cwd,
|
|
65
86
|
encoding: 'utf8',
|
|
87
|
+
maxBuffer: MAX_GIT_OUTPUT_BYTES,
|
|
66
88
|
}, (error, stdout, stderr) => {
|
|
67
89
|
if (error) {
|
|
68
90
|
const failed = error;
|
|
@@ -72,6 +94,7 @@ const runGitTextAsync = (args, cwd) => new Promise((resolvePromise, reject) => {
|
|
|
72
94
|
nextError.stdout = failed.stdout ?? stdout;
|
|
73
95
|
nextError.stderr = failed.stderr ?? stderr;
|
|
74
96
|
nextError.status = failed.status ?? (typeof failed.code === 'number' ? failed.code : undefined);
|
|
97
|
+
nextError.code = typeof failed.code === 'string' ? failed.code : undefined;
|
|
75
98
|
reject(nextError);
|
|
76
99
|
return;
|
|
77
100
|
}
|
|
@@ -81,6 +104,10 @@ const runGitTextAsync = (args, cwd) => new Promise((resolvePromise, reject) => {
|
|
|
81
104
|
});
|
|
82
105
|
});
|
|
83
106
|
});
|
|
107
|
+
const isGitOutputLimitError = (error) => {
|
|
108
|
+
const failed = error;
|
|
109
|
+
return failed.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER' || failed.message.includes('maxBuffer');
|
|
110
|
+
};
|
|
84
111
|
const runGitDiffTextAsync = async (args, cwd) => {
|
|
85
112
|
try {
|
|
86
113
|
return (await runGitTextAsync(args, cwd)).stdout;
|
|
@@ -551,7 +578,10 @@ const getDiffDataForBaseRef = (cwd, baseRef) => {
|
|
|
551
578
|
].join(''),
|
|
552
579
|
};
|
|
553
580
|
}
|
|
554
|
-
catch {
|
|
581
|
+
catch (error) {
|
|
582
|
+
if (isGitOutputLimitError(error)) {
|
|
583
|
+
throw error;
|
|
584
|
+
}
|
|
555
585
|
return {
|
|
556
586
|
files: [],
|
|
557
587
|
diff: '',
|
|
@@ -575,7 +605,10 @@ const getDiffDataForBaseRefAsync = async (cwd, baseRef) => {
|
|
|
575
605
|
diff: [trackedDiff, ...untrackedDiffs].join(''),
|
|
576
606
|
};
|
|
577
607
|
}
|
|
578
|
-
catch {
|
|
608
|
+
catch (error) {
|
|
609
|
+
if (isGitOutputLimitError(error)) {
|
|
610
|
+
throw error;
|
|
611
|
+
}
|
|
579
612
|
return {
|
|
580
613
|
files: [],
|
|
581
614
|
diff: '',
|
|
@@ -789,6 +822,14 @@ const listUntrackedFiles = (cwd) => {
|
|
|
789
822
|
.map(line => line.trim())
|
|
790
823
|
.filter(Boolean);
|
|
791
824
|
};
|
|
825
|
+
export const listGitSnapshotPaths = (cwd) => {
|
|
826
|
+
const output = runGitText(['ls-files', '--cached', '--others', '--exclude-standard', '-z'], cwd);
|
|
827
|
+
const paths = output.split('\0');
|
|
828
|
+
if (paths.at(-1) === '') {
|
|
829
|
+
paths.pop();
|
|
830
|
+
}
|
|
831
|
+
return [...new Set(paths.filter(Boolean))];
|
|
832
|
+
};
|
|
792
833
|
const listUntrackedFilesAsync = async (cwd) => {
|
|
793
834
|
return (await runGitTextAsync(['ls-files', '--others', '--exclude-standard'], cwd)).stdout
|
|
794
835
|
.split('\n')
|
|
@@ -855,7 +896,10 @@ const getSelectedDiffDataForCwd = (cwd, selectedPaths) => {
|
|
|
855
896
|
].join(''),
|
|
856
897
|
};
|
|
857
898
|
}
|
|
858
|
-
catch {
|
|
899
|
+
catch (error) {
|
|
900
|
+
if (isGitOutputLimitError(error)) {
|
|
901
|
+
throw error;
|
|
902
|
+
}
|
|
859
903
|
return {
|
|
860
904
|
files: [],
|
|
861
905
|
diff: '',
|
|
@@ -892,7 +936,10 @@ const getDiffDataForCwd = (cwd) => {
|
|
|
892
936
|
].join(''),
|
|
893
937
|
};
|
|
894
938
|
}
|
|
895
|
-
catch {
|
|
939
|
+
catch (error) {
|
|
940
|
+
if (isGitOutputLimitError(error)) {
|
|
941
|
+
throw error;
|
|
942
|
+
}
|
|
896
943
|
return {
|
|
897
944
|
files: [],
|
|
898
945
|
diff: '',
|
|
@@ -916,7 +963,10 @@ const getDiffDataForCwdAsync = async (cwd) => {
|
|
|
916
963
|
diff: [trackedDiff, ...untrackedDiffs].join(''),
|
|
917
964
|
};
|
|
918
965
|
}
|
|
919
|
-
catch {
|
|
966
|
+
catch (error) {
|
|
967
|
+
if (isGitOutputLimitError(error)) {
|
|
968
|
+
throw error;
|
|
969
|
+
}
|
|
920
970
|
return {
|
|
921
971
|
files: [],
|
|
922
972
|
diff: '',
|
|
@@ -1427,6 +1477,335 @@ export const getBoardWorktreeGitStatus = (branch, project = null) => {
|
|
|
1427
1477
|
const cwd = resolveWorktreePath(branch, project);
|
|
1428
1478
|
return getBoardGitStatus(cwd, branch, project);
|
|
1429
1479
|
};
|
|
1480
|
+
const normalizeAutomationSelectedPaths = (selectedPaths) => {
|
|
1481
|
+
const normalized = [...new Set(selectedPaths.map(path => path.trim()).filter(Boolean))];
|
|
1482
|
+
for (const path of normalized) {
|
|
1483
|
+
if (path.includes('\0') || path.startsWith('/') || path.split('/').includes('..')) {
|
|
1484
|
+
throw new Error(`Invalid repository-relative selected path: ${JSON.stringify(path)}`);
|
|
1485
|
+
}
|
|
1486
|
+
}
|
|
1487
|
+
return normalized;
|
|
1488
|
+
};
|
|
1489
|
+
export const getAutomationCommitPaths = (files) => [...new Set(files.flatMap(file => (file.original_path ? [file.original_path, file.path] : [file.path])))];
|
|
1490
|
+
const validateAutomationCommitSelection = (cwd, branch, project, selectedPaths) => {
|
|
1491
|
+
const status = getGitStatus(cwd, branch, project);
|
|
1492
|
+
const selectedPathSet = new Set(selectedPaths);
|
|
1493
|
+
const blockedReason = getStatusSelectionBlockedReason(status.files, selectedPathSet) ?? status.blocked_reason;
|
|
1494
|
+
if (blockedReason) {
|
|
1495
|
+
throw new Error(blockedReason);
|
|
1496
|
+
}
|
|
1497
|
+
const availablePaths = new Set(getAutomationCommitPaths(status.files));
|
|
1498
|
+
for (const path of selectedPaths) {
|
|
1499
|
+
if (!availablePaths.has(path)) {
|
|
1500
|
+
throw new Error(`"${path}" is no longer available to commit.`);
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
|
+
};
|
|
1504
|
+
const parseRawTreeDelta = (output) => {
|
|
1505
|
+
if (output.length === 0) {
|
|
1506
|
+
return [];
|
|
1507
|
+
}
|
|
1508
|
+
const fields = [];
|
|
1509
|
+
let start = 0;
|
|
1510
|
+
for (let index = 0; index < output.length; index += 1) {
|
|
1511
|
+
if (output[index] === 0) {
|
|
1512
|
+
fields.push(output.subarray(start, index));
|
|
1513
|
+
start = index + 1;
|
|
1514
|
+
}
|
|
1515
|
+
}
|
|
1516
|
+
if (start !== output.length || fields.length % 2 !== 0) {
|
|
1517
|
+
throw new Error('Git returned an incomplete raw tree delta');
|
|
1518
|
+
}
|
|
1519
|
+
const records = [];
|
|
1520
|
+
for (let index = 0; index < fields.length; index += 2) {
|
|
1521
|
+
const metadata = fields[index]?.toString('ascii') ?? '';
|
|
1522
|
+
const pathBytes = fields[index + 1];
|
|
1523
|
+
const match = /^:([0-7]{6}) ([0-7]{6}) ([a-f0-9]{40}|[a-f0-9]{64}) ([a-f0-9]{40}|[a-f0-9]{64}) ([A-Z])$/.exec(metadata);
|
|
1524
|
+
if (!match || !pathBytes || pathBytes.length === 0) {
|
|
1525
|
+
throw new Error('Git returned an invalid raw tree delta record');
|
|
1526
|
+
}
|
|
1527
|
+
const path = pathBytes.toString('utf8');
|
|
1528
|
+
if (!Buffer.from(path, 'utf8').equals(pathBytes) || path.startsWith('/') || path.split('/').includes('..')) {
|
|
1529
|
+
throw new Error('Git returned a non-normalized repository path');
|
|
1530
|
+
}
|
|
1531
|
+
records.push({
|
|
1532
|
+
oldMode: match[1],
|
|
1533
|
+
newMode: match[2],
|
|
1534
|
+
oldBlobId: match[3],
|
|
1535
|
+
newBlobId: match[4],
|
|
1536
|
+
status: match[5],
|
|
1537
|
+
path,
|
|
1538
|
+
});
|
|
1539
|
+
}
|
|
1540
|
+
return records;
|
|
1541
|
+
};
|
|
1542
|
+
const encodeLengthDelimitedField = (value) => {
|
|
1543
|
+
const bytes = Buffer.from(value, 'utf8');
|
|
1544
|
+
const length = Buffer.allocUnsafe(4);
|
|
1545
|
+
length.writeUInt32BE(bytes.length);
|
|
1546
|
+
return Buffer.concat([length, bytes]);
|
|
1547
|
+
};
|
|
1548
|
+
export const computeGitTreeDeltaDigest = (cwd, parentTreeish, intendedTreeish) => {
|
|
1549
|
+
const output = runGitBuffer([
|
|
1550
|
+
'diff-tree', '--raw', '-z', '--no-renames', '--no-commit-id', parentTreeish, intendedTreeish,
|
|
1551
|
+
], cwd);
|
|
1552
|
+
const normalizedRecords = parseRawTreeDelta(output).map(record => Buffer.concat([
|
|
1553
|
+
Buffer.from('archon-selected-content-v1\0', 'ascii'),
|
|
1554
|
+
encodeLengthDelimitedField(record.oldMode),
|
|
1555
|
+
encodeLengthDelimitedField(record.newMode),
|
|
1556
|
+
encodeLengthDelimitedField(record.oldBlobId),
|
|
1557
|
+
encodeLengthDelimitedField(record.newBlobId),
|
|
1558
|
+
encodeLengthDelimitedField(record.status),
|
|
1559
|
+
encodeLengthDelimitedField(record.path),
|
|
1560
|
+
]));
|
|
1561
|
+
normalizedRecords.sort(Buffer.compare);
|
|
1562
|
+
const hash = createHash('sha256');
|
|
1563
|
+
for (const record of normalizedRecords) {
|
|
1564
|
+
hash.update(record);
|
|
1565
|
+
}
|
|
1566
|
+
return `sha256:${hash.digest('hex')}`;
|
|
1567
|
+
};
|
|
1568
|
+
export const getGitHeadIdentity = (cwd) => {
|
|
1569
|
+
const [headSha, treeSha] = runGitText(['show', '-s', '--format=%H%n%T', 'HEAD'], cwd).trim().split('\n');
|
|
1570
|
+
if (!headSha || !treeSha) {
|
|
1571
|
+
throw new Error('Git HEAD identity was incomplete');
|
|
1572
|
+
}
|
|
1573
|
+
return { headSha, treeSha };
|
|
1574
|
+
};
|
|
1575
|
+
export const getGitIndexTreeSha = (cwd) => runGitText(['write-tree'], cwd).trim();
|
|
1576
|
+
const normalizeGitRemoteUrl = (value, cwd) => {
|
|
1577
|
+
const trimmed = value.trim();
|
|
1578
|
+
const scpLike = /^(?:[^@/\s]+@)?([^:/\s]+):(.+)$/.exec(trimmed);
|
|
1579
|
+
if (scpLike && !trimmed.includes('://')) {
|
|
1580
|
+
const host = scpLike[1].toLowerCase();
|
|
1581
|
+
const path = scpLike[2].replace(/^\/+|\/+$/g, '').replace(/\.git$/i, '');
|
|
1582
|
+
return `${host}/${path}`;
|
|
1583
|
+
}
|
|
1584
|
+
try {
|
|
1585
|
+
const url = new URL(trimmed);
|
|
1586
|
+
const host = url.hostname.toLowerCase();
|
|
1587
|
+
const port = url.port ? `:${url.port}` : '';
|
|
1588
|
+
const path = decodeURIComponent(url.pathname).replace(/^\/+|\/+$/g, '').replace(/\.git$/i, '');
|
|
1589
|
+
return `${host}${port}/${path}`;
|
|
1590
|
+
}
|
|
1591
|
+
catch {
|
|
1592
|
+
return resolve(cwd, trimmed).replace(/\/+$/g, '');
|
|
1593
|
+
}
|
|
1594
|
+
};
|
|
1595
|
+
export const getAutomationRemoteIdentity = (cwd) => {
|
|
1596
|
+
const fetchUrl = runGitText(['remote', 'get-url', 'origin'], cwd).trim();
|
|
1597
|
+
const pushUrl = runGitText(['remote', 'get-url', '--push', 'origin'], cwd).trim();
|
|
1598
|
+
if (!fetchUrl || !pushUrl) {
|
|
1599
|
+
throw new Error('Automation origin remote identity is unavailable');
|
|
1600
|
+
}
|
|
1601
|
+
const fetchIdentity = normalizeGitRemoteUrl(fetchUrl, cwd);
|
|
1602
|
+
const pushIdentity = normalizeGitRemoteUrl(pushUrl, cwd);
|
|
1603
|
+
if (fetchIdentity !== pushIdentity) {
|
|
1604
|
+
throw new Error('Automation requires origin fetch and push URLs to identify the same repository');
|
|
1605
|
+
}
|
|
1606
|
+
return `sha256:${createHash('sha256').update(fetchIdentity, 'utf8').digest('hex')}`;
|
|
1607
|
+
};
|
|
1608
|
+
export const prepareAutomationCommit = (cwd, branch, project, selectedPaths) => {
|
|
1609
|
+
const normalizedPaths = normalizeAutomationSelectedPaths(selectedPaths);
|
|
1610
|
+
if (normalizedPaths.length === 0) {
|
|
1611
|
+
throw new Error('Select at least one file to commit.');
|
|
1612
|
+
}
|
|
1613
|
+
validateAutomationCommitSelection(cwd, branch, project, normalizedPaths);
|
|
1614
|
+
const preActionHeadSha = runGitText(['rev-parse', 'HEAD'], cwd).trim();
|
|
1615
|
+
const preActionIndexTreeSha = getGitIndexTreeSha(cwd);
|
|
1616
|
+
const temporaryDirectory = mkdtempSync(join(tmpdir(), 'archon-git-index-'));
|
|
1617
|
+
const indexPath = join(temporaryDirectory, 'index');
|
|
1618
|
+
const env = { ...process.env, GIT_INDEX_FILE: indexPath };
|
|
1619
|
+
try {
|
|
1620
|
+
runGitTextWithEnv(['read-tree', preActionHeadSha], cwd, env);
|
|
1621
|
+
runGitTextWithEnv(['add', '-A', '--', ...normalizedPaths], cwd, env);
|
|
1622
|
+
const intendedTreeSha = runGitTextWithEnv(['write-tree'], cwd, env).trim();
|
|
1623
|
+
return {
|
|
1624
|
+
preActionHeadSha,
|
|
1625
|
+
preActionIndexTreeSha,
|
|
1626
|
+
intendedTreeSha,
|
|
1627
|
+
selectedContentDigest: computeGitTreeDeltaDigest(cwd, preActionHeadSha, intendedTreeSha),
|
|
1628
|
+
selectedPaths: normalizedPaths,
|
|
1629
|
+
};
|
|
1630
|
+
}
|
|
1631
|
+
finally {
|
|
1632
|
+
rmSync(temporaryDirectory, { recursive: true, force: true });
|
|
1633
|
+
}
|
|
1634
|
+
};
|
|
1635
|
+
const repairAutomationCommitIndex = (cwd, commitSha, commitTreeSha, preActionIndexTreeSha) => {
|
|
1636
|
+
if (runGitText(['rev-parse', 'HEAD'], cwd).trim() !== commitSha) {
|
|
1637
|
+
return { ok: false, reason: 'HEAD changed before the automation index could be repaired' };
|
|
1638
|
+
}
|
|
1639
|
+
const indexTreeSha = getGitIndexTreeSha(cwd);
|
|
1640
|
+
if (indexTreeSha === commitTreeSha) {
|
|
1641
|
+
return { ok: true };
|
|
1642
|
+
}
|
|
1643
|
+
if (indexTreeSha !== preActionIndexTreeSha) {
|
|
1644
|
+
return { ok: false, reason: 'the real index changed after automation commit intent was persisted' };
|
|
1645
|
+
}
|
|
1646
|
+
runGitText(['read-tree', '--reset', commitSha], cwd);
|
|
1647
|
+
if (runGitText(['rev-parse', 'HEAD'], cwd).trim() !== commitSha
|
|
1648
|
+
|| getGitIndexTreeSha(cwd) !== commitTreeSha) {
|
|
1649
|
+
return { ok: false, reason: 'the real index could not be repaired to the automation commit' };
|
|
1650
|
+
}
|
|
1651
|
+
return { ok: true };
|
|
1652
|
+
};
|
|
1653
|
+
export const commitPreparedAutomationChanges = async (cwd, branch, project, message, prepared) => {
|
|
1654
|
+
const normalizedMessage = message.trim();
|
|
1655
|
+
if (!normalizedMessage) {
|
|
1656
|
+
throw new Error('Commit message is required.');
|
|
1657
|
+
}
|
|
1658
|
+
if (runGitText(['rev-parse', 'HEAD'], cwd).trim() !== prepared.preActionHeadSha) {
|
|
1659
|
+
throw new Error('HEAD changed after automation commit intent was prepared');
|
|
1660
|
+
}
|
|
1661
|
+
validateAutomationCommitSelection(cwd, branch, project, prepared.selectedPaths);
|
|
1662
|
+
const current = prepareAutomationCommit(cwd, branch, project, prepared.selectedPaths);
|
|
1663
|
+
if (current.preActionHeadSha !== prepared.preActionHeadSha
|
|
1664
|
+
|| current.preActionIndexTreeSha !== prepared.preActionIndexTreeSha
|
|
1665
|
+
|| current.intendedTreeSha !== prepared.intendedTreeSha
|
|
1666
|
+
|| current.selectedContentDigest !== prepared.selectedContentDigest) {
|
|
1667
|
+
throw new Error('Selected contents changed after automation commit intent was persisted');
|
|
1668
|
+
}
|
|
1669
|
+
const branchRef = runGitText(['symbolic-ref', '--quiet', 'HEAD'], cwd).trim();
|
|
1670
|
+
if (branchRef !== `refs/heads/${branch}`) {
|
|
1671
|
+
throw new Error('Automation commit branch changed after intent was prepared');
|
|
1672
|
+
}
|
|
1673
|
+
const temporaryDirectory = mkdtempSync(join(tmpdir(), 'archon-git-index-'));
|
|
1674
|
+
const indexPath = join(temporaryDirectory, 'index');
|
|
1675
|
+
const env = { ...process.env, GIT_INDEX_FILE: indexPath };
|
|
1676
|
+
try {
|
|
1677
|
+
runGitTextWithEnv(['read-tree', prepared.preActionHeadSha], cwd, env);
|
|
1678
|
+
runGitTextWithEnv(['add', '-A', '--', ...prepared.selectedPaths], cwd, env);
|
|
1679
|
+
if (runGitTextWithEnv(['write-tree'], cwd, env).trim() !== prepared.intendedTreeSha) {
|
|
1680
|
+
throw new Error('Selected contents changed before the automation commit could run');
|
|
1681
|
+
}
|
|
1682
|
+
runGitTextWithEnv(['commit', '-m', normalizedMessage], cwd, env);
|
|
1683
|
+
const commitSha = runGitText(['rev-parse', 'HEAD'], cwd).trim();
|
|
1684
|
+
const output = runGitBuffer(['show', '-s', '--format=%H%x00%P%x00%T%x00%B', commitSha], cwd);
|
|
1685
|
+
const fields = output.toString('utf8').split('\0');
|
|
1686
|
+
const observedCommitSha = fields[0]?.trim();
|
|
1687
|
+
const parentSha = fields[1]?.trim();
|
|
1688
|
+
const treeSha = fields[2]?.trim();
|
|
1689
|
+
const observedMessage = fields.slice(3).join('\0');
|
|
1690
|
+
if (!observedCommitSha || !parentSha || !treeSha) {
|
|
1691
|
+
throw new Error('Observed automation commit identity was incomplete');
|
|
1692
|
+
}
|
|
1693
|
+
const indexRepair = repairAutomationCommitIndex(cwd, commitSha, treeSha, prepared.preActionIndexTreeSha);
|
|
1694
|
+
if (!indexRepair.ok) {
|
|
1695
|
+
throw new Error(`Automation commit index repair failed: ${indexRepair.reason}`);
|
|
1696
|
+
}
|
|
1697
|
+
if (observedCommitSha !== commitSha
|
|
1698
|
+
|| parentSha !== prepared.preActionHeadSha
|
|
1699
|
+
|| treeSha !== prepared.intendedTreeSha
|
|
1700
|
+
|| digestCommitMessage(observedMessage) !== digestCommitMessage(normalizedMessage)) {
|
|
1701
|
+
throw new Error('Observed automation commit does not match its persisted intent');
|
|
1702
|
+
}
|
|
1703
|
+
return { commitSha, parentSha, treeSha };
|
|
1704
|
+
}
|
|
1705
|
+
finally {
|
|
1706
|
+
rmSync(temporaryDirectory, { recursive: true, force: true });
|
|
1707
|
+
}
|
|
1708
|
+
};
|
|
1709
|
+
export const pushAutomationTarget = async (cwd, branch, targetSha, expectedOriginIdentity) => {
|
|
1710
|
+
const branchRef = runGitText(['symbolic-ref', '--quiet', 'HEAD'], cwd).trim();
|
|
1711
|
+
if (branchRef !== `refs/heads/${branch}`) {
|
|
1712
|
+
throw new Error('Automation push branch no longer matches its persisted target');
|
|
1713
|
+
}
|
|
1714
|
+
if (runGitText(['rev-parse', 'HEAD'], cwd).trim() !== targetSha) {
|
|
1715
|
+
throw new Error('HEAD changed after push intent was persisted');
|
|
1716
|
+
}
|
|
1717
|
+
if (expectedOriginIdentity && getAutomationRemoteIdentity(cwd) !== expectedOriginIdentity) {
|
|
1718
|
+
throw new Error('Automation origin remote changed after push intent was persisted');
|
|
1719
|
+
}
|
|
1720
|
+
await runGitTextAsync(['push', '-u', 'origin', `${targetSha}:refs/heads/${branch}`], cwd);
|
|
1721
|
+
if (expectedOriginIdentity && getAutomationRemoteIdentity(cwd) !== expectedOriginIdentity) {
|
|
1722
|
+
throw new Error('Automation origin remote changed while push was running');
|
|
1723
|
+
}
|
|
1724
|
+
};
|
|
1725
|
+
const digestCommitMessage = (message) => {
|
|
1726
|
+
const normalized = message.replace(/\r\n/g, '\n').replace(/\r/g, '\n').replace(/\n+$/, '');
|
|
1727
|
+
return `sha256:${createHash('sha256').update(normalized, 'utf8').digest('hex')}`;
|
|
1728
|
+
};
|
|
1729
|
+
export const reconcileAutomationCommit = (cwd, intent) => {
|
|
1730
|
+
try {
|
|
1731
|
+
const head = runGitText(['rev-parse', 'HEAD'], cwd).trim();
|
|
1732
|
+
if (head === intent.preActionHeadSha) {
|
|
1733
|
+
return { outcome: 'absent' };
|
|
1734
|
+
}
|
|
1735
|
+
try {
|
|
1736
|
+
runGitText(['merge-base', '--is-ancestor', intent.preActionHeadSha, head], cwd);
|
|
1737
|
+
}
|
|
1738
|
+
catch (error) {
|
|
1739
|
+
const status = error.status;
|
|
1740
|
+
return status === 1
|
|
1741
|
+
? { outcome: 'ambiguous', reason: 'pre-action HEAD is not an ancestor of current HEAD' }
|
|
1742
|
+
: { outcome: 'ambiguous', reason: 'commit ancestry could not be observed' };
|
|
1743
|
+
}
|
|
1744
|
+
const candidates = runGitText([
|
|
1745
|
+
'rev-list', '--ancestry-path', '--reverse', '--max-count=101', `${intent.preActionHeadSha}..${head}`,
|
|
1746
|
+
], cwd).trim().split('\n').filter(Boolean);
|
|
1747
|
+
if (candidates.length > 100) {
|
|
1748
|
+
return { outcome: 'ambiguous', reason: 'commit candidate search exceeded 100 commits' };
|
|
1749
|
+
}
|
|
1750
|
+
const matches = [];
|
|
1751
|
+
for (const commitSha of candidates) {
|
|
1752
|
+
const output = runGitBuffer(['show', '-s', '--format=%P%x00%T%x00%B', commitSha], cwd);
|
|
1753
|
+
const first = output.indexOf(0);
|
|
1754
|
+
const second = output.indexOf(0, first + 1);
|
|
1755
|
+
if (first < 0 || second < 0) {
|
|
1756
|
+
return { outcome: 'ambiguous', reason: 'candidate commit identity was incomplete' };
|
|
1757
|
+
}
|
|
1758
|
+
const parentSha = output.subarray(0, first).toString('ascii').trim();
|
|
1759
|
+
const treeSha = output.subarray(first + 1, second).toString('ascii').trim();
|
|
1760
|
+
const message = output.subarray(second + 1).toString('utf8');
|
|
1761
|
+
if (parentSha === intent.preActionHeadSha
|
|
1762
|
+
&& treeSha === intent.intendedTreeSha
|
|
1763
|
+
&& digestCommitMessage(message) === intent.commitMessageDigest
|
|
1764
|
+
&& computeGitTreeDeltaDigest(cwd, parentSha, treeSha) === intent.selectedContentDigest) {
|
|
1765
|
+
matches.push({ commitSha, parentSha, treeSha });
|
|
1766
|
+
}
|
|
1767
|
+
}
|
|
1768
|
+
if (matches.length === 1 && candidates.length === 1 && matches[0]?.commitSha === head) {
|
|
1769
|
+
return { outcome: 'matched', result: matches[0] };
|
|
1770
|
+
}
|
|
1771
|
+
if (matches.length === 1) {
|
|
1772
|
+
return { outcome: 'ambiguous', reason: 'additional commits followed the persisted commit intent' };
|
|
1773
|
+
}
|
|
1774
|
+
return matches.length === 0
|
|
1775
|
+
? { outcome: 'ambiguous', reason: 'intervening commits did not match persisted commit intent' }
|
|
1776
|
+
: { outcome: 'ambiguous', reason: 'multiple commits matched persisted commit intent' };
|
|
1777
|
+
}
|
|
1778
|
+
catch {
|
|
1779
|
+
return { outcome: 'ambiguous', reason: 'commit candidates could not be observed' };
|
|
1780
|
+
}
|
|
1781
|
+
};
|
|
1782
|
+
export const fetchRemoteBranchState = async (cwd, branch, expectedOriginIdentity) => {
|
|
1783
|
+
if (expectedOriginIdentity && getAutomationRemoteIdentity(cwd) !== expectedOriginIdentity) {
|
|
1784
|
+
throw new Error('Automation origin remote changed after push intent was persisted');
|
|
1785
|
+
}
|
|
1786
|
+
let output;
|
|
1787
|
+
try {
|
|
1788
|
+
output = await runGitTextAsync(['ls-remote', '--exit-code', 'origin', `refs/heads/${branch}`], cwd);
|
|
1789
|
+
}
|
|
1790
|
+
catch (error) {
|
|
1791
|
+
if (error.status === 2) {
|
|
1792
|
+
if (expectedOriginIdentity && getAutomationRemoteIdentity(cwd) !== expectedOriginIdentity) {
|
|
1793
|
+
throw new Error('Automation origin remote changed while observing push state');
|
|
1794
|
+
}
|
|
1795
|
+
return { state: 'absent' };
|
|
1796
|
+
}
|
|
1797
|
+
throw error;
|
|
1798
|
+
}
|
|
1799
|
+
const [sha, ref, extra] = output.stdout.trim().split(/\s+/);
|
|
1800
|
+
if (!sha || !ref || extra || ref !== `refs/heads/${branch}` || !/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(sha)) {
|
|
1801
|
+
throw new Error('Remote branch observation was incomplete');
|
|
1802
|
+
}
|
|
1803
|
+
await runGitTextAsync(['fetch', '--quiet', '--no-tags', 'origin', sha], cwd);
|
|
1804
|
+
if (expectedOriginIdentity && getAutomationRemoteIdentity(cwd) !== expectedOriginIdentity) {
|
|
1805
|
+
throw new Error('Automation origin remote changed while observing push state');
|
|
1806
|
+
}
|
|
1807
|
+
return { state: 'observed', sha };
|
|
1808
|
+
};
|
|
1430
1809
|
export const commitGitChanges = async (cwd, branch, project, message, selectedPaths) => {
|
|
1431
1810
|
const normalizedMessage = message.trim();
|
|
1432
1811
|
if (!normalizedMessage) {
|