@straiffi/archon 1.11.8 → 1.11.9
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-BKLYfPXE.js → ActivityView-CgC2rnNq.js} +1 -1
- package/dist/client/assets/{GitHubActionsDialog-yqqwcP8z.js → GitHubActionsDialog-XXGwm-bw.js} +1 -1
- package/dist/client/assets/{VerificationDialog-DhyIDs1V.js → VerificationDialog-C8cDKxSG.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-5krjaOU4.js → architectureDiagram-3BPJPVTR-BhdIU_o9.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-Duo2q2gn.js → blockDiagram-GPEHLZMM-CfKNdNso.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-D2lxLmwB.js → c4Diagram-AAUBKEIU-BYOg4iNZ.js} +1 -1
- package/dist/client/assets/channel-4wFtrIng.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-Dbo5lbSs.js → chunk-2J33WTMH-JmBb9p2l.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-mjZrNxCg.js → chunk-3OPIFGDE-CuCn8uDI.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-C2nUnqLh.js → chunk-5ZQYHXKU-DaGbZz7d.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-7eUgm0cn.js → chunk-727SXJPM-D7UwchWL.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DouWpaE0.js → chunk-AQP2D5EJ-CxYpis5S.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-DesC0Fd7.js → chunk-CSCIHK7Q-DF4Jo5lo.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-DAsFowjn.js → chunk-KSCS5N6A-Bul_8QaO.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-w7V9r0Cw.js → chunk-L5ZTLDWV-BQvBZt_1.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-BCnxdvaJ.js → chunk-LZXEDZCA-BPsejGww.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-DO8HdZCX.js → chunk-ND2GUHAM-D8AX2HAv.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-37Rbzvm9.js → chunk-NZK2D7GU-CE21a8CK.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-DTjB0GGI.js → chunk-O5CBEL6O-vZQ8YCvm.js} +1 -1
- package/dist/client/assets/{chunk-WU5MYG2G-CAonpz-x.js → chunk-WU5MYG2G-BpBNiw0j.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DNAwGSF5.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-cskOKMdS.js +1 -0
- package/dist/client/assets/{dagre-BM42HDAG-DDET9pbe.js → dagre-BM42HDAG-BqEPuJwq.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-r_bu5Cgo.js → diagram-2AECGRRQ-BWLSNrm2.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-QlPCzkUJ.js → diagram-5GNKFQAL-CUNUlEy4.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-D5SzFOzP.js → diagram-KO2AKTUF-CgZcDZ0J.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-BJcWw3_s.js → diagram-LMA3HP47-DTfMha7_.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-CpsR9p94.js → diagram-OG6HWLK6-ClO5evmB.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-Dq-K6YrY.js → erDiagram-TEJ5UH35-BRW1HE33.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-39hKkH4n.js → flowDiagram-I6XJVG4X-tC2xALm9.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DaeBYOLz.js → ganttDiagram-6RSMTGT7-D7Bu6hss.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CCeo9Czy.js → gitGraphDiagram-PVQCEYII-Cx1uYcGX.js} +1 -1
- package/dist/client/assets/index-CArcyEjQ.js +287 -0
- package/dist/client/assets/index-D_brbG-0.css +2 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-jgHH1Ta7.js → infoDiagram-5YYISTIA-bKT-ZR4K.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-gYPsFHRd.js → ishikawaDiagram-YF4QCWOH-CrUBKkGR.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-C5m8h46L.js → journeyDiagram-JHISSGLW-CCmXkk8M.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-rag4UxAB.js → kanban-definition-UN3LZRKU-BmcV7QM-.js} +1 -1
- package/dist/client/assets/{line-CAWxQrG3.js → line-C5oH-IfR.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-C5Hj2V3U.js → mermaid-parser.core-BFyFUctK.js} +1 -1
- package/dist/client/assets/{mermaid.core-BxRoDLxv.js → mermaid.core-DXkHU1mX.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BUV37aab.js → mindmap-definition-RKZ34NQL-DhErnbAy.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-CMwVVhpZ.js → pieDiagram-4H26LBE5-B8pkGeer.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DYHRB097.js → quadrantDiagram-W4KKPZXB-BkYWz3t_.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-BLtNTWtR.js → requirementDiagram-4Y6WPE33-DB6jC89I.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Bcd-UVHZ.js → sankeyDiagram-5OEKKPKP-BeAslLcb.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Die4-puP.js → sequenceDiagram-3UESZ5HK-BgXC1aKi.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-TBbOyQST.js → stateDiagram-AJRCARHV-Dj3Qlk0A.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-I1Ry2lsa.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-CZ3E6e1X.js → timeline-definition-PNZ67QCA-C8ncLV_K.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CY_kofMf.js → vennDiagram-CIIHVFJN-jgBSpqC1.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-TzBIV1Er.js → wardleyDiagram-YWT4CUSO-DfGD5Kys.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-BTvKU2GO.js → xychartDiagram-2RQKCTM6-Dyk41E2n.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/index.js +124 -63
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/agent.js +23 -7
- package/dist/server/lib/agent.js.map +1 -1
- package/dist/server/lib/agentProvider.js +62 -15
- package/dist/server/lib/agentProvider.js.map +1 -1
- package/dist/server/lib/codexAgentProvider.js +186 -123
- package/dist/server/lib/codexAgentProvider.js.map +1 -1
- package/dist/server/lib/diffExplanation.js +485 -0
- package/dist/server/lib/diffExplanation.js.map +1 -0
- package/dist/server/lib/diffExplanationJobs.js +605 -0
- package/dist/server/lib/diffExplanationJobs.js.map +1 -0
- package/dist/server/lib/diffExplanationRoutes.js +236 -0
- package/dist/server/lib/diffExplanationRoutes.js.map +1 -0
- package/dist/server/lib/dockerSandboxExecutionEnvironment.js +27 -4
- package/dist/server/lib/dockerSandboxExecutionEnvironment.js.map +1 -1
- package/dist/server/lib/dockerSandboxReleaseProfiles.js +1 -1
- package/dist/server/lib/dockerSandboxReleaseProfiles.js.map +1 -1
- package/dist/server/lib/executionTargets.js +1 -1
- package/dist/server/lib/executionTargets.js.map +1 -1
- package/dist/server/lib/git.js +205 -35
- package/dist/server/lib/git.js.map +1 -1
- package/dist/server/lib/lightweightPrompt.js +284 -52
- package/dist/server/lib/lightweightPrompt.js.map +1 -1
- package/dist/server/lib/oneShotCancellation.js +54 -0
- package/dist/server/lib/oneShotCancellation.js.map +1 -0
- package/dist/server/lib/opencodeExecutionReliability.js +46 -2
- package/dist/server/lib/opencodeExecutionReliability.js.map +1 -1
- package/dist/server/lib/projectMemoryScan.js +3 -46
- package/dist/server/lib/projectMemoryScan.js.map +1 -1
- package/dist/server/lib/promptDiffSafety.js +53 -0
- package/dist/server/lib/promptDiffSafety.js.map +1 -0
- package/dist/server/lib/repositorySecrets.js +69 -0
- package/dist/server/lib/repositorySecrets.js.map +1 -0
- package/dist/server/lib/tickets.js +3 -2
- package/dist/server/lib/tickets.js.map +1 -1
- package/dist/server/lib/types.js.map +1 -1
- package/dist/server/lib/unifiedDiff.js +459 -0
- package/dist/server/lib/unifiedDiff.js.map +1 -0
- package/dist/server/lib/workspaceDiff.js +156 -0
- package/dist/server/lib/workspaceDiff.js.map +1 -0
- package/dist/server/lib/workspaceDiffRoutes.js +63 -0
- package/dist/server/lib/workspaceDiffRoutes.js.map +1 -0
- package/dist/server/lib/workspaceTargets.js +88 -0
- package/dist/server/lib/workspaceTargets.js.map +1 -0
- package/dist/server/workers/chat.js +71 -1
- package/dist/server/workers/chat.js.map +1 -1
- package/dist/server/workers/plan.js +24 -2
- package/dist/server/workers/plan.js.map +1 -1
- package/dist/server/workers/review.js +19 -13
- package/dist/server/workers/review.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/channel-Cf2U7nU4.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CK8VsU-L.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-RvySOEwt.js +0 -1
- package/dist/client/assets/index-B9-M1vEw.js +0 -287
- package/dist/client/assets/index-CbYT3N3U.css +0 -2
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BRotXz7h.js +0 -1
|
@@ -1,17 +1,66 @@
|
|
|
1
1
|
import { requireExecutableAgent } from './agentCatalog.js';
|
|
2
2
|
import { runOneShotAgentForTool } from './oneShotAgent.js';
|
|
3
|
+
import { getAbortReason, observeChildProcessClose, OneShotCancellationTerminationError, terminateOneShotProcess, } from './oneShotCancellation.js';
|
|
3
4
|
import { createExecutionRun, transitionExecutionRun } from './executionRuns.js';
|
|
4
5
|
import { createExecutionProfileSelectionMetadata } from './executionRunAuthority.js';
|
|
5
6
|
import { createExecutionTargetKey, resolveExecutionTarget } from './executionTargets.js';
|
|
6
7
|
import { resolveWorkloadExecutionEnvironment, WorkloadExecutionEnvironmentFailure } from './workloadExecutionEnvironment.js';
|
|
7
8
|
import { createWorkspaceProcessEnvironment } from './workspaceProcessEnvironment.js';
|
|
9
|
+
class LightweightPromptShutdownError extends Error {
|
|
10
|
+
constructor() {
|
|
11
|
+
super('Server shutdown interrupted the helper prompt.');
|
|
12
|
+
this.name = 'LightweightPromptShutdownError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
8
15
|
const LIGHTWEIGHT_PROMPT_LEASE_WAIT_TIMEOUT_MS = 30 * 60 * 1000;
|
|
9
16
|
const LIGHTWEIGHT_PROMPT_LEASE_RETRY_MS = 100;
|
|
17
|
+
const LIGHTWEIGHT_PROMPT_CLEANUP_TIMEOUT_MS = 10_000;
|
|
10
18
|
const lightweightPromptQueues = new Map();
|
|
11
19
|
const runningLightweightPromptQueues = new Set();
|
|
20
|
+
const activeLightweightPrompts = new Set();
|
|
12
21
|
let lightweightPromptSequence = 0;
|
|
13
|
-
|
|
14
|
-
|
|
22
|
+
let lightweightPromptAdmissionsOpen = false;
|
|
23
|
+
const throwIfAborted = (signal) => {
|
|
24
|
+
if (signal?.aborted) {
|
|
25
|
+
throw getAbortReason(signal);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const createCleanupSignal = (signal) => {
|
|
29
|
+
const timeoutSignal = AbortSignal.timeout(LIGHTWEIGHT_PROMPT_CLEANUP_TIMEOUT_MS);
|
|
30
|
+
return signal && !signal.aborted ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal;
|
|
31
|
+
};
|
|
32
|
+
const createAcquisitionSignal = (signal) => {
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
const onAbort = () => controller.abort(getAbortReason(signal));
|
|
35
|
+
if (signal?.aborted) {
|
|
36
|
+
onAbort();
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
signal: controller.signal,
|
|
43
|
+
dispose: () => signal?.removeEventListener('abort', onAbort),
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
const waitForLeaseRetry = (signal) => new Promise((resolve, reject) => {
|
|
47
|
+
if (signal?.aborted) {
|
|
48
|
+
reject(getAbortReason(signal));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const finish = (error) => {
|
|
52
|
+
clearTimeout(timer);
|
|
53
|
+
signal?.removeEventListener('abort', onAbort);
|
|
54
|
+
if (error !== undefined) {
|
|
55
|
+
reject(error);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
resolve();
|
|
59
|
+
};
|
|
60
|
+
const onAbort = () => finish(getAbortReason(signal));
|
|
61
|
+
const timer = setTimeout(() => finish(), LIGHTWEIGHT_PROMPT_LEASE_RETRY_MS);
|
|
62
|
+
timer.unref?.();
|
|
63
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
15
64
|
});
|
|
16
65
|
const getPromptPriority = (initiatedBy) => {
|
|
17
66
|
if (initiatedBy === 'user') {
|
|
@@ -40,25 +89,55 @@ const drainLightweightPromptQueue = async (key) => {
|
|
|
40
89
|
runningLightweightPromptQueues.delete(key);
|
|
41
90
|
}
|
|
42
91
|
};
|
|
43
|
-
const enqueueLightweightPrompt = (key, priority, task) => new Promise((resolve, reject) => {
|
|
92
|
+
const enqueueLightweightPrompt = (key, priority, signal, task, onQueuedAbort) => new Promise((resolve, reject) => {
|
|
93
|
+
if (signal?.aborted) {
|
|
94
|
+
onQueuedAbort();
|
|
95
|
+
reject(getAbortReason(signal));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
44
98
|
const queue = lightweightPromptQueues.get(key) ?? [];
|
|
45
|
-
|
|
99
|
+
let queued = true;
|
|
100
|
+
const cleanup = () => signal?.removeEventListener('abort', onAbort);
|
|
101
|
+
const pending = {
|
|
46
102
|
priority,
|
|
47
103
|
sequence: lightweightPromptSequence++,
|
|
48
104
|
run: async () => {
|
|
105
|
+
queued = false;
|
|
106
|
+
cleanup();
|
|
49
107
|
try {
|
|
108
|
+
throwIfAborted(signal);
|
|
50
109
|
resolve(await task());
|
|
51
110
|
}
|
|
52
111
|
catch (error) {
|
|
53
112
|
reject(error);
|
|
54
113
|
}
|
|
55
114
|
},
|
|
56
|
-
}
|
|
115
|
+
};
|
|
116
|
+
const onAbort = () => {
|
|
117
|
+
if (!queued) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
queued = false;
|
|
121
|
+
cleanup();
|
|
122
|
+
const index = queue.indexOf(pending);
|
|
123
|
+
if (index >= 0) {
|
|
124
|
+
queue.splice(index, 1);
|
|
125
|
+
}
|
|
126
|
+
onQueuedAbort();
|
|
127
|
+
reject(getAbortReason(signal));
|
|
128
|
+
};
|
|
129
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
130
|
+
queue.push(pending);
|
|
57
131
|
lightweightPromptQueues.set(key, queue);
|
|
58
132
|
void drainLightweightPromptQueue(key);
|
|
59
133
|
});
|
|
60
|
-
const runExecutionContextCommand = (context, command, args) => new Promise((resolve, reject) => {
|
|
134
|
+
const runExecutionContextCommand = (context, command, args, signal) => new Promise((resolve, reject) => {
|
|
135
|
+
if (signal?.aborted) {
|
|
136
|
+
reject(getAbortReason(signal));
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
61
139
|
let settled = false;
|
|
140
|
+
let cancellationRequested = false;
|
|
62
141
|
const handle = context.provider.execute({
|
|
63
142
|
phase: 'setup',
|
|
64
143
|
target: context.target,
|
|
@@ -71,47 +150,100 @@ const runExecutionContextCommand = (context, command, args) => new Promise((reso
|
|
|
71
150
|
detached: false,
|
|
72
151
|
placementExecutionRunId: context.placementExecutionRunId,
|
|
73
152
|
});
|
|
153
|
+
const childCloseObservation = observeChildProcessClose(handle.child);
|
|
154
|
+
const childClose = childCloseObservation.promise;
|
|
74
155
|
const stderr = [];
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
156
|
+
const onStderrData = (chunk) => stderr.push(Buffer.from(chunk));
|
|
157
|
+
const cleanup = () => {
|
|
158
|
+
signal?.removeEventListener('abort', onAbort);
|
|
159
|
+
handle.child.stderr?.removeListener('data', onStderrData);
|
|
160
|
+
handle.child.removeListener('error', onError);
|
|
161
|
+
handle.child.removeListener('close', onClose);
|
|
162
|
+
childCloseObservation.dispose();
|
|
163
|
+
};
|
|
164
|
+
const rejectOnce = (error) => {
|
|
165
|
+
if (settled || cancellationRequested) {
|
|
166
|
+
return;
|
|
80
167
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
168
|
+
settled = true;
|
|
169
|
+
cleanup();
|
|
170
|
+
reject(error);
|
|
171
|
+
};
|
|
172
|
+
const onAbort = () => {
|
|
173
|
+
if (settled || cancellationRequested) {
|
|
174
|
+
return;
|
|
86
175
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
176
|
+
cancellationRequested = true;
|
|
177
|
+
const reason = getAbortReason(signal);
|
|
178
|
+
void terminateOneShotProcess(handle.interrupt, childClose).then(() => {
|
|
179
|
+
if (settled) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
settled = true;
|
|
183
|
+
cleanup();
|
|
184
|
+
reject(reason);
|
|
185
|
+
}, error => {
|
|
186
|
+
if (settled) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
settled = true;
|
|
190
|
+
cleanup();
|
|
191
|
+
reject(new OneShotCancellationTerminationError(reason, { cause: error }));
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
const onError = (error) => rejectOnce(error);
|
|
195
|
+
const onClose = (code) => {
|
|
196
|
+
if (settled || cancellationRequested) {
|
|
90
197
|
return;
|
|
91
198
|
}
|
|
92
199
|
settled = true;
|
|
200
|
+
cleanup();
|
|
93
201
|
if (code === 0) {
|
|
94
202
|
resolve();
|
|
95
203
|
return;
|
|
96
204
|
}
|
|
97
205
|
reject(new Error(Buffer.concat(stderr).toString().trim() || `${command} exited with code ${code}`));
|
|
206
|
+
};
|
|
207
|
+
handle.child.stderr?.on('data', onStderrData);
|
|
208
|
+
handle.child.on('error', onError);
|
|
209
|
+
handle.child.on('close', onClose);
|
|
210
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
211
|
+
if (signal?.aborted) {
|
|
212
|
+
onAbort();
|
|
213
|
+
}
|
|
214
|
+
void handle.placementFailure.then(failure => {
|
|
215
|
+
if (failure) {
|
|
216
|
+
rejectOnce(failure);
|
|
217
|
+
}
|
|
98
218
|
});
|
|
99
219
|
});
|
|
100
|
-
export const resolveLightweightPromptExecutionContext = async ({ project, executionRunId, execution, target: descriptor, }) => {
|
|
101
|
-
|
|
220
|
+
export const resolveLightweightPromptExecutionContext = async ({ project, executionRunId, execution, target: descriptor, signal, }) => {
|
|
221
|
+
throwIfAborted(signal);
|
|
222
|
+
const target = await resolveExecutionTarget({ project, descriptor, signal });
|
|
102
223
|
const lease = { release: null };
|
|
224
|
+
const acquisition = createAcquisitionSignal(signal);
|
|
103
225
|
try {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
226
|
+
throwIfAborted(signal);
|
|
227
|
+
const environment = await (async () => {
|
|
228
|
+
try {
|
|
229
|
+
return await resolveWorkloadExecutionEnvironment({
|
|
230
|
+
project,
|
|
231
|
+
executionRunId,
|
|
232
|
+
agent: execution.tool,
|
|
233
|
+
model: execution.model ?? null,
|
|
234
|
+
target,
|
|
235
|
+
workload: 'plan',
|
|
236
|
+
signal: acquisition.signal,
|
|
237
|
+
onLeaseAcquired: release => {
|
|
238
|
+
lease.release = release;
|
|
239
|
+
},
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
finally {
|
|
243
|
+
acquisition.dispose();
|
|
244
|
+
}
|
|
245
|
+
})();
|
|
246
|
+
throwIfAborted(signal);
|
|
115
247
|
lease.release = null;
|
|
116
248
|
return {
|
|
117
249
|
context: {
|
|
@@ -126,13 +258,22 @@ export const resolveLightweightPromptExecutionContext = async ({ project, execut
|
|
|
126
258
|
};
|
|
127
259
|
}
|
|
128
260
|
catch (error) {
|
|
129
|
-
|
|
261
|
+
try {
|
|
262
|
+
await lease.release?.();
|
|
263
|
+
}
|
|
264
|
+
catch (releaseError) {
|
|
265
|
+
console.error('[lightweight-prompt] environment release after acquisition failure failed', {
|
|
266
|
+
executionRunId,
|
|
267
|
+
releaseError,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
130
270
|
throw error;
|
|
131
271
|
}
|
|
132
272
|
};
|
|
133
273
|
const resolveQueuedLightweightPromptExecutionContext = async (input) => {
|
|
134
274
|
const deadline = Date.now() + LIGHTWEIGHT_PROMPT_LEASE_WAIT_TIMEOUT_MS;
|
|
135
275
|
while (true) {
|
|
276
|
+
throwIfAborted(input.signal);
|
|
136
277
|
try {
|
|
137
278
|
return await resolveLightweightPromptExecutionContext(input);
|
|
138
279
|
}
|
|
@@ -143,11 +284,12 @@ const resolveQueuedLightweightPromptExecutionContext = async (input) => {
|
|
|
143
284
|
if (Date.now() >= deadline) {
|
|
144
285
|
throw new Error('Timed out waiting for the Docker Sandbox to become available for the helper prompt.', { cause: error });
|
|
145
286
|
}
|
|
146
|
-
await waitForLeaseRetry();
|
|
287
|
+
await waitForLeaseRetry(input.signal);
|
|
147
288
|
}
|
|
148
289
|
}
|
|
149
290
|
};
|
|
150
|
-
export const runLightweightPrompt = async ({ tool, model, variant }, prompt, context, workingDirectory = context.target?.workspacePath) => {
|
|
291
|
+
export const runLightweightPrompt = async ({ tool, model, variant }, prompt, context, workingDirectory = context.target?.workspacePath, signal) => {
|
|
292
|
+
throwIfAborted(signal);
|
|
151
293
|
requireExecutableAgent(tool);
|
|
152
294
|
if (!workingDirectory) {
|
|
153
295
|
throw new Error('A lightweight prompt requires a working directory');
|
|
@@ -164,9 +306,10 @@ export const runLightweightPrompt = async ({ tool, model, variant }, prompt, con
|
|
|
164
306
|
opencodeRuntimeIdentity: context.provider.kind === 'docker_sandbox'
|
|
165
307
|
? context.opencodeRuntimeIdentity ?? null
|
|
166
308
|
: null,
|
|
309
|
+
signal,
|
|
167
310
|
}, context);
|
|
168
311
|
};
|
|
169
|
-
|
|
312
|
+
const executeTrackedLightweightPrompt = async ({ project, execution, target, initiatedBy = 'user', workingDirectory, parentRunId = null, sourceReference, helperPurpose, signal, }, prompt) => {
|
|
170
313
|
const { tool, model, variant } = execution;
|
|
171
314
|
requireExecutableAgent(tool);
|
|
172
315
|
const run = createExecutionRun({
|
|
@@ -185,12 +328,27 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
|
|
|
185
328
|
helper_variant: variant ?? null,
|
|
186
329
|
target_kind: target.kind,
|
|
187
330
|
target_bundle_id: target.bundleId,
|
|
331
|
+
...(helperPurpose ? { helper_purpose: helperPurpose } : {}),
|
|
188
332
|
...createExecutionProfileSelectionMetadata(project.id),
|
|
189
333
|
},
|
|
190
334
|
eventType: 'helper_prompt_created',
|
|
191
335
|
});
|
|
336
|
+
if (signal?.aborted) {
|
|
337
|
+
const interrupted = getAbortReason(signal) instanceof LightweightPromptShutdownError;
|
|
338
|
+
transitionExecutionRun({
|
|
339
|
+
projectId: project.id,
|
|
340
|
+
runId: run.id,
|
|
341
|
+
status: interrupted ? 'interrupted' : 'cancelled',
|
|
342
|
+
domainStatus: interrupted ? 'interrupted' : 'cancelled',
|
|
343
|
+
failure: interrupted
|
|
344
|
+
? { code: 'server_shutdown', message: 'Server shutdown interrupted the helper prompt.' }
|
|
345
|
+
: null,
|
|
346
|
+
eventType: interrupted ? 'helper_prompt_interrupted' : 'helper_prompt_cancelled',
|
|
347
|
+
});
|
|
348
|
+
throw getAbortReason(signal);
|
|
349
|
+
}
|
|
192
350
|
const queueKey = createExecutionTargetKey(project.id, target);
|
|
193
|
-
return enqueueLightweightPrompt(queueKey, getPromptPriority(initiatedBy), async () => {
|
|
351
|
+
return enqueueLightweightPrompt(queueKey, getPromptPriority(initiatedBy), signal, async () => {
|
|
194
352
|
let release = null;
|
|
195
353
|
let resolvedContext = null;
|
|
196
354
|
let removeProviderWorkingDirectory = false;
|
|
@@ -200,7 +358,11 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
|
|
|
200
358
|
executionRunId: run.id,
|
|
201
359
|
execution,
|
|
202
360
|
target,
|
|
361
|
+
signal,
|
|
203
362
|
});
|
|
363
|
+
release = resolved.release;
|
|
364
|
+
resolvedContext = resolved.context;
|
|
365
|
+
throwIfAborted(signal);
|
|
204
366
|
transitionExecutionRun({
|
|
205
367
|
projectId: project.id,
|
|
206
368
|
runId: run.id,
|
|
@@ -208,19 +370,17 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
|
|
|
208
370
|
domainStatus: 'running',
|
|
209
371
|
eventType: 'helper_prompt_started',
|
|
210
372
|
});
|
|
211
|
-
release = resolved.release;
|
|
212
|
-
resolvedContext = resolved.context;
|
|
213
373
|
if (workingDirectory && resolved.context.provider.kind === 'docker_sandbox') {
|
|
214
374
|
if (!/^\/tmp\/archon-context-scan-[^/]+$/.test(workingDirectory)) {
|
|
215
375
|
throw new Error('Docker Sandbox isolated helper directories must use the project context scan namespace');
|
|
216
376
|
}
|
|
217
|
-
await runExecutionContextCommand(resolved.context, 'mkdir', ['-p', workingDirectory]);
|
|
218
377
|
removeProviderWorkingDirectory = true;
|
|
378
|
+
await runExecutionContextCommand(resolved.context, 'mkdir', ['-p', workingDirectory], signal);
|
|
219
379
|
resolvedContext = { ...resolved.context, isolatedWorkingDirectory: workingDirectory };
|
|
220
380
|
}
|
|
221
|
-
const output = await runLightweightPrompt(execution, prompt, resolvedContext, workingDirectory);
|
|
381
|
+
const output = await runLightweightPrompt(execution, prompt, resolvedContext, workingDirectory, signal);
|
|
222
382
|
if (removeProviderWorkingDirectory) {
|
|
223
|
-
await runExecutionContextCommand(resolved.context, 'rm', ['-rf', workingDirectory]);
|
|
383
|
+
await runExecutionContextCommand(resolved.context, 'rm', ['-rf', workingDirectory], createCleanupSignal(signal));
|
|
224
384
|
removeProviderWorkingDirectory = false;
|
|
225
385
|
}
|
|
226
386
|
await release();
|
|
@@ -235,30 +395,65 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
|
|
|
235
395
|
return output;
|
|
236
396
|
}
|
|
237
397
|
catch (error) {
|
|
238
|
-
|
|
398
|
+
const resolveInterruptionReason = () => {
|
|
399
|
+
const signalReason = signal?.aborted ? getAbortReason(signal) : null;
|
|
400
|
+
return error === signalReason
|
|
401
|
+
? signalReason
|
|
402
|
+
: error instanceof OneShotCancellationTerminationError
|
|
403
|
+
? error.reason
|
|
404
|
+
: null;
|
|
405
|
+
};
|
|
406
|
+
let interruptionReason = resolveInterruptionReason();
|
|
407
|
+
const terminationConfirmed = !(error instanceof OneShotCancellationTerminationError);
|
|
408
|
+
if (removeProviderWorkingDirectory && resolvedContext && terminationConfirmed) {
|
|
239
409
|
try {
|
|
240
|
-
await runExecutionContextCommand(resolvedContext, 'rm', ['-rf', workingDirectory]);
|
|
410
|
+
await runExecutionContextCommand(resolvedContext, 'rm', ['-rf', workingDirectory], createCleanupSignal(signal));
|
|
241
411
|
}
|
|
242
|
-
catch {
|
|
243
|
-
|
|
412
|
+
catch (cleanupError) {
|
|
413
|
+
if (cleanupError instanceof OneShotCancellationTerminationError) {
|
|
414
|
+
error = cleanupError;
|
|
415
|
+
}
|
|
244
416
|
}
|
|
245
417
|
}
|
|
246
|
-
|
|
418
|
+
interruptionReason = resolveInterruptionReason();
|
|
419
|
+
const cleanupTerminationConfirmed = !(error instanceof OneShotCancellationTerminationError);
|
|
420
|
+
if (release && terminationConfirmed && cleanupTerminationConfirmed) {
|
|
247
421
|
try {
|
|
248
422
|
await release();
|
|
249
423
|
}
|
|
250
424
|
catch (releaseError) {
|
|
251
|
-
|
|
425
|
+
if (!interruptionReason) {
|
|
426
|
+
error = new Error('Helper execution environment could not be released', { cause: releaseError });
|
|
427
|
+
}
|
|
252
428
|
}
|
|
253
429
|
}
|
|
430
|
+
interruptionReason = resolveInterruptionReason();
|
|
431
|
+
const interrupted = interruptionReason instanceof LightweightPromptShutdownError;
|
|
432
|
+
const cancelled = interruptionReason !== null && !interrupted;
|
|
254
433
|
transitionExecutionRun({
|
|
255
434
|
projectId: project.id,
|
|
256
435
|
runId: run.id,
|
|
257
|
-
status: 'failed',
|
|
258
|
-
domainStatus: 'failed',
|
|
259
|
-
failure:
|
|
260
|
-
|
|
436
|
+
status: interrupted ? 'interrupted' : cancelled ? 'cancelled' : 'failed',
|
|
437
|
+
domainStatus: interrupted ? 'interrupted' : cancelled ? 'cancelled' : 'failed',
|
|
438
|
+
failure: interrupted
|
|
439
|
+
? { code: 'server_shutdown', message: 'Server shutdown interrupted the helper prompt.' }
|
|
440
|
+
: cancelled
|
|
441
|
+
? null
|
|
442
|
+
: {
|
|
443
|
+
code: 'helper_prompt_failed',
|
|
444
|
+
message: helperPurpose === 'workspace_change_explanation'
|
|
445
|
+
? 'Workspace change explanation helper failed.'
|
|
446
|
+
: error instanceof Error ? error.message : String(error),
|
|
447
|
+
},
|
|
448
|
+
eventType: interrupted
|
|
449
|
+
? 'helper_prompt_interrupted'
|
|
450
|
+
: cancelled
|
|
451
|
+
? 'helper_prompt_cancelled'
|
|
452
|
+
: 'helper_prompt_failed',
|
|
261
453
|
});
|
|
454
|
+
if (interruptionReason) {
|
|
455
|
+
throw error;
|
|
456
|
+
}
|
|
262
457
|
if (!model) {
|
|
263
458
|
throw error;
|
|
264
459
|
}
|
|
@@ -266,6 +461,43 @@ export const runTrackedLightweightPrompt = async ({ project, execution, target,
|
|
|
266
461
|
const selection = variant ? `${model} (${variant})` : model;
|
|
267
462
|
throw new Error(`Configured Helper model "${selection}" for ${agent} could not run. Verify that the model is available or select another Helper model. ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
268
463
|
}
|
|
464
|
+
}, () => {
|
|
465
|
+
const interrupted = getAbortReason(signal) instanceof LightweightPromptShutdownError;
|
|
466
|
+
transitionExecutionRun({
|
|
467
|
+
projectId: project.id,
|
|
468
|
+
runId: run.id,
|
|
469
|
+
status: interrupted ? 'interrupted' : 'cancelled',
|
|
470
|
+
domainStatus: interrupted ? 'interrupted' : 'cancelled',
|
|
471
|
+
failure: interrupted
|
|
472
|
+
? { code: 'server_shutdown', message: 'Server shutdown interrupted the helper prompt.' }
|
|
473
|
+
: null,
|
|
474
|
+
eventType: interrupted ? 'helper_prompt_interrupted' : 'helper_prompt_cancelled',
|
|
475
|
+
});
|
|
269
476
|
});
|
|
270
477
|
};
|
|
478
|
+
export const runTrackedLightweightPrompt = (input, prompt) => {
|
|
479
|
+
if (!lightweightPromptAdmissionsOpen) {
|
|
480
|
+
return Promise.reject(new LightweightPromptShutdownError());
|
|
481
|
+
}
|
|
482
|
+
const controller = new AbortController();
|
|
483
|
+
const signal = input.signal
|
|
484
|
+
? AbortSignal.any([input.signal, controller.signal])
|
|
485
|
+
: controller.signal;
|
|
486
|
+
const completion = executeTrackedLightweightPrompt({ ...input, signal }, prompt);
|
|
487
|
+
const active = { controller, completion };
|
|
488
|
+
activeLightweightPrompts.add(active);
|
|
489
|
+
void completion.then(() => activeLightweightPrompts.delete(active), () => activeLightweightPrompts.delete(active));
|
|
490
|
+
return completion;
|
|
491
|
+
};
|
|
492
|
+
export const openLightweightPromptAdmissions = () => {
|
|
493
|
+
lightweightPromptAdmissionsOpen = true;
|
|
494
|
+
};
|
|
495
|
+
export const shutdownLightweightPrompts = async () => {
|
|
496
|
+
lightweightPromptAdmissionsOpen = false;
|
|
497
|
+
const active = [...activeLightweightPrompts];
|
|
498
|
+
for (const prompt of active) {
|
|
499
|
+
prompt.controller.abort(new LightweightPromptShutdownError());
|
|
500
|
+
}
|
|
501
|
+
await Promise.allSettled(active.map(prompt => prompt.completion));
|
|
502
|
+
};
|
|
271
503
|
//# sourceMappingURL=lightweightPrompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightweightPrompt.js","sourceRoot":"","sources":["../../../server/lib/lightweightPrompt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lightweightPrompt.js","sourceRoot":"","sources":["../../../server/lib/lightweightPrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export const ONE_SHOT_TERMINATION_TIMEOUT_MS = 1_000;
|
|
2
|
+
export class OneShotCancellationTerminationError extends Error {
|
|
3
|
+
reason;
|
|
4
|
+
constructor(reason, options = {}) {
|
|
5
|
+
super(reason instanceof Error ? reason.message : 'The one-shot execution was cancelled.', options);
|
|
6
|
+
this.name = 'OneShotCancellationTerminationError';
|
|
7
|
+
this.reason = reason;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export const getAbortReason = (signal) => (signal.reason ?? new DOMException('This operation was aborted', 'AbortError'));
|
|
11
|
+
export const observeChildProcessClose = (child) => {
|
|
12
|
+
let onClose;
|
|
13
|
+
const promise = new Promise(resolve => {
|
|
14
|
+
onClose = (code, signal) => resolve({ code, signal });
|
|
15
|
+
child.once('close', onClose);
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
promise,
|
|
19
|
+
dispose: () => child.removeListener?.('close', onClose),
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export const waitForChildProcessClose = (childClose, timeoutMs = ONE_SHOT_TERMINATION_TIMEOUT_MS) => new Promise(resolve => {
|
|
23
|
+
let settled = false;
|
|
24
|
+
const finish = (closed) => {
|
|
25
|
+
if (settled) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
settled = true;
|
|
29
|
+
clearTimeout(timer);
|
|
30
|
+
resolve(closed);
|
|
31
|
+
};
|
|
32
|
+
const timer = setTimeout(() => finish(false), timeoutMs);
|
|
33
|
+
timer.unref?.();
|
|
34
|
+
void childClose.then(() => finish(true));
|
|
35
|
+
});
|
|
36
|
+
export const terminateOneShotProcess = async (interrupt, childClose) => {
|
|
37
|
+
const requestInterrupt = (signal) => {
|
|
38
|
+
try {
|
|
39
|
+
void Promise.resolve(interrupt(signal)).catch(() => { });
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Cancellation remains authoritative when a provider interrupt fails.
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
requestInterrupt('SIGTERM');
|
|
46
|
+
if (!await waitForChildProcessClose(childClose)) {
|
|
47
|
+
requestInterrupt('SIGKILL');
|
|
48
|
+
}
|
|
49
|
+
if (!await waitForChildProcessClose(childClose)) {
|
|
50
|
+
throw new Error('The one-shot provider process did not terminate after SIGKILL.');
|
|
51
|
+
}
|
|
52
|
+
return childClose;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=oneShotCancellation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneShotCancellation.js","sourceRoot":"","sources":["../../../server/lib/oneShotCancellation.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAA;AAOpD,MAAM,OAAO,mCAAoC,SAAQ,KAAK;IACnD,MAAM,CAAS;IAExB,YAAY,MAAe,EAAE,UAAwB,EAAE;QACrD,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAA;QAClG,IAAI,CAAC,IAAI,GAAG,qCAAqC,CAAA;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAmB,EAAW,EAAE,CAAC,CAC9D,MAAM,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAC9E,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC9D,IAAI,OAAqE,CAAA;IACzE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAmB,OAAO,CAAC,EAAE;QACtD,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QACrD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,OAAO;QACL,OAAO;QACP,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;KACxD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,UAAqC,EACrC,SAAS,GAAG,+BAA+B,EACzB,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;IAC3C,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,MAAM,GAAG,CAAC,MAAe,EAAE,EAAE;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAM;QACR,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;QACd,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;IACxD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;IACf,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,SAA6B,EAC7B,UAAqC,EACV,EAAE;IAC7B,MAAM,gBAAgB,GAAG,CAAC,MAAsB,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC,CAAA;IAED,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAE3B,IAAI,CAAC,MAAM,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC,MAAM,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
|