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
@@ -157,7 +157,17 @@ export class ConversationService {
157
157
  throw new ServiceError('Conversation session was not created', 'CONVERSATION_SESSION_MISSING', 500);
158
158
  }
159
159
  try {
160
- await this.sessionManager.start(created.session.id);
160
+ // Initial prompts use the same durable queue as follow-up messages. The
161
+ // conversation resource is ready as soon as its directory/session/turn
162
+ // are persisted; ACP startup and model execution continue in the
163
+ // per-session worker so the create request never waits on initialize.
164
+ if (typeof this.sessionManager.enqueueConversationMessage === 'function') {
165
+ await this.sessionManager.enqueueConversationMessage(created.session.id, prompt, provider.id);
166
+ }
167
+ else {
168
+ // Keep lightweight test doubles and older embedders compatible.
169
+ await this.sessionManager.start(created.session.id);
170
+ }
161
171
  }
162
172
  catch (error) {
163
173
  await prisma.session.update({
@@ -191,7 +201,16 @@ export class ConversationService {
191
201
  throw new ServiceError('Conversation has no session', 'CONVERSATION_SESSION_MISSING', 409);
192
202
  }
193
203
  try {
194
- await this.sessionManager.sendMessage(conversation.session.id, message, input.providerId);
204
+ // Queue conversation turns so the HTTP request only waits for durable
205
+ // persistence. SessionManager consumes the queue serially and reports
206
+ // runtime progress through the existing session events.
207
+ if (typeof this.sessionManager.enqueueConversationMessage === 'function') {
208
+ await this.sessionManager.enqueueConversationMessage(conversation.session.id, message, input.providerId);
209
+ }
210
+ else {
211
+ // Keep lightweight test doubles and older embedders compatible.
212
+ await this.sessionManager.sendMessage(conversation.session.id, message, input.providerId);
213
+ }
195
214
  }
196
215
  catch (error) {
197
216
  if (error instanceof CommandBuildError) {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.service.js","sourceRoot":"","sources":["../../src/services/conversation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.service.js","sourceRoot":"","sources":["../../src/services/conversation.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"database-maintenance.service.d.ts","sourceRoot":"","sources":["../../src/services/database-maintenance.service.ts"],"names":[],"mappings":"AAKA,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkC9D;AAED,eAAO,MAAM,4BAA4B;;CAExC,CAAC"}
1
+ {"version":3,"file":"database-maintenance.service.d.ts","sourceRoot":"","sources":["../../src/services/database-maintenance.service.ts"],"names":[],"mappings":"AAKA,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsF9D;AAED,eAAO,MAAM,4BAA4B;;CAExC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { prisma } from '../utils/index.js';
2
2
  const APP_SETTINGS_ID = 'singleton';
3
- const CURRENT_DATA_MIGRATION_VERSION = 1;
3
+ const CURRENT_DATA_MIGRATION_VERSION = 2;
4
4
  export async function runStartupDataMigrations() {
5
5
  await prisma.$transaction(async (tx) => {
6
6
  const settings = await tx.appSettings.upsert({
@@ -12,22 +12,73 @@ export async function runStartupDataMigrations() {
12
12
  if (settings.dataMigrationVersion >= CURRENT_DATA_MIGRATION_VERSION) {
13
13
  return;
14
14
  }
15
- // Historical clients could put pasted logs into Task.title. Preserve the exact
16
- // body in description before shrinking the list-facing title.
17
- await tx.$executeRawUnsafe(`
18
- UPDATE "Task"
19
- SET
20
- "description" = CASE
21
- WHEN "description" IS NULL OR trim("description") = '' THEN "title"
22
- WHEN instr("description", "title") > 0 THEN "description"
23
- ELSE "title" || char(10) || char(10) || "description"
24
- END,
25
- "title" = CASE
26
- WHEN length(trim("title")) = 0 THEN 'Untitled task'
27
- ELSE rtrim(substr(replace(replace(trim("title"), char(13), ' '), char(10), ' '), 1, 197)) || '...'
28
- END
29
- WHERE length("title") > 240
30
- `);
15
+ if (settings.dataMigrationVersion < 1) {
16
+ // Historical clients could put pasted logs into Task.title. Preserve the exact
17
+ // body in description before shrinking the list-facing title.
18
+ await tx.$executeRawUnsafe(`
19
+ UPDATE "Task"
20
+ SET
21
+ "description" = CASE
22
+ WHEN "description" IS NULL OR trim("description") = '' THEN "title"
23
+ WHEN instr("description", "title") > 0 THEN "description"
24
+ ELSE "title" || char(10) || char(10) || "description"
25
+ END,
26
+ "title" = CASE
27
+ WHEN length(trim("title")) = 0 THEN 'Untitled task'
28
+ ELSE rtrim(substr(replace(replace(trim("title"), char(13), ' '), char(10), ' '), 1, 197)) || '...'
29
+ END
30
+ WHERE length("title") > 240
31
+ `);
32
+ }
33
+ if (settings.dataMigrationVersion < 2) {
34
+ await tx.$executeRawUnsafe(`
35
+ UPDATE "ExecutionProcess"
36
+ SET
37
+ "cleanupState" = 'QUARANTINED',
38
+ "cleanupError" = 'Runtime ownership identity is incomplete; automated signalling and cleanup confirmation are disabled',
39
+ "cleanupAttemptCount" = "cleanupAttemptCount" + 1,
40
+ "nextCleanupRetryAt" = CURRENT_TIMESTAMP
41
+ WHERE "cleanupState" <> 'CONFIRMED'
42
+ AND (
43
+ "runtimeInstanceId" IS NULL
44
+ OR "pid" IS NULL
45
+ OR "processGroupId" IS NULL
46
+ OR "birthMarker" IS NULL
47
+ OR "ownershipToken" IS NULL
48
+ )
49
+ `);
50
+ await tx.$executeRawUnsafe(`
51
+ UPDATE "Session"
52
+ SET
53
+ "runtimeLaunchState" = 'PROCESS_RECORDED',
54
+ "runtimeLaunchClaimCount" = (
55
+ SELECT COUNT(*) FROM "ExecutionProcess" ep WHERE ep."sessionId" = "Session"."id"
56
+ ),
57
+ "runtimeLaunchResolvedCount" = (
58
+ SELECT COUNT(*) FROM "ExecutionProcess" ep WHERE ep."sessionId" = "Session"."id"
59
+ ),
60
+ "runtimeLaunchProcessCount" = (
61
+ SELECT COUNT(*) FROM "ExecutionProcess" ep WHERE ep."sessionId" = "Session"."id"
62
+ )
63
+ WHERE EXISTS (
64
+ SELECT 1 FROM "ExecutionProcess" ep WHERE ep."sessionId" = "Session"."id"
65
+ )
66
+ `);
67
+ await tx.$executeRawUnsafe(`
68
+ UPDATE "Session"
69
+ SET
70
+ "runtimeLaunchState" = 'QUARANTINED',
71
+ "runtimeLaunchClaimCount" = 1,
72
+ "runtimeLaunchResolvedCount" = 0,
73
+ "runtimeLaunchDiagnostic" = 'Legacy session crossed logical start without durable process evidence',
74
+ "runtimeLaunchDiagnosticCount" = 1,
75
+ "runtimeLaunchNextDiagnosticAt" = CURRENT_TIMESTAMP
76
+ WHERE "status" <> 'PENDING'
77
+ AND NOT EXISTS (
78
+ SELECT 1 FROM "ExecutionProcess" ep WHERE ep."sessionId" = "Session"."id"
79
+ )
80
+ `);
81
+ }
31
82
  await tx.appSettings.update({
32
83
  where: { id: APP_SETTINGS_ID },
33
84
  data: { dataMigrationVersion: CURRENT_DATA_MIGRATION_VERSION },
@@ -1 +1 @@
1
- {"version":3,"file":"database-maintenance.service.js","sourceRoot":"","sources":["../../src/services/database-maintenance.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,eAAe,GAAG,WAAW,CAAC;AACpC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;YAC3C,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;YAC9B,MAAM,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;YAC/B,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,oBAAoB,IAAI,8BAA8B,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,+EAA+E;QAC/E,8DAA8D;QAC9D,MAAM,EAAE,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;KAa1B,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;YAC9B,IAAI,EAAE,EAAE,oBAAoB,EAAE,8BAA8B,EAAE;SAC/D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,8BAA8B;CAC/B,CAAC"}
1
+ {"version":3,"file":"database-maintenance.service.js","sourceRoot":"","sources":["../../src/services/database-maintenance.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,eAAe,GAAG,WAAW,CAAC;AACpC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;YAC3C,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;YAC9B,MAAM,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;YAC/B,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,oBAAoB,IAAI,8BAA8B,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;YACtC,+EAA+E;YAC/E,8DAA8D;YAC9D,MAAM,EAAE,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;OAa1B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,EAAE,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;OAe1B,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;OAgB1B,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;OAa1B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE;YAC9B,IAAI,EAAE,EAAE,oBAAoB,EAAE,8BAA8B,EAAE;SAC/D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,8BAA8B;CAC/B,CAAC"}
@@ -14,11 +14,12 @@ export interface MemberHeartbeatSchedulerDeps {
14
14
  *
15
15
  * 现有 TeamRun 调度完全事件驱动(依赖 PTY 退出事件),无法发现“进程仍在但无任何进展”的卡死成员,
16
16
  * 也没有任何地方周期调用 reconcileDueRoomReplyReminders。该调度器以固定 tick 周期承担五件事:
17
- * 1. 首扫回收 server 重启后脱管的 RUNNING invocation(reconcileOrphanInvocations);
18
- * 2. 修复 Invocation 已终态、WorkRequest 仍为 STARTED 的运行期半完成状态;
19
- * 3. 唤醒/释放长时间无 session:patch 进展的 RUNNING 成员(reconcileStalledInvocations);
20
- * 4. 推进到期的 room reply 补催(reconcileDueRoomReplyReminders);
21
- * 5. 恢复 AUTO 或已批准 CONFIRM TeamRun 中没有活跃 invocation 的 QUEUED 请求。
17
+ * 1. 重试并恢复持久化的 owned process cleanup;
18
+ * 2. 首扫回收 server 重启后脱管的 RUNNING invocation(reconcileOrphanInvocations);
19
+ * 3. 修复 Invocation 已终态、WorkRequest 仍为 STARTED 的运行期半完成状态;
20
+ * 4. 唤醒/释放长时间无 session:patch 进展的 RUNNING 成员(reconcileStalledInvocations);
21
+ * 5. 推进到期的 room reply 补催(reconcileDueRoomReplyReminders);
22
+ * 6. 恢复 AUTO 或已批准 CONFIRM TeamRun 中没有活跃 invocation 的 QUEUED 请求。
22
23
  *
23
24
  * 唤醒与补催复用同一 reconciler 状态机(统一计数/退避/释放闭环)。
24
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"member-heartbeat-scheduler.d.ts","sourceRoot":"","sources":["../../src/services/member-heartbeat-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,SAAS,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;gBAElE,IAAI,EAAE,4BAA4B;IAW9C,KAAK,IAAI,IAAI;IAuBb,IAAI,IAAI,IAAI;YAYE,IAAI;YAmCJ,QAAQ;CAYvB"}
1
+ {"version":3,"file":"member-heartbeat-scheduler.d.ts","sourceRoot":"","sources":["../../src/services/member-heartbeat-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,SAAS,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;gBAElE,IAAI,EAAE,4BAA4B;IAW9C,KAAK,IAAI,IAAI;IAuBb,IAAI,IAAI,IAAI;YAYE,IAAI;YAuCJ,QAAQ;CAYvB"}
@@ -8,11 +8,12 @@ const INITIAL_SCAN_DELAY_MS = 10_000;
8
8
  *
9
9
  * 现有 TeamRun 调度完全事件驱动(依赖 PTY 退出事件),无法发现“进程仍在但无任何进展”的卡死成员,
10
10
  * 也没有任何地方周期调用 reconcileDueRoomReplyReminders。该调度器以固定 tick 周期承担五件事:
11
- * 1. 首扫回收 server 重启后脱管的 RUNNING invocation(reconcileOrphanInvocations);
12
- * 2. 修复 Invocation 已终态、WorkRequest 仍为 STARTED 的运行期半完成状态;
13
- * 3. 唤醒/释放长时间无 session:patch 进展的 RUNNING 成员(reconcileStalledInvocations);
14
- * 4. 推进到期的 room reply 补催(reconcileDueRoomReplyReminders);
15
- * 5. 恢复 AUTO 或已批准 CONFIRM TeamRun 中没有活跃 invocation 的 QUEUED 请求。
11
+ * 1. 重试并恢复持久化的 owned process cleanup;
12
+ * 2. 首扫回收 server 重启后脱管的 RUNNING invocation(reconcileOrphanInvocations);
13
+ * 3. 修复 Invocation 已终态、WorkRequest 仍为 STARTED 的运行期半完成状态;
14
+ * 4. 唤醒/释放长时间无 session:patch 进展的 RUNNING 成员(reconcileStalledInvocations);
15
+ * 5. 推进到期的 room reply 补催(reconcileDueRoomReplyReminders);
16
+ * 6. 恢复 AUTO 或已批准 CONFIRM TeamRun 中没有活跃 invocation 的 QUEUED 请求。
16
17
  *
17
18
  * 唤醒与补催复用同一 reconciler 状态机(统一计数/退避/释放闭环)。
18
19
  */
@@ -71,6 +72,7 @@ export class MemberHeartbeatScheduler {
71
72
  this.running = true;
72
73
  try {
73
74
  // 各阶段相互隔离,避免历史坏记录阻断后续队列恢复。
75
+ await this.runStage('runtime process cleanup reconciliation', () => this.reconciler.reconcilePendingRuntimeCleanup());
74
76
  if (!this.orphanScanDone && await this.runStage('orphan invocation reconciliation', () => this.reconciler.reconcileOrphanInvocations())) {
75
77
  this.orphanScanDone = true;
76
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"member-heartbeat-scheduler.js","sourceRoot":"","sources":["../../src/services/member-heartbeat-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"member-heartbeat-scheduler.js","sourceRoot":"","sources":["../../src/services/member-heartbeat-scheduler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,uDAAuD;AACvD,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAUrC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,wBAAwB;IAC3B,KAAK,GAA0C,IAAI,CAAC;IACpD,gBAAgB,GAAyC,IAAI,CAAC;IAC9D,OAAO,GAAG,KAAK,CAAC;IAChB,cAAc,GAAG,KAAK,CAAC;IACd,cAAc,CAAS;IACvB,UAAU,CAAwB;IAClC,SAAS,CAAoD;IAE9E,YAAY,IAAkC;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,wBAAwB,CAAC;QACtE,+DAA+D;QAC/D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,qBAAqB,CAAC;YAC7D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,IAAI,CAAC,cAAc;YACrC,iBAAiB,EAAE,KAAK;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,oBAAoB,EAAE,CAAC;IAChE,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iDAAiD,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC;QAE7F,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvB,IAAI,CAAC,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAC;QAEjD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACzB,IAAI,CAAC,gBAA2C,CAAC,KAAK,EAAE,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,IAAI,CAAC,QAAQ,CACjB,wCAAwC,EACxC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,CACvD,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,IAAI,CAAC,QAAQ,CAC7C,kCAAkC,EAClC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CACnD,EAAE,CAAC;gBACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CACjB,+CAA+C,EAC/C,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,sCAAsC,EAAE,CAC/D,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,mCAAmC,EACnC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CACpD,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,oCAAoC,EACpC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,CACvD,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,4BAA4B,EAC5B,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAC3C,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,SAAiC;QACpE,IAAI,CAAC;YACH,MAAM,SAAS,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,qCAAqC,IAAI,GAAG,EAC5C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
@@ -3,9 +3,14 @@ import type { EventBus } from '../core/event-bus.js';
3
3
  import { TeamReconcilerService } from './team-reconciler.service.js';
4
4
  import { RuntimeType, type RuntimeStateDto } from '@agent-tower/shared';
5
5
  import { type RuntimeRegistry } from '../runtime/index.js';
6
+ import { type PersistedAcpProcessIdentity } from '../runtime/acp/process-manager.js';
6
7
  interface StopSessionOptions {
7
8
  skipTeamRunReconcile?: boolean;
8
9
  }
10
+ interface SendMessageOptions {
11
+ /** User message was already appended while claiming a queued turn. */
12
+ userEntryId?: string;
13
+ }
9
14
  export declare class SessionManager {
10
15
  private readonly eventBus;
11
16
  private snapshotFlushTimers;
@@ -32,9 +37,22 @@ export declare class SessionManager {
32
37
  private heartbeatThrottle;
33
38
  private readonly teamReconciler;
34
39
  private readonly runtimeCoordinator;
40
+ /** In-memory process owners are generation-scoped, never runtime-id global. */
35
41
  private readonly runtimeProcessIds;
42
+ /** Early exit/tree completion events can arrive before started-row persistence. */
43
+ private readonly pendingRuntimeProcessEvents;
44
+ private readonly pendingRuntimeEventExpiryTimers;
36
45
  private readonly runtimePermissionStates;
37
46
  private readonly externalSessionPersistence;
47
+ /** Durable conversation turns are consumed one at a time per Session. */
48
+ private readonly conversationQueueWorkers;
49
+ private conversationQueueStopping;
50
+ /** Admission boundary covering the short initial-start -> process-owning handoff. */
51
+ private readonly pendingInitialStarts;
52
+ private readonly initialStartResolvers;
53
+ /** Same boundary for follow-up/reply turns, which can race a direct stop. */
54
+ private readonly pendingProcessStarts;
55
+ private readonly processStartResolvers;
38
56
  private readonly artifactService;
39
57
  private static readonly SNAPSHOT_CHECKPOINT_MS;
40
58
  private static readonly HEARTBEAT_THROTTLE_MS;
@@ -71,9 +89,18 @@ export declare class SessionManager {
71
89
  id: string;
72
90
  createdAt: Date;
73
91
  updatedAt: Date;
74
- exitCode: number | null;
75
92
  pid: number | null;
93
+ ownershipToken: string | null;
94
+ birthMarker: string | null;
95
+ processGroupId: string | null;
96
+ exitCode: number | null;
76
97
  sessionId: string;
98
+ runtimeInstanceId: string | null;
99
+ launchClaimNumber: number | null;
100
+ cleanupState: string;
101
+ cleanupError: string | null;
102
+ cleanupAttemptCount: number;
103
+ nextCleanupRetryAt: Date | null;
77
104
  }[];
78
105
  } & {
79
106
  id: string;
@@ -82,8 +109,13 @@ export declare class SessionManager {
82
109
  agentType: string;
83
110
  runtimeType: string;
84
111
  status: string;
85
- workspaceId: string | null;
86
- conversationId: string | null;
112
+ runtimeLaunchState: string;
113
+ runtimeLaunchClaimCount: number;
114
+ runtimeLaunchResolvedCount: number;
115
+ runtimeLaunchProcessCount: number;
116
+ runtimeLaunchDiagnostic: string | null;
117
+ runtimeLaunchDiagnosticCount: number;
118
+ runtimeLaunchNextDiagnosticAt: Date | null;
87
119
  context: string;
88
120
  externalSessionId: string | null;
89
121
  variant: string;
@@ -92,8 +124,33 @@ export declare class SessionManager {
92
124
  purpose: string;
93
125
  logSnapshot: string | null;
94
126
  tokenUsage: string | null;
127
+ workspaceId: string | null;
128
+ conversationId: string | null;
95
129
  }) | null>;
96
130
  getRuntimeState(sessionId: string, runtimeType?: RuntimeType): RuntimeStateDto;
131
+ /**
132
+ * Persist a conversation message and schedule its runtime turn. The caller
133
+ * only waits for the SQLite insert; ACP startup and prompt delivery happen
134
+ * in the per-session queue worker.
135
+ */
136
+ enqueueConversationMessage(sessionId: string, message: string, providerId?: string): Promise<{
137
+ turnId: string;
138
+ }>;
139
+ /** Recover turns left in RUNNING state by an interrupted server process. */
140
+ startConversationQueue(): Promise<void>;
141
+ /** Stop scheduling new work during the Fastify shutdown phase. */
142
+ stopConversationQueue(): void;
143
+ /** Dispose a TeamRun-owned runtime after its invocation reaches a terminal state. */
144
+ disposeRuntimeSession(sessionId: string, expectedRuntimeInstanceId?: string): Promise<void>;
145
+ retryRuntimeProcessCleanup(input: PersistedAcpProcessIdentity & {
146
+ sessionId: string;
147
+ runtimeInstanceId: string;
148
+ }): Promise<void>;
149
+ hasRuntimeProcessOwner(runtimeInstanceId: string, sessionId?: string, launchClaimNumber?: number | null): boolean;
150
+ private quarantinePersistedRuntimeProcess;
151
+ private runtimeProcessKeyFor;
152
+ private launchClaimFromRuntimeProcessKey;
153
+ isRuntimeCleanupConfirmed(sessionId: string): Promise<boolean>;
97
154
  resolveRuntimePermission(sessionId: string, requestId: string, optionId: string): Promise<void>;
98
155
  create(workspaceId: string, agentType: AgentType, prompt: string, variant?: string, providerId?: string): Promise<{
99
156
  id: string;
@@ -102,8 +159,13 @@ export declare class SessionManager {
102
159
  agentType: string;
103
160
  runtimeType: string;
104
161
  status: string;
105
- workspaceId: string | null;
106
- conversationId: string | null;
162
+ runtimeLaunchState: string;
163
+ runtimeLaunchClaimCount: number;
164
+ runtimeLaunchResolvedCount: number;
165
+ runtimeLaunchProcessCount: number;
166
+ runtimeLaunchDiagnostic: string | null;
167
+ runtimeLaunchDiagnosticCount: number;
168
+ runtimeLaunchNextDiagnosticAt: Date | null;
107
169
  context: string;
108
170
  externalSessionId: string | null;
109
171
  variant: string;
@@ -112,6 +174,8 @@ export declare class SessionManager {
112
174
  purpose: string;
113
175
  logSnapshot: string | null;
114
176
  tokenUsage: string | null;
177
+ workspaceId: string | null;
178
+ conversationId: string | null;
115
179
  }>;
116
180
  start(id: string): Promise<({
117
181
  workspace: ({
@@ -161,8 +225,13 @@ export declare class SessionManager {
161
225
  agentType: string;
162
226
  runtimeType: string;
163
227
  status: string;
164
- workspaceId: string | null;
165
- conversationId: string | null;
228
+ runtimeLaunchState: string;
229
+ runtimeLaunchClaimCount: number;
230
+ runtimeLaunchResolvedCount: number;
231
+ runtimeLaunchProcessCount: number;
232
+ runtimeLaunchDiagnostic: string | null;
233
+ runtimeLaunchDiagnosticCount: number;
234
+ runtimeLaunchNextDiagnosticAt: Date | null;
166
235
  context: string;
167
236
  externalSessionId: string | null;
168
237
  variant: string;
@@ -171,6 +240,8 @@ export declare class SessionManager {
171
240
  purpose: string;
172
241
  logSnapshot: string | null;
173
242
  tokenUsage: string | null;
243
+ workspaceId: string | null;
244
+ conversationId: string | null;
174
245
  }) | null>;
175
246
  startFollowUp(id: string, resumeFromSessionId: string): Promise<({
176
247
  workspace: ({
@@ -220,8 +291,13 @@ export declare class SessionManager {
220
291
  agentType: string;
221
292
  runtimeType: string;
222
293
  status: string;
223
- workspaceId: string | null;
224
- conversationId: string | null;
294
+ runtimeLaunchState: string;
295
+ runtimeLaunchClaimCount: number;
296
+ runtimeLaunchResolvedCount: number;
297
+ runtimeLaunchProcessCount: number;
298
+ runtimeLaunchDiagnostic: string | null;
299
+ runtimeLaunchDiagnosticCount: number;
300
+ runtimeLaunchNextDiagnosticAt: Date | null;
225
301
  context: string;
226
302
  externalSessionId: string | null;
227
303
  variant: string;
@@ -230,8 +306,10 @@ export declare class SessionManager {
230
306
  purpose: string;
231
307
  logSnapshot: string | null;
232
308
  tokenUsage: string | null;
309
+ workspaceId: string | null;
310
+ conversationId: string | null;
233
311
  }) | null>;
234
- sendMessage(id: string, message: string, providerId?: string): Promise<({
312
+ sendMessage(id: string, message: string, providerId?: string, expectedTeamRunInvocationId?: string, options?: SendMessageOptions): Promise<({
235
313
  workspace: ({
236
314
  task: {
237
315
  id: string;
@@ -279,8 +357,13 @@ export declare class SessionManager {
279
357
  agentType: string;
280
358
  runtimeType: string;
281
359
  status: string;
282
- workspaceId: string | null;
283
- conversationId: string | null;
360
+ runtimeLaunchState: string;
361
+ runtimeLaunchClaimCount: number;
362
+ runtimeLaunchResolvedCount: number;
363
+ runtimeLaunchProcessCount: number;
364
+ runtimeLaunchDiagnostic: string | null;
365
+ runtimeLaunchDiagnosticCount: number;
366
+ runtimeLaunchNextDiagnosticAt: Date | null;
284
367
  context: string;
285
368
  externalSessionId: string | null;
286
369
  variant: string;
@@ -289,6 +372,8 @@ export declare class SessionManager {
289
372
  purpose: string;
290
373
  logSnapshot: string | null;
291
374
  tokenUsage: string | null;
375
+ workspaceId: string | null;
376
+ conversationId: string | null;
292
377
  }) | null>;
293
378
  stop(id: string, options?: StopSessionOptions): Promise<{
294
379
  id: string;
@@ -297,8 +382,13 @@ export declare class SessionManager {
297
382
  agentType: string;
298
383
  runtimeType: string;
299
384
  status: string;
300
- workspaceId: string | null;
301
- conversationId: string | null;
385
+ runtimeLaunchState: string;
386
+ runtimeLaunchClaimCount: number;
387
+ runtimeLaunchResolvedCount: number;
388
+ runtimeLaunchProcessCount: number;
389
+ runtimeLaunchDiagnostic: string | null;
390
+ runtimeLaunchDiagnosticCount: number;
391
+ runtimeLaunchNextDiagnosticAt: Date | null;
302
392
  context: string;
303
393
  externalSessionId: string | null;
304
394
  variant: string;
@@ -307,6 +397,8 @@ export declare class SessionManager {
307
397
  purpose: string;
308
398
  logSnapshot: string | null;
309
399
  tokenUsage: string | null;
400
+ workspaceId: string | null;
401
+ conversationId: string | null;
310
402
  } | null>;
311
403
  /** @deprecated Use hasActiveTurn(). */
312
404
  hasActivePipeline(sessionId: string): boolean;
@@ -320,12 +412,29 @@ export declare class SessionManager {
320
412
  resize(sessionId: string, cols: number, rows: number): void;
321
413
  /** Close all runtime driver sessions during graceful server shutdown. */
322
414
  destroyAll(): Promise<void>;
415
+ private kickConversationQueue;
416
+ private processConversationQueue;
417
+ private requeueConversationTurn;
323
418
  private resolveAgentSessionId;
324
419
  private startRuntimeTurn;
420
+ private claimRuntimeLaunch;
421
+ private resolveReusedRuntimeLaunch;
422
+ private resolvePreChildRuntimeLaunchFailure;
423
+ private quarantineRuntimeLaunch;
424
+ private reserveInitialStart;
425
+ private reserveProcessStart;
426
+ private assertTeamRunDispatchAdmitted;
325
427
  private handleRuntimeTurnEvent;
326
428
  private handleRuntimeState;
327
429
  private invalidateTeamRunRuntimeState;
328
430
  private handleRuntimeProcessEvent;
431
+ private pendingRuntimeEventCount;
432
+ private clearPendingRuntimeProcessEvents;
433
+ private clearPendingRuntimeEventExpiryTimer;
434
+ private prunePendingRuntimeProcessEvents;
435
+ private quarantineRuntimeProcessEvent;
436
+ private markRuntimeProcessCleanupPending;
437
+ private markRuntimeProcessCleanupState;
329
438
  private normalizeRuntimeType;
330
439
  private injectAgentTowerMcpServiceEnv;
331
440
  private injectTeamRunInvocationEnv;
@@ -342,6 +451,7 @@ export declare class SessionManager {
342
451
  private releaseSnapshotPersistenceState;
343
452
  private extractTokenUsageFromSnapshot;
344
453
  private findSessionExecutionRecord;
454
+ private appendUserMessageEntry;
345
455
  private isConversationSession;
346
456
  private ensureExecutionRecordIsLive;
347
457
  private getExecutionWorkingDir;
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/services/session-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA6D,MAAM,mBAAmB,CAAC;AAczG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAerE,OAAO,EAAE,WAAW,EAAwB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI9F,OAAO,EAKL,KAAK,eAAe,EAKrB,MAAM,qBAAqB,CAAC;AAmD7B,UAAU,kBAAkB;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AASD,qBAAa,cAAc;IAkCvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjC3B,OAAO,CAAC,mBAAmB,CAAoD;IAC/E,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,6BAA6B,CAAoC;IACzE,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,qBAAqB,CAAoC;IACjE,4EAA4E;IAC5E,OAAO,CAAC,gBAAgB,CAAoC;IAC5D,OAAO,CAAC,oBAAoB,CAAoC;IAChE,2GAA2G;IAC3G,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,0BAA0B,CAAiC;IACnE;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,2BAA2B,CAAyB;IAC5D,+FAA+F;IAC/F,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAC/D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA8B;IACtE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAoC;IAC/E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAU;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAU;gBAGpC,QAAQ,EAAE,QAAQ,EACnC,cAAc,CAAC,EAAE,qBAAqB,EACtC,eAAe,CAAC,EAAE,eAAe;IA8D7B,QAAQ,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOzB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,WAA6B,GAAG,eAAe;IAIzF,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/F,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAkB,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;IAsClH,KAAK,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyBhB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCrD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwI5D,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;;;;;;;;;;;;;;;;;;IA2EvD,uCAAuC;IACvC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI7C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIzC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhD;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAmBnC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3D,yEAAyE;IACnE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC,OAAO,CAAC,qBAAqB;YAkBf,gBAAgB;IAmF9B,OAAO,CAAC,sBAAsB;IA8D9B,OAAO,CAAC,kBAAkB;YAkBZ,6BAA6B;YAkB7B,yBAAyB;IAiCvC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,6BAA6B;YAmBvB,0BAA0B;IAsCxC;;;;OAIG;YACW,iBAAiB;IAmC/B,OAAO,CAAC,uBAAuB;YAiCjB,oBAAoB;YA2BpB,8BAA8B;YAiB9B,eAAe;IAmE7B,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,6BAA6B;YAUvB,0BAA0B;IAUxC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,2BAA2B;IAcnC,OAAO,CAAC,sBAAsB;IAc9B;;;;;;;OAOG;YACW,oBAAoB;IA4ClC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;;;;;;OAOG;YACW,mBAAmB;IAwCjC;;;;OAIG;YACW,iBAAiB;IAsJ/B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,qBAAqB;YAOf,wBAAwB;IAItC,OAAO,CAAC,eAAe;YAwBT,0BAA0B;IAWxC,OAAO,CAAC,eAAe;CASxB"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/services/session-manager.ts"],"names":[],"mappings":"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"}