tower-studio 0.2.10 → 0.2.14

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 (330) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
  12. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +39 -39
  13. package/.next/standalone/.next/server/app/_not-found/page.js +6 -5
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  19. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  20. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  22. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  23. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/api/adapters/test/route.js +3 -3
  25. package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js +1 -1
  28. package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/git/route.js +1 -1
  30. package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js +1 -1
  32. package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +1 -1
  34. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +3 -2
  36. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/internal/assistant/route.js +2 -2
  38. package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js +2 -2
  40. package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +1 -1
  42. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js +1 -1
  44. package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js +1 -1
  46. package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js +1 -1
  48. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +3 -3
  50. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/index.html +1 -1
  52. package/.next/standalone/.next/server/app/index.rsc +15 -15
  53. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  54. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  55. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  56. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +9 -9
  57. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
  59. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +63 -63
  60. package/.next/standalone/.next/server/app/missions/page.js +6 -5
  61. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +1 -1
  64. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +39 -39
  65. package/.next/standalone/.next/server/app/onboarding/page.js +6 -5
  66. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  69. package/.next/standalone/.next/server/app/onboarding.rsc +17 -17
  70. package/.next/standalone/.next/server/app/onboarding.segments/_full.segment.rsc +17 -17
  71. package/.next/standalone/.next/server/app/onboarding.segments/_head.segment.rsc +4 -4
  72. package/.next/standalone/.next/server/app/onboarding.segments/_index.segment.rsc +9 -9
  73. package/.next/standalone/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
  74. package/.next/standalone/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  75. package/.next/standalone/.next/server/app/onboarding.segments/onboarding.segment.rsc +3 -3
  76. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -1
  77. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +39 -39
  78. package/.next/standalone/.next/server/app/page.js +6 -5
  79. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
  82. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +52 -52
  83. package/.next/standalone/.next/server/app/settings/page.js +6 -5
  84. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/settings.html +1 -1
  87. package/.next/standalone/.next/server/app/settings.rsc +17 -17
  88. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +17 -17
  89. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  90. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +9 -9
  91. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  93. package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  94. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +1 -1
  95. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +94 -94
  96. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +6 -5
  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 +1 -1
  100. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +80 -80
  101. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +6 -5
  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]/notes/page/react-loadable-manifest.json +1 -1
  105. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +73 -73
  106. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +6 -5
  107. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +1 -1
  110. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +68 -68
  111. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +7 -6
  112. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +1 -1
  115. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +39 -39
  116. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +7 -6
  117. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +1 -1
  120. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +78 -78
  121. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +6 -5
  122. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +2 -2
  125. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +78 -78
  126. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +8 -7
  127. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +1 -1
  130. package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +59 -59
  131. package/.next/standalone/.next/server/app/workspaces/page.js +6 -5
  132. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0h5yr8p.js +1 -1
  135. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +1 -1
  136. package/.next/standalone/.next/server/chunks/[externals]__07308ej._.js +3 -0
  137. package/.next/standalone/.next/server/chunks/[externals]__12mj_bs._.js +3 -0
  138. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00mjz~7._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__07f7~6u._.js → [root-of-the-server]__03j20vp._.js} +3 -3
  140. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__03gi3ue._.js → [root-of-the-server]__04qke1x._.js} +3 -3
  141. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08v2air._.js +4 -0
  142. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__028ucbo._.js → [root-of-the-server]__09pc-71._.js} +3 -3
  143. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0iyp~.k._.js +20 -0
  144. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ogh_qu._.js +2 -2
  145. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qif839._.js +4 -0
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0r0nj9k._.js +20 -0
  147. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0n0cdrs._.js → [root-of-the-server]__0rvsc5q._.js} +2 -2
  148. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0cwgqg2._.js → [root-of-the-server]__0stmn6n._.js} +2 -2
  149. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__06hktr2._.js → [root-of-the-server]__0umocfj._.js} +2 -2
  150. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wotir9._.js +11 -0
  151. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__00fx8qq._.js → [root-of-the-server]__0z-k6vg._.js} +2 -2
  152. package/.next/standalone/.next/server/chunks/src_0bkvm8c._.js +1 -1
  153. package/.next/standalone/.next/server/chunks/src_lib_0aowbzy._.js +3 -0
  154. package/.next/standalone/.next/server/chunks/src_lib_0nw5n~t._.js +3 -0
  155. package/.next/standalone/.next/server/chunks/src_lib_ai_0xx6y51._.js +1 -1
  156. package/.next/standalone/.next/server/chunks/src_lib_ai_providers_index_ts_0.y.3vp._.js +1 -1
  157. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  158. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-pcbjc._.js +30 -0
  159. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.bvw5b._.js +4 -0
  160. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dsdplu._.js → [root-of-the-server]__04nht4_._.js} +2 -2
  161. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06ci01x._.js +30 -0
  162. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06fz814._.js +3 -0
  163. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0tc6uh2._.js → [root-of-the-server]__08icsmr._.js} +2 -2
  164. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__098yytg._.js +30 -0
  165. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b7rna9._.js +30 -0
  166. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b8cn~b._.js +30 -0
  167. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0clm.cb._.js +30 -0
  168. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f6jg2_._.js +3 -0
  169. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gaiasa._.js +3 -0
  170. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__11t.nhs._.js → [root-of-the-server]__0k23.h1._.js} +2 -2
  171. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n-4zp8._.js +3 -0
  172. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0kgp2xy._.js → [root-of-the-server]__0pj4ghy._.js} +1 -1
  173. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ps55l6._.js +1 -1
  174. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0snkwkk._.js +3 -0
  175. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ss.-i7._.js +30 -0
  176. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__02px.0y._.js → [root-of-the-server]__0vk3eou._.js} +2 -2
  177. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vqar.7._.js +3 -0
  178. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0x81w9c._.js +30 -0
  179. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0yr--da._.js +3 -0
  180. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z1phoe._.js +3 -0
  181. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~8i4lj._.js +3 -0
  182. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0wvyks.._.js → [root-of-the-server]__10yxmur._.js} +2 -2
  183. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11dfb6z._.js +3 -0
  184. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11einlk._.js +30 -0
  185. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11zjs~k._.js +3 -0
  186. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13wezd4._.js +30 -0
  187. package/.next/standalone/.next/server/chunks/ssr/{_0zgu282._.js → _00-v8~4._.js} +1 -1
  188. package/.next/standalone/.next/server/chunks/ssr/_05h.8a~._.js +1 -1
  189. package/.next/standalone/.next/server/chunks/ssr/_06sgp6h._.js +3 -0
  190. package/.next/standalone/.next/server/chunks/ssr/{_0c-49y3._.js → _09gfkbi._.js} +1 -1
  191. package/.next/standalone/.next/server/chunks/ssr/_0_l8.dg._.js +1 -1
  192. package/.next/standalone/.next/server/chunks/ssr/{_028bxro._.js → _0bxf9ev._.js} +2 -2
  193. package/.next/standalone/.next/server/chunks/ssr/_0cf4wa5._.js +7 -0
  194. package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
  195. package/.next/standalone/.next/server/chunks/ssr/_0h~yckx._.js +3 -0
  196. package/.next/standalone/.next/server/chunks/ssr/_0i4__mf._.js +1 -1
  197. package/.next/standalone/.next/server/chunks/ssr/{_0t9cbox._.js → _0istl17._.js} +2 -2
  198. package/.next/standalone/.next/server/chunks/ssr/_0kkxrcc._.js +3 -0
  199. package/.next/standalone/.next/server/chunks/ssr/{_0jymo4.._.js → _0mvc5xq._.js} +2 -2
  200. package/.next/standalone/.next/server/chunks/ssr/{_0am8~b4._.js → _0nbldfa._.js} +2 -2
  201. package/.next/standalone/.next/server/chunks/ssr/_0nia_eb._.js +7 -0
  202. package/.next/standalone/.next/server/chunks/ssr/{_0_q~7z7._.js → _0of7fy7._.js} +1 -1
  203. package/.next/standalone/.next/server/chunks/ssr/{_0ssha_7._.js → _0ome.i4._.js} +2 -2
  204. package/.next/standalone/.next/server/chunks/ssr/_0pgn51u._.js +7 -0
  205. package/.next/standalone/.next/server/chunks/ssr/{_0rbai5c._.js → _0q6ax60._.js} +1 -1
  206. package/.next/standalone/.next/server/chunks/ssr/{_0niubv5._.js → _0rk3o8h._.js} +1 -1
  207. package/.next/standalone/.next/server/chunks/ssr/{_0dvj0e.._.js → _0s10w76._.js} +2 -2
  208. package/.next/standalone/.next/server/chunks/ssr/{_0quq3z2._.js → _0v_1aum._.js} +2 -2
  209. package/.next/standalone/.next/server/chunks/ssr/{_13xqr7_._.js → _0w3~ri1._.js} +2 -2
  210. package/.next/standalone/.next/server/chunks/ssr/_0wvv86n._.js +3 -0
  211. package/.next/standalone/.next/server/chunks/ssr/_0xrgx~o._.js +3 -0
  212. package/.next/standalone/.next/server/chunks/ssr/{_0zszi6-._.js → _0yp1dzk._.js} +1 -1
  213. package/.next/standalone/.next/server/chunks/ssr/_0~80adm._.js +3 -3
  214. package/.next/standalone/.next/server/chunks/ssr/{_0y-7tle._.js → _102gd3m._.js} +1 -1
  215. package/.next/standalone/.next/server/chunks/ssr/_10dvolb._.js +3 -0
  216. package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +1 -1
  217. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__03ebsif._.js → src_0j_1~da._.js} +4 -4
  218. package/.next/standalone/.next/server/chunks/ssr/src_13jha60._.js +1 -1
  219. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  220. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  221. package/.next/standalone/.next/server/chunks/ssr/src_actions_search-code-actions_ts_0k9u5d~._.js +3 -0
  222. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  223. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  224. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  225. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  226. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  227. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  228. package/.next/standalone/.next/server/chunks/ssr/{src_lib_06uhm3j._.js → src_lib_02~8o7n._.js} +1 -1
  229. package/.next/standalone/.next/server/chunks/ssr/{src_lib_07rspg0._.js → src_lib_05._ry~._.js} +1 -1
  230. package/.next/standalone/.next/server/chunks/ssr/{src_lib_0.qra8k._.js → src_lib_0d6br1r._.js} +1 -1
  231. package/.next/standalone/.next/server/chunks/ssr/{src_lib_05il5a6._.js → src_lib_0d7-dyi._.js} +1 -1
  232. package/.next/standalone/.next/server/chunks/ssr/src_lib_0iq4x_.._.js +3 -0
  233. package/.next/standalone/.next/server/chunks/ssr/src_lib_0me8mly._.js +3 -0
  234. package/.next/standalone/.next/server/chunks/ssr/src_lib_0ngr9__._.js +3 -0
  235. package/.next/standalone/.next/server/chunks/ssr/src_lib_0qu3epc._.js +3 -0
  236. package/.next/standalone/.next/server/chunks/ssr/src_lib_0r2kk28._.js +3 -0
  237. package/.next/standalone/.next/server/chunks/ssr/src_lib_0v-t4im._.js +3 -0
  238. package/.next/standalone/.next/server/chunks/ssr/src_lib_0v244ym._.js +3 -0
  239. package/.next/standalone/.next/server/chunks/ssr/src_lib_0y0c60a._.js +3 -0
  240. package/.next/standalone/.next/server/chunks/ssr/src_lib_13f4e5p._.js +3 -0
  241. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  242. package/.next/standalone/.next/server/pages/404.html +1 -1
  243. package/.next/standalone/.next/server/pages/500.html +1 -1
  244. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  245. package/.next/standalone/.next/server/server-reference-manifest.json +266 -266
  246. package/.next/standalone/.next/static/chunks/0.8v0ovyop-~2.js +1 -0
  247. package/.next/standalone/.next/static/chunks/{0esxrl_jbzhq0.js → 00l2hb0-8vqxa.js} +2 -2
  248. package/.next/standalone/.next/static/chunks/{0xkogzb0hkmv2.js → 07pvcpi6zp562.js} +2 -2
  249. package/.next/standalone/.next/static/chunks/{0e01jd~5_f9y~.js → 08xj788_-g4ro.js} +1 -1
  250. package/.next/standalone/.next/static/chunks/{0pn91v~~ax-2i.js → 0gw.5-0.yxwx-.js} +1 -1
  251. package/.next/standalone/.next/static/chunks/0q6i.u46oj3et.js +2 -0
  252. package/.next/standalone/.next/static/chunks/{0dzfcafnnd9ar.js → 0qx8zbx8~0kzb.js} +1 -1
  253. package/.next/standalone/.next/static/chunks/{08czwnyn-yb6h.js → 0v5-g5xtcj48u.js} +1 -1
  254. package/.next/standalone/.next/static/chunks/0vg7vvvpc41pt.js +1 -0
  255. package/.next/standalone/.next/static/chunks/{0ffqq7c8_0euc.js → 0wuryio392ep..js} +1 -1
  256. package/.next/standalone/.next/static/chunks/0x-x1fbxj_xqd.js +1 -0
  257. package/.next/standalone/.next/static/chunks/{0e1rsaypb1c8g.js → 0xw4lc5b8_ksq.js} +1 -1
  258. package/.next/standalone/.next/static/chunks/0y5a_8x-kzjh~.js +1 -0
  259. package/.next/standalone/.next/static/chunks/{0v~wcz2xuu3p-.js → 0zvvx~xakrlk3.js} +1 -1
  260. package/.next/standalone/.next/static/chunks/{0p2790ex-.bs1.js → 10m3b0915q6yz.js} +1 -1
  261. package/.next/standalone/.next/static/chunks/{0naw4k2t-iitk.js → 11fsu1zog.5r2.js} +2 -2
  262. package/.next/standalone/.next/static/chunks/{0g5lbqhmhs1om.js → 11qxjwptzbka2.js} +1 -1
  263. package/.next/standalone/.next/static/chunks/{0p2hpp_l5b.g3.js → 162.req.5srx1.js} +1 -1
  264. package/.next/standalone/.next/static/chunks/1633lyb6elnxv.js +1 -0
  265. package/.next/standalone/.next/static/chunks/{14-ne07fdt5gd.js → 17fjz63sudhsi.js} +2 -2
  266. package/.next/standalone/.next/static/chunks/184w42tfqip9h.js +1 -0
  267. package/.next/standalone/package.json +1 -1
  268. package/dist/mcp-server.cjs +18 -6
  269. package/package.json +1 -1
  270. package/.next/standalone/.next/server/chunks/[externals]__09i7990._.js +0 -3
  271. package/.next/standalone/.next/server/chunks/[externals]__0mwl_.i._.js +0 -3
  272. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05eviiz._.js +0 -20
  273. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_90467._.js +0 -3
  274. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d~z6xs._.js +0 -4
  275. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e44k3f._.js +0 -20
  276. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h.z9fm._.js +0 -11
  277. package/.next/standalone/.next/server/chunks/_0_w835g._.js +0 -4
  278. package/.next/standalone/.next/server/chunks/src_lib_0ba0ntr._.js +0 -3
  279. package/.next/standalone/.next/server/chunks/src_lib_ai_0q-~me1._.js +0 -3
  280. package/.next/standalone/.next/server/chunks/ssr/[externals]_@vscode_ripgrep_0ylq4j7._.js +0 -3
  281. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.ukame._.js +0 -30
  282. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__006_qh0._.js +0 -3
  283. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00qhe2l._.js +0 -3
  284. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01j8ix6._.js +0 -30
  285. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08n5qbf._.js +0 -3
  286. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ca_ueb._.js +0 -30
  287. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kzp4-y._.js +0 -3
  288. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l43.5g._.js +0 -4
  289. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n.cuy2._.js +0 -30
  290. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0nbj.ml._.js +0 -30
  291. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ojv-d0._.js +0 -3
  292. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pm2~fu._.js +0 -30
  293. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ribsk4._.js +0 -3
  294. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rjue04._.js +0 -30
  295. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0souuv~._.js +0 -3
  296. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0v2eslh._.js +0 -30
  297. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wjg_.n._.js +0 -3
  298. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wlmzzq._.js +0 -30
  299. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zbmoit._.js +0 -3
  300. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~03tpv._.js +0 -3
  301. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~a-emb._.js +0 -30
  302. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13vdw4w._.js +0 -3
  303. package/.next/standalone/.next/server/chunks/ssr/_03ae9ko._.js +0 -7
  304. package/.next/standalone/.next/server/chunks/ssr/_04b71ua._.js +0 -3
  305. package/.next/standalone/.next/server/chunks/ssr/_0dr-c0.._.js +0 -7
  306. package/.next/standalone/.next/server/chunks/ssr/_0ds6nk2._.js +0 -3
  307. package/.next/standalone/.next/server/chunks/ssr/_0ihq._v._.js +0 -3
  308. package/.next/standalone/.next/server/chunks/ssr/_0ik626t._.js +0 -7
  309. package/.next/standalone/.next/server/chunks/ssr/_0r9w-k8._.js +0 -3
  310. package/.next/standalone/.next/server/chunks/ssr/_0rbctq7._.js +0 -3
  311. package/.next/standalone/.next/server/chunks/ssr/_0rt8hus._.js +0 -3
  312. package/.next/standalone/.next/server/chunks/ssr/src_lib_0_8frs_._.js +0 -3
  313. package/.next/standalone/.next/server/chunks/ssr/src_lib_0cwd~e-._.js +0 -3
  314. package/.next/standalone/.next/server/chunks/ssr/src_lib_0fjk3hr._.js +0 -3
  315. package/.next/standalone/.next/server/chunks/ssr/src_lib_0g-92s-._.js +0 -3
  316. package/.next/standalone/.next/server/chunks/ssr/src_lib_0ss_gux._.js +0 -3
  317. package/.next/standalone/.next/server/chunks/ssr/src_lib_0trkgq-._.js +0 -3
  318. package/.next/standalone/.next/server/chunks/ssr/src_lib_0yvo_x7._.js +0 -3
  319. package/.next/standalone/.next/server/chunks/ssr/src_lib_11c8k4w._.js +0 -3
  320. package/.next/standalone/.next/server/chunks/ssr/src_lib_12xkd9s._.js +0 -3
  321. package/.next/standalone/.next/static/chunks/0.ofi_xek10ly.js +0 -1
  322. package/.next/standalone/.next/static/chunks/057-vm1159y01.js +0 -1
  323. package/.next/standalone/.next/static/chunks/0g1~.f9jqo3nd.js +0 -2
  324. package/.next/standalone/.next/static/chunks/0iv0ao0keotf6.js +0 -1
  325. package/.next/standalone/.next/static/chunks/0o__.a9lpdowg.js +0 -1
  326. package/.next/standalone/.next/static/chunks/0p3inhs_w7v5v.js +0 -1
  327. package/.next/standalone/.next/static/chunks/0tpzfueusr2~a.js +0 -1
  328. /package/.next/standalone/.next/static/{Y2nibY8eWLcXL1azqa_Q9 → _ZiE8oD76fu2E6vKTuPlS}/_buildManifest.js +0 -0
  329. /package/.next/standalone/.next/static/{Y2nibY8eWLcXL1azqa_Q9 → _ZiE8oD76fu2E6vKTuPlS}/_clientMiddlewareManifest.js +0 -0
  330. /package/.next/standalone/.next/static/{Y2nibY8eWLcXL1azqa_Q9 → _ZiE8oD76fu2E6vKTuPlS}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,783426,e=>{"use strict";var t=e.i(289721),s=e.i(965652),a=e.i(538059),r=e.i(340966),l=e.i(572989);let n=(0,l.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);var i=e.i(486077),o=e.i(533499);function c({totalTasks:e,runningTasks:s}){let{t:a}=(0,o.useI18n)();return(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-3 px-6 py-4",children:[(0,t.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"rounded-lg bg-sky-500/10 p-2 ring-1 ring-sky-500/20",children:(0,t.jsx)(r.ClipboardList,{className:"h-4 w-4 text-sky-400"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a("board.overview")}),(0,t.jsx)("p",{className:"text-2xl font-bold font-mono tracking-tight text-foreground",children:e})]})]})}),(0,t.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"rounded-lg bg-primary/10 p-2 ring-1 ring-primary/20",children:(0,t.jsx)(n,{className:"h-4 w-4 text-primary"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a("board.running")}),(0,t.jsx)("p",{className:"text-2xl font-bold font-mono tracking-tight text-foreground",children:s})]})]})}),(0,t.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"rounded-lg bg-emerald-500/10 p-2 ring-1 ring-emerald-500/20",children:(0,t.jsx)(i.Lightbulb,{className:"h-4 w-4 text-emerald-400"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a("board.tip")}),(0,t.jsx)("p",{className:"text-xs font-medium text-foreground/80",children:a("board.tipText")})]})]})})]})}var d=e.i(210702),x=e.i(232545),m=e.i(738690),u=e.i(226145),h=e.i(519455),p=e.i(793479),f=e.i(918385);function g({searchQuery:e,onSearchChange:s,versions:a=[],versionFilter:r="all",onVersionFilterChange:l,versionsHref:n,onCreateTask:i}){let c,{t:j}=(0,o.useI18n)(),b="all"===r?j("board.allVersions"):"backlog"===r?j("board.backlogFilter"):(c=a.find(e=>e.id===r))?`${c.number} ${c.name}`:j("board.allVersions");return(0,t.jsxs)("div",{className:"flex items-center gap-2 px-6 py-2",children:[l&&(0,t.jsxs)(f.Select,{value:r,onValueChange:e=>l(e||"all"),children:[(0,t.jsxs)(f.SelectTrigger,{className:"h-8 w-44 shrink-0 gap-1.5 text-xs text-muted-foreground",children:[(0,t.jsx)(u.GitBranch,{className:"h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:b})]}),(0,t.jsxs)(f.SelectContent,{children:[(0,t.jsx)(f.SelectItem,{value:"all",children:j("board.allVersions")}),(0,t.jsx)(f.SelectItem,{value:"backlog",children:j("board.backlogFilter")}),a.map(e=>(0,t.jsxs)(f.SelectItem,{value:e.id,children:[(0,t.jsx)("span",{className:"font-mono",children:e.number})," ",e.name]},e.id))]})]}),(0,t.jsxs)("div",{className:"relative flex-1 max-w-xs",children:[(0,t.jsx)(m.Search,{className:"absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(p.Input,{type:"text",value:e,onChange:e=>s(e.target.value),placeholder:j("board.searchPlaceholder"),className:"pl-8 pr-3 text-xs"})]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[n&&(0,t.jsx)(d.default,{href:n,children:(0,t.jsxs)(h.Button,{variant:"outline",className:"h-8 gap-1.5 text-xs text-muted-foreground",children:[(0,t.jsx)(u.GitBranch,{className:"h-3.5 w-3.5"}),j("version.timeline")]})}),(0,t.jsxs)(h.Button,{"data-tour":"create-task",variant:"outline",className:"gap-1.5 border-border text-xs text-muted-foreground hover:border-primary/30 hover:text-primary",onClick:i,children:[(0,t.jsx)(x.Plus,{className:"h-3.5 w-3.5"}),j("board.newTask")]})]})]})}var j=e.i(585012),b=e.i(597746),N=e.i(685149);function v({x:e,y:r,taskId:l,currentStatus:n,hasExecutions:i,workspaceId:c,onClose:d,onStatusChange:x,onLaunch:m}){let{t:u}=(0,o.useI18n)(),h=(0,a.useRouter)(),p=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&d()},t=e=>{"Escape"===e.key&&d()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[d]);let f="flex items-center px-3 py-1.5 text-xs cursor-pointer hover:bg-accent rounded-sm w-full text-left",g=(0,t.jsxs)("div",{ref:p,style:{position:"fixed",top:r,left:e,zIndex:9999},className:"bg-popover border border-border rounded-md shadow-md py-1 min-w-[180px]",children:[(0,t.jsx)("div",{className:"px-3 py-1 text-[10px] text-muted-foreground uppercase tracking-wider",children:u("board.contextMenu.changeStatus")}),N.BOARD_COLUMNS.map(e=>(0,t.jsxs)("button",{type:"button",className:f,onClick:()=>{x(l,e.id),d()},children:[n===e.id?(0,t.jsx)(b.Check,{className:"h-3 w-3 mr-2 flex-shrink-0"}):(0,t.jsx)("span",{className:"w-5 flex-shrink-0"}),e.label]},e.id)),(0,t.jsx)("hr",{className:"my-1 border-border"}),(0,t.jsx)("button",{type:"button",className:`${f} ${i?"opacity-50 cursor-not-allowed":""}`,disabled:i,onClick:()=>{i||(m(l),d())},children:u("board.contextMenu.launch")}),"DONE"!==n&&"CANCELLED"!==n&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("hr",{className:"my-1 border-border"}),(0,t.jsx)("button",{type:"button",className:f,onClick:()=>{h.push(`/workspaces/${c}/tasks/${l}`),d()},children:u("board.contextMenu.goToDetail")})]})]});return"u"<typeof document?null:(0,j.createPortal)(g,document.body)}var y=e.i(720247),k=e.i(775712);let w=(0,l.default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);var C=e.i(67013),S=e.i(49007),P=e.i(464249),T=e.i(998626);let D=(0,l.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);var E=e.i(487486),I=e.i(755146);function B({task:e,onClick:s,onEdit:a,onDelete:r,onTogglePin:l,onContextMenu:n}){let{t:i}=(0,o.useI18n)(),{attributes:c,listeners:d,setNodeRef:x,transform:m,transition:u,isDragging:p}=(0,k.useSortable)({id:e.id,data:{type:"task",task:e}}),f={transform:C.CSS.Transform.toString(m),transition:u,opacity:p?.4:1},g=N.PRIORITY_CONFIG[e.priority];return(0,t.jsxs)("div",{ref:x,style:f,...c,...d,className:"group cursor-grab rounded-lg border border-border bg-card p-3 transition-all hover:border-primary/20 hover:bg-accent/50 active:cursor-grabbing",onClick:s,onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),n?.(e,t.clientX,t.clientY)},"data-testid":"task-card",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-foreground",children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",className:`transition-all ${e.pinned?"text-primary opacity-100":"text-muted-foreground opacity-0 group-hover:opacity-100"}`,onClick:t=>{t.stopPropagation(),l?.(e.id)},"aria-label":i(e.pinned?"board.unpin":"board.pin"),children:(0,t.jsx)(D,{className:`h-3.5 w-3.5 ${e.pinned?"-rotate-45":""}`})}),(0,t.jsxs)(I.DropdownMenu,{children:[(0,t.jsx)(I.DropdownMenuTrigger,{render:(0,t.jsx)("button",{className:"rounded-md p-0.5 text-muted-foreground opacity-0 transition-all hover:bg-background hover:text-foreground group-hover:opacity-100",onClick:e=>e.stopPropagation()}),children:(0,t.jsx)(S.MoreHorizontal,{className:"h-4 w-4"})}),(0,t.jsxs)(I.DropdownMenuContent,{align:"end",children:[(0,t.jsxs)(I.DropdownMenuItem,{onClick:t=>{t.stopPropagation(),a?.(e)},children:[(0,t.jsx)(P.Pencil,{className:"mr-2 h-3.5 w-3.5"}),i("common.edit")]}),(0,t.jsxs)(I.DropdownMenuItem,{className:"text-rose-400",onClick:t=>{t.stopPropagation(),r?.(e.id)},children:[(0,t.jsx)(T.Trash2,{className:"mr-2 h-3.5 w-3.5"}),i("common.delete")]})]})]})]})]}),e.description&&(0,t.jsx)("p",{className:"mt-1.5 line-clamp-3 text-xs leading-relaxed text-muted-foreground",children:e.description}),(0,t.jsx)("div",{className:"mt-2.5",children:(0,t.jsx)(E.Badge,{variant:"secondary",className:`text-[10px] font-semibold ${g.color}`,children:g.label})}),e.labels&&e.labels.length>0&&(0,t.jsx)("div",{className:"mt-1.5 flex flex-wrap gap-1",children:e.labels.map(e=>(0,t.jsx)("span",{className:"rounded-full px-1.5 py-0.5 text-[10px] font-medium",style:{backgroundColor:e.label.color+"20",color:e.label.color},children:e.label.name},e.label.id))})]})}var R=e.i(776639),L=e.i(759684);function $({open:e,onOpenChange:s,columnLabel:a,columnColor:r,tasks:l,onTaskClick:n}){let{t:i}=(0,o.useI18n)();return(0,t.jsx)(R.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(R.DialogContent,{className:"sm:max-w-6xl max-h-[80vh]",children:[(0,t.jsx)(R.DialogHeader,{children:(0,t.jsxs)(R.DialogTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`h-2.5 w-2.5 rounded-full ${r}`}),(0,t.jsx)("span",{children:a}),(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:l.length})]})}),(0,t.jsx)(L.ScrollArea,{className:"max-h-[680px]",children:(0,t.jsxs)("div",{className:"grid grid-cols-4 gap-3 pr-3",children:[l.map(e=>{let a=N.PRIORITY_CONFIG[e.priority];return(0,t.jsxs)("div",{className:"cursor-pointer rounded-lg border border-border bg-card p-3 transition-all hover:border-primary/20 hover:bg-accent/50",onClick:()=>{n?.(e),s(!1)},children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-foreground line-clamp-2",children:e.title}),e.description&&(0,t.jsx)("p",{className:"mt-1.5 line-clamp-2 text-xs leading-relaxed text-muted-foreground",children:e.description}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-1.5 flex-wrap",children:[(0,t.jsx)(E.Badge,{variant:"secondary",className:`text-[10px] font-semibold ${a.color}`,children:a.label}),e.labels?.map(e=>(0,t.jsx)("span",{className:"rounded-full px-1.5 py-0.5 text-[10px] font-medium",style:{backgroundColor:e.label.color+"20",color:e.label.color},children:e.label.name},e.label.id))]})]},e.id)}),0===l.length&&(0,t.jsx)("div",{className:"col-span-4 py-8 text-center text-sm text-muted-foreground",children:i("board.noTasks")})]})})]})})}function O({id:e,label:a,color:r,tasks:l,onTaskClick:n,onEditTask:i,onAddTask:c,onDeleteTask:d,onTogglePin:m,onContextMenu:u}){let{setNodeRef:p,isOver:f}=(0,y.useDroppable)({id:e}),[g,j]=(0,s.useState)(!1),{t:b}=(0,o.useI18n)();return(0,t.jsxs)("div",{className:`flex w-0 min-w-[220px] flex-1 flex-col min-h-0 border-r border-border/50 last:border-r-0 transition-colors ${f?"bg-primary/[0.06]":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2.5 border-b border-border/30",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`h-2 w-2 rounded-full ${r}`}),(0,t.jsx)("span",{className:"text-xs font-semibold tracking-wide text-secondary-foreground",children:a}),(0,t.jsx)("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-[10px] font-mono font-medium text-muted-foreground",children:l.length})]}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>j(!0),className:"text-muted-foreground","aria-label":b("board.viewAll"),children:(0,t.jsx)(w,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:c,className:"text-muted-foreground","aria-label":"add",children:(0,t.jsx)(x.Plus,{className:"h-3.5 w-3.5"})})]})]}),(0,t.jsx)($,{open:g,onOpenChange:j,columnLabel:a,columnColor:r,tasks:l,onTaskClick:n}),(0,t.jsx)(L.ScrollArea,{className:"flex-1 min-h-0",children:(0,t.jsx)("div",{ref:p,className:"flex flex-col gap-2 p-2",children:(0,t.jsx)(k.SortableContext,{items:l.map(e=>e.id),strategy:k.verticalListSortingStrategy,children:l.map(e=>(0,t.jsx)(B,{task:e,onClick:()=>n?.(e),onEdit:i,onDelete:d,onTogglePin:m,onContextMenu:u},e.id))})})})]})}function A({initialTasks:e,onTaskMove:a,onTaskClick:r,onEditTask:l,onAddTask:n,onDeleteTask:i,onTogglePin:o,onContextMenuStatusChange:c,onContextMenuLaunch:d,workspaceId:x}){let[m,u]=(0,s.useState)(e),[h,p]=(0,s.useState)(null),[f,g]=(0,s.useState)(null);(0,s.useEffect)(()=>{u(e)},[e]);let j=(0,y.useSensors)((0,y.useSensor)(y.PointerSensor,{activationConstraint:{distance:8}})),b=(0,s.useCallback)((e,t,s)=>{g({task:e,x:t,y:s})},[]),k=(0,s.useCallback)(e=>{let t=m.find(t=>t.id===e.active.id);t&&p(t)},[m]),w=(0,s.useCallback)(e=>{let t,{active:s,over:r}=e;if(p(null),!r)return;let l=s.id,n=r.id;if(N.BOARD_COLUMNS.some(e=>e.id===n))t=n;else{let e=m.find(e=>e.id===n);t=e?.status}t&&(u(e=>e.map(e=>e.id===l?{...e,status:t}:e)),a?.(l,t))},[m,a]);return(0,t.jsxs)(y.DndContext,{id:"kanban-board",sensors:j,collisionDetection:y.closestCorners,onDragStart:k,onDragEnd:w,children:[(0,t.jsx)("div",{className:"mx-2 flex h-full overflow-x-auto rounded-xl border border-border bg-card/50",children:N.BOARD_COLUMNS.map(e=>(0,t.jsx)(O,{id:e.id,label:e.label,color:e.color,tasks:m.filter(t=>t.status===e.id),onTaskClick:r,onEditTask:l,onAddTask:()=>n?.(e.id),onDeleteTask:i,onTogglePin:o,onContextMenu:b},e.id))}),(0,t.jsx)(y.DragOverlay,{children:h?(0,t.jsx)("div",{className:"rotate-3 scale-105",children:(0,t.jsx)(B,{task:h})}):null}),f&&(0,t.jsx)(v,{x:f.x,y:f.y,taskId:f.task.id,currentStatus:f.task.status,hasExecutions:(f.task._count?.executions??0)>0,workspaceId:x??"",onClose:()=>g(null),onStatusChange:(e,t)=>{c?.(e,t),g(null)},onLaunch:e=>{d?.(e),g(null)}})]})}var F=e.i(744798),M=e.i(232280),z=e.i(368490),U=e.i(242941),G=e.i(645378),_=e.i(453889);let V=(0,l.default)("git-commit-vertical",[["path",{d:"M12 3v6",key:"1holv5"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M12 15v6",key:"a9ows0"}]]);var W=e.i(938499),H=e.i(400355),K=e.i(233274),J=e.i(194358),Y=e.i(624687),q=e.i(514798);let X=(0,q.createServerReference)("6073ba3633abe6c1abe2882b0918ce3fb8c161902a",q.callServer,void 0,q.findSourceMapURL,"updateProject");var Q=e.i(874456);let Z=(0,q.createServerReference)("40ae36a6b73337676b5c591fa3b50251dc3e0bff4c",q.callServer,void 0,q.findSourceMapURL,"deleteProject"),ee=(0,q.createServerReference)("40a00823cbee2b458a9727fa431ee7f9e57a8c3970",q.callServer,void 0,q.findSourceMapURL,"getRecentLocalProjects"),et=(0,q.createServerReference)("4010dca144e8a2deb03a87df7e013158ae54043763",q.callServer,void 0,q.findSourceMapURL,"getOrCreateTowerTaskId");var es=e.i(435134),ea=e.i(360112),er=e.i(224277),el=e.i(905455),en=e.i(711554),ei=e.i(875840);function eo({commits:e}){let{t:a}=(0,o.useI18n)(),[r,l]=(0,s.useState)(!1);return 0===e.length?null:(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>l(!r),className:"flex w-full items-center justify-between py-1",children:[(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:a("git.commitLog")}),r?(0,t.jsx)(M.ChevronDown,{className:"h-3 w-3 text-muted-foreground"}):(0,t.jsx)(z.ChevronRight,{className:"h-3 w-3 text-muted-foreground"})]}),r&&(0,t.jsx)("div",{className:"mt-1.5 space-y-0.5 max-h-64 overflow-y-auto",children:e.map(e=>(0,t.jsxs)("div",{className:"group flex items-start gap-2 rounded-md px-2 py-1.5 hover:bg-accent transition-colors",children:[(0,t.jsx)(V,{className:"h-3 w-3 shrink-0 text-muted-foreground mt-0.5"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-xs text-foreground line-clamp-1",children:e.message}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,t.jsxs)("button",{onClick:()=>{navigator.clipboard.writeText(e.shortHash),ea.toast.success(`Copied ${e.shortHash}`)},className:"flex items-center gap-0.5 font-mono text-[10px] text-primary/70 hover:text-primary transition-colors",children:[e.shortHash,(0,t.jsx)(ei.Copy,{className:"h-2.5 w-2.5 opacity-0 group-hover:opacity-100 transition-opacity"})]}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:e.author}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return`${t}m`;let s=Math.floor(t/60);if(s<24)return`${s}h`;let a=Math.floor(s/24);return a<30?`${a}d`:`${Math.floor(a/30)}mo`}(e.date)})]})]})]},e.hash))})]})}var ec=e.i(487278),ed=e.i(375306),ex=e.i(244354);function em({localPath:e,stashes:a,hasChanges:r,onRefresh:l}){let{t:n}=(0,o.useI18n)(),[i,c]=(0,s.useState)(!1),[d,x]=(0,s.useState)(!1),[m,u]=(0,s.useState)(""),[f,g]=(0,s.useState)(null),j=async()=>{x(!0);try{await (0,ex.gitAction)(e,"stash-save",{message:m}),u(""),ea.toast.success(n("git.stashSaved")),await l()}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}finally{x(!1)}},b=async t=>{g(t);try{await (0,ex.gitAction)(e,"stash-pop",{index:t}),ea.toast.success(n("git.stashApplied")),await l()}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}finally{g(null)}},N=async t=>{g(t);try{await (0,ex.gitAction)(e,"stash-drop",{index:t}),ea.toast.success(n("git.stashDropped")),await l()}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}finally{g(null)}};return r||0!==a.length?(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>c(!i),className:"flex w-full items-center justify-between py-1",children:[(0,t.jsxs)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:[n("git.stash")," ",a.length>0&&`(${a.length})`]}),i?(0,t.jsx)(M.ChevronDown,{className:"h-3 w-3 text-muted-foreground"}):(0,t.jsx)(z.ChevronRight,{className:"h-3 w-3 text-muted-foreground"})]}),i&&(0,t.jsxs)("div",{className:"mt-1.5 space-y-2",children:[r&&(0,t.jsxs)("div",{className:"flex gap-1.5",children:[(0,t.jsx)(p.Input,{value:m,onChange:e=>u(e.target.value),placeholder:n("git.stashMsgPlaceholder"),className:"h-7 text-xs flex-1",onKeyDown:e=>"Enter"===e.key&&j()}),(0,t.jsx)(h.Button,{variant:"outline",size:"icon-sm",onClick:j,disabled:d,className:"shrink-0",children:d?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(ec.Archive,{className:"h-3 w-3"})})]}),a.length>0&&(0,t.jsx)("div",{className:"space-y-0.5",children:a.map(e=>(0,t.jsxs)("div",{className:"group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent transition-colors",children:[(0,t.jsx)(ec.Archive,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"flex-1 min-w-0 truncate text-xs text-foreground",children:e.message||`stash@{${e.index}}`}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>b(e.index),disabled:f===e.index,className:"text-muted-foreground","aria-label":n("git.stashApply"),children:f===e.index?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(ed.ArrowUpFromLine,{className:"h-3 w-3"})}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>N(e.index),disabled:f===e.index,className:"text-rose-400","aria-label":n("git.stashDrop"),children:(0,t.jsx)(T.Trash2,{className:"h-3 w-3"})})]})]},e.index))})]})]}):null}function eu({project:e,workspaceId:r}){let{t:l,locale:n}=(0,o.useI18n)(),i=(0,a.useRouter)(),[c,d]=(0,s.useState)(!0),[x,m]=(0,s.useState)(!0),[f,g]=(0,s.useState)(!1),[j,b]=(0,s.useState)(!1),[N,v]=(0,s.useState)(""),[y,k]=(0,s.useState)(!1),[w,C]=(0,s.useState)(!1),[S,D]=(0,s.useState)(!1),[E,I]=(0,s.useState)(e.name),[B,L]=(0,s.useState)(e.alias??""),[$,O]=(0,s.useState)(e.description??""),[A,F]=(0,s.useState)(e.localPath??""),[J,q]=(0,s.useState)(e.projectType??"FRONTEND"),[ei,ec]=(0,s.useState)([]);(0,s.useEffect)(()=>{ee(100).then(ec)},[]);let[ed,ex]=(0,s.useState)(!1),[ep,ef]=(0,s.useState)(""),[eg,ej]=(0,s.useState)(""),[eb,eN]=(0,s.useState)(""),[ev,ey]=(0,s.useState)(""),[ek,ew]=(0,s.useState)("FRONTEND"),[eC,eS]=(0,s.useState)(!1),[eP,eT]=(0,s.useState)(!1),[eD,eE]=(0,s.useState)(null),[eI,eB]=(0,s.useState)(!1),[eR,eL]=(0,s.useState)(!1),[e$,eO]=(0,s.useState)(!1),eA=e=>{ea.toast.info(e)},eF=(0,s.useCallback)(async()=>{if(e.localPath){eB(!0);try{let t=await fetch(`/api/git?path=${encodeURIComponent(e.localPath)}`);t.ok&&eE(await t.json())}catch{}finally{eB(!1)}}},[e.localPath]);(0,s.useEffect)(()=>{eF()},[eF]);let eM=async()=>{if(e.localPath){eL(!0);try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"init",path:e.localPath})})).ok?(eA(l("git.initSuccess")),await eF()):eA(l("git.initFailed"))}catch{eA(l("git.initFailed"))}finally{eL(!1)}}},ez=async t=>{if(e.localPath)try{let s=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkout",path:e.localPath,branch:t})});if(s.ok)eA(`${l("git.switchSuccess")} ${t}`),await eF();else{let e=await s.json();eA(`${l("git.switchFailed")}: ${e.error}`)}}catch{eA(l("git.switchFailed"))}},eU=(e,t)=>{i.push(`/workspaces/${e}?projectId=${t}`,{scroll:!1}),i.refresh()},eG=async()=>{if(eg.trim()){eS(!0);try{let e=await (0,Q.createProject)({name:eg.trim(),alias:eb.trim()||void 0,description:ev.trim()||void 0,localPath:ep,projectType:ek,workspaceId:r});ex(!1),eU(r,e.id)}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}finally{eS(!1)}}},e_=async()=>{if(A&&!eP){eT(!0);try{let e=await (0,es.analyzeProjectDirectory)(A.trim(),n);O(e)}catch{ea.toast.error(l("project.analyzeError"))}finally{eT(!1)}}},eV=async()=>{try{await X(e.id,{name:E.trim(),alias:B.trim()||void 0,description:$.trim()||void 0,localPath:A.trim()||void 0,projectType:J}),i.refresh(),g(!1)}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}};return(0,t.jsxs)("aside",{className:"relative w-72 flex-shrink-0 overflow-y-auto border-l border-border bg-sidebar",children:[(0,t.jsxs)("div",{className:"border-b border-border p-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h2",{className:"text-base font-semibold text-foreground",children:e.name}),e.alias&&(0,t.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:e.alias})]}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{I(e.name),L(e.alias??""),O(e.description??""),F(e.localPath??""),g(!0)},className:"text-muted-foreground",children:(0,t.jsx)(P.Pencil,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{v(""),b(!0)},className:"text-muted-foreground hover:text-rose-400",children:(0,t.jsx)(T.Trash2,{className:"h-3.5 w-3.5"})})]})]}),e.description&&(0,t.jsx)("p",{className:"mt-2 text-sm text-secondary-foreground leading-relaxed line-clamp-4",children:e.description}),(0,t.jsx)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:(0,t.jsx)("span",{className:`inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-[11px] font-medium ${"GIT"===e.type?"bg-sky-500/15 text-sky-300 ring-1 ring-sky-500/20":"bg-muted text-muted-foreground ring-1 ring-border"}`,children:"GIT"===e.type?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.GitBranch,{className:"h-3 w-3"}),l("sidebar.right.gitType")]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(G.FileText,{className:"h-3 w-3"}),l("sidebar.right.normalType")]})})}),e.localPath&&(0,t.jsxs)("div",{className:"mt-3 flex items-start gap-2 rounded-md bg-muted/50 px-2.5 py-2 text-xs",children:[(0,t.jsx)(_.FolderOpen,{className:"mt-0.5 h-3 w-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"break-all font-mono text-secondary-foreground",children:e.localPath})]}),e.gitUrl&&(0,t.jsxs)("div",{className:"mt-2 flex items-start gap-2 rounded-md bg-muted/50 px-2.5 py-2 text-xs",children:[(0,t.jsx)(U.Globe,{className:"mt-0.5 h-3 w-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"break-all text-secondary-foreground",children:e.gitUrl})]}),e.localPath&&(0,t.jsxs)(h.Button,{variant:"outline",className:"mt-3 w-full h-8 gap-1.5 text-xs",disabled:w,onClick:async()=>{C(!0);try{let t=await et(e.id);i.push(`/workspaces/${r}/tasks/${t}`)}catch{ea.toast.error(l("git.openStudioFailed"))}finally{C(!1)}},children:[w?(0,t.jsx)(H.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(_.FolderOpen,{className:"h-3.5 w-3.5"}),l("git.openStudio")]})]}),(0,t.jsxs)("div",{className:"border-b border-border p-4",children:[(0,t.jsxs)(h.Button,{variant:"ghost",onClick:()=>d(!c),className:"flex w-full cursor-pointer justify-between px-2 py-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:l("git.section")}),c?(0,t.jsx)(M.ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,t.jsx)(z.ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),c&&(0,t.jsx)("div",{className:"mt-3",children:e.localPath?eI?(0,t.jsxs)("div",{className:"flex items-center justify-center py-4 text-muted-foreground",children:[(0,t.jsx)(H.Loader2,{className:"h-4 w-4 animate-spin"}),(0,t.jsx)("span",{className:"ml-2 text-xs",children:l("git.loading")})]}):eD&&!eD.isGit?(0,t.jsxs)("div",{className:"rounded-lg border border-border bg-muted/50 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(W.AlertCircle,{className:"h-3.5 w-3.5"}),(0,t.jsx)("p",{className:"text-xs",children:l("git.notInitialized")})]}),(0,t.jsxs)(h.Button,{className:"mt-3 h-7 w-full gap-1.5 bg-primary/10 text-xs text-primary ring-1 ring-primary/20 hover:bg-primary/15",onClick:eM,disabled:eR,children:[eR?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(V,{className:"h-3 w-3"}),l("git.initRepo")]})]}):eD?.isGit?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(eh,{localBranches:eD.branches??[],remoteBranches:(eD.remoteBranches??[]).filter(e=>!eD.branches?.includes(e)),currentBranch:eD.currentBranch??"",onSwitch:ez,onFetch:async()=>{e.localPath&&(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"fetch",path:e.localPath})}),await eF())},onCreateBranch:()=>eO(!0)}),(0,t.jsx)(eo,{commits:eD.commits??[]}),(0,t.jsx)(em,{localPath:e.localPath,stashes:eD.stashes??[],hasChanges:(eD.changedFiles??[]).length>0,onRefresh:eF})]}):null:(0,t.jsx)("div",{className:"rounded-lg border border-border bg-muted/50 p-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(W.AlertCircle,{className:"h-3.5 w-3.5"}),(0,t.jsx)("p",{className:"text-xs",children:l("git.noLocalPath")})]})})})]}),(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)(h.Button,{variant:"ghost",onClick:()=>m(!x),className:"flex w-full cursor-pointer justify-between px-2 py-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:l("sidebar.right.browseRepo")}),x?(0,t.jsx)(M.ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,t.jsx)(z.ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),x&&(0,t.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,t.jsxs)(h.Button,{variant:"outline",className:"w-full h-8 gap-1.5 text-xs",onClick:()=>D(!0),children:[(0,t.jsx)(_.FolderOpen,{className:"h-3.5 w-3.5"}),l("sidebar.right.browseRepo")]}),ei.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground mb-1.5 px-1",children:l("sidebar.right.recent")}),(0,t.jsx)("div",{className:"space-y-0.5",children:ei.map(s=>(0,t.jsxs)("button",{onClick:()=>{s.id!==e.id&&eU(s.workspaceId,s.id)},className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors ${s.id===e.id?"bg-primary/10 text-primary cursor-default":"hover:bg-accent cursor-pointer"}`,children:["GIT"===s.type?(0,t.jsx)(u.GitBranch,{className:"h-3 w-3 shrink-0 text-emerald-400"}):(0,t.jsx)(_.FolderOpen,{className:"h-3 w-3 shrink-0 text-primary/70"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-xs font-medium text-foreground",children:s.name}),s.localPath&&(0,t.jsx)("p",{className:"truncate text-[10px] font-mono text-muted-foreground",children:s.localPath})]})]},s.id))})]})]})]}),(0,t.jsx)(R.Dialog,{open:f,onOpenChange:g,children:(0,t.jsxs)(R.DialogContent,{style:{maxWidth:"32rem"},children:[(0,t.jsx)(R.DialogHeader,{children:(0,t.jsx)(R.DialogTitle,{children:l("project.edit")})}),(0,t.jsxs)("div",{className:"space-y-3 py-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.name")}),(0,t.jsx)(p.Input,{value:E,onChange:e=>I(e.target.value),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.type.label")}),(0,t.jsx)("div",{className:"mt-1.5",children:(0,t.jsx)(el.SegmentedControl,{options:[{value:"FRONTEND",label:l("project.type.frontend")},{value:"BACKEND",label:l("project.type.backend")}],value:J,onChange:q})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.alias")}),(0,t.jsx)(p.Input,{value:B,onChange:e=>L(e.target.value),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.description")}),(0,t.jsxs)(h.Button,{type:"button",variant:"ghost",onClick:e_,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!A||eP?"opacity-50":""}`,children:[eP?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(K.Sparkles,{className:"h-3 w-3"}),eP?l("project.analyzing"):l("project.genDesc")]})]}),(0,t.jsx)(Y.Textarea,{value:$,onChange:e=>O(e.target.value),rows:2,className:"mt-1.5 w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none max-h-[200px] overflow-y-auto"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.localPath")}),(0,t.jsxs)("div",{className:"mt-1.5 flex gap-2",children:[(0,t.jsx)(p.Input,{value:A,onChange:e=>F(e.target.value),placeholder:l("project.localPathPlaceholder"),className:"flex-1 font-mono text-xs"}),(0,t.jsx)(h.Button,{variant:"outline",onClick:()=>D(!0),className:"h-8 shrink-0",children:l("folder.browse")})]})]})]}),(0,t.jsxs)(R.DialogFooter,{children:[(0,t.jsx)(h.Button,{variant:"outline",onClick:()=>g(!1),children:l("common.cancel")}),(0,t.jsx)(h.Button,{onClick:eV,disabled:!E.trim()||eP,className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:l("common.save")})]})]})}),(0,t.jsx)(er.FolderBrowserDialog,{open:S,onOpenChange:D,onSelect:e=>{f?F(e):(e=>{let t=ei.find(t=>t.localPath===e);if(t)return eU(t.workspaceId,t.id);let s=e.split("/").filter(Boolean).pop()??"";ef(e),ej(s),eN(""),ey(""),ex(!0)})(e)}}),(0,t.jsx)(R.Dialog,{open:ed,onOpenChange:ex,children:(0,t.jsxs)(R.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(R.DialogHeader,{children:(0,t.jsx)(R.DialogTitle,{children:l("topbar.newProject")})}),(0,t.jsxs)("div",{className:"space-y-3 py-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.localPath")}),(0,t.jsx)("div",{className:"mt-1.5 rounded-md border border-border bg-muted/50 px-3 py-2 font-mono text-xs text-muted-foreground",children:ep})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.name")}),(0,t.jsx)(p.Input,{value:eg,onChange:e=>ej(e.target.value),placeholder:l("project.namePlaceholder"),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.type.label")}),(0,t.jsx)("div",{className:"mt-1.5",children:(0,t.jsx)(el.SegmentedControl,{options:[{value:"FRONTEND",label:l("project.type.frontend")},{value:"BACKEND",label:l("project.type.backend")}],value:ek,onChange:ew})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.alias")}),(0,t.jsx)(p.Input,{value:eb,onChange:e=>eN(e.target.value),placeholder:l("project.aliasPlaceholder"),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.description")}),(0,t.jsx)(Y.Textarea,{value:ev,onChange:e=>ey(e.target.value),placeholder:l("project.descPlaceholder"),rows:2,className:"mt-1.5 w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none"})]})]}),(0,t.jsxs)(R.DialogFooter,{children:[(0,t.jsx)(h.Button,{variant:"outline",onClick:()=>ex(!1),children:l("common.cancel")}),(0,t.jsxs)(h.Button,{onClick:eG,disabled:!eg.trim()||eC,className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:[eC?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin mr-1"}):null,l("common.create")]})]})]})}),eD?.isGit&&(0,t.jsx)(en.CreateBranchDialog,{open:e$,onOpenChange:eO,branches:eD.branches??[],currentBranch:eD.currentBranch??"",localPath:e.localPath,onCreated:async()=>{await eF(),eA(l("git.createSuccess"))},onError:e=>eA(`${l("git.createFailed")}: ${e}`)}),(0,t.jsx)(R.Dialog,{open:j,onOpenChange:e=>{b(e),e||v("")},children:(0,t.jsxs)(R.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(R.DialogHeader,{children:(0,t.jsx)(R.DialogTitle,{className:"text-rose-400",children:l("project.deleteTitle")})}),(0,t.jsxs)("div",{className:"space-y-3 py-2",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:l("project.deleteWarning",{name:e.name})}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:l("project.deleteIrreversible")}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.deleteConfirmLabel")}),(0,t.jsx)(p.Input,{value:N,onChange:e=>v(e.target.value),placeholder:l("project.deleteConfirmPlaceholder"),className:"mt-1.5",autoFocus:!0})]})]}),(0,t.jsxs)(R.DialogFooter,{children:[(0,t.jsx)(h.Button,{variant:"outline",onClick:()=>b(!1),children:l("common.cancel")}),(0,t.jsxs)(h.Button,{variant:"destructive",disabled:N!==l("project.deleteConfirmText")||y,onClick:async()=>{k(!0);try{await Z(e.id),ea.toast.success(l("project.deleteSuccess")),i.push(`/workspaces/${r}`)}catch{ea.toast.error(l("project.deleteFailed"))}finally{k(!1),b(!1)}},children:[y&&(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin mr-1"}),l("project.deleteButton")]})]})]})})]})}function eh({localBranches:e,remoteBranches:a,currentBranch:r,onSwitch:l,onFetch:n,onCreateBranch:i}){let{t:c}=(0,o.useI18n)(),[d,p]=(0,s.useState)(!1),[f,g]=(0,s.useState)(""),[j,N]=(0,s.useState)(!1),v=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(d)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){v.current&&!v.current.contains(e.target)&&p(!1)}},[d]);let y=f.toLowerCase(),k=e.filter(e=>e.toLowerCase().includes(y)),w=a.filter(e=>e.toLowerCase().includes(y)),C=k.length>0||w.length>0,S=async()=>{N(!0);try{await n()}finally{N(!1)}};return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("git.currentBranch")}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:S,disabled:j,className:"text-muted-foreground","aria-label":"Fetch",children:(0,t.jsx)(J.RefreshCw,{className:`h-3 w-3 ${j?"animate-spin":""}`})}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:i,className:"text-muted-foreground","aria-label":c("git.createBranch"),children:(0,t.jsx)(x.Plus,{className:"h-3 w-3"})})]})]}),(0,t.jsxs)("div",{className:"relative",ref:v,children:[(0,t.jsxs)("button",{onClick:()=>{p(!d),g("")},className:"flex w-full items-center justify-between rounded-lg border border-border bg-muted/50 px-3 py-2 text-left transition-colors hover:bg-accent",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)(u.GitBranch,{className:"h-3 w-3 shrink-0 text-emerald-400"}),(0,t.jsx)("span",{className:"truncate font-mono text-xs text-foreground",children:r||"—"})]}),(0,t.jsx)(M.ChevronDown,{className:`h-3 w-3 shrink-0 text-muted-foreground transition-transform ${d?"rotate-180":""}`})]}),d&&(0,t.jsxs)("div",{className:"absolute left-0 right-0 top-full z-20 mt-1 rounded-lg border border-border bg-popover shadow-xl",children:[(0,t.jsx)("div",{className:"border-b border-border p-1.5",children:(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground"}),(0,t.jsx)("input",{value:f,onChange:e=>g(e.target.value),placeholder:"Filter...",autoFocus:!0,className:"h-7 w-full rounded-md bg-muted/50 pl-7 pr-2 text-xs text-foreground placeholder-muted-foreground outline-none focus:ring-1 focus:ring-ring"})]})}),(0,t.jsxs)("div",{className:"max-h-60 overflow-auto py-1",children:[!C&&(0,t.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No branches found"}),k.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"px-3 pt-1.5 pb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("git.localBranches")}),k.map(e=>{let s=e===r;return(0,t.jsxs)("button",{onClick:()=>{s||l(e),p(!1)},className:`flex w-full items-center gap-2 px-3 py-1.5 text-left transition-colors ${s?"bg-emerald-500/10 text-emerald-400":"text-secondary-foreground hover:bg-accent"}`,children:[(0,t.jsx)(u.GitBranch,{className:"h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate font-mono text-xs",children:e}),s&&(0,t.jsx)(b.Check,{className:"h-3 w-3 ml-auto shrink-0"})]},`local-${e}`)})]}),w.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"px-3 pt-2.5 pb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("git.remoteBranches")}),w.map(e=>(0,t.jsxs)("button",{onClick:()=>{l(e),p(!1)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-secondary-foreground transition-colors hover:bg-accent",children:[(0,t.jsx)(U.Globe,{className:"h-3 w-3 shrink-0 text-sky-400"}),(0,t.jsx)("span",{className:"truncate font-mono text-xs",children:e})]},`remote-${e}`))]})]})]})]})]})}var ep=e.i(475958),ef=e.i(567860),eg=e.i(313029),ej=e.i(301348),eb=e.i(746798),eN=e.i(259846),ev=e.i(975157);function ey({title:e,description:s,branch:a,baseBranch:r,hasConversation:l,updatedAt:n,onBack:i}){let{t:c}=(0,o.useI18n)();return(0,t.jsxs)("div",{className:"border-b border-border px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(K.Sparkles,{className:"h-3.5 w-3.5 text-primary"}),(0,t.jsx)("span",{className:"text-xs font-semibold text-primary",children:c("taskDetail.title")})]}),(0,t.jsxs)(h.Button,{variant:"ghost",onClick:i,className:"flex items-center gap-1 text-xs text-muted-foreground transition-colors hover:text-foreground h-auto px-2 py-1",children:[(0,t.jsx)(eN.ArrowLeft,{className:"h-3.5 w-3.5"}),c("taskDetail.back")]})]}),(0,t.jsx)("h2",{className:"mt-2.5 text-lg font-bold tracking-tight text-foreground",children:e}),s&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground line-clamp-2",children:s}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[r?(0,t.jsxs)(E.Badge,{variant:"secondary",className:"bg-muted text-muted-foreground text-[10px] font-mono border border-border",children:[(0,t.jsx)(u.GitBranch,{className:"mr-1 h-3 w-3"}),r," · worktree"]}):a?(0,t.jsx)(E.Badge,{variant:"secondary",className:"bg-muted text-muted-foreground text-[10px] font-mono border border-border",children:c("taskDetail.directMode")}):null,l&&(0,t.jsx)(E.Badge,{variant:"secondary",className:"bg-emerald-500/10 text-emerald-400 text-[10px] border border-emerald-500/20",children:c("taskDetail.hasConversation")}),(0,t.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[c("taskDetail.updatedAt")," ",(0,ev.formatRelativeTime)(n)]})]})]})}var ek=e.i(14842),ew=e.i(865514),eC=e.i(83434),eS=e.i(198048),eP=e.i(462691),eT=e.i(448240),eD=e.i(875345),eE=e.i(266866),eI=e.i(23802),eB=e.i(45855),eR=e.i(548119),eL=e.i(260088),e$=e.i(326883),eO=e.i(631675);let eA=(0,l.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);var eF=e.i(657153),eM=e.i(522275);let ez=(0,q.createServerReference)("40d664edeac09a8bd1a7d7f683acbfda4eac5e8acb",q.callServer,void 0,q.findSourceMapURL,"getTaskNotes");var eU=e.i(873436);let eG=(0,q.createServerReference)("405768d702a701ae5e9f5122ac88fad6422eee1a6c",q.callServer,void 0,q.findSourceMapURL,"getTaskAssets");var e_=e.i(18612),eV=e.i(519058);function eW({taskId:e,projectId:a}){let{t:r}=(0,o.useI18n)(),l=(0,s.useRef)(null),[n,i]=(0,s.useState)([]),[c,d]=(0,s.useState)([]),[m,u]=(0,s.useState)(!1),[p,f]=(0,s.useState)(""),[g,j]=(0,s.useState)(""),[b,N]=(0,s.useState)(!1);async function v(){p.trim()&&(await (0,eM.createNote)({title:p.trim(),content:g.trim(),projectId:a,taskId:e,category:"task"}),f(""),j(""),u(!1),ez(e).then(i))}async function y(e){await (0,eU.deleteNote)(e),i(t=>t.filter(t=>t.id!==e))}async function k(t){let s=t.target.files?.[0];if(s){N(!0);try{let t=new FormData;t.set("file",s),t.set("projectId",a),t.set("taskId",e),await (0,e_.uploadAsset)(t),eG(e).then(d)}finally{N(!1),l.current&&(l.current.value="")}}}async function w(e){await (0,eV.deleteAsset)(e),d(t=>t.filter(t=>t.id!==e))}return(0,s.useEffect)(()=>{ez(e).then(i),eG(e).then(d)},[e]),(0,t.jsx)(L.ScrollArea,{className:"h-full",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"border-b border-border px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("h3",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:[(0,t.jsx)(G.FileText,{className:"h-3.5 w-3.5"}),r("taskPage.notes")]}),(0,t.jsxs)(h.Button,{variant:"ghost",className:"h-6 gap-1 px-2 text-xs",onClick:()=>u(!m),children:[m?(0,t.jsx)(eF.X,{className:"h-3 w-3"}):(0,t.jsx)(x.Plus,{className:"h-3 w-3"}),m?"":r("taskPage.addNote")]})]}),m&&(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsx)("input",{type:"text",value:p,onChange:e=>f(e.target.value),placeholder:r("taskPage.noteTitle"),className:"h-8 w-full rounded-md border border-border bg-background px-3 text-sm focus:outline-none focus:ring-1 focus:ring-primary",autoFocus:!0}),(0,t.jsx)("textarea",{value:g,onChange:e=>j(e.target.value),placeholder:r("taskPage.noteContent"),rows:3,className:"w-full rounded-md border border-border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary resize-none"}),(0,t.jsx)(h.Button,{className:"text-xs",onClick:v,disabled:!p.trim(),children:r("taskPage.addNote")})]}),(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[0===n.length&&!m&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:r("taskPage.noNotes")}),n.map(e=>(0,t.jsx)("div",{className:"group rounded-md border border-border bg-card p-3",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h4",{className:"text-sm font-medium truncate",children:e.title}),e.content&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground line-clamp-3 whitespace-pre-wrap",children:e.content}),(0,t.jsx)("p",{className:"mt-1 text-[10px] text-muted-foreground",children:new Date(e.createdAt).toLocaleString()})]}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>y(e.id),className:"shrink-0 text-muted-foreground opacity-0 hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100",title:r("taskPage.deleteNote"),children:(0,t.jsx)(T.Trash2,{className:"h-3.5 w-3.5"})})]})},e.id))]})]}),(0,t.jsxs)("div",{className:"px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("h3",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:[(0,t.jsx)(eA,{className:"h-3.5 w-3.5"}),r("taskPage.attachments")]}),(0,t.jsxs)(h.Button,{variant:"ghost",className:"h-6 gap-1 px-2 text-xs",onClick:()=>l.current?.click(),disabled:b,children:[(0,t.jsx)(eO.Upload,{className:"h-3 w-3"}),r("taskPage.uploadFile")]}),(0,t.jsx)("input",{ref:l,type:"file",className:"hidden",onChange:k})]}),(0,t.jsxs)("div",{className:"mt-2 space-y-1.5",children:[0===c.length&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:r("taskPage.noAttachments")}),c.map(e=>{var s;return(0,t.jsxs)("div",{className:"group flex items-center gap-2 rounded-md border border-border bg-card px-3 py-2",children:[(0,t.jsx)(eA,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"flex-1 truncate text-sm",children:e.filename}),(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(s=e.size)?s<1024?`${s} B`:s<1048576?`${(s/1024).toFixed(1)} KB`:`${(s/1024/1024).toFixed(1)} MB`:""}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>w(e.id),className:"shrink-0 text-muted-foreground opacity-0 hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100",title:r("taskPage.deleteAttachment"),children:(0,t.jsx)(T.Trash2,{className:"h-3 w-3"})})]},e.id)})]})]})]})})}function eH({task:e,workspaceId:r,projectLocalPath:l,onClose:n}){let{t:i}=(0,o.useI18n)(),c=(0,a.useRouter)(),{removePortal:d}=(0,eC.useTerminalPortal)(),[x,m]=(0,s.useState)("terminal"),[u,p]=(0,s.useState)(null),[g,j]=(0,s.useState)(!1),[b,N]=(0,s.useState)(e.status);(0,s.useEffect)(()=>{N(e.status)},[e.status]);let[v,y]=(0,s.useState)(null),[k,w]=(0,s.useState)(!1),[C,S]=(0,s.useState)(!1),[P,T]=(0,s.useState)([]);(0,s.useEffect)(()=>{y(null),w(!1),S(!1),T([]),p(null),m("terminal")},[e.id]);let[D,E]=(0,s.useState)([]),[I,B]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=!1;return(0,eL.getPrompts)().then(t=>{if(e)return;E(t.map(e=>({id:e.id,name:e.name,isDefault:e.isDefault})));let s=t.find(e=>e.isDefault);s&&B(s.id)}),()=>{e=!0}},[]),(0,s.useEffect)(()=>{y(null),S(!1);let t=!1;return(0,eS.getTaskExecutions)(e.id).then(e=>{if(t)return;let s=e[0];if(s?.status==="RUNNING"){let e=s.worktreePath||l||null;e&&y(e)}T(e.filter(e=>"RUNNING"!==e.status)),S(!0)}),()=>{t=!0}},[e.id]),(0,s.useEffect)(()=>{if("changes"!==x||"TODO"===b||"CANCELLED"===b)return;let t=!1;return j(!0),fetch(`/api/tasks/${e.id}/diff`).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(e=>{t||p(e?.files||e?.branchDeleted?e:null)}).catch(()=>{t||p(null)}).finally(()=>{t||j(!1)}),()=>{t=!0}},[x,b,e.id]);let R=(0,s.useCallback)(async()=>{if(!k){w(!0),d(e.id);try{let{worktreePath:t}=await (0,eP.startPtyExecution)(e.id,"",I);y(t),N("IN_PROGRESS")}catch(e){w(!1),ea.toast.error(e instanceof Error?e.message:String(e))}}},[e.id,k,I]),$=(0,s.useCallback)(t=>{w(!1),y(null),d(e.id),0===t&&N("IN_REVIEW"),(0,eS.getTaskExecutions)(e.id).then(e=>{T(e.filter(e=>"RUNNING"!==e.status))}),c.refresh()},[c,e.id]),O=(0,s.useCallback)(async()=>{await (0,eT.stopPtyExecution)(e.id),w(!1),d(e.id),y(null),N("IN_REVIEW"),(0,eS.getTaskExecutions)(e.id).then(e=>{T(e.filter(e=>"RUNNING"!==e.status))}),c.refresh()},[e.id,c]),A=(0,s.useCallback)(async t=>{w(!0),d(e.id),y(null);try{let{worktreePath:s}=await (0,eD.resumePtyExecution)(e.id,t);y(s),N("IN_PROGRESS")}catch{w(!1)}},[e.id,d]),F=(0,s.useCallback)(async()=>{w(!0),d(e.id),y(null);try{let{worktreePath:t}=await (0,eE.continueLatestPtyExecution)(e.id);y(t),N("IN_PROGRESS")}catch(e){w(!1),ea.toast.error(e instanceof Error?e.message:String(e))}},[e.id,d]),[M,z]=(0,s.useState)(!1),[U,_]=(0,s.useState)([]),V=(0,s.useCallback)(async()=>{try{let t=await (0,eB.checkWorktreeClean)(e.id);if(t.hasWorktree&&!t.clean)return void ea.toast.error(i("taskPage.uncommittedChanges",{count:String(t.files.length)}));if(t.hasWorktree&&t.clean&&!t.hasCommits)return void ea.toast.error(i("taskPage.noChangesToComplete"));if(t.hasWorktree&&t.hasCommits){_(t.commitLog),z(!0);return}await (0,eI.updateTaskStatus)(e.id,"DONE"),N("DONE"),ea.toast.success(i("taskPage.taskCompleted")),c.refresh()}catch{ea.toast.error("Failed to complete task")}},[e.id,c,i]),W=(0,s.useCallback)(()=>{N("DONE"),z(!1),ea.toast.success(i("taskPage.taskCompleted")),c.refresh()},[c,i]),K=(0,s.useCallback)(async t=>{try{let{hash:s}=await (0,eR.commitWorktreeChanges)(e.id,t);ea.toast.success(i("diff.commitSuccess",{hash:s})),c.refresh();let a=await fetch(`/api/tasks/${e.id}/diff`);if(a.ok){let e=await a.json();p(e?.files?e:null)}}catch(e){ea.toast.error(e instanceof Error?e.message:"Commit failed")}},[e.id,c,i]);return(0,t.jsxs)("div",{className:"flex h-full w-[600px] flex-shrink-0 flex-col border-l border-border bg-sidebar","data-testid":"task-detail-panel",children:[(0,t.jsx)(ey,{title:e.title,description:i("taskDetail.panelDescription"),branch:`task/${e.id}`,baseBranch:e.baseBranch,hasConversation:!1,updatedAt:e.updatedAt,onBack:n}),(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-2",children:[(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsxs)("button",{onClick:()=>m("terminal"),className:`flex items-center gap-1.5 px-3 py-1 text-xs font-medium rounded-md ${"terminal"===x?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,t.jsx)(ef.Terminal,{className:"h-3 w-3"}),i("terminal.execute")]}),(0,t.jsx)("button",{onClick:()=>m("changes"),className:`px-3 py-1 text-xs font-medium rounded-md ${"changes"===x?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:i("taskPage.changes")}),(0,t.jsxs)("button",{onClick:()=>m("notes"),className:`flex items-center gap-1.5 px-3 py-1 text-xs font-medium rounded-md ${"notes"===x?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,t.jsx)(G.FileText,{className:"h-3 w-3"}),i("taskPage.notes")]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:["IN_REVIEW"===b&&(0,t.jsxs)(h.Button,{size:"sm",onClick:V,className:"bg-emerald-500/15 text-emerald-400 ring-1 ring-emerald-500/20 hover:bg-emerald-500/25",children:[(0,t.jsx)(ej.CheckCircle2,{className:"h-3 w-3"}),i("taskPage.completeTask")]}),"DONE"!==b&&"CANCELLED"!==b&&(0,t.jsxs)(h.Button,{variant:"ghost",size:"sm",onClick:()=>c.push(`/workspaces/${r}/tasks/${e.id}`),className:"text-muted-foreground",children:[(0,t.jsx)(ep.ExternalLink,{className:"h-3 w-3"}),i("taskPage.viewDetails")]})]})]}),"terminal"===x?(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:C?v?(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,t.jsxs)("div",{className:"shrink-0 flex items-center justify-between border-b border-neutral-800 px-3 py-2 bg-[#0f1419]",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-emerald-400",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400 animate-pulse"}),i("execution.running")]}),(0,t.jsxs)(eb.Tooltip,{children:[(0,t.jsxs)(eb.TooltipTrigger,{onClick:O,className:"flex items-center gap-1.5 rounded-md bg-red-500/15 px-3 py-1 text-xs font-medium text-red-400 hover:bg-red-500/25 transition-colors",children:[(0,t.jsx)(eg.Square,{className:"h-3 w-3"}),i("terminal.stopExecution")]}),(0,t.jsx)(eb.TooltipContent,{side:"bottom",children:i("terminal.stopHint")})]})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0",children:(0,t.jsx)(eC.TerminalOutlet,{taskId:e.id,worktreePath:v,onSessionEnd:$})})]}):"DONE"===b||"CANCELLED"===b?(0,t.jsx)("div",{className:"flex h-full flex-col overflow-hidden",children:(0,t.jsx)(L.ScrollArea,{className:"flex-1 min-h-0",children:(0,t.jsx)(e$.ExecutionTimeline,{executions:P})})}):(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,t.jsxs)("div",{className:"shrink-0 flex items-center gap-2 border-b border-border px-4 py-3",children:[D.length>0&&(0,t.jsxs)(f.Select,{defaultValue:I??"none",onValueChange:e=>B("none"===e?null:e),children:[(0,t.jsx)(f.SelectTrigger,{size:"sm",className:"min-w-[120px]",children:(0,t.jsx)("span",{className:"text-left truncate",children:I?D.find(e=>e.id===I)?.name??i("terminal.noPrompt"):i("terminal.noPrompt")})}),(0,t.jsxs)(f.SelectContent,{className:"min-w-[200px]",children:[(0,t.jsx)(f.SelectItem,{value:"none",children:i("terminal.noPrompt")}),D.map(e=>(0,t.jsxs)(f.SelectItem,{value:e.id,children:[e.name,e.isDefault?" ★":""]},e.id))]})]},`prompt-${D.length}`),(0,t.jsxs)(h.Button,{onClick:R,disabled:k,size:"sm",className:"gap-2 px-4",children:[k?(0,t.jsx)(H.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(ef.Terminal,{className:"h-3.5 w-3.5"}),k?i("terminal.executing"):i("terminal.launch")]})]}),(0,t.jsx)(L.ScrollArea,{className:"flex-1 min-h-0",children:(0,t.jsx)(e$.ExecutionTimeline,{executions:P,onResume:A,onContinueLatest:F})})]}):(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 bg-[#0f1419]",children:[(0,t.jsx)(H.Loader2,{className:"size-5 animate-spin text-neutral-500"}),(0,t.jsx)("span",{className:"text-xs text-neutral-500",children:i("execution.loading")})]})}):"changes"===x?(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:g?(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("taskPage.loadingDiff")})}):u?.branchDeleted?(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("taskPage.branchDeleted")})}):u?(0,t.jsx)(ek.TaskDiffView,{taskId:e.id,files:u.files,totalAdded:u.totalAdded,totalRemoved:u.totalRemoved,hasConflicts:u.hasConflicts,conflictFiles:u.conflictFiles,onCommit:K,hasUncommitted:u.hasUncommitted}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("taskPage.noChanges")})})}):"notes"===x?(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,t.jsx)(eW,{taskId:e.id,projectId:e.projectId})}):null,(0,t.jsx)(ew.TaskMergeConfirmDialog,{open:M,onOpenChange:z,taskId:e.id,taskTitle:e.title,baseBranch:e.baseBranch??"main",fileCount:u?.files?.length??0,commitCount:u?.commitCount??0,commitLog:U,onMergeComplete:W})]})}var eK=e.i(435710),eJ=e.i(902389);let eY=(0,q.createServerReference)("40bf50f0e21c96f40084faf126ed0070765cdc0ebd",q.callServer,void 0,q.findSourceMapURL,"deleteTask"),eq=(0,q.createServerReference)("40c5f12983be487dafabc924d6f92f491678b95e3e",q.callServer,void 0,q.findSourceMapURL,"toggleTaskPinned"),eX=(0,q.createServerReference)("40862d58fff54f4c22e8debc184a50726be83bc36c",q.callServer,void 0,q.findSourceMapURL,"getVersionsForPicker");var eQ=e.i(19671);function eZ({projects:e,activeProjectId:a,onSelect:r}){let l=(0,s.useRef)(null),[n,i]=(0,s.useState)(!1),[o,c]=(0,s.useState)(!1),d=()=>{let e=l.current;e&&(i(e.scrollLeft>0),c(e.scrollLeft<e.scrollWidth-e.clientWidth-1))};(0,s.useEffect)(()=>{d();let e=l.current;if(e){e.addEventListener("scroll",d);let t=new ResizeObserver(d);return t.observe(e),()=>{e.removeEventListener("scroll",d),t.disconnect()}}},[e]);let x=e=>{let t=l.current;t&&t.scrollBy({left:"left"===e?-150:150,behavior:"smooth"})};return(0,t.jsxs)("div",{className:"relative flex items-center",children:[n&&(0,t.jsx)("button",{onClick:()=>x("left"),className:"absolute left-0 z-10 flex h-8 w-8 items-center justify-center rounded-md bg-background/90 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition-colors hover:text-foreground",children:(0,t.jsx)(eQ.ChevronLeft,{className:"h-4 w-4"})}),(0,t.jsx)("div",{ref:l,className:"flex items-center gap-1.5 overflow-x-auto scrollbar-none px-1 py-1",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:e.map(e=>{let s=a===e.id;return(0,t.jsxs)("button",{onClick:()=>{s||r(e.id)},className:`shrink-0 rounded-lg border-b-2 px-4 py-2 text-sm font-medium transition-colors ${s?"border-primary bg-primary/10 text-primary ring-1 ring-primary/20 cursor-default":"border-transparent text-muted-foreground hover:bg-accent hover:text-foreground cursor-pointer"}`,children:[(0,t.jsx)("span",{children:e.name}),e.alias&&(0,t.jsx)("span",{className:"ml-1.5 text-xs text-muted-foreground font-normal",children:e.alias})]},e.id)})}),o&&(0,t.jsx)("button",{onClick:()=>x("right"),className:"absolute right-0 z-10 flex h-8 w-8 items-center justify-center rounded-md bg-background/90 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition-colors hover:text-foreground",children:(0,t.jsx)(z.ChevronRight,{className:"h-4 w-4"})})]})}e.s(["BoardPageClient",0,function({workspaceId:e,projectId:r,project:l,projects:n,initialTasks:i,labels:o,openTaskId:d}){let x=(0,a.useRouter)(),[,m]=(0,s.useTransition)(),[u,h]=(0,s.useState)(""),[p,f]=(0,s.useState)("all"),[j,b]=(0,s.useState)(!1),[v,y]=(0,s.useState)("TODO"),[k,w]=(0,s.useState)(d??null),[C,S]=(0,s.useState)([]),P=k?i.find(e=>e.id===k)??null:null,[T,D]=(0,s.useState)(null);(0,s.useEffect)(()=>{eX(r).then(S).catch(()=>S([]))},[r]);let E=C.find(e=>e.isCurrent)?.id??null,I=(0,s.useCallback)(()=>{m(()=>{x.refresh()})},[x]);(0,s.useEffect)(()=>{if(j)return;let e=setInterval(()=>{m(()=>{x.refresh()})},5e3);return()=>clearInterval(e)},[x,j]);let B=(0,s.useCallback)(e=>{h(e)},[]),R=(0,s.useCallback)(async(e,t)=>{await (0,eI.updateTaskStatus)(e,t),I()},[I]),L=(0,s.useCallback)(async e=>{await (0,eK.createTask)({title:e.title,description:e.description,projectId:r,priority:e.priority,status:e.status,labelIds:e.labelIds,baseBranch:e.baseBranch,subPath:e.subPath,versionId:e.versionId??void 0}),I()},[r,I]),$=(0,s.useCallback)(async(e,t)=>{await (0,eJ.updateTask)(e,{...t,labelIds:t.labelIds}),D(null),I()},[I]),O=(0,s.useCallback)(async e=>{await eY(e),k===e&&w(null),I()},[I,k]),M=(0,s.useCallback)(async e=>{await eq(e),I()},[I]),z=(0,s.useCallback)(async t=>{try{await (0,eP.startPtyExecution)(t,"")}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}x.push(`/workspaces/${e}/tasks/${t}`)},[x,e]),U=(0,s.useCallback)(async(e,t)=>{await (0,eI.updateTaskStatus)(e,t),I()},[I]),G=(0,s.useCallback)(e=>{y(e),D(null),b(!0)},[]),_=(0,s.useCallback)(e=>{D(e),b(!0)},[]),V=i.filter(e=>!e.labels?.some(e=>e.label.name===N.TOWER_LABEL_NAME&&e.label.isBuiltin)),W=V.filter(e=>{if("backlog"===p){if(e.versionId)return!1}else if("all"!==p&&e.versionId!==p)return!1;if(u.trim()){let t=u.toLowerCase();if(!e.title.toLowerCase().includes(t)&&!e.description?.toLowerCase().includes(t))return!1}return!0});return(0,t.jsxs)("div",{className:"flex h-full",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[(0,t.jsx)("div",{className:"px-6 pt-3 pb-1",children:(0,t.jsx)(eZ,{projects:n,activeProjectId:r,onSelect:t=>x.push(`/workspaces/${e}?projectId=${t}`,{scroll:!1})})}),(0,t.jsx)(c,{totalTasks:V.length,runningTasks:V.filter(e=>"IN_PROGRESS"===e.status).length}),(0,t.jsx)(g,{searchQuery:u,onSearchChange:B,versions:C,versionFilter:p,onVersionFilterChange:f,versionsHref:`/workspaces/${e}/projects/${r}/versions`,onCreateTask:()=>{D(null),b(!0)}}),(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden p-4",children:(0,t.jsx)(A,{initialTasks:W,onTaskMove:R,onTaskClick:e=>{w(e.id)},onEditTask:_,onAddTask:G,onDeleteTask:O,onTogglePin:M,workspaceId:e,onContextMenuStatusChange:U,onContextMenuLaunch:z})}),(0,t.jsx)(F.CreateTaskDialog,{open:j,onOpenChange:e=>{b(e),e||D(null)},onSubmit:L,onUpdate:$,defaultStatus:v,editTask:T,editTaskLabelIds:T?.labels?T.labels.map(e=>e.labelId):[],labels:o.filter(e=>!(e.name===N.TOWER_LABEL_NAME&&e.isBuiltin)),projectType:l.type,projectLocalPath:l.localPath,versions:C,defaultVersionId:E})]}),P?(0,t.jsx)(eH,{task:P,workspaceId:e,projectLocalPath:l.localPath,onClose:()=>w(null)}):(0,t.jsx)(eu,{project:l,workspaceId:e})]})}],783426)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,783426,e=>{"use strict";var t=e.i(289721),s=e.i(965652),a=e.i(538059),r=e.i(340966),l=e.i(572989);let n=(0,l.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);var i=e.i(486077),o=e.i(533499);function c({totalTasks:e,runningTasks:s}){let{t:a}=(0,o.useI18n)();return(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-3 px-6 py-4",children:[(0,t.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"rounded-lg bg-sky-500/10 p-2 ring-1 ring-sky-500/20",children:(0,t.jsx)(r.ClipboardList,{className:"h-4 w-4 text-sky-400"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a("board.overview")}),(0,t.jsx)("p",{className:"text-2xl font-bold font-mono tracking-tight text-foreground",children:e})]})]})}),(0,t.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"rounded-lg bg-primary/10 p-2 ring-1 ring-primary/20",children:(0,t.jsx)(n,{className:"h-4 w-4 text-primary"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a("board.running")}),(0,t.jsx)("p",{className:"text-2xl font-bold font-mono tracking-tight text-foreground",children:s})]})]})}),(0,t.jsx)("div",{className:"rounded-xl border border-border bg-card p-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"rounded-lg bg-emerald-500/10 p-2 ring-1 ring-emerald-500/20",children:(0,t.jsx)(i.Lightbulb,{className:"h-4 w-4 text-emerald-400"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a("board.tip")}),(0,t.jsx)("p",{className:"text-xs font-medium text-foreground/80",children:a("board.tipText")})]})]})})]})}var d=e.i(210702),x=e.i(232545),m=e.i(738690),u=e.i(226145),h=e.i(519455),p=e.i(793479),f=e.i(918385);function g({searchQuery:e,onSearchChange:s,versions:a=[],versionFilter:r="all",onVersionFilterChange:l,versionsHref:n,onCreateTask:i}){let c,{t:j}=(0,o.useI18n)(),b="all"===r?j("board.allVersions"):"backlog"===r?j("board.backlogFilter"):(c=a.find(e=>e.id===r))?`${c.number} ${c.name}`:j("board.allVersions");return(0,t.jsxs)("div",{className:"flex items-center gap-2 px-6 py-2",children:[l&&(0,t.jsxs)(f.Select,{value:r,onValueChange:e=>l(e||"all"),children:[(0,t.jsxs)(f.SelectTrigger,{className:"h-8 w-44 shrink-0 gap-1.5 text-xs text-muted-foreground",children:[(0,t.jsx)(u.GitBranch,{className:"h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:b})]}),(0,t.jsxs)(f.SelectContent,{children:[(0,t.jsx)(f.SelectItem,{value:"all",children:j("board.allVersions")}),(0,t.jsx)(f.SelectItem,{value:"backlog",children:j("board.backlogFilter")}),a.map(e=>(0,t.jsxs)(f.SelectItem,{value:e.id,children:[(0,t.jsx)("span",{className:"font-mono",children:e.number})," ",e.name]},e.id))]})]}),(0,t.jsxs)("div",{className:"relative flex-1 max-w-xs",children:[(0,t.jsx)(m.Search,{className:"absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(p.Input,{type:"text",value:e,onChange:e=>s(e.target.value),placeholder:j("board.searchPlaceholder"),className:"pl-8 pr-3 text-xs"})]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[n&&(0,t.jsx)(d.default,{href:n,children:(0,t.jsxs)(h.Button,{variant:"outline",className:"h-8 gap-1.5 text-xs text-muted-foreground",children:[(0,t.jsx)(u.GitBranch,{className:"h-3.5 w-3.5"}),j("version.timeline")]})}),(0,t.jsxs)(h.Button,{"data-tour":"create-task",variant:"outline",className:"gap-1.5 border-border text-xs text-muted-foreground hover:border-primary/30 hover:text-primary",onClick:i,children:[(0,t.jsx)(x.Plus,{className:"h-3.5 w-3.5"}),j("board.newTask")]})]})]})}var j=e.i(585012),b=e.i(597746),N=e.i(685149);function v({x:e,y:r,taskId:l,currentStatus:n,hasExecutions:i,workspaceId:c,onClose:d,onStatusChange:x,onLaunch:m}){let{t:u}=(0,o.useI18n)(),h=(0,a.useRouter)(),p=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&d()},t=e=>{"Escape"===e.key&&d()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[d]);let f="flex items-center px-3 py-1.5 text-xs cursor-pointer hover:bg-accent rounded-sm w-full text-left",g=(0,t.jsxs)("div",{ref:p,style:{position:"fixed",top:r,left:e,zIndex:9999},className:"bg-popover border border-border rounded-md shadow-md py-1 min-w-[180px]",children:[(0,t.jsx)("div",{className:"px-3 py-1 text-[10px] text-muted-foreground uppercase tracking-wider",children:u("board.contextMenu.changeStatus")}),N.BOARD_COLUMNS.map(e=>(0,t.jsxs)("button",{type:"button",className:f,onClick:()=>{x(l,e.id),d()},children:[n===e.id?(0,t.jsx)(b.Check,{className:"h-3 w-3 mr-2 flex-shrink-0"}):(0,t.jsx)("span",{className:"w-5 flex-shrink-0"}),e.label]},e.id)),(0,t.jsx)("hr",{className:"my-1 border-border"}),(0,t.jsx)("button",{type:"button",className:`${f} ${i?"opacity-50 cursor-not-allowed":""}`,disabled:i,onClick:()=>{i||(m(l),d())},children:u("board.contextMenu.launch")}),"DONE"!==n&&"CANCELLED"!==n&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("hr",{className:"my-1 border-border"}),(0,t.jsx)("button",{type:"button",className:f,onClick:()=>{h.push(`/workspaces/${c}/tasks/${l}`),d()},children:u("board.contextMenu.goToDetail")})]})]});return"u"<typeof document?null:(0,j.createPortal)(g,document.body)}var y=e.i(720247),k=e.i(775712);let w=(0,l.default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);var C=e.i(67013),S=e.i(49007),P=e.i(464249),T=e.i(998626);let D=(0,l.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);var E=e.i(487486),I=e.i(755146);function B({task:e,onClick:s,onEdit:a,onDelete:r,onTogglePin:l,onContextMenu:n}){let{t:i}=(0,o.useI18n)(),{attributes:c,listeners:d,setNodeRef:x,transform:m,transition:u,isDragging:p}=(0,k.useSortable)({id:e.id,data:{type:"task",task:e}}),f={transform:C.CSS.Transform.toString(m),transition:u,opacity:p?.4:1},g=N.PRIORITY_CONFIG[e.priority];return(0,t.jsxs)("div",{ref:x,style:f,...c,...d,className:"group cursor-grab rounded-lg border border-border bg-card p-3 transition-all hover:border-primary/20 hover:bg-accent/50 active:cursor-grabbing",onClick:s,onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),n?.(e,t.clientX,t.clientY)},"data-testid":"task-card",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-foreground",children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",className:`transition-all ${e.pinned?"text-primary opacity-100":"text-muted-foreground opacity-0 group-hover:opacity-100"}`,onClick:t=>{t.stopPropagation(),l?.(e.id)},"aria-label":i(e.pinned?"board.unpin":"board.pin"),children:(0,t.jsx)(D,{className:`h-3.5 w-3.5 ${e.pinned?"-rotate-45":""}`})}),(0,t.jsxs)(I.DropdownMenu,{children:[(0,t.jsx)(I.DropdownMenuTrigger,{render:(0,t.jsx)("button",{className:"rounded-md p-0.5 text-muted-foreground opacity-0 transition-all hover:bg-background hover:text-foreground group-hover:opacity-100",onClick:e=>e.stopPropagation()}),children:(0,t.jsx)(S.MoreHorizontal,{className:"h-4 w-4"})}),(0,t.jsxs)(I.DropdownMenuContent,{align:"end",children:[(0,t.jsxs)(I.DropdownMenuItem,{onClick:t=>{t.stopPropagation(),a?.(e)},children:[(0,t.jsx)(P.Pencil,{className:"mr-2 h-3.5 w-3.5"}),i("common.edit")]}),(0,t.jsxs)(I.DropdownMenuItem,{className:"text-rose-400",onClick:t=>{t.stopPropagation(),r?.(e.id)},children:[(0,t.jsx)(T.Trash2,{className:"mr-2 h-3.5 w-3.5"}),i("common.delete")]})]})]})]})]}),e.description&&(0,t.jsx)("p",{className:"mt-1.5 line-clamp-3 text-xs leading-relaxed text-muted-foreground",children:e.description}),(0,t.jsx)("div",{className:"mt-2.5",children:(0,t.jsx)(E.Badge,{variant:"secondary",className:`text-[10px] font-semibold ${g.color}`,children:g.label})}),e.labels&&e.labels.length>0&&(0,t.jsx)("div",{className:"mt-1.5 flex flex-wrap gap-1",children:e.labels.map(e=>(0,t.jsx)("span",{className:"rounded-full px-1.5 py-0.5 text-[10px] font-medium",style:{backgroundColor:e.label.color+"20",color:e.label.color},children:e.label.name},e.label.id))})]})}var R=e.i(776639),L=e.i(759684);function $({open:e,onOpenChange:s,columnLabel:a,columnColor:r,tasks:l,onTaskClick:n}){let{t:i}=(0,o.useI18n)();return(0,t.jsx)(R.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(R.DialogContent,{className:"sm:max-w-6xl max-h-[80vh]",children:[(0,t.jsx)(R.DialogHeader,{children:(0,t.jsxs)(R.DialogTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`h-2.5 w-2.5 rounded-full ${r}`}),(0,t.jsx)("span",{children:a}),(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:l.length})]})}),(0,t.jsx)(L.ScrollArea,{className:"max-h-[680px]",children:(0,t.jsxs)("div",{className:"grid grid-cols-4 gap-3 pr-3",children:[l.map(e=>{let a=N.PRIORITY_CONFIG[e.priority];return(0,t.jsxs)("div",{className:"cursor-pointer rounded-lg border border-border bg-card p-3 transition-all hover:border-primary/20 hover:bg-accent/50",onClick:()=>{n?.(e),s(!1)},children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-foreground line-clamp-2",children:e.title}),e.description&&(0,t.jsx)("p",{className:"mt-1.5 line-clamp-2 text-xs leading-relaxed text-muted-foreground",children:e.description}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-1.5 flex-wrap",children:[(0,t.jsx)(E.Badge,{variant:"secondary",className:`text-[10px] font-semibold ${a.color}`,children:a.label}),e.labels?.map(e=>(0,t.jsx)("span",{className:"rounded-full px-1.5 py-0.5 text-[10px] font-medium",style:{backgroundColor:e.label.color+"20",color:e.label.color},children:e.label.name},e.label.id))]})]},e.id)}),0===l.length&&(0,t.jsx)("div",{className:"col-span-4 py-8 text-center text-sm text-muted-foreground",children:i("board.noTasks")})]})})]})})}function O({id:e,label:a,color:r,tasks:l,onTaskClick:n,onEditTask:i,onAddTask:c,onDeleteTask:d,onTogglePin:m,onContextMenu:u}){let{setNodeRef:p,isOver:f}=(0,y.useDroppable)({id:e}),[g,j]=(0,s.useState)(!1),{t:b}=(0,o.useI18n)();return(0,t.jsxs)("div",{className:`flex w-0 min-w-[220px] flex-1 flex-col min-h-0 border-r border-border/50 last:border-r-0 transition-colors ${f?"bg-primary/[0.06]":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2.5 border-b border-border/30",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`h-2 w-2 rounded-full ${r}`}),(0,t.jsx)("span",{className:"text-xs font-semibold tracking-wide text-secondary-foreground",children:a}),(0,t.jsx)("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-[10px] font-mono font-medium text-muted-foreground",children:l.length})]}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>j(!0),className:"text-muted-foreground","aria-label":b("board.viewAll"),children:(0,t.jsx)(w,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:c,className:"text-muted-foreground","aria-label":"add",children:(0,t.jsx)(x.Plus,{className:"h-3.5 w-3.5"})})]})]}),(0,t.jsx)($,{open:g,onOpenChange:j,columnLabel:a,columnColor:r,tasks:l,onTaskClick:n}),(0,t.jsx)(L.ScrollArea,{className:"flex-1 min-h-0",children:(0,t.jsx)("div",{ref:p,className:"flex flex-col gap-2 p-2",children:(0,t.jsx)(k.SortableContext,{items:l.map(e=>e.id),strategy:k.verticalListSortingStrategy,children:l.map(e=>(0,t.jsx)(B,{task:e,onClick:()=>n?.(e),onEdit:i,onDelete:d,onTogglePin:m,onContextMenu:u},e.id))})})})]})}function A({initialTasks:e,onTaskMove:a,onTaskClick:r,onEditTask:l,onAddTask:n,onDeleteTask:i,onTogglePin:o,onContextMenuStatusChange:c,onContextMenuLaunch:d,workspaceId:x}){let[m,u]=(0,s.useState)(e),[h,p]=(0,s.useState)(null),[f,g]=(0,s.useState)(null);(0,s.useEffect)(()=>{u(e)},[e]);let j=(0,y.useSensors)((0,y.useSensor)(y.PointerSensor,{activationConstraint:{distance:8}})),b=(0,s.useCallback)((e,t,s)=>{g({task:e,x:t,y:s})},[]),k=(0,s.useCallback)(e=>{let t=m.find(t=>t.id===e.active.id);t&&p(t)},[m]),w=(0,s.useCallback)(e=>{let t,{active:s,over:r}=e;if(p(null),!r)return;let l=s.id,n=r.id;if(N.BOARD_COLUMNS.some(e=>e.id===n))t=n;else{let e=m.find(e=>e.id===n);t=e?.status}t&&(u(e=>e.map(e=>e.id===l?{...e,status:t}:e)),a?.(l,t))},[m,a]);return(0,t.jsxs)(y.DndContext,{id:"kanban-board",sensors:j,collisionDetection:y.closestCorners,onDragStart:k,onDragEnd:w,children:[(0,t.jsx)("div",{className:"mx-2 flex h-full overflow-x-auto rounded-xl border border-border bg-card/50",children:N.BOARD_COLUMNS.map(e=>(0,t.jsx)(O,{id:e.id,label:e.label,color:e.color,tasks:m.filter(t=>t.status===e.id),onTaskClick:r,onEditTask:l,onAddTask:()=>n?.(e.id),onDeleteTask:i,onTogglePin:o,onContextMenu:b},e.id))}),(0,t.jsx)(y.DragOverlay,{children:h?(0,t.jsx)("div",{className:"rotate-3 scale-105",children:(0,t.jsx)(B,{task:h})}):null}),f&&(0,t.jsx)(v,{x:f.x,y:f.y,taskId:f.task.id,currentStatus:f.task.status,hasExecutions:(f.task._count?.executions??0)>0,workspaceId:x??"",onClose:()=>g(null),onStatusChange:(e,t)=>{c?.(e,t),g(null)},onLaunch:e=>{d?.(e),g(null)}})]})}var F=e.i(744798),M=e.i(232280),z=e.i(368490),U=e.i(242941),G=e.i(645378),_=e.i(453889);let V=(0,l.default)("git-commit-vertical",[["path",{d:"M12 3v6",key:"1holv5"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M12 15v6",key:"a9ows0"}]]);var W=e.i(938499),H=e.i(400355),K=e.i(233274),J=e.i(194358),Y=e.i(624687),q=e.i(514798);let X=(0,q.createServerReference)("60ff1bcd800e45caa95b9e3e61d8b7716f0fadd9f6",q.callServer,void 0,q.findSourceMapURL,"updateProject");var Q=e.i(883711);let Z=(0,q.createServerReference)("408150f33758d58766cf3d1bb0b0c96f3bcb63cec2",q.callServer,void 0,q.findSourceMapURL,"deleteProject"),ee=(0,q.createServerReference)("403be1e37c4ff9500a2f2908929cc0fb13c98d7c60",q.callServer,void 0,q.findSourceMapURL,"getRecentLocalProjects"),et=(0,q.createServerReference)("4067adef8f36f10d4abf6af87a6bb44a46471f927a",q.callServer,void 0,q.findSourceMapURL,"getOrCreateTowerTaskId");var es=e.i(57035),ea=e.i(360112),er=e.i(224277),el=e.i(905455),en=e.i(711554),ei=e.i(875840);function eo({commits:e}){let{t:a}=(0,o.useI18n)(),[r,l]=(0,s.useState)(!1);return 0===e.length?null:(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>l(!r),className:"flex w-full items-center justify-between py-1",children:[(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:a("git.commitLog")}),r?(0,t.jsx)(M.ChevronDown,{className:"h-3 w-3 text-muted-foreground"}):(0,t.jsx)(z.ChevronRight,{className:"h-3 w-3 text-muted-foreground"})]}),r&&(0,t.jsx)("div",{className:"mt-1.5 space-y-0.5 max-h-64 overflow-y-auto",children:e.map(e=>(0,t.jsxs)("div",{className:"group flex items-start gap-2 rounded-md px-2 py-1.5 hover:bg-accent transition-colors",children:[(0,t.jsx)(V,{className:"h-3 w-3 shrink-0 text-muted-foreground mt-0.5"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-xs text-foreground line-clamp-1",children:e.message}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,t.jsxs)("button",{onClick:()=>{navigator.clipboard.writeText(e.shortHash),ea.toast.success(`Copied ${e.shortHash}`)},className:"flex items-center gap-0.5 font-mono text-[10px] text-primary/70 hover:text-primary transition-colors",children:[e.shortHash,(0,t.jsx)(ei.Copy,{className:"h-2.5 w-2.5 opacity-0 group-hover:opacity-100 transition-opacity"})]}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:e.author}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return`${t}m`;let s=Math.floor(t/60);if(s<24)return`${s}h`;let a=Math.floor(s/24);return a<30?`${a}d`:`${Math.floor(a/30)}mo`}(e.date)})]})]})]},e.hash))})]})}var ec=e.i(487278),ed=e.i(375306),ex=e.i(244354);function em({localPath:e,stashes:a,hasChanges:r,onRefresh:l}){let{t:n}=(0,o.useI18n)(),[i,c]=(0,s.useState)(!1),[d,x]=(0,s.useState)(!1),[m,u]=(0,s.useState)(""),[f,g]=(0,s.useState)(null),j=async()=>{x(!0);try{await (0,ex.gitAction)(e,"stash-save",{message:m}),u(""),ea.toast.success(n("git.stashSaved")),await l()}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}finally{x(!1)}},b=async t=>{g(t);try{await (0,ex.gitAction)(e,"stash-pop",{index:t}),ea.toast.success(n("git.stashApplied")),await l()}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}finally{g(null)}},N=async t=>{g(t);try{await (0,ex.gitAction)(e,"stash-drop",{index:t}),ea.toast.success(n("git.stashDropped")),await l()}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}finally{g(null)}};return r||0!==a.length?(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>c(!i),className:"flex w-full items-center justify-between py-1",children:[(0,t.jsxs)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:[n("git.stash")," ",a.length>0&&`(${a.length})`]}),i?(0,t.jsx)(M.ChevronDown,{className:"h-3 w-3 text-muted-foreground"}):(0,t.jsx)(z.ChevronRight,{className:"h-3 w-3 text-muted-foreground"})]}),i&&(0,t.jsxs)("div",{className:"mt-1.5 space-y-2",children:[r&&(0,t.jsxs)("div",{className:"flex gap-1.5",children:[(0,t.jsx)(p.Input,{value:m,onChange:e=>u(e.target.value),placeholder:n("git.stashMsgPlaceholder"),className:"h-7 text-xs flex-1",onKeyDown:e=>"Enter"===e.key&&j()}),(0,t.jsx)(h.Button,{variant:"outline",size:"icon-sm",onClick:j,disabled:d,className:"shrink-0",children:d?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(ec.Archive,{className:"h-3 w-3"})})]}),a.length>0&&(0,t.jsx)("div",{className:"space-y-0.5",children:a.map(e=>(0,t.jsxs)("div",{className:"group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent transition-colors",children:[(0,t.jsx)(ec.Archive,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"flex-1 min-w-0 truncate text-xs text-foreground",children:e.message||`stash@{${e.index}}`}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>b(e.index),disabled:f===e.index,className:"text-muted-foreground","aria-label":n("git.stashApply"),children:f===e.index?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(ed.ArrowUpFromLine,{className:"h-3 w-3"})}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>N(e.index),disabled:f===e.index,className:"text-rose-400","aria-label":n("git.stashDrop"),children:(0,t.jsx)(T.Trash2,{className:"h-3 w-3"})})]})]},e.index))})]})]}):null}function eu({project:e,workspaceId:r}){let{t:l,locale:n}=(0,o.useI18n)(),i=(0,a.useRouter)(),[c,d]=(0,s.useState)(!0),[x,m]=(0,s.useState)(!0),[f,g]=(0,s.useState)(!1),[j,b]=(0,s.useState)(!1),[N,v]=(0,s.useState)(""),[y,k]=(0,s.useState)(!1),[w,C]=(0,s.useState)(!1),[S,D]=(0,s.useState)(!1),[E,I]=(0,s.useState)(e.name),[B,L]=(0,s.useState)(e.alias??""),[$,O]=(0,s.useState)(e.description??""),[A,F]=(0,s.useState)(e.localPath??""),[J,q]=(0,s.useState)(e.projectType??"FRONTEND"),[ei,ec]=(0,s.useState)([]);(0,s.useEffect)(()=>{ee(100).then(ec)},[]);let[ed,ex]=(0,s.useState)(!1),[ep,ef]=(0,s.useState)(""),[eg,ej]=(0,s.useState)(""),[eb,eN]=(0,s.useState)(""),[ev,ey]=(0,s.useState)(""),[ek,ew]=(0,s.useState)("FRONTEND"),[eC,eS]=(0,s.useState)(!1),[eP,eT]=(0,s.useState)(!1),[eD,eE]=(0,s.useState)(null),[eI,eB]=(0,s.useState)(!1),[eR,eL]=(0,s.useState)(!1),[e$,eO]=(0,s.useState)(!1),eA=e=>{ea.toast.info(e)},eF=(0,s.useCallback)(async()=>{if(e.localPath){eB(!0);try{let t=await fetch(`/api/git?path=${encodeURIComponent(e.localPath)}`);t.ok&&eE(await t.json())}catch{}finally{eB(!1)}}},[e.localPath]);(0,s.useEffect)(()=>{eF()},[eF]);let eM=async()=>{if(e.localPath){eL(!0);try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"init",path:e.localPath})})).ok?(eA(l("git.initSuccess")),await eF()):eA(l("git.initFailed"))}catch{eA(l("git.initFailed"))}finally{eL(!1)}}},ez=async t=>{if(e.localPath)try{let s=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"checkout",path:e.localPath,branch:t})});if(s.ok)eA(`${l("git.switchSuccess")} ${t}`),await eF();else{let e=await s.json();eA(`${l("git.switchFailed")}: ${e.error}`)}}catch{eA(l("git.switchFailed"))}},eU=(e,t)=>{i.push(`/workspaces/${e}?projectId=${t}`,{scroll:!1}),i.refresh()},eG=async()=>{if(eg.trim()){eS(!0);try{let e=await (0,Q.createProject)({name:eg.trim(),alias:eb.trim()||void 0,description:ev.trim()||void 0,localPath:ep,projectType:ek,workspaceId:r});ex(!1),eU(r,e.id)}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}finally{eS(!1)}}},e_=async()=>{if(A&&!eP){eT(!0);try{let e=await (0,es.analyzeProjectDirectory)(A.trim(),n);O(e)}catch{ea.toast.error(l("project.analyzeError"))}finally{eT(!1)}}},eV=async()=>{try{await X(e.id,{name:E.trim(),alias:B.trim()||void 0,description:$.trim()||void 0,localPath:A.trim()||void 0,projectType:J}),i.refresh(),g(!1)}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}};return(0,t.jsxs)("aside",{className:"relative w-72 flex-shrink-0 overflow-y-auto border-l border-border bg-sidebar",children:[(0,t.jsxs)("div",{className:"border-b border-border p-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h2",{className:"text-base font-semibold text-foreground",children:e.name}),e.alias&&(0,t.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:e.alias})]}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{I(e.name),L(e.alias??""),O(e.description??""),F(e.localPath??""),g(!0)},className:"text-muted-foreground",children:(0,t.jsx)(P.Pencil,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{v(""),b(!0)},className:"text-muted-foreground hover:text-rose-400",children:(0,t.jsx)(T.Trash2,{className:"h-3.5 w-3.5"})})]})]}),e.description&&(0,t.jsx)("p",{className:"mt-2 text-sm text-secondary-foreground leading-relaxed line-clamp-4",children:e.description}),(0,t.jsx)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:(0,t.jsx)("span",{className:`inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-[11px] font-medium ${"GIT"===e.type?"bg-sky-500/15 text-sky-300 ring-1 ring-sky-500/20":"bg-muted text-muted-foreground ring-1 ring-border"}`,children:"GIT"===e.type?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.GitBranch,{className:"h-3 w-3"}),l("sidebar.right.gitType")]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(G.FileText,{className:"h-3 w-3"}),l("sidebar.right.normalType")]})})}),e.localPath&&(0,t.jsxs)("div",{className:"mt-3 flex items-start gap-2 rounded-md bg-muted/50 px-2.5 py-2 text-xs",children:[(0,t.jsx)(_.FolderOpen,{className:"mt-0.5 h-3 w-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"break-all font-mono text-secondary-foreground",children:e.localPath})]}),e.gitUrl&&(0,t.jsxs)("div",{className:"mt-2 flex items-start gap-2 rounded-md bg-muted/50 px-2.5 py-2 text-xs",children:[(0,t.jsx)(U.Globe,{className:"mt-0.5 h-3 w-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"break-all text-secondary-foreground",children:e.gitUrl})]}),e.localPath&&(0,t.jsxs)(h.Button,{variant:"outline",className:"mt-3 w-full h-8 gap-1.5 text-xs",disabled:w,onClick:async()=>{C(!0);try{let t=await et(e.id);i.push(`/workspaces/${r}/tasks/${t}`)}catch{ea.toast.error(l("git.openStudioFailed"))}finally{C(!1)}},children:[w?(0,t.jsx)(H.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(_.FolderOpen,{className:"h-3.5 w-3.5"}),l("git.openStudio")]})]}),(0,t.jsxs)("div",{className:"border-b border-border p-4",children:[(0,t.jsxs)(h.Button,{variant:"ghost",onClick:()=>d(!c),className:"flex w-full cursor-pointer justify-between px-2 py-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:l("git.section")}),c?(0,t.jsx)(M.ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,t.jsx)(z.ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),c&&(0,t.jsx)("div",{className:"mt-3",children:e.localPath?eI?(0,t.jsxs)("div",{className:"flex items-center justify-center py-4 text-muted-foreground",children:[(0,t.jsx)(H.Loader2,{className:"h-4 w-4 animate-spin"}),(0,t.jsx)("span",{className:"ml-2 text-xs",children:l("git.loading")})]}):eD&&!eD.isGit?(0,t.jsxs)("div",{className:"rounded-lg border border-border bg-muted/50 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(W.AlertCircle,{className:"h-3.5 w-3.5"}),(0,t.jsx)("p",{className:"text-xs",children:l("git.notInitialized")})]}),(0,t.jsxs)(h.Button,{className:"mt-3 h-7 w-full gap-1.5 bg-primary/10 text-xs text-primary ring-1 ring-primary/20 hover:bg-primary/15",onClick:eM,disabled:eR,children:[eR?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(V,{className:"h-3 w-3"}),l("git.initRepo")]})]}):eD?.isGit?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(eh,{localBranches:eD.branches??[],remoteBranches:(eD.remoteBranches??[]).filter(e=>!eD.branches?.includes(e)),currentBranch:eD.currentBranch??"",onSwitch:ez,onFetch:async()=>{e.localPath&&(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"fetch",path:e.localPath})}),await eF())},onCreateBranch:()=>eO(!0)}),(0,t.jsx)(eo,{commits:eD.commits??[]}),(0,t.jsx)(em,{localPath:e.localPath,stashes:eD.stashes??[],hasChanges:(eD.changedFiles??[]).length>0,onRefresh:eF})]}):null:(0,t.jsx)("div",{className:"rounded-lg border border-border bg-muted/50 p-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(W.AlertCircle,{className:"h-3.5 w-3.5"}),(0,t.jsx)("p",{className:"text-xs",children:l("git.noLocalPath")})]})})})]}),(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)(h.Button,{variant:"ghost",onClick:()=>m(!x),className:"flex w-full cursor-pointer justify-between px-2 py-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:l("sidebar.right.browseRepo")}),x?(0,t.jsx)(M.ChevronDown,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,t.jsx)(z.ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),x&&(0,t.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,t.jsxs)(h.Button,{variant:"outline",className:"w-full h-8 gap-1.5 text-xs",onClick:()=>D(!0),children:[(0,t.jsx)(_.FolderOpen,{className:"h-3.5 w-3.5"}),l("sidebar.right.browseRepo")]}),ei.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground mb-1.5 px-1",children:l("sidebar.right.recent")}),(0,t.jsx)("div",{className:"space-y-0.5",children:ei.map(s=>(0,t.jsxs)("button",{onClick:()=>{s.id!==e.id&&eU(s.workspaceId,s.id)},className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors ${s.id===e.id?"bg-primary/10 text-primary cursor-default":"hover:bg-accent cursor-pointer"}`,children:["GIT"===s.type?(0,t.jsx)(u.GitBranch,{className:"h-3 w-3 shrink-0 text-emerald-400"}):(0,t.jsx)(_.FolderOpen,{className:"h-3 w-3 shrink-0 text-primary/70"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-xs font-medium text-foreground",children:s.name}),s.localPath&&(0,t.jsx)("p",{className:"truncate text-[10px] font-mono text-muted-foreground",children:s.localPath})]})]},s.id))})]})]})]}),(0,t.jsx)(R.Dialog,{open:f,onOpenChange:g,children:(0,t.jsxs)(R.DialogContent,{style:{maxWidth:"32rem"},children:[(0,t.jsx)(R.DialogHeader,{children:(0,t.jsx)(R.DialogTitle,{children:l("project.edit")})}),(0,t.jsxs)("div",{className:"space-y-3 py-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.name")}),(0,t.jsx)(p.Input,{value:E,onChange:e=>I(e.target.value),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.type.label")}),(0,t.jsx)("div",{className:"mt-1.5",children:(0,t.jsx)(el.SegmentedControl,{options:[{value:"FRONTEND",label:l("project.type.frontend")},{value:"BACKEND",label:l("project.type.backend")}],value:J,onChange:q})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.alias")}),(0,t.jsx)(p.Input,{value:B,onChange:e=>L(e.target.value),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.description")}),(0,t.jsxs)(h.Button,{type:"button",variant:"ghost",onClick:e_,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!A||eP?"opacity-50":""}`,children:[eP?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(K.Sparkles,{className:"h-3 w-3"}),eP?l("project.analyzing"):l("project.genDesc")]})]}),(0,t.jsx)(Y.Textarea,{value:$,onChange:e=>O(e.target.value),rows:2,className:"mt-1.5 w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none max-h-[200px] overflow-y-auto"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.localPath")}),(0,t.jsxs)("div",{className:"mt-1.5 flex gap-2",children:[(0,t.jsx)(p.Input,{value:A,onChange:e=>F(e.target.value),placeholder:l("project.localPathPlaceholder"),className:"flex-1 font-mono text-xs"}),(0,t.jsx)(h.Button,{variant:"outline",onClick:()=>D(!0),className:"h-8 shrink-0",children:l("folder.browse")})]})]})]}),(0,t.jsxs)(R.DialogFooter,{children:[(0,t.jsx)(h.Button,{variant:"outline",onClick:()=>g(!1),children:l("common.cancel")}),(0,t.jsx)(h.Button,{onClick:eV,disabled:!E.trim()||eP,className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:l("common.save")})]})]})}),(0,t.jsx)(er.FolderBrowserDialog,{open:S,onOpenChange:D,onSelect:e=>{f?F(e):(e=>{let t=ei.find(t=>t.localPath===e);if(t)return eU(t.workspaceId,t.id);let s=e.split("/").filter(Boolean).pop()??"";ef(e),ej(s),eN(""),ey(""),ex(!0)})(e)}}),(0,t.jsx)(R.Dialog,{open:ed,onOpenChange:ex,children:(0,t.jsxs)(R.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(R.DialogHeader,{children:(0,t.jsx)(R.DialogTitle,{children:l("topbar.newProject")})}),(0,t.jsxs)("div",{className:"space-y-3 py-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.localPath")}),(0,t.jsx)("div",{className:"mt-1.5 rounded-md border border-border bg-muted/50 px-3 py-2 font-mono text-xs text-muted-foreground",children:ep})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.name")}),(0,t.jsx)(p.Input,{value:eg,onChange:e=>ej(e.target.value),placeholder:l("project.namePlaceholder"),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.type.label")}),(0,t.jsx)("div",{className:"mt-1.5",children:(0,t.jsx)(el.SegmentedControl,{options:[{value:"FRONTEND",label:l("project.type.frontend")},{value:"BACKEND",label:l("project.type.backend")}],value:ek,onChange:ew})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.alias")}),(0,t.jsx)(p.Input,{value:eb,onChange:e=>eN(e.target.value),placeholder:l("project.aliasPlaceholder"),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.description")}),(0,t.jsx)(Y.Textarea,{value:ev,onChange:e=>ey(e.target.value),placeholder:l("project.descPlaceholder"),rows:2,className:"mt-1.5 w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none"})]})]}),(0,t.jsxs)(R.DialogFooter,{children:[(0,t.jsx)(h.Button,{variant:"outline",onClick:()=>ex(!1),children:l("common.cancel")}),(0,t.jsxs)(h.Button,{onClick:eG,disabled:!eg.trim()||eC,className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:[eC?(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin mr-1"}):null,l("common.create")]})]})]})}),eD?.isGit&&(0,t.jsx)(en.CreateBranchDialog,{open:e$,onOpenChange:eO,branches:eD.branches??[],currentBranch:eD.currentBranch??"",localPath:e.localPath,onCreated:async()=>{await eF(),eA(l("git.createSuccess"))},onError:e=>eA(`${l("git.createFailed")}: ${e}`)}),(0,t.jsx)(R.Dialog,{open:j,onOpenChange:e=>{b(e),e||v("")},children:(0,t.jsxs)(R.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(R.DialogHeader,{children:(0,t.jsx)(R.DialogTitle,{className:"text-rose-400",children:l("project.deleteTitle")})}),(0,t.jsxs)("div",{className:"space-y-3 py-2",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:l("project.deleteWarning",{name:e.name})}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:l("project.deleteIrreversible")}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l("project.deleteConfirmLabel")}),(0,t.jsx)(p.Input,{value:N,onChange:e=>v(e.target.value),placeholder:l("project.deleteConfirmPlaceholder"),className:"mt-1.5",autoFocus:!0})]})]}),(0,t.jsxs)(R.DialogFooter,{children:[(0,t.jsx)(h.Button,{variant:"outline",onClick:()=>b(!1),children:l("common.cancel")}),(0,t.jsxs)(h.Button,{variant:"destructive",disabled:N!==l("project.deleteConfirmText")||y,onClick:async()=>{k(!0);try{await Z(e.id),ea.toast.success(l("project.deleteSuccess")),i.push(`/workspaces/${r}`)}catch{ea.toast.error(l("project.deleteFailed"))}finally{k(!1),b(!1)}},children:[y&&(0,t.jsx)(H.Loader2,{className:"h-3 w-3 animate-spin mr-1"}),l("project.deleteButton")]})]})]})})]})}function eh({localBranches:e,remoteBranches:a,currentBranch:r,onSwitch:l,onFetch:n,onCreateBranch:i}){let{t:c}=(0,o.useI18n)(),[d,p]=(0,s.useState)(!1),[f,g]=(0,s.useState)(""),[j,N]=(0,s.useState)(!1),v=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(d)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){v.current&&!v.current.contains(e.target)&&p(!1)}},[d]);let y=f.toLowerCase(),k=e.filter(e=>e.toLowerCase().includes(y)),w=a.filter(e=>e.toLowerCase().includes(y)),C=k.length>0||w.length>0,S=async()=>{N(!0);try{await n()}finally{N(!1)}};return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("git.currentBranch")}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:S,disabled:j,className:"text-muted-foreground","aria-label":"Fetch",children:(0,t.jsx)(J.RefreshCw,{className:`h-3 w-3 ${j?"animate-spin":""}`})}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:i,className:"text-muted-foreground","aria-label":c("git.createBranch"),children:(0,t.jsx)(x.Plus,{className:"h-3 w-3"})})]})]}),(0,t.jsxs)("div",{className:"relative",ref:v,children:[(0,t.jsxs)("button",{onClick:()=>{p(!d),g("")},className:"flex w-full items-center justify-between rounded-lg border border-border bg-muted/50 px-3 py-2 text-left transition-colors hover:bg-accent",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)(u.GitBranch,{className:"h-3 w-3 shrink-0 text-emerald-400"}),(0,t.jsx)("span",{className:"truncate font-mono text-xs text-foreground",children:r||"—"})]}),(0,t.jsx)(M.ChevronDown,{className:`h-3 w-3 shrink-0 text-muted-foreground transition-transform ${d?"rotate-180":""}`})]}),d&&(0,t.jsxs)("div",{className:"absolute left-0 right-0 top-full z-20 mt-1 rounded-lg border border-border bg-popover shadow-xl",children:[(0,t.jsx)("div",{className:"border-b border-border p-1.5",children:(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground"}),(0,t.jsx)("input",{value:f,onChange:e=>g(e.target.value),placeholder:"Filter...",autoFocus:!0,className:"h-7 w-full rounded-md bg-muted/50 pl-7 pr-2 text-xs text-foreground placeholder-muted-foreground outline-none focus:ring-1 focus:ring-ring"})]})}),(0,t.jsxs)("div",{className:"max-h-60 overflow-auto py-1",children:[!C&&(0,t.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No branches found"}),k.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"px-3 pt-1.5 pb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("git.localBranches")}),k.map(e=>{let s=e===r;return(0,t.jsxs)("button",{onClick:()=>{s||l(e),p(!1)},className:`flex w-full items-center gap-2 px-3 py-1.5 text-left transition-colors ${s?"bg-emerald-500/10 text-emerald-400":"text-secondary-foreground hover:bg-accent"}`,children:[(0,t.jsx)(u.GitBranch,{className:"h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate font-mono text-xs",children:e}),s&&(0,t.jsx)(b.Check,{className:"h-3 w-3 ml-auto shrink-0"})]},`local-${e}`)})]}),w.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"px-3 pt-2.5 pb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:c("git.remoteBranches")}),w.map(e=>(0,t.jsxs)("button",{onClick:()=>{l(e),p(!1)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-secondary-foreground transition-colors hover:bg-accent",children:[(0,t.jsx)(U.Globe,{className:"h-3 w-3 shrink-0 text-sky-400"}),(0,t.jsx)("span",{className:"truncate font-mono text-xs",children:e})]},`remote-${e}`))]})]})]})]})]})}var ep=e.i(475958),ef=e.i(567860),eg=e.i(313029),ej=e.i(301348),eb=e.i(746798),eN=e.i(259846),ev=e.i(975157);function ey({title:e,description:s,branch:a,baseBranch:r,hasConversation:l,updatedAt:n,onBack:i}){let{t:c}=(0,o.useI18n)();return(0,t.jsxs)("div",{className:"border-b border-border px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(K.Sparkles,{className:"h-3.5 w-3.5 text-primary"}),(0,t.jsx)("span",{className:"text-xs font-semibold text-primary",children:c("taskDetail.title")})]}),(0,t.jsxs)(h.Button,{variant:"ghost",onClick:i,className:"flex items-center gap-1 text-xs text-muted-foreground transition-colors hover:text-foreground h-auto px-2 py-1",children:[(0,t.jsx)(eN.ArrowLeft,{className:"h-3.5 w-3.5"}),c("taskDetail.back")]})]}),(0,t.jsx)("h2",{className:"mt-2.5 text-lg font-bold tracking-tight text-foreground",children:e}),s&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground line-clamp-2",children:s}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[r?(0,t.jsxs)(E.Badge,{variant:"secondary",className:"bg-muted text-muted-foreground text-[10px] font-mono border border-border",children:[(0,t.jsx)(u.GitBranch,{className:"mr-1 h-3 w-3"}),r," · worktree"]}):a?(0,t.jsx)(E.Badge,{variant:"secondary",className:"bg-muted text-muted-foreground text-[10px] font-mono border border-border",children:c("taskDetail.directMode")}):null,l&&(0,t.jsx)(E.Badge,{variant:"secondary",className:"bg-emerald-500/10 text-emerald-400 text-[10px] border border-emerald-500/20",children:c("taskDetail.hasConversation")}),(0,t.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[c("taskDetail.updatedAt")," ",(0,ev.formatRelativeTime)(n)]})]})]})}var ek=e.i(14842),ew=e.i(865514),eC=e.i(83434),eS=e.i(550176),eP=e.i(434097),eT=e.i(589190),eD=e.i(105706),eE=e.i(859358),eI=e.i(865418),eB=e.i(869154),eR=e.i(918466),eL=e.i(202756),e$=e.i(326883),eO=e.i(631675);let eA=(0,l.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);var eF=e.i(657153),eM=e.i(27753);let ez=(0,q.createServerReference)("408fb77b6a46e85e21aba81eff4d1e88c7a84aad94",q.callServer,void 0,q.findSourceMapURL,"getTaskNotes");var eU=e.i(274294);let eG=(0,q.createServerReference)("40ba2fad36852388e48a3f76f77a0c66ade051068b",q.callServer,void 0,q.findSourceMapURL,"getTaskAssets");var e_=e.i(82782),eV=e.i(519478);function eW({taskId:e,projectId:a}){let{t:r}=(0,o.useI18n)(),l=(0,s.useRef)(null),[n,i]=(0,s.useState)([]),[c,d]=(0,s.useState)([]),[m,u]=(0,s.useState)(!1),[p,f]=(0,s.useState)(""),[g,j]=(0,s.useState)(""),[b,N]=(0,s.useState)(!1);async function v(){p.trim()&&(await (0,eM.createNote)({title:p.trim(),content:g.trim(),projectId:a,taskId:e,category:"task"}),f(""),j(""),u(!1),ez(e).then(i))}async function y(e){await (0,eU.deleteNote)(e),i(t=>t.filter(t=>t.id!==e))}async function k(t){let s=t.target.files?.[0];if(s){N(!0);try{let t=new FormData;t.set("file",s),t.set("projectId",a),t.set("taskId",e),await (0,e_.uploadAsset)(t),eG(e).then(d)}finally{N(!1),l.current&&(l.current.value="")}}}async function w(e){await (0,eV.deleteAsset)(e),d(t=>t.filter(t=>t.id!==e))}return(0,s.useEffect)(()=>{ez(e).then(i),eG(e).then(d)},[e]),(0,t.jsx)(L.ScrollArea,{className:"h-full",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"border-b border-border px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("h3",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:[(0,t.jsx)(G.FileText,{className:"h-3.5 w-3.5"}),r("taskPage.notes")]}),(0,t.jsxs)(h.Button,{variant:"ghost",className:"h-6 gap-1 px-2 text-xs",onClick:()=>u(!m),children:[m?(0,t.jsx)(eF.X,{className:"h-3 w-3"}):(0,t.jsx)(x.Plus,{className:"h-3 w-3"}),m?"":r("taskPage.addNote")]})]}),m&&(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsx)("input",{type:"text",value:p,onChange:e=>f(e.target.value),placeholder:r("taskPage.noteTitle"),className:"h-8 w-full rounded-md border border-border bg-background px-3 text-sm focus:outline-none focus:ring-1 focus:ring-primary",autoFocus:!0}),(0,t.jsx)("textarea",{value:g,onChange:e=>j(e.target.value),placeholder:r("taskPage.noteContent"),rows:3,className:"w-full rounded-md border border-border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary resize-none"}),(0,t.jsx)(h.Button,{className:"text-xs",onClick:v,disabled:!p.trim(),children:r("taskPage.addNote")})]}),(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[0===n.length&&!m&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:r("taskPage.noNotes")}),n.map(e=>(0,t.jsx)("div",{className:"group rounded-md border border-border bg-card p-3",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h4",{className:"text-sm font-medium truncate",children:e.title}),e.content&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground line-clamp-3 whitespace-pre-wrap",children:e.content}),(0,t.jsx)("p",{className:"mt-1 text-[10px] text-muted-foreground",children:new Date(e.createdAt).toLocaleString()})]}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>y(e.id),className:"shrink-0 text-muted-foreground opacity-0 hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100",title:r("taskPage.deleteNote"),children:(0,t.jsx)(T.Trash2,{className:"h-3.5 w-3.5"})})]})},e.id))]})]}),(0,t.jsxs)("div",{className:"px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("h3",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:[(0,t.jsx)(eA,{className:"h-3.5 w-3.5"}),r("taskPage.attachments")]}),(0,t.jsxs)(h.Button,{variant:"ghost",className:"h-6 gap-1 px-2 text-xs",onClick:()=>l.current?.click(),disabled:b,children:[(0,t.jsx)(eO.Upload,{className:"h-3 w-3"}),r("taskPage.uploadFile")]}),(0,t.jsx)("input",{ref:l,type:"file",className:"hidden",onChange:k})]}),(0,t.jsxs)("div",{className:"mt-2 space-y-1.5",children:[0===c.length&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:r("taskPage.noAttachments")}),c.map(e=>{var s;return(0,t.jsxs)("div",{className:"group flex items-center gap-2 rounded-md border border-border bg-card px-3 py-2",children:[(0,t.jsx)(eA,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"flex-1 truncate text-sm",children:e.filename}),(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(s=e.size)?s<1024?`${s} B`:s<1048576?`${(s/1024).toFixed(1)} KB`:`${(s/1024/1024).toFixed(1)} MB`:""}),(0,t.jsx)(h.Button,{variant:"ghost",size:"icon-xs",onClick:()=>w(e.id),className:"shrink-0 text-muted-foreground opacity-0 hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100",title:r("taskPage.deleteAttachment"),children:(0,t.jsx)(T.Trash2,{className:"h-3 w-3"})})]},e.id)})]})]})]})})}function eH({task:e,workspaceId:r,projectLocalPath:l,onClose:n}){let{t:i}=(0,o.useI18n)(),c=(0,a.useRouter)(),{removePortal:d}=(0,eC.useTerminalPortal)(),[x,m]=(0,s.useState)("terminal"),[u,p]=(0,s.useState)(null),[g,j]=(0,s.useState)(!1),[b,N]=(0,s.useState)(e.status);(0,s.useEffect)(()=>{N(e.status)},[e.status]);let[v,y]=(0,s.useState)(null),[k,w]=(0,s.useState)(!1),[C,S]=(0,s.useState)(!1),[P,T]=(0,s.useState)([]);(0,s.useEffect)(()=>{y(null),w(!1),S(!1),T([]),p(null),m("terminal")},[e.id]);let[D,E]=(0,s.useState)([]),[I,B]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=!1;return(0,eL.getPrompts)().then(t=>{if(e)return;E(t.map(e=>({id:e.id,name:e.name,isDefault:e.isDefault})));let s=t.find(e=>e.isDefault);s&&B(s.id)}),()=>{e=!0}},[]),(0,s.useEffect)(()=>{y(null),S(!1);let t=!1;return(0,eS.getTaskExecutions)(e.id).then(e=>{if(t)return;let s=e[0];if(s?.status==="RUNNING"){let e=s.worktreePath||l||null;e&&y(e)}T(e.filter(e=>"RUNNING"!==e.status)),S(!0)}),()=>{t=!0}},[e.id]),(0,s.useEffect)(()=>{if("changes"!==x||"TODO"===b||"CANCELLED"===b)return;let t=!1;return j(!0),fetch(`/api/tasks/${e.id}/diff`).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(e=>{t||p(e?.files||e?.branchDeleted?e:null)}).catch(()=>{t||p(null)}).finally(()=>{t||j(!1)}),()=>{t=!0}},[x,b,e.id]);let R=(0,s.useCallback)(async()=>{if(!k){w(!0),d(e.id);try{let{worktreePath:t}=await (0,eP.startPtyExecution)(e.id,"",I);y(t),N("IN_PROGRESS")}catch(e){w(!1),ea.toast.error(e instanceof Error?e.message:String(e))}}},[e.id,k,I]),$=(0,s.useCallback)(t=>{w(!1),y(null),d(e.id),0===t&&N("IN_REVIEW"),(0,eS.getTaskExecutions)(e.id).then(e=>{T(e.filter(e=>"RUNNING"!==e.status))}),c.refresh()},[c,e.id]),O=(0,s.useCallback)(async()=>{await (0,eT.stopPtyExecution)(e.id),w(!1),d(e.id),y(null),N("IN_REVIEW"),(0,eS.getTaskExecutions)(e.id).then(e=>{T(e.filter(e=>"RUNNING"!==e.status))}),c.refresh()},[e.id,c]),A=(0,s.useCallback)(async t=>{w(!0),d(e.id),y(null);try{let{worktreePath:s}=await (0,eD.resumePtyExecution)(e.id,t);y(s),N("IN_PROGRESS")}catch{w(!1)}},[e.id,d]),F=(0,s.useCallback)(async()=>{w(!0),d(e.id),y(null);try{let{worktreePath:t}=await (0,eE.continueLatestPtyExecution)(e.id);y(t),N("IN_PROGRESS")}catch(e){w(!1),ea.toast.error(e instanceof Error?e.message:String(e))}},[e.id,d]),[M,z]=(0,s.useState)(!1),[U,_]=(0,s.useState)([]),V=(0,s.useCallback)(async()=>{try{let t=await (0,eB.checkWorktreeClean)(e.id);if(t.hasWorktree&&!t.clean)return void ea.toast.error(i("taskPage.uncommittedChanges",{count:String(t.files.length)}));if(t.hasWorktree&&t.clean&&!t.hasCommits)return void ea.toast.error(i("taskPage.noChangesToComplete"));if(t.hasWorktree&&t.hasCommits){_(t.commitLog),z(!0);return}await (0,eI.updateTaskStatus)(e.id,"DONE"),N("DONE"),ea.toast.success(i("taskPage.taskCompleted")),c.refresh()}catch{ea.toast.error("Failed to complete task")}},[e.id,c,i]),W=(0,s.useCallback)(()=>{N("DONE"),z(!1),ea.toast.success(i("taskPage.taskCompleted")),c.refresh()},[c,i]),K=(0,s.useCallback)(async t=>{try{let{hash:s}=await (0,eR.commitWorktreeChanges)(e.id,t);ea.toast.success(i("diff.commitSuccess",{hash:s})),c.refresh();let a=await fetch(`/api/tasks/${e.id}/diff`);if(a.ok){let e=await a.json();p(e?.files?e:null)}}catch(e){ea.toast.error(e instanceof Error?e.message:"Commit failed")}},[e.id,c,i]);return(0,t.jsxs)("div",{className:"flex h-full w-[600px] flex-shrink-0 flex-col border-l border-border bg-sidebar","data-testid":"task-detail-panel",children:[(0,t.jsx)(ey,{title:e.title,description:i("taskDetail.panelDescription"),branch:`task/${e.id}`,baseBranch:e.baseBranch,hasConversation:!1,updatedAt:e.updatedAt,onBack:n}),(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-2",children:[(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsxs)("button",{onClick:()=>m("terminal"),className:`flex items-center gap-1.5 px-3 py-1 text-xs font-medium rounded-md ${"terminal"===x?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,t.jsx)(ef.Terminal,{className:"h-3 w-3"}),i("terminal.execute")]}),(0,t.jsx)("button",{onClick:()=>m("changes"),className:`px-3 py-1 text-xs font-medium rounded-md ${"changes"===x?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:i("taskPage.changes")}),(0,t.jsxs)("button",{onClick:()=>m("notes"),className:`flex items-center gap-1.5 px-3 py-1 text-xs font-medium rounded-md ${"notes"===x?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,t.jsx)(G.FileText,{className:"h-3 w-3"}),i("taskPage.notes")]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:["IN_REVIEW"===b&&(0,t.jsxs)(h.Button,{size:"sm",onClick:V,className:"bg-emerald-500/15 text-emerald-400 ring-1 ring-emerald-500/20 hover:bg-emerald-500/25",children:[(0,t.jsx)(ej.CheckCircle2,{className:"h-3 w-3"}),i("taskPage.completeTask")]}),"DONE"!==b&&"CANCELLED"!==b&&(0,t.jsxs)(h.Button,{variant:"ghost",size:"sm",onClick:()=>c.push(`/workspaces/${r}/tasks/${e.id}`),className:"text-muted-foreground",children:[(0,t.jsx)(ep.ExternalLink,{className:"h-3 w-3"}),i("taskPage.viewDetails")]})]})]}),"terminal"===x?(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:C?v?(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,t.jsxs)("div",{className:"shrink-0 flex items-center justify-between border-b border-neutral-800 px-3 py-2 bg-[#0f1419]",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-emerald-400",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400 animate-pulse"}),i("execution.running")]}),(0,t.jsxs)(eb.Tooltip,{children:[(0,t.jsxs)(eb.TooltipTrigger,{onClick:O,className:"flex items-center gap-1.5 rounded-md bg-red-500/15 px-3 py-1 text-xs font-medium text-red-400 hover:bg-red-500/25 transition-colors",children:[(0,t.jsx)(eg.Square,{className:"h-3 w-3"}),i("terminal.stopExecution")]}),(0,t.jsx)(eb.TooltipContent,{side:"bottom",children:i("terminal.stopHint")})]})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0",children:(0,t.jsx)(eC.TerminalOutlet,{taskId:e.id,worktreePath:v,onSessionEnd:$})})]}):"DONE"===b||"CANCELLED"===b?(0,t.jsx)("div",{className:"flex h-full flex-col overflow-hidden",children:(0,t.jsx)(L.ScrollArea,{className:"flex-1 min-h-0",children:(0,t.jsx)(e$.ExecutionTimeline,{executions:P})})}):(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,t.jsxs)("div",{className:"shrink-0 flex items-center gap-2 border-b border-border px-4 py-3",children:[D.length>0&&(0,t.jsxs)(f.Select,{defaultValue:I??"none",onValueChange:e=>B("none"===e?null:e),children:[(0,t.jsx)(f.SelectTrigger,{size:"sm",className:"min-w-[120px]",children:(0,t.jsx)("span",{className:"text-left truncate",children:I?D.find(e=>e.id===I)?.name??i("terminal.noPrompt"):i("terminal.noPrompt")})}),(0,t.jsxs)(f.SelectContent,{className:"min-w-[200px]",children:[(0,t.jsx)(f.SelectItem,{value:"none",children:i("terminal.noPrompt")}),D.map(e=>(0,t.jsxs)(f.SelectItem,{value:e.id,children:[e.name,e.isDefault?" ★":""]},e.id))]})]},`prompt-${D.length}`),(0,t.jsxs)(h.Button,{onClick:R,disabled:k,size:"sm",className:"gap-2 px-4",children:[k?(0,t.jsx)(H.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(ef.Terminal,{className:"h-3.5 w-3.5"}),k?i("terminal.executing"):i("terminal.launch")]})]}),(0,t.jsx)(L.ScrollArea,{className:"flex-1 min-h-0",children:(0,t.jsx)(e$.ExecutionTimeline,{executions:P,onResume:A,onContinueLatest:F})})]}):(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 bg-[#0f1419]",children:[(0,t.jsx)(H.Loader2,{className:"size-5 animate-spin text-neutral-500"}),(0,t.jsx)("span",{className:"text-xs text-neutral-500",children:i("execution.loading")})]})}):"changes"===x?(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:g?(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("taskPage.loadingDiff")})}):u?.branchDeleted?(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("taskPage.branchDeleted")})}):u?(0,t.jsx)(ek.TaskDiffView,{taskId:e.id,files:u.files,totalAdded:u.totalAdded,totalRemoved:u.totalRemoved,hasConflicts:u.hasConflicts,conflictFiles:u.conflictFiles,onCommit:K,hasUncommitted:u.hasUncommitted}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("taskPage.noChanges")})})}):"notes"===x?(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,t.jsx)(eW,{taskId:e.id,projectId:e.projectId})}):null,(0,t.jsx)(ew.TaskMergeConfirmDialog,{open:M,onOpenChange:z,taskId:e.id,taskTitle:e.title,baseBranch:e.baseBranch??"main",fileCount:u?.files?.length??0,commitCount:u?.commitCount??0,commitLog:U,onMergeComplete:W})]})}var eK=e.i(170120),eJ=e.i(770055);let eY=(0,q.createServerReference)("409268e8c3bea05e209fc80f56d36599bb38ec4608",q.callServer,void 0,q.findSourceMapURL,"deleteTask"),eq=(0,q.createServerReference)("40f52736456189b0053a31bc639186ec0701665762",q.callServer,void 0,q.findSourceMapURL,"toggleTaskPinned"),eX=(0,q.createServerReference)("402a0021fb002b02307b59ed1b90763b727561dd5a",q.callServer,void 0,q.findSourceMapURL,"getVersionsForPicker");var eQ=e.i(19671);function eZ({projects:e,activeProjectId:a,onSelect:r}){let l=(0,s.useRef)(null),[n,i]=(0,s.useState)(!1),[o,c]=(0,s.useState)(!1),d=()=>{let e=l.current;e&&(i(e.scrollLeft>0),c(e.scrollLeft<e.scrollWidth-e.clientWidth-1))};(0,s.useEffect)(()=>{d();let e=l.current;if(e){e.addEventListener("scroll",d);let t=new ResizeObserver(d);return t.observe(e),()=>{e.removeEventListener("scroll",d),t.disconnect()}}},[e]);let x=e=>{let t=l.current;t&&t.scrollBy({left:"left"===e?-150:150,behavior:"smooth"})};return(0,t.jsxs)("div",{className:"relative flex items-center",children:[n&&(0,t.jsx)("button",{onClick:()=>x("left"),className:"absolute left-0 z-10 flex h-8 w-8 items-center justify-center rounded-md bg-background/90 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition-colors hover:text-foreground",children:(0,t.jsx)(eQ.ChevronLeft,{className:"h-4 w-4"})}),(0,t.jsx)("div",{ref:l,className:"flex items-center gap-1.5 overflow-x-auto scrollbar-none px-1 py-1",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:e.map(e=>{let s=a===e.id;return(0,t.jsxs)("button",{onClick:()=>{s||r(e.id)},className:`shrink-0 rounded-lg border-b-2 px-4 py-2 text-sm font-medium transition-colors ${s?"border-primary bg-primary/10 text-primary ring-1 ring-primary/20 cursor-default":"border-transparent text-muted-foreground hover:bg-accent hover:text-foreground cursor-pointer"}`,children:[(0,t.jsx)("span",{children:e.name}),e.alias&&(0,t.jsx)("span",{className:"ml-1.5 text-xs text-muted-foreground font-normal",children:e.alias})]},e.id)})}),o&&(0,t.jsx)("button",{onClick:()=>x("right"),className:"absolute right-0 z-10 flex h-8 w-8 items-center justify-center rounded-md bg-background/90 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition-colors hover:text-foreground",children:(0,t.jsx)(z.ChevronRight,{className:"h-4 w-4"})})]})}e.s(["BoardPageClient",0,function({workspaceId:e,projectId:r,project:l,projects:n,initialTasks:i,labels:o,openTaskId:d}){let x=(0,a.useRouter)(),[,m]=(0,s.useTransition)(),[u,h]=(0,s.useState)(""),[p,f]=(0,s.useState)("all"),[j,b]=(0,s.useState)(!1),[v,y]=(0,s.useState)("TODO"),[k,w]=(0,s.useState)(d??null),[C,S]=(0,s.useState)([]),P=k?i.find(e=>e.id===k)??null:null,[T,D]=(0,s.useState)(null);(0,s.useEffect)(()=>{eX(r).then(S).catch(()=>S([]))},[r]);let E=C.find(e=>e.isCurrent)?.id??null,I=(0,s.useCallback)(()=>{m(()=>{x.refresh()})},[x]);(0,s.useEffect)(()=>{if(j)return;let e=setInterval(()=>{m(()=>{x.refresh()})},5e3);return()=>clearInterval(e)},[x,j]);let B=(0,s.useCallback)(e=>{h(e)},[]),R=(0,s.useCallback)(async(e,t)=>{await (0,eI.updateTaskStatus)(e,t),I()},[I]),L=(0,s.useCallback)(async e=>{await (0,eK.createTask)({title:e.title,description:e.description,projectId:r,priority:e.priority,status:e.status,labelIds:e.labelIds,baseBranch:e.baseBranch,subPath:e.subPath,versionId:e.versionId??void 0}),I()},[r,I]),$=(0,s.useCallback)(async(e,t)=>{await (0,eJ.updateTask)(e,{...t,labelIds:t.labelIds}),D(null),I()},[I]),O=(0,s.useCallback)(async e=>{await eY(e),k===e&&w(null),I()},[I,k]),M=(0,s.useCallback)(async e=>{await eq(e),I()},[I]),z=(0,s.useCallback)(async t=>{try{await (0,eP.startPtyExecution)(t,"")}catch(e){ea.toast.error(e instanceof Error?e.message:String(e))}x.push(`/workspaces/${e}/tasks/${t}`)},[x,e]),U=(0,s.useCallback)(async(e,t)=>{await (0,eI.updateTaskStatus)(e,t),I()},[I]),G=(0,s.useCallback)(e=>{y(e),D(null),b(!0)},[]),_=(0,s.useCallback)(e=>{D(e),b(!0)},[]),V=i.filter(e=>!e.labels?.some(e=>e.label.name===N.TOWER_LABEL_NAME&&e.label.isBuiltin)),W=V.filter(e=>{if("backlog"===p){if(e.versionId)return!1}else if("all"!==p&&e.versionId!==p)return!1;if(u.trim()){let t=u.toLowerCase();if(!e.title.toLowerCase().includes(t)&&!e.description?.toLowerCase().includes(t))return!1}return!0});return(0,t.jsxs)("div",{className:"flex h-full",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[(0,t.jsx)("div",{className:"px-6 pt-3 pb-1",children:(0,t.jsx)(eZ,{projects:n,activeProjectId:r,onSelect:t=>x.push(`/workspaces/${e}?projectId=${t}`,{scroll:!1})})}),(0,t.jsx)(c,{totalTasks:V.length,runningTasks:V.filter(e=>"IN_PROGRESS"===e.status).length}),(0,t.jsx)(g,{searchQuery:u,onSearchChange:B,versions:C,versionFilter:p,onVersionFilterChange:f,versionsHref:`/workspaces/${e}/projects/${r}/versions`,onCreateTask:()=>{D(null),b(!0)}}),(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden p-4",children:(0,t.jsx)(A,{initialTasks:W,onTaskMove:R,onTaskClick:e=>{w(e.id)},onEditTask:_,onAddTask:G,onDeleteTask:O,onTogglePin:M,workspaceId:e,onContextMenuStatusChange:U,onContextMenuLaunch:z})}),(0,t.jsx)(F.CreateTaskDialog,{open:j,onOpenChange:e=>{b(e),e||D(null)},onSubmit:L,onUpdate:$,defaultStatus:v,editTask:T,editTaskLabelIds:T?.labels?T.labels.map(e=>e.labelId):[],labels:o.filter(e=>!(e.name===N.TOWER_LABEL_NAME&&e.isBuiltin)),projectType:l.type,projectLocalPath:l.localPath,versions:C,defaultVersionId:E})]}),P?(0,t.jsx)(eH,{task:P,workspaceId:e,projectLocalPath:l.localPath,onClose:()=>w(null)}):(0,t.jsx)(eu,{project:l,workspaceId:e})]})}],783426)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,645119,e=>{"use strict";var t=e.i(289721),s=e.i(965652),r=e.i(538059),n=e.i(210702),a=e.i(232545),i=e.i(487278),o=e.i(368490),l=e.i(259846),d=e.i(572989);let c=(0,d.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var x=e.i(519455),m=e.i(759684),u=e.i(606393),p=e.i(226145),h=e.i(340873),f=e.i(263938),g=e.i(960518),b=e.i(453889),v=e.i(645378);let j=(0,d.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var N=e.i(464249);let y=(0,d.default)("package-check",[["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m16 17 2 2 4-4",key:"uh5qu3"}],["path",{d:"M21 11.127V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.729l7 4a2 2 0 0 0 2 .001l1.32-.753",key:"kpkbpo"}],["path",{d:"M3.29 7 12 12l8.71-5",key:"19ckod"}],["path",{d:"m7.5 4.27 8.997 5.148",key:"9yrvtv"}]]),w=(0,d.default)("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);var C=e.i(746798),S=e.i(685149),k=e.i(533499);let D=["bg-sky-500/20 text-sky-300 border border-sky-500/30","bg-amber-500/20 text-amber-300 border border-amber-500/30","bg-violet-500/20 text-violet-300 border border-violet-500/30","bg-emerald-500/20 text-emerald-300 border border-emerald-500/30","bg-rose-500/20 text-rose-300 border border-rose-500/30","bg-cyan-500/20 text-cyan-300 border border-cyan-500/30","bg-indigo-500/20 text-indigo-300 border border-indigo-500/30"];function T(e){return D[function(e){let t=0;for(let s=0;s<e.length;s++)t=31*t+e.charCodeAt(s)>>>0;return t}(e)%D.length]}let E={PLANNED:"bg-slate-500/20 text-slate-300 border border-slate-500/30",ACTIVE:"bg-emerald-500/20 text-emerald-300 border border-emerald-500/30",RELEASED:"bg-zinc-500/20 text-zinc-400 border border-zinc-500/30"};function B({name:e}){let{t:s}=(0,k.useI18n)();return e?(0,t.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${T(e)}`,children:e}):(0,t.jsx)("span",{className:"inline-flex items-center rounded-full border border-border bg-muted/40 px-2 py-0.5 text-xs font-medium text-muted-foreground",children:s("version.type.uncategorized")})}function I({status:e}){let{t:s}=(0,k.useI18n)();return(0,t.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${E[e]}`,children:s(`version.status.${e}`)})}function L(e){if(!e)return"";let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let s=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${s}-${r}`}let R=Object.fromEntries(S.BOARD_COLUMNS.map(e=>[e.id,e.color]));function $({children:e,className:s}){return(0,t.jsx)("span",{className:`inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/40 px-2 py-0.5 text-xs text-muted-foreground ${s??""}`,children:e})}function _({task:e,onOpenDetail:r}){let{t:n}=(0,k.useI18n)(),[a,i]=(0,s.useState)(!1),l="CANCELLED"===e.status?"text-muted-foreground line-through decoration-muted-foreground/40":"DONE"===e.status?"text-muted-foreground":"text-foreground";return(0,t.jsxs)("div",{className:"rounded-[10px]",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>i(e=>!e),className:"flex w-full items-center gap-2.5 rounded-[10px] px-2.5 py-2.5 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,t.jsx)(o.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${a?"rotate-90":""}`}),(0,t.jsx)("span",{className:`h-2 w-2 flex-none rounded-full ${R[e.status]??"bg-slate-400"}`}),(0,t.jsx)("span",{className:`text-[13.5px] font-medium ${l}`,children:e.title}),e.labels.map(({label:e})=>(0,t.jsx)("span",{className:"rounded-full border border-border px-1.5 py-px text-[10.5px] text-muted-foreground",style:e.color?{borderColor:e.color+"55",color:e.color}:void 0,children:e.name},e.id)),(0,t.jsx)("span",{className:"flex-1"}),(0,t.jsx)("span",{className:"flex w-16 flex-none justify-center",children:(0,t.jsx)("span",{className:`rounded-[5px] px-1.5 py-px text-[10.5px] font-bold ${S.PRIORITY_CONFIG[e.priority]?.color??S.PRIORITY_CONFIG.LOW.color}`,children:e.priority})}),(0,t.jsx)("span",{className:"h-3 w-px bg-border flex-none"}),(0,t.jsxs)("span",{className:"flex w-[72px] flex-none items-center gap-1.5",children:[(0,t.jsx)("span",{className:`h-1.5 w-1.5 flex-none rounded-full ${R[e.status]??"bg-slate-400"}`}),(0,t.jsx)("span",{className:"truncate text-[10.5px] text-muted-foreground",children:n(`version.taskStatus.${e.status}`)})]}),(0,t.jsx)("span",{className:"h-3 w-px bg-border flex-none"}),(0,t.jsx)("span",{className:"flex w-6 flex-none justify-center",children:r&&(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{render:(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 text-muted-foreground",onClick:t=>{t.stopPropagation(),r(e.id)}}),children:(0,t.jsx)(w,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(C.TooltipContent,{children:n("version.detail")})]})})]}),a&&(0,t.jsxs)("div",{className:"flex flex-col gap-2.5 pb-3 pl-[30px] pr-3 pt-1",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5",children:[(0,t.jsx)(b.FolderOpen,{className:"h-3 w-3 text-muted-foreground/60"}),(0,t.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wide text-muted-foreground/60",children:n("version.resources")})]}),0===e.assets.length?(0,t.jsx)("p",{className:"text-[12px] italic text-muted-foreground/60",children:n("version.empty.resources")}):(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.assets.map(e=>{var s;let r=e.mimeType?.startsWith("image/");return(0,t.jsxs)("span",{className:"inline-flex cursor-pointer items-center gap-1.5 rounded-lg border border-border bg-background px-2.5 py-1.5 text-[12px] text-foreground shadow-sm transition-colors hover:border-primary/50",children:[r?(0,t.jsx)(j,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,t.jsx)(v.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,t.jsx)("span",{children:e.filename}),null!=e.size&&(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground/60",children:(s=e.size)<1024?`${s} B`:s<1048576?`${Math.round(s/1024)} KB`:`${(s/1048576).toFixed(1)} MB`})]},e.id)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5",children:[(0,t.jsx)(v.FileText,{className:"h-3 w-3 text-muted-foreground/60"}),(0,t.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wide text-muted-foreground/60",children:n("version.notes")})]}),0===e.notes.length?(0,t.jsx)("p",{className:"text-[12px] italic text-muted-foreground/60",children:n("version.empty.notes")}):(0,t.jsx)("div",{className:"flex flex-col gap-1.5",children:e.notes.map(e=>(0,t.jsx)("div",{className:"rounded-lg border border-border border-l-violet-500/50 bg-background px-2.5 py-2 shadow-sm [border-left-width:3px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[12.5px] font-semibold text-foreground",children:e.title}),e.category&&(0,t.jsx)("span",{className:"rounded-[5px] border border-violet-500/30 bg-violet-500/15 px-1.5 py-px text-[10px] font-bold text-violet-300",children:e.category})]})},e.id))})]})]})]})}function A({version:e,diffStat:r,onEdit:n,onRelease:a,onViewDiff:i,onOpenTaskDetail:l}){var d;let c,{t:m}=(0,k.useI18n)(),[b,v]=(0,s.useState)(e.isCurrent),j="RELEASED"===e.status,w="ACTIVE"===e.status,S=e.tasks.length,D=e.tasks.filter(e=>"DONE"===e.status).length,T=!!(e.releaseCommit||r),E=(c=`${S} ${m("version.tasksCount")}`,D>0&&D<S?`${c} \xb7 ${D} ${m("version.doneCount")}`:D>0&&D===S?`${c} \xb7 ${m("version.allDone")}`:c);return(0,t.jsxs)("div",{className:["overflow-hidden rounded-[14px] border bg-card shadow-sm transition-shadow duration-150 hover:shadow-md",e.isCurrent?"border-border border-l-2 border-l-primary ring-1 ring-primary/20":"border-border",j?"opacity-[.96]":""].filter(Boolean).join(" "),children:[(0,t.jsx)("button",{type:"button",onClick:()=>v(e=>!e),className:"w-full text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,t.jsxs)("div",{className:"px-4 py-3.5",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(o.ChevronRight,{className:`h-4 w-4 flex-none text-muted-foreground/60 transition-transform duration-150 ${b?"rotate-90":""}`}),(0,t.jsx)("span",{className:"font-mono text-[14.5px] font-bold text-foreground",children:e.number}),(0,t.jsx)("span",{className:"text-[14.5px] font-semibold text-foreground",children:e.name}),(0,t.jsx)(B,{name:e.type?.name??null}),(0,t.jsx)(I,{status:e.status}),e.isCurrent&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-primary/30 bg-primary/15 px-2.5 py-0.5 text-[11px] font-bold text-primary shadow-sm",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-primary opacity-90"}),m("version.current")]}),(0,t.jsx)("span",{className:"flex-1"}),S>0&&(0,t.jsx)("span",{className:"text-[11.5px] text-muted-foreground",children:E}),(0,t.jsxs)("span",{className:"flex items-center gap-1",onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[n&&(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{render:(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground",onClick:()=>n(e.id)}),children:(0,t.jsx)(N.Pencil,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(C.TooltipContent,{children:m("version.edit")})]}),w&&a&&(0,t.jsxs)(x.Button,{variant:"outline",className:"h-7 px-2 text-xs font-semibold",onClick:()=>a(e.id),children:[(0,t.jsx)(y,{className:"h-3.5 w-3.5"}),m("version.release")]})]})]}),(0,t.jsxs)("div",{className:"mt-2.5 flex flex-wrap items-center gap-2",children:[j&&e.releasedAt?(0,t.jsxs)($,{children:[(0,t.jsx)(u.Calendar,{className:"h-3 w-3"}),m("version.releasedAt"),(0,t.jsx)("strong",{className:"text-foreground",children:L(e.releasedAt)})]}):e.startDate||e.targetDate?(0,t.jsxs)($,{children:[(0,t.jsx)(u.Calendar,{className:"h-3 w-3"}),e.startDate?L(e.startDate):"—"," → ",e.targetDate?(0,t.jsx)("strong",{className:"text-foreground",children:L(e.targetDate)}):"—"]}):null,e.baseBranch&&(0,t.jsxs)($,{children:[(0,t.jsx)(p.GitBranch,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:e.baseBranch})]}),e.baseCommit&&(0,t.jsxs)($,{children:[(0,t.jsx)(h.GitCommitHorizontal,{className:"h-3 w-3"}),m("version.field.baseCommit"),(0,t.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:(d=e.baseCommit)?d.slice(0,7):""})]}),j&&(0,t.jsxs)($,{children:[(0,t.jsx)(f.Tag,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:e.number})]}),r&&(0,t.jsxs)($,{children:[(0,t.jsx)(g.GitCompare,{className:"h-3 w-3"}),!j&&(0,t.jsx)("span",{className:"text-muted-foreground",children:m("version.diff.live")}),(0,t.jsxs)("span",{className:"font-bold text-emerald-400",children:["+",r.additions.toLocaleString()]}),(0,t.jsxs)("span",{className:"font-bold text-rose-400",children:["−",r.deletions.toLocaleString()]}),(0,t.jsxs)("span",{className:"text-muted-foreground",children:["· ",r.files," ",m("version.diff.files")]})]}),T&&i&&(0,t.jsxs)(x.Button,{variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs text-muted-foreground",onClick:t=>{t.stopPropagation(),i(e.id)},children:[(0,t.jsx)(g.GitCompare,{className:"h-3 w-3"}),m("version.diff.view")," →"]})]}),e.description&&(0,t.jsx)("p",{className:"mt-2 text-[13px] text-muted-foreground",children:e.description})]})}),b&&S>0&&(0,t.jsx)("div",{className:"border-t border-dashed border-border bg-muted/40 px-2 pb-2 pt-1.5",children:e.tasks.map(e=>(0,t.jsx)(_,{task:e,onOpenDetail:l},e.id))})]})}var O=e.i(360112),P=e.i(597746),V=e.i(456346),z=e.i(776639),M=e.i(793479),F=e.i(110204),U=e.i(918385),H=e.i(337822),G=e.i(317056),K=e.i(699375),W=e.i(624687),Y=e.i(514798);let q=(0,Y.createServerReference)("4085b9d2b2d30bc1b46b0767eb06399ef92f711b1c",Y.callServer,void 0,Y.findSourceMapURL,"createVersion"),J=(0,Y.createServerReference)("60c31c2edfe4bdc3743bcb50ab2b8a6a0c67896b1b",Y.callServer,void 0,Y.findSourceMapURL,"updateVersion"),Q=(0,Y.createServerReference)("40e5143d8269c90b4163a052a9331d30f7ae3c9cb4",Y.callServer,void 0,Y.findSourceMapURL,"getVersionTypes");var X=e.i(820126),Z=e.i(889257),ee=e.i(998626);let et=(0,Y.createServerReference)("402d6214a6304bfd0f362b0fe91bd69a4c850b766d",Y.callServer,void 0,Y.findSourceMapURL,"createVersionType"),es=(0,Y.createServerReference)("602aabcf63bc585670d71e651b9a42397eca6661be",Y.callServer,void 0,Y.findSourceMapURL,"updateVersionType"),er=(0,Y.createServerReference)("40b9d02988bf7a96f3f07689a19af15ac22cdb2ffb",Y.callServer,void 0,Y.findSourceMapURL,"deleteVersionType");function en({open:e,onOpenChange:r,workspaceId:n,onChanged:a}){let{t:i}=(0,k.useI18n)(),[o,l]=(0,s.useState)([]),[d,c]=(0,s.useState)(""),[m,u]=(0,s.useState)({}),[p,h]=(0,s.useTransition)(),f=async()=>{let e=await Q(n);l(e),u(t=>{let s={};return e.forEach(e=>{s[e.id]=e.id in t?t[e.id]:e.name}),s})};(0,s.useEffect)(()=>{e&&(f(),c(""))},[e,n]);let g=()=>{let e=d.trim();e&&h(async()=>{try{await et({workspaceId:n,name:e}),c(""),await f(),a?.(),O.toast.success(i("version.type.add"))}catch(e){O.toast.error(e instanceof Error?e.message:String(e))}})};return(0,t.jsx)(z.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(z.DialogHeader,{children:(0,t.jsx)(z.DialogTitle,{children:i("version.manageTypes")})}),(0,t.jsxs)("div",{className:"flex flex-col gap-4 py-2",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(M.Input,{value:d,onChange:e=>c(e.target.value),placeholder:i("version.type.namePlaceholder"),disabled:p,onKeyDown:e=>{"Enter"===e.key&&g()},className:"flex-1"}),(0,t.jsx)(x.Button,{onClick:g,disabled:p||!d.trim(),children:i("version.type.add")})]}),0===o.length?(0,t.jsx)("p",{className:"text-center text-sm text-muted-foreground py-4",children:i("version.type.empty")}):(0,t.jsx)("div",{className:"flex flex-col gap-1.5",children:o.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-3 py-2",children:[(0,t.jsx)("span",{className:`inline-flex h-2.5 w-2.5 flex-none rounded-full ${T(m[e.id]??e.name).split(" ").filter(e=>e.startsWith("bg-"))[0]??"bg-muted"}`}),(0,t.jsx)(M.Input,{value:m[e.id]??e.name,onChange:t=>u(s=>({...s,[e.id]:t.target.value})),onBlur:()=>(e=>{let t=(m[e]??"").trim();if(!t)return;let s=o.find(t=>t.id===e);s?.name!==t&&h(async()=>{try{await es(e,{name:t}),await f(),a?.()}catch(t){O.toast.error(t instanceof Error?t.message:String(t)),u(t=>({...t,[e]:s?.name??""}))}})})(e.id),onKeyDown:e=>{"Enter"===e.key&&e.target.blur()},disabled:p,className:"h-7 flex-1 border-transparent bg-transparent shadow-none focus-visible:border-input focus-visible:bg-background focus-visible:shadow-sm"}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 flex-none text-muted-foreground hover:text-destructive",onClick:()=>{var t;return t=e.id,void(window.confirm(i("version.type.deleteConfirm"))&&h(async()=>{try{await er(t),await f(),a?.()}catch(e){O.toast.error(e instanceof Error?e.message:String(e))}}))},disabled:p,children:(0,t.jsx)(ee.Trash2,{className:"h-3.5 w-3.5"})})]},e.id))})]})]})})}function ea(e){if(!e)return"";let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let s=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${s}-${r}-${n}`}function ei(e){if(!e)return;let t=new Date(e);return isNaN(t.getTime())?void 0:t}function eo({open:e,onOpenChange:r,projectId:n,workspaceId:a,editVersion:i,defaultBaseBranch:o,projectLocalPath:l,onSuccess:d}){let{t:c}=(0,k.useI18n)(),m=!!i,[u,h]=(0,s.useState)(""),[f,g]=(0,s.useState)(""),[b,v]=(0,s.useState)(""),[j,N]=(0,s.useState)([]),[y,w]=(0,s.useState)(!1),[C,S]=(0,s.useState)(""),[D,T]=(0,s.useState)(""),[E,B]=(0,s.useState)(""),[I,L]=(0,s.useState)(""),[R,$]=(0,s.useState)(!1),[_,A]=(0,s.useState)([]),[Y,ee]=(0,s.useState)(!1),[et,es]=(0,s.useState)(!1),er=!!l,[el,ed]=(0,s.useTransition)();return(0,s.useEffect)(()=>{e&&(i?(h(i.number),g(i.name),v(i.typeId??""),S(i.baseBranch??""),T(ea(i.startDate)),B(ea(i.targetDate)),L(i.description??"")):(h(""),g(""),v(""),S(o??""),T(""),B(""),L("")),$(!1))},[e,i,o]),(0,s.useEffect)(()=>{e&&Q(a).then(N).catch(()=>N([]))},[e,a]),(0,s.useEffect)(()=>{e&&er?(ee(!0),(0,X.getProjectBranches)(l).then(A).catch(()=>A([])).finally(()=>ee(!1)),(0,Z.fetchRemoteBranches)(l).then(()=>(0,X.getProjectBranches)(l).then(A)).catch(()=>{})):A([])},[e,er,l]),(0,t.jsxs)(z.Dialog,{open:e,onOpenChange:r,children:[(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(z.DialogHeader,{children:(0,t.jsx)(z.DialogTitle,{children:m?c("version.edit"):c("version.new")})}),(0,t.jsxs)("div",{className:"grid gap-4 py-2",children:[(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsxs)(F.Label,{htmlFor:"version-number",children:[c("version.field.number"),(0,t.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),(0,t.jsx)(M.Input,{id:"version-number",value:u,onChange:e=>h(e.target.value),placeholder:c("version.placeholder.number"),disabled:el})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsxs)(F.Label,{htmlFor:"version-name",children:[c("version.field.name"),(0,t.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),(0,t.jsx)(M.Input,{id:"version-name",value:f,onChange:e=>g(e.target.value),placeholder:c("version.placeholder.name"),disabled:el})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{children:c("version.field.type")}),(0,t.jsxs)(U.Select,{value:b||"__none__",onValueChange:e=>{v(e&&"__none__"!==e?e:"")},children:[(0,t.jsx)(U.SelectTrigger,{className:"w-full",disabled:el,children:(0,t.jsx)("span",{className:"truncate",children:b?j.find(e=>e.id===b)?.name??c("version.type.uncategorized"):c("version.type.uncategorized")})}),(0,t.jsxs)(U.SelectContent,{children:[(0,t.jsx)(U.SelectItem,{value:"__none__",children:c("version.type.uncategorized")}),j.map(e=>(0,t.jsx)(U.SelectItem,{value:e.id,children:e.name},e.id))]})]}),(0,t.jsxs)(x.Button,{type:"button",variant:"ghost",size:"sm",className:"h-auto justify-start px-0 py-0.5 text-xs text-muted-foreground hover:text-foreground",onClick:()=>w(!0),disabled:el,children:["+ ",c("version.manageTypes")]})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{children:c("version.field.baseBranch")}),Y?(0,t.jsx)("div",{className:"text-sm text-muted-foreground",children:c("task.branchLoading")}):er&&_.length>0?(0,t.jsxs)(H.Popover,{open:et,onOpenChange:es,children:[(0,t.jsxs)(H.PopoverTrigger,{className:"flex h-8 w-full items-center gap-2 rounded-lg border border-input bg-transparent px-3 text-sm transition-colors hover:bg-accent focus:outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:opacity-50",disabled:el,"data-testid":"version-branch-selector",children:[(0,t.jsx)(p.GitBranch,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:`flex-1 truncate text-left text-xs ${C?"font-mono":"text-muted-foreground"}`,children:C||c("version.field.noBranch")}),(0,t.jsx)(V.ChevronsUpDown,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,t.jsx)(H.PopoverContent,{className:"p-0",align:"start",children:(0,t.jsxs)(G.Command,{children:[(0,t.jsx)(G.CommandInput,{placeholder:c("task.branchSearch")}),(0,t.jsxs)(G.CommandList,{children:[(0,t.jsx)(G.CommandEmpty,{children:c("task.branchNone")}),(0,t.jsxs)(G.CommandGroup,{children:[(0,t.jsxs)(G.CommandItem,{value:"__none__",onSelect:()=>{S(""),es(!1)},children:[(0,t.jsx)("span",{className:"flex-1 truncate text-muted-foreground",children:c("version.field.noBranch")}),!C&&(0,t.jsx)(P.Check,{className:"ml-auto h-3 w-3 shrink-0 text-primary"})]}),_.map(e=>(0,t.jsxs)(G.CommandItem,{value:e,onSelect:()=>{S(e),es(!1)},children:[(0,t.jsx)(p.GitBranch,{className:"mr-2 h-3 w-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"flex-1 truncate font-mono",children:e}),e===C&&(0,t.jsx)(P.Check,{className:"ml-auto h-3 w-3 shrink-0 text-primary"})]},e))]})]})]})})]}):(0,t.jsx)(M.Input,{id:"version-base-branch",value:C,onChange:e=>S(e.target.value),placeholder:"main",disabled:el})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{htmlFor:"version-start-date",children:c("version.field.startDate")}),(0,t.jsx)("input",{id:"version-start-date",type:"date",value:D,onChange:e=>T(e.target.value),disabled:el,className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{htmlFor:"version-target-date",children:c("version.field.targetDate")}),(0,t.jsx)("input",{id:"version-target-date",type:"date",value:E,onChange:e=>B(e.target.value),disabled:el,className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"})]})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{htmlFor:"version-description",children:c("version.field.description")}),(0,t.jsx)(W.Textarea,{id:"version-description",value:I,onChange:e=>L(e.target.value),rows:3,disabled:el})]}),!m&&(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(K.Switch,{id:"version-set-current",checked:R,onCheckedChange:$,disabled:el}),(0,t.jsx)(F.Label,{htmlFor:"version-set-current",className:"cursor-pointer",children:c("version.field.setCurrent")})]})]}),(0,t.jsxs)(z.DialogFooter,{children:[(0,t.jsx)(x.Button,{variant:"outline",onClick:()=>r(!1),disabled:el,children:c("common.cancel")}),(0,t.jsx)(x.Button,{onClick:()=>{u.trim()&&f.trim()&&ed(async()=>{try{m&&i?await J(i.id,{number:u.trim(),name:f.trim(),typeId:b||null,baseBranch:C.trim()||null,startDate:ei(D)??null,targetDate:ei(E)??null,description:I.trim()||null}):await q({projectId:n,number:u.trim(),name:f.trim(),typeId:b||void 0,baseBranch:C.trim()||void 0,startDate:ei(D),targetDate:ei(E),description:I.trim()||void 0,setCurrent:R}),O.toast.success(m?c("version.edit"):c("version.new")),r(!1),d?.()}catch(e){O.toast.error(e instanceof Error?e.message:String(e))}})},disabled:el||!u.trim()||!f.trim(),children:m?c("common.save"):c("common.create")})]})]}),(0,t.jsx)(en,{open:y,onOpenChange:w,workspaceId:a,onChanged:()=>Q(a).then(N)})]})}let el=(0,Y.createServerReference)("6094f5b30c94e646a12c5632dfaa6697f3e21da6e5",Y.callServer,void 0,Y.findSourceMapURL,"releaseVersion");function ed({open:e,onOpenChange:r,version:n,candidates:a,onSuccess:i}){let{t:o}=(0,k.useI18n)(),[l,d]=(0,s.useState)(""),[c,m]=(0,s.useTransition)();(0,s.useEffect)(()=>{e&&d("")},[e,n]);let u=a.find(e=>e.id===l),p=a.length>0,h=p&&!!l&&!c;return(0,t.jsx)(z.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(z.DialogHeader,{children:(0,t.jsx)(z.DialogTitle,{children:o("version.releaseAction")})}),(0,t.jsxs)("div",{className:"grid gap-4 py-2",children:[n&&(0,t.jsxs)("p",{className:"text-sm text-muted-foreground",children:[n.number," · ",n.name]}),(0,t.jsxs)("div",{className:"text-sm",children:[(0,t.jsx)("span",{children:o("version.release.rolloverHint")}),n?.unfinishedCount!==void 0&&n.unfinishedCount>0&&(0,t.jsxs)("span",{className:"ml-1 font-medium text-foreground",children:["(",n.unfinishedCount,")"]})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:o("version.release.nextVersion")}),p?(0,t.jsxs)(U.Select,{value:l,onValueChange:e=>{e&&d(e)},disabled:c,children:[(0,t.jsx)(U.SelectTrigger,{className:"w-full",children:(0,t.jsx)("span",{className:"truncate",children:u?`${u.number} \xb7 ${u.name}`:""})}),(0,t.jsx)(U.SelectContent,{children:a.map(e=>(0,t.jsxs)(U.SelectItem,{value:e.id,children:[e.number," · ",e.name]},e.id))})]}):(0,t.jsx)("p",{className:"text-xs text-destructive",children:o("version.release.noCandidates")})]})]}),(0,t.jsxs)(z.DialogFooter,{children:[(0,t.jsx)(x.Button,{variant:"outline",onClick:()=>r(!1),disabled:c,children:o("common.cancel")}),(0,t.jsx)(x.Button,{onClick:()=>{n&&l&&m(async()=>{try{await el(n.id,l),O.toast.success(o("version.release")),r(!1),i?.()}catch(e){O.toast.error(e instanceof Error?e.message:String(e))}})},disabled:!h,children:o("version.release")})]})]})})}var ec=e.i(400355);let ex=(0,Y.createServerReference)("406e2aaa693c7325f30671f3fd99f381892ed48f9e",Y.callServer,void 0,Y.findSourceMapURL,"getVersionDiff");var em=e.i(196199);function eu({file:e}){let{t:r}=(0,k.useI18n)(),[n,a]=(0,s.useState)(!0),i=e.to&&"/dev/null"!==e.to?e.to:e.from??"",l=e.additions??0,d=e.deletions??0,c=[];for(let t of e.chunks)for(let e of(c.push({type:"normal",content:t.content,chunkHeader:t.content}),t.changes))c.push({type:e.type,content:e.content});let x=c.length>500,m=x?c.slice(0,500):c;return(0,t.jsxs)("div",{className:"overflow-hidden rounded-[10px] border border-border",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>a(e=>!e),className:"flex w-full items-center gap-2 bg-muted/40 px-3 py-2 text-left transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,t.jsx)(o.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${n?"rotate-90":""}`}),(0,t.jsx)("span",{className:"flex-1 truncate font-mono text-[12px] font-medium text-foreground",children:i}),(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] font-bold text-emerald-400",children:["+",l]}),(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] font-bold text-rose-400",children:["−",d]})]}),n&&(0,t.jsxs)("div",{className:"overflow-x-auto",children:[(0,t.jsx)("pre",{className:"m-0 p-0",children:m.map((e,s)=>void 0!==e.chunkHeader?(0,t.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-muted-foreground bg-muted/40",children:e.content},s):"add"===e.type?(0,t.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-emerald-300 bg-emerald-500/10",children:e.content},s):"del"===e.type?(0,t.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-rose-300 bg-rose-500/10",children:e.content},s):(0,t.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-muted-foreground",children:e.content},s))}),x&&(0,t.jsx)("p",{className:"border-t border-border px-3 py-2 text-[11px] text-muted-foreground/70 italic",children:r("version.diff.truncated")})]})]})}function ep({open:e,onOpenChange:r,versionId:n,versionLabel:a}){let{t:i}=(0,k.useI18n)(),[o,l]=(0,s.useTransition)(),[d,c]=(0,s.useState)(null),[x,m]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{e&&n&&(c(null),m(!1),l(async()=>{let e=await ex(n);if(!e)return void m(!0);let t=(0,em.parseUnifiedDiff)(e.patch);0===t.length||""===e.patch?m(!0):c(t)}))},[e,n]),(0,t.jsx)(z.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-3xl max-h-[80vh] overflow-auto",children:[(0,t.jsx)(z.DialogHeader,{children:(0,t.jsxs)(z.DialogTitle,{children:[i("version.diff.title"),a?` — ${a}`:""]})}),o&&(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-12 text-muted-foreground",children:[(0,t.jsx)(ec.Loader2,{className:"h-5 w-5 animate-spin"}),(0,t.jsx)("span",{className:"text-sm",children:i("version.diff.loading")})]}),!o&&x&&(0,t.jsx)("p",{className:"py-10 text-center text-sm text-muted-foreground",children:i("version.diff.empty")}),!o&&d&&d.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-2",children:d.map((e,s)=>(0,t.jsx)(eu,{file:e},s))})]})})}var eh=e.i(605005);function ef({version:e,isFirst:s,isLast:r,dashed:n=!1,diffStat:a,onEdit:i,onRelease:o,onViewDiff:l,onOpenTaskDetail:d}){return(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsxs)("div",{className:"relative flex w-5 flex-none flex-col items-center",children:[(0,t.jsx)("div",{className:["w-px flex-none",s?"h-0":"h-6",n?"bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]":"bg-border"].filter(Boolean).join(" ")}),(0,t.jsx)("div",{className:["z-10 h-3.5 w-3.5 flex-none rounded-full border-2",e.isCurrent?"border-primary bg-primary ring-2 ring-primary/30":"ACTIVE"===e.status?"border-emerald-400 bg-emerald-400":"RELEASED"===e.status?"border-zinc-500 bg-zinc-500":"border-muted-foreground/40 bg-transparent border-dashed"].join(" ")}),!r&&(0,t.jsx)("div",{className:["w-px flex-1",n?"bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]":"bg-border"].join(" ")})]}),(0,t.jsx)("div",{className:"min-w-0 flex-1 pb-5",children:(0,t.jsx)(A,{version:e,diffStat:a??null,onEdit:i,onRelease:o,onViewDiff:l,onOpenTaskDetail:d})})]})}e.s(["VersionTimelineClient",0,function({project:e,workspaceId:d,versions:u,diffStats:p,backlog:h}){let f,{t:g}=(0,k.useI18n)(),b=(0,r.useRouter)(),[v,j]=(0,s.useState)(!1),[N,y]=(0,s.useState)(null),[w,C]=(0,s.useState)(!1),[S,D]=(0,s.useState)(!1),[T,E]=(0,s.useState)(null),[B,I]=(0,s.useState)(null),[L,R]=(0,s.useState)(null),[$,A]=(0,s.useState)(!1),O=[...[...u.filter(e=>"RELEASED"!==e.status)].sort((e,t)=>{if(!e.targetDate&&!t.targetDate)return 0;if(!e.targetDate)return 1;if(!t.targetDate)return -1;let s=new Date(t.targetDate).getTime()-new Date(e.targetDate).getTime();return 0!==s?s:new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()}),...[...u.filter(e=>"RELEASED"===e.status)].sort((e,t)=>e.releasedAt||t.releasedAt?e.releasedAt?t.releasedAt?new Date(t.releasedAt).getTime()-new Date(e.releasedAt).getTime():-1:1:0)],P=e=>{let t=u.find(t=>t.id===e);t&&(y({id:t.id,number:t.number,name:t.name,typeId:t.typeId??null,baseBranch:t.baseBranch,startDate:t.startDate,targetDate:t.targetDate,description:t.description}),j(!0))},V=e=>{let t=u.find(t=>t.id===e);t&&(E(t),D(!0))},z=e=>{I(e)},M=()=>{y(null),j(!0)},F=()=>{b.refresh()},U=T?u.filter(e=>e.id!==T.id&&("PLANNED"===e.status||"ACTIVE"===e.status)).map(e=>({id:e.id,number:e.number,name:e.name})):[],H=T?T.tasks.filter(e=>"DONE"!==e.status&&"CANCELLED"!==e.status).length:void 0;return(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,t.jsxs)("div",{className:"header-xl flex shrink-0 items-center gap-4 border-b px-6",children:[(0,t.jsxs)(n.default,{href:`/workspaces/${d}`,className:"flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground",children:[(0,t.jsx)(l.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:g("archive.backToBoard")})]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.name}),(0,t.jsx)("span",{children:"/"}),(0,t.jsx)("span",{children:g("version.timeline")})]}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground/70",children:g("version.historyHint")})]}),(0,t.jsxs)(x.Button,{variant:"outline",onClick:()=>C(!0),children:[(0,t.jsx)(c,{className:"h-4 w-4"}),g("version.manageTypes")]}),(0,t.jsxs)(x.Button,{onClick:M,children:[(0,t.jsx)(a.Plus,{className:"h-4 w-4"}),g("version.new")]})]}),(0,t.jsx)(m.ScrollArea,{className:"min-h-0 flex-1",children:(0,t.jsx)("div",{className:"px-6 py-6",children:(0,t.jsxs)("div",{className:"mx-auto max-w-3xl",children:[0===u.length&&0===h.length&&(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4 py-20 text-center text-muted-foreground",children:[(0,t.jsx)("p",{className:"text-sm",children:g("version.empty.list")}),(0,t.jsxs)(x.Button,{variant:"outline",onClick:M,children:[(0,t.jsx)(a.Plus,{className:"h-4 w-4"}),g("version.new")]})]}),O.length>0&&(0,t.jsx)("div",{className:"relative",children:O.map((e,s)=>(0,t.jsx)(ef,{version:e,isFirst:0===s,isLast:s===O.length-1&&0===h.length,diffStat:p[e.id],onEdit:P,onRelease:V,onViewDiff:z,onOpenTaskDetail:R},e.id))}),h.length>0&&(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsxs)("div",{className:"relative flex w-5 flex-none flex-col items-center",children:[(0,t.jsx)("div",{className:"h-6 w-px bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]"}),(0,t.jsx)("div",{className:"z-10 h-3.5 w-3.5 flex-none rounded-full border-2 border-dashed border-muted-foreground/40 bg-transparent"})]}),(0,t.jsx)("div",{className:"min-w-0 flex-1 pb-5",children:(0,t.jsxs)("div",{className:"overflow-hidden rounded-[14px] border border-dashed bg-muted/40 shadow-sm",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>A(e=>!e),className:"w-full px-4 py-3 text-left transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,t.jsx)(o.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${$?"rotate-90":""}`}),(0,t.jsx)(i.Archive,{className:"h-4 w-4 flex-none text-muted-foreground/70"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-foreground",children:g("version.history")}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:g("version.historySub")}),(0,t.jsx)("span",{className:"flex-1"}),(0,t.jsxs)("span",{className:"text-[11.5px] text-muted-foreground",children:[h.length," ",g("version.tasksCount")]})]}),(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground/70",children:g("version.historyHint")})]}),$&&(0,t.jsx)("div",{className:"border-t border-dashed border-border px-2 pb-2 pt-1.5",children:h.map(e=>(0,t.jsx)(_,{task:e,onOpenDetail:R},e.id))})]})})]})]})})}),(0,t.jsx)(eo,{open:v,onOpenChange:e=>{j(e),e||y(null)},projectId:e.id,workspaceId:d,editVersion:N,defaultBaseBranch:null,projectLocalPath:e.localPath,onSuccess:F}),(0,t.jsx)(en,{open:w,onOpenChange:C,workspaceId:d,onChanged:()=>b.refresh()}),(0,t.jsx)(ed,{open:S,onOpenChange:e=>{D(e),e||E(null)},version:T?{id:T.id,number:T.number,name:T.name,unfinishedCount:H}:null,candidates:U,onSuccess:F}),(0,t.jsx)(ep,{open:!!B,onOpenChange:e=>{e||I(null)},versionId:B,versionLabel:B&&(f=u.find(e=>e.id===B))?`${f.number} ${f.name}`:void 0}),(0,t.jsx)(eh.TaskOverviewDrawer,{open:!!L,onOpenChange:e=>{e||R(null)},taskId:L})]})}],645119)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,645119,e=>{"use strict";var t=e.i(289721),s=e.i(965652),r=e.i(538059),n=e.i(210702),a=e.i(232545),i=e.i(487278),o=e.i(368490),l=e.i(259846),d=e.i(572989);let c=(0,d.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var x=e.i(519455),m=e.i(759684),u=e.i(606393),p=e.i(226145),h=e.i(340873),f=e.i(263938),g=e.i(960518),b=e.i(453889),v=e.i(645378);let j=(0,d.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var N=e.i(464249);let y=(0,d.default)("package-check",[["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m16 17 2 2 4-4",key:"uh5qu3"}],["path",{d:"M21 11.127V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.729l7 4a2 2 0 0 0 2 .001l1.32-.753",key:"kpkbpo"}],["path",{d:"M3.29 7 12 12l8.71-5",key:"19ckod"}],["path",{d:"m7.5 4.27 8.997 5.148",key:"9yrvtv"}]]),w=(0,d.default)("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);var C=e.i(746798),S=e.i(685149),k=e.i(533499);let D=["bg-sky-500/20 text-sky-300 border border-sky-500/30","bg-amber-500/20 text-amber-300 border border-amber-500/30","bg-violet-500/20 text-violet-300 border border-violet-500/30","bg-emerald-500/20 text-emerald-300 border border-emerald-500/30","bg-rose-500/20 text-rose-300 border border-rose-500/30","bg-cyan-500/20 text-cyan-300 border border-cyan-500/30","bg-indigo-500/20 text-indigo-300 border border-indigo-500/30"];function T(e){return D[function(e){let t=0;for(let s=0;s<e.length;s++)t=31*t+e.charCodeAt(s)>>>0;return t}(e)%D.length]}let E={PLANNED:"bg-slate-500/20 text-slate-300 border border-slate-500/30",ACTIVE:"bg-emerald-500/20 text-emerald-300 border border-emerald-500/30",RELEASED:"bg-zinc-500/20 text-zinc-400 border border-zinc-500/30"};function B({name:e}){let{t:s}=(0,k.useI18n)();return e?(0,t.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${T(e)}`,children:e}):(0,t.jsx)("span",{className:"inline-flex items-center rounded-full border border-border bg-muted/40 px-2 py-0.5 text-xs font-medium text-muted-foreground",children:s("version.type.uncategorized")})}function I({status:e}){let{t:s}=(0,k.useI18n)();return(0,t.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${E[e]}`,children:s(`version.status.${e}`)})}function L(e){if(!e)return"";let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let s=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${s}-${r}`}let R=Object.fromEntries(S.BOARD_COLUMNS.map(e=>[e.id,e.color]));function $({children:e,className:s}){return(0,t.jsx)("span",{className:`inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/40 px-2 py-0.5 text-xs text-muted-foreground ${s??""}`,children:e})}function _({task:e,onOpenDetail:r}){let{t:n}=(0,k.useI18n)(),[a,i]=(0,s.useState)(!1),l="CANCELLED"===e.status?"text-muted-foreground line-through decoration-muted-foreground/40":"DONE"===e.status?"text-muted-foreground":"text-foreground";return(0,t.jsxs)("div",{className:"rounded-[10px]",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>i(e=>!e),className:"flex w-full items-center gap-2.5 rounded-[10px] px-2.5 py-2.5 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,t.jsx)(o.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${a?"rotate-90":""}`}),(0,t.jsx)("span",{className:`h-2 w-2 flex-none rounded-full ${R[e.status]??"bg-slate-400"}`}),(0,t.jsx)("span",{className:`text-[13.5px] font-medium ${l}`,children:e.title}),e.labels.map(({label:e})=>(0,t.jsx)("span",{className:"rounded-full border border-border px-1.5 py-px text-[10.5px] text-muted-foreground",style:e.color?{borderColor:e.color+"55",color:e.color}:void 0,children:e.name},e.id)),(0,t.jsx)("span",{className:"flex-1"}),(0,t.jsx)("span",{className:"flex w-16 flex-none justify-center",children:(0,t.jsx)("span",{className:`rounded-[5px] px-1.5 py-px text-[10.5px] font-bold ${S.PRIORITY_CONFIG[e.priority]?.color??S.PRIORITY_CONFIG.LOW.color}`,children:e.priority})}),(0,t.jsx)("span",{className:"h-3 w-px bg-border flex-none"}),(0,t.jsxs)("span",{className:"flex w-[72px] flex-none items-center gap-1.5",children:[(0,t.jsx)("span",{className:`h-1.5 w-1.5 flex-none rounded-full ${R[e.status]??"bg-slate-400"}`}),(0,t.jsx)("span",{className:"truncate text-[10.5px] text-muted-foreground",children:n(`version.taskStatus.${e.status}`)})]}),(0,t.jsx)("span",{className:"h-3 w-px bg-border flex-none"}),(0,t.jsx)("span",{className:"flex w-6 flex-none justify-center",children:r&&(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{render:(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 text-muted-foreground",onClick:t=>{t.stopPropagation(),r(e.id)}}),children:(0,t.jsx)(w,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(C.TooltipContent,{children:n("version.detail")})]})})]}),a&&(0,t.jsxs)("div",{className:"flex flex-col gap-2.5 pb-3 pl-[30px] pr-3 pt-1",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5",children:[(0,t.jsx)(b.FolderOpen,{className:"h-3 w-3 text-muted-foreground/60"}),(0,t.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wide text-muted-foreground/60",children:n("version.resources")})]}),0===e.assets.length?(0,t.jsx)("p",{className:"text-[12px] italic text-muted-foreground/60",children:n("version.empty.resources")}):(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.assets.map(e=>{var s;let r=e.mimeType?.startsWith("image/");return(0,t.jsxs)("span",{className:"inline-flex cursor-pointer items-center gap-1.5 rounded-lg border border-border bg-background px-2.5 py-1.5 text-[12px] text-foreground shadow-sm transition-colors hover:border-primary/50",children:[r?(0,t.jsx)(j,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,t.jsx)(v.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,t.jsx)("span",{children:e.filename}),null!=e.size&&(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground/60",children:(s=e.size)<1024?`${s} B`:s<1048576?`${Math.round(s/1024)} KB`:`${(s/1048576).toFixed(1)} MB`})]},e.id)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5",children:[(0,t.jsx)(v.FileText,{className:"h-3 w-3 text-muted-foreground/60"}),(0,t.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wide text-muted-foreground/60",children:n("version.notes")})]}),0===e.notes.length?(0,t.jsx)("p",{className:"text-[12px] italic text-muted-foreground/60",children:n("version.empty.notes")}):(0,t.jsx)("div",{className:"flex flex-col gap-1.5",children:e.notes.map(e=>(0,t.jsx)("div",{className:"rounded-lg border border-border border-l-violet-500/50 bg-background px-2.5 py-2 shadow-sm [border-left-width:3px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[12.5px] font-semibold text-foreground",children:e.title}),e.category&&(0,t.jsx)("span",{className:"rounded-[5px] border border-violet-500/30 bg-violet-500/15 px-1.5 py-px text-[10px] font-bold text-violet-300",children:e.category})]})},e.id))})]})]})]})}function A({version:e,diffStat:r,onEdit:n,onRelease:a,onViewDiff:i,onOpenTaskDetail:l}){var d;let c,{t:m}=(0,k.useI18n)(),[b,v]=(0,s.useState)(e.isCurrent),j="RELEASED"===e.status,w="ACTIVE"===e.status,S=e.tasks.length,D=e.tasks.filter(e=>"DONE"===e.status).length,T=!!(e.releaseCommit||r),E=(c=`${S} ${m("version.tasksCount")}`,D>0&&D<S?`${c} \xb7 ${D} ${m("version.doneCount")}`:D>0&&D===S?`${c} \xb7 ${m("version.allDone")}`:c);return(0,t.jsxs)("div",{className:["overflow-hidden rounded-[14px] border bg-card shadow-sm transition-shadow duration-150 hover:shadow-md",e.isCurrent?"border-border border-l-2 border-l-primary ring-1 ring-primary/20":"border-border",j?"opacity-[.96]":""].filter(Boolean).join(" "),children:[(0,t.jsx)("button",{type:"button",onClick:()=>v(e=>!e),className:"w-full text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,t.jsxs)("div",{className:"px-4 py-3.5",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(o.ChevronRight,{className:`h-4 w-4 flex-none text-muted-foreground/60 transition-transform duration-150 ${b?"rotate-90":""}`}),(0,t.jsx)("span",{className:"font-mono text-[14.5px] font-bold text-foreground",children:e.number}),(0,t.jsx)("span",{className:"text-[14.5px] font-semibold text-foreground",children:e.name}),(0,t.jsx)(B,{name:e.type?.name??null}),(0,t.jsx)(I,{status:e.status}),e.isCurrent&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-primary/30 bg-primary/15 px-2.5 py-0.5 text-[11px] font-bold text-primary shadow-sm",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-primary opacity-90"}),m("version.current")]}),(0,t.jsx)("span",{className:"flex-1"}),S>0&&(0,t.jsx)("span",{className:"text-[11.5px] text-muted-foreground",children:E}),(0,t.jsxs)("span",{className:"flex items-center gap-1",onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[n&&(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{render:(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground",onClick:()=>n(e.id)}),children:(0,t.jsx)(N.Pencil,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(C.TooltipContent,{children:m("version.edit")})]}),w&&a&&(0,t.jsxs)(x.Button,{variant:"outline",className:"h-7 px-2 text-xs font-semibold",onClick:()=>a(e.id),children:[(0,t.jsx)(y,{className:"h-3.5 w-3.5"}),m("version.release")]})]})]}),(0,t.jsxs)("div",{className:"mt-2.5 flex flex-wrap items-center gap-2",children:[j&&e.releasedAt?(0,t.jsxs)($,{children:[(0,t.jsx)(u.Calendar,{className:"h-3 w-3"}),m("version.releasedAt"),(0,t.jsx)("strong",{className:"text-foreground",children:L(e.releasedAt)})]}):e.startDate||e.targetDate?(0,t.jsxs)($,{children:[(0,t.jsx)(u.Calendar,{className:"h-3 w-3"}),e.startDate?L(e.startDate):"—"," → ",e.targetDate?(0,t.jsx)("strong",{className:"text-foreground",children:L(e.targetDate)}):"—"]}):null,e.baseBranch&&(0,t.jsxs)($,{children:[(0,t.jsx)(p.GitBranch,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:e.baseBranch})]}),e.baseCommit&&(0,t.jsxs)($,{children:[(0,t.jsx)(h.GitCommitHorizontal,{className:"h-3 w-3"}),m("version.field.baseCommit"),(0,t.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:(d=e.baseCommit)?d.slice(0,7):""})]}),j&&(0,t.jsxs)($,{children:[(0,t.jsx)(f.Tag,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:e.number})]}),r&&(0,t.jsxs)($,{children:[(0,t.jsx)(g.GitCompare,{className:"h-3 w-3"}),!j&&(0,t.jsx)("span",{className:"text-muted-foreground",children:m("version.diff.live")}),(0,t.jsxs)("span",{className:"font-bold text-emerald-400",children:["+",r.additions.toLocaleString()]}),(0,t.jsxs)("span",{className:"font-bold text-rose-400",children:["−",r.deletions.toLocaleString()]}),(0,t.jsxs)("span",{className:"text-muted-foreground",children:["· ",r.files," ",m("version.diff.files")]})]}),T&&i&&(0,t.jsxs)(x.Button,{variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs text-muted-foreground",onClick:t=>{t.stopPropagation(),i(e.id)},children:[(0,t.jsx)(g.GitCompare,{className:"h-3 w-3"}),m("version.diff.view")," →"]})]}),e.description&&(0,t.jsx)("p",{className:"mt-2 text-[13px] text-muted-foreground",children:e.description})]})}),b&&S>0&&(0,t.jsx)("div",{className:"border-t border-dashed border-border bg-muted/40 px-2 pb-2 pt-1.5",children:e.tasks.map(e=>(0,t.jsx)(_,{task:e,onOpenDetail:l},e.id))})]})}var O=e.i(360112),P=e.i(597746),V=e.i(456346),z=e.i(776639),M=e.i(793479),F=e.i(110204),U=e.i(918385),H=e.i(337822),G=e.i(317056),K=e.i(699375),W=e.i(624687),Y=e.i(514798);let q=(0,Y.createServerReference)("401bf0975fb9770b71a6f11aad21ecd9004776c78c",Y.callServer,void 0,Y.findSourceMapURL,"createVersion"),J=(0,Y.createServerReference)("60bbacfb9afef3c55da9e44b902a654cfe162de63f",Y.callServer,void 0,Y.findSourceMapURL,"updateVersion"),Q=(0,Y.createServerReference)("401f73f852a83339c26f796a1477553af57e319ee1",Y.callServer,void 0,Y.findSourceMapURL,"getVersionTypes");var X=e.i(439576),Z=e.i(194736),ee=e.i(998626);let et=(0,Y.createServerReference)("408552ab6cd7927b7b40bfcadad057cba3cd029459",Y.callServer,void 0,Y.findSourceMapURL,"createVersionType"),es=(0,Y.createServerReference)("606296d54b3365dcea99f4b1b123e002dc4351ce08",Y.callServer,void 0,Y.findSourceMapURL,"updateVersionType"),er=(0,Y.createServerReference)("40e95a7d0ef865e3bcaa92b73eea3ca6433a8966c1",Y.callServer,void 0,Y.findSourceMapURL,"deleteVersionType");function en({open:e,onOpenChange:r,workspaceId:n,onChanged:a}){let{t:i}=(0,k.useI18n)(),[o,l]=(0,s.useState)([]),[d,c]=(0,s.useState)(""),[m,u]=(0,s.useState)({}),[p,h]=(0,s.useTransition)(),f=async()=>{let e=await Q(n);l(e),u(t=>{let s={};return e.forEach(e=>{s[e.id]=e.id in t?t[e.id]:e.name}),s})};(0,s.useEffect)(()=>{e&&(f(),c(""))},[e,n]);let g=()=>{let e=d.trim();e&&h(async()=>{try{await et({workspaceId:n,name:e}),c(""),await f(),a?.(),O.toast.success(i("version.type.add"))}catch(e){O.toast.error(e instanceof Error?e.message:String(e))}})};return(0,t.jsx)(z.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(z.DialogHeader,{children:(0,t.jsx)(z.DialogTitle,{children:i("version.manageTypes")})}),(0,t.jsxs)("div",{className:"flex flex-col gap-4 py-2",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(M.Input,{value:d,onChange:e=>c(e.target.value),placeholder:i("version.type.namePlaceholder"),disabled:p,onKeyDown:e=>{"Enter"===e.key&&g()},className:"flex-1"}),(0,t.jsx)(x.Button,{onClick:g,disabled:p||!d.trim(),children:i("version.type.add")})]}),0===o.length?(0,t.jsx)("p",{className:"text-center text-sm text-muted-foreground py-4",children:i("version.type.empty")}):(0,t.jsx)("div",{className:"flex flex-col gap-1.5",children:o.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-3 py-2",children:[(0,t.jsx)("span",{className:`inline-flex h-2.5 w-2.5 flex-none rounded-full ${T(m[e.id]??e.name).split(" ").filter(e=>e.startsWith("bg-"))[0]??"bg-muted"}`}),(0,t.jsx)(M.Input,{value:m[e.id]??e.name,onChange:t=>u(s=>({...s,[e.id]:t.target.value})),onBlur:()=>(e=>{let t=(m[e]??"").trim();if(!t)return;let s=o.find(t=>t.id===e);s?.name!==t&&h(async()=>{try{await es(e,{name:t}),await f(),a?.()}catch(t){O.toast.error(t instanceof Error?t.message:String(t)),u(t=>({...t,[e]:s?.name??""}))}})})(e.id),onKeyDown:e=>{"Enter"===e.key&&e.target.blur()},disabled:p,className:"h-7 flex-1 border-transparent bg-transparent shadow-none focus-visible:border-input focus-visible:bg-background focus-visible:shadow-sm"}),(0,t.jsx)(x.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 flex-none text-muted-foreground hover:text-destructive",onClick:()=>{var t;return t=e.id,void(window.confirm(i("version.type.deleteConfirm"))&&h(async()=>{try{await er(t),await f(),a?.()}catch(e){O.toast.error(e instanceof Error?e.message:String(e))}}))},disabled:p,children:(0,t.jsx)(ee.Trash2,{className:"h-3.5 w-3.5"})})]},e.id))})]})]})})}function ea(e){if(!e)return"";let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let s=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${s}-${r}-${n}`}function ei(e){if(!e)return;let t=new Date(e);return isNaN(t.getTime())?void 0:t}function eo({open:e,onOpenChange:r,projectId:n,workspaceId:a,editVersion:i,defaultBaseBranch:o,projectLocalPath:l,onSuccess:d}){let{t:c}=(0,k.useI18n)(),m=!!i,[u,h]=(0,s.useState)(""),[f,g]=(0,s.useState)(""),[b,v]=(0,s.useState)(""),[j,N]=(0,s.useState)([]),[y,w]=(0,s.useState)(!1),[C,S]=(0,s.useState)(""),[D,T]=(0,s.useState)(""),[E,B]=(0,s.useState)(""),[I,L]=(0,s.useState)(""),[R,$]=(0,s.useState)(!1),[_,A]=(0,s.useState)([]),[Y,ee]=(0,s.useState)(!1),[et,es]=(0,s.useState)(!1),er=!!l,[el,ed]=(0,s.useTransition)();return(0,s.useEffect)(()=>{e&&(i?(h(i.number),g(i.name),v(i.typeId??""),S(i.baseBranch??""),T(ea(i.startDate)),B(ea(i.targetDate)),L(i.description??"")):(h(""),g(""),v(""),S(o??""),T(""),B(""),L("")),$(!1))},[e,i,o]),(0,s.useEffect)(()=>{e&&Q(a).then(N).catch(()=>N([]))},[e,a]),(0,s.useEffect)(()=>{e&&er?(ee(!0),(0,X.getProjectBranches)(l).then(A).catch(()=>A([])).finally(()=>ee(!1)),(0,Z.fetchRemoteBranches)(l).then(()=>(0,X.getProjectBranches)(l).then(A)).catch(()=>{})):A([])},[e,er,l]),(0,t.jsxs)(z.Dialog,{open:e,onOpenChange:r,children:[(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(z.DialogHeader,{children:(0,t.jsx)(z.DialogTitle,{children:m?c("version.edit"):c("version.new")})}),(0,t.jsxs)("div",{className:"grid gap-4 py-2",children:[(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsxs)(F.Label,{htmlFor:"version-number",children:[c("version.field.number"),(0,t.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),(0,t.jsx)(M.Input,{id:"version-number",value:u,onChange:e=>h(e.target.value),placeholder:c("version.placeholder.number"),disabled:el})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsxs)(F.Label,{htmlFor:"version-name",children:[c("version.field.name"),(0,t.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),(0,t.jsx)(M.Input,{id:"version-name",value:f,onChange:e=>g(e.target.value),placeholder:c("version.placeholder.name"),disabled:el})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{children:c("version.field.type")}),(0,t.jsxs)(U.Select,{value:b||"__none__",onValueChange:e=>{v(e&&"__none__"!==e?e:"")},children:[(0,t.jsx)(U.SelectTrigger,{className:"w-full",disabled:el,children:(0,t.jsx)("span",{className:"truncate",children:b?j.find(e=>e.id===b)?.name??c("version.type.uncategorized"):c("version.type.uncategorized")})}),(0,t.jsxs)(U.SelectContent,{children:[(0,t.jsx)(U.SelectItem,{value:"__none__",children:c("version.type.uncategorized")}),j.map(e=>(0,t.jsx)(U.SelectItem,{value:e.id,children:e.name},e.id))]})]}),(0,t.jsxs)(x.Button,{type:"button",variant:"ghost",size:"sm",className:"h-auto justify-start px-0 py-0.5 text-xs text-muted-foreground hover:text-foreground",onClick:()=>w(!0),disabled:el,children:["+ ",c("version.manageTypes")]})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{children:c("version.field.baseBranch")}),Y?(0,t.jsx)("div",{className:"text-sm text-muted-foreground",children:c("task.branchLoading")}):er&&_.length>0?(0,t.jsxs)(H.Popover,{open:et,onOpenChange:es,children:[(0,t.jsxs)(H.PopoverTrigger,{className:"flex h-8 w-full items-center gap-2 rounded-lg border border-input bg-transparent px-3 text-sm transition-colors hover:bg-accent focus:outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:opacity-50",disabled:el,"data-testid":"version-branch-selector",children:[(0,t.jsx)(p.GitBranch,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:`flex-1 truncate text-left text-xs ${C?"font-mono":"text-muted-foreground"}`,children:C||c("version.field.noBranch")}),(0,t.jsx)(V.ChevronsUpDown,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,t.jsx)(H.PopoverContent,{className:"p-0",align:"start",children:(0,t.jsxs)(G.Command,{children:[(0,t.jsx)(G.CommandInput,{placeholder:c("task.branchSearch")}),(0,t.jsxs)(G.CommandList,{children:[(0,t.jsx)(G.CommandEmpty,{children:c("task.branchNone")}),(0,t.jsxs)(G.CommandGroup,{children:[(0,t.jsxs)(G.CommandItem,{value:"__none__",onSelect:()=>{S(""),es(!1)},children:[(0,t.jsx)("span",{className:"flex-1 truncate text-muted-foreground",children:c("version.field.noBranch")}),!C&&(0,t.jsx)(P.Check,{className:"ml-auto h-3 w-3 shrink-0 text-primary"})]}),_.map(e=>(0,t.jsxs)(G.CommandItem,{value:e,onSelect:()=>{S(e),es(!1)},children:[(0,t.jsx)(p.GitBranch,{className:"mr-2 h-3 w-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"flex-1 truncate font-mono",children:e}),e===C&&(0,t.jsx)(P.Check,{className:"ml-auto h-3 w-3 shrink-0 text-primary"})]},e))]})]})]})})]}):(0,t.jsx)(M.Input,{id:"version-base-branch",value:C,onChange:e=>S(e.target.value),placeholder:"main",disabled:el})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{htmlFor:"version-start-date",children:c("version.field.startDate")}),(0,t.jsx)("input",{id:"version-start-date",type:"date",value:D,onChange:e=>T(e.target.value),disabled:el,className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{htmlFor:"version-target-date",children:c("version.field.targetDate")}),(0,t.jsx)("input",{id:"version-target-date",type:"date",value:E,onChange:e=>B(e.target.value),disabled:el,className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"})]})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)(F.Label,{htmlFor:"version-description",children:c("version.field.description")}),(0,t.jsx)(W.Textarea,{id:"version-description",value:I,onChange:e=>L(e.target.value),rows:3,disabled:el})]}),!m&&(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(K.Switch,{id:"version-set-current",checked:R,onCheckedChange:$,disabled:el}),(0,t.jsx)(F.Label,{htmlFor:"version-set-current",className:"cursor-pointer",children:c("version.field.setCurrent")})]})]}),(0,t.jsxs)(z.DialogFooter,{children:[(0,t.jsx)(x.Button,{variant:"outline",onClick:()=>r(!1),disabled:el,children:c("common.cancel")}),(0,t.jsx)(x.Button,{onClick:()=>{u.trim()&&f.trim()&&ed(async()=>{try{m&&i?await J(i.id,{number:u.trim(),name:f.trim(),typeId:b||null,baseBranch:C.trim()||null,startDate:ei(D)??null,targetDate:ei(E)??null,description:I.trim()||null}):await q({projectId:n,number:u.trim(),name:f.trim(),typeId:b||void 0,baseBranch:C.trim()||void 0,startDate:ei(D),targetDate:ei(E),description:I.trim()||void 0,setCurrent:R}),O.toast.success(m?c("version.edit"):c("version.new")),r(!1),d?.()}catch(e){O.toast.error(e instanceof Error?e.message:String(e))}})},disabled:el||!u.trim()||!f.trim(),children:m?c("common.save"):c("common.create")})]})]}),(0,t.jsx)(en,{open:y,onOpenChange:w,workspaceId:a,onChanged:()=>Q(a).then(N)})]})}let el=(0,Y.createServerReference)("60a9ac3d7e1da0afa51c5563936e9d315230a96547",Y.callServer,void 0,Y.findSourceMapURL,"releaseVersion");function ed({open:e,onOpenChange:r,version:n,candidates:a,onSuccess:i}){let{t:o}=(0,k.useI18n)(),[l,d]=(0,s.useState)(""),[c,m]=(0,s.useTransition)();(0,s.useEffect)(()=>{e&&d("")},[e,n]);let u=a.find(e=>e.id===l),p=a.length>0,h=p&&!!l&&!c;return(0,t.jsx)(z.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsx)(z.DialogHeader,{children:(0,t.jsx)(z.DialogTitle,{children:o("version.releaseAction")})}),(0,t.jsxs)("div",{className:"grid gap-4 py-2",children:[n&&(0,t.jsxs)("p",{className:"text-sm text-muted-foreground",children:[n.number," · ",n.name]}),(0,t.jsxs)("div",{className:"text-sm",children:[(0,t.jsx)("span",{children:o("version.release.rolloverHint")}),n?.unfinishedCount!==void 0&&n.unfinishedCount>0&&(0,t.jsxs)("span",{className:"ml-1 font-medium text-foreground",children:["(",n.unfinishedCount,")"]})]}),(0,t.jsxs)("div",{className:"grid gap-1.5",children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:o("version.release.nextVersion")}),p?(0,t.jsxs)(U.Select,{value:l,onValueChange:e=>{e&&d(e)},disabled:c,children:[(0,t.jsx)(U.SelectTrigger,{className:"w-full",children:(0,t.jsx)("span",{className:"truncate",children:u?`${u.number} \xb7 ${u.name}`:""})}),(0,t.jsx)(U.SelectContent,{children:a.map(e=>(0,t.jsxs)(U.SelectItem,{value:e.id,children:[e.number," · ",e.name]},e.id))})]}):(0,t.jsx)("p",{className:"text-xs text-destructive",children:o("version.release.noCandidates")})]})]}),(0,t.jsxs)(z.DialogFooter,{children:[(0,t.jsx)(x.Button,{variant:"outline",onClick:()=>r(!1),disabled:c,children:o("common.cancel")}),(0,t.jsx)(x.Button,{onClick:()=>{n&&l&&m(async()=>{try{await el(n.id,l),O.toast.success(o("version.release")),r(!1),i?.()}catch(e){O.toast.error(e instanceof Error?e.message:String(e))}})},disabled:!h,children:o("version.release")})]})]})})}var ec=e.i(400355);let ex=(0,Y.createServerReference)("4069519d50b8b627c8666703ec80094b1def518915",Y.callServer,void 0,Y.findSourceMapURL,"getVersionDiff");var em=e.i(196199);function eu({file:e}){let{t:r}=(0,k.useI18n)(),[n,a]=(0,s.useState)(!0),i=e.to&&"/dev/null"!==e.to?e.to:e.from??"",l=e.additions??0,d=e.deletions??0,c=[];for(let t of e.chunks)for(let e of(c.push({type:"normal",content:t.content,chunkHeader:t.content}),t.changes))c.push({type:e.type,content:e.content});let x=c.length>500,m=x?c.slice(0,500):c;return(0,t.jsxs)("div",{className:"overflow-hidden rounded-[10px] border border-border",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>a(e=>!e),className:"flex w-full items-center gap-2 bg-muted/40 px-3 py-2 text-left transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,t.jsx)(o.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${n?"rotate-90":""}`}),(0,t.jsx)("span",{className:"flex-1 truncate font-mono text-[12px] font-medium text-foreground",children:i}),(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] font-bold text-emerald-400",children:["+",l]}),(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] font-bold text-rose-400",children:["−",d]})]}),n&&(0,t.jsxs)("div",{className:"overflow-x-auto",children:[(0,t.jsx)("pre",{className:"m-0 p-0",children:m.map((e,s)=>void 0!==e.chunkHeader?(0,t.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-muted-foreground bg-muted/40",children:e.content},s):"add"===e.type?(0,t.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-emerald-300 bg-emerald-500/10",children:e.content},s):"del"===e.type?(0,t.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-rose-300 bg-rose-500/10",children:e.content},s):(0,t.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-muted-foreground",children:e.content},s))}),x&&(0,t.jsx)("p",{className:"border-t border-border px-3 py-2 text-[11px] text-muted-foreground/70 italic",children:r("version.diff.truncated")})]})]})}function ep({open:e,onOpenChange:r,versionId:n,versionLabel:a}){let{t:i}=(0,k.useI18n)(),[o,l]=(0,s.useTransition)(),[d,c]=(0,s.useState)(null),[x,m]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{e&&n&&(c(null),m(!1),l(async()=>{let e=await ex(n);if(!e)return void m(!0);let t=(0,em.parseUnifiedDiff)(e.patch);0===t.length||""===e.patch?m(!0):c(t)}))},[e,n]),(0,t.jsx)(z.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-3xl max-h-[80vh] overflow-auto",children:[(0,t.jsx)(z.DialogHeader,{children:(0,t.jsxs)(z.DialogTitle,{children:[i("version.diff.title"),a?` — ${a}`:""]})}),o&&(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-12 text-muted-foreground",children:[(0,t.jsx)(ec.Loader2,{className:"h-5 w-5 animate-spin"}),(0,t.jsx)("span",{className:"text-sm",children:i("version.diff.loading")})]}),!o&&x&&(0,t.jsx)("p",{className:"py-10 text-center text-sm text-muted-foreground",children:i("version.diff.empty")}),!o&&d&&d.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-2",children:d.map((e,s)=>(0,t.jsx)(eu,{file:e},s))})]})})}var eh=e.i(605005);function ef({version:e,isFirst:s,isLast:r,dashed:n=!1,diffStat:a,onEdit:i,onRelease:o,onViewDiff:l,onOpenTaskDetail:d}){return(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsxs)("div",{className:"relative flex w-5 flex-none flex-col items-center",children:[(0,t.jsx)("div",{className:["w-px flex-none",s?"h-0":"h-6",n?"bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]":"bg-border"].filter(Boolean).join(" ")}),(0,t.jsx)("div",{className:["z-10 h-3.5 w-3.5 flex-none rounded-full border-2",e.isCurrent?"border-primary bg-primary ring-2 ring-primary/30":"ACTIVE"===e.status?"border-emerald-400 bg-emerald-400":"RELEASED"===e.status?"border-zinc-500 bg-zinc-500":"border-muted-foreground/40 bg-transparent border-dashed"].join(" ")}),!r&&(0,t.jsx)("div",{className:["w-px flex-1",n?"bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]":"bg-border"].join(" ")})]}),(0,t.jsx)("div",{className:"min-w-0 flex-1 pb-5",children:(0,t.jsx)(A,{version:e,diffStat:a??null,onEdit:i,onRelease:o,onViewDiff:l,onOpenTaskDetail:d})})]})}e.s(["VersionTimelineClient",0,function({project:e,workspaceId:d,versions:u,diffStats:p,backlog:h}){let f,{t:g}=(0,k.useI18n)(),b=(0,r.useRouter)(),[v,j]=(0,s.useState)(!1),[N,y]=(0,s.useState)(null),[w,C]=(0,s.useState)(!1),[S,D]=(0,s.useState)(!1),[T,E]=(0,s.useState)(null),[B,I]=(0,s.useState)(null),[L,R]=(0,s.useState)(null),[$,A]=(0,s.useState)(!1),O=[...[...u.filter(e=>"RELEASED"!==e.status)].sort((e,t)=>{if(!e.targetDate&&!t.targetDate)return 0;if(!e.targetDate)return 1;if(!t.targetDate)return -1;let s=new Date(t.targetDate).getTime()-new Date(e.targetDate).getTime();return 0!==s?s:new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()}),...[...u.filter(e=>"RELEASED"===e.status)].sort((e,t)=>e.releasedAt||t.releasedAt?e.releasedAt?t.releasedAt?new Date(t.releasedAt).getTime()-new Date(e.releasedAt).getTime():-1:1:0)],P=e=>{let t=u.find(t=>t.id===e);t&&(y({id:t.id,number:t.number,name:t.name,typeId:t.typeId??null,baseBranch:t.baseBranch,startDate:t.startDate,targetDate:t.targetDate,description:t.description}),j(!0))},V=e=>{let t=u.find(t=>t.id===e);t&&(E(t),D(!0))},z=e=>{I(e)},M=()=>{y(null),j(!0)},F=()=>{b.refresh()},U=T?u.filter(e=>e.id!==T.id&&("PLANNED"===e.status||"ACTIVE"===e.status)).map(e=>({id:e.id,number:e.number,name:e.name})):[],H=T?T.tasks.filter(e=>"DONE"!==e.status&&"CANCELLED"!==e.status).length:void 0;return(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,t.jsxs)("div",{className:"header-xl flex shrink-0 items-center gap-4 border-b px-6",children:[(0,t.jsxs)(n.default,{href:`/workspaces/${d}`,className:"flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground",children:[(0,t.jsx)(l.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:g("archive.backToBoard")})]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.name}),(0,t.jsx)("span",{children:"/"}),(0,t.jsx)("span",{children:g("version.timeline")})]}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground/70",children:g("version.historyHint")})]}),(0,t.jsxs)(x.Button,{variant:"outline",onClick:()=>C(!0),children:[(0,t.jsx)(c,{className:"h-4 w-4"}),g("version.manageTypes")]}),(0,t.jsxs)(x.Button,{onClick:M,children:[(0,t.jsx)(a.Plus,{className:"h-4 w-4"}),g("version.new")]})]}),(0,t.jsx)(m.ScrollArea,{className:"min-h-0 flex-1",children:(0,t.jsx)("div",{className:"px-6 py-6",children:(0,t.jsxs)("div",{className:"mx-auto max-w-3xl",children:[0===u.length&&0===h.length&&(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4 py-20 text-center text-muted-foreground",children:[(0,t.jsx)("p",{className:"text-sm",children:g("version.empty.list")}),(0,t.jsxs)(x.Button,{variant:"outline",onClick:M,children:[(0,t.jsx)(a.Plus,{className:"h-4 w-4"}),g("version.new")]})]}),O.length>0&&(0,t.jsx)("div",{className:"relative",children:O.map((e,s)=>(0,t.jsx)(ef,{version:e,isFirst:0===s,isLast:s===O.length-1&&0===h.length,diffStat:p[e.id],onEdit:P,onRelease:V,onViewDiff:z,onOpenTaskDetail:R},e.id))}),h.length>0&&(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsxs)("div",{className:"relative flex w-5 flex-none flex-col items-center",children:[(0,t.jsx)("div",{className:"h-6 w-px bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]"}),(0,t.jsx)("div",{className:"z-10 h-3.5 w-3.5 flex-none rounded-full border-2 border-dashed border-muted-foreground/40 bg-transparent"})]}),(0,t.jsx)("div",{className:"min-w-0 flex-1 pb-5",children:(0,t.jsxs)("div",{className:"overflow-hidden rounded-[14px] border border-dashed bg-muted/40 shadow-sm",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>A(e=>!e),className:"w-full px-4 py-3 text-left transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,t.jsx)(o.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${$?"rotate-90":""}`}),(0,t.jsx)(i.Archive,{className:"h-4 w-4 flex-none text-muted-foreground/70"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-foreground",children:g("version.history")}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:g("version.historySub")}),(0,t.jsx)("span",{className:"flex-1"}),(0,t.jsxs)("span",{className:"text-[11.5px] text-muted-foreground",children:[h.length," ",g("version.tasksCount")]})]}),(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground/70",children:g("version.historyHint")})]}),$&&(0,t.jsx)("div",{className:"border-t border-dashed border-border px-2 pb-2 pt-1.5",children:h.map(e=>(0,t.jsx)(_,{task:e,onOpenDetail:R},e.id))})]})})]})]})})}),(0,t.jsx)(eo,{open:v,onOpenChange:e=>{j(e),e||y(null)},projectId:e.id,workspaceId:d,editVersion:N,defaultBaseBranch:null,projectLocalPath:e.localPath,onSuccess:F}),(0,t.jsx)(en,{open:w,onOpenChange:C,workspaceId:d,onChanged:()=>b.refresh()}),(0,t.jsx)(ed,{open:S,onOpenChange:e=>{D(e),e||E(null)},version:T?{id:T.id,number:T.number,name:T.name,unfinishedCount:H}:null,candidates:U,onSuccess:F}),(0,t.jsx)(ep,{open:!!B,onOpenChange:e=>{e||I(null)},versionId:B,versionLabel:B&&(f=u.find(e=>e.id===B))?`${f.number} ${f.name}`:void 0}),(0,t.jsx)(eh.TaskOverviewDrawer,{open:!!L,onOpenChange:e=>{e||R(null)},taskId:L})]})}],645119)}]);
@@ -0,0 +1,2 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,368490,e=>{"use strict";var t=e.i(776405);e.s(["ChevronRight",()=>t.default])},245697,e=>{"use strict";let t=(0,e.i(572989).default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);e.s(["Package",0,t],245697)},487486,e=>{"use strict";var t=e.i(565455),a=e.i(581263),s=e.i(294237),r=e.i(975157);let i=(0,s.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:s="default",render:l,...n}){var d;return d={defaultTagName:"span",props:(0,t.mergeProps)({className:(0,r.cn)(i({variant:s}),e)},n),render:l,state:{slot:"badge",variant:s}},(0,a.useRenderElement)(d.defaultTagName??"div",d,d)}],487486)},110204,e=>{"use strict";var t=e.i(289721),a=e.i(975157);e.s(["Label",0,function({className:e,...s}){return(0,t.jsx)("label",{"data-slot":"label",className:(0,a.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...s})}])},259846,e=>{"use strict";let t=(0,e.i(572989).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],259846)},12659,e=>{"use strict";let t=(0,e.i(572989).default)("circle-play",[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["PlayCircle",0,t],12659)},875840,e=>{"use strict";let t=(0,e.i(572989).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],875840)},685149,e=>{"use strict";e.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"])},606393,e=>{"use strict";let t=(0,e.i(572989).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["Calendar",0,t],606393)},980376,828257,e=>{"use strict";var t=e.i(289721),a=e.i(225061),s=e.i(975157),r=e.i(519455),i=e.i(670123);function l({...e}){return(0,t.jsx)(a.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function n({className:e,...r}){return(0,t.jsx)(a.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,s.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",e),...r})}e.s(["Sheet",0,function({...e}){return(0,t.jsx)(a.Dialog.Root,{"data-slot":"sheet",...e})},"SheetContent",0,function({className:e,children:d,side:o="right",showCloseButton:c=!0,...u}){return(0,t.jsxs)(l,{children:[(0,t.jsx)(n,{}),(0,t.jsxs)(a.Dialog.Popup,{"data-slot":"sheet-content","data-side":o,className:(0,s.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",e),...u,children:[d,c&&(0,t.jsxs)(a.Dialog.Close,{"data-slot":"sheet-close",render:(0,t.jsx)(r.Button,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,t.jsx)(i.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"SheetDescription",0,function({className:e,...r}){return(0,t.jsx)(a.Dialog.Description,{"data-slot":"sheet-description",className:(0,s.cn)("text-sm text-muted-foreground",e),...r})},"SheetHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,s.cn)("flex flex-col gap-0.5 p-4",e),...a})},"SheetTitle",0,function({className:e,...r}){return(0,t.jsx)(a.Dialog.Title,{"data-slot":"sheet-title",className:(0,s.cn)("font-heading text-base font-medium text-foreground",e),...r})}],980376);var d=e.i(514798);let o=(0,d.createServerReference)("400b035a548c21f1af0a4269dedff1a9ccdf4126f5",d.callServer,void 0,d.findSourceMapURL,"getTaskOverview");e.s(["getTaskOverview",0,o],828257)},605005,e=>{"use strict";var t=e.i(289721),a=e.i(965652),s=e.i(980376),r=e.i(759684),i=e.i(487486),l=e.i(519455),n=e.i(533499),d=e.i(170120),o=e.i(828257),c=e.i(813984),u=e.i(744798),p=e.i(685149),m=e.i(606393),x=e.i(875840),h=e.i(245697),g=e.i(12659);function f({added:e,removed:a}){let{t:s}=(0,n.useI18n)();return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-gray-500",children:[(0,t.jsx)("span",{children:s("diff.filesChanged",{count:String(e+a)})}),e>0&&(0,t.jsxs)("span",{className:"text-green-500",children:["+",e]}),a>0&&(0,t.jsxs)("span",{className:"text-red-500",children:["-",a]})]})}var b=e.i(360112);e.s(["TaskOverviewDrawer",0,function({open:e,onOpenChange:y,taskId:v}){let{t:j}=(0,n.useI18n)(),[w,k]=(0,a.useState)(null),[N,D]=(0,a.useTransition)(),[C,S]=(0,a.useState)(!1),[T,L]=(0,a.useState)([]);(0,a.useEffect)(()=>{v&&e?D(async()=>{let e=await (0,o.getTaskOverview)(v);e&&(k(e),e.project?.workspaceId&&(0,c.getLabelsForWorkspace)(e.project.workspaceId).then(e=>{L(e.map(e=>({id:e.id,name:e.name,color:e.color,isBuiltin:e.isBuiltin})))}).catch(()=>L([])))}):k(null)},[v,e]);let O=w?p.BOARD_COLUMNS.find(e=>e.id===w.status):null,I=w?p.PRIORITY_CONFIG[w.priority]:null,R=w?.executions?.[0]??null,M=(()=>{let e=R?.gitStats;if(!e)return null;try{let t=JSON.parse(e);return{added:t.insertions??0,removed:t.deletions??0}}catch{return null}})(),E=async e=>{if(w?.project)try{await (0,d.createTask)({...e,projectId:w.project.id}),b.toast.success(j("taskDrawer.duplicateSuccess")),S(!1),y(!1)}catch{b.toast.error(j("taskDrawer.duplicateFailed"))}};return(0,t.jsxs)(s.Sheet,{open:e,onOpenChange:y,children:[(0,t.jsxs)(s.SheetContent,{side:"right",className:"w-[380px] sm:max-w-[380px] p-0",children:[(0,t.jsxs)(s.SheetHeader,{className:"px-4 pt-4 pb-3 border-b border-border",children:[(0,t.jsx)(s.SheetTitle,{className:"text-base font-semibold leading-tight pr-8",children:w?.title??""}),(0,t.jsx)(s.SheetDescription,{className:"sr-only",children:j("taskDrawer.title")}),w&&(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[O&&(0,t.jsxs)(i.Badge,{variant:"secondary",className:"text-xs",children:[(0,t.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-1.5 ${O.color}`}),O.label]}),I&&(0,t.jsx)(i.Badge,{variant:"secondary",className:`text-xs ${I.color}`,children:I.label})]})]}),(0,t.jsx)(r.ScrollArea,{className:"flex-1 h-[calc(100%-80px)]",children:N&&!w?(0,t.jsx)("div",{className:"flex items-center justify-center h-32 text-sm text-muted-foreground",children:j("assets.loading")}):w?(0,t.jsxs)("div",{className:"p-4 space-y-4",children:[(0,t.jsxs)("section",{children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:j("taskDrawer.description")}),(0,t.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:w.description||j("taskDrawer.noDescription")})]}),w.labels.length>0&&(0,t.jsxs)("section",{children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:j("taskDrawer.labels")}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:w.labels.map(e=>(0,t.jsx)(i.Badge,{variant:"secondary",className:"text-xs",style:{backgroundColor:`${e.label.color}20`,color:e.label.color,borderColor:`${e.label.color}40`},children:e.label.name},e.label.id))})]}),(0,t.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(m.Calendar,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:j("taskDrawer.createdAt")}),(0,t.jsx)("span",{className:"text-foreground",children:new Date(w.createdAt).toLocaleDateString()})]}),(0,t.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(h.Package,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:j("taskDrawer.resources")}),(0,t.jsx)("span",{className:"text-foreground",children:w._count.assets})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:j("taskDrawer.fileChanges")}),M?(0,t.jsx)(f,{added:M.added,removed:M.removed}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:j("taskDrawer.noFileChanges")})]}),(0,t.jsxs)("section",{children:[(0,t.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,t.jsx)(g.PlayCircle,{className:"h-3.5 w-3.5"}),j("taskDrawer.lastExecution")]}),R?(0,t.jsxs)("div",{className:"rounded-md border border-border p-2.5 text-sm",children:[(0,t.jsx)(i.Badge,{variant:"secondary",className:"text-xs mb-1.5",children:R.status}),R.summary&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-4",children:R.summary.slice(0,200)})]}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:j("taskDrawer.noExecution")})]}),(0,t.jsx)("section",{children:(0,t.jsxs)(l.Button,{variant:"default",className:"w-full",onClick:()=>{w&&S(!0)},disabled:!w,children:[(0,t.jsx)(x.Copy,{className:"h-4 w-4"}),j("taskDrawer.duplicate")]})})]}):null})]}),w?.project&&(0,t.jsx)(u.CreateTaskDialog,{open:C,onOpenChange:S,onSubmit:E,labels:T,projectType:w.project.type,projectLocalPath:w.project.localPath,prefillFromTask:{title:w.title,description:w.description,priority:w.priority,subPath:w.subPath,labelIds:w.labels.map(e=>e.label.id),baseBranch:w.baseBranch}})]})}],605005)},340873,e=>{"use strict";let t=(0,e.i(572989).default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);e.s(["GitCommitHorizontal",0,t],340873)},960518,e=>{"use strict";let t=(0,e.i(572989).default)("git-compare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);e.s(["GitCompare",0,t],960518)},707631,(e,t,a)=>{t.exports=e=>{if(!e||"string"!=typeof e||e.match(/^\s+$/))return[];let t=e.split(`
2
+ `);if(0===t.length)return[];let a=[],s=null,r=null,l=0,d=0,o=null,c=e=>{let[t,r]=i(e)??[];s={chunks:[],deletions:0,additions:0,from:t,to:r},a.push(s)},u=()=>{(!s||s.chunks.length)&&c()},p=e=>{if(!r)return;let[t]=r.changes.slice(-1);r.changes.push({type:t.type,[t.type]:!0,ln1:t.ln1,ln2:t.ln2,ln:t.ln,content:e})},m=[[/^diff\s/,c],[/^new file mode (\d+)$/,(e,t)=>{u(),s.new=!0,s.newMode=t[1],s.from="/dev/null"}],[/^deleted file mode (\d+)$/,(e,t)=>{u(),s.deleted=!0,s.oldMode=t[1],s.to="/dev/null"}],[/^old mode (\d+)$/,(e,t)=>{u(),s.oldMode=t[1]}],[/^new mode (\d+)$/,(e,t)=>{u(),s.newMode=t[1]}],[/^index\s[\da-zA-Z]+\.\.[\da-zA-Z]+(\s(\d+))?$/,(e,t)=>{u(),s.index=e.split(" ").slice(1),t[1]&&(s.oldMode=s.newMode=t[1].trim())}],[/^---\s/,e=>{u(),s.from=n(e)}],[/^\+\+\+\s/,e=>{u(),s.to=n(e)}],[/^@@\s+-(\d+),?(\d+)?\s+\+(\d+),?(\d+)?\s@@/,(e,t)=>{s||c(e);let[a,i,n,u]=t.slice(1);l=+a,d=+n,r={content:e,changes:[],oldStart:+a,oldLines:+(i||1),newStart:+n,newLines:+(u||1)},o={oldLines:+(i||1),newLines:+(u||1)},s.chunks.push(r)}],[/^\$/,p]],x=[[/^\$/,p],[/^-/,e=>{r&&(r.changes.push({type:"del",del:!0,ln:l++,content:e}),s.deletions++,o.oldLines--)}],[/^\+/,e=>{r&&(r.changes.push({type:"add",add:!0,ln:d++,content:e}),s.additions++,o.newLines--)}],[/^\s*/,e=>{r?.changes.push({type:"normal",normal:!0,ln1:l++,ln2:d++,content:e}),o.oldLines--,o.newLines--}]],h=e=>{o?(e=>{for(let[t,a]of x){let s=e.match(t);if(s){a(e,s);break}}0===o.oldLines&&0===o.newLines&&(o=null)})(e):(e=>{for(let[t,a]of m){let s=e.match(t);if(s){a(e,s);break}}})(e)};for(let e of t)h(e);return a};let s=/(a|i|w|c|o|1|2)\/.*(?=["']? ["']?(b|i|w|c|o|1|2)\/)|(b|i|w|c|o|1|2)\/.*$/g,r=/^(a|b|i|w|c|o|1|2)\//,i=e=>e?.match(s)?.map(e=>e.replace(r,"").replace(/("|')$/,"")),l=/^\\?['"]|\\?['"]$/g,n=e=>{let t=d(e,"-+").trim();return(t=c(t)).replace(l,"").replace(r,"")},d=(e,t)=>{if(e=p(e),!t&&String.prototype.trimLeft)return e.trimLeft();let a=u(t);return e.replace(RegExp(`^${a}+`),"")},o=/\t.*|\d{4}-\d\d-\d\d\s\d\d:\d\d:\d\d(.\d+)?\s(\+|-)\d\d\d\d/,c=e=>{let t=o.exec(e);return t&&(e=e.substring(0,t.index).trim()),e},u=e=>null==e?"\\s":e instanceof RegExp?e.source:`[${p(e).replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}]`,p=e=>`${e??""}`},196199,e=>{"use strict";var t=e.i(707631);function a(e){return e.replace(/\r\n/g,"\n")}e.s(["normalizeLF",0,a,"parseUnifiedDiff",0,function(e){return(0,t.default)(a(e))}])}]);