agent-tower 0.7.4-beta.2 → 0.7.5-beta.5

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 (345) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +6 -1
  3. package/dist/app.js.map +1 -1
  4. package/dist/core/container.d.ts +2 -0
  5. package/dist/core/container.d.ts.map +1 -1
  6. package/dist/core/container.js +25 -0
  7. package/dist/core/container.js.map +1 -1
  8. package/dist/executors/__tests__/base.executor.test.js +19 -0
  9. package/dist/executors/__tests__/base.executor.test.js.map +1 -1
  10. package/dist/executors/__tests__/claude-code-mcp.test.d.ts +2 -0
  11. package/dist/executors/__tests__/claude-code-mcp.test.d.ts.map +1 -0
  12. package/dist/executors/__tests__/claude-code-mcp.test.js +211 -0
  13. package/dist/executors/__tests__/claude-code-mcp.test.js.map +1 -0
  14. package/dist/executors/base.executor.d.ts.map +1 -1
  15. package/dist/executors/base.executor.js +13 -0
  16. package/dist/executors/base.executor.js.map +1 -1
  17. package/dist/executors/claude-code.executor.d.ts +1 -0
  18. package/dist/executors/claude-code.executor.d.ts.map +1 -1
  19. package/dist/executors/claude-code.executor.js +52 -3
  20. package/dist/executors/claude-code.executor.js.map +1 -1
  21. package/dist/git/worktree.manager.d.ts.map +1 -1
  22. package/dist/git/worktree.manager.js +5 -2
  23. package/dist/git/worktree.manager.js.map +1 -1
  24. package/dist/mcp/http-client.d.ts +8 -1
  25. package/dist/mcp/http-client.d.ts.map +1 -1
  26. package/dist/mcp/http-client.js +6 -0
  27. package/dist/mcp/http-client.js.map +1 -1
  28. package/dist/mcp/tools/__tests__/workspace-services.test.js +34 -1
  29. package/dist/mcp/tools/__tests__/workspace-services.test.js.map +1 -1
  30. package/dist/mcp/tools/tasks.js +1 -1
  31. package/dist/mcp/tools/tasks.js.map +1 -1
  32. package/dist/mcp/tools/workspace-services.d.ts.map +1 -1
  33. package/dist/mcp/tools/workspace-services.js +39 -2
  34. package/dist/mcp/tools/workspace-services.js.map +1 -1
  35. package/dist/mcp/types.d.ts +20 -0
  36. package/dist/mcp/types.d.ts.map +1 -1
  37. package/dist/mcp/types.js +12 -0
  38. package/dist/mcp/types.js.map +1 -1
  39. package/dist/middleware/__tests__/preview-fallback.test.d.ts +2 -0
  40. package/dist/middleware/__tests__/preview-fallback.test.d.ts.map +1 -0
  41. package/dist/middleware/__tests__/preview-fallback.test.js +93 -0
  42. package/dist/middleware/__tests__/preview-fallback.test.js.map +1 -0
  43. package/dist/middleware/preview-fallback.d.ts +5 -0
  44. package/dist/middleware/preview-fallback.d.ts.map +1 -0
  45. package/dist/middleware/preview-fallback.js +91 -0
  46. package/dist/middleware/preview-fallback.js.map +1 -0
  47. package/dist/output/__tests__/claude-code-parser-continuation.test.d.ts +2 -0
  48. package/dist/output/__tests__/claude-code-parser-continuation.test.d.ts.map +1 -0
  49. package/dist/output/__tests__/claude-code-parser-continuation.test.js +89 -0
  50. package/dist/output/__tests__/claude-code-parser-continuation.test.js.map +1 -0
  51. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js +4 -1
  52. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js.map +1 -1
  53. package/dist/output/claude-code-parser.d.ts +36 -1
  54. package/dist/output/claude-code-parser.d.ts.map +1 -1
  55. package/dist/output/claude-code-parser.js +149 -18
  56. package/dist/output/claude-code-parser.js.map +1 -1
  57. package/dist/output/types.d.ts +2 -0
  58. package/dist/output/types.d.ts.map +1 -1
  59. package/dist/output/types.js.map +1 -1
  60. package/dist/prompts/workspace-background-service-policy.d.ts +6 -2
  61. package/dist/prompts/workspace-background-service-policy.d.ts.map +1 -1
  62. package/dist/prompts/workspace-background-service-policy.js +12 -3
  63. package/dist/prompts/workspace-background-service-policy.js.map +1 -1
  64. package/dist/prompts/workspace-background-service-policy.test.js +11 -0
  65. package/dist/prompts/workspace-background-service-policy.test.js.map +1 -1
  66. package/dist/routes/__tests__/previews.integration.test.js +117 -6
  67. package/dist/routes/__tests__/previews.integration.test.js.map +1 -1
  68. package/dist/routes/__tests__/previews.test.js +223 -194
  69. package/dist/routes/__tests__/previews.test.js.map +1 -1
  70. package/dist/routes/__tests__/task-handoff.test.js +25 -16
  71. package/dist/routes/__tests__/task-handoff.test.js.map +1 -1
  72. package/dist/routes/index.d.ts.map +1 -1
  73. package/dist/routes/index.js +3 -0
  74. package/dist/routes/index.js.map +1 -1
  75. package/dist/routes/previews.d.ts +11 -9
  76. package/dist/routes/previews.d.ts.map +1 -1
  77. package/dist/routes/previews.js +137 -516
  78. package/dist/routes/previews.js.map +1 -1
  79. package/dist/routes/session-wakeups.d.ts +7 -0
  80. package/dist/routes/session-wakeups.d.ts.map +1 -0
  81. package/dist/routes/session-wakeups.js +86 -0
  82. package/dist/routes/session-wakeups.js.map +1 -0
  83. package/dist/routes/tasks.d.ts.map +1 -1
  84. package/dist/routes/tasks.js +3 -1
  85. package/dist/routes/tasks.js.map +1 -1
  86. package/dist/runtime/__tests__/claude-cli-driver.test.js +96 -2
  87. package/dist/runtime/__tests__/claude-cli-driver.test.js.map +1 -1
  88. package/dist/runtime/__tests__/claude-run-lifecycle.test.d.ts +2 -0
  89. package/dist/runtime/__tests__/claude-run-lifecycle.test.d.ts.map +1 -0
  90. package/dist/runtime/__tests__/claude-run-lifecycle.test.js +88 -0
  91. package/dist/runtime/__tests__/claude-run-lifecycle.test.js.map +1 -0
  92. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js +14 -7
  93. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js.map +1 -1
  94. package/dist/runtime/claude-run-lifecycle.d.ts +77 -0
  95. package/dist/runtime/claude-run-lifecycle.d.ts.map +1 -0
  96. package/dist/runtime/claude-run-lifecycle.js +147 -0
  97. package/dist/runtime/claude-run-lifecycle.js.map +1 -0
  98. package/dist/runtime/cli-driver.d.ts.map +1 -1
  99. package/dist/runtime/cli-driver.js +89 -3
  100. package/dist/runtime/cli-driver.js.map +1 -1
  101. package/dist/runtime/contracts.d.ts +6 -1
  102. package/dist/runtime/contracts.d.ts.map +1 -1
  103. package/dist/runtime/process-scope/__tests__/process-scope.test.d.ts +2 -0
  104. package/dist/runtime/process-scope/__tests__/process-scope.test.d.ts.map +1 -0
  105. package/dist/runtime/process-scope/__tests__/process-scope.test.js +156 -0
  106. package/dist/runtime/process-scope/__tests__/process-scope.test.js.map +1 -0
  107. package/dist/runtime/process-scope/process-scope.d.ts +46 -0
  108. package/dist/runtime/process-scope/process-scope.d.ts.map +1 -0
  109. package/dist/runtime/process-scope/process-scope.js +68 -0
  110. package/dist/runtime/process-scope/process-scope.js.map +1 -0
  111. package/dist/runtime/process-scope/scope-helper.d.ts +28 -0
  112. package/dist/runtime/process-scope/scope-helper.d.ts.map +1 -0
  113. package/dist/runtime/process-scope/scope-helper.js +78 -0
  114. package/dist/runtime/process-scope/scope-helper.js.map +1 -0
  115. package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
  116. package/dist/runtime/runtime-coordinator.js +6 -0
  117. package/dist/runtime/runtime-coordinator.js.map +1 -1
  118. package/dist/services/__tests__/preview-runtime-manager.test.js +13 -112
  119. package/dist/services/__tests__/preview-runtime-manager.test.js.map +1 -1
  120. package/dist/services/__tests__/preview.service.test.js +13 -14
  121. package/dist/services/__tests__/preview.service.test.js.map +1 -1
  122. package/dist/services/__tests__/session-manager.lifecycle.test.js +147 -1
  123. package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
  124. package/dist/services/__tests__/session-wakeup.service.test.d.ts +2 -0
  125. package/dist/services/__tests__/session-wakeup.service.test.d.ts.map +1 -0
  126. package/dist/services/__tests__/session-wakeup.service.test.js +173 -0
  127. package/dist/services/__tests__/session-wakeup.service.test.js.map +1 -0
  128. package/dist/services/__tests__/terminal-manager.test.js +129 -51
  129. package/dist/services/__tests__/terminal-manager.test.js.map +1 -1
  130. package/dist/services/message-delivery.service.d.ts +3 -2
  131. package/dist/services/message-delivery.service.d.ts.map +1 -1
  132. package/dist/services/message-delivery.service.js +11 -7
  133. package/dist/services/message-delivery.service.js.map +1 -1
  134. package/dist/services/preview-bridge.d.ts +50 -0
  135. package/dist/services/preview-bridge.d.ts.map +1 -0
  136. package/dist/services/preview-bridge.js +537 -0
  137. package/dist/services/preview-bridge.js.map +1 -0
  138. package/dist/services/preview-cookies.d.ts +28 -0
  139. package/dist/services/preview-cookies.d.ts.map +1 -0
  140. package/dist/services/preview-cookies.js +133 -0
  141. package/dist/services/preview-cookies.js.map +1 -0
  142. package/dist/services/preview-proxy.d.ts +71 -0
  143. package/dist/services/preview-proxy.d.ts.map +1 -0
  144. package/dist/services/preview-proxy.js +462 -0
  145. package/dist/services/preview-proxy.js.map +1 -0
  146. package/dist/services/preview-runtime-manager.d.ts +11 -25
  147. package/dist/services/preview-runtime-manager.d.ts.map +1 -1
  148. package/dist/services/preview-runtime-manager.js +46 -363
  149. package/dist/services/preview-runtime-manager.js.map +1 -1
  150. package/dist/services/preview.service.d.ts.map +1 -1
  151. package/dist/services/preview.service.js +11 -9
  152. package/dist/services/preview.service.js.map +1 -1
  153. package/dist/services/project.service.d.ts +13 -13
  154. package/dist/services/session-manager.d.ts +2 -0
  155. package/dist/services/session-manager.d.ts.map +1 -1
  156. package/dist/services/session-manager.js +4 -2
  157. package/dist/services/session-manager.js.map +1 -1
  158. package/dist/services/session-wakeup.service.d.ts +105 -0
  159. package/dist/services/session-wakeup.service.d.ts.map +1 -0
  160. package/dist/services/session-wakeup.service.js +319 -0
  161. package/dist/services/session-wakeup.service.js.map +1 -0
  162. package/dist/services/task-handoff.service.d.ts +3 -2
  163. package/dist/services/task-handoff.service.d.ts.map +1 -1
  164. package/dist/services/task-handoff.service.js +7 -6
  165. package/dist/services/task-handoff.service.js.map +1 -1
  166. package/dist/services/team-room-delivery.d.ts +4 -4
  167. package/dist/services/terminal-manager.d.ts +16 -0
  168. package/dist/services/terminal-manager.d.ts.map +1 -1
  169. package/dist/services/terminal-manager.js +64 -7
  170. package/dist/services/terminal-manager.js.map +1 -1
  171. package/dist/services/workspace-background-service.service.d.ts +15 -1
  172. package/dist/services/workspace-background-service.service.d.ts.map +1 -1
  173. package/dist/services/workspace-background-service.service.js +41 -2
  174. package/dist/services/workspace-background-service.service.js.map +1 -1
  175. package/dist/utils/database-schema.d.ts.map +1 -1
  176. package/dist/utils/database-schema.js +9 -4
  177. package/dist/utils/database-schema.js.map +1 -1
  178. package/dist/utils/database-schema.test.js +21 -0
  179. package/dist/utils/database-schema.test.js.map +1 -1
  180. package/dist/utils/owned-child-process.d.ts +32 -3
  181. package/dist/utils/owned-child-process.d.ts.map +1 -1
  182. package/dist/utils/owned-child-process.js +138 -1
  183. package/dist/utils/owned-child-process.js.map +1 -1
  184. package/dist/web/assets/{AgentDemoPage-CrkoVCOZ.js → AgentDemoPage-D6clLNZx.js} +1 -1
  185. package/dist/web/assets/{AgentEnvironmentSettingsPage-BRihy3_Q.js → AgentEnvironmentSettingsPage-O1hlpsgp.js} +1 -1
  186. package/dist/web/assets/AttachmentPreview-hD3g_T_y.js +2 -0
  187. package/dist/web/assets/{BranchSelect-Bo5uhKCt.js → BranchSelect-BkuXnEG2.js} +1 -1
  188. package/dist/web/assets/{BrandLogo-DEL42B23.js → BrandLogo-BSwQa2SF.js} +1 -1
  189. package/dist/web/assets/{ConversationPage-C46RuN9U.js → ConversationPage-DvWjqFF2.js} +1 -1
  190. package/dist/web/assets/CreateTaskInput-Bric0GeW.js +1 -0
  191. package/dist/web/assets/{DemoPage-CAZqNag-.js → DemoPage-Cwy3EmOm.js} +1 -1
  192. package/dist/web/assets/{DesignSystemPage-CjCYC24B.js → DesignSystemPage-C1HrGwpV.js} +1 -1
  193. package/dist/web/assets/{ExecutionPermissionSelector-CJgc_EVo.js → ExecutionPermissionSelector-BgrxbvBB.js} +1 -1
  194. package/dist/web/assets/{GeneralSettingsPage-DFT7Cubi.js → GeneralSettingsPage-qdeAdBkW.js} +1 -1
  195. package/dist/web/assets/{LoadingPreviewPage-CB4VDPAZ.js → LoadingPreviewPage-qeZ8nuiQ.js} +1 -1
  196. package/dist/web/assets/{McpSettingsPage-CgiyGvkH.js → McpSettingsPage-Bo-auo0X.js} +1 -1
  197. package/dist/web/assets/{MemberAvatar-Cfz8LU6k.js → MemberAvatar-DBab_9EO.js} +1 -1
  198. package/dist/web/assets/{MobileTaskDetail-yZNyZMQt.js → MobileTaskDetail-Dm64ie99.js} +2 -2
  199. package/dist/web/assets/{NotificationSettingsPage-BSMJ45yx.js → NotificationSettingsPage-BVJpo76k.js} +1 -1
  200. package/dist/web/assets/{ProfileSettingsPage-BwNThOnH.js → ProfileSettingsPage-CbSRYGcp.js} +1 -1
  201. package/dist/web/assets/{ProjectKanbanPage-DtZW0bOh.js → ProjectKanbanPage-Cp3rdFik.js} +6 -6
  202. package/dist/web/assets/{ProjectSettingsPage-CMBMkbgI.js → ProjectSettingsPage-DLs5-Gk3.js} +1 -1
  203. package/dist/web/assets/{ProviderSettingsPage-D759BSRa.js → ProviderSettingsPage-BnBcgAMQ.js} +1 -1
  204. package/dist/web/assets/{SettingsMasterDetail-DpYUTM-Q.js → SettingsMasterDetail-fu-_yejj.js} +1 -1
  205. package/dist/web/assets/{TaskDetail-rRHGOvSw.js → TaskDetail-C2_Fg59e.js} +1 -1
  206. package/dist/web/assets/TaskHandoffPanel-3Y0gcjyN.js +70 -0
  207. package/dist/web/assets/{TeamSettingsPage-BszQfKp0.js → TeamSettingsPage-CAjitaBe.js} +1 -1
  208. package/dist/web/assets/{TranslationSettingsPage-lLaxWCy3.js → TranslationSettingsPage-DKD6Uw2F.js} +1 -1
  209. package/dist/web/assets/{arc-DtgXFw4D.js → arc-BiuUFTzU.js} +1 -1
  210. package/dist/web/assets/{architectureDiagram-3BPJPVTR-B3p3EMX1.js → architectureDiagram-3BPJPVTR-Dcwk905A.js} +1 -1
  211. package/dist/web/assets/{at-sign-B8rXgKEE.js → at-sign-CZAKOH3i.js} +1 -1
  212. package/dist/web/assets/{blockDiagram-GPEHLZMM-BmekCfr0.js → blockDiagram-GPEHLZMM-Cfc5JDN-.js} +1 -1
  213. package/dist/web/assets/{c4Diagram-AAUBKEIU-CF6hJhuL.js → c4Diagram-AAUBKEIU-B4v5PUdt.js} +1 -1
  214. package/dist/web/assets/channel-DThSYkmR.js +1 -0
  215. package/dist/web/assets/check-C3vuSPKz.js +1 -0
  216. package/dist/web/assets/{chevron-down-Dftc5hr4.js → chevron-down-CtAk9uZw.js} +1 -1
  217. package/dist/web/assets/{chevron-up-CKRxN6zX.js → chevron-up-DAc3NX1J.js} +1 -1
  218. package/dist/web/assets/{chip-ZTBHcXU2.js → chip-CDUNxQW2.js} +1 -1
  219. package/dist/web/assets/{chunk-2J33WTMH-Bjelop4M.js → chunk-2J33WTMH-BYRdUeyt.js} +1 -1
  220. package/dist/web/assets/{chunk-4BX2VUAB-B1rJPbL6.js → chunk-4BX2VUAB-3si_kPmV.js} +1 -1
  221. package/dist/web/assets/{chunk-55IACEB6-B5qfH7Gj.js → chunk-55IACEB6-JiMm9u33.js} +1 -1
  222. package/dist/web/assets/{chunk-727SXJPM-ClFMbgrH.js → chunk-727SXJPM-CMCFIUyF.js} +1 -1
  223. package/dist/web/assets/{chunk-AQP2D5EJ-BMFjTO7B.js → chunk-AQP2D5EJ-CzvnZjH5.js} +1 -1
  224. package/dist/web/assets/{chunk-FMBD7UC4-Pr1oOFfR.js → chunk-FMBD7UC4-hsabZkPl.js} +1 -1
  225. package/dist/web/assets/{chunk-ND2GUHAM-BPm4TRpO.js → chunk-ND2GUHAM-D2o-Reeo.js} +1 -1
  226. package/dist/web/assets/{chunk-QZHKN3VN-DCPA_U0M.js → chunk-QZHKN3VN-ASJk-E7d.js} +1 -1
  227. package/dist/web/assets/classDiagram-4FO5ZUOK-CjJqgIpK.js +1 -0
  228. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CjJqgIpK.js +1 -0
  229. package/dist/web/assets/{code-block-OCS4YCEC-Cx53F4d7.js → code-block-OCS4YCEC-5bkFBowa.js} +1 -1
  230. package/dist/web/assets/{confirm-dialog-C_j-w4TS.js → confirm-dialog-Bs80kXB9.js} +1 -1
  231. package/dist/web/assets/{content-DeIfej_n.js → content-DAccroCT.js} +1 -1
  232. package/dist/web/assets/{copy-B-BaLIlh.js → copy-D1XK3OqK.js} +1 -1
  233. package/dist/web/assets/{cose-bilkent-S5V4N54A-gIys-0yu.js → cose-bilkent-S5V4N54A-C52UKnOd.js} +1 -1
  234. package/dist/web/assets/{cssMode-xF0bjbbU.js → cssMode-BFq_c5xU.js} +1 -1
  235. package/dist/web/assets/{dagre-BM42HDAG-Bwc3Ntc-.js → dagre-BM42HDAG-CeEute93.js} +1 -1
  236. package/dist/web/assets/{diagram-2AECGRRQ-zkydBsMT.js → diagram-2AECGRRQ-CEcq4W4S.js} +1 -1
  237. package/dist/web/assets/{diagram-5GNKFQAL-p9As3QtI.js → diagram-5GNKFQAL-DqQe7Rr7.js} +1 -1
  238. package/dist/web/assets/{diagram-KO2AKTUF-N_pUU-iU.js → diagram-KO2AKTUF-C1KVZphS.js} +1 -1
  239. package/dist/web/assets/{diagram-LMA3HP47-CA2rl4Gq.js → diagram-LMA3HP47-D1BL7GQh.js} +1 -1
  240. package/dist/web/assets/{diagram-OG6HWLK6-BoXxBlUC.js → diagram-OG6HWLK6-ngyXooqC.js} +1 -1
  241. package/dist/web/assets/{dialog-CnjWIdWp.js → dialog-XkZ8wMQa.js} +1 -1
  242. package/dist/web/assets/{erDiagram-TEJ5UH35-CVBHQTCN.js → erDiagram-TEJ5UH35-D1zIFVqE.js} +1 -1
  243. package/dist/web/assets/{file-jMLGlXos.js → file-CXCll7Pm.js} +1 -1
  244. package/dist/web/assets/{flowDiagram-I6XJVG4X-kK7iKiAv.js → flowDiagram-I6XJVG4X-BZu49qcj.js} +1 -1
  245. package/dist/web/assets/{folder-picker-CR8LiSQf.js → folder-picker-CVkaEJEL.js} +1 -1
  246. package/dist/web/assets/{freemarker2-CTMcTiBd.js → freemarker2-CmhadAeB.js} +1 -1
  247. package/dist/web/assets/{ganttDiagram-6RSMTGT7-CJVvLTkW.js → ganttDiagram-6RSMTGT7-eJ8yBxfS.js} +1 -1
  248. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-D8uj_SCw.js → gitGraphDiagram-PVQCEYII-DpeUUyH_.js} +1 -1
  249. package/dist/web/assets/{globe-FFVKce9-.js → globe-WnxN1JzY.js} +1 -1
  250. package/dist/web/assets/{handlebars-NHxbmOs3.js → handlebars-DtjmH1qR.js} +1 -1
  251. package/dist/web/assets/{html-oFqzz32q.js → html-DOYAlzlD.js} +1 -1
  252. package/dist/web/assets/{htmlMode-sgeetciK.js → htmlMode-ORxd7KRN.js} +1 -1
  253. package/dist/web/assets/{index-biTPUXAe.js → index-6mINSZng.js} +1 -1
  254. package/dist/web/assets/{index-C5lNOKJb.js → index-BrjvxKaf.js} +1 -1
  255. package/dist/web/assets/{index-CwfWGzxi.js → index-CqIyOiVN.js} +4 -4
  256. package/dist/web/assets/{index-D8TNxwWk.js → index-D9w1zMaz.js} +1 -1
  257. package/dist/web/assets/{index-Cm_7q6ju.js → index-DHDgbH3t.js} +1 -1
  258. package/dist/web/assets/{index-9KNEuwGB.js → index-Dz9SKopM.js} +13 -13
  259. package/dist/web/assets/{index-gqrRO6ZJ.js → index-eIXz5Hbk.js} +1 -1
  260. package/dist/web/assets/{index-BzqyZD7L.js → index-iOIxdF6J.js} +1 -1
  261. package/dist/web/assets/{index-C9vIrQ3Q.js → index-wbMiSmsY.js} +1 -1
  262. package/dist/web/assets/{infoDiagram-5YYISTIA-CExRZE3Y.js → infoDiagram-5YYISTIA-BiVrC__7.js} +1 -1
  263. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-CsqM2X33.js → ishikawaDiagram-YF4QCWOH-B1kPjO1J.js} +1 -1
  264. package/dist/web/assets/javascript-CHlWHrtz.js +1 -0
  265. package/dist/web/assets/{journeyDiagram-JHISSGLW-DX9OMhPD.js → journeyDiagram-JHISSGLW-DoTAPPAQ.js} +1 -1
  266. package/dist/web/assets/{jsonMode-VQg5cpLV.js → jsonMode-BkeQ_C6g.js} +1 -1
  267. package/dist/web/assets/{kanban-definition-UN3LZRKU-CWHMx6vc.js → kanban-definition-UN3LZRKU-CBRmLcce.js} +1 -1
  268. package/dist/web/assets/{kbd-GGofKfKu.js → kbd-CTfS0G5-.js} +1 -1
  269. package/dist/web/assets/{key-round-p-Fpykfj.js → key-round-B7gTfpDR.js} +1 -1
  270. package/dist/web/assets/{layers-pbPa_eZq.js → layers-DE0xXedq.js} +1 -1
  271. package/dist/web/assets/{linear-9VwGhaEA.js → linear-VLiA8Vcw.js} +1 -1
  272. package/dist/web/assets/{link-CG4UwIS1.js → link-BSE_nRDT.js} +1 -1
  273. package/dist/web/assets/{liquid-SJInUaiB.js → liquid-BZeg6p1K.js} +1 -1
  274. package/dist/web/assets/{lspLanguageFeatures-DJOdVyBc.js → lspLanguageFeatures-CuFQ2_f9.js} +1 -1
  275. package/dist/web/assets/{mdx-CToYr-3b.js → mdx-C7xLyFFX.js} +1 -1
  276. package/dist/web/assets/{menu-BFQ1mKU7.js → menu-Dp4RDxvP.js} +1 -1
  277. package/dist/web/assets/{mermaid-NOHMQCX5-BOViobLk.js → mermaid-NOHMQCX5-C2enCJxR.js} +56 -56
  278. package/dist/web/assets/{message-square-BYZsUsLz.js → message-square-4lyHjyHe.js} +1 -1
  279. package/dist/web/assets/{mindmap-definition-RKZ34NQL-BTcDnn6X.js → mindmap-definition-RKZ34NQL-C1OOtqma.js} +1 -1
  280. package/dist/web/assets/{modal-BT_7Lhtw.js → modal-BGglpgrR.js} +1 -1
  281. package/dist/web/assets/{monaco-DUftz48_.js → monaco-B-6VmJO0.js} +3 -3
  282. package/dist/web/assets/{nav-row-BjDckaPC.js → nav-row-DaR8yP7p.js} +1 -1
  283. package/dist/web/assets/{paperclip-CFAH5neE.js → paperclip-DORF2rEM.js} +1 -1
  284. package/dist/web/assets/{pencil-Bg9TWm_-.js → pencil-BG033B74.js} +1 -1
  285. package/dist/web/assets/{people-BIQwajM2.js → people-1qyKeYq6.js} +1 -1
  286. package/dist/web/assets/{pieDiagram-4H26LBE5-CRjqdnP8.js → pieDiagram-4H26LBE5-BYYFVqOS.js} +1 -1
  287. package/dist/web/assets/{popover-DpYhrrCE.js → popover-CvjMbMb4.js} +1 -1
  288. package/dist/web/assets/{python-DbmUucgH.js → python-TTfnYnjF.js} +1 -1
  289. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-uvA8TYC6.js → quadrantDiagram-W4KKPZXB-DTllM2j9.js} +1 -1
  290. package/dist/web/assets/{razor-B0AJhw7W.js → razor-BFVXAHVd.js} +1 -1
  291. package/dist/web/assets/{requirementDiagram-4Y6WPE33-BWLugaKX.js → requirementDiagram-4Y6WPE33-DeJDRYUP.js} +1 -1
  292. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-DHrbZZv8.js → sankeyDiagram-5OEKKPKP-DzTvEKv8.js} +1 -1
  293. package/dist/web/assets/{search-BH8nze-X.js → search-DDRcBORc.js} +1 -1
  294. package/dist/web/assets/{select-BegY9RkP.js → select-CXC17bJx.js} +1 -1
  295. package/dist/web/assets/{select-EcEr5QSS.js → select-CzXL3ZbG.js} +1 -1
  296. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-CKwEKcTn.js → sequenceDiagram-3UESZ5HK-CIYrA1ww.js} +1 -1
  297. package/dist/web/assets/{server-BxEUjx0l.js → server-KqeWHfgr.js} +1 -1
  298. package/dist/web/assets/{stateDiagram-AJRCARHV-vhgmSpa9.js → stateDiagram-AJRCARHV-Dg_UXkEq.js} +1 -1
  299. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-Lc4r0bC3.js +1 -0
  300. package/dist/web/assets/{textarea-CvoGGROs.js → textarea-Cmbv5l35.js} +1 -1
  301. package/dist/web/assets/{timeline-definition-PNZ67QCA-bSDKcwDZ.js → timeline-definition-PNZ67QCA-CfSPMqxF.js} +1 -1
  302. package/dist/web/assets/{toggles-CEDUD08u.js → toggles-t5v4QKn6.js} +1 -1
  303. package/dist/web/assets/{tooltip-CKaUbVZ7.js → tooltip-Cp8tovqH.js} +1 -1
  304. package/dist/web/assets/{track-1qw2cvTy.js → track-C1rUV49K.js} +1 -1
  305. package/dist/web/assets/{trash-2-ChiXon87.js → trash-2-Ca2ken6q.js} +1 -1
  306. package/dist/web/assets/{tsMode-bnV8W2Ru.js → tsMode-DBbiXlyu.js} +1 -1
  307. package/dist/web/assets/{typescript-d1MHIeEx.js → typescript-jv_3P9x_.js} +1 -1
  308. package/dist/web/assets/{upload-CQ-cQaOz.js → upload-CgGjN1FH.js} +1 -1
  309. package/dist/web/assets/{use-profiles-CJzoqarX.js → use-profiles-BdL-U8GZ.js} +1 -1
  310. package/dist/web/assets/{use-providers-S29TCag2.js → use-providers-B6Mj5qeG.js} +1 -1
  311. package/dist/web/assets/{use-translation-settings-DifNJaCu.js → use-translation-settings-FIP674t9.js} +1 -1
  312. package/dist/web/assets/{useNormalizedLogs-BVdY8qDk.js → useNormalizedLogs-FpVMUHeq.js} +1 -1
  313. package/dist/web/assets/useTokenUsage-Ay3Yy0_V.js +1 -0
  314. package/dist/web/assets/{vennDiagram-CIIHVFJN-D7QbDYzC.js → vennDiagram-CIIHVFJN-DKREAIRT.js} +1 -1
  315. package/dist/web/assets/{wardley-L42UT6IY-C9aHlNVa.js → wardley-L42UT6IY-BMpDotAz.js} +1 -1
  316. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-CZhubDRC.js → wardleyDiagram-YWT4CUSO-DAPccQsF.js} +1 -1
  317. package/dist/web/assets/{xml-DAKKxHAr.js → xml-DnxIQwRS.js} +1 -1
  318. package/dist/web/assets/{xychartDiagram-2RQKCTM6-BgDlpFBh.js → xychartDiagram-2RQKCTM6-o06g8vo8.js} +1 -1
  319. package/dist/web/assets/{yaml-D_hSVVz0.js → yaml-BV5yQTRd.js} +1 -1
  320. package/dist/web/index.html +1 -1
  321. package/node_modules/@agent-tower/shared/dist/log-adapter.d.ts +4 -0
  322. package/node_modules/@agent-tower/shared/dist/log-adapter.d.ts.map +1 -1
  323. package/node_modules/@agent-tower/shared/dist/log-adapter.js +1 -0
  324. package/node_modules/@agent-tower/shared/dist/log-adapter.js.map +1 -1
  325. package/node_modules/@agent-tower/shared/dist/translation.d.ts +4 -1
  326. package/node_modules/@agent-tower/shared/dist/translation.d.ts.map +1 -1
  327. package/node_modules/@agent-tower/shared/dist/translation.js +4 -1
  328. package/node_modules/@agent-tower/shared/dist/translation.js.map +1 -1
  329. package/node_modules/@agent-tower/shared/dist/types.d.ts +38 -2
  330. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  331. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  332. package/package.json +2 -1
  333. package/prisma/migrations/20261106000000_add_session_wakeups/migration.sql +28 -0
  334. package/prisma/schema.prisma +28 -0
  335. package/scripts/postinstall.js +23 -0
  336. package/dist/web/assets/AttachmentPreview-B9z1Mxb-.js +0 -2
  337. package/dist/web/assets/CreateTaskInput-4aHJpsfL.js +0 -1
  338. package/dist/web/assets/TaskHandoffPanel-DBcC1xQW.js +0 -70
  339. package/dist/web/assets/channel-BdK_fAel.js +0 -1
  340. package/dist/web/assets/check-DwK55QS2.js +0 -1
  341. package/dist/web/assets/classDiagram-4FO5ZUOK-CFzCq0ml.js +0 -1
  342. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CFzCq0ml.js +0 -1
  343. package/dist/web/assets/javascript-COt-61wn.js +0 -1
  344. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-C0z5OTY4.js +0 -1
  345. package/dist/web/assets/useTokenUsage-nh_KDA3q.js +0 -1
@@ -0,0 +1,133 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { isAccessAuthCookieName } from './access-auth.service.js';
3
+ import { TUNNEL_SESSION_COOKIE_NAME } from '../utils/tunnel-cookie.js';
4
+ /**
5
+ * Cookie that remembers which workspace preview an embedded document belongs to.
6
+ * It lets the server route navigations that escaped the `/view/:workspaceId/`
7
+ * prefix (for example `location.reload()` from a virtualized SPA) back into
8
+ * the workspace proxy.
9
+ */
10
+ export const PREVIEW_CONTEXT_COOKIE_NAME = 'agent-tower-preview-context';
11
+ export function previewCookieScopeName(workspaceId) {
12
+ const suffix = createHash('sha256').update(workspaceId).digest('hex').slice(0, 16);
13
+ return `agent-tower-preview-${suffix}`;
14
+ }
15
+ export function isInternalCookieName(name) {
16
+ return name === TUNNEL_SESSION_COOKIE_NAME
17
+ || name === PREVIEW_CONTEXT_COOKIE_NAME
18
+ || isAccessAuthCookieName(name);
19
+ }
20
+ function scopedTargetCookieName(scopeName, targetCookieName) {
21
+ return `${scopeName}-target-${Buffer.from(targetCookieName).toString('base64url')}`;
22
+ }
23
+ function unscopedTargetCookieName(scopeName, cookieName) {
24
+ const prefix = `${scopeName}-target-`;
25
+ if (!cookieName.startsWith(prefix))
26
+ return null;
27
+ try {
28
+ const targetCookieName = Buffer.from(cookieName.slice(prefix.length), 'base64url').toString('utf8');
29
+ return isInternalCookieName(targetCookieName) ? targetCookieName : null;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ /**
36
+ * Build the Cookie header forwarded to the preview target: Agent Tower's own
37
+ * cookies never leave the server, the gateway/scope cookie is dropped, and
38
+ * target cookies that had to be renamed to avoid clashing with Agent Tower's
39
+ * cookies are restored to their original names.
40
+ */
41
+ export function filterTargetCookieHeader(cookieHeader, scopeName) {
42
+ if (!cookieHeader)
43
+ return undefined;
44
+ const cookies = [];
45
+ for (const rawPart of cookieHeader.split(';')) {
46
+ const part = rawPart.trim();
47
+ if (!part)
48
+ continue;
49
+ const separator = part.indexOf('=');
50
+ const name = separator === -1 ? part : part.slice(0, separator);
51
+ if (!name || name === scopeName)
52
+ continue;
53
+ const targetName = unscopedTargetCookieName(scopeName, name);
54
+ if (targetName) {
55
+ cookies.push(`${targetName}${separator === -1 ? '' : part.slice(separator)}`);
56
+ continue;
57
+ }
58
+ if (isInternalCookieName(name))
59
+ continue;
60
+ cookies.push(part);
61
+ }
62
+ return cookies.length > 0 ? cookies.join('; ') : undefined;
63
+ }
64
+ /**
65
+ * Rewrite a Set-Cookie header coming from the preview target so the browser
66
+ * stores it against the preview entry (gateway origin or Agent Tower origin).
67
+ */
68
+ export function rewriteTargetCookie(value, target, scopeName, secureEntry, options = {}) {
69
+ let next = value.replace(/;\s*domain=[^;]*/gi, '');
70
+ const separator = next.indexOf('=');
71
+ if (separator > 0) {
72
+ const cookieName = next.slice(0, separator).trim();
73
+ if (isInternalCookieName(cookieName)) {
74
+ next = `${scopedTargetCookieName(scopeName, cookieName)}${next.slice(separator)}`;
75
+ }
76
+ }
77
+ if (options.forceRootPath) {
78
+ next = /;\s*path=/i.test(next)
79
+ ? next.replace(/;\s*path=([^;]*)/i, '; Path=/')
80
+ : `${next}; Path=/`;
81
+ }
82
+ else if (target.basePath && /;\s*path=/i.test(next)) {
83
+ next = next.replace(/;\s*path=([^;]*)/i, (_match, rawPath) => {
84
+ const path = rawPath.trim();
85
+ if (path === target.basePath)
86
+ return '; Path=/';
87
+ if (path.startsWith(`${target.basePath}/`)) {
88
+ return `; Path=${path.slice(target.basePath.length) || '/'}`;
89
+ }
90
+ return `; Path=${path || '/'}`;
91
+ });
92
+ }
93
+ if (secureEntry) {
94
+ if (options.forceRootPath) {
95
+ // Same-site proxy: keep the target's SameSite choice, only make sure a
96
+ // `SameSite=None` cookie is still accepted by requiring Secure.
97
+ if (/;\s*samesite=none(?=;|$)/i.test(next) && !/;\s*secure(?=;|$)/i.test(next)) {
98
+ next = `${next}; Secure`;
99
+ }
100
+ return next;
101
+ }
102
+ next = next
103
+ .replace(/;\s*secure(?=;|$)/gi, '')
104
+ .replace(/;\s*samesite=[^;]*/gi, '')
105
+ .replace(/;\s*partitioned(?=;|$)/gi, '');
106
+ return `${next}; Secure; SameSite=None; Partitioned`;
107
+ }
108
+ next = next
109
+ .replace(/;\s*secure(?=;|$)/gi, '')
110
+ .replace(/;\s*partitioned(?=;|$)/gi, '');
111
+ if (/;\s*samesite=none(?=;|$)/i.test(next)) {
112
+ next = next.replace(/;\s*samesite=none(?=;|$)/i, '; SameSite=Lax');
113
+ }
114
+ return next;
115
+ }
116
+ export function parseCookieHeader(header) {
117
+ const cookies = new Map();
118
+ if (!header)
119
+ return cookies;
120
+ for (const part of header.split(';')) {
121
+ const [rawName, ...rawValue] = part.trim().split('=');
122
+ if (!rawName)
123
+ continue;
124
+ try {
125
+ cookies.set(rawName, decodeURIComponent(rawValue.join('=')));
126
+ }
127
+ catch {
128
+ cookies.set(rawName, rawValue.join('='));
129
+ }
130
+ }
131
+ return cookies;
132
+ }
133
+ //# sourceMappingURL=preview-cookies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-cookies.js","sourceRoot":"","sources":["../../src/services/preview-cookies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import http from 'node:http';
2
+ import type { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'node:http';
3
+ import type { Duplex } from 'node:stream';
4
+ import type { NormalizedPreviewTarget } from './preview.service.js';
5
+ /**
6
+ * Same-origin workspace preview proxy mounted at `/view/:workspaceId/`.
7
+ *
8
+ * The browser only ever talks to Agent Tower's own origin, so the preview is
9
+ * reachable from exactly the places Agent Tower itself is reachable from:
10
+ * localhost, the LAN, a Cloudflare tunnel, a reverse proxy, or Docker.
11
+ */
12
+ export declare const PREVIEW_SANDBOX_CSP: string;
13
+ export interface PreviewProxyScope {
14
+ workspaceId: string;
15
+ target: NormalizedPreviewTarget;
16
+ previewToken: string | null;
17
+ }
18
+ export interface PreviewRequestContext {
19
+ /** The request was issued by the preview service worker. */
20
+ serviceWorker: boolean;
21
+ /** A navigation: top-level tab or embedded frame document. */
22
+ document: boolean;
23
+ /** The navigation is rendered inside a frame (iframe/embed/object). */
24
+ embedded: boolean;
25
+ /** The browser requested the plain (no service worker) proxy mode. */
26
+ plainMode: boolean;
27
+ /** Set after the bootstrap page registered the worker and re-navigated. */
28
+ bootstrapped: boolean;
29
+ }
30
+ export declare function firstHeaderValue(value: string | string[] | undefined): string | undefined;
31
+ export declare function requestProtocol(headers: IncomingHttpHeaders): 'http' | 'https';
32
+ export declare function classifyPreviewRequest(method: string, headers: IncomingHttpHeaders, search: string): PreviewRequestContext;
33
+ /** Should the request be answered with the service worker bootstrap page instead of the target document? */
34
+ export declare function shouldServeBootstrap(context: PreviewRequestContext, method: string): boolean;
35
+ export declare function stripInternalQueryParams(search: string): string;
36
+ export declare function joinTargetPath(target: NormalizedPreviewTarget, suffix: string, search: string): string;
37
+ export declare function proxyRequestHeaders(headers: IncomingHttpHeaders, scope: PreviewProxyScope, targetPath: string): http.OutgoingHttpHeaders;
38
+ export declare function rewriteLocationHeader(value: string, scope: PreviewProxyScope): string;
39
+ export declare function serializePreviewContextCookie(workspaceId: string, secure: boolean): string;
40
+ export interface ProxyResponseHeaderOptions {
41
+ /** Response is an HTML navigation that will receive the bridge script. */
42
+ document: boolean;
43
+ /** The document is rendered inside a frame; adds the defensive sandbox CSP. */
44
+ embedded: boolean;
45
+ /** The body is buffered and modified, so the original length no longer applies. */
46
+ rewritesBody?: boolean;
47
+ }
48
+ export declare function proxyResponseHeaders(headers: IncomingHttpHeaders, scope: PreviewProxyScope, requestHeaders: IncomingHttpHeaders, options: ProxyResponseHeaderOptions): http.OutgoingHttpHeaders;
49
+ /**
50
+ * Plain mode only (no service worker): rewrite static root-relative references
51
+ * in HTML/CSS so the first paint works without a redirect round trip for every
52
+ * asset. Service-worker documents are left untouched.
53
+ */
54
+ export declare function rewritePlainModeBody(body: string, prefix: string, kind: 'html' | 'css'): string;
55
+ export declare function buildBridgeTag(scope: PreviewProxyScope, serviceWorker: boolean): string;
56
+ export declare function previewServiceWorkerSegment(suffix: string): boolean;
57
+ export declare function writeServiceWorkerScript(response: ServerResponse): void;
58
+ export declare function writeBootstrapPage(response: ServerResponse, scope: PreviewProxyScope): void;
59
+ export interface ProxyHttpRequestInput {
60
+ request: IncomingMessage;
61
+ response: ServerResponse;
62
+ scope: PreviewProxyScope;
63
+ suffix: string;
64
+ search: string;
65
+ context: PreviewRequestContext;
66
+ body: Buffer | null;
67
+ }
68
+ export declare function proxyPreviewHttpRequest(input: ProxyHttpRequestInput): Promise<void>;
69
+ export declare function writeUpgradeError(socket: Duplex, statusCode: number, message: string): void;
70
+ export declare function proxyPreviewWebSocket(request: IncomingMessage, socket: Duplex, head: Buffer, scope: PreviewProxyScope, suffix: string, search: string): void;
71
+ //# sourceMappingURL=preview-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-proxy.d.ts","sourceRoot":"","sources":["../../src/services/preview-proxy.ts"],"names":[],"mappings":"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"}