@codetreker/daynight 0.38.0 → 0.39.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.
Files changed (69) hide show
  1. package/README.md +114 -38
  2. package/dist/api/client.d.ts +8 -3
  3. package/dist/api/client.js +25 -3
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/index.d.ts +1 -0
  6. package/dist/api/index.js +1 -0
  7. package/dist/api/index.js.map +1 -1
  8. package/dist/api/parse.d.ts +2 -2
  9. package/dist/api/parse.js +30 -24
  10. package/dist/api/parse.js.map +1 -1
  11. package/dist/api/task-steps.d.ts +6 -0
  12. package/dist/api/task-steps.js +48 -0
  13. package/dist/api/task-steps.js.map +1 -0
  14. package/dist/api/types.d.ts +29 -9
  15. package/dist/cli/application.js +6 -0
  16. package/dist/cli/application.js.map +1 -1
  17. package/dist/commands/skill/usage.md +38 -2
  18. package/dist/commands/task/command.js +5 -0
  19. package/dist/commands/task/command.js.map +1 -1
  20. package/dist/commands/task/definition.js +22 -0
  21. package/dist/commands/task/definition.js.map +1 -1
  22. package/dist/commands/task/step-diagnostics.d.ts +6 -0
  23. package/dist/commands/task/step-diagnostics.js +63 -0
  24. package/dist/commands/task/step-diagnostics.js.map +1 -0
  25. package/dist/commands/task/step-rendering.d.ts +5 -0
  26. package/dist/commands/task/step-rendering.js +40 -0
  27. package/dist/commands/task/step-rendering.js.map +1 -0
  28. package/dist/commands/task/step.d.ts +8 -0
  29. package/dist/commands/task/step.js +49 -0
  30. package/dist/commands/task/step.js.map +1 -0
  31. package/dist/commands/worker/backends/grant-renewal.js +1 -1
  32. package/dist/commands/worker/backends/grant-renewal.js.map +1 -1
  33. package/dist/commands/worker/backends/sqlite/002-resource-observations.sql +6 -0
  34. package/dist/commands/worker/backends/web-process.js +13 -3
  35. package/dist/commands/worker/backends/web-process.js.map +1 -1
  36. package/dist/commands/worker/backends/web-record.js +2 -18
  37. package/dist/commands/worker/backends/web-record.js.map +1 -1
  38. package/dist/commands/worker/backends/web-store.d.ts +0 -13
  39. package/dist/commands/worker/backends/web-store.js +5 -47
  40. package/dist/commands/worker/backends/web-store.js.map +1 -1
  41. package/dist/commands/worker/backends/web-types.d.ts +0 -13
  42. package/dist/commands/worker/backends/web-types.js +0 -1
  43. package/dist/commands/worker/backends/web-types.js.map +1 -1
  44. package/dist/commands/worker/backends/web.d.ts +5 -1
  45. package/dist/commands/worker/backends/web.js +120 -89
  46. package/dist/commands/worker/backends/web.js.map +1 -1
  47. package/dist/commands/worker/cleanup-schedule.js +2 -2
  48. package/dist/commands/worker/cleanup-schedule.js.map +1 -1
  49. package/dist/commands/worker/cleanup.d.ts +1 -3
  50. package/dist/commands/worker/cleanup.js +53 -56
  51. package/dist/commands/worker/cleanup.js.map +1 -1
  52. package/dist/commands/worker/coordinator.js +84 -49
  53. package/dist/commands/worker/coordinator.js.map +1 -1
  54. package/dist/commands/worker/sqlite/007-resource-cleanup-intent.sql +2 -0
  55. package/dist/commands/worker/store.js +9 -21
  56. package/dist/commands/worker/store.js.map +1 -1
  57. package/dist/commands/worker/types.d.ts +0 -2
  58. package/dist/commands/worker/worktrees.d.ts +1 -0
  59. package/dist/commands/worker/worktrees.js +87 -33
  60. package/dist/commands/worker/worktrees.js.map +1 -1
  61. package/dist/repository/context.js +2 -3
  62. package/dist/repository/context.js.map +1 -1
  63. package/dist/repository/discovery-error.d.ts +5 -0
  64. package/dist/repository/discovery-error.js +18 -0
  65. package/dist/repository/discovery-error.js.map +1 -0
  66. package/dist/repository/index.d.ts +1 -0
  67. package/dist/repository/index.js +1 -0
  68. package/dist/repository/index.js.map +1 -1
  69. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { CLEANUP_OPERATION_MS, cleanupOperation } from "../../cleanup-operation.js";
2
2
  import path from "node:path";
3
- import { unlink } from "node:fs/promises";
3
+ import { lstat, unlink } from "node:fs/promises";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { controllerExecutionDirectory, readLaunchTicket } from "../../controller/launch-ticket.js";
6
6
  import { requestController } from "../../controller/local-client.js";
@@ -9,7 +9,7 @@ import { confirmControllerProcessesStopped, stopControllerProcesses } from "../.
9
9
  import { workerOperation } from "../execution.js";
10
10
  import { workerCleanupPrompt } from "../prompts.js";
11
11
  import { WorkerCleanupError } from "../cleanup-error.js";
12
- import { backendResourcesClosed, taskAgentControlMode } from "./web-types.js";
12
+ import { taskAgentControlMode } from "./web-types.js";
13
13
  export const createWebExecutionBackend = (options) => {
14
14
  const request = options.request ?? requestController;
15
15
  const current = (task) => { const latest = options.store.getTask(task); if (latest === null || taskAgentControlMode(latest) !== "web")
@@ -32,6 +32,20 @@ export const createWebExecutionBackend = (options) => {
32
32
  if (!(error instanceof Error && "code" in error && error.code === "ENOENT"))
33
33
  throw error;
34
34
  }
35
+ try {
36
+ await lstat(endpoint);
37
+ }
38
+ catch (error) {
39
+ if (error instanceof Error && "code" in error && error.code === "ENOENT")
40
+ return;
41
+ throw error;
42
+ }
43
+ throw new Error("The original controller endpoint still exists after cleanup.");
44
+ };
45
+ const matchesGeneration = (task, snapshot) => {
46
+ const execution = task.webExecution;
47
+ return snapshot.executionId === execution.executionId && snapshot.claimId === task.claimId && snapshot.sessionId === execution.sessionId
48
+ && snapshot.executionGeneration === execution.executionGeneration && snapshot.controllerInstanceId === execution.controllerInstanceId;
35
49
  };
36
50
  return {
37
51
  advance: async (input, signal) => {
@@ -177,127 +191,144 @@ export const createWebExecutionBackend = (options) => {
177
191
  let stage = "observation";
178
192
  try {
179
193
  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") {
194
+ let task = current(input);
195
+ if (task.status !== "done" && kind === "shutdown" && task.cleanup === null && task.recovery.retryAuthorized && task.recovery.pauseReason === null)
196
+ task = options.store.pauseRecovery(task, "The explicit recovery attempt stopped before a successful observation.", options.now());
197
+ if (task.status !== "done" && kind === "shutdown" && task.cleanup === null && task.recovery.pauseReason === null && task.configuration !== null && task.recovery.count >= task.configuration.recoveryLimit && task.webExecution !== null && task.webExecution.launchSubmission !== "not-submitted") {
184
198
  // Shutdown provenance must not turn an already exhausted writer into a healthy orderly restart.
185
199
  try {
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)
200
+ const saved = readControllerSnapshot(journal(task));
201
+ if (saved === null || !matchesGeneration(task, saved) || saved.controllerProcess === null)
188
202
  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());
203
+ if (["failed", "paused", "stopped", "stopping"].includes(saved.lifecycle) || await confirmControllerProcessesStopped(saved.controllerProcess, saved.nativeProcesses))
204
+ task = options.store.pauseRecovery(task, "The execution recovery budget is exhausted.", options.now());
195
205
  }
196
206
  catch (error) {
197
207
  signal.throwIfAborted();
198
- original = options.store.pauseRecovery(original, error instanceof Error ? error.message : String(error), options.now());
208
+ task = options.store.pauseRecovery(task, error instanceof Error ? error.message : String(error), options.now());
199
209
  }
200
210
  }
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";
211
+ if (task.status !== "done")
212
+ task = options.store.beginCleanup(task, { kind, deadline: Math.max(startedAt, deadline) }, startedAt);
213
+ const intent = task.cleanup;
214
+ if (intent === null)
215
+ throw new Error("The original cleanup intent is missing.");
204
216
  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());
217
+ if (execution === null && task.configuration === null)
218
+ throw new Error("The recovered Web claim has no original launch provenance; its resources are retained.");
219
+ stage = "agent-stop";
220
+ let launched = false;
221
+ if (execution !== null) {
222
+ let saved = readControllerSnapshot(journal(task));
223
+ if (saved !== null && !matchesGeneration(task, saved)) {
224
+ if (execution.launchSubmission !== "not-submitted" || saved.executionId !== execution.executionId || saved.claimId !== task.claimId
225
+ || saved.controllerProcess === null || BigInt(saved.executionGeneration) + 1n !== BigInt(execution.executionGeneration)
226
+ || !await confirmControllerProcessesStopped(saved.controllerProcess, saved.nativeProcesses))
227
+ throw new Error("The original controller generation cannot be identified and stopped from its journal.");
228
+ saved = null;
213
229
  }
214
- else {
215
- if (execution.ticketPath === null)
216
- throw new Error("The original launch ticket is missing; cleanup retains its unknown native writer.");
230
+ launched = saved !== null || execution.launchSubmission !== "not-submitted";
231
+ if (launched) {
217
232
  const ticket = await readLaunchTicket(options.homeDirectory, execution.launchId);
233
+ if (ticket.executionId !== execution.executionId || ticket.claimId !== task.claimId || ticket.sessionId !== execution.sessionId
234
+ || ticket.executionGeneration !== execution.executionGeneration || ticket.controllerInstanceId !== execution.controllerInstanceId
235
+ || ticket.worktreeId !== task.worktreeId || ticket.workerId !== task.workerId || ticket.serverOrigin !== task.serverOrigin)
236
+ throw new Error("The cleanup ticket does not identify the original execution.");
218
237
  let response;
219
238
  try {
220
239
  response = await request(ticket, { kind: "observe" }, { signal, timeoutMs: CLEANUP_OPERATION_MS });
221
240
  }
222
- catch {
223
- const saved = readControllerSnapshot(journal(task));
224
- if (saved !== null)
225
- task = remember(task, saved);
241
+ catch (error) {
242
+ signal.throwIfAborted();
243
+ const observed = readControllerSnapshot(journal(task));
244
+ if (observed !== null) {
245
+ if (!matchesGeneration(task, observed))
246
+ throw new Error("The original controller journal belongs to a different generation.", { cause: error });
247
+ saved = observed;
248
+ }
226
249
  }
227
250
  const reachable = response !== undefined;
228
- if (response !== undefined)
229
- task = remember(task, response.snapshot);
230
- const proof = task.webExecution.controllerProcess;
251
+ if (response !== undefined) {
252
+ if (!matchesGeneration(task, response.snapshot))
253
+ throw new Error("The observed controller belongs to a different generation.");
254
+ saved = response.snapshot;
255
+ }
256
+ if (saved?.nativeSessionId != null && task.status !== "done")
257
+ task = options.store.bindNativeSession(task, { source: "controller", sessionId: saved.nativeSessionId }, options.now());
258
+ if (saved?.controllerProcess != null && execution.controllerProcess !== null) {
259
+ const original = execution.controllerProcess, observed = saved.controllerProcess;
260
+ if (observed.pid !== original.pid || observed.startedAt !== original.startedAt || observed.commandHash !== original.commandHash
261
+ || observed.processGroupId !== original.processGroupId)
262
+ throw new Error("The original controller process identity conflicts with its journal.");
263
+ }
264
+ const proof = saved?.controllerProcess ?? execution.controllerProcess;
265
+ const native = saved?.nativeProcesses ?? execution.nativeProcesses;
231
266
  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) {
267
+ throw new Error("The original controller process identity is missing; cleanup cannot infer stop.");
268
+ let stopped = await confirmControllerProcessesStopped(proof, native);
269
+ if (!immediateStop && task.status !== "done" && !stopped && options.now() < intent.deadline) {
235
270
  if (!reachable)
236
- throw new Error("The original controller is unavailable; cleanup retains its fixed deadline and process proof.");
271
+ throw new Error("The original controller is unavailable; cleanup retains its fixed deadline and process identity.");
237
272
  if (task.webExecution.cleanupOperationId === null)
238
273
  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());
274
+ const operationId = task.webExecution.cleanupOperationId;
275
+ let operation = readControllerOperation(journal(task), operationId);
276
+ if (operation === null) {
277
+ try {
278
+ await request(ticket, { kind: "cleanup", operationId, prompt: workerCleanupPrompt(task, intent.deadline), deadline: intent.deadline }, { signal, timeoutMs: Math.max(1, Math.min(CLEANUP_OPERATION_MS, intent.deadline - options.now())) });
279
+ }
280
+ catch (error) {
281
+ signal.throwIfAborted();
282
+ operation = readControllerOperation(journal(task), operationId);
283
+ if (operation === null)
284
+ throw error;
285
+ }
286
+ operation = readControllerOperation(journal(task), operationId);
249
287
  }
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;
288
+ if (operation !== null && (operation.kind !== "cleanup" || operation.executionGeneration !== execution.executionGeneration))
289
+ throw new Error("The cleanup operation belongs to a different controller generation.");
290
+ if (operation === null || !["confirmed", "failed", "rejected", "expired"].includes(operation.state))
291
+ return { task, complete: false };
254
292
  }
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
293
  if (!stopped) {
258
294
  if (reachable)
259
295
  try {
260
296
  await request(ticket, { kind: "stop", deadline: options.now() + CLEANUP_OPERATION_MS }, { signal, timeoutMs: CLEANUP_OPERATION_MS });
261
297
  }
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);
298
+ catch { /* OS process observation remains authoritative after an IPC loss. */ }
299
+ signal.throwIfAborted();
300
+ try {
301
+ await stopControllerProcesses(proof, native, Date.now() + CLEANUP_OPERATION_MS);
302
+ }
303
+ catch (error) {
304
+ if (!await confirmControllerProcessesStopped(proof, native))
305
+ throw error;
306
+ }
307
+ stopped = await confirmControllerProcessesStopped(proof, native);
265
308
  }
266
309
  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());
310
+ throw new Error("The original controller or its native processes still exist.");
311
+ if (saved !== null)
312
+ await recordStoppedControllerGeneration(journal(task), ticket);
313
+ stage = "backend-close";
314
+ await removeEndpoint(ticket.ipcEndpoint);
270
315
  }
271
316
  }
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);
277
- await removeEndpoint(ticket.ipcEndpoint);
278
- task = options.store.confirmBackendResourcesClosed(task, { controllerStopped: true, endpointClosed: true }, options.now());
279
- }
280
- // Shutdown proves stop but leaves any terminal finalization for normal reconciliation.
317
+ signal.throwIfAborted();
281
318
  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());
319
+ return { task, complete: true };
320
+ if (launched) {
321
+ stage = "archive";
322
+ if (!options.archive)
323
+ throw new Error("Session archive uploader is unavailable; the original worktree is retained.");
324
+ await options.archive(task, journal(task), signal);
288
325
  }
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());
299
- }
300
- return task;
326
+ stage = "worktree-removal";
327
+ const project = { projectId: task.projectId, repoUrl: task.repoUrl, localPath: task.repositoryPath };
328
+ await cleanupOperation(operation => options.git.removeWorktree(project, task, operation), signal);
329
+ if (await cleanupOperation(operation => options.git.findWorktree(project, task, operation), signal) !== null)
330
+ throw new Error("The original task still has Git worktree resources after cleanup.");
331
+ return { task, complete: true };
301
332
  }
302
333
  catch (error) {
303
334
  throw new WorkerCleanupError(stage, error);
@@ -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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"}
@@ -1,4 +1,4 @@
1
- // Persist responsibility before any cleanup side effect; a restart must not replay input.
1
+ // Retain resource ownership and the original policy deadline across retries.
2
2
  export const ensureCleanupSchedule = (store, owner, now) => {
3
3
  const previous = store.getCleanupSchedule(owner);
4
4
  if (previous !== null) {
@@ -6,6 +6,6 @@ export const ensureCleanupSchedule = (store, owner, now) => {
6
6
  throw new Error("The cleanup claim has conflicting worktree identities.");
7
7
  return previous;
8
8
  }
9
- return store.saveCleanupSchedule(owner, { deadline: now + 600_000, notified: false, submitted: false, failures: 0, nextAttemptAt: now, stage: "observation", lastError: null });
9
+ return store.saveCleanupSchedule(owner, { deadline: now + 600_000, failures: 0, nextAttemptAt: now, stage: "observation", lastError: null });
10
10
  };
11
11
  //# sourceMappingURL=cleanup-schedule.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"cleanup-schedule.js","sourceRoot":"","sources":["../../../src/commands/worker/cleanup-schedule.ts"],"names":[],"mappings":"AAGA,6EAA6E;AAC7E,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,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/I,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- import type { HerdrOwnedWorkspace } from "./herdr.js";
2
1
  import type { ExecutionDependencies } from "./execution.js";
3
2
  import type { LocalTask, ResourceOwner, WorkerProject } from "./types.js";
4
3
  export type CleanupInput = {
@@ -7,6 +6,5 @@ export type CleanupInput = {
7
6
  task?: LocalTask;
8
7
  };
9
8
  export declare const createCleanupDriver: (deps: Omit<ExecutionDependencies, "readTask">) => {
10
- advance: (input: CleanupInput, resources: readonly HerdrOwnedWorkspace[], deleteWorktree: boolean, signal?: AbortSignal) => Promise<boolean>;
11
- remaining: (owner: ResourceOwner) => number;
9
+ advance: (input: CleanupInput, deleteWorktree: boolean, signal?: AbortSignal) => Promise<void>;
12
10
  };
@@ -1,69 +1,66 @@
1
1
  import path from "node:path";
2
+ import { setTimeout as delay } from "node:timers/promises";
2
3
  import { CLEANUP_OPERATION_MS, cleanupOperation } from "../cleanup-operation.js";
3
4
  import { ensureCleanupSchedule } from "./cleanup-schedule.js";
4
5
  import { WorkerCleanupError } from "./cleanup-error.js";
5
6
  import { actualTaskPane, executionContext, liveAgent, settleWorkerStops } from "./execution.js";
6
7
  import { workerCleanupPrompt } from "./prompts.js";
7
- const key = (owner) => `${owner.projectId}/${owner.taskId}/${owner.claimId}`;
8
- export const createCleanupDriver = (deps) => {
9
- const attempts = new Map();
10
- return {
11
- advance: async (input, resources, deleteWorktree, signal) => {
12
- const identity = key(input.owner);
13
- let attempt = deleteWorktree ? ensureCleanupSchedule(deps.store, input.owner, deps.now()) : attempts.get(identity);
14
- if (attempt === undefined) {
15
- attempt = { deadline: deps.now() + 600_000, notified: false, submitted: false };
16
- attempts.set(identity, attempt);
17
- deps.emit({ kind: "cleanup-started", ...(input.task === undefined ? {} : { task: input.task }), message: `Cleaning claim ${input.owner.claimId}; this attempt has a ten-minute deadline.` });
18
- }
19
- const saveAttempt = () => {
20
- if (deleteWorktree)
21
- deps.store.saveCleanupSchedule(input.owner, { ...deps.store.getCleanupSchedule(input.owner), deadline: attempt.deadline, notified: attempt.notified, submitted: attempt.submitted });
22
- };
23
- let stage = "agent-stop";
24
- try {
25
- const stopContext = { ...input.owner, cwd: path.join(input.project.localPath, ".worktrees", "daynight", input.owner.taskId) };
26
- const stopped = await settleWorkerStops(deps, input.owner, signal, cleanupOperation);
27
- const pane = stopped ? undefined : actualTaskPane(input.owner, resources);
8
+ export const createCleanupDriver = (deps) => ({
9
+ advance: async (input, deleteWorktree, signal) => {
10
+ const deadline = deleteWorktree ? ensureCleanupSchedule(deps.store, input.owner, deps.now()).deadline : deps.now() + 600_000;
11
+ let stage = "agent-stop";
12
+ try {
13
+ const stopContext = { ...input.owner, cwd: path.join(input.project.localPath, ".worktrees", "daynight", input.owner.taskId) };
14
+ await settleWorkerStops(deps, input.owner, signal, cleanupOperation);
15
+ const observe = async () => actualTaskPane(input.owner, await cleanupOperation(operation => deps.herdr.tasks.listResources(operation), signal));
16
+ let pane = await observe();
17
+ if (pane !== undefined) {
18
+ const agent = input.task?.agent ?? pane.kind ?? pane.nativeSession?.agent;
19
+ if (agent !== undefined && liveAgent(pane) && deps.now() < deadline) {
20
+ const context = executionContext({ ...input, task: { agent } });
21
+ deps.emit({ kind: "cleanup-started", ...(input.task === undefined ? {} : { task: input.task }), message: `Cleaning claim ${input.owner.claimId}; observing its resources until ${new Date(deadline).toISOString()}.` });
22
+ // Herdr has no per-input operation lookup. The notification is advisory;
23
+ // a restarted attempt observes resources again and may notify the surviving agent.
24
+ try {
25
+ await cleanupOperation(operation => deps.herdr.tasks.submitPrompt(context, pane.binding, workerCleanupPrompt(input.owner, deadline), operation), signal, Math.max(1, Math.min(CLEANUP_OPERATION_MS, deadline - deps.now())));
26
+ }
27
+ catch (error) {
28
+ signal?.throwIfAborted();
29
+ deps.emit({ kind: "cleanup-notification-error", ...(input.task === undefined ? {} : { task: input.task }), message: "Cleanup notification failed; actual resources will still be observed and stopped.", error });
30
+ }
31
+ while (true) {
32
+ if (deps.now() < deadline)
33
+ await delay(Math.max(1, Math.min(1000, deadline - deps.now())), undefined, signal === undefined ? {} : { signal });
34
+ pane = await observe();
35
+ if (pane === undefined || !liveAgent(pane) || pane.status === "idle" || deps.now() >= deadline)
36
+ break;
37
+ }
38
+ }
28
39
  if (pane !== undefined) {
29
- const agent = input.task?.agent ?? pane.kind ?? pane.nativeSession?.agent;
30
- if (agent === undefined) {
31
- await cleanupOperation((operation) => deps.herdr.tasks.stopAndClose(stopContext, pane.binding, operation), signal);
40
+ try {
41
+ await cleanupOperation(operation => deps.herdr.tasks.stopAndClose(stopContext, pane.binding, operation), signal);
32
42
  }
33
- else {
34
- const context = executionContext({ ...input, task: { agent } });
35
- if (liveAgent(pane) && !attempt.notified && deps.now() < attempt.deadline) {
36
- attempt.notified = true;
37
- saveAttempt();
38
- try {
39
- await cleanupOperation((operation) => deps.herdr.tasks.submitPrompt(context, pane.binding, workerCleanupPrompt(input.owner, attempt.deadline), operation), signal, Math.max(1, Math.min(CLEANUP_OPERATION_MS, attempt.deadline - deps.now())));
40
- attempt.submitted = true;
41
- saveAttempt();
42
- }
43
- catch (error) {
44
- deps.emit({ kind: "cleanup-notification-error", ...(input.task === undefined ? {} : { task: input.task }), message: "Cleanup notification failed; the current bounded cleanup attempt continues.", error });
45
- }
46
- if (deps.now() < attempt.deadline)
47
- return false;
48
- }
49
- const completed = attempt.submitted && pane.status === "idle";
50
- if (liveAgent(pane) && !completed && deps.now() < attempt.deadline)
51
- return false;
52
- await cleanupOperation((operation) => deps.herdr.tasks.stopAndClose(context, pane.binding, operation), signal);
43
+ catch (error) {
44
+ signal?.throwIfAborted();
45
+ if (await observe() !== undefined)
46
+ throw error;
53
47
  }
54
48
  }
55
- stage = "worktree-removal";
56
- if (deleteWorktree)
57
- await cleanupOperation((operation) => deps.git.removeWorktree(input.project, input.owner, operation), signal);
58
- attempts.delete(identity);
59
- deps.emit({ kind: deleteWorktree ? "cleaned" : "agent-stopped", ...(input.task === undefined ? {} : { task: input.task }), message: deleteWorktree ? "Stopped the task resources and deleted its worktree; the branch remains." : "Stopped the task resources and preserved its worktree." });
60
- return true;
61
49
  }
62
- catch (error) {
63
- throw new WorkerCleanupError(stage, error);
50
+ await settleWorkerStops(deps, input.owner, signal, cleanupOperation);
51
+ if (await observe() !== undefined)
52
+ throw new Error("The original task pane still exists after cleanup.");
53
+ stage = "worktree-removal";
54
+ if (deleteWorktree) {
55
+ await cleanupOperation(operation => deps.git.removeWorktree(input.project, input.owner, operation), signal);
56
+ if (await cleanupOperation(operation => deps.git.findWorktree(input.project, input.owner, operation), signal) !== null)
57
+ throw new Error("The original task worktree resources still exist after cleanup.");
64
58
  }
65
- },
66
- remaining: (owner) => Math.max(0, (deps.store.getCleanupSchedule(owner)?.deadline ?? attempts.get(key(owner))?.deadline ?? deps.now()) - deps.now()),
67
- };
68
- };
59
+ deps.emit({ kind: deleteWorktree ? "cleaned" : "agent-stopped", ...(input.task === undefined ? {} : { task: input.task }), message: deleteWorktree ? "Confirmed task resources absent; the branch remains." : "Confirmed task execution stopped and closed; its worktree remains." });
60
+ }
61
+ catch (error) {
62
+ throw new WorkerCleanupError(stage, error);
63
+ }
64
+ },
65
+ });
69
66
  //# sourceMappingURL=cleanup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/worker/cleanup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/worker/cleanup.ts"],"names":[],"mappings":"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"}