@codetreker/daynight 0.21.11 → 0.22.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 (77) hide show
  1. package/README.md +300 -41
  2. package/config.example.yml +65 -0
  3. package/dist/api/client.d.ts +2 -1
  4. package/dist/api/client.js +7 -1
  5. package/dist/api/client.js.map +1 -1
  6. package/dist/api/parse.d.ts +2 -1
  7. package/dist/api/parse.js +19 -0
  8. package/dist/api/parse.js.map +1 -1
  9. package/dist/api/types.d.ts +11 -3
  10. package/dist/commands/review/config.d.ts +2 -1
  11. package/dist/commands/review/config.js +24 -32
  12. package/dist/commands/review/config.js.map +1 -1
  13. package/dist/commands/review/configuration-guide.js +4 -4
  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 +10 -17
  18. package/dist/commands/review/repositories.js.map +1 -1
  19. package/dist/commands/skill/skills/using-daynight/references/handoff.md +3 -3
  20. package/dist/commands/worker/attach.d.ts +3 -0
  21. package/dist/commands/worker/attach.js +53 -0
  22. package/dist/commands/worker/attach.js.map +1 -0
  23. package/dist/commands/worker/config.d.ts +10 -0
  24. package/dist/commands/worker/config.js +36 -8
  25. package/dist/commands/worker/config.js.map +1 -1
  26. package/dist/commands/worker/configuration-guide.d.ts +19 -0
  27. package/dist/commands/worker/configuration-guide.js +86 -0
  28. package/dist/commands/worker/configuration-guide.js.map +1 -0
  29. package/dist/commands/worker/control.d.ts +55 -0
  30. package/dist/commands/worker/control.js +151 -0
  31. package/dist/commands/worker/control.js.map +1 -0
  32. package/dist/commands/worker/coordinator.d.ts +1 -0
  33. package/dist/commands/worker/coordinator.js +53 -13
  34. package/dist/commands/worker/coordinator.js.map +1 -1
  35. package/dist/commands/worker/definition.js +62 -2
  36. package/dist/commands/worker/definition.js.map +1 -1
  37. package/dist/commands/worker/execution.js +90 -27
  38. package/dist/commands/worker/execution.js.map +1 -1
  39. package/dist/commands/worker/herdr/agents.d.ts +1 -0
  40. package/dist/commands/worker/herdr/agents.js +78 -6
  41. package/dist/commands/worker/herdr/agents.js.map +1 -1
  42. package/dist/commands/worker/herdr/codex-input.d.ts +2 -0
  43. package/dist/commands/worker/herdr/codex-input.js +35 -0
  44. package/dist/commands/worker/herdr/codex-input.js.map +1 -0
  45. package/dist/commands/worker/herdr/instance.d.ts +1 -0
  46. package/dist/commands/worker/herdr/instance.js +30 -5
  47. package/dist/commands/worker/herdr/instance.js.map +1 -1
  48. package/dist/commands/worker/index.d.ts +15 -0
  49. package/dist/commands/worker/index.js +59 -1
  50. package/dist/commands/worker/index.js.map +1 -1
  51. package/dist/commands/worker/instance-lock.d.ts +5 -0
  52. package/dist/commands/worker/instance-lock.js +11 -1
  53. package/dist/commands/worker/instance-lock.js.map +1 -1
  54. package/dist/commands/worker/remote.d.ts +6 -1
  55. package/dist/commands/worker/remote.js +12 -0
  56. package/dist/commands/worker/remote.js.map +1 -1
  57. package/dist/commands/worker/repositories.d.ts +23 -0
  58. package/dist/commands/worker/repositories.js +157 -0
  59. package/dist/commands/worker/repositories.js.map +1 -0
  60. package/dist/commands/worker/runtime.d.ts +9 -0
  61. package/dist/commands/worker/runtime.js +173 -7
  62. package/dist/commands/worker/runtime.js.map +1 -1
  63. package/dist/commands/worker/store.d.ts +18 -0
  64. package/dist/commands/worker/store.js +101 -17
  65. package/dist/commands/worker/store.js.map +1 -1
  66. package/dist/config/document.d.ts +1 -1
  67. package/dist/config/document.js +1 -9
  68. package/dist/config/document.js.map +1 -1
  69. package/dist/config/errors.d.ts +2 -2
  70. package/dist/config/errors.js.map +1 -1
  71. package/dist/platform/instance-lock.d.ts +4 -0
  72. package/dist/platform/instance-lock.js +9 -1
  73. package/dist/platform/instance-lock.js.map +1 -1
  74. package/dist/repository/location.d.ts +7 -0
  75. package/dist/repository/location.js +51 -0
  76. package/dist/repository/location.js.map +1 -0
  77. package/package.json +4 -3
@@ -2,6 +2,7 @@ import path from "node:path";
2
2
  import { createOperation, OperationError } from "../../api/operation.js";
3
3
  import { HerdrAgentActionError } from "./herdr.js";
4
4
  import { buildHerdrAgentArguments } from "./herdr/arguments.js";
5
+ import { herdrExecutionLabel } from "./herdr/agents.js";
5
6
  export const isWorkerCancellation = (error, signal) => {
6
7
  if (!signal.aborted)
7
8
  return false;
@@ -45,7 +46,9 @@ export const actualTaskPane = (task, resources) => {
45
46
  return workspace.panes[0];
46
47
  };
47
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;
48
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.";
49
52
  export const createExecutionDriver = (deps) => {
50
53
  const refresh = (task) => {
51
54
  const current = deps.store.getTask(task);
@@ -65,6 +68,73 @@ export const createExecutionDriver = (deps) => {
65
68
  }
66
69
  };
67
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
+ };
68
138
  const prepareWorkspace = async (task, signal) => {
69
139
  deps.store.markWorkspaceSubmitting(task, deps.now());
70
140
  try {
@@ -120,6 +190,8 @@ export const createExecutionDriver = (deps) => {
120
190
  return task;
121
191
  if (task.status !== "active")
122
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);
123
195
  const original = actualTaskPane(task, resources);
124
196
  if (task.resources.nativeSession === null && task.nativeExecution?.launchSubmission !== "never-submitted") {
125
197
  if (original === undefined || (!live(original) && original.nativeSession === null))
@@ -175,30 +247,7 @@ export const createExecutionDriver = (deps) => {
175
247
  if (live(before)) {
176
248
  await rememberStop(task, binding, signal);
177
249
  task = refresh(task);
178
- const native = task.nativeExecution;
179
- if (native?.launchSubmission === "acknowledged" && native.promptSubmission === "not-submitted" && native.launchEvidence !== null && before.status !== "blocked" && (task.recovery.pauseReason === null || task.recovery.retryAuthorized)) {
180
- if (task.recovery.retryAuthorized)
181
- task = deps.store.beginRecovery(task, deps.now());
182
- const originalNativeId = task.resources.nativeSession?.sessionId;
183
- const resumedArgv = originalNativeId === undefined ? null : [context.agent, ...buildHerdrAgentArguments(task.configuration, originalNativeId)];
184
- const resumeSessionId = resumedArgv !== null && native.launchEvidence.argv.length === resumedArgv.length && native.launchEvidence.argv.every((argument, index) => argument === resumedArgv[index]) ? originalNativeId : undefined;
185
- const prompt = deps.buildPrompt(task, deps.platform);
186
- deps.store.markNativePromptSubmitting(task, deps.now());
187
- try {
188
- const outcome = await workerOperation((operation) => deps.herdr.tasks.start(context, binding, { configuration: task.configuration, prompt, initialPromptNotSubmitted: true, launchEvidence: native.launchEvidence, workspaceEvidence: native.workspaceEvidence,
189
- ...(resumeSessionId === undefined ? {} : { resumeSessionId }) }, operation), signal);
190
- if (outcome.kind === "rebind-required")
191
- throw new Error(`The original deferred startup input is fenced: ${outcome.reason}.`);
192
- deps.store.recordNativeStartOutcome(task, { ...(outcome.launchEvidence === null ? {} : { launchEvidence: outcome.launchEvidence }), promptSubmission: outcome.promptSubmission }, deps.now());
193
- task = rememberNative(task, outcome.observation.nativeSession);
194
- }
195
- catch (error) {
196
- if (error instanceof HerdrAgentActionError)
197
- deps.store.recordNativeStartOutcome(task, { ...(error.launchEvidence === null ? {} : { launchEvidence: error.launchEvidence }), promptSubmission: error.promptSubmission === null ? "unknown" : error.promptSubmission }, deps.now());
198
- throw error;
199
- }
200
- }
201
- 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." });
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." });
202
251
  return refresh(task);
203
252
  }
204
253
  if (task.recovery.pauseReason !== null && !task.recovery.retryAuthorized)
@@ -235,7 +284,12 @@ export const createExecutionDriver = (deps) => {
235
284
  throw new Error("An unexpected live agent was observed during a fresh launch; its input was retained.");
236
285
  deps.store.recordNativeStartOutcome(task, { ...(outcome.launchEvidence === null ? {} : { launchEvidence: outcome.launchEvidence }), promptSubmission: outcome.promptSubmission }, deps.now());
237
286
  task = rememberNative(task, outcome.observation.nativeSession);
238
- await rememberStop(task, binding, signal);
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);
239
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." });
240
294
  return refresh(task);
241
295
  }
@@ -244,8 +298,17 @@ export const createExecutionDriver = (deps) => {
244
298
  if (error.action === "agent.start" && error.submission !== "unknown" && error.launchEvidence === null && task.nativeExecution?.launchSubmission === "never-submitted") {
245
299
  deps.store.recordNativeLaunchNotSubmitted(task, error.submission === "rejected" ? { definiteRejection: true } : { notSubmitted: true }, deps.now());
246
300
  }
247
- else
248
- deps.store.recordNativeStartOutcome(task, { ...(error.launchEvidence === null ? {} : { launchEvidence: error.launchEvidence }), promptSubmission: error.promptSubmission === null ? "unknown" : error.promptSubmission }, deps.now());
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
+ }
249
312
  }
250
313
  throw error;
251
314
  }
@@ -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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"}
@@ -60,6 +60,7 @@ export type HerdrStopObservation = {
60
60
  nativeSessionId: string | null;
61
61
  shellPid: number;
62
62
  processIds: readonly number[];
63
+ nativeProcessIds: readonly number[] | null;
63
64
  observedAt: number;
64
65
  };
65
66
  export type HerdrOwnedWorkspace = {
@@ -3,7 +3,8 @@ import { realpath } from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { canonicalId } from "../../../api/parse.js";
5
5
  import { normalizeServerUrl } from "../../../config/server.js";
6
- import { buildHerdrAgentArguments } from "./arguments.js";
6
+ import { buildHerdrAgentArguments, validateHerdrAgentArguments } from "./arguments.js";
7
+ import { codexInputSurface } from "./codex-input.js";
7
8
  import { HerdrRpcError } from "./rpc.js";
8
9
  export { buildHerdrAgentArguments, validateHerdrAgentArguments } from "./arguments.js";
9
10
  const object = (value, name) => {
@@ -45,6 +46,34 @@ const nativeProcessEvidence = (value, agent) => {
45
46
  }
46
47
  return executable(value.argv0) || executable(value.name);
47
48
  };
49
+ const nativeInteractiveProcessEvidence = (value, agent) => {
50
+ if (!Array.isArray(value.argv) || !value.argv.every((argument) => typeof argument === "string"))
51
+ return false;
52
+ const argv = value.argv;
53
+ const leaf = (argument) => argument?.split(/[\\/]/).at(-1)?.toLowerCase();
54
+ const native = (argument) => [agent, `${agent}.exe`, `${agent}.js`].includes(leaf(argument));
55
+ const offset = native(argv[0]) ? 1 : ["node", "node.exe"].includes(leaf(argv[0])) && native(argv[1]) ? 2 : 0;
56
+ if (offset === 0)
57
+ return false;
58
+ const args = argv.slice(offset);
59
+ // Only an interactive invocation can fence deferred input. Subcommands such
60
+ // as `codex exec` and their descendants are not the original UI process.
61
+ if (agent === "codex" && args[0] === "--no-daemon")
62
+ args.shift();
63
+ if (agent === "codex" && args[0] === "resume" && typeof args[1] === "string" && canonicalId(args[1]) !== null)
64
+ args.splice(0, 2);
65
+ if (agent === "copilot" && args[0]?.startsWith("--resume=") && canonicalId(args[0].slice("--resume=".length)) !== null)
66
+ args.shift();
67
+ if (args[0] === "--model" && typeof args[1] === "string" && args[1] !== "")
68
+ args.splice(0, 2);
69
+ try {
70
+ validateHerdrAgentArguments(agent, args);
71
+ return true;
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ };
48
77
  const expectedResult = (value, type) => { if (value.type !== type)
49
78
  throw new TypeError(`Expected Herdr ${type} result; received ${value.type}.`); return value; };
50
79
  const sameBinding = (left, right) => left.session === right.session && left.workspaceId === right.workspaceId && left.paneId === right.paneId && left.terminalId === right.terminalId;
@@ -236,13 +265,53 @@ export const createHerdrAgentManager = (options) => {
236
265
  throw classifyMutationError(method, cause);
237
266
  }
238
267
  };
268
+ const visibleCodexSurface = async (context, binding, operation) => {
269
+ const owned = await readOwned(context, binding, operation);
270
+ const tabId = text(owned.pane.tab_id, "Input pane tab ID");
271
+ const result = expectedResult(await options.rpc.request("agent.read", { target: binding.paneId, source: "visible", format: "text", strip_ansi: true }, operation), "pane_read");
272
+ const read = object(result.read, "Visible native input surface");
273
+ if (read.pane_id !== binding.paneId || read.workspace_id !== binding.workspaceId || read.tab_id !== tabId || read.source !== "visible" || read.format !== "text")
274
+ throw new Error("The visible input surface does not identify the original task pane and requested source.");
275
+ if (typeof read.text !== "string" || typeof read.truncated !== "boolean")
276
+ throw new TypeError("The visible input surface must contain text and an explicit truncation fact.");
277
+ counter(read.revision, "Visible input revision");
278
+ if (read.truncated)
279
+ throw new Error("The original native input surface was truncated and cannot authorize automatic input.");
280
+ // Herdr 0.9.5 reports revision zero. It is not a freshness or input receipt.
281
+ const confirmed = await readOwned(context, binding, operation);
282
+ if (confirmed.pane.tab_id !== tabId)
283
+ throw new Error("The original input pane changed tabs during the visible surface observation.");
284
+ return codexInputSurface(read.text);
285
+ };
239
286
  const submit = async (context, binding, prompt, operation, initialPrompt = false) => {
240
287
  if (typeof prompt !== "string" || prompt.length === 0)
241
288
  throw new HerdrAgentActionError("The caller prompt must be nonempty text.", "agent.prompt", "not-submitted", { promptSubmission: "not-submitted" });
242
- const before = await observation(context, binding, operation);
243
- const knownAgent = before.kind === context.agent || before.nativeSession?.agent === context.agent || (initialPrompt && before.name === herdrExecutionAgentName(context));
244
- if (!knownAgent || before.launchPending || (!initialPrompt && before.nativeSession === null) || (initialPrompt && !before.interactiveReady) || before.status === "blocked")
245
- throw new HerdrAgentActionError("The original native agent is not ready for input.", "agent.prompt", "not-submitted", { promptSubmission: "not-submitted" });
289
+ let before;
290
+ const verifyInputAgent = (current) => {
291
+ const knownAgent = current.kind === context.agent || current.nativeSession?.agent === context.agent || (initialPrompt && current.name === herdrExecutionAgentName(context));
292
+ if (!knownAgent || current.launchPending || (!initialPrompt && current.nativeSession === null) || (initialPrompt && !current.interactiveReady) || current.status === "blocked")
293
+ throw new Error("The original native agent is not ready for input.");
294
+ };
295
+ try {
296
+ while (true) {
297
+ before = await observation(context, binding, operation);
298
+ verifyInputAgent(before);
299
+ if (context.agent !== "codex")
300
+ break;
301
+ const surface = await visibleCodexSurface(context, binding, operation);
302
+ if (surface === "blocked")
303
+ throw new Error("The original Codex input surface requires operator action; automatic input was not submitted.");
304
+ before = await observation(context, binding, operation);
305
+ verifyInputAgent(before);
306
+ if (surface === "composer" || (!initialPrompt && before.status === "working"))
307
+ break;
308
+ await wait(operation);
309
+ }
310
+ operation.check();
311
+ }
312
+ catch (cause) {
313
+ throw new HerdrAgentActionError(cause instanceof Error ? cause.message : "The original native input surface could not be verified.", "agent.prompt", "not-submitted", { cause, promptSubmission: "not-submitted" });
314
+ }
246
315
  const result = await mutation("agent.prompt", { target: binding.paneId, text: prompt }, "agent_prompted", operation);
247
316
  try {
248
317
  const returned = object(result.agent, "Prompt agent receipt");
@@ -262,6 +331,8 @@ export const createHerdrAgentManager = (options) => {
262
331
  throw new Error("The saved native session identity is invalid.");
263
332
  if (!Array.isArray(evidence.processIds) || evidence.processIds.length === 0 || new Set(evidence.processIds).size !== evidence.processIds.length || evidence.processIds.some((value) => pid(value) === evidence.shellPid))
264
333
  throw new Error("The original native process observation is invalid.");
334
+ if (evidence.nativeProcessIds !== null && (!Array.isArray(evidence.nativeProcessIds) || evidence.nativeProcessIds.length === 0 || new Set(evidence.nativeProcessIds).size !== evidence.nativeProcessIds.length || evidence.nativeProcessIds.some((value) => pid(value) === evidence.shellPid || !evidence.processIds.includes(value))))
335
+ throw new Error("The original interactive native process observation is invalid.");
265
336
  if (!Number.isSafeInteger(evidence.observedAt) || evidence.observedAt < 0)
266
337
  throw new Error("The original process observation time is invalid.");
267
338
  };
@@ -537,11 +608,12 @@ export const createHerdrAgentManager = (options) => {
537
608
  const processes = info.foreground_processes === undefined ? [] : array(info.foreground_processes, "Foreground processes");
538
609
  const records = processes.map((value) => object(value, "Foreground process"));
539
610
  const processIds = [...new Set(records.map((value) => pid(value.pid)).filter((value) => value !== shellPid))];
611
+ const keys = [...new Set(records.filter((value) => pid(value.pid) !== shellPid && nativeInteractiveProcessEvidence(value, context.agent)).map((value) => pid(value.pid)))];
540
612
  if (processIds.length === 0)
541
613
  throw new Error("The original native process identities are unavailable; pane absence or an empty process list cannot establish stopped confirmation.");
542
614
  if (current.launchPending && (current.name !== herdrExecutionAgentName(context) || !records.some((value) => pid(value.pid) !== shellPid && nativeProcessEvidence(value, context.agent))))
543
615
  throw new Error("The pending task launch has no concrete original native process evidence.");
544
- return { binding, ownerLabel: herdrExecutionLabel(context), agent: context.agent, nativeSessionId: current.nativeSession?.sessionId ?? null, shellPid, processIds, observedAt: Date.now() };
616
+ return { binding, ownerLabel: herdrExecutionLabel(context), agent: context.agent, nativeSessionId: current.nativeSession?.sessionId ?? null, shellPid, processIds, nativeProcessIds: keys.length === 0 ? null : keys, observedAt: Date.now() };
545
617
  },
546
618
  requestGracefulStop: (context, binding, operation) => serialized(binding.paneId, operation, () => submit(context, binding, "/exit", operation)),
547
619
  // This observes only the current shell. Historical never-submitted launch state