agent-tower 0.7.4 → 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 (365) 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/__tests__/codex-mcp-windows.test.d.ts +2 -0
  15. package/dist/executors/__tests__/codex-mcp-windows.test.d.ts.map +1 -0
  16. package/dist/executors/__tests__/codex-mcp-windows.test.js +128 -0
  17. package/dist/executors/__tests__/codex-mcp-windows.test.js.map +1 -0
  18. package/dist/executors/__tests__/codex.executor.test.js +394 -1
  19. package/dist/executors/__tests__/codex.executor.test.js.map +1 -1
  20. package/dist/executors/base.executor.d.ts.map +1 -1
  21. package/dist/executors/base.executor.js +13 -0
  22. package/dist/executors/base.executor.js.map +1 -1
  23. package/dist/executors/claude-code.executor.d.ts +1 -0
  24. package/dist/executors/claude-code.executor.d.ts.map +1 -1
  25. package/dist/executors/claude-code.executor.js +52 -3
  26. package/dist/executors/claude-code.executor.js.map +1 -1
  27. package/dist/executors/codex.executor.d.ts +6 -6
  28. package/dist/executors/codex.executor.d.ts.map +1 -1
  29. package/dist/executors/codex.executor.js +118 -32
  30. package/dist/executors/codex.executor.js.map +1 -1
  31. package/dist/git/worktree.manager.d.ts.map +1 -1
  32. package/dist/git/worktree.manager.js +5 -2
  33. package/dist/git/worktree.manager.js.map +1 -1
  34. package/dist/mcp/http-client.d.ts +8 -1
  35. package/dist/mcp/http-client.d.ts.map +1 -1
  36. package/dist/mcp/http-client.js +6 -0
  37. package/dist/mcp/http-client.js.map +1 -1
  38. package/dist/mcp/tools/__tests__/workspace-services.test.js +34 -1
  39. package/dist/mcp/tools/__tests__/workspace-services.test.js.map +1 -1
  40. package/dist/mcp/tools/tasks.js +1 -1
  41. package/dist/mcp/tools/tasks.js.map +1 -1
  42. package/dist/mcp/tools/workspace-services.d.ts.map +1 -1
  43. package/dist/mcp/tools/workspace-services.js +39 -2
  44. package/dist/mcp/tools/workspace-services.js.map +1 -1
  45. package/dist/mcp/types.d.ts +20 -0
  46. package/dist/mcp/types.d.ts.map +1 -1
  47. package/dist/mcp/types.js +12 -0
  48. package/dist/mcp/types.js.map +1 -1
  49. package/dist/middleware/__tests__/preview-fallback.test.d.ts +2 -0
  50. package/dist/middleware/__tests__/preview-fallback.test.d.ts.map +1 -0
  51. package/dist/middleware/__tests__/preview-fallback.test.js +93 -0
  52. package/dist/middleware/__tests__/preview-fallback.test.js.map +1 -0
  53. package/dist/middleware/preview-fallback.d.ts +5 -0
  54. package/dist/middleware/preview-fallback.d.ts.map +1 -0
  55. package/dist/middleware/preview-fallback.js +91 -0
  56. package/dist/middleware/preview-fallback.js.map +1 -0
  57. package/dist/output/__tests__/claude-code-parser-continuation.test.d.ts +2 -0
  58. package/dist/output/__tests__/claude-code-parser-continuation.test.d.ts.map +1 -0
  59. package/dist/output/__tests__/claude-code-parser-continuation.test.js +89 -0
  60. package/dist/output/__tests__/claude-code-parser-continuation.test.js.map +1 -0
  61. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js +4 -1
  62. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js.map +1 -1
  63. package/dist/output/claude-code-parser.d.ts +36 -1
  64. package/dist/output/claude-code-parser.d.ts.map +1 -1
  65. package/dist/output/claude-code-parser.js +149 -18
  66. package/dist/output/claude-code-parser.js.map +1 -1
  67. package/dist/output/types.d.ts +2 -0
  68. package/dist/output/types.d.ts.map +1 -1
  69. package/dist/output/types.js.map +1 -1
  70. package/dist/prompts/workspace-background-service-policy.d.ts +6 -2
  71. package/dist/prompts/workspace-background-service-policy.d.ts.map +1 -1
  72. package/dist/prompts/workspace-background-service-policy.js +12 -3
  73. package/dist/prompts/workspace-background-service-policy.js.map +1 -1
  74. package/dist/prompts/workspace-background-service-policy.test.js +11 -0
  75. package/dist/prompts/workspace-background-service-policy.test.js.map +1 -1
  76. package/dist/routes/__tests__/previews.integration.test.js +117 -6
  77. package/dist/routes/__tests__/previews.integration.test.js.map +1 -1
  78. package/dist/routes/__tests__/previews.test.js +223 -194
  79. package/dist/routes/__tests__/previews.test.js.map +1 -1
  80. package/dist/routes/__tests__/task-handoff.test.js +25 -16
  81. package/dist/routes/__tests__/task-handoff.test.js.map +1 -1
  82. package/dist/routes/index.d.ts.map +1 -1
  83. package/dist/routes/index.js +3 -0
  84. package/dist/routes/index.js.map +1 -1
  85. package/dist/routes/previews.d.ts +11 -9
  86. package/dist/routes/previews.d.ts.map +1 -1
  87. package/dist/routes/previews.js +137 -516
  88. package/dist/routes/previews.js.map +1 -1
  89. package/dist/routes/session-wakeups.d.ts +7 -0
  90. package/dist/routes/session-wakeups.d.ts.map +1 -0
  91. package/dist/routes/session-wakeups.js +86 -0
  92. package/dist/routes/session-wakeups.js.map +1 -0
  93. package/dist/routes/tasks.d.ts.map +1 -1
  94. package/dist/routes/tasks.js +3 -1
  95. package/dist/routes/tasks.js.map +1 -1
  96. package/dist/runtime/__tests__/acp-process-manager.test.js +65 -0
  97. package/dist/runtime/__tests__/acp-process-manager.test.js.map +1 -1
  98. package/dist/runtime/__tests__/claude-cli-driver.test.js +96 -2
  99. package/dist/runtime/__tests__/claude-cli-driver.test.js.map +1 -1
  100. package/dist/runtime/__tests__/claude-run-lifecycle.test.d.ts +2 -0
  101. package/dist/runtime/__tests__/claude-run-lifecycle.test.d.ts.map +1 -0
  102. package/dist/runtime/__tests__/claude-run-lifecycle.test.js +88 -0
  103. package/dist/runtime/__tests__/claude-run-lifecycle.test.js.map +1 -0
  104. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js +14 -7
  105. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js.map +1 -1
  106. package/dist/runtime/acp/agents/pi-coding-agent.d.ts.map +1 -1
  107. package/dist/runtime/acp/agents/pi-coding-agent.js +3 -0
  108. package/dist/runtime/acp/agents/pi-coding-agent.js.map +1 -1
  109. package/dist/runtime/claude-run-lifecycle.d.ts +77 -0
  110. package/dist/runtime/claude-run-lifecycle.d.ts.map +1 -0
  111. package/dist/runtime/claude-run-lifecycle.js +147 -0
  112. package/dist/runtime/claude-run-lifecycle.js.map +1 -0
  113. package/dist/runtime/cli-driver.d.ts.map +1 -1
  114. package/dist/runtime/cli-driver.js +89 -3
  115. package/dist/runtime/cli-driver.js.map +1 -1
  116. package/dist/runtime/contracts.d.ts +6 -1
  117. package/dist/runtime/contracts.d.ts.map +1 -1
  118. package/dist/runtime/process-scope/__tests__/process-scope.test.d.ts +2 -0
  119. package/dist/runtime/process-scope/__tests__/process-scope.test.d.ts.map +1 -0
  120. package/dist/runtime/process-scope/__tests__/process-scope.test.js +156 -0
  121. package/dist/runtime/process-scope/__tests__/process-scope.test.js.map +1 -0
  122. package/dist/runtime/process-scope/process-scope.d.ts +46 -0
  123. package/dist/runtime/process-scope/process-scope.d.ts.map +1 -0
  124. package/dist/runtime/process-scope/process-scope.js +68 -0
  125. package/dist/runtime/process-scope/process-scope.js.map +1 -0
  126. package/dist/runtime/process-scope/scope-helper.d.ts +28 -0
  127. package/dist/runtime/process-scope/scope-helper.d.ts.map +1 -0
  128. package/dist/runtime/process-scope/scope-helper.js +78 -0
  129. package/dist/runtime/process-scope/scope-helper.js.map +1 -0
  130. package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
  131. package/dist/runtime/runtime-coordinator.js +6 -0
  132. package/dist/runtime/runtime-coordinator.js.map +1 -1
  133. package/dist/services/__tests__/preview-runtime-manager.test.js +13 -112
  134. package/dist/services/__tests__/preview-runtime-manager.test.js.map +1 -1
  135. package/dist/services/__tests__/preview.service.test.js +13 -14
  136. package/dist/services/__tests__/preview.service.test.js.map +1 -1
  137. package/dist/services/__tests__/session-manager.lifecycle.test.js +147 -1
  138. package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
  139. package/dist/services/__tests__/session-wakeup.service.test.d.ts +2 -0
  140. package/dist/services/__tests__/session-wakeup.service.test.d.ts.map +1 -0
  141. package/dist/services/__tests__/session-wakeup.service.test.js +173 -0
  142. package/dist/services/__tests__/session-wakeup.service.test.js.map +1 -0
  143. package/dist/services/__tests__/terminal-manager.test.js +129 -51
  144. package/dist/services/__tests__/terminal-manager.test.js.map +1 -1
  145. package/dist/services/__tests__/workspace.service.test.js +31 -0
  146. package/dist/services/__tests__/workspace.service.test.js.map +1 -1
  147. package/dist/services/message-delivery.service.d.ts +3 -2
  148. package/dist/services/message-delivery.service.d.ts.map +1 -1
  149. package/dist/services/message-delivery.service.js +11 -7
  150. package/dist/services/message-delivery.service.js.map +1 -1
  151. package/dist/services/preview-bridge.d.ts +50 -0
  152. package/dist/services/preview-bridge.d.ts.map +1 -0
  153. package/dist/services/preview-bridge.js +537 -0
  154. package/dist/services/preview-bridge.js.map +1 -0
  155. package/dist/services/preview-cookies.d.ts +28 -0
  156. package/dist/services/preview-cookies.d.ts.map +1 -0
  157. package/dist/services/preview-cookies.js +133 -0
  158. package/dist/services/preview-cookies.js.map +1 -0
  159. package/dist/services/preview-proxy.d.ts +71 -0
  160. package/dist/services/preview-proxy.d.ts.map +1 -0
  161. package/dist/services/preview-proxy.js +462 -0
  162. package/dist/services/preview-proxy.js.map +1 -0
  163. package/dist/services/preview-runtime-manager.d.ts +11 -25
  164. package/dist/services/preview-runtime-manager.d.ts.map +1 -1
  165. package/dist/services/preview-runtime-manager.js +46 -363
  166. package/dist/services/preview-runtime-manager.js.map +1 -1
  167. package/dist/services/preview.service.d.ts.map +1 -1
  168. package/dist/services/preview.service.js +11 -9
  169. package/dist/services/preview.service.js.map +1 -1
  170. package/dist/services/project.service.d.ts +13 -13
  171. package/dist/services/session-manager.d.ts +2 -0
  172. package/dist/services/session-manager.d.ts.map +1 -1
  173. package/dist/services/session-manager.js +4 -2
  174. package/dist/services/session-manager.js.map +1 -1
  175. package/dist/services/session-wakeup.service.d.ts +105 -0
  176. package/dist/services/session-wakeup.service.d.ts.map +1 -0
  177. package/dist/services/session-wakeup.service.js +319 -0
  178. package/dist/services/session-wakeup.service.js.map +1 -0
  179. package/dist/services/task-handoff.service.d.ts +3 -2
  180. package/dist/services/task-handoff.service.d.ts.map +1 -1
  181. package/dist/services/task-handoff.service.js +7 -6
  182. package/dist/services/task-handoff.service.js.map +1 -1
  183. package/dist/services/team-room-delivery.d.ts +4 -4
  184. package/dist/services/terminal-manager.d.ts +16 -0
  185. package/dist/services/terminal-manager.d.ts.map +1 -1
  186. package/dist/services/terminal-manager.js +64 -7
  187. package/dist/services/terminal-manager.js.map +1 -1
  188. package/dist/services/workspace-background-service.service.d.ts +15 -1
  189. package/dist/services/workspace-background-service.service.d.ts.map +1 -1
  190. package/dist/services/workspace-background-service.service.js +41 -2
  191. package/dist/services/workspace-background-service.service.js.map +1 -1
  192. package/dist/services/workspace.service.d.ts.map +1 -1
  193. package/dist/services/workspace.service.js +2 -1
  194. package/dist/services/workspace.service.js.map +1 -1
  195. package/dist/utils/database-schema.d.ts.map +1 -1
  196. package/dist/utils/database-schema.js +9 -4
  197. package/dist/utils/database-schema.js.map +1 -1
  198. package/dist/utils/database-schema.test.js +21 -0
  199. package/dist/utils/database-schema.test.js.map +1 -1
  200. package/dist/utils/owned-child-process.d.ts +32 -3
  201. package/dist/utils/owned-child-process.d.ts.map +1 -1
  202. package/dist/utils/owned-child-process.js +138 -1
  203. package/dist/utils/owned-child-process.js.map +1 -1
  204. package/dist/web/assets/{AgentDemoPage-D9bIiALx.js → AgentDemoPage-D6clLNZx.js} +1 -1
  205. package/dist/web/assets/{AgentEnvironmentSettingsPage-BE0RC6fR.js → AgentEnvironmentSettingsPage-O1hlpsgp.js} +1 -1
  206. package/dist/web/assets/AttachmentPreview-hD3g_T_y.js +2 -0
  207. package/dist/web/assets/{BranchSelect-Kv3M1YhZ.js → BranchSelect-BkuXnEG2.js} +1 -1
  208. package/dist/web/assets/{BrandLogo-fR2lCwEo.js → BrandLogo-BSwQa2SF.js} +1 -1
  209. package/dist/web/assets/{ConversationPage-BZiMHI9T.js → ConversationPage-DvWjqFF2.js} +1 -1
  210. package/dist/web/assets/CreateTaskInput-Bric0GeW.js +1 -0
  211. package/dist/web/assets/{DemoPage-DwpThe16.js → DemoPage-Cwy3EmOm.js} +1 -1
  212. package/dist/web/assets/{DesignSystemPage-DH9_cygJ.js → DesignSystemPage-C1HrGwpV.js} +1 -1
  213. package/dist/web/assets/{ExecutionPermissionSelector-C-akTOVg.js → ExecutionPermissionSelector-BgrxbvBB.js} +1 -1
  214. package/dist/web/assets/{GeneralSettingsPage-v2w1eofz.js → GeneralSettingsPage-qdeAdBkW.js} +1 -1
  215. package/dist/web/assets/{LoadingPreviewPage-pgk3PWM9.js → LoadingPreviewPage-qeZ8nuiQ.js} +1 -1
  216. package/dist/web/assets/{McpSettingsPage-w1DOlY5V.js → McpSettingsPage-Bo-auo0X.js} +1 -1
  217. package/dist/web/assets/{MemberAvatar-CJtylxwu.js → MemberAvatar-DBab_9EO.js} +1 -1
  218. package/dist/web/assets/{MobileTaskDetail-D5Czlr2O.js → MobileTaskDetail-Dm64ie99.js} +2 -2
  219. package/dist/web/assets/{NotificationSettingsPage-CkLg4WvT.js → NotificationSettingsPage-BVJpo76k.js} +1 -1
  220. package/dist/web/assets/{ProfileSettingsPage-B3yzbY1V.js → ProfileSettingsPage-CbSRYGcp.js} +1 -1
  221. package/dist/web/assets/{ProjectKanbanPage-CuGSLvrU.js → ProjectKanbanPage-Cp3rdFik.js} +6 -6
  222. package/dist/web/assets/{ProjectSettingsPage-DoklOfna.js → ProjectSettingsPage-DLs5-Gk3.js} +1 -1
  223. package/dist/web/assets/{ProviderSettingsPage-Cm0hbX5n.js → ProviderSettingsPage-BnBcgAMQ.js} +1 -1
  224. package/dist/web/assets/{SettingsMasterDetail-CGCUalkW.js → SettingsMasterDetail-fu-_yejj.js} +1 -1
  225. package/dist/web/assets/{TaskDetail-BiZbuXcE.js → TaskDetail-C2_Fg59e.js} +1 -1
  226. package/dist/web/assets/TaskHandoffPanel-3Y0gcjyN.js +70 -0
  227. package/dist/web/assets/{TeamSettingsPage-CyppRTaY.js → TeamSettingsPage-CAjitaBe.js} +1 -1
  228. package/dist/web/assets/{TranslationSettingsPage-BoQXEZmn.js → TranslationSettingsPage-DKD6Uw2F.js} +1 -1
  229. package/dist/web/assets/{arc-5NPBSbiL.js → arc-BiuUFTzU.js} +1 -1
  230. package/dist/web/assets/{architectureDiagram-3BPJPVTR-CqPT-IsX.js → architectureDiagram-3BPJPVTR-Dcwk905A.js} +1 -1
  231. package/dist/web/assets/{at-sign-Cf39WHCg.js → at-sign-CZAKOH3i.js} +1 -1
  232. package/dist/web/assets/{blockDiagram-GPEHLZMM-BN-1z9KN.js → blockDiagram-GPEHLZMM-Cfc5JDN-.js} +1 -1
  233. package/dist/web/assets/{c4Diagram-AAUBKEIU-CkeLbmQp.js → c4Diagram-AAUBKEIU-B4v5PUdt.js} +1 -1
  234. package/dist/web/assets/channel-DThSYkmR.js +1 -0
  235. package/dist/web/assets/check-C3vuSPKz.js +1 -0
  236. package/dist/web/assets/{chevron-down-Ct7FZbKm.js → chevron-down-CtAk9uZw.js} +1 -1
  237. package/dist/web/assets/{chevron-up-ARFlXMyO.js → chevron-up-DAc3NX1J.js} +1 -1
  238. package/dist/web/assets/{chip-BV_1-tIb.js → chip-CDUNxQW2.js} +1 -1
  239. package/dist/web/assets/{chunk-2J33WTMH-CWR7tRuT.js → chunk-2J33WTMH-BYRdUeyt.js} +1 -1
  240. package/dist/web/assets/{chunk-4BX2VUAB-CAulp4D5.js → chunk-4BX2VUAB-3si_kPmV.js} +1 -1
  241. package/dist/web/assets/{chunk-55IACEB6-DqkKXsbD.js → chunk-55IACEB6-JiMm9u33.js} +1 -1
  242. package/dist/web/assets/{chunk-727SXJPM-B19m45Sq.js → chunk-727SXJPM-CMCFIUyF.js} +1 -1
  243. package/dist/web/assets/{chunk-AQP2D5EJ-CuODwkza.js → chunk-AQP2D5EJ-CzvnZjH5.js} +1 -1
  244. package/dist/web/assets/{chunk-FMBD7UC4-CbUAjtCT.js → chunk-FMBD7UC4-hsabZkPl.js} +1 -1
  245. package/dist/web/assets/{chunk-ND2GUHAM-C54VxArl.js → chunk-ND2GUHAM-D2o-Reeo.js} +1 -1
  246. package/dist/web/assets/{chunk-QZHKN3VN-D54Uw5fD.js → chunk-QZHKN3VN-ASJk-E7d.js} +1 -1
  247. package/dist/web/assets/classDiagram-4FO5ZUOK-CjJqgIpK.js +1 -0
  248. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CjJqgIpK.js +1 -0
  249. package/dist/web/assets/{code-block-OCS4YCEC-CtAySD1h.js → code-block-OCS4YCEC-5bkFBowa.js} +1 -1
  250. package/dist/web/assets/{confirm-dialog-CCjHVFTv.js → confirm-dialog-Bs80kXB9.js} +1 -1
  251. package/dist/web/assets/{content-DZozZbBD.js → content-DAccroCT.js} +1 -1
  252. package/dist/web/assets/{copy-C-jvx2et.js → copy-D1XK3OqK.js} +1 -1
  253. package/dist/web/assets/{cose-bilkent-S5V4N54A-BaB2EVcU.js → cose-bilkent-S5V4N54A-C52UKnOd.js} +1 -1
  254. package/dist/web/assets/{cssMode-wd7JR1S4.js → cssMode-BFq_c5xU.js} +1 -1
  255. package/dist/web/assets/{dagre-BM42HDAG-C2j1Y8pO.js → dagre-BM42HDAG-CeEute93.js} +1 -1
  256. package/dist/web/assets/{diagram-2AECGRRQ-CF-EvpV9.js → diagram-2AECGRRQ-CEcq4W4S.js} +1 -1
  257. package/dist/web/assets/{diagram-5GNKFQAL-rBNso835.js → diagram-5GNKFQAL-DqQe7Rr7.js} +1 -1
  258. package/dist/web/assets/{diagram-KO2AKTUF-6NW-oos1.js → diagram-KO2AKTUF-C1KVZphS.js} +1 -1
  259. package/dist/web/assets/{diagram-LMA3HP47-DTfRxRLT.js → diagram-LMA3HP47-D1BL7GQh.js} +1 -1
  260. package/dist/web/assets/{diagram-OG6HWLK6-CS4Ae-hD.js → diagram-OG6HWLK6-ngyXooqC.js} +1 -1
  261. package/dist/web/assets/{dialog-DV4wfpNU.js → dialog-XkZ8wMQa.js} +1 -1
  262. package/dist/web/assets/{erDiagram-TEJ5UH35-Dw9QQctN.js → erDiagram-TEJ5UH35-D1zIFVqE.js} +1 -1
  263. package/dist/web/assets/{file-Btui_I8Z.js → file-CXCll7Pm.js} +1 -1
  264. package/dist/web/assets/{flowDiagram-I6XJVG4X-BGZ9q86S.js → flowDiagram-I6XJVG4X-BZu49qcj.js} +1 -1
  265. package/dist/web/assets/{folder-picker-DiR-8Qdl.js → folder-picker-CVkaEJEL.js} +1 -1
  266. package/dist/web/assets/{freemarker2-yVWXzD3l.js → freemarker2-CmhadAeB.js} +1 -1
  267. package/dist/web/assets/{ganttDiagram-6RSMTGT7-CkGun0no.js → ganttDiagram-6RSMTGT7-eJ8yBxfS.js} +1 -1
  268. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-Bz3oiYvi.js → gitGraphDiagram-PVQCEYII-DpeUUyH_.js} +1 -1
  269. package/dist/web/assets/{globe-DAFqpAcW.js → globe-WnxN1JzY.js} +1 -1
  270. package/dist/web/assets/{handlebars-BPf0z6eN.js → handlebars-DtjmH1qR.js} +1 -1
  271. package/dist/web/assets/{html-HCTCjfUg.js → html-DOYAlzlD.js} +1 -1
  272. package/dist/web/assets/{htmlMode-BDkbsknt.js → htmlMode-ORxd7KRN.js} +1 -1
  273. package/dist/web/assets/{index-BMcLxIvZ.js → index-6mINSZng.js} +1 -1
  274. package/dist/web/assets/{index-BPqjxXmH.js → index-BrjvxKaf.js} +1 -1
  275. package/dist/web/assets/{index-B8xoIIa6.js → index-CqIyOiVN.js} +4 -4
  276. package/dist/web/assets/{index-DgUtx9rV.js → index-D9w1zMaz.js} +1 -1
  277. package/dist/web/assets/{index-DkSPjZm4.js → index-DHDgbH3t.js} +1 -1
  278. package/dist/web/assets/{index-BszkzNS4.js → index-Dz9SKopM.js} +13 -13
  279. package/dist/web/assets/{index-GuczxPxb.js → index-eIXz5Hbk.js} +1 -1
  280. package/dist/web/assets/{index-DuM6iAxG.js → index-iOIxdF6J.js} +1 -1
  281. package/dist/web/assets/{index-lZLy5rkr.js → index-wbMiSmsY.js} +1 -1
  282. package/dist/web/assets/{infoDiagram-5YYISTIA-DYFufUYC.js → infoDiagram-5YYISTIA-BiVrC__7.js} +1 -1
  283. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-IOkrKRwu.js → ishikawaDiagram-YF4QCWOH-B1kPjO1J.js} +1 -1
  284. package/dist/web/assets/javascript-CHlWHrtz.js +1 -0
  285. package/dist/web/assets/{journeyDiagram-JHISSGLW-Btl3yxne.js → journeyDiagram-JHISSGLW-DoTAPPAQ.js} +1 -1
  286. package/dist/web/assets/{jsonMode-DJPdvFcw.js → jsonMode-BkeQ_C6g.js} +1 -1
  287. package/dist/web/assets/{kanban-definition-UN3LZRKU-CDryhPbA.js → kanban-definition-UN3LZRKU-CBRmLcce.js} +1 -1
  288. package/dist/web/assets/{kbd-8RRRm9jd.js → kbd-CTfS0G5-.js} +1 -1
  289. package/dist/web/assets/{key-round-wojrCrDP.js → key-round-B7gTfpDR.js} +1 -1
  290. package/dist/web/assets/{layers-BH_LL4b8.js → layers-DE0xXedq.js} +1 -1
  291. package/dist/web/assets/{linear-BLuwKHze.js → linear-VLiA8Vcw.js} +1 -1
  292. package/dist/web/assets/{link-jWQOSQOQ.js → link-BSE_nRDT.js} +1 -1
  293. package/dist/web/assets/{liquid-1y-xg637.js → liquid-BZeg6p1K.js} +1 -1
  294. package/dist/web/assets/{lspLanguageFeatures-cYkILdCn.js → lspLanguageFeatures-CuFQ2_f9.js} +1 -1
  295. package/dist/web/assets/{mdx-CRg4Q6aP.js → mdx-C7xLyFFX.js} +1 -1
  296. package/dist/web/assets/{menu-CMqbaDni.js → menu-Dp4RDxvP.js} +1 -1
  297. package/dist/web/assets/{mermaid-NOHMQCX5-CYeAhOl-.js → mermaid-NOHMQCX5-C2enCJxR.js} +62 -62
  298. package/dist/web/assets/{message-square-DykJ2lWP.js → message-square-4lyHjyHe.js} +1 -1
  299. package/dist/web/assets/{mindmap-definition-RKZ34NQL-B5wtw1Rv.js → mindmap-definition-RKZ34NQL-C1OOtqma.js} +1 -1
  300. package/dist/web/assets/{modal-BwOwTzij.js → modal-BGglpgrR.js} +1 -1
  301. package/dist/web/assets/{monaco-CcHqpOKe.js → monaco-B-6VmJO0.js} +3 -3
  302. package/dist/web/assets/{nav-row-BmtdNLxR.js → nav-row-DaR8yP7p.js} +1 -1
  303. package/dist/web/assets/{paperclip-C4t49vX2.js → paperclip-DORF2rEM.js} +1 -1
  304. package/dist/web/assets/{pencil-BQ5_raiB.js → pencil-BG033B74.js} +1 -1
  305. package/dist/web/assets/{people-Dr0v8HK0.js → people-1qyKeYq6.js} +1 -1
  306. package/dist/web/assets/{pieDiagram-4H26LBE5-BZ3VoaNI.js → pieDiagram-4H26LBE5-BYYFVqOS.js} +1 -1
  307. package/dist/web/assets/{popover-CTqvKqTR.js → popover-CvjMbMb4.js} +1 -1
  308. package/dist/web/assets/{python-Huq_acyd.js → python-TTfnYnjF.js} +1 -1
  309. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-C6ArHmnG.js → quadrantDiagram-W4KKPZXB-DTllM2j9.js} +1 -1
  310. package/dist/web/assets/{razor-Clc87Ivb.js → razor-BFVXAHVd.js} +1 -1
  311. package/dist/web/assets/{requirementDiagram-4Y6WPE33-DiLzBRQP.js → requirementDiagram-4Y6WPE33-DeJDRYUP.js} +1 -1
  312. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-QlYYd7IZ.js → sankeyDiagram-5OEKKPKP-DzTvEKv8.js} +1 -1
  313. package/dist/web/assets/{search-CMIAPUEt.js → search-DDRcBORc.js} +1 -1
  314. package/dist/web/assets/{select-DqB7YF38.js → select-CXC17bJx.js} +1 -1
  315. package/dist/web/assets/{select-Bg7NI8i0.js → select-CzXL3ZbG.js} +1 -1
  316. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-COKEtqc0.js → sequenceDiagram-3UESZ5HK-CIYrA1ww.js} +1 -1
  317. package/dist/web/assets/{server-D7knl8H9.js → server-KqeWHfgr.js} +1 -1
  318. package/dist/web/assets/{stateDiagram-AJRCARHV-1RZZZdOe.js → stateDiagram-AJRCARHV-Dg_UXkEq.js} +1 -1
  319. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-Lc4r0bC3.js +1 -0
  320. package/dist/web/assets/{textarea-BCY2J2ca.js → textarea-Cmbv5l35.js} +1 -1
  321. package/dist/web/assets/{timeline-definition-PNZ67QCA-IJl1LY6J.js → timeline-definition-PNZ67QCA-CfSPMqxF.js} +1 -1
  322. package/dist/web/assets/{toggles-C4LmZwyo.js → toggles-t5v4QKn6.js} +1 -1
  323. package/dist/web/assets/{tooltip-Cirpotu3.js → tooltip-Cp8tovqH.js} +1 -1
  324. package/dist/web/assets/{track-Cv7h6oaE.js → track-C1rUV49K.js} +1 -1
  325. package/dist/web/assets/{trash-2-BEOQ1ICJ.js → trash-2-Ca2ken6q.js} +1 -1
  326. package/dist/web/assets/{tsMode-CHIbCBQc.js → tsMode-DBbiXlyu.js} +1 -1
  327. package/dist/web/assets/{typescript-CScj0bbb.js → typescript-jv_3P9x_.js} +1 -1
  328. package/dist/web/assets/{upload-tLVD0xMT.js → upload-CgGjN1FH.js} +1 -1
  329. package/dist/web/assets/{use-profiles-TkoP4Yw9.js → use-profiles-BdL-U8GZ.js} +1 -1
  330. package/dist/web/assets/{use-providers-Bz6YNiYj.js → use-providers-B6Mj5qeG.js} +1 -1
  331. package/dist/web/assets/{use-translation-settings-CCpQNS30.js → use-translation-settings-FIP674t9.js} +1 -1
  332. package/dist/web/assets/{useNormalizedLogs-Bstb98cF.js → useNormalizedLogs-FpVMUHeq.js} +1 -1
  333. package/dist/web/assets/useTokenUsage-Ay3Yy0_V.js +1 -0
  334. package/dist/web/assets/{vennDiagram-CIIHVFJN-DzVayy4U.js → vennDiagram-CIIHVFJN-DKREAIRT.js} +1 -1
  335. package/dist/web/assets/{wardley-L42UT6IY-CULSKh55.js → wardley-L42UT6IY-BMpDotAz.js} +1 -1
  336. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-C5_h3lAA.js → wardleyDiagram-YWT4CUSO-DAPccQsF.js} +1 -1
  337. package/dist/web/assets/{xml-XuycSwh6.js → xml-DnxIQwRS.js} +1 -1
  338. package/dist/web/assets/{xychartDiagram-2RQKCTM6-F65naXcR.js → xychartDiagram-2RQKCTM6-o06g8vo8.js} +1 -1
  339. package/dist/web/assets/{yaml-BWm159lw.js → yaml-BV5yQTRd.js} +1 -1
  340. package/dist/web/index.html +1 -1
  341. package/node_modules/@agent-tower/shared/dist/log-adapter.d.ts +4 -0
  342. package/node_modules/@agent-tower/shared/dist/log-adapter.d.ts.map +1 -1
  343. package/node_modules/@agent-tower/shared/dist/log-adapter.js +1 -0
  344. package/node_modules/@agent-tower/shared/dist/log-adapter.js.map +1 -1
  345. package/node_modules/@agent-tower/shared/dist/translation.d.ts +4 -1
  346. package/node_modules/@agent-tower/shared/dist/translation.d.ts.map +1 -1
  347. package/node_modules/@agent-tower/shared/dist/translation.js +4 -1
  348. package/node_modules/@agent-tower/shared/dist/translation.js.map +1 -1
  349. package/node_modules/@agent-tower/shared/dist/types.d.ts +38 -2
  350. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  351. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  352. package/package.json +2 -1
  353. package/prisma/migrations/20261106000000_add_session_wakeups/migration.sql +28 -0
  354. package/prisma/schema.prisma +28 -0
  355. package/scripts/postinstall.js +23 -0
  356. package/dist/web/assets/AttachmentPreview-TPd4gdfb.js +0 -2
  357. package/dist/web/assets/CreateTaskInput-TcZpjBe-.js +0 -1
  358. package/dist/web/assets/TaskHandoffPanel-CJahUKNo.js +0 -70
  359. package/dist/web/assets/channel-CDkuQ_7m.js +0 -1
  360. package/dist/web/assets/check-yNWhPvMH.js +0 -1
  361. package/dist/web/assets/classDiagram-4FO5ZUOK-eHY73FGu.js +0 -1
  362. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-eHY73FGu.js +0 -1
  363. package/dist/web/assets/javascript-DKmxrNeR.js +0 -1
  364. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-CCLmVs34.js +0 -1
  365. package/dist/web/assets/useTokenUsage-D7SEwXb0.js +0 -1
@@ -1 +0,0 @@
1
- import{U as a,M as n}from"./index-B8xoIIa6.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{c}from"./index-BszkzNS4.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("check",e);export{t as C};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-B19m45Sq.js";import{_ as i}from"./index-B8xoIIa6.js";import"./chunk-FMBD7UC4-CbUAjtCT.js";import"./chunk-ND2GUHAM-C54VxArl.js";import"./chunk-55IACEB6-DqkKXsbD.js";import"./chunk-2J33WTMH-CWR7tRuT.js";import"./index-BszkzNS4.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-B19m45Sq.js";import{_ as i}from"./index-B8xoIIa6.js";import"./chunk-FMBD7UC4-CbUAjtCT.js";import"./chunk-ND2GUHAM-C54VxArl.js";import"./chunk-55IACEB6-DqkKXsbD.js";import"./chunk-2J33WTMH-CWR7tRuT.js";import"./index-BszkzNS4.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{conf as i,language as t}from"./typescript-CScj0bbb.js";import"./monaco-CcHqpOKe.js";import"./TaskHandoffPanel-CJahUKNo.js";import"./index-BszkzNS4.js";import"./ProjectKanbanPage-CuGSLvrU.js";import"./confirm-dialog-CCjHVFTv.js";import"./dialog-DV4wfpNU.js";import"./index-BPqjxXmH.js";import"./BranchSelect-Kv3M1YhZ.js";import"./popover-CTqvKqTR.js";import"./kbd-8RRRm9jd.js";import"./search-CMIAPUEt.js";import"./index-DgUtx9rV.js";import"./index-lZLy5rkr.js";import"./menu-styles-DWynpVVz.js";import"./chevron-down-Ct7FZbKm.js";import"./check-yNWhPvMH.js";import"./CreateTaskInput-TcZpjBe-.js";import"./AttachmentPreview-TPd4gdfb.js";import"./tooltip-Cirpotu3.js";import"./index-DkSPjZm4.js";import"./MemberAvatar-CJtylxwu.js";import"./people-Dr0v8HK0.js";import"./BrandLogo-fR2lCwEo.js";import"./index-DuM6iAxG.js";import"./index-GuczxPxb.js";import"./use-providers-Bz6YNiYj.js";import"./trash-2-BEOQ1ICJ.js";import"./ExecutionPermissionSelector-C-akTOVg.js";import"./paperclip-C4t49vX2.js";import"./chip-BV_1-tIb.js";import"./message-square-DykJ2lWP.js";import"./layers-BH_LL4b8.js";import"./copy-C-jvx2et.js";import"./provider-selection-DSu7SCI7.js";import"./folder-picker-DiR-8Qdl.js";import"./modal-BwOwTzij.js";import"./mermaid-NOHMQCX5-CYeAhOl-.js";import"./use-translation-settings-CCpQNS30.js";import"./chevron-up-ARFlXMyO.js";import"./at-sign-Cf39WHCg.js";import"./useTokenUsage-D7SEwXb0.js";import"./menu-CMqbaDni.js";import"./select-DqB7YF38.js";import"./select-Bg7NI8i0.js";import"./index-BMcLxIvZ.js";import"./textarea-BCY2J2ca.js";import"./content-DZozZbBD.js";import"./file-Btui_I8Z.js";import"./server-D7knl8H9.js";import"./upload-tLVD0xMT.js";import"./globe-DAFqpAcW.js";import"./pencil-BQ5_raiB.js";const it=i,ot={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","static","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{it as conf,ot as language};
@@ -1 +0,0 @@
1
- import{s as e,b as r,a,S as s}from"./chunk-AQP2D5EJ-CuODwkza.js";import{_ as i}from"./index-B8xoIIa6.js";import"./chunk-55IACEB6-DqkKXsbD.js";import"./chunk-2J33WTMH-CWR7tRuT.js";import"./index-BszkzNS4.js";var p={parser:a,get db(){return new s(2)},renderer:r,styles:e,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{p as diagram};
@@ -1 +0,0 @@
1
- import{c as U,u as z,r as x,j as t,a3 as O,l as L,bd as $,be as H,b4 as j,bf as W,_ as M,bg as G}from"./index-BszkzNS4.js";import{h as K,i as V}from"./CreateTaskInput-TcZpjBe-.js";import{T as X}from"./mermaid-NOHMQCX5-CYeAhOl-.js";import{G as J,M as Y,a as Q,b as Z,c as ee,d as te,e as ne}from"./menu-CMqbaDni.js";import{g as re,a as B,l as se}from"./ExecutionPermissionSelector-C-akTOVg.js";import{i as oe}from"./provider-selection-DSu7SCI7.js";import"./AttachmentPreview-TPd4gdfb.js";import{C as ae}from"./chevron-down-Ct7FZbKm.js";const ie=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],le=U("shield-alert",ie);function ke({sessionId:r,compact:a=!1}){const{t:i}=z(),{data:s}=K(r),d=V(),m=s?.pendingPermissions[0],v=m?.requestId,g=d.reset;return x.useEffect(()=>{g()},[v,g]),m?t.jsx("div",{className:L("mb-2 border-l-2 border-warning bg-warning/5 px-3 py-2.5",a&&"px-2.5 py-2"),children:t.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[t.jsx(le,{className:"mt-0.5 h-4 w-4 shrink-0 text-warning","aria-hidden":"true"}),t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("div",{className:"text-sm font-medium text-foreground",children:i("Permission required")}),t.jsx("div",{className:"mt-0.5 break-words text-xs text-muted-foreground",children:m.toolSummary||m.toolName||i("The agent needs approval to continue.")}),m.actionDetails?t.jsx("pre",{className:"mt-2 max-h-48 overflow-auto whitespace-pre-wrap break-all text-xs",children:m.actionDetails}):null,t.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:m.options.map(p=>t.jsxs("button",{type:"button",disabled:d.isPending,onClick:()=>d.mutate({sessionId:r,requestId:m.requestId,optionId:p.optionId}),className:L("inline-flex min-h-8 items-center gap-1.5 border px-3 text-xs font-medium transition-colors disabled:opacity-50",p.kind.startsWith("reject")?"border-destructive/30 text-destructive-ink hover:bg-destructive/10":"border-border bg-background text-foreground hover:bg-muted"),children:[d.isPending&&d.variables?.requestId===m.requestId&&d.variables.optionId===p.optionId?t.jsx(O,{className:"h-3.5 w-3.5 animate-spin motion-reduce:[animation-duration:2.4s]","aria-hidden":"true"}):null,i(p.name)]},p.optionId))}),d.error?t.jsx("div",{className:"mt-1.5 text-xs text-destructive-ink",role:"alert",children:d.error.message}):null]})]})}):null}function y(r){return r>=1e6?`${(r/1e6).toFixed(1)}M`:r>=1e3?`${(r/1e3).toFixed(1)}K`:r.toString()}function ce(r){return r>=.9?"danger":r>=.7?"warning":"neutral"}function we({usage:r,tooltipSide:a="top"}){const{t:i}=z();if(!r)return null;const s=r.modelContextWindow,d=s?r.totalTokens/s:0,m=s?Math.min(Math.round(d*100),100):null,v=s?ce(d):"neutral",g=$[v],p=v==="neutral"?"text-muted-foreground":H[v],f=s?t.jsx("span",{children:i("上下文: {used} / {max} tokens",{used:y(r.totalTokens),max:y(s)})}):t.jsx("span",{children:i("已使用: {used} tokens",{used:y(r.totalTokens)})});return t.jsx(X,{content:f,side:a,children:t.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1.5 text-xs rounded-lg hover:bg-accent transition-colors cursor-default select-none",children:[t.jsx(J,{size:14,className:g}),t.jsxs("span",{className:`tabular-nums ${p}`,children:[y(r.totalTokens),m!==null&&t.jsxs("span",{className:"ml-0.5 text-muted-foreground",children:["/ ",m,"%"]})]})]})})}const ue={damping:.7,stiffness:.05,mass:1.25},de=70,me=1e3/60,fe=350;let E=!1;globalThis.document?.addEventListener("mousedown",()=>{E=!0});globalThis.document?.addEventListener("mouseup",()=>{E=!1});globalThis.document?.addEventListener("click",()=>{E=!1});const Se=(r={})=>{const[a,i]=x.useState(!1),[s,d]=x.useState(r.initial!==!1),[m,v]=x.useState(!1),g=x.useRef(null);g.current=r;const p=x.useCallback(()=>{if(!E)return!1;const n=window.getSelection();if(!n||!n.rangeCount)return!1;const o=n.getRangeAt(0);return o.commonAncestorContainer.contains(l.current)||l.current?.contains(o.commonAncestorContainer)},[]),f=x.useCallback(n=>{e.isAtBottom=n,d(n)},[]),h=x.useCallback(n=>{e.escapedFromLock=n,i(n)},[]),e=x.useMemo(()=>{let n;return{escapedFromLock:a,isAtBottom:s,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return l.current?.scrollTop??0},set scrollTop(o){l.current&&(l.current.scrollTop=o,e.ignoreScrollToTop=l.current.scrollTop)},get targetScrollTop(){return!l.current||!k.current?0:l.current.scrollHeight-1-l.current.clientHeight},get calculatedTargetScrollTop(){if(!l.current||!k.current)return 0;const{targetScrollTop:o}=this;if(!r.targetScrollTop)return o;if(n?.targetScrollTop===o)return n.calculatedScrollTop;const u=Math.max(Math.min(r.targetScrollTop(o,{scrollElement:l.current,contentElement:k.current}),o),0);return n={targetScrollTop:o,calculatedScrollTop:u},requestAnimationFrame(()=>{n=void 0}),u},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=de}}},[]),N=x.useCallback((n={})=>{typeof n=="string"&&(n={animation:n}),n.preserveScrollPosition||f(!0);const o=Date.now()+(Number(n.wait)||0),u=R(g.current,n.animation),{ignoreEscapes:T=!1}=n;let b,w=e.calculatedTargetScrollTop;n.duration instanceof Promise?n.duration.finally(()=>{b=Date.now()}):b=o+(n.duration??0);const S=async()=>{const _=new Promise(requestAnimationFrame).then(()=>{if(!e.isAtBottom)return e.animation=void 0,!1;const{scrollTop:I}=e,P=performance.now(),q=(P-(e.lastTick??P))/me;if(e.animation||(e.animation={behavior:u,promise:_,ignoreEscapes:T}),e.animation.behavior===u&&(e.lastTick=P),p()||o>Date.now())return S();if(I<Math.min(w,e.calculatedTargetScrollTop)){if(e.animation?.behavior===u){if(u==="instant")return e.scrollTop=e.calculatedTargetScrollTop,S();e.velocity=(u.damping*e.velocity+u.stiffness*e.scrollDifference)/u.mass,e.accumulated+=e.velocity*q,e.scrollTop+=e.accumulated,e.scrollTop!==I&&(e.accumulated=0)}return S()}return b>Date.now()?(w=e.calculatedTargetScrollTop,S()):(e.animation=void 0,e.scrollTop<e.calculatedTargetScrollTop?N({animation:R(g.current,g.current.resize),ignoreEscapes:T,duration:Math.max(0,b-Date.now())||void 0}):e.isAtBottom)});return _.then(I=>(requestAnimationFrame(()=>{e.animation||(e.lastTick=void 0,e.velocity=0)}),I))};return n.wait!==!0&&(e.animation=void 0),e.animation?.behavior===u?e.animation.promise:S()},[f,p,e]),A=x.useCallback(()=>{h(!0),f(!1)},[h,f]),c=x.useCallback(({target:n})=>{if(n!==l.current)return;const{scrollTop:o,ignoreScrollToTop:u}=e;let{lastScrollTop:T=o}=e;e.lastScrollTop=o,e.ignoreScrollToTop=void 0,u&&u>o&&(T=u),v(e.isNearBottom),setTimeout(()=>{if(e.resizeDifference||o===u)return;if(p()){h(!0),f(!1);return}const b=o>T,w=o<T;if(e.animation?.ignoreEscapes){e.scrollTop=T;return}w&&(h(!0),f(!1)),b&&h(!1),!e.escapedFromLock&&e.isNearBottom&&f(!0)},1)},[h,f,p,e]),C=x.useCallback(({target:n,deltaY:o})=>{let u=n;for(;!["scroll","auto"].includes(getComputedStyle(u).overflow);){if(!u.parentElement)return;u=u.parentElement}u===l.current&&o<0&&l.current.scrollHeight>l.current.clientHeight&&!e.animation?.ignoreEscapes&&(h(!0),f(!1))},[h,f,e]),l=F(n=>{l.current?.removeEventListener("scroll",c),l.current?.removeEventListener("wheel",C),n?.addEventListener("scroll",c,{passive:!0}),n?.addEventListener("wheel",C,{passive:!0})},[]),k=F(n=>{if(e.resizeObserver?.disconnect(),!n)return;let o;e.resizeObserver=new ResizeObserver(([u])=>{const{height:T}=u.contentRect,b=T-(o??T);if(e.resizeDifference=b,e.scrollTop>e.targetScrollTop&&(e.scrollTop=e.targetScrollTop),v(e.isNearBottom),b>=0){const w=R(g.current,o?g.current.resize:g.current.initial);N({animation:w,wait:!0,preserveScrollPosition:!0,duration:w==="instant"?void 0:fe})}else e.isNearBottom&&(h(!1),f(!0));o=T,requestAnimationFrame(()=>{setTimeout(()=>{e.resizeDifference===b&&(e.resizeDifference=0)},1)})}),e.resizeObserver?.observe(n)},[]);return{contentRef:k,scrollRef:l,scrollToBottom:N,stopScroll:A,isAtBottom:s||m,isNearBottom:m,escapedFromLock:a,state:e}};function F(r,a){const i=x.useCallback(s=>(i.current=s,r(s)),a);return i}const D=new Map;function R(...r){const a={...ue};let i=!1;for(const d of r){if(d==="instant"){i=!0;continue}typeof d=="object"&&(i=!1,a.damping=d.damping??a.damping,a.stiffness=d.stiffness??a.stiffness,a.mass=d.mass??a.mass)}const s=JSON.stringify(a);return D.has(s)||D.set(s,Object.freeze(a)),i?"instant":D.get(s)}function je({providers:r,currentProviderId:a,agentType:i,runtimeType:s,onSelect:d}){const{t:m}=z(),v=x.useId(),g=s===j.ACP?j.ACP:j.CLI,p=r.filter(c=>oe(c)&&String(c.provider.agentType)===i&&(c.provider.runtimeType===j.ACP?j.ACP:j.CLI)===g),f=r.find(c=>c.provider.id===a),h=f?.provider.name?W(f.provider.name,12):i,e=re(r,a),N=e?t.jsx("span",{role:"alert",className:"block break-words text-xs leading-snug text-destructive-ink",children:m(e)}):null;if(p.length===0||p.length===1&&p[0].provider.id===a)return t.jsxs("div",{className:"min-w-[112px] max-w-[min(46vw,240px)] px-2 py-1.5 text-xs text-muted-foreground select-none cursor-default",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(M,{agentType:f?.provider.agentType??i,className:"size-3.5 shrink-0"}),t.jsx("span",{className:"min-w-0 truncate",children:h})]}),N]});const A=new Set(p.filter(c=>B(c)).map(c=>c.provider.id));return t.jsxs("div",{className:"min-w-[112px] max-w-[min(46vw,240px)]",children:[t.jsxs(Y,{children:[t.jsxs(Q,{className:G({variant:"ghost",size:"sm",className:"group max-w-full gap-1 px-2 text-muted-foreground data-[state=open]:bg-accent data-[state=open]:text-foreground"}),title:`Provider: ${f?.provider.name??i} (click to change)`,children:[t.jsx(M,{agentType:f?.provider.agentType??i,className:"size-3.5"}),t.jsx("span",{className:"min-w-0 truncate",children:h}),t.jsx(ae,{className:"size-3 transition-transform group-data-[state=open]:rotate-180"})]}),t.jsxs(Z,{side:"top",align:"end",className:"max-h-[min(60vh,320px)] max-w-[min(80vw,320px)] overflow-y-auto",children:[t.jsx(ee,{children:m("切换渠道")}),t.jsx(te,{value:a??"",onValueChange:c=>{A.has(c)||d(c)},children:p.map((c,C)=>{const l=B(c),k=l?`${v}-${C}`:void 0;return t.jsxs(ne,{value:c.provider.id,icon:t.jsx(M,{agentType:c.provider.agentType,className:"mt-0.5 size-4"}),"aria-disabled":l?!0:void 0,"aria-describedby":k,onSelect:l?n=>n.preventDefault():void 0,className:L("items-start",l&&"cursor-not-allowed text-muted-foreground data-[highlighted]:text-muted-foreground"),children:[t.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[t.jsx("span",{className:"truncate",children:c.provider.name}),c.provider.isDefault&&t.jsx("span",{className:"shrink-0 text-xs font-normal text-muted-foreground",children:m("(默认)")})]}),c.provider.executionPermission?t.jsx("span",{className:"block text-xs font-normal text-muted-foreground",children:m(se[c.provider.executionPermission])}):null,l?t.jsx("span",{id:k,className:"block w-0 min-w-full whitespace-normal break-words text-xs font-normal text-destructive-ink",children:m(l)}):null]},c.provider.id)})})]})]}),N?t.jsx("div",{className:"px-2",children:N}):null]})}function Ce(r,a){return x.useMemo(()=>{for(let i=r.length-1;i>=0;i--){const s=r[i];if(s.tokenUsage&&typeof s.tokenUsage.totalTokens=="number"&&s.tokenUsage.totalTokens>0)return{totalTokens:s.tokenUsage.totalTokens,modelContextWindow:s.tokenUsage.modelContextWindow}}return a??null},[r,a])}export{je as P,ke as R,we as T,Ce as a,Se as u};