@codetreker/daynight 0.25.2 → 0.26.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 (181) hide show
  1. package/README.md +116 -8
  2. package/config.example.yml +3 -0
  3. package/dist/api/client.js +2 -2
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/parse.js +14 -2
  6. package/dist/api/parse.js.map +1 -1
  7. package/dist/api/types.d.ts +4 -1
  8. package/dist/api/worker-mode.d.ts +6 -0
  9. package/dist/api/worker-mode.js +14 -0
  10. package/dist/api/worker-mode.js.map +1 -0
  11. package/dist/cli/commands.js +2 -0
  12. package/dist/cli/commands.js.map +1 -1
  13. package/dist/commands/controller/command-controls.d.ts +4 -0
  14. package/dist/commands/controller/command-controls.js +33 -0
  15. package/dist/commands/controller/command-controls.js.map +1 -0
  16. package/dist/commands/controller/definition.d.ts +3 -0
  17. package/dist/commands/controller/definition.js +22 -0
  18. package/dist/commands/controller/definition.js.map +1 -0
  19. package/dist/commands/controller/independent.d.ts +3 -0
  20. package/dist/commands/controller/independent.js +344 -0
  21. package/dist/commands/controller/independent.js.map +1 -0
  22. package/dist/commands/controller/index.d.ts +12 -0
  23. package/dist/commands/controller/index.js +73 -0
  24. package/dist/commands/controller/index.js.map +1 -0
  25. package/dist/commands/controller/launch-ticket.d.ts +49 -0
  26. package/dist/commands/controller/launch-ticket.js +99 -0
  27. package/dist/commands/controller/launch-ticket.js.map +1 -0
  28. package/dist/commands/controller/lifecycle-store.d.ts +84 -0
  29. package/dist/commands/controller/lifecycle-store.js +278 -0
  30. package/dist/commands/controller/lifecycle-store.js.map +1 -0
  31. package/dist/commands/controller/local-client.d.ts +44 -0
  32. package/dist/commands/controller/local-client.js +75 -0
  33. package/dist/commands/controller/local-client.js.map +1 -0
  34. package/dist/commands/controller/local-content.d.ts +23 -0
  35. package/dist/commands/controller/local-content.js +103 -0
  36. package/dist/commands/controller/local-content.js.map +1 -0
  37. package/dist/commands/controller/process-proof.d.ts +13 -0
  38. package/dist/commands/controller/process-proof.js +121 -0
  39. package/dist/commands/controller/process-proof.js.map +1 -0
  40. package/dist/commands/controller/providers/claude.d.ts +2 -0
  41. package/dist/commands/controller/providers/claude.js +470 -0
  42. package/dist/commands/controller/providers/claude.js.map +1 -0
  43. package/dist/commands/controller/providers/codex.d.ts +2 -0
  44. package/dist/commands/controller/providers/codex.js +254 -0
  45. package/dist/commands/controller/providers/codex.js.map +1 -0
  46. package/dist/commands/controller/providers/controls-claude.d.ts +26 -0
  47. package/dist/commands/controller/providers/controls-claude.js +138 -0
  48. package/dist/commands/controller/providers/controls-claude.js.map +1 -0
  49. package/dist/commands/controller/providers/controls-codex.d.ts +38 -0
  50. package/dist/commands/controller/providers/controls-codex.js +199 -0
  51. package/dist/commands/controller/providers/controls-codex.js.map +1 -0
  52. package/dist/commands/controller/providers/controls-copilot.d.ts +20 -0
  53. package/dist/commands/controller/providers/controls-copilot.js +143 -0
  54. package/dist/commands/controller/providers/controls-copilot.js.map +1 -0
  55. package/dist/commands/controller/providers/controls.d.ts +21 -0
  56. package/dist/commands/controller/providers/controls.js +53 -0
  57. package/dist/commands/controller/providers/controls.js.map +1 -0
  58. package/dist/commands/controller/providers/copilot-interactions.d.ts +47 -0
  59. package/dist/commands/controller/providers/copilot-interactions.js +295 -0
  60. package/dist/commands/controller/providers/copilot-interactions.js.map +1 -0
  61. package/dist/commands/controller/providers/copilot-projection.d.ts +11 -0
  62. package/dist/commands/controller/providers/copilot-projection.js +93 -0
  63. package/dist/commands/controller/providers/copilot-projection.js.map +1 -0
  64. package/dist/commands/controller/providers/copilot-runtime.d.ts +9 -0
  65. package/dist/commands/controller/providers/copilot-runtime.js +127 -0
  66. package/dist/commands/controller/providers/copilot-runtime.js.map +1 -0
  67. package/dist/commands/controller/providers/copilot.d.ts +2 -0
  68. package/dist/commands/controller/providers/copilot.js +309 -0
  69. package/dist/commands/controller/providers/copilot.js.map +1 -0
  70. package/dist/commands/controller/providers/interactions.d.ts +3 -0
  71. package/dist/commands/controller/providers/interactions.js +79 -0
  72. package/dist/commands/controller/providers/interactions.js.map +1 -0
  73. package/dist/commands/controller/providers/native-rpc.d.ts +28 -0
  74. package/dist/commands/controller/providers/native-rpc.js +85 -0
  75. package/dist/commands/controller/providers/native-rpc.js.map +1 -0
  76. package/dist/commands/controller/providers/projection.d.ts +23 -0
  77. package/dist/commands/controller/providers/projection.js +99 -0
  78. package/dist/commands/controller/providers/projection.js.map +1 -0
  79. package/dist/commands/controller/providers/turns.d.ts +7 -0
  80. package/dist/commands/controller/providers/turns.js +21 -0
  81. package/dist/commands/controller/providers/turns.js.map +1 -0
  82. package/dist/commands/controller/providers/types.d.ts +44 -0
  83. package/dist/commands/controller/providers/types.js +2 -0
  84. package/dist/commands/controller/providers/types.js.map +1 -0
  85. package/dist/commands/controller/recovery.d.ts +6 -0
  86. package/dist/commands/controller/recovery.js +22 -0
  87. package/dist/commands/controller/recovery.js.map +1 -0
  88. package/dist/commands/controller/relay.d.ts +18 -0
  89. package/dist/commands/controller/relay.js +299 -0
  90. package/dist/commands/controller/relay.js.map +1 -0
  91. package/dist/commands/controller/resume.d.ts +18 -0
  92. package/dist/commands/controller/resume.js +193 -0
  93. package/dist/commands/controller/resume.js.map +1 -0
  94. package/dist/commands/controller/runtime.d.ts +5 -0
  95. package/dist/commands/controller/runtime.js +455 -0
  96. package/dist/commands/controller/runtime.js.map +1 -0
  97. package/dist/commands/controller/windows-job.d.ts +3 -0
  98. package/dist/commands/controller/windows-job.js +59 -0
  99. package/dist/commands/controller/windows-job.js.map +1 -0
  100. package/dist/commands/controller/wire-display.d.ts +5 -0
  101. package/dist/commands/controller/wire-display.js +11 -0
  102. package/dist/commands/controller/wire-display.js.map +1 -0
  103. package/dist/commands/skill/skills/using-daynight/SKILL.md +24 -20
  104. package/dist/commands/skill/skills/using-daynight/references/autopilot-managed-task.md +16 -10
  105. package/dist/commands/skill/skills/using-daynight/references/create-task.md +40 -39
  106. package/dist/commands/skill/skills/using-daynight/references/goal.md +40 -29
  107. package/dist/commands/skill/skills/using-daynight/references/handbook.md +4 -3
  108. package/dist/commands/skill/skills/using-daynight/references/handoff.md +3 -0
  109. package/dist/commands/skill/skills/using-daynight/references/run-task.md +3 -3
  110. package/dist/commands/skill/skills/using-daynight/references/task-content.md +96 -51
  111. package/dist/commands/skill/skills/using-daynight/references/task-execution.md +28 -22
  112. package/dist/commands/worker/backend.d.ts +7 -0
  113. package/dist/commands/worker/backend.js +7 -0
  114. package/dist/commands/worker/backend.js.map +1 -0
  115. package/dist/commands/worker/backends/grant-renewal.d.ts +13 -0
  116. package/dist/commands/worker/backends/grant-renewal.js +42 -0
  117. package/dist/commands/worker/backends/grant-renewal.js.map +1 -0
  118. package/dist/commands/worker/backends/session-api.d.ts +66 -0
  119. package/dist/commands/worker/backends/session-api.js +84 -0
  120. package/dist/commands/worker/backends/session-api.js.map +1 -0
  121. package/dist/commands/worker/backends/web-process.d.ts +79 -0
  122. package/dist/commands/worker/backends/web-process.js +156 -0
  123. package/dist/commands/worker/backends/web-process.js.map +1 -0
  124. package/dist/commands/worker/backends/web-store.d.ts +49 -0
  125. package/dist/commands/worker/backends/web-store.js +323 -0
  126. package/dist/commands/worker/backends/web-store.js.map +1 -0
  127. package/dist/commands/worker/backends/web-types.d.ts +83 -0
  128. package/dist/commands/worker/backends/web-types.js +3 -0
  129. package/dist/commands/worker/backends/web-types.js.map +1 -0
  130. package/dist/commands/worker/backends/web.d.ts +26 -0
  131. package/dist/commands/worker/backends/web.js +178 -0
  132. package/dist/commands/worker/backends/web.js.map +1 -0
  133. package/dist/commands/worker/config.js +12 -5
  134. package/dist/commands/worker/config.js.map +1 -1
  135. package/dist/commands/worker/control.d.ts +2 -0
  136. package/dist/commands/worker/control.js +11 -4
  137. package/dist/commands/worker/control.js.map +1 -1
  138. package/dist/commands/worker/coordinator.d.ts +7 -0
  139. package/dist/commands/worker/coordinator.js +138 -19
  140. package/dist/commands/worker/coordinator.js.map +1 -1
  141. package/dist/commands/worker/herdr/agents.js +11 -8
  142. package/dist/commands/worker/herdr/agents.js.map +1 -1
  143. package/dist/commands/worker/herdr/arguments.js +10 -5
  144. package/dist/commands/worker/herdr/arguments.js.map +1 -1
  145. package/dist/commands/worker/herdr/claude-input.d.ts +2 -0
  146. package/dist/commands/worker/herdr/claude-input.js +20 -0
  147. package/dist/commands/worker/herdr/claude-input.js.map +1 -0
  148. package/dist/commands/worker/herdr/instance.js +1 -1
  149. package/dist/commands/worker/herdr/instance.js.map +1 -1
  150. package/dist/commands/worker/herdr/preflight.d.ts +1 -1
  151. package/dist/commands/worker/herdr/preflight.js +31 -10
  152. package/dist/commands/worker/herdr/preflight.js.map +1 -1
  153. package/dist/commands/worker/herdr.js +5 -1
  154. package/dist/commands/worker/herdr.js.map +1 -1
  155. package/dist/commands/worker/prompts.js +5 -1
  156. package/dist/commands/worker/prompts.js.map +1 -1
  157. package/dist/commands/worker/repositories.js +2 -2
  158. package/dist/commands/worker/repositories.js.map +1 -1
  159. package/dist/commands/worker/runtime.js +62 -10
  160. package/dist/commands/worker/runtime.js.map +1 -1
  161. package/dist/commands/worker/setup-environment.d.ts +2 -1
  162. package/dist/commands/worker/setup-environment.js +10 -4
  163. package/dist/commands/worker/setup-environment.js.map +1 -1
  164. package/dist/commands/worker/setup.js +5 -5
  165. package/dist/commands/worker/setup.js.map +1 -1
  166. package/dist/commands/worker/store.d.ts +2 -1
  167. package/dist/commands/worker/store.js +19 -9
  168. package/dist/commands/worker/store.js.map +1 -1
  169. package/dist/commands/worker/types.d.ts +4 -1
  170. package/dist/commands/worker/worktrees.js +9 -6
  171. package/dist/commands/worker/worktrees.js.map +1 -1
  172. package/dist/session/controller-protocol.d.ts +245 -0
  173. package/dist/session/controller-protocol.js +218 -0
  174. package/dist/session/controller-protocol.js.map +1 -0
  175. package/dist/session/controls.d.ts +28 -0
  176. package/dist/session/controls.js +37 -0
  177. package/dist/session/controls.js.map +1 -0
  178. package/dist/session/protocol.d.ts +290 -0
  179. package/dist/session/protocol.js +307 -0
  180. package/dist/session/protocol.js.map +1 -0
  181. package/package.json +7 -2
@@ -1,3 +1,4 @@
1
+ import { requireImplementedWorkerBackend } from "./backend.js";
1
2
  import { randomUUID } from "node:crypto";
2
3
  import path from "node:path";
3
4
  import { setTimeout as delay } from "node:timers/promises";
@@ -53,11 +54,23 @@ export const createWorkerCoordinator = (options) => {
53
54
  return project;
54
55
  };
55
56
  const configurationFor = (task) => {
57
+ if (task.agentControlMode === "web") {
58
+ const frozen = options.webStore?.getTask(task)?.configuration;
59
+ if (frozen)
60
+ return frozen;
61
+ }
56
62
  const current = options.repositories.find((repository) => repository.project.projectId === task.projectId)?.configuration ?? options.globalConfiguration;
57
- return current.agent === task.agent ? current : { agent: task.agent, model: null, args: [], recoveryLimit: current.recoveryLimit };
63
+ return current.agent === task.agent ? { ...current, agentControlMode: task.agentControlMode ?? "herdr" } : { agent: task.agent, agentControlMode: task.agentControlMode ?? "herdr", model: null, args: [], recoveryLimit: current.recoveryLimit };
58
64
  };
65
+ const needsHerdr = () => options.globalConfiguration.agentControlMode !== "web"
66
+ || options.repositories.some(repository => repository.configuration.agentControlMode !== "web")
67
+ || options.store.listUnfinishedTasks().some(task => task.agentControlMode !== "web");
68
+ const pendingStops = () => needsHerdr() ? options.herdr.tasks.pendingStops() : [];
69
+ const ensureHerdr = async (signal) => { if (needsHerdr())
70
+ await workerOperation(operation => options.herdr.ensureInstance(operation), signal); };
71
+ const listHerdr = async (signal) => needsHerdr() ? workerOperation(operation => options.herdr.tasks.listResources(operation), signal) : [];
59
72
  const snapshot = async (signal, scope, currentClaims = []) => {
60
- const observed = await workerOperation((operation) => options.herdr.tasks.listResources(operation), signal);
73
+ const observed = await listHerdr(signal);
61
74
  const herdr = scope === undefined ? observed : observed.filter((resource) => resource.owner.projectId === scope.projectId);
62
75
  const owners = new Map();
63
76
  const proven = new Set([...options.store.listTasks().map(key), ...currentClaims.map(key)]);
@@ -74,6 +87,12 @@ export const createWorkerCoordinator = (options) => {
74
87
  observe(workspace.owner);
75
88
  proven.add(key(workspace.owner));
76
89
  }
90
+ for (const task of options.webStore?.listUnfinishedTasks() ?? []) {
91
+ if (scope === undefined || task.projectId === scope.projectId) {
92
+ observe(task);
93
+ proven.add(key(task));
94
+ }
95
+ }
77
96
  for (const project of scope === undefined ? options.store.listProjects() : [scope]) {
78
97
  const warnings = new Map();
79
98
  currentWarnings.set(project.projectId, warnings);
@@ -106,7 +125,7 @@ export const createWorkerCoordinator = (options) => {
106
125
  if (result.has(key(owner)))
107
126
  throw new Error("The claim inventory contains duplicate claims.");
108
127
  result.set(key(owner), task);
109
- options.store.registerPending({ projectId: task.projectId, taskId: task.id, claimId: owner.claimId, agent: task.properties.worker.agent });
128
+ options.store.registerPending({ projectId: task.projectId, taskId: task.id, claimId: owner.claimId, agent: task.properties.worker.agent, agentControlMode: task.properties.worker.agentControlMode });
110
129
  }
111
130
  return result;
112
131
  };
@@ -149,7 +168,7 @@ export const createWorkerCoordinator = (options) => {
149
168
  const task = options.store.getTask(owner);
150
169
  if (task !== null)
151
170
  return task;
152
- if (pane === undefined && !options.herdr.tasks.pendingStops().some((stop) => sameClaim(stop.context, owner)))
171
+ if (pane === undefined && !pendingStops().some((stop) => sameClaim(stop.context, owner)))
153
172
  return null;
154
173
  const agent = pane?.kind ?? pane?.nativeSession?.agent;
155
174
  if (agent === undefined)
@@ -158,6 +177,38 @@ export const createWorkerCoordinator = (options) => {
158
177
  return options.store.registerPending({ ...owner, agent, sessionId: pane !== undefined && liveAgent(pane) && pane.nativeSession !== null ? pane.nativeSession.sessionId : null });
159
178
  };
160
179
  const runCleanup = async (owner, deleteWorktree, signal) => {
180
+ const local = options.store.getTask(owner);
181
+ const webRecord = options.webStore?.getTask(owner);
182
+ if (local?.agentControlMode === "web" || webRecord != null) {
183
+ if (!options.webBackend || !options.webStore)
184
+ throw new Error("The Web execution backend is unavailable.");
185
+ if (webRecord == null) {
186
+ // Registration precedes every native launch. Missing local evidence alone proves nothing.
187
+ if (local?.sessionId !== null && local?.sessionId !== undefined)
188
+ throw new Error("The original native identity has no local Web stop evidence.");
189
+ if (!options.verifyWebUnregistered)
190
+ throw new Error("Web launch provenance cannot be verified.");
191
+ await options.verifyWebUnregistered(owner, signal ?? new AbortController().signal);
192
+ if (deleteWorktree) {
193
+ await workerOperation(operation => options.git.removeWorktree(projectFor(owner), owner, operation), signal);
194
+ if (local)
195
+ options.store.completeTask(owner);
196
+ }
197
+ return;
198
+ }
199
+ while (true) {
200
+ const result = await options.webBackend.cleanup(webRecord, deleteWorktree ? "terminal" : "shutdown", now() + 600_000, signal);
201
+ if (result.cleanup?.agentStopped && result.cleanup.backendResourcesClosed && (!deleteWorktree || result.cleanup.worktreeDeleted)) {
202
+ if (deleteWorktree) {
203
+ options.webStore.completeTask(owner, now());
204
+ if (local)
205
+ options.store.completeTask(owner);
206
+ }
207
+ return;
208
+ }
209
+ await delay(1000, undefined, signal === undefined ? {} : { signal });
210
+ }
211
+ }
161
212
  while (true) {
162
213
  const resources = await workerOperation((operation) => options.herdr.tasks.listResources(operation), signal);
163
214
  const task = recordMissingClaim(owner, actualTaskPane(owner, resources));
@@ -178,7 +229,7 @@ export const createWorkerCoordinator = (options) => {
178
229
  }
179
230
  };
180
231
  const syncWorkspaceName = async (task, owner, title, signal) => {
181
- const pending = options.herdr.tasks.pendingStops().filter((stop) => sameClaim(stop.context, owner));
232
+ const pending = pendingStops().filter((stop) => sameClaim(stop.context, owner));
182
233
  if (pending.some((stop) => stop.context.worktreeId !== owner.worktreeId))
183
234
  throw new Error("The claim has conflicting pending Herdr stop identities.");
184
235
  if (pending.length > 0)
@@ -207,8 +258,44 @@ export const createWorkerCoordinator = (options) => {
207
258
  if (ending.has(key(task)))
208
259
  return;
209
260
  const owner = remoteOwner(remoteTask);
210
- if (!sameClaim(task, owner) || remoteTask.properties.worker.workerId !== options.workerId || remoteTask.properties.worker.agent !== task.agent)
261
+ if (!sameClaim(task, owner) || remoteTask.properties.worker.workerId !== options.workerId || remoteTask.properties.worker.agent !== task.agent || remoteTask.properties.worker.agentControlMode !== (task.agentControlMode ?? "herdr"))
211
262
  throw new Error("The local execution does not match the observed original worker claim.");
263
+ if (task.agentControlMode === "web") {
264
+ if (!execute)
265
+ return;
266
+ if (!options.webStore || !options.webBackend)
267
+ throw new Error("The Web execution backend is unavailable.");
268
+ const configuration = configurationFor(task);
269
+ requireImplementedWorkerBackend(configuration);
270
+ await options.verifyWebServer?.(configuration.agent, signal);
271
+ if (options.webStore.getTask(task) === null) {
272
+ if (!options.verifyWebUnregistered)
273
+ throw new Error("Web launch provenance cannot be verified.");
274
+ await options.verifyWebUnregistered(task, signal);
275
+ if (task.sessionId !== null || remoteTask.properties.worker.nativeSessionId !== null)
276
+ throw new Error("The original native identity has no local Web execution evidence.");
277
+ }
278
+ let record = options.webStore.register({ ...owner, project: projectFor(task), serverOrigin: options.serverOrigin, workerId: options.workerId, userId: remoteTask.properties.worker.userId, configuration }, now());
279
+ if (record.cleanup !== null)
280
+ record = options.webStore.clearShutdown(record, now());
281
+ const result = await options.webBackend.advance(record, signal);
282
+ const nativeSessionId = result.resources.nativeSession?.sessionId ?? task.sessionId;
283
+ if (nativeSessionId !== null)
284
+ options.store.setSessionId(task, nativeSessionId);
285
+ const phase = "executing";
286
+ const worker = remoteTask.properties.worker;
287
+ if (worker.phase !== phase || worker.nativeSessionId !== nativeSessionId || worker.herdr !== null) {
288
+ try {
289
+ await options.remote.update(remoteTask, { phase, nativeSessionId, herdr: null }, signal);
290
+ }
291
+ catch (error) {
292
+ if (isWorkerCancellation(error, signal))
293
+ throw error;
294
+ options.emit({ kind: "summary-error", task, message: "The Web execution summary was not confirmed; the next round will read it again.", error });
295
+ }
296
+ }
297
+ return;
298
+ }
212
299
  await syncWorkspaceName(task, owner, remoteTask.title, signal);
213
300
  if (!execute)
214
301
  return;
@@ -219,10 +306,10 @@ export const createWorkerCoordinator = (options) => {
219
306
  };
220
307
  const capacity = (resources) => new Set([
221
308
  ...options.store.listUnfinishedTasks().filter((task) => task.status === "active").map(key), ...[...resources.owners.keys()].filter((identity) => resources.proven.has(identity)),
222
- ...ending.keys(), ...options.herdr.tasks.pendingStops().map((stop) => key(stop.context)),
309
+ ...ending.keys(), ...pendingStops().map((stop) => key(stop.context)),
223
310
  ]).size;
224
311
  const blockedByOldClaim = (task, owners) => options.store.listUnfinishedTasks().some((other) => other.projectId === task.projectId && other.taskId === task.taskId && other.claimId !== task.claimId && other.status === "active")
225
- || [...owners, ...ending.values(), ...options.herdr.tasks.pendingStops().map((stop) => stop.context)].some((owner) => owner.projectId === task.projectId && owner.taskId === task.taskId && owner.claimId !== task.claimId);
312
+ || [...owners, ...ending.values(), ...pendingStops().map((stop) => stop.context)].some((owner) => owner.projectId === task.projectId && owner.taskId === task.taskId && owner.claimId !== task.claimId);
226
313
  const schedule = (task, remoteTask) => {
227
314
  if (jobs.has(key(task)) || ending.has(key(task)))
228
315
  return;
@@ -242,9 +329,9 @@ export const createWorkerCoordinator = (options) => {
242
329
  running.controller.abort(new Error("The original claim no longer belongs to this worker."));
243
330
  execution.forget(local);
244
331
  }
245
- await workerOperation((operation) => options.herdr.ensureInstance(operation), normalSignal);
246
- const observed = await workerOperation((operation) => options.herdr.tasks.listResources(operation), normalSignal);
247
- const knownOwners = [...observed.map((workspace) => workspace.owner), ...options.herdr.tasks.pendingStops().map((stop) => stop.context)];
332
+ await ensureHerdr(normalSignal);
333
+ const observed = await listHerdr(normalSignal);
334
+ const knownOwners = [...observed.map((workspace) => workspace.owner), ...pendingStops().map((stop) => stop.context), ...(options.webStore?.listUnfinishedTasks() ?? [])];
248
335
  for (const owner of knownOwners) {
249
336
  if (options.store.getProject(owner) === null || inventory.has(key(owner)))
250
337
  continue;
@@ -267,8 +354,14 @@ export const createWorkerCoordinator = (options) => {
267
354
  const owner = resources.owners.get(key(local));
268
355
  if (owner !== undefined)
269
356
  ending.set(key(local), owner);
270
- else if (!jobs.has(key(local)))
357
+ else if (!jobs.has(key(local))) {
358
+ if (local.agentControlMode === "web") {
359
+ if (!options.verifyWebUnregistered || local.sessionId !== null)
360
+ throw new Error("The ended Web claim has no original resource evidence; its ownership record is retained.");
361
+ await options.verifyWebUnregistered(local, normalSignal);
362
+ }
271
363
  options.store.completeTask(local);
364
+ }
272
365
  }
273
366
  launchCleanups();
274
367
  for (const [identityKey, remoteTask] of inventory) {
@@ -317,11 +410,14 @@ export const createWorkerCoordinator = (options) => {
317
410
  continue;
318
411
  }
319
412
  const candidate = next.value;
413
+ requireImplementedWorkerBackend(repository.configuration);
414
+ if (repository.configuration.agentControlMode === "web")
415
+ await options.verifyWebServer?.(repository.configuration.agent, normalSignal);
320
416
  const claimId = randomUUID();
321
417
  try {
322
- const granted = await options.remote.claim(candidate, { claimId, workerId: options.workerId, machine: options.machine, platform: options.platform, agent: repository.configuration.agent, worktreeId: randomUUID() }, normalSignal);
418
+ const granted = await options.remote.claim(candidate, { claimId, workerId: options.workerId, machine: options.machine, platform: options.platform, agent: repository.configuration.agent, ...(repository.configuration.agentControlMode === "web" ? { agentControlMode: "web" } : {}), worktreeId: randomUUID() }, normalSignal);
323
419
  const owner = remoteOwner(granted);
324
- const local = options.store.registerPending({ projectId: granted.projectId, taskId: granted.id, claimId: owner.claimId, agent: granted.properties.worker.agent });
420
+ const local = options.store.registerPending({ projectId: granted.projectId, taskId: granted.id, claimId: owner.claimId, agent: granted.properties.worker.agent, agentControlMode: granted.properties.worker.agentControlMode });
325
421
  if (!blockedByOldClaim(local, resources.owners.values()) && capacity(resources) < options.maxConcurrent)
326
422
  schedule(options.store.activateTask(local), granted);
327
423
  }
@@ -364,17 +460,19 @@ export const createWorkerCoordinator = (options) => {
364
460
  if (task.status !== "active")
365
461
  throw new Error("Only an active original claim may be retried; pending work is started by worker run.");
366
462
  failures.delete(key(identity));
367
- await workerOperation((operation) => options.herdr.ensureInstance(operation), normalSignal);
463
+ if (task.agentControlMode === "web" && options.webStore?.getTask(task))
464
+ options.webStore.authorizeRecoveryRetry(task, now());
465
+ await ensureHerdr(normalSignal);
368
466
  await serialize(identity, () => ensure(task, remoteTask, normalSignal));
369
467
  },
370
468
  cleanupSource: async (identity, settings = {}) => {
371
469
  const { owner } = await readSource(identity);
372
- await workerOperation((operation) => options.herdr.ensureInstance(operation), normalSignal);
470
+ await ensureHerdr(normalSignal);
373
471
  await serialize(identity, () => runCleanup(owner, settings.deleteWorktree === true, normalSignal));
374
472
  return owner;
375
473
  },
376
474
  completeSource: async (owner) => {
377
- await workerOperation((operation) => options.herdr.ensureInstance(operation), normalSignal);
475
+ await ensureHerdr(normalSignal);
378
476
  await serialize(owner, () => runCleanup(owner, true, normalSignal));
379
477
  },
380
478
  shutdown: async () => {
@@ -383,8 +481,20 @@ export const createWorkerCoordinator = (options) => {
383
481
  running.controller.abort(new Error("Worker shutdown requested."));
384
482
  await Promise.all(jobs.values());
385
483
  let complete = true;
484
+ for (const task of options.store.listUnfinishedTasks())
485
+ if (task.agentControlMode === "web" && options.webStore?.getTask(task) == null) {
486
+ if (task.status === "pending" && task.sessionId === null && options.verifyWebUnregistered) {
487
+ try {
488
+ await options.verifyWebUnregistered(task, new AbortController().signal);
489
+ continue;
490
+ }
491
+ catch { /* Missing launch evidence must not be interpreted as a confirmed native stop. */ }
492
+ }
493
+ complete = false;
494
+ options.emit({ kind: "shutdown-error", task, message: "The original Web execution evidence is missing; complete native stop cannot be confirmed." });
495
+ }
386
496
  const owners = new Map(ending);
387
- for (const { context } of options.herdr.tasks.pendingStops()) {
497
+ for (const { context } of pendingStops()) {
388
498
  if (options.store.getProject(context) === null) {
389
499
  complete = false;
390
500
  options.emit({ kind: "shutdown-error", message: `Retained an unhandled stop operation for ${context.projectId}/${context.taskId}/${context.claimId}.` });
@@ -393,7 +503,7 @@ export const createWorkerCoordinator = (options) => {
393
503
  owners.set(key(context), context);
394
504
  }
395
505
  try {
396
- const workspaces = await workerOperation((operation) => options.herdr.tasks.listResources(operation));
506
+ const workspaces = await listHerdr();
397
507
  for (const workspace of workspaces) {
398
508
  if (options.store.getProject(workspace.owner) === null) {
399
509
  complete = false;
@@ -422,6 +532,15 @@ export const createWorkerCoordinator = (options) => {
422
532
  await Promise.all([...owners.values()].map(async (owner) => {
423
533
  try {
424
534
  await serialize(owner, async () => {
535
+ const webRecord = options.webStore?.getTask(owner);
536
+ if (webRecord != null) {
537
+ if (!options.webBackend)
538
+ throw new Error("The Web execution backend is unavailable during shutdown.");
539
+ await options.webBackend.cleanup(webRecord, "shutdown", now(), undefined, true);
540
+ return;
541
+ }
542
+ if (options.store.getTask(owner)?.agentControlMode === "web")
543
+ return;
425
544
  if (options.store.getTask(owner) === null) {
426
545
  const observed = await workerOperation((operation) => options.herdr.tasks.listResources(operation));
427
546
  recordMissingClaim(owner, actualTaskPane(owner, observed));
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/commands/worker/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/commands/worker/coordinator.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { OperationError } from "../../../api/operation.js";
5
5
  import { canonicalId } from "../../../api/parse.js";
6
6
  import { parseResourceOwner, resourceOwnerKey, sameResourceOwner } from "../resource-owner.js";
7
7
  import { buildHerdrAgentArguments, nativeAgentPermissionEnvironment, validateHerdrAgentArguments } from "./arguments.js";
8
+ import { claudeInputSurface } from "./claude-input.js";
8
9
  import { codexInputSurface } from "./codex-input.js";
9
10
  import { HerdrRpcError } from "./rpc.js";
10
11
  export { buildHerdrAgentArguments, validateHerdrAgentArguments } from "./arguments.js";
@@ -43,10 +44,12 @@ export const parseHerdrExecutionLabel = (label) => {
43
44
  const separator = label.lastIndexOf(labelSeparator);
44
45
  if (separator === -1)
45
46
  return null;
46
- const title = label.slice(0, separator);
47
- if (title.trim().length === 0 || unsafeTitleCharacter.test(title))
48
- throw new TypeError("The managed Herdr workspace title must be nonempty single-line display text.");
49
- return parseResourceOwner(label.slice(separator + labelSeparator.length));
47
+ try {
48
+ return parseResourceOwner(label.slice(separator + labelSeparator.length));
49
+ }
50
+ catch {
51
+ return null;
52
+ }
50
53
  };
51
54
  const matchesWorkspaceOwner = (workspace, owner) => {
52
55
  if (typeof workspace.label !== "string")
@@ -253,7 +256,7 @@ export const createHerdrAgentManager = (options) => {
253
256
  const confirmed = await readOwned(context, binding, operation);
254
257
  if (confirmed.pane.tab_id !== tabId)
255
258
  throw new Error("The original input pane changed tabs during the visible surface observation.");
256
- return codexInputSurface(read.text);
259
+ return context.agent === "claude" ? claudeInputSurface(read.text) : codexInputSurface(read.text);
257
260
  };
258
261
  const submit = async (context, binding, prompt, operation, initialPrompt = false) => {
259
262
  if (typeof prompt !== "string" || prompt.length === 0)
@@ -268,7 +271,7 @@ export const createHerdrAgentManager = (options) => {
268
271
  while (true) {
269
272
  before = await observation(context, binding, operation);
270
273
  verifyInputAgent(before);
271
- if (context.agent !== "codex")
274
+ if (context.agent !== "codex" && context.agent !== "claude")
272
275
  break;
273
276
  const surface = await visibleCodexSurface(context, binding, operation);
274
277
  if (surface === "blocked")
@@ -333,11 +336,11 @@ export const createHerdrAgentManager = (options) => {
333
336
  if (pane.cwd !== undefined && cwd !== null && path.normalize(text(pane.cwd, "Owned terminal cwd")) !== path.normalize(cwd))
334
337
  throw new Error("The owned Herdr pane and agent cwd differ.");
335
338
  const kind = optionalText(info.agent, "Owned agent kind");
336
- if (kind !== null && kind !== "codex" && kind !== "copilot")
339
+ if (kind !== null && kind !== "codex" && kind !== "copilot" && kind !== "claude")
337
340
  throw new Error("The owned task workspace hosts an unsupported native agent.");
338
341
  const native = info.agent_session === undefined ? null : object(info.agent_session, "Owned native session");
339
342
  const nativeAgent = native === null ? null : text(native.agent, "Owned native provider");
340
- if (nativeAgent !== null && nativeAgent !== "codex" && nativeAgent !== "copilot")
343
+ if (nativeAgent !== null && nativeAgent !== "codex" && nativeAgent !== "copilot" && nativeAgent !== "claude")
341
344
  throw new Error("The owned native reference has an unsupported provider.");
342
345
  if (kind !== null && nativeAgent !== null && kind !== nativeAgent)
343
346
  throw new Error("The owned agent and native history provider differ.");