tower-studio 0.2.45 → 0.2.47

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 (495) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +8 -0
  6. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +3 -3
  17. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +149 -89
  18. package/.next/standalone/.next/server/app/_not-found/page.js +8 -8
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/api/adapters/test/route.js +2 -2
  22. package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/browse-fs/route.js +1 -1
  24. package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/git/route.js +1 -1
  27. package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +2 -4
  31. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +2 -2
  33. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/internal/assistant/route.js +5 -4
  35. package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +3 -5
  38. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/internal/harness/ask/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/internal/harness/notify/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/internal/harness/pending/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/internal/harness/reply/route.js +4 -4
  44. package/.next/standalone/.next/server/app/api/internal/harness/reply/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/internal/hooks/session/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js +1 -1
  48. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js +1 -1
  50. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/internal/monaco/[...path]/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js +1 -1
  53. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js +1 -1
  55. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/paste-image/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route.js +4 -4
  58. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +4 -4
  60. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route.js +4 -4
  62. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js +1 -1
  64. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js +1 -1
  66. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js +5 -3
  68. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/harness/page/react-loadable-manifest.json +3 -3
  70. package/.next/standalone/.next/server/app/harness/page/server-reference-manifest.json +172 -112
  71. package/.next/standalone/.next/server/app/harness/page.js +8 -8
  72. package/.next/standalone/.next/server/app/harness/page.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/harness/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +3 -2
  75. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +254 -158
  76. package/.next/standalone/.next/server/app/missions/page.js +10 -9
  77. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +3 -3
  80. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +149 -89
  81. package/.next/standalone/.next/server/app/onboarding/page.js +8 -8
  82. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +3 -3
  85. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +149 -89
  86. package/.next/standalone/.next/server/app/page.js +8 -8
  87. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +3 -3
  90. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +245 -149
  91. package/.next/standalone/.next/server/app/settings/page.js +10 -11
  92. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +3 -3
  95. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +286 -238
  96. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +9 -9
  97. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +3 -3
  100. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +251 -203
  101. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +9 -9
  102. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/app-paths-manifest.json +3 -0
  105. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/build-manifest.json +18 -0
  106. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/next-font-manifest.json +11 -0
  107. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/react-loadable-manifest.json +18 -0
  108. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/server-reference-manifest.json +413 -0
  109. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page.js +25 -0
  110. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page.js.nft.json +1 -0
  111. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page_client-reference-manifest.js +3 -0
  112. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +3 -3
  113. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +228 -180
  114. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +9 -9
  115. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +3 -3
  118. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +266 -218
  119. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +10 -11
  120. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +3 -3
  123. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +149 -89
  124. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +9 -9
  125. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +3 -3
  128. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +226 -178
  129. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +9 -9
  130. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +4 -4
  133. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +293 -233
  134. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +11 -12
  135. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +3 -3
  138. package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +177 -129
  139. package/.next/standalone/.next/server/app/workspaces/page.js +8 -8
  140. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  143. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_09ikw5j.js +5 -0
  144. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0eh8dj_.js +9 -5
  145. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0gr2wxq.js +1 -1
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-1~xqo._.js +3 -0
  147. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.3n3t.._.js +3 -0
  148. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.wsvr6._.js +4 -0
  149. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0y3adwk._.js → [root-of-the-server]__0.yf1mx._.js} +2 -2
  150. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0o6i1wy._.js → [root-of-the-server]__00xe-t8._.js} +2 -2
  151. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0vh3112._.js → [root-of-the-server]__02yvm55._.js} +2 -2
  152. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__09arklv._.js → [root-of-the-server]__04-ty51._.js} +2 -2
  153. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0v98a~t._.js → [root-of-the-server]__065hi6e._.js} +2 -2
  154. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0k9rz_z._.js → [root-of-the-server]__06iuq17._.js} +2 -2
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06x1zwj._.js +1 -1
  156. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06~wmlx._.js +3 -0
  157. package/.next/standalone/.next/server/chunks/[root-of-the-server]__092475e._.js +3 -0
  158. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0atap--._.js +3 -0
  159. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c3je91._.js +3 -0
  160. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dz.knv._.js +3 -0
  161. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ehwsa1._.js +4 -0
  162. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0esywxf._.js +3 -0
  163. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fd9z.r._.js +30 -0
  164. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gcg7i.._.js +3 -0
  165. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0iyp~.k._.js +2 -2
  166. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__07xsu6m._.js → [root-of-the-server]__0j7565a._.js} +2 -2
  167. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kkrbn-._.js +4 -0
  168. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0m8t3vi._.js +3 -0
  169. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nv83.p._.js +4 -0
  170. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0squ613._.js +3 -0
  171. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u8tl88._.js +2 -2
  172. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wugb-9._.js +3 -0
  173. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yeg1kp._.js +4 -0
  174. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zchqv1._.js +43 -0
  175. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0_~s0z4._.js → [root-of-the-server]__0zcy11y._.js} +2 -2
  176. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~1-i5h._.js +3 -0
  177. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~ju4-d._.js +1 -1
  178. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10qclz-._.js +3 -0
  179. package/.next/standalone/.next/server/chunks/_02hac5p._.js +25 -2
  180. package/.next/standalone/.next/server/chunks/_0_w835g._.js +4 -0
  181. package/.next/standalone/.next/server/chunks/_0je3dz2._.js +25 -2
  182. package/.next/standalone/.next/server/chunks/_0tidm8l._.js +25 -2
  183. package/.next/standalone/.next/server/chunks/_0zok2an._.js +25 -2
  184. package/.next/standalone/.next/server/chunks/src_05balzk._.js +1 -1
  185. package/.next/standalone/.next/server/chunks/src_0aygchu._.js +1 -1
  186. package/.next/standalone/.next/server/chunks/src_0gif-f5._.js +1 -1
  187. package/.next/standalone/.next/server/chunks/src_0pg9w-x._.js +3 -0
  188. package/.next/standalone/.next/server/chunks/src_0vp6.co._.js +1 -1
  189. package/.next/standalone/.next/server/chunks/src_11k6i~l._.js +1 -1
  190. package/.next/standalone/.next/server/chunks/src_actions_agent-actions_ts_10q9r5b._.js +3 -3
  191. package/.next/standalone/.next/server/chunks/src_lib_0d~1~wz._.js +1 -1
  192. package/.next/standalone/.next/server/chunks/src_lib_0ylel_1._.js +1 -1
  193. package/.next/standalone/.next/server/chunks/src_lib_ai_0xx6y51._.js +1 -1
  194. package/.next/standalone/.next/server/chunks/src_lib_ai_providers_index_ts_0.y.3vp._.js +1 -1
  195. package/.next/standalone/.next/server/chunks/src_lib_config-defaults_ts_10ayktg._.js +1 -1
  196. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  197. package/.next/standalone/.next/server/chunks/ssr/0se9_next_dist_0i5qmqd._.js +1 -1
  198. package/.next/standalone/.next/server/chunks/ssr/0se9_next_dist_esm_build_templates_app-page_04~dhws.js +4 -0
  199. package/.next/standalone/.next/server/chunks/ssr/{0ws9_lucide-react_dist_esm_icons_0r~ty--._.js → 0ws9_lucide-react_dist_esm_icons_0gv_cwy._.js} +2 -2
  200. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00qdvw7._.js +3 -0
  201. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01bz3_g._.js +3 -0
  202. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__051tpij._.js → [root-of-the-server]__0282989._.js} +1 -1
  203. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dfqa5a._.js → [root-of-the-server]__03jikql._.js} +1 -1
  204. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ixgha6._.js → [root-of-the-server]__04dod9d._.js} +1 -1
  205. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05tx27l._.js +3 -0
  206. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0fl0l82._.js → [root-of-the-server]__07ha-7q._.js} +1 -1
  207. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07~giyb._.js +3 -0
  208. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0872sqe._.js +4 -0
  209. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__090y_.y._.js +3 -0
  210. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__096w7g2._.js → [root-of-the-server]__09qoc8v._.js} +3 -3
  211. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b.ej5q._.js +1 -1
  212. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dmjt7o._.js → [root-of-the-server]__0bl842b._.js} +1 -1
  213. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0lau3k_._.js → [root-of-the-server]__0c81jqz._.js} +3 -3
  214. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dh0alq._.js +3 -0
  215. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e79g0v._.js +3 -0
  216. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0t_zq~v._.js → [root-of-the-server]__0fy8mj6._.js} +1 -1
  217. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0g2wrd2._.js → [root-of-the-server]__0gsk~9d._.js} +1 -1
  218. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h4ltpn._.js +5 -0
  219. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hx2p17._.js +3 -0
  220. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0iaw1ms._.js +3 -0
  221. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ie8~g5._.js +3 -0
  222. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0~s8otw._.js → [root-of-the-server]__0j1w7ro._.js} +1 -1
  223. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0i0k_zi._.js → [root-of-the-server]__0jxfeb6._.js} +1 -1
  224. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jymb~t._.js +1 -1
  225. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l0~scn._.js +1 -1
  226. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0tb.1li._.js → [root-of-the-server]__0mi.v4q._.js} +3 -3
  227. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vi-5xg._.js → [root-of-the-server]__0nell0t._.js} +3 -3
  228. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0odoa97._.js +30 -0
  229. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0o9jkew._.js → [root-of-the-server]__0q8o5us._.js} +2 -2
  230. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dv.-zu._.js → [root-of-the-server]__0qjjy1r._.js} +1 -1
  231. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rg73f.._.js +3 -0
  232. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s~4y3y._.js +1 -1
  233. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s~ak20._.js +3 -0
  234. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t3q30a._.js +3 -0
  235. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0tpho3f._.js +3 -0
  236. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__08etd~v._.js → [root-of-the-server]__0tusyj0._.js} +1 -1
  237. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__06s-_gx._.js → [root-of-the-server]__0x6eyvj._.js} +1 -1
  238. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xftcya._.js +3 -0
  239. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xiiocg._.js +30 -0
  240. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xnuz05._.js +5 -0
  241. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0znl9us._.js +3 -0
  242. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zsnp~d._.js +5 -0
  243. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~fdua7._.js +3 -0
  244. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11fp64w._.js +1 -1
  245. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1290yo~._.js +3 -0
  246. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12s3kky._.js +3 -0
  247. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ydiu_y._.js → [root-of-the-server]__136sh9u._.js} +1 -1
  248. package/.next/standalone/.next/server/chunks/ssr/{_0dye20y._.js → _0-wp_zu._.js} +2 -2
  249. package/.next/standalone/.next/server/chunks/ssr/_0-~9em3._.js +1 -1
  250. package/.next/standalone/.next/server/chunks/ssr/_0.-.0zk._.js +3 -0
  251. package/.next/standalone/.next/server/chunks/ssr/_0..h3hk._.js +1 -1
  252. package/.next/standalone/.next/server/chunks/ssr/{_09rq08e._.js → _0111pr2._.js} +1 -1
  253. package/.next/standalone/.next/server/chunks/ssr/{_0~6pqk.._.js → _029yl-g._.js} +1 -1
  254. package/.next/standalone/.next/server/chunks/ssr/_02mcoex._.js +3 -0
  255. package/.next/standalone/.next/server/chunks/ssr/_02p-udo._.js +3 -0
  256. package/.next/standalone/.next/server/chunks/ssr/_02t7f2_._.js +3 -0
  257. package/.next/standalone/.next/server/chunks/ssr/_04brhyt._.js +3 -0
  258. package/.next/standalone/.next/server/chunks/ssr/_08b3kyv._.js +43 -0
  259. package/.next/standalone/.next/server/chunks/ssr/_0a___34._.js +3 -0
  260. package/.next/standalone/.next/server/chunks/ssr/{_0ljrvyt._.js → _0b4v~ls._.js} +2 -2
  261. package/.next/standalone/.next/server/chunks/ssr/_0bdyusg._.js +6 -0
  262. package/.next/standalone/.next/server/chunks/ssr/_0c8-9m9._.js +3 -0
  263. package/.next/standalone/.next/server/chunks/ssr/{_0xnn~jq._.js → _0gcox_6._.js} +1 -1
  264. package/.next/standalone/.next/server/chunks/ssr/{_01fdzzv._.js → _0gte_c4._.js} +1 -1
  265. package/.next/standalone/.next/server/chunks/ssr/_0hyn4md._.js +3 -0
  266. package/.next/standalone/.next/server/chunks/ssr/{_13_b8hh._.js → _0lqjtwo._.js} +1 -1
  267. package/.next/standalone/.next/server/chunks/ssr/_0noar.v._.js +3 -0
  268. package/.next/standalone/.next/server/chunks/ssr/_0os43sb._.js +1 -1
  269. package/.next/standalone/.next/server/chunks/ssr/_0rilhs1._.js +3 -0
  270. package/.next/standalone/.next/server/chunks/ssr/{_078cdw~._.js → _0sbkase._.js} +3 -3
  271. package/.next/standalone/.next/server/chunks/ssr/{_08bq4g8._.js → _0t-0.1o._.js} +2 -2
  272. package/.next/standalone/.next/server/chunks/ssr/_0wbcp88._.js +1 -1
  273. package/.next/standalone/.next/server/chunks/ssr/_0w~~xn0._.js +3 -0
  274. package/.next/standalone/.next/server/chunks/ssr/{_12la163._.js → _0xexuoi._.js} +2 -2
  275. package/.next/standalone/.next/server/chunks/ssr/_0xu906p._.js +4 -0
  276. package/.next/standalone/.next/server/chunks/ssr/_0z-z415._.js +3 -0
  277. package/.next/standalone/.next/server/chunks/ssr/_0z5~opf._.js +3 -0
  278. package/.next/standalone/.next/server/chunks/ssr/_0zx1ubq._.js +3 -0
  279. package/.next/standalone/.next/server/chunks/ssr/_0~2k74h._.js +43 -0
  280. package/.next/standalone/.next/server/chunks/ssr/_0~rpgs_._.js +3 -0
  281. package/.next/standalone/.next/server/chunks/ssr/_10a_vqn._.js +3 -0
  282. package/.next/standalone/.next/server/chunks/ssr/{_0h0b46r._.js → _10or.ne._.js} +1 -1
  283. package/.next/standalone/.next/server/chunks/ssr/{_09z-55_._.js → _10q2mbe._.js} +2 -2
  284. package/.next/standalone/.next/server/chunks/ssr/_11.knhq._.js +3 -0
  285. package/.next/standalone/.next/server/chunks/ssr/{_0ytcm0j._.js → _124j7aj._.js} +1 -1
  286. package/.next/standalone/.next/server/chunks/ssr/_13yv8at._.js +3 -0
  287. package/.next/standalone/.next/server/chunks/ssr/src_11j0qlp._.js +3 -0
  288. package/.next/standalone/.next/server/chunks/ssr/src_actions_07_wts6._.js +47 -0
  289. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  290. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  291. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  292. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  293. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  294. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  295. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  296. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_notes_notes-page-client_tsx_10gyo3v._.js +1 -1
  297. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  298. package/.next/standalone/.next/server/chunks/ssr/src_components_0rowjw~._.js +2 -2
  299. package/.next/standalone/.next/server/chunks/ssr/{_0bndp1~._.js → src_components_ui_popover_tsx_0a78wqo._.js} +2 -2
  300. package/.next/standalone/.next/server/chunks/ssr/{src_lib_03xtona._.js → src_lib_0-3zx.v._.js} +2 -2
  301. package/.next/standalone/.next/server/chunks/ssr/src_lib_00ial55._.js +3 -0
  302. package/.next/standalone/.next/server/chunks/ssr/src_lib_01-0ix1._.js +3 -0
  303. package/.next/standalone/.next/server/chunks/ssr/src_lib_01d~ml9._.js +3 -0
  304. package/.next/standalone/.next/server/chunks/ssr/{src_lib_04y-65j._.js → src_lib_0278czx._.js} +1 -1
  305. package/.next/standalone/.next/server/chunks/ssr/src_lib_07o.0r6._.js +3 -0
  306. package/.next/standalone/.next/server/chunks/ssr/src_lib_09jpiip._.js +3 -0
  307. package/.next/standalone/.next/server/chunks/ssr/src_lib_0bmg7ix._.js +3 -0
  308. package/.next/standalone/.next/server/chunks/ssr/src_lib_0cb~2g1._.js +3 -0
  309. package/.next/standalone/.next/server/chunks/ssr/src_lib_0fdsvpu._.js +3 -0
  310. package/.next/standalone/.next/server/chunks/ssr/src_lib_0fyrfen._.js +3 -0
  311. package/.next/standalone/.next/server/chunks/ssr/{src_lib_0-x.wbd._.js → src_lib_0gqe-g3._.js} +1 -1
  312. package/.next/standalone/.next/server/chunks/ssr/src_lib_0ixnmd0._.js +3 -0
  313. package/.next/standalone/.next/server/chunks/ssr/src_lib_0lpxsj~._.js +3 -0
  314. package/.next/standalone/.next/server/chunks/ssr/src_lib_0pgz5n6._.js +3 -0
  315. package/.next/standalone/.next/server/chunks/ssr/{src_lib_00p-ir2._.js → src_lib_0tq69ek._.js} +1 -1
  316. package/.next/standalone/.next/server/chunks/ssr/src_lib_0y5zzg-._.js +3 -0
  317. package/.next/standalone/.next/server/chunks/ssr/src_lib_pty_11~ojr2._.js +3 -0
  318. package/.next/standalone/.next/server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js +3 -0
  319. package/.next/standalone/.next/server/chunks/ssr/{_0ng0eku._.js → src_lib_schemas_ts_0ph~1ak._.js} +3 -3
  320. package/.next/standalone/.next/server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js +1 -1
  321. package/.next/standalone/.next/server/functions-config-manifest.json +1 -0
  322. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  323. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  324. package/.next/standalone/.next/server/next-font-manifest.json +4 -0
  325. package/.next/standalone/.next/server/pages/500.html +1 -1
  326. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  327. package/.next/standalone/.next/server/server-reference-manifest.json +2308 -1642
  328. package/.next/standalone/.next/static/chunks/0.2y9uc38xso-.js +1 -0
  329. package/.next/standalone/.next/static/chunks/00agq5_c-.llc.js +1 -0
  330. package/.next/standalone/.next/static/chunks/015i97g3voot2.js +2 -0
  331. package/.next/standalone/.next/static/chunks/01wvj~s3skc-5.js +1 -0
  332. package/.next/standalone/.next/static/chunks/{0c4-6qdhi645s.js → 031br6.h-zycv.js} +1 -1
  333. package/.next/standalone/.next/static/chunks/04.2m8l~ws19v.js +1 -0
  334. package/.next/standalone/.next/static/chunks/054ztat09k8d8.js +1 -0
  335. package/.next/standalone/.next/static/chunks/07c4b1kp_85qg.js +1 -0
  336. package/.next/standalone/.next/static/chunks/07f592yv~pptf.js +1 -0
  337. package/.next/standalone/.next/static/chunks/{0bvhkgitn__gl.js → 08j4ettv1zbmn.js} +1 -1
  338. package/.next/standalone/.next/static/chunks/08kc0~d-bpqxd.js +1 -0
  339. package/.next/standalone/.next/static/chunks/{0c.t.evwah_m4.js → 08s_oyki61yjf.js} +1 -1
  340. package/.next/standalone/.next/static/chunks/09bc_~h466~tj.js +1 -0
  341. package/.next/standalone/.next/static/chunks/0_hj_1l73v-on.js +1 -0
  342. package/.next/standalone/.next/static/chunks/0a54zbhpg7-ql.js +1 -0
  343. package/.next/standalone/.next/static/chunks/0c2po53wqe-op.js +1 -0
  344. package/.next/standalone/.next/static/chunks/0clhvl~13pwv2.js +1 -0
  345. package/.next/standalone/.next/static/chunks/0fi1kdxrc9m~d.js +1 -0
  346. package/.next/standalone/.next/static/chunks/0ix28r65.7o_r.js +12 -0
  347. package/.next/standalone/.next/static/chunks/0j56_.0_wup.m.js +1 -0
  348. package/.next/standalone/.next/static/chunks/0lokkque~1fox.js +1 -0
  349. package/.next/standalone/.next/static/chunks/0m5k~sgt78d8a.js +1 -0
  350. package/.next/standalone/.next/static/chunks/0mzzaly9-cwhd.js +5 -0
  351. package/.next/standalone/.next/static/chunks/0ov_akpudbv96.js +5 -0
  352. package/.next/standalone/.next/static/chunks/0pg~fc3o64-u0.js +1 -0
  353. package/.next/standalone/.next/static/chunks/0pvc93qomwhkq.js +1 -0
  354. package/.next/standalone/.next/static/chunks/0seo-lerjdkbn.js +1 -0
  355. package/.next/standalone/.next/static/chunks/0smoiulyzysrc.js +2 -0
  356. package/.next/standalone/.next/static/chunks/0ufatfbq87c84.js +1 -0
  357. package/.next/standalone/.next/static/chunks/{09bezwcb__18t.js → 0ujznvfinjpzn.js} +1 -1
  358. package/.next/standalone/.next/static/chunks/{02xqrfqu.s8-i.js → 0ux~8zee88x-j.js} +1 -1
  359. package/.next/standalone/.next/static/chunks/0vy01_a6xhhrr.js +1 -0
  360. package/.next/standalone/.next/static/chunks/0wl8cpmvyhv0l.js +1 -0
  361. package/.next/standalone/.next/static/chunks/0xd_tk4asn0qj.js +1 -0
  362. package/.next/standalone/.next/static/chunks/0~l470bpaoz9f.js +1 -0
  363. package/.next/standalone/.next/static/chunks/118j.0w2pbdea.js +1 -0
  364. package/.next/standalone/.next/static/chunks/11yhe31en~dvt.js +1 -0
  365. package/.next/standalone/.next/static/chunks/13yfli6~6o4z~.js +1 -0
  366. package/.next/standalone/.next/static/chunks/14fch6~swodjf.css +1 -0
  367. package/.next/standalone/.next/static/chunks/15rlbf5rw1dd..js +1 -0
  368. package/.next/standalone/package.json +1 -2
  369. package/dist/mcp-server.cjs +1205 -4330
  370. package/package.json +1 -2
  371. package/prisma/schema.prisma +46 -5
  372. package/scripts/migrations/0006-project-knowledge.ts +58 -0
  373. package/scripts/migrations/0007-product-group.ts +67 -0
  374. package/skills/tower/SKILL.md +22 -92
  375. package/skills/tower/references/task-source.md +80 -0
  376. package/.next/standalone/.next/server/chunks/[externals]__0x_wqa7._.js +0 -3
  377. package/.next/standalone/.next/server/chunks/[root-of-the-server]__034jopu._.js +0 -4
  378. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08-s.nv._.js +0 -4
  379. package/.next/standalone/.next/server/chunks/[root-of-the-server]__098.3z2._.js +0 -3
  380. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ehx6q.._.js +0 -3
  381. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0iggiij._.js +0 -3
  382. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pmamzv._.js +0 -3
  383. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pzyjqf._.js +0 -20
  384. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tplo5s._.js +0 -3
  385. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tpzojh._.js +0 -3
  386. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xasom7._.js +0 -4
  387. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xy1t4x._.js +0 -4
  388. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y~y6sh._.js +0 -3
  389. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10jnn26._.js +0 -3
  390. package/.next/standalone/.next/server/chunks/[root-of-the-server]__116v_bx._.js +0 -4
  391. package/.next/standalone/.next/server/chunks/[root-of-the-server]__119rbly._.js +0 -3
  392. package/.next/standalone/.next/server/chunks/_0qk_esg._.js +0 -4
  393. package/.next/standalone/.next/server/chunks/_0t31z6q._.js +0 -5
  394. package/.next/standalone/.next/server/chunks/src_0aqjfcv._.js +0 -3
  395. package/.next/standalone/.next/server/chunks/src_lib_0nw5n~t._.js +0 -3
  396. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.q~~2p._.js +0 -3
  397. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01zrinc._.js +0 -3
  398. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03x8axh._.js +0 -47
  399. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04wbr9x._.js +0 -3
  400. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05xg05r._.js +0 -3
  401. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06t.cx~._.js +0 -47
  402. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0__klx0._.js +0 -47
  403. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ccy_gg._.js +0 -3
  404. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cjmeyl._.js +0 -3
  405. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dx9sp-._.js +0 -47
  406. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f57j8r._.js +0 -47
  407. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0j1dx6p._.js +0 -47
  408. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kn~asi._.js +0 -47
  409. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m.hayd._.js +0 -47
  410. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0mpjat-._.js +0 -3
  411. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0sg4fde._.js +0 -4
  412. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w24qox._.js +0 -47
  413. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wq~4aj._.js +0 -30
  414. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0yihqy6._.js +0 -3
  415. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z7je5_._.js +0 -5
  416. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zouyfp._.js +0 -3
  417. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1184s~q._.js +0 -3
  418. package/.next/standalone/.next/server/chunks/ssr/_0.iq8t8._.js +0 -4
  419. package/.next/standalone/.next/server/chunks/ssr/_00.myc6._.js +0 -3
  420. package/.next/standalone/.next/server/chunks/ssr/_00eymu8._.js +0 -3
  421. package/.next/standalone/.next/server/chunks/ssr/_03-we0p._.js +0 -47
  422. package/.next/standalone/.next/server/chunks/ssr/_04szgc6._.js +0 -3
  423. package/.next/standalone/.next/server/chunks/ssr/_0kd_tda._.js +0 -47
  424. package/.next/standalone/.next/server/chunks/ssr/_0ktexki._.js +0 -47
  425. package/.next/standalone/.next/server/chunks/ssr/_0lo1nei._.js +0 -6
  426. package/.next/standalone/.next/server/chunks/ssr/_0mdd702._.js +0 -3
  427. package/.next/standalone/.next/server/chunks/ssr/_0n0q6~9._.js +0 -3
  428. package/.next/standalone/.next/server/chunks/ssr/_0pab_al._.js +0 -3
  429. package/.next/standalone/.next/server/chunks/ssr/_0pg6-.y._.js +0 -3
  430. package/.next/standalone/.next/server/chunks/ssr/_0pvp63a._.js +0 -47
  431. package/.next/standalone/.next/server/chunks/ssr/_0qi4x-5._.js +0 -3
  432. package/.next/standalone/.next/server/chunks/ssr/_0qnobd-._.js +0 -43
  433. package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +0 -3
  434. package/.next/standalone/.next/server/chunks/ssr/_0ts~td3._.js +0 -3
  435. package/.next/standalone/.next/server/chunks/ssr/_0y0_4zs._.js +0 -3
  436. package/.next/standalone/.next/server/chunks/ssr/_0yva1-.._.js +0 -3
  437. package/.next/standalone/.next/server/chunks/ssr/_0yz5dmq._.js +0 -47
  438. package/.next/standalone/.next/server/chunks/ssr/_11w13--._.js +0 -3
  439. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_09eeb85._.js +0 -3
  440. package/.next/standalone/.next/server/chunks/ssr/src_0djxlqx._.js +0 -3
  441. package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +0 -3
  442. package/.next/standalone/.next/server/chunks/ssr/src_0vv366l._.js +0 -3
  443. package/.next/standalone/.next/server/chunks/ssr/src_lib_03x1i~1._.js +0 -5
  444. package/.next/standalone/.next/server/chunks/ssr/src_lib_08gthaz._.js +0 -3
  445. package/.next/standalone/.next/server/chunks/ssr/src_lib_090~6pq._.js +0 -3
  446. package/.next/standalone/.next/server/chunks/ssr/src_lib_0k8dkbn._.js +0 -3
  447. package/.next/standalone/.next/server/chunks/ssr/src_lib_0knbpxk._.js +0 -3
  448. package/.next/standalone/.next/server/chunks/ssr/src_lib_0p_iehl._.js +0 -3
  449. package/.next/standalone/.next/server/chunks/ssr/src_lib_0qve1ri._.js +0 -3
  450. package/.next/standalone/.next/server/chunks/ssr/src_lib_0s35u~4._.js +0 -3
  451. package/.next/standalone/.next/server/chunks/ssr/src_lib_0x2ui80._.js +0 -3
  452. package/.next/standalone/.next/server/chunks/ssr/src_lib_0ypc5_d._.js +0 -3
  453. package/.next/standalone/.next/server/chunks/ssr/src_lib_10jh2mz._.js +0 -3
  454. package/.next/standalone/.next/static/chunks/0-nppzqp-r.9c.js +0 -1
  455. package/.next/standalone/.next/static/chunks/0-te2tg6~a23u.js +0 -1
  456. package/.next/standalone/.next/static/chunks/0.64.6c1mh7d2.js +0 -1
  457. package/.next/standalone/.next/static/chunks/0.8n1ce9lggg4.js +0 -1
  458. package/.next/standalone/.next/static/chunks/0.nsmn6shzidu.js +0 -2
  459. package/.next/standalone/.next/static/chunks/0.zgqz~m3sjej.js +0 -1
  460. package/.next/standalone/.next/static/chunks/00.eotegra08r.js +0 -1
  461. package/.next/standalone/.next/static/chunks/01j9m895w64zn.js +0 -1
  462. package/.next/standalone/.next/static/chunks/03y272e6e9o8i.js +0 -1
  463. package/.next/standalone/.next/static/chunks/08eyd7sq064r0.js +0 -1
  464. package/.next/standalone/.next/static/chunks/09b33znj4m__c.js +0 -1
  465. package/.next/standalone/.next/static/chunks/0d0zm8viq3ol4.js +0 -12
  466. package/.next/standalone/.next/static/chunks/0dktl5t_dtxu..js +0 -1
  467. package/.next/standalone/.next/static/chunks/0e5~nzt657k92.js +0 -1
  468. package/.next/standalone/.next/static/chunks/0erwxvpb9w29_.js +0 -1
  469. package/.next/standalone/.next/static/chunks/0gf~0e3xpa0fj.js +0 -5
  470. package/.next/standalone/.next/static/chunks/0gy79dfi~lnig.js +0 -1
  471. package/.next/standalone/.next/static/chunks/0gz3xwb5_8xwv.js +0 -1
  472. package/.next/standalone/.next/static/chunks/0i75~pu.bp20..js +0 -1
  473. package/.next/standalone/.next/static/chunks/0jn_w5b9r~beu.js +0 -1
  474. package/.next/standalone/.next/static/chunks/0l59z2mf1ouxu.js +0 -1
  475. package/.next/standalone/.next/static/chunks/0m4xd-ie7j.hx.js +0 -1
  476. package/.next/standalone/.next/static/chunks/0mx9ebe6we4z0.js +0 -1
  477. package/.next/standalone/.next/static/chunks/0nsggimu5je3g.js +0 -1
  478. package/.next/standalone/.next/static/chunks/0nw8nx8kafy79.js +0 -1
  479. package/.next/standalone/.next/static/chunks/0pzjryav9pm7p.js +0 -1
  480. package/.next/standalone/.next/static/chunks/0q-rl50zskr35.js +0 -1
  481. package/.next/standalone/.next/static/chunks/0qqy2x-fsmmmx.js +0 -1
  482. package/.next/standalone/.next/static/chunks/0t59wpux0g1~l.js +0 -1
  483. package/.next/standalone/.next/static/chunks/0uezq8wiwkq8d.js +0 -1
  484. package/.next/standalone/.next/static/chunks/0vrc~7m1_cuvl.js +0 -1
  485. package/.next/standalone/.next/static/chunks/0xbh24-hxrt~m.css +0 -1
  486. package/.next/standalone/.next/static/chunks/0xkkmruo8p.l_.js +0 -1
  487. package/.next/standalone/.next/static/chunks/0xx0pe_j2kmr9.js +0 -2
  488. package/.next/standalone/.next/static/chunks/0zqjqiqmorenw.js +0 -5
  489. package/.next/standalone/.next/static/chunks/136l78utn~v08.js +0 -1
  490. package/.next/standalone/.next/static/chunks/171x9kw9wcyk4.js +0 -1
  491. package/.next/standalone/.next/static/chunks/17m4o~gdsvuo3.js +0 -1
  492. package/next.config.ts +0 -18
  493. /package/.next/standalone/.next/static/{f1860bJqnbYj-1WLMj7F- → dFewkdixeBoRBY6Fvw11J}/_buildManifest.js +0 -0
  494. /package/.next/standalone/.next/static/{f1860bJqnbYj-1WLMj7F- → dFewkdixeBoRBY6Fvw11J}/_clientMiddlewareManifest.js +0 -0
  495. /package/.next/standalone/.next/static/{f1860bJqnbYj-1WLMj7F- → dFewkdixeBoRBY6Fvw11J}/_ssgManifest.js +0 -0
@@ -1,47 +0,0 @@
1
- module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40fbb3e458fb2f6232bf53424e19aeff36368f1644",null),(0,b.registerServerReference)(g,"40f49f4fcc711c1a5ef88b7b38ff6fcad0830ad879",null),(0,b.registerServerReference)(h,"402c06d432e3a1c443c8469f9c2d277213c901c111",null),(0,b.registerServerReference)(i,"60ad65ff822eb47015ec099c8d6c66f610b31a4068",null),(0,b.registerServerReference)(j,"4003546e3342df631ed3c27de7350c941567aec81d",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},287068,a=>{"use strict";var b=a.i(761469);function c(a,b){return{id:a.note_id,type:"note",title:a.title,subtitle:`${a.workspace_name} / ${a.project_name}`,navigateTo:`/workspaces/${a.workspaceId}/notes?projectId=${a.projectId}`,snippet:a.content?a.content.slice(0,b):void 0}}async function d(a,e="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===e){let[a,b,c,e,h]=await Promise.allSettled([d(g,"task",f),d(g,"project",f),d(g,"repository",f),d(g,"note",f),d(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(e),...j(h)]}if("task"===e)return(await b.db.task.findMany({where:{OR:[{title:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{updatedAt:"desc"}})).map(a=>{let b="DONE"===a.status||"CANCELLED"===a.status,c=a.project.workspaceId;return{id:a.id,type:"task",title:a.title,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:b?`/workspaces/${c}/archive?projectId=${a.projectId}`:`/workspaces/${c}?projectId=${a.projectId}`}});if("project"===e)return(await b.db.project.findMany({where:{OR:[{name:{contains:g}},{alias:{contains:g}},{description:{contains:g}}]},include:{workspace:!0},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"project",title:a.alias?`${a.name} (${a.alias})`:a.name,subtitle:a.workspace.name,navigateTo:`/workspaces/${a.workspaceId}?projectId=${a.id}`}));if("repository"===e)return(await b.db.repository.findMany({where:{OR:[{name:{contains:g}},{path:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h})).map(a=>({id:a.id,type:"repository",title:a.name,subtitle:`${a.project.workspace.name} / ${a.project.name} \xb7 ${a.branch}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("note"===e){if(g.length<3)return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
2
- n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
3
- FROM "ProjectNote" n
4
- JOIN "Project" p ON p.id = n."projectId"
5
- JOIN "Workspace" w ON w.id = p."workspaceId"
6
- WHERE n.title LIKE ? OR n.content LIKE ?
7
- LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j));try{return(await b.db.$queryRawUnsafe(`SELECT f.note_id, f.title, f.content,
8
- n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
9
- FROM notes_fts f
10
- JOIN "ProjectNote" n ON n.id = f.note_id
11
- JOIN "Project" p ON p.id = n."projectId"
12
- JOIN "Workspace" w ON w.id = p."workspaceId"
13
- WHERE f.notes_fts MATCH ?
14
- ORDER BY rank
15
- LIMIT ?`,g,h)).map(a=>c(a,j))}catch{return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
16
- n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
17
- FROM "ProjectNote" n
18
- JOIN "Project" p ON p.id = n."projectId"
19
- JOIN "Workspace" w ON w.id = p."workspaceId"
20
- WHERE n.title LIKE ? OR n.content LIKE ?
21
- LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"60ecfea1ec1b61566df8bd7edc9723fb9ab08e75b6",null),a.s(["globalSearch",0,i]),c()}catch(a){c(a)}},!1),101844,a=>{"use strict";var b=a.i(815429),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(761469),g=a.i(188139),h=a.i(630048);async function i(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let g=await f.db.project.findUnique({where:{id:b}});if(!g||!g.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let h=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:i}=await a.A(98813);for(let a of h)if(void 0!==i(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let j=e.default.join(g.localPath,".worktrees");if((0,d.existsSync)(j))try{if((await (0,c.readdir)(j)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function j(b,h){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!h||"string"!=typeof h||!e.default.isAbsolute(h))return{success:!1,error:"目标路径必须是非空的绝对路径"};let i=await f.db.project.findUnique({where:{id:b}});if(!i||!i.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let j=i.localPath;if(h===j)return{success:!1,error:"源路径和目标路径相同"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let k=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:l}=await a.A(98813);for(let a of k)if(void 0!==l(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=e.default.join(j,".worktrees");if((0,d.existsSync)(m))try{if((await (0,c.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,d.existsSync)(h))try{if((await (0,c.readdir)(h)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=e.default.dirname(h);try{await (0,c.mkdir)(n,{recursive:!0})}catch(a){if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限创建父目录 ${n} — 请检查 Git 路径映射规则的模板是否漏了 "~/" 前缀`};if("EROFS"===a.code)return{success:!1,error:`父目录所在文件系统只读:${n}`};return{success:!1,error:`创建父目录失败:${a.message||a.code||"未知错误"}`}}try{await (0,c.rename)(j,h)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${h}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await f.db.project.update({where:{id:b},data:{localPath:h}}),(0,g.revalidatePath)("/workspaces"),{success:!0}}let k=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
22
-
23
- 读取 package.json、README.md 等关键文件,然后概括:
24
-
25
- **技术栈:** 一句话列出主要语言、框架、关键库
26
- **定位:** 一句话说明项目是什么
27
- **核心模块:** 2-3 个关键模块,每个一句话
28
-
29
- 要求:
30
- - 总字数不超过 500 字
31
- - 用简洁的 Markdown(加粗标签 + 短句),不要用 ## 大标题和表格
32
- - 不要罗列每个文件/目录,只说关键信息
33
- - 中文输出`,l=`Analyze this project directory and generate a brief Markdown project description.
34
-
35
- Read package.json, README.md and other key files, then summarize:
36
-
37
- **Tech Stack:** One sentence listing primary languages, frameworks, and key libraries
38
- **Overview:** One sentence describing what this project is
39
- **Core Modules:** 2-3 key modules, one sentence each
40
-
41
- Requirements:
42
- - Keep it under 1000 words
43
- - Use concise Markdown (bold labels + short sentences), no ## headings or tables
44
- - Don't list every file/directory, only key information
45
- - Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"404f136c41eadb3e97a68b430fbc2fa599ad9d4d57",null),(0,b.registerServerReference)(j,"605f4443fc3374e185454b9d921f0c30c20bf69e58",null),(0,b.registerServerReference)(m,"6001916a516d08d39943c76209c1b6a1d316f8bab3",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},846195,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),861951,a=>a.a(async(b,c)=>{try{var d=a.i(846195),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=b([d,g,h]);[d,g,h]=l.then?(await l)():l,a.s(["0018fbdd66aba52ffae0eea94c547cdac80082d648",()=>k.getOnboardingStatus,"0046fe8e0c4ef66fd5bdba95b505cd928d8497bac6",()=>j.listAllExtensionStatus,"00bbe981391f69ab27be7d2c2adf20dcedb8f4caea",()=>h.getActualWsPort,"4026b5934eb17f08d1c056f40a4fafe52074d352de",()=>j.uninstallExtension,"402b9e604ebfd42af76626d470e58c634b243bf544",()=>e.deleteWorkspace,"402c06d432e3a1c443c8469f9c2d277213c901c111",()=>f.deleteLabel,"403ea5ae0f3d1e97155fd492ca9a022b8bbe330b90",()=>e.createWorkspace,"4043130a1d362ee33ae88de0ed751aa1fbfa0fb132",()=>k.setOnboardingProgress,"40477832c201e86d76b65ee452b2f266bd01748a15",()=>j.checkExtension,"404ef38e3210ade662b09756d1418c29f2fab30709",()=>h.resolveGitLocalPath,"404f136c41eadb3e97a68b430fbc2fa599ad9d4d57",()=>i.checkMigrationSafety,"405752d645249795637c0b214cbb0e6091f1af27f8",()=>e.createProject,"406446cc2b798b6d5a8041b1a353ccdb1582682094",()=>h.resolveGitLocalPathWithSource,"406da6d9dca36b89032a75437431a27da281273a09",()=>e.reorderWorkspaces,"4090ac8fc97f1a8be256882a5325c5b103d71a4070",()=>j.installExtension,"40a8d9987d8b71ec56eef76f4a4ea0c28fdcd8edc0",()=>h.getConfigValues,"40a9ab396e79818e2ea0459b4f4c315855196db134",()=>k.dispatchTaskCompletionEvent,"40f49f4fcc711c1a5ef88b7b38ff6fcad0830ad879",()=>f.createLabel,"40fbb3e458fb2f6232bf53424e19aeff36368f1644",()=>f.getLabelsForWorkspace,"6001916a516d08d39943c76209c1b6a1d316f8bab3",()=>i.analyzeProjectDirectory,"600c0360fc4ce13a01e338268cc272dde1b16ec989",()=>h.setConfigValue,"6022dc05b858325d54679979f48ec6986b1257019b",()=>h.getConfigValue,"602e0b75d87a1db34c3ffadaf61190e40e67bb0a42",()=>k.completeOnboarding,"603480184e60c27214a54381387436ff640e52b1b6",()=>k.setOnboardingExtensions,"60376b404b9ee9ec39227faf56b6e478179be622ad",()=>e.updateWorkspace,"605f4443fc3374e185454b9d921f0c30c20bf69e58",()=>i.migrateProjectPath,"60ecfea1ec1b61566df8bd7edc9723fb9ab08e75b6",()=>g.globalSearch]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0x2ui80._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js"].map(b=>a.l(b))).then(()=>b(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0g2wrd2._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
46
-
47
- //# sourceMappingURL=_0yz5dmq._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[521007,a=>{"use strict";a.s(["BOARD_COLUMNS",0,[{id:"TODO",label:"To Do",color:"bg-slate-400"},{id:"IN_PROGRESS",label:"In Progress",color:"bg-amber-400"},{id:"IN_REVIEW",label:"In Review",color:"bg-sky-400"},{id:"DONE",label:"Done",color:"bg-emerald-400"},{id:"CANCELLED",label:"Cancelled",color:"bg-rose-400"}],"NOTE_CATEGORIES_PRESET",0,["账号","环境","需求","备忘","任务笔记","经验洞见"],"PRIORITY_CONFIG",0,{LOW:{label:"低",color:"bg-slate-500/20 text-slate-300 border border-slate-500/30"},MEDIUM:{label:"中",color:"bg-amber-500/20 text-amber-300 border border-amber-500/30"},HIGH:{label:"高",color:"bg-orange-500/20 text-orange-300 border border-orange-500/30"},CRITICAL:{label:"紧急",color:"bg-rose-500/20 text-rose-300 border border-rose-500/30"}},"TOWER_LABEL_NAME",0,"Tower"])},113047,867083,679799,a=>{"use strict";let b=(0,a.i(711796).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(["ChevronsUpDown",0,b],113047);var c=a.i(780410);let d=(0,c.createServerReference)("40d00f0fe1074434c19eee398f82bf9b97dee0b9d8",c.callServer,void 0,c.findSourceMapURL,"getProjectBranches");a.s(["getProjectBranches",0,d],867083);let e=(0,c.createServerReference)("40934710fa40bda463653e740d2d4021d345c07996",c.callServer,void 0,c.findSourceMapURL,"fetchRemoteBranches");a.s(["fetchRemoteBranches",0,e],679799)},29398,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40cdcb51244d794d89deb8627e6815567f06b3794f",b.callServer,void 0,b.findSourceMapURL,"createTask");a.s(["createTask",0,c])},982640,938515,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4067e5997b2f651c5a7301593b8f02b9394552aba6",b.callServer,void 0,b.findSourceMapURL,"getTaskNotes");a.s(["getTaskNotes",0,c],982640);let d=(0,b.createServerReference)("407a8d30b67334b469af1d4a947b6ed37990f23546",b.callServer,void 0,b.findSourceMapURL,"getTaskAssets");a.s(["getTaskAssets",0,d],938515)},445798,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(814574),e=a.i(699570),f=a.i(866718),g=a.i(429246),h=a.i(412783),i=a.i(577565),j=a.i(668116),k=a.i(113047),l=a.i(580701),m=a.i(599209),n=a.i(419622),o=a.i(951192),p=a.i(867083),q=a.i(679799),r=a.i(780410);let s=(0,r.createServerReference)("4024491f212c5c0ec88a25ad5b286fc74002291cdf",r.callServer,void 0,r.findSourceMapURL,"getCurrentBranch");var t=a.i(405540);a.s(["CreateTaskDialog",0,function({open:a,onOpenChange:r,onSubmit:u,onUpdate:v,defaultStatus:w="TODO",editTask:x,editTaskLabelIds:y,prefillFromTask:z,labels:A,projectType:B,projectLocalPath:C,versions:D,defaultVersionId:E}){let F,[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)("MEDIUM"),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)([]),[Q,R]=(0,c.useState)([]),[S,T]=(0,c.useState)(!1),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)(!0),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)(null),{t:ac}=(0,o.useI18n)();(0,c.useEffect)(()=>{if(!a||x)return;let b=!1;return(0,t.getConfigValues)(["task.defaultUseWorktree","task.defaultAutoStart"]).then(a=>{if(b)return;let c=a["task.defaultUseWorktree"],d=a["task.defaultAutoStart"];"boolean"==typeof c&&Z(c),"boolean"==typeof d&&_(d)}).catch(()=>{}),()=>{b=!0}},[a,x]);let ad=!!x,ae=!!C;return(0,c.useEffect)(()=>{x?(H(x.title),J(x.description??""),L(x.priority),N(x.subPath??""),P(y??[]),ab(x.versionId??null)):(z?(H(z.title??""),J(z.description??""),L(z.priority??"MEDIUM"),N(z.subPath??""),P(z.labelIds??[])):(H(""),J(""),L("MEDIUM"),N(""),P([])),ab(E??null))},[x,y,z,E]),(0,c.useEffect)(()=>{a||x||(H(""),J(""),L("MEDIUM"),N(""),P([]),R([]),V(""),X(!1),ab(E??null))},[a,x,E]),(0,c.useEffect)(()=>{a&&ae&&!x&&(T(!0),Promise.all([(0,p.getProjectBranches)(C),s(C)]).then(([a,b])=>{R(a);let c=z?.baseBranch??null;c&&a.includes(c)?V(c):V(b&&a.includes(b)?b:a[0]??""),T(!1),(0,q.fetchRemoteBranches)(C).then(()=>{setTimeout(()=>{(0,p.getProjectBranches)(C).then(a=>{R(a),V(b=>a.includes(b)?b:a[0]??"")}).catch(()=>{})},3e3)})}).catch(()=>{R([]),V(""),T(!1)}))},[a,ae,C,x,z]),(0,b.jsx)(d.Dialog,{open:a,onOpenChange:r,disablePointerDismissal:!0,children:(0,b.jsxs)(d.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(d.DialogHeader,{children:(0,b.jsx)(d.DialogTitle,{children:ad?ac("task.edit"):ac("task.create")})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"title",children:ac("task.title")}),(0,b.jsx)(f.Input,{id:"title","data-testid":"task-title",placeholder:ac("task.titlePlaceholder"),value:G,onChange:a=>H(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault()})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"description",children:ac("task.description")}),(0,b.jsx)(g.Textarea,{id:"description",placeholder:ac("task.descPlaceholder"),rows:4,value:I,onChange:a=>J(a.target.value),className:"max-h-[200px] overflow-y-auto"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"subPath",children:ac("task.subPath")}),(0,b.jsx)(f.Input,{id:"subPath",placeholder:ac("task.subPathPlaceholder"),value:M,onChange:a=>N(a.target.value)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:ac("task.subPathHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.priority")}),(0,b.jsx)("div",{className:"flex gap-1.5",children:["LOW","MEDIUM","HIGH","CRITICAL"].map(a=>{let c={LOW:{label:ac("task.priorityLow"),style:"text-slate-300 border-slate-500/30 bg-slate-500/10"},MEDIUM:{label:ac("task.priorityMedium"),style:"text-amber-300 border-amber-500/30 bg-amber-500/10"},HIGH:{label:ac("task.priorityHigh"),style:"text-orange-300 border-orange-500/30 bg-orange-500/10"},CRITICAL:{label:ac("task.priorityCritical"),style:"text-rose-300 border-rose-500/30 bg-rose-500/10"}}[a];return(0,b.jsx)("button",{type:"button",onClick:()=>L(a),className:`rounded-lg border px-3 py-1.5 text-xs font-medium transition-all ${K===a?`${c.style} ring-1 ring-current/20`:"border-border text-muted-foreground hover:bg-accent"}`,children:c.label},a)})})]}),ae&&!ad&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.baseBranch")}),S?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:ac("task.branchLoading")}):Q.length>0?(0,b.jsxs)(m.Popover,{open:W,onOpenChange:X,children:[(0,b.jsxs)(m.PopoverTrigger,{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,b.jsx)(i.GitBranch,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"flex-1 truncate text-left text-xs",title:U||void 0,children:U||ac("task.branchNone")}),(0,b.jsx)(k.ChevronsUpDown,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,b.jsx)(m.PopoverContent,{className:"w-[min(32rem,90vw)] p-0",align:"start",children:(0,b.jsxs)(n.Command,{children:[(0,b.jsx)(n.CommandInput,{placeholder:ac("task.branchSearch")}),(0,b.jsxs)(n.CommandList,{children:[(0,b.jsx)(n.CommandEmpty,{children:ac("task.branchNone")}),(0,b.jsx)(n.CommandGroup,{children:Q.map(a=>(0,b.jsxs)(n.CommandItem,{value:a,onSelect:()=>{V(a),X(!1)},children:[(0,b.jsx)(i.GitBranch,{className:"h-3 w-3 text-muted-foreground shrink-0 mr-2"}),(0,b.jsx)("span",{className:"flex-1 truncate font-mono",title:a,children:a}),a===U&&(0,b.jsx)(j.Check,{className:"h-3 w-3 text-primary shrink-0 ml-auto"})]},a))})]})]})})]}):(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:ac("task.branchNone")}),(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,b.jsx)(h.Label,{className:"text-xs text-muted-foreground",children:ac("task.worktreeLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>Z(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${Y===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?ac("task.worktreeYes"):ac("task.worktreeNo")},String(a)))})]}),(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsx)(h.Label,{className:"text-xs text-muted-foreground",children:ac("task.autoStartLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>_(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${$===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?ac("task.autoStartYes"):ac("task.autoStartNo")},String(a)))})]})]}),A.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:A.map(a=>{let c=O.includes(a.id);return(0,b.jsx)("button",{type:"button",onClick:()=>{P(b=>c?b.filter(b=>b!==a.id):[...b,a.id])},className:`rounded-full px-2.5 py-1 text-xs font-medium transition-all ${c?"ring-1 ring-current/30":"opacity-50 hover:opacity-80"}`,style:{backgroundColor:a.color+"20",color:a.color,borderColor:c?a.color+"40":"transparent",borderWidth:"1px"},children:a.name},a.id)})})]}),(!ad||D&&D.length>0)&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("version.picker.label")}),D&&D.length>0?(0,b.jsxs)(l.Select,{value:aa??"__none__",onValueChange:a=>ab("__none__"===a?null:a),children:[(0,b.jsx)(l.SelectTrigger,{children:(0,b.jsx)("span",{className:"truncate text-sm",children:aa&&(F=D.find(a=>a.id===aa))?F.isCurrent?`${F.number} \xb7 ${F.name} \xb7 ${ac("version.currentShort")}`:`${F.number} \xb7 ${F.name}`:ac("version.picker.none")})}),(0,b.jsxs)(l.SelectContent,{children:[(0,b.jsx)(l.SelectItem,{value:"__none__",children:ac("version.picker.none")}),D.map(a=>(0,b.jsx)(l.SelectItem,{value:a.id,children:a.isCurrent?`${a.number} \xb7 ${a.name} \xb7 ${ac("version.currentShort")}`:`${a.number} \xb7 ${a.name}`},a.id))]})]}):(0,b.jsx)("p",{className:"rounded-md border border-dashed border-border px-3 py-2 text-xs text-muted-foreground",children:ac("version.picker.empty")})]})]}),(0,b.jsxs)(d.DialogFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",onClick:()=>r(!1),children:ac("common.cancel")}),(0,b.jsx)(e.Button,{onClick:()=>{G.trim()&&(ad&&v?v(x.id,{title:G,description:I,priority:K,labelIds:O,subPath:M.trim()||"",versionId:aa}):u({title:G,description:I,priority:K,status:w,labelIds:O,...ae&&Y&&U?{baseBranch:U}:{},...M.trim()?{subPath:M.trim()}:{},versionId:aa,autoStart:$}),H(""),J(""),L("MEDIUM"),N(""),P([]),R([]),V(""),Z(!0),ab(null),r(!1))},className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:ad?ac("common.save"):ac("common.create")})]})]})})}],445798)},757942,950314,a=>{"use strict";var b=a.i(90393);a.s([],757942),a.s(["Streamdown",()=>b.C],950314)},510650,a=>{"use strict";var b=a.i(728778);a.i(757942);var c=a.i(950314),d=a.i(814574),e=a.i(951192);a.s(["NotePreviewDialog",0,function({note:a,open:f,onOpenChange:g}){let{t:h}=(0,e.useI18n)();return(0,b.jsx)(d.Dialog,{open:f,onOpenChange:g,children:(0,b.jsxs)(d.DialogContent,{className:"w-[min(960px,92vw)] max-w-none sm:max-w-none h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-5 py-3 border-b border-border/50",children:a?.title}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-5 py-4",children:a&&a.content.trim()?(0,b.jsx)("div",{className:"text-sm leading-relaxed",children:(0,b.jsx)(c.Streamdown,{children:a.content})}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("taskPage.noteEmpty")})})]})})}])},532615,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(986099),e=a.i(54384),f=a.i(912868),g=a.i(10390),h=a.i(91756);let i=(0,a.i(711796).default)("chevrons-right",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]);var j=a.i(161664),k=a.i(951192);function l({children:a,onClick:c,title:d,disabled:e,...f}){return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),e||c()},title:d,disabled:e,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-white/80 hover:bg-white/15 hover:text-white disabled:opacity-30 disabled:hover:bg-transparent disabled:hover:text-white/80 transition-colors",...f,children:a})}a.s(["ImageLightbox",0,function({imageUrl:a,filename:m,open:n,onOpenChange:o,assets:p,currentIndex:q,onIndexChange:r}){let{t:s}=(0,k.useI18n)(),[t,u]=(0,c.useState)(1),[v,w]=(0,c.useState)({x:0,y:0}),[x,y]=(0,c.useState)(!1),z=(0,c.useRef)(null),[A,B]=(0,c.useState)(!1),C=!!p&&p.length>1&&"number"==typeof q&&!!r,D=C&&q>0,E=C&&q<p.length-1,F=C?p.length:0,G=F>0?Math.ceil(F/10):0,H=C?Math.floor(q/10):0,I=10*H,J=Math.min(I+10,F),K=G>1,L=C&&H>0,M=C&&H<G-1;(0,c.useEffect)(()=>{B(!0)},[]),(0,c.useEffect)(()=>{u(1),w({x:0,y:0})},[a]),(0,c.useEffect)(()=>{if(!n)return;let a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=a}},[n]);let N=(0,c.useCallback)(()=>o(!1),[o]),O=(0,c.useCallback)(()=>{C&&D&&r(q-1)},[C,D,r,q]),P=(0,c.useCallback)(()=>{C&&E&&r(q+1)},[C,E,r,q]),Q=(0,c.useCallback)(()=>{C&&L&&r((H-1)*10)},[C,L,r,H]),R=(0,c.useCallback)(()=>{C&&M&&r(Math.min((H+1)*10,F-1))},[C,M,r,H,F]),S=(0,c.useCallback)(()=>{u(a=>Math.min(8,1.25*a))},[]),T=(0,c.useCallback)(()=>{u(a=>{let b=Math.max(.1,a/1.25);return b<=1&&w({x:0,y:0}),b})},[]),U=(0,c.useCallback)(()=>{u(1),w({x:0,y:0})},[]);(0,c.useEffect)(()=>{if(!n)return;let a=a=>{switch(a.key){case"Escape":a.preventDefault(),N();break;case"ArrowLeft":C&&(a.preventDefault(),O());break;case"ArrowRight":C&&(a.preventDefault(),P());break;case"+":case"=":a.preventDefault(),S();break;case"-":case"_":a.preventDefault(),T();break;case"0":a.preventDefault(),U()}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[n,C,N,O,P,S,T,U]);let V=(0,c.useRef)(!1),W=()=>{x&&y(!1),z.current=null},X=x?"cursor-grabbing":"cursor-grab";if(!n||!A)return null;let Y=(0,b.jsxs)("div",{className:"fixed inset-0 z-[100] bg-black/70 dark:bg-black/40 backdrop-blur-md",role:"dialog","aria-modal":"true","aria-label":s("assets.lightbox.zoomFit"),children:[(0,b.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 max-w-[80vw] truncate rounded-md bg-black/40 px-3 py-1 text-xs text-white/80 backdrop-blur-sm pointer-events-none",children:[m,C?` \xb7 ${q+1} / ${p.length}`:""]}),(0,b.jsx)("div",{className:`absolute inset-0 flex items-center justify-center overflow-hidden select-none ${X}`,onClick:a=>{a.target===a.currentTarget&&N()},onWheel:a=>{a.preventDefault();let b=-a.deltaY>0?1.25:.8;u(a=>{let c=Math.min(8,Math.max(.1,a*b));return c<=1&&w({x:0,y:0}),c})},children:a&&(0,b.jsx)("img",{src:a,alt:m,onClick:a=>{a.stopPropagation(),V.current&&(V.current=!1)},onPointerDown:a=>{0===a.button&&(a.stopPropagation(),V.current=!1,a.target.setPointerCapture?.(a.pointerId),z.current={x:a.clientX,y:a.clientY,panX:v.x,panY:v.y},y(!0))},onPointerMove:a=>{if(!z.current)return;let b=a.clientX-z.current.x,c=a.clientY-z.current.y;Math.abs(b)+Math.abs(c)>5&&(V.current=!0),x&&w({x:z.current.panX+b,y:z.current.panY+c})},onPointerUp:W,onPointerLeave:W,onPointerCancel:W,className:"max-h-[88vh] max-w-[92vw] object-contain pointer-events-auto",style:{transform:`translate3d(${v.x}px, ${v.y}px, 0) scale(${t})`,transformOrigin:"center center",transition:x?"none":"transform 120ms ease-out",willChange:x?"transform":"auto"},draggable:!1})}),(0,b.jsxs)("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-10 flex flex-col items-center gap-2 max-w-[92vw]",onClick:a=>a.stopPropagation(),children:[C&&(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-black/50 px-1.5 py-1.5 backdrop-blur-md ring-1 ring-white/10 max-w-[92vw]",children:[K&&(0,b.jsx)(l,{onClick:Q,title:`${s("assets.lightbox.prev")} (-10)`,"aria-label":`${s("assets.lightbox.prev")} (-10)`,disabled:!L,children:(0,b.jsx)(h.ChevronsLeft,{className:"h-4 w-4"})}),(0,b.jsx)(l,{onClick:O,title:s("assets.lightbox.prev"),"aria-label":s("assets.lightbox.prev"),disabled:!D,children:(0,b.jsx)(f.ChevronLeft,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"flex items-center gap-1.5",children:p.slice(I,J).map((a,c)=>{let d=I+c,e=d===q;return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),e||r(d)},title:a.filename,className:`shrink-0 h-12 w-12 overflow-hidden rounded-md transition-all ${e?"ring-2 ring-white opacity-100 scale-105":"opacity-60 hover:opacity-100 ring-1 ring-white/20"}`,children:(0,b.jsx)("img",{src:a.url,alt:a.filename,className:"h-full w-full object-cover",loading:"lazy",draggable:!1})},a.url+d)})}),(0,b.jsx)(l,{onClick:P,title:s("assets.lightbox.next"),"aria-label":s("assets.lightbox.next"),disabled:!E,children:(0,b.jsx)(g.ChevronRight,{className:"h-4 w-4"})}),K&&(0,b.jsx)(l,{onClick:R,title:`${s("assets.lightbox.next")} (+10)`,"aria-label":`${s("assets.lightbox.next")} (+10)`,disabled:!M,children:(0,b.jsx)(i,{className:"h-4 w-4"})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-black/50 px-2 py-1.5 backdrop-blur-md ring-1 ring-white/10",children:[(0,b.jsxs)("span",{className:"px-2 text-xs text-white/80 tabular-nums select-none min-w-12 text-center",children:[Math.round(100*t),"%"]}),(0,b.jsx)(l,{onClick:U,title:s("assets.lightbox.reset"),"aria-label":s("assets.lightbox.reset"),disabled:1===t&&0===v.x&&0===v.y,children:(0,b.jsx)(j.RotateCcw,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"mx-1 h-5 w-px bg-white/20"}),(0,b.jsx)(l,{onClick:N,title:s("assets.lightbox.close"),"aria-label":s("assets.lightbox.close"),children:(0,b.jsx)(e.X,{className:"h-4 w-4"})})]})]})]});return(0,d.createPortal)(Y,document.body)}],532615)},894148,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(704494);a.i(757942);var e=a.i(950314),f=a.i(814574),g=a.i(951192);a.s(["TextPreviewDialog",0,function({url:a,filename:h,open:i,onOpenChange:j}){let{t:k}=(0,g.useI18n)(),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!i||!a){m(null),q(null);return}let b=!1;return o(!0),q(null),m(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||(m(a),o(!1))}).catch(a=>{b||(a instanceof Error&&"FILE_TOO_LARGE"===a.message?q(k("assets.fileTooLarge")):q(k("assets.previewError")),o(!1))}),()=>{b=!0}},[i,a,k]);let r=h.split(".").pop()?.toLowerCase();return(0,b.jsx)(f.Dialog,{open:i,onOpenChange:j,children:(0,b.jsxs)(f.DialogContent,{className:"w-[min(960px,92vw)] max-w-none sm:max-w-none h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-5 py-3 border-b border-border/50",children:h}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-5 py-4",children:(()=>{if(n)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:k("assets.loadingPreview")})]});if(p)return(0,b.jsx)("p",{className:"text-sm text-destructive",children:p});if(null===l)return null;if("md"===r)return(0,b.jsx)("div",{className:"text-sm leading-relaxed",children:(0,b.jsx)(e.Streamdown,{children:l})});if("json"===r){let a;try{a=JSON.stringify(JSON.parse(l),null,2)}catch{a=l}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:l})})()})]})})}])},161181,a=>{"use strict";let b=new Set(["png","jpg","jpeg","gif","webp","svg","bmp","ico","avif","apng"]);a.s(["isImageAsset",0,function(a,c){if(c?.startsWith("image/"))return!0;let d=a.split(".").pop()?.toLowerCase();return!!d&&b.has(d)},"localPathToApiUrl",0,function(a){let b=a.replace(/\\/g,"/").match(/\/assets\/([^/]+)\/([^/]+)$/);return b?`/api/files/assets/${b[1]}/${b[2]}`:a}])},87339,a=>{"use strict";let b=(0,a.i(711796).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"}]]);a.s(["Paperclip",0,b],87339)}];
2
-
3
- //# sourceMappingURL=_11w13--._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[241121,a=>{"use strict";var b=a.i(374637);let c=b.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});a.s(["CompositeListContext",0,c,"useCompositeListContext",0,function(){return b.useContext(c)}])},271214,a=>{"use strict";var b,c=a.i(374637),d=a.i(830067),e=a.i(241121);let f=((b={})[b.None=0]="None",b[b.GuessFromOrder=1]="GuessFromOrder",b);a.s(["IndexGuessBehavior",0,f,"useCompositeListItem",0,function(a={}){let{label:b,metadata:g,textRef:h,indexGuessBehavior:i,index:j}=a,{register:k,unregister:l,subscribeMapChange:m,elementsRef:n,labelsRef:o,nextIndexRef:p}=(0,e.useCompositeListContext)(),q=c.useRef(-1),[r,s]=c.useState(j??(i===f.GuessFromOrder?()=>{if(-1===q.current){let a=p.current;p.current+=1,q.current=a}return q.current}:-1)),t=c.useRef(null),u=c.useCallback(a=>{if(t.current=a,-1!==r&&null!==a&&(n.current[r]=a,o)){let c=void 0!==b;o.current[r]=c?b:h?.current?.textContent??a.textContent}},[r,n,o,b,h]);return(0,d.useIsoLayoutEffect)(()=>{if(null!=j)return;let a=t.current;if(a)return k(a,g),()=>{l(a)}},[j,k,l,g]),(0,d.useIsoLayoutEffect)(()=>{if(null==j)return m(a=>{let b=t.current?a.get(t.current)?.index:null;null!=b&&s(b)})},[j,m,s]),c.useMemo(()=>({ref:u,index:r}),[r,u])}])},668556,a=>{"use strict";var b=a.i(862306),c=a.i(374637);let d=c.createContext(void 0);a.s(["useToolbarRootContext",0,function(a){let e=c.useContext(d);if(void 0===e&&!a)throw Error((0,b.default)(69));return e}])},47801,a=>{"use strict";var b=a.i(374637),c=a.i(196692),d=a.i(74686),e=a.i(830067),f=a.i(241121),g=a.i(728778);function h(){return new Map}function i(){return new Set}function j(a,b){let c=a.compareDocumentPosition(b);return c&Node.DOCUMENT_POSITION_FOLLOWING||c&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:c&Node.DOCUMENT_POSITION_PRECEDING||c&Node.DOCUMENT_POSITION_CONTAINS?1:0}a.s(["CompositeList",0,function(a){let{children:k,elementsRef:l,labelsRef:m,onMapChange:n}=a,o=(0,d.useStableCallback)(n),p=b.useRef(0),q=(0,c.useRefWithInit)(i).current,r=(0,c.useRefWithInit)(h).current,[s,t]=b.useState(0),u=b.useRef(s),v=(0,d.useStableCallback)((a,b)=>{r.set(a,b??null),u.current+=1,t(u.current)}),w=(0,d.useStableCallback)(a=>{r.delete(a),u.current+=1,t(u.current)}),x=b.useMemo(()=>{let a=new Map;return Array.from(r.keys()).filter(a=>a.isConnected).sort(j).forEach((b,c)=>{let d=r.get(b)??{};a.set(b,{...d,index:c})}),a},[r,s]);(0,e.useIsoLayoutEffect)(()=>{if("function"!=typeof MutationObserver||0===x.size)return;let a=new MutationObserver(a=>{let b=new Set,c=a=>b.has(a)?b.delete(a):b.add(a);a.forEach(a=>{a.removedNodes.forEach(c),a.addedNodes.forEach(c)}),0===b.size&&(u.current+=1,t(u.current))});return x.forEach((b,c)=>{c.parentElement&&a.observe(c.parentElement,{childList:!0})}),()=>{a.disconnect()}},[x]),(0,e.useIsoLayoutEffect)(()=>{u.current===s&&(l.current.length!==x.size&&(l.current.length=x.size),m&&m.current.length!==x.size&&(m.current.length=x.size),p.current=x.size),o(x)},[o,x,l,m,s]),(0,e.useIsoLayoutEffect)(()=>()=>{l.current=[]},[l]),(0,e.useIsoLayoutEffect)(()=>()=>{m&&(m.current=[])},[m]);let y=(0,d.useStableCallback)(a=>(q.add(a),()=>{q.delete(a)}));(0,e.useIsoLayoutEffect)(()=>{q.forEach(a=>a(x))},[q,x]);let z=b.useMemo(()=>({register:v,unregister:w,subscribeMapChange:y,elementsRef:l,labelsRef:m,nextIndexRef:p}),[v,w,y,l,m,p]);return(0,g.jsx)(f.CompositeListContext.Provider,{value:z,children:k})}])},141156,783653,998833,a=>{"use strict";var b=a.i(374637),c=a.i(95133),d=a.i(921097),e=a.i(74686),f=a.i(830067),g=a.i(18536),h=a.i(606914),i=a.i(756700),j=a.i(682563),k=a.i(719084),l=a.i(622047),m=a.i(100737),n=a.i(397315),o=a.i(730188);function p(a,b,c){switch(a){case"vertical":return b;case"horizontal":return c;default:return b||c}}function q(a,b){return p(b,a===o.ARROW_UP||a===o.ARROW_DOWN,a===o.ARROW_LEFT||a===o.ARROW_RIGHT)}function r(a,b,c){return p(b,a===o.ARROW_DOWN,c?a===o.ARROW_LEFT:a===o.ARROW_RIGHT)||"Enter"===a||" "===a||""===a}a.s(["useListNavigation",0,function(a,s){let t="rootStore"in a?a.rootStore:a,u=t.useState("open"),v=t.useState("floatingElement"),w=t.useState("domReferenceElement"),x=t.context.dataRef,{listRef:y,activeIndex:z,onNavigate:A=()=>{},enabled:B=!0,selectedIndex:C=null,allowEscape:D=!1,loopFocus:E=!1,nested:F=!1,rtl:G=!1,virtual:H=!1,focusItemOnOpen:I="auto",focusItemOnHover:J=!0,openOnArrowKeyDown:K=!0,disabledIndices:L,orientation:M="vertical",parentOrientation:N,cols:O=1,id:P,resetOnPointerLeave:Q=!0,externalTree:R}=s,S=(0,h.getFloatingFocusElement)(v),T=(0,d.useValueAsRef)(S),U=(0,k.useFloatingParentNodeId)(),V=(0,k.useFloatingTree)(R);(0,f.useIsoLayoutEffect)(()=>{x.current.orientation=M},[x,M]);let W=(0,h.isTypeableCombobox)(w),X=b.useRef(I),Y=b.useRef(C??-1),Z=b.useRef(null),$=b.useRef(!0),_=(0,e.useStableCallback)(a=>{A(-1===Y.current?null:Y.current,a)}),aa=b.useRef(_),ab=b.useRef(!!v),ac=b.useRef(u),ad=b.useRef(!1),ae=b.useRef(!1),af=(0,d.useValueAsRef)(L),ag=(0,d.useValueAsRef)(u),ah=(0,d.useValueAsRef)(C),ai=(0,d.useValueAsRef)(Q),aj=(0,e.useStableCallback)(()=>{function a(a){H?V?.events.emit("virtualfocus",a):(0,n.enqueueFocus)(a,{sync:ad.current,preventScroll:!0})}let b=y.current[Y.current],c=ae.current;b&&a(b),(ad.current?a=>a():requestAnimationFrame)(()=>{let d=y.current[Y.current]||b;!d||(b||a(d),al&&(c||!$.current)&&d.scrollIntoView?.({block:"nearest",inline:"nearest"}))})});(0,f.useIsoLayoutEffect)(()=>{B&&(u&&v?(Y.current=C??-1,X.current&&null!=C&&(ae.current=!0,_())):ab.current&&(Y.current=-1,aa.current()))},[B,u,v,C,_]),(0,f.useIsoLayoutEffect)(()=>{if(B){if(!u){ad.current=!1;return}if(v)if(null==z){if(ad.current=!1,null!=ah.current)return;if(ab.current&&(Y.current=-1,aj()),(!ac.current||!ab.current)&&X.current&&(null!=Z.current||!0===X.current&&null==Z.current)){let a=0,b=()=>{null==y.current[0]?(a<2&&(a?requestAnimationFrame:queueMicrotask)(b),a+=1):(Y.current=null==Z.current||r(Z.current,M,G)||F?(0,j.getMinListIndex)(y):(0,j.getMaxListIndex)(y),Z.current=null,_())};b()}}else(0,j.isIndexOutOfListBounds)(y,z)||(Y.current=z,aj(),ae.current=!1)}},[B,u,v,z,ah,F,y,M,G,_,aj,af]),(0,f.useIsoLayoutEffect)(()=>{if(!B||v||!V||H||!ab.current)return;let a=V.nodesRef.current,b=a.find(a=>a.id===U)?.context?.elements.floating,c=(0,h.activeElement)((0,g.ownerDocument)(v)),d=a.some(a=>a.context&&(0,h.contains)(a.context.elements.floating,c));b&&!d&&$.current&&b.focus({preventScroll:!0})},[B,v,V,U,H]),(0,f.useIsoLayoutEffect)(()=>{aa.current=_,ac.current=u,ab.current=!!v}),(0,f.useIsoLayoutEffect)(()=>{u||(Z.current=null,X.current=I)},[u,I]);let ak=null!=z,al=b.useMemo(()=>{function a(a){if(!ag.current)return;let b=y.current.indexOf(a.currentTarget);-1!==b&&Y.current!==b&&(Y.current=b,_(a))}return{onFocus(b){ad.current=!0,a(b)},onClick:({currentTarget:a})=>a.focus({preventScroll:!0}),onMouseMove(b){ad.current=!0,ae.current=!1,J&&a(b)},onPointerLeave(a){if(!ag.current||!$.current||"touch"===a.pointerType)return;ad.current=!0;let b=a.relatedTarget;if(!(!J||y.current.includes(b))&&ai.current&&((0,n.enqueueFocus)(null,{sync:!0}),Y.current=-1,_(a),!H)){let a=T.current,b=(0,h.activeElement)((0,g.ownerDocument)(a));a&&(0,h.contains)(a,b)&&a.focus({preventScroll:!0})}}}},[ag,T,J,y,_,ai,H]),am=b.useCallback(()=>N??V?.nodesRef.current.find(a=>a.id===U)?.context?.dataRef?.current.orientation,[U,V,N]),an=(0,e.useStableCallback)(a=>{var b;let d,e;if($.current=!1,ad.current=!0,229===a.which||!ag.current&&a.currentTarget===T.current)return;if(F&&(b=a.key,d=G?b===o.ARROW_RIGHT:b===o.ARROW_LEFT,e=b===o.ARROW_UP,"both"===M||"horizontal"===M&&O&&O>1?"Escape"===b:p(M,d,e))){q(a.key,am())||(0,i.stopEvent)(a),t.setOpen(!1,(0,l.createChangeEventDetails)(m.REASONS.listNavigation,a.nativeEvent)),(0,c.isHTMLElement)(w)&&(H?V?.events.emit("virtualfocus",w):w.focus());return}let f=Y.current,g=(0,j.getMinListIndex)(y,L),k=(0,j.getMaxListIndex)(y,L);if(W||("Home"===a.key&&((0,i.stopEvent)(a),Y.current=g,_(a)),"End"===a.key&&((0,i.stopEvent)(a),Y.current=k,_(a))),O>1){let b=Array.from({length:y.current.length},()=>({width:1,height:1})),c=(0,j.createGridCellMap)(b,O,!1),d=c.findIndex(a=>null!=a&&!(0,j.isListIndexDisabled)(y,a,L)),e=c.reduce((a,b,c)=>null==b||(0,j.isListIndexDisabled)(y,b,L)?a:c,-1),f=c[(0,j.getGridNavigatedIndex)({current:c.map(a=>null!=a?y.current[a]:null)},{event:a,orientation:M,loopFocus:E,rtl:G,cols:O,disabledIndices:(0,j.getGridCellIndices)([...("function"!=typeof L?L:null)||y.current.map((a,b)=>(0,j.isListIndexDisabled)(y,b,L)?b:void 0),void 0],c),minIndex:d,maxIndex:e,prevIndex:(0,j.getGridCellIndexOfCorner)(Y.current>k?g:Y.current,b,c,O,a.key===o.ARROW_DOWN?"bl":a.key===(G?o.ARROW_LEFT:o.ARROW_RIGHT)?"tr":"tl"),stopEvent:!0})];if(null!=f&&(Y.current=f,_(a)),"both"===M)return}if(q(a.key,M)){if((0,i.stopEvent)(a),u&&!H&&(0,h.activeElement)(a.currentTarget.ownerDocument)===a.currentTarget){Y.current=r(a.key,M,G)?g:k,_(a);return}r(a.key,M,G)?E?f>=k?D&&f!==y.current.length?Y.current=-1:(ad.current=!1,Y.current=g):Y.current=(0,j.findNonDisabledListIndex)(y,{startingIndex:f,disabledIndices:L}):Y.current=Math.min(k,(0,j.findNonDisabledListIndex)(y,{startingIndex:f,disabledIndices:L})):E?f<=g?D&&-1!==f?Y.current=y.current.length:(ad.current=!1,Y.current=k):Y.current=(0,j.findNonDisabledListIndex)(y,{startingIndex:f,decrement:!0,disabledIndices:L}):Y.current=Math.max(g,(0,j.findNonDisabledListIndex)(y,{startingIndex:f,decrement:!0,disabledIndices:L})),(0,j.isIndexOutOfListBounds)(y,Y.current)&&(Y.current=-1),_(a)}}),ao=b.useMemo(()=>H&&u&&ak&&{"aria-activedescendant":`${P}-${z}`},[H,u,ak,P,z]),ap=b.useMemo(()=>({"aria-orientation":"both"===M?void 0:M,...!W?ao:{},onKeyDown(a){if("Tab"===a.key&&a.shiftKey&&u&&!H){let b=(0,h.getTarget)(a.nativeEvent);if(b&&!(0,h.contains)(T.current,b))return;(0,i.stopEvent)(a),t.setOpen(!1,(0,l.createChangeEventDetails)(m.REASONS.focusOut,a.nativeEvent)),(0,c.isHTMLElement)(w)&&w.focus();return}an(a)},onPointerMove(){$.current=!0}}),[ao,an,T,M,W,t,u,H,w]),aq=b.useMemo(()=>{function a(a){"auto"===I&&(0,i.isVirtualClick)(a.nativeEvent)&&(X.current=!H)}function b(a){X.current=I,"auto"===I&&(0,i.isVirtualPointerEvent)(a.nativeEvent)&&(X.current=!0)}return{onKeyDown(a){var b,c;let d=t.select("open");$.current=!1;let e=a.key.startsWith("Arrow"),f=(b=a.key,c=am(),p(c,G?b===o.ARROW_LEFT:b===o.ARROW_RIGHT,b===o.ARROW_DOWN)),g=q(a.key,M),h=(F?f:g)||"Enter"===a.key||""===a.key.trim();if(H&&d)return an(a);if(d||K||!e){if(h){let b=q(a.key,am());Z.current=F&&b?null:a.key}if(F){f&&((0,i.stopEvent)(a),d?(Y.current=(0,j.getMinListIndex)(y,af.current),_(a)):t.setOpen(!0,(0,l.createChangeEventDetails)(m.REASONS.listNavigation,a.nativeEvent,a.currentTarget)));return}g&&(null!=ah.current&&(Y.current=ah.current),(0,i.stopEvent)(a),!d&&K?t.setOpen(!0,(0,l.createChangeEventDetails)(m.REASONS.listNavigation,a.nativeEvent,a.currentTarget)):an(a),d&&_(a))}},onFocus(a){t.select("open")&&!H&&(Y.current=-1,_(a))},onPointerDown:b,onPointerEnter:b,onMouseDown:a,onClick:a}},[an,af,I,y,F,_,t,K,M,am,G,ah,H]),ar=b.useMemo(()=>({...ao,...aq}),[ao,aq]);return b.useMemo(()=>B?{reference:ar,floating:ap,item:al,trigger:aq}:{},[B,ar,ap,aq,al])}],141156);var s=a.i(102934);a.s(["useTypeahead",0,function(a,c){let d="rootStore"in a?a.rootStore:a,g=d.context.dataRef,k=d.useState("open"),{listRef:l,elementsRef:m,activeIndex:n,onMatch:o,onTypingChange:p,enabled:q=!0,resetMs:r=750,selectedIndex:t=null}=c,u=(0,s.useTimeout)(),v=b.useRef(""),w=b.useRef(t??n??-1),x=b.useRef(null);(0,f.useIsoLayoutEffect)(()=>{(k||null===t)&&(u.clear(),x.current=null,""!==v.current&&(v.current=""))},[k,t,u]),(0,f.useIsoLayoutEffect)(()=>{k&&""===v.current&&(w.current=t??n??-1)},[k,t,n]);let y=(0,e.useStableCallback)(a=>{a?g.current.typing||(g.current.typing=a,p?.(a)):g.current.typing&&(g.current.typing=a,p?.(a))}),z=(0,e.useStableCallback)(a=>{function b(a,c,d=0){if(0===a.length)return -1;let e=(d%a.length+a.length)%a.length,f=c.toLocaleLowerCase();for(let b=0;b<a.length;b+=1){let c=(e+b)%a.length,d=a[c];if(d?.toLocaleLowerCase().startsWith(f)&&function(a){let b=m?.current[a];return!b||(0,j.isElementVisible)(b)}(c))return c}return -1}let c=l.current;if(v.current.length>0&&" "===a.key&&((0,i.stopEvent)(a),y(!0)),v.current.length>0&&" "!==v.current[0]&&-1===b(c,v.current)&&" "!==a.key&&y(!1),null==c||1!==a.key.length||a.ctrlKey||a.metaKey||a.altKey)return;k&&" "!==a.key&&((0,i.stopEvent)(a),y(!0));let d=""===v.current;d&&(w.current=t??n??-1),c.every(a=>!a||a[0]?.toLocaleLowerCase()!==a[1]?.toLocaleLowerCase())&&v.current===a.key&&(v.current="",w.current=x.current),v.current+=a.key,u.start(r,()=>{v.current="",w.current=x.current,y(!1)});let e=d?t??n??-1:w.current,f=b(c,v.current,(e??0)+1);-1!==f?(o?.(f),x.current=f):" "!==a.key&&(v.current="",y(!1))}),A=(0,e.useStableCallback)(a=>{let b=a.relatedTarget,c=d.select("domReferenceElement"),e=d.select("floatingElement"),f=(0,h.contains)(c,b),g=(0,h.contains)(e,b);f||g||(u.clear(),v.current="",w.current=x.current,y(!1))}),B=b.useMemo(()=>({onKeyDown:z,onBlur:A}),[z,A]),C=b.useMemo(()=>({onKeyDown:z,onBlur:A}),[z,A]);return b.useMemo(()=>q?{reference:B,floating:C}:{},[q,B,C])}],783653),a.s(["getPseudoElementBounds",0,function(a){let b=a.getBoundingClientRect(),c=window.getComputedStyle(a,"::before"),d=window.getComputedStyle(a,"::after");if("none"===c.content&&"none"===d.content)return b;let e=parseFloat(c.width)||0,f=parseFloat(c.height)||0,g=parseFloat(d.width)||0,h=parseFloat(d.height)||0,i=Math.max(b.width,e,g),j=Math.max(b.height,f,h),k=i-b.width,l=j-b.height;return{left:b.left-k/2,right:b.right+k/2,top:b.top-l/2,bottom:b.bottom+l/2}}],998833)},33162,a=>{"use strict";var b=a.i(374637),c=a.i(213200);let d=b.forwardRef(function(a,b){let{className:d,render:e,orientation:f="horizontal",...g}=a;return(0,c.useRenderElement)("div",a,{state:{orientation:f},ref:b,props:[{role:"separator","aria-orientation":f},g]})});a.s(["Separator",0,d])},688905,a=>{"use strict";let b=(0,a.i(711796).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["default",0,b])}];
2
-
3
- //# sourceMappingURL=node_modules__pnpm_09eeb85._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[845427,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(26683);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i){let j=h(a),k=e.default.join(j,".worktrees","task-"+f),m="task/"+f;if(!(0,c.existsSync)(j))throw Error(`项目本地路径不存在:${j}`);try{(0,b.execFileSync)("git",["rev-parse","--is-inside-work-tree"],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{throw Error(`项目本地路径不是 Git 仓库,无法创建 worktree:${j}`)}await (0,d.mkdir)(e.default.join(j,".worktrees"),{recursive:!0});let n=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:j,encoding:"utf-8",timeout:1e4}),o=e.default.normalize(k).replace(/\\/g,"/");if(n.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===o))return l(j,k),{worktreePath:k,worktreeBranch:m};if((0,c.existsSync)(k)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${k}`),(0,b.execFileSync)("git",["worktree","remove",k,"--force"],{cwd:j,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",m],{cwd:j,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",k,m],{cwd:j,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",m,k,a],{cwd:j,encoding:"utf-8",timeout:3e4})}return l(j,k),{worktreePath:k,worktreeBranch:m}}let j=new Set(["node_modules",".git",".worktrees"]),k=["node_modules",".next"];function l(a,b){let d,f,h=g.logger.create("worktree");for(let g of(d=[],(f=(a,b,g)=>{let h;if((0,c.existsSync)(e.default.join(a,"package.json"))&&d.push(b),!(g>=8)){try{h=(0,c.readdirSync)(a,{withFileTypes:!0})}catch{return}for(let c of h){if(!c.isDirectory())continue;let d=c.name;j.has(d)||d.startsWith(".")||f(e.default.join(a,d),b?e.default.join(b,d):d,g+1)}}})(a,"",0),d))for(let d of k){let f=g?e.default.join(g,d):d,i=e.default.join(a,f),j=e.default.join(b,f);if(!(0,c.existsSync)(i)){"node_modules"===d&&h.info(`Skipped ${f} — source not installed`,{source:i});continue}try{(0,c.lstatSync)(j);continue}catch{}try{(0,c.mkdirSync)(e.default.dirname(j),{recursive:!0}),(0,c.symlinkSync)(i,j,"junction"),h.info(`Symlinked ${f}`,{from:i,to:j})}catch(a){h.warn(`Failed to symlink ${f}`,{error:String(a)})}}}async function m(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,m,"stripTowerLinkedStatus",0,function(a,b){return a.filter(a=>!a.startsWith("??")||!function(a,b){let d=a.replace(/[/\\]+$/,""),f=e.default.basename(d);if(!k.includes(f))return!1;try{return(0,c.lstatSync)(e.default.join(b,d)).isSymbolicLink()}catch{return!1}}(a.slice(2).trim(),b))}])},689171,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(188139),g=a.i(495370),h=a.i(845427),i=a.i(75681),j=a.i(496877),k=a.i(26683),l=a.i(279697),m=a.i(980999),n=a.i(630048),o=b([m]);[m]=o.then?(await o)():o;let B=k.logger.create("task-actions");async function p(a){let b=j.createTaskSchema.parse(a),c=await e.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null,versionId:b.versionId??null}});return b.labelIds&&b.labelIds.length>0&&await e.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:c.id,labelId:a}))}),(0,f.revalidatePath)("/workspaces"),c}async function q(b,c){j.taskStatusSchema.parse(c);let d=await e.db.task.update({where:{id:b},data:{status:c,doneAt:"DONE"===c?new Date:null},include:{project:!0}});if("DONE"===c&&!d.baseBranch&&d.project?.localPath)try{let{execFileSync:c}=await a.A(144264),f=c("git",["rev-parse","HEAD"],{cwd:d.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(f){let a=await e.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await e.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:f}})}}catch{}if("DONE"===c&&(a.A(662330).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),a.A(200442).then(({captureTaskOverview:a})=>{a(b).catch(()=>{})}).catch(()=>{})),"DONE"===c||"CANCELLED"===c)try{let{destroySession:c}=await a.A(98813);c(b)}catch(a){B.error("PTY session destroy failed",a,{taskId:b})}if("CANCELLED"===c&&d.project?.localPath)try{let{captureTaskOverview:c}=await a.A(200442);await c(b,{kind:"cancelled"})}catch(a){B.error("Task overview capture failed",a,{taskId:b})}if("CANCELLED"===c&&d.project?.localPath)try{await (0,h.removeWorktree)(d.project.localPath,b)}catch(a){B.error("Worktree cleanup failed",a,{taskId:b})}return(0,f.revalidatePath)("/workspaces"),d}async function r(a,b){let{labelIds:c,...d}=j.updateTaskSchema.parse(b),h=await e.db.task.update({where:{id:a},data:d});return void 0!==c&&await (0,g.setTaskLabels)(a,c),(0,f.revalidatePath)("/workspaces"),h}async function s(a){i.z.string().cuid().parse(a);let b=await e.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),c=await e.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,f.revalidatePath)("/workspaces"),c}async function t(b){let c=await e.db.task.findUnique({where:{id:b},include:{project:!0}});try{let{destroySession:c}=await a.A(98813);c(b)}catch{}if(c?.project?.localPath)try{await (0,h.removeWorktree)(c.project.localPath,b)}catch{}await e.db.task.delete({where:{id:b}}),(0,f.revalidatePath)("/workspaces")}async function u(a){let b=await (0,m.getArchiveDelayDays)();return e.db.task.findMany({where:{projectId:a,...(0,l.visibleTaskWhere)(b)},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function v(a){return a.trim()?e.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function w(a){let b=await (0,m.getArchiveDelayDays)();return e.db.task.findMany({where:{projectId:a,...(0,l.archivedTaskWhere)(b)},include:{labels:{include:{label:!0}},version:{select:{id:!0,number:!0,name:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function x(b){let{execFileSync:c}=await a.A(144264),{existsSync:d}=await a.A(323970),f=await e.db.task.findUnique({where:{id:b}}),g=await e.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!d(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let i=g.worktreePath,j=f?.baseBranch||"main";try{let a=c("git",["status","--porcelain"],{cwd:i,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],d=(0,h.stripTowerLinkedStatus)(b,i),e=0===d.length,f=!1,g=null,k=[];try{let a=c("git",["merge-base",j,"HEAD"],{cwd:i,encoding:"utf-8",timeout:5e3}).trim(),b=c("git",["rev-list","--count",`${a}..HEAD`],{cwd:i,encoding:"utf-8",timeout:5e3}).trim();if(f=parseInt(b,10)>0){g=c("git",["log","-1","--format=%B"],{cwd:i,encoding:"utf-8",timeout:5e3}).trim();let b=c("git",["log","--oneline",`${a}..HEAD`],{cwd:i,encoding:"utf-8",timeout:5e3}).trim();k=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:e,files:d,hasCommits:f,lastCommitMessage:g,commitLog:k,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function y(b,c){let{execFileSync:d}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await e.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(d("git",["add","-A"],{cwd:h,timeout:1e4}),!d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return d("git",["commit","-m",c],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:d("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function z(a){return/^c[a-z0-9]{20,30}$/.test(a)?e.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},version:{select:{id:!0,number:!0,name:!0}},project:{select:{id:!0,name:!0,type:!0,localPath:!0,workspaceId:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0,gitStats:!0,worktreePath:!0}},_count:{select:{assets:!0}}}}):null}async function A(a){let b=await (0,m.getArchiveDelayDays)();return e.db.task.count({where:{projectId:a,...(0,l.archivedTaskWhere)(b)}})}(0,n.ensureServerEntryExports)([p,q,r,s,t,u,v,w,x,y,z,A]),(0,d.registerServerReference)(p,"40cdcb51244d794d89deb8627e6815567f06b3794f",null),(0,d.registerServerReference)(q,"60e8d0cf95a46e42187063c717ad0a48a4fce02858",null),(0,d.registerServerReference)(r,"60802ddcaf4688e156e12cdb5d82072ca232cbb61a",null),(0,d.registerServerReference)(s,"40e04fb1dceb7c8df1bfd03b4997390e3055596a96",null),(0,d.registerServerReference)(t,"40212a56018fad2d915940c89dfaf6054354af68c3",null),(0,d.registerServerReference)(u,"40a1a3a48e423b5025ad9ea626aea044ec13b620a1",null),(0,d.registerServerReference)(v,"40c206003beeb07820a10e89dcc05db33cebc99e57",null),(0,d.registerServerReference)(w,"4016677573181545463b41adb1663fc9cc67ede495",null),(0,d.registerServerReference)(x,"40b26f9338c41e2bc1058357cf4d4cdb868fdd500a",null),(0,d.registerServerReference)(y,"6015756a574100c33e629faa82ab6f69050c97821c",null),(0,d.registerServerReference)(z,"40e27e585c87948d5ac60d49a3407d347bd149e01a",null),(0,d.registerServerReference)(A,"40b7f37b8ba2f67751d6f74d8f984da070ea392278",null),a.s(["checkWorktreeClean",0,x,"commitWorktreeChanges",0,y,"createTask",0,p,"deleteTask",0,t,"getArchivedTaskCount",0,A,"getArchivedTasks",0,w,"getProjectTasks",0,u,"getTaskOverview",0,z,"searchTasks",0,v,"toggleTaskPinned",0,s,"updateTask",0,r,"updateTaskStatus",0,q]),c()}catch(a){c(a)}},!1)];
2
-
3
- //# sourceMappingURL=src_0djxlqx._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[378322,a=>{"use strict";class b{providers=new Map;register(a){this.providers.set(a.name,a)}get(a){return this.providers.get(a)}getAll(){return Array.from(this.providers.values())}getCliAdapter(a){return this.providers.get(a)?.cli?.adapter??null}getQueryAdapter(a,b){let c=this.providers.get(a);return c?"api"===b?c.api?.adapter??null:c.cliQuery?.adapter??null:null}getAllowedCommands(){let a=[];for(let b of this.providers.values())b.cli?.command&&a.push(b.cli.command);return a}async getAvailableProviders(){let a=[];for(let b of this.providers.values()){let c=!!b.cli&&await b.cli.adapter.isAvailable(),d=c&&b.cli?await b.cli.adapter.getVersion():null,e=!!b.api&&!!process.env[b.api.keyEnvVar],f=!!b.api&&e;a.push({name:b.name,displayName:b.displayName,cli:{available:c,version:d},api:{available:f,keyConfigured:e}})}return a}}var c=a.i(52350),d=a.i(902157),e=a.i(660526),f=a.i(750227),g=a.i(163812),h=a.i(562278);let i=["o4-mini","o3","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","codex-mini-latest"],j=globalThis;if(!j.__providerRegistry){let k=new b;k.register({name:"claude",displayName:"Claude Code",agentFieldValue:"CLAUDE_CODE",cli:{command:"claude",adapter:new c.ClaudeCliAdapter},models:{cli:["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"],api:[]}}),k.register({name:"codex",displayName:"Codex CLI",agentFieldValue:"CODEX_CLI",cli:{command:"codex",adapter:new class b{buildSpawnArgs(a){let b=[];a.resumeSessionId?b.push("resume",a.resumeSessionId):a.continueLatest?b.push("resume","--last"):(b.push("--full-auto"),a.extraArgs?.length&&b.push(...a.extraArgs),a.prompt&&b.push(a.prompt));let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readHooks(),b=(0,h.getPackageRoot)().replace(/\\/g,"/"),c=f.join(b,"scripts","tower-session-start-hook.js").replace(/\\/g,"/"),d=f.join(b,"scripts","tower-post-tool-hook.js").replace(/\\/g,"/"),e=f.join(b,"scripts","tower-stop-hook.js").replace(/\\/g,"/"),g=!1;return g=this.upsertHook(a,"SessionStart","session-start-hook.js",{hooks:[{command:`node "${c}"`,timeout:5,type:"command"}]})||g,g=this.upsertHook(a,"PostToolUse","post-tool-hook.js",{hooks:[{command:`node "${d}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"})||g,(g=this.upsertHook(a,"Stop","stop-hook.js",{hooks:[{command:`node "${e}"`,timeout:5,type:"command"}]})||g)&&(this.writeHooks(a),this.ensureHooksFeatureEnabled()),{ok:!0,method:"file",detail:this.getHooksPath()}}catch(a){return{ok:!1,method:"file",detail:this.getHooksPath(),error:a instanceof Error?a.message:String(a)}}}async repairHookPaths(){try{let a=this.readHooks(),b=(0,h.getPackageRoot)().replace(/\\/g,"/"),c=!1;for(let[d,e,g]of[["SessionStart","session-start-hook.js","tower-session-start-hook.js"],["PostToolUse","post-tool-hook.js","tower-post-tool-hook.js"],["Stop","stop-hook.js","tower-stop-hook.js"]]){let h=this.getHookArray(a,d),i=h.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(e)));if(i<0)continue;let j=f.join(b,"scripts",g).replace(/\\/g,"/"),k=`node "${j}"`,l=h[i]?.hooks?.[0];l&&l.command!==k&&(l.command=k,a[d]=h,c=!0)}c&&(this.writeHooks(a),this.ensureHooksFeatureEnabled())}catch{}}upsertHook(a,b,c,d){let e=this.getHookArray(a,b),f=d?.hooks?.[0]?.command,g=e.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(c)));if(g>=0){if(e[g]?.hooks?.[0]?.command===f)return!1;e.splice(g,1)}return e.push(d),a[b]=e,!0}async uninstallHooks(){try{let a=this.readHooks(),b=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let c of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(a,c);a[c]=d.filter(a=>!a.hooks?.some(a=>b.some(b=>a.command?.includes(b))))}return this.writeHooks(a),{ok:!0,method:"file",detail:this.getHooksPath()}}catch(a){return{ok:!1,method:"file",detail:this.getHooksPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readHooks(),b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=this.resolveCommand(),d=["mcp","add",a.name];if(a.env)for(let[b,c]of Object.entries(a.env))d.push("--env",`${b}=${c}`);d.push("--",a.command,...a.args);try{return await this.runCli(c,["mcp","remove",a.name],b.cwd).catch(()=>{}),await this.runCli(c,d,b.cwd),{ok:!0,method:"cli",detail:`${c} ${d.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${c} ${d.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=this.resolveCommand(),d=["mcp","remove",a];try{return await this.runCli(c,d,b.cwd),{ok:!0,method:"cli",detail:`${c} ${d.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${c} ${d.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,b){let c=f.join(this.getConfigDir(),"skills",a);try{if(!d.existsSync(b))return{ok:!1,method:"symlink",detail:c,error:`Source skill dir does not exist: ${b}`};d.mkdirSync(f.dirname(c),{recursive:!0});let a=await d.promises.lstat(c).catch(()=>null);if(a)if(!(a.isSymbolicLink()||(0,g.isWindows)()&&a.isDirectory()))return{ok:!1,method:"symlink",detail:c,error:`Refusing to overwrite non-symlink at ${c}`};else try{let a=await d.promises.readlink(c);if(f.resolve(a)===f.resolve(b))return{ok:!0,method:"symlink",detail:`${c} → ${b} (already)`};await d.promises.unlink(c)}catch{if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:c,error:`Refusing to overwrite non-symlink at ${c}`}}let e=(0,g.isWindows)()?"junction":"dir";return await d.promises.symlink(b,c,e),{ok:!0,method:"symlink",detail:`${c} → ${b}`}}catch(a){return{ok:!1,method:"symlink",detail:c,error:a instanceof Error?a.message:String(a)}}}async uninstallSkill(a){let b=f.join(this.getConfigDir(),"skills",a);try{let a=await d.promises.lstat(b).catch(()=>null);if(!a)return{ok:!0,method:"symlink",detail:`${b} (already absent)`};if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:b,error:`Refusing to remove non-symlink at ${b}`};return await d.promises.unlink(b),{ok:!0,method:"symlink",detail:b}}catch(a){return{ok:!1,method:"symlink",detail:b,error:a instanceof Error?a.message:String(a)}}}async isSkillInstalled(a,b){let c=f.join(this.getConfigDir(),"skills",a);try{if(!(await d.promises.lstat(c)).isSymbolicLink())return!1;if(!b)return!0;let a=await d.promises.readlink(c),e=f.isAbsolute(a)?a:f.resolve(f.dirname(c),a);return f.resolve(e)===f.resolve(b)}catch{return!1}}async runCli(b,c,d,e=1e4){let{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),{stdout:i}=await h(b,c,{cwd:d,timeout:e});return i}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),{resolveSpawnTarget:d}=await a.A(889618),e=c(b),f=await d(this.resolveCommand(),["--version"]),{stdout:g}=await e(f.command,f.args,{timeout:5e3});return g.trim()||null}catch{return null}}async getModels(){return i}getConfigDir(){return f.join(e.homedir(),".codex")}getSettingsPath(){return f.join(this.getConfigDir(),"config.toml")}getSessionsDir(){return f.join(this.getConfigDir(),"sessions")}getApiKeyInfo(){return{envVar:"OPENAI_API_KEY",required:!1}}buildHelloProbeArgs(a){return{command:this.resolveCommand(),args:["exec",a]}}resolveCommand(){return process.env.CODEX_CLI_PATH?process.env.CODEX_CLI_PATH:(0,g.resolveCommandPathSync)("codex")}getHooksPath(){return f.join(this.getConfigDir(),"hooks.json")}readHooks(){try{return JSON.parse(d.readFileSync(this.getHooksPath(),"utf-8")).hooks??{}}catch{return{}}}writeHooks(a){let b=this.getConfigDir();d.existsSync(b)||d.mkdirSync(b,{recursive:!0}),d.writeFileSync(this.getHooksPath(),JSON.stringify({hooks:a},null,2),"utf-8")}ensureHooksFeatureEnabled(){let a=this.getSettingsPath(),b="";try{b=d.readFileSync(a,"utf-8")}catch{}if(/codex_hooks\s*=\s*true/.test(b))return;/\[features\]/.test(b)?b=b.replace(/\[features\]/,"[features]\ncodex_hooks = true"):b+="\n[features]\ncodex_hooks = true\n";let c=this.getConfigDir();d.existsSync(c)||d.mkdirSync(c,{recursive:!0}),d.writeFileSync(a,b,"utf-8")}getHookArray(a,b){let c=a[b];return Array.isArray(c)?c:[]}hasHook(a,b){return a.some(a=>a.hooks?.some(a=>a.command?.includes(b)))}}},models:{cli:["o4-mini","o3","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","codex-mini-latest"],api:[]}}),j.__providerRegistry=k}let k=j.__providerRegistry;a.s(["providerRegistry",0,k],378322)},855806,a=>{"use strict";var b=a.i(815429),c=a.i(761469);async function d(a,b={}){let e=b.report,f=e?JSON.stringify(e):null;await c.db.providerConnection.upsert({where:{provider:a},create:{provider:a,lastTestedAt:new Date,testOk:!0,version:b.version??null,mcpInstalled:e?.mcp?.ok??!1,hooksInstalled:e?.hooks?.ok??!1,skillsInstalled:e?.skill?.ok??!1,installLog:f},update:{lastTestedAt:new Date,testOk:!0,version:b.version??null,mcpInstalled:e?.mcp?.ok??!1,hooksInstalled:e?.hooks?.ok??!1,skillsInstalled:e?.skill?.ok??!1,installLog:f}})}async function e(a,b={}){await c.db.providerConnection.upsert({where:{provider:a},create:{provider:a,lastTestedAt:new Date,testOk:!1,installLog:b.reason??null},update:{lastTestedAt:new Date,testOk:!1,mcpInstalled:!1,hooksInstalled:!1,skillsInstalled:!1,installLog:b.reason??null}})}async function f(a){let b=await c.db.providerConnection.findUnique({where:{provider:a}});return!!b&&b.testOk}async function g(){return(await c.db.providerConnection.findMany({where:{testOk:!0},select:{provider:!0},orderBy:{provider:"asc"}})).map(a=>a.provider)}async function h(){return c.db.providerConnection.findMany({select:{provider:!0,lastTestedAt:!0,testOk:!0,version:!0,mcpInstalled:!0,hooksInstalled:!0,skillsInstalled:!0,installLog:!0},orderBy:{provider:"asc"}})}(0,a.i(630048).ensureServerEntryExports)([d,e,f,g,h]),(0,b.registerServerReference)(d,"6008dc45318bda889d042c95429bdff5b0ab4dc869",null),(0,b.registerServerReference)(e,"600b3a3dbda8fe0e44a477a5335a45dece02471d0f",null),(0,b.registerServerReference)(f,"403c704d1e8294278deb05359adcbb363bdf2b2778",null),(0,b.registerServerReference)(g,"005567885951db3f241933c42dba6995a343ab8bca",null),(0,b.registerServerReference)(h,"00a28e431331a9eb187c2533176e3a62a02ca68fb8",null),a.s(["getConnectedProviders",0,g,"getProviderConnections",0,h,"isProviderConnected",0,f,"markProviderConnected",0,d,"markProviderDisconnected",0,e])}];
2
-
3
- //# sourceMappingURL=src_0eufeyj._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[625636,a=>{"use strict";var b=a.i(761469);async function c(a){let c="ask"===a.kind?"OPEN":"CLOSED";return{messageId:(await b.db.harnessMessage.create({data:{taskId:a.taskId,executionId:a.executionId??null,kind:a.kind,content:a.content,state:c}})).id}}async function d(a){return(await b.db.harnessMessage.updateMany({where:{id:a,kind:"ask",state:"OPEN"},data:{state:"IGNORED"}})).count>0}async function e(a){return(await b.db.harnessMessage.updateMany({where:{taskId:a,kind:"ask",state:"OPEN"},data:{state:"CANCELLED"}})).count}async function f(a){await b.db.harnessMessage.delete({where:{id:a}})}async function g(a={}){let c=a.view??"pending";return b.db.harnessMessage.findMany({where:"pending"===c?{kind:"ask",state:"OPEN"}:"answered"===c?{kind:"ask",state:"ANSWERED"}:{},orderBy:{createdAt:"desc"},take:a.limit??200,include:{task:{select:{id:!0,title:!0}}}})}a.s(["cancelOpenAsks",0,e,"dismissMessage",0,f,"ignoreAsk",0,d,"listHarnessMessages",0,g,"recordHarnessMessage",0,c])},52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=d.join(c,"scripts","tower-session-start-hook.js").replace(/\\/g,"/"),g=d.join(c,"scripts","tower-post-tool-hook.js").replace(/\\/g,"/"),h=d.join(c,"scripts","tower-stop-hook.js").replace(/\\/g,"/"),i=!1;return i=this.upsertHook(b,"SessionStart","session-start-hook.js",{hooks:[{command:`node "${e}"`,timeout:5,type:"command"}]})||i,i=this.upsertHook(b,"PostToolUse","post-tool-hook.js",{hooks:[{command:`node "${g}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"})||i,(i=this.upsertHook(b,"Stop","stop-hook.js",{hooks:[{command:`node "${h}"`,timeout:5,type:"command"}]})||i)&&(a.hooks=b,this.writeSettings(a)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async repairHookPaths(){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=!1;for(let[a,f,g]of[["SessionStart","session-start-hook.js","tower-session-start-hook.js"],["PostToolUse","post-tool-hook.js","tower-post-tool-hook.js"],["Stop","stop-hook.js","tower-stop-hook.js"]]){let h=this.getHookArray(b,a),i=h.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(f)));if(i<0)continue;let j=d.join(c,"scripts",g).replace(/\\/g,"/"),k=`node "${j}"`,l=h[i]?.hooks?.[0];l&&l.command!==k&&(l.command=k,b[a]=h,e=!0)}e&&(a.hooks=b,this.writeSettings(a))}catch{}}upsertHook(a,b,c,d){let e=this.getHookArray(a,b),f=d?.hooks?.[0]?.command,g=e.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(c)));if(g>=0){if(e[g]?.hooks?.[0]?.command===f)return!1;e.splice(g,1)}return e.push(d),a[b]=e,!0}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let f=d.join(this.getConfigDir(),"skills",a);try{if(!b.existsSync(c))return{ok:!1,method:"symlink",detail:f,error:`Source skill dir does not exist: ${c}`};b.mkdirSync(d.dirname(f),{recursive:!0});let a=await b.promises.lstat(f).catch(()=>null);if(a)if(!(a.isSymbolicLink()||(0,e.isWindows)()&&a.isDirectory()))return{ok:!1,method:"symlink",detail:f,error:`Refusing to overwrite non-symlink at ${f}`};else try{let a=await b.promises.readlink(f);if(d.resolve(a)===d.resolve(c))return{ok:!0,method:"symlink",detail:`${f} → ${c} (already)`};await b.promises.unlink(f)}catch{if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:f,error:`Refusing to overwrite non-symlink at ${f}`}}let g=(0,e.isWindows)()?"junction":"dir";return await b.promises.symlink(c,f,g),{ok:!0,method:"symlink",detail:`${f} → ${c}`}}catch(a){return{ok:!1,method:"symlink",detail:f,error:a instanceof Error?a.message:String(a)}}}async uninstallSkill(a){let c=d.join(this.getConfigDir(),"skills",a);try{let a=await b.promises.lstat(c).catch(()=>null);if(!a)return{ok:!0,method:"symlink",detail:`${c} (already absent)`};if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:c,error:`Refusing to remove non-symlink at ${c}`};return await b.promises.unlink(c),{ok:!0,method:"symlink",detail:c}}catch(a){return{ok:!1,method:"symlink",detail:c,error:a instanceof Error?a.message:String(a)}}}async isSkillInstalled(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!(await b.promises.lstat(e)).isSymbolicLink())return!1;if(!c)return!0;let a=await b.promises.readlink(e),f=d.isAbsolute(a)?a:d.resolve(d.dirname(e),a);return d.resolve(f)===d.resolve(c)}catch{return!1}}async runCli(b,c,d,e=1e4){let{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),{stdout:i}=await h(b,c,{cwd:d,timeout:e});return i}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),{resolveSpawnTarget:d}=await a.A(889618),e=c(b),f=await d(this.resolveCommand(),["--version"]),{stdout:g}=await e(f.command,f.args,{timeout:5e3});return g.trim()||null}catch{return null}}async getModels(){return g}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(a){return{command:this.resolveCommand(),args:["--print",a,"--output-format","stream-json","--verbose"]}}resolveCommand(){if(process.env.CLAUDE_CODE_PATH)return process.env.CLAUDE_CODE_PATH;if((0,e.isWindows)()){let a=(0,e.resolveCommandPathSync)("claude-code");if("claude-code"!==a)return a}return(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getHookArray(a,b){let c=a[b];return Array.isArray(c)?c:[]}hasHook(a,b){return a.some(a=>a.hooks?.some(a=>a.command?.includes(b)))}}],52350)},925886,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(630048).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"40852a94a039557b90492bce0408a381e505628347",null),(0,b.registerServerReference)(f,"40ecad025c620cf86b958297ee3f357db05d4f1725",null),(0,b.registerServerReference)(g,"405e5a97f4a478e4899cfc8b7ce4f6b6c97fc86e00",null),(0,b.registerServerReference)(h,"601062409a7b3954f4a42883e96f14d7afb0370260",null),(0,b.registerServerReference)(i,"40421b2504036074195fa22b1e0c6c820a898b1d6e",null),(0,b.registerServerReference)(j,"60fffb2d935f3180b0d7024f8daa88aaaa0f208af2",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"updatePrompt",0,h])}];
2
-
3
- //# sourceMappingURL=src_0vv366l._.js.map
@@ -1,5 +0,0 @@
1
- module.exports=[353602,a=>{"use strict";let b=[/\x1b\[[<=>?]?[0-9;]*c/g,/\x1b\[\??[0-9;]*n/g,/\x1b\[\??[0-9;]*\$p/g,/\x1b\[>[0-9;]*q/g,/\x1b\[(?:1[1345689]|2[01])(?:;[0-9]+)*t/g,/\x1b\][0-9;]*;\?(?:\x07|\x1b\\)/g,/\x1bP[$+]q[\s\S]*?\x1b\\/g];a.s(["stripDeviceQueries",0,function(a){if(!a)return a;let c=a;for(let a of b)c=c.replace(a,"");return c}])},559991,a=>{"use strict";a.s(["ASSISTANT_SESSION_KEY",0,"__assistant__"])},22700,a=>{"use strict";var b=a.i(42847);let c=/\x1b\[[0-9;]*m/g,d=/(https?:\/\/[^\s]+)/;class e{preset;port;timeoutMs;onReady;onTimeout;ready;timeoutTimer;probeTimer;pendingExtractedUrl;constructor(a,b,c,d,e){this.preset=a,this.port=b,this.timeoutMs=c,this.onReady=d,this.onTimeout=e,this.ready=!1,this.timeoutTimer=null,this.probeTimer=null,this.pendingExtractedUrl=null}start(){this.timeoutTimer=setTimeout(()=>{this.ready||this.onTimeout()},this.timeoutMs),this.probeTimer=setInterval(()=>{this.ready||this.probe()},500)}feedLine(a){if(!this.ready){if(this.preset?.urlExtractRegex){var b,e;let f,g=(b=a,e=this.preset.urlExtractRegex,f=b.replace(c,"").match(e??d),f?.[1]??null);g&&(this.pendingExtractedUrl=g)}this.preset?.readyRegex?.test(a)&&this.emitReady(this.pendingExtractedUrl)}}stop(){this.timeoutTimer&&(clearTimeout(this.timeoutTimer),this.timeoutTimer=null),this.probeTimer&&(clearInterval(this.probeTimer),this.probeTimer=null)}async probe(){try{let a=new AbortController,b=setTimeout(()=>a.abort(),200),c=await fetch(`http://localhost:${this.port}/`,{method:"HEAD",signal:a.signal});clearTimeout(b),c.status>=200&&c.status<400&&this.emitReady(this.pendingExtractedUrl)}catch{}}emitReady(a){this.ready||(this.ready=!0,this.stop(),this.onReady(a))}}class f{opts;status;pty;ringBuffer;currentUrl;startedAt;readyAt;errorMessage;installed;readyWatcher;cancelRequested;pendingAutoStart;outputListeners;stateListeners;subscribers;internalListenerSeq;constructor(a){this.opts=a,this.status="stopped",this.pty=null,this.ringBuffer=[],this.currentUrl=null,this.startedAt=null,this.readyAt=null,this.errorMessage=null,this.installed=null,this.readyWatcher=null,this.cancelRequested=!1,this.pendingAutoStart=!1,this.outputListeners=new Map,this.stateListeners=new Map,this.subscribers=new Map,this.internalListenerSeq=0}get key(){return this.opts.key}get activeSubscriberCount(){return this.subscribers.size}get subscriberTaskIds(){return new Set([...this.subscribers.values()].map(a=>a.taskId))}getBuffer(){return[...this.ringBuffer]}getState(){return{key:this.opts.key,status:this.status,url:this.currentUrl,port:this.opts.port,startedAt:this.startedAt,readyAt:this.readyAt,errorMessage:this.errorMessage,installed:this.installed,activeSubscribers:this.activeSubscriberCount,subscriberTaskIds:[...this.subscriberTaskIds]}}subscribe(a,b,c,d){return this.subscribers.set(a,{taskId:b}),this.stateListeners.set(a,c),this.outputListeners.set(a,d),()=>{this.subscribers.delete(a),this.stateListeners.delete(a),this.outputListeners.delete(a),this.broadcastState()}}async run(){if("installing"===this.status)return{started:!1,error:"Install in progress"};if("running"===this.status||"starting"===this.status)return{started:!0};this.cancelRequested=!1,this.errorMessage=null,this.status="starting",this.startedAt=Date.now(),this.broadcastState();try{this.pty=this.createPty(this.opts.command,this.opts.args,this.opts.cwd)}catch(a){return this.status="error",this.errorMessage=`Failed to spawn: ${String(a)}`,this.broadcastState(),{started:!1,error:this.errorMessage}}return this.readyWatcher=new e(this.opts.preset,this.opts.port,this.opts.preset?.startTimeoutMs??6e4,a=>this.handleReady(a),()=>this.handleTimeout()),this.readyWatcher.start(),{started:!0}}async install(a){if("stopped"!==this.status&&"error"!==this.status)return{ok:!1,error:`Cannot install while ${this.status}`};this.cancelRequested=!1,this.errorMessage=null,this.status="installing",this.pendingAutoStart=a.autoStartAfter??!1,this.broadcastState();try{this.pty=this.createPty(a.installCommand,a.installArgs,a.installCwd??this.opts.cwd)}catch(a){return this.status="error",this.errorMessage=`Failed to spawn install: ${String(a)}`,this.broadcastState(),{ok:!1,error:this.errorMessage}}return{ok:!0}}stop(){if(("installing"===this.status||"starting"===this.status||"running"===this.status)&&(this.cancelRequested=!0),this.readyWatcher&&(this.readyWatcher.stop(),this.readyWatcher=null),!this.pty||this.pty.killed){this.injectLog("Stopped."),this.status="stopped",this.pendingAutoStart=!1,this.broadcastState();return}this.injectLog("Stopping (SIGTERM)..."),this.status="stopping",this.broadcastState();try{this.pty.killTree()}catch{}}injectLog(a){let b=`[preview] ${a}`;this.pushBuffer(b);let c=`\r
2
- ${b}\r
3
- `;for(let a of this.outputListeners.values())try{a(c)}catch{}}pushBuffer(a){this.ringBuffer.push(a),this.ringBuffer.length>5e3&&this.ringBuffer.splice(0,this.ringBuffer.length-5e3)}createPty(a,c,d){let e=new b.PtySession(this.opts.key,a,c,d,a=>this.handlePtyData(a),a=>this.handlePtyExit(a),this.opts.envOverrides,void 0,void 0);try{e.resize(200,50)}catch{}return e}handlePtyData(a){for(let b of a.split(/\r?\n/))0!==b.length&&(this.pushBuffer(b),this.readyWatcher&&this.readyWatcher.feedLine(b));for(let b of this.outputListeners.values())try{b(a)}catch{}}handlePtyExit(a){let b=this.cancelRequested,c="installing"===this.status;this.pty=null,this.readyWatcher&&(this.readyWatcher.stop(),this.readyWatcher=null),b?(this.injectLog(`Stopped (exit code ${a}).`),this.status="stopped",this.pendingAutoStart=!1):0===a&&c?(this.installed=!0,this.status="stopped",this.pendingAutoStart&&(this.pendingAutoStart=!1,setTimeout(()=>void this.run(),0))):0!==a?(this.injectLog(`Exited with code ${a}.`),this.status="error",this.errorMessage=`Process exited with code ${a}`,this.pendingAutoStart=!1):(this.injectLog("Exited."),this.status="stopped"),this.broadcastState()}handleReady(a){this.currentUrl=a??`http://localhost:${this.opts.port}/`,this.status="running",this.readyAt=Date.now(),this.broadcastState()}handleTimeout(){this.status="error",this.errorMessage=`Start timeout (${this.opts.preset?.startTimeoutMs??6e4}ms). See logs.`,this.readyWatcher&&(this.readyWatcher.stop(),this.readyWatcher=null),this.broadcastState()}onStateChange(a){this.stateListeners.set(`__internal-${this.internalListenerSeq++}`,a)}broadcastState(){let a=this.getState();for(let b of this.stateListeners.values())try{b(a)}catch{}}}let g=globalThis.__previewSessions??=new Map;function h(){for(let a of[...g.keys()])!function(a){let b=g.get(a);if(b){try{b.stop()}catch{}g.delete(a)}}(a)}globalThis.__previewSignalHandlersRegistered||(process.on("SIGTERM",h),process.on("SIGINT",h),process.on("SIGHUP",h),globalThis.__previewSignalHandlersRegistered=!0),a.s(["getOrCreatePreviewSession",0,function(a,b){let c=g.get(a);return c||(c=new f({...b,key:a}),g.set(a,c)),c},"getPreviewSession",0,function(a){return g.get(a)}],22700)},117738,a=>{"use strict";let b="__preview__";a.s(["PREVIEW_TASK_ID",0,b,"parsePreviewWsParams",0,function(a){if(a.get("taskId")!==b)return null;let c=a.get("role"),d=a.get("previewKey");if("state"!==c&&"terminal"!==c||!d)return null;let e=a.get("connectionId")??Math.random().toString(36).slice(2);return{role:c,previewKey:decodeURIComponent(d),connectionId:e,taskId:a.get("clientTaskId")}}])},823615,a=>a.a(async(b,c)=>{try{var d=a.i(433541),e=a.i(962620),f=a.i(353602),g=a.i(312369),h=a.i(559991),i=a.i(22700),j=a.i(117738),k=b([d]);[d]=k.then?(await k)():k;let q=new Map;function l(){return r.__notificationClients||(r.__notificationClients=new Set),r.__notificationClients}function m(a){l().add(a)}function n(a){l().delete(a)}let r=globalThis;async function o(){var b;if(r.__wss){let a=r.__wss;r.__wss=void 0,await new Promise(b=>{a.close(()=>b()),setTimeout(b,1e3)})}let c=parseInt(process.env.PORT||"3000",10),f=await (0,g.readConfigValue)("terminal.wsPort",c+1),k=f;for(let c=0;c<10&&await (b=k,new Promise(c=>{let{createServer:d}=a.r(504446),e=d();e.once("error",()=>c(!0)),e.once("listening",()=>{e.close(()=>c(!1))}),e.listen(b,"127.0.0.1")}));c++){if(9===c)return void console.error(`[ws-server] No free port found after trying ${f}–${k} — skipping startup`);console.error(`[ws-server] Port ${k} in use, trying ${k+1}...`),k++}let l=new d.WebSocketServer({port:k,host:"127.0.0.1",perMessageDeflate:!1});r.__wss=l,r.__wsPort=k,k!==f?console.error(`[ws-server] WebSocket server listening on port ${k} (preferred ${f} was occupied)`):console.error(`[ws-server] WebSocket server listening on port ${k}`);let o=()=>{l.close(),r.__wss=void 0,r.__wsPort=void 0};process.once("SIGINT",o),process.once("SIGTERM",o),l.on("connection",(a,b)=>{let c,f=b.headers.origin??"";if(!(c=parseInt(process.env.PORT||"3000",10),new Set([`http://localhost:${c}`,`http://127.0.0.1:${c}`])).has(f)){console.error(`[ws-server] Rejected origin: ${f||"(none)"}`),a.close(1008,"Forbidden");return}let g=new URL(b.url??"/",`http://localhost:${k}`),l=g.searchParams.get("taskId");if(!l)return void a.close(1008,"Missing taskId");let o=(0,j.parsePreviewWsParams)(g.searchParams);if(o){let b=(0,i.getPreviewSession)(o.previewKey),c=null,e=null;function r(){if(b){if(e=b.subscribe(o.connectionId,o.taskId??"unknown",c=>{if("state"===o.role)try{a.send(JSON.stringify({type:"state",previewKey:b.key,state:c}))}catch{}},b=>{if("terminal"===o.role)try{a.send(b)}catch{}}),"terminal"===o.role){let c=b.getBuffer();if(c.length>0)try{a.send(c.join("\n")+"\n")}catch{}}if("state"===o.role)try{a.send(JSON.stringify({type:"state",previewKey:b.key,state:b.getState()}))}catch{}}}if(b)r();else{let e=0;c=setInterval(()=>{e+=500,(b=(0,i.getPreviewSession)(o.previewKey))?(clearInterval(c),c=null,r()):(e>=3e4||a.readyState!==d.WebSocket.OPEN)&&(clearInterval(c),c=null,a.readyState===d.WebSocket.OPEN&&a.close(1008,"No preview session created within timeout."))},500)}a.on("close",()=>{c&&(clearInterval(c),c=null),e&&(e(),e=null)}),a.on("error",()=>{c&&(clearInterval(c),c=null),e&&(e(),e=null)});return}if("__notifications__"===l){m(a),a.on("close",()=>n(a)),a.on("error",()=>n(a));return}console.error(`[ws-server] Connection for task ${l}`);let s=(0,e.getSession)(l),t=null;if(s)p(s,a,l),console.error(`[ws-server] Attached to existing session for task ${l}`);else{console.error(`[ws-server] No session for task ${l} — polling...`);let b=0;t=setInterval(()=>{b+=500,(s=(0,e.getSession)(l))?(clearInterval(t),t=null,p(s,a,l),console.error(`[ws-server] Session appeared for task ${l} after ${b}ms`)):(b>=3e4||a.readyState!==d.WebSocket.OPEN)&&(clearInterval(t),t=null,a.readyState===d.WebSocket.OPEN&&a.close(1008,"No PTY session created within timeout."))},500)}a.on("message",a=>{if(!s)return;let b=a.toString();if(b.startsWith("{"))try{let a=JSON.parse(b);if("resize"===a.type&&"number"==typeof a.cols&&"number"==typeof a.rows)return void s.resize(a.cols,a.rows)}catch{}s.write(b)}),a.on("close",()=>{a._batcher?.flush();let b=q.get(l);if(!b?.has(a)||(b.delete(a),console.error(`[ws-server] WS disconnected for task ${l} (${b.size} remaining)`),b.size>0))return;q.delete(l);let c=(0,e.getSession)(l);if(!c)return;if(c.setDataListener(()=>{}),l===h.ASSISTANT_SESSION_KEY){console.error("[ws-server] Assistant session disconnected — destroying immediately"),(0,e.destroySession)(l);return}let d=c.killed?3e5:72e5;c.disconnectTimer=setTimeout(()=>{console.error(`[ws-server] Keepalive expired for task ${l}`),(0,e.destroySession)(l)},d)}),a.on("error",b=>{console.error(`[ws-server] WS error for task ${l}:`,b.message),t&&(clearInterval(t),t=null);let c=q.get(l);if(!c?.has(a)||(c.delete(a),c.size>0))return;q.delete(l);let d=(0,e.getSession)(l);d&&!d.killed&&d.setDataListener(()=>{})})})}function p(a,b,c){var e;let g,h;a.disconnectTimer&&(clearTimeout(a.disconnectTimer),a.disconnectTimer=null);let i=q.get(c);i||(i=new Set,q.set(c,i)),i.add(b);let j=(e=b,g="",h=null,{send:a=>{g+=a,h||(h=setTimeout(()=>{h=null,e.readyState===d.WebSocket.OPEN&&e.bufferedAmount<65536&&e.send(g),g=""},8))},flush:()=>{h&&(clearTimeout(h),h=null),g&&e.readyState===d.WebSocket.OPEN&&e.bufferedAmount<65536&&e.send(g),g=""}});b._batcher=j;let k=i;a.setDataListener(a=>{for(let b of k){let c=b._batcher;c?c.send(a):b.readyState===d.WebSocket.OPEN&&b.send(a)}});let l=a.getBuffer();if(l&&b.readyState===d.WebSocket.OPEN){let a=(0,f.stripDeviceQueries)(l);a.length!==l.length&&console.error(`[ws-server] Stripped ${l.length-a.length} bytes of device-query sequences from replay for task ${c} (prevents phantom PTY input on reconnect)`),b.send(a)}a.setExitListener(a=>{let b=function(a){if(null==a)return 4255;let b=Number(a);if(!Number.isFinite(b))return 4255;let c=4e3+(b>=0&&b<256?0|b:b>>>0&255);return c<1e3||c>4999?4255:c}(a);for(let a of k)a.readyState===d.WebSocket.OPEN&&a.close(b,"session_end")})}a.s(["addNotificationClient",0,m,"broadcastNotification",0,function(a){let b=JSON.stringify(a);for(let a of l())a.readyState===d.WebSocket.OPEN&&a.send(b)},"getActiveWsPort",0,function(){return r.__wsPort??null},"removeNotificationClient",0,n,"startWsServer",0,o]),c()}catch(a){c(a)}},!1)];
4
-
5
- //# sourceMappingURL=src_lib_03x1i~1._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_08gthaz._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_090~6pq._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_0k8dkbn._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_0knbpxk._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_0p_iehl._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_0qve1ri._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_0s35u~4._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_0x2ui80._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_0ypc5_d._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(a=>Promise.resolve().then(()=>a(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
2
-
3
- //# sourceMappingURL=src_lib_10jh2mz._.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,967489,e=>{"use strict";var t=e.i(289721);e.s([],648333),e.i(648333);var r=e.i(965652),n=e.i(416369),l=e.i(362891),o=e.i(903224),i=e.i(528796),s=e.i(314757),a=e.i(804849),u=e.i(887642),c=e.i(20746),d=e.i(812901),p=e.i(956741),f=e.i(430557),m=e.i(594640),g=e.i(592604),h=e.i(306296),v=e.i(234951),b=e.i(471959);e.i(708878);var S=e.i(462902);let x=r.createContext(null),y=r.createContext(null);function w(){let e=r.useContext(x);if(null===e)throw Error((0,S.default)(60));return e}function E(){let e=r.useContext(y);if(null===e)throw Error((0,S.default)(61));return e}var M=e.i(890514),R=e.i(103353),A=e.i(193214),I=e.i(596290);let C=(e,t)=>Object.is(e,t);function T(e,t,r){return null==e||null==t?Object.is(e,t):r(e,t)}function P(e,t,r){return e&&0!==e.length?e.findIndex(e=>void 0!==e&&T(e,t,r)):-1}function j(e){if(null==e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}function k(e){return null!=e&&e.length>0&&"object"==typeof e[0]&&null!=e[0]&&"items"in e[0]}function V(e,t){return t&&null!=e?t(e)??"":e&&"object"==typeof e&&"value"in e&&"label"in e?j(e.value):j(e)}function L(e,t,r){function n(){if(r&&null!=e)return r(e)??"";if(e&&"object"==typeof e){if("label"in e&&null!=e.label)return String(e.label);if("value"in e)return String(e.value)}return j(e)}if(r&&null!=e)return r(e);if(e&&"object"==typeof e&&"label"in e&&null!=e.label)return e.label;if(t&&!Array.isArray(t))return t[e]??n();if(Array.isArray(t)){let r=k(t)?t.flatMap(e=>e.items):t;if(null==e||"object"!=typeof e){let t=r.find(t=>t.value===e);return t&&null!=t.label?t.label:n()}if("value"in e){let t=r.find(t=>t&&t.value===e.value);if(t&&null!=t.label)return t.label}}return n()}let O={id:(0,I.createSelector)(e=>e.id),labelId:(0,I.createSelector)(e=>e.labelId),modal:(0,I.createSelector)(e=>e.modal),multiple:(0,I.createSelector)(e=>e.multiple),items:(0,I.createSelector)(e=>e.items),itemToStringLabel:(0,I.createSelector)(e=>e.itemToStringLabel),itemToStringValue:(0,I.createSelector)(e=>e.itemToStringValue),isItemEqualToValue:(0,I.createSelector)(e=>e.isItemEqualToValue),value:(0,I.createSelector)(e=>e.value),hasSelectedValue:(0,I.createSelector)(e=>{let{value:t,multiple:r,itemToStringValue:n}=e;return null!=t&&(r&&Array.isArray(t)?t.length>0:""!==V(t,n))}),hasNullItemLabel:(0,I.createSelector)((e,t)=>!!t&&function(e){if(!Array.isArray(e))return null!=e&&"null"in e;if(k(e)){for(let t of e)for(let e of t.items)if(e&&null==e.value&&null!=e.label)return!0;return!1}for(let t of e)if(t&&null==t.value&&null!=t.label)return!0;return!1}(e.items)),open:(0,I.createSelector)(e=>e.open),mounted:(0,I.createSelector)(e=>e.mounted),forceMount:(0,I.createSelector)(e=>e.forceMount),transitionStatus:(0,I.createSelector)(e=>e.transitionStatus),openMethod:(0,I.createSelector)(e=>e.openMethod),activeIndex:(0,I.createSelector)(e=>e.activeIndex),selectedIndex:(0,I.createSelector)(e=>e.selectedIndex),isActive:(0,I.createSelector)((e,t)=>e.activeIndex===t),isSelected:(0,I.createSelector)((e,t,r)=>{let n=e.isItemEqualToValue,l=e.value;return e.multiple?Array.isArray(l)&&l.some(e=>T(r,e,n)):e.selectedIndex===t&&null!==e.selectedIndex||T(r,l,n)}),isSelectedByFocus:(0,I.createSelector)((e,t)=>e.selectedIndex===t),popupProps:(0,I.createSelector)(e=>e.popupProps),triggerProps:(0,I.createSelector)(e=>e.triggerProps),triggerElement:(0,I.createSelector)(e=>e.triggerElement),positionerElement:(0,I.createSelector)(e=>e.positionerElement),listElement:(0,I.createSelector)(e=>e.listElement),scrollUpArrowVisible:(0,I.createSelector)(e=>e.scrollUpArrowVisible),scrollDownArrowVisible:(0,I.createSelector)(e=>e.scrollDownArrowVisible),hasScrollArrows:(0,I.createSelector)(e=>e.hasScrollArrows)};var D=e.i(67077),N=e.i(586622),U=e.i(504068),H=e.i(571870),F=e.i(421689),B=e.i(954588),z=e.i(353052),_=e.i(892069),q=e.i(565455),Y=e.i(581263),$=e.i(551974),W=e.i(397791);let K=r.forwardRef(function(e,t){let{render:r,className:n,...l}=e;delete l.id;let o=(0,M.useFieldRootContext)(),{store:i}=w(),s=(0,d.useStore)(i,O.triggerElement),a=(0,d.useStore)(i,O.id),u=null==a?void 0:`${a}-label`,c=(0,W.useLabel)({id:u,fallbackControlId:s?.id??a,setLabelId(e){i.set("labelId",e)}});return(0,Y.useRenderElement)("div",e,{ref:t,state:o.state,props:[c,l],stateAttributesMapping:$.fieldValidityMapping})});var X=e.i(102094),G=e.i(161476),J=e.i(179279),Q=e.i(845756),Z=e.i(748299),ee=e.i(682354),et=e.i(282109);let er={...Q.pressableTriggerOpenStateMapping,...$.fieldValidityMapping,value:()=>null},en=r.forwardRef(function(e,t){let{render:n,className:o,id:i,disabled:s=!1,nativeButton:a=!0,...p}=e,{setTouched:f,setFocused:m,validationMode:g,state:h,disabled:v}=(0,M.useFieldRootContext)(),{labelId:b}=(0,J.useLabelableContext)(),{store:S,setOpen:x,selectionRef:y,validation:E,readOnly:A,required:I,alignItemWithTriggerActiveRef:C,disabled:T,keyboardActiveRef:P}=w(),j=v||T||s,k=(0,d.useStore)(S,O.open),V=(0,d.useStore)(S,O.value),L=(0,d.useStore)(S,O.triggerProps),U=(0,d.useStore)(S,O.positionerElement),H=(0,d.useStore)(S,O.listElement),F=(0,d.useStore)(S,O.id),B=(0,d.useStore)(S,O.labelId),z=(0,d.useStore)(S,O.hasSelectedValue),_=!z&&k,$=(0,d.useStore)(S,O.hasNullItemLabel,_),W=i??F;(0,R.useLabelableId)({id:W});let K=(0,c.useValueAsRef)(U),Q=r.useRef(null),{getButtonProps:en,buttonRef:el}=(0,et.useButton)({disabled:j,native:a}),eo=(0,u.useStableCallback)(e=>{S.set("triggerElement",e)}),ei=(0,l.useMergedRefs)(t,Q,el,eo),es=(0,G.useTimeout)(),ea=(0,G.useTimeout)(),eu=(0,G.useTimeout)(),ec=(0,G.useTimeout)();r.useEffect(()=>{if(k)return z||$?ec.start(200,()=>{y.current.allowUnselectedMouseUp=!0,eu.start(200,()=>{y.current.allowSelectedMouseUp=!0})}):eu.start(400,()=>{y.current.allowUnselectedMouseUp=!0,y.current.allowSelectedMouseUp=!0}),()=>{eu.clear(),ec.clear()};y.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1},ea.clear()},[k,z,$,y,ea,eu,ec]);let ed=r.useMemo(()=>H?.id??(0,ee.getFloatingFocusElement)(U)?.id,[H,U]),ep=(0,q.mergeProps)(L,{id:W,role:"combobox","aria-expanded":k?"true":"false","aria-haspopup":"listbox","aria-controls":k?ed:void 0,"aria-labelledby":b??B,"aria-readonly":A||void 0,"aria-required":I||void 0,tabIndex:j?-1:0,ref:ei,onFocus(e){m(!0),k&&C.current&&x(!1,(0,D.createChangeEventDetails)(N.REASONS.none,e.nativeEvent)),es.start(0,()=>{S.set("forceMount",!0)})},onBlur(e){(0,ee.contains)(U,e.relatedTarget)||(f(!0),m(!1),"onBlur"===g&&E.commit(V))},onPointerMove(){P.current=!1},onKeyDown(){P.current=!0},onMouseDown(e){if(k)return;let t=(0,X.ownerDocument)(e.currentTarget);function r(e){if(!Q.current)return;let t=e.target;if((0,ee.contains)(Q.current,t)||(0,ee.contains)(K.current,t)||t===Q.current)return;let r=(0,Z.getPseudoElementBounds)(Q.current);e.clientX>=r.left-2&&e.clientX<=r.right+2&&e.clientY>=r.top-2&&e.clientY<=r.bottom+2||x(!1,(0,D.createChangeEventDetails)(N.REASONS.cancelOpen,e))}ea.start(0,()=>{t.addEventListener("mouseup",r,{once:!0})})}},E.getValidationProps,p,en);ep.role="combobox";let ef={...h,open:k,disabled:j,value:V,readOnly:A,placeholder:!z};return(0,Y.useRenderElement)("button",e,{ref:[t,Q],state:ef,stateAttributesMapping:er,props:ep})}),el={value:()=>null},eo=r.forwardRef(function(e,n){let{className:l,render:o,children:i,placeholder:s,...a}=e,{store:u,valueRef:c}=w(),p=(0,d.useStore)(u,O.value),f=(0,d.useStore)(u,O.items),m=(0,d.useStore)(u,O.itemToStringLabel),g=(0,d.useStore)(u,O.hasSelectedValue),h=(0,d.useStore)(u,O.hasNullItemLabel,!g&&null!=s&&null==i),v=null;if("function"==typeof i)v=i(p);else if(null!=i)v=i;else if(g||null==s||h)if(Array.isArray(p))v=p.reduce((e,n,l)=>(l>0&&e.push(", "),e.push((0,t.jsx)(r.Fragment,{children:L(n,f,m)},l)),e),[]);else v=L(p,f,m);else v=s;return(0,Y.useRenderElement)("span",e,{state:{value:p,placeholder:!g},ref:[n,c],props:[{children:v},a],stateAttributesMapping:el})}),ei=r.forwardRef(function(e,t){let{className:r,render:n,...l}=e,{store:o}=w(),i=(0,d.useStore)(o,O.open);return(0,Y.useRenderElement)("span",e,{state:{open:i},ref:t,props:[{"aria-hidden":!0,children:"▼"},l],stateAttributesMapping:Q.triggerOpenStateMapping})});var es=e.i(888393);let ea=r.createContext(void 0),eu=r.forwardRef(function(e,r){let{store:n}=w(),l=(0,d.useStore)(n,O.mounted),o=(0,d.useStore)(n,O.forceMount);return l||o?(0,t.jsx)(ea.Provider,{value:!0,children:(0,t.jsx)(es.FloatingPortal,{ref:r,...e})}):null});var ec=e.i(809058);let ed={...Q.popupStateMapping,...ec.transitionStatusMapping},ep=r.forwardRef(function(e,t){let{className:r,render:n,...l}=e,{store:o}=w(),i=(0,d.useStore)(o,O.open),s=(0,d.useStore)(o,O.mounted),a=(0,d.useStore)(o,O.transitionStatus);return(0,Y.useRenderElement)("div",e,{state:{open:i,transitionStatus:a},ref:t,props:[{role:"presentation",hidden:!s,style:{userSelect:"none",WebkitUserSelect:"none"}},l],stateAttributesMapping:ed})});var ef=e.i(831766),em=e.i(620163),eg=e.i(579028),eh=e.i(887943);let ev=r.createContext(void 0);function eb(){let e=r.useContext(ev);if(!e)throw Error((0,S.default)(59));return e}var eS=e.i(72287),ex=e.i(693354),ey=e.i(808754);function ew(e,t){e&&Object.assign(e.style,t)}let eE={position:"relative",maxHeight:"100%",overflowX:"hidden",overflowY:"auto"},eM={position:"fixed"},eR=r.forwardRef(function(e,n){let{anchor:l,positionMethod:o="absolute",className:i,render:s,side:c="bottom",align:p="center",sideOffset:f=0,alignOffset:m=0,collisionBoundary:g="clipping-ancestors",collisionPadding:h,arrowPadding:v=5,sticky:b=!1,disableAnchorTracking:S,alignItemWithTrigger:x=!0,collisionAvoidance:y=ex.DROPDOWN_COLLISION_AVOIDANCE,...M}=e,{store:R,listRef:A,labelsRef:I,alignItemWithTriggerActiveRef:C,selectedItemTextRef:j,valuesRef:k,initialValueRef:V,popupRef:L,setValue:U}=w(),H=E(),F=(0,d.useStore)(R,O.open),B=(0,d.useStore)(R,O.mounted),z=(0,d.useStore)(R,O.modal),_=(0,d.useStore)(R,O.value),q=(0,d.useStore)(R,O.openMethod),$=(0,d.useStore)(R,O.positionerElement),W=(0,d.useStore)(R,O.triggerElement),K=(0,d.useStore)(R,O.isItemEqualToValue),X=(0,d.useStore)(R,O.transitionStatus),G=r.useRef(null),J=r.useRef(null),[Z,ee]=r.useState(x),et=B&&Z&&"touch"!==q;B||Z===x||ee(x),(0,a.useIsoLayoutEffect)(()=>{!B&&(O.scrollUpArrowVisible(R.state)&&R.set("scrollUpArrowVisible",!1),O.scrollDownArrowVisible(R.state)&&R.set("scrollDownArrowVisible",!1))},[R,B]),r.useImperativeHandle(C,()=>et),(0,em.useScrollLock)((et||z)&&F&&"touch"!==q,W);let er=(0,eh.useAnchorPositioning)({anchor:l,floatingRootContext:H,positionMethod:o,mounted:B,side:c,sideOffset:f,align:p,alignOffset:m,arrowPadding:v,collisionBoundary:g,collisionPadding:h,sticky:b,disableAnchorTracking:S??et,collisionAvoidance:y,keepMounted:!0}),en=et?"none":er.side,el=et?eM:er.positionerStyles,eo=r.useMemo(()=>{let e={};return F||(e.pointerEvents="none"),{role:"presentation",hidden:!B,style:{...el,...e}}},[F,B,el]),ei={open:F,side:en,align:er.align,anchorHidden:er.anchorHidden},es=(0,u.useStableCallback)(e=>{R.set("positionerElement",e)}),ea=(0,Y.useRenderElement)("div",e,{ref:[n,es],state:ei,stateAttributesMapping:Q.popupStateMapping,props:[eo,(0,ey.getDisabledMountTransitionStyles)(X),M]}),eu=r.useRef(0),ec=(0,u.useStableCallback)(e=>{if(0===e.size&&0===eu.current||0===k.current.length)return;let t=eu.current;if(eu.current=e.size,e.size===t)return;let r=(0,D.createChangeEventDetails)(N.REASONS.none);if(0!==t&&!R.state.multiple&&null!==_&&-1===P(k.current,_,K)){let e=V.current,t=null!=e&&-1!==P(k.current,e,K)?e:null;U(t,r),null===t&&(R.set("selectedIndex",null),j.current=null)}if(0!==t&&R.state.multiple&&Array.isArray(_)){let e=_.filter(e=>-1!==P(k.current,e,K));(e.length!==_.length||e.some(e=>!(_&&0!==_.length&&_.some(t=>void 0!==t&&T(e,t,K)))))&&(U(e,r),0===e.length&&(R.set("selectedIndex",null),j.current=null))}if(F&&et){R.update({scrollUpArrowVisible:!1,scrollDownArrowVisible:!1});let e={height:""};ew($,e),ew(L.current,e)}}),ed=r.useMemo(()=>({...er,side:en,alignItemWithTriggerActive:et,setControlledAlignItemWithTrigger:ee,scrollUpArrowRef:G,scrollDownArrowRef:J}),[er,en,et,ee]);return(0,t.jsx)(eg.CompositeList,{elementsRef:A,labelsRef:I,onMapChange:ec,children:(0,t.jsxs)(ev.Provider,{value:ed,children:[B&&z&&(0,t.jsx)(eS.InternalBackdrop,{inert:(0,ef.inertValue)(!F),cutout:W}),ea]})})});var eA=e.i(585012),eI=e.i(641645),eC=e.i(442383),eT=e.i(285182);function eP(e){let t=e.currentTarget.getBoundingClientRect();return t.top+1<=e.clientY&&e.clientY<=t.bottom-1&&t.left+1<=e.clientX&&e.clientX<=t.right-1}var ej=e.i(946467),ek=e.i(11931),eV=e.i(278928),eL=e.i(685668),eO=e.i(196368),eD=e.i(197920),eN=e.i(867467),eU=e.i(743945);let eH={...Q.popupStateMapping,...ec.transitionStatusMapping},eF=r.forwardRef(function(e,n){let{render:l,className:o,finalFocus:i,...s}=e,{store:c,popupRef:p,onOpenChangeComplete:f,setOpen:m,valueRef:g,selectedItemTextRef:h,keyboardActiveRef:v,multiple:b,handleScrollArrowVisibility:S,scrollHandlerRef:x,highlightItemOnHover:y}=w(),{side:M,align:R,alignItemWithTriggerActive:A,setControlledAlignItemWithTrigger:I,scrollDownArrowRef:C,scrollUpArrowRef:T}=eb(),P=null!=(0,eO.useToolbarRootContext)(!0),j=E(),{nonce:k,disableStyleElements:V}=(0,eU.useCSPContext)(),L=(0,G.useTimeout)(),H=(0,d.useStore)(c,O.id),F=(0,d.useStore)(c,O.open),B=(0,d.useStore)(c,O.mounted),z=(0,d.useStore)(c,O.popupProps),_=(0,d.useStore)(c,O.transitionStatus),q=(0,d.useStore)(c,O.triggerElement),$=(0,d.useStore)(c,O.positionerElement),W=(0,d.useStore)(c,O.listElement),K=r.useRef(0),J=r.useRef(!1),Q=r.useRef(0),Z=r.useRef(!1),ee=r.useRef({}),et=(0,ej.useAnimationFrame)(),er=(0,u.useStableCallback)(e=>{if(!$||!p.current||!Z.current)return;if(J.current||!A)return void S();let t="0px"===$.style.top,r="0px"===$.style.bottom,n=$.getBoundingClientRect().height,l=(0,X.ownerDocument)($),o=getComputedStyle($),i=parseFloat(o.marginTop),s=parseFloat(o.marginBottom),a=eB(getComputedStyle(p.current)),u=Math.min(l.documentElement.clientHeight-i-s,a),c=e.scrollTop,d=ez(e),f=0,m=null,g=!1,h=!1,v=e=>{$.style.height=`${e}px`},b=(t,r)=>{let l=(0,eN.clamp)(t,0,u-n);l>0&&v(n+l),e.scrollTop=r,u-(n+l)<=1&&(J.current=!0),S()};if(t){let e=d-c,t=Math.min(n+e,u);if(f=t,e<=1)return void b(e,d);u-t>1?h=!0:g=!0}else if(r){let e=n+c,t=Math.min(e,u);if(f=t,c<=1)return void b(c,0);u-t>1?m=0:(g=!0,c<d&&(m=c-(c-(e-u))))}if(0!==(f=Math.ceil(f))&&v(f),h||null!=m){let t=ez(e),r=h?t:(0,eN.clamp)(m,0,t);Math.abs(e.scrollTop-r)>1&&(e.scrollTop=r)}(g||f>=u-1)&&(J.current=!0),S()});r.useImperativeHandle(x,()=>er,[er]),(0,U.useOpenChangeComplete)({open:F,ref:p,onComplete(){F&&f?.(!0)}}),(0,a.useIsoLayoutEffect)(()=>{$&&p.current&&!Object.keys(ee.current).length&&(ee.current={top:$.style.top||"0",left:$.style.left||"0",right:$.style.right,height:$.style.height,bottom:$.style.bottom,minHeight:$.style.minHeight,maxHeight:$.style.maxHeight,marginTop:$.style.marginTop,marginBottom:$.style.marginBottom})},[p,$]),(0,a.useIsoLayoutEffect)(()=>{F||A||(Z.current=!1,J.current=!1,K.current=0,Q.current=0,ew($,ee.current))},[F,A,$,p]),(0,a.useIsoLayoutEffect)(()=>{let e=p.current;if(F&&q&&$&&e&&"ending"!==c.state.transitionStatus){if(!A){Z.current=!0,et.request(S),e.style.removeProperty("--transform-origin");return}queueMicrotask(()=>{let t=function(e){let{style:t}=e,r={};for(let[e,n]of eq)r[e]=t.getPropertyValue(e),t.setProperty(e,n,"important");return()=>{for(let[e]of eq){let n=r[e];n?t.setProperty(e,n):t.removeProperty(e)}}}(e);e.style.removeProperty("--transform-origin");try{var r;let t,n=getComputedStyle($),l=getComputedStyle(e),o=(0,X.ownerDocument)(q),i=(0,eT.ownerWindow)($),s=(r=q,eV.platform.getScale(r)),a=e_(q.getBoundingClientRect(),s),u=e_($.getBoundingClientRect(),s),c=a.left,d=a.height,p=W||e,f=p.scrollHeight,m=parseFloat(l.borderBottomWidth),v=parseFloat(n.marginTop)||10,b=parseFloat(n.marginBottom)||10,x=parseFloat(n.minHeight)||100,y=eB(l),w=o.documentElement.clientHeight-v-b,E=o.documentElement.clientWidth,M=w-a.bottom+d,R=h.current,A=g.current,C=0,T=0;if(R&&A){let e=e_(A.getBoundingClientRect(),s);t=e_(R.getBoundingClientRect(),s);let r=e.left-c,n=t.left-u.left,l=e.top-a.top+e.height/2,o=t.top-u.top+t.height/2;C=r-n,T=o-l}let P=M+T+b+m,j=Math.min(w,P),k=w-v-b,V=P-j,L=Math.max(5,c+C),O=Math.max(0,L+u.width-(E-5));$.style.left=`${L-O}px`,$.style.height=`${j}px`,$.style.maxHeight="auto",$.style.marginTop=`${v}px`,$.style.marginBottom=`${b}px`,e.style.height="100%";let D=ez(p),N=V>=D-1;N&&(j=Math.min(w,u.height)-(V-D));let U=a.top<20||a.bottom>w-20||Math.ceil(j)+1<Math.min(f,x),H=(i.visualViewport?.scale??1)!==1&&eC.isWebKit;if(U||H){Z.current=!0,ew($,ee.current),eA.flushSync(()=>I(!1));return}if(N){let e=Math.max(0,w-P);$.style.top=u.height>=k?"0":`${e}px`,$.style.height=`${j}px`,p.scrollTop=ez(p),K.current=Math.max(x,j)}else $.style.bottom="0",K.current=Math.max(x,j),p.scrollTop=V;if(t){let r=u.top,n=u.height,l=t.top+t.height/2,o=(0,eN.clamp)(n>0?(l-r)/n*100:50,0,100);e.style.setProperty("--transform-origin",`50% ${o}%`)}(K.current===w||j>=y)&&(J.current=!0),S(),setTimeout(()=>{Z.current=!0})}finally{t()}})}},[c,F,$,q,g,h,p,S,A,I,et,C,T,W]),r.useEffect(()=>{if(!A||!$||!F)return;let e=(0,eT.ownerWindow)($);function t(e){m(!1,(0,D.createChangeEventDetails)(N.REASONS.windowResize,e))}return e.addEventListener("resize",t),()=>{e.removeEventListener("resize",t)}},[m,A,$,F]);let en={...W?{role:"presentation","aria-orientation":void 0}:{role:"listbox","aria-multiselectable":b||void 0,id:`${H}-list`},onKeyDown(e){v.current=!0,P&&eD.COMPOSITE_KEYS.has(e.key)&&e.stopPropagation()},onMouseMove(){v.current=!1},onPointerLeave(e){if(!y||eP(e)||"touch"===e.pointerType)return;let t=e.currentTarget;L.start(0,()=>{c.set("activeIndex",null),t.focus({preventScroll:!0})})},onScroll(e){W||er(e.currentTarget)},...A&&{style:W?{height:"100%"}:eE}},el=(0,Y.useRenderElement)("div",e,{ref:[n,p],state:{open:F,transitionStatus:_,side:M,align:R},stateAttributesMapping:eH,props:[z,en,(0,ey.getDisabledMountTransitionStyles)(_),{className:!W&&A?eL.styleDisableScrollbar.className:void 0},s]});return(0,t.jsxs)(r.Fragment,{children:[!V&&eL.styleDisableScrollbar.getElement(k),(0,t.jsx)(ek.FloatingFocusManager,{context:j,modal:!1,disabled:!B,returnFocus:i,restoreFocus:!0,children:el})]})});function eB(e){let t=e.maxHeight||"";return t.endsWith("px")&&parseFloat(t)||1/0}function ez(e){return Math.max(0,e.scrollHeight-e.clientHeight)}function e_(e,t){return(0,eI.rectToClientRect)({x:e.x/t.x,y:e.y/t.y,width:e.width/t.x,height:e.height/t.y})}let eq=[["transform","none"],["scale","1"],["translate","0 0"]],eY=r.forwardRef(function(e,t){let{className:r,render:n,...l}=e,{store:o,scrollHandlerRef:i}=w(),{alignItemWithTriggerActive:s}=eb(),a=(0,d.useStore)(o,O.hasScrollArrows),c=(0,d.useStore)(o,O.openMethod),p=(0,d.useStore)(o,O.multiple),f=(0,d.useStore)(o,O.id),m={id:`${f}-list`,role:"listbox","aria-multiselectable":p||void 0,onScroll(e){i.current?.(e.currentTarget)},...s&&{style:eE},className:a&&"touch"!==c?eL.styleDisableScrollbar.className:void 0},g=(0,u.useStableCallback)(e=>{o.set("listElement",e)});return(0,Y.useRenderElement)("div",e,{ref:[t,g],props:[m,l]})});var e$=e.i(655728);let eW=r.createContext(void 0);function eK(){let e=r.useContext(eW);if(!e)throw Error((0,S.default)(57));return e}let eX=r.memo(r.forwardRef(function(e,n){let{render:l,className:o,value:i=null,label:s,disabled:u=!1,nativeButton:p=!1,...f}=e,m=r.useRef(null),g=(0,e$.useCompositeListItem)({label:s,textRef:m,indexGuessBehavior:e$.IndexGuessBehavior.GuessFromOrder}),{store:h,getItemProps:v,setOpen:b,setValue:S,selectionRef:x,typingRef:y,valuesRef:E,keyboardActiveRef:M,multiple:R,highlightItemOnHover:A}=w(),I=(0,G.useTimeout)(),C=(0,d.useStore)(h,O.isActive,g.index),P=(0,d.useStore)(h,O.isSelected,g.index,i),j=(0,d.useStore)(h,O.isSelectedByFocus,g.index),k=(0,d.useStore)(h,O.isItemEqualToValue),V=g.index,L=-1!==V,U=r.useRef(null),H=(0,c.useValueAsRef)(V);(0,a.useIsoLayoutEffect)(()=>{if(!L)return;let e=E.current;return e[V]=i,()=>{delete e[V]}},[L,V,i,E]),(0,a.useIsoLayoutEffect)(()=>{if(!L)return;let e=h.state.value,t=e;R&&Array.isArray(e)&&e.length>0&&(t=e[e.length-1]),void 0!==t&&T(i,t,k)&&h.set("selectedIndex",V)},[L,V,R,k,h,i]);let F=v({active:C,selected:P});F.onFocus=void 0,F.id=void 0;let B=r.useRef(null),z=r.useRef("mouse"),_=r.useRef(!1),{getButtonProps:q,buttonRef:$}=(0,et.useButton)({disabled:u,focusableWhenDisabled:!0,native:p,composite:!0}),W=(0,Y.useRenderElement)("div",e,{ref:[$,n,g.ref,U],state:{disabled:u,selected:P,highlighted:C},props:[F,{role:"option","aria-selected":P,tabIndex:C?0:-1,onFocus(){h.set("activeIndex",V)},onMouseEnter(){!M.current&&null===h.state.selectedIndex&&A&&h.set("activeIndex",V)},onMouseMove(){A&&h.set("activeIndex",V)},onMouseLeave(e){!A||M.current||eP(e)||I.start(0,()=>{h.state.activeIndex===V&&h.set("activeIndex",null)})},onTouchStart(){x.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}},onKeyDown(e){B.current=e.key,h.set("activeIndex",V)," "===e.key&&y.current&&e.preventDefault()},onClick(e){_.current=!1,"keydown"===e.type&&null===B.current||u||"keydown"===e.type&&" "===B.current&&y.current||"touch"!==z.current&&!C||(B.current=null,function(e){let t=h.state.value;if(R){let r=Array.isArray(t)?t:[];S(P?r.filter(e=>!T(i,e,k)):[...r,i],(0,D.createChangeEventDetails)(N.REASONS.itemPress,e))}else S(i,(0,D.createChangeEventDetails)(N.REASONS.itemPress,e)),b(!1,(0,D.createChangeEventDetails)(N.REASONS.itemPress,e))}(e.nativeEvent))},onPointerEnter(e){z.current=e.pointerType},onPointerDown(e){z.current=e.pointerType,_.current=!0},onMouseUp(){if(u)return;if(_.current){_.current=!1;return}let e=!x.current.allowSelectedMouseUp&&P,t=!x.current.allowUnselectedMouseUp&&!P;e||t||"touch"!==z.current&&!C||U.current?.click()}},f,q]}),K=r.useMemo(()=>({selected:P,indexRef:H,textRef:m,selectedByFocus:j,hasRegistered:L}),[P,H,m,j,L]);return(0,t.jsx)(eW.Provider,{value:K,children:W})})),eG=r.forwardRef(function(e,r){let n=e.keepMounted??!1,{selected:l}=eK();return n||l?(0,t.jsx)(eJ,{...e,ref:r}):null}),eJ=r.memo(r.forwardRef((e,t)=>{let{render:n,className:l,keepMounted:o,...i}=e,{selected:s}=eK(),a=r.useRef(null),{transitionStatus:u,setMounted:c}=(0,A.useTransitionStatus)(s),d=(0,Y.useRenderElement)("span",e,{ref:[t,a],state:{selected:s,transitionStatus:u},props:[{"aria-hidden":!0,children:"✔️"},i],stateAttributesMapping:ec.transitionStatusMapping});return(0,U.useOpenChangeComplete)({open:s,ref:a,onComplete(){s||c(!1)}}),d})),eQ=r.memo(r.forwardRef(function(e,t){let{indexRef:n,textRef:l,selectedByFocus:o,hasRegistered:i}=eK(),{selectedItemTextRef:s}=w(),{className:a,render:u,...c}=e,d=r.useCallback(e=>{if(!e||!i)return;let t=null===s.current||!s.current.isConnected;(o||t&&0===n.current)&&(s.current=e)},[s,n,o,i]);return(0,Y.useRenderElement)("div",e,{ref:[d,t,l],props:c})})),eZ={...Q.popupStateMapping,...ec.transitionStatusMapping},e0=r.forwardRef(function(e,t){let{className:r,render:n,...l}=e,{store:o}=w(),{side:i,align:s,arrowRef:a,arrowStyles:u,arrowUncentered:c,alignItemWithTriggerActive:p}=eb(),f=(0,d.useStore)(o,O.open,!0),m=(0,Y.useRenderElement)("div",e,{state:{open:f,side:i,align:s,uncentered:c},ref:[a,t],props:[{style:u,"aria-hidden":!0},l],stateAttributesMapping:eZ});return p?null:m}),e1=r.forwardRef(function(e,t){let{render:r,className:n,direction:l,keepMounted:o=!1,...i}=e,{store:s,popupRef:u,listRef:c,handleScrollArrowVisibility:p,scrollArrowsMountedCountRef:f}=w(),{side:m,scrollDownArrowRef:g,scrollUpArrowRef:h}=eb(),v="up"===l?O.scrollUpArrowVisible:O.scrollDownArrowVisible,b=(0,d.useStore)(s,v),S=(0,d.useStore)(s,O.openMethod),x=b&&"touch"!==S,y=(0,G.useTimeout)(),E="up"===l?h:g,{transitionStatus:M,setMounted:R}=(0,A.useTransitionStatus)(x);(0,a.useIsoLayoutEffect)(()=>(f.current+=1,s.state.hasScrollArrows||s.set("hasScrollArrows",!0),()=>{f.current=Math.max(0,f.current-1),0===f.current&&s.state.hasScrollArrows&&s.set("hasScrollArrows",!1)}),[s,f]),(0,U.useOpenChangeComplete)({open:x,ref:E,onComplete(){x||R(!1)}});let I=(0,Y.useRenderElement)("div",e,{ref:[t,E],state:{direction:l,visible:x,side:m,transitionStatus:M},props:[{"aria-hidden":!0,children:"up"===l?"▲":"▼",style:{position:"absolute"},onMouseMove(e){0===e.movementX&&0===e.movementY||y.isStarted()||(s.set("activeIndex",null),y.start(40,function e(){let t=s.state.listElement??u.current;if(!t)return;s.set("activeIndex",null),p();let r=0===t.scrollTop,n=Math.round(t.scrollTop+t.clientHeight)>=t.scrollHeight;if(0===c.current.length&&("up"===l?s.set("scrollUpArrowVisible",!r):s.set("scrollDownArrowVisible",!n)),"up"===l&&r||"down"===l&&n)return void y.clear();if((s.state.listElement||u.current)&&c.current&&c.current.length>0){let e=c.current,r=E.current?.offsetHeight||0;if("up"===l){let n=0,l=t.scrollTop+r;for(let t=0;t<e.length;t+=1){let r=e[t];if(r&&r.offsetTop>=l){n=t;break}}let o=Math.max(0,n-1);if(o<n){let n=e[o];n&&(t.scrollTop=Math.max(0,n.offsetTop-r))}else t.scrollTop=0}else{let n=e.length-1,l=t.scrollTop+t.clientHeight-r;for(let t=0;t<e.length;t+=1){let r=e[t];if(r&&r.offsetTop+r.offsetHeight>l){n=Math.max(0,t-1);break}}let o=Math.min(e.length-1,n+1);if(o>n){let n=e[o];n&&(t.scrollTop=n.offsetTop+n.offsetHeight-t.clientHeight+r)}else t.scrollTop=t.scrollHeight-t.clientHeight}}y.start(40,e)}))},onMouseLeave(){y.clear()}},i]});return x||o?I:null}),e5=r.forwardRef(function(e,r){return(0,t.jsx)(e1,{...e,ref:r,direction:"down"})}),e2=r.forwardRef(function(e,r){return(0,t.jsx)(e1,{...e,ref:r,direction:"up"})}),e4=r.createContext(void 0),e8=r.forwardRef(function(e,n){let{className:l,render:o,...i}=e,[s,a]=r.useState(),u=r.useMemo(()=>({labelId:s,setLabelId:a}),[s,a]),c=(0,Y.useRenderElement)("div",e,{ref:n,props:[{role:"group","aria-labelledby":s},i]});return(0,t.jsx)(e4.Provider,{value:u,children:c})});var e9=e.i(207516);let e6=r.forwardRef(function(e,t){let{className:n,render:l,id:o,...i}=e,{setLabelId:s}=function(){let e=r.useContext(e4);if(void 0===e)throw Error((0,S.default)(56));return e}(),u=(0,e9.useBaseUiId)(o);return(0,a.useIsoLayoutEffect)(()=>{s(u)},[u,s]),(0,Y.useRenderElement)("div",e,{ref:t,props:[{id:u},i]})});var e7=e.i(983640);e.s(["Arrow",0,e0,"Backdrop",0,ep,"Group",0,e8,"GroupLabel",0,e6,"Icon",0,ei,"Item",0,eX,"ItemIndicator",0,eG,"ItemText",0,eQ,"Label",0,K,"List",0,eY,"Popup",0,eF,"Portal",0,eu,"Positioner",0,eR,"Root",0,function(e){let{id:S,value:w,defaultValue:E=null,onValueChange:I,open:T,defaultOpen:j=!1,onOpenChange:k,name:L,autoComplete:Y,disabled:$=!1,readOnly:W=!1,required:K=!1,modal:X=!0,actionsRef:G,inputRef:J,onOpenChangeComplete:Q,items:Z,multiple:ee=!1,itemToStringLabel:et,itemToStringValue:er,isItemEqualToValue:en=C,highlightItemOnHover:el=!0,children:eo}=e,{clearErrors:ei}=(0,H.useFormContext)(),{setDirty:es,setTouched:ea,setFocused:eu,shouldValidateOnChange:ec,validityData:ed,setFilled:ep,name:ef,disabled:em,validation:eg,validationMode:eh}=(0,M.useFieldRootContext)(),ev=(0,R.useLabelableId)({id:S}),eb=em||$,eS=ef??L,[ex,ey]=(0,s.useControlled)({controlled:w,default:ee?E??B.EMPTY_ARRAY:E,name:"Select",state:"value"}),[ew,eE]=(0,s.useControlled)({controlled:T,default:j,name:"Select",state:"open"}),eM=r.useRef([]),eR=r.useRef([]),eA=r.useRef(null),eI=r.useRef(null),eC=r.useRef(0),eT=r.useRef(null),eP=r.useRef([]),ej=r.useRef(!1),ek=r.useRef(!1),eV=r.useRef(null),eL=r.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}),eO=r.useRef(!1),{mounted:eD,setMounted:eN,transitionStatus:eU}=(0,A.useTransitionStatus)(ew),{openMethod:eH,triggerProps:eF}=(0,_.useOpenInteractionType)(ew),eB=(0,o.useRefWithInit)(()=>new p.Store({id:ev,labelId:void 0,modal:X,multiple:ee,itemToStringLabel:et,itemToStringValue:er,isItemEqualToValue:en,value:ex,open:ew,mounted:eD,transitionStatus:eU,items:Z,forceMount:!1,openMethod:null,activeIndex:null,selectedIndex:null,popupProps:{},triggerProps:{},triggerElement:null,positionerElement:null,listElement:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1,hasScrollArrows:!1})).current,ez=(0,d.useStore)(eB,O.activeIndex),e_=(0,d.useStore)(eB,O.selectedIndex),eq=(0,d.useStore)(eB,O.triggerElement),eY=(0,d.useStore)(eB,O.positionerElement),e$=r.useMemo(()=>ee&&Array.isArray(ex)&&0===ex.length?"":V(ex,er),[ee,ex,er]),eW=r.useMemo(()=>ee&&Array.isArray(ex)?ex.map(e=>V(e,er)):V(ex,er),[ee,ex,er]),eK=(0,c.useValueAsRef)(eB.state.triggerElement);(0,F.useField)({id:ev,commit:eg.commit,value:ex,controlRef:eK,name:eS,getValue:()=>eW});let eX=r.useRef(ex);(0,a.useIsoLayoutEffect)(()=>{ex!==eX.current&&eB.set("forceMount",!0)},[eB,ex]),(0,a.useIsoLayoutEffect)(()=>{ep(ee?Array.isArray(ex)&&ex.length>0:null!=ex)},[ee,ex,ep]),(0,a.useIsoLayoutEffect)(function(){if(ew)return;let e=eP.current;if(ee){let t=Array.isArray(ex)?ex:[];if(0===t.length)return void eB.set("selectedIndex",null);let r=P(e,t[t.length-1],en);return void eB.set("selectedIndex",-1===r?null:r)}let t=P(e,ex,en);eB.set("selectedIndex",-1===t?null:t)},[ee,ew,ex,eP,en,eB]),(0,z.useValueChanged)(ex,()=>{ei(eS),es(ex!==ed.initialValue),ec()?eg.commit(ex):eg.commit(ex,!0)});let eG=(0,u.useStableCallback)((e,t)=>{if(k?.(e,t),!t.isCanceled&&(eE(e),e||t.reason!==N.REASONS.focusOut&&t.reason!==N.REASONS.outsidePress||(ea(!0),eu(!1),"onBlur"===eh&&eg.commit(ex)),!e&&null!==eB.state.activeIndex)){let e=eM.current[eB.state.activeIndex];queueMicrotask(()=>{e?.setAttribute("tabindex","-1")})}}),eJ=(0,u.useStableCallback)(()=>{eN(!1),eB.set("activeIndex",null),Q?.(!1)});(0,U.useOpenChangeComplete)({enabled:!G,open:ew,ref:eA,onComplete(){ew||eJ()}}),r.useImperativeHandle(G,()=>({unmount:eJ}),[eJ]);let eQ=(0,u.useStableCallback)((e,t)=>{I?.(e,t),t.isCanceled||ey(e)}),eZ=(0,u.useStableCallback)(()=>{let e=eB.state.listElement||eA.current;if(!e)return;let t=e.scrollTop,r=e.scrollTop+e.clientHeight,n=t>1,l=r<e.scrollHeight-1;eB.state.scrollUpArrowVisible!==n&&eB.set("scrollUpArrowVisible",n),eB.state.scrollDownArrowVisible!==l&&eB.set("scrollDownArrowVisible",l)}),e0=(0,g.useFloatingRootContext)({open:ew,onOpenChange:eG,elements:{reference:eq,floating:eY}}),e1=(0,f.useClick)(e0,{enabled:!W&&!eb,event:"mousedown"}),e5=(0,m.useDismiss)(e0,{bubbles:!1}),e2=(0,v.useListNavigation)(e0,{enabled:!W&&!eb,listRef:eM,activeIndex:ez,selectedIndex:e_,disabledIndices:B.EMPTY_ARRAY,onNavigate(e){(null!==e||ew)&&eB.set("activeIndex",e)},focusItemOnHover:!1}),e4=(0,b.useTypeahead)(e0,{enabled:!W&&!eb&&(ew||!ee),listRef:eR,activeIndex:ez,selectedIndex:e_,onMatch(e){ew?eB.set("activeIndex",e):eQ(eP.current[e],(0,D.createChangeEventDetails)("none"))},onTypingChange(e){ej.current=e}}),{getReferenceProps:e8,getFloatingProps:e9,getItemProps:e6}=(0,h.useInteractions)([e1,e5,e2,e4]),e7=r.useMemo(()=>(0,q.mergeProps)(e8(),eF,ev?{id:ev}:B.EMPTY_OBJECT),[e8,eF,ev]);(0,i.useOnFirstRender)(()=>{eB.update({popupProps:e9(),triggerProps:e7})}),(0,a.useIsoLayoutEffect)(()=>{eB.update({id:ev,modal:X,multiple:ee,value:ex,open:ew,mounted:eD,transitionStatus:eU,popupProps:e9(),triggerProps:e7,items:Z,itemToStringLabel:et,itemToStringValue:er,isItemEqualToValue:en,openMethod:eH})},[eB,ev,X,ee,ex,ew,eD,eU,e9,e7,Z,et,er,en,eH]);let e3=r.useMemo(()=>({store:eB,name:eS,required:K,disabled:eb,readOnly:W,multiple:ee,itemToStringLabel:et,itemToStringValue:er,highlightItemOnHover:el,setValue:eQ,setOpen:eG,listRef:eM,popupRef:eA,scrollHandlerRef:eI,handleScrollArrowVisibility:eZ,scrollArrowsMountedCountRef:eC,getItemProps:e6,events:e0.context.events,valueRef:eT,valuesRef:eP,labelsRef:eR,typingRef:ej,selectionRef:eL,selectedItemTextRef:eV,validation:eg,onOpenChangeComplete:Q,keyboardActiveRef:ek,alignItemWithTriggerActiveRef:eO,initialValueRef:eX}),[eB,eS,K,eb,W,ee,et,er,el,eQ,eG,e6,e0.context.events,eg,Q,eZ]),te=(0,l.useMergedRefs)(J,eg.inputRef),tt=ee&&Array.isArray(ex)&&ex.length>0,tr=ee?void 0:eS,tn=r.useMemo(()=>ee&&Array.isArray(ex)&&eS?ex.map(e=>{let r=V(e,er);return(0,t.jsx)("input",{type:"hidden",name:eS,value:r},r)}):null,[ee,ex,eS,er]);return(0,t.jsx)(x.Provider,{value:e3,children:(0,t.jsxs)(y.Provider,{value:e0,children:[eo,(0,t.jsx)("input",{...eg.getInputValidationProps({onFocus(){eB.state.triggerElement?.focus({focusVisible:!0})},onChange(e){if(e.nativeEvent.defaultPrevented)return;let t=e.target.value,r=(0,D.createChangeEventDetails)(N.REASONS.none,e.nativeEvent);eB.set("forceMount",!0),queueMicrotask(function(){if(ee)return;let e=eP.current.find(e=>V(e,er).toLowerCase()===t.toLowerCase());null!=e&&(es(e!==ed.initialValue),eQ(e,r),ec()&&eg.commit(e))})}}),id:ev&&null==tr?`${ev}-hidden-input`:void 0,name:tr,autoComplete:Y,value:e$,disabled:eb,required:K&&!tt,readOnly:W,ref:te,style:eS?n.visuallyHiddenInput:n.visuallyHidden,tabIndex:-1,"aria-hidden":!0}),tn]})})},"ScrollDownArrow",0,e5,"ScrollUpArrow",0,e2,"Separator",()=>e7.Separator,"Trigger",0,en,"Value",0,eo],278289);var e3=e.i(278289),e3=e3,te=e.i(975157),tt=e.i(314338),tt=tt,tr=e.i(533133),tn=e.i(792566),tn=tn;function tl({className:e,...r}){return(0,t.jsx)(e3.ScrollUpArrow,{"data-slot":"select-scroll-up-button",className:(0,te.cn)("top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",e),...r,children:(0,t.jsx)(tn.default,{})})}function to({className:e,...r}){return(0,t.jsx)(e3.ScrollDownArrow,{"data-slot":"select-scroll-down-button",className:(0,te.cn)("bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",e),...r,children:(0,t.jsx)(tt.default,{})})}e.s(["Select",0,function(e){return(0,t.jsx)(e3.Root,{modal:!1,...e})},"SelectContent",0,function({className:e,children:r,side:n="bottom",sideOffset:l=4,align:o="start",alignOffset:i=0,alignItemWithTrigger:s=!1,...a}){return(0,t.jsxs)(e3.Portal,{children:[(0,t.jsx)(e3.Backdrop,{className:"fixed inset-0 z-50"}),(0,t.jsx)(e3.Positioner,{side:n,sideOffset:l,align:o,alignOffset:i,alignItemWithTrigger:s,className:"isolate z-50",children:(0,t.jsxs)(e3.Popup,{"data-slot":"select-content","data-align-trigger":s,className:(0,te.cn)("relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none 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",e),...a,children:[(0,t.jsx)(tl,{}),(0,t.jsx)(e3.List,{children:r}),(0,t.jsx)(to,{})]})})]})},"SelectItem",0,function({className:e,children:r,...n}){return(0,t.jsxs)(e3.Item,{"data-slot":"select-item",className:(0,te.cn)("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...n,children:[(0,t.jsx)(e3.ItemText,{className:"flex flex-1 shrink-0 gap-2 whitespace-nowrap",children:r}),(0,t.jsx)(e3.ItemIndicator,{render:(0,t.jsx)("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:(0,t.jsx)(tr.CheckIcon,{className:"pointer-events-none"})})]})},"SelectTrigger",0,function({className:e,size:r="default",children:n,...l}){return(0,t.jsxs)(e3.Trigger,{"data-slot":"select-trigger","data-size":r,className:(0,te.cn)("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...l,children:[n,(0,t.jsx)(e3.Icon,{render:(0,t.jsx)(tt.default,{className:"pointer-events-none size-4 text-muted-foreground"})})]})}],967489)},922541,e=>{"use strict";let t=(0,e.i(572989).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],922541)},487486,e=>{"use strict";var t=e.i(565455),r=e.i(581263),n=e.i(294237),l=e.i(975157);let o=(0,n.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:n="default",render:i,...s}){var a;return a={defaultTagName:"span",props:(0,t.mergeProps)({className:(0,l.cn)(o({variant:n}),e)},s),render:i,state:{slot:"badge",variant:n}},(0,r.useRenderElement)(a.defaultTagName??"div",a,a)}],487486)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,449636,e=>{"use strict";var t=e.i(289721),s=e.i(965652),r=e.i(533499),a=e.i(514798);let n=(0,a.createServerReference)("0099ccf1abd659c635da6411eb5c05e03f2300c494",a.callServer,void 0,a.findSourceMapURL,"getActiveExecutionsAcrossWorkspaces");var i=e.i(620667);let l=[{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 o=e.i(967489),c=e.i(519455),d=e.i(912505),u=e.i(572989);let m=(0,u.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 x=e.i(360325),h=e.i(746798),p=e.i(740081);function f({cols:e,rows:s,active:r}){let a=Array.from({length:e*s});return(0,t.jsx)("div",{className:`grid gap-[1px] w-7 h-5 p-[3px] rounded-sm border shrink-0 ${r?"border-primary bg-primary/10":"border-border bg-muted"}`,style:{gridTemplateColumns:`repeat(${e}, 1fr)`,gridTemplateRows:`repeat(${s}, 1fr)`},children:a.map((e,s)=>(0,t.jsx)("div",{className:`rounded-[1px] min-w-0 min-h-0 ${r?"bg-primary":"bg-muted-foreground/40"}`},s))})}let g="custom";function j({value:e,customValue:a,onChange:n}){let{t:i}=(0,r.useI18n)(),[o,d]=(0,s.useState)(!1),u=(0,s.useRef)(null),m=e===g,x=m?null:l.find(t=>t.id===e)??l[2],[h,b]=(0,s.useState)(a?.cols??2),[k,v]=(0,s.useState)(a?.rows??2),[w,N]=(0,s.useState)({minCols:1,maxCols:5,minRows:1,maxRows:5});(0,s.useEffect)(()=>{(0,p.getConfigValues)(["missions.grid.minCols","missions.grid.maxCols","missions.grid.minRows","missions.grid.maxRows"]).then(e=>{N({minCols:e["missions.grid.minCols"]??1,maxCols:e["missions.grid.maxCols"]??5,minRows:e["missions.grid.minRows"]??1,maxRows:e["missions.grid.maxRows"]??5})})},[]),(0,s.useEffect)(()=>{a&&(b(a.cols),v(a.rows))},[a?.cols,a?.rows]),(0,s.useEffect)(()=>{if(o)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){u.current&&!u.current.contains(e.target)&&d(!1)}},[o]);let y=(e,t,s)=>Math.max(t,Math.min(s,e)),C=m?h:x?.cols??2,S=m?k:x?.rows??2,I=m?`${h}\xd7${k}`:x?.label??"";return(0,t.jsxs)("div",{ref:u,className:"relative",children:[(0,t.jsxs)(c.Button,{variant:"outline",onClick:()=>d(e=>!e),className:"gap-2",children:[(0,t.jsx)(f,{cols:C,rows:S,active:!1}),(0,t.jsx)("span",{children:I}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"▼"})]}),o&&(0,t.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,t.jsx)("h5",{className:"text-sm font-semibold text-foreground mb-3",children:i("missions.gridPreset")}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[l.map(s=>{let r=s.id===e;return(0,t.jsxs)("button",{onClick:()=>{n(s.id),d(!1)},className:`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-colors ${r?"bg-primary/10":"hover:bg-accent"}`,children:[(0,t.jsx)(f,{cols:s.cols,rows:s.rows,active:r}),(0,t.jsx)("span",{className:`text-sm font-medium flex-1 text-left ${r?"text-primary":"text-foreground"}`,children:s.label}),(0,t.jsx)("span",{className:`text-xs ${r?"text-primary/60":"text-muted-foreground"}`,children:s.desc})]},s.id)}),(0,t.jsxs)("div",{className:"mt-1 border-t border-border pt-2",children:[(0,t.jsxs)("button",{onClick:()=>{m||n(g,{cols:h,rows:k})},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,t.jsx)(f,{cols:h,rows:k,active:m}),(0,t.jsx)("span",{className:`text-sm font-medium flex-1 text-left ${m?"text-primary":"text-foreground"}`,children:i("missions.gridCustom")}),(0,t.jsxs)("span",{className:`text-xs ${m?"text-primary/60":"text-muted-foreground"}`,children:[h,"×",k]})]}),m&&(0,t.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("label",{className:"text-xs text-muted-foreground",children:i("missions.gridCols")}),(0,t.jsx)("input",{type:"number",min:w.minCols,max:w.maxCols,value:h,onChange:e=>{let t;b(t=y(Number(e.target.value),w.minCols,w.maxCols)),n(g,{cols:t,rows:k})},className:"h-7 w-14 rounded-md border border-border bg-background px-2 text-sm text-center"})]}),(0,t.jsx)("span",{className:"text-muted-foreground",children:"×"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("label",{className:"text-xs text-muted-foreground",children:i("missions.gridRows")}),(0,t.jsx)("input",{type:"number",min:w.minRows,max:w.maxRows,value:k,onChange:e=>{let t;v(t=y(Number(e.target.value),w.minRows,w.maxRows)),n(g,{cols:h,rows:t})},className:"h-7 w-14 rounded-md border border-border bg-background px-2 text-sm text-center"})]})]})]})]})]})]})}var b=e.i(585012),k=e.i(670123),v=e.i(759684);let w="123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";function N(e,t,s){return t<=0?0:((e+s)%t+t)%t}function y({open:e,panes:a,selectedIndex:n,onSelect:i,onClose:l}){let{t:o}=(0,r.useI18n)();return((0,s.useEffect)(()=>{if(e)return window.addEventListener("keydown",t,{capture:!0}),()=>window.removeEventListener("keydown",t,{capture:!0});function t(e){if("Escape"===e.key){e.preventDefault(),e.stopPropagation(),l();return}if(e.metaKey||e.ctrlKey||e.altKey||/^[0-9]$/.test(e.key))return;let t=function(e){if(1!==e.length)return null;let t=w.indexOf(e.toUpperCase());return -1===t?null:t}(e.key);null===t||t>=a.length||(e.preventDefault(),e.stopPropagation(),i(t))}},[e,a.length,i,l]),!e||"u"<typeof document)?null:(0,b.createPortal)((0,t.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-black/10 supports-backdrop-filter:backdrop-blur-xs",onClick:l}),(0,t.jsxs)("div",{role:"dialog","aria-modal":"true",className:"fixed top-1/2 left-1/2 z-50 w-full max-w-[calc(100%-2rem)] sm:max-w-5xl -translate-x-1/2 -translate-y-1/2 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 outline-none",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 pr-8",children:[(0,t.jsx)("span",{className:"font-heading text-base font-medium leading-none",children:o("missions.selector.title")}),(0,t.jsx)("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-xs font-mono font-medium text-muted-foreground",children:a.length}),(0,t.jsx)("span",{className:"ml-1 truncate text-xs text-muted-foreground",children:o("missions.selector.hint")})]}),(0,t.jsx)(c.Button,{variant:"ghost",size:"icon-sm",className:"absolute top-2 right-2",onClick:l,"aria-label":o("missions.launcher.cancel"),children:(0,t.jsx)(k.XIcon,{})}),(0,t.jsx)(v.ScrollArea,{className:"mt-4 max-h-[60vh]",children:(0,t.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3 pr-3",children:a.map((e,s)=>{let r=s<0||s>=w.length?null:w[s],a=s===n;return(0,t.jsxs)("button",{type:"button",onClick:()=>i(s),className:["flex flex-col gap-2 rounded-lg border bg-card p-3 text-left transition-all hover:border-primary/40 hover:bg-accent/50",a?"border-primary ring-2 ring-inset ring-primary":"border-border"].join(" "),children:[(0,t.jsxs)("span",{className:"block w-full truncate text-[11px] text-muted-foreground",title:`${e.workspaceName} › ${e.projectAlias||e.projectName}`,children:[e.workspaceName," ›"," ",e.projectAlias||e.projectName]}),(0,t.jsx)("div",{className:"flex items-center justify-center py-2",children:(0,t.jsx)("span",{className:["flex h-12 w-12 items-center justify-center rounded-md border text-2xl font-semibold tabular-nums",a?"bg-primary text-primary-foreground border-primary":"bg-muted/80 text-foreground border-border"].join(" "),children:r??"·"})}),(0,t.jsx)("span",{className:"line-clamp-2 text-sm font-medium text-foreground",children:e.taskTitle})]},e.executionId)})})})]})]}),document.body)}var C=e.i(720247),S=e.i(775712),I=e.i(19578),R=e.i(538059),T=e.i(67013);let M=(0,u.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"}]]),A=(0,u.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var E=e.i(657153);let $=(0,u.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 L=e.i(487486),P=e.i(534757),B=e.i(360112);let D=(0,I.default)(()=>e.A(243288).then(e=>e.TaskTerminal),{loadableGenerated:{modules:[346069]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"h-full w-full bg-[#0a0a0a] animate-pulse"})});function O({execution:e,isRemoving:a,removeReason:n,onStop:i,onSessionEnd:l,index:o,onRegisterControls:d}){let{t:u}=(0,r.useI18n)(),m=(0,R.useRouter)(),{attributes:x,listeners:p,setNodeRef:f,transform:g,transition:j}=(0,S.useSortable)({id:e.executionId}),b={transform:T.CSS.Transform.toString(g),transition:j,opacity:+!a},[k,v]=(0,s.useState)(()=>e.startedAt?Math.floor((Date.now()-new Date(e.startedAt).getTime())/1e3):0);(0,s.useEffect)(()=>{if(a)return;let t=setInterval(()=>{v(e.startedAt?Math.floor((Date.now()-new Date(e.startedAt).getTime())/1e3):0)},1e3);return()=>clearInterval(t)},[e.startedAt,a]);let w=Math.floor(k/60),N=`${w}m ${k%60}s`;async function y(){let t=e.worktreePath??e.projectLocalPath;if(!t)return;let s=e.subPath?`${t}/${e.subPath}`:t;try{await (0,P.openInTerminal)(s)}catch{B.toast.error(u("preview.terminalError"))}}return(0,t.jsxs)("div",{ref:f,style:b,"data-pane-index":o,className:"border border-border rounded-lg overflow-hidden flex flex-col transition-opacity duration-300",...x,children:[(0,t.jsxs)("div",{className:"h-10 px-3 flex items-center gap-1 border-b border-border bg-card shrink-0",children:[(0,t.jsx)("button",{...p,"aria-label":u("missions.dragHandle"),"aria-roledescription":"sortable",className:"cursor-grab text-muted-foreground hover:text-foreground mr-1",children:(0,t.jsx)(M,{className:"h-3.5 w-3.5"})}),(0,t.jsxs)("div",{className:"flex items-center gap-1 min-w-0 flex-1 text-[11px] text-muted-foreground",children:[(0,t.jsxs)("span",{className:"truncate max-w-[45%] shrink-0",title:`${e.workspaceName} › ${e.projectAlias||e.projectName}`,children:[e.workspaceName," ›"," ",e.projectAlias||e.projectName]}),(0,t.jsx)("span",{className:"shrink-0",children:"›"}),(0,t.jsx)("span",{className:"text-foreground font-semibold truncate min-w-0 flex-1",title:e.taskTitle,children:e.taskTitle})]}),a?(0,t.jsx)(L.Badge,{variant:"outline",className:"text-[11px] text-muted-foreground bg-muted ml-1 shrink-0",children:"stopped"===n?u("missions.statusStopped"):u("missions.statusCompleted")}):(0,t.jsx)(L.Badge,{variant:"outline",className:"text-[11px] text-primary border-primary/30 bg-primary/10 ml-1 shrink-0",children:u("missions.statusRunning")}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground ml-1 shrink-0",children:N}),e.projectLocalPath&&(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{render:(0,t.jsx)(c.Button,{variant:"ghost",size:"icon",className:"ml-1 shrink-0 text-muted-foreground",onClick:y}),children:(0,t.jsx)($,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.TooltipContent,{children:u("missions.openInTerminal")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{render:(0,t.jsx)(c.Button,{variant:"ghost",size:"icon",className:"ml-1 shrink-0 text-muted-foreground",onClick:()=>m.push(`/workspaces/${e.workspaceId}/tasks/${e.taskId}`)}),children:(0,t.jsx)(A,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.TooltipContent,{children:u("missions.openFullView")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{render:(0,t.jsx)(c.Button,{variant:"destructive",size:"icon",className:"ml-1 shrink-0",onClick:()=>i(e.taskId),disabled:a}),children:(0,t.jsx)(E.X,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.TooltipContent,{children:u("missions.stopTask")})]})]}),(0,t.jsx)("div",{className:"relative flex-1 overflow-hidden",children:(0,t.jsx)(D,{taskId:e.taskId,worktreePath:e.worktreePath??e.projectLocalPath,onSessionEnd:t=>l?.(e.taskId,t),useCanvasRenderer:!0,onReady:t=>d(e.taskId,t)})})]})}var z=e.i(169751);let H=(0,a.createServerReference)("0030355a1abb5bf3387a318cd4519959200544964e",a.callServer,void 0,a.findSourceMapURL,"getWorkspacesWithActiveTasks");var U=e.i(647967),V=e.i(483097),W=e.i(793479),F=e.i(776639),K=e.i(232280),_=e.i(19671),G=e.i(368490);let X=(0,u.default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var q=e.i(400355);let J=(0,u.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 Q=e.i(922541),Y=e.i(738690);function Z(e){return(e.labels?.length??0)>0}let ee={TODO:"TODO",IN_PROGRESS:"Running",IN_REVIEW:"Review"},et={LOW:"Low",MEDIUM:"Med",HIGH:"High",CRITICAL:"Crit"};function es({status:e}){return(0,t.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"}[e]??"bg-slate-100 text-slate-600"}`,children:ee[e]??e})}function er({task:e,isRunning:s,launchingId:r,onLaunchNew:a,onResume:n,t:i}){let l=e.executions?.[0]?.sessionId,o=r===e.id;return(0,t.jsxs)("div",{className:"group/task grid grid-cols-[minmax(0,1fr)_auto] items-center gap-2 px-3 py-1.5 hover:bg-accent/50 cursor-default",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:`text-sm truncate ${s?"italic text-muted-foreground":""}`,children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 mt-0.5",children:[(0,t.jsx)(es,{status:e.status}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:et[e.priority]??e.priority})]})]}),s?(0,t.jsx)("span",{className:"text-[10px] italic text-muted-foreground",children:i("missions.alreadyMonitored")}):(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/task:opacity-100 transition-opacity",children:[l&&(0,t.jsxs)(c.Button,{variant:"outline",className:"h-6 px-2 text-xs",onClick:()=>n(e.id,l),disabled:o,title:i("missions.continueSession"),children:[(0,t.jsx)(Q.RotateCcw,{className:"h-3 w-3 mr-1"}),i("missions.continueLabel")]}),(0,t.jsxs)(c.Button,{variant:"outline",className:"h-6 px-2 text-xs",onClick:()=>a(e.id),disabled:o,title:i("missions.launchNew"),children:[(0,t.jsx)(J,{className:"h-3 w-3 mr-1"}),o?"...":i("missions.launchNewLabel")]})]})]})}function ea({task:e,isRunning:s,launchingId:r,onLaunchNew:a,onResume:n,t:i}){let l=e.executions?.[0]?.sessionId,o=r===e.id;return(0,t.jsx)("div",{className:"shrink-0 border-b bg-muted/40 px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-1.5",children:[(0,t.jsx)(X,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"truncate text-xs font-medium",children:i("missions.workbench.title")})]}),s?(0,t.jsx)("span",{className:"text-[10px] italic text-muted-foreground",children:i("missions.alreadyMonitored")}):(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[l&&(0,t.jsxs)(c.Button,{variant:"outline",className:"h-6 px-2 text-xs",onClick:()=>n(e.id,l),disabled:o,title:i("missions.continueSession"),children:[(0,t.jsx)(Q.RotateCcw,{className:"h-3 w-3 mr-1"}),i("missions.continueLabel")]}),(0,t.jsxs)(c.Button,{variant:"outline",className:"h-6 px-2 text-xs",onClick:()=>a(e.id),disabled:o,title:i("missions.launchNew"),children:[(0,t.jsx)(J,{className:"h-3 w-3 mr-1"}),o?"...":i("missions.launchNewLabel")]})]})]})})}function en({open:e,onOpenChange:a,onLaunched:n,runningTaskIds:i=new Set}){let{t:l}=(0,r.useI18n)(),[o,d]=(0,s.useState)([]),[u,m]=(0,s.useState)(!1),[x,h]=(0,s.useState)(null),[p,f]=(0,s.useState)(""),[g,j]=(0,s.useState)(new Set),[b,k]=(0,s.useState)(""),[w,N]=(0,s.useState)(0),y=(0,s.useMemo)(()=>o.map(e=>({...e,projects:e.projects.filter(e=>e.tasks.length>0)})).filter(e=>e.projects.length>0),[o]);(0,s.useEffect)(()=>{e&&(m(!0),f(""),N(0),H().then(e=>{d(e);let t=e.map(e=>({...e,projects:e.projects.filter(e=>e.tasks.length>0)})).find(e=>e.projects.length>0);j(t?new Set([t.id]):new Set),k(t?.projects[0]?.id??"")}).catch(()=>B.toast.error(l("missions.error.launchFailed"))).finally(()=>m(!1)))},[e,l]);let C=(0,s.useCallback)(e=>{j(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]),S=(0,s.useCallback)(e=>{k(e),N(0)},[]),I=(0,s.useMemo)(()=>{let e=[];for(let t of y)for(let s of t.projects)for(let r of s.tasks)e.push({task:r,workspaceName:t.name,projectName:s.alias??s.name,projectId:s.id});return e},[y]),R=(0,s.useMemo)(()=>new z.default(I,{keys:["task.title"],threshold:.4,distance:200}),[I]),T=p.trim().length>0,M=(0,s.useMemo)(()=>{let e=p.trim();if(!e)return[];let t=R.search(e).map(e=>e.item),s=[],r=new Map;for(let e of t){let t=r.get(e.projectId);t||(t={workspaceName:e.workspaceName,projectName:e.projectName,tasks:[]},r.set(e.projectId,t),s.push(e.projectId)),t.tasks.push(e.task)}return s.map(e=>({id:e,...r.get(e)}))},[R,p]),A=(0,s.useMemo)(()=>I.length?y.flatMap(e=>e.projects).find(e=>e.id===b):void 0,[y,b,I.length]),$=(0,s.useMemo)(()=>A?.tasks.find(Z),[A]),L=(0,s.useMemo)(()=>A?.tasks.filter(e=>!Z(e))??[],[A]),P=Math.max(1,Math.ceil(L.length/10)),D=Math.min(w,P-1),O=L.slice(10*D,10*D+10),X=(0,s.useCallback)(async e=>{try{h(e),await (0,U.startPtyExecution)(e,""),n(e),a(!1)}catch{B.toast.error(l("missions.error.launchFailed"))}finally{h(null)}},[n,a,l]),J=(0,s.useCallback)(async(e,t)=>{try{h(e),await (0,V.resumePtyExecution)(e,t),n(e),a(!1)}catch{B.toast.error(l("missions.error.launchFailed"))}finally{h(null)}},[n,a,l]);return(0,t.jsx)(F.Dialog,{open:e,onOpenChange:a,children:(0,t.jsxs)(F.DialogContent,{className:"sm:max-w-3xl flex h-[80vh] max-h-[640px] flex-col gap-0 overflow-hidden p-0",children:[(0,t.jsx)(F.DialogHeader,{className:"shrink-0 border-b px-4 py-3",children:(0,t.jsx)(F.DialogTitle,{children:l("missions.launchTask")})}),(0,t.jsx)("div",{className:"shrink-0 border-b px-4 py-3",children:(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(Y.Search,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(W.Input,{value:p,onChange:e=>f(e.target.value),placeholder:l("missions.fullPicker.searchPlaceholder"),className:"pl-8 pr-8 h-8"}),p&&(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",className:"absolute right-1 top-1/2 -translate-y-1/2 h-6 w-6",onClick:()=>f(""),"aria-label":l("missions.fullPicker.clearSearch"),children:(0,t.jsx)(E.X,{className:"h-3.5 w-3.5"})})]})}),u?(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center text-muted-foreground",children:(0,t.jsx)(q.Loader2,{className:"h-5 w-5 animate-spin"})}):0===y.length?(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:l("missions.noAvailableTasks")}):T?(0,t.jsx)(v.ScrollArea,{className:"flex-1 min-h-0",children:0===M.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground text-center py-8",children:l("missions.fullPicker.noSearchResults")}):(0,t.jsx)("div",{className:"py-1",children:M.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"px-3 pt-2 pb-1 text-[11px] font-medium text-muted-foreground",children:[e.workspaceName," · ",e.projectName]}),e.tasks.map(e=>(0,t.jsx)(er,{task:e,isRunning:i.has(e.id),launchingId:x,onLaunchNew:X,onResume:J,t:l},e.id))]},e.id))})}):(0,t.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,t.jsx)("aside",{className:"w-52 shrink-0 border-r",children:(0,t.jsx)(v.ScrollArea,{className:"h-full",children:(0,t.jsx)("div",{className:"py-1",children:y.map(e=>{let s=g.has(e.id);return(0,t.jsxs)("div",{children:[(0,t.jsxs)(c.Button,{variant:"ghost",onClick:()=>C(e.id),className:"flex h-auto w-full justify-start gap-1 rounded-none px-2 py-1.5 hover:bg-accent",children:[s?(0,t.jsx)(K.ChevronDown,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,t.jsx)(G.ChevronRight,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"truncate text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:e.name})]}),s&&e.projects.map(e=>{let s=e.id===b;return(0,t.jsxs)(c.Button,{variant:"ghost",onClick:()=>S(e.id),className:`flex h-auto w-full justify-start gap-2 rounded-none py-1.5 pl-7 pr-2 hover:bg-accent ${s?"bg-accent":""}`,children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-left text-xs font-medium",children:e.alias??e.name}),(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:e._count.tasks})]},e.id)})]},e.id)})})})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[$&&(0,t.jsx)(ea,{task:$,isRunning:i.has($.id),launchingId:x,onLaunchNew:X,onResume:J,t:l}),(0,t.jsx)(v.ScrollArea,{className:"flex-1 min-h-0",children:0===O.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground text-center py-8",children:l("missions.launcher.noTasks")}):(0,t.jsx)("div",{className:"py-1",children:O.map(e=>(0,t.jsx)(er,{task:e,isRunning:i.has(e.id),launchingId:x,onLaunchNew:X,onResume:J,t:l},e.id))})}),L.length>0&&(0,t.jsxs)("div",{className:"flex shrink-0 items-center justify-center gap-3 border-t px-3 py-2",children:[(0,t.jsx)(c.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>N(e=>Math.max(0,e-1)),disabled:D<=0,"aria-label":l("missions.picker.prevPage"),children:(0,t.jsx)(_.ChevronLeft,{className:"h-4 w-4"})}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums",children:[D+1," / ",P]}),(0,t.jsx)(c.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>N(e=>Math.min(P-1,e+1)),disabled:D>=P-1,"aria-label":l("missions.picker.nextPage"),children:(0,t.jsx)(G.ChevronRight,{className:"h-4 w-4"})})]})]})]})]})})}e.i(508271);var ei=e.i(841359);e.s(["MissionsClient",0,function({initialExecutions:e}){let{t:a}=(0,r.useI18n)(),[u,p]=(0,s.useState)(e),[f,g]=(0,s.useState)(()=>localStorage.getItem("missions-grid-preset")??"3x2"),[b,k]=(0,s.useState)(()=>{try{let e=localStorage.getItem("missions-grid-custom");if(e){let t=JSON.parse(e);if("number"==typeof t?.cols&&"number"==typeof t?.rows)return{cols:Math.max(1,Math.min(10,t.cols)),rows:Math.max(1,Math.min(10,t.rows))}}}catch{}return{cols:2,rows:2}}),[v,w]=(0,s.useState)(!1),[I,R]=(0,s.useState)(""),[T,M]=(0,s.useState)("input"),[A,E]=(0,s.useState)(0),$=(0,s.useRef)(new Map),L=(0,s.useRef)([]),P=(0,s.useRef)(2),D=(0,s.useRef)(A);D.current=A;let z=(0,s.useCallback)((e,t)=>{t?$.current.set(e,t):$.current.delete(e)},[]),[H,U]=(0,s.useState)(new Map),V=(0,s.useRef)(H);(0,s.useEffect)(()=>{V.current=H},[H]);let W=(0,s.useRef)(new Map),F=l.find(e=>e.id===f)??l[2],K="custom"===f?b.cols:F.cols,_="custom"===f?b.rows:F.rows,G=(0,s.useRef)(null),[X,q]=(0,s.useState)("480px");(0,s.useEffect)(()=>{let e=G.current;if(!e)return;let t=()=>{let t=(e.clientHeight-32-16*(_-1))/_;q(`${Math.max(t,200)}px`)};t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[_]);let J=(0,s.useCallback)((e,t)=>{e&&(g(e),localStorage.setItem("missions-grid-preset",e),"custom"===e&&t&&(k(t),localStorage.setItem("missions-grid-custom",JSON.stringify(t))))},[]),Q=(0,C.useSensors)((0,C.useSensor)(C.PointerSensor,{activationConstraint:{distance:8}})),Y=(0,s.useCallback)(e=>{let{active:t,over:s}=e;s&&t.id!==s.id&&p(e=>{let r=e.findIndex(e=>e.executionId===t.id),a=e.findIndex(e=>e.executionId===s.id);return(0,S.arrayMove)(e,r,a)})},[]),Z=(0,s.useCallback)((e,t)=>{if(V.current.has(e))return;U(s=>new Map([...s,[e,t]]));let s=setTimeout(()=>{p(t=>t.filter(t=>t.executionId!==e)),U(t=>{let s=new Map(t);return s.delete(e),s}),W.current.delete(e)},500);W.current.set(e,s)},[]);(0,s.useEffect)(()=>{let e=setInterval(async()=>{try{let e=await n();p(t=>{let s=V.current,{merged:r,goneIds:a}=function({prev:e,fresh:t,removingIds:s}){let r=new Set(t.map(e=>e.executionId)),a=[];e.forEach(e=>{r.has(e.executionId)||s.has(e.executionId)||a.push(e.executionId)});let n=e.filter(e=>r.has(e.executionId)||s.has(e.executionId)),i=new Set(e.map(e=>e.executionId));return{merged:[...n,...t.filter(e=>!i.has(e.executionId))],goneIds:a}}({prev:t,fresh:e,removingIds:new Set(s.keys())});return a.forEach(e=>Z(e,"completed")),r})}catch{}},4e3);return()=>clearInterval(e)},[Z]),(0,s.useEffect)(()=>{let e=W.current;return()=>{e.forEach(e=>clearTimeout(e))}},[]);let ee=(0,s.useCallback)(async e=>{try{await (0,i.stopPtyExecution)(e),p(t=>{let s=t.find(t=>t.taskId===e);return s&&Z(s.executionId,"stopped"),t})}catch{B.toast.error(a("missions.error.stopFailed"))}},[Z,a]),et=(0,s.useCallback)((e,t)=>{p(t=>{let s=t.find(t=>t.taskId===e);return s&&Z(s.executionId,"completed"),t})},[Z]),es=(0,s.useCallback)(e=>{n().then(e=>{p(t=>{let s=new Set(t.map(e=>e.executionId));return[...t,...e.filter(e=>!s.has(e.executionId))]})}).catch(()=>{})},[]),er=(0,s.useCallback)(e=>{let t=L.current;e<0||e>=t.length||(t[e]?.focus(),E(e),M("input"),G.current?.querySelector(`[data-pane-index="${e}"]`)?.scrollIntoView({block:"nearest",inline:"nearest",behavior:"instant"}))},[]),ea=(0,s.useCallback)(()=>{let e=document.activeElement;e instanceof HTMLElement&&e.blur(),L.current[D.current]?.blur(),M("nav")},[]),el=(0,s.useCallback)(()=>{er(D.current)},[er]),eo=(0,s.useCallback)(()=>{"input"===T?ea():el()},[T,ea,el]),ec=(0,s.useCallback)(()=>{let e=L.current.length;0!==e&&er(N(D.current,e,1))},[er]),ed=(0,s.useCallback)(()=>{let e=L.current.length;0!==e&&er(N(D.current,e,-1))},[er]),eu=(0,s.useCallback)(e=>{let t=L.current.length;0!==t&&(M("nav"),E(s=>(function(e,t,s,r){if(s<=0)return 0;let a=Math.max(1,t);switch(r){case"left":return N(e,s,-1);case"right":return N(e,s,1);case"up":{let t=e-a;return t<0?e:t}case"down":{let t=e+a;return t>=s?e:t}default:return e}})(s,P.current,t,e)))},[]),em=(0,s.useCallback)(e=>{let t=L.current.length;0!==t&&(M("nav"),E(s=>N(s,t,e)))},[]);(0,ei.useActionShortcut)("missions.jump",e=>{let t=Number(e.key);Number.isInteger(t)&&t>=1&&er(t-1)}),(0,ei.useActionShortcut)("missions.moveSelection",e=>{eu("ArrowUp"===e.key?"up":"ArrowDown"===e.key?"down":"ArrowLeft"===e.key?"left":"right")}),(0,ei.useActionShortcut)("missions.cycle",()=>em(1)),(0,ei.useActionShortcut)("missions.cycleBack",()=>em(-1)),(0,ei.useActionShortcut)("missions.focus",()=>el()),(0,ei.useActionShortcut)("missions.next",()=>ec()),(0,ei.useActionShortcut)("missions.prev",()=>ed()),(0,ei.useActionShortcut)("missions.exit",()=>ea()),(0,s.useEffect)(()=>{let e=G.current;if(!e)return;let t=e=>{let t=e.target,s=t?.closest("[data-pane-index]");if(!s)return;let r=Number(s.dataset.paneIndex);Number.isInteger(r)&&(E(r),M("input"))};return e.addEventListener("focusin",t),()=>e.removeEventListener("focusin",t)},[]);let ex=Array.from(new Map(u.map(e=>[e.workspaceId,e.workspaceName])).entries()).map(([e,t])=>({id:e,name:t})),eh=I?u.filter(e=>e.workspaceId===I):u;L.current=eh.map(e=>$.current.get(e.taskId)).filter(e=>!!e),P.current=K,(0,s.useEffect)(()=>{E(e=>{let t=eh.length;return 0===t?0:Math.min(e,t-1)})},[eh.length]);let ep=new Set(u.map(e=>e.taskId));return(0,t.jsxs)("div",{className:"flex h-full flex-col",children:[(0,t.jsxs)("div",{className:"header-sm shrink-0 px-4 flex items-center gap-3",children:[(0,t.jsx)("h1",{className:"text-base font-semibold",children:a("missions.pageTitle")}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsxs)(h.TooltipTrigger,{render:(0,t.jsx)(c.Button,{variant:"ghost",className:`h-7 gap-1.5 px-2 shrink-0 text-xs font-medium text-muted-foreground ${"nav"===T?"bg-accent text-foreground":""}`,onClick:eo,disabled:0===eh.length}),children:[(0,t.jsx)(x.Keyboard,{className:"h-3.5 w-3.5"}),"input"===T?a("missions.mode.input"):a("missions.mode.nav")]}),(0,t.jsx)(h.TooltipContent,{className:"max-w-xs",children:a("missions.mode.toggleHint")})]}),(0,t.jsxs)(o.Select,{value:I,onValueChange:e=>R(e??""),children:[(0,t.jsx)(o.SelectTrigger,{className:"w-36 h-8",children:(0,t.jsx)("span",{className:"truncate",children:I?ex.find(e=>e.id===I)?.name??a("missions.filterAll"):a("missions.filterAll")})}),(0,t.jsxs)(o.SelectContent,{children:[(0,t.jsx)(o.SelectItem,{value:"",children:a("missions.filterAll")}),ex.map(e=>(0,t.jsx)(o.SelectItem,{value:e.id,children:e.name},e.id))]})]}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsx)(j,{value:f,customValue:b,onChange:J}),(0,t.jsx)(c.Button,{onClick:()=>w(!0),children:a("missions.launchTask")}),(0,t.jsx)(en,{open:v,onOpenChange:w,onLaunched:es,runningTaskIds:ep})]}),(0,t.jsx)("div",{ref:G,className:"flex-1 overflow-auto min-h-0 p-4",children:0===eh.length&&0===H.size?(0,t.jsx)(d.EmptyState,{icon:m,title:a("missions.emptyTitle"),description:a("missions.emptyDesc"),className:"h-full",action:(0,t.jsx)(c.Button,{onClick:()=>w(!0),children:a("missions.launchTask")})}):(0,t.jsx)(C.DndContext,{id:"missions-dnd",sensors:Q,collisionDetection:C.closestCenter,onDragEnd:Y,children:(0,t.jsx)(S.SortableContext,{items:eh.map(e=>e.executionId),strategy:S.rectSortingStrategy,children:(0,t.jsx)("div",{className:"grid gap-4",style:{gridTemplateColumns:`repeat(${K}, 1fr)`,gridAutoRows:X},children:eh.map((e,s)=>(0,t.jsx)(O,{execution:e,isRemoving:H.has(e.executionId),removeReason:H.get(e.executionId),onStop:ee,onSessionEnd:et,index:s,onRegisterControls:z},e.executionId))})})})}),(0,t.jsx)(y,{open:"nav"===T,panes:eh,selectedIndex:A,onSelect:er,onClose:el})]})}],449636)}]);