@codetreker/daynight 0.37.2 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +112 -41
- package/dist/commands/cleanup-operation.d.ts +3 -0
- package/dist/commands/cleanup-operation.js +12 -0
- package/dist/commands/cleanup-operation.js.map +1 -0
- package/dist/commands/controller/provider-display.d.ts +2 -0
- package/dist/commands/controller/provider-display.js +63 -0
- package/dist/commands/controller/provider-display.js.map +1 -0
- package/dist/commands/controller/runtime.js +4 -2
- package/dist/commands/controller/runtime.js.map +1 -1
- package/dist/commands/skill/skills/using-daynight/SKILL.md +1 -1
- package/dist/commands/skill/skills/using-daynight/references/authorization.md +1 -1
- package/dist/commands/skill/skills/using-daynight/references/autopilot-managed-task.md +4 -3
- package/dist/commands/skill/skills/using-daynight/references/handoff.md +25 -15
- package/dist/commands/skill/skills/using-daynight/references/task-management.md +1 -1
- package/dist/commands/skill/usage.md +5 -3
- package/dist/commands/task/command.js +3 -1
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +1 -1
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/worker/backends/session-api.d.ts +1 -1
- package/dist/commands/worker/backends/session-api.js +4 -4
- package/dist/commands/worker/backends/session-api.js.map +1 -1
- package/dist/commands/worker/backends/web-store.d.ts +4 -0
- package/dist/commands/worker/backends/web-store.js +40 -6
- package/dist/commands/worker/backends/web-store.js.map +1 -1
- package/dist/commands/worker/backends/web.js +248 -127
- package/dist/commands/worker/backends/web.js.map +1 -1
- package/dist/commands/worker/cleanup-error.d.ts +5 -0
- package/dist/commands/worker/cleanup-error.js +9 -0
- package/dist/commands/worker/cleanup-error.js.map +1 -0
- package/dist/commands/worker/cleanup-schedule.d.ts +3 -0
- package/dist/commands/worker/cleanup-schedule.js +11 -0
- package/dist/commands/worker/cleanup-schedule.js.map +1 -0
- package/dist/commands/worker/cleanup.js +47 -31
- package/dist/commands/worker/cleanup.js.map +1 -1
- package/dist/commands/worker/coordinator.js +173 -64
- package/dist/commands/worker/coordinator.js.map +1 -1
- package/dist/commands/worker/execution.d.ts +1 -1
- package/dist/commands/worker/execution.js +2 -2
- package/dist/commands/worker/execution.js.map +1 -1
- package/dist/commands/worker/prompts.js +2 -2
- package/dist/commands/worker/prompts.js.map +1 -1
- package/dist/commands/worker/runtime.js +1 -1
- package/dist/commands/worker/runtime.js.map +1 -1
- package/dist/commands/worker/sqlite/006-cleanup-schedules.sql +14 -0
- package/dist/commands/worker/store.d.ts +5 -1
- package/dist/commands/worker/store.js +53 -0
- package/dist/commands/worker/store.js.map +1 -1
- package/dist/commands/worker/types.d.ts +10 -0
- package/dist/commands/worker/worktrees.js +1 -1
- package/dist/commands/worker/worktrees.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CLEANUP_OPERATION_MS, cleanupOperation } from "../../cleanup-operation.js";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { unlink } from "node:fs/promises";
|
|
3
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -7,6 +8,7 @@ import { readControllerOperation, readControllerSnapshot, recordStoppedControlle
|
|
|
7
8
|
import { confirmControllerProcessesStopped, stopControllerProcesses } from "../../controller/process-proof.js";
|
|
8
9
|
import { workerOperation } from "../execution.js";
|
|
9
10
|
import { workerCleanupPrompt } from "../prompts.js";
|
|
11
|
+
import { WorkerCleanupError } from "../cleanup-error.js";
|
|
10
12
|
import { backendResourcesClosed, taskAgentControlMode } from "./web-types.js";
|
|
11
13
|
export const createWebExecutionBackend = (options) => {
|
|
12
14
|
const request = options.request ?? requestController;
|
|
@@ -34,153 +36,272 @@ export const createWebExecutionBackend = (options) => {
|
|
|
34
36
|
return {
|
|
35
37
|
advance: async (input, signal) => {
|
|
36
38
|
let task = current(input);
|
|
39
|
+
if (task.recovery.pauseReason !== null && !task.recovery.retryAuthorized)
|
|
40
|
+
return task;
|
|
37
41
|
if (task.cleanup !== null || task.control !== null || task.configuration === null)
|
|
38
42
|
throw new Error("Ordinary Web execution is fenced by cleanup or management.");
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
let snapshot;
|
|
49
|
-
let orderlyRestart = false;
|
|
43
|
+
const retryAttempt = task.recovery.retryAuthorized;
|
|
44
|
+
let recovering = retryAttempt;
|
|
45
|
+
const pause = (error) => options.store.pauseRecovery(task, error instanceof Error ? error.message : String(error), options.now());
|
|
46
|
+
const originalSnapshot = () => {
|
|
47
|
+
const saved = readControllerSnapshot(journal(task)), execution = task.webExecution;
|
|
48
|
+
if (saved === null || saved.executionId !== execution.executionId || saved.claimId !== task.claimId || saved.sessionId !== execution.sessionId || saved.executionGeneration !== execution.executionGeneration || saved.controllerInstanceId !== execution.controllerInstanceId)
|
|
49
|
+
throw new Error("The original controller generation evidence is unavailable.");
|
|
50
|
+
return saved;
|
|
51
|
+
};
|
|
50
52
|
try {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
if (retryAttempt && task.recovery.pauseReason !== null) {
|
|
54
|
+
// Authorization permits one replacement generation only after proving the old writer stopped.
|
|
55
|
+
if (task.webExecution === null || task.resources.nativeSession === null)
|
|
56
|
+
throw new Error("Web retry requires the original native session identity.");
|
|
57
|
+
if (task.webExecution.launchSubmission === "not-submitted" && BigInt(task.webExecution.executionGeneration) > 1n) {
|
|
58
|
+
// Preparation may fail after allocating a generation but before any writer is launched.
|
|
59
|
+
const previous = readControllerSnapshot(journal(task));
|
|
60
|
+
if (previous === null || previous.controllerProcess === null || previous.lifecycle !== "stopped" || !previous.nativeStopped || previous.stoppedAt === null)
|
|
61
|
+
throw new Error("Unsubmitted recovery requires the original complete stopped generation evidence.");
|
|
62
|
+
if (!await confirmControllerProcessesStopped(previous.controllerProcess, previous.nativeProcesses))
|
|
63
|
+
throw new Error("Unsubmitted recovery requires complete original controller and native process stop.");
|
|
64
|
+
signal.throwIfAborted();
|
|
65
|
+
if (JSON.stringify(readControllerSnapshot(journal(task))) !== JSON.stringify(previous))
|
|
66
|
+
throw new Error("The original stopped generation changed during unsubmitted recovery verification.");
|
|
67
|
+
task = options.store.retryUnsubmittedWebGeneration(task, previous, options.now());
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const saved = originalSnapshot();
|
|
71
|
+
if (saved.nativeSessionId === null || saved.nativeSessionId !== task.resources.nativeSession.sessionId)
|
|
72
|
+
throw new Error("Web retry requires the original native session identity.");
|
|
73
|
+
task = remember(task, saved);
|
|
74
|
+
const proof = task.webExecution.controllerProcess;
|
|
75
|
+
if (proof === null || !await confirmControllerProcessesStopped(proof, task.webExecution.nativeProcesses))
|
|
76
|
+
throw new Error("Web retry requires complete original controller and native process stop.");
|
|
77
|
+
const ticket = await readLaunchTicket(options.homeDirectory, task.webExecution.launchId);
|
|
78
|
+
const stopped = await recordStoppedControllerGeneration(journal(task), ticket);
|
|
79
|
+
task = options.store.beginWebGeneration(task, stopped, options.now());
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (!retryAttempt && task.webExecution !== null && task.webExecution.launchSubmission !== "not-submitted" && task.recovery.count >= task.configuration.recoveryLimit) {
|
|
83
|
+
// Older versions recorded exhaustion without a pause. Inspect before any launch preparation.
|
|
84
|
+
try {
|
|
85
|
+
const saved = originalSnapshot();
|
|
86
|
+
task = remember(task, saved);
|
|
87
|
+
const proof = task.webExecution.controllerProcess;
|
|
88
|
+
if (proof === null)
|
|
89
|
+
throw new Error("The exhausted execution has no complete original process stop evidence.");
|
|
90
|
+
const stopped = await confirmControllerProcessesStopped(proof, task.webExecution.nativeProcesses);
|
|
91
|
+
if (stopped) {
|
|
92
|
+
if (!task.webExecution.restartAfterShutdown || saved.error !== null)
|
|
93
|
+
return pause(new Error("The execution recovery budget is exhausted."));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
if (["stopped", "stopping", "failed", "paused"].includes(saved.lifecycle))
|
|
97
|
+
throw new Error("The exhausted execution is stopped or failed, but complete original process stop is unproven.");
|
|
98
|
+
const ticket = await readLaunchTicket(options.homeDirectory, task.webExecution.launchId);
|
|
99
|
+
const observed = (await request(ticket, { kind: "observe" }, { signal, timeoutMs: 2000 })).snapshot;
|
|
100
|
+
if (observed.lifecycle !== "ready" && observed.lifecycle !== "working" && observed.lifecycle !== "starting")
|
|
101
|
+
throw new Error(observed.error ?? "The exhausted controller is not healthy.");
|
|
102
|
+
task = remember(task, observed);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
signal.throwIfAborted();
|
|
107
|
+
return pause(error);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (task.resources.worktree === null)
|
|
111
|
+
task = options.store.bindWorktree(task, await workerOperation(operation => options.git.prepareWorktree({ projectId: task.projectId, repoUrl: task.repoUrl, localPath: task.repositoryPath }, task, operation), signal), options.now());
|
|
112
|
+
else
|
|
113
|
+
await workerOperation(operation => options.git.verifyWorktree({ projectId: task.projectId, repoUrl: task.repoUrl, localPath: task.repositoryPath }, task, operation), signal);
|
|
114
|
+
task = options.store.initializeWebExecution(task, options.now());
|
|
115
|
+
let ticket = await options.launcher.prepare(task, task.webExecution.initialPrompt ?? options.buildPrompt(task, options.platform), signal);
|
|
116
|
+
task = current(task);
|
|
117
|
+
await options.launcher.launch(task, ticket, signal);
|
|
118
|
+
task = current(task);
|
|
119
|
+
let snapshot;
|
|
120
|
+
try {
|
|
121
|
+
snapshot = (await request(ticket, { kind: "observe" }, { signal, timeoutMs: 2000 })).snapshot;
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
signal.throwIfAborted();
|
|
125
|
+
// A retry never grants a second generation when its first observation fails.
|
|
126
|
+
if (retryAttempt)
|
|
127
|
+
throw error;
|
|
128
|
+
const saved = originalSnapshot();
|
|
56
129
|
task = remember(task, saved);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
130
|
+
const proof = task.webExecution.controllerProcess;
|
|
131
|
+
if (proof === null || !await confirmControllerProcessesStopped(proof, task.webExecution.nativeProcesses))
|
|
132
|
+
throw new Error("The original controller is unreachable; its native writer may still be alive and will not be replaced.", { cause: error });
|
|
133
|
+
if (saved.nativeSessionId === null)
|
|
134
|
+
throw new Error("The stopped native launch has no proven session identity; recovery cannot create another conversation.");
|
|
135
|
+
const stopped = await recordStoppedControllerGeneration(journal(task), ticket);
|
|
136
|
+
if (!task.webExecution.restartAfterShutdown)
|
|
137
|
+
task = options.store.beginRecovery(task, options.now());
|
|
138
|
+
if (task.recovery.pauseReason !== null)
|
|
139
|
+
return task;
|
|
140
|
+
recovering = true;
|
|
141
|
+
task = options.store.beginWebGeneration(task, stopped, options.now());
|
|
142
|
+
ticket = await options.launcher.prepare(task, task.webExecution.initialPrompt, signal);
|
|
143
|
+
await options.launcher.launch(current(task), ticket, signal);
|
|
144
|
+
snapshot = (await request(ticket, { kind: "observe" }, { signal, timeoutMs: 2000 })).snapshot;
|
|
145
|
+
}
|
|
146
|
+
task = remember(current(task), snapshot);
|
|
147
|
+
if (snapshot.lifecycle === "failed" || snapshot.lifecycle === "paused" || snapshot.lifecycle === "stopped" || snapshot.lifecycle === "stopping") {
|
|
148
|
+
recovering = true;
|
|
149
|
+
throw new Error(snapshot.error ?? "The native controller is paused or stopped.");
|
|
150
|
+
}
|
|
151
|
+
if ((snapshot.lifecycle === "ready" || snapshot.lifecycle === "working") && snapshot.initialInputState === "not_submitted" && BigInt(task.webExecution.executionGeneration) > 1n) {
|
|
152
|
+
recovering = true;
|
|
153
|
+
throw new Error("Recovery cannot resubmit the original managed assignment.");
|
|
154
|
+
}
|
|
155
|
+
if (snapshot.lifecycle === "ready" || snapshot.lifecycle === "working") {
|
|
156
|
+
if (task.recovery.retryAuthorized)
|
|
157
|
+
task = options.store.completeRecoveryRetry(task, snapshot, options.now());
|
|
158
|
+
recovering = false;
|
|
159
|
+
}
|
|
160
|
+
await options.launcher.refreshGrant(task, ticket, signal);
|
|
161
|
+
if (snapshot.lifecycle === "starting")
|
|
162
|
+
return options.store.updateWebExecution(task, { activity: "initializing" }, options.now());
|
|
163
|
+
if (snapshot.initialInputState === "not_submitted") {
|
|
164
|
+
const response = await request(ticket, { kind: "submit_initial", operationId: task.webExecution.initialOperationId }, { signal, timeoutMs: 30000 });
|
|
165
|
+
task = remember(task, response.snapshot);
|
|
166
|
+
}
|
|
167
|
+
options.emit({ kind: "web-observed", task, message: `Original ${ticket.provider} controller generation ${ticket.executionGeneration} is bound to session ${ticket.sessionId}.` });
|
|
168
|
+
return current(task);
|
|
72
169
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (snapshot.lifecycle === "failed" || snapshot.lifecycle === "paused")
|
|
78
|
-
throw new Error(snapshot.error ?? "The native controller is paused.");
|
|
79
|
-
if (task.recovery.pauseReason !== null && !task.recovery.retryAuthorized)
|
|
80
|
-
return task;
|
|
81
|
-
if (task.recovery.retryAuthorized && !orderlyRestart)
|
|
82
|
-
task = options.store.beginRecovery(task, options.now());
|
|
83
|
-
if (snapshot.initialInputState === "not_submitted") {
|
|
84
|
-
const response = await request(ticket, { kind: "submit_initial", operationId: task.webExecution.initialOperationId }, { signal, timeoutMs: 30000 });
|
|
85
|
-
task = remember(task, response.snapshot);
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (!signal.aborted && (recovering && (retryAttempt || current(task).recovery.count >= task.configuration.recoveryLimit)))
|
|
172
|
+
pause(error);
|
|
173
|
+
throw error;
|
|
86
174
|
}
|
|
87
|
-
options.emit({ kind: "web-observed", task, message: `Original ${ticket.provider} controller generation ${ticket.executionGeneration} is bound to session ${ticket.sessionId}.` });
|
|
88
|
-
return current(task);
|
|
89
175
|
},
|
|
90
176
|
cleanup: async (input, kind, deadline, signal = new AbortController().signal, immediateStop = false) => {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const execution = task.webExecution;
|
|
100
|
-
if (execution == null && task.configuration === null)
|
|
101
|
-
throw new Error("The recovered Web claim has no original launch provenance; its native writer and worktree are retained.");
|
|
102
|
-
if (!task.cleanup.agentStopped) {
|
|
103
|
-
if (execution == null || execution.launchSubmission === "not-submitted") {
|
|
104
|
-
task = options.store.recordCleanupInputOutcome(task, "unavailable", options.now());
|
|
105
|
-
task = options.store.recordCleanupResult(task, "unavailable", "No controller launch was submitted.", options.now());
|
|
106
|
-
task = options.store.confirmAgentStopped(task, { agentStopped: true }, options.now());
|
|
107
|
-
task = options.store.confirmBackendResourcesClosed(task, { controllerStopped: true, endpointClosed: true }, options.now());
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
if (execution.ticketPath === null)
|
|
111
|
-
throw new Error("The original launch ticket is missing; cleanup retains its unknown native writer.");
|
|
112
|
-
const ticket = await readLaunchTicket(options.homeDirectory, execution.launchId);
|
|
113
|
-
let response;
|
|
177
|
+
let stage = "observation";
|
|
178
|
+
try {
|
|
179
|
+
const startedAt = options.now();
|
|
180
|
+
let original = current(input);
|
|
181
|
+
if (kind === "shutdown" && original.cleanup === null && original.recovery.retryAuthorized && original.recovery.pauseReason === null)
|
|
182
|
+
original = options.store.pauseRecovery(original, "The explicit recovery attempt stopped before a successful observation.", options.now());
|
|
183
|
+
if (kind === "shutdown" && original.cleanup === null && original.recovery.pauseReason === null && original.configuration !== null && original.recovery.count >= original.configuration.recoveryLimit && original.webExecution !== null && original.webExecution.launchSubmission !== "not-submitted") {
|
|
184
|
+
// Shutdown provenance must not turn an already exhausted writer into a healthy orderly restart.
|
|
114
185
|
try {
|
|
115
|
-
|
|
186
|
+
const saved = readControllerSnapshot(journal(original)), execution = original.webExecution;
|
|
187
|
+
if (saved === null || saved.executionId !== execution.executionId || saved.claimId !== original.claimId || saved.executionGeneration !== execution.executionGeneration || saved.controllerInstanceId !== execution.controllerInstanceId)
|
|
188
|
+
throw new Error("The exhausted execution has no original generation evidence before shutdown.");
|
|
189
|
+
original = remember(original, saved);
|
|
190
|
+
const proof = original.webExecution.controllerProcess;
|
|
191
|
+
if (proof === null)
|
|
192
|
+
throw new Error("The exhausted execution has no complete original process stop evidence before shutdown.");
|
|
193
|
+
if (["failed", "paused", "stopped", "stopping"].includes(saved.lifecycle) || await confirmControllerProcessesStopped(proof, original.webExecution.nativeProcesses))
|
|
194
|
+
original = options.store.pauseRecovery(original, "The execution recovery budget is exhausted.", options.now());
|
|
116
195
|
}
|
|
117
|
-
catch {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
task = remember(task, saved);
|
|
196
|
+
catch (error) {
|
|
197
|
+
signal.throwIfAborted();
|
|
198
|
+
original = options.store.pauseRecovery(original, error instanceof Error ? error.message : String(error), options.now());
|
|
121
199
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
200
|
+
}
|
|
201
|
+
// An elapsed caller deadline has zero remaining budget, including immediate shutdown.
|
|
202
|
+
let task = options.store.beginCleanup(original, { kind, deadline: Math.max(startedAt, deadline) }, startedAt);
|
|
203
|
+
stage = "agent-stop";
|
|
204
|
+
const execution = task.webExecution;
|
|
205
|
+
if (execution == null && task.configuration === null)
|
|
206
|
+
throw new Error("The recovered Web claim has no original launch provenance; its native writer and worktree are retained.");
|
|
207
|
+
if (!task.cleanup.agentStopped) {
|
|
208
|
+
if (execution == null || execution.launchSubmission === "not-submitted") {
|
|
209
|
+
task = options.store.recordCleanupInputOutcome(task, "unavailable", options.now());
|
|
210
|
+
task = options.store.recordCleanupResult(task, "unavailable", "No controller launch was submitted.", options.now());
|
|
211
|
+
task = options.store.confirmAgentStopped(task, { agentStopped: true }, options.now());
|
|
212
|
+
task = options.store.confirmBackendResourcesClosed(task, { controllerStopped: true, endpointClosed: true }, options.now());
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
if (execution.ticketPath === null)
|
|
216
|
+
throw new Error("The original launch ticket is missing; cleanup retains its unknown native writer.");
|
|
217
|
+
const ticket = await readLaunchTicket(options.homeDirectory, execution.launchId);
|
|
218
|
+
let response;
|
|
219
|
+
try {
|
|
220
|
+
response = await request(ticket, { kind: "observe" }, { signal, timeoutMs: CLEANUP_OPERATION_MS });
|
|
137
221
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (
|
|
141
|
-
task =
|
|
142
|
-
if (operation.state === "confirmed")
|
|
143
|
-
task = options.store.recordCleanupResult(task, "completed", null, options.now());
|
|
222
|
+
catch {
|
|
223
|
+
const saved = readControllerSnapshot(journal(task));
|
|
224
|
+
if (saved !== null)
|
|
225
|
+
task = remember(task, saved);
|
|
144
226
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
227
|
+
const reachable = response !== undefined;
|
|
228
|
+
if (response !== undefined)
|
|
229
|
+
task = remember(task, response.snapshot);
|
|
230
|
+
const proof = task.webExecution.controllerProcess;
|
|
231
|
+
if (proof === null)
|
|
232
|
+
throw new Error("The original controller process proof is missing; cleanup cannot infer stop.");
|
|
233
|
+
let stopped = await confirmControllerProcessesStopped(proof, task.webExecution.nativeProcesses);
|
|
234
|
+
if (!immediateStop && !stopped && task.cleanup.result === null && options.now() < task.cleanup.deadline) {
|
|
235
|
+
if (!reachable)
|
|
236
|
+
throw new Error("The original controller is unavailable; cleanup retains its fixed deadline and process proof.");
|
|
237
|
+
if (task.webExecution.cleanupOperationId === null)
|
|
238
|
+
task = options.store.updateWebExecution(task, { cleanupOperationId: randomUUID() }, options.now());
|
|
239
|
+
if (task.cleanup.input === "not-submitted") {
|
|
240
|
+
task = options.store.markCleanupInputSubmitting(task, options.now());
|
|
241
|
+
await request(ticket, { kind: "cleanup", operationId: task.webExecution.cleanupOperationId, prompt: workerCleanupPrompt(task, task.cleanup.deadline), deadline: task.cleanup.deadline }, { signal, timeoutMs: Math.max(1, Math.min(CLEANUP_OPERATION_MS, task.cleanup.deadline - options.now())) });
|
|
242
|
+
}
|
|
243
|
+
const operation = readControllerOperation(journal(task), task.webExecution.cleanupOperationId);
|
|
244
|
+
if (operation?.state === "provider_accepted" || operation?.state === "confirmed") {
|
|
245
|
+
if (task.cleanup.input === "unknown")
|
|
246
|
+
task = options.store.recordCleanupInputOutcome(task, "submitted", options.now());
|
|
247
|
+
if (operation.state === "confirmed")
|
|
248
|
+
task = options.store.recordCleanupResult(task, "completed", null, options.now());
|
|
156
249
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
250
|
+
else if (operation !== null && ["failed", "rejected", "expired"].includes(operation.state))
|
|
251
|
+
task = options.store.recordCleanupResult(task, "failed", operation.error, options.now());
|
|
252
|
+
if (task.cleanup.result === null)
|
|
253
|
+
return task;
|
|
254
|
+
}
|
|
255
|
+
if (task.cleanup.result === null)
|
|
256
|
+
task = options.store.recordCleanupResult(task, stopped || immediateStop ? "unavailable" : "timed-out", stopped || immediateStop ? "Original processes stopped before cleanup completion was established." : "The original cleanup deadline elapsed.", options.now());
|
|
257
|
+
if (!stopped) {
|
|
258
|
+
if (reachable)
|
|
259
|
+
try {
|
|
260
|
+
await request(ticket, { kind: "stop", deadline: options.now() + CLEANUP_OPERATION_MS }, { signal, timeoutMs: CLEANUP_OPERATION_MS });
|
|
261
|
+
}
|
|
262
|
+
catch { /* OS process proof remains authoritative after an IPC loss. */ }
|
|
263
|
+
await stopControllerProcesses(proof, task.webExecution.nativeProcesses, Date.now() + CLEANUP_OPERATION_MS);
|
|
264
|
+
stopped = await confirmControllerProcessesStopped(proof, task.webExecution.nativeProcesses);
|
|
265
|
+
}
|
|
266
|
+
if (!stopped)
|
|
267
|
+
throw new Error("Complete original controller process stop is not proven.");
|
|
268
|
+
await recordStoppedControllerGeneration(journal(task), ticket);
|
|
269
|
+
task = options.store.confirmAgentStopped(task, { agentStopped: true }, options.now());
|
|
160
270
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
task
|
|
271
|
+
}
|
|
272
|
+
stage = "backend-close";
|
|
273
|
+
if (!backendResourcesClosed(task.cleanup)) {
|
|
274
|
+
if (!task.cleanup.agentStopped || execution?.ticketPath == null)
|
|
275
|
+
throw new Error("The original Web backend closure has no stopped controller and launch ticket.");
|
|
276
|
+
const ticket = await readLaunchTicket(options.homeDirectory, execution.launchId);
|
|
165
277
|
await removeEndpoint(ticket.ipcEndpoint);
|
|
166
278
|
task = options.store.confirmBackendResourcesClosed(task, { controllerStopped: true, endpointClosed: true }, options.now());
|
|
167
279
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
280
|
+
// Shutdown proves stop but leaves any terminal finalization for normal reconciliation.
|
|
281
|
+
if (kind === "shutdown")
|
|
282
|
+
return task;
|
|
283
|
+
stage = "observation";
|
|
284
|
+
if (task.resources.worktree === null) {
|
|
285
|
+
const found = await cleanupOperation(operation => options.git.findWorktree({ projectId: task.projectId, repoUrl: task.repoUrl, localPath: task.repositoryPath }, task, operation), signal);
|
|
286
|
+
if (found !== null)
|
|
287
|
+
task = options.store.bindWorktree(task, found, options.now());
|
|
288
|
+
}
|
|
289
|
+
if (task.cleanup.kind === "terminal" && !task.cleanup.worktreeDeleted) {
|
|
290
|
+
if (execution && execution.launchSubmission !== "not-submitted") {
|
|
291
|
+
stage = "archive";
|
|
292
|
+
if (!options.archive)
|
|
293
|
+
throw new Error("Session archive uploader is unavailable; the original worktree is retained.");
|
|
294
|
+
await options.archive(task, journal(task), signal);
|
|
295
|
+
}
|
|
296
|
+
stage = "worktree-removal";
|
|
297
|
+
await cleanupOperation(operation => options.git.removeWorktree({ projectId: task.projectId, repoUrl: task.repoUrl, localPath: task.repositoryPath }, task, operation), signal);
|
|
298
|
+
task = options.store.confirmWorktreeDeleted(task, { worktreeDeleted: true }, options.now());
|
|
179
299
|
}
|
|
180
|
-
|
|
181
|
-
|
|
300
|
+
return task;
|
|
301
|
+
}
|
|
302
|
+
catch (error) {
|
|
303
|
+
throw new WorkerCleanupError(stage, error);
|
|
182
304
|
}
|
|
183
|
-
return task;
|
|
184
305
|
},
|
|
185
306
|
};
|
|
186
307
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../../../src/commands/worker/backends/web.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../../../src/commands/worker/backends/web.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class WorkerCleanupError extends Error {
|
|
2
|
+
stage;
|
|
3
|
+
constructor(stage, cause) {
|
|
4
|
+
super(`Worker cleanup ${stage} failed: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
|
|
5
|
+
this.stage = stage;
|
|
6
|
+
this.name = "WorkerCleanupError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=cleanup-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup-error.js","sourceRoot":"","sources":["../../../src/commands/worker/cleanup-error.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACtB,KAAK;IAA1B,YAAqB,KAAyB,EAAE,KAAc;QAC5D,KAAK,CAAC,kBAAkB,KAAK,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;qBAD3F,KAAK;QAExB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Persist responsibility before any cleanup side effect; a restart must not replay input.
|
|
2
|
+
export const ensureCleanupSchedule = (store, owner, now) => {
|
|
3
|
+
const previous = store.getCleanupSchedule(owner);
|
|
4
|
+
if (previous !== null) {
|
|
5
|
+
if (previous.worktreeId !== owner.worktreeId)
|
|
6
|
+
throw new Error("The cleanup claim has conflicting worktree identities.");
|
|
7
|
+
return previous;
|
|
8
|
+
}
|
|
9
|
+
return store.saveCleanupSchedule(owner, { deadline: now + 600_000, notified: false, submitted: false, failures: 0, nextAttemptAt: now, stage: "observation", lastError: null });
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=cleanup-schedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup-schedule.js","sourceRoot":"","sources":["../../../src/commands/worker/cleanup-schedule.ts"],"names":[],"mappings":"AAGA,0FAA0F;AAC1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAkB,EAAE,KAAoB,EAAE,GAAW,EAAyB,EAAE;IACpH,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxH,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAClL,CAAC,CAAC"}
|