@codetreker/daynight 0.21.13 → 0.24.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 (102) hide show
  1. package/README.md +364 -287
  2. package/config.example.yml +69 -0
  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.d.ts +2 -1
  11. package/dist/commands/review/config.js +22 -39
  12. package/dist/commands/review/config.js.map +1 -1
  13. package/dist/commands/review/configuration-guide.js +7 -6
  14. package/dist/commands/review/configuration-guide.js.map +1 -1
  15. package/dist/commands/review/definition.js +1 -1
  16. package/dist/commands/review/definition.js.map +1 -1
  17. package/dist/commands/review/repositories.js +19 -19
  18. package/dist/commands/review/repositories.js.map +1 -1
  19. package/dist/commands/skill/skills/using-daynight/references/execute-task-in-managed.md +6 -5
  20. package/dist/commands/skill/skills/using-daynight/references/handbook.md +1 -1
  21. package/dist/commands/skill/skills/using-daynight/references/handoff.md +1 -1
  22. package/dist/commands/worker/attach.d.ts +3 -0
  23. package/dist/commands/worker/attach.js +53 -0
  24. package/dist/commands/worker/attach.js.map +1 -0
  25. package/dist/commands/worker/cleanup.d.ts +8 -2
  26. package/dist/commands/worker/cleanup.js +44 -160
  27. package/dist/commands/worker/cleanup.js.map +1 -1
  28. package/dist/commands/worker/config.d.ts +13 -3
  29. package/dist/commands/worker/config.js +35 -13
  30. package/dist/commands/worker/config.js.map +1 -1
  31. package/dist/commands/worker/configuration-guide.d.ts +19 -0
  32. package/dist/commands/worker/configuration-guide.js +86 -0
  33. package/dist/commands/worker/configuration-guide.js.map +1 -0
  34. package/dist/commands/worker/control.d.ts +11 -18
  35. package/dist/commands/worker/control.js +75 -132
  36. package/dist/commands/worker/control.js.map +1 -1
  37. package/dist/commands/worker/coordinator.d.ts +10 -8
  38. package/dist/commands/worker/coordinator.js +311 -473
  39. package/dist/commands/worker/coordinator.js.map +1 -1
  40. package/dist/commands/worker/definition.js +34 -18
  41. package/dist/commands/worker/definition.js.map +1 -1
  42. package/dist/commands/worker/diagnostics.js +2 -3
  43. package/dist/commands/worker/diagnostics.js.map +1 -1
  44. package/dist/commands/worker/execution.d.ts +35 -10
  45. package/dist/commands/worker/execution.js +92 -283
  46. package/dist/commands/worker/execution.js.map +1 -1
  47. package/dist/commands/worker/herdr/agents.d.ts +12 -91
  48. package/dist/commands/worker/herdr/agents.js +111 -358
  49. package/dist/commands/worker/herdr/agents.js.map +1 -1
  50. package/dist/commands/worker/herdr/instance.d.ts +1 -0
  51. package/dist/commands/worker/herdr/instance.js +30 -5
  52. package/dist/commands/worker/herdr/instance.js.map +1 -1
  53. package/dist/commands/worker/herdr/preflight.d.ts +21 -9
  54. package/dist/commands/worker/herdr/preflight.js +118 -124
  55. package/dist/commands/worker/herdr/preflight.js.map +1 -1
  56. package/dist/commands/worker/herdr.d.ts +7 -63
  57. package/dist/commands/worker/herdr.js.map +1 -1
  58. package/dist/commands/worker/identity.js +2 -2
  59. package/dist/commands/worker/identity.js.map +1 -1
  60. package/dist/commands/worker/index.d.ts +8 -0
  61. package/dist/commands/worker/index.js +21 -14
  62. package/dist/commands/worker/index.js.map +1 -1
  63. package/dist/commands/worker/prompts.d.ts +10 -3
  64. package/dist/commands/worker/prompts.js +21 -32
  65. package/dist/commands/worker/prompts.js.map +1 -1
  66. package/dist/commands/worker/remote.d.ts +2 -3
  67. package/dist/commands/worker/remote.js +1 -6
  68. package/dist/commands/worker/remote.js.map +1 -1
  69. package/dist/commands/worker/repositories.d.ts +40 -0
  70. package/dist/commands/worker/repositories.js +236 -0
  71. package/dist/commands/worker/repositories.js.map +1 -0
  72. package/dist/commands/worker/runtime.d.ts +1 -0
  73. package/dist/commands/worker/runtime.js +135 -212
  74. package/dist/commands/worker/runtime.js.map +1 -1
  75. package/dist/commands/worker/setup-environment.d.ts +31 -0
  76. package/dist/commands/worker/setup-environment.js +146 -0
  77. package/dist/commands/worker/setup-environment.js.map +1 -0
  78. package/dist/commands/worker/setup.d.ts +11 -0
  79. package/dist/commands/worker/setup.js +113 -0
  80. package/dist/commands/worker/setup.js.map +1 -0
  81. package/dist/commands/worker/store.d.ts +12 -114
  82. package/dist/commands/worker/store.js +92 -817
  83. package/dist/commands/worker/store.js.map +1 -1
  84. package/dist/commands/worker/types.d.ts +10 -114
  85. package/dist/commands/worker/worktrees.d.ts +9 -9
  86. package/dist/commands/worker/worktrees.js +77 -37
  87. package/dist/commands/worker/worktrees.js.map +1 -1
  88. package/dist/config/document.d.ts +0 -1
  89. package/dist/config/document.js +1 -22
  90. package/dist/config/document.js.map +1 -1
  91. package/dist/config/errors.d.ts +2 -2
  92. package/dist/config/errors.js.map +1 -1
  93. package/dist/config/files.d.ts +7 -1
  94. package/dist/config/files.js +4 -1
  95. package/dist/config/files.js.map +1 -1
  96. package/dist/config/ownership.d.ts +12 -0
  97. package/dist/config/ownership.js +39 -0
  98. package/dist/config/ownership.js.map +1 -0
  99. package/dist/repository/location.d.ts +7 -0
  100. package/dist/repository/location.js +51 -0
  101. package/dist/repository/location.js.map +1 -0
  102. package/package.json +4 -3
@@ -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,109 @@ 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)
61
- 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());
181
- };
54
+ const pendingInput = new Map();
55
+ const key = (task) => `${task.projectId}/${task.taskId}/${task.claimId}`;
182
56
  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());
57
+ forget: (task) => { pendingInput.delete(key(task)); },
58
+ advance: async (input, signal) => {
59
+ let task = deps.store.getTask(input.task);
60
+ if (task === null || task.status !== "active")
61
+ throw new Error("Resource startup requires an active local claim.");
62
+ const context = executionContext({ ...input, task });
63
+ await settleWorkerStops(deps, input.owner, signal);
64
+ const resources = await workerOperation((operation) => deps.herdr.tasks.listResources(operation), signal);
65
+ const actual = actualTaskPane(input.owner, resources);
66
+ const worktree = task.sessionId === null
67
+ ? await workerOperation((operation) => deps.git.prepareWorktree(input.project, input.owner, operation), signal, 180_000)
68
+ : await workerOperation((operation) => deps.git.verifyWorktree(input.project, input.owner, operation), signal);
69
+ if (actual !== undefined && liveAgent(actual)) {
70
+ let observed = await workerOperation((operation) => deps.herdr.tasks.observe(context, actual.binding, operation), signal);
71
+ assertNativeSession(task, observed);
72
+ const pending = pendingInput.get(key(task));
73
+ if (pending !== undefined && pending.binding.terminalId === actual.binding.terminalId && pending.binding.paneId === actual.binding.paneId && observed.status !== "blocked" && observed.interactiveReady && !observed.launchPending) {
74
+ pendingInput.delete(key(task));
75
+ try {
76
+ await workerOperation((operation) => deps.herdr.tasks.submitPrompt(context, actual.binding, pending.prompt, operation), signal);
77
+ observed = await workerOperation((operation) => deps.herdr.tasks.observe(context, actual.binding, operation), signal);
78
+ }
79
+ catch (error) {
80
+ if (error instanceof HerdrAgentActionError && error.promptSubmission === "not-submitted")
81
+ pendingInput.set(key(task), pending);
82
+ throw error;
83
+ }
240
84
  }
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; attach to its private Herdr session." : "Observed the original live agent without replaying its startup input." });
251
- return refresh(task);
85
+ assertNativeSession(task, observed);
86
+ if (observed.nativeSession !== null)
87
+ task = deps.store.setSessionId(task, observed.nativeSession.sessionId);
88
+ deps.emit({ kind: observed.status === "blocked" ? "waiting" : "reconnected", task, message: "Connected to the existing agent without repeating its managed assignment." });
89
+ return observed;
252
90
  }
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);
91
+ if (actual !== undefined) {
92
+ // Cold restore drops workspace environment overrides and retains the old native reference.
93
+ // A fresh workspace restores native XDG settings and observes only the new launch's SessionStart.
94
+ // https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/persist/restore.rs#L568-L580
95
+ // https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/persist/restore.rs#L687-L713
96
+ await workerOperation((operation) => deps.herdr.tasks.stopAndClose(context, actual.binding, operation), signal);
265
97
  }
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());
98
+ const binding = await workerOperation((operation) => deps.herdr.tasks.prepareWorkspace(context, operation), signal);
99
+ if (task.sessionId === null)
100
+ deps.emit({ kind: "warning", task, message: "The native session ID is missing; starting a new conversation in the existing task worktree." });
101
+ const assignment = { ...task, serverOrigin: input.owner.serverOrigin, workerId: deps.workerId, worktreeId: input.owner.worktreeId, worktree, configuration: input.configuration };
102
+ const prompt = deps.buildPrompt(assignment, deps.platform);
103
+ pendingInput.delete(key(task));
104
+ let observation;
278
105
  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);
106
+ observation = await workerOperation((operation) => deps.herdr.tasks.start(context, binding, {
107
+ configuration: input.configuration, prompt,
108
+ ...(assignment.sessionId === null ? {} : { resumeSessionId: assignment.sessionId }),
109
+ }, operation), signal);
295
110
  }
296
111
  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;
112
+ if (!(error instanceof HerdrAgentActionError) || error.action !== "agent.prompt" || error.promptSubmission !== "not-submitted")
113
+ throw error;
114
+ observation = await workerOperation((operation) => deps.herdr.tasks.observe(context, binding, operation), signal);
115
+ assertNativeSession(task, observation);
116
+ pendingInput.set(key(task), { binding, prompt });
117
+ deps.emit({ kind: "waiting", task, message: "The first managed input is waiting in this worker process; use daynight worker attach to resolve the native screen." });
314
118
  }
119
+ assertNativeSession(task, observation);
120
+ if (observation.nativeSession !== null)
121
+ task = deps.store.setSessionId(task, observation.nativeSession.sessionId);
122
+ deps.emit({ kind: observation.status === "blocked" ? "waiting" : "started", task, message: observation.status === "blocked" ? "The native agent is waiting for input; use daynight worker attach." : "Started the managed task conversation." });
123
+ return observation;
315
124
  },
316
125
  };
317
126
  };
@@ -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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"}