@codetreker/daynight 0.22.1 → 0.24.1

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 (84) hide show
  1. package/README.md +314 -334
  2. package/config.example.yml +8 -4
  3. package/dist/api/client.d.ts +2 -2
  4. package/dist/api/client.js +10 -7
  5. package/dist/api/client.js.map +1 -1
  6. package/dist/api/types.d.ts +1 -8
  7. package/dist/cli/prompts.d.ts +1 -0
  8. package/dist/commands/auth/credentials.js +1 -1
  9. package/dist/commands/auth/credentials.js.map +1 -1
  10. package/dist/commands/review/config.js +0 -9
  11. package/dist/commands/review/config.js.map +1 -1
  12. package/dist/commands/review/configuration-guide.js +3 -2
  13. package/dist/commands/review/configuration-guide.js.map +1 -1
  14. package/dist/commands/review/repositories.js +11 -4
  15. package/dist/commands/review/repositories.js.map +1 -1
  16. package/dist/commands/skill/skills/using-daynight/references/execute-task-in-managed.md +6 -5
  17. package/dist/commands/skill/skills/using-daynight/references/handbook.md +1 -1
  18. package/dist/commands/skill/skills/using-daynight/references/handoff.md +1 -1
  19. package/dist/commands/worker/cleanup.d.ts +8 -2
  20. package/dist/commands/worker/cleanup.js +44 -160
  21. package/dist/commands/worker/cleanup.js.map +1 -1
  22. package/dist/commands/worker/config.d.ts +3 -3
  23. package/dist/commands/worker/config.js +0 -6
  24. package/dist/commands/worker/config.js.map +1 -1
  25. package/dist/commands/worker/control.d.ts +11 -18
  26. package/dist/commands/worker/control.js +75 -132
  27. package/dist/commands/worker/control.js.map +1 -1
  28. package/dist/commands/worker/coordinator.d.ts +10 -8
  29. package/dist/commands/worker/coordinator.js +324 -472
  30. package/dist/commands/worker/coordinator.js.map +1 -1
  31. package/dist/commands/worker/definition.js +9 -17
  32. package/dist/commands/worker/definition.js.map +1 -1
  33. package/dist/commands/worker/diagnostics.js +2 -3
  34. package/dist/commands/worker/diagnostics.js.map +1 -1
  35. package/dist/commands/worker/execution.d.ts +35 -10
  36. package/dist/commands/worker/execution.js +109 -281
  37. package/dist/commands/worker/execution.js.map +1 -1
  38. package/dist/commands/worker/herdr/agents.d.ts +12 -91
  39. package/dist/commands/worker/herdr/agents.js +111 -358
  40. package/dist/commands/worker/herdr/agents.js.map +1 -1
  41. package/dist/commands/worker/herdr/preflight.d.ts +21 -9
  42. package/dist/commands/worker/herdr/preflight.js +118 -124
  43. package/dist/commands/worker/herdr/preflight.js.map +1 -1
  44. package/dist/commands/worker/herdr.d.ts +7 -63
  45. package/dist/commands/worker/herdr.js.map +1 -1
  46. package/dist/commands/worker/identity.js +2 -2
  47. package/dist/commands/worker/identity.js.map +1 -1
  48. package/dist/commands/worker/index.d.ts +1 -0
  49. package/dist/commands/worker/index.js +6 -13
  50. package/dist/commands/worker/index.js.map +1 -1
  51. package/dist/commands/worker/prompts.d.ts +10 -3
  52. package/dist/commands/worker/prompts.js +21 -32
  53. package/dist/commands/worker/prompts.js.map +1 -1
  54. package/dist/commands/worker/remote.d.ts +2 -3
  55. package/dist/commands/worker/remote.js +1 -6
  56. package/dist/commands/worker/remote.js.map +1 -1
  57. package/dist/commands/worker/repositories.d.ts +20 -3
  58. package/dist/commands/worker/repositories.js +100 -21
  59. package/dist/commands/worker/repositories.js.map +1 -1
  60. package/dist/commands/worker/runtime.js +112 -217
  61. package/dist/commands/worker/runtime.js.map +1 -1
  62. package/dist/commands/worker/setup-environment.d.ts +31 -0
  63. package/dist/commands/worker/setup-environment.js +146 -0
  64. package/dist/commands/worker/setup-environment.js.map +1 -0
  65. package/dist/commands/worker/setup.d.ts +11 -0
  66. package/dist/commands/worker/setup.js +113 -0
  67. package/dist/commands/worker/setup.js.map +1 -0
  68. package/dist/commands/worker/store.d.ts +12 -114
  69. package/dist/commands/worker/store.js +92 -817
  70. package/dist/commands/worker/store.js.map +1 -1
  71. package/dist/commands/worker/types.d.ts +10 -114
  72. package/dist/commands/worker/worktrees.d.ts +9 -9
  73. package/dist/commands/worker/worktrees.js +77 -37
  74. package/dist/commands/worker/worktrees.js.map +1 -1
  75. package/dist/config/document.d.ts +0 -1
  76. package/dist/config/document.js +1 -14
  77. package/dist/config/document.js.map +1 -1
  78. package/dist/config/files.d.ts +7 -1
  79. package/dist/config/files.js +4 -1
  80. package/dist/config/files.js.map +1 -1
  81. package/dist/config/ownership.d.ts +12 -0
  82. package/dist/config/ownership.js +39 -0
  83. package/dist/config/ownership.js.map +1 -0
  84. package/package.json +2 -2
@@ -1,16 +1,13 @@
1
1
  import path from "node:path";
2
2
  import { createOperation, OperationError } from "../../api/operation.js";
3
3
  import { HerdrAgentActionError } from "./herdr.js";
4
- import { buildHerdrAgentArguments } from "./herdr/arguments.js";
5
- import { herdrExecutionLabel } from "./herdr/agents.js";
6
4
  export const isWorkerCancellation = (error, signal) => {
7
5
  if (!signal.aborted)
8
6
  return false;
9
- if (error instanceof AggregateError && error.errors.some((failure) => !isWorkerCancellation(failure, signal)))
10
- return false;
11
- return error === signal.reason ||
12
- (error instanceof OperationError && error.kind === "cancelled" && error.cause === signal.reason) ||
13
- (error instanceof Error && error.cause !== undefined && isWorkerCancellation(error.cause, signal));
7
+ if (error instanceof AggregateError)
8
+ return error.errors.length > 0 && error.errors.every((failure) => isWorkerCancellation(failure, signal));
9
+ return error === signal.reason || (error instanceof OperationError && error.kind === "cancelled" && error.cause === signal.reason)
10
+ || (error instanceof Error && error.cause !== undefined && isWorkerCancellation(error.cause, signal));
14
11
  };
15
12
  export const workerOperation = async (action, signal, totalMs = 120_000) => {
16
13
  const operation = createOperation({ ...(signal === undefined ? {} : { signal }), limits: { totalMs } });
@@ -21,297 +18,128 @@ export const workerOperation = async (action, signal, totalMs = 120_000) => {
21
18
  operation.dispose();
22
19
  }
23
20
  };
24
- export const executionContext = (task, agent) => {
25
- const selected = task.configuration?.agent ?? agent;
26
- if (selected === undefined)
27
- throw new Error("The original native agent kind is unavailable; the execution was retained.");
28
- return { serverOrigin: task.serverOrigin, projectId: task.projectId, taskId: task.taskId, claimId: task.claimId, worktreeId: task.worktreeId,
29
- cwd: task.resources.worktree?.worktreePath ?? path.join(task.repositoryPath, ".worktrees", "daynight", task.taskId), agent: selected };
30
- };
31
- export const taskBinding = (task) => {
32
- const binding = task.resources.herdr;
33
- const terminalId = task.nativeExecution?.terminalId;
34
- return binding === null || terminalId === null || terminalId === undefined ? null : { ...binding, terminalId };
21
+ export const sameClaim = (left, right) => left.projectId === right.projectId && left.taskId === right.taskId && left.claimId === right.claimId;
22
+ export const ownedWorkspace = (owner, resources) => {
23
+ const matches = resources.filter((resource) => sameClaim(resource.owner, owner) && resource.owner.serverOrigin === owner.serverOrigin);
24
+ if (matches.length > 1 || matches.some((resource) => resource.owner.worktreeId !== owner.worktreeId))
25
+ throw new Error("The claim has conflicting Herdr resource identities.");
26
+ return matches[0];
35
27
  };
36
- export const ownedWorkspace = (task, resources) => resources.find(({ owner }) => owner.serverOrigin === task.serverOrigin && owner.projectId === task.projectId && owner.taskId === task.taskId && owner.claimId === task.claimId && owner.worktreeId === task.worktreeId);
37
- export const actualTaskPane = (task, resources) => {
38
- const workspace = ownedWorkspace(task, resources);
28
+ export const actualTaskPane = (owner, resources) => {
29
+ const workspace = ownedWorkspace(owner, resources);
39
30
  if (workspace === undefined)
40
31
  return undefined;
41
- const binding = task.resources.herdr;
42
- if (binding !== null && workspace.workspaceId === binding.workspaceId)
43
- return workspace.panes.find((pane) => pane.binding.paneId === binding.paneId);
44
32
  if (workspace.panes.length !== 1)
45
- throw new Error("The original task workspace has ambiguous panes; it was retained.");
33
+ throw new Error("The task workspace must contain exactly one managed pane.");
46
34
  return workspace.panes[0];
47
35
  };
48
- const sameBinding = (left, right) => left.session === right.session && left.workspaceId === right.workspaceId && left.paneId === right.paneId && left.terminalId === right.terminalId;
49
- const sameWorkspaceEvidence = (left, right) => sameBinding(left.binding, right.binding) && left.ownerLabel === right.ownerLabel && left.environment.XDG_CONFIG_HOME === right.environment.XDG_CONFIG_HOME && left.environment.XDG_STATE_HOME === right.environment.XDG_STATE_HOME;
50
- const live = (observation) => observation.kind !== null || observation.launchPending || observation.interactiveReady;
51
- const firstInputWaiting = "The original native launch is waiting before its first managed input; attach to its private session and retry after intervention.";
36
+ export const liveAgent = (pane) => pane.kind !== null || pane.launchPending || pane.interactiveReady;
37
+ export const executionContext = (input) => ({
38
+ ...input.owner, cwd: path.join(input.project.localPath, ".worktrees", "daynight", input.owner.taskId), agent: input.task.agent,
39
+ });
40
+ export const settleWorkerStops = async (deps, owner, signal) => {
41
+ const pending = deps.herdr.tasks.pendingStops().filter((stop) => sameClaim(stop.context, owner) && stop.context.serverOrigin === owner.serverOrigin);
42
+ for (const stop of pending) {
43
+ if (stop.context.worktreeId !== owner.worktreeId)
44
+ throw new Error("The claim has conflicting pending Herdr stop identities.");
45
+ await workerOperation((operation) => deps.herdr.tasks.stopAndClose(stop.context, stop.binding, operation), signal);
46
+ }
47
+ return pending.length > 0;
48
+ };
49
+ const assertNativeSession = (task, observation) => {
50
+ if (task.sessionId !== null && observation.nativeSession !== null && observation.nativeSession.sessionId !== task.sessionId)
51
+ throw new Error(`The observed native session ${observation.nativeSession.sessionId} differs from the recorded native session ${task.sessionId}.`);
52
+ };
52
53
  export const createExecutionDriver = (deps) => {
53
- const refresh = (task) => {
54
- const current = deps.store.getTask(task);
55
- if (current === null)
56
- throw new Error("The local execution record disappeared.");
57
- return current;
58
- };
59
- const rememberStop = async (task, binding, signal) => {
60
- if (task.nativeExecution?.stopObservation !== null && task.nativeExecution?.stopObservation !== undefined)
54
+ const pendingInput = new Map();
55
+ const observations = new Map();
56
+ const key = (task) => `${task.projectId}/${task.taskId}/${task.claimId}`;
57
+ const reportObservation = (task, observation, started = false) => {
58
+ const identity = key(task);
59
+ const pending = pendingInput.has(identity);
60
+ const blocked = observation.status === "blocked";
61
+ const waiting = pending || blocked;
62
+ const { session, workspaceId, paneId, terminalId } = observation.binding;
63
+ const state = JSON.stringify([session, workspaceId, paneId, terminalId, task.agent, task.sessionId, waiting, pending]);
64
+ if (!started && observations.get(identity) === state)
61
65
  return;
62
- try {
63
- const observation = await workerOperation((operation) => deps.herdr.tasks.captureStop(executionContext(task), binding, operation), signal);
64
- deps.store.recordStopObservation(task, observation, deps.now());
65
- }
66
- catch (error) {
67
- deps.emit({ kind: "stop-observation-unavailable", task, message: "Original native process identities are not yet available; cold recovery remains fenced.", error });
68
- }
69
- };
70
- const rememberNative = (task, nativeSession) => nativeSession === null ? refresh(task) : deps.store.bindNativeSession(task, { source: "herdr", sessionId: nativeSession.sessionId }, deps.now());
71
- const captureUnsentLaunch = async (task, binding, signal) => {
72
- if (task.nativeExecution?.stopObservation !== null && task.nativeExecution?.stopObservation !== undefined)
73
- return task;
74
- const observed = await workerOperation((operation) => deps.herdr.tasks.captureStop(executionContext(task), binding, operation), signal);
75
- const recorded = deps.store.recordStopObservation(task, observed, deps.now());
76
- if (observed.nativeProcessIds === null)
77
- throw new Error("The original native launch has no proven native process identity; its first input remains unsubmitted.");
78
- return recorded;
79
- };
80
- const advanceUnsentInput = async (task, resources, signal) => {
81
- const native = task.nativeExecution;
82
- const binding = taskBinding(task);
83
- const launch = native.launchEvidence;
84
- const workspace = native.workspaceEvidence;
85
- const actual = actualTaskPane(task, resources);
86
- const context = executionContext(task);
87
- const ownerLabel = herdrExecutionLabel(context);
88
- if (task.resources.worktree === null || binding === null || actual === undefined || !sameBinding(binding, actual.binding))
89
- throw new Error("The acknowledged native launch no longer has its original worktree and terminal binding; no first input was sent.");
90
- if (launch === null || workspace === null || launch.referenceBaseline !== "empty" || launch.agent !== context.agent || launch.ownerLabel !== ownerLabel || workspace.ownerLabel !== ownerLabel || !sameBinding(launch.binding, binding) || !sameBinding(workspace.binding, binding) || !sameWorkspaceEvidence(workspace, launch.workspaceEvidence))
91
- throw new Error("The acknowledged native launch receipt does not match the original execution; no first input was sent.");
92
- const matchesArgv = (expected) => launch.argv.length === expected.length && launch.argv.every((argument, index) => argument === expected[index]);
93
- let resumeSessionId;
94
- if (!matchesArgv([context.agent, ...buildHerdrAgentArguments(task.configuration)])) {
95
- const originalId = task.resources.nativeSession?.sessionId;
96
- if (originalId === undefined || !matchesArgv([context.agent, ...buildHerdrAgentArguments(task.configuration, originalId)]))
97
- throw new Error("The acknowledged native launch does not preserve its frozen invocation; no first input was sent.");
98
- resumeSessionId = originalId;
99
- }
100
- await workerOperation((operation) => deps.git.verifyWorktree(task, operation), signal);
101
- const before = await workerOperation((operation) => deps.herdr.tasks.observe(context, binding, operation), signal);
102
- const original = native.stopObservation;
103
- if (original === null || original.nativeProcessIds === null || !sameBinding(original.binding, binding) || original.ownerLabel !== ownerLabel || original.agent !== context.agent)
104
- throw new Error("The original native launch process evidence is unavailable; no first input was sent.");
105
- const current = await workerOperation((operation) => deps.herdr.tasks.captureStop(context, binding, operation), signal);
106
- const currentNativeIds = current.nativeProcessIds;
107
- if (!sameBinding(current.binding, binding) || current.ownerLabel !== ownerLabel || current.agent !== context.agent || current.shellPid !== original.shellPid || currentNativeIds === null || !original.nativeProcessIds.every((processId) => currentNativeIds.includes(processId)))
108
- throw new Error("The original native launch is no longer executing in its original shell; no first input was sent.");
109
- const expectedSession = task.resources.nativeSession?.sessionId;
110
- if ((expectedSession !== undefined && before.nativeSession !== null && before.nativeSession.sessionId !== expectedSession) || (expectedSession !== undefined && current.nativeSessionId !== null && current.nativeSessionId !== expectedSession) || (original.nativeSessionId !== null && current.nativeSessionId !== null && original.nativeSessionId !== current.nativeSessionId))
111
- throw new Error("The original native launch now reports a different conversation; no first input was sent.");
112
- task = rememberNative(task, before.nativeSession);
113
- if ((task.recovery.pauseReason !== null && !task.recovery.retryAuthorized) || before.status === "blocked") {
114
- deps.emit({ kind: "waiting", task, message: "The original native launch is waiting before its first managed input; attach to its private session and retry the paused claim after intervention." });
115
- return task;
116
- }
117
- if (task.recovery.retryAuthorized)
118
- task = deps.store.beginRecovery(task, deps.now());
119
- const prompt = deps.buildPrompt(task, deps.platform);
120
- deps.store.markNativePromptSubmitting(task, deps.now());
121
- try {
122
- const outcome = await workerOperation((operation) => deps.herdr.tasks.start(context, binding, { configuration: task.configuration, prompt, initialPromptNotSubmitted: true, launchEvidence: launch, workspaceEvidence: workspace, ...(resumeSessionId === undefined ? {} : { resumeSessionId }) }, operation), signal);
123
- deps.store.recordNativeStartOutcome(task, { ...(outcome.launchEvidence === null ? {} : { launchEvidence: outcome.launchEvidence }), promptSubmission: outcome.promptSubmission }, deps.now());
124
- if (outcome.kind === "rebind-required")
125
- throw new Error(`The original deferred startup input is fenced: ${outcome.reason}.`);
126
- task = rememberNative(task, outcome.observation.nativeSession);
127
- if (outcome.promptSubmission === "not-submitted")
128
- task = deps.store.pauseTask(task, firstInputWaiting, deps.now());
129
- deps.emit({ kind: outcome.kind === "waiting" || outcome.promptSubmission === "not-submitted" ? "waiting" : "started", task, message: outcome.promptSubmission === "submitted" ? "The first managed input was submitted to the original native launch without starting another agent." : firstInputWaiting });
130
- return refresh(task);
131
- }
132
- catch (error) {
133
- if (error instanceof HerdrAgentActionError)
134
- deps.store.recordNativeStartOutcome(task, { ...(error.launchEvidence === null ? {} : { launchEvidence: error.launchEvidence }), promptSubmission: error.promptSubmission === null ? "unknown" : error.promptSubmission }, deps.now());
135
- throw error;
136
- }
137
- };
138
- const prepareWorkspace = async (task, signal) => {
139
- deps.store.markWorkspaceSubmitting(task, deps.now());
140
- try {
141
- return await workerOperation((operation) => deps.herdr.tasks.prepareWorkspace(executionContext(task), operation), signal);
142
- }
143
- catch (error) {
144
- if (error instanceof HerdrAgentActionError && error.action === "workspace.create" && error.submission !== "unknown")
145
- deps.store.recordWorkspaceNotSubmitted(task, error.submission === "rejected" ? { definiteRejection: true } : { notSubmitted: true }, deps.now());
146
- throw error;
147
- }
148
- };
149
- const rebind = async (task, actual, signal) => {
150
- const original = taskBinding(task);
151
- if (original === null)
152
- throw new Error("The original Herdr terminal identity is unavailable; recovery was paused.");
153
- const context = executionContext(task);
154
- if (task.nativeExecution?.workspaceSubmission === "unknown" && actual === null)
155
- throw new HerdrAgentActionError("The original replacement workspace request has an unknown outcome; absence does not authorize another creation.", "workspace.create", "unknown");
156
- const evidence = task.nativeExecution?.stopObservation;
157
- if (task.nativeExecution?.launchSubmission === "never-submitted") {
158
- if (actual !== null)
159
- await workerOperation((operation) => deps.herdr.tasks.confirmEmptyPane(context, actual, operation), signal);
160
- }
161
- else {
162
- if (evidence === null || evidence === undefined)
163
- throw new Error("The original persisted native stop observation is missing; recovery cannot infer that the agent stopped.");
164
- if (actual === null)
165
- await workerOperation((operation) => deps.herdr.tasks.confirmMissingWorkspaceStopped(context, original, evidence, operation), signal);
166
- else if (sameBinding(original, actual))
167
- await workerOperation((operation) => deps.herdr.tasks.confirmStopped(context, original, evidence, operation), signal);
168
- else if (original.workspaceId !== actual.workspaceId || original.paneId !== actual.paneId)
169
- await workerOperation((operation) => deps.herdr.tasks.confirmReplacedStop(context, original, actual, evidence, operation), signal);
170
- else
171
- await workerOperation((operation) => deps.herdr.tasks.confirmRestoredStop(context, original, actual, evidence, operation), signal);
172
- }
173
- if (task.nativeExecution?.workspaceSubmission === "unknown") {
174
- // The exact observed replacement establishes the previous create outcome. Its
175
- // environment receipt is unavailable, so a subsequent empty-pane rebind replaces it.
176
- return deps.store.rebindHerdrExecution(task, original, actual, null, { originalAgentStopped: true, oldWorkspaceClosed: true }, deps.now());
177
- }
178
- await workerOperation((operation) => deps.herdr.tasks.closeWorkspace(context, actual === null ? original : actual, { agentStopped: true }, operation), signal);
179
- const prepared = await prepareWorkspace(task, signal);
180
- return deps.store.rebindHerdrExecution(task, original, prepared.binding, prepared.workspaceEvidence, { originalAgentStopped: true, oldWorkspaceClosed: true }, deps.now());
66
+ observations.set(identity, state);
67
+ deps.emit({
68
+ kind: waiting ? "waiting" : started ? "started" : "reconnected",
69
+ task,
70
+ message: pending ? "The first managed input is waiting in this worker process; use daynight worker attach to resolve the native screen."
71
+ : blocked ? "The native agent is waiting for input; use daynight worker attach."
72
+ : started ? "Started the managed task conversation."
73
+ : "Connected to the existing agent without repeating its managed assignment.",
74
+ });
181
75
  };
182
76
  return {
183
- advance: async (input, resources, signal) => {
184
- let task = refresh(input);
185
- if (task.cleanup !== null || task.control !== null)
186
- throw new Error("Cleanup or source management prevents ordinary execution.");
187
- if (task.configuration === null)
188
- throw new Error("The original frozen execution configuration is missing; restore it before retrying.");
189
- if (task.recovery.pauseReason !== null && !task.recovery.retryAuthorized && (task.resources.worktree === null || task.resources.herdr === null))
190
- return task;
191
- if (task.status !== "active")
192
- throw new Error("Only an active execution may prepare resources.");
193
- if (task.nativeExecution?.launchSubmission === "acknowledged" && task.nativeExecution.promptSubmission === "not-submitted")
194
- return advanceUnsentInput(task, resources, signal);
195
- const original = actualTaskPane(task, resources);
196
- if (task.resources.nativeSession === null && task.nativeExecution?.launchSubmission !== "never-submitted") {
197
- if (original === undefined || (!live(original) && original.nativeSession === null))
198
- throw new Error("The original native session ID is missing; recover its exact history identity before preparing replacement resources.");
199
- if (original.nativeSession !== null && task.resources.herdr !== null)
200
- task = rememberNative(task, original.nativeSession);
201
- }
202
- if (task.resources.worktree === null) {
203
- const binding = task.nativeExecution?.launchSubmission === "never-submitted"
204
- ? await workerOperation((operation) => deps.git.prepareWorktree(task, operation), signal, 180_000)
205
- : await workerOperation((operation) => deps.git.findWorktree(task, operation), signal);
206
- if (binding === null)
207
- throw new Error("The original native launch provenance and owned worktree are unavailable; a fresh worktree cannot substitute for recovery.");
208
- task = deps.store.bindWorktree(task, binding, deps.now());
209
- }
210
- else
211
- await workerOperation((operation) => deps.git.verifyWorktree(task, operation), signal);
212
- const actual = actualTaskPane(task, resources);
213
- if (actual?.nativeSession !== undefined && actual.nativeSession !== null && task.resources.nativeSession !== null && actual.nativeSession.sessionId !== task.resources.nativeSession.sessionId)
214
- throw new Error("The actual native history differs from the original execution; its resources were retained.");
215
- let binding = taskBinding(task);
216
- if (binding === null) {
217
- if (task.resources.herdr !== null)
218
- throw new Error("The original Herdr terminal identity is missing; an existing binding cannot be guessed.");
219
- if (actual !== undefined) {
220
- task = deps.store.bindHerdrExecution(task, actual.binding, null, deps.now());
221
- binding = actual.binding;
222
- }
223
- else {
224
- if (task.nativeExecution?.workspaceSubmission === "unknown")
225
- throw new HerdrAgentActionError("The original workspace creation has an unknown outcome; the absent snapshot does not authorize replay.", "workspace.create", "unknown");
226
- const prepared = await prepareWorkspace(task, signal);
227
- task = deps.store.bindHerdrExecution(task, prepared.binding, prepared.workspaceEvidence, deps.now());
228
- binding = prepared.binding;
229
- }
230
- }
231
- else if ((actual !== undefined && !sameBinding(binding, actual.binding)) || ownedWorkspace(task, resources) === undefined) {
232
- if (task.recovery.pauseReason !== null && !task.recovery.retryAuthorized)
233
- return task;
234
- if (task.nativeExecution?.workspaceSubmission === "unknown" && actual === undefined)
235
- throw new HerdrAgentActionError("The original replacement workspace request is unresolved; the absent snapshot cannot authorize replay.", "workspace.create", "unknown");
236
- if (task.nativeExecution?.launchSubmission !== "never-submitted" && task.nativeExecution?.workspaceSubmission !== "unknown") {
237
- if (task.resources.nativeSession === null)
238
- throw new Error("The original native history identity is unavailable; missing Herdr resources do not authorize a new conversation.");
239
- task = deps.store.beginRecovery(task, deps.now());
77
+ forget: (task) => { pendingInput.delete(key(task)); observations.delete(key(task)); },
78
+ advance: async (input, signal) => {
79
+ let task = deps.store.getTask(input.task);
80
+ if (task === null || task.status !== "active")
81
+ throw new Error("Resource startup requires an active local claim.");
82
+ const context = executionContext({ ...input, task });
83
+ await settleWorkerStops(deps, input.owner, signal);
84
+ const resources = await workerOperation((operation) => deps.herdr.tasks.listResources(operation), signal);
85
+ const actual = actualTaskPane(input.owner, resources);
86
+ const worktree = task.sessionId === null
87
+ ? await workerOperation((operation) => deps.git.prepareWorktree(input.project, input.owner, operation), signal, 180_000)
88
+ : await workerOperation((operation) => deps.git.verifyWorktree(input.project, input.owner, operation), signal);
89
+ if (actual !== undefined && liveAgent(actual)) {
90
+ let observed = await workerOperation((operation) => deps.herdr.tasks.observe(context, actual.binding, operation), signal);
91
+ assertNativeSession(task, observed);
92
+ const pending = pendingInput.get(key(task));
93
+ if (pending !== undefined && pending.binding.terminalId === actual.binding.terminalId && pending.binding.paneId === actual.binding.paneId && observed.status !== "blocked" && observed.interactiveReady && !observed.launchPending) {
94
+ pendingInput.delete(key(task));
95
+ try {
96
+ await workerOperation((operation) => deps.herdr.tasks.submitPrompt(context, actual.binding, pending.prompt, operation), signal);
97
+ observed = await workerOperation((operation) => deps.herdr.tasks.observe(context, actual.binding, operation), signal);
98
+ }
99
+ catch (error) {
100
+ if (error instanceof HerdrAgentActionError && error.promptSubmission === "not-submitted")
101
+ pendingInput.set(key(task), pending);
102
+ throw error;
103
+ }
240
104
  }
241
- task = await rebind(task, actual?.binding ?? null, signal);
242
- binding = taskBinding(task);
243
- }
244
- const context = executionContext(task);
245
- const before = await workerOperation((operation) => deps.herdr.tasks.observe(context, binding, operation), signal);
246
- task = rememberNative(task, before.nativeSession);
247
- if (live(before)) {
248
- await rememberStop(task, binding, signal);
249
- task = refresh(task);
250
- deps.emit({ kind: before.status === "blocked" ? "waiting" : "reconnected", task: refresh(task), message: before.status === "blocked" ? "The original agent is waiting for input; run daynight worker attach in another terminal." : "Observed the original live agent without replaying its startup input." });
251
- return refresh(task);
105
+ assertNativeSession(task, observed);
106
+ if (observed.nativeSession !== null)
107
+ task = deps.store.setSessionId(task, observed.nativeSession.sessionId);
108
+ reportObservation(task, observed);
109
+ return observed;
252
110
  }
253
- if (task.recovery.pauseReason !== null && !task.recovery.retryAuthorized)
254
- return task;
255
- const native = task.nativeExecution;
256
- if (native === null)
257
- throw new Error("The original native launch provenance is missing; a new launch would be unsafe.");
258
- if (native.launchSubmission !== "never-submitted") {
259
- if (task.resources.nativeSession === null)
260
- throw new Error("The original launch may have been submitted but its native history identity is unavailable; no second agent was started.");
261
- deps.store.beginRecovery(task, deps.now());
262
- task = refresh(task);
263
- task = await rebind(task, binding, signal);
264
- binding = taskBinding(task);
111
+ if (actual !== undefined) {
112
+ // Cold restore drops workspace environment overrides and retains the old native reference.
113
+ // A fresh workspace restores native XDG settings and observes only the new launch's SessionStart.
114
+ // https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/persist/restore.rs#L568-L580
115
+ // https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/persist/restore.rs#L687-L713
116
+ await workerOperation((operation) => deps.herdr.tasks.stopAndClose(context, actual.binding, operation), signal);
265
117
  }
266
- else if (native.workspaceEvidence === null) {
267
- task = await rebind(task, binding, signal);
268
- binding = taskBinding(task);
269
- }
270
- if (task.nativeExecution.workspaceEvidence === null) {
271
- task = await rebind(task, binding, signal);
272
- binding = taskBinding(task);
273
- }
274
- if (task.recovery.retryAuthorized)
275
- task = deps.store.beginRecovery(task, deps.now());
276
- const prompt = deps.buildPrompt(task, deps.platform);
277
- deps.store.markNativeLaunchSubmitting(task, deps.now());
118
+ const binding = await workerOperation((operation) => deps.herdr.tasks.prepareWorkspace(context, operation), signal);
119
+ if (task.sessionId === null)
120
+ deps.emit({ kind: "warning", task, message: "The native session ID is missing; starting a new conversation in the existing task worktree." });
121
+ const assignment = { ...task, serverOrigin: input.owner.serverOrigin, workerId: deps.workerId, worktreeId: input.owner.worktreeId, worktree, configuration: input.configuration };
122
+ const prompt = deps.buildPrompt(assignment, deps.platform);
123
+ pendingInput.delete(key(task));
124
+ let observation;
278
125
  try {
279
- const outcome = await workerOperation((operation) => deps.herdr.tasks.start(executionContext(task), binding, { configuration: task.configuration, prompt,
280
- workspaceEvidence: task.nativeExecution.workspaceEvidence, ...(task.resources.nativeSession === null ? {} : { resumeSessionId: task.resources.nativeSession.sessionId }) }, operation), signal);
281
- if (outcome.kind === "rebind-required")
282
- throw new Error(`The native launch was fenced: ${outcome.reason}.`);
283
- if (outcome.kind === "reconnected")
284
- throw new Error("An unexpected live agent was observed during a fresh launch; its input was retained.");
285
- deps.store.recordNativeStartOutcome(task, { ...(outcome.launchEvidence === null ? {} : { launchEvidence: outcome.launchEvidence }), promptSubmission: outcome.promptSubmission }, deps.now());
286
- task = rememberNative(task, outcome.observation.nativeSession);
287
- if (outcome.promptSubmission === "not-submitted") {
288
- task = await captureUnsentLaunch(task, binding, signal);
289
- task = deps.store.pauseTask(task, firstInputWaiting, deps.now());
290
- }
291
- else
292
- await rememberStop(task, binding, signal);
293
- deps.emit({ kind: outcome.kind === "waiting" ? "waiting" : "started", task: refresh(task), message: task.resources.nativeSession === null ? "Native launch acknowledged; waiting for the original agent." : "Managed startup input submitted to the original native conversation." });
294
- return refresh(task);
126
+ observation = await workerOperation((operation) => deps.herdr.tasks.start(context, binding, {
127
+ configuration: input.configuration, prompt,
128
+ ...(assignment.sessionId === null ? {} : { resumeSessionId: assignment.sessionId }),
129
+ }, operation), signal);
295
130
  }
296
131
  catch (error) {
297
- if (error instanceof HerdrAgentActionError) {
298
- if (error.action === "agent.start" && error.submission !== "unknown" && error.launchEvidence === null && task.nativeExecution?.launchSubmission === "never-submitted") {
299
- deps.store.recordNativeLaunchNotSubmitted(task, error.submission === "rejected" ? { definiteRejection: true } : { notSubmitted: true }, deps.now());
300
- }
301
- else {
302
- const recorded = deps.store.recordNativeStartOutcome(task, { ...(error.launchEvidence === null ? {} : { launchEvidence: error.launchEvidence }), promptSubmission: error.promptSubmission === null ? "unknown" : error.promptSubmission }, deps.now());
303
- if (recorded.nativeExecution?.launchSubmission === "acknowledged" && recorded.nativeExecution.promptSubmission === "not-submitted") {
304
- try {
305
- await captureUnsentLaunch(recorded, binding, signal);
306
- }
307
- catch (observationError) {
308
- throw new AggregateError([error, observationError], "The first input remains unsubmitted, but original native process observation failed.", { cause: error });
309
- }
310
- }
311
- }
312
- }
313
- throw error;
132
+ if (!(error instanceof HerdrAgentActionError) || error.action !== "agent.prompt" || error.promptSubmission !== "not-submitted")
133
+ throw error;
134
+ observation = await workerOperation((operation) => deps.herdr.tasks.observe(context, binding, operation), signal);
135
+ assertNativeSession(task, observation);
136
+ pendingInput.set(key(task), { binding, prompt });
314
137
  }
138
+ assertNativeSession(task, observation);
139
+ if (observation.nativeSession !== null)
140
+ task = deps.store.setSessionId(task, observation.nativeSession.sessionId);
141
+ reportObservation(task, observation, true);
142
+ return observation;
315
143
  },
316
144
  };
317
145
  };
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/commands/worker/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/commands/worker/execution.ts"],"names":[],"mappings":"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"}