@codetreker/daynight 0.25.4 → 0.27.2
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 +160 -11
- package/config.example.yml +3 -0
- package/dist/api/client.d.ts +3 -2
- package/dist/api/client.js +10 -6
- package/dist/api/client.js.map +1 -1
- package/dist/api/parse.d.ts +3 -2
- package/dist/api/parse.js +59 -10
- package/dist/api/parse.js.map +1 -1
- package/dist/api/types.d.ts +75 -1
- package/dist/api/worker-mode.d.ts +6 -0
- package/dist/api/worker-mode.js +14 -0
- package/dist/api/worker-mode.js.map +1 -0
- package/dist/cli/commands.js +2 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/commands/controller/command-controls.d.ts +4 -0
- package/dist/commands/controller/command-controls.js +33 -0
- package/dist/commands/controller/command-controls.js.map +1 -0
- package/dist/commands/controller/definition.d.ts +3 -0
- package/dist/commands/controller/definition.js +22 -0
- package/dist/commands/controller/definition.js.map +1 -0
- package/dist/commands/controller/independent.d.ts +3 -0
- package/dist/commands/controller/independent.js +344 -0
- package/dist/commands/controller/independent.js.map +1 -0
- package/dist/commands/controller/index.d.ts +12 -0
- package/dist/commands/controller/index.js +73 -0
- package/dist/commands/controller/index.js.map +1 -0
- package/dist/commands/controller/launch-ticket.d.ts +49 -0
- package/dist/commands/controller/launch-ticket.js +99 -0
- package/dist/commands/controller/launch-ticket.js.map +1 -0
- package/dist/commands/controller/lifecycle-store.d.ts +84 -0
- package/dist/commands/controller/lifecycle-store.js +278 -0
- package/dist/commands/controller/lifecycle-store.js.map +1 -0
- package/dist/commands/controller/local-client.d.ts +44 -0
- package/dist/commands/controller/local-client.js +75 -0
- package/dist/commands/controller/local-client.js.map +1 -0
- package/dist/commands/controller/local-content.d.ts +23 -0
- package/dist/commands/controller/local-content.js +103 -0
- package/dist/commands/controller/local-content.js.map +1 -0
- package/dist/commands/controller/process-proof.d.ts +13 -0
- package/dist/commands/controller/process-proof.js +121 -0
- package/dist/commands/controller/process-proof.js.map +1 -0
- package/dist/commands/controller/providers/claude.d.ts +2 -0
- package/dist/commands/controller/providers/claude.js +470 -0
- package/dist/commands/controller/providers/claude.js.map +1 -0
- package/dist/commands/controller/providers/codex.d.ts +2 -0
- package/dist/commands/controller/providers/codex.js +254 -0
- package/dist/commands/controller/providers/codex.js.map +1 -0
- package/dist/commands/controller/providers/controls-claude.d.ts +26 -0
- package/dist/commands/controller/providers/controls-claude.js +138 -0
- package/dist/commands/controller/providers/controls-claude.js.map +1 -0
- package/dist/commands/controller/providers/controls-codex.d.ts +38 -0
- package/dist/commands/controller/providers/controls-codex.js +199 -0
- package/dist/commands/controller/providers/controls-codex.js.map +1 -0
- package/dist/commands/controller/providers/controls-copilot.d.ts +20 -0
- package/dist/commands/controller/providers/controls-copilot.js +143 -0
- package/dist/commands/controller/providers/controls-copilot.js.map +1 -0
- package/dist/commands/controller/providers/controls.d.ts +21 -0
- package/dist/commands/controller/providers/controls.js +53 -0
- package/dist/commands/controller/providers/controls.js.map +1 -0
- package/dist/commands/controller/providers/copilot-interactions.d.ts +47 -0
- package/dist/commands/controller/providers/copilot-interactions.js +295 -0
- package/dist/commands/controller/providers/copilot-interactions.js.map +1 -0
- package/dist/commands/controller/providers/copilot-projection.d.ts +11 -0
- package/dist/commands/controller/providers/copilot-projection.js +93 -0
- package/dist/commands/controller/providers/copilot-projection.js.map +1 -0
- package/dist/commands/controller/providers/copilot-runtime.d.ts +9 -0
- package/dist/commands/controller/providers/copilot-runtime.js +127 -0
- package/dist/commands/controller/providers/copilot-runtime.js.map +1 -0
- package/dist/commands/controller/providers/copilot.d.ts +2 -0
- package/dist/commands/controller/providers/copilot.js +309 -0
- package/dist/commands/controller/providers/copilot.js.map +1 -0
- package/dist/commands/controller/providers/interactions.d.ts +3 -0
- package/dist/commands/controller/providers/interactions.js +79 -0
- package/dist/commands/controller/providers/interactions.js.map +1 -0
- package/dist/commands/controller/providers/native-rpc.d.ts +28 -0
- package/dist/commands/controller/providers/native-rpc.js +85 -0
- package/dist/commands/controller/providers/native-rpc.js.map +1 -0
- package/dist/commands/controller/providers/projection.d.ts +23 -0
- package/dist/commands/controller/providers/projection.js +99 -0
- package/dist/commands/controller/providers/projection.js.map +1 -0
- package/dist/commands/controller/providers/turns.d.ts +7 -0
- package/dist/commands/controller/providers/turns.js +21 -0
- package/dist/commands/controller/providers/turns.js.map +1 -0
- package/dist/commands/controller/providers/types.d.ts +44 -0
- package/dist/commands/controller/providers/types.js +2 -0
- package/dist/commands/controller/providers/types.js.map +1 -0
- package/dist/commands/controller/recovery.d.ts +6 -0
- package/dist/commands/controller/recovery.js +22 -0
- package/dist/commands/controller/recovery.js.map +1 -0
- package/dist/commands/controller/relay.d.ts +18 -0
- package/dist/commands/controller/relay.js +299 -0
- package/dist/commands/controller/relay.js.map +1 -0
- package/dist/commands/controller/resume.d.ts +18 -0
- package/dist/commands/controller/resume.js +193 -0
- package/dist/commands/controller/resume.js.map +1 -0
- package/dist/commands/controller/runtime.d.ts +5 -0
- package/dist/commands/controller/runtime.js +455 -0
- package/dist/commands/controller/runtime.js.map +1 -0
- package/dist/commands/controller/windows-job.d.ts +3 -0
- package/dist/commands/controller/windows-job.js +59 -0
- package/dist/commands/controller/windows-job.js.map +1 -0
- package/dist/commands/controller/wire-display.d.ts +5 -0
- package/dist/commands/controller/wire-display.js +11 -0
- package/dist/commands/controller/wire-display.js.map +1 -0
- package/dist/commands/skill/skills/using-daynight/SKILL.md +52 -162
- package/dist/commands/skill/skills/using-daynight/references/authorization.md +36 -0
- package/dist/commands/skill/skills/using-daynight/references/autopilot-managed-task.md +77 -193
- package/dist/commands/skill/skills/using-daynight/references/create-task.md +31 -186
- package/dist/commands/skill/skills/using-daynight/references/final-acceptance.md +25 -0
- package/dist/commands/skill/skills/using-daynight/references/goal.md +46 -243
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +37 -294
- package/dist/commands/skill/skills/using-daynight/references/handoff.md +33 -91
- package/dist/commands/skill/skills/using-daynight/references/project-management.md +24 -0
- package/dist/commands/skill/skills/using-daynight/references/run-task.md +18 -59
- package/dist/commands/skill/skills/using-daynight/references/setup.md +16 -0
- package/dist/commands/skill/skills/using-daynight/references/task-content.md +80 -177
- package/dist/commands/skill/skills/using-daynight/references/task-execution.md +34 -126
- package/dist/commands/skill/skills/using-daynight/references/task-management.md +135 -0
- package/dist/commands/skill/skills/using-daynight/references/write-safety.md +34 -0
- package/dist/commands/task/command.js +5 -3
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +4 -2
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/task/rendering.d.ts +1 -0
- package/dist/commands/task/rendering.js +10 -1
- package/dist/commands/task/rendering.js.map +1 -1
- package/dist/commands/worker/backend.d.ts +7 -0
- package/dist/commands/worker/backend.js +7 -0
- package/dist/commands/worker/backend.js.map +1 -0
- package/dist/commands/worker/backends/grant-renewal.d.ts +13 -0
- package/dist/commands/worker/backends/grant-renewal.js +42 -0
- package/dist/commands/worker/backends/grant-renewal.js.map +1 -0
- package/dist/commands/worker/backends/session-api.d.ts +66 -0
- package/dist/commands/worker/backends/session-api.js +84 -0
- package/dist/commands/worker/backends/session-api.js.map +1 -0
- package/dist/commands/worker/backends/web-process.d.ts +79 -0
- package/dist/commands/worker/backends/web-process.js +156 -0
- package/dist/commands/worker/backends/web-process.js.map +1 -0
- package/dist/commands/worker/backends/web-store.d.ts +49 -0
- package/dist/commands/worker/backends/web-store.js +323 -0
- package/dist/commands/worker/backends/web-store.js.map +1 -0
- package/dist/commands/worker/backends/web-types.d.ts +83 -0
- package/dist/commands/worker/backends/web-types.js +3 -0
- package/dist/commands/worker/backends/web-types.js.map +1 -0
- package/dist/commands/worker/backends/web.d.ts +26 -0
- package/dist/commands/worker/backends/web.js +178 -0
- package/dist/commands/worker/backends/web.js.map +1 -0
- package/dist/commands/worker/config.js +12 -5
- package/dist/commands/worker/config.js.map +1 -1
- package/dist/commands/worker/control.d.ts +2 -0
- package/dist/commands/worker/control.js +11 -4
- package/dist/commands/worker/control.js.map +1 -1
- package/dist/commands/worker/coordinator.d.ts +10 -1
- package/dist/commands/worker/coordinator.js +153 -24
- package/dist/commands/worker/coordinator.js.map +1 -1
- package/dist/commands/worker/herdr/agents.js +5 -4
- package/dist/commands/worker/herdr/agents.js.map +1 -1
- package/dist/commands/worker/herdr/arguments.js +9 -4
- package/dist/commands/worker/herdr/arguments.js.map +1 -1
- package/dist/commands/worker/herdr/claude-input.d.ts +2 -0
- package/dist/commands/worker/herdr/claude-input.js +20 -0
- package/dist/commands/worker/herdr/claude-input.js.map +1 -0
- package/dist/commands/worker/herdr/command.d.ts +11 -2
- package/dist/commands/worker/herdr/command.js +23 -8
- package/dist/commands/worker/herdr/command.js.map +1 -1
- package/dist/commands/worker/herdr/instance.d.ts +5 -1
- package/dist/commands/worker/herdr/instance.js +31 -1
- package/dist/commands/worker/herdr/instance.js.map +1 -1
- package/dist/commands/worker/herdr/preflight.d.ts +1 -1
- package/dist/commands/worker/herdr/preflight.js +34 -15
- package/dist/commands/worker/herdr/preflight.js.map +1 -1
- package/dist/commands/worker/herdr/version-probe.d.ts +13 -0
- package/dist/commands/worker/herdr/version-probe.js +21 -0
- package/dist/commands/worker/herdr/version-probe.js.map +1 -0
- package/dist/commands/worker/herdr.js +7 -7
- package/dist/commands/worker/herdr.js.map +1 -1
- package/dist/commands/worker/index.d.ts +2 -0
- package/dist/commands/worker/index.js +1 -1
- package/dist/commands/worker/index.js.map +1 -1
- package/dist/commands/worker/prompts.js +5 -1
- package/dist/commands/worker/prompts.js.map +1 -1
- package/dist/commands/worker/remote.d.ts +3 -1
- package/dist/commands/worker/remote.js +4 -0
- package/dist/commands/worker/remote.js.map +1 -1
- package/dist/commands/worker/reporter.d.ts +14 -0
- package/dist/commands/worker/reporter.js +174 -0
- package/dist/commands/worker/reporter.js.map +1 -0
- package/dist/commands/worker/repositories.js +2 -2
- package/dist/commands/worker/repositories.js.map +1 -1
- package/dist/commands/worker/runtime.d.ts +2 -0
- package/dist/commands/worker/runtime.js +76 -11
- package/dist/commands/worker/runtime.js.map +1 -1
- package/dist/commands/worker/setup-environment.d.ts +2 -1
- package/dist/commands/worker/setup-environment.js +10 -4
- package/dist/commands/worker/setup-environment.js.map +1 -1
- package/dist/commands/worker/setup.js +5 -5
- package/dist/commands/worker/setup.js.map +1 -1
- package/dist/commands/worker/store.d.ts +2 -1
- package/dist/commands/worker/store.js +19 -9
- package/dist/commands/worker/store.js.map +1 -1
- package/dist/commands/worker/telemetry.d.ts +22 -0
- package/dist/commands/worker/telemetry.js +265 -0
- package/dist/commands/worker/telemetry.js.map +1 -0
- package/dist/commands/worker/types.d.ts +4 -1
- package/dist/session/controller-protocol.d.ts +245 -0
- package/dist/session/controller-protocol.js +218 -0
- package/dist/session/controller-protocol.js.map +1 -0
- package/dist/session/controls.d.ts +28 -0
- package/dist/session/controls.js +37 -0
- package/dist/session/controls.js.map +1 -0
- package/dist/session/protocol.d.ts +290 -0
- package/dist/session/protocol.js +307 -0
- package/dist/session/protocol.js.map +1 -0
- 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";
|
|
@@ -29,6 +30,15 @@ export const createWorkerCoordinator = (options) => {
|
|
|
29
30
|
let nextPendingProject = 0;
|
|
30
31
|
let shuttingDown = false;
|
|
31
32
|
let ticking = false;
|
|
33
|
+
const cancel = () => {
|
|
34
|
+
shuttingDown = true;
|
|
35
|
+
const reason = normalSignal.aborted ? normalSignal.reason : new Error("Worker shutdown requested.");
|
|
36
|
+
for (const running of controllers.values())
|
|
37
|
+
running.controller.abort(reason);
|
|
38
|
+
};
|
|
39
|
+
normalSignal.addEventListener("abort", cancel, { once: true });
|
|
40
|
+
if (normalSignal.aborted)
|
|
41
|
+
cancel();
|
|
32
42
|
const serialize = async (identity, action) => {
|
|
33
43
|
const identityKey = taskKey(identity);
|
|
34
44
|
const previous = tails.get(identityKey) ?? Promise.resolve();
|
|
@@ -53,11 +63,23 @@ export const createWorkerCoordinator = (options) => {
|
|
|
53
63
|
return project;
|
|
54
64
|
};
|
|
55
65
|
const configurationFor = (task) => {
|
|
66
|
+
if (task.agentControlMode === "web") {
|
|
67
|
+
const frozen = options.webStore?.getTask(task)?.configuration;
|
|
68
|
+
if (frozen)
|
|
69
|
+
return frozen;
|
|
70
|
+
}
|
|
56
71
|
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 };
|
|
72
|
+
return current.agent === task.agent ? { ...current, agentControlMode: task.agentControlMode ?? "herdr" } : { agent: task.agent, agentControlMode: task.agentControlMode ?? "herdr", model: null, args: [], recoveryLimit: current.recoveryLimit };
|
|
58
73
|
};
|
|
74
|
+
const needsHerdr = () => options.globalConfiguration.agentControlMode !== "web"
|
|
75
|
+
|| options.repositories.some(repository => repository.configuration.agentControlMode !== "web")
|
|
76
|
+
|| options.store.listUnfinishedTasks().some(task => task.agentControlMode !== "web");
|
|
77
|
+
const pendingStops = () => needsHerdr() ? options.herdr.tasks.pendingStops() : [];
|
|
78
|
+
const ensureHerdr = async (signal) => { if (needsHerdr())
|
|
79
|
+
await workerOperation(operation => options.herdr.ensureInstance(operation), signal); };
|
|
80
|
+
const listHerdr = async (signal) => needsHerdr() ? workerOperation(operation => options.herdr.tasks.listResources(operation), signal) : [];
|
|
59
81
|
const snapshot = async (signal, scope, currentClaims = []) => {
|
|
60
|
-
const observed = await
|
|
82
|
+
const observed = await listHerdr(signal);
|
|
61
83
|
const herdr = scope === undefined ? observed : observed.filter((resource) => resource.owner.projectId === scope.projectId);
|
|
62
84
|
const owners = new Map();
|
|
63
85
|
const proven = new Set([...options.store.listTasks().map(key), ...currentClaims.map(key)]);
|
|
@@ -74,6 +96,12 @@ export const createWorkerCoordinator = (options) => {
|
|
|
74
96
|
observe(workspace.owner);
|
|
75
97
|
proven.add(key(workspace.owner));
|
|
76
98
|
}
|
|
99
|
+
for (const task of options.webStore?.listUnfinishedTasks() ?? []) {
|
|
100
|
+
if (scope === undefined || task.projectId === scope.projectId) {
|
|
101
|
+
observe(task);
|
|
102
|
+
proven.add(key(task));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
77
105
|
for (const project of scope === undefined ? options.store.listProjects() : [scope]) {
|
|
78
106
|
const warnings = new Map();
|
|
79
107
|
currentWarnings.set(project.projectId, warnings);
|
|
@@ -106,7 +134,7 @@ export const createWorkerCoordinator = (options) => {
|
|
|
106
134
|
if (result.has(key(owner)))
|
|
107
135
|
throw new Error("The claim inventory contains duplicate claims.");
|
|
108
136
|
result.set(key(owner), task);
|
|
109
|
-
options.store.registerPending({ projectId: task.projectId, taskId: task.id, claimId: owner.claimId, agent: task.properties.worker.agent });
|
|
137
|
+
options.store.registerPending({ projectId: task.projectId, taskId: task.id, claimId: owner.claimId, agent: task.properties.worker.agent, agentControlMode: task.properties.worker.agentControlMode });
|
|
110
138
|
}
|
|
111
139
|
return result;
|
|
112
140
|
};
|
|
@@ -127,11 +155,11 @@ export const createWorkerCoordinator = (options) => {
|
|
|
127
155
|
};
|
|
128
156
|
const startJob = (identity, action, terminal) => {
|
|
129
157
|
const identityKey = key(identity);
|
|
130
|
-
if (jobs.has(identityKey))
|
|
158
|
+
if (shuttingDown || jobs.has(identityKey))
|
|
131
159
|
return;
|
|
132
160
|
const controller = new AbortController();
|
|
133
161
|
controllers.set(identityKey, { controller, terminal });
|
|
134
|
-
const signal =
|
|
162
|
+
const signal = AbortSignal.any([normalSignal, controller.signal]);
|
|
135
163
|
const job = serialize(identity, () => action(signal)).catch((error) => {
|
|
136
164
|
if (isWorkerCancellation(error, signal))
|
|
137
165
|
return;
|
|
@@ -149,7 +177,7 @@ export const createWorkerCoordinator = (options) => {
|
|
|
149
177
|
const task = options.store.getTask(owner);
|
|
150
178
|
if (task !== null)
|
|
151
179
|
return task;
|
|
152
|
-
if (pane === undefined && !
|
|
180
|
+
if (pane === undefined && !pendingStops().some((stop) => sameClaim(stop.context, owner)))
|
|
153
181
|
return null;
|
|
154
182
|
const agent = pane?.kind ?? pane?.nativeSession?.agent;
|
|
155
183
|
if (agent === undefined)
|
|
@@ -158,6 +186,38 @@ export const createWorkerCoordinator = (options) => {
|
|
|
158
186
|
return options.store.registerPending({ ...owner, agent, sessionId: pane !== undefined && liveAgent(pane) && pane.nativeSession !== null ? pane.nativeSession.sessionId : null });
|
|
159
187
|
};
|
|
160
188
|
const runCleanup = async (owner, deleteWorktree, signal) => {
|
|
189
|
+
const local = options.store.getTask(owner);
|
|
190
|
+
const webRecord = options.webStore?.getTask(owner);
|
|
191
|
+
if (local?.agentControlMode === "web" || webRecord != null) {
|
|
192
|
+
if (!options.webBackend || !options.webStore)
|
|
193
|
+
throw new Error("The Web execution backend is unavailable.");
|
|
194
|
+
if (webRecord == null) {
|
|
195
|
+
// Registration precedes every native launch. Missing local evidence alone proves nothing.
|
|
196
|
+
if (local?.sessionId !== null && local?.sessionId !== undefined)
|
|
197
|
+
throw new Error("The original native identity has no local Web stop evidence.");
|
|
198
|
+
if (!options.verifyWebUnregistered)
|
|
199
|
+
throw new Error("Web launch provenance cannot be verified.");
|
|
200
|
+
await options.verifyWebUnregistered(owner, signal ?? new AbortController().signal);
|
|
201
|
+
if (deleteWorktree) {
|
|
202
|
+
await workerOperation(operation => options.git.removeWorktree(projectFor(owner), owner, operation), signal);
|
|
203
|
+
if (local)
|
|
204
|
+
options.store.completeTask(owner);
|
|
205
|
+
}
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
while (true) {
|
|
209
|
+
const result = await options.webBackend.cleanup(webRecord, deleteWorktree ? "terminal" : "shutdown", now() + 600_000, signal);
|
|
210
|
+
if (result.cleanup?.agentStopped && result.cleanup.backendResourcesClosed && (!deleteWorktree || result.cleanup.worktreeDeleted)) {
|
|
211
|
+
if (deleteWorktree) {
|
|
212
|
+
options.webStore.completeTask(owner, now());
|
|
213
|
+
if (local)
|
|
214
|
+
options.store.completeTask(owner);
|
|
215
|
+
}
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
await delay(1000, undefined, signal === undefined ? {} : { signal });
|
|
219
|
+
}
|
|
220
|
+
}
|
|
161
221
|
while (true) {
|
|
162
222
|
const resources = await workerOperation((operation) => options.herdr.tasks.listResources(operation), signal);
|
|
163
223
|
const task = recordMissingClaim(owner, actualTaskPane(owner, resources));
|
|
@@ -178,7 +238,7 @@ export const createWorkerCoordinator = (options) => {
|
|
|
178
238
|
}
|
|
179
239
|
};
|
|
180
240
|
const syncWorkspaceName = async (task, owner, title, signal) => {
|
|
181
|
-
const pending =
|
|
241
|
+
const pending = pendingStops().filter((stop) => sameClaim(stop.context, owner));
|
|
182
242
|
if (pending.some((stop) => stop.context.worktreeId !== owner.worktreeId))
|
|
183
243
|
throw new Error("The claim has conflicting pending Herdr stop identities.");
|
|
184
244
|
if (pending.length > 0)
|
|
@@ -207,8 +267,44 @@ export const createWorkerCoordinator = (options) => {
|
|
|
207
267
|
if (ending.has(key(task)))
|
|
208
268
|
return;
|
|
209
269
|
const owner = remoteOwner(remoteTask);
|
|
210
|
-
if (!sameClaim(task, owner) || remoteTask.properties.worker.workerId !== options.workerId || remoteTask.properties.worker.agent !== task.agent)
|
|
270
|
+
if (!sameClaim(task, owner) || remoteTask.properties.worker.workerId !== options.workerId || remoteTask.properties.worker.agent !== task.agent || remoteTask.properties.worker.agentControlMode !== (task.agentControlMode ?? "herdr"))
|
|
211
271
|
throw new Error("The local execution does not match the observed original worker claim.");
|
|
272
|
+
if (task.agentControlMode === "web") {
|
|
273
|
+
if (!execute)
|
|
274
|
+
return;
|
|
275
|
+
if (!options.webStore || !options.webBackend)
|
|
276
|
+
throw new Error("The Web execution backend is unavailable.");
|
|
277
|
+
const configuration = configurationFor(task);
|
|
278
|
+
requireImplementedWorkerBackend(configuration);
|
|
279
|
+
await options.verifyWebServer?.(configuration.agent, signal);
|
|
280
|
+
if (options.webStore.getTask(task) === null) {
|
|
281
|
+
if (!options.verifyWebUnregistered)
|
|
282
|
+
throw new Error("Web launch provenance cannot be verified.");
|
|
283
|
+
await options.verifyWebUnregistered(task, signal);
|
|
284
|
+
if (task.sessionId !== null || remoteTask.properties.worker.nativeSessionId !== null)
|
|
285
|
+
throw new Error("The original native identity has no local Web execution evidence.");
|
|
286
|
+
}
|
|
287
|
+
let record = options.webStore.register({ ...owner, project: projectFor(task), serverOrigin: options.serverOrigin, workerId: options.workerId, userId: remoteTask.properties.worker.userId, configuration }, now());
|
|
288
|
+
if (record.cleanup !== null)
|
|
289
|
+
record = options.webStore.clearShutdown(record, now());
|
|
290
|
+
const result = await options.webBackend.advance(record, signal);
|
|
291
|
+
const nativeSessionId = result.resources.nativeSession?.sessionId ?? task.sessionId;
|
|
292
|
+
if (nativeSessionId !== null)
|
|
293
|
+
options.store.setSessionId(task, nativeSessionId);
|
|
294
|
+
const phase = "executing";
|
|
295
|
+
const worker = remoteTask.properties.worker;
|
|
296
|
+
if (worker.phase !== phase || worker.nativeSessionId !== nativeSessionId || worker.herdr !== null) {
|
|
297
|
+
try {
|
|
298
|
+
await options.remote.update(remoteTask, { phase, nativeSessionId, herdr: null }, signal);
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
if (isWorkerCancellation(error, signal))
|
|
302
|
+
throw error;
|
|
303
|
+
options.emit({ kind: "summary-error", task, message: "The Web execution summary was not confirmed; the next round will read it again.", error });
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
212
308
|
await syncWorkspaceName(task, owner, remoteTask.title, signal);
|
|
213
309
|
if (!execute)
|
|
214
310
|
return;
|
|
@@ -219,10 +315,10 @@ export const createWorkerCoordinator = (options) => {
|
|
|
219
315
|
};
|
|
220
316
|
const capacity = (resources) => new Set([
|
|
221
317
|
...options.store.listUnfinishedTasks().filter((task) => task.status === "active").map(key), ...[...resources.owners.keys()].filter((identity) => resources.proven.has(identity)),
|
|
222
|
-
...ending.keys(), ...
|
|
318
|
+
...ending.keys(), ...pendingStops().map((stop) => key(stop.context)),
|
|
223
319
|
]).size;
|
|
224
320
|
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(), ...
|
|
321
|
+
|| [...owners, ...ending.values(), ...pendingStops().map((stop) => stop.context)].some((owner) => owner.projectId === task.projectId && owner.taskId === task.taskId && owner.claimId !== task.claimId);
|
|
226
322
|
const schedule = (task, remoteTask) => {
|
|
227
323
|
if (jobs.has(key(task)) || ending.has(key(task)))
|
|
228
324
|
return;
|
|
@@ -233,6 +329,7 @@ export const createWorkerCoordinator = (options) => {
|
|
|
233
329
|
launchCleanups();
|
|
234
330
|
await options.remote.currentUserId(normalSignal);
|
|
235
331
|
const inventory = await ownInventory(normalSignal);
|
|
332
|
+
options.onInventory?.({ observedAt: new Date(now()).toISOString(), claims: [...inventory.values()].map(task => ({ projectId: task.projectId, taskId: task.id, claimId: task.properties.worker.claimId })) });
|
|
236
333
|
// Ownership loss is authoritative even when the following resource observations fail.
|
|
237
334
|
for (const local of options.store.listUnfinishedTasks()) {
|
|
238
335
|
if (inventory.has(key(local)))
|
|
@@ -242,9 +339,9 @@ export const createWorkerCoordinator = (options) => {
|
|
|
242
339
|
running.controller.abort(new Error("The original claim no longer belongs to this worker."));
|
|
243
340
|
execution.forget(local);
|
|
244
341
|
}
|
|
245
|
-
await
|
|
246
|
-
const observed = await
|
|
247
|
-
const knownOwners = [...observed.map((workspace) => workspace.owner), ...
|
|
342
|
+
await ensureHerdr(normalSignal);
|
|
343
|
+
const observed = await listHerdr(normalSignal);
|
|
344
|
+
const knownOwners = [...observed.map((workspace) => workspace.owner), ...pendingStops().map((stop) => stop.context), ...(options.webStore?.listUnfinishedTasks() ?? [])];
|
|
248
345
|
for (const owner of knownOwners) {
|
|
249
346
|
if (options.store.getProject(owner) === null || inventory.has(key(owner)))
|
|
250
347
|
continue;
|
|
@@ -267,8 +364,14 @@ export const createWorkerCoordinator = (options) => {
|
|
|
267
364
|
const owner = resources.owners.get(key(local));
|
|
268
365
|
if (owner !== undefined)
|
|
269
366
|
ending.set(key(local), owner);
|
|
270
|
-
else if (!jobs.has(key(local)))
|
|
367
|
+
else if (!jobs.has(key(local))) {
|
|
368
|
+
if (local.agentControlMode === "web") {
|
|
369
|
+
if (!options.verifyWebUnregistered || local.sessionId !== null)
|
|
370
|
+
throw new Error("The ended Web claim has no original resource evidence; its ownership record is retained.");
|
|
371
|
+
await options.verifyWebUnregistered(local, normalSignal);
|
|
372
|
+
}
|
|
271
373
|
options.store.completeTask(local);
|
|
374
|
+
}
|
|
272
375
|
}
|
|
273
376
|
launchCleanups();
|
|
274
377
|
for (const [identityKey, remoteTask] of inventory) {
|
|
@@ -317,11 +420,15 @@ export const createWorkerCoordinator = (options) => {
|
|
|
317
420
|
continue;
|
|
318
421
|
}
|
|
319
422
|
const candidate = next.value;
|
|
423
|
+
requireImplementedWorkerBackend(repository.configuration);
|
|
424
|
+
if (repository.configuration.agentControlMode === "web")
|
|
425
|
+
await options.verifyWebServer?.(repository.configuration.agent, normalSignal);
|
|
320
426
|
const claimId = randomUUID();
|
|
321
427
|
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);
|
|
428
|
+
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
429
|
const owner = remoteOwner(granted);
|
|
324
|
-
const local = options.store.registerPending({ projectId: granted.projectId, taskId: granted.id, claimId: owner.claimId, agent: granted.properties.worker.agent });
|
|
430
|
+
const local = options.store.registerPending({ projectId: granted.projectId, taskId: granted.id, claimId: owner.claimId, agent: granted.properties.worker.agent, agentControlMode: granted.properties.worker.agentControlMode });
|
|
431
|
+
options.onClaim?.({ projectId: granted.projectId, taskId: granted.id, claimId: owner.claimId });
|
|
325
432
|
if (!blockedByOldClaim(local, resources.owners.values()) && capacity(resources) < options.maxConcurrent)
|
|
326
433
|
schedule(options.store.activateTask(local), granted);
|
|
327
434
|
}
|
|
@@ -364,27 +471,40 @@ export const createWorkerCoordinator = (options) => {
|
|
|
364
471
|
if (task.status !== "active")
|
|
365
472
|
throw new Error("Only an active original claim may be retried; pending work is started by worker run.");
|
|
366
473
|
failures.delete(key(identity));
|
|
367
|
-
|
|
474
|
+
if (task.agentControlMode === "web" && options.webStore?.getTask(task))
|
|
475
|
+
options.webStore.authorizeRecoveryRetry(task, now());
|
|
476
|
+
await ensureHerdr(normalSignal);
|
|
368
477
|
await serialize(identity, () => ensure(task, remoteTask, normalSignal));
|
|
369
478
|
},
|
|
370
479
|
cleanupSource: async (identity, settings = {}) => {
|
|
371
480
|
const { owner } = await readSource(identity);
|
|
372
|
-
await
|
|
481
|
+
await ensureHerdr(normalSignal);
|
|
373
482
|
await serialize(identity, () => runCleanup(owner, settings.deleteWorktree === true, normalSignal));
|
|
374
483
|
return owner;
|
|
375
484
|
},
|
|
376
485
|
completeSource: async (owner) => {
|
|
377
|
-
await
|
|
486
|
+
await ensureHerdr(normalSignal);
|
|
378
487
|
await serialize(owner, () => runCleanup(owner, true, normalSignal));
|
|
379
488
|
},
|
|
380
489
|
shutdown: async () => {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
running.controller.abort(new Error("Worker shutdown requested."));
|
|
490
|
+
cancel();
|
|
491
|
+
normalSignal.removeEventListener("abort", cancel);
|
|
384
492
|
await Promise.all(jobs.values());
|
|
385
493
|
let complete = true;
|
|
494
|
+
for (const task of options.store.listUnfinishedTasks())
|
|
495
|
+
if (task.agentControlMode === "web" && options.webStore?.getTask(task) == null) {
|
|
496
|
+
if (task.status === "pending" && task.sessionId === null && options.verifyWebUnregistered) {
|
|
497
|
+
try {
|
|
498
|
+
await options.verifyWebUnregistered(task, new AbortController().signal);
|
|
499
|
+
continue;
|
|
500
|
+
}
|
|
501
|
+
catch { /* Missing launch evidence must not be interpreted as a confirmed native stop. */ }
|
|
502
|
+
}
|
|
503
|
+
complete = false;
|
|
504
|
+
options.emit({ kind: "shutdown-error", task, message: "The original Web execution evidence is missing; complete native stop cannot be confirmed." });
|
|
505
|
+
}
|
|
386
506
|
const owners = new Map(ending);
|
|
387
|
-
for (const { context } of
|
|
507
|
+
for (const { context } of pendingStops()) {
|
|
388
508
|
if (options.store.getProject(context) === null) {
|
|
389
509
|
complete = false;
|
|
390
510
|
options.emit({ kind: "shutdown-error", message: `Retained an unhandled stop operation for ${context.projectId}/${context.taskId}/${context.claimId}.` });
|
|
@@ -393,7 +513,7 @@ export const createWorkerCoordinator = (options) => {
|
|
|
393
513
|
owners.set(key(context), context);
|
|
394
514
|
}
|
|
395
515
|
try {
|
|
396
|
-
const workspaces = await
|
|
516
|
+
const workspaces = await listHerdr();
|
|
397
517
|
for (const workspace of workspaces) {
|
|
398
518
|
if (options.store.getProject(workspace.owner) === null) {
|
|
399
519
|
complete = false;
|
|
@@ -422,6 +542,15 @@ export const createWorkerCoordinator = (options) => {
|
|
|
422
542
|
await Promise.all([...owners.values()].map(async (owner) => {
|
|
423
543
|
try {
|
|
424
544
|
await serialize(owner, async () => {
|
|
545
|
+
const webRecord = options.webStore?.getTask(owner);
|
|
546
|
+
if (webRecord != null) {
|
|
547
|
+
if (!options.webBackend)
|
|
548
|
+
throw new Error("The Web execution backend is unavailable during shutdown.");
|
|
549
|
+
await options.webBackend.cleanup(webRecord, "shutdown", now(), undefined, true);
|
|
550
|
+
return;
|
|
551
|
+
}
|
|
552
|
+
if (options.store.getTask(owner)?.agentControlMode === "web")
|
|
553
|
+
return;
|
|
425
554
|
if (options.store.getTask(owner) === null) {
|
|
426
555
|
const observed = await workerOperation((operation) => options.herdr.tasks.listResources(operation));
|
|
427
556
|
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";
|
|
@@ -255,7 +256,7 @@ export const createHerdrAgentManager = (options) => {
|
|
|
255
256
|
const confirmed = await readOwned(context, binding, operation);
|
|
256
257
|
if (confirmed.pane.tab_id !== tabId)
|
|
257
258
|
throw new Error("The original input pane changed tabs during the visible surface observation.");
|
|
258
|
-
return codexInputSurface(read.text);
|
|
259
|
+
return context.agent === "claude" ? claudeInputSurface(read.text) : codexInputSurface(read.text);
|
|
259
260
|
};
|
|
260
261
|
const submit = async (context, binding, prompt, operation, initialPrompt = false) => {
|
|
261
262
|
if (typeof prompt !== "string" || prompt.length === 0)
|
|
@@ -270,7 +271,7 @@ export const createHerdrAgentManager = (options) => {
|
|
|
270
271
|
while (true) {
|
|
271
272
|
before = await observation(context, binding, operation);
|
|
272
273
|
verifyInputAgent(before);
|
|
273
|
-
if (context.agent !== "codex")
|
|
274
|
+
if (context.agent !== "codex" && context.agent !== "claude")
|
|
274
275
|
break;
|
|
275
276
|
const surface = await visibleCodexSurface(context, binding, operation);
|
|
276
277
|
if (surface === "blocked")
|
|
@@ -335,11 +336,11 @@ export const createHerdrAgentManager = (options) => {
|
|
|
335
336
|
if (pane.cwd !== undefined && cwd !== null && path.normalize(text(pane.cwd, "Owned terminal cwd")) !== path.normalize(cwd))
|
|
336
337
|
throw new Error("The owned Herdr pane and agent cwd differ.");
|
|
337
338
|
const kind = optionalText(info.agent, "Owned agent kind");
|
|
338
|
-
if (kind !== null && kind !== "codex" && kind !== "copilot")
|
|
339
|
+
if (kind !== null && kind !== "codex" && kind !== "copilot" && kind !== "claude")
|
|
339
340
|
throw new Error("The owned task workspace hosts an unsupported native agent.");
|
|
340
341
|
const native = info.agent_session === undefined ? null : object(info.agent_session, "Owned native session");
|
|
341
342
|
const nativeAgent = native === null ? null : text(native.agent, "Owned native provider");
|
|
342
|
-
if (nativeAgent !== null && nativeAgent !== "codex" && nativeAgent !== "copilot")
|
|
343
|
+
if (nativeAgent !== null && nativeAgent !== "codex" && nativeAgent !== "copilot" && nativeAgent !== "claude")
|
|
343
344
|
throw new Error("The owned native reference has an unsupported provider.");
|
|
344
345
|
if (kind !== null && nativeAgent !== null && kind !== nativeAgent)
|
|
345
346
|
throw new Error("The owned agent and native history provider differ.");
|