@codetreker/daynight 0.32.1 → 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 +266 -68
- package/dist/api/client.d.ts +7 -1
- package/dist/api/client.js +117 -21
- package/dist/api/client.js.map +1 -1
- package/dist/api/json-source.d.ts +3 -0
- package/dist/api/json-source.js +113 -0
- package/dist/api/json-source.js.map +1 -0
- package/dist/api/parse.d.ts +2 -1
- package/dist/api/parse.js +16 -1
- package/dist/api/parse.js.map +1 -1
- package/dist/api/thread.d.ts +6 -0
- package/dist/api/thread.js +79 -0
- package/dist/api/thread.js.map +1 -0
- package/dist/api/types.d.ts +50 -0
- package/dist/cli/application.js +12 -2
- package/dist/cli/application.js.map +1 -1
- package/dist/cli/context.d.ts +9 -1
- package/dist/cli/context.js +3 -1
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/schema.js +10 -10
- package/dist/cli/schema.js.map +1 -1
- 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/providers/projection.js +12 -0
- package/dist/commands/controller/providers/projection.js.map +1 -1
- package/dist/commands/controller/runtime.js +4 -2
- package/dist/commands/controller/runtime.js.map +1 -1
- package/dist/commands/server/runtime.d.ts +10 -1
- package/dist/commands/server/runtime.js +24 -7
- package/dist/commands/server/runtime.js.map +1 -1
- package/dist/commands/skill/skills/using-daynight/SKILL.md +5 -3
- package/dist/commands/skill/skills/using-daynight/references/authorization.md +2 -2
- package/dist/commands/skill/skills/using-daynight/references/autopilot-managed-task.md +4 -3
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +4 -1
- package/dist/commands/skill/skills/using-daynight/references/handoff.md +25 -15
- package/dist/commands/skill/skills/using-daynight/references/task-content.md +7 -4
- package/dist/commands/skill/skills/using-daynight/references/task-management.md +56 -6
- package/dist/commands/skill/skills/using-daynight/references/write-safety.md +22 -3
- package/dist/commands/skill/usage.md +84 -7
- package/dist/commands/task/command.js +28 -3
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +40 -6
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/task/rendering.js +4 -0
- package/dist/commands/task/rendering.js.map +1 -1
- package/dist/commands/task/thread-diagnostics.d.ts +5 -0
- package/dist/commands/task/thread-diagnostics.js +32 -0
- package/dist/commands/task/thread-diagnostics.js.map +1 -0
- package/dist/commands/task/thread-rendering.d.ts +8 -0
- package/dist/commands/task/thread-rendering.js +80 -0
- package/dist/commands/task/thread-rendering.js.map +1 -0
- package/dist/commands/task/thread.d.ts +11 -0
- package/dist/commands/task/thread.js +74 -0
- package/dist/commands/task/thread.js.map +1 -0
- 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 +186 -63
- 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/remote.js +3 -4
- package/dist/commands/worker/remote.js.map +1 -1
- package/dist/commands/worker/remove-worktree-contents.d.ts +3 -0
- package/dist/commands/worker/remove-worktree-contents.js +106 -0
- package/dist/commands/worker/remove-worktree-contents.js.map +1 -0
- 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 +70 -24
- package/dist/commands/worker/worktrees.js.map +1 -1
- package/dist/platform/diagnostics.d.ts +5 -0
- package/dist/platform/diagnostics.js +12 -0
- package/dist/platform/diagnostics.js.map +1 -1
- package/dist/session/codex-subagent-activity.d.ts +4 -0
- package/dist/session/codex-subagent-activity.js +13 -0
- package/dist/session/codex-subagent-activity.js.map +1 -0
- package/dist/session/v2/archive.d.ts +6 -0
- package/dist/session/v2/archive.js +163 -0
- package/dist/session/v2/archive.js.map +1 -0
- package/dist/session/v2/protocol.d.ts +19 -0
- package/dist/session/v2/protocol.js +260 -0
- package/dist/session/v2/protocol.js.map +1 -0
- package/dist/session/v2/responsibility.d.ts +3 -0
- package/dist/session/v2/responsibility.js +12 -0
- package/dist/session/v2/responsibility.js.map +1 -0
- package/dist/session/v2/types.d.ts +293 -0
- package/dist/session/v2/types.js +2 -0
- package/dist/session/v2/types.js.map +1 -0
- package/dist/session/v2/values.d.ts +59 -0
- package/dist/session/v2/values.js +201 -0
- package/dist/session/v2/values.js.map +1 -0
- package/package.json +5 -3
|
@@ -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":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,iCAAiC,EAA2B,MAAM,qCAAqC,CAAC;AAClK,OAAO,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAyB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAqC,MAAM,gBAAgB,CAAC;AAUjH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAA0B,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,iBAAiB,CAAC;IACrD,MAAM,OAAO,GAAG,CAAC,IAAe,EAAa,EAAE,GAAG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,oBAAoB,CAAC,MAAM,CAAC,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACxO,MAAM,OAAO,GAAG,CAAC,IAAe,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,YAAa,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC9J,MAAM,QAAQ,GAAG,CAAC,KAAgB,EAAE,QAA4B,EAAa,EAAE;QAC7E,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAa,CAAC,iBAAiB,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACjT,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI;YAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClK,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;QAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO;QACzC,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAAE,MAAM,KAAK,CAAC;QAAC,CAAC;IAC7I,CAAC,CAAC;IACF,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,KAAgB,EAAE,MAAmB,EAAsB,EAAE;YAC3E,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YACjK,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI;gBAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;;gBACxQ,MAAM,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;YACnL,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACjE,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,YAAa,CAAC,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;YAC3I,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACrB,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACpD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,QAA4B,CAAC;YACjC,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC;gBAAC,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAAC,CAAC;YACtG,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,IAAI,KAAK,KAAK,IAAI;oBAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAa,CAAC,iBAAiB,CAAC;gBACnD,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,iCAAiC,CAAC,KAAK,EAAE,IAAI,CAAC,YAAa,CAAC,eAAe,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,wGAAwG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvP,IAAI,KAAK,EAAE,eAAe,IAAI,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;gBAC9J,MAAM,OAAO,GAAG,MAAM,iCAAiC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC/E,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe;oBAAE,OAAO,IAAI,CAAC;gBACtF,cAAc,GAAG,IAAI,CAAC,YAAa,CAAC,oBAAoB,CAAC;gBACzD,IAAI,CAAC,cAAc;oBAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC7E,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtE,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,YAAa,CAAC,aAAc,EAAE,MAAM,CAAC,CAAC;gBACzF,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC7D,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChG,CAAC;YACD,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YACzC,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1D,IAAI,QAAQ,CAAC,SAAS,KAAK,UAAU;gBAAE,OAAO,IAAI,CAAC;YACnD,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,kCAAkC,CAAC,CAAC;YAC9I,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe;gBAAE,OAAO,IAAI,CAAC;YACtF,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,cAAc;gBAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9G,IAAI,QAAQ,CAAC,iBAAiB,KAAK,eAAe,EAAE,CAAC;gBACnD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,CAAC,YAAa,CAAC,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBACrJ,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,MAAM,CAAC,QAAQ,0BAA0B,MAAM,CAAC,mBAAmB,wBAAwB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;YAClL,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAgB,EAAE,IAA0B,EAAE,QAAgB,EAAE,MAAM,GAAgB,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,EAAsB,EAAE;YAC/K,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAChC,sFAAsF;YACtF,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACpH,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAAC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;gBAAC,IAAI,KAAK,KAAK,IAAI;oBAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAAC,CAAC;YACvT,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAC;YACjL,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,YAAY,EAAE,CAAC;gBAChC,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,gBAAgB,KAAK,eAAe,EAAE,CAAC;oBACxE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACnF,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,qCAAqC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACpH,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtF,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC7H,CAAC;qBAAM,CAAC;oBACN,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;oBACxI,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACjF,IAAI,QAAyD,CAAC;oBAC9D,IAAI,CAAC;wBAAC,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAAC,CAAC;oBAC3F,MAAM,CAAC;wBAAC,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;wBAAC,IAAI,KAAK,KAAK,IAAI;4BAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAAC,CAAC;oBAChH,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,CAAC;oBACzC,IAAI,QAAQ,KAAK,SAAS;wBAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACrE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAa,CAAC,iBAAiB,CAAC;oBACnD,IAAI,KAAK,KAAK,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;oBACpH,IAAI,OAAO,GAAG,MAAM,iCAAiC,CAAC,KAAK,EAAE,IAAI,CAAC,YAAa,CAAC,eAAe,CAAC,CAAC;oBACjG,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAQ,CAAC,QAAQ,EAAE,CAAC;wBAC1G,IAAI,CAAC,SAAS;4BAAE,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;wBACjI,IAAI,IAAI,CAAC,YAAa,CAAC,kBAAkB,KAAK,IAAI;4BAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;wBACvJ,IAAI,IAAI,CAAC,OAAQ,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;4BAC5C,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;4BACrE,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,YAAa,CAAC,kBAAmB,EAAE,MAAM,EAAE,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC7N,CAAC;wBACD,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAa,CAAC,kBAAmB,CAAC,CAAC;wBACjG,IAAI,SAAS,EAAE,KAAK,KAAK,mBAAmB,IAAI,SAAS,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;4BACjF,IAAI,IAAI,CAAC,OAAQ,CAAC,KAAK,KAAK,SAAS;gCAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;4BACxH,IAAI,SAAS,CAAC,KAAK,KAAK,WAAW;gCAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;wBACxH,CAAC;6BAAM,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;4BAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;wBACvL,IAAI,IAAI,CAAC,OAAQ,CAAC,MAAM,KAAK,IAAI;4BAAE,OAAO,IAAI,CAAC;oBACjD,CAAC;oBACD,IAAI,IAAI,CAAC,OAAQ,CAAC,MAAM,KAAK,IAAI;wBAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,wCAAwC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACxS,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,IAAI,SAAS;4BAAE,IAAI,CAAC;gCAAC,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;4BAAC,CAAC;4BAAC,MAAM,CAAC,CAAC,+DAA+D,CAAC,CAAC;wBACtM,MAAM,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,YAAa,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;wBAC5F,OAAO,GAAG,MAAM,iCAAiC,CAAC,KAAK,EAAE,IAAI,CAAC,YAAa,CAAC,eAAe,CAAC,CAAC;oBAC/F,CAAC;oBACD,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;oBAC1F,MAAM,iCAAiC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;oBAC/D,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtF,MAAM,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACzC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC7H,CAAC;YACH,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAClH,uFAAuF;YACvF,IAAI,IAAI,KAAK,UAAU;gBAAE,OAAO,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,OAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,eAAe,EAAE,CAAC;gBACxE,IAAI,SAAS,IAAI,SAAS,CAAC,gBAAgB,KAAK,eAAe,EAAE,CAAC;oBAChE,IAAI,CAAC,OAAO,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;oBACrH,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC9K,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
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"}
|