tower-studio 0.1.10 → 0.1.11

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 (644) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build/chunks/{0kjx__pnpm_05m.mc_._.js → 0-yb__pnpm_0dykqwq._.js} +167 -167
  3. package/.next/build/chunks/{[root-of-the-server]__13e2v6w._.js → [root-of-the-server]__01h52~y._.js} +3 -3
  4. package/.next/build/chunks/{[root-of-the-server]__0a5dngl._.js → [root-of-the-server]__097_v8t._.js} +7 -7
  5. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0n5jxhz._.js +13 -0
  6. package/.next/build/chunks/[turbopack]_runtime.js +1 -1
  7. package/.next/build/postcss.js +4 -4
  8. package/.next/build-manifest.json +9 -9
  9. package/.next/cache/.previewinfo +1 -1
  10. package/.next/cache/.rscinfo +1 -1
  11. package/.next/diagnostics/route-bundle-stats.json +237 -237
  12. package/.next/fallback-build-manifest.json +3 -3
  13. package/.next/prerender-manifest.json +3 -3
  14. package/.next/required-server-files.js +3 -3
  15. package/.next/required-server-files.json +3 -3
  16. package/.next/server/app/_global-error/page/build-manifest.json +6 -6
  17. package/.next/server/app/_global-error/page.js +11 -11
  18. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  19. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/_global-error.html +1 -1
  21. package/.next/server/app/_global-error.rsc +8 -8
  22. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  23. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  24. package/.next/server/app/_global-error.segments/_head.segment.rsc +4 -4
  25. package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  26. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  27. package/.next/server/app/_not-found/page/build-manifest.json +6 -6
  28. package/.next/server/app/_not-found/page/next-font-manifest.json +1 -1
  29. package/.next/server/app/_not-found/page/react-loadable-manifest.json +7 -7
  30. package/.next/server/app/_not-found/page/server-reference-manifest.json +80 -80
  31. package/.next/server/app/_not-found/page.js +19 -19
  32. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  33. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/_not-found.html +1 -1
  35. package/.next/server/app/_not-found.rsc +13 -13
  36. package/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
  37. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  38. package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
  39. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  40. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  41. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/api/adapters/test/route.js +8 -8
  43. package/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
  44. package/.next/server/app/api/browse-fs/route.js +6 -6
  45. package/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
  46. package/.next/server/app/api/files/assets/[projectId]/[filename]/route.js +6 -6
  47. package/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  48. package/.next/server/app/api/git/route.js +6 -6
  49. package/.next/server/app/api/git/route.js.nft.json +1 -1
  50. package/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js +6 -6
  51. package/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  52. package/.next/server/app/api/internal/assets/reveal/route.js +6 -6
  53. package/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
  54. package/.next/server/app/api/internal/assistant/chat/route.js +6 -6
  55. package/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  56. package/.next/server/app/api/internal/assistant/images/route.js +8 -8
  57. package/.next/server/app/api/internal/assistant/images/route.js.nft.json +1 -1
  58. package/.next/server/app/api/internal/assistant/route.js +6 -6
  59. package/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
  60. package/.next/server/app/api/internal/assistant/sessions/route.js +6 -6
  61. package/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
  62. package/.next/server/app/api/internal/cache/[...segments]/route.js +6 -6
  63. package/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/internal/hooks/install/route.js +6 -6
  65. package/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
  66. package/.next/server/app/api/internal/hooks/session/route.js +6 -6
  67. package/.next/server/app/api/internal/hooks/session/route.js.nft.json +1 -1
  68. package/.next/server/app/api/internal/hooks/stop/route.js +7 -7
  69. package/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
  70. package/.next/server/app/api/internal/hooks/upload/route.js +6 -6
  71. package/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
  72. package/.next/server/app/api/internal/notifications/pending/route.js +6 -6
  73. package/.next/server/app/api/internal/notifications/pending/route.js.nft.json +1 -1
  74. package/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js +7 -7
  75. package/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +1 -1
  76. package/.next/server/app/api/internal/terminal/[taskId]/input/route.js +7 -7
  77. package/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +1 -1
  78. package/.next/server/app/api/internal/terminal/[taskId]/start/route.js +9 -9
  79. package/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  80. package/.next/server/app/api/tasks/[taskId]/diff/route.js +7 -7
  81. package/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
  82. package/.next/server/app/api/tasks/[taskId]/merge/route.js +8 -8
  83. package/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
  84. package/.next/server/app/apple-icon.png/route.js +6 -6
  85. package/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  86. package/.next/server/app/favicon.ico/route.js +6 -6
  87. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  88. package/.next/server/app/icon0.svg/route.js +6 -6
  89. package/.next/server/app/icon0.svg/route.js.nft.json +1 -1
  90. package/.next/server/app/icon1.png/route.js +6 -6
  91. package/.next/server/app/icon1.png/route.js.nft.json +1 -1
  92. package/.next/server/app/index.html +1 -1
  93. package/.next/server/app/index.rsc +13 -13
  94. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  95. package/.next/server/app/index.segments/_full.segment.rsc +13 -13
  96. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  97. package/.next/server/app/index.segments/_index.segment.rsc +8 -8
  98. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  99. package/.next/server/app/manifest.json/route.js +6 -6
  100. package/.next/server/app/manifest.json/route.js.nft.json +1 -1
  101. package/.next/server/app/missions/page/build-manifest.json +6 -6
  102. package/.next/server/app/missions/page/next-font-manifest.json +1 -1
  103. package/.next/server/app/missions/page/react-loadable-manifest.json +7 -7
  104. package/.next/server/app/missions/page/server-reference-manifest.json +146 -146
  105. package/.next/server/app/missions/page.js +21 -21
  106. package/.next/server/app/missions/page.js.nft.json +1 -1
  107. package/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/onboarding/page/build-manifest.json +6 -6
  109. package/.next/server/app/onboarding/page/next-font-manifest.json +1 -1
  110. package/.next/server/app/onboarding/page/react-loadable-manifest.json +7 -7
  111. package/.next/server/app/onboarding/page/server-reference-manifest.json +80 -80
  112. package/.next/server/app/onboarding/page.js +20 -20
  113. package/.next/server/app/onboarding/page.js.nft.json +1 -1
  114. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/onboarding.html +1 -1
  116. package/.next/server/app/onboarding.rsc +15 -15
  117. package/.next/server/app/onboarding.segments/_full.segment.rsc +15 -15
  118. package/.next/server/app/onboarding.segments/_head.segment.rsc +4 -4
  119. package/.next/server/app/onboarding.segments/_index.segment.rsc +8 -8
  120. package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
  121. package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  122. package/.next/server/app/onboarding.segments/onboarding.segment.rsc +3 -3
  123. package/.next/server/app/page/build-manifest.json +6 -6
  124. package/.next/server/app/page/next-font-manifest.json +1 -1
  125. package/.next/server/app/page/react-loadable-manifest.json +7 -7
  126. package/.next/server/app/page/server-reference-manifest.json +80 -80
  127. package/.next/server/app/page.js +20 -20
  128. package/.next/server/app/page.js.nft.json +1 -1
  129. package/.next/server/app/page_client-reference-manifest.js +1 -1
  130. package/.next/server/app/settings/page/build-manifest.json +6 -6
  131. package/.next/server/app/settings/page/next-font-manifest.json +1 -1
  132. package/.next/server/app/settings/page/react-loadable-manifest.json +7 -7
  133. package/.next/server/app/settings/page/server-reference-manifest.json +116 -116
  134. package/.next/server/app/settings/page.js +20 -20
  135. package/.next/server/app/settings/page.js.nft.json +1 -1
  136. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  137. package/.next/server/app/settings.html +1 -1
  138. package/.next/server/app/settings.rsc +15 -15
  139. package/.next/server/app/settings.segments/_full.segment.rsc +15 -15
  140. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  141. package/.next/server/app/settings.segments/_index.segment.rsc +8 -8
  142. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  143. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  144. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  145. package/.next/server/app/workspaces/[workspaceId]/archive/page/build-manifest.json +6 -6
  146. package/.next/server/app/workspaces/[workspaceId]/archive/page/next-font-manifest.json +1 -1
  147. package/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +7 -7
  148. package/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +200 -200
  149. package/.next/server/app/workspaces/[workspaceId]/archive/page.js +20 -20
  150. package/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  151. package/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  152. package/.next/server/app/workspaces/[workspaceId]/assets/page/build-manifest.json +6 -6
  153. package/.next/server/app/workspaces/[workspaceId]/assets/page/next-font-manifest.json +1 -1
  154. package/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +7 -7
  155. package/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +176 -176
  156. package/.next/server/app/workspaces/[workspaceId]/assets/page.js +20 -20
  157. package/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  158. package/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  159. package/.next/server/app/workspaces/[workspaceId]/notes/page/build-manifest.json +6 -6
  160. package/.next/server/app/workspaces/[workspaceId]/notes/page/next-font-manifest.json +1 -1
  161. package/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +7 -7
  162. package/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +158 -158
  163. package/.next/server/app/workspaces/[workspaceId]/notes/page.js +20 -20
  164. package/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  165. package/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/workspaces/[workspaceId]/page/build-manifest.json +6 -6
  167. package/.next/server/app/workspaces/[workspaceId]/page/next-font-manifest.json +1 -1
  168. package/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +7 -7
  169. package/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +192 -192
  170. package/.next/server/app/workspaces/[workspaceId]/page.js +21 -21
  171. package/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  172. package/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  173. package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/build-manifest.json +6 -6
  174. package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/next-font-manifest.json +1 -1
  175. package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +7 -7
  176. package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +80 -80
  177. package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +20 -20
  178. package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  179. package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  180. package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/build-manifest.json +6 -6
  181. package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/next-font-manifest.json +1 -1
  182. package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +10 -10
  183. package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +200 -200
  184. package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +22 -22
  185. package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  186. package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  187. package/.next/server/app/workspaces/page/build-manifest.json +6 -6
  188. package/.next/server/app/workspaces/page/next-font-manifest.json +1 -1
  189. package/.next/server/app/workspaces/page/react-loadable-manifest.json +7 -7
  190. package/.next/server/app/workspaces/page/server-reference-manifest.json +122 -122
  191. package/.next/server/app/workspaces/page.js +20 -20
  192. package/.next/server/app/workspaces/page.js.nft.json +1 -1
  193. package/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  194. package/.next/server/chunks/04uy__next-internal_server_app_api_internal_assets_reveal_route_actions_0znebp..js +3 -0
  195. package/.next/server/chunks/04uy__next-internal_server_app_api_internal_assistant_chat_route_actions_00gjtz_.js +3 -0
  196. package/.next/server/chunks/04uy__next-internal_server_app_api_internal_assistant_images_route_actions_0.n5t~i.js +3 -0
  197. package/.next/server/chunks/04uy__next-internal_server_app_api_internal_assistant_sessions_route_actions_0-fm7rx.js +3 -0
  198. package/.next/server/chunks/04uy__next-internal_server_app_api_internal_hooks_install_route_actions_0l972g~.js +3 -0
  199. package/.next/server/chunks/04uy__next-internal_server_app_api_internal_hooks_session_route_actions_0.suzi1.js +3 -0
  200. package/.next/server/chunks/0afp_server_app_api_files_assets_[projectId]_[filename]_route_actions_0-awt9r.js +3 -0
  201. package/.next/server/chunks/0afp_server_app_api_internal_assets_[projectId]_[filename]_route_actions_0t6ek0w.js +3 -0
  202. package/.next/server/chunks/0afp_server_app_api_internal_notifications_pending_route_actions_0f-e1l..js +3 -0
  203. package/.next/server/chunks/0afp_server_app_api_internal_terminal_[taskId]_buffer_route_actions_0m0i0r_.js +3 -0
  204. package/.next/server/chunks/0afp_server_app_api_internal_terminal_[taskId]_input_route_actions_0w_hflw.js +3 -0
  205. package/.next/server/chunks/0afp_server_app_api_internal_terminal_[taskId]_start_route_actions_0tci.x0.js +3 -0
  206. package/.next/server/chunks/{03j-_@anthropic-ai_claude-agent-sdk_sdk_mjs_04597t~._.js → 0b0n_@anthropic-ai_claude-agent-sdk_sdk_mjs_0wzx_-c._.js} +2 -2
  207. package/.next/server/chunks/0l2w_next-internal_server_app_api_internal_cache_[___segments]_route_actions_0s95wfk.js +3 -0
  208. package/.next/server/chunks/0u0h_tower__next-internal_server_app_api_internal_hooks_upload_route_actions_10hulej.js +3 -0
  209. package/.next/server/chunks/0u0h_tower__next-internal_server_app_api_tasks_[taskId]_merge_route_actions_02facil.js +3 -0
  210. package/.next/server/chunks/{10ge_next_dist_08.3req._.js → 0uz~_next_dist_0auh~z2._.js} +3 -3
  211. package/.next/server/chunks/{10ge_next_dist_esm_build_templates_app-route_0liabcf.js → 0uz~_next_dist_esm_build_templates_app-route_0.k256s.js} +2 -2
  212. package/.next/server/chunks/0uz~_next_dist_esm_build_templates_app-route_05yec2y.js +4 -0
  213. package/.next/server/chunks/0uz~_next_dist_esm_build_templates_app-route_06vryvz.js +3 -0
  214. package/.next/server/chunks/0uz~_next_dist_esm_build_templates_app-route_0q64.kc.js +3 -0
  215. package/.next/server/chunks/{10ge_next_dist_esm_build_templates_app-route_0jwpolf.js → 0uz~_next_dist_esm_build_templates_app-route_0s-fzhv.js} +2 -2
  216. package/.next/server/chunks/0uz~_next_dist_esm_build_templates_app-route_12y4scn.js +3 -0
  217. package/.next/server/chunks/0y0r_f_tower__next-internal_server_app_api_adapters_test_route_actions_0i51gzp.js +3 -0
  218. package/.next/server/chunks/0y0r_f_tower__next-internal_server_app_api_internal_assistant_route_actions_0n4kn0g.js +3 -0
  219. package/.next/server/chunks/0y0r_f_tower__next-internal_server_app_api_internal_hooks_stop_route_actions_0tddg8n.js +3 -0
  220. package/.next/server/chunks/0y0r_f_tower__next-internal_server_app_api_tasks_[taskId]_diff_route_actions_0ric8cc.js +3 -0
  221. package/.next/server/chunks/121__zod_v4_classic_external_0~18d66.js +39 -0
  222. package/.next/server/chunks/[root-of-the-server]__0.9.bkp._.js +3 -0
  223. package/.next/server/chunks/[root-of-the-server]__003.cao._.js +3 -0
  224. package/.next/server/chunks/{[root-of-the-server]__11v.yk_._.js → [root-of-the-server]__02~bq0q._.js} +3 -3
  225. package/.next/server/chunks/[root-of-the-server]__05i_6jl._.js +3 -0
  226. package/.next/server/chunks/[root-of-the-server]__05mc_xk._.js +3 -0
  227. package/.next/server/chunks/[root-of-the-server]__06zd8x0._.js +3 -0
  228. package/.next/server/chunks/[root-of-the-server]__07_t6ha._.js +3 -0
  229. package/.next/server/chunks/{[root-of-the-server]__05pxb~w._.js → [root-of-the-server]__081dmfv._.js} +3 -3
  230. package/.next/server/chunks/[root-of-the-server]__0axwx7g._.js +20 -0
  231. package/.next/server/chunks/[root-of-the-server]__0bvqbq0._.js +3 -0
  232. package/.next/server/chunks/{[root-of-the-server]__12._zd-._.js → [root-of-the-server]__0hw3ulq._.js} +2 -2
  233. package/.next/server/chunks/{[root-of-the-server]__0sjsc63._.js → [root-of-the-server]__0i4isjs._.js} +3 -3
  234. package/.next/server/chunks/[root-of-the-server]__0il.3bc._.js +3 -0
  235. package/.next/server/chunks/{[root-of-the-server]__07-am_7._.js → [root-of-the-server]__0k6_.b8._.js} +2 -2
  236. package/.next/server/chunks/[root-of-the-server]__0lg6mol._.js +3 -0
  237. package/.next/server/chunks/[root-of-the-server]__0m31xle._.js +3 -0
  238. package/.next/server/chunks/[root-of-the-server]__0p-9erj._.js +3 -0
  239. package/.next/server/chunks/[root-of-the-server]__0p5iuez._.js +11 -0
  240. package/.next/server/chunks/[root-of-the-server]__0pe2bmo._.js +3 -0
  241. package/.next/server/chunks/[root-of-the-server]__0sgxys4._.js +3 -0
  242. package/.next/server/chunks/[root-of-the-server]__0t2ql2.._.js +3 -0
  243. package/.next/server/chunks/{[root-of-the-server]__0rpqx55._.js → [root-of-the-server]__0u4~z7h._.js} +2 -2
  244. package/.next/server/chunks/[root-of-the-server]__0uvjyz~._.js +3 -0
  245. package/.next/server/chunks/{[root-of-the-server]__0dqta7g._.js → [root-of-the-server]__0v.lagk._.js} +2 -2
  246. package/.next/server/chunks/[root-of-the-server]__0v6dx13._.js +3 -0
  247. package/.next/server/chunks/[root-of-the-server]__0ypx5xw._.js +3 -0
  248. package/.next/server/chunks/{[root-of-the-server]__0j3gbp7._.js → [root-of-the-server]__0ze75mm._.js} +2 -2
  249. package/.next/server/chunks/[root-of-the-server]__0~33o~m._.js +4 -0
  250. package/.next/server/chunks/[root-of-the-server]__0~_gk3k._.js +3 -0
  251. package/.next/server/chunks/[turbopack]_runtime.js +1 -1
  252. package/.next/server/chunks/project_f_tower_06227jx._.js +10 -0
  253. package/.next/server/chunks/{tower_03g~ktv._.js → project_f_tower_0ihrsvd._.js} +3 -3
  254. package/.next/server/chunks/project_f_tower_0n1s3ym._.js +3 -0
  255. package/.next/server/chunks/project_f_tower__next-internal_server_app_api_browse-fs_route_actions_0f1ms64.js +3 -0
  256. package/.next/server/chunks/project_f_tower__next-internal_server_app_api_git_route_actions_104q-kq.js +3 -0
  257. package/.next/server/chunks/project_f_tower__next-internal_server_app_apple-icon_png_route_actions_0bb5t_v.js +3 -0
  258. package/.next/server/chunks/project_f_tower__next-internal_server_app_favicon_ico_route_actions_0124g8-.js +3 -0
  259. package/.next/server/chunks/project_f_tower__next-internal_server_app_icon0_svg_route_actions_0kttj.d.js +3 -0
  260. package/.next/server/chunks/project_f_tower__next-internal_server_app_icon1_png_route_actions_12vfwry.js +3 -0
  261. package/.next/server/chunks/project_f_tower__next-internal_server_app_manifest_json_route_actions_0.~axx_.js +3 -0
  262. package/.next/server/chunks/project_f_tower_src_0er83xg._.js +3 -0
  263. package/.next/server/chunks/project_f_tower_src_11e.cv5._.js +3 -0
  264. package/.next/server/chunks/project_f_tower_src_lib_0p_b~77._.js +3 -0
  265. package/.next/server/chunks/{tower_src_lib_0uok6j3._.js → project_f_tower_src_lib_10p8sue._.js} +2 -2
  266. package/.next/server/chunks/project_f_tower_src_lib_constants_ts_020catz._.js +3 -0
  267. package/.next/server/chunks/ssr/0-yb__pnpm_072uqh4._.js +14 -0
  268. package/.next/server/chunks/ssr/0-yb__pnpm_0gui5y9._.js +3 -0
  269. package/.next/server/chunks/ssr/0-yb__pnpm_0qi3qqn._.js +3 -0
  270. package/.next/server/chunks/ssr/04uy_src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_01.s1p0._.js +3 -0
  271. package/.next/server/chunks/ssr/{03j-_@anthropic-ai_claude-agent-sdk_sdk_mjs_0kr2_y.._.js → 0b0n_@anthropic-ai_claude-agent-sdk_sdk_mjs_123v~_z._.js} +2 -2
  272. package/.next/server/chunks/ssr/0j~t_@monaco-editor_react_dist_index_mjs_0m1qx-m._.js +3 -0
  273. package/.next/server/chunks/ssr/0j~t_@monaco-editor_react_dist_index_mjs_0ni7by_._.js +3 -0
  274. package/.next/server/chunks/ssr/0rvf_@dnd-kit_core_dist_core_esm_0qazy~h.js +3 -0
  275. package/.next/server/chunks/ssr/0uz~_next_0smzj1m._.js +18 -0
  276. package/.next/server/chunks/ssr/0uz~_next_dist_058ju5m._.js +3 -0
  277. package/.next/server/chunks/ssr/0uz~_next_dist_0ot5z96._.js +19 -0
  278. package/.next/server/chunks/ssr/{10ge_next_dist_0pw4my6._.js → 0uz~_next_dist_0tnc.0z._.js} +2 -2
  279. package/.next/server/chunks/ssr/0uz~_next_dist_0viyn-6._.js +6 -0
  280. package/.next/server/chunks/ssr/{10ge_next_dist_0wjbiu9._.js → 0uz~_next_dist_0xqqv-_._.js} +2 -2
  281. package/.next/server/chunks/ssr/0uz~_next_dist_11y31c8._.js +3 -0
  282. package/.next/server/chunks/ssr/{10ge_next_dist_client_components_0--gzcy._.js → 0uz~_next_dist_client_components_0m_m~4r._.js} +2 -2
  283. package/.next/server/chunks/ssr/{10ge_next_dist_client_components_0eil7-a._.js → 0uz~_next_dist_client_components_0neff21._.js} +3 -3
  284. package/.next/server/chunks/ssr/0uz~_next_dist_client_components_builtin_forbidden_0kvxu2~.js +3 -0
  285. package/.next/server/chunks/ssr/0uz~_next_dist_client_components_builtin_global-error_0377e9o.js +3 -0
  286. package/.next/server/chunks/ssr/0uz~_next_dist_client_components_builtin_unauthorized_0wz-f2j.js +3 -0
  287. package/.next/server/chunks/ssr/{10ge_next_dist_compiled_0g45ze2._.js → 0uz~_next_dist_compiled_0m~qqw~._.js} +2 -2
  288. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_01q4vlm.js +4 -0
  289. package/.next/server/chunks/ssr/{10ge_next_dist_esm_build_templates_app-page_0fjd2ua.js → 0uz~_next_dist_esm_build_templates_app-page_0553tiz.js} +3 -3
  290. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_0as2amp.js +4 -0
  291. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_0crer~s.js +4 -0
  292. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_0cu4e.5.js +4 -0
  293. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_0gn6gc1.js +4 -0
  294. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_0h.vao6.js +4 -0
  295. package/.next/server/chunks/ssr/{10ge_next_dist_esm_build_templates_app-page_11pz1fw.js → 0uz~_next_dist_esm_build_templates_app-page_0k4fbs6.js} +3 -3
  296. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_0n2032y.js +4 -0
  297. package/.next/server/chunks/ssr/{10ge_next_dist_esm_build_templates_app-page_080g02v.js → 0uz~_next_dist_esm_build_templates_app-page_0y10ld_.js} +3 -3
  298. package/.next/server/chunks/ssr/{10ge_next_dist_esm_build_templates_app-page_0zgisbd.js → 0uz~_next_dist_esm_build_templates_app-page_0ysuakv.js} +3 -3
  299. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_136sj3a.js +4 -0
  300. package/.next/server/chunks/ssr/0uz~_next_dist_esm_build_templates_app-page_13jghu9.js +4 -0
  301. package/.next/server/chunks/ssr/0xjs_lucide-react_dist_esm_icons_0l6be37._.js +3 -0
  302. package/.next/server/chunks/ssr/0y0r_f_tower_src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0n4g3bn._.js +3 -0
  303. package/.next/server/chunks/ssr/[root-of-the-server]__0.hh.2a._.js +3 -0
  304. package/.next/server/chunks/ssr/[root-of-the-server]__0.r38oo._.js +3 -0
  305. package/.next/server/chunks/ssr/{[root-of-the-server]__05452ke._.js → [root-of-the-server]__00.lowc._.js} +3 -3
  306. package/.next/server/chunks/ssr/{[root-of-the-server]__0d5p5d.._.js → [root-of-the-server]__007tg36._.js} +3 -3
  307. package/.next/server/chunks/ssr/[root-of-the-server]__012ko5_._.js +3 -0
  308. package/.next/server/chunks/ssr/{[root-of-the-server]__0i6glcp._.js → [root-of-the-server]__025.0xa._.js} +3 -3
  309. package/.next/server/chunks/ssr/{[root-of-the-server]__0gsj3~.._.js → [root-of-the-server]__04u4kb4._.js} +3 -3
  310. package/.next/server/chunks/ssr/[root-of-the-server]__055w_hn._.js +3 -0
  311. package/.next/server/chunks/ssr/{[root-of-the-server]__0adx8p4._.js → [root-of-the-server]__05a17ca._.js} +3 -3
  312. package/.next/server/chunks/ssr/[root-of-the-server]__06japut._.js +3 -0
  313. package/.next/server/chunks/ssr/[root-of-the-server]__06qzctf._.js +3 -0
  314. package/.next/server/chunks/ssr/[root-of-the-server]__09mr4e7._.js +3 -0
  315. package/.next/server/chunks/ssr/[root-of-the-server]__0c1i04u._.js +3 -0
  316. package/.next/server/chunks/ssr/[root-of-the-server]__0db_p8v._.js +3 -0
  317. package/.next/server/chunks/ssr/[root-of-the-server]__0ffdrwp._.js +3 -0
  318. package/.next/server/chunks/ssr/[root-of-the-server]__0fkkh9j._.js +3 -0
  319. package/.next/server/chunks/ssr/[root-of-the-server]__0fu82np._.js +3 -0
  320. package/.next/server/chunks/ssr/[root-of-the-server]__0fwuc5u._.js +3 -0
  321. package/.next/server/chunks/ssr/{[root-of-the-server]__06sm5cw._.js → [root-of-the-server]__0hiekzn._.js} +2 -2
  322. package/.next/server/chunks/ssr/[root-of-the-server]__0i4rk9v._.js +47 -0
  323. package/.next/server/chunks/ssr/[root-of-the-server]__0m28~~t._.js +3 -0
  324. package/.next/server/chunks/ssr/[root-of-the-server]__0mf.3xq._.js +3 -0
  325. package/.next/server/chunks/ssr/[root-of-the-server]__0nmyvwk._.js +3 -0
  326. package/.next/server/chunks/ssr/[root-of-the-server]__0np-y3i._.js +3 -0
  327. package/.next/server/chunks/ssr/{[root-of-the-server]__0jux8~h._.js → [root-of-the-server]__0p_hwna._.js} +3 -3
  328. package/.next/server/chunks/ssr/[root-of-the-server]__0qwr~nq._.js +3 -0
  329. package/.next/server/chunks/ssr/[root-of-the-server]__0r6gkos._.js +30 -0
  330. package/.next/server/chunks/ssr/{[root-of-the-server]__1223b0_._.js → [root-of-the-server]__0u26l~e._.js} +3 -3
  331. package/.next/server/chunks/ssr/{[root-of-the-server]__04xn50b._.js → [root-of-the-server]__0uca1bc._.js} +3 -3
  332. package/.next/server/chunks/ssr/[root-of-the-server]__0v7fjw6._.js +3 -0
  333. package/.next/server/chunks/ssr/[root-of-the-server]__0v94jfv._.js +3 -0
  334. package/.next/server/chunks/ssr/[root-of-the-server]__0vn5cvq._.js +3 -0
  335. package/.next/server/chunks/ssr/{[root-of-the-server]__13-by9r._.js → [root-of-the-server]__0w.hk6m._.js} +3 -3
  336. package/.next/server/chunks/ssr/[root-of-the-server]__0w7gbe7._.js +3 -0
  337. package/.next/server/chunks/ssr/[root-of-the-server]__0w8l-4s._.js +3 -0
  338. package/.next/server/chunks/ssr/[root-of-the-server]__0wkjslq._.js +3 -0
  339. package/.next/server/chunks/ssr/[root-of-the-server]__0wsvmkr._.js +3 -0
  340. package/.next/server/chunks/ssr/[root-of-the-server]__0xe-o3g._.js +30 -0
  341. package/.next/server/chunks/ssr/[root-of-the-server]__0xe9b6_._.js +3 -0
  342. package/.next/server/chunks/ssr/[root-of-the-server]__0zemnbk._.js +3 -0
  343. package/.next/server/chunks/ssr/[root-of-the-server]__0zugnux._.js +3 -0
  344. package/.next/server/chunks/ssr/[root-of-the-server]__105vrk3._.js +3 -0
  345. package/.next/server/chunks/ssr/[root-of-the-server]__112new_._.js +3 -0
  346. package/.next/server/chunks/ssr/[root-of-the-server]__11j4k9o._.js +3 -0
  347. package/.next/server/chunks/ssr/[root-of-the-server]__13cjs8r._.js +3 -0
  348. package/.next/server/chunks/ssr/[root-of-the-server]__13eo85g._.js +3 -0
  349. package/.next/server/chunks/ssr/[root-of-the-server]__13x5mmo._.js +30 -0
  350. package/.next/server/chunks/ssr/[turbopack]_runtime.js +1 -1
  351. package/.next/server/chunks/ssr/project_f_tower_0-0bopv._.js +30 -0
  352. package/.next/server/chunks/ssr/project_f_tower_0.txwd8._.js +3 -0
  353. package/.next/server/chunks/ssr/{tower_0d.car1._.js → project_f_tower_02411e5._.js} +3 -3
  354. package/.next/server/chunks/ssr/project_f_tower_02x5vbj._.js +3 -0
  355. package/.next/server/chunks/ssr/project_f_tower_03k0qr1._.js +3 -0
  356. package/.next/server/chunks/ssr/{tower_0egtw-7._.js → project_f_tower_04g3~44._.js} +3 -3
  357. package/.next/server/chunks/ssr/project_f_tower_0cjk_8x._.js +30 -0
  358. package/.next/server/chunks/ssr/project_f_tower_0d-6.rs._.js +39 -0
  359. package/.next/server/chunks/ssr/project_f_tower_0ea6ill._.js +3 -0
  360. package/.next/server/chunks/ssr/project_f_tower_0f0-wva._.js +3 -0
  361. package/.next/server/chunks/ssr/project_f_tower_0ghw~2t._.js +3 -0
  362. package/.next/server/chunks/ssr/project_f_tower_0h79vn0._.js +3 -0
  363. package/.next/server/chunks/ssr/project_f_tower_0hgtev9._.js +7 -0
  364. package/.next/server/chunks/ssr/project_f_tower_0ivvjwd._.js +3 -0
  365. package/.next/server/chunks/ssr/project_f_tower_0jdkold._.js +3 -0
  366. package/.next/server/chunks/ssr/project_f_tower_0jy~1uf._.js +3 -0
  367. package/.next/server/chunks/ssr/{tower_0tuq2iz._.js → project_f_tower_0knz136._.js} +3 -3
  368. package/.next/server/chunks/ssr/project_f_tower_0l6ssf8._.js +3 -0
  369. package/.next/server/chunks/ssr/project_f_tower_0n6q9zh._.js +3 -0
  370. package/.next/server/chunks/ssr/project_f_tower_0ntkd-l._.js +6 -0
  371. package/.next/server/chunks/ssr/project_f_tower_0o5.y1e._.js +3 -0
  372. package/.next/server/chunks/ssr/project_f_tower_0p39h1r._.js +3 -0
  373. package/.next/server/chunks/ssr/project_f_tower_0sj3voe._.js +3 -0
  374. package/.next/server/chunks/ssr/project_f_tower_0u6dr5n._.js +3 -0
  375. package/.next/server/chunks/ssr/project_f_tower_0xkqjno._.js +3 -0
  376. package/.next/server/chunks/ssr/project_f_tower_0ym-aea._.js +3 -0
  377. package/.next/server/chunks/ssr/project_f_tower_10lk3gb._.js +30 -0
  378. package/.next/server/chunks/ssr/{tower_0h3r32m._.js → project_f_tower_10~x~zx._.js} +3 -3
  379. package/.next/server/chunks/ssr/project_f_tower__next-internal_server_app__global-error_page_actions_0r22s5i.js +3 -0
  380. package/.next/server/chunks/ssr/project_f_tower_src_0yr8rna._.js +3 -0
  381. package/.next/server/chunks/ssr/project_f_tower_src_actions_agent-actions_ts_0.s4~m-._.js +4 -0
  382. package/.next/server/chunks/ssr/project_f_tower_src_actions_file-actions_ts_02i742t._.js +3 -0
  383. package/.next/server/chunks/ssr/project_f_tower_src_app_missions_missions-client_tsx_0ums4qx._.js +3 -0
  384. package/.next/server/chunks/ssr/project_f_tower_src_app_onboarding_page_tsx_0_9_yoq._.js +3 -0
  385. package/.next/server/chunks/ssr/{tower_src_app_settings_page_tsx_0vo5e-o._.js → project_f_tower_src_app_settings_page_tsx_0oo06~d._.js} +2 -2
  386. package/.next/server/chunks/ssr/project_f_tower_src_app_workspaces_[workspaceId]_board-page-client_tsx_0jmj1xz._.js +7 -0
  387. package/.next/server/chunks/ssr/project_f_tower_src_components_ui_select_tsx_07scqtg._.js +3 -0
  388. package/.next/server/chunks/ssr/project_f_tower_src_lib_0-pi47a._.js +3 -0
  389. package/.next/server/chunks/ssr/project_f_tower_src_lib_0._5zby._.js +3 -0
  390. package/.next/server/chunks/ssr/project_f_tower_src_lib_0kwu.w7._.js +3 -0
  391. package/.next/server/chunks/ssr/project_f_tower_src_lib_0q3t9-e._.js +3 -0
  392. package/.next/server/chunks/ssr/project_f_tower_src_lib_11g-ixh._.js +3 -0
  393. package/.next/server/chunks/ssr/project_f_tower_src_lib_constants_ts_0.qkxto._.js +3 -0
  394. package/.next/server/edge/chunks/0s6b_next_dist_esm_build_templates_edge-wrapper_0gir.8i.js +3 -0
  395. package/.next/server/edge/chunks/project_f_tower_0zwq2~l._.js +3 -0
  396. package/.next/server/instrumentation/middleware-manifest.json +2 -2
  397. package/.next/server/instrumentation.js +3 -3
  398. package/.next/server/instrumentation.js.nft.json +1 -1
  399. package/.next/server/middleware-build-manifest.js +9 -9
  400. package/.next/server/next-font-manifest.js +1 -1
  401. package/.next/server/next-font-manifest.json +12 -12
  402. package/.next/server/pages/404.html +1 -1
  403. package/.next/server/pages/500.html +1 -1
  404. package/.next/server/server-reference-manifest.js +1 -1
  405. package/.next/server/server-reference-manifest.json +1015 -1015
  406. package/.next/static/chunks/0-49z0i7n9z_u.js +31 -0
  407. package/.next/static/chunks/0.vq_m53d7t~7.js +1 -0
  408. package/.next/static/chunks/006_yes1e~uq-.js +1 -0
  409. package/.next/static/chunks/03~7u57dwxswo.js +1 -0
  410. package/.next/static/chunks/048wsx4_3dx7m.js +1 -0
  411. package/.next/static/chunks/04rm7wn4pu3v9.js +1 -0
  412. package/.next/static/chunks/054pu3m7e37gx.js +1 -0
  413. package/.next/static/chunks/05fge.5j9lnpa.js +1 -0
  414. package/.next/static/chunks/{03e.4ymu.j5wl.js → 05r51bf1-_-x4.js} +1 -1
  415. package/.next/static/chunks/{16qoc.u84jlcd.js → 06hfc~t6~gtz9.js} +1 -1
  416. package/.next/static/chunks/{0xi0wi2z6otp9.js → 06xnbktd_jmb4.js} +2 -2
  417. package/.next/static/chunks/07_bc0h5~tysp.js +1 -0
  418. package/.next/static/chunks/09mkfd6kg8s2..js +1 -0
  419. package/.next/static/chunks/0afji0z13kos5.js +5 -0
  420. package/.next/static/chunks/0ayhcszr5.75h.js +1 -0
  421. package/.next/static/chunks/0azbwlqgcxx~9.js +1 -0
  422. package/.next/static/chunks/0c5h4.yuzpzs5.js +12 -0
  423. package/.next/static/chunks/0dlrmobwx~tvz.js +1 -0
  424. package/.next/static/chunks/0g-rx4evmd.pa.js +1 -0
  425. package/.next/static/chunks/0i5zk6woum~cm.js +1 -0
  426. package/.next/static/chunks/0kyb0fcxzykkx.js +1 -0
  427. package/.next/static/chunks/0odp5708u_28m.js +1 -0
  428. package/.next/static/chunks/0q6i_n.rkxpn0.js +1 -0
  429. package/.next/static/chunks/0qnz9q6uieuv8.js +1 -0
  430. package/.next/static/chunks/0qrp0pov94ecf.js +1 -0
  431. package/.next/static/chunks/0sa5eiyws1~n0.js +1 -0
  432. package/.next/static/chunks/0sdq_svi-w4cf.js +1 -0
  433. package/.next/static/chunks/0smj3ii_egywx.js +1 -0
  434. package/.next/static/chunks/0u6p4i4aoeb4m.js +1 -0
  435. package/.next/static/chunks/0upxmdjt9neoj.js +5 -0
  436. package/.next/static/chunks/0xvn7yrj70a9v.js +1 -0
  437. package/.next/static/chunks/0yjtd51nb081_.js +4 -0
  438. package/.next/static/chunks/10_azh3_hkhxj.js +1 -0
  439. package/.next/static/chunks/10xx474hrm.03.js +1 -0
  440. package/.next/static/chunks/116on53madp~2.js +2 -0
  441. package/.next/static/chunks/16ow8w3exqm6p.js +1 -0
  442. package/.next/static/chunks/{turbopack-0wjmrsi.z32s0.js → turbopack-12rg1oczocj42.js} +1 -1
  443. package/.next/trace +2 -2
  444. package/.next/trace-build +1 -1
  445. package/bin/tower.mjs +20 -10
  446. package/package.json +1 -1
  447. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0y_r.ay._.js +0 -13
  448. package/.next/server/chunks/0cve_next-internal_server_app_api_internal_cache_[___segments]_route_actions_09n1sa3.js +0 -3
  449. package/.next/server/chunks/0tp-_server_app_api_files_assets_[projectId]_[filename]_route_actions_02i2urs.js +0 -3
  450. package/.next/server/chunks/0tp-_server_app_api_internal_assets_[projectId]_[filename]_route_actions_0kjz576.js +0 -3
  451. package/.next/server/chunks/0tp-_server_app_api_internal_notifications_pending_route_actions_08bx38r.js +0 -3
  452. package/.next/server/chunks/0tp-_server_app_api_internal_terminal_[taskId]_buffer_route_actions_0bpyf5x.js +0 -3
  453. package/.next/server/chunks/0tp-_server_app_api_internal_terminal_[taskId]_input_route_actions_0alu32r.js +0 -3
  454. package/.next/server/chunks/0tp-_server_app_api_internal_terminal_[taskId]_start_route_actions_0swqog2.js +0 -3
  455. package/.next/server/chunks/0w1v_zod_v4_classic_external_0m-7hz_.js +0 -39
  456. package/.next/server/chunks/0~.g__next-internal_server_app_api_internal_assistant_chat_route_actions_0x-qbrh.js +0 -3
  457. package/.next/server/chunks/0~.g__next-internal_server_app_api_internal_assistant_images_route_actions_0vws40t.js +0 -3
  458. package/.next/server/chunks/0~.g__next-internal_server_app_api_internal_assistant_sessions_route_actions_0p09rcp.js +0 -3
  459. package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_00gmiw_.js +0 -3
  460. package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_0z9_0_i.js +0 -3
  461. package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_13w3ubu.js +0 -3
  462. package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_13~vb_i.js +0 -4
  463. package/.next/server/chunks/[root-of-the-server]__02p-gd5._.js +0 -3
  464. package/.next/server/chunks/[root-of-the-server]__0319djr._.js +0 -3
  465. package/.next/server/chunks/[root-of-the-server]__043lk8~._.js +0 -4
  466. package/.next/server/chunks/[root-of-the-server]__053y9tf._.js +0 -3
  467. package/.next/server/chunks/[root-of-the-server]__09gjz6h._.js +0 -3
  468. package/.next/server/chunks/[root-of-the-server]__0_irb2s._.js +0 -3
  469. package/.next/server/chunks/[root-of-the-server]__0c4edwt._.js +0 -3
  470. package/.next/server/chunks/[root-of-the-server]__0c7y1r0._.js +0 -3
  471. package/.next/server/chunks/[root-of-the-server]__0dj34zn._.js +0 -3
  472. package/.next/server/chunks/[root-of-the-server]__0ko_rm_._.js +0 -3
  473. package/.next/server/chunks/[root-of-the-server]__0miy2g.._.js +0 -3
  474. package/.next/server/chunks/[root-of-the-server]__0mt-eeb._.js +0 -3
  475. package/.next/server/chunks/[root-of-the-server]__0n-6-hc._.js +0 -3
  476. package/.next/server/chunks/[root-of-the-server]__0nur_ir._.js +0 -3
  477. package/.next/server/chunks/[root-of-the-server]__0pz60q-._.js +0 -20
  478. package/.next/server/chunks/[root-of-the-server]__0q~5ya5._.js +0 -3
  479. package/.next/server/chunks/[root-of-the-server]__0th.w7w._.js +0 -3
  480. package/.next/server/chunks/[root-of-the-server]__0u..agy._.js +0 -11
  481. package/.next/server/chunks/[root-of-the-server]__0umzekq._.js +0 -3
  482. package/.next/server/chunks/[root-of-the-server]__0wu61w.._.js +0 -3
  483. package/.next/server/chunks/[root-of-the-server]__130shf~._.js +0 -3
  484. package/.next/server/chunks/ssr/040e_@monaco-editor_react_dist_index_mjs_0t4i-ho._.js +0 -3
  485. package/.next/server/chunks/ssr/040e_@monaco-editor_react_dist_index_mjs_0z6t1fr._.js +0 -3
  486. package/.next/server/chunks/ssr/0kjx__pnpm_0g9g8h6._.js +0 -3
  487. package/.next/server/chunks/ssr/0kjx__pnpm_0l.5ii.._.js +0 -3
  488. package/.next/server/chunks/ssr/0kjx__pnpm_0wrn.h9._.js +0 -14
  489. package/.next/server/chunks/ssr/0rik_@dnd-kit_core_dist_core_esm_11giptg.js +0 -3
  490. package/.next/server/chunks/ssr/0~.g_src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_0bbseig._.js +0 -3
  491. package/.next/server/chunks/ssr/10ge_next_00.-vj.._.js +0 -18
  492. package/.next/server/chunks/ssr/10ge_next_dist_01n~t8z._.js +0 -6
  493. package/.next/server/chunks/ssr/10ge_next_dist_06_-w96._.js +0 -19
  494. package/.next/server/chunks/ssr/10ge_next_dist_0~ti7jc._.js +0 -3
  495. package/.next/server/chunks/ssr/10ge_next_dist_10.ihny._.js +0 -3
  496. package/.next/server/chunks/ssr/10ge_next_dist_client_components_builtin_forbidden_0nzsnb2.js +0 -3
  497. package/.next/server/chunks/ssr/10ge_next_dist_client_components_builtin_global-error_125sopd.js +0 -3
  498. package/.next/server/chunks/ssr/10ge_next_dist_client_components_builtin_unauthorized_0z93cpe.js +0 -3
  499. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_08khzah.js +0 -4
  500. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_09~o5q0.js +0 -4
  501. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0_rj_f4.js +0 -4
  502. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0c-wmj1.js +0 -4
  503. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0hpuyf0.js +0 -4
  504. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0knnyic.js +0 -4
  505. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0oi86k6.js +0 -4
  506. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0rmwdra.js +0 -4
  507. package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_12reczc.js +0 -4
  508. package/.next/server/chunks/ssr/119e_lucide-react_dist_esm_icons_0636jyq._.js +0 -3
  509. package/.next/server/chunks/ssr/[root-of-the-server]__0-0j_z3._.js +0 -3
  510. package/.next/server/chunks/ssr/[root-of-the-server]__0.8y0n9._.js +0 -3
  511. package/.next/server/chunks/ssr/[root-of-the-server]__0.uoh7q._.js +0 -3
  512. package/.next/server/chunks/ssr/[root-of-the-server]__01ws4-7._.js +0 -3
  513. package/.next/server/chunks/ssr/[root-of-the-server]__024-5kd._.js +0 -3
  514. package/.next/server/chunks/ssr/[root-of-the-server]__02ipahf._.js +0 -3
  515. package/.next/server/chunks/ssr/[root-of-the-server]__03.14vw._.js +0 -3
  516. package/.next/server/chunks/ssr/[root-of-the-server]__06o5v8i._.js +0 -30
  517. package/.next/server/chunks/ssr/[root-of-the-server]__08_0ex9._.js +0 -3
  518. package/.next/server/chunks/ssr/[root-of-the-server]__09m32ch._.js +0 -3
  519. package/.next/server/chunks/ssr/[root-of-the-server]__0_0kxz4._.js +0 -3
  520. package/.next/server/chunks/ssr/[root-of-the-server]__0bk3s4l._.js +0 -3
  521. package/.next/server/chunks/ssr/[root-of-the-server]__0bo1n69._.js +0 -3
  522. package/.next/server/chunks/ssr/[root-of-the-server]__0d7u1lw._.js +0 -3
  523. package/.next/server/chunks/ssr/[root-of-the-server]__0fg8.hp._.js +0 -3
  524. package/.next/server/chunks/ssr/[root-of-the-server]__0ibsor_._.js +0 -3
  525. package/.next/server/chunks/ssr/[root-of-the-server]__0j5~a_o._.js +0 -3
  526. package/.next/server/chunks/ssr/[root-of-the-server]__0jgbj6l._.js +0 -3
  527. package/.next/server/chunks/ssr/[root-of-the-server]__0ld6_w6._.js +0 -3
  528. package/.next/server/chunks/ssr/[root-of-the-server]__0l~dc3x._.js +0 -3
  529. package/.next/server/chunks/ssr/[root-of-the-server]__0n32nv5._.js +0 -30
  530. package/.next/server/chunks/ssr/[root-of-the-server]__0n8qufu._.js +0 -3
  531. package/.next/server/chunks/ssr/[root-of-the-server]__0ndt9h3._.js +0 -3
  532. package/.next/server/chunks/ssr/[root-of-the-server]__0p~u4y6._.js +0 -3
  533. package/.next/server/chunks/ssr/[root-of-the-server]__0q.du4s._.js +0 -3
  534. package/.next/server/chunks/ssr/[root-of-the-server]__0rs7pkn._.js +0 -3
  535. package/.next/server/chunks/ssr/[root-of-the-server]__0sysz2q._.js +0 -47
  536. package/.next/server/chunks/ssr/[root-of-the-server]__0t25~v8._.js +0 -3
  537. package/.next/server/chunks/ssr/[root-of-the-server]__0ti70do._.js +0 -3
  538. package/.next/server/chunks/ssr/[root-of-the-server]__0uevudp._.js +0 -30
  539. package/.next/server/chunks/ssr/[root-of-the-server]__0wwqzmm._.js +0 -3
  540. package/.next/server/chunks/ssr/[root-of-the-server]__0xt3-qb._.js +0 -3
  541. package/.next/server/chunks/ssr/[root-of-the-server]__0y-lkvf._.js +0 -3
  542. package/.next/server/chunks/ssr/[root-of-the-server]__0zvf.ro._.js +0 -3
  543. package/.next/server/chunks/ssr/[root-of-the-server]__11m7m-q._.js +0 -3
  544. package/.next/server/chunks/ssr/[root-of-the-server]__12f810l._.js +0 -3
  545. package/.next/server/chunks/ssr/[root-of-the-server]__13-egel._.js +0 -3
  546. package/.next/server/chunks/ssr/tower_0-nwtka._.js +0 -3
  547. package/.next/server/chunks/ssr/tower_0-omr_b._.js +0 -30
  548. package/.next/server/chunks/ssr/tower_01szasw._.js +0 -3
  549. package/.next/server/chunks/ssr/tower_035l~qv._.js +0 -3
  550. package/.next/server/chunks/ssr/tower_03jazku._.js +0 -3
  551. package/.next/server/chunks/ssr/tower_0donrdk._.js +0 -3
  552. package/.next/server/chunks/ssr/tower_0i9k4a6._.js +0 -3
  553. package/.next/server/chunks/ssr/tower_0kl_bfy._.js +0 -7
  554. package/.next/server/chunks/ssr/tower_0m_uudm._.js +0 -3
  555. package/.next/server/chunks/ssr/tower_0mn8ig7._.js +0 -3
  556. package/.next/server/chunks/ssr/tower_0mz4ut.._.js +0 -3
  557. package/.next/server/chunks/ssr/tower_0nuj.0p._.js +0 -39
  558. package/.next/server/chunks/ssr/tower_0pcqezm._.js +0 -3
  559. package/.next/server/chunks/ssr/tower_0pmey24._.js +0 -3
  560. package/.next/server/chunks/ssr/tower_0r7uuim._.js +0 -30
  561. package/.next/server/chunks/ssr/tower_0sojjnu._.js +0 -3
  562. package/.next/server/chunks/ssr/tower_0tc~.xl._.js +0 -30
  563. package/.next/server/chunks/ssr/tower_0ut7r._._.js +0 -3
  564. package/.next/server/chunks/ssr/tower_0wvk~r.._.js +0 -3
  565. package/.next/server/chunks/ssr/tower_10p15te._.js +0 -3
  566. package/.next/server/chunks/ssr/tower_10t13p4._.js +0 -6
  567. package/.next/server/chunks/ssr/tower_117pzh8._.js +0 -3
  568. package/.next/server/chunks/ssr/tower_11q5_.m._.js +0 -3
  569. package/.next/server/chunks/ssr/tower_138qlx5._.js +0 -3
  570. package/.next/server/chunks/ssr/tower__next-internal_server_app__global-error_page_actions_13t5~qk.js +0 -3
  571. package/.next/server/chunks/ssr/tower_src_077qk8s._.js +0 -3
  572. package/.next/server/chunks/ssr/tower_src_actions_agent-actions_ts_0j.e1tn._.js +0 -4
  573. package/.next/server/chunks/ssr/tower_src_actions_file-actions_ts_0424lna._.js +0 -3
  574. package/.next/server/chunks/ssr/tower_src_app_missions_missions-client_tsx_0a9vjyr._.js +0 -3
  575. package/.next/server/chunks/ssr/tower_src_app_onboarding_page_tsx_0_3krz1._.js +0 -3
  576. package/.next/server/chunks/ssr/tower_src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0zfgzhi._.js +0 -3
  577. package/.next/server/chunks/ssr/tower_src_app_workspaces_[workspaceId]_board-page-client_tsx_0kjp1u0._.js +0 -7
  578. package/.next/server/chunks/ssr/tower_src_components_ui_select_tsx_10ajx~2._.js +0 -3
  579. package/.next/server/chunks/ssr/tower_src_lib_01420_4._.js +0 -3
  580. package/.next/server/chunks/ssr/tower_src_lib_0i-zjpa._.js +0 -3
  581. package/.next/server/chunks/ssr/tower_src_lib_0ja~kdb._.js +0 -3
  582. package/.next/server/chunks/ssr/tower_src_lib_0obw2r8._.js +0 -3
  583. package/.next/server/chunks/ssr/tower_src_lib_0rgfsuf._.js +0 -3
  584. package/.next/server/chunks/ssr/tower_src_lib_constants_ts_0o218_c._.js +0 -3
  585. package/.next/server/chunks/tower_05du07.._.js +0 -10
  586. package/.next/server/chunks/tower_0a-x6m.._.js +0 -3
  587. package/.next/server/chunks/tower__next-internal_server_app_api_adapters_test_route_actions_13jw~9b.js +0 -3
  588. package/.next/server/chunks/tower__next-internal_server_app_api_browse-fs_route_actions_0k5p2xy.js +0 -3
  589. package/.next/server/chunks/tower__next-internal_server_app_api_git_route_actions_0rvpodb.js +0 -3
  590. package/.next/server/chunks/tower__next-internal_server_app_api_internal_assets_reveal_route_actions_0idwm6j.js +0 -3
  591. package/.next/server/chunks/tower__next-internal_server_app_api_internal_assistant_route_actions_0rdz1d..js +0 -3
  592. package/.next/server/chunks/tower__next-internal_server_app_api_internal_hooks_install_route_actions_06dxleu.js +0 -3
  593. package/.next/server/chunks/tower__next-internal_server_app_api_internal_hooks_session_route_actions_0wlv4lf.js +0 -3
  594. package/.next/server/chunks/tower__next-internal_server_app_api_internal_hooks_stop_route_actions_101_oub.js +0 -3
  595. package/.next/server/chunks/tower__next-internal_server_app_api_internal_hooks_upload_route_actions_0439qz_.js +0 -3
  596. package/.next/server/chunks/tower__next-internal_server_app_api_tasks_[taskId]_diff_route_actions_0nthc84.js +0 -3
  597. package/.next/server/chunks/tower__next-internal_server_app_api_tasks_[taskId]_merge_route_actions_0g.x0nb.js +0 -3
  598. package/.next/server/chunks/tower__next-internal_server_app_apple-icon_png_route_actions_0bni-sb.js +0 -3
  599. package/.next/server/chunks/tower__next-internal_server_app_favicon_ico_route_actions_0kw~xj2.js +0 -3
  600. package/.next/server/chunks/tower__next-internal_server_app_icon0_svg_route_actions_0nww9-e.js +0 -3
  601. package/.next/server/chunks/tower__next-internal_server_app_icon1_png_route_actions_09h.ywu.js +0 -3
  602. package/.next/server/chunks/tower__next-internal_server_app_manifest_json_route_actions_080ob~r.js +0 -3
  603. package/.next/server/chunks/tower_src_0..vg-t._.js +0 -3
  604. package/.next/server/chunks/tower_src_05rqj.1._.js +0 -3
  605. package/.next/server/chunks/tower_src_lib_0w8qt4s._.js +0 -3
  606. package/.next/server/chunks/tower_src_lib_constants_ts_0cxd4.p._.js +0 -3
  607. package/.next/server/edge/chunks/0y9m_next_dist_esm_build_templates_edge-wrapper_0cx_eo..js +0 -3
  608. package/.next/server/edge/chunks/tower_0wvfs38._.js +0 -3
  609. package/.next/static/chunks/0-z_mj0p3..hy.js +0 -1
  610. package/.next/static/chunks/00z-g3x93ngvn.js +0 -1
  611. package/.next/static/chunks/05-b9qqm3av9~.js +0 -1
  612. package/.next/static/chunks/053~3fys7om-7.js +0 -5
  613. package/.next/static/chunks/05~v02mkan5z..js +0 -1
  614. package/.next/static/chunks/0887ab.hh21q9.js +0 -1
  615. package/.next/static/chunks/0abtpeymj-58i.js +0 -1
  616. package/.next/static/chunks/0c7oqfzd78s3-.js +0 -1
  617. package/.next/static/chunks/0eaa2lmymh2fx.js +0 -1
  618. package/.next/static/chunks/0g4scpy5b3a_n.js +0 -1
  619. package/.next/static/chunks/0ho7y42kl8m7v.js +0 -1
  620. package/.next/static/chunks/0iudqcn98ftki.js +0 -1
  621. package/.next/static/chunks/0j9qriqni_r1..js +0 -2
  622. package/.next/static/chunks/0j~wmjbqds1dv.js +0 -1
  623. package/.next/static/chunks/0k.u8sxy~e469.js +0 -4
  624. package/.next/static/chunks/0lvd52mjiit6s.js +0 -1
  625. package/.next/static/chunks/0mq0uqbbbb1~2.js +0 -1
  626. package/.next/static/chunks/0mvu29h4.06~b.js +0 -1
  627. package/.next/static/chunks/0omj~p3uxkic-.js +0 -1
  628. package/.next/static/chunks/0rej~f94o9a~6.js +0 -5
  629. package/.next/static/chunks/0t-gr6j-c65qb.js +0 -1
  630. package/.next/static/chunks/0tcl81ybuob5i.js +0 -1
  631. package/.next/static/chunks/0uqimvsni_op~.js +0 -1
  632. package/.next/static/chunks/0wt3kws~_yr8z.js +0 -1
  633. package/.next/static/chunks/0z2bzovqhl2f5.js +0 -1
  634. package/.next/static/chunks/0z7bwntvfhxzi.js +0 -12
  635. package/.next/static/chunks/10n23t.1hpb-1.js +0 -1
  636. package/.next/static/chunks/14xzmrt5ly6gq.js +0 -31
  637. package/.next/static/chunks/151wr~6x8aclx.js +0 -1
  638. package/.next/static/chunks/16w-ap~msrwpj.js +0 -1
  639. package/.next/static/chunks/17tob96chk6i1.js +0 -1
  640. package/.next/static/chunks/17zywpt-0o8gl.js +0 -1
  641. package/.next/static/chunks/185n7s7fwb2j_.js +0 -1
  642. /package/.next/static/{KX5Si-44bPnjdFNmiHDRY → qVmkMYUuxwdsiFTnn1wfK}/_buildManifest.js +0 -0
  643. /package/.next/static/{KX5Si-44bPnjdFNmiHDRY → qVmkMYUuxwdsiFTnn1wfK}/_clientMiddlewareManifest.js +0 -0
  644. /package/.next/static/{KX5Si-44bPnjdFNmiHDRY → qVmkMYUuxwdsiFTnn1wfK}/_ssgManifest.js +0 -0
@@ -1,4 +0,0 @@
1
- module.exports=[200082,a=>{"use strict";var b=a.i(998503),c=a.i(284527),d=a.i(391313),e=a.i(605389),f=a.i(703714),g=a.i(787084),h=a.i(988594),i=a.i(697265);class j extends Error{code;provider;constructor(a,b,c){super(c),this.code=a,this.provider=b,this.name="AiProviderError"}}async function k(a){return c.db.aiCapabilityConfig.findUnique({where:{slot:a}})}async function l(a){let b=await k(a),c=b?.provider??"claude",d=b?.model??void 0,e=i.providerRegistry.get(c);if(!e)throw new j("CLI_NOT_FOUND",c,`Provider "${c}" 未注册`);let f=e.cli?.adapter;if(!f)throw new j("UNSUPPORTED_MODE",c,`Provider "${c}" 不支持 CLI 模式`);return{adapter:f,provider:e,model:d}}var m=a.i(924868),n=a.i(446786),o=a.i(814747),p=a.i(126892);let q=g.logger.create("agent-actions"),r=(0,o.join)((0,n.tmpdir)(),"tower-signals");async function s(a,b){try{await (0,m.mkdir)(r,{recursive:!0,mode:448}),await (0,m.writeFile)((0,o.join)(r,`exit-${a}`),String(b),{mode:384})}catch{}}function t(a,b){try{return JSON.parse(a)}catch{throw Error(`CLI Profile ${b} 格式损坏,请在 Settings 中修复`)}}async function u(a,b){let e=await c.db.taskMessage.create({data:{role:"USER",content:b,taskId:a}});return(0,d.revalidatePath)("/workspaces"),{userMessage:e}}async function v(a){return c.db.taskMessage.findMany({where:{taskId:a},orderBy:{createdAt:"asc"}})}async function w(a,b="CLAUDE_CODE",e,f){let g=await c.db.taskExecution.create({data:{taskId:a,agent:b,status:"RUNNING",startedAt:new Date,worktreePath:e??null,worktreeBranch:f??null}});return await c.db.task.update({where:{id:a},data:{status:"IN_PROGRESS"}}),(0,d.revalidatePath)("/workspaces"),g}async function x(a,b="FAILED"){let e=await c.db.taskExecution.update({where:{id:a},data:{status:b,endedAt:new Date}});return(0,d.revalidatePath)("/workspaces"),e}async function y(b){let{destroySession:e,getSession:f}=await a.A(93322),g=f(b),h=g?.getBuffer()??"",i=await c.db.taskExecution.findFirst({where:{taskId:b,status:"RUNNING"},orderBy:{createdAt:"desc"}}),j=await c.db.task.findUnique({where:{id:b},include:{project:{select:{localPath:!0}}}});if(e(b),i){await c.db.taskExecution.update({where:{id:i.id},data:{status:"COMPLETED",endedAt:new Date}}),await c.db.task.update({where:{id:b},data:{status:"IN_REVIEW"}});let d=i.worktreePath||j?.project?.localPath||null,{captureExecutionSummary:e}=await a.A(528814);await e(i.id,b,0,h,d)}(0,d.revalidatePath)("/workspaces")}async function z(a){return c.db.taskExecution.findMany({where:{taskId:a},orderBy:{createdAt:"desc"},include:{insightNote:{select:{id:!0,title:!0,content:!0}}}})}async function A(b,e){let g=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(!g)throw Error("Task not found");if(!g.project?.localPath)throw Error("Project has no local path configured");await c.db.taskExecution.updateMany({where:{taskId:b,status:"RUNNING",NOT:{sessionId:e}},data:{status:"FAILED",endedAt:new Date}});let i=await c.db.taskExecution.findFirst({where:{taskId:b,sessionId:e},orderBy:{createdAt:"desc"}});if(!i)throw Error("Previous execution not found");let j=i.worktreePath??g.project.localPath,k=g.subPath?(0,o.join)(j,g.subPath):j,m=await c.db.cliProfile.findFirst({where:{isDefault:!0}});if(!m)throw Error("No default CLI profile found — run seed first");let n=t(m.baseArgs,"baseArgs"),p=t(m.envVars,"envVars"),r=await (0,h.readConfigValue)("terminal.idleTimeoutSec",180),{adapter:u}=await l("terminal"),v=u.buildEnvOverrides({taskId:b,taskTitle:g.title,apiUrl:`http://localhost:${process.env.PORT||"3000"}`,callbackUrl:i.callbackUrl??void 0}),w=await c.db.taskExecution.update({where:{id:i.id},data:{status:"RUNNING",endedAt:null}});await c.db.task.update({where:{id:b},data:{status:"IN_PROGRESS"}}),(0,d.revalidatePath)("/workspaces");let x=await (0,h.readConfigValue)("onboarding.username",""),y=u.buildSpawnArgs({taskId:b,prompt:"",cwd:k,resumeSessionId:e,profileArgs:[...n,...x?["--append-system-prompt",`The user's name is ${x}.`]:[]],profileEnvVars:p,envOverrides:v}),z=/no conversation found with session id|unknown session|session .* not found/i;return(0,f.createSession)(b,y.command,y.args,k,()=>{},async d=>{await s(b,d);let f=await c.db.taskExecution.findUnique({where:{id:w.id}});if(f?.status!=="RUNNING")return;let{getSession:h}=await a.A(93322),j=h(b),k=j?.getBuffer()??"";if(0!==d&&z.test(k)){q.info("Session resume failed — retrying with fresh execution",{taskId:b,previousSessionId:e}),await c.db.taskExecution.update({where:{id:w.id},data:{status:"FAILED",endedAt:new Date}}).catch(()=>{});try{await C(b,g.title)}catch(a){q.error("Fresh execution retry also failed",a,{taskId:b})}return}await c.db.taskExecution.update({where:{id:w.id},data:{status:0===d?"COMPLETED":"FAILED",endedAt:new Date}}).catch(()=>{});let l=i.worktreePath||g.project.localPath,{captureExecutionSummary:m}=await a.A(528814);await m(w.id,b,d,k,l);let{dispatchTaskCompletionEvent:n}=await a.A(414961);await n({taskId:b,taskTitle:g.title,status:0===d?"COMPLETED":"FAILED",executionId:w.id,workspaceId:g.project.workspaceId}),0===d&&await c.db.task.update({where:{id:b},data:{status:"IN_REVIEW"}}).catch(()=>{})},y.env,void 0,1e3*r),{executionId:w.id,worktreePath:i.worktreePath??j??null}}async function B(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(!e)throw Error("Task not found");if(!e.project?.localPath)throw Error("Project has no local path configured");let g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}}),{destroySession:i}=await a.A(93322);i(b),await c.db.taskExecution.updateMany({where:{taskId:b,status:"RUNNING"},data:{status:"FAILED",endedAt:new Date}});let j=g?.worktreePath??e.project.localPath,k=e.subPath?(0,o.join)(j,e.subPath):j,m=await c.db.cliProfile.findFirst({where:{isDefault:!0}});if(!m)throw Error("No default CLI profile found — run seed first");let n=t(m.baseArgs,"baseArgs"),p=t(m.envVars,"envVars"),q=await (0,h.readConfigValue)("terminal.idleTimeoutSec",180),{adapter:r,provider:u}=await l("terminal"),v=r.buildEnvOverrides({taskId:b,taskTitle:e.title,apiUrl:`http://localhost:${process.env.PORT||"3000"}`}),w=await c.db.taskExecution.create({data:{taskId:b,agent:u.agentFieldValue,status:"RUNNING",startedAt:new Date,worktreePath:g?.worktreePath??null,worktreeBranch:g?.worktreeBranch??null}});await c.db.task.update({where:{id:b},data:{status:"IN_PROGRESS"}}),(0,d.revalidatePath)("/workspaces");let x=await (0,h.readConfigValue)("onboarding.username",""),y=r.buildSpawnArgs({taskId:b,prompt:"",cwd:k,continueLatest:!0,profileArgs:[...n,...x?["--append-system-prompt",`The user's name is ${x}.`]:[]],profileEnvVars:p,envOverrides:v});return(0,f.createSession)(b,y.command,y.args,k,()=>{},async d=>{await s(b,d);let f=await c.db.taskExecution.findUnique({where:{id:w.id}});if(f?.status!=="RUNNING")return;let{getSession:h}=await a.A(93322),i=h(b),j=i?.getBuffer()??"";await c.db.taskExecution.update({where:{id:w.id},data:{status:0===d?"COMPLETED":"FAILED",endedAt:new Date}}).catch(()=>{});let k=g?.worktreePath||e.project.localPath,{captureExecutionSummary:l}=await a.A(528814);await l(w.id,b,d,j,k);let{dispatchTaskCompletionEvent:m}=await a.A(414961);await m({taskId:b,taskTitle:e.title,status:0===d?"COMPLETED":"FAILED",executionId:w.id,workspaceId:e.project.workspaceId}),0===d&&await c.db.task.update({where:{id:b},data:{status:"IN_REVIEW"}}).catch(()=>{})},y.env,void 0,1e3*q),{executionId:w.id,worktreePath:g?.worktreePath??j??null}}async function C(b,g,i,j){let k,p,r=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(!r)throw Error("Task not found");if(!r.project?.localPath)throw Error("Project has no local path configured");let u=await (0,h.readConfigValue)("system.maxConcurrentExecutions",20);if(await c.db.taskExecution.count({where:{status:"RUNNING"}})>=u)throw Error(`已达并发上限(${u}),请等待其他任务完成后再启动`);let v=await c.db.cliProfile.findFirst({where:{isDefault:!0}});if(!v)throw Error("No default CLI profile found — run seed first");let w=t(v.baseArgs,"baseArgs"),x=t(v.envVars,"envVars"),y=await (0,h.readConfigValue)("terminal.idleTimeoutSec",180),{adapter:z,provider:A,model:B}=await l("terminal");await c.db.taskExecution.updateMany({where:{taskId:b,status:"RUNNING"},data:{status:"FAILED",endedAt:new Date}}),"IN_PROGRESS"!==r.status&&(await c.db.task.update({where:{id:b},data:{status:"IN_PROGRESS"}}),(0,d.revalidatePath)("/workspaces"));let C=await c.db.taskMessage.findMany({where:{taskId:b},orderBy:{createdAt:"desc"},take:10}),D=[`Task: ${r.title}`,r.description?`Description: ${r.description}`:"",C.length>0?`Recent conversation:
2
- ${C.reverse().map(a=>`${a.role}: ${a.content}`).join("\n")}`:"",g.trim()?`User message: ${g}`:""].filter(Boolean).join("\n\n"),E=i??r.promptId;if(E){let a=await c.db.agentPrompt.findUnique({where:{id:E}});a?.content&&(p=await (0,m.mkdtemp)((0,o.join)((0,n.tmpdir)(),"tower-pty-")),k=(0,o.join)(p,"instructions.md"),await (0,m.writeFile)(k,a.content,"utf-8"))}let F=null,G=null;if(r.baseBranch&&r.project.localPath){let{worktreePath:a,worktreeBranch:c}=await (0,e.createWorktree)(r.project.localPath,b,r.baseBranch);F=a,G=c}let H=F??r.project.localPath,I=r.subPath?(0,o.join)(H,r.subPath):H,J=await c.db.taskExecution.create({data:{taskId:b,agent:A.agentFieldValue,status:"RUNNING",startedAt:new Date,worktreePath:F??null,worktreeBranch:G??null,callbackUrl:j??null}});if(r.project.localPath)try{let b,{execFileSync:d}=await a.A(144264);(b=F&&r.baseBranch?d("git",["merge-base",r.baseBranch,"HEAD"],{cwd:F,encoding:"utf-8",timeout:5e3}).trim():d("git",["rev-parse","HEAD"],{cwd:r.project.localPath,encoding:"utf-8",timeout:5e3}).trim())&&await c.db.taskExecution.update({where:{id:J.id},data:{forkCommit:b}})}catch{}let K="";if(k){let{readFile:b}=await a.A(260815);K+=await b(k,"utf-8")}let L=await (0,h.readConfigValue)("onboarding.username","");L&&(K+=(K?"\n":"")+`The user's name is ${L}.`);let M=z.buildSpawnArgs({taskId:b,prompt:D,cwd:I,profileArgs:[...w,...K?["--append-system-prompt",K]:[],...B?["--model",B]:[]],profileEnvVars:x,envOverrides:z.buildEnvOverrides({taskId:b,taskTitle:r.title,apiUrl:`http://localhost:${process.env.PORT||"3000"}`,callbackUrl:j??void 0})});return(0,f.createSession)(b,M.command,M.args,I,()=>{},async d=>{await s(b,d);let e=await c.db.taskExecution.findUnique({where:{id:J.id}});if(e?.status!=="RUNNING")return;let{getSession:f}=await a.A(93322),g=f(b),h=g?.getBuffer()??"";await c.db.taskExecution.update({where:{id:J.id},data:{status:0===d?"COMPLETED":"FAILED",endedAt:new Date}}).catch(a=>{q.error("Failed to update execution status",a)});let i=F||r.project.localPath,{captureExecutionSummary:j}=await a.A(528814);await j(J.id,b,d,h,i);let{dispatchTaskCompletionEvent:k}=await a.A(414961);await k({taskId:b,taskTitle:r.title,status:0===d?"COMPLETED":"FAILED",executionId:J.id,workspaceId:r.project.workspaceId}),0===d&&await c.db.task.update({where:{id:b},data:{status:"IN_REVIEW"}}).catch(a=>{q.error("Failed to update task status",a)}),p&&await (0,m.rm)(p,{recursive:!0,force:!0}).catch(()=>{})},M.env,void 0,1e3*y),{executionId:J.id,worktreePath:F??H??null}}async function D(){return(await c.db.taskExecution.findMany({where:{status:"RUNNING"},orderBy:{startedAt:"asc"},include:{task:{include:{project:{include:{workspace:!0}}}}}})).map(a=>({executionId:a.id,taskId:a.taskId,taskTitle:a.task.title,projectId:a.task.project.id,projectName:a.task.project.name,projectAlias:a.task.project.alias,projectLocalPath:a.task.project.localPath,workspaceId:a.task.project.workspace.id,workspaceName:a.task.project.workspace.name,worktreePath:a.worktreePath,startedAt:a.startedAt?.toISOString()??null}))}(0,p.ensureServerEntryExports)([u,v,w,x,y,z,A,B,C,D]),(0,b.registerServerReference)(u,"60a9e99f427fd0f0ff2441040a067bd1c2ee05cb5c",null),(0,b.registerServerReference)(v,"40233935341d7e756ee3f5db1ad0ba3480c97d4c06",null),(0,b.registerServerReference)(w,"78cd87ccaf5f012a904278b562b9a2983e4afd081d",null),(0,b.registerServerReference)(x,"60d7d06b61d7ee83dccdd74d0ced3f61eba459f570",null),(0,b.registerServerReference)(y,"40277c58c7db736b9f772aa25c27e2efec4c1ec24c",null),(0,b.registerServerReference)(z,"40ed6873e031184384c0ecf15f815a13de5820bfa1",null),(0,b.registerServerReference)(A,"608a1e69db59b3af747f4194ccb8b2db70f034437c",null),(0,b.registerServerReference)(B,"409dfba5eaab2515ac1954906b83d50b3c628f1d1b",null),(0,b.registerServerReference)(C,"780fbf51c8301f404b2c4273b548d05ab19803b5ac",null),(0,b.registerServerReference)(D,"00007a5674cb89cfda231d35cfcc39eb813fc36891",null),a.s(["continueLatestPtyExecution",0,B,"getActiveExecutionsAcrossWorkspaces",0,D,"getTaskExecutions",0,z,"getTaskMessages",0,v,"resumePtyExecution",0,A,"sendTaskMessage",0,u,"startPtyExecution",0,C,"startTaskExecution",0,w,"stopPtyExecution",0,y,"stopTaskExecution",0,x],200082)}];
3
-
4
- //# sourceMappingURL=tower_src_actions_agent-actions_ts_0j.e1tn._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[623296,a=>{"use strict";a.s([],552262),a.i(552262),a.i(216071),a.i(546413),a.i(294065),a.i(420234),a.i(93125),a.i(520262),a.i(746135),a.i(886365),a.i(905769);var b=a.i(441388);let c=(0,b.createServerReference)("609314086968febbf2bd836a6ac8eb36390f44db7e",b.callServer,void 0,b.findSourceMapURL,"revealInFinder");a.s(["revealInFinder",0,c],623296)}];
2
-
3
- //# sourceMappingURL=tower_src_actions_file-actions_ts_0424lna._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[917691,a=>{"use strict";var b=a.i(348273),c=a.i(399424),d=a.i(282980),e=a.i(441388);let f=(0,e.createServerReference)("00007a5674cb89cfda231d35cfcc39eb813fc36891",e.callServer,void 0,e.findSourceMapURL,"getActiveExecutionsAcrossWorkspaces");var g=a.i(372035);let h=[{id:"1x1",label:"1×1",cols:1,rows:1,minHeight:"480px",desc:"Focus mode"},{id:"2x1",label:"2×1",cols:2,rows:1,minHeight:"480px",desc:"Side by side"},{id:"3x2",label:"3×2",cols:3,rows:2,minHeight:"300px",desc:"Default"},{id:"2x2",label:"2×2",cols:2,rows:2,minHeight:"300px",desc:"Balanced"},{id:"4x2",label:"4×2",cols:4,rows:2,minHeight:"240px",desc:"Wide monitor"},{id:"3x3",label:"3×3",cols:3,rows:3,minHeight:"240px",desc:"Max overview"}];var i=a.i(344838),j=a.i(422917),k=a.i(580283),l=a.i(173250);let m=(0,l.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]);var n=a.i(25664);function o({cols:a,rows:c,active:d}){let e=Array.from({length:a*c});return(0,b.jsx)("div",{className:`grid gap-[1px] w-7 h-5 p-[3px] rounded-sm border shrink-0 ${d?"border-primary bg-primary/10":"border-border bg-muted"}`,style:{gridTemplateColumns:`repeat(${a}, 1fr)`,gridTemplateRows:`repeat(${c}, 1fr)`},children:e.map((a,c)=>(0,b.jsx)("div",{className:`rounded-[1px] min-w-0 min-h-0 ${d?"bg-primary":"bg-muted-foreground/40"}`},c))})}let p="custom";function q({value:a,customValue:e,onChange:f}){let{t:g}=(0,d.useI18n)(),[i,k]=(0,c.useState)(!1),l=(0,c.useRef)(null),m=a===p,r=m?null:h.find(b=>b.id===a)??h[2],[s,t]=(0,c.useState)(e?.cols??2),[u,v]=(0,c.useState)(e?.rows??2),[w,x]=(0,c.useState)({minCols:1,maxCols:5,minRows:1,maxRows:5});(0,c.useEffect)(()=>{(0,n.getConfigValues)(["missions.grid.minCols","missions.grid.maxCols","missions.grid.minRows","missions.grid.maxRows"]).then(a=>{x({minCols:a["missions.grid.minCols"]??1,maxCols:a["missions.grid.maxCols"]??5,minRows:a["missions.grid.minRows"]??1,maxRows:a["missions.grid.maxRows"]??5})})},[]),(0,c.useEffect)(()=>{e&&(t(e.cols),v(e.rows))},[e?.cols,e?.rows]),(0,c.useEffect)(()=>{if(i)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a);function a(a){l.current&&!l.current.contains(a.target)&&k(!1)}},[i]);let y=(a,b,c)=>Math.max(b,Math.min(c,a)),z=m?s:r?.cols??2,A=m?u:r?.rows??2,B=m?`${s}\xd7${u}`:r?.label??"";return(0,b.jsxs)("div",{ref:l,className:"relative",children:[(0,b.jsxs)(j.Button,{variant:"outline",onClick:()=>k(a=>!a),className:"gap-2",children:[(0,b.jsx)(o,{cols:z,rows:A,active:!1}),(0,b.jsx)("span",{children:B}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"▼"})]}),i&&(0,b.jsxs)("div",{className:"absolute right-0 z-50 mt-1 w-72 rounded-lg border border-border bg-popover shadow-xl p-3",children:[(0,b.jsx)("h5",{className:"text-sm font-semibold text-foreground mb-3",children:g("missions.gridPreset")}),(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[h.map(c=>{let d=c.id===a;return(0,b.jsxs)("button",{onClick:()=>{f(c.id),k(!1)},className:`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-colors ${d?"bg-primary/10":"hover:bg-accent"}`,children:[(0,b.jsx)(o,{cols:c.cols,rows:c.rows,active:d}),(0,b.jsx)("span",{className:`text-sm font-medium flex-1 text-left ${d?"text-primary":"text-foreground"}`,children:c.label}),(0,b.jsx)("span",{className:`text-xs ${d?"text-primary/60":"text-muted-foreground"}`,children:c.desc})]},c.id)}),(0,b.jsxs)("div",{className:"mt-1 border-t border-border pt-2",children:[(0,b.jsxs)("button",{onClick:()=>{m||f(p,{cols:s,rows:u})},className:`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-colors w-full ${m?"bg-primary/10":"hover:bg-accent"}`,children:[(0,b.jsx)(o,{cols:s,rows:u,active:m}),(0,b.jsx)("span",{className:`text-sm font-medium flex-1 text-left ${m?"text-primary":"text-foreground"}`,children:g("missions.gridCustom")}),(0,b.jsxs)("span",{className:`text-xs ${m?"text-primary/60":"text-muted-foreground"}`,children:[s,"×",u]})]}),m&&(0,b.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:g("missions.gridCols")}),(0,b.jsx)("input",{type:"number",min:w.minCols,max:w.maxCols,value:s,onChange:a=>{let b;t(b=y(Number(a.target.value),w.minCols,w.maxCols)),f(p,{cols:b,rows:u})},className:"h-7 w-14 rounded-md border border-border bg-background px-2 text-sm text-center"})]}),(0,b.jsx)("span",{className:"text-muted-foreground",children:"×"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:g("missions.gridRows")}),(0,b.jsx)("input",{type:"number",min:w.minRows,max:w.maxRows,value:u,onChange:a=>{let b;v(b=y(Number(a.target.value),w.minRows,w.maxRows)),f(p,{cols:s,rows:b})},className:"h-7 w-14 rounded-md border border-border bg-background px-2 text-sm text-center"})]})]})]})]})]})]})}var r=a.i(830383),s=a.i(223982),t=a.i(496752),u=a.i(851033),v=a.i(971605);let w=(0,l.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),x=(0,l.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var y=a.i(17787);let z=(0,l.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);var A=a.i(348160),B=a.i(481030),C=a.i(318259),D=a.i(511153);let E=(0,t.default)(async()=>{},{loadableGenerated:{modules:[7468]},ssr:!1,loading:()=>(0,b.jsx)("div",{className:"h-full w-full bg-[#0a0a0a] animate-pulse"})});function F({execution:a,isRemoving:e,removeReason:f,onStop:g,onSessionEnd:h}){let{t:i}=(0,d.useI18n)(),k=(0,u.useRouter)(),{attributes:l,listeners:m,setNodeRef:n,transform:o,transition:p}=(0,s.useSortable)({id:a.executionId}),q={transform:v.CSS.Transform.toString(o),transition:p,opacity:+!e},[r,t]=(0,c.useState)(()=>a.startedAt?Math.floor((Date.now()-new Date(a.startedAt).getTime())/1e3):0);(0,c.useEffect)(()=>{if(e)return;let b=setInterval(()=>{t(a.startedAt?Math.floor((Date.now()-new Date(a.startedAt).getTime())/1e3):0)},1e3);return()=>clearInterval(b)},[a.startedAt,e]);let G=Math.floor(r/60),H=`${G}m ${r%60}s`;async function I(){if(a.projectLocalPath)try{await (0,C.openInTerminal)(a.projectLocalPath)}catch{D.toast.error(i("preview.terminalError"))}}return(0,b.jsxs)("div",{ref:n,style:q,className:"border border-border rounded-lg overflow-hidden flex flex-col transition-opacity duration-300",...l,children:[(0,b.jsxs)("div",{className:"h-10 px-3 flex items-center gap-1 border-b border-border bg-card shrink-0",children:[(0,b.jsx)("button",{...m,"aria-label":i("missions.dragHandle"),"aria-roledescription":"sortable",className:"cursor-grab text-muted-foreground hover:text-foreground mr-1",children:(0,b.jsx)(w,{className:"h-3.5 w-3.5"})}),(0,b.jsxs)("span",{className:"text-[11px] text-muted-foreground truncate flex-1",children:[a.workspaceName," ›"," ",a.projectAlias||a.projectName," ›"," ",(0,b.jsx)("span",{className:"text-foreground font-semibold",children:a.taskTitle})]}),e?(0,b.jsx)(B.Badge,{variant:"outline",className:"text-[11px] text-muted-foreground bg-muted ml-1 shrink-0",children:"stopped"===f?i("missions.statusStopped"):i("missions.statusCompleted")}):(0,b.jsx)(B.Badge,{variant:"outline",className:"text-[11px] text-primary border-primary/30 bg-primary/10 ml-1 shrink-0",children:i("missions.statusRunning")}),(0,b.jsx)("span",{className:"text-[11px] text-muted-foreground ml-1 shrink-0",children:H}),a.projectLocalPath&&(0,b.jsxs)(A.Tooltip,{children:[(0,b.jsx)(A.TooltipTrigger,{render:(0,b.jsx)(j.Button,{variant:"ghost",size:"icon",className:"ml-1 shrink-0 text-muted-foreground",onClick:I}),children:(0,b.jsx)(z,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(A.TooltipContent,{children:i("missions.openInTerminal")})]}),(0,b.jsxs)(A.Tooltip,{children:[(0,b.jsx)(A.TooltipTrigger,{render:(0,b.jsx)(j.Button,{variant:"ghost",size:"icon",className:"ml-1 shrink-0 text-muted-foreground",onClick:()=>k.push(`/workspaces/${a.workspaceId}/tasks/${a.taskId}`)}),children:(0,b.jsx)(x,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(A.TooltipContent,{children:i("missions.openFullView")})]}),(0,b.jsxs)(A.Tooltip,{children:[(0,b.jsx)(A.TooltipTrigger,{render:(0,b.jsx)(j.Button,{variant:"destructive",size:"icon",className:"ml-1 shrink-0",onClick:()=>g(a.taskId),disabled:e}),children:(0,b.jsx)(y.X,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(A.TooltipContent,{children:i("missions.stopTask")})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,b.jsx)(E,{taskId:a.taskId,worktreePath:a.worktreePath??a.projectLocalPath,onSessionEnd:b=>h?.(a.taskId,b),useCanvasRenderer:!0})})]})}let G=(0,e.createServerReference)("40ea0490fe368b21cc3cbcc3e2f636390c84ed3e22",e.callServer,void 0,e.findSourceMapURL,"getWorkspacesWithRecentTasks"),H=(0,e.createServerReference)("40cfa7600cccb5b8b0a99ea775a4494049da5ebb38",e.callServer,void 0,e.findSourceMapURL,"getProjectTasks");var I=a.i(449596),J=a.i(463071),K=a.i(755811);let L=(0,l.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);var M=a.i(659560),N=a.i(55213);let O={TODO:"TODO",IN_PROGRESS:"Running",IN_REVIEW:"Review"},P={LOW:"Low",MEDIUM:"Med",HIGH:"High",CRITICAL:"Crit"};function Q({status:a}){return(0,b.jsx)("span",{className:`text-[10px] px-1.5 py-0.5 rounded font-medium ${{TODO:"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-400",IN_PROGRESS:"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",IN_REVIEW:"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400"}[a]??"bg-slate-100 text-slate-600"}`,children:O[a]??a})}function R({task:a,isRunning:c,launchingId:d,onLaunchNew:e,onResume:f,t:g}){let h=a.executions?.[0]?.sessionId,i=d===a.id;return(0,b.jsxs)("div",{className:"group/task flex items-center gap-2 px-3 py-1.5 hover:bg-accent/50 cursor-default",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("p",{className:`text-sm truncate ${c?"italic text-muted-foreground":""}`,children:a.title}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mt-0.5",children:[(0,b.jsx)(Q,{status:a.status}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:P[a.priority]??a.priority})]})]}),c?(0,b.jsx)("span",{className:"text-[10px] italic text-muted-foreground shrink-0",children:g("missions.alreadyMonitored")}):(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/task:opacity-100 transition-opacity shrink-0",children:[h&&(0,b.jsxs)(j.Button,{variant:"outline",className:"h-6 px-2 text-xs",onClick:()=>f(a.id,h),disabled:i,title:g("missions.continueSession"),children:[(0,b.jsx)(M.RotateCcw,{className:"h-3 w-3 mr-1"}),g("missions.continueLabel")]}),(0,b.jsxs)(j.Button,{variant:"outline",className:"h-6 px-2 text-xs",onClick:()=>e(a.id),disabled:i,title:g("missions.launchNew"),children:[(0,b.jsx)(L,{className:"h-3 w-3 mr-1"}),i?"...":g("missions.launchNewLabel")]})]})]})}function S({open:a,onOpenChange:e,onLaunchNew:f,onResume:g,runningTaskIds:h,launchingId:j}){let{t:k}=(0,d.useI18n)(),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)([]);(0,c.useEffect)(()=>{a&&(o(""),q(""),s([]),G(100).then(m).catch(()=>D.toast.error(k("missions.error.launchFailed"))))},[a,k]),(0,c.useEffect)(()=>{p?H(p).then(a=>{s(a.filter(a=>"TODO"===a.status||"IN_PROGRESS"===a.status||"IN_REVIEW"===a.status))}).catch(()=>D.toast.error(k("missions.error.launchFailed"))):s([])},[p,k]);let t=l.find(a=>a.id===n),u=t?.projects??[];return(0,b.jsx)(K.Dialog,{open:a,onOpenChange:e,children:(0,b.jsxs)(K.DialogContent,{className:"max-w-lg max-h-[70vh] flex flex-col",children:[(0,b.jsx)(K.DialogHeader,{children:(0,b.jsx)(K.DialogTitle,{children:k("missions.fullPickerTitle")})}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,b.jsxs)(i.Select,{value:n,onValueChange:a=>{o(a??""),q("")},children:[(0,b.jsx)(i.SelectTrigger,{id:"full-picker-ws",className:"w-48 h-8",children:(0,b.jsx)("span",{className:"truncate",children:l.find(a=>a.id===n)?.name??k("missions.launcher.selectWorkspace")})}),(0,b.jsx)(i.SelectContent,{children:l.map(a=>(0,b.jsx)(i.SelectItem,{value:a.id,children:a.name},a.id))})]}),(0,b.jsxs)(i.Select,{value:p,onValueChange:a=>q(a??""),disabled:!n,children:[(0,b.jsx)(i.SelectTrigger,{id:"full-picker-proj",className:"w-48 h-8",children:(0,b.jsx)("span",{className:"truncate",children:u.find(a=>a.id===p)?.name??k("missions.launcher.selectProject")})}),(0,b.jsx)(i.SelectContent,{children:u.map(a=>(0,b.jsx)(i.SelectItem,{value:a.id,children:a.alias??a.name},a.id))})]})]}),(0,b.jsx)(N.ScrollArea,{className:"flex-1 min-h-0 -mx-2",children:0===r.length&&p?(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center py-8",children:k("missions.launcher.noTasks")}):0===r.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center py-8",children:k("missions.fullPickerHint")}):r.map(a=>(0,b.jsx)(R,{task:a,isRunning:h.has(a.id),launchingId:j,onLaunchNew:f,onResume:g,t:k},a.id))})]})})}function T({open:a,onOpenChange:e,onLaunched:f,runningTaskIds:g=new Set,anchorRef:h}){let{t:i}=(0,d.useI18n)(),k=(0,c.useRef)(null),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null),[r,s]=(0,c.useState)(!1);(0,c.useEffect)(()=>{a&&(o(!0),G(3).then(m).catch(()=>D.toast.error(i("missions.error.launchFailed"))).finally(()=>o(!1)))},[a,i]),(0,c.useEffect)(()=>{if(a)return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b);function b(a){let b=a.target;if(k.current&&!k.current.contains(b)){if(h?.current&&h.current.contains(b))return;e(!1)}}},[a,e,h]);let t=(0,c.useCallback)(async a=>{try{q(a),await (0,I.startPtyExecution)(a,""),f(a),e(!1),s(!1)}catch{D.toast.error(i("missions.error.launchFailed"))}finally{q(null)}},[f,e,i]),u=(0,c.useCallback)(async(a,b)=>{try{q(a),await (0,J.resumePtyExecution)(a,b),f(a),e(!1),s(!1)}catch{D.toast.error(i("missions.error.launchFailed"))}finally{q(null)}},[f,e,i]),v=(0,c.useCallback)(()=>{e(!1),s(!0)},[e]);return a||r?(0,b.jsxs)(b.Fragment,{children:[a&&(0,b.jsxs)("div",{ref:k,className:"absolute right-0 z-50 mt-1 w-96 rounded-lg border border-border bg-popover shadow-xl flex flex-col overflow-hidden",style:{maxHeight:"480px"},children:[(0,b.jsx)("div",{className:"px-3 py-2 border-b border-border shrink-0",children:(0,b.jsx)("p",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:i("missions.pickerTitle")})}),(0,b.jsx)(N.ScrollArea,{className:"flex-1 min-h-0",children:n?(0,b.jsx)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:"Loading..."}):0===l.length?(0,b.jsx)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:i("missions.noAvailableTasks")}):l.map(a=>(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"sticky top-0 z-10 px-3 py-1.5 bg-popover border-b border-border/50",children:(0,b.jsx)("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:a.name})}),a.projects.map(a=>0===a._count.tasks?null:(0,b.jsxs)("div",{className:"mb-1",children:[(0,b.jsx)("div",{className:"px-3 pt-2 pb-0.5",children:(0,b.jsx)("span",{className:"text-xs font-medium text-foreground",children:a.alias??a.name})}),a.tasks.map(a=>(0,b.jsx)(R,{task:a,isRunning:g.has(a.id),launchingId:p,onLaunchNew:t,onResume:u,t:i},a.id))]},a.id))]},a.id))}),(0,b.jsx)("div",{className:"shrink-0 border-t border-border",children:(0,b.jsx)(j.Button,{variant:"ghost",className:"w-full rounded-none text-xs text-primary font-medium",onClick:v,children:i("missions.showMoreTasks")})})]}),(0,b.jsx)(S,{open:r,onOpenChange:s,onLaunchNew:t,onResume:u,runningTaskIds:g,launchingId:p})]}):null}a.s(["MissionsClient",0,function({initialExecutions:a}){let{t:e}=(0,d.useI18n)(),[l,n]=(0,c.useState)(a),[o,p]=(0,c.useState)(()=>"3x2"),[t,u]=(0,c.useState)(()=>({cols:2,rows:2})),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(""),z=(0,c.useRef)(null),[A,B]=(0,c.useState)(new Map),C=(0,c.useRef)(A);(0,c.useEffect)(()=>{C.current=A},[A]);let E=(0,c.useRef)(new Map),G=h.find(a=>a.id===o)??h[2],H="custom"===o?t.cols:G.cols,I="custom"===o?t.rows:G.rows,J=(0,c.useRef)(null),[K,L]=(0,c.useState)("480px");(0,c.useEffect)(()=>{let a=J.current;if(!a)return;let b=()=>{let b=(a.clientHeight-32-16*(I-1))/I;L(`${Math.max(b,200)}px`)};b();let c=new ResizeObserver(b);return c.observe(a),()=>c.disconnect()},[I]);let M=(0,c.useCallback)((a,b)=>{a&&(p(a),localStorage.setItem("missions-grid-preset",a),"custom"===a&&b&&(u(b),localStorage.setItem("missions-grid-custom",JSON.stringify(b))))},[]),N=(0,r.useSensors)((0,r.useSensor)(r.PointerSensor,{activationConstraint:{distance:8}})),O=(0,c.useCallback)(a=>{let{active:b,over:c}=a;c&&b.id!==c.id&&n(a=>{let d=a.findIndex(a=>a.executionId===b.id),e=a.findIndex(a=>a.executionId===c.id);return(0,s.arrayMove)(a,d,e)})},[]),P=(0,c.useCallback)((a,b)=>{if(C.current.has(a))return;B(c=>new Map([...c,[a,b]]));let c=setTimeout(()=>{n(b=>b.filter(b=>b.executionId!==a)),B(b=>{let c=new Map(b);return c.delete(a),c}),E.current.delete(a)},500);E.current.set(a,c)},[]);(0,c.useEffect)(()=>{let a=setInterval(async()=>{try{let a=await f();n(b=>{let c=C.current,{merged:d,goneIds:e}=function({prev:a,fresh:b,removingIds:c}){let d=new Set(b.map(a=>a.executionId)),e=[];a.forEach(a=>{d.has(a.executionId)||c.has(a.executionId)||e.push(a.executionId)});let f=a.filter(a=>d.has(a.executionId)||c.has(a.executionId)),g=new Set(a.map(a=>a.executionId));return{merged:[...f,...b.filter(a=>!g.has(a.executionId))],goneIds:e}}({prev:b,fresh:a,removingIds:new Set(c.keys())});return e.forEach(a=>P(a,"completed")),d})}catch{}},4e3);return()=>clearInterval(a)},[P]),(0,c.useEffect)(()=>{let a=E.current;return()=>{a.forEach(a=>clearTimeout(a))}},[]);let Q=(0,c.useCallback)(async a=>{try{await (0,g.stopPtyExecution)(a),n(b=>{let c=b.find(b=>b.taskId===a);return c&&P(c.executionId,"stopped"),b})}catch{D.toast.error(e("missions.error.stopFailed"))}},[P,e]),R=(0,c.useCallback)((a,b)=>{n(b=>{let c=b.find(b=>b.taskId===a);return c&&P(c.executionId,"completed"),b})},[P]),S=(0,c.useCallback)(a=>{f().then(a=>{n(b=>{let c=new Set(b.map(a=>a.executionId));return[...b,...a.filter(a=>!c.has(a.executionId))]})}).catch(()=>{})},[]),U=Array.from(new Map(l.map(a=>[a.workspaceId,a.workspaceName])).entries()).map(([a,b])=>({id:a,name:b})),V=x?l.filter(a=>a.workspaceId===x):l,W=new Set(l.map(a=>a.taskId));return(0,b.jsxs)("div",{className:"flex h-full flex-col",children:[(0,b.jsxs)("div",{className:"header-sm shrink-0 px-4 flex items-center gap-3",children:[(0,b.jsx)("h1",{className:"text-base font-semibold",children:e("missions.pageTitle")}),(0,b.jsxs)(i.Select,{value:x,onValueChange:a=>y(a??""),children:[(0,b.jsx)(i.SelectTrigger,{className:"w-36 h-8",children:(0,b.jsx)("span",{className:"truncate",children:x?U.find(a=>a.id===x)?.name??e("missions.filterAll"):e("missions.filterAll")})}),(0,b.jsxs)(i.SelectContent,{children:[(0,b.jsx)(i.SelectItem,{value:"",children:e("missions.filterAll")}),U.map(a=>(0,b.jsx)(i.SelectItem,{value:a.id,children:a.name},a.id))]})]}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsx)(q,{value:o,customValue:t,onChange:M}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(j.Button,{ref:z,onClick:()=>w(a=>!a),children:e("missions.launchTask")}),(0,b.jsx)(T,{open:v,onOpenChange:w,onLaunched:S,runningTaskIds:W,anchorRef:z})]})]}),(0,b.jsx)("div",{ref:J,className:"flex-1 overflow-auto min-h-0 p-4",children:0===V.length&&0===A.size?(0,b.jsx)(k.EmptyState,{icon:m,title:e("missions.emptyTitle"),description:e("missions.emptyDesc"),className:"h-full",action:(0,b.jsx)(j.Button,{onClick:()=>w(!0),children:e("missions.launchTask")})}):(0,b.jsx)(r.DndContext,{id:"missions-dnd",sensors:N,collisionDetection:r.closestCenter,onDragEnd:O,children:(0,b.jsx)(s.SortableContext,{items:V.map(a=>a.executionId),strategy:s.rectSortingStrategy,children:(0,b.jsx)("div",{className:"grid gap-4",style:{gridTemplateColumns:`repeat(${H}, 1fr)`,gridAutoRows:K},children:V.map(a=>(0,b.jsx)(F,{execution:a,isRemoving:A.has(a.executionId),removeReason:A.get(a.executionId),onStop:Q,onSessionEnd:R},a.executionId))})})})})]})}],917691)}];
2
-
3
- //# sourceMappingURL=tower_src_app_missions_missions-client_tsx_0a9vjyr._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[585664,a=>{"use strict";var b=a.i(348273),c=a.i(399424),d=a.i(851033),e=a.i(706193),f=a.i(422917),g=a.i(524513),h=a.i(560874),i=a.i(707466);function j({className:a,size:c="default",...d}){return(0,b.jsx)("div",{"data-slot":"card","data-size":c,className:(0,i.cn)("group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",a),...d})}function k({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,i.cn)("px-4 group-data-[size=sm]/card:px-3",a),...c})}var l=a.i(348754),m=a.i(235022),n=a.i(17787),o=a.i(737316),p=a.i(136913),q=a.i(526116),r=a.i(282980);function s({adapterType:a,adapterLabel:d,onResult:e}){let[g,h]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),{t:v}=(0,r.useI18n)();async function w(){if(!g){h(!0),u(null);try{let b=await fetch("/api/adapters/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adapterType:a})}),c=await b.json();u(c),e?.(c)}catch{let a={ok:!1,checks:[{name:"network_error",passed:!1,message:"Network request failed"}]};u(a),e?.(a)}finally{h(!1)}}}return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"rounded-lg bg-emerald-100 dark:bg-emerald-900/30 p-2",children:(0,b.jsx)(o.Terminal,{className:"h-5 w-5 text-emerald-600 dark:text-emerald-400"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"font-semibold",children:v("settings.aiTools.cliVerification")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:v("settings.aiTools.cliVerificationDesc")})]})]}),(0,b.jsx)(j,{children:(0,b.jsxs)(k,{className:"p-6 space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{children:d&&(0,b.jsx)("p",{className:"font-medium",children:d})}),(0,b.jsx)(f.Button,{onClick:w,disabled:g,variant:"outline",children:g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Loader2,{className:"h-4 w-4 animate-spin mr-2"}),v("settings.aiTools.testing")]}):v("settings.aiTools.testConnection")})]}),t&&(0,b.jsxs)("div",{className:(0,i.cn)("rounded-lg border p-4 space-y-3",t.ok?"bg-green-50 border-green-200 dark:bg-green-950/20 dark:border-green-800":"bg-red-50 border-red-200 dark:bg-red-950/20 dark:border-red-800"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[t.ok?(0,b.jsx)(p.CheckCircle2,{className:"h-4 w-4 text-green-600 dark:text-green-400"}):(0,b.jsx)(q.XCircle,{className:"h-4 w-4 text-red-600 dark:text-red-400"}),(0,b.jsx)("span",{className:(0,i.cn)("text-sm font-medium",t.ok?"text-green-700 dark:text-green-300":"text-red-700 dark:text-red-300"),children:v(t.ok?"settings.aiTools.testPassed":"settings.aiTools.testFailed")})]}),(0,b.jsx)("div",{className:"space-y-2",children:t.checks.map(c=>(0,b.jsxs)("div",{className:"flex items-start gap-2 text-sm",children:[c.passed?(0,b.jsx)(m.Check,{className:"h-4 w-4 text-green-500 mt-0.5 shrink-0"}):(0,b.jsx)(n.X,{className:"h-4 w-4 text-red-500 mt-0.5 shrink-0"}),(0,b.jsx)("span",{className:(0,i.cn)(c.passed?"text-green-700 dark:text-green-300":"text-red-700 dark:text-red-300"),children:c.message})]},`${a}-${c.name}`))})]})]})})]})}var t=a.i(441388);let u=(0,t.createServerReference)("401b6083804009030d38d04c29047d9b43edd6bc02",t.callServer,void 0,t.findSourceMapURL,"completeOnboarding");var v=a.i(397267),w=a.i(173250);let x=(0,w.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);var y=a.i(280844),z=a.i(148997),A=a.i(772253),B=a.i(538186),C=a.i(167727);let D=(0,w.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),E=(0,w.default)("languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);var F=a.i(709222),G=a.i(657673);function H({step:a}){let c=[x,o.Terminal,y.GitBranch][a-1]??x,d=["Profile","Connect","Configure"][a-1]??"";return(0,b.jsxs)("div",{className:"relative h-full w-full overflow-hidden",children:[(0,b.jsx)("div",{className:"absolute inset-0 opacity-[0.07] text-white",style:{backgroundImage:"radial-gradient(circle, currentColor 1px, transparent 1px)",backgroundSize:"24px 24px"}}),(0,b.jsx)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full",style:{width:"380px",height:"380px",background:"radial-gradient(circle, oklch(0.80 0.14 75 / 0.25) 0%, oklch(0.80 0.14 75 / 0.08) 45%, transparent 70%)",animation:"ob-pulse 6s ease-in-out infinite"}}),(0,b.jsx)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-amber-400/25",style:{width:"260px",height:"260px",animation:"ob-spin 20s linear infinite"},children:(0,b.jsx)("div",{className:"absolute -top-1.5 left-1/2 -translate-x-1/2 h-3 w-3 rounded-full bg-amber-400",style:{boxShadow:"0 0 16px oklch(0.80 0.14 75 / 0.7)"}})}),(0,b.jsxs)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-amber-400/15",style:{width:"380px",height:"380px",animation:"ob-spin 30s linear infinite reverse"},children:[(0,b.jsx)("div",{className:"absolute -top-1 left-1/2 -translate-x-1/2 h-2 w-2 rounded-full bg-amber-400/70"}),(0,b.jsx)("div",{className:"absolute -bottom-1 left-1/2 -translate-x-1/2 h-1.5 w-1.5 rounded-full bg-amber-400/50"})]}),(0,b.jsx)("svg",{className:"absolute",style:{top:"18%",right:"22%",animation:"ob-float 8s ease-in-out infinite"},width:"44",height:"50",viewBox:"0 0 40 46",fill:"none",children:(0,b.jsx)("path",{d:"M20 1 L38 12 L38 34 L20 45 L2 34 L2 12 Z",stroke:"oklch(0.80 0.14 75 / 0.4)",strokeWidth:"1.5",fill:"oklch(0.80 0.14 75 / 0.06)"})}),(0,b.jsx)("svg",{className:"absolute",style:{bottom:"22%",left:"18%",animation:"ob-float 10s ease-in-out 2s infinite"},width:"32",height:"36",viewBox:"0 0 40 46",fill:"none",children:(0,b.jsx)("path",{d:"M20 1 L38 12 L38 34 L20 45 L2 34 L2 12 Z",stroke:"oklch(0.80 0.14 75 / 0.3)",strokeWidth:"1.5",fill:"oklch(0.80 0.14 75 / 0.05)"})}),(0,b.jsx)("div",{className:"absolute h-3.5 w-3.5 rounded-full bg-amber-400/40",style:{top:"30%",left:"28%",animation:"ob-float 7s ease-in-out 1s infinite"}}),(0,b.jsx)("div",{className:"absolute h-2.5 w-2.5 rounded-full bg-amber-400/30",style:{top:"65%",right:"30%",animation:"ob-float 9s ease-in-out 3s infinite"}}),(0,b.jsx)("div",{className:"absolute h-2 w-2 rounded-full bg-amber-400/20",style:{top:"45%",right:"15%",animation:"ob-float 6s ease-in-out 0.5s infinite"}}),(0,b.jsxs)("svg",{className:"absolute inset-0 h-full w-full text-white opacity-[0.12]",children:[(0,b.jsx)("line",{x1:"30%",y1:"25%",x2:"70%",y2:"45%",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"4 6",style:{animation:"ob-dash 12s linear infinite"}}),(0,b.jsx)("line",{x1:"65%",y1:"30%",x2:"35%",y2:"70%",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"4 6",style:{animation:"ob-dash 15s linear infinite reverse"}})]}),(0,b.jsx)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 flex items-center justify-center",children:(0,b.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl border border-amber-400/35 bg-amber-500/10 backdrop-blur-sm transition-all duration-700",style:{boxShadow:"0 0 50px oklch(0.80 0.14 75 / 0.2)"},children:(0,b.jsx)(c,{className:"h-7 w-7 text-amber-400"})})}),(0,b.jsx)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 translate-y-12 text-center",children:(0,b.jsx)("p",{className:"text-[11px] font-medium tracking-widest uppercase text-amber-400/60",children:d})})]})}let I={host:"",ownerMatch:"*",localPathTemplate:""};a.s(["default",0,function(){let a,i,j,k=(0,d.useRouter)(),{t:l,locale:n,setLocale:p}=(0,r.useI18n)(),{theme:q,setTheme:t}=(0,e.useTheme)(),[w,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(1),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(null),[Q,R]=(0,c.useState)([]),[S,T]=(0,c.useState)({...I}),[U,V]=(0,c.useState)(!0),[W,X]=(0,c.useState)(0),[Y,Z]=(0,c.useState)(!1),[$,_]=(0,c.useState)(!1);(0,c.useEffect)(()=>J(!0),[]);let aa=[{value:"light",label:(0,b.jsx)(B.Sun,{className:"h-4 w-4"})},{value:"dark",label:(0,b.jsx)(C.Moon,{className:"h-4 w-4"})},{value:"system",label:(0,b.jsx)(D,{className:"h-4 w-4"})}];function ab(){L(a=>a+1)}function ac(){L(a=>Math.max(1,a-1))}async function ad(){_(!0);try{Q.length>0&&await (0,v.setConfigValue)("git.pathMappingRules",Q),await u(M.trim()),k.replace("/workspaces")}catch{_(!1)}}let ae=[{icon:x,label:l("onboarding.step1.title")},{icon:o.Terminal,label:l("onboarding.step2.title")},{icon:y.GitBranch,label:l("onboarding.step3.title")}];return(0,b.jsxs)("div",{className:"flex h-screen bg-background",children:[(0,b.jsx)("div",{className:"hidden xl:block xl:w-3/5 border-r border-border/50 bg-[oklch(0.13_0.006_260)]",children:(0,b.jsx)(H,{step:K})}),(0,b.jsx)("div",{className:"flex w-full flex-col items-center px-8 pt-[10vh] pb-10 xl:w-2/5 xl:px-16 overflow-y-auto",children:(0,b.jsxs)("div",{className:"w-full max-w-lg space-y-6",children:[(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.jsx)("img",{src:"/logo.png",alt:"Tower",className:"h-8 w-8 rounded-lg"}),(0,b.jsx)("span",{className:"text-lg font-semibold tracking-tight",children:"Tower"})]}),(0,b.jsx)("div",{className:"flex items-center gap-1.5",children:ae.map((a,c)=>{let d=c+1,e=d===K,f=d<K,g=a.icon;return(0,b.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[c>0&&(0,b.jsx)("div",{className:`h-px w-4 transition-colors duration-500 ${f?"bg-primary":"bg-border"}`}),(0,b.jsxs)("div",{className:`flex items-center gap-1 shrink-0 rounded-full px-2 py-1 text-[11px] font-medium whitespace-nowrap transition-all duration-500 ${e?"bg-primary text-primary-foreground shadow-sm":f?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"}`,children:[f?(0,b.jsx)(m.Check,{className:"h-3 w-3 shrink-0"}):(0,b.jsx)(g,{className:"h-3 w-3 shrink-0"}),(0,b.jsx)("span",{children:a.label})]})]},c)})})]}),(0,b.jsxs)("div",{children:[1===K&&(0,b.jsxs)("div",{className:"space-y-7 animate-in fade-in slide-in-from-left-4 duration-500",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:l("onboarding.step1.title")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground leading-relaxed",children:l("onboarding.step1.desc")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"onboarding-username",className:"text-sm font-medium",children:l("onboarding.step1.usernameLabel")}),(0,b.jsx)("input",{id:"onboarding-username",type:"text",value:M,onChange:a=>N(a.target.value),placeholder:l("onboarding.step1.usernamePlaceholder"),className:"flex h-10 w-full rounded-lg border border-input bg-transparent px-3 py-2 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",maxLength:64,autoFocus:!0,autoComplete:"username"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(E,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,b.jsx)("label",{className:"text-sm font-medium",children:l("settings.language")})]}),(0,b.jsx)(h.SegmentedControl,{options:[{value:"zh",label:"中文"},{value:"en",label:"English"}].map(a=>({value:a.value,label:a.label})),value:n,onChange:a=>p(a)})]}),(0,b.jsxs)("div",{className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(B.Sun,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,b.jsx)("label",{className:"text-sm font-medium",children:l("settings.theme")})]}),w?(0,b.jsx)(h.SegmentedControl,{options:aa.map(a=>({value:a.value,label:a.label})),value:q??"system",onChange:a=>t(a)}):(0,b.jsx)("div",{className:"inline-flex h-8 rounded-md border border-border bg-muted p-1 gap-1 w-[120px]"})]})]}),(0,b.jsx)("div",{className:"flex justify-end pt-3",children:(0,b.jsxs)(f.Button,{onClick:ab,disabled:0===M.trim().length,className:"px-5",children:[l("onboarding.step1.next"),(0,b.jsx)(A.ChevronRight,{className:"h-4 w-4 ml-1"})]})})]}),2===K&&(0,b.jsxs)("div",{className:"space-y-7 animate-in fade-in slide-in-from-left-4 duration-500",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:l("onboarding.step2.title")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground leading-relaxed",children:l("onboarding.step2.desc")})]}),(0,b.jsx)(s,{adapterType:"claude_code",adapterLabel:"Claude CLI",onResult:P}),(0,b.jsxs)("div",{className:"flex items-center justify-between pt-3",children:[(0,b.jsxs)(f.Button,{variant:"ghost",className:"text-muted-foreground",onClick:ac,children:[(0,b.jsx)(z.ChevronLeft,{className:"h-4 w-4 mr-1"}),l("onboarding.back")]}),(0,b.jsxs)(f.Button,{onClick:ab,disabled:!O?.ok,className:"px-5",children:[l("onboarding.step1.next"),(0,b.jsx)(A.ChevronRight,{className:"h-4 w-4 ml-1"})]})]})]}),3===K&&(0,b.jsxs)("div",{className:"space-y-5 animate-in fade-in slide-in-from-left-4 duration-500",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:l("onboarding.step3.title")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground leading-relaxed",children:l("onboarding.step3.desc")})]}),Q.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:l("onboarding.step3.added").replace("{count}",String(Q.length))}),Q.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-border bg-muted/30 px-3 py-2",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"text-sm font-medium truncate",children:[a.host,(0,b.jsx)("span",{className:"text-muted-foreground",children:"*"!==a.ownerMatch?` / ${a.ownerMatch}`:""})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground font-mono truncate",children:a.localPathTemplate})]}),(0,b.jsx)(f.Button,{variant:"ghost",size:"icon",className:"shrink-0 text-muted-foreground hover:text-destructive",onClick:()=>{var b;return b=a.id,void R(a=>a.filter(a=>a.id!==b))},children:(0,b.jsx)(G.Trash2,{className:"h-3.5 w-3.5"})})]},a.id))]}),U?(0,b.jsxs)("div",{className:"space-y-3 rounded-lg border border-border p-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:l("onboarding.step3.hostLabel")}),(0,b.jsx)(g.Input,{value:S.host,onChange:a=>T(b=>({...b,host:a.target.value})),placeholder:l("onboarding.step3.hostPlaceholder"),className:"h-9",autoFocus:!0})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:l("onboarding.step3.ownerLabel")}),(0,b.jsx)(g.Input,{value:S.ownerMatch,onChange:a=>T(b=>({...b,ownerMatch:a.target.value})),placeholder:l("onboarding.step3.ownerPlaceholder"),className:"h-9"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:l("onboarding.step3.pathLabel")}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(g.Input,{value:S.localPathTemplate,onChange:a=>T(b=>({...b,localPathTemplate:a.target.value})),placeholder:l("onboarding.step3.pathPlaceholder"),className:"h-9 font-mono text-xs flex-1"}),(0,b.jsx)("button",{type:"button",onClick:()=>{Z(a=>(a||X(2),!a))},className:`shrink-0 rounded-full px-2.5 py-1 text-[11px] font-mono font-medium transition-colors ${Y?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"{path}"})]}),(0,b.jsx)("p",{className:"text-[11px] text-muted-foreground",children:l(Y?"onboarding.step3.pathHintFull":"onboarding.step3.pathHintRepo")})]}),S.localPathTemplate&&(a=S.localPathTemplate.trim().replace(/\/+$/,""),i=Y?`${a}/{path}`:a,j=[{label:"GitHub SSH",url:"git@github.com:user/my-app.git"},{label:"GitHub HTTPS",url:"https://github.com/user/my-app.git"},{label:"GitLab Subgroup",url:"https://gitlab.com/org/team/sub/my-api.git"}],(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:l("onboarding.step3.previewLabel")}),(0,b.jsx)("div",{className:"flex gap-1 flex-wrap",children:j.map((a,c)=>(0,b.jsx)("button",{type:"button",onClick:()=>X(c),className:`rounded-md px-2 py-1 text-[11px] font-medium transition-colors ${W===c?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.label},c))}),(0,b.jsxs)("div",{className:"rounded-md bg-muted/50 px-3 py-2 space-y-1",children:[(0,b.jsx)("p",{className:"font-mono text-[11px] text-muted-foreground truncate",children:j[W].url}),(0,b.jsxs)("p",{className:"font-mono text-xs",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"→ "}),(0,b.jsx)("span",{className:"text-primary",children:function(a,b){if(!a||!b)return"";let c=b.trim(),d=[],e=c.match(/^git@[^:]+:(.+)$/);if(e)d=e[1].replace(/\.git\/?$/,"").split("/").filter(Boolean);else try{let a=new URL(c);d=decodeURIComponent(a.pathname).replace(/\.git\/?$/,"").split("/").filter(Boolean)}catch{return""}if(!d.length)return"";let f=d[0],g=d[d.length-1],h=d.join("/");if(a.includes("{path}"))return a.replace("{path}",h).replace("{owner}",f).replace("{repo}",g).replace(/\/+$/,"");let i=a.replace("{owner}",f).replace("{repo}","").replace(/\/+$/,"");return`${i}/${g}`}(i,j[W].url)})]})]})]})),(0,b.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[Q.length>0&&(0,b.jsx)(f.Button,{variant:"ghost",onClick:()=>V(!1),children:l("settings.config.git.cancel")}),(0,b.jsxs)(f.Button,{onClick:function(){if(!S.host.trim()||!S.localPathTemplate.trim())return;let a=S.localPathTemplate.trim().replace(/\/+$/,""),b=Y?`${a}/{path}`:a,c={id:crypto.randomUUID(),host:S.host.trim(),ownerMatch:S.ownerMatch.trim()||"*",localPathTemplate:b,priority:Q.length};R(a=>[...a,c]),T({...I}),Z(!1),V(!1)},disabled:!S.host.trim()||!S.localPathTemplate.trim(),children:[(0,b.jsx)(m.Check,{className:"h-4 w-4 mr-1"}),l("settings.config.git.save")]})]})]}):(0,b.jsxs)(f.Button,{variant:"outline",onClick:()=>{T({...I}),V(!0)},children:[(0,b.jsx)(F.Plus,{className:"h-4 w-4 mr-1"}),l("settings.config.git.addRule")]}),(0,b.jsxs)("div",{className:"flex items-center justify-between pt-3",children:[(0,b.jsxs)(f.Button,{variant:"ghost",className:"text-muted-foreground",onClick:ac,children:[(0,b.jsx)(z.ChevronLeft,{className:"h-4 w-4 mr-1"}),l("onboarding.back")]}),(0,b.jsxs)(f.Button,{onClick:ad,disabled:$,className:"px-5",children:[l("onboarding.complete"),(0,b.jsx)(m.Check,{className:"h-4 w-4 ml-1"})]})]})]})]}),(0,b.jsx)("div",{className:"pt-6 text-xs text-muted-foreground",children:l("onboarding.stepIndicator").replace("{current}",String(K)).replace("{total}",String(3))})]})})]})}],585664)}];
2
-
3
- //# sourceMappingURL=tower_src_app_onboarding_page_tsx_0_3krz1._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[68482,a=>{"use strict";var b=a.i(348273),c=a.i(399424),d=a.i(348754),e=a.i(134999),f=a.i(282980),g=a.i(856129),h=a.i(441388);let i=(0,h.createServerReference)("40ba75a916021bce4504fd639c694823268bedd618",h.callServer,void 0,h.findSourceMapURL,"getProjectAssets");var j=a.i(522849),k=a.i(580283),l=a.i(529917),m=a.i(593677),n=a.i(657673),o=a.i(422917);function p(a){let b=a.match(/(?:^|\/)(?:storage|data)\/assets\/([^/]+)\/([^/]+)$/);return b?`/api/files/assets/${b[1]}/${b[2]}`:a}function q({asset:a,onPreview:c,onReveal:d,onDelete:e,onTaskClick:g}){var h;let{t:i}=(0,f.useI18n)(),k=p(a.path),r=a.mimeType?.startsWith("image/");return(0,b.jsxs)("div",{className:"flex items-center gap-4 rounded-lg border border-border bg-card px-4 py-3 transition-colors hover:bg-accent/20",children:[(0,b.jsx)(o.Button,{variant:"ghost",onClick:()=>c(a),className:"flex-shrink-0 cursor-pointer p-0 h-auto",children:r?(0,b.jsx)("img",{src:k,alt:a.filename,className:"h-12 w-12 rounded object-cover border border-border"}):(0,b.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded border border-border bg-muted",children:(0,b.jsx)(l.FileText,{className:"h-6 w-6 text-muted-foreground"})})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-foreground",children:a.filename}),a.taskTitle&&a.taskId&&(0,b.jsx)(o.Button,{variant:"ghost",onClick:b=>{b.stopPropagation(),g?.(a.taskId)},className:"flex-shrink-0 bg-blue-500/10 text-blue-600 dark:text-blue-400 text-xs px-1.5 py-0.5 rounded cursor-pointer hover:bg-blue-500/20 transition-colors h-auto",children:a.taskTitle.length>20?`[任务: ${a.taskTitle.slice(0,20)}...]`:`[任务: ${a.taskTitle}]`})]}),a.description&&(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground truncate",children:a.description}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-3 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{children:null===(h=a.size)?"-":h<1024?`${h} B`:h<1048576?`${(h/1024).toFixed(1)} KB`:h<0x40000000?`${(h/1048576).toFixed(1)} MB`:`${(h/0x40000000).toFixed(1)} GB`}),(0,b.jsx)("span",{children:new Date(a.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[(0,b.jsx)(o.Button,{variant:"ghost",size:"icon",onClick:()=>c(a),className:"text-muted-foreground","aria-label":i("assets.preview"),children:(0,b.jsx)(m.Eye,{className:"h-4 w-4"})}),(0,b.jsx)(o.Button,{variant:"ghost",size:"icon",onClick:()=>d(a),className:"text-muted-foreground","aria-label":i("assets.revealInFinder"),children:(0,b.jsx)(j.FolderOpen,{className:"h-4 w-4"})}),(0,b.jsx)(o.Button,{variant:"ghost",size:"icon",onClick:()=>e(a.id),className:"text-muted-foreground hover:text-rose-400","aria-label":i("assets.delete"),children:(0,b.jsx)(n.Trash2,{className:"h-4 w-4"})})]})]})}function r({assets:a,onPreview:c,onReveal:d,onDelete:e,onTaskClick:g}){let{t:h}=(0,f.useI18n)();return 0===a.length?(0,b.jsx)(k.EmptyState,{icon:j.FolderOpen,title:h("assets.empty"),description:h("assets.emptyHint")}):(0,b.jsx)("div",{className:"flex flex-col gap-3",children:a.map(a=>(0,b.jsx)(q,{asset:a,onPreview:c,onReveal:d,onDelete:e,onTaskClick:g},a.id))})}var s=a.i(262392),t=a.i(17787),u=a.i(75019),v=a.i(302512),w=a.i(344838);function x({allWorkspaces:a,initialWsId:d,initialProjectId:e,onUploaded:g}){let h,{t:i}=(0,f.useI18n)(),j=(0,c.useRef)(null),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null),[r,y]=(0,c.useState)(d),[z,A]=(0,c.useState)(e),[B,C]=(0,c.useState)(""),D=a.find(a=>a.id===r),E=D?.projects??[],F=()=>{l(!1),q(null),j.current&&(j.current.value="")},G=async()=>{if(p&&z){n(!0);try{let a=new FormData;a.append("file",p),a.append("projectId",z),a.append("description",B.trim()),await (0,u.uploadAsset)(a),g(z),F()}finally{n(!1)}}};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(o.Button,{onClick:()=>{y(d),A(e),q(null),C(""),l(!0)},className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:[(0,b.jsx)(s.Upload,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:i("assets.upload")})]}),k&&(0,b.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,b.jsx)("div",{className:"absolute inset-0 bg-black/50",onClick:F}),(0,b.jsxs)("div",{className:"relative w-full max-w-md rounded-lg border border-border bg-card p-6 shadow-lg",children:[(0,b.jsx)(o.Button,{variant:"ghost",size:"icon-xs",onClick:F,className:"absolute right-3 top-3 text-muted-foreground",children:(0,b.jsx)(t.X,{className:"h-4 w-4"})}),(0,b.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-4",children:i("assets.uploadTitle")}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground w-16 shrink-0",children:i("assets.workspace")}),(0,b.jsxs)(w.Select,{value:r,onValueChange:b=>{var c;let d;return y(c=b??""),d=a.find(a=>a.id===c),void A(d?.projects[0]?.id??null)},children:[(0,b.jsx)(w.SelectTrigger,{className:"flex-1 text-xs",children:(0,b.jsx)("span",{className:"truncate",children:D?.name??r})}),(0,b.jsx)(w.SelectContent,{children:a.map(a=>(0,b.jsx)(w.SelectItem,{value:a.id,children:a.name},a.id))})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground w-16 shrink-0",children:i("assets.project")}),E.length>0?(0,b.jsxs)(w.Select,{value:z??"",onValueChange:a=>A(a??""),children:[(0,b.jsx)(w.SelectTrigger,{className:"flex-1 text-xs",children:(0,b.jsx)("span",{className:"truncate",children:(h=E.find(a=>a.id===z))?h.alias?`${h.name} (${h.alias})`:h.name:z})}),(0,b.jsx)(w.SelectContent,{children:E.map(a=>{let c=a.alias?`${a.name} (${a.alias})`:a.name;return(0,b.jsx)(w.SelectItem,{value:a.id,children:c},a.id)})})]}):(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:i("assets.noProject")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground w-16 shrink-0",children:i("assets.file")}),(0,b.jsx)("input",{type:"file",ref:j,onChange:a=>{q(a.target.files?.[0]??null)},className:"hidden"}),(0,b.jsx)(o.Button,{variant:"outline",onClick:()=>{j.current?.click()},className:"flex-1 border-dashed bg-background px-3 py-2 text-xs text-muted-foreground hover:border-primary/50 hover:text-foreground transition-colors text-left justify-start",children:p?p.name:i("assets.selectFile")})]}),(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground w-16 shrink-0 pt-1.5",children:i("assets.description")}),(0,b.jsx)(v.Textarea,{value:B,onChange:a=>C(a.target.value),placeholder:i("assets.descriptionPlaceholder"),className:"flex-1 rounded-md border border-border bg-background px-3 py-2 text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring resize-none h-20"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 justify-end mt-6",children:[(0,b.jsx)(o.Button,{variant:"outline",onClick:F,children:i("notes.cancel")}),(0,b.jsx)(o.Button,{onClick:G,disabled:!p||!z||!B.trim()||m,className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:i(m?"assets.uploading":"assets.upload")})]})]})]})]})}var y=a.i(755811);function z({imageUrl:a,filename:d,open:e,onOpenChange:f}){let[g,h]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{h(!1)},[e]),(0,b.jsx)(y.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(y.DialogContent,{showCloseButton:!1,className:"max-w-[90vw] max-h-[90vh] p-0 overflow-hidden bg-black/90 ring-0",children:[(0,b.jsx)(y.DialogClose,{render:(0,b.jsx)(o.Button,{variant:"ghost",className:"absolute top-2 right-2 z-10 h-8 w-8 p-0 text-white hover:bg-white/20 hover:text-white"}),"aria-label":"Close",children:(0,b.jsx)(t.X,{className:"h-4 w-4"})}),a&&(0,b.jsx)(b.Fragment,{children:g?(0,b.jsx)("div",{className:"overflow-auto max-w-[90vw] max-h-[90vh]",children:(0,b.jsx)("img",{src:a,alt:d,onClick:()=>h(!1),className:"w-auto h-auto max-w-none cursor-zoom-out"})}):(0,b.jsx)("img",{src:a,alt:d,onClick:()=>h(!0),className:"max-w-full max-h-[85vh] object-contain cursor-zoom-in mx-auto"})}),(0,b.jsx)("span",{className:"absolute bottom-2 left-3 text-xs text-white/70 truncate max-w-[60%]",children:d})]})})}var A=a.i(93387),B=a.i(348041);function C({url:a,filename:e,open:g,onOpenChange:h}){let{t:i}=(0,f.useI18n)(),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!g||!a){k(null),o(null);return}let b=!1;return m(!0),o(null),k(null),fetch(a).then(a=>{let b=a.headers.get("content-length");if(b&&parseInt(b,10)>1048576)throw Error("FILE_TOO_LARGE");return a.text()}).then(a=>{if(a.length>1048576)throw Error("FILE_TOO_LARGE");b||(k(a),m(!1))}).catch(a=>{b||(a instanceof Error&&"FILE_TOO_LARGE"===a.message?o(i("assets.fileTooLarge")):o(i("assets.previewError")),m(!1))}),()=>{b=!0}},[g,a,i]);let p=e.split(".").pop()?.toLowerCase();return(0,b.jsx)(y.Dialog,{open:g,onOpenChange:h,children:(0,b.jsxs)(y.DialogContent,{className:"max-w-3xl max-h-[80vh] flex flex-col",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-4 pt-4",children:e}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-4 pb-4 pt-2",children:(()=>{if(l)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[(0,b.jsx)(d.Loader2,{className:"size-5 animate-spin text-muted-foreground"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:i("assets.loadingPreview")})]});if(n)return(0,b.jsx)("p",{className:"text-sm text-destructive",children:n});if(null===j)return null;if("md"===p)return(0,b.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:(0,b.jsx)(A.default,{remarkPlugins:[B.default],children:j})});if("json"===p){let a;try{a=JSON.stringify(JSON.parse(j),null,2)}catch{a=j}return(0,b.jsx)("pre",{className:"font-mono text-xs whitespace-pre-wrap text-foreground",children:a})}return(0,b.jsx)("pre",{className:"font-mono text-sm whitespace-pre-wrap text-foreground",children:j})})()})]})})}var D=a.i(717833),E=a.i(707466),F=a.i(730659);function G({...a}){return(0,b.jsx)(D.Dialog.Root,{"data-slot":"sheet",...a})}function H({...a}){return(0,b.jsx)(D.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function I({className:a,...c}){return(0,b.jsx)(D.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",a),...c})}function J({className:a,children:c,side:d="right",showCloseButton:e=!0,...f}){return(0,b.jsxs)(H,{children:[(0,b.jsx)(I,{}),(0,b.jsxs)(D.Dialog.Popup,{"data-slot":"sheet-content","data-side":d,className:(0,E.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",a),...f,children:[c,e&&(0,b.jsxs)(D.Dialog.Close,{"data-slot":"sheet-close",render:(0,b.jsx)(o.Button,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,b.jsx)(F.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function K({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,E.cn)("flex flex-col gap-0.5 p-4",a),...c})}function L({className:a,...c}){return(0,b.jsx)(D.Dialog.Title,{"data-slot":"sheet-title",className:(0,E.cn)("font-heading text-base font-medium text-foreground",a),...c})}function M({className:a,...c}){return(0,b.jsx)(D.Dialog.Description,{"data-slot":"sheet-description",className:(0,E.cn)("text-sm text-muted-foreground",a),...c})}var N=a.i(55213),O=a.i(481030);let P=(0,h.createServerReference)("4040f15d9ff7fcc9da879df4aca5559cfeb64a49bb",h.callServer,void 0,h.findSourceMapURL,"getTaskOverview");var Q=a.i(727946),R=a.i(173250);let S=(0,R.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),T=(0,R.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var U=a.i(292441);function V({open:a,onOpenChange:d,taskId:e}){let{t:g}=(0,f.useI18n)(),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useTransition)();(0,c.useEffect)(()=>{e&&a?k(async()=>{let a=await P(e);a&&i(a)}):i(null)},[e,a]);let l=h?Q.BOARD_COLUMNS.find(a=>a.id===h.status):null,m=h?Q.PRIORITY_CONFIG[h.priority]:null,n=h?.executions?.[0]??null;return(0,b.jsx)(G,{open:a,onOpenChange:d,children:(0,b.jsxs)(J,{side:"right",className:"w-[380px] sm:max-w-[380px] p-0",children:[(0,b.jsxs)(K,{className:"px-4 pt-4 pb-3 border-b border-border",children:[(0,b.jsx)(L,{className:"text-base font-semibold leading-tight pr-8",children:h?.title??""}),(0,b.jsx)(M,{className:"sr-only",children:g("taskDrawer.title")}),h&&(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[l&&(0,b.jsxs)(O.Badge,{variant:"secondary",className:"text-xs",children:[(0,b.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-1.5 ${l.color}`}),l.label]}),m&&(0,b.jsx)(O.Badge,{variant:"secondary",className:`text-xs ${m.color}`,children:m.label})]})]}),(0,b.jsx)(N.ScrollArea,{className:"flex-1 h-[calc(100%-80px)]",children:j&&!h?(0,b.jsx)("div",{className:"flex items-center justify-center h-32 text-sm text-muted-foreground",children:g("assets.loading")}):h?(0,b.jsxs)("div",{className:"p-4 space-y-4",children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:g("taskDrawer.description")}),(0,b.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:h.description||g("taskDrawer.noDescription")})]}),h.labels.length>0&&(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:g("taskDrawer.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.labels.map(a=>(0,b.jsx)(O.Badge,{variant:"secondary",className:"text-xs",style:{backgroundColor:`${a.label.color}20`,color:a.label.color,borderColor:`${a.label.color}40`},children:a.label.name},a.label.id))})]}),(0,b.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(S,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:g("taskDrawer.createdAt")}),(0,b.jsx)("span",{className:"text-foreground",children:new Date(h.createdAt).toLocaleDateString()})]}),(0,b.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(T,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:g("taskDrawer.resources")}),(0,b.jsx)("span",{className:"text-foreground",children:h._count.assets})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(U.PlayCircle,{className:"h-3.5 w-3.5"}),g("taskDrawer.lastExecution")]}),n?(0,b.jsxs)("div",{className:"rounded-md border border-border p-2.5 text-sm",children:[(0,b.jsx)(O.Badge,{variant:"secondary",className:"text-xs mb-1.5",children:n.status}),n.summary&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-4",children:n.summary.slice(0,200)})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g("taskDrawer.noExecution")})]})]}):null})]})})}var W=a.i(511153);a.s(["AssetsPageClient",0,function({allWorkspaces:a,initialWorkspaceId:h,initialProjectId:j,initialAssets:k}){let l,{t:m}=(0,f.useI18n)(),[n,o]=(0,c.useTransition)(),[q,s]=(0,c.useState)(h),[t,u]=(0,c.useState)(j),[v,y]=(0,c.useState)(k),[A,B]=(0,c.useState)(null),D=a.find(a=>a.id===q),E=D?.projects??[],F=(0,c.useCallback)(a=>{a?o(async()=>{y(await i(a))}):y([])},[o]),[G,H]=(0,c.useState)(null),I=G?G.mimeType?.startsWith("image/")?"image":/\.(txt|md|json)$/i.test(G.filename)?"text":null:null,J=async a=>{try{let b=await fetch("/api/internal/assets/reveal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a.path})});if(!b.ok){let a=await b.json().catch(()=>({}));W.toast.error(a.error||"Failed to reveal file")}}catch{W.toast.error("Failed to reveal file")}},K=async a=>{let b=v.find(b=>b.id===a);confirm(m("assets.deleteConfirm",{filename:b?.filename??a}))&&(await (0,g.deleteAsset)(a),F(t))};return(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsx)(e.SubPageNav,{workspaceId:q}),(0,b.jsxs)("div",{className:"header-sm flex items-center gap-3 px-6 py-2",children:[(0,b.jsxs)(w.Select,{value:q,onValueChange:b=>b&&(b=>{if(b===q)return;s(b);let c=a.find(a=>a.id===b),d=c?.projects[0]??null;u(d?.id??null),F(d?.id??null)})(b),children:[(0,b.jsx)(w.SelectTrigger,{className:"h-8 w-auto min-w-[120px]",children:(0,b.jsx)("span",{className:"truncate",children:a.find(a=>a.id===q)?.name??q})}),(0,b.jsx)(w.SelectContent,{children:a.map(a=>(0,b.jsx)(w.SelectItem,{value:a.id,children:a.name},a.id))})]}),E.length>0&&(0,b.jsxs)(w.Select,{value:t??"",onValueChange:a=>a&&void(a!==t&&(u(a),F(a))),children:[(0,b.jsx)(w.SelectTrigger,{className:"h-8 w-auto min-w-[140px]",children:(0,b.jsx)("span",{className:"truncate",children:(l=E.find(a=>a.id===t))?l.alias?`${l.name} (${l.alias})`:l.name:""})}),(0,b.jsx)(w.SelectContent,{children:E.map(a=>(0,b.jsxs)(w.SelectItem,{value:a.id,children:[a.name,a.alias?` (${a.alias})`:""]},a.id))})]}),(0,b.jsx)("div",{className:"ml-auto",children:(0,b.jsx)(x,{allWorkspaces:a,initialWsId:q,initialProjectId:t,onUploaded:a=>{a===t&&F(t)}})})]}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-6 py-4",children:(0,b.jsxs)("div",{className:`relative ${n?"opacity-40 pointer-events-none":""} transition-opacity`,children:[n&&(0,b.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:(0,b.jsx)(d.Loader2,{className:"size-5 animate-spin text-muted-foreground"})}),0===E.length?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 py-16 text-center",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:m("assets.noProject")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/60",children:m("assets.noProjectHint")})]}):(0,b.jsx)(r,{assets:v.map(a=>({...a,taskId:a.task?.id??null,taskTitle:a.task?.title??null})),onPreview:a=>{let b=a.mimeType?.startsWith("image/"),c=/\.(txt|md|json)$/i.test(a.filename);(b||c)&&H(a)},onReveal:J,onDelete:K,onTaskClick:B})]})}),(0,b.jsx)(z,{imageUrl:"image"===I&&G?p(G.path):null,filename:G?.filename??"",open:"image"===I,onOpenChange:a=>{a||H(null)}}),(0,b.jsx)(C,{url:"text"===I&&G?p(G.path):null,filename:G?.filename??"",open:"text"===I,onOpenChange:a=>{a||H(null)}}),(0,b.jsx)(V,{open:!!A,onOpenChange:a=>{a||B(null)},taskId:A})]})}],68482)}];
2
-
3
- //# sourceMappingURL=tower_src_app_workspaces_%5BworkspaceId%5D_assets_assets-page-client_tsx_0zfgzhi._.js.map
@@ -1,7 +0,0 @@
1
- module.exports=[293909,a=>{"use strict";let b,c,d;var e,f,g,h,i,j,k,l,m,n,o=a.i(348273),p=a.i(399424),q=a.i(851033),r=a.i(173250);let s=(0,r.default)("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]),t=(0,r.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);var u=a.i(475127),v=a.i(282980);function w({totalTasks:a,runningTasks:b}){let{t:c}=(0,v.useI18n)();return(0,o.jsxs)("div",{className:"grid grid-cols-3 gap-3 px-6 py-4",children:[(0,o.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,o.jsxs)("div",{className:"flex items-center gap-3",children:[(0,o.jsx)("div",{className:"rounded-lg bg-sky-500/10 p-2 ring-1 ring-sky-500/20",children:(0,o.jsx)(s,{className:"h-4 w-4 text-sky-400"})}),(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:c("board.overview")}),(0,o.jsx)("p",{className:"text-2xl font-bold font-mono tracking-tight text-foreground",children:a})]})]})}),(0,o.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,o.jsxs)("div",{className:"flex items-center gap-3",children:[(0,o.jsx)("div",{className:"rounded-lg bg-primary/10 p-2 ring-1 ring-primary/20",children:(0,o.jsx)(t,{className:"h-4 w-4 text-primary"})}),(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:c("board.running")}),(0,o.jsx)("p",{className:"text-2xl font-bold font-mono tracking-tight text-foreground",children:b})]})]})}),(0,o.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,o.jsxs)("div",{className:"flex items-center gap-3",children:[(0,o.jsx)("div",{className:"rounded-lg bg-emerald-500/10 p-2 ring-1 ring-emerald-500/20",children:(0,o.jsx)(u.Lightbulb,{className:"h-4 w-4 text-emerald-400"})}),(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:c("board.tip")}),(0,o.jsx)("p",{className:"text-xs font-medium text-foreground/80",children:c("board.tipText")})]})]})})]})}var x=a.i(709222),y=a.i(764352),z=a.i(422917);function A({searchQuery:a,onSearchChange:b,onCreateTask:c}){let{t:d}=(0,v.useI18n)();return(0,o.jsxs)("div",{className:"flex items-center gap-2 px-6 py-2",children:[(0,o.jsxs)("div",{className:"relative flex-1 max-w-xs",children:[(0,o.jsx)(y.Search,{className:"absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground"}),(0,o.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),placeholder:d("board.searchPlaceholder"),className:"h-8 w-full rounded-lg border border-border bg-background pl-8 pr-3 text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary"})]}),(0,o.jsxs)(z.Button,{"data-tour":"create-task",variant:"outline",className:"ml-auto gap-1.5 border-border text-xs text-muted-foreground hover:border-primary/30 hover:text-primary",onClick:c,children:[(0,o.jsx)(x.Plus,{className:"h-3.5 w-3.5"}),d("board.newTask")]})]})}var B=a.i(164439),C=a.i(235022),D=a.i(727946);function E({x:a,y:b,taskId:c,currentStatus:d,hasExecutions:e,workspaceId:f,onClose:g,onStatusChange:h,onLaunch:i}){let{t:j}=(0,v.useI18n)(),k=(0,q.useRouter)(),l=(0,p.useRef)(null);(0,p.useEffect)(()=>{let a=a=>{l.current&&!l.current.contains(a.target)&&g()},b=a=>{"Escape"===a.key&&g()};return document.addEventListener("mousedown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",b)}},[g]);let m="flex items-center px-3 py-1.5 text-xs cursor-pointer hover:bg-accent rounded-sm w-full text-left",n=(0,o.jsxs)("div",{ref:l,style:{position:"fixed",top:b,left:a,zIndex:9999},className:"bg-popover border border-border rounded-md shadow-md py-1 min-w-[180px]",children:[(0,o.jsx)("div",{className:"px-3 py-1 text-[10px] text-muted-foreground uppercase tracking-wider",children:j("board.contextMenu.changeStatus")}),D.BOARD_COLUMNS.map(a=>(0,o.jsxs)("button",{type:"button",className:m,onClick:()=>{h(c,a.id),g()},children:[d===a.id?(0,o.jsx)(C.Check,{className:"h-3 w-3 mr-2 flex-shrink-0"}):(0,o.jsx)("span",{className:"w-5 flex-shrink-0"}),a.label]},a.id)),(0,o.jsx)("hr",{className:"my-1 border-border"}),(0,o.jsx)("button",{type:"button",className:`${m} ${e?"opacity-50 cursor-not-allowed":""}`,disabled:e,onClick:()=>{e||(i(c),g())},children:j("board.contextMenu.launch")}),"DONE"!==d&&"CANCELLED"!==d&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("hr",{className:"my-1 border-border"}),(0,o.jsx)("button",{type:"button",className:m,onClick:()=>{k.push(`/workspaces/${f}/tasks/${c}`),g()},children:j("board.contextMenu.goToDetail")})]})]});return"u"<typeof document?null:(0,B.createPortal)(n,document.body)}var F=a.i(830383),G=a.i(223982);let H=(0,r.default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);var I=a.i(971605),J=a.i(665488),K=a.i(957751),L=a.i(657673);let M=(0,r.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);var N=a.i(481030),O=a.i(113514);function P({task:a,onClick:b,onEdit:c,onDelete:d,onTogglePin:e,onContextMenu:f}){let{t:g}=(0,v.useI18n)(),{attributes:h,listeners:i,setNodeRef:j,transform:k,transition:l,isDragging:m}=(0,G.useSortable)({id:a.id,data:{type:"task",task:a}}),n={transform:I.CSS.Transform.toString(k),transition:l,opacity:m?.4:1},p=D.PRIORITY_CONFIG[a.priority];return(0,o.jsxs)("div",{ref:j,style:n,...h,...i,className:"group cursor-grab rounded-lg border border-border bg-card p-3 transition-all hover:border-primary/20 hover:bg-accent/50 active:cursor-grabbing",onClick:b,onContextMenu:b=>{b.preventDefault(),b.stopPropagation(),f?.(a,b.clientX,b.clientY)},"data-testid":"task-card",children:[(0,o.jsxs)("div",{className:"flex items-start justify-between",children:[(0,o.jsx)("h4",{className:"text-sm font-medium text-foreground",children:a.title}),(0,o.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",className:`transition-all ${a.pinned?"text-primary opacity-100":"text-muted-foreground opacity-0 group-hover:opacity-100"}`,onClick:b=>{b.stopPropagation(),e?.(a.id)},"aria-label":g(a.pinned?"board.unpin":"board.pin"),children:(0,o.jsx)(M,{className:`h-3.5 w-3.5 ${a.pinned?"-rotate-45":""}`})}),(0,o.jsxs)(O.DropdownMenu,{children:[(0,o.jsx)(O.DropdownMenuTrigger,{render:(0,o.jsx)("button",{className:"rounded-md p-0.5 text-muted-foreground opacity-0 transition-all hover:bg-background hover:text-foreground group-hover:opacity-100",onClick:a=>a.stopPropagation()}),children:(0,o.jsx)(J.MoreHorizontal,{className:"h-4 w-4"})}),(0,o.jsxs)(O.DropdownMenuContent,{align:"end",children:[(0,o.jsxs)(O.DropdownMenuItem,{onClick:b=>{b.stopPropagation(),c?.(a)},children:[(0,o.jsx)(K.Pencil,{className:"mr-2 h-3.5 w-3.5"}),g("common.edit")]}),(0,o.jsxs)(O.DropdownMenuItem,{className:"text-rose-400",onClick:b=>{b.stopPropagation(),d?.(a.id)},children:[(0,o.jsx)(L.Trash2,{className:"mr-2 h-3.5 w-3.5"}),g("common.delete")]})]})]})]})]}),a.description&&(0,o.jsx)("p",{className:"mt-1.5 line-clamp-3 text-xs leading-relaxed text-muted-foreground",children:a.description}),(0,o.jsx)("div",{className:"mt-2.5",children:(0,o.jsx)(N.Badge,{variant:"secondary",className:`text-[10px] font-semibold ${p.color}`,children:p.label})}),a.labels&&a.labels.length>0&&(0,o.jsx)("div",{className:"mt-1.5 flex flex-wrap gap-1",children:a.labels.map(a=>(0,o.jsx)("span",{className:"rounded-full px-1.5 py-0.5 text-[10px] font-medium",style:{backgroundColor:a.label.color+"20",color:a.label.color},children:a.label.name},a.label.id))})]})}var Q=a.i(755811),R=a.i(55213);function S({open:a,onOpenChange:b,columnLabel:c,columnColor:d,tasks:e,onTaskClick:f}){let{t:g}=(0,v.useI18n)();return(0,o.jsx)(Q.Dialog,{open:a,onOpenChange:b,children:(0,o.jsxs)(Q.DialogContent,{className:"max-w-4xl max-h-[80vh]",children:[(0,o.jsx)(Q.DialogHeader,{children:(0,o.jsxs)(Q.DialogTitle,{className:"flex items-center gap-2",children:[(0,o.jsx)("div",{className:`h-2.5 w-2.5 rounded-full ${d}`}),(0,o.jsx)("span",{children:c}),(0,o.jsx)("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-xs font-mono font-medium text-muted-foreground",children:e.length})]})}),(0,o.jsx)(R.ScrollArea,{className:"max-h-[calc(80vh-80px)]",children:(0,o.jsxs)("div",{className:"grid grid-cols-3 gap-3 pr-3",children:[e.map(a=>{let c=D.PRIORITY_CONFIG[a.priority];return(0,o.jsxs)("div",{className:"cursor-pointer rounded-lg border border-border bg-card p-3 transition-all hover:border-primary/20 hover:bg-accent/50",onClick:()=>{f?.(a),b(!1)},children:[(0,o.jsx)("h4",{className:"text-sm font-medium text-foreground line-clamp-2",children:a.title}),a.description&&(0,o.jsx)("p",{className:"mt-1.5 line-clamp-2 text-xs leading-relaxed text-muted-foreground",children:a.description}),(0,o.jsxs)("div",{className:"mt-2 flex items-center gap-1.5 flex-wrap",children:[(0,o.jsx)(N.Badge,{variant:"secondary",className:`text-[10px] font-semibold ${c.color}`,children:c.label}),a.labels?.map(a=>(0,o.jsx)("span",{className:"rounded-full px-1.5 py-0.5 text-[10px] font-medium",style:{backgroundColor:a.label.color+"20",color:a.label.color},children:a.label.name},a.label.id))]})]},a.id)}),0===e.length&&(0,o.jsx)("div",{className:"col-span-3 py-8 text-center text-sm text-muted-foreground",children:g("board.noTasks")})]})})]})})}function T({id:a,label:b,color:c,tasks:d,onTaskClick:e,onEditTask:f,onAddTask:g,onDeleteTask:h,onTogglePin:i,onContextMenu:j}){let{setNodeRef:k,isOver:l}=(0,F.useDroppable)({id:a}),[m,n]=(0,p.useState)(!1),{t:q}=(0,v.useI18n)();return(0,o.jsxs)("div",{className:`flex w-0 min-w-[220px] flex-1 flex-col min-h-0 border-r border-border/50 last:border-r-0 transition-colors ${l?"bg-primary/[0.06]":""}`,children:[(0,o.jsxs)("div",{className:"flex items-center justify-between px-3 py-2.5 border-b border-border/30",children:[(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("div",{className:`h-2 w-2 rounded-full ${c}`}),(0,o.jsx)("span",{className:"text-xs font-semibold tracking-wide text-secondary-foreground",children:b}),(0,o.jsx)("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-[10px] font-mono font-medium text-muted-foreground",children:d.length})]}),(0,o.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",onClick:()=>n(!0),className:"text-muted-foreground","aria-label":q("board.viewAll"),children:(0,o.jsx)(H,{className:"h-3.5 w-3.5"})}),(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",onClick:g,className:"text-muted-foreground","aria-label":"add",children:(0,o.jsx)(x.Plus,{className:"h-3.5 w-3.5"})})]})]}),(0,o.jsx)(S,{open:m,onOpenChange:n,columnLabel:b,columnColor:c,tasks:d,onTaskClick:e}),(0,o.jsx)(R.ScrollArea,{className:"flex-1 min-h-0",children:(0,o.jsx)("div",{ref:k,className:"flex flex-col gap-2 p-2",children:(0,o.jsx)(G.SortableContext,{items:d.map(a=>a.id),strategy:G.verticalListSortingStrategy,children:d.map(a=>(0,o.jsx)(P,{task:a,onClick:()=>e?.(a),onEdit:f,onDelete:h,onTogglePin:i,onContextMenu:j},a.id))})})})]})}function U({initialTasks:a,onTaskMove:b,onTaskClick:c,onEditTask:d,onAddTask:e,onDeleteTask:f,onTogglePin:g,onContextMenuStatusChange:h,onContextMenuLaunch:i,workspaceId:j}){let[k,l]=(0,p.useState)(a),[m,n]=(0,p.useState)(null),[q,r]=(0,p.useState)(null);(0,p.useEffect)(()=>{l(a)},[a]);let s=(0,F.useSensors)((0,F.useSensor)(F.PointerSensor,{activationConstraint:{distance:8}})),t=(0,p.useCallback)((a,b,c)=>{r({task:a,x:b,y:c})},[]),u=(0,p.useCallback)(a=>{let b=k.find(b=>b.id===a.active.id);b&&n(b)},[k]),v=(0,p.useCallback)(a=>{let c,{active:d,over:e}=a;if(n(null),!e)return;let f=d.id,g=e.id;if(D.BOARD_COLUMNS.some(a=>a.id===g))c=g;else{let a=k.find(a=>a.id===g);c=a?.status}c&&(l(a=>a.map(a=>a.id===f?{...a,status:c}:a)),b?.(f,c))},[k,b]);return(0,o.jsxs)(F.DndContext,{id:"kanban-board",sensors:s,collisionDetection:F.closestCorners,onDragStart:u,onDragEnd:v,children:[(0,o.jsx)("div",{className:"mx-2 flex h-full overflow-x-auto rounded-xl border border-border bg-card/50",children:D.BOARD_COLUMNS.map(a=>(0,o.jsx)(T,{id:a.id,label:a.label,color:a.color,tasks:k.filter(b=>b.status===a.id),onTaskClick:c,onEditTask:d,onAddTask:()=>e?.(a.id),onDeleteTask:f,onTogglePin:g,onContextMenu:t},a.id))}),(0,o.jsx)(F.DragOverlay,{children:m?(0,o.jsx)("div",{className:"rotate-3 scale-105",children:(0,o.jsx)(P,{task:m})}):null}),q&&(0,o.jsx)(E,{x:q.x,y:q.y,taskId:q.task.id,currentStatus:q.task.status,hasExecutions:(q.task._count?.executions??0)>0,workspaceId:j??"",onClose:()=>r(null),onStatusChange:(a,b)=>{h?.(a,b),r(null)},onLaunch:a=>{i?.(a),r(null)}})]})}var V=a.i(524513),W=a.i(302512),X=a.i(648667),Y=a.i(280844);let Z=(0,r.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);a.s([],187574),a.i(187574);var $=a.i(415559),_=a.i(659603),aa=a.i(295247),ab=a.i(886407),ac=a.i(626759),ad=a.i(175168),ae=a.i(551720),af=a.i(873946);let ag=p.createContext(void 0);function ah(a){let b=p.useContext(ag);if(void 0===b&&!a)throw Error((0,af.default)(47));return b}var ai=a.i(241169),aj=a.i(870445),ak=a.i(270912),al=a.i(788457),am=a.i(749850),an=a.i(739631),ao=a.i(456726),ap=a.i(610702),aq=a.i(303266);let ar={...ao.popupStoreSelectors,disabled:(0,aj.createSelector)(a=>a.disabled),instantType:(0,aj.createSelector)(a=>a.instantType),openMethod:(0,aj.createSelector)(a=>a.openMethod),openChangeReason:(0,aj.createSelector)(a=>a.openChangeReason),modal:(0,aj.createSelector)(a=>a.modal),stickIfOpen:(0,aj.createSelector)(a=>a.stickIfOpen),titleElementId:(0,aj.createSelector)(a=>a.titleElementId),descriptionElementId:(0,aj.createSelector)(a=>a.descriptionElementId),openOnHover:(0,aj.createSelector)(a=>a.openOnHover),closeDelay:(0,aj.createSelector)(a=>a.closeDelay),hasViewport:(0,aj.createSelector)(a=>a.hasViewport)};class as extends ai.ReactStore{constructor(a){const b={...(0,ao.createInitialPopupStoreState)(),disabled:!1,modal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,nested:!1,openOnHover:!1,closeDelay:0,hasViewport:!1,...a};b.open&&a?.mounted===void 0&&(b.mounted=!0),super(b,{popupRef:p.createRef(),backdropRef:p.createRef(),internalBackdropRef:p.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:p.createRef(),beforeContentFocusGuardRef:p.createRef(),stickIfOpenTimeout:new ak.Timeout,triggerElements:new ap.PopupTriggerMap},ar)}setOpen=(a,b)=>{let c=b.reason===an.REASONS.triggerHover,d=b.reason===an.REASONS.triggerPress&&0===b.event.detail,e=!a&&(b.reason===an.REASONS.escapeKey||null==b.reason);if(b.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},this.context.onOpenChange?.(a,b),b.isCanceled)return;let f={open:a,nativeEvent:b.event,reason:b.reason,nested:this.state.nested,triggerElement:b.trigger},g=this.state.floatingRootContext.context.events;g?.emit("openchange",f);let h=()=>{let c={open:a,openChangeReason:b.reason},d=b.trigger?.id??null;(d||a)&&(c.activeTriggerId=d,c.activeTriggerElement=b.trigger??null),this.update(c)};c?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(aq.PATIENT_CLICK_THRESHOLD,()=>{this.set("stickIfOpen",!1)}),B.flushSync(h)):h(),d||e?this.set("instantType",d?"click":"dismiss"):b.reason===an.REASONS.focusOut?this.set("instantType","focus"):this.set("instantType",void 0)};static useStore(a,b){let c=(0,al.useRefWithInit)(()=>new as(b)).current,d=a??c;return(0,am.useOnMount)(c.disposeEffect),d}disposeEffect=()=>this.context.stickIfOpenTimeout.disposeEffect()}var at=a.i(662933),au=a.i(23639),av=a.i(494337);function aw({props:a}){let{children:b,open:c,defaultOpen:d=!1,onOpenChange:e,onOpenChangeComplete:f,modal:g=!1,handle:h,triggerId:i,defaultTriggerId:j=null}=a,k=as.useStore(h?.store,{modal:g,open:d,openProp:c,activeTriggerId:j,triggerIdProp:i});(0,_.useOnFirstRender)(()=>{void 0===c&&!1===k.state.open&&!0===d&&k.update({open:!0,activeTriggerId:j})}),k.useControlledProp("openProp",c),k.useControlledProp("triggerIdProp",i);let l=k.useState("open"),m=k.useState("positionerElement"),n=k.useState("payload"),q=k.useState("openChangeReason");k.useContextCallback("onOpenChange",e),k.useContextCallback("onOpenChangeComplete",f);let{openMethod:r,triggerProps:s}=(0,av.useOpenInteractionType)(l);(0,au.useImplicitActiveTrigger)(k);let{forceUnmount:t}=(0,au.useOpenStateTransitions)(l,k,()=>{k.update({stickIfOpen:!0,openChangeReason:null})});(0,$.useScrollLock)(l&&!0===g&&q!==an.REASONS.triggerHover&&"touch"!==r,m),p.useEffect(()=>{l||k.context.stickIfOpenTimeout.clear()},[k,l]);let u=p.useCallback(a=>{let b=(0,at.createChangeEventDetails)(a);return b.preventUnmountOnClose=()=>{k.set("preventUnmountingOnClose",!0)},b},[k]),v=p.useCallback(()=>{k.setOpen(!1,u(an.REASONS.imperativeAction))},[k,u]);p.useImperativeHandle(a.actionsRef,()=>({unmount:t,close:v}),[t,v]);let w=(0,ae.useSyncedFloatingRootContext)({popupStore:k,onOpenChange:k.setOpen}),x=(0,aa.useDismiss)(w,{outsidePressEvent:{mouse:"trap-focus"===g?"sloppy":"intentional",touch:"sloppy"}}),y=(0,ac.useRole)(w),{getReferenceProps:z,getFloatingProps:A,getTriggerProps:B}=(0,ab.useInteractions)([x,y]),C=p.useMemo(()=>z(s),[z,s]),D=p.useMemo(()=>B(s),[B,s]),E=p.useMemo(()=>A(),[A]);k.useSyncedValues({modal:g,openMethod:r,activeTriggerProps:C,inactiveTriggerProps:D,popupProps:E,floatingRootContext:w,nested:null!=(0,ad.useFloatingParentNodeId)()});let F=p.useMemo(()=>({store:k}),[k]);return(0,o.jsx)(ag.Provider,{value:F,children:"function"==typeof b?b({payload:n}):b})}var ax=a.i(867276),ay=a.i(566155),az=a.i(829458),aA=a.i(944921),aB=a.i(428291),aC=a.i(481718),aD=a.i(480233),aE=a.i(371410),aF=a.i(591962),aG=a.i(350360),aH=a.i(417301);let aI=p.forwardRef(function(a,b){let{render:c,className:d,disabled:e=!1,nativeButton:f=!0,handle:g,payload:h,openOnHover:i=!1,delay:j=300,closeDelay:k=0,id:l,...m}=a,n=ah(!0),q=g?.store??n?.store;if(!q)throw Error((0,af.default)(74));let r=(0,aE.useBaseUiId)(l),s=q.useState("isTriggerActive",r),t=q.useState("floatingRootContext"),u=q.useState("isOpenedByTrigger",r),v=p.useRef(null),{registerTrigger:w,isMountedByThisTrigger:x}=(0,au.useTriggerDataForwarding)(r,v,q,{payload:h,disabled:e,openOnHover:i,closeDelay:k}),y=q.useState("openChangeReason"),z=q.useState("stickIfOpen"),A=q.useState("openMethod"),C=(0,aD.useHoverReferenceInteraction)(t,{enabled:null!=t&&i&&("touch"!==A||y!==an.REASONS.triggerPress),mouseOnly:!0,move:!1,handleClose:(0,aB.safePolygon)(),restMs:j,delay:{close:k},triggerElementRef:v,isActiveTrigger:s}),D=(0,aC.useClick)(t,{enabled:null!=t,stickIfOpen:z}),E=(0,ab.useInteractions)([D]),F=q.useState("triggerProps",x),{getButtonProps:G,buttonRef:H}=(0,ay.useButton)({disabled:e,native:f}),I=p.useMemo(()=>({open:a=>a&&y===an.REASONS.triggerPress?az.pressableTriggerOpenStateMapping.open(a):az.triggerOpenStateMapping.open(a)}),[y]),J=(0,aA.useRenderElement)("button",a,{state:{disabled:e,open:u},ref:[H,b,w,v],props:[E.getReferenceProps(),C,F,{[aq.CLICK_TRIGGER_IDENTIFIER]:"",id:r},m,G],stateAttributesMapping:I}),K=p.useRef(null),L=(0,ax.useStableCallback)(a=>{B.flushSync(()=>{q.setOpen(!1,(0,at.createChangeEventDetails)(an.REASONS.focusOut,a.nativeEvent,a.currentTarget))});let b=(0,aH.getTabbableBeforeElement)(K.current);b?.focus()}),M=(0,ax.useStableCallback)(a=>{let b=q.select("positionerElement");if(b&&(0,aH.isOutsideEvent)(a,b))q.context.beforeContentFocusGuardRef.current?.focus();else{B.flushSync(()=>{q.setOpen(!1,(0,at.createChangeEventDetails)(an.REASONS.focusOut,a.nativeEvent,a.currentTarget))});let c=(0,aH.getTabbableAfterElement)(q.context.triggerFocusTargetRef.current||v.current);for(;null!==c&&(0,aG.contains)(b,c);){let a=c;if((c=(0,aH.getNextTabbable)(c))===a)break}c?.focus()}});return s?(0,o.jsxs)(p.Fragment,{children:[(0,o.jsx)(aF.FocusGuard,{ref:K,onFocus:L}),(0,o.jsx)(p.Fragment,{children:J},r),(0,o.jsx)(aF.FocusGuard,{ref:q.context.triggerFocusTargetRef,onFocus:M})]}):(0,o.jsx)(p.Fragment,{children:J},r)});var aJ=a.i(393013);let aK=p.createContext(void 0),aL=p.forwardRef(function(a,b){let{keepMounted:c=!1,...d}=a,{store:e}=ah();return e.useState("mounted")||c?(0,o.jsx)(aK.Provider,{value:c,children:(0,o.jsx)(aJ.FloatingPortal,{ref:b,...d})}):null});var aM=a.i(148053),aN=a.i(36902);let aO=p.createContext(void 0);function aP(){let a=p.useContext(aO);if(!a)throw Error((0,af.default)(46));return a}var aQ=a.i(683538),aR=a.i(536657),aS=a.i(618867),aT=a.i(974980),aU=a.i(110815);let aV=p.forwardRef(function(a,b){let{render:c,className:d,anchor:e,positionMethod:f="absolute",side:g="bottom",align:h="center",sideOffset:i=0,alignOffset:j=0,collisionBoundary:k="clipping-ancestors",collisionPadding:l=5,arrowPadding:m=5,sticky:n=!1,disableAnchorTracking:q=!1,collisionAvoidance:r=aq.POPUP_COLLISION_AVOIDANCE,...s}=a,{store:t}=ah(),u=function(){let a=p.useContext(aK);if(void 0===a)throw Error((0,af.default)(45));return a}(),v=(0,ad.useFloatingNodeId)(),w=t.useState("floatingRootContext"),x=t.useState("mounted"),y=t.useState("open"),z=t.useState("openChangeReason"),A=t.useState("activeTriggerElement"),B=t.useState("modal"),C=t.useState("positionerElement"),D=t.useState("instantType"),E=t.useState("transitionStatus"),F=t.useState("hasViewport"),G=p.useRef(null),H=(0,aS.useAnimationsFinished)(C,!1,!1),I=(0,aQ.useAnchorPositioning)({anchor:e,floatingRootContext:w,positionMethod:f,mounted:x,side:g,sideOffset:i,align:h,alignOffset:j,arrowPadding:m,collisionBoundary:k,collisionPadding:l,sticky:n,disableAnchorTracking:q,keepMounted:u,nodeId:v,collisionAvoidance:r,adaptiveOrigin:F?aT.adaptiveOrigin:void 0}),J=p.useMemo(()=>{let a={};return y||(a.pointerEvents="none"),{role:"presentation",hidden:!x,style:{...I.positionerStyles,...a}}},[y,x,I.positionerStyles]),K=p.useMemo(()=>({props:J,...I}),[J,I]),L=w.useState("domReferenceElement");(0,aN.useIsoLayoutEffect)(()=>{let a=G.current;if(L&&(G.current=L),a&&L&&L!==a){t.set("instantType",void 0);let a=new AbortController;return H(()=>{t.set("instantType","trigger-change")},a.signal),()=>{a.abort()}}},[L,H,t]);let M={open:y,side:K.side,align:K.align,anchorHidden:K.anchorHidden,instant:D},N=p.useCallback(a=>{t.set("positionerElement",a)},[t]),O=(0,aA.useRenderElement)("div",a,{state:M,props:[K.props,(0,aU.getDisabledMountTransitionStyles)(E),s],ref:[b,N],stateAttributesMapping:az.popupStateMapping});return(0,o.jsxs)(aO.Provider,{value:K,children:[x&&!0===B&&z!==an.REASONS.triggerHover&&(0,o.jsx)(aR.InternalBackdrop,{ref:t.context.internalBackdropRef,inert:(0,aM.inertValue)(!y),cutout:A}),(0,o.jsx)(ad.FloatingNode,{id:v,children:O})]})});var aW=a.i(413903),aX=a.i(319844),aY=a.i(714999),aZ=a.i(269615),a$=a.i(337990),a_=a.i(992150),a0=a.i(137300);let a1=p.createContext(void 0);function a2(a){let{value:b,children:c}=a;return(0,o.jsx)(a1.Provider,{value:b,children:c})}let a3={...az.popupStateMapping,...aZ.transitionStatusMapping},a4=p.forwardRef(function(a,b){let{className:c,render:d,initialFocus:e,finalFocus:f,...g}=a,{store:h}=ah(),i=aP(),j=null!=(0,a0.useToolbarRootContext)(!0),{context:k,hasClosePart:l}=function(){let[a,b]=p.useState(0),c=(0,ax.useStableCallback)(()=>(b(a=>a+1),()=>{b(a=>Math.max(0,a-1))}));return{context:p.useMemo(()=>({register:c}),[c]),hasClosePart:a>0}}(),m=h.useState("open"),n=h.useState("openMethod"),q=h.useState("instantType"),r=h.useState("transitionStatus"),s=h.useState("popupProps"),t=h.useState("titleElementId"),u=h.useState("descriptionElementId"),v=h.useState("modal"),w=h.useState("mounted"),x=h.useState("openChangeReason"),y=h.useState("activeTriggerElement"),z=h.useState("floatingRootContext");(0,a$.useOpenChangeComplete)({open:m,ref:h.context.popupRef,onComplete(){m&&h.context.onOpenChangeComplete?.(!0)}});let A=h.useState("disabled"),B=h.useState("openOnHover"),C=h.useState("closeDelay");(0,aY.useHoverFloatingInteraction)(z,{enabled:B&&!A,closeDelay:C});let D=void 0===e?function(a){return"touch"!==a||h.context.popupRef.current}:e,E={open:m,side:i.side,align:i.align,instant:q,transitionStatus:r},F=p.useCallback(a=>{h.set("popupElement",a)},[h]),G=(0,aA.useRenderElement)("div",a,{state:E,ref:[b,h.context.popupRef,F],props:[s,{"aria-labelledby":t,"aria-describedby":u,onKeyDown(a){j&&a_.COMPOSITE_KEYS.has(a.key)&&a.stopPropagation()}},(0,aU.getDisabledMountTransitionStyles)(r),g],stateAttributesMapping:a3});return(0,o.jsx)(aX.FloatingFocusManager,{context:z,openInteractionType:n,modal:!1!==v&&l,disabled:!w||x===an.REASONS.triggerHover,initialFocus:D,returnFocus:f,restoreFocus:"popup",previousFocusableElement:(0,aW.isHTMLElement)(y)?y:void 0,nextFocusableElement:h.context.triggerFocusTargetRef,beforeContentFocusGuardRef:h.context.beforeContentFocusGuardRef,children:(0,o.jsx)(a2,{value:k,children:G})})}),a5=p.forwardRef(function(a,b){let{className:c,render:d,...e}=a,{store:f}=ah(),g=f.useState("open"),{arrowRef:h,side:i,align:j,arrowUncentered:k,arrowStyles:l}=aP();return(0,aA.useRenderElement)("div",a,{state:{open:g,side:i,align:j,uncentered:k},ref:[b,h],props:[{style:l,"aria-hidden":!0},e],stateAttributesMapping:az.popupStateMapping})}),a6={...az.popupStateMapping,...aZ.transitionStatusMapping},a7=p.forwardRef(function(a,b){let{className:c,render:d,...e}=a,{store:f}=ah(),g=f.useState("open"),h=f.useState("mounted"),i=f.useState("transitionStatus"),j=f.useState("openChangeReason");return(0,aA.useRenderElement)("div",a,{state:{open:g,transitionStatus:i},ref:[f.context.backdropRef,b],props:[{role:"presentation",hidden:!h,style:{pointerEvents:j===an.REASONS.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},e],stateAttributesMapping:a6})}),a8=p.forwardRef(function(a,b){let{render:c,className:d,...e}=a,{store:f}=ah(),g=(0,aE.useBaseUiId)(e.id);return(0,aN.useIsoLayoutEffect)(()=>(f.set("titleElementId",g),()=>{f.set("titleElementId",void 0)}),[f,g]),(0,aA.useRenderElement)("h2",a,{ref:b,props:[{id:g},e]})}),a9=p.forwardRef(function(a,b){let{render:c,className:d,...e}=a,{store:f}=ah(),g=(0,aE.useBaseUiId)(e.id);return(0,aN.useIsoLayoutEffect)(()=>(f.set("descriptionElementId",g),()=>{f.set("descriptionElementId",void 0)}),[f,g]),(0,aA.useRenderElement)("p",a,{ref:b,props:[{id:g},e]})}),ba=p.forwardRef(function(a,b){let c,{render:d,className:e,disabled:f=!1,nativeButton:g=!0,...h}=a,{buttonRef:i,getButtonProps:j}=(0,ay.useButton)({disabled:f,focusableWhenDisabled:!1,native:g}),{store:k}=ah();return c=p.useContext(a1),(0,aN.useIsoLayoutEffect)(()=>c?.register(),[c]),(0,aA.useRenderElement)("button",a,{ref:[b,i],props:[{onClick(a){k.setOpen(!1,(0,at.createChangeEventDetails)(an.REASONS.closePress,a.nativeEvent,a.currentTarget))}},h,j]})}),bb=((e={}).popupWidth="--popup-width",e.popupHeight="--popup-height",e);var bc=a.i(641852);let bd={activationDirection:a=>a?{"data-activation-direction":a}:null},be=p.forwardRef(function(a,b){let{render:c,className:d,children:e,...f}=a,{store:g}=ah(),{side:h}=aP(),i=g.useState("instantType"),{children:j,state:k}=(0,bc.usePopupViewport)({store:g,side:h,cssVars:bb,children:e}),l={activationDirection:k.activationDirection,transitioning:k.transitioning,instant:i};return(0,aA.useRenderElement)("div",a,{state:l,ref:b,props:[f,{children:j}],stateAttributesMapping:bd})});class bf{constructor(){this.store=new as}open(a){let b=a?this.store.context.triggerElements.getById(a)??void 0:void 0;if(a&&!b)throw Error((0,af.default)(80,a));this.store.setOpen(!0,(0,at.createChangeEventDetails)(an.REASONS.imperativeAction,void 0,b))}close(){this.store.setOpen(!1,(0,at.createChangeEventDetails)(an.REASONS.imperativeAction,void 0,void 0))}get isOpen(){return this.store.state.open}}a.s(["Arrow",0,a5,"Backdrop",0,a7,"Close",0,ba,"Description",0,a9,"Handle",0,bf,"Popup",0,a4,"Portal",0,aL,"Positioner",0,aV,"Root",0,function(a){return ah(!0)?(0,o.jsx)(aw,{props:a}):(0,o.jsx)(ad.FloatingTree,{children:(0,o.jsx)(aw,{props:a})})},"Title",0,a8,"Trigger",0,aI,"Viewport",0,be,"createHandle",0,function(){return new bf}],871399);var bg=a.i(871399),bg=bg,bh=a.i(707466);function bi({...a}){return(0,o.jsx)(bg.Root,{"data-slot":"popover",...a})}function bj({...a}){return(0,o.jsx)(bg.Trigger,{"data-slot":"popover-trigger",...a})}function bk({className:a,align:b="center",alignOffset:c=0,side:d="bottom",sideOffset:e=4,...f}){return(0,o.jsx)(bg.Portal,{children:(0,o.jsx)(bg.Positioner,{align:b,alignOffset:c,side:d,sideOffset:e,className:"isolate z-50",children:(0,o.jsx)(bg.Popup,{"data-slot":"popover-content",className:(0,bh.cn)("z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...f})})})}var bl=/[\\\/_+.#"@\[\(\{&]/,bm=/[\\\/_+.#"@\[\(\{&]/g,bn=/[\s-]/,bo=/[\s-]/g;function bp(a){return a.toLowerCase().replace(bo," ")}function bq(a,b,{checkForDefaultPrevented:c=!0}={}){return function(d){if(a?.(d),!1===c||!d.defaultPrevented)return b?.(d)}}function br(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function bs(...a){return b=>{let c=!1,d=a.map(a=>{let d=br(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():br(a[b],null)}}}}function bt(...a){return p.useCallback(bs(...a),a)}var bu=globalThis?.document?p.useLayoutEffect:()=>{},bv=p[" useId ".trim().toString()]||(()=>void 0),bw=0;function bx(a){let[b,c]=p.useState(bv());return bu(()=>{a||c(a=>a??String(bw++))},[a]),a||(b?`radix-${b}`:"")}p[" useEffectEvent ".trim().toString()],p[" useInsertionEffect ".trim().toString()];var by=p[" useInsertionEffect ".trim().toString()]||bu;function bz(a){var b;let c,d=(b=a,(c=p.forwardRef((a,b)=>{let{children:c,...d}=a;if(p.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==p.Fragment&&(h.ref=b?bs(b,g):g),p.cloneElement(c,h)}return p.Children.count(c)>1?p.Children.only(null):null})).displayName=`${b}.SlotClone`,c),e=p.forwardRef((a,b)=>{let{children:c,...e}=a,f=p.Children.toArray(c),g=f.find(bB);if(g){let a=g.props.children,c=f.map(b=>b!==g?b:p.Children.count(a)>1?p.Children.only(null):p.isValidElement(a)?a.props.children:null);return(0,o.jsx)(d,{...e,ref:b,children:p.isValidElement(a)?p.cloneElement(a,void 0,c):null})}return(0,o.jsx)(d,{...e,ref:b,children:c})});return e.displayName=`${a}.Slot`,e}Symbol("RADIX:SYNC_STATE");var bA=Symbol("radix.slottable");function bB(a){return p.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===bA}var bC=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{let c=bz(`Primitive.${b}`),d=p.forwardRef((a,d)=>{let{asChild:e,...f}=a;return(0,o.jsx)(e?c:b,{...f,ref:d})});return d.displayName=`Primitive.${b}`,{...a,[b]:d}},{});function bD(a){let b=p.useRef(a);return p.useEffect(()=>{b.current=a}),p.useMemo(()=>(...a)=>b.current?.(...a),[])}var bE="dismissableLayer.update",bF=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),bG=p.forwardRef((a,b)=>{let{disableOutsidePointerEvents:c=!1,onEscapeKeyDown:d,onPointerDownOutside:e,onFocusOutside:f,onInteractOutside:g,onDismiss:h,...i}=a,j=p.useContext(bF),[k,l]=p.useState(null),n=k?.ownerDocument??globalThis?.document,[,q]=p.useState({}),r=bt(b,a=>l(a)),s=Array.from(j.layers),[t]=[...j.layersWithOutsidePointerEventsDisabled].slice(-1),u=s.indexOf(t),v=k?s.indexOf(k):-1,w=j.layersWithOutsidePointerEventsDisabled.size>0,x=v>=u,y=function(a,b=globalThis?.document){let c=bD(a),d=p.useRef(!1),e=p.useRef(()=>{});return p.useEffect(()=>{let a=a=>{if(a.target&&!d.current){let d=function(){bI("dismissableLayer.pointerDownOutside",c,f,{discrete:!0})},f={originalEvent:a};"touch"===a.pointerType?(b.removeEventListener("click",e.current),e.current=d,b.addEventListener("click",e.current,{once:!0})):d()}else b.removeEventListener("click",e.current);d.current=!1},f=window.setTimeout(()=>{b.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(f),b.removeEventListener("pointerdown",a),b.removeEventListener("click",e.current)}},[b,c]),{onPointerDownCapture:()=>d.current=!0}}(a=>{let b=a.target,c=[...j.branches].some(a=>a.contains(b));x&&!c&&(e?.(a),g?.(a),a.defaultPrevented||h?.())},n),z=function(a,b=globalThis?.document){let c=bD(a),d=p.useRef(!1);return p.useEffect(()=>{let a=a=>{a.target&&!d.current&&bI("dismissableLayer.focusOutside",c,{originalEvent:a},{discrete:!1})};return b.addEventListener("focusin",a),()=>b.removeEventListener("focusin",a)},[b,c]),{onFocusCapture:()=>d.current=!0,onBlurCapture:()=>d.current=!1}}(a=>{let b=a.target;![...j.branches].some(a=>a.contains(b))&&(f?.(a),g?.(a),a.defaultPrevented||h?.())},n);return!function(a,b=globalThis?.document){let c=bD(a);p.useEffect(()=>{let a=a=>{"Escape"===a.key&&c(a)};return b.addEventListener("keydown",a,{capture:!0}),()=>b.removeEventListener("keydown",a,{capture:!0})},[c,b])}(a=>{v===j.layers.size-1&&(d?.(a),!a.defaultPrevented&&h&&(a.preventDefault(),h()))},n),p.useEffect(()=>{if(k)return c&&(0===j.layersWithOutsidePointerEventsDisabled.size&&(m=n.body.style.pointerEvents,n.body.style.pointerEvents="none"),j.layersWithOutsidePointerEventsDisabled.add(k)),j.layers.add(k),bH(),()=>{c&&1===j.layersWithOutsidePointerEventsDisabled.size&&(n.body.style.pointerEvents=m)}},[k,n,c,j]),p.useEffect(()=>()=>{k&&(j.layers.delete(k),j.layersWithOutsidePointerEventsDisabled.delete(k),bH())},[k,j]),p.useEffect(()=>{let a=()=>q({});return document.addEventListener(bE,a),()=>document.removeEventListener(bE,a)},[]),(0,o.jsx)(bC.div,{...i,ref:r,style:{pointerEvents:w?x?"auto":"none":void 0,...a.style},onFocusCapture:bq(a.onFocusCapture,z.onFocusCapture),onBlurCapture:bq(a.onBlurCapture,z.onBlurCapture),onPointerDownCapture:bq(a.onPointerDownCapture,y.onPointerDownCapture)})});function bH(){let a=new CustomEvent(bE);document.dispatchEvent(a)}function bI(a,b,c,{discrete:d}){let e=c.originalEvent.target,f=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:c});if(b&&e.addEventListener(a,b,{once:!0}),d)e&&B.flushSync(()=>e.dispatchEvent(f));else e.dispatchEvent(f)}bG.displayName="DismissableLayer",p.forwardRef((a,b)=>{let c=p.useContext(bF),d=p.useRef(null),e=bt(b,d);return p.useEffect(()=>{let a=d.current;if(a)return c.branches.add(a),()=>{c.branches.delete(a)}},[c.branches]),(0,o.jsx)(bC.div,{...a,ref:e})}).displayName="DismissableLayerBranch";var bJ="focusScope.autoFocusOnMount",bK="focusScope.autoFocusOnUnmount",bL={bubbles:!1,cancelable:!0},bM=p.forwardRef((a,b)=>{let{loop:c=!1,trapped:d=!1,onMountAutoFocus:e,onUnmountAutoFocus:f,...g}=a,[h,i]=p.useState(null),j=bD(e),k=bD(f),l=p.useRef(null),m=bt(b,a=>i(a)),n=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(d){let a=function(a){if(n.paused||!h)return;let b=a.target;h.contains(b)?l.current=b:bP(l.current,{select:!0})},b=function(a){if(n.paused||!h)return;let b=a.relatedTarget;null!==b&&(h.contains(b)||bP(l.current,{select:!0}))};document.addEventListener("focusin",a),document.addEventListener("focusout",b);let c=new MutationObserver(function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&bP(h)});return h&&c.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),c.disconnect()}}},[d,h,n.paused]),p.useEffect(()=>{if(h){bQ.add(n);let a=document.activeElement;if(!h.contains(a)){let b=new CustomEvent(bJ,bL);h.addEventListener(bJ,j),h.dispatchEvent(b),b.defaultPrevented||(function(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(bP(d,{select:b}),document.activeElement!==c)return}(bN(h).filter(a=>"A"!==a.tagName),{select:!0}),document.activeElement===a&&bP(h))}return()=>{h.removeEventListener(bJ,j),setTimeout(()=>{let b=new CustomEvent(bK,bL);h.addEventListener(bK,k),h.dispatchEvent(b),b.defaultPrevented||bP(a??document.body,{select:!0}),h.removeEventListener(bK,k),bQ.remove(n)},0)}}},[h,j,k,n]);let q=p.useCallback(a=>{if(!c&&!d||n.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){var f;let b,d=a.currentTarget,[g,h]=[bO(b=bN(f=d),f),bO(b.reverse(),f)];g&&h?a.shiftKey||e!==h?a.shiftKey&&e===g&&(a.preventDefault(),c&&bP(h,{select:!0})):(a.preventDefault(),c&&bP(g,{select:!0})):e===d&&a.preventDefault()}},[c,d,n.paused]);return(0,o.jsx)(bC.div,{tabIndex:-1,...g,ref:m,onKeyDown:q})});function bN(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;c.nextNode();)b.push(c.currentNode);return b}function bO(a,b){for(let c of a)if(!function(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}(c,{upTo:b}))return c}function bP(a,{select:b=!1}={}){if(a&&a.focus){var c;let d=document.activeElement;a.focus({preventScroll:!0}),a!==d&&(c=a)instanceof HTMLInputElement&&"select"in c&&b&&a.select()}}bM.displayName="FocusScope";var bQ=(d=[],{add(a){let b=d[0];a!==b&&b?.pause(),(d=bR(d,a)).unshift(a)},remove(a){d=bR(d,a),d[0]?.resume()}});function bR(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}var bS=p.forwardRef((a,b)=>{let{container:c,...d}=a,[e,f]=p.useState(!1);bu(()=>f(!0),[]);let g=c||e&&globalThis?.document?.body;return g?B.default.createPortal((0,o.jsx)(bC.div,{...d,ref:b}),g):null});bS.displayName="Portal";var bT=a=>{var b;let c,d,{present:e,children:f}=a,g=function(a){var b,c;let[d,e]=p.useState(),f=p.useRef(null),g=p.useRef(a),h=p.useRef("none"),[i,j]=(b=a?"mounted":"unmounted",c={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},p.useReducer((a,b)=>c[a][b]??a,b));return p.useEffect(()=>{let a=bU(f.current);h.current="mounted"===i?a:"none"},[i]),bu(()=>{let b=f.current,c=g.current;if(c!==a){let d=h.current,e=bU(b);a?j("MOUNT"):"none"===e||b?.display==="none"?j("UNMOUNT"):c&&d!==e?j("ANIMATION_OUT"):j("UNMOUNT"),g.current=a}},[a,j]),bu(()=>{if(d){let a,b=d.ownerDocument.defaultView??window,c=c=>{let e=bU(f.current).includes(CSS.escape(c.animationName));if(c.target===d&&e&&(j("ANIMATION_END"),!g.current)){let c=d.style.animationFillMode;d.style.animationFillMode="forwards",a=b.setTimeout(()=>{"forwards"===d.style.animationFillMode&&(d.style.animationFillMode=c)})}},e=a=>{a.target===d&&(h.current=bU(f.current))};return d.addEventListener("animationstart",e),d.addEventListener("animationcancel",c),d.addEventListener("animationend",c),()=>{b.clearTimeout(a),d.removeEventListener("animationstart",e),d.removeEventListener("animationcancel",c),d.removeEventListener("animationend",c)}}j("ANIMATION_END")},[d,j]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:p.useCallback(a=>{f.current=a?getComputedStyle(a):null,e(a)},[])}}(e),h="function"==typeof f?f({present:g.isPresent}):p.Children.only(f),i=bt(g.ref,(b=h,(d=(c=Object.getOwnPropertyDescriptor(b.props,"ref")?.get)&&"isReactWarning"in c&&c.isReactWarning)?b.ref:(d=(c=Object.getOwnPropertyDescriptor(b,"ref")?.get)&&"isReactWarning"in c&&c.isReactWarning)?b.props.ref:b.props.ref||b.ref));return"function"==typeof f||g.isPresent?p.cloneElement(h,{ref:i}):null};function bU(a){return a?.animationName||"none"}bT.displayName="Presence";var bV=0;function bW(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var bX=function(){return(bX=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};function bY(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c}var bZ=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),b$="width-before-scroll-bar";function b_(a,b){return"function"==typeof a?a(b):a&&(a.current=b),a}var b0=p.useEffect,b1=new WeakMap,b2=(void 0===f&&(f={}),(void 0===g&&(g=function(a){return a}),h=[],i=!1,j={read:function(){if(i)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return h.length?h[h.length-1]:null},useMedium:function(a){var b=g(a,i);return h.push(b),function(){h=h.filter(function(a){return a!==b})}},assignSyncMedium:function(a){for(i=!0;h.length;){var b=h;h=[],b.forEach(a)}h={push:function(b){return a(b)},filter:function(){return h}}},assignMedium:function(a){i=!0;var b=[];if(h.length){var c=h;h=[],c.forEach(a),b=h}var d=function(){var c=b;b=[],c.forEach(a)},e=function(){return Promise.resolve().then(d)};e(),h={push:function(a){b.push(a),e()},filter:function(a){return b=b.filter(a),h}}}}).options=bX({async:!0,ssr:!1},f),j),b3=function(){},b4=p.forwardRef(function(a,b){var c,d,e,f,g=p.useRef(null),h=p.useState({onScrollCapture:b3,onWheelCapture:b3,onTouchMoveCapture:b3}),i=h[0],j=h[1],k=a.forwardProps,l=a.children,m=a.className,n=a.removeScrollBar,o=a.enabled,q=a.shards,r=a.sideCar,s=a.noRelative,t=a.noIsolation,u=a.inert,v=a.allowPinchZoom,w=a.as,x=a.gapMode,y=bY(a,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),z=(c=[g,b],d=function(a){return c.forEach(function(b){return b_(b,a)})},(e=(0,p.useState)(function(){return{value:null,callback:d,facade:{get current(){return e.value},set current(value){var a=e.value;a!==value&&(e.value=value,e.callback(value,a))}}}})[0]).callback=d,f=e.facade,b0(function(){var a=b1.get(f);if(a){var b=new Set(a),d=new Set(c),e=f.current;b.forEach(function(a){d.has(a)||b_(a,null)}),d.forEach(function(a){b.has(a)||b_(a,e)})}b1.set(f,c)},[c]),f),A=bX(bX({},y),i);return p.createElement(p.Fragment,null,o&&p.createElement(r,{sideCar:b2,removeScrollBar:n,shards:q,noRelative:s,noIsolation:t,inert:u,setCallbacks:j,allowPinchZoom:!!v,lockRef:g,gapMode:x}),k?p.cloneElement(p.Children.only(l),bX(bX({},A),{ref:z})):p.createElement(void 0===w?"div":w,bX({},A,{className:m,ref:z}),l))});b4.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},b4.classNames={fullWidth:b$,zeroRight:bZ};var b5=function(a){var b=a.sideCar,c=bY(a,["sideCar"]);if(!b)throw Error("Sidecar: please provide `sideCar` property to import the right car");var d=b.read();if(!d)throw Error("Sidecar medium not found");return p.createElement(d,bX({},c))};b5.isSideCarExport=!0;var b6=function(){var a=0,b=null;return{add:function(c){if(0==a&&(b=function(){if(!document)return null;var a=document.createElement("style");a.type="text/css";var b=n||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return b&&a.setAttribute("nonce",b),a}())){var d,e;(d=b).styleSheet?d.styleSheet.cssText=c:d.appendChild(document.createTextNode(c)),e=b,(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}a++},remove:function(){--a||!b||(b.parentNode&&b.parentNode.removeChild(b),b=null)}}},b7=function(){var a=b6();return function(b,c){p.useEffect(function(){return a.add(b),function(){a.remove()}},[b&&c])}},b8=function(){var a=b7();return function(b){return a(b.styles,b.dynamic),null}},b9={left:0,top:0,right:0,gap:0},ca=b8(),cb="data-scroll-locked",cc=function(a,b,c,d){var e=a.left,f=a.top,g=a.right,h=a.gap;return void 0===c&&(c="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(d,";\n padding-right: ").concat(h,"px ").concat(d,";\n }\n body[").concat(cb,"] {\n overflow: hidden ").concat(d,";\n overscroll-behavior: contain;\n ").concat([b&&"position: relative ".concat(d,";"),"margin"===c&&"\n padding-left: ".concat(e,"px;\n padding-top: ").concat(f,"px;\n padding-right: ").concat(g,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(h,"px ").concat(d,";\n "),"padding"===c&&"padding-right: ".concat(h,"px ").concat(d,";")].filter(Boolean).join(""),"\n }\n \n .").concat(bZ," {\n right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(b$," {\n margin-right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(bZ," .").concat(bZ," {\n right: 0 ").concat(d,";\n }\n \n .").concat(b$," .").concat(b$," {\n margin-right: 0 ").concat(d,";\n }\n \n body[").concat(cb,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(h,"px;\n }\n")},cd=function(){var a=parseInt(document.body.getAttribute(cb)||"0",10);return isFinite(a)?a:0},ce=function(){p.useEffect(function(){return document.body.setAttribute(cb,(cd()+1).toString()),function(){var a=cd()-1;a<=0?document.body.removeAttribute(cb):document.body.setAttribute(cb,a.toString())}},[])},cf=function(a){var b=a.noRelative,c=a.noImportant,d=a.gapMode,e=void 0===d?"margin":d;ce();var f=p.useMemo(function(){return void 0===e,b9},[e]);return p.createElement(ca,{styles:cc(f,!b,e,c?"":"!important")})},cg=function(a,b){if(!(a instanceof Element))return!1;var c=window.getComputedStyle(a);return"hidden"!==c[b]&&(c.overflowY!==c.overflowX||"TEXTAREA"===a.tagName||"visible"!==c[b])},ch=function(a,b){var c=b.ownerDocument,d=b;do{if("u">typeof ShadowRoot&&d instanceof ShadowRoot&&(d=d.host),ci(a,d)){var e=cj(a,d);if(e[1]>e[2])return!0}d=d.parentNode}while(d&&d!==c.body)return!1},ci=function(a,b){return"v"===a?cg(b,"overflowY"):cg(b,"overflowX")},cj=function(a,b){return"v"===a?[b.scrollTop,b.scrollHeight,b.clientHeight]:[b.scrollLeft,b.scrollWidth,b.clientWidth]},ck=function(a,b,c,d,e){var f,g=(f=window.getComputedStyle(b).direction,"h"===a&&"rtl"===f?-1:1),h=g*d,i=c.target,j=b.contains(i),k=!1,l=h>0,m=0,n=0;do{if(!i)break;var o=cj(a,i),p=o[0],q=o[1]-o[2]-g*p;(p||q)&&ci(a,i)&&(m+=q,n+=p);var r=i.parentNode;i=r&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r}while(!j&&i!==document.body||j&&(b.contains(i)||b===i))return l&&(e&&1>Math.abs(m)||!e&&h>m)?k=!0:!l&&(e&&1>Math.abs(n)||!e&&-h>n)&&(k=!0),k},cl=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},cm=function(a){return[a.deltaX,a.deltaY]},cn=function(a){return a&&"current"in a?a.current:a},co=0,cp=[];let cq=(k=function(a){var b=p.useRef([]),c=p.useRef([0,0]),d=p.useRef(),e=p.useState(co++)[0],f=p.useState(b8)[0],g=p.useRef(a);p.useEffect(function(){g.current=a},[a]),p.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(e));var b=(function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))})([a.lockRef.current],(a.shards||[]).map(cn),!0).filter(Boolean);return b.forEach(function(a){return a.classList.add("allow-interactivity-".concat(e))}),function(){document.body.classList.remove("block-interactivity-".concat(e)),b.forEach(function(a){return a.classList.remove("allow-interactivity-".concat(e))})}}},[a.inert,a.lockRef.current,a.shards]);var h=p.useCallback(function(a,b){if("touches"in a&&2===a.touches.length||"wheel"===a.type&&a.ctrlKey)return!g.current.allowPinchZoom;var e,f=cl(a),h=c.current,i="deltaX"in a?a.deltaX:h[0]-f[0],j="deltaY"in a?a.deltaY:h[1]-f[1],k=a.target,l=Math.abs(i)>Math.abs(j)?"h":"v";if("touches"in a&&"h"===l&&"range"===k.type)return!1;var m=window.getSelection(),n=m&&m.anchorNode;if(n&&(n===k||n.contains(k)))return!1;var o=ch(l,k);if(!o)return!0;if(o?e=l:(e="v"===l?"h":"v",o=ch(l,k)),!o)return!1;if(!d.current&&"changedTouches"in a&&(i||j)&&(d.current=e),!e)return!0;var p=d.current||e;return ck(p,b,a,"h"===p?i:j,!0)},[]),i=p.useCallback(function(a){if(cp.length&&cp[cp.length-1]===f){var c="deltaY"in a?cm(a):cl(a),d=b.current.filter(function(b){var d;return b.name===a.type&&(b.target===a.target||a.target===b.shadowParent)&&(d=b.delta,d[0]===c[0]&&d[1]===c[1])})[0];if(d&&d.should){a.cancelable&&a.preventDefault();return}if(!d){var e=(g.current.shards||[]).map(cn).filter(Boolean).filter(function(b){return b.contains(a.target)});(e.length>0?h(a,e[0]):!g.current.noIsolation)&&a.cancelable&&a.preventDefault()}}},[]),j=p.useCallback(function(a,c,d,e){var f={name:a,delta:c,target:d,should:e,shadowParent:function(a){for(var b=null;null!==a;)a instanceof ShadowRoot&&(b=a.host,a=a.host),a=a.parentNode;return b}(d)};b.current.push(f),setTimeout(function(){b.current=b.current.filter(function(a){return a!==f})},1)},[]),k=p.useCallback(function(a){c.current=cl(a),d.current=void 0},[]),l=p.useCallback(function(b){j(b.type,cm(b),b.target,h(b,a.lockRef.current))},[]),m=p.useCallback(function(b){j(b.type,cl(b),b.target,h(b,a.lockRef.current))},[]);p.useEffect(function(){return cp.push(f),a.setCallbacks({onScrollCapture:l,onWheelCapture:l,onTouchMoveCapture:m}),document.addEventListener("wheel",i,!1),document.addEventListener("touchmove",i,!1),document.addEventListener("touchstart",k,!1),function(){cp=cp.filter(function(a){return a!==f}),document.removeEventListener("wheel",i,!1),document.removeEventListener("touchmove",i,!1),document.removeEventListener("touchstart",k,!1)}},[]);var n=a.removeScrollBar,o=a.inert;return p.createElement(p.Fragment,null,o?p.createElement(f,{styles:"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")}):null,n?p.createElement(cf,{noRelative:a.noRelative,gapMode:a.gapMode}):null)},b2.useMedium(k),b5);var cr=p.forwardRef(function(a,b){return p.createElement(b4,bX({},a,{ref:b,sideCar:cq}))});cr.classNames=b4.classNames;var cs=new WeakMap,ct=new WeakMap,cu={},cv=0,cw=function(a){return a&&(a.host||cw(a.parentNode))},cx=function(a,b,c,d){var e=(Array.isArray(a)?a:[a]).map(function(a){if(b.contains(a))return a;var c=cw(a);return c&&b.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",b,". Doing nothing"),null)}).filter(function(a){return!!a});cu[c]||(cu[c]=new WeakMap);var f=cu[c],g=[],h=new Set,i=new Set(e),j=function(a){!a||h.has(a)||(h.add(a),j(a.parentNode))};e.forEach(j);var k=function(a){!a||i.has(a)||Array.prototype.forEach.call(a.children,function(a){if(h.has(a))k(a);else try{var b=a.getAttribute(d),e=null!==b&&"false"!==b,i=(cs.get(a)||0)+1,j=(f.get(a)||0)+1;cs.set(a,i),f.set(a,j),g.push(a),1===i&&e&&ct.set(a,!0),1===j&&a.setAttribute(c,"true"),e||a.setAttribute(d,"true")}catch(b){console.error("aria-hidden: cannot operate on ",a,b)}})};return k(b),h.clear(),cv++,function(){g.forEach(function(a){var b=cs.get(a)-1,e=f.get(a)-1;cs.set(a,b),f.set(a,e),b||(ct.has(a)||a.removeAttribute(d),ct.delete(a)),e||a.removeAttribute(c)}),--cv||(cs=new WeakMap,cs=new WeakMap,ct=new WeakMap,cu={})}},cy=function(a,b,c){void 0===c&&(c="data-aria-hidden");var d=Array.from(Array.isArray(a)?a:[a]),e=b||("u"<typeof document?null:(Array.isArray(a)?a[0]:a).ownerDocument.body);return e?(d.push.apply(d,Array.from(e.querySelectorAll("[aria-live], script"))),cx(d,e,c,"aria-hidden")):function(){return null}},cz="Dialog",[cA,cB]=function(a,b=[]){let c=[],d=()=>{let b=c.map(a=>p.createContext(a));return function(c){let d=c?.[a]||b;return p.useMemo(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])}};return d.scopeName=a,[function(b,d){let e=p.createContext(d),f=c.length;c=[...c,d];let g=b=>{let{scope:c,children:d,...g}=b,h=c?.[a]?.[f]||e,i=p.useMemo(()=>g,Object.values(g));return(0,o.jsx)(h.Provider,{value:i,children:d})};return g.displayName=b+"Provider",[g,function(c,g){let h=g?.[a]?.[f]||e,i=p.useContext(h);if(i)return i;if(void 0!==d)return d;throw Error(`\`${c}\` must be used within \`${b}\``)}]},function(...a){let b=a[0];if(1===a.length)return b;let c=()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return p.useMemo(()=>({[`__scope${b.scopeName}`]:d}),[d])}};return c.scopeName=b.scopeName,c}(d,...b)]}(cz),[cC,cD]=cA(cz),cE=a=>{let{__scopeDialog:b,children:c,open:d,defaultOpen:e,onOpenChange:f,modal:g=!0}=a,h=p.useRef(null),i=p.useRef(null),[j,k]=function({prop:a,defaultProp:b,onChange:c=()=>{},caller:d}){let[e,f,g]=function({defaultProp:a,onChange:b}){let[c,d]=p.useState(a),e=p.useRef(c),f=p.useRef(b);return by(()=>{f.current=b},[b]),p.useEffect(()=>{e.current!==c&&(f.current?.(c),e.current=c)},[c,e]),[c,d,f]}({defaultProp:b,onChange:c}),h=void 0!==a,i=h?a:e;{let b=p.useRef(void 0!==a);p.useEffect(()=>{let a=b.current;if(a!==h){let b=h?"controlled":"uncontrolled";console.warn(`${d} is changing from ${a?"controlled":"uncontrolled"} to ${b}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}b.current=h},[h,d])}return[i,p.useCallback(b=>{if(h){let c="function"==typeof b?b(a):b;c!==a&&g.current?.(c)}else f(b)},[h,a,f,g])]}({prop:d,defaultProp:e??!1,onChange:f,caller:cz});return(0,o.jsx)(cC,{scope:b,triggerRef:h,contentRef:i,contentId:bx(),titleId:bx(),descriptionId:bx(),open:j,onOpenChange:k,onOpenToggle:p.useCallback(()=>k(a=>!a),[k]),modal:g,children:c})};cE.displayName=cz;var cF="DialogTrigger";p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=cD(cF,c),f=bt(b,e.triggerRef);return(0,o.jsx)(bC.button,{type:"button","aria-haspopup":"dialog","aria-expanded":e.open,"aria-controls":e.contentId,"data-state":cW(e.open),...d,ref:f,onClick:bq(a.onClick,e.onOpenToggle)})}).displayName=cF;var cG="DialogPortal",[cH,cI]=cA(cG,{forceMount:void 0}),cJ=a=>{let{__scopeDialog:b,forceMount:c,children:d,container:e}=a,f=cD(cG,b);return(0,o.jsx)(cH,{scope:b,forceMount:c,children:p.Children.map(d,a=>(0,o.jsx)(bT,{present:c||f.open,children:(0,o.jsx)(bS,{asChild:!0,container:e,children:a})}))})};cJ.displayName=cG;var cK="DialogOverlay",cL=p.forwardRef((a,b)=>{let c=cI(cK,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=cD(cK,a.__scopeDialog);return f.modal?(0,o.jsx)(bT,{present:d||f.open,children:(0,o.jsx)(cN,{...e,ref:b})}):null});cL.displayName=cK;var cM=bz("DialogOverlay.RemoveScroll"),cN=p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=cD(cK,c);return(0,o.jsx)(cr,{as:cM,allowPinchZoom:!0,shards:[e.contentRef],children:(0,o.jsx)(bC.div,{"data-state":cW(e.open),...d,ref:b,style:{pointerEvents:"auto",...d.style}})})}),cO="DialogContent",cP=p.forwardRef((a,b)=>{let c=cI(cO,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=cD(cO,a.__scopeDialog);return(0,o.jsx)(bT,{present:d||f.open,children:f.modal?(0,o.jsx)(cQ,{...e,ref:b}):(0,o.jsx)(cR,{...e,ref:b})})});cP.displayName=cO;var cQ=p.forwardRef((a,b)=>{let c=cD(cO,a.__scopeDialog),d=p.useRef(null),e=bt(b,c.contentRef,d);return p.useEffect(()=>{let a=d.current;if(a)return cy(a)},[]),(0,o.jsx)(cS,{...a,ref:e,trapFocus:c.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:bq(a.onCloseAutoFocus,a=>{a.preventDefault(),c.triggerRef.current?.focus()}),onPointerDownOutside:bq(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:bq(a.onFocusOutside,a=>a.preventDefault())})}),cR=p.forwardRef((a,b)=>{let c=cD(cO,a.__scopeDialog),d=p.useRef(!1),e=p.useRef(!1);return(0,o.jsx)(cS,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,e.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(e.current=!0));let f=b.target;c.triggerRef.current?.contains(f)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&e.current&&b.preventDefault()}})}),cS=p.forwardRef((a,b)=>{let{__scopeDialog:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:f,...g}=a,h=cD(cO,c),i=p.useRef(null),j=bt(b,i);return p.useEffect(()=>{let a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??bW()),document.body.insertAdjacentElement("beforeend",a[1]??bW()),bV++,()=>{1===bV&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),bV--}},[]),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(bM,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:f,children:(0,o.jsx)(bG,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionId,"aria-labelledby":h.titleId,"data-state":cW(h.open),...g,ref:j,onDismiss:()=>h.onOpenChange(!1)})}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(c$,{titleId:h.titleId}),(0,o.jsx)(c_,{contentRef:i,descriptionId:h.descriptionId})]})]})}),cT="DialogTitle";p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=cD(cT,c);return(0,o.jsx)(bC.h2,{id:e.titleId,...d,ref:b})}).displayName=cT;var cU="DialogDescription";p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=cD(cU,c);return(0,o.jsx)(bC.p,{id:e.descriptionId,...d,ref:b})}).displayName=cU;var cV="DialogClose";function cW(a){return a?"open":"closed"}p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=cD(cV,c);return(0,o.jsx)(bC.button,{type:"button",...d,ref:b,onClick:bq(a.onClick,()=>e.onOpenChange(!1))})}).displayName=cV;var cX="DialogTitleWarning",[cY,cZ]=(l={contentName:cO,titleName:cT,docsSlug:"dialog"},b=p.createContext(l),(c=a=>{let{children:c,...d}=a,e=p.useMemo(()=>d,Object.values(d));return(0,o.jsx)(b.Provider,{value:e,children:c})}).displayName=cX+"Provider",[c,function(a){let c=p.useContext(b);if(c)return c;if(void 0!==l)return l;throw Error(`\`${a}\` must be used within \`${cX}\``)}]),c$=({titleId:a})=>{let b=cZ(cX),c=`\`${b.contentName}\` requires a \`${b.titleName}\` for the component to be accessible for screen reader users.
2
-
3
- If you want to hide the \`${b.titleName}\`, you can wrap it with our VisuallyHidden component.
4
-
5
- For more information, see https://radix-ui.com/primitives/docs/components/${b.docsSlug}`;return p.useEffect(()=>{a&&(document.getElementById(a)||console.error(c))},[c,a]),null},c_=({contentRef:a,descriptionId:b})=>{let c=cZ("DialogDescriptionWarning"),d=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${c.contentName}}.`;return p.useEffect(()=>{let c=a.current?.getAttribute("aria-describedby");b&&c&&(document.getElementById(b)||console.warn(d))},[d,a,b]),null},c0=Symbol.for("react.lazy"),c1=p[" use ".trim().toString()];function c2(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===c0&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}var c3=Symbol("radix.slottable");function c4(a){return p.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===c3}var c5=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{var c,d;let e,f,g,h=(d=c=`Primitive.${b}`,(e=p.forwardRef((a,b)=>{let{children:c,...d}=a;if(c2(c)&&"function"==typeof c1&&(c=c1(c._payload)),p.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==p.Fragment&&(h.ref=b?bs(b,g):g),p.cloneElement(c,h)}return p.Children.count(c)>1?p.Children.only(null):null})).displayName=`${d}.SlotClone`,f=e,(g=p.forwardRef((a,b)=>{let{children:c,...d}=a;c2(c)&&"function"==typeof c1&&(c=c1(c._payload));let e=p.Children.toArray(c),g=e.find(c4);if(g){let a=g.props.children,c=e.map(b=>b!==g?b:p.Children.count(a)>1?p.Children.only(null):p.isValidElement(a)?a.props.children:null);return(0,o.jsx)(f,{...d,ref:b,children:p.isValidElement(a)?p.cloneElement(a,void 0,c):null})}return(0,o.jsx)(f,{...d,ref:b,children:c})})).displayName=`${c}.Slot`,g),i=p.forwardRef((a,c)=>{let{asChild:d,...e}=a;return(0,o.jsx)(d?h:b,{...e,ref:c})});return i.displayName=`Primitive.${b}`,{...a,[b]:i}},{}),c6='[cmdk-group=""]',c7='[cmdk-group-items=""]',c8='[cmdk-item=""]',c9=`${c8}:not([aria-disabled="true"])`,da="cmdk-item-select",db="data-value",dc=(a,b,c)=>{var d;return d=a,function a(b,c,d,e,f,g,h){if(g===c.length)return f===b.length?1:.99;var i=`${f},${g}`;if(void 0!==h[i])return h[i];for(var j,k,l,m,n=e.charAt(g),o=d.indexOf(n,f),p=0;o>=0;)(j=a(b,c,d,e,o+1,g+1,h))>p&&(o===f?j*=1:bl.test(b.charAt(o-1))?(j*=.8,(l=b.slice(f,o-1).match(bm))&&f>0&&(j*=Math.pow(.999,l.length))):bn.test(b.charAt(o-1))?(j*=.9,(m=b.slice(f,o-1).match(bo))&&f>0&&(j*=Math.pow(.999,m.length))):(j*=.17,f>0&&(j*=Math.pow(.999,o-f))),b.charAt(o)!==c.charAt(g)&&(j*=.9999)),(j<.1&&d.charAt(o-1)===e.charAt(g+1)||e.charAt(g+1)===e.charAt(g)&&d.charAt(o-1)!==e.charAt(g))&&.1*(k=a(b,c,d,e,o+1,g+2,h))>j&&(j=.1*k),j>p&&(p=j),o=d.indexOf(n,o+1);return h[i]=p,p}(d=c&&c.length>0?`${d+" "+c.join(" ")}`:d,b,bp(d),bp(b),0,0,{})},dd=p.createContext(void 0),de=p.createContext(void 0),df=p.createContext(void 0),dg=p.forwardRef((a,b)=>{let c=dr(()=>{var b,c;return{search:"",value:null!=(c=null!=(b=a.value)?b:a.defaultValue)?c:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),d=dr(()=>new Set),e=dr(()=>new Map),f=dr(()=>new Map),g=dr(()=>new Set),h=dp(a),{label:i,children:j,value:k,onValueChange:l,filter:m,shouldFilter:n,loop:o,disablePointerSelection:q=!1,vimBindings:r=!0,...s}=a,t=bx(),u=bx(),v=bx(),w=p.useRef(null),x=du();dq(()=>{if(void 0!==k){let a=k.trim();c.current.value=a,y.emit()}},[k]),dq(()=>{x(6,E)},[]);let y=p.useMemo(()=>({subscribe:a=>(g.current.add(a),()=>g.current.delete(a)),snapshot:()=>c.current,setState:(a,b,d)=>{var e,f,g,i;if(!Object.is(c.current[a],b)){if(c.current[a]=b,"search"===a)D(),B(),x(1,C);else if("value"===a){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let a=document.getElementById(v);a?a.focus():null==(e=document.getElementById(t))||e.focus()}if(x(7,()=>{var a;c.current.selectedItemId=null==(a=F())?void 0:a.id,y.emit()}),d||x(5,E),(null==(f=h.current)?void 0:f.value)!==void 0){null==(i=(g=h.current).onValueChange)||i.call(g,null!=b?b:"");return}}y.emit()}},emit:()=>{g.current.forEach(a=>a())}}),[]),z=p.useMemo(()=>({value:(a,b,d)=>{var e;b!==(null==(e=f.current.get(a))?void 0:e.value)&&(f.current.set(a,{value:b,keywords:d}),c.current.filtered.items.set(a,A(b,d)),x(2,()=>{B(),y.emit()}))},item:(a,b)=>(d.current.add(a),b&&(e.current.has(b)?e.current.get(b).add(a):e.current.set(b,new Set([a]))),x(3,()=>{D(),B(),c.current.value||C(),y.emit()}),()=>{f.current.delete(a),d.current.delete(a),c.current.filtered.items.delete(a);let b=F();x(4,()=>{D(),(null==b?void 0:b.getAttribute("id"))===a&&C(),y.emit()})}),group:a=>(e.current.has(a)||e.current.set(a,new Set),()=>{f.current.delete(a),e.current.delete(a)}),filter:()=>h.current.shouldFilter,label:i||a["aria-label"],getDisablePointerSelection:()=>h.current.disablePointerSelection,listId:t,inputId:v,labelId:u,listInnerRef:w}),[]);function A(a,b){var d,e;let f=null!=(e=null==(d=h.current)?void 0:d.filter)?e:dc;return a?f(a,c.current.search,b):0}function B(){if(!c.current.search||!1===h.current.shouldFilter)return;let a=c.current.filtered.items,b=[];c.current.filtered.groups.forEach(c=>{let d=e.current.get(c),f=0;d.forEach(b=>{f=Math.max(a.get(b),f)}),b.push([c,f])});let d=w.current;G().sort((b,c)=>{var d,e;let f=b.getAttribute("id"),g=c.getAttribute("id");return(null!=(d=a.get(g))?d:0)-(null!=(e=a.get(f))?e:0)}).forEach(a=>{let b=a.closest(c7);b?b.appendChild(a.parentElement===b?a:a.closest(`${c7} > *`)):d.appendChild(a.parentElement===d?a:a.closest(`${c7} > *`))}),b.sort((a,b)=>b[1]-a[1]).forEach(a=>{var b;let c=null==(b=w.current)?void 0:b.querySelector(`${c6}[${db}="${encodeURIComponent(a[0])}"]`);null==c||c.parentElement.appendChild(c)})}function C(){let a=G().find(a=>"true"!==a.getAttribute("aria-disabled")),b=null==a?void 0:a.getAttribute(db);y.setState("value",b||void 0)}function D(){var a,b,g,i;if(!c.current.search||!1===h.current.shouldFilter){c.current.filtered.count=d.current.size;return}c.current.filtered.groups=new Set;let j=0;for(let e of d.current){let d=A(null!=(b=null==(a=f.current.get(e))?void 0:a.value)?b:"",null!=(i=null==(g=f.current.get(e))?void 0:g.keywords)?i:[]);c.current.filtered.items.set(e,d),d>0&&j++}for(let[a,b]of e.current)for(let d of b)if(c.current.filtered.items.get(d)>0){c.current.filtered.groups.add(a);break}c.current.filtered.count=j}function E(){var a,b,c;let d=F();d&&((null==(a=d.parentElement)?void 0:a.firstChild)===d&&(null==(c=null==(b=d.closest(c6))?void 0:b.querySelector('[cmdk-group-heading=""]'))||c.scrollIntoView({block:"nearest"})),d.scrollIntoView({block:"nearest"}))}function F(){var a;return null==(a=w.current)?void 0:a.querySelector(`${c8}[aria-selected="true"]`)}function G(){var a;return Array.from((null==(a=w.current)?void 0:a.querySelectorAll(c9))||[])}function H(a){let b=G()[a];b&&y.setState("value",b.getAttribute(db))}function I(a){var b;let c=F(),d=G(),e=d.findIndex(a=>a===c),f=d[e+a];null!=(b=h.current)&&b.loop&&(f=e+a<0?d[d.length-1]:e+a===d.length?d[0]:d[e+a]),f&&y.setState("value",f.getAttribute(db))}function J(a){let b=F(),c=null==b?void 0:b.closest(c6),d;for(;c&&!d;)d=null==(c=a>0?function(a,b){let c=a.nextElementSibling;for(;c;){if(c.matches(b))return c;c=c.nextElementSibling}}(c,c6):function(a,b){let c=a.previousElementSibling;for(;c;){if(c.matches(b))return c;c=c.previousElementSibling}}(c,c6))?void 0:c.querySelector(c9);d?y.setState("value",d.getAttribute(db)):I(a)}let K=()=>H(G().length-1),L=a=>{a.preventDefault(),a.metaKey?K():a.altKey?J(1):I(1)},M=a=>{a.preventDefault(),a.metaKey?H(0):a.altKey?J(-1):I(-1)};return p.createElement(c5.div,{ref:b,tabIndex:-1,...s,"cmdk-root":"",onKeyDown:a=>{var b;null==(b=s.onKeyDown)||b.call(s,a);let c=a.nativeEvent.isComposing||229===a.keyCode;if(!(a.defaultPrevented||c))switch(a.key){case"n":case"j":r&&a.ctrlKey&&L(a);break;case"ArrowDown":L(a);break;case"p":case"k":r&&a.ctrlKey&&M(a);break;case"ArrowUp":M(a);break;case"Home":a.preventDefault(),H(0);break;case"End":a.preventDefault(),K();break;case"Enter":{a.preventDefault();let b=F();if(b){let a=new Event(da);b.dispatchEvent(a)}}}}},p.createElement("label",{"cmdk-label":"",htmlFor:z.inputId,id:z.labelId,style:dw},i),dv(a,a=>p.createElement(de.Provider,{value:y},p.createElement(dd.Provider,{value:z},a))))}),dh=p.forwardRef((a,b)=>{var c,d;let e=bx(),f=p.useRef(null),g=p.useContext(df),h=p.useContext(dd),i=dp(a),j=null!=(d=null==(c=i.current)?void 0:c.forceMount)?d:null==g?void 0:g.forceMount;dq(()=>{if(!j)return h.item(e,null==g?void 0:g.id)},[j]);let k=dt(e,f,[a.value,a.children,f],a.keywords),l=p.useContext(de),m=ds(a=>a.value&&a.value===k.current),n=ds(a=>!!j||!1===h.filter()||!a.search||a.filtered.items.get(e)>0);function o(){var a,b;q(),null==(b=(a=i.current).onSelect)||b.call(a,k.current)}function q(){l.setState("value",k.current,!0)}if(p.useEffect(()=>{let b=f.current;if(!(!b||a.disabled))return b.addEventListener(da,o),()=>b.removeEventListener(da,o)},[n,a.onSelect,a.disabled]),!n)return null;let{disabled:r,value:s,onSelect:t,forceMount:u,keywords:v,...w}=a;return p.createElement(c5.div,{ref:bs(f,b),...w,id:e,"cmdk-item":"",role:"option","aria-disabled":!!r,"aria-selected":!!m,"data-disabled":!!r,"data-selected":!!m,onPointerMove:r||h.getDisablePointerSelection()?void 0:q,onClick:r?void 0:o},a.children)}),di=p.forwardRef((a,b)=>{let{heading:c,children:d,forceMount:e,...f}=a,g=bx(),h=p.useRef(null),i=p.useRef(null),j=bx(),k=p.useContext(dd),l=ds(a=>!!e||!1===k.filter()||!a.search||a.filtered.groups.has(g));dq(()=>k.group(g),[]),dt(g,h,[a.value,a.heading,i]);let m=p.useMemo(()=>({id:g,forceMount:e}),[e]);return p.createElement(c5.div,{ref:bs(h,b),...f,"cmdk-group":"",role:"presentation",hidden:!l||void 0},c&&p.createElement("div",{ref:i,"cmdk-group-heading":"","aria-hidden":!0,id:j},c),dv(a,a=>p.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":c?j:void 0},p.createElement(df.Provider,{value:m},a))))}),dj=p.forwardRef((a,b)=>{let{alwaysRender:c,...d}=a,e=p.useRef(null),f=ds(a=>!a.search);return c||f?p.createElement(c5.div,{ref:bs(e,b),...d,"cmdk-separator":"",role:"separator"}):null}),dk=p.forwardRef((a,b)=>{let{onValueChange:c,...d}=a,e=null!=a.value,f=p.useContext(de),g=ds(a=>a.search),h=ds(a=>a.selectedItemId),i=p.useContext(dd);return p.useEffect(()=>{null!=a.value&&f.setState("search",a.value)},[a.value]),p.createElement(c5.input,{ref:b,...d,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":i.listId,"aria-labelledby":i.labelId,"aria-activedescendant":h,id:i.inputId,type:"text",value:e?a.value:g,onChange:a=>{e||f.setState("search",a.target.value),null==c||c(a.target.value)}})}),dl=p.forwardRef((a,b)=>{let{children:c,label:d="Suggestions",...e}=a,f=p.useRef(null),g=p.useRef(null),h=ds(a=>a.selectedItemId),i=p.useContext(dd);return p.useEffect(()=>{if(g.current&&f.current){let a=g.current,b=f.current,c,d=new ResizeObserver(()=>{c=requestAnimationFrame(()=>{let c=a.offsetHeight;b.style.setProperty("--cmdk-list-height",c.toFixed(1)+"px")})});return d.observe(a),()=>{cancelAnimationFrame(c),d.unobserve(a)}}},[]),p.createElement(c5.div,{ref:bs(f,b),...e,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":h,"aria-label":d,id:i.listId},dv(a,a=>p.createElement("div",{ref:bs(g,i.listInnerRef),"cmdk-list-sizer":""},a)))}),dm=p.forwardRef((a,b)=>{let{open:c,onOpenChange:d,overlayClassName:e,contentClassName:f,container:g,...h}=a;return p.createElement(cE,{open:c,onOpenChange:d},p.createElement(cJ,{container:g},p.createElement(cL,{"cmdk-overlay":"",className:e}),p.createElement(cP,{"aria-label":a.label,"cmdk-dialog":"",className:f},p.createElement(dg,{ref:b,...h}))))}),dn=Object.assign(dg,{List:dl,Item:dh,Input:dk,Group:di,Separator:dj,Dialog:dm,Empty:p.forwardRef((a,b)=>ds(a=>0===a.filtered.count)?p.createElement(c5.div,{ref:b,...a,"cmdk-empty":"",role:"presentation"}):null),Loading:p.forwardRef((a,b)=>{let{progress:c,children:d,label:e="Loading...",...f}=a;return p.createElement(c5.div,{ref:b,...f,"cmdk-loading":"",role:"progressbar","aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,"aria-label":e},dv(a,a=>p.createElement("div",{"aria-hidden":!0},a)))})});function dp(a){let b=p.useRef(a);return dq(()=>{b.current=a}),b}var dq=p.useEffect;function dr(a){let b=p.useRef();return void 0===b.current&&(b.current=a()),b}function ds(a){let b=p.useContext(de),c=()=>a(b.snapshot());return p.useSyncExternalStore(b.subscribe,c,c)}function dt(a,b,c,d=[]){let e=p.useRef(),f=p.useContext(dd);return dq(()=>{var g;let h=(()=>{var a;for(let b of c){if("string"==typeof b)return b.trim();if("object"==typeof b&&"current"in b)return b.current?null==(a=b.current.textContent)?void 0:a.trim():e.current}})(),i=d.map(a=>a.trim());f.value(a,h,i),null==(g=b.current)||g.setAttribute(db,h),e.current=h}),e}var du=()=>{let[a,b]=p.useState(),c=dr(()=>new Map);return dq(()=>{c.current.forEach(a=>a()),c.current=new Map},[a]),(a,d)=>{c.current.set(a,d),b({})}};function dv({asChild:a,children:b},c){let d;return a&&p.isValidElement(b)?p.cloneElement("function"==typeof(d=b.type)?d(b.props):"render"in d?d.render(b.props):b,{ref:b.ref},c(b.props.children)):c(b)}var dw={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},dx=a.i(340626);function dy({className:a,...b}){return(0,o.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,bh.cn)("group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",a),...b})}let dz=(0,dx.cva)("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]","inline-end":"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]","block-start":"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2","block-end":"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}});function dA({className:a,align:b="inline-start",...c}){return(0,o.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":b,className:(0,bh.cn)(dz({align:b}),a),onClick:a=>{a.target.closest("button")||a.currentTarget.parentElement?.querySelector("input")?.focus()},...c})}(0,dx.cva)("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",sm:"","icon-xs":"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});var dB=a.i(785709),dB=dB,dC=a.i(948675);function dD({className:a,...b}){return(0,o.jsx)(dn,{"data-slot":"command",className:(0,bh.cn)("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground",a),...b})}function dE({className:a,...b}){return(0,o.jsx)("div",{"data-slot":"command-input-wrapper",className:"p-1 pb-0",children:(0,o.jsxs)(dy,{className:"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",children:[(0,o.jsx)(dn.Input,{"data-slot":"command-input",className:(0,bh.cn)("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",a),...b}),(0,o.jsx)(dA,{children:(0,o.jsx)(dB.default,{className:"size-4 shrink-0 opacity-50"})})]})})}function dF({className:a,...b}){return(0,o.jsx)(dn.List,{"data-slot":"command-list",className:(0,bh.cn)("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",a),...b})}function dG({className:a,...b}){return(0,o.jsx)(dn.Empty,{"data-slot":"command-empty",className:(0,bh.cn)("py-6 text-center text-sm",a),...b})}function dH({className:a,...b}){return(0,o.jsx)(dn.Group,{"data-slot":"command-group",className:(0,bh.cn)("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",a),...b})}function dI({className:a,children:b,...c}){return(0,o.jsxs)(dn.Item,{"data-slot":"command-item",className:(0,bh.cn)("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground",a),...c,children:[b,(0,o.jsx)(dC.CheckIcon,{className:"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100"})]})}var dJ=a.i(441388);let dK=(0,dJ.createServerReference)("408d59ca4a7d1153317461f67fe8db1d20891638a1",dJ.callServer,void 0,dJ.findSourceMapURL,"getProjectBranches"),dL=(0,dJ.createServerReference)("40e06500b3292b2e07b9ee7f5c2fb594efe17a0a90",dJ.callServer,void 0,dJ.findSourceMapURL,"fetchRemoteBranches"),dM=(0,dJ.createServerReference)("408dd6eccf56b77a51c145a05cf649024c811a7762",dJ.callServer,void 0,dJ.findSourceMapURL,"getCurrentBranch");function dN({open:a,onOpenChange:b,onSubmit:c,onUpdate:d,defaultStatus:e="TODO",editTask:f,editTaskLabelIds:g,labels:h,projectType:i,projectLocalPath:j}){let[k,l]=(0,p.useState)(""),[m,n]=(0,p.useState)(""),[q,r]=(0,p.useState)("MEDIUM"),[s,t]=(0,p.useState)(""),[u,w]=(0,p.useState)([]),[x,y]=(0,p.useState)([]),[A,B]=(0,p.useState)(!1),[D,E]=(0,p.useState)(""),[F,G]=(0,p.useState)(!1),[H,I]=(0,p.useState)(!0),{t:J}=(0,v.useI18n)(),K=!!f,L=!!j;return(0,p.useEffect)(()=>{f?(l(f.title),n(f.description??""),r(f.priority),t(f.subPath??""),w(g??[])):(l(""),n(""),r("MEDIUM"),t(""),w([]))},[f,g]),(0,p.useEffect)(()=>{a||f||(l(""),n(""),r("MEDIUM"),t(""),w([]),y([]),E(""),G(!1))},[a,f]),(0,p.useEffect)(()=>{a&&L&&!f&&(B(!0),Promise.all([dK(j),dM(j)]).then(([a,b])=>{y(a),E(b&&a.includes(b)?b:a[0]??""),B(!1),dL(j).then(()=>{setTimeout(()=>{dK(j).then(a=>{y(a),E(b=>a.includes(b)?b:a[0]??"")}).catch(()=>{})},3e3)})}).catch(()=>{y([]),E(""),B(!1)}))},[a,L,j,f]),(0,o.jsx)(Q.Dialog,{open:a,onOpenChange:b,disablePointerDismissal:!0,children:(0,o.jsxs)(Q.DialogContent,{className:"sm:max-w-md",children:[(0,o.jsx)(Q.DialogHeader,{children:(0,o.jsx)(Q.DialogTitle,{children:K?J("task.edit"):J("task.create")})}),(0,o.jsxs)("div",{className:"space-y-4 py-2",children:[(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)(X.Label,{htmlFor:"title",children:J("task.title")}),(0,o.jsx)(V.Input,{id:"title","data-testid":"task-title",placeholder:J("task.titlePlaceholder"),value:k,onChange:a=>l(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault()})]}),(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)(X.Label,{htmlFor:"description",children:J("task.description")}),(0,o.jsx)(W.Textarea,{id:"description",placeholder:J("task.descPlaceholder"),rows:4,value:m,onChange:a=>n(a.target.value),className:"max-h-[200px] overflow-y-auto"})]}),(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)(X.Label,{htmlFor:"subPath",children:J("task.subPath")}),(0,o.jsx)(V.Input,{id:"subPath",placeholder:J("task.subPathPlaceholder"),value:s,onChange:a=>t(a.target.value)}),(0,o.jsx)("p",{className:"text-xs text-muted-foreground",children:J("task.subPathHint")})]}),(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)(X.Label,{children:J("task.priority")}),(0,o.jsx)("div",{className:"flex gap-1.5",children:["LOW","MEDIUM","HIGH","CRITICAL"].map(a=>{let b={LOW:{label:J("task.priorityLow"),style:"text-slate-300 border-slate-500/30 bg-slate-500/10"},MEDIUM:{label:J("task.priorityMedium"),style:"text-amber-300 border-amber-500/30 bg-amber-500/10"},HIGH:{label:J("task.priorityHigh"),style:"text-orange-300 border-orange-500/30 bg-orange-500/10"},CRITICAL:{label:J("task.priorityCritical"),style:"text-rose-300 border-rose-500/30 bg-rose-500/10"}}[a];return(0,o.jsx)("button",{type:"button",onClick:()=>r(a),className:`rounded-lg border px-3 py-1.5 text-xs font-medium transition-all ${q===a?`${b.style} ring-1 ring-current/20`:"border-border text-muted-foreground hover:bg-accent"}`,children:b.label},a)})})]}),L&&!K&&(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)(X.Label,{children:J("task.baseBranch")}),A?(0,o.jsx)("div",{className:"text-sm text-muted-foreground",children:J("task.branchLoading")}):x.length>0?(0,o.jsxs)(bi,{open:F,onOpenChange:G,children:[(0,o.jsxs)(bj,{className:"flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm font-mono transition-colors hover:bg-accent focus:outline-none focus:ring-1 focus:ring-ring","data-testid":"branch-selector",children:[(0,o.jsx)(Y.GitBranch,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,o.jsx)("span",{className:"flex-1 truncate text-left text-xs",children:D||J("task.branchNone")}),(0,o.jsx)(Z,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,o.jsx)(bk,{className:"p-0",align:"start",children:(0,o.jsxs)(dD,{children:[(0,o.jsx)(dE,{placeholder:J("task.branchSearch")}),(0,o.jsxs)(dF,{children:[(0,o.jsx)(dG,{children:J("task.branchNone")}),(0,o.jsx)(dH,{children:x.map(a=>(0,o.jsxs)(dI,{value:a,onSelect:()=>{E(a),G(!1)},children:[(0,o.jsx)(Y.GitBranch,{className:"h-3 w-3 text-muted-foreground shrink-0 mr-2"}),(0,o.jsx)("span",{className:"flex-1 truncate font-mono",children:a}),a===D&&(0,o.jsx)(C.Check,{className:"h-3 w-3 text-primary shrink-0 ml-auto"})]},a))})]})]})})]}):(0,o.jsx)("div",{className:"text-sm text-muted-foreground",children:J("task.branchNone")}),(0,o.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,o.jsx)(X.Label,{className:"text-xs text-muted-foreground",children:J("task.worktreeLabel")}),(0,o.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,o.jsx)("button",{type:"button",onClick:()=>I(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${H===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?J("task.worktreeYes"):J("task.worktreeNo")},String(a)))})]})]}),h.length>0&&(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)(X.Label,{children:J("task.labels")}),(0,o.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.map(a=>{let b=u.includes(a.id);return(0,o.jsx)("button",{type:"button",onClick:()=>{w(c=>b?c.filter(b=>b!==a.id):[...c,a.id])},className:`rounded-full px-2.5 py-1 text-xs font-medium transition-all ${b?"ring-1 ring-current/30":"opacity-50 hover:opacity-80"}`,style:{backgroundColor:a.color+"20",color:a.color,borderColor:b?a.color+"40":"transparent",borderWidth:"1px"},children:a.name},a.id)})})]})]}),(0,o.jsxs)(Q.DialogFooter,{children:[(0,o.jsx)(z.Button,{variant:"outline",onClick:()=>b(!1),children:J("common.cancel")}),(0,o.jsx)(z.Button,{onClick:()=>{k.trim()&&(K&&d?d(f.id,{title:k,description:m,priority:q,labelIds:u,subPath:s.trim()||""}):c({title:k,description:m,priority:q,status:e,labelIds:u,...L&&H&&D?{baseBranch:D}:{},...s.trim()?{subPath:s.trim()}:{}}),l(""),n(""),r("MEDIUM"),t(""),w([]),y([]),E(""),I(!0),b(!1))},className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:K?J("common.save"):J("common.create")})]})]})})}var dO=a.i(759436),dP=a.i(772253),dQ=a.i(114982),dR=a.i(529917),dS=a.i(522849);let dT=(0,r.default)("git-commit-vertical",[["path",{d:"M12 3v6",key:"1holv5"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M12 15v6",key:"a9ows0"}]]);var dU=a.i(147968),dV=a.i(348754),dW=a.i(132586),dX=a.i(385091),dY=a.i(575538),dZ=a.i(61643);let d$=(0,dJ.createServerReference)("4061fb3b9dae5053bbce1d17553c2a593269c3535d",dJ.callServer,void 0,dJ.findSourceMapURL,"deleteProject"),d_=(0,dJ.createServerReference)("40bf625cc6345400eb53997dc99a55da62bf926002",dJ.callServer,void 0,dJ.findSourceMapURL,"getRecentLocalProjects"),d0=(0,dJ.createServerReference)("40975c1ba2a1b9a1d0a8f1a7dcd695ccc14e4121b0",dJ.callServer,void 0,dJ.findSourceMapURL,"getOrCreateTowerTaskId");var d1=a.i(650539),d2=a.i(511153),d3=a.i(217250),d4=a.i(560874),d5=a.i(505454);let d6=(0,r.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);function d7({commits:a}){let{t:b}=(0,v.useI18n)(),[c,d]=(0,p.useState)(!1);return 0===a.length?null:(0,o.jsxs)("div",{children:[(0,o.jsxs)("button",{onClick:()=>d(!c),className:"flex w-full items-center justify-between py-1",children:[(0,o.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:b("git.commitLog")}),c?(0,o.jsx)(dO.ChevronDown,{className:"h-3 w-3 text-muted-foreground"}):(0,o.jsx)(dP.ChevronRight,{className:"h-3 w-3 text-muted-foreground"})]}),c&&(0,o.jsx)("div",{className:"mt-1.5 space-y-0.5 max-h-64 overflow-y-auto",children:a.map(a=>(0,o.jsxs)("div",{className:"group flex items-start gap-2 rounded-md px-2 py-1.5 hover:bg-accent transition-colors",children:[(0,o.jsx)(dT,{className:"h-3 w-3 shrink-0 text-muted-foreground mt-0.5"}),(0,o.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,o.jsx)("p",{className:"text-xs text-foreground line-clamp-1",children:a.message}),(0,o.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,o.jsxs)("button",{onClick:()=>{navigator.clipboard.writeText(a.shortHash),d2.toast.success(`Copied ${a.shortHash}`)},className:"flex items-center gap-0.5 font-mono text-[10px] text-primary/70 hover:text-primary transition-colors",children:[a.shortHash,(0,o.jsx)(d6,{className:"h-2.5 w-2.5 opacity-0 group-hover:opacity-100 transition-opacity"})]}),(0,o.jsx)("span",{className:"text-[10px] text-muted-foreground",children:a.author}),(0,o.jsx)("span",{className:"text-[10px] text-muted-foreground",children:function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m`;let c=Math.floor(b/60);if(c<24)return`${c}h`;let d=Math.floor(c/24);return d<30?`${d}d`:`${Math.floor(d/30)}mo`}(a.date)})]})]})]},a.hash))})]})}var d8=a.i(803330),d9=a.i(25177),ea=a.i(219082);function eb({localPath:a,stashes:b,hasChanges:c,onRefresh:d}){let{t:e}=(0,v.useI18n)(),[f,g]=(0,p.useState)(!1),[h,i]=(0,p.useState)(!1),[j,k]=(0,p.useState)(""),[l,m]=(0,p.useState)(null),n=async()=>{i(!0);try{await (0,ea.gitAction)(a,"stash-save",{message:j}),k(""),d2.toast.success(e("git.stashSaved")),await d()}catch(a){d2.toast.error(a instanceof Error?a.message:String(a))}finally{i(!1)}},q=async b=>{m(b);try{await (0,ea.gitAction)(a,"stash-pop",{index:b}),d2.toast.success(e("git.stashApplied")),await d()}catch(a){d2.toast.error(a instanceof Error?a.message:String(a))}finally{m(null)}},r=async b=>{m(b);try{await (0,ea.gitAction)(a,"stash-drop",{index:b}),d2.toast.success(e("git.stashDropped")),await d()}catch(a){d2.toast.error(a instanceof Error?a.message:String(a))}finally{m(null)}};return c||0!==b.length?(0,o.jsxs)("div",{children:[(0,o.jsxs)("button",{onClick:()=>g(!f),className:"flex w-full items-center justify-between py-1",children:[(0,o.jsxs)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:[e("git.stash")," ",b.length>0&&`(${b.length})`]}),f?(0,o.jsx)(dO.ChevronDown,{className:"h-3 w-3 text-muted-foreground"}):(0,o.jsx)(dP.ChevronRight,{className:"h-3 w-3 text-muted-foreground"})]}),f&&(0,o.jsxs)("div",{className:"mt-1.5 space-y-2",children:[c&&(0,o.jsxs)("div",{className:"flex gap-1.5",children:[(0,o.jsx)(V.Input,{value:j,onChange:a=>k(a.target.value),placeholder:e("git.stashMsgPlaceholder"),className:"h-7 text-xs flex-1",onKeyDown:a=>"Enter"===a.key&&n()}),(0,o.jsx)(z.Button,{variant:"outline",size:"icon-sm",onClick:n,disabled:h,className:"shrink-0",children:h?(0,o.jsx)(dV.Loader2,{className:"h-3 w-3 animate-spin"}):(0,o.jsx)(d8.Archive,{className:"h-3 w-3"})})]}),b.length>0&&(0,o.jsx)("div",{className:"space-y-0.5",children:b.map(a=>(0,o.jsxs)("div",{className:"group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent transition-colors",children:[(0,o.jsx)(d8.Archive,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),(0,o.jsx)("span",{className:"flex-1 min-w-0 truncate text-xs text-foreground",children:a.message||`stash@{${a.index}}`}),(0,o.jsxs)("div",{className:"flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",onClick:()=>q(a.index),disabled:l===a.index,className:"text-muted-foreground","aria-label":e("git.stashApply"),children:l===a.index?(0,o.jsx)(dV.Loader2,{className:"h-3 w-3 animate-spin"}):(0,o.jsx)(d9.ArrowUpFromLine,{className:"h-3 w-3"})}),(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",onClick:()=>r(a.index),disabled:l===a.index,className:"text-rose-400","aria-label":e("git.stashDrop"),children:(0,o.jsx)(L.Trash2,{className:"h-3 w-3"})})]})]},a.index))})]})]}):null}function ec({project:a,workspaceId:b}){let{t:c,locale:d}=(0,v.useI18n)(),e=(0,q.useRouter)(),[f,g]=(0,p.useState)(!0),[h,i]=(0,p.useState)(!0),[j,k]=(0,p.useState)(!1),[l,m]=(0,p.useState)(!1),[n,r]=(0,p.useState)(""),[s,t]=(0,p.useState)(!1),[u,w]=(0,p.useState)(!1),[x,y]=(0,p.useState)(!1),[A,B]=(0,p.useState)(a.name),[C,D]=(0,p.useState)(a.alias??""),[E,F]=(0,p.useState)(a.description??""),[G,H]=(0,p.useState)(a.localPath??""),[I,J]=(0,p.useState)(a.projectType??"FRONTEND"),[M,N]=(0,p.useState)([]);(0,p.useEffect)(()=>{d_(100).then(N)},[]);let[O,P]=(0,p.useState)(!1),[R,S]=(0,p.useState)(""),[T,U]=(0,p.useState)(""),[X,Z]=(0,p.useState)(""),[$,_]=(0,p.useState)(""),[aa,ab]=(0,p.useState)("FRONTEND"),[ac,ad]=(0,p.useState)(!1),[ae,af]=(0,p.useState)(!1),[ag,ah]=(0,p.useState)(null),[ai,aj]=(0,p.useState)(!1),[ak,al]=(0,p.useState)(!1),[am,an]=(0,p.useState)(!1),ao=a=>{d2.toast.info(a)},ap=(0,p.useCallback)(async()=>{if(a.localPath){aj(!0);try{let b=await fetch(`/api/git?path=${encodeURIComponent(a.localPath)}`);b.ok&&ah(await b.json())}catch{}finally{aj(!1)}}},[a.localPath]);(0,p.useEffect)(()=>{ap()},[ap]);let aq=async()=>{if(a.localPath){al(!0);try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"init",path:a.localPath})})).ok?(ao(c("git.initSuccess")),await ap()):ao(c("git.initFailed"))}catch{ao(c("git.initFailed"))}finally{al(!1)}}},ar=async b=>{if(a.localPath)try{let d=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkout",path:a.localPath,branch:b})});if(d.ok)ao(`${c("git.switchSuccess")} ${b}`),await ap();else{let a=await d.json();ao(`${c("git.switchFailed")}: ${a.error}`)}}catch{ao(c("git.switchFailed"))}},as=(a,b)=>{e.push(`/workspaces/${a}?projectId=${b}`,{scroll:!1}),e.refresh()},at=async()=>{if(T.trim()){ad(!0);try{let a=await (0,dZ.createProject)({name:T.trim(),alias:X.trim()||void 0,description:$.trim()||void 0,localPath:R,projectType:aa,workspaceId:b});P(!1),as(b,a.id)}catch(a){d2.toast.error(a instanceof Error?a.message:String(a))}finally{ad(!1)}}},au=async()=>{if(G&&!ae){af(!0);try{let a=await (0,d1.analyzeProjectDirectory)(G.trim(),d);F(a)}catch{d2.toast.error(c("project.analyzeError"))}finally{af(!1)}}},av=async()=>{try{await (0,dY.updateProject)(a.id,{name:A.trim(),alias:C.trim()||void 0,description:E.trim()||void 0,localPath:G.trim()||void 0,projectType:I}),e.refresh(),k(!1)}catch(a){d2.toast.error(a instanceof Error?a.message:String(a))}};return(0,o.jsxs)("aside",{className:"relative w-72 flex-shrink-0 overflow-y-auto border-l border-border bg-sidebar",children:[(0,o.jsxs)("div",{className:"border-b border-border p-4",children:[(0,o.jsxs)("div",{className:"flex items-start justify-between",children:[(0,o.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,o.jsx)("h2",{className:"text-base font-semibold text-foreground",children:a.name}),a.alias&&(0,o.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:a.alias})]}),(0,o.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{B(a.name),D(a.alias??""),F(a.description??""),H(a.localPath??""),k(!0)},className:"text-muted-foreground",children:(0,o.jsx)(K.Pencil,{className:"h-3.5 w-3.5"})}),(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{r(""),m(!0)},className:"text-muted-foreground hover:text-rose-400",children:(0,o.jsx)(L.Trash2,{className:"h-3.5 w-3.5"})})]})]}),a.description&&(0,o.jsx)("p",{className:"mt-2 text-sm text-secondary-foreground leading-relaxed line-clamp-4",children:a.description}),(0,o.jsx)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:(0,o.jsx)("span",{className:`inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-[11px] font-medium ${"GIT"===a.type?"bg-sky-500/15 text-sky-300 ring-1 ring-sky-500/20":"bg-muted text-muted-foreground ring-1 ring-border"}`,children:"GIT"===a.type?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(Y.GitBranch,{className:"h-3 w-3"}),c("sidebar.right.gitType")]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(dR.FileText,{className:"h-3 w-3"}),c("sidebar.right.normalType")]})})}),a.localPath&&(0,o.jsxs)("div",{className:"mt-3 flex items-start gap-2 rounded-md bg-muted/50 px-2.5 py-2 text-xs",children:[(0,o.jsx)(dS.FolderOpen,{className:"mt-0.5 h-3 w-3 shrink-0 text-muted-foreground"}),(0,o.jsx)("span",{className:"break-all font-mono text-secondary-foreground",children:a.localPath})]}),a.gitUrl&&(0,o.jsxs)("div",{className:"mt-2 flex items-start gap-2 rounded-md bg-muted/50 px-2.5 py-2 text-xs",children:[(0,o.jsx)(dQ.Globe,{className:"mt-0.5 h-3 w-3 shrink-0 text-muted-foreground"}),(0,o.jsx)("span",{className:"break-all text-secondary-foreground",children:a.gitUrl})]}),a.localPath&&(0,o.jsxs)(z.Button,{variant:"outline",className:"mt-3 w-full h-8 gap-1.5 text-xs",disabled:u,onClick:async()=>{w(!0);try{let c=await d0(a.id);e.push(`/workspaces/${b}/tasks/${c}`)}catch{d2.toast.error(c("git.openStudioFailed"))}finally{w(!1)}},children:[u?(0,o.jsx)(dV.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,o.jsx)(dS.FolderOpen,{className:"h-3.5 w-3.5"}),c("git.openStudio")]})]}),(0,o.jsxs)("div",{className:"border-b border-border p-4",children:[(0,o.jsxs)(z.Button,{variant:"ghost",onClick:()=>g(!f),className:"flex w-full cursor-pointer justify-between px-2 py-2",children:[(0,o.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("git.section")}),f?(0,o.jsx)(dO.ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,o.jsx)(dP.ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),f&&(0,o.jsx)("div",{className:"mt-3",children:a.localPath?ai?(0,o.jsxs)("div",{className:"flex items-center justify-center py-4 text-muted-foreground",children:[(0,o.jsx)(dV.Loader2,{className:"h-4 w-4 animate-spin"}),(0,o.jsx)("span",{className:"ml-2 text-xs",children:c("git.loading")})]}):ag&&!ag.isGit?(0,o.jsxs)("div",{className:"rounded-lg border border-border bg-muted/50 p-3",children:[(0,o.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,o.jsx)(dU.AlertCircle,{className:"h-3.5 w-3.5"}),(0,o.jsx)("p",{className:"text-xs",children:c("git.notInitialized")})]}),(0,o.jsxs)(z.Button,{className:"mt-3 h-7 w-full gap-1.5 bg-primary/10 text-xs text-primary ring-1 ring-primary/20 hover:bg-primary/15",onClick:aq,disabled:ak,children:[ak?(0,o.jsx)(dV.Loader2,{className:"h-3 w-3 animate-spin"}):(0,o.jsx)(dT,{className:"h-3 w-3"}),c("git.initRepo")]})]}):ag?.isGit?(0,o.jsxs)("div",{className:"space-y-3",children:[(0,o.jsx)(ed,{localBranches:ag.branches??[],remoteBranches:(ag.remoteBranches??[]).filter(a=>!ag.branches?.includes(a)),currentBranch:ag.currentBranch??"",onSwitch:ar,onFetch:async()=>{a.localPath&&(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"fetch",path:a.localPath})}),await ap())},onCreateBranch:()=>an(!0)}),(0,o.jsx)(d7,{commits:ag.commits??[]}),(0,o.jsx)(eb,{localPath:a.localPath,stashes:ag.stashes??[],hasChanges:(ag.changedFiles??[]).length>0,onRefresh:ap})]}):null:(0,o.jsx)("div",{className:"rounded-lg border border-border bg-muted/50 p-3",children:(0,o.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,o.jsx)(dU.AlertCircle,{className:"h-3.5 w-3.5"}),(0,o.jsx)("p",{className:"text-xs",children:c("git.noLocalPath")})]})})})]}),(0,o.jsxs)("div",{className:"p-4",children:[(0,o.jsxs)(z.Button,{variant:"ghost",onClick:()=>i(!h),className:"flex w-full cursor-pointer justify-between px-2 py-2",children:[(0,o.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("sidebar.right.browseRepo")}),h?(0,o.jsx)(dO.ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,o.jsx)(dP.ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),h&&(0,o.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,o.jsxs)(z.Button,{variant:"outline",className:"w-full h-8 gap-1.5 text-xs",onClick:()=>y(!0),children:[(0,o.jsx)(dS.FolderOpen,{className:"h-3.5 w-3.5"}),c("sidebar.right.browseRepo")]}),M.length>0&&(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground mb-1.5 px-1",children:c("sidebar.right.recent")}),(0,o.jsx)("div",{className:"space-y-0.5",children:M.map(b=>(0,o.jsxs)("button",{onClick:()=>{b.id!==a.id&&as(b.workspaceId,b.id)},className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors ${b.id===a.id?"bg-primary/10 text-primary cursor-default":"hover:bg-accent cursor-pointer"}`,children:["GIT"===b.type?(0,o.jsx)(Y.GitBranch,{className:"h-3 w-3 shrink-0 text-emerald-400"}):(0,o.jsx)(dS.FolderOpen,{className:"h-3 w-3 shrink-0 text-primary/70"}),(0,o.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,o.jsx)("p",{className:"truncate text-xs font-medium text-foreground",children:b.name}),b.localPath&&(0,o.jsx)("p",{className:"truncate text-[10px] font-mono text-muted-foreground",children:b.localPath})]})]},b.id))})]})]})]}),(0,o.jsx)(Q.Dialog,{open:j,onOpenChange:k,children:(0,o.jsxs)(Q.DialogContent,{style:{maxWidth:"32rem"},children:[(0,o.jsx)(Q.DialogHeader,{children:(0,o.jsx)(Q.DialogTitle,{children:c("project.edit")})}),(0,o.jsxs)("div",{className:"space-y-3 py-2",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.name")}),(0,o.jsx)(V.Input,{value:A,onChange:a=>B(a.target.value),className:"mt-1.5"})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.type.label")}),(0,o.jsx)("div",{className:"mt-1.5",children:(0,o.jsx)(d4.SegmentedControl,{options:[{value:"FRONTEND",label:c("project.type.frontend")},{value:"BACKEND",label:c("project.type.backend")}],value:I,onChange:J})})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.alias")}),(0,o.jsx)(V.Input,{value:C,onChange:a=>D(a.target.value),className:"mt-1.5"})]}),(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.description")}),(0,o.jsxs)(z.Button,{type:"button",variant:"ghost",onClick:au,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!G||ae?"opacity-50":""}`,children:[ae?(0,o.jsx)(dV.Loader2,{className:"h-3 w-3 animate-spin"}):(0,o.jsx)(dW.Sparkles,{className:"h-3 w-3"}),ae?c("project.analyzing"):c("project.genDesc")]})]}),(0,o.jsx)(W.Textarea,{value:E,onChange:a=>F(a.target.value),rows:2,className:"mt-1.5 w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none max-h-[200px] overflow-y-auto"})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.localPath")}),(0,o.jsxs)("div",{className:"mt-1.5 flex gap-2",children:[(0,o.jsx)(V.Input,{value:G,onChange:a=>H(a.target.value),placeholder:c("project.localPathPlaceholder"),className:"flex-1 font-mono text-xs"}),(0,o.jsx)(z.Button,{variant:"outline",onClick:()=>y(!0),className:"h-8 shrink-0",children:c("folder.browse")})]})]})]}),(0,o.jsxs)(Q.DialogFooter,{children:[(0,o.jsx)(z.Button,{variant:"outline",onClick:()=>k(!1),children:c("common.cancel")}),(0,o.jsx)(z.Button,{onClick:av,disabled:!A.trim()||ae,className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:c("common.save")})]})]})}),(0,o.jsx)(d3.FolderBrowserDialog,{open:x,onOpenChange:y,onSelect:a=>{j?H(a):(a=>{let b=M.find(b=>b.localPath===a);if(b)return as(b.workspaceId,b.id);let c=a.split("/").filter(Boolean).pop()??"";S(a),U(c),Z(""),_(""),P(!0)})(a)}}),(0,o.jsx)(Q.Dialog,{open:O,onOpenChange:P,children:(0,o.jsxs)(Q.DialogContent,{className:"sm:max-w-md",children:[(0,o.jsx)(Q.DialogHeader,{children:(0,o.jsx)(Q.DialogTitle,{children:c("topbar.newProject")})}),(0,o.jsxs)("div",{className:"space-y-3 py-2",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.localPath")}),(0,o.jsx)("div",{className:"mt-1.5 rounded-md border border-border bg-muted/50 px-3 py-2 font-mono text-xs text-muted-foreground",children:R})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.name")}),(0,o.jsx)(V.Input,{value:T,onChange:a=>U(a.target.value),placeholder:c("project.namePlaceholder"),className:"mt-1.5"})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.type.label")}),(0,o.jsx)("div",{className:"mt-1.5",children:(0,o.jsx)(d4.SegmentedControl,{options:[{value:"FRONTEND",label:c("project.type.frontend")},{value:"BACKEND",label:c("project.type.backend")}],value:aa,onChange:ab})})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.alias")}),(0,o.jsx)(V.Input,{value:X,onChange:a=>Z(a.target.value),placeholder:c("project.aliasPlaceholder"),className:"mt-1.5"})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.description")}),(0,o.jsx)(W.Textarea,{value:$,onChange:a=>_(a.target.value),placeholder:c("project.descPlaceholder"),rows:2,className:"mt-1.5 w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none"})]})]}),(0,o.jsxs)(Q.DialogFooter,{children:[(0,o.jsx)(z.Button,{variant:"outline",onClick:()=>P(!1),children:c("common.cancel")}),(0,o.jsxs)(z.Button,{onClick:at,disabled:!T.trim()||ac,className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:[ac?(0,o.jsx)(dV.Loader2,{className:"h-3 w-3 animate-spin mr-1"}):null,c("common.create")]})]})]})}),ag?.isGit&&(0,o.jsx)(d5.CreateBranchDialog,{open:am,onOpenChange:an,branches:ag.branches??[],currentBranch:ag.currentBranch??"",localPath:a.localPath,onCreated:async()=>{await ap(),ao(c("git.createSuccess"))},onError:a=>ao(`${c("git.createFailed")}: ${a}`)}),(0,o.jsx)(Q.Dialog,{open:l,onOpenChange:a=>{m(a),a||r("")},children:(0,o.jsxs)(Q.DialogContent,{className:"sm:max-w-md",children:[(0,o.jsx)(Q.DialogHeader,{children:(0,o.jsx)(Q.DialogTitle,{className:"text-rose-400",children:c("project.deleteTitle")})}),(0,o.jsxs)("div",{className:"space-y-3 py-2",children:[(0,o.jsx)("p",{className:"text-sm text-muted-foreground",children:c("project.deleteWarning",{name:a.name})}),(0,o.jsx)("p",{className:"text-sm text-muted-foreground",children:c("project.deleteIrreversible")}),(0,o.jsxs)("div",{children:[(0,o.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:c("project.deleteConfirmLabel")}),(0,o.jsx)(V.Input,{value:n,onChange:a=>r(a.target.value),placeholder:c("project.deleteConfirmPlaceholder"),className:"mt-1.5",autoFocus:!0})]})]}),(0,o.jsxs)(Q.DialogFooter,{children:[(0,o.jsx)(z.Button,{variant:"outline",onClick:()=>m(!1),children:c("common.cancel")}),(0,o.jsxs)(z.Button,{variant:"destructive",disabled:n!==c("project.deleteConfirmText")||s,onClick:async()=>{t(!0);try{await d$(a.id),d2.toast.success(c("project.deleteSuccess")),e.push(`/workspaces/${b}`)}catch{d2.toast.error(c("project.deleteFailed"))}finally{t(!1),m(!1)}},children:[s&&(0,o.jsx)(dV.Loader2,{className:"h-3 w-3 animate-spin mr-1"}),c("project.deleteButton")]})]})]})})]})}function ed({localBranches:a,remoteBranches:b,currentBranch:c,onSwitch:d,onFetch:e,onCreateBranch:f}){let{t:g}=(0,v.useI18n)(),[h,i]=(0,p.useState)(!1),[j,k]=(0,p.useState)(""),[l,m]=(0,p.useState)(!1),n=(0,p.useRef)(null);(0,p.useEffect)(()=>{if(h)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a);function a(a){n.current&&!n.current.contains(a.target)&&i(!1)}},[h]);let q=j.toLowerCase(),r=a.filter(a=>a.toLowerCase().includes(q)),s=b.filter(a=>a.toLowerCase().includes(q)),t=r.length>0||s.length>0,u=async()=>{m(!0);try{await e()}finally{m(!1)}};return(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,o.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:g("git.currentBranch")}),(0,o.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",onClick:u,disabled:l,className:"text-muted-foreground","aria-label":"Fetch",children:(0,o.jsx)(dX.RefreshCw,{className:`h-3 w-3 ${l?"animate-spin":""}`})}),(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",onClick:f,className:"text-muted-foreground","aria-label":g("git.createBranch"),children:(0,o.jsx)(x.Plus,{className:"h-3 w-3"})})]})]}),(0,o.jsxs)("div",{className:"relative",ref:n,children:[(0,o.jsxs)("button",{onClick:()=>{i(!h),k("")},className:"flex w-full items-center justify-between rounded-lg border border-border bg-muted/50 px-3 py-2 text-left transition-colors hover:bg-accent",children:[(0,o.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,o.jsx)(Y.GitBranch,{className:"h-3 w-3 shrink-0 text-emerald-400"}),(0,o.jsx)("span",{className:"truncate font-mono text-xs text-foreground",children:c||"—"})]}),(0,o.jsx)(dO.ChevronDown,{className:`h-3 w-3 shrink-0 text-muted-foreground transition-transform ${h?"rotate-180":""}`})]}),h&&(0,o.jsxs)("div",{className:"absolute left-0 right-0 top-full z-20 mt-1 rounded-lg border border-border bg-popover shadow-xl",children:[(0,o.jsx)("div",{className:"border-b border-border p-1.5",children:(0,o.jsxs)("div",{className:"relative",children:[(0,o.jsx)(y.Search,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground"}),(0,o.jsx)("input",{value:j,onChange:a=>k(a.target.value),placeholder:"Filter...",autoFocus:!0,className:"h-7 w-full rounded-md bg-muted/50 pl-7 pr-2 text-xs text-foreground placeholder-muted-foreground outline-none focus:ring-1 focus:ring-ring"})]})}),(0,o.jsxs)("div",{className:"max-h-60 overflow-auto py-1",children:[!t&&(0,o.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No branches found"}),r.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("p",{className:"px-3 pt-1.5 pb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:g("git.localBranches")}),r.map(a=>{let b=a===c;return(0,o.jsxs)("button",{onClick:()=>{b||d(a),i(!1)},className:`flex w-full items-center gap-2 px-3 py-1.5 text-left transition-colors ${b?"bg-emerald-500/10 text-emerald-400":"text-secondary-foreground hover:bg-accent"}`,children:[(0,o.jsx)(Y.GitBranch,{className:"h-3 w-3 shrink-0"}),(0,o.jsx)("span",{className:"truncate font-mono text-xs",children:a}),b&&(0,o.jsx)(C.Check,{className:"h-3 w-3 ml-auto shrink-0"})]},`local-${a}`)})]}),s.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("p",{className:"px-3 pt-2.5 pb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:g("git.remoteBranches")}),s.map(a=>(0,o.jsxs)("button",{onClick:()=>{d(a),i(!1)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-secondary-foreground transition-colors hover:bg-accent",children:[(0,o.jsx)(dQ.Globe,{className:"h-3 w-3 shrink-0 text-sky-400"}),(0,o.jsx)("span",{className:"truncate font-mono text-xs",children:a})]},`remote-${a}`))]})]})]})]})]})}let ee=(0,r.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var ef=a.i(737316),eg=a.i(776206),eh=a.i(136913),ei=a.i(344838),ej=a.i(348160),ek=a.i(414836);function el({title:a,description:b,branch:c,baseBranch:d,hasConversation:e,updatedAt:f,onBack:g}){let{t:h}=(0,v.useI18n)();return(0,o.jsxs)("div",{className:"border-b border-border px-4 py-3",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)(dW.Sparkles,{className:"h-3.5 w-3.5 text-primary"}),(0,o.jsx)("span",{className:"text-xs font-semibold text-primary",children:h("taskDetail.title")})]}),(0,o.jsxs)(z.Button,{variant:"ghost",onClick:g,className:"flex items-center gap-1 text-xs text-muted-foreground transition-colors hover:text-foreground h-auto px-2 py-1",children:[(0,o.jsx)(ek.ArrowLeft,{className:"h-3.5 w-3.5"}),h("taskDetail.back")]})]}),(0,o.jsx)("h2",{className:"mt-2.5 text-lg font-bold tracking-tight text-foreground",children:a}),b&&(0,o.jsx)("p",{className:"mt-1 text-xs text-muted-foreground line-clamp-2",children:b}),(0,o.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[d?(0,o.jsxs)(N.Badge,{variant:"secondary",className:"bg-muted text-muted-foreground text-[10px] font-mono border border-border",children:[(0,o.jsx)(Y.GitBranch,{className:"mr-1 h-3 w-3"}),d," · worktree"]}):c?(0,o.jsx)(N.Badge,{variant:"secondary",className:"bg-muted text-muted-foreground text-[10px] font-mono border border-border",children:h("taskDetail.directMode")}):null,e&&(0,o.jsx)(N.Badge,{variant:"secondary",className:"bg-emerald-500/10 text-emerald-400 text-[10px] border border-emerald-500/20",children:h("taskDetail.hasConversation")}),(0,o.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[h("taskDetail.updatedAt")," ",(0,bh.formatRelativeTime)(f)]})]})]})}var em=a.i(285064),en=a.i(780414),eo=a.i(969948),ep=a.i(532015),eq=a.i(449596),er=a.i(372035),es=a.i(463071),et=a.i(441171),eu=a.i(55123),ev=a.i(982129),ew=a.i(760683),ex=a.i(131360),ey=a.i(657679),ez=a.i(262392);let eA=(0,r.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);var eB=a.i(17787),eC=a.i(531135);let eD=(0,dJ.createServerReference)("4044fd6d5f5ea95518857733d60cc74f94585d95a7",dJ.callServer,void 0,dJ.findSourceMapURL,"getTaskNotes");var eE=a.i(741313);let eF=(0,dJ.createServerReference)("40730e9ec84d399520deaab7ae6d6dd0d82e786d22",dJ.callServer,void 0,dJ.findSourceMapURL,"getTaskAssets");var eG=a.i(75019),eH=a.i(856129);function eI({taskId:a,projectId:b}){let{t:c}=(0,v.useI18n)(),d=(0,p.useRef)(null),[e,f]=(0,p.useState)([]),[g,h]=(0,p.useState)([]),[i,j]=(0,p.useState)(!1),[k,l]=(0,p.useState)(""),[m,n]=(0,p.useState)(""),[q,r]=(0,p.useState)(!1);async function s(){k.trim()&&(await (0,eC.createNote)({title:k.trim(),content:m.trim(),projectId:b,taskId:a,category:"task"}),l(""),n(""),j(!1),eD(a).then(f))}async function t(a){await (0,eE.deleteNote)(a),f(b=>b.filter(b=>b.id!==a))}async function u(c){let e=c.target.files?.[0];if(e){r(!0);try{let c=new FormData;c.set("file",e),c.set("projectId",b),c.set("taskId",a),await (0,eG.uploadAsset)(c),eF(a).then(h)}finally{r(!1),d.current&&(d.current.value="")}}}async function w(a){await (0,eH.deleteAsset)(a),h(b=>b.filter(b=>b.id!==a))}return(0,p.useEffect)(()=>{eD(a).then(f),eF(a).then(h)},[a]),(0,o.jsx)(R.ScrollArea,{className:"h-full",children:(0,o.jsxs)("div",{className:"flex flex-col",children:[(0,o.jsxs)("div",{className:"border-b border-border px-4 py-3",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("h3",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:[(0,o.jsx)(dR.FileText,{className:"h-3.5 w-3.5"}),c("taskPage.notes")]}),(0,o.jsxs)(z.Button,{variant:"ghost",className:"h-6 gap-1 px-2 text-xs",onClick:()=>j(!i),children:[i?(0,o.jsx)(eB.X,{className:"h-3 w-3"}):(0,o.jsx)(x.Plus,{className:"h-3 w-3"}),i?"":c("taskPage.addNote")]})]}),i&&(0,o.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,o.jsx)("input",{type:"text",value:k,onChange:a=>l(a.target.value),placeholder:c("taskPage.noteTitle"),className:"h-8 w-full rounded-md border border-border bg-background px-3 text-sm focus:outline-none focus:ring-1 focus:ring-primary",autoFocus:!0}),(0,o.jsx)("textarea",{value:m,onChange:a=>n(a.target.value),placeholder:c("taskPage.noteContent"),rows:3,className:"w-full rounded-md border border-border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary resize-none"}),(0,o.jsx)(z.Button,{className:"text-xs",onClick:s,disabled:!k.trim(),children:c("taskPage.addNote")})]}),(0,o.jsxs)("div",{className:"mt-2 space-y-2",children:[0===e.length&&!i&&(0,o.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:c("taskPage.noNotes")}),e.map(a=>(0,o.jsx)("div",{className:"group rounded-md border border-border bg-card p-3",children:(0,o.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,o.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,o.jsx)("h4",{className:"text-sm font-medium truncate",children:a.title}),a.content&&(0,o.jsx)("p",{className:"mt-1 text-xs text-muted-foreground line-clamp-3 whitespace-pre-wrap",children:a.content}),(0,o.jsx)("p",{className:"mt-1 text-[10px] text-muted-foreground",children:new Date(a.createdAt).toLocaleString()})]}),(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",onClick:()=>t(a.id),className:"shrink-0 text-muted-foreground opacity-0 hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100",title:c("taskPage.deleteNote"),children:(0,o.jsx)(L.Trash2,{className:"h-3.5 w-3.5"})})]})},a.id))]})]}),(0,o.jsxs)("div",{className:"px-4 py-3",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("h3",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:[(0,o.jsx)(eA,{className:"h-3.5 w-3.5"}),c("taskPage.attachments")]}),(0,o.jsxs)(z.Button,{variant:"ghost",className:"h-6 gap-1 px-2 text-xs",onClick:()=>d.current?.click(),disabled:q,children:[(0,o.jsx)(ez.Upload,{className:"h-3 w-3"}),c("taskPage.uploadFile")]}),(0,o.jsx)("input",{ref:d,type:"file",className:"hidden",onChange:u})]}),(0,o.jsxs)("div",{className:"mt-2 space-y-1.5",children:[0===g.length&&(0,o.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:c("taskPage.noAttachments")}),g.map(a=>{var b;return(0,o.jsxs)("div",{className:"group flex items-center gap-2 rounded-md border border-border bg-card px-3 py-2",children:[(0,o.jsx)(eA,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,o.jsx)("span",{className:"flex-1 truncate text-sm",children:a.filename}),(0,o.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(b=a.size)?b<1024?`${b} B`:b<1048576?`${(b/1024).toFixed(1)} KB`:`${(b/1024/1024).toFixed(1)} MB`:""}),(0,o.jsx)(z.Button,{variant:"ghost",size:"icon-xs",onClick:()=>w(a.id),className:"shrink-0 text-muted-foreground opacity-0 hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100",title:c("taskPage.deleteAttachment"),children:(0,o.jsx)(L.Trash2,{className:"h-3 w-3"})})]},a.id)})]})]})]})})}function eJ({task:a,workspaceId:b,projectLocalPath:c,onClose:d}){let{t:e}=(0,v.useI18n)(),f=(0,q.useRouter)(),{removePortal:g}=(0,eo.useTerminalPortal)(),[h,i]=(0,p.useState)("terminal"),[j,k]=(0,p.useState)(null),[l,m]=(0,p.useState)(!1),[n,r]=(0,p.useState)(a.status);(0,p.useEffect)(()=>{r(a.status)},[a.status]);let[s,t]=(0,p.useState)(null),[u,w]=(0,p.useState)(!1),[x,y]=(0,p.useState)(!1),[A,B]=(0,p.useState)([]);(0,p.useEffect)(()=>{t(null),w(!1),y(!1),B([]),k(null),i("terminal")},[a.id]);let[C,D]=(0,p.useState)([]),[E,F]=(0,p.useState)(null);(0,p.useEffect)(()=>{let a=!1;return(0,ex.getPrompts)().then(b=>{if(a)return;D(b.map(a=>({id:a.id,name:a.name,isDefault:a.isDefault})));let c=b.find(a=>a.isDefault);c&&F(c.id)}),()=>{a=!0}},[]),(0,p.useEffect)(()=>{t(null),y(!1);let b=!1;return(0,ep.getTaskExecutions)(a.id).then(a=>{if(b)return;let d=a[0];if(d?.status==="RUNNING"){let a=d.worktreePath||c||null;a&&t(a)}B(a.filter(a=>"RUNNING"!==a.status)),y(!0)}),()=>{b=!0}},[a.id]),(0,p.useEffect)(()=>{if("changes"!==h||"TODO"===n||"CANCELLED"===n)return;let b=!1;return m(!0),fetch(`/api/tasks/${a.id}/diff`).then(a=>{if(!a.ok)throw Error(`HTTP ${a.status}`);return a.json()}).then(a=>{b||k(a?.files||a?.branchDeleted?a:null)}).catch(()=>{b||k(null)}).finally(()=>{b||m(!1)}),()=>{b=!0}},[h,n,a.id]);let G=(0,p.useCallback)(async()=>{if(!u){w(!0);try{let{worktreePath:b}=await (0,eq.startPtyExecution)(a.id,"",E);t(b),r("IN_PROGRESS")}catch(a){w(!1),d2.toast.error(a instanceof Error?a.message:String(a))}}},[a.id,u,E]),H=(0,p.useCallback)(b=>{w(!1),t(null),g(a.id),0===b&&r("IN_REVIEW"),(0,ep.getTaskExecutions)(a.id).then(a=>{B(a.filter(a=>"RUNNING"!==a.status))}),f.refresh()},[f,a.id]),I=(0,p.useCallback)(async()=>{await (0,er.stopPtyExecution)(a.id),w(!1),t(null),r("IN_REVIEW"),(0,ep.getTaskExecutions)(a.id).then(a=>{B(a.filter(a=>"RUNNING"!==a.status))}),f.refresh()},[a.id,f]),J=(0,p.useCallback)(async b=>{w(!0),g(a.id),t(null);try{let{worktreePath:c}=await (0,es.resumePtyExecution)(a.id,b);t(c),r("IN_PROGRESS")}catch{w(!1)}},[a.id,g]),K=(0,p.useCallback)(async()=>{w(!0),g(a.id),t(null);try{let{worktreePath:b}=await (0,et.continueLatestPtyExecution)(a.id);t(b),r("IN_PROGRESS")}catch(a){w(!1),d2.toast.error(a instanceof Error?a.message:String(a))}},[a.id,g]),[L,M]=(0,p.useState)(!1),[N,O]=(0,p.useState)([]),P=(0,p.useCallback)(async()=>{try{let b=await (0,ev.checkWorktreeClean)(a.id);if(b.hasWorktree&&!b.clean)return void d2.toast.error(e("taskPage.uncommittedChanges",{count:String(b.files.length)}));if(b.hasWorktree&&b.clean&&!b.hasCommits)return void d2.toast.error(e("taskPage.noChangesToComplete"));if(b.hasWorktree&&b.hasCommits){O(b.commitLog),M(!0);return}await (0,eu.updateTaskStatus)(a.id,"DONE"),r("DONE"),d2.toast.success(e("taskPage.taskCompleted")),f.refresh()}catch{d2.toast.error("Failed to complete task")}},[a.id,f,e]),Q=(0,p.useCallback)(()=>{r("DONE"),M(!1),d2.toast.success(e("taskPage.taskCompleted")),f.refresh()},[f,e]),S=(0,p.useCallback)(async b=>{try{let{hash:c}=await (0,ew.commitWorktreeChanges)(a.id,b);d2.toast.success(e("diff.commitSuccess",{hash:c})),f.refresh();let d=await fetch(`/api/tasks/${a.id}/diff`);if(d.ok){let a=await d.json();k(a?.files?a:null)}}catch(a){d2.toast.error(a instanceof Error?a.message:"Commit failed")}},[a.id,f,e]);return(0,o.jsxs)("div",{className:"flex h-full w-[600px] flex-shrink-0 flex-col border-l border-border bg-sidebar","data-testid":"task-detail-panel",children:[(0,o.jsx)(el,{title:a.title,description:e("taskDetail.panelDescription"),branch:`task/${a.id}`,baseBranch:a.baseBranch,hasConversation:!1,updatedAt:a.updatedAt,onBack:d}),(0,o.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-2",children:[(0,o.jsxs)("div",{className:"flex gap-1",children:[(0,o.jsxs)("button",{onClick:()=>i("terminal"),className:`flex items-center gap-1.5 px-3 py-1 text-xs font-medium rounded-md ${"terminal"===h?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,o.jsx)(ef.Terminal,{className:"h-3 w-3"}),e("terminal.execute")]}),(0,o.jsx)("button",{onClick:()=>i("changes"),className:`px-3 py-1 text-xs font-medium rounded-md ${"changes"===h?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:e("taskPage.changes")}),(0,o.jsxs)("button",{onClick:()=>i("notes"),className:`flex items-center gap-1.5 px-3 py-1 text-xs font-medium rounded-md ${"notes"===h?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,o.jsx)(dR.FileText,{className:"h-3 w-3"}),e("taskPage.notes")]})]}),(0,o.jsxs)("div",{className:"flex items-center gap-2",children:["IN_REVIEW"===n&&(0,o.jsxs)(z.Button,{size:"sm",onClick:P,className:"bg-emerald-500/15 text-emerald-400 ring-1 ring-emerald-500/20 hover:bg-emerald-500/25",children:[(0,o.jsx)(eh.CheckCircle2,{className:"h-3 w-3"}),e("taskPage.completeTask")]}),"DONE"!==n&&"CANCELLED"!==n&&(0,o.jsxs)(z.Button,{variant:"ghost",size:"sm",onClick:()=>f.push(`/workspaces/${b}/tasks/${a.id}`),className:"text-muted-foreground",children:[(0,o.jsx)(ee,{className:"h-3 w-3"}),e("taskPage.viewDetails")]})]})]}),"terminal"===h?(0,o.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:x?s?(0,o.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,o.jsxs)("div",{className:"shrink-0 flex items-center justify-between border-b border-neutral-800 px-3 py-2 bg-[#0f1419]",children:[(0,o.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-emerald-400",children:[(0,o.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400 animate-pulse"}),e("execution.running")]}),(0,o.jsxs)(ej.Tooltip,{children:[(0,o.jsxs)(ej.TooltipTrigger,{onClick:I,className:"flex items-center gap-1.5 rounded-md bg-red-500/15 px-3 py-1 text-xs font-medium text-red-400 hover:bg-red-500/25 transition-colors",children:[(0,o.jsx)(eg.Square,{className:"h-3 w-3"}),e("terminal.stopExecution")]}),(0,o.jsx)(ej.TooltipContent,{side:"bottom",children:e("terminal.stopHint")})]})]}),(0,o.jsx)("div",{className:"flex-1 min-h-0",children:(0,o.jsx)(eo.TerminalOutlet,{taskId:a.id,worktreePath:s,onSessionEnd:H})})]}):"DONE"===n||"CANCELLED"===n?(0,o.jsx)("div",{className:"flex h-full flex-col overflow-hidden",children:(0,o.jsx)(R.ScrollArea,{className:"flex-1 min-h-0",children:(0,o.jsx)(ey.ExecutionTimeline,{executions:A})})}):(0,o.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,o.jsxs)("div",{className:"shrink-0 flex items-center gap-2 border-b border-border px-4 py-3",children:[C.length>0&&(0,o.jsxs)(ei.Select,{defaultValue:E??"none",onValueChange:a=>F("none"===a?null:a),children:[(0,o.jsx)(ei.SelectTrigger,{size:"sm",className:"min-w-[120px]",children:(0,o.jsx)("span",{className:"text-left truncate",children:E?C.find(a=>a.id===E)?.name??e("terminal.noPrompt"):e("terminal.noPrompt")})}),(0,o.jsxs)(ei.SelectContent,{className:"min-w-[200px]",children:[(0,o.jsx)(ei.SelectItem,{value:"none",children:e("terminal.noPrompt")}),C.map(a=>(0,o.jsxs)(ei.SelectItem,{value:a.id,children:[a.name,a.isDefault?" ★":""]},a.id))]})]},`prompt-${C.length}`),(0,o.jsxs)(z.Button,{onClick:G,disabled:u,size:"sm",className:"gap-2 px-4",children:[u?(0,o.jsx)(dV.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,o.jsx)(ef.Terminal,{className:"h-3.5 w-3.5"}),u?e("terminal.executing"):e("terminal.launch")]})]}),(0,o.jsx)(R.ScrollArea,{className:"flex-1 min-h-0",children:(0,o.jsx)(ey.ExecutionTimeline,{executions:A,onResume:J,onContinueLatest:K})})]}):(0,o.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 bg-[#0f1419]",children:[(0,o.jsx)(dV.Loader2,{className:"size-5 animate-spin text-neutral-500"}),(0,o.jsx)("span",{className:"text-xs text-neutral-500",children:e("execution.loading")})]})}):"changes"===h?(0,o.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:l?(0,o.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,o.jsx)("p",{className:"text-sm text-muted-foreground",children:e("taskPage.loadingDiff")})}):j?.branchDeleted?(0,o.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,o.jsx)("p",{className:"text-sm text-muted-foreground",children:e("taskPage.branchDeleted")})}):j?(0,o.jsx)(em.TaskDiffView,{files:j.files,totalAdded:j.totalAdded,totalRemoved:j.totalRemoved,hasConflicts:j.hasConflicts,conflictFiles:j.conflictFiles,onCommit:S,hasUncommitted:j.hasUncommitted}):(0,o.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,o.jsx)("p",{className:"text-sm text-muted-foreground",children:e("taskPage.noChanges")})})}):"notes"===h?(0,o.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,o.jsx)(eI,{taskId:a.id,projectId:a.projectId})}):null,(0,o.jsx)(en.TaskMergeConfirmDialog,{open:L,onOpenChange:M,taskId:a.id,taskTitle:a.title,baseBranch:a.baseBranch??"main",fileCount:j?.files?.length??0,commitCount:j?.commitCount??0,commitLog:N,onMergeComplete:Q})]})}let eK=(0,dJ.createServerReference)("40be09b5b44f68338e716323ae63b5c060dbe67a98",dJ.callServer,void 0,dJ.findSourceMapURL,"createTask"),eL=(0,dJ.createServerReference)("60eb09d53d709a0abfc38243780a5c585f72c791fe",dJ.callServer,void 0,dJ.findSourceMapURL,"updateTask"),eM=(0,dJ.createServerReference)("4020e4992613d0054a809fe4fe7b039b97eb746225",dJ.callServer,void 0,dJ.findSourceMapURL,"deleteTask"),eN=(0,dJ.createServerReference)("40e3dd28c55b473fec0951ad2303e18bcae5da94ad",dJ.callServer,void 0,dJ.findSourceMapURL,"toggleTaskPinned");var eO=a.i(148997);function eP({projects:a,activeProjectId:b,onSelect:c}){let d=(0,p.useRef)(null),[e,f]=(0,p.useState)(!1),[g,h]=(0,p.useState)(!1),i=()=>{let a=d.current;a&&(f(a.scrollLeft>0),h(a.scrollLeft<a.scrollWidth-a.clientWidth-1))};(0,p.useEffect)(()=>{i();let a=d.current;if(a){a.addEventListener("scroll",i);let b=new ResizeObserver(i);return b.observe(a),()=>{a.removeEventListener("scroll",i),b.disconnect()}}},[a]);let j=a=>{let b=d.current;b&&b.scrollBy({left:"left"===a?-150:150,behavior:"smooth"})};return(0,o.jsxs)("div",{className:"relative flex items-center",children:[e&&(0,o.jsx)("button",{onClick:()=>j("left"),className:"absolute left-0 z-10 flex h-8 w-8 items-center justify-center rounded-md bg-background/90 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition-colors hover:text-foreground",children:(0,o.jsx)(eO.ChevronLeft,{className:"h-4 w-4"})}),(0,o.jsx)("div",{ref:d,className:"flex items-center gap-1.5 overflow-x-auto scrollbar-none px-1 py-1",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:a.map(a=>{let d=b===a.id;return(0,o.jsxs)("button",{onClick:()=>{d||c(a.id)},className:`shrink-0 rounded-lg border-b-2 px-4 py-2 text-sm font-medium transition-colors ${d?"border-primary bg-primary/10 text-primary ring-1 ring-primary/20 cursor-default":"border-transparent text-muted-foreground hover:bg-accent hover:text-foreground cursor-pointer"}`,children:[(0,o.jsx)("span",{children:a.name}),a.alias&&(0,o.jsx)("span",{className:"ml-1.5 text-xs text-muted-foreground font-normal",children:a.alias})]},a.id)})}),g&&(0,o.jsx)("button",{onClick:()=>j("right"),className:"absolute right-0 z-10 flex h-8 w-8 items-center justify-center rounded-md bg-background/90 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition-colors hover:text-foreground",children:(0,o.jsx)(dP.ChevronRight,{className:"h-4 w-4"})})]})}a.s(["BoardPageClient",0,function({workspaceId:a,projectId:b,project:c,projects:d,initialTasks:e,labels:f,openTaskId:g}){let h=(0,q.useRouter)(),[,i]=(0,p.useTransition)(),[j,k]=(0,p.useState)(""),[l,m]=(0,p.useState)(!1),[n,r]=(0,p.useState)("TODO"),[s,t]=(0,p.useState)(g?e.find(a=>a.id===g)??null:null),[u,v]=(0,p.useState)(null),x=(0,p.useCallback)(()=>{i(()=>{h.refresh()})},[h]);(0,p.useEffect)(()=>{if(l)return;let a=setInterval(()=>{i(()=>{h.refresh()})},5e3);return()=>clearInterval(a)},[h,l]);let y=(0,p.useCallback)(a=>{k(a)},[]),z=(0,p.useCallback)(async(a,b)=>{await (0,eu.updateTaskStatus)(a,b),s?.id===a&&t({...s,status:b}),x()},[x,s]),B=(0,p.useCallback)(async a=>{await eK({title:a.title,description:a.description,projectId:b,priority:a.priority,status:a.status,labelIds:a.labelIds,baseBranch:a.baseBranch,subPath:a.subPath}),x()},[b,x]),C=(0,p.useCallback)(async(a,b)=>{await eL(a,{...b,labelIds:b.labelIds}),v(null),x()},[x]),E=(0,p.useCallback)(async a=>{await eM(a),s?.id===a&&t(null),x()},[x,s]),F=(0,p.useCallback)(async a=>{await eN(a),x()},[x]),G=(0,p.useCallback)(async b=>{try{await (0,eq.startPtyExecution)(b,"")}catch(a){d2.toast.error(a instanceof Error?a.message:String(a))}h.push(`/workspaces/${a}/tasks/${b}`)},[h,a]),H=(0,p.useCallback)(async(a,b)=>{await (0,eu.updateTaskStatus)(a,b),s?.id===a&&t({...s,status:b}),x()},[x,s]),I=(0,p.useCallback)(a=>{r(a),v(null),m(!0)},[]),J=(0,p.useCallback)(a=>{v(a),m(!0)},[]),K=e.filter(a=>!a.labels?.some(a=>a.label.name===D.TOWER_LABEL_NAME&&a.label.isBuiltin)),L=j.trim()?K.filter(a=>{let b=j.toLowerCase();return a.title.toLowerCase().includes(b)||(a.description?.toLowerCase().includes(b)??!1)}):K;return(0,o.jsxs)("div",{className:"flex h-full",children:[(0,o.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[(0,o.jsx)("div",{className:"px-6 pt-3 pb-1",children:(0,o.jsx)(eP,{projects:d,activeProjectId:b,onSelect:b=>h.push(`/workspaces/${a}?projectId=${b}`,{scroll:!1})})}),(0,o.jsx)(w,{totalTasks:K.length,runningTasks:K.filter(a=>"IN_PROGRESS"===a.status).length}),(0,o.jsx)(A,{searchQuery:j,onSearchChange:y,onCreateTask:()=>{v(null),m(!0)}}),(0,o.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden p-4",children:(0,o.jsx)(U,{initialTasks:L,onTaskMove:z,onTaskClick:a=>{t(a)},onEditTask:J,onAddTask:I,onDeleteTask:E,onTogglePin:F,workspaceId:a,onContextMenuStatusChange:H,onContextMenuLaunch:G})}),(0,o.jsx)(dN,{open:l,onOpenChange:a=>{m(a),a||v(null)},onSubmit:B,onUpdate:C,defaultStatus:n,editTask:u,editTaskLabelIds:u?.labels?u.labels.map(a=>a.labelId):[],labels:f.filter(a=>!(a.name===D.TOWER_LABEL_NAME&&a.isBuiltin)),projectType:c.type,projectLocalPath:c.localPath})]}),s?(0,o.jsx)(eJ,{task:s,workspaceId:a,projectLocalPath:c.localPath,onClose:()=>t(null)}):(0,o.jsx)(ec,{project:c,workspaceId:a})]})}],293909)}];
6
-
7
- //# sourceMappingURL=tower_src_app_workspaces_%5BworkspaceId%5D_board-page-client_tsx_0kjp1u0._.js.map