agent-tower 0.6.0-beta.2 → 0.6.0-beta.3

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 (398) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +10 -2
  3. package/dist/app.js.map +1 -1
  4. package/dist/app.test.js +10 -0
  5. package/dist/app.test.js.map +1 -1
  6. package/dist/core/container.d.ts +2 -0
  7. package/dist/core/container.d.ts.map +1 -1
  8. package/dist/core/container.js +9 -1
  9. package/dist/core/container.js.map +1 -1
  10. package/dist/executors/__tests__/codex.executor.test.js +50 -0
  11. package/dist/executors/__tests__/codex.executor.test.js.map +1 -1
  12. package/dist/executors/codex.executor.d.ts +2 -0
  13. package/dist/executors/codex.executor.d.ts.map +1 -1
  14. package/dist/executors/codex.executor.js +8 -0
  15. package/dist/executors/codex.executor.js.map +1 -1
  16. package/dist/executors/execution-env.d.ts +1 -1
  17. package/dist/executors/execution-env.d.ts.map +1 -1
  18. package/dist/executors/execution-env.js +2 -0
  19. package/dist/executors/execution-env.js.map +1 -1
  20. package/dist/mcp/http-client.d.ts +24 -0
  21. package/dist/mcp/http-client.d.ts.map +1 -1
  22. package/dist/mcp/http-client.js +66 -8
  23. package/dist/mcp/http-client.js.map +1 -1
  24. package/dist/mcp/http-client.test.d.ts +2 -0
  25. package/dist/mcp/http-client.test.d.ts.map +1 -0
  26. package/dist/mcp/http-client.test.js +67 -0
  27. package/dist/mcp/http-client.test.js.map +1 -0
  28. package/dist/mcp/index.js +9 -2
  29. package/dist/mcp/index.js.map +1 -1
  30. package/dist/mcp/server.d.ts +1 -0
  31. package/dist/mcp/server.d.ts.map +1 -1
  32. package/dist/mcp/server.js +7 -0
  33. package/dist/mcp/server.js.map +1 -1
  34. package/dist/mcp/tools/__tests__/workspace-services.test.d.ts +2 -0
  35. package/dist/mcp/tools/__tests__/workspace-services.test.d.ts.map +1 -0
  36. package/dist/mcp/tools/__tests__/workspace-services.test.js +84 -0
  37. package/dist/mcp/tools/__tests__/workspace-services.test.js.map +1 -0
  38. package/dist/mcp/tools/workspace-services.d.ts +6 -0
  39. package/dist/mcp/tools/workspace-services.d.ts.map +1 -0
  40. package/dist/mcp/tools/workspace-services.js +102 -0
  41. package/dist/mcp/tools/workspace-services.js.map +1 -0
  42. package/dist/mcp/types.d.ts +55 -2
  43. package/dist/mcp/types.d.ts.map +1 -1
  44. package/dist/mcp/types.js +29 -0
  45. package/dist/mcp/types.js.map +1 -1
  46. package/dist/middleware/__tests__/access-auth.test.js +229 -2
  47. package/dist/middleware/__tests__/access-auth.test.js.map +1 -1
  48. package/dist/middleware/access-auth.d.ts +7 -0
  49. package/dist/middleware/access-auth.d.ts.map +1 -1
  50. package/dist/middleware/access-auth.js +50 -9
  51. package/dist/middleware/access-auth.js.map +1 -1
  52. package/dist/prompts/agent-output-intents.d.ts +2 -0
  53. package/dist/prompts/agent-output-intents.d.ts.map +1 -0
  54. package/dist/prompts/agent-output-intents.js +11 -0
  55. package/dist/prompts/agent-output-intents.js.map +1 -0
  56. package/dist/prompts/agent-output-intents.test.d.ts +2 -0
  57. package/dist/prompts/agent-output-intents.test.d.ts.map +1 -0
  58. package/dist/prompts/agent-output-intents.test.js +12 -0
  59. package/dist/prompts/agent-output-intents.test.js.map +1 -0
  60. package/dist/prompts/workspace-background-service-policy.d.ts +9 -0
  61. package/dist/prompts/workspace-background-service-policy.d.ts.map +1 -0
  62. package/dist/prompts/workspace-background-service-policy.js +17 -0
  63. package/dist/prompts/workspace-background-service-policy.js.map +1 -0
  64. package/dist/prompts/workspace-background-service-policy.test.d.ts +2 -0
  65. package/dist/prompts/workspace-background-service-policy.test.d.ts.map +1 -0
  66. package/dist/prompts/workspace-background-service-policy.test.js +19 -0
  67. package/dist/prompts/workspace-background-service-policy.test.js.map +1 -0
  68. package/dist/routes/__tests__/previews.integration.test.js +1 -0
  69. package/dist/routes/__tests__/previews.integration.test.js.map +1 -1
  70. package/dist/routes/__tests__/previews.test.js +6 -1
  71. package/dist/routes/__tests__/previews.test.js.map +1 -1
  72. package/dist/routes/__tests__/providers.test.js +1 -0
  73. package/dist/routes/__tests__/providers.test.js.map +1 -1
  74. package/dist/routes/__tests__/sessions-visualizations.test.d.ts +2 -0
  75. package/dist/routes/__tests__/sessions-visualizations.test.d.ts.map +1 -0
  76. package/dist/routes/__tests__/sessions-visualizations.test.js +89 -0
  77. package/dist/routes/__tests__/sessions-visualizations.test.js.map +1 -0
  78. package/dist/routes/__tests__/workspace-services.test.d.ts +2 -0
  79. package/dist/routes/__tests__/workspace-services.test.d.ts.map +1 -0
  80. package/dist/routes/__tests__/workspace-services.test.js +148 -0
  81. package/dist/routes/__tests__/workspace-services.test.js.map +1 -0
  82. package/dist/routes/access-auth.d.ts.map +1 -1
  83. package/dist/routes/access-auth.js +24 -11
  84. package/dist/routes/access-auth.js.map +1 -1
  85. package/dist/routes/index.d.ts.map +1 -1
  86. package/dist/routes/index.js +3 -0
  87. package/dist/routes/index.js.map +1 -1
  88. package/dist/routes/previews.d.ts.map +1 -1
  89. package/dist/routes/previews.js +4 -6
  90. package/dist/routes/previews.js.map +1 -1
  91. package/dist/routes/sessions.d.ts.map +1 -1
  92. package/dist/routes/sessions.js +93 -0
  93. package/dist/routes/sessions.js.map +1 -1
  94. package/dist/routes/tasks.d.ts.map +1 -1
  95. package/dist/routes/tasks.js +2 -2
  96. package/dist/routes/tasks.js.map +1 -1
  97. package/dist/routes/workspace-services.d.ts +7 -0
  98. package/dist/routes/workspace-services.d.ts.map +1 -0
  99. package/dist/routes/workspace-services.js +129 -0
  100. package/dist/routes/workspace-services.js.map +1 -0
  101. package/dist/runtime/__tests__/acp-agent-definitions.test.js +43 -0
  102. package/dist/runtime/__tests__/acp-agent-definitions.test.js.map +1 -1
  103. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js +61 -1
  104. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js.map +1 -1
  105. package/dist/runtime/__tests__/acp-driver.test.js +2 -0
  106. package/dist/runtime/__tests__/acp-driver.test.js.map +1 -1
  107. package/dist/runtime/__tests__/acp-process-manager.test.js +40 -1
  108. package/dist/runtime/__tests__/acp-process-manager.test.js.map +1 -1
  109. package/dist/runtime/__tests__/acp-projector.test.js +55 -0
  110. package/dist/runtime/__tests__/acp-projector.test.js.map +1 -1
  111. package/dist/runtime/__tests__/runtime-coordinator.test.js +5 -2
  112. package/dist/runtime/__tests__/runtime-coordinator.test.js.map +1 -1
  113. package/dist/runtime/acp/acp-driver.js +79 -27
  114. package/dist/runtime/acp/acp-driver.js.map +1 -1
  115. package/dist/runtime/acp/agents/codex-frame-normalizer.d.ts +4 -0
  116. package/dist/runtime/acp/agents/codex-frame-normalizer.d.ts.map +1 -0
  117. package/dist/runtime/acp/agents/codex-frame-normalizer.js +51 -0
  118. package/dist/runtime/acp/agents/codex-frame-normalizer.js.map +1 -0
  119. package/dist/runtime/acp/agents/codex.d.ts.map +1 -1
  120. package/dist/runtime/acp/agents/codex.js +21 -0
  121. package/dist/runtime/acp/agents/codex.js.map +1 -1
  122. package/dist/runtime/acp/agents/types.d.ts +4 -0
  123. package/dist/runtime/acp/agents/types.d.ts.map +1 -1
  124. package/dist/runtime/acp/codex-provider-config.d.ts +1 -0
  125. package/dist/runtime/acp/codex-provider-config.d.ts.map +1 -1
  126. package/dist/runtime/acp/codex-provider-config.js +4 -0
  127. package/dist/runtime/acp/codex-provider-config.js.map +1 -1
  128. package/dist/runtime/acp/process-manager.d.ts +3 -0
  129. package/dist/runtime/acp/process-manager.d.ts.map +1 -1
  130. package/dist/runtime/acp/process-manager.js +31 -12
  131. package/dist/runtime/acp/process-manager.js.map +1 -1
  132. package/dist/runtime/acp/projector.d.ts.map +1 -1
  133. package/dist/runtime/acp/projector.js +71 -5
  134. package/dist/runtime/acp/projector.js.map +1 -1
  135. package/dist/runtime/contracts.d.ts +1 -0
  136. package/dist/runtime/contracts.d.ts.map +1 -1
  137. package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
  138. package/dist/runtime/runtime-coordinator.js +1 -0
  139. package/dist/runtime/runtime-coordinator.js.map +1 -1
  140. package/dist/services/__tests__/access-auth.service.test.js +41 -0
  141. package/dist/services/__tests__/access-auth.service.test.js.map +1 -1
  142. package/dist/services/__tests__/agent-artifact.service.test.d.ts +2 -0
  143. package/dist/services/__tests__/agent-artifact.service.test.d.ts.map +1 -0
  144. package/dist/services/__tests__/agent-artifact.service.test.js +133 -0
  145. package/dist/services/__tests__/agent-artifact.service.test.js.map +1 -0
  146. package/dist/services/__tests__/agent-visualization.service.test.d.ts +2 -0
  147. package/dist/services/__tests__/agent-visualization.service.test.d.ts.map +1 -0
  148. package/dist/services/__tests__/agent-visualization.service.test.js +57 -0
  149. package/dist/services/__tests__/agent-visualization.service.test.js.map +1 -0
  150. package/dist/services/__tests__/preview-runtime-manager.test.js +5 -0
  151. package/dist/services/__tests__/preview-runtime-manager.test.js.map +1 -1
  152. package/dist/services/__tests__/project.service.test.js +6 -2
  153. package/dist/services/__tests__/project.service.test.js.map +1 -1
  154. package/dist/services/__tests__/provider-config.service.test.js +32 -0
  155. package/dist/services/__tests__/provider-config.service.test.js.map +1 -1
  156. package/dist/services/__tests__/session-manager.lifecycle.test.js +153 -1
  157. package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
  158. package/dist/services/__tests__/session-manager.team-run.test.js +18 -5
  159. package/dist/services/__tests__/session-manager.team-run.test.js.map +1 -1
  160. package/dist/services/__tests__/task.service.test.js +16 -3
  161. package/dist/services/__tests__/task.service.test.js.map +1 -1
  162. package/dist/services/__tests__/workspace-background-process-manager.test.d.ts +2 -0
  163. package/dist/services/__tests__/workspace-background-process-manager.test.d.ts.map +1 -0
  164. package/dist/services/__tests__/workspace-background-process-manager.test.js +412 -0
  165. package/dist/services/__tests__/workspace-background-process-manager.test.js.map +1 -0
  166. package/dist/services/__tests__/workspace-background-service.service.test.d.ts +2 -0
  167. package/dist/services/__tests__/workspace-background-service.service.test.d.ts.map +1 -0
  168. package/dist/services/__tests__/workspace-background-service.service.test.js +418 -0
  169. package/dist/services/__tests__/workspace-background-service.service.test.js.map +1 -0
  170. package/dist/services/__tests__/workspace.service.test.js +137 -0
  171. package/dist/services/__tests__/workspace.service.test.js.map +1 -1
  172. package/dist/services/access-auth.service.d.ts +15 -1
  173. package/dist/services/access-auth.service.d.ts.map +1 -1
  174. package/dist/services/access-auth.service.js +75 -15
  175. package/dist/services/access-auth.service.js.map +1 -1
  176. package/dist/services/agent-artifact.service.d.ts +28 -0
  177. package/dist/services/agent-artifact.service.d.ts.map +1 -0
  178. package/dist/services/agent-artifact.service.js +287 -0
  179. package/dist/services/agent-artifact.service.js.map +1 -0
  180. package/dist/services/agent-visualization.service.d.ts +12 -0
  181. package/dist/services/agent-visualization.service.d.ts.map +1 -0
  182. package/dist/services/agent-visualization.service.js +239 -0
  183. package/dist/services/agent-visualization.service.js.map +1 -0
  184. package/dist/services/mcp-config.service.d.ts.map +1 -1
  185. package/dist/services/mcp-config.service.js +8 -1
  186. package/dist/services/mcp-config.service.js.map +1 -1
  187. package/dist/services/mcp-config.service.test.js +14 -0
  188. package/dist/services/mcp-config.service.test.js.map +1 -1
  189. package/dist/services/preview-runtime-manager.d.ts.map +1 -1
  190. package/dist/services/preview-runtime-manager.js +15 -12
  191. package/dist/services/preview-runtime-manager.js.map +1 -1
  192. package/dist/services/project.service.d.ts +4 -1
  193. package/dist/services/project.service.d.ts.map +1 -1
  194. package/dist/services/project.service.js +43 -32
  195. package/dist/services/project.service.js.map +1 -1
  196. package/dist/services/provider-config.service.d.ts.map +1 -1
  197. package/dist/services/provider-config.service.js +11 -0
  198. package/dist/services/provider-config.service.js.map +1 -1
  199. package/dist/services/session-manager.d.ts +34 -32
  200. package/dist/services/session-manager.d.ts.map +1 -1
  201. package/dist/services/session-manager.js +43 -23
  202. package/dist/services/session-manager.js.map +1 -1
  203. package/dist/services/task-cleanup.service.d.ts +4 -1
  204. package/dist/services/task-cleanup.service.d.ts.map +1 -1
  205. package/dist/services/task-cleanup.service.js +13 -1
  206. package/dist/services/task-cleanup.service.js.map +1 -1
  207. package/dist/services/task.service.d.ts +22 -20
  208. package/dist/services/task.service.d.ts.map +1 -1
  209. package/dist/services/task.service.js +21 -8
  210. package/dist/services/task.service.js.map +1 -1
  211. package/dist/services/workspace-background-process-manager.d.ts +66 -0
  212. package/dist/services/workspace-background-process-manager.d.ts.map +1 -0
  213. package/dist/services/workspace-background-process-manager.js +328 -0
  214. package/dist/services/workspace-background-process-manager.js.map +1 -0
  215. package/dist/services/workspace-background-service.service.d.ts +39 -0
  216. package/dist/services/workspace-background-service.service.d.ts.map +1 -0
  217. package/dist/services/workspace-background-service.service.js +520 -0
  218. package/dist/services/workspace-background-service.service.js.map +1 -0
  219. package/dist/services/workspace-lifecycle-barrier.d.ts +10 -0
  220. package/dist/services/workspace-lifecycle-barrier.d.ts.map +1 -0
  221. package/dist/services/workspace-lifecycle-barrier.js +35 -0
  222. package/dist/services/workspace-lifecycle-barrier.js.map +1 -0
  223. package/dist/services/workspace.service.d.ts +42 -36
  224. package/dist/services/workspace.service.d.ts.map +1 -1
  225. package/dist/services/workspace.service.js +100 -39
  226. package/dist/services/workspace.service.js.map +1 -1
  227. package/dist/socket/__tests__/socket-gateway.test.js +23 -0
  228. package/dist/socket/__tests__/socket-gateway.test.js.map +1 -1
  229. package/dist/socket/middleware/__tests__/auth.test.js +3 -3
  230. package/dist/socket/middleware/__tests__/auth.test.js.map +1 -1
  231. package/dist/utils/agent-api-credential.d.ts +11 -0
  232. package/dist/utils/agent-api-credential.d.ts.map +1 -0
  233. package/dist/utils/agent-api-credential.js +40 -0
  234. package/dist/utils/agent-api-credential.js.map +1 -0
  235. package/dist/utils/internal-api-token.d.ts +2 -0
  236. package/dist/utils/internal-api-token.d.ts.map +1 -1
  237. package/dist/utils/internal-api-token.js +2 -0
  238. package/dist/utils/internal-api-token.js.map +1 -1
  239. package/dist/utils/process-launch.d.ts.map +1 -1
  240. package/dist/utils/process-launch.js +156 -22
  241. package/dist/utils/process-launch.js.map +1 -1
  242. package/dist/utils/process-launch.test.js +7 -0
  243. package/dist/utils/process-launch.test.js.map +1 -1
  244. package/dist/utils/unix-process-identity.d.ts +23 -0
  245. package/dist/utils/unix-process-identity.d.ts.map +1 -0
  246. package/dist/utils/unix-process-identity.js +165 -0
  247. package/dist/utils/unix-process-identity.js.map +1 -0
  248. package/dist/web/assets/{AgentDemoPage-XrttOpQW.js → AgentDemoPage-CLemSpf6.js} +1 -1
  249. package/dist/web/assets/{AgentEnvironmentSettingsPage-CAo0bCpZ.js → AgentEnvironmentSettingsPage-CPggaJvZ.js} +1 -1
  250. package/dist/web/assets/{AgentLogo-BCwbooTN.js → AgentLogo-DJFjaRFS.js} +1 -1
  251. package/dist/web/assets/ConversationPage-CB4PoHYi.js +3 -0
  252. package/dist/web/assets/CreateTaskInput-CXWGjX_a.js +1 -0
  253. package/dist/web/assets/{DemoPage-DHMh9-zU.js → DemoPage-djW4NeHW.js} +3 -3
  254. package/dist/web/assets/{GeneralSettingsPage-DvWaqR9O.js → GeneralSettingsPage-0a2VgV74.js} +1 -1
  255. package/dist/web/assets/{Icons-DADUmnB1.js → Icons-tvQ3lNxT.js} +1 -1
  256. package/dist/web/assets/{LoadingPreviewPage-Dk91Ua1W.js → LoadingPreviewPage-D8GpQ-Ic.js} +1 -1
  257. package/dist/web/assets/McpSettingsPage-BxPMmwHH.js +1 -0
  258. package/dist/web/assets/{MemberAvatar-l-WCdlLA.js → MemberAvatar-JbGgXa3r.js} +1 -1
  259. package/dist/web/assets/{NotificationSettingsPage-Byu8b9X3.js → NotificationSettingsPage-BtN0fYTA.js} +1 -1
  260. package/dist/web/assets/{ProfileSettingsPage-BdylqWUj.js → ProfileSettingsPage-CVSHbAtS.js} +1 -1
  261. package/dist/web/assets/ProjectKanbanPage-Dq0pufE1.js +90 -0
  262. package/dist/web/assets/ProjectSettingsPage-CChSA5A4.js +2 -0
  263. package/dist/web/assets/ProviderSettingsPage-giXaDHmU.js +95 -0
  264. package/dist/web/assets/{SettingsMasterDetail-DTGIIGdI.js → SettingsMasterDetail-D-TeBuLx.js} +1 -1
  265. package/dist/web/assets/{TeamSettingsPage-BXuG4Bou.js → TeamSettingsPage-DNLp2l2E.js} +1 -1
  266. package/dist/web/assets/{arc-DrcjdWTE.js → arc-B5sdSA9b.js} +1 -1
  267. package/dist/web/assets/{architectureDiagram-3BPJPVTR-CAoBhXSL.js → architectureDiagram-3BPJPVTR-ClsPKWjN.js} +1 -1
  268. package/dist/web/assets/{arrow-left-CCWDjOmp.js → arrow-left-B7C-fOb5.js} +1 -1
  269. package/dist/web/assets/{blockDiagram-GPEHLZMM-CcTSBbUq.js → blockDiagram-GPEHLZMM-HHViBKvL.js} +1 -1
  270. package/dist/web/assets/{c4Diagram-AAUBKEIU-BuUKdgUg.js → c4Diagram-AAUBKEIU-CRreiVUs.js} +1 -1
  271. package/dist/web/assets/channel-Bhjxgyee.js +1 -0
  272. package/dist/web/assets/check-Dtr-nHO5.js +1 -0
  273. package/dist/web/assets/{chevron-down-BQcW9sFf.js → chevron-down-BZnZAd2n.js} +1 -1
  274. package/dist/web/assets/{chevron-right-pH923eYp.js → chevron-right-nnOI2p8q.js} +1 -1
  275. package/dist/web/assets/{chevron-up-DyQW115F.js → chevron-up-Cl6FGZ8R.js} +1 -1
  276. package/dist/web/assets/{chunk-2J33WTMH-BWNSmQa8.js → chunk-2J33WTMH-_s2AOnis.js} +1 -1
  277. package/dist/web/assets/{chunk-4BX2VUAB-Blldhw0k.js → chunk-4BX2VUAB-Ds1jhNjB.js} +1 -1
  278. package/dist/web/assets/{chunk-55IACEB6-hTffyPXL.js → chunk-55IACEB6-B2SvpbB1.js} +1 -1
  279. package/dist/web/assets/{chunk-727SXJPM-Cd48r7c-.js → chunk-727SXJPM-B6qjWdxn.js} +1 -1
  280. package/dist/web/assets/{chunk-AQP2D5EJ-BdDrOIL7.js → chunk-AQP2D5EJ-myECS-o9.js} +1 -1
  281. package/dist/web/assets/{chunk-FMBD7UC4-6XIvQYVJ.js → chunk-FMBD7UC4-CFDf13jX.js} +1 -1
  282. package/dist/web/assets/{chunk-ND2GUHAM-BJlcb_pB.js → chunk-ND2GUHAM-62aJufBH.js} +1 -1
  283. package/dist/web/assets/{chunk-QZHKN3VN-3TZzFkxK.js → chunk-QZHKN3VN-DEWvzHCx.js} +1 -1
  284. package/dist/web/assets/{circle-alert-oa-BQ5e7.js → circle-alert-BSGJzTSj.js} +1 -1
  285. package/dist/web/assets/classDiagram-4FO5ZUOK-BxnIeW8e.js +1 -0
  286. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-BxnIeW8e.js +1 -0
  287. package/dist/web/assets/{code-block-OCS4YCEC-xJQWFyR7.js → code-block-OCS4YCEC-DWj3hzdw.js} +1 -1
  288. package/dist/web/assets/{confirm-dialog-CRiC3xBd.js → confirm-dialog-oStWxmjS.js} +1 -1
  289. package/dist/web/assets/{cose-bilkent-S5V4N54A-Cjcm-rW_.js → cose-bilkent-S5V4N54A-DNYqhVNu.js} +1 -1
  290. package/dist/web/assets/cssMode-Cn68yhOS.js +1 -0
  291. package/dist/web/assets/{dagre-BM42HDAG-YqubcAJi.js → dagre-BM42HDAG-gQbGUd4s.js} +1 -1
  292. package/dist/web/assets/{diagram-2AECGRRQ-Dk4ayFqg.js → diagram-2AECGRRQ-BeMaPQBR.js} +1 -1
  293. package/dist/web/assets/{diagram-5GNKFQAL-CQ0joYfB.js → diagram-5GNKFQAL-CStJaSd8.js} +1 -1
  294. package/dist/web/assets/{diagram-KO2AKTUF-DmuZzIdW.js → diagram-KO2AKTUF-BmEeaazt.js} +1 -1
  295. package/dist/web/assets/{diagram-LMA3HP47-YTPEfEZy.js → diagram-LMA3HP47-ClNnKUvt.js} +1 -1
  296. package/dist/web/assets/{diagram-OG6HWLK6-DmwRuz8-.js → diagram-OG6HWLK6-C24GKhLk.js} +1 -1
  297. package/dist/web/assets/{erDiagram-TEJ5UH35-LRL_DMXa.js → erDiagram-TEJ5UH35-6Xp8w1WL.js} +1 -1
  298. package/dist/web/assets/{flowDiagram-I6XJVG4X-ELBDyOvk.js → flowDiagram-I6XJVG4X-BCih6e9O.js} +1 -1
  299. package/dist/web/assets/folder-picker-DcY2P8zf.js +1 -0
  300. package/dist/web/assets/{freemarker2-DxJFkRz5.js → freemarker2-C6kMBtOW.js} +1 -1
  301. package/dist/web/assets/{ganttDiagram-6RSMTGT7-D0e9ILuF.js → ganttDiagram-6RSMTGT7-_9GX-BOi.js} +1 -1
  302. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-Ck6OXXw0.js → gitGraphDiagram-PVQCEYII-DEe9VMLq.js} +1 -1
  303. package/dist/web/assets/handlebars-BxZgdhY8.js +1 -0
  304. package/dist/web/assets/html-bhMfD_X9.js +1 -0
  305. package/dist/web/assets/htmlMode-CC7AVUJ4.js +1 -0
  306. package/dist/web/assets/index-018g9RN4.css +1 -0
  307. package/dist/web/assets/{index-D9kBRMR0.js → index-ToY1NCNr.js} +3 -3
  308. package/dist/web/assets/{index-CjdqAcbu.js → index-cl-QFuts.js} +4 -4
  309. package/dist/web/assets/{infoDiagram-5YYISTIA-Cx8be-MV.js → infoDiagram-5YYISTIA-CU3D8SMZ.js} +1 -1
  310. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-Dlc7akl7.js → ishikawaDiagram-YF4QCWOH-ClffgdSa.js} +1 -1
  311. package/dist/web/assets/javascript-8UIdW5Gd.js +1 -0
  312. package/dist/web/assets/{journeyDiagram-JHISSGLW-BVDSbS9-.js → journeyDiagram-JHISSGLW-Cy7Rr0_y.js} +1 -1
  313. package/dist/web/assets/{jsonMode-B5CJhoWd.js → jsonMode-JLBoaKf1.js} +1 -1
  314. package/dist/web/assets/{kanban-definition-UN3LZRKU-nFR0zB7B.js → kanban-definition-UN3LZRKU-14piuQEq.js} +1 -1
  315. package/dist/web/assets/{layers-Bo4aml98.js → layers-C93epAjs.js} +1 -1
  316. package/dist/web/assets/{linear-BCWZjcpP.js → linear-BtH62ya4.js} +1 -1
  317. package/dist/web/assets/liquid-BntTiwt7.js +1 -0
  318. package/dist/web/assets/{lspLanguageFeatures-Cbk7wEkj.js → lspLanguageFeatures-Dk65AKZD.js} +1 -1
  319. package/dist/web/assets/mdx-ToUKdFio.js +1 -0
  320. package/dist/web/assets/{mermaid-NOHMQCX5-DWQaYVL0.js → mermaid-NOHMQCX5-CPO3gPWp.js} +66 -65
  321. package/dist/web/assets/{message-square-DxbkpGqF.js → message-square-BBENHwpb.js} +1 -1
  322. package/dist/web/assets/{mindmap-definition-RKZ34NQL-LI7W1FIX.js → mindmap-definition-RKZ34NQL-gWYqFXbP.js} +1 -1
  323. package/dist/web/assets/{modal-Cymk-6Df.js → modal-D-sNOVPw.js} +1 -1
  324. package/dist/web/assets/{monaco-Bc-Z2u8N.js → monaco-B9Zd90UG.js} +3 -3
  325. package/dist/web/assets/{pencil-DOL2nlgg.js → pencil-BRPix314.js} +1 -1
  326. package/dist/web/assets/{pieDiagram-4H26LBE5-mgUzAFkk.js → pieDiagram-4H26LBE5-C3cHgEuO.js} +1 -1
  327. package/dist/web/assets/python-BeGIUwrY.js +1 -0
  328. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-CaDF2kqA.js → quadrantDiagram-W4KKPZXB-DZFYp-mp.js} +1 -1
  329. package/dist/web/assets/razor-CnCuqD7W.js +1 -0
  330. package/dist/web/assets/{requirementDiagram-4Y6WPE33-DhmHdr_0.js → requirementDiagram-4Y6WPE33-DSQRXAFH.js} +1 -1
  331. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-B7qnGfue.js → sankeyDiagram-5OEKKPKP-CEXk2v3C.js} +1 -1
  332. package/dist/web/assets/{select-BpKQyMvD.js → select-CGNclv1f.js} +1 -1
  333. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-D2LhPgpM.js → sequenceDiagram-3UESZ5HK-CHVF_25M.js} +1 -1
  334. package/dist/web/assets/server-UA3ZvpjF.js +1 -0
  335. package/dist/web/assets/{stateDiagram-AJRCARHV-ClkO4Gu5.js → stateDiagram-AJRCARHV-TMqBR1_f.js} +1 -1
  336. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DqCjP1u1.js +1 -0
  337. package/dist/web/assets/{switch-BJ4Ar_OA.js → switch-C7qsQ1x2.js} +1 -1
  338. package/dist/web/assets/{textarea-DjwjAAG8.js → textarea-CDdCks2T.js} +1 -1
  339. package/dist/web/assets/{timeline-definition-PNZ67QCA-DhGIG-GC.js → timeline-definition-PNZ67QCA-CxC3mFt7.js} +1 -1
  340. package/dist/web/assets/{trash-2-R46i6Uus.js → trash-2-Bye7VGcW.js} +1 -1
  341. package/dist/web/assets/{tsMode-CKaqpIrz.js → tsMode-8nvc-x2E.js} +1 -1
  342. package/dist/web/assets/typescript-P7JXXc42.js +1 -0
  343. package/dist/web/assets/{upload-CgWqsmdI.js → upload-wJO5M1ZY.js} +1 -1
  344. package/dist/web/assets/{use-profiles-BlGgvdYm.js → use-profiles-CYJIKesy.js} +1 -1
  345. package/dist/web/assets/{use-projects-Cuv0A0RC.js → use-projects-Ds_YI2En.js} +1 -1
  346. package/dist/web/assets/{use-providers-DLcAY6E1.js → use-providers-B9FaTKyw.js} +1 -1
  347. package/dist/web/assets/{useNormalizedLogs-tfxFAJOF.js → useNormalizedLogs-B8um63GF.js} +1 -1
  348. package/dist/web/assets/{vennDiagram-CIIHVFJN-BngQhsYJ.js → vennDiagram-CIIHVFJN-DX0jm9G-.js} +1 -1
  349. package/dist/web/assets/{wardley-L42UT6IY-BEY6sftT.js → wardley-L42UT6IY-Ce-rqtq2.js} +1 -1
  350. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-IH_Yh-cw.js → wardleyDiagram-YWT4CUSO-Gpxnu2av.js} +1 -1
  351. package/dist/web/assets/xml-1G4iEdpK.js +1 -0
  352. package/dist/web/assets/{xychartDiagram-2RQKCTM6-BdrGFDsr.js → xychartDiagram-2RQKCTM6-COe6opx2.js} +1 -1
  353. package/dist/web/assets/yaml-HqUdsAk3.js +1 -0
  354. package/dist/web/index.html +2 -2
  355. package/node_modules/@agent-tower/shared/dist/agent-download-intent.d.ts +6 -0
  356. package/node_modules/@agent-tower/shared/dist/agent-download-intent.d.ts.map +1 -0
  357. package/node_modules/@agent-tower/shared/dist/agent-download-intent.js +46 -0
  358. package/node_modules/@agent-tower/shared/dist/agent-download-intent.js.map +1 -0
  359. package/node_modules/@agent-tower/shared/dist/index.d.ts +1 -0
  360. package/node_modules/@agent-tower/shared/dist/index.d.ts.map +1 -1
  361. package/node_modules/@agent-tower/shared/dist/index.js +1 -0
  362. package/node_modules/@agent-tower/shared/dist/index.js.map +1 -1
  363. package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts +1 -0
  364. package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts.map +1 -1
  365. package/node_modules/@agent-tower/shared/dist/provider-capabilities.js +4 -0
  366. package/node_modules/@agent-tower/shared/dist/provider-capabilities.js.map +1 -1
  367. package/node_modules/@agent-tower/shared/dist/types.d.ts +56 -2
  368. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  369. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  370. package/package.json +1 -1
  371. package/prisma/migrations/20260728000000_add_agent_artifacts/migration.sql +23 -0
  372. package/prisma/schema.prisma +48 -0
  373. package/dist/web/assets/ConversationPage-kyHuICil.js +0 -3
  374. package/dist/web/assets/CreateTaskInput-B67vzMJD.js +0 -1
  375. package/dist/web/assets/McpSettingsPage-CH8jFyxp.js +0 -1
  376. package/dist/web/assets/ProjectKanbanPage--cx6wNDR.js +0 -90
  377. package/dist/web/assets/ProjectSettingsPage-6psG0Vfc.js +0 -2
  378. package/dist/web/assets/ProviderSettingsPage-BPEEkhtA.js +0 -93
  379. package/dist/web/assets/channel-Bh_PCZNP.js +0 -1
  380. package/dist/web/assets/check-BN_PVKzE.js +0 -1
  381. package/dist/web/assets/classDiagram-4FO5ZUOK-B0lQFDoP.js +0 -1
  382. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-B0lQFDoP.js +0 -1
  383. package/dist/web/assets/copy-DaoAUKTO.js +0 -1
  384. package/dist/web/assets/cssMode-_D6u4YDd.js +0 -1
  385. package/dist/web/assets/folder-picker-WUhXxIM5.js +0 -1
  386. package/dist/web/assets/handlebars-djdO6ZKR.js +0 -1
  387. package/dist/web/assets/html-CHeBxmFi.js +0 -1
  388. package/dist/web/assets/htmlMode-SZh8FaPi.js +0 -1
  389. package/dist/web/assets/index-CjAJoGg5.css +0 -1
  390. package/dist/web/assets/javascript-l6fV6hf7.js +0 -1
  391. package/dist/web/assets/liquid-DkFOeJ6J.js +0 -1
  392. package/dist/web/assets/mdx-BOPNdexu.js +0 -1
  393. package/dist/web/assets/python-D_wlYLCL.js +0 -1
  394. package/dist/web/assets/razor-DBFVg4JU.js +0 -1
  395. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-YnSeSD_N.js +0 -1
  396. package/dist/web/assets/typescript-DsixnGVt.js +0 -1
  397. package/dist/web/assets/xml-dEcQ1gzo.js +0 -1
  398. package/dist/web/assets/yaml-BfGVqGj4.js +0 -1
@@ -2,6 +2,7 @@ import { AgentType } from '../types/index.js';
2
2
  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
+ import { type RuntimeRegistry } from '../runtime/index.js';
5
6
  interface StopSessionOptions {
6
7
  skipTeamRunReconcile?: boolean;
7
8
  }
@@ -34,23 +35,24 @@ export declare class SessionManager {
34
35
  private readonly runtimeProcessIds;
35
36
  private readonly runtimePermissionStates;
36
37
  private readonly externalSessionPersistence;
38
+ private readonly artifactService;
37
39
  private static readonly SNAPSHOT_CHECKPOINT_MS;
38
40
  private static readonly HEARTBEAT_THROTTLE_MS;
39
- constructor(eventBus: EventBus, teamReconciler?: TeamReconcilerService);
41
+ constructor(eventBus: EventBus, teamReconciler?: TeamReconcilerService, runtimeRegistry?: RuntimeRegistry);
40
42
  findById(id: string): Promise<({
41
43
  workspace: {
42
44
  id: string;
43
45
  createdAt: Date;
44
46
  updatedAt: Date;
47
+ workingDir: string;
45
48
  status: string;
46
49
  taskId: string;
50
+ branchName: string;
51
+ worktreePath: string;
47
52
  parentWorkspaceId: string | null;
48
53
  ownerMemberId: string | null;
49
- branchName: string;
50
54
  baseBranch: string | null;
51
- worktreePath: string;
52
55
  workspaceKind: string;
53
- workingDir: string;
54
56
  commitMessage: string | null;
55
57
  previewTarget: string | null;
56
58
  hibernatedAt: Date | null;
@@ -59,9 +61,9 @@ export declare class SessionManager {
59
61
  id: string;
60
62
  createdAt: Date;
61
63
  updatedAt: Date;
64
+ workingDir: string;
62
65
  title: string;
63
66
  deletedAt: Date | null;
64
- workingDir: string;
65
67
  directoryName: string;
66
68
  lastActiveAt: Date;
67
69
  } | null;
@@ -77,12 +79,12 @@ export declare class SessionManager {
77
79
  id: string;
78
80
  createdAt: Date;
79
81
  updatedAt: Date;
82
+ agentType: string;
83
+ runtimeType: string;
80
84
  status: string;
81
85
  workspaceId: string | null;
82
86
  conversationId: string | null;
83
87
  context: string;
84
- agentType: string;
85
- runtimeType: string;
86
88
  externalSessionId: string | null;
87
89
  variant: string;
88
90
  providerId: string | null;
@@ -97,12 +99,12 @@ export declare class SessionManager {
97
99
  id: string;
98
100
  createdAt: Date;
99
101
  updatedAt: Date;
102
+ agentType: string;
103
+ runtimeType: string;
100
104
  status: string;
101
105
  workspaceId: string | null;
102
106
  conversationId: string | null;
103
107
  context: string;
104
- agentType: string;
105
- runtimeType: string;
106
108
  externalSessionId: string | null;
107
109
  variant: string;
108
110
  providerId: string | null;
@@ -118,9 +120,9 @@ export declare class SessionManager {
118
120
  description: string | null;
119
121
  createdAt: Date;
120
122
  updatedAt: Date;
121
- title: string;
122
123
  status: string;
123
124
  priority: number;
125
+ title: string;
124
126
  position: number;
125
127
  projectId: string;
126
128
  deletedAt: Date | null;
@@ -129,15 +131,15 @@ export declare class SessionManager {
129
131
  id: string;
130
132
  createdAt: Date;
131
133
  updatedAt: Date;
134
+ workingDir: string;
132
135
  status: string;
133
136
  taskId: string;
137
+ branchName: string;
138
+ worktreePath: string;
134
139
  parentWorkspaceId: string | null;
135
140
  ownerMemberId: string | null;
136
- branchName: string;
137
141
  baseBranch: string | null;
138
- worktreePath: string;
139
142
  workspaceKind: string;
140
- workingDir: string;
141
143
  commitMessage: string | null;
142
144
  previewTarget: string | null;
143
145
  hibernatedAt: Date | null;
@@ -146,9 +148,9 @@ export declare class SessionManager {
146
148
  id: string;
147
149
  createdAt: Date;
148
150
  updatedAt: Date;
151
+ workingDir: string;
149
152
  title: string;
150
153
  deletedAt: Date | null;
151
- workingDir: string;
152
154
  directoryName: string;
153
155
  lastActiveAt: Date;
154
156
  } | null;
@@ -156,12 +158,12 @@ export declare class SessionManager {
156
158
  id: string;
157
159
  createdAt: Date;
158
160
  updatedAt: Date;
161
+ agentType: string;
162
+ runtimeType: string;
159
163
  status: string;
160
164
  workspaceId: string | null;
161
165
  conversationId: string | null;
162
166
  context: string;
163
- agentType: string;
164
- runtimeType: string;
165
167
  externalSessionId: string | null;
166
168
  variant: string;
167
169
  providerId: string | null;
@@ -177,9 +179,9 @@ export declare class SessionManager {
177
179
  description: string | null;
178
180
  createdAt: Date;
179
181
  updatedAt: Date;
180
- title: string;
181
182
  status: string;
182
183
  priority: number;
184
+ title: string;
183
185
  position: number;
184
186
  projectId: string;
185
187
  deletedAt: Date | null;
@@ -188,15 +190,15 @@ export declare class SessionManager {
188
190
  id: string;
189
191
  createdAt: Date;
190
192
  updatedAt: Date;
193
+ workingDir: string;
191
194
  status: string;
192
195
  taskId: string;
196
+ branchName: string;
197
+ worktreePath: string;
193
198
  parentWorkspaceId: string | null;
194
199
  ownerMemberId: string | null;
195
- branchName: string;
196
200
  baseBranch: string | null;
197
- worktreePath: string;
198
201
  workspaceKind: string;
199
- workingDir: string;
200
202
  commitMessage: string | null;
201
203
  previewTarget: string | null;
202
204
  hibernatedAt: Date | null;
@@ -205,9 +207,9 @@ export declare class SessionManager {
205
207
  id: string;
206
208
  createdAt: Date;
207
209
  updatedAt: Date;
210
+ workingDir: string;
208
211
  title: string;
209
212
  deletedAt: Date | null;
210
- workingDir: string;
211
213
  directoryName: string;
212
214
  lastActiveAt: Date;
213
215
  } | null;
@@ -215,12 +217,12 @@ export declare class SessionManager {
215
217
  id: string;
216
218
  createdAt: Date;
217
219
  updatedAt: Date;
220
+ agentType: string;
221
+ runtimeType: string;
218
222
  status: string;
219
223
  workspaceId: string | null;
220
224
  conversationId: string | null;
221
225
  context: string;
222
- agentType: string;
223
- runtimeType: string;
224
226
  externalSessionId: string | null;
225
227
  variant: string;
226
228
  providerId: string | null;
@@ -236,9 +238,9 @@ export declare class SessionManager {
236
238
  description: string | null;
237
239
  createdAt: Date;
238
240
  updatedAt: Date;
239
- title: string;
240
241
  status: string;
241
242
  priority: number;
243
+ title: string;
242
244
  position: number;
243
245
  projectId: string;
244
246
  deletedAt: Date | null;
@@ -247,15 +249,15 @@ export declare class SessionManager {
247
249
  id: string;
248
250
  createdAt: Date;
249
251
  updatedAt: Date;
252
+ workingDir: string;
250
253
  status: string;
251
254
  taskId: string;
255
+ branchName: string;
256
+ worktreePath: string;
252
257
  parentWorkspaceId: string | null;
253
258
  ownerMemberId: string | null;
254
- branchName: string;
255
259
  baseBranch: string | null;
256
- worktreePath: string;
257
260
  workspaceKind: string;
258
- workingDir: string;
259
261
  commitMessage: string | null;
260
262
  previewTarget: string | null;
261
263
  hibernatedAt: Date | null;
@@ -264,9 +266,9 @@ export declare class SessionManager {
264
266
  id: string;
265
267
  createdAt: Date;
266
268
  updatedAt: Date;
269
+ workingDir: string;
267
270
  title: string;
268
271
  deletedAt: Date | null;
269
- workingDir: string;
270
272
  directoryName: string;
271
273
  lastActiveAt: Date;
272
274
  } | null;
@@ -274,12 +276,12 @@ export declare class SessionManager {
274
276
  id: string;
275
277
  createdAt: Date;
276
278
  updatedAt: Date;
279
+ agentType: string;
280
+ runtimeType: string;
277
281
  status: string;
278
282
  workspaceId: string | null;
279
283
  conversationId: string | null;
280
284
  context: string;
281
- agentType: string;
282
- runtimeType: string;
283
285
  externalSessionId: string | null;
284
286
  variant: string;
285
287
  providerId: string | null;
@@ -292,12 +294,12 @@ export declare class SessionManager {
292
294
  id: string;
293
295
  createdAt: Date;
294
296
  updatedAt: Date;
297
+ agentType: string;
298
+ runtimeType: string;
295
299
  status: string;
296
300
  workspaceId: string | null;
297
301
  conversationId: string | null;
298
302
  context: string;
299
- agentType: string;
300
- runtimeType: string;
301
303
  externalSessionId: string | null;
302
304
  variant: string;
303
305
  providerId: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/services/session-manager.ts"],"names":[],"mappings":"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"}
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;AAsC7B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6H5D,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;IAiF9B,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"}
@@ -10,11 +10,14 @@ import { NotFoundError, ValidationError } from '../errors.js';
10
10
  import { ensureTaskNotDeleted } from './deleted-task-guard.js';
11
11
  import { getWorkspaceWorkingDir, isMainDirectoryWorkspace, } from './workspace-kind.js';
12
12
  import { writeErrorLog } from '../utils/error-log.js';
13
- import { INTERNAL_API_TOKEN_ENV, readInternalApiTokenFromEnv } from '../utils/internal-api-token.js';
13
+ import { AGENT_API_CREDENTIAL_ENV, clearAgentApiCredentials, createAgentApiCredential, revokeAgentApiCredential, } from '../utils/agent-api-credential.js';
14
14
  import { createHash } from 'node:crypto';
15
15
  import { RuntimeType, supportsAgentRuntime } from '@agent-tower/shared';
16
16
  import { getProviderRuntimeType } from '../executors/providers.js';
17
+ import { appendAgentOutputIntentInstructions } from '../prompts/agent-output-intents.js';
18
+ import { AgentArtifactService } from './agent-artifact.service.js';
17
19
  import { CliRuntimeDriver, AcpRuntimeDriver, RuntimeCoordinator, StaticRuntimeRegistry, setRuntimeStateSnapshot, } from '../runtime/index.js';
20
+ import { buildWorkspaceRuntimePrompt } from '../prompts/workspace-background-service-policy.js';
18
21
  const DEBUG_SNAPSHOT = process.env.DEBUG_SNAPSHOT === 'true';
19
22
  function hashForLog(value) {
20
23
  return createHash('sha256').update(value).digest('hex').slice(0, 12);
@@ -76,9 +79,10 @@ export class SessionManager {
76
79
  runtimeProcessIds = new Map();
77
80
  runtimePermissionStates = new Map();
78
81
  externalSessionPersistence = new Map();
82
+ artifactService = new AgentArtifactService();
79
83
  static SNAPSHOT_CHECKPOINT_MS = 15_000;
80
84
  static HEARTBEAT_THROTTLE_MS = 30_000;
81
- constructor(eventBus, teamReconciler) {
85
+ constructor(eventBus, teamReconciler, runtimeRegistry) {
82
86
  this.eventBus = eventBus;
83
87
  this.teamReconciler = teamReconciler ?? new TeamReconcilerService({
84
88
  eventBus,
@@ -87,13 +91,14 @@ export class SessionManager {
87
91
  // session 退出时的首次 reconcile(COMPLETED 判定 / 首次补催)仍即时执行,不依赖该定时器。
88
92
  scheduleReminders: false,
89
93
  });
90
- this.runtimeCoordinator = new RuntimeCoordinator(new StaticRuntimeRegistry([
94
+ this.runtimeCoordinator = new RuntimeCoordinator(runtimeRegistry ?? new StaticRuntimeRegistry([
91
95
  new CliRuntimeDriver(),
92
96
  new AcpRuntimeDriver(),
93
97
  ]), {
94
98
  onTurnEvent: (event) => this.handleRuntimeTurnEvent(event),
95
99
  onRuntimeState: (state) => this.handleRuntimeState(state),
96
100
  onProcessEvent: (event) => this.handleRuntimeProcessEvent(event),
101
+ onDriverSessionDisposed: (sessionId) => revokeAgentApiCredential(sessionId),
97
102
  });
98
103
  // Patches only mark the snapshot dirty. A low-frequency checkpoint keeps the
99
104
  // hot stream away from SQLite while terminal paths still force a final flush.
@@ -358,29 +363,26 @@ export class SessionManager {
358
363
  if (!options.skipTeamRunReconcile && !this.isConversationSession(session)) {
359
364
  await this.teamReconciler.handleSessionStopped(id);
360
365
  }
366
+ revokeAgentApiCredential(id);
361
367
  return session;
362
368
  }
363
369
  this.terminalSessions.set(id, SessionStatus.CANCELLED);
364
- const runtimeType = this.normalizeRuntimeType(session.runtimeType);
365
- if (runtimeType === RuntimeType.ACP && hasActiveTurn) {
366
- const canReuseDriverSession = await this.runtimeCoordinator.abandonTurn(id).catch((error) => {
370
+ if (this.normalizeRuntimeType(session.runtimeType) === RuntimeType.ACP && hasActiveTurn) {
371
+ await this.runtimeCoordinator.abandonTurn(id).catch((error) => {
367
372
  this.logSessionError('session.runtimeCancel', error, { sessionId: id });
368
373
  return false;
369
374
  });
370
- if (!canReuseDriverSession) {
371
- await this.runtimeCoordinator.disposeSession(id).catch((error) => {
372
- this.logSessionError('session.runtimeDispose', error, { sessionId: id });
373
- });
374
- }
375
375
  }
376
376
  else {
377
377
  await this.runtimeCoordinator.cancelTurn(id).catch((error) => {
378
378
  this.logSessionError('session.runtimeCancel', error, { sessionId: id });
379
379
  });
380
- await this.runtimeCoordinator.disposeSession(id).catch((error) => {
381
- this.logSessionError('session.runtimeDispose', error, { sessionId: id });
382
- });
383
380
  }
381
+ // Explicit stop revokes the DriverSession-bound workspace-service credential.
382
+ // A later follow-up reopens from the persisted external session id with a new credential.
383
+ await this.runtimeCoordinator.disposeSession(id).catch((error) => {
384
+ this.logSessionError('session.runtimeDispose', error, { sessionId: id });
385
+ });
384
386
  const msgStore = sessionMsgStoreManager.get(id);
385
387
  if (msgStore) {
386
388
  msgStore.pushFinished();
@@ -409,6 +411,7 @@ export class SessionManager {
409
411
  // store after the CANCELLED snapshot has been persisted above.
410
412
  sessionMsgStoreManager.delete(id);
411
413
  this.releaseSnapshotPersistenceState(id);
414
+ revokeAgentApiCredential(id);
412
415
  return session;
413
416
  }
414
417
  /** @deprecated Use hasActiveTurn(). */
@@ -459,6 +462,7 @@ export class SessionManager {
459
462
  release();
460
463
  this.followUpReservationReleases.clear();
461
464
  this.followUpReservations.clear();
465
+ clearAgentApiCredentials();
462
466
  }
463
467
  resolveAgentSessionId(sessionId, logSnapshot) {
464
468
  const msgStore = sessionMsgStoreManager.get(sessionId);
@@ -488,10 +492,10 @@ export class SessionManager {
488
492
  env.merge(filterAgentSubprocessExternalEnv(provider.env));
489
493
  }
490
494
  }
491
- this.injectAgentTowerMcpServiceEnv(env);
492
495
  if (!this.isConversationSession(session)) {
493
496
  await this.injectTeamRunInvocationEnv(session.id, env);
494
497
  }
498
+ this.injectAgentTowerMcpServiceEnv(session.id, env);
495
499
  const isNewStore = !sessionMsgStoreManager.has(session.id);
496
500
  const msgStore = sessionMsgStoreManager.getOrCreate(session.id);
497
501
  if (isNewStore && session.logSnapshot) {
@@ -510,6 +514,7 @@ export class SessionManager {
510
514
  where: { id: session.id },
511
515
  data: { status: SessionStatus.RUNNING },
512
516
  });
517
+ const runtimePrompt = buildWorkspaceRuntimePrompt(session, prompt);
513
518
  const handle = await this.runtimeCoordinator.startTurn({
514
519
  towerSessionId: session.id,
515
520
  agentType: session.agentType,
@@ -520,7 +525,9 @@ export class SessionManager {
520
525
  env,
521
526
  externalSessionId: session.externalSessionId,
522
527
  msgStore,
523
- prompt,
528
+ prompt: session.purpose === SessionPurpose.CHAT
529
+ ? appendAgentOutputIntentInstructions(runtimePrompt)
530
+ : runtimePrompt,
524
531
  resumeExternalSessionId,
525
532
  resumeMode,
526
533
  });
@@ -533,6 +540,7 @@ export class SessionManager {
533
540
  }
534
541
  catch (error) {
535
542
  await this.runtimeCoordinator.disposeSession(session.id).catch(() => undefined);
543
+ revokeAgentApiCredential(session.id);
536
544
  await prisma.session.update({
537
545
  where: { id: session.id },
538
546
  data: { status: SessionStatus.CANCELLED },
@@ -682,18 +690,20 @@ export class SessionManager {
682
690
  normalizeRuntimeType(value) {
683
691
  return value === RuntimeType.ACP ? RuntimeType.ACP : RuntimeType.CLI;
684
692
  }
685
- injectAgentTowerMcpServiceEnv(env) {
686
- const serviceEnv = {};
693
+ injectAgentTowerMcpServiceEnv(sessionId, env) {
694
+ const serviceEnv = {
695
+ AGENT_TOWER_SESSION_ID: sessionId,
696
+ };
697
+ serviceEnv[AGENT_API_CREDENTIAL_ENV] = createAgentApiCredential({
698
+ sessionId,
699
+ invocationId: env.get('AGENT_TOWER_INVOCATION_ID') ?? null,
700
+ });
687
701
  if (process.env.AGENT_TOWER_URL) {
688
702
  serviceEnv.AGENT_TOWER_URL = process.env.AGENT_TOWER_URL;
689
703
  }
690
704
  if (process.env.AGENT_TOWER_PORT) {
691
705
  serviceEnv.AGENT_TOWER_PORT = process.env.AGENT_TOWER_PORT;
692
706
  }
693
- const internalToken = readInternalApiTokenFromEnv();
694
- if (internalToken) {
695
- serviceEnv[INTERNAL_API_TOKEN_ENV] = internalToken;
696
- }
697
707
  if (Object.keys(serviceEnv).length > 0) {
698
708
  env.merge(serviceEnv);
699
709
  }
@@ -714,7 +724,6 @@ export class SessionManager {
714
724
  return;
715
725
  }
716
726
  env.merge({
717
- AGENT_TOWER_SESSION_ID: sessionId,
718
727
  AGENT_TOWER_INVOCATION_ID: invocation.id,
719
728
  AGENT_TOWER_TEAM_RUN_ID: invocation.teamRunId,
720
729
  AGENT_TOWER_MEMBER_ID: invocation.memberId,
@@ -1092,6 +1101,17 @@ export class SessionManager {
1092
1101
  metadata: { sessionId, exitCode },
1093
1102
  });
1094
1103
  }
1104
+ if (!isFailed && session?.purpose === SessionPurpose.CHAT && this.isCurrentGeneration(sessionId, generation)) {
1105
+ try {
1106
+ const result = await this.artifactService.publishDeclaredArtifacts(sessionId);
1107
+ if (result.failed > 0) {
1108
+ console.warn(`[SessionManager] Failed to publish ${result.failed} declared artifact(s) for session ${sessionId}`);
1109
+ }
1110
+ }
1111
+ catch (error) {
1112
+ console.warn(`[SessionManager] Failed to publish declared artifacts for session ${sessionId}:`, error instanceof Error ? error.message : error);
1113
+ }
1114
+ }
1095
1115
  if (session?.context === SessionContext.CONVERSATION || session?.conversationId) {
1096
1116
  this.releaseAutoCommitGate(sessionId);
1097
1117
  if (!options.logicalCompletion) {