agent-tower 0.6.0-beta.11 → 0.6.0-beta.13

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 (204) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +4 -0
  3. package/dist/app.js.map +1 -1
  4. package/dist/cli.js +39 -19
  5. package/dist/cli.js.map +1 -1
  6. package/dist/executors/__tests__/base.executor.test.js +133 -1
  7. package/dist/executors/__tests__/base.executor.test.js.map +1 -1
  8. package/dist/executors/__tests__/stdin-prompt.executors.test.js +18 -0
  9. package/dist/executors/__tests__/stdin-prompt.executors.test.js.map +1 -1
  10. package/dist/executors/base.executor.d.ts +8 -0
  11. package/dist/executors/base.executor.d.ts.map +1 -1
  12. package/dist/executors/base.executor.js +336 -56
  13. package/dist/executors/base.executor.js.map +1 -1
  14. package/dist/executors/index.d.ts +2 -1
  15. package/dist/executors/index.d.ts.map +1 -1
  16. package/dist/executors/index.js +1 -1
  17. package/dist/executors/index.js.map +1 -1
  18. package/dist/executors/start-error.d.ts +17 -0
  19. package/dist/executors/start-error.d.ts.map +1 -1
  20. package/dist/executors/start-error.js +36 -1
  21. package/dist/executors/start-error.js.map +1 -1
  22. package/dist/index.js +39 -29
  23. package/dist/index.js.map +1 -1
  24. package/dist/mcp/http-client.test.js +20 -0
  25. package/dist/mcp/http-client.test.js.map +1 -1
  26. package/dist/mcp/tools/__tests__/sessions.test.d.ts +2 -0
  27. package/dist/mcp/tools/__tests__/sessions.test.d.ts.map +1 -0
  28. package/dist/mcp/tools/__tests__/sessions.test.js +33 -0
  29. package/dist/mcp/tools/__tests__/sessions.test.js.map +1 -0
  30. package/dist/routes/__tests__/sessions-runtime.test.js +75 -3
  31. package/dist/routes/__tests__/sessions-runtime.test.js.map +1 -1
  32. package/dist/routes/conversations.d.ts.map +1 -1
  33. package/dist/routes/conversations.js +5 -1
  34. package/dist/routes/conversations.js.map +1 -1
  35. package/dist/routes/sessions.d.ts.map +1 -1
  36. package/dist/routes/sessions.js +13 -2
  37. package/dist/routes/sessions.js.map +1 -1
  38. package/dist/routes/team-runs.d.ts.map +1 -1
  39. package/dist/routes/team-runs.js +13 -1
  40. package/dist/routes/team-runs.js.map +1 -1
  41. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js +86 -0
  42. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js.map +1 -1
  43. package/dist/runtime/__tests__/acp-process-manager.test.js +393 -6
  44. package/dist/runtime/__tests__/acp-process-manager.test.js.map +1 -1
  45. package/dist/runtime/__tests__/cli-driver-lifecycle.test.d.ts +2 -0
  46. package/dist/runtime/__tests__/cli-driver-lifecycle.test.d.ts.map +1 -0
  47. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js +244 -0
  48. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js.map +1 -0
  49. package/dist/runtime/__tests__/launch-cleanup-registry.test.d.ts +2 -0
  50. package/dist/runtime/__tests__/launch-cleanup-registry.test.d.ts.map +1 -0
  51. package/dist/runtime/__tests__/launch-cleanup-registry.test.js +154 -0
  52. package/dist/runtime/__tests__/launch-cleanup-registry.test.js.map +1 -0
  53. package/dist/runtime/__tests__/runtime-coordinator.test.js +117 -1
  54. package/dist/runtime/__tests__/runtime-coordinator.test.js.map +1 -1
  55. package/dist/runtime/__tests__/server-entry-shutdown.test.d.ts +2 -0
  56. package/dist/runtime/__tests__/server-entry-shutdown.test.d.ts.map +1 -0
  57. package/dist/runtime/__tests__/server-entry-shutdown.test.js +38 -0
  58. package/dist/runtime/__tests__/server-entry-shutdown.test.js.map +1 -0
  59. package/dist/runtime/__tests__/shutdown-coordinator.test.d.ts +2 -0
  60. package/dist/runtime/__tests__/shutdown-coordinator.test.d.ts.map +1 -0
  61. package/dist/runtime/__tests__/shutdown-coordinator.test.js +28 -0
  62. package/dist/runtime/__tests__/shutdown-coordinator.test.js.map +1 -0
  63. package/dist/runtime/acp/acp-driver.d.ts.map +1 -1
  64. package/dist/runtime/acp/acp-driver.js +108 -35
  65. package/dist/runtime/acp/acp-driver.js.map +1 -1
  66. package/dist/runtime/acp/agents/managed-directory.d.ts.map +1 -1
  67. package/dist/runtime/acp/agents/managed-directory.js +3 -1
  68. package/dist/runtime/acp/agents/managed-directory.js.map +1 -1
  69. package/dist/runtime/acp/agents/managed-directory.test.d.ts +2 -0
  70. package/dist/runtime/acp/agents/managed-directory.test.d.ts.map +1 -0
  71. package/dist/runtime/acp/agents/managed-directory.test.js +25 -0
  72. package/dist/runtime/acp/agents/managed-directory.test.js.map +1 -0
  73. package/dist/runtime/acp/launch-cleanup-registry.d.ts +32 -0
  74. package/dist/runtime/acp/launch-cleanup-registry.d.ts.map +1 -0
  75. package/dist/runtime/acp/launch-cleanup-registry.js +176 -0
  76. package/dist/runtime/acp/launch-cleanup-registry.js.map +1 -0
  77. package/dist/runtime/acp/process-manager.d.ts +58 -0
  78. package/dist/runtime/acp/process-manager.d.ts.map +1 -1
  79. package/dist/runtime/acp/process-manager.js +489 -33
  80. package/dist/runtime/acp/process-manager.js.map +1 -1
  81. package/dist/runtime/cli-driver.d.ts.map +1 -1
  82. package/dist/runtime/cli-driver.js +230 -46
  83. package/dist/runtime/cli-driver.js.map +1 -1
  84. package/dist/runtime/contracts.d.ts +21 -2
  85. package/dist/runtime/contracts.d.ts.map +1 -1
  86. package/dist/runtime/index.d.ts +1 -0
  87. package/dist/runtime/index.d.ts.map +1 -1
  88. package/dist/runtime/index.js +1 -0
  89. package/dist/runtime/index.js.map +1 -1
  90. package/dist/runtime/runtime-coordinator.d.ts +8 -1
  91. package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
  92. package/dist/runtime/runtime-coordinator.js +118 -18
  93. package/dist/runtime/runtime-coordinator.js.map +1 -1
  94. package/dist/runtime/server-entry-shutdown.d.ts +12 -0
  95. package/dist/runtime/server-entry-shutdown.d.ts.map +1 -0
  96. package/dist/runtime/server-entry-shutdown.js +23 -0
  97. package/dist/runtime/server-entry-shutdown.js.map +1 -0
  98. package/dist/runtime/shutdown-coordinator.d.ts +17 -0
  99. package/dist/runtime/shutdown-coordinator.d.ts.map +1 -0
  100. package/dist/runtime/shutdown-coordinator.js +67 -0
  101. package/dist/runtime/shutdown-coordinator.js.map +1 -0
  102. package/dist/services/__tests__/conversation.service.test.js +160 -0
  103. package/dist/services/__tests__/conversation.service.test.js.map +1 -1
  104. package/dist/services/__tests__/database-maintenance.service.test.js +97 -0
  105. package/dist/services/__tests__/database-maintenance.service.test.js.map +1 -1
  106. package/dist/services/__tests__/member-heartbeat-scheduler.test.js +6 -0
  107. package/dist/services/__tests__/member-heartbeat-scheduler.test.js.map +1 -1
  108. package/dist/services/__tests__/member-heartbeat.test.js +7 -11
  109. package/dist/services/__tests__/member-heartbeat.test.js.map +1 -1
  110. package/dist/services/__tests__/session-manager.lifecycle.test.js +402 -12
  111. package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
  112. package/dist/services/__tests__/session-manager.team-run.test.js +422 -29
  113. package/dist/services/__tests__/session-manager.team-run.test.js.map +1 -1
  114. package/dist/services/__tests__/team-queue-recovery.integration.test.js +1 -0
  115. package/dist/services/__tests__/team-queue-recovery.integration.test.js.map +1 -1
  116. package/dist/services/__tests__/team-reconciler.service.test.js +1282 -4
  117. package/dist/services/__tests__/team-reconciler.service.test.js.map +1 -1
  118. package/dist/services/__tests__/team-run.service.test.js +161 -1
  119. package/dist/services/__tests__/team-run.service.test.js.map +1 -1
  120. package/dist/services/__tests__/team-scheduler.service.test.js +334 -6
  121. package/dist/services/__tests__/team-scheduler.service.test.js.map +1 -1
  122. package/dist/services/conversation.service.d.ts.map +1 -1
  123. package/dist/services/conversation.service.js +21 -2
  124. package/dist/services/conversation.service.js.map +1 -1
  125. package/dist/services/database-maintenance.service.d.ts.map +1 -1
  126. package/dist/services/database-maintenance.service.js +68 -17
  127. package/dist/services/database-maintenance.service.js.map +1 -1
  128. package/dist/services/member-heartbeat-scheduler.d.ts +6 -5
  129. package/dist/services/member-heartbeat-scheduler.d.ts.map +1 -1
  130. package/dist/services/member-heartbeat-scheduler.js +7 -5
  131. package/dist/services/member-heartbeat-scheduler.js.map +1 -1
  132. package/dist/services/session-manager.d.ts +124 -14
  133. package/dist/services/session-manager.d.ts.map +1 -1
  134. package/dist/services/session-manager.js +1035 -116
  135. package/dist/services/session-manager.js.map +1 -1
  136. package/dist/services/session-runtime-cleanup-gate.d.ts +25 -0
  137. package/dist/services/session-runtime-cleanup-gate.d.ts.map +1 -0
  138. package/dist/services/session-runtime-cleanup-gate.js +284 -0
  139. package/dist/services/session-runtime-cleanup-gate.js.map +1 -0
  140. package/dist/services/task.service.d.ts +2 -2
  141. package/dist/services/team-member-admission-barrier.d.ts +3 -0
  142. package/dist/services/team-member-admission-barrier.d.ts.map +1 -0
  143. package/dist/services/team-member-admission-barrier.js +26 -0
  144. package/dist/services/team-member-admission-barrier.js.map +1 -0
  145. package/dist/services/team-reconciler.service.d.ts +30 -7
  146. package/dist/services/team-reconciler.service.d.ts.map +1 -1
  147. package/dist/services/team-reconciler.service.js +528 -111
  148. package/dist/services/team-reconciler.service.js.map +1 -1
  149. package/dist/services/team-run.service.d.ts.map +1 -1
  150. package/dist/services/team-run.service.js +37 -13
  151. package/dist/services/team-run.service.js.map +1 -1
  152. package/dist/services/team-scheduler.service.d.ts +8 -6
  153. package/dist/services/team-scheduler.service.d.ts.map +1 -1
  154. package/dist/services/team-scheduler.service.js +323 -120
  155. package/dist/services/team-scheduler.service.js.map +1 -1
  156. package/dist/services/workspace-background-process-manager.d.ts.map +1 -1
  157. package/dist/services/workspace-background-process-manager.js +2 -5
  158. package/dist/services/workspace-background-process-manager.js.map +1 -1
  159. package/dist/services/workspace.service.d.ts +15 -8
  160. package/dist/services/workspace.service.d.ts.map +1 -1
  161. package/dist/socket/index.d.ts.map +1 -1
  162. package/dist/socket/index.js +27 -14
  163. package/dist/socket/index.js.map +1 -1
  164. package/dist/utils/__tests__/unix-process-identity.test.d.ts +2 -0
  165. package/dist/utils/__tests__/unix-process-identity.test.d.ts.map +1 -0
  166. package/dist/utils/__tests__/unix-process-identity.test.js +73 -0
  167. package/dist/utils/__tests__/unix-process-identity.test.js.map +1 -0
  168. package/dist/utils/error-log.d.ts +2 -0
  169. package/dist/utils/error-log.d.ts.map +1 -1
  170. package/dist/utils/error-log.js +40 -3
  171. package/dist/utils/error-log.js.map +1 -1
  172. package/dist/utils/error-log.test.js +14 -2
  173. package/dist/utils/error-log.test.js.map +1 -1
  174. package/dist/utils/process-launch.d.ts +2 -2
  175. package/dist/utils/process-launch.d.ts.map +1 -1
  176. package/dist/utils/process-launch.js +339 -79
  177. package/dist/utils/process-launch.js.map +1 -1
  178. package/dist/utils/process-launch.test.js +168 -10
  179. package/dist/utils/process-launch.test.js.map +1 -1
  180. package/dist/utils/spawned-process-identity.d.ts +7 -0
  181. package/dist/utils/spawned-process-identity.d.ts.map +1 -0
  182. package/dist/utils/spawned-process-identity.js +36 -0
  183. package/dist/utils/spawned-process-identity.js.map +1 -0
  184. package/dist/utils/tree-cleanup-channel.d.ts +18 -0
  185. package/dist/utils/tree-cleanup-channel.d.ts.map +1 -0
  186. package/dist/utils/tree-cleanup-channel.js +16 -0
  187. package/dist/utils/tree-cleanup-channel.js.map +1 -0
  188. package/dist/utils/tree-cleanup-channel.test.d.ts +2 -0
  189. package/dist/utils/tree-cleanup-channel.test.d.ts.map +1 -0
  190. package/dist/utils/tree-cleanup-channel.test.js +15 -0
  191. package/dist/utils/tree-cleanup-channel.test.js.map +1 -0
  192. package/dist/utils/unix-process-identity.d.ts +13 -1
  193. package/dist/utils/unix-process-identity.d.ts.map +1 -1
  194. package/dist/utils/unix-process-identity.js +146 -25
  195. package/dist/utils/unix-process-identity.js.map +1 -1
  196. package/node_modules/@agent-tower/shared/dist/types.d.ts +1 -0
  197. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  198. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  199. package/package.json +1 -1
  200. package/prisma/migrations/20260824000000_add_execution_process_ownership/migration.sql +10 -0
  201. package/prisma/migrations/20260824010000_add_runtime_cleanup_recovery/migration.sql +10 -0
  202. package/prisma/migrations/20260824020000_add_runtime_launch_admission/migration.sql +72 -0
  203. package/prisma/migrations/20260826000000_add_conversation_turn_queue/migration.sql +19 -0
  204. package/prisma/schema.prisma +50 -7
@@ -13,6 +13,9 @@ import { resolveCommandParts } from './command-builder.js';
13
13
  import { stripAnsiSequences } from '../output/utils/ansi.js';
14
14
  import { buildPtyCommand, buildPtyCommandWithStdin, buildPtyWrapperEnv, getPtyLogFilePath, } from '../utils/process-launch.js';
15
15
  import { writeErrorLog } from '../utils/error-log.js';
16
+ import { captureSpawnedProcessIdentity, } from '../utils/spawned-process-identity.js';
17
+ import { attachSpawnCleanupOwner, markPreChildProcessFailure, } from './start-error.js';
18
+ import { createTreeCleanupChannel } from '../utils/tree-cleanup-channel.js';
16
19
  const PTY_LOG_FILE = getPtyLogFilePath();
17
20
  const OUTPUT_BUFFER_LIMIT = 8000;
18
21
  const REDACT_VALUE_AFTER_ARGS = new Set([
@@ -101,6 +104,121 @@ export var ExecutorExitResult;
101
104
  ExecutorExitResult["Success"] = "SUCCESS";
102
105
  ExecutorExitResult["Failure"] = "FAILURE";
103
106
  })(ExecutorExitResult || (ExecutorExitResult = {}));
107
+ function isTrustedWrapperExit(event) {
108
+ // A wrapper that is externally killed can report a root exit while leaving
109
+ // detached descendants behind. Only a normal wrapper exit is allowed to
110
+ // mark the parent-owned completion capability.
111
+ // node-pty reports a normal exit with signal=0 on macOS/Linux, while test
112
+ // doubles and some platforms omit the field. Treat both representations as
113
+ // “no terminating signal”; non-zero signals remain untrusted.
114
+ return (event.signal == null || event.signal === 0)
115
+ && typeof event.exitCode === 'number'
116
+ && event.exitCode >= 0;
117
+ }
118
+ const POST_SPAWN_TERM_GRACE_MS = 500;
119
+ // The PTY process is a wrapper which owns the detached agent process group.
120
+ // Never SIGKILL the wrapper from this owner: doing so skips its killTree()
121
+ // handler and can leave the agent descendants running. The wrapper escalates
122
+ // its known group to SIGKILL after its own bounded grace period.
123
+ const POST_SPAWN_WRAPPER_ESCALATION_GRACE_MS = 7_000;
124
+ /**
125
+ * A PTY handle is the only safe owner available before process identity has
126
+ * been persisted. Keep this owner attached until a real wrapper exit arrives;
127
+ * a timed-out signal attempt is not evidence that the process tree is gone.
128
+ */
129
+ function createSpawnCleanupOwner(shell, takeEarlyEvents, verifyTreeCleanup = () => true, disposeTreeCleanupChannel, markTreeCleanupCompleted = () => undefined) {
130
+ const hasVerifiedTreeCleanup = () => {
131
+ try {
132
+ return verifyTreeCleanup();
133
+ }
134
+ catch {
135
+ return false;
136
+ }
137
+ };
138
+ let exited = false;
139
+ let resolveExit;
140
+ const exit = new Promise((resolve) => { resolveExit = resolve; });
141
+ let offExit;
142
+ try {
143
+ offExit = shell.onExit((event) => {
144
+ // This listener is attached by the parent launch owner. A wrapper PTY
145
+ // exit is the trusted completion origin; the latch is still checked by
146
+ // the caller before any process-exit event is released.
147
+ if (isTrustedWrapperExit(event))
148
+ markTreeCleanupCompleted();
149
+ if (!hasVerifiedTreeCleanup())
150
+ return;
151
+ exited = true;
152
+ resolveExit();
153
+ });
154
+ }
155
+ catch {
156
+ // Keep the controlled kill path even when a test/damaged PTY cannot attach.
157
+ }
158
+ try {
159
+ const earlyEvents = takeEarlyEvents?.() ?? [];
160
+ if (earlyEvents.some((event) => event.type === 'exit' && isTrustedWrapperExit(event))) {
161
+ markTreeCleanupCompleted();
162
+ }
163
+ if (earlyEvents.some((event) => event.type === 'exit' && isTrustedWrapperExit(event)) && hasVerifiedTreeCleanup()) {
164
+ exited = true;
165
+ resolveExit();
166
+ }
167
+ }
168
+ catch {
169
+ // The original post-spawn error is more useful than an event handoff error.
170
+ }
171
+ const waitForExit = async (timeoutMs) => {
172
+ if (exited)
173
+ return;
174
+ let timer;
175
+ await Promise.race([
176
+ exit,
177
+ new Promise((resolve) => {
178
+ timer = setTimeout(resolve, timeoutMs);
179
+ timer.unref?.();
180
+ }),
181
+ ]);
182
+ if (timer)
183
+ clearTimeout(timer);
184
+ };
185
+ const requestStop = () => {
186
+ if (exited)
187
+ return;
188
+ try {
189
+ shell.kill('SIGINT');
190
+ }
191
+ catch { /* retry on the next cleanup attempt */ }
192
+ };
193
+ return {
194
+ processExit: exit,
195
+ requestStop,
196
+ cleanup: async () => {
197
+ if (!exited) {
198
+ requestStop();
199
+ await waitForExit(POST_SPAWN_TERM_GRACE_MS);
200
+ }
201
+ if (!exited) {
202
+ // SIGTERM is handled by the wrapper and causes it to signal the
203
+ // already captured child process group. A wrapper exit is the only
204
+ // evidence this owner accepts as complete tree cleanup.
205
+ try {
206
+ shell.kill('SIGTERM');
207
+ }
208
+ catch { /* retry on the next cleanup attempt */ }
209
+ await waitForExit(POST_SPAWN_WRAPPER_ESCALATION_GRACE_MS);
210
+ }
211
+ if (!exited) {
212
+ throw new Error('Spawned PTY did not confirm exit during cleanup');
213
+ }
214
+ },
215
+ dispose: () => {
216
+ offExit?.dispose();
217
+ offExit = undefined;
218
+ },
219
+ disposeTreeCleanupChannel,
220
+ };
221
+ }
104
222
  /**
105
223
  * Agent 能力
106
224
  */
@@ -156,9 +274,9 @@ export class BaseExecutor {
156
274
  if (!handedOff)
157
275
  events.push({ type: 'data', data });
158
276
  });
159
- const offExit = shell.onExit(({ exitCode }) => {
277
+ const offExit = shell.onExit(({ exitCode, signal }) => {
160
278
  if (!handedOff)
161
- events.push({ type: 'exit', exitCode });
279
+ events.push({ type: 'exit', exitCode, signal });
162
280
  });
163
281
  return () => {
164
282
  if (handedOff)
@@ -175,14 +293,30 @@ export class BaseExecutor {
175
293
  * 内部启动方法
176
294
  */
177
295
  async spawnInternal(config, commandParts) {
178
- const { programPath, args } = await resolveCommandParts(commandParts);
296
+ let resolved;
297
+ try {
298
+ resolved = await resolveCommandParts(commandParts);
299
+ }
300
+ catch (error) {
301
+ throw markPreChildProcessFailure(error);
302
+ }
303
+ const { programPath, args } = resolved;
179
304
  const env = config.env.withProfile(this.cmdOverrides);
180
305
  const cancel = new CancellationToken();
181
306
  // 添加 prompt 到参数列表
182
307
  const fullArgs = [...args, config.prompt];
183
308
  const invocation = buildPtyCommand(programPath, fullArgs);
184
309
  const fullEnv = env.getFullEnv();
185
- const wrapperEnv = buildPtyWrapperEnv(fullEnv);
310
+ const ownershipToken = randomUUID();
311
+ let cleanupChannel;
312
+ try {
313
+ cleanupChannel = await createTreeCleanupChannel();
314
+ }
315
+ catch (error) {
316
+ throw markPreChildProcessFailure(error);
317
+ }
318
+ const verifyCleanup = () => cleanupChannel.isCompleted();
319
+ const wrapperEnv = buildPtyWrapperEnv(fullEnv, process.env, ownershipToken, cleanupChannel.env);
186
320
  ptyLog(0, `Spawning: ${programPath} ${redactArgsForLog(fullArgs.slice(0, -1))} ... <prompt>`);
187
321
  ptyLog(0, `ENV ANTHROPIC_BASE_URL=${fullEnv.ANTHROPIC_BASE_URL || '(not set)'}`);
188
322
  ptyLog(0, `ENV ANTHROPIC_API_KEY=${fullEnv.ANTHROPIC_API_KEY ? '(set)' : '(not set)'}`);
@@ -204,6 +338,7 @@ export class BaseExecutor {
204
338
  });
205
339
  }
206
340
  catch (error) {
341
+ cleanupChannel.close();
207
342
  writeErrorLog({
208
343
  level: 'error',
209
344
  source: 'executor.spawn',
@@ -216,53 +351,120 @@ export class BaseExecutor {
216
351
  workingDir: config.workingDir,
217
352
  },
218
353
  });
219
- throw error;
354
+ throw markPreChildProcessFailure(error);
220
355
  }
221
356
  ptyLog(shell.pid, `Process spawned`);
222
- const takeEarlyEvents = this.collectEarlyPtyEvents(shell);
223
- // 收集并实时记录 PTY 输出(写入系统临时目录日志方便诊断)
224
- let outputBuffer = '';
225
- const offData = shell.onData((data) => {
226
- if (outputBuffer.length < OUTPUT_BUFFER_LIMIT) {
227
- outputBuffer += data;
357
+ let takeEarlyEvents;
358
+ let cleanupOwner;
359
+ let cleanupAttempted = false;
360
+ try {
361
+ takeEarlyEvents = this.collectEarlyPtyEvents(shell);
362
+ let identity = null;
363
+ let identityError;
364
+ try {
365
+ identity = await captureSpawnedProcessIdentity(shell.pid, ownershipToken);
366
+ if (!identity) {
367
+ throw new Error(`Could not persist a verifiable process identity for ${this.displayName}`);
368
+ }
228
369
  }
229
- logPtyOutput(shell.pid, data);
230
- });
231
- shell.onExit(({ exitCode, signal }) => {
232
- offData.dispose();
233
- ptyLog(shell.pid, `PTY exited code=${exitCode} signal=${signal}`);
234
- if (exitCode !== 0) {
235
- const cleaned = stripAnsiSequences(outputBuffer).replace(/\s+/g, ' ').trim();
236
- if (cleaned) {
237
- ptyLog(shell.pid, `full output: ${cleaned.slice(0, 1000)}`);
370
+ catch (error) {
371
+ identityError = error;
372
+ }
373
+ if (identityError) {
374
+ cleanupOwner = createSpawnCleanupOwner(shell, takeEarlyEvents, verifyCleanup, cleanupChannel.close, cleanupChannel.markCompleted);
375
+ try {
376
+ cleanupAttempted = true;
377
+ await cleanupOwner.cleanup();
378
+ cleanupOwner.dispose();
379
+ cleanupChannel.close();
380
+ }
381
+ catch {
382
+ // The owner remains attached to the error for Driver/session retry.
383
+ throw attachSpawnCleanupOwner(identityError, cleanupOwner);
238
384
  }
239
- writeErrorLog({
240
- level: 'warn',
241
- source: 'executor.exit',
242
- message: `${this.displayName} exited with non-zero code ${exitCode}`,
243
- metadata: {
244
- agentType: this.agentType,
245
- displayName: this.displayName,
246
- pid: shell.pid,
247
- exitCode,
248
- signal,
249
- workingDir: config.workingDir,
250
- output: cleaned ? cleaned.slice(0, 2000) : undefined,
251
- },
252
- });
385
+ // Only a real PTY exit makes this a safe pre-child failure.
386
+ throw markPreChildProcessFailure(identityError);
253
387
  }
254
- });
255
- // 监听取消信号
256
- cancel.onCancelled(() => {
257
- // 发送 SIGINT 进行优雅关闭
258
- shell.kill('SIGINT');
259
- });
260
- return {
261
- pid: shell.pid,
262
- pty: shell,
263
- cancel,
264
- takeEarlyEvents,
265
- };
388
+ if (!identity) {
389
+ throw new Error(`Could not persist a verifiable process identity for ${this.displayName}`);
390
+ }
391
+ // 收集并实时记录 PTY 输出(写入系统临时目录日志方便诊断)
392
+ let outputBuffer = '';
393
+ const offData = shell.onData((data) => {
394
+ if (outputBuffer.length < OUTPUT_BUFFER_LIMIT) {
395
+ outputBuffer += data;
396
+ }
397
+ logPtyOutput(shell.pid, data);
398
+ });
399
+ shell.onExit(({ exitCode, signal }) => {
400
+ // The completion latch is parent-owned. The wrapper only exits after
401
+ // its marker-based multi-group cleanup reaches CLEAN_EMPTY; Agent
402
+ // output cannot mark this latch.
403
+ if (isTrustedWrapperExit({ exitCode, signal }))
404
+ cleanupChannel.markCompleted();
405
+ offData.dispose();
406
+ ptyLog(shell.pid, `PTY exited code=${exitCode} signal=${signal}`);
407
+ if (exitCode !== 0) {
408
+ const cleaned = stripAnsiSequences(outputBuffer).replace(/\s+/g, ' ').trim();
409
+ if (cleaned) {
410
+ ptyLog(shell.pid, `full output: ${cleaned.slice(0, 1000)}`);
411
+ }
412
+ writeErrorLog({
413
+ level: 'warn',
414
+ source: 'executor.exit',
415
+ message: `${this.displayName} exited with non-zero code ${exitCode}`,
416
+ metadata: {
417
+ agentType: this.agentType,
418
+ displayName: this.displayName,
419
+ pid: shell.pid,
420
+ exitCode,
421
+ signal,
422
+ workingDir: config.workingDir,
423
+ output: cleaned ? cleaned.slice(0, 2000) : undefined,
424
+ },
425
+ });
426
+ }
427
+ });
428
+ // 监听取消信号
429
+ cancel.onCancelled(() => {
430
+ // 发送 SIGINT 进行优雅关闭
431
+ shell.kill('SIGINT');
432
+ });
433
+ cleanupOwner?.dispose();
434
+ return {
435
+ pid: shell.pid,
436
+ ...identity,
437
+ pty: shell,
438
+ cancel,
439
+ takeEarlyEvents,
440
+ verifyTreeCleanup: verifyCleanup,
441
+ disposeTreeCleanupChannel: cleanupChannel.close,
442
+ };
443
+ }
444
+ catch (error) {
445
+ if (cleanupOwner && !cleanupAttempted) {
446
+ try {
447
+ cleanupAttempted = true;
448
+ await cleanupOwner.cleanup();
449
+ cleanupOwner.dispose();
450
+ }
451
+ catch {
452
+ throw attachSpawnCleanupOwner(error, cleanupOwner);
453
+ }
454
+ }
455
+ if (!cleanupOwner) {
456
+ cleanupOwner = createSpawnCleanupOwner(shell, takeEarlyEvents, verifyCleanup, cleanupChannel.close, cleanupChannel.markCompleted);
457
+ try {
458
+ await cleanupOwner.cleanup();
459
+ cleanupOwner.dispose();
460
+ cleanupChannel.close();
461
+ }
462
+ catch {
463
+ throw attachSpawnCleanupOwner(error, cleanupOwner);
464
+ }
465
+ }
466
+ throw error;
467
+ }
266
468
  }
267
469
  /**
268
470
  * 通过 stdin 发送数据启动进程
@@ -271,24 +473,50 @@ export class BaseExecutor {
271
473
  * 注意:这里使用临时文件方式,因为 PTY 不适合传递大量结构化数据
272
474
  */
273
475
  async spawnWithStdin(config, commandParts, stdinData) {
274
- const { programPath, args } = await resolveCommandParts(commandParts);
476
+ let resolved;
477
+ try {
478
+ resolved = await resolveCommandParts(commandParts);
479
+ }
480
+ catch (error) {
481
+ throw markPreChildProcessFailure(error);
482
+ }
483
+ const { programPath, args } = resolved;
275
484
  const env = config.env.withProfile(this.cmdOverrides);
276
485
  const cancel = new CancellationToken();
277
486
  // 不添加 prompt 到参数列表,因为会通过 stdin 发送
278
487
  const fullArgs = [...args];
279
488
  // 使用临时文件传递 stdin 数据,避免命令行参数长度限制
280
489
  const tmpFile = path.join(os.tmpdir(), `agent-tower-stdin-${Date.now()}-${randomUUID()}.txt`);
281
- await fs.writeFile(tmpFile, stdinData, { encoding: 'utf-8', mode: 0o600 });
490
+ try {
491
+ await fs.writeFile(tmpFile, stdinData, { encoding: 'utf-8', mode: 0o600 });
492
+ }
493
+ catch (error) {
494
+ throw markPreChildProcessFailure(error);
495
+ }
282
496
  ptyLog(0, `Spawning with stdin: ${programPath} ${redactArgsForLog(fullArgs)} <stdin ${summarizeStdinForLog(stdinData)} file=${path.basename(tmpFile)}>`);
283
497
  const invocation = buildPtyCommandWithStdin(programPath, fullArgs, tmpFile);
284
498
  const fullEnv = env.getFullEnv();
285
- const wrapperEnv = buildPtyWrapperEnv(fullEnv);
499
+ const ownershipToken = randomUUID();
500
+ let cleanupChannel;
501
+ try {
502
+ cleanupChannel = await createTreeCleanupChannel();
503
+ }
504
+ catch (error) {
505
+ await fs.unlink(tmpFile).catch(() => undefined);
506
+ throw markPreChildProcessFailure(error);
507
+ }
508
+ const verifyCleanup = () => cleanupChannel.isCompleted();
509
+ const wrapperEnv = buildPtyWrapperEnv(fullEnv, process.env, ownershipToken, cleanupChannel.env);
286
510
  ptyLog(0, `ENV ANTHROPIC_BASE_URL=${fullEnv.ANTHROPIC_BASE_URL || '(not set)'}`);
287
511
  ptyLog(0, `ENV ANTHROPIC_API_KEY=${fullEnv.ANTHROPIC_API_KEY ? '(set)' : '(not set)'}`);
288
512
  ptyLog(0, `ENV ANTHROPIC_AUTH_TOKEN=${fullEnv.ANTHROPIC_AUTH_TOKEN ? '(set)' : '(not set)'}`);
289
513
  let shell;
514
+ let identity = null;
515
+ let takeEarlyEvents;
290
516
  let offData;
291
517
  let offExit;
518
+ let cleanupOwner;
519
+ let cleanupAttempted = false;
292
520
  try {
293
521
  const ptyCols = process.platform === 'win32' ? 16384 : 120;
294
522
  shell = pty.spawn(invocation.command, invocation.args, {
@@ -300,7 +528,33 @@ export class BaseExecutor {
300
528
  });
301
529
  const spawnedShell = shell;
302
530
  ptyLog(spawnedShell.pid, `Process spawned with stdin`);
303
- const takeEarlyEvents = this.collectEarlyPtyEvents(spawnedShell);
531
+ takeEarlyEvents = this.collectEarlyPtyEvents(spawnedShell);
532
+ let identityError;
533
+ try {
534
+ identity = await captureSpawnedProcessIdentity(spawnedShell.pid, ownershipToken);
535
+ if (!identity) {
536
+ throw new Error(`Could not persist a verifiable process identity for ${this.displayName}`);
537
+ }
538
+ }
539
+ catch (error) {
540
+ identityError = error;
541
+ }
542
+ if (identityError) {
543
+ cleanupOwner = createSpawnCleanupOwner(spawnedShell, takeEarlyEvents, verifyCleanup, cleanupChannel.close, cleanupChannel.markCompleted);
544
+ try {
545
+ cleanupAttempted = true;
546
+ await cleanupOwner.cleanup();
547
+ cleanupOwner.dispose();
548
+ cleanupChannel.close();
549
+ }
550
+ catch {
551
+ throw attachSpawnCleanupOwner(identityError, cleanupOwner);
552
+ }
553
+ throw markPreChildProcessFailure(identityError);
554
+ }
555
+ if (!identity) {
556
+ throw new Error(`Could not persist a verifiable process identity for ${this.displayName}`);
557
+ }
304
558
  let outputBuffer = '';
305
559
  offData = spawnedShell.onData((data) => {
306
560
  if (outputBuffer.length < OUTPUT_BUFFER_LIMIT) {
@@ -310,6 +564,8 @@ export class BaseExecutor {
310
564
  });
311
565
  // 监听退出事件
312
566
  offExit = spawnedShell.onExit(({ exitCode, signal }) => {
567
+ if (isTrustedWrapperExit({ exitCode, signal }))
568
+ cleanupChannel.markCompleted();
313
569
  offData?.dispose();
314
570
  offExit?.dispose();
315
571
  ptyLog(spawnedShell.pid, `PTY exited code=${exitCode} signal=${signal} outputLength=${outputBuffer.length}`);
@@ -334,11 +590,15 @@ export class BaseExecutor {
334
590
  cancel.onCancelled(() => {
335
591
  spawnedShell.kill('SIGINT');
336
592
  });
593
+ cleanupOwner?.dispose();
337
594
  return {
338
595
  pid: spawnedShell.pid,
596
+ ...identity,
339
597
  pty: spawnedShell,
340
598
  cancel,
341
599
  takeEarlyEvents,
600
+ verifyTreeCleanup: verifyCleanup,
601
+ disposeTreeCleanupChannel: cleanupChannel.close,
342
602
  };
343
603
  }
344
604
  catch (error) {
@@ -358,11 +618,29 @@ export class BaseExecutor {
358
618
  });
359
619
  offData?.dispose();
360
620
  offExit?.dispose();
361
- try {
362
- shell?.kill('SIGINT');
363
- }
364
- catch {
365
- // ignore cleanup errors; preserve original spawn failure
621
+ if (shell) {
622
+ if (cleanupOwner && !cleanupAttempted) {
623
+ try {
624
+ cleanupAttempted = true;
625
+ await cleanupOwner.cleanup();
626
+ cleanupOwner.dispose();
627
+ }
628
+ catch {
629
+ throw attachSpawnCleanupOwner(error, cleanupOwner);
630
+ }
631
+ }
632
+ if (!cleanupOwner) {
633
+ cleanupOwner = createSpawnCleanupOwner(shell, takeEarlyEvents, verifyCleanup, cleanupChannel.close, cleanupChannel.markCompleted);
634
+ try {
635
+ cleanupAttempted = true;
636
+ await cleanupOwner.cleanup();
637
+ cleanupOwner.dispose();
638
+ cleanupChannel.close();
639
+ }
640
+ catch {
641
+ throw attachSpawnCleanupOwner(error, cleanupOwner);
642
+ }
643
+ }
366
644
  }
367
645
  try {
368
646
  await fs.unlink(tmpFile);
@@ -370,7 +648,9 @@ export class BaseExecutor {
370
648
  catch {
371
649
  // wrapper may already have cleaned it or the file may not exist
372
650
  }
373
- throw error;
651
+ if (!shell)
652
+ cleanupChannel.close();
653
+ throw shell ? error : markPreChildProcessFailure(error);
374
654
  }
375
655
  }
376
656
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"base.executor.js","sourceRoot":"","sources":["../../src/executors/base.executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.executor.js","sourceRoot":"","sources":["../../src/executors/base.executor.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ export { GeminiCliExecutor } from './gemini-cli.executor.js';
58
58
  export { CursorAgentExecutor } from './cursor-agent.executor.js';
59
59
  export { CodexExecutor } from './codex.executor.js';
60
60
  export { CommandBuilder } from './command-builder.js';
61
- export { AgentCommandUnavailableError, ExecutorConfigurationError, ExecutorNotFoundError, normalizeExecutorStartError, } from './start-error.js';
61
+ export { AgentCommandUnavailableError, ExecutorConfigurationError, ExecutorNotFoundError, isPreChildProcessFailure, markPreChildProcessFailure, normalizeExecutorStartError, attachSpawnCleanupOwner, getSpawnCleanupOwner, } from './start-error.js';
62
62
  export { ExecutionEnv } from './execution-env.js';
63
63
  export { getProfiles, loadProfiles, reloadProfiles, getVariantConfig, getVariantNames, setVariantConfig, deleteVariantConfig, getDefaultProfiles, } from './profiles.js';
64
64
  export { getAllProviders, getProviderById, getProvidersByAgentType, getDefaultProvider, getUserProviders, createProviderBackup, previewProviderImport, importProvidersFromBackup, createProvider, updateProvider, deleteProvider, canDeleteProvider, loadProviders, reloadProviders, getDefaultProviders, getProviderRuntimeType, } from './providers.js';
@@ -69,6 +69,7 @@ export type { CursorAgentConfig } from './cursor-agent.executor.js';
69
69
  export type { CodexConfig } from './codex.executor.js';
70
70
  export type { CmdOverrides, CommandParts } from './command-builder.js';
71
71
  export type { RepoContext } from './execution-env.js';
72
+ export type { SpawnCleanupOwner } from './start-error.js';
72
73
  export type { ExecutorProfiles, VariantConfig, AgentVariants } from './profiles.js';
73
74
  export type { Provider, ProvidersData } from './providers.js';
74
75
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executors/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executors/index.ts"],"names":[],"mappings":"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"}
@@ -245,7 +245,7 @@ export { GeminiCliExecutor } from './gemini-cli.executor.js';
245
245
  export { CursorAgentExecutor } from './cursor-agent.executor.js';
246
246
  export { CodexExecutor } from './codex.executor.js';
247
247
  export { CommandBuilder } from './command-builder.js';
248
- export { AgentCommandUnavailableError, ExecutorConfigurationError, ExecutorNotFoundError, normalizeExecutorStartError, } from './start-error.js';
248
+ export { AgentCommandUnavailableError, ExecutorConfigurationError, ExecutorNotFoundError, isPreChildProcessFailure, markPreChildProcessFailure, normalizeExecutorStartError, attachSpawnCleanupOwner, getSpawnCleanupOwner, } from './start-error.js';
249
249
  export { ExecutionEnv } from './execution-env.js';
250
250
  // 导出 profiles (deprecated — 保留向后兼容)
251
251
  export { getProfiles, loadProfiles, reloadProfiles, getVariantConfig, getVariantNames, setVariantConfig, deleteVariantConfig, getDefaultProfiles, } from './profiles.js';