tower-studio 0.2.28 → 0.2.29

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 (248) 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 +2 -2
  12. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +25 -25
  13. package/.next/standalone/.next/server/app/_not-found/page.js +4 -3
  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/api/browse-fs/route.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +2 -1
  19. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +1 -1
  21. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/internal/assistant/route.js +2 -1
  23. package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +3 -2
  25. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js +3 -2
  27. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js +3 -2
  31. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js +3 -2
  33. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +4 -3
  35. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +2 -2
  38. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +67 -67
  39. package/.next/standalone/.next/server/app/missions/page.js +4 -3
  40. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +2 -2
  43. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +25 -25
  44. package/.next/standalone/.next/server/app/onboarding/page.js +4 -3
  45. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +2 -2
  48. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +25 -25
  49. package/.next/standalone/.next/server/app/page.js +4 -3
  50. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +2 -2
  53. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +43 -43
  54. package/.next/standalone/.next/server/app/settings/page.js +5 -4
  55. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +2 -2
  58. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +86 -86
  59. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +4 -3
  60. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +2 -2
  63. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +78 -78
  64. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +5 -4
  65. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +2 -2
  68. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +55 -55
  69. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +4 -3
  70. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +2 -2
  73. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +59 -59
  74. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +5 -4
  75. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +2 -2
  78. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +25 -25
  79. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +4 -3
  80. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +2 -2
  83. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +66 -66
  84. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +3 -2
  85. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +3 -3
  88. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +76 -76
  89. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +6 -5
  90. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +2 -2
  93. package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +45 -45
  94. package/.next/standalone/.next/server/app/workspaces/page.js +4 -3
  95. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0eh8dj_.js +5 -5
  98. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +2 -2
  99. package/.next/standalone/.next/server/chunks/[externals]__0k7u3dx._.js +3 -0
  100. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.a1443._.js +3 -0
  101. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.z97nx._.js +4 -0
  102. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03nvcdl._.js +3 -0
  103. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ul.hbv._.js → [root-of-the-server]__0541-er._.js} +2 -2
  104. package/.next/standalone/.next/server/chunks/[root-of-the-server]__062mzio._.js +4 -0
  105. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09sw_a5._.js +1 -1
  106. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bx47rj._.js +4 -0
  107. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qif839._.js +1 -1
  108. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qijr4h._.js +3 -0
  109. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rc0ntp._.js +3 -0
  110. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0v5.ht~._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xelcb1._.js +4 -0
  112. package/.next/standalone/.next/server/chunks/src_0bkvm8c._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/src_lib_02llcit._.js +3 -0
  114. package/.next/standalone/.next/server/chunks/src_lib_0aowbzy._.js +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04ze9p8._.js +47 -0
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0c7x0o9._.js +3 -0
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cv7yj9._.js +3 -0
  119. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e82_jw._.js +3 -0
  120. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g_4qvl._.js +3 -0
  121. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0jx9k3y._.js → [root-of-the-server]__0ggfem6._.js} +2 -2
  122. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ihwpkg._.js +1 -1
  123. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jymb~t._.js +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0wzbc5p._.js → [root-of-the-server]__0m.uq9z._.js} +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qomv-y._.js +3 -0
  126. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0sk.itb._.js +3 -0
  127. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0v7p~3.._.js +3 -0
  128. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wjuu0z._.js +3 -0
  129. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y.s5ax._.js +3 -0
  130. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z7je5_._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~bt1fr._.js +3 -0
  132. package/.next/standalone/.next/server/chunks/ssr/_01-sgr0._.js +4 -0
  133. package/.next/standalone/.next/server/chunks/ssr/_012ww1b._.js +3 -0
  134. package/.next/standalone/.next/server/chunks/ssr/_04y11oe._.js +3 -0
  135. package/.next/standalone/.next/server/chunks/ssr/_068g~hf._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/ssr/_070t_mh._.js +2 -2
  137. package/.next/standalone/.next/server/chunks/ssr/_0a0aq2i._.js +3 -0
  138. package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/_0jg.s-g._.js +1 -1
  140. package/.next/standalone/.next/server/chunks/ssr/_0lhvl1i._.js +3 -0
  141. package/.next/standalone/.next/server/chunks/ssr/_0me6z_3._.js +3 -0
  142. package/.next/standalone/.next/server/chunks/ssr/{_09572e6._.js → _0ogp-c1._.js} +3 -3
  143. package/.next/standalone/.next/server/chunks/ssr/_0q2tjdv._.js +7 -0
  144. package/.next/standalone/.next/server/chunks/ssr/{_0nmz1-7._.js → _0ql3kw8._.js} +3 -3
  145. package/.next/standalone/.next/server/chunks/ssr/_0qxrl.t._.js +3 -0
  146. package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/{_07jj8ci._.js → _0rikvu5._.js} +2 -2
  148. package/.next/standalone/.next/server/chunks/ssr/_0rm18by._.js +3 -0
  149. package/.next/standalone/.next/server/chunks/ssr/{_0uw7ybd._.js → _0w9hqi-._.js} +2 -2
  150. package/.next/standalone/.next/server/chunks/ssr/_0wini_1._.js +3 -0
  151. package/.next/standalone/.next/server/chunks/ssr/{_0tzo4ru._.js → _0ypra_h._.js} +2 -2
  152. package/.next/standalone/.next/server/chunks/ssr/_0zjukoh._.js +3 -0
  153. package/.next/standalone/.next/server/chunks/ssr/{_0o33bts._.js → _10i~kx3._.js} +2 -2
  154. package/.next/standalone/.next/server/chunks/ssr/_10x572b._.js +3 -0
  155. package/.next/standalone/.next/server/chunks/ssr/{_0kw.n0e._.js → _122obq1._.js} +2 -2
  156. package/.next/standalone/.next/server/chunks/ssr/src_075s.rk._.js +1 -1
  157. package/.next/standalone/.next/server/chunks/ssr/src_0djxlqx._.js +1 -1
  158. package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +1 -1
  159. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  161. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  162. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  163. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  164. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  165. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  166. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  167. package/.next/standalone/.next/server/chunks/ssr/src_lib_0l9igqj._.js +3 -0
  168. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  169. package/.next/standalone/.next/server/pages/500.html +1 -1
  170. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/server-reference-manifest.json +228 -228
  172. package/.next/standalone/.next/static/chunks/00qurnl9erkgb.js +1 -0
  173. package/.next/standalone/.next/static/chunks/{00jj6_6k-he4j.js → 02__e-asq9zon.js} +1 -1
  174. package/.next/standalone/.next/static/chunks/{01-_-lg8ab6d8.js → 02f8lqfqcsvo3.js} +1 -1
  175. package/.next/standalone/.next/static/chunks/{0t48-x60rutdz.js → 02qa2vs~vqm-y.js} +1 -1
  176. package/.next/standalone/.next/static/chunks/05p5m6w09u.zq.js +1 -0
  177. package/.next/standalone/.next/static/chunks/08kub70y9uw4q.js +2 -0
  178. package/.next/standalone/.next/static/chunks/{0~2l.ii03wnka.js → 08o-03rbtt-9_.js} +1 -1
  179. package/.next/standalone/.next/static/chunks/092wf~n14ok0h.js +1 -0
  180. package/.next/standalone/.next/static/chunks/0_nvyx4n5udqj.js +1 -0
  181. package/.next/standalone/.next/static/chunks/{12xbq.i5.4um4.js → 0avgpwv8_gf7z.js} +1 -1
  182. package/.next/standalone/.next/static/chunks/{0xvmuush8uk25.js → 0b1lz8_b120x8.js} +2 -2
  183. package/.next/standalone/.next/static/chunks/0fvpv9go6.7bi.js +1 -0
  184. package/.next/standalone/.next/static/chunks/{0zgmxgp3uz49i.js → 0idlcmve-t2ib.js} +1 -1
  185. package/.next/standalone/.next/static/chunks/{0jo4hj8tcofrj.js → 0j24n8~mpnczp.js} +1 -1
  186. package/.next/standalone/.next/static/chunks/{0p.m23h3x7s7h.js → 0kb37luu6e-4c.js} +1 -1
  187. package/.next/standalone/.next/static/chunks/{0mil3f0b5pe7b.js → 0kdvltfdet5rq.js} +1 -1
  188. package/.next/standalone/.next/static/chunks/0mtmre6ztneut.js +1 -0
  189. package/.next/standalone/.next/static/chunks/{0cmm~17o2ncmw.js → 0ndn0hb3rejar.js} +1 -1
  190. package/.next/standalone/.next/static/chunks/{04iae2dax3a4_.css → 0nf6hn910tqeq.css} +1 -1
  191. package/.next/standalone/.next/static/chunks/{0bcwih7v8m2h1.js → 0nm1ux1qybznc.js} +1 -1
  192. package/.next/standalone/.next/static/chunks/{0upijdfop-ges.js → 0qeyijgwevvt1.js} +2 -2
  193. package/.next/standalone/.next/static/chunks/{06lipndakw1ic.js → 0sa60qn.3cb0c.js} +2 -2
  194. package/.next/standalone/.next/static/chunks/0wa.h9jc7z7v5.js +1 -0
  195. package/.next/standalone/.next/static/chunks/{0qdttkj5zf6ju.js → 10k89w233i28z.js} +1 -1
  196. package/.next/standalone/.next/static/chunks/{02eo0k4womus9.js → 11c77onw906yw.js} +1 -1
  197. package/.next/standalone/.next/static/chunks/{0dbhk-h~9g4q2.js → 11lcq.oneb80-.js} +1 -1
  198. package/.next/standalone/.next/static/chunks/{00dktb_jz1pai.js → 12bsh7fw8bg77.js} +1 -1
  199. package/.next/standalone/.next/static/chunks/13td.z.kgq7~4.js +1 -0
  200. package/.next/standalone/.next/static/chunks/{078~heh-_w9zu.js → 15mle~71jj5qd.js} +1 -1
  201. package/.next/standalone/package.json +1 -1
  202. package/dist/mcp-server.cjs +75 -2
  203. package/package.json +1 -1
  204. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09p152b._.js +0 -3
  205. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b-ib~7._.js +0 -3
  206. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gmwjkc._.js +0 -3
  207. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nggjno._.js +0 -4
  208. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oe.86i._.js +0 -4
  209. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qn.178._.js +0 -4
  210. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0r17py1._.js +0 -3
  211. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11j15wy._.js +0 -4
  212. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12brxjg._.js +0 -3
  213. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02-6df-._.js +0 -47
  214. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03e009u._.js +0 -47
  215. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05e0gxk._.js +0 -3
  216. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__080kiy9._.js +0 -3
  217. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e_-mj-._.js +0 -47
  218. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fzkdjl._.js +0 -47
  219. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pu-v0l._.js +0 -47
  220. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0um1ugs._.js +0 -47
  221. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11zjs~k._.js +0 -3
  222. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__134_xv.._.js +0 -3
  223. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13vgkq5._.js +0 -47
  224. package/.next/standalone/.next/server/chunks/ssr/_0-n9dhy._.js +0 -3
  225. package/.next/standalone/.next/server/chunks/ssr/_06qyml0._.js +0 -3
  226. package/.next/standalone/.next/server/chunks/ssr/_08z-g~5._.js +0 -47
  227. package/.next/standalone/.next/server/chunks/ssr/_0_vjay8._.js +0 -47
  228. package/.next/standalone/.next/server/chunks/ssr/_0_xd482._.js +0 -7
  229. package/.next/standalone/.next/server/chunks/ssr/_0dg.i22._.js +0 -4
  230. package/.next/standalone/.next/server/chunks/ssr/_0dgb5wq._.js +0 -3
  231. package/.next/standalone/.next/server/chunks/ssr/_0r6gweb._.js +0 -47
  232. package/.next/standalone/.next/server/chunks/ssr/_0rpevwe._.js +0 -3
  233. package/.next/standalone/.next/server/chunks/ssr/_0rt8jf_._.js +0 -47
  234. package/.next/standalone/.next/server/chunks/ssr/_0uuzh5m._.js +0 -47
  235. package/.next/standalone/.next/server/chunks/ssr/_0zjgr-h._.js +0 -3
  236. package/.next/standalone/.next/server/chunks/ssr/_0~aon4t._.js +0 -47
  237. package/.next/standalone/.next/static/chunks/05lky664ou92k.js +0 -1
  238. package/.next/standalone/.next/static/chunks/09901.bm54e~l.js +0 -1
  239. package/.next/standalone/.next/static/chunks/09o2-vr2.n2-8.js +0 -1
  240. package/.next/standalone/.next/static/chunks/0bgul1p_3tagi.js +0 -2
  241. package/.next/standalone/.next/static/chunks/0ctiyljlop~~w.js +0 -1
  242. package/.next/standalone/.next/static/chunks/0svolan4tl..v.js +0 -1
  243. package/.next/standalone/.next/static/chunks/0vf_uco-lm6~o.js +0 -1
  244. package/.next/standalone/.next/static/chunks/0z3tf8m36xu.6.js +0 -1
  245. package/.next/standalone/.next/static/chunks/14oitizikzgyx.js +0 -1
  246. /package/.next/standalone/.next/static/{zK4nMkhC4teS3dDlHoM6k → 1ZaC3q-jCTUM28yBO4rcb}/_buildManifest.js +0 -0
  247. /package/.next/standalone/.next/static/{zK4nMkhC4teS3dDlHoM6k → 1ZaC3q-jCTUM28yBO4rcb}/_clientMiddlewareManifest.js +0 -0
  248. /package/.next/standalone/.next/static/{zK4nMkhC4teS3dDlHoM6k → 1ZaC3q-jCTUM28yBO4rcb}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
- module.exports=[487373,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(378322),f=a.i(855806),g=a.i(630048);let h=["terminal","summary","dreaming","analysis","assistant"];async function i(){return c.db.aiCapabilityConfig.findMany({orderBy:{slot:"asc"}})}async function j(a,b){if(!h.includes(a))throw Error(`无效的插槽: ${a}`);if(!e.providerRegistry.get(b.provider))throw Error(`未知的 Provider: ${b.provider}`);if("terminal"===a&&"cli"!==b.mode)throw Error("终端执行只支持 CLI 模式");if(!await (0,f.isProviderConnected)(b.provider))throw Error(`Provider "${b.provider}" 未连接或集成未注入完整 — 请到 Settings → Test Connection 测试通过后再选`);await c.db.aiCapabilityConfig.upsert({where:{slot:a},create:{slot:a,provider:b.provider,mode:b.mode,model:b.model??null},update:{provider:b.provider,mode:b.mode,model:b.model??null}}),(0,d.revalidatePath)("/settings")}async function k(){return e.providerRegistry.getAvailableProviders()}(0,g.ensureServerEntryExports)([i,j,k]),(0,b.registerServerReference)(i,"0076b22759e03a4f2a96cd5519bb3a9549eec81572",null),(0,b.registerServerReference)(j,"60a157a1a9ca496cb6ffa2c24e71ffbfe64a76a553",null),(0,b.registerServerReference)(k,"00686a5266a4e070d4b9711c6991cf6926086b2b52",null),a.s(["getAvailableProviders",0,k])},950071,a=>{"use strict";var b=a.i(750227),c=a.i(902157),d=a.i(660526),e=a.i(744992);let f=".lock",g=/^tower-(backup|auto)-\d{8}-\d{6}\.tar\.gz$/;async function h(a,d,f,g){let h,i,j,k,l=`${g?"tower-auto":"tower-backup"}-${(h=new Date,i=a=>String(a).padStart(2,"0"),j=`${h.getFullYear()}${i(h.getMonth()+1)}${i(h.getDate())}`,k=`${i(h.getHours())}${i(h.getMinutes())}${i(h.getSeconds())}`,`${j}-${k}`)}.tar.gz`,m=(0,b.join)(d,l),n=(0,b.join)(a,"metadata.json");(0,c.writeFileSync)(n,JSON.stringify(f,null,2));try{let d=["metadata.json"];(0,c.existsSync)((0,b.join)(a,"database","tower.db"))&&d.push((0,b.join)("database","tower.db")),(0,c.existsSync)((0,b.join)(a,"storage","assets"))&&d.push((0,b.join)("storage","assets")),(0,c.existsSync)((0,b.join)(a,"assistant"))&&d.push("assistant"),(0,c.existsSync)((0,b.join)(a,"logs"))&&d.push("logs"),await e.create({gzip:!0,file:m,cwd:a},d);let h=(0,c.statSync)(m);return{filename:l,size:h.size,createdAt:f.createdAt,autoBackup:g,label:f.label??"",stats:f.stats,preview:f.preview}}catch(a){try{(0,c.unlinkSync)(m)}catch{}throw a}finally{try{(0,c.unlinkSync)(n)}catch{}}}async function i(a){let d=(0,b.join)((0,b.dirname)(a),`_meta_tmp_${Date.now()}`);try{(0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>"metadata.json"===a});let f=(0,b.join)(d,"metadata.json");if(!(0,c.existsSync)(f))return null;return JSON.parse((0,c.readFileSync)(f,"utf-8"))}catch{return null}finally{(0,c.rmSync)(d,{recursive:!0,force:!0})}}async function j(a){if(!(0,c.existsSync)(a))return[];let d=(0,c.readdirSync)(a).filter(a=>g.test(a)).sort().reverse(),e=[];for(let f of d){let d=(0,b.join)(a,f),g=(0,c.statSync)(d),h=await i(d);e.push({filename:f,size:g.size,createdAt:h?.createdAt??g.mtime.toISOString(),autoBackup:h?.autoBackup??f.startsWith("tower-auto"),label:h?.label??"",stats:h?.stats??{workspaces:0,projects:0,tasks:0},preview:h?.preview??[]})}return e}async function k(a,d){if((0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>!((0,b.isAbsolute)(a)||a.includes(".."))}),!(0,c.existsSync)((0,b.join)(d,"database","tower.db")))throw Error("Invalid archive: missing database/tower.db")}let l=["database",(0,b.join)("storage","assets"),"assistant","logs"];a.s(["acquireLock",0,function(a){let d=(0,b.join)(a,f);if((0,c.existsSync)(d)){let a=parseInt((0,c.readFileSync)(d,"utf-8").trim(),10);try{throw process.kill(a,0),Error("Another backup operation is in progress")}catch(a){if(a instanceof Error&&a.message.includes("Another backup"))throw a}}(0,c.writeFileSync)(d,String(process.pid))},"cleanupTempDirs",0,function(a){for(let d of["_restore_tmp","_old_tmp"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}},"createArchive",0,h,"deleteWalFiles",0,function(a){let d=(0,b.join)(a,"database");for(let a of["-wal","-shm"]){let e=(0,b.join)(d,`tower.db${a}`);try{(0,c.unlinkSync)(e)}catch{}}},"extractArchive",0,k,"listArchives",0,j,"releaseLock",0,function(a){let d=(0,b.join)(a,f);try{(0,c.unlinkSync)(d)}catch{}},"swapDirs",0,function(a,d){let e=(0,b.join)(a,"_old_tmp");(0,c.mkdirSync)(e,{recursive:!0});try{for(let d of l){let f=(0,b.join)(a,d),g=(0,b.join)(e,d);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(e,d)),{recursive:!0}),(0,c.renameSync)(f,g))}for(let e of l){let f=(0,b.join)(d,e),g=(0,b.join)(a,e);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(a,e)),{recursive:!0}),(0,c.renameSync)(f,g))}(0,c.rmSync)(e,{recursive:!0,force:!0})}catch(d){for(let d of l){let f=(0,b.join)(e,d),g=(0,b.join)(a,d);if((0,c.existsSync)(f)&&!(0,c.existsSync)(g))try{(0,c.renameSync)(f,g)}catch{}}throw(0,c.rmSync)(e,{recursive:!0,force:!0}),d}},"validateBackupDir",0,function(a){if(!(0,b.isAbsolute)(a))throw Error("Backup directory must be an absolute path");let c=(0,d.homedir)(),e=(0,b.relative)(c,a);if(e.startsWith("..")||(0,b.isAbsolute)(e))throw Error("Backup directory must be within your home directory")},"validateFilename",0,function(a){if(!g.test(a))throw Error(`Invalid backup filename: ${a}`)},"wipeTowerData",0,function(a){for(let d of["database",(0,b.join)("storage","assets"),"assistant","logs"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}}])},712072,(a,b,c)=>{b.exports={name:"tower-studio",version:"0.2.28",description:"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",bin:{tower:"bin/tower.mjs"},files:["bin/",".next/standalone/","prisma/schema.prisma","prisma/init-fts.ts","prisma/pre-migration.sql","scripts/init-db.ts","scripts/generate-prisma-client.js","scripts/link-prisma.js","scripts/fix-native-permissions.js","scripts/post-install-banner.js","scripts/prune-standalone-natives.js","scripts/migrate-data.ts","scripts/post-tool-hook.js","scripts/session-start-hook.js","scripts/stop-hook.js","dist/mcp-server.cjs","skills/","next.config.ts","tsconfig.json"],scripts:{predev:"node scripts/ensure-dev-db.js && pnpm mcp:build",dev:"next dev --webpack -p 9022",build:"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js",release:"pnpm build && npm pack","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish",start:"next start",lint:"eslint","db:generate":"prisma generate","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","db:studio":"prisma studio","db:init":"tsx scripts/init-db.ts","db:init-fts":"tsx prisma/init-fts.ts",test:"vitest","test:run":"vitest run","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test",changelog:"conventional-changelog -p angular -i CHANGELOG.md -s",mcp:"node dist/mcp-server.cjs","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","mcp:dev":"tsx src/mcp/index.ts",postinstall:"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js"},pnpm:{onlyBuiltDependencies:["@prisma/engines","esbuild","node-pty","prisma"]},dependencies:{"@modelcontextprotocol/sdk":"^1.28.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","node-pty":"^1.1.0",prisma:"^6.19.2",tsx:"^4.21.0",ws:"^8.20.0"},devDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.114","@base-ui/react":"^1.3.0","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@iconify/react":"^6.0.2","@monaco-editor/react":"4.8.0-rc.3","@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4","@tailwindcss/typography":"^0.5.19","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19","@types/shell-quote":"^1.7.5","@types/tar":"^7.0.87","@types/ws":"^8.18.1","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","@xterm/addon-attach":"^0.12.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/addon-webgl":"^0.19.0","@xterm/xterm":"^6.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1",cmdk:"^1.1.1","conventional-changelog-cli":"^5.0.0",eslint:"^9","eslint-config-next":"16.2.1","fuse.js":"^7.3.0",ignore:"^7.0.5",jsdom:"^29.0.1","lucide-react":"^1.6.0","monaco-editor":"^0.55.1",next:"16.2.1","next-themes":"^0.4.6","parse-diff":"^0.12.0",react:"19.2.4","react-dom":"19.2.4","react-resizable-panels":"^2.1.9","react-reverse-portal":"^2.3.0",shadcn:"^4.1.0","shell-quote":"^1.8.3","simple-git":"^3.36.0",sonner:"^2.0.7",streamdown:"^2.5.0","tailwind-merge":"^3.5.0",tailwindcss:"^4",tar:"^7.5.13","tw-animate-css":"^1.4.0",typescript:"^5",vitest:"^4.1.1",zod:"^4.3.6",zustand:"^5.0.12"}}},537944,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(319997),g=a.i(980999),h=a.i(950071),i=a.i(750227),j=a.i(902157),k=a.i(188139),l=a.i(630048),m=b([g]);async function n(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function o(b,c){let[d,f,g]=await Promise.all([e.db.workspace.count(),e.db.project.count(),e.db.task.count()]),h=(await e.db.workspace.findMany({take:3,orderBy:{updatedAt:"desc"},select:{name:!0,description:!0,projects:{take:3,select:{name:!0},orderBy:{updatedAt:"desc"}}}})).map(a=>{let b=a.description??"";return{workspace:b?`${b} ${a.name}`:a.name,projects:a.projects.map(a=>a.name)}});return{version:1,createdAt:new Date().toISOString(),towerVersion:function(){try{return a.r(712072).version??"unknown"}catch{return"unknown"}}(),autoBackup:b,label:c||void 0,stats:{workspaces:d,projects:f,tasks:g},preview:h}}async function p(a){let b=await n();(0,h.acquireLock)(b);try{let c=await o(!1,a);return await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)((0,f.getTowerDir)(),b,c,!1)}finally{(0,h.releaseLock)(b)}}async function q(){let a=await n();return(0,h.listArchives)(a)}async function r(a){(0,h.validateFilename)(a);let b=await n(),c=(0,i.join)(b,a);if(!(0,j.existsSync)(c))throw Error("Backup file not found");(0,j.unlinkSync)(c)}async function s(b){(0,h.validateFilename)(b);let c=(0,f.getTowerDir)(),d=await n(),g=(0,i.join)(d,b);if(!(0,j.existsSync)(g))throw Error("Backup file not found");(0,h.acquireLock)(d);let l=(0,i.join)(c,"_restore_tmp");try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await (0,h.extractArchive)(g,l),await e.db.$disconnect(),(0,h.deleteWalFiles)(c),(0,h.swapDirs)(c,l),await (0,e.resetDbConnection)(),await e.db.$executeRawUnsafe(`
1
+ module.exports=[487373,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(378322),f=a.i(855806),g=a.i(630048);let h=["terminal","summary","dreaming","analysis","assistant"];async function i(){return c.db.aiCapabilityConfig.findMany({orderBy:{slot:"asc"}})}async function j(a,b){if(!h.includes(a))throw Error(`无效的插槽: ${a}`);if(!e.providerRegistry.get(b.provider))throw Error(`未知的 Provider: ${b.provider}`);if("terminal"===a&&"cli"!==b.mode)throw Error("终端执行只支持 CLI 模式");if(!await (0,f.isProviderConnected)(b.provider))throw Error(`Provider "${b.provider}" 未连接或集成未注入完整 — 请到 Settings → Test Connection 测试通过后再选`);await c.db.aiCapabilityConfig.upsert({where:{slot:a},create:{slot:a,provider:b.provider,mode:b.mode,model:b.model??null},update:{provider:b.provider,mode:b.mode,model:b.model??null}}),(0,d.revalidatePath)("/settings")}async function k(){return e.providerRegistry.getAvailableProviders()}(0,g.ensureServerEntryExports)([i,j,k]),(0,b.registerServerReference)(i,"00ceeb334a6e95bc16ca84c66f3ad26e3cd74886f3",null),(0,b.registerServerReference)(j,"6046809d32bd6e26edbe89838b0187d1ae918b23db",null),(0,b.registerServerReference)(k,"009aed96f251ecd8a4c838e20ae5349cd3262db6f7",null),a.s(["getAvailableProviders",0,k])},950071,a=>{"use strict";var b=a.i(750227),c=a.i(902157),d=a.i(660526),e=a.i(744992);let f=".lock",g=/^tower-(backup|auto)-\d{8}-\d{6}\.tar\.gz$/;async function h(a,d,f,g){let h,i,j,k,l=`${g?"tower-auto":"tower-backup"}-${(h=new Date,i=a=>String(a).padStart(2,"0"),j=`${h.getFullYear()}${i(h.getMonth()+1)}${i(h.getDate())}`,k=`${i(h.getHours())}${i(h.getMinutes())}${i(h.getSeconds())}`,`${j}-${k}`)}.tar.gz`,m=(0,b.join)(d,l),n=(0,b.join)(a,"metadata.json");(0,c.writeFileSync)(n,JSON.stringify(f,null,2));try{let d=["metadata.json"];(0,c.existsSync)((0,b.join)(a,"database","tower.db"))&&d.push((0,b.join)("database","tower.db")),(0,c.existsSync)((0,b.join)(a,"storage","assets"))&&d.push((0,b.join)("storage","assets")),(0,c.existsSync)((0,b.join)(a,"assistant"))&&d.push("assistant"),(0,c.existsSync)((0,b.join)(a,"logs"))&&d.push("logs"),await e.create({gzip:!0,file:m,cwd:a},d);let h=(0,c.statSync)(m);return{filename:l,size:h.size,createdAt:f.createdAt,autoBackup:g,label:f.label??"",stats:f.stats,preview:f.preview}}catch(a){try{(0,c.unlinkSync)(m)}catch{}throw a}finally{try{(0,c.unlinkSync)(n)}catch{}}}async function i(a){let d=(0,b.join)((0,b.dirname)(a),`_meta_tmp_${Date.now()}`);try{(0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>"metadata.json"===a});let f=(0,b.join)(d,"metadata.json");if(!(0,c.existsSync)(f))return null;return JSON.parse((0,c.readFileSync)(f,"utf-8"))}catch{return null}finally{(0,c.rmSync)(d,{recursive:!0,force:!0})}}async function j(a){if(!(0,c.existsSync)(a))return[];let d=(0,c.readdirSync)(a).filter(a=>g.test(a)).sort().reverse(),e=[];for(let f of d){let d=(0,b.join)(a,f),g=(0,c.statSync)(d),h=await i(d);e.push({filename:f,size:g.size,createdAt:h?.createdAt??g.mtime.toISOString(),autoBackup:h?.autoBackup??f.startsWith("tower-auto"),label:h?.label??"",stats:h?.stats??{workspaces:0,projects:0,tasks:0},preview:h?.preview??[]})}return e}async function k(a,d){if((0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>!((0,b.isAbsolute)(a)||a.includes(".."))}),!(0,c.existsSync)((0,b.join)(d,"database","tower.db")))throw Error("Invalid archive: missing database/tower.db")}let l=["database",(0,b.join)("storage","assets"),"assistant","logs"];a.s(["acquireLock",0,function(a){let d=(0,b.join)(a,f);if((0,c.existsSync)(d)){let a=parseInt((0,c.readFileSync)(d,"utf-8").trim(),10);try{throw process.kill(a,0),Error("Another backup operation is in progress")}catch(a){if(a instanceof Error&&a.message.includes("Another backup"))throw a}}(0,c.writeFileSync)(d,String(process.pid))},"cleanupTempDirs",0,function(a){for(let d of["_restore_tmp","_old_tmp"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}},"createArchive",0,h,"deleteWalFiles",0,function(a){let d=(0,b.join)(a,"database");for(let a of["-wal","-shm"]){let e=(0,b.join)(d,`tower.db${a}`);try{(0,c.unlinkSync)(e)}catch{}}},"extractArchive",0,k,"listArchives",0,j,"releaseLock",0,function(a){let d=(0,b.join)(a,f);try{(0,c.unlinkSync)(d)}catch{}},"swapDirs",0,function(a,d){let e=(0,b.join)(a,"_old_tmp");(0,c.mkdirSync)(e,{recursive:!0});try{for(let d of l){let f=(0,b.join)(a,d),g=(0,b.join)(e,d);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(e,d)),{recursive:!0}),(0,c.renameSync)(f,g))}for(let e of l){let f=(0,b.join)(d,e),g=(0,b.join)(a,e);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(a,e)),{recursive:!0}),(0,c.renameSync)(f,g))}(0,c.rmSync)(e,{recursive:!0,force:!0})}catch(d){for(let d of l){let f=(0,b.join)(e,d),g=(0,b.join)(a,d);if((0,c.existsSync)(f)&&!(0,c.existsSync)(g))try{(0,c.renameSync)(f,g)}catch{}}throw(0,c.rmSync)(e,{recursive:!0,force:!0}),d}},"validateBackupDir",0,function(a){if(!(0,b.isAbsolute)(a))throw Error("Backup directory must be an absolute path");let c=(0,d.homedir)(),e=(0,b.relative)(c,a);if(e.startsWith("..")||(0,b.isAbsolute)(e))throw Error("Backup directory must be within your home directory")},"validateFilename",0,function(a){if(!g.test(a))throw Error(`Invalid backup filename: ${a}`)},"wipeTowerData",0,function(a){for(let d of["database",(0,b.join)("storage","assets"),"assistant","logs"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}}])},712072,(a,b,c)=>{b.exports={name:"tower-studio",version:"0.2.29",description:"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",bin:{tower:"bin/tower.mjs"},files:["bin/",".next/standalone/","prisma/schema.prisma","prisma/init-fts.ts","prisma/pre-migration.sql","scripts/init-db.ts","scripts/generate-prisma-client.js","scripts/link-prisma.js","scripts/fix-native-permissions.js","scripts/post-install-banner.js","scripts/prune-standalone-natives.js","scripts/migrate-data.ts","scripts/post-tool-hook.js","scripts/session-start-hook.js","scripts/stop-hook.js","dist/mcp-server.cjs","skills/","next.config.ts","tsconfig.json"],scripts:{predev:"node scripts/ensure-dev-db.js && pnpm mcp:build",dev:"next dev --webpack -p 9022",build:"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js",release:"pnpm build && npm pack","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish",start:"next start",lint:"eslint","db:generate":"prisma generate","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","db:studio":"prisma studio","db:init":"tsx scripts/init-db.ts","db:init-fts":"tsx prisma/init-fts.ts",test:"vitest","test:run":"vitest run","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test",changelog:"conventional-changelog -p angular -i CHANGELOG.md -s",mcp:"node dist/mcp-server.cjs","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","mcp:dev":"tsx src/mcp/index.ts",postinstall:"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js"},pnpm:{onlyBuiltDependencies:["@prisma/engines","esbuild","node-pty","prisma"]},dependencies:{"@modelcontextprotocol/sdk":"^1.28.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","node-pty":"^1.1.0",prisma:"^6.19.2",tsx:"^4.21.0",ws:"^8.20.0"},devDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.114","@base-ui/react":"^1.3.0","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@iconify/react":"^6.0.2","@monaco-editor/react":"4.8.0-rc.3","@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4","@tailwindcss/typography":"^0.5.19","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19","@types/shell-quote":"^1.7.5","@types/tar":"^7.0.87","@types/ws":"^8.18.1","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","@xterm/addon-attach":"^0.12.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/addon-webgl":"^0.19.0","@xterm/xterm":"^6.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1",cmdk:"^1.1.1","conventional-changelog-cli":"^5.0.0",eslint:"^9","eslint-config-next":"16.2.1","fuse.js":"^7.3.0",ignore:"^7.0.5",jsdom:"^29.0.1","lucide-react":"^1.6.0","monaco-editor":"^0.55.1",next:"16.2.1","next-themes":"^0.4.6","parse-diff":"^0.12.0",react:"19.2.4","react-dom":"19.2.4","react-resizable-panels":"^2.1.9","react-reverse-portal":"^2.3.0",shadcn:"^4.1.0","shell-quote":"^1.8.3","simple-git":"^3.36.0",sonner:"^2.0.7",streamdown:"^2.5.0","tailwind-merge":"^3.5.0",tailwindcss:"^4",tar:"^7.5.13","tw-animate-css":"^1.4.0",typescript:"^5",vitest:"^4.1.1",zod:"^4.3.6",zustand:"^5.0.12"}}},537944,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(319997),g=a.i(980999),h=a.i(950071),i=a.i(750227),j=a.i(902157),k=a.i(188139),l=a.i(630048),m=b([g]);async function n(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function o(b,c){let[d,f,g]=await Promise.all([e.db.workspace.count(),e.db.project.count(),e.db.task.count()]),h=(await e.db.workspace.findMany({take:3,orderBy:{updatedAt:"desc"},select:{name:!0,description:!0,projects:{take:3,select:{name:!0},orderBy:{updatedAt:"desc"}}}})).map(a=>{let b=a.description??"";return{workspace:b?`${b} ${a.name}`:a.name,projects:a.projects.map(a=>a.name)}});return{version:1,createdAt:new Date().toISOString(),towerVersion:function(){try{return a.r(712072).version??"unknown"}catch{return"unknown"}}(),autoBackup:b,label:c||void 0,stats:{workspaces:d,projects:f,tasks:g},preview:h}}async function p(a){let b=await n();(0,h.acquireLock)(b);try{let c=await o(!1,a);return await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)((0,f.getTowerDir)(),b,c,!1)}finally{(0,h.releaseLock)(b)}}async function q(){let a=await n();return(0,h.listArchives)(a)}async function r(a){(0,h.validateFilename)(a);let b=await n(),c=(0,i.join)(b,a);if(!(0,j.existsSync)(c))throw Error("Backup file not found");(0,j.unlinkSync)(c)}async function s(b){(0,h.validateFilename)(b);let c=(0,f.getTowerDir)(),d=await n(),g=(0,i.join)(d,b);if(!(0,j.existsSync)(g))throw Error("Backup file not found");(0,h.acquireLock)(d);let l=(0,i.join)(c,"_restore_tmp");try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await (0,h.extractArchive)(g,l),await e.db.$disconnect(),(0,h.deleteWalFiles)(c),(0,h.swapDirs)(c,l),await (0,e.resetDbConnection)(),await e.db.$executeRawUnsafe(`
2
2
  CREATE VIRTUAL TABLE IF NOT EXISTS notes_fts
3
3
  USING fts5(note_id UNINDEXED, title, content, tokenize='trigram case_sensitive 0')
4
- `);let{syncNoteToFts:i}=await a.A(195404);for(let a of(await e.db.projectNote.findMany({select:{id:!0,title:!0,content:!0}})))await i(e.db,a);(0,k.revalidatePath)("/")}finally{(0,h.cleanupTempDirs)(c),(0,h.releaseLock)(d)}}async function t(b){if("RESET"!==b)throw Error("Invalid confirmation");let c=(0,f.getTowerDir)(),d=await n();(0,h.acquireLock)(d);try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await e.db.$disconnect(),(0,h.wipeTowerData)(c),await (0,e.resetDbConnection)(),(0,k.revalidatePath)("/")}finally{(0,h.releaseLock)(d)}}async function u(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function v(a){(0,h.validateBackupDir)(a),await (0,g.setConfigValue)("system.backupDir",a)}[g]=m.then?(await m)():m,(0,l.ensureServerEntryExports)([p,q,r,s,t,u,v]),(0,d.registerServerReference)(p,"40bf8bd6b83987c82e27fca108c6d94409e8575ccb",null),(0,d.registerServerReference)(q,"002f1207a63ab3fcaf08ebc2d9812433b7ad6144d3",null),(0,d.registerServerReference)(r,"40ae4d023251665bb1bda8eb8035c99f882db49543",null),(0,d.registerServerReference)(s,"401f7c6a6959c4700ee283b2ad3e2c2dec21f901bf",null),(0,d.registerServerReference)(t,"4062edd88b95d2a616807438a7e08a401248fbb4ba",null),(0,d.registerServerReference)(u,"0072ab0c3ab2a1da1b6017b2f1d55619e452a8d09a",null),(0,d.registerServerReference)(v,"40cfe7f86306a5cbbc1d55a43c261a9bbc916262ec",null),a.s(["createBackup",0,p,"deleteBackupFile",0,r,"getBackupDir",0,u,"listBackupFiles",0,q,"resetSystem",0,t,"restoreBackup",0,s,"setBackupDir",0,v]),c()}catch(a){c(a)}},!1),415673,a=>{"use strict";var b=a.i(815429),c=a.i(902157),d=a.i(750227),e=a.i(75681),f=a.i(761469),g=a.i(319997),h=a.i(630048);async function i(){return{current:(0,g.getStorageDir)(),default:(0,g.getDefaultStorageDir)(),isDefault:null===(0,g.readStoragePointer)()}}let j=e.z.object({newPath:e.z.string().min(1)});async function k(a){let{newPath:b}=j.parse(a),e=d.resolve(b),h=d.resolve((0,g.getStorageDir)()),i=d.resolve((0,g.getDefaultStorageDir)());if(!d.isAbsolute(e))return{ok:!1,error:"请输入绝对路径"};if(e===h)return{ok:!0,moved:0};if(e.startsWith(h+d.sep)||h.startsWith(e+d.sep))return{ok:!1,error:"新路径不能是当前存储目录的父级或子级"};if(c.existsSync(e)){if(!c.statSync(e).isDirectory())return{ok:!1,error:"目标路径已存在且不是目录"};if(c.readdirSync(e).length>0)return{ok:!1,error:"目标目录非空,请选择一个空目录或新目录"}}let k=d.dirname(e);try{c.mkdirSync(e,{recursive:!0}),c.accessSync(e,c.constants.W_OK)}catch{return{ok:!1,error:`无法写入目标目录(检查权限):${k}`}}try{c.existsSync(h)&&(c.cpSync(h,e,{recursive:!0}),c.rmSync(h,{recursive:!0,force:!0}))}catch(a){return{ok:!1,error:`迁移文件失败:${a instanceof Error?a.message:String(a)}`}}let l=0,m=h+d.sep;for(let a of(await f.db.projectAsset.findMany({select:{id:!0,path:!0}})))if(a.path.startsWith(m)){let b=d.join(e,a.path.slice(h.length+1));await f.db.projectAsset.update({where:{id:a.id},data:{path:b}}),l+=1}return(0,g.writeStoragePointer)(e===i?null:e),{ok:!0,moved:l}}(0,h.ensureServerEntryExports)([i,k]),(0,b.registerServerReference)(i,"0094294dfaaa9b4e80fbed102cb415c4758487e3c6",null),(0,b.registerServerReference)(k,"402a6e06b2d7aa9a0d4e9dfa2b98a26edf22d09def",null),a.s(["getStorageLocation",0,i,"setStorageLocation",0,k])},520288,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(925886),a.i(487373);var f=a.i(537944);a.i(415673);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),857434,a=>a.a(async(b,c)=>{try{var d=a.i(520288),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(925886),m=a.i(487373),n=a.i(537944),o=a.i(415673),p=b([d,g,h,n]);[d,g,h,n]=p.then?(await p)():p,a.s(["002f1207a63ab3fcaf08ebc2d9812433b7ad6144d3",()=>n.listBackupFiles,"005f62b3141c9173f83d343e252dbf9b50e20cb2f2",()=>h.getAvailableEditors,"00686a5266a4e070d4b9711c6991cf6926086b2b52",()=>m.getAvailableProviders,"0072ab0c3ab2a1da1b6017b2f1d55619e452a8d09a",()=>n.getBackupDir,"00788d118dda81cdfbbd9c63ec46b3c913896e5851",()=>h.getActualWsPort,"0094294dfaaa9b4e80fbed102cb415c4758487e3c6",()=>o.getStorageLocation,"009ca2f595896f27c6c212eadc72dd771af59b87a2",()=>j.listAllExtensionStatus,"00ba9d55865c9c791b7dbd27ca81d1cab49eacd0e3",()=>h.getAvailableTerminalApps,"00c04618a7b3d6b1ff384e0e2c7502ffcac99c1b8c",()=>k.getOnboardingStatus,"40122d445f0fe947895dd124dd00ae78837c018ef7",()=>f.deleteLabel,"401f49996262664b9610a2f67651b660c4bb774287",()=>j.uninstallExtension,"401f67942597e65afb52626ed2f6de18039c13e90f",()=>l.deletePrompt,"401f7c6a6959c4700ee283b2ad3e2c2dec21f901bf",()=>n.restoreBackup,"4022312a88098747ce9bdfd90dec257a3a599a5e52",()=>l.getPrompts,"402a6e06b2d7aa9a0d4e9dfa2b98a26edf22d09def",()=>o.setStorageLocation,"40332a9939d399608f3939c4125c3ba181eb80af1f",()=>j.installExtension,"40455070bf1efea18955a656364d9d5f6f81405df3",()=>i.checkMigrationSafety,"404c4e3a500d71294eec0282d99cd52ae69ff9f912",()=>f.getLabelsForWorkspace,"404d7c349c3b18efb3cc3551b13bfd248859321070",()=>h.getConfigValues,"4062edd88b95d2a616807438a7e08a401248fbb4ba",()=>n.resetSystem,"4067ec8a4012cb20c10b47fa782eb33cc1e243ca7f",()=>h.resolveGitLocalPath,"40694a8b7e3dfee12c3f14aef6186cf6d60b75b54e",()=>f.createLabel,"4088eabde67d312066d4008553ea3b96df452437e5",()=>e.createProject,"40989042f585e20643fb9c318bec3d90946b3e7bf4",()=>k.setOnboardingProgress,"40a2286e0e371e7281ce4856eccfd991c035cff6ea",()=>j.checkExtension,"40a8ec0dae634486a4220bb902ba8f64623b14ece3",()=>l.createPrompt,"40aae0a5c77ecb29bf299a9b5b7ded7c48fcb15035",()=>e.createWorkspace,"40ae4d023251665bb1bda8eb8035c99f882db49543",()=>n.deleteBackupFile,"40bf8bd6b83987c82e27fca108c6d94409e8575ccb",()=>n.createBackup,"40c4ea0176b204ccd558edddd45e3b0fc6d3937db7",()=>e.deleteWorkspace,"40cfe7f86306a5cbbc1d55a43c261a9bbc916262ec",()=>n.setBackupDir,"40d044aa23e19d5631a2167597c647d03277e0ecef",()=>k.dispatchTaskCompletionEvent,"40ed7bd4658bec28e8fdbdf52207e42489021aaa31",()=>e.reorderWorkspaces,"6002280a30e70e2625dc6d72680a0966a7100f4bb8",()=>l.setDefaultPrompt,"6021aad7fd7a8aa84826e8e1faf18ac3168645e977",()=>i.analyzeProjectDirectory,"602e301b7ed503b4c93c343298db6f2dadb5fe7424",()=>k.setOnboardingExtensions,"6043d0b586d9e951db3acc3fa862dbed9a26fd95c5",()=>k.completeOnboarding,"6074746776a1e1f12272b15edd60cc2c8a5595976a",()=>h.setConfigValue,"6092b8913233665a4edde6a26eb9732889b077331b",()=>h.getConfigValue,"60935d958ee4de4d23f3d6eb2cac58925798a56de0",()=>i.migrateProjectPath,"60937f4babb73504fe0f9d3afe5524a1484843fe40",()=>l.updatePrompt,"60ac6f4bd4d697bdb9a80ee84b6b8681a016324318",()=>e.updateWorkspace,"60e80c193b699ad21f4f33122cfcf5080a02965417",()=>g.globalSearch]),c()}catch(a){c(a)}},!1)];
4
+ `);let{syncNoteToFts:i}=await a.A(195404);for(let a of(await e.db.projectNote.findMany({select:{id:!0,title:!0,content:!0}})))await i(e.db,a);(0,k.revalidatePath)("/")}finally{(0,h.cleanupTempDirs)(c),(0,h.releaseLock)(d)}}async function t(b){if("RESET"!==b)throw Error("Invalid confirmation");let c=(0,f.getTowerDir)(),d=await n();(0,h.acquireLock)(d);try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await e.db.$disconnect(),(0,h.wipeTowerData)(c),await (0,e.resetDbConnection)(),(0,k.revalidatePath)("/")}finally{(0,h.releaseLock)(d)}}async function u(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function v(a){(0,h.validateBackupDir)(a),await (0,g.setConfigValue)("system.backupDir",a)}[g]=m.then?(await m)():m,(0,l.ensureServerEntryExports)([p,q,r,s,t,u,v]),(0,d.registerServerReference)(p,"406712fc42528387ff28f5fad24879773747af7dd1",null),(0,d.registerServerReference)(q,"00987c9d1f1f14c9e55f18520c5da744fc137bb3eb",null),(0,d.registerServerReference)(r,"4001f8b7a82702432fcc069d4e6d7ddfc7a4de99d7",null),(0,d.registerServerReference)(s,"405d056e000ffe0075a686ed7293e0dc849826f582",null),(0,d.registerServerReference)(t,"402dce8e0c42a8c1f4e4ba22c2f5180728e42b8e90",null),(0,d.registerServerReference)(u,"009d4fdcb0e1f249f7e4d969845509f68e23e49118",null),(0,d.registerServerReference)(v,"40b05f885d53865d3bb62dc70c4feb787293227803",null),a.s(["createBackup",0,p,"deleteBackupFile",0,r,"getBackupDir",0,u,"listBackupFiles",0,q,"resetSystem",0,t,"restoreBackup",0,s,"setBackupDir",0,v]),c()}catch(a){c(a)}},!1),415673,a=>{"use strict";var b=a.i(815429),c=a.i(902157),d=a.i(750227),e=a.i(75681),f=a.i(761469),g=a.i(319997),h=a.i(630048);async function i(){return{current:(0,g.getStorageDir)(),default:(0,g.getDefaultStorageDir)(),isDefault:null===(0,g.readStoragePointer)()}}let j=e.z.object({newPath:e.z.string().min(1)});async function k(a){let{newPath:b}=j.parse(a),e=d.resolve(b),h=d.resolve((0,g.getStorageDir)()),i=d.resolve((0,g.getDefaultStorageDir)());if(!d.isAbsolute(e))return{ok:!1,error:"请输入绝对路径"};if(e===h)return{ok:!0,moved:0};if(e.startsWith(h+d.sep)||h.startsWith(e+d.sep))return{ok:!1,error:"新路径不能是当前存储目录的父级或子级"};if(c.existsSync(e)){if(!c.statSync(e).isDirectory())return{ok:!1,error:"目标路径已存在且不是目录"};if(c.readdirSync(e).length>0)return{ok:!1,error:"目标目录非空,请选择一个空目录或新目录"}}let k=d.dirname(e);try{c.mkdirSync(e,{recursive:!0}),c.accessSync(e,c.constants.W_OK)}catch{return{ok:!1,error:`无法写入目标目录(检查权限):${k}`}}try{c.existsSync(h)&&(c.cpSync(h,e,{recursive:!0}),c.rmSync(h,{recursive:!0,force:!0}))}catch(a){return{ok:!1,error:`迁移文件失败:${a instanceof Error?a.message:String(a)}`}}let l=0,m=h+d.sep;for(let a of(await f.db.projectAsset.findMany({select:{id:!0,path:!0}})))if(a.path.startsWith(m)){let b=d.join(e,a.path.slice(h.length+1));await f.db.projectAsset.update({where:{id:a.id},data:{path:b}}),l+=1}return(0,g.writeStoragePointer)(e===i?null:e),{ok:!0,moved:l}}(0,h.ensureServerEntryExports)([i,k]),(0,b.registerServerReference)(i,"00be309b0c60a0e99cd7d2dbff7ad5e2ff0f893784",null),(0,b.registerServerReference)(k,"4067f8a9e4f6c4cb66d3367d4f6dcdf5b7b977da3f",null),a.s(["getStorageLocation",0,i,"setStorageLocation",0,k])},520288,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(925886),a.i(487373);var f=a.i(537944);a.i(415673);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),857434,a=>a.a(async(b,c)=>{try{var d=a.i(520288),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(925886),m=a.i(487373),n=a.i(537944),o=a.i(415673),p=b([d,g,h,n]);[d,g,h,n]=p.then?(await p)():p,a.s(["0018d7fa5215153e44c83ba07512e4a698ff3f9a53",()=>j.listAllExtensionStatus,"0071cadfff1b05af7a8719c529cc27169b730657f9",()=>h.getAvailableTerminalApps,"008f4c4d0335dc961d7674e3a951970d984aef4ad9",()=>h.getActualWsPort,"00987c9d1f1f14c9e55f18520c5da744fc137bb3eb",()=>n.listBackupFiles,"009aed96f251ecd8a4c838e20ae5349cd3262db6f7",()=>m.getAvailableProviders,"009d4fdcb0e1f249f7e4d969845509f68e23e49118",()=>n.getBackupDir,"009ef3927ee211cb1d2b323c46a10eb964ee4977e2",()=>k.getOnboardingStatus,"00a9004eb19386212f18b3603b1108dd67183ed15d",()=>h.getAvailableEditors,"00be309b0c60a0e99cd7d2dbff7ad5e2ff0f893784",()=>o.getStorageLocation,"4001f8b7a82702432fcc069d4e6d7ddfc7a4de99d7",()=>n.deleteBackupFile,"4027d649bfab93f04ccba39fe95ccd74d8113ce76d",()=>f.deleteLabel,"402dce8e0c42a8c1f4e4ba22c2f5180728e42b8e90",()=>n.resetSystem,"40328e98217d41dedbc3cf43112409721265189a26",()=>f.getLabelsForWorkspace,"4043aabb87e62fb084ee69331f92fb33e62825d0ef",()=>e.deleteWorkspace,"4046ad59b904f75f21d9be02ec191f5baef99a893d",()=>j.checkExtension,"4047d68832f5f32fbc78f1fe77b506dc65817de222",()=>h.getConfigValues,"4059e482801deab77de528041fcfc70feb707a0269",()=>e.reorderWorkspaces,"405d056e000ffe0075a686ed7293e0dc849826f582",()=>n.restoreBackup,"406712fc42528387ff28f5fad24879773747af7dd1",()=>n.createBackup,"4067f8a9e4f6c4cb66d3367d4f6dcdf5b7b977da3f",()=>o.setStorageLocation,"406b0c4e3d6ae24df472439ee7bc2d0a6014cc8f88",()=>f.createLabel,"406b8a94d56dcc1cfb88a6eb7fee2c998f13959855",()=>h.resolveGitLocalPath,"4078ca9af0417ab7cc9c37866f513a695022d44f53",()=>k.setOnboardingProgress,"408bb3f4da291df84996bb1c59d8fc84950c7e60e1",()=>k.dispatchTaskCompletionEvent,"4094d00d07ed9d0b8c497b5242711fd7d97273f4d6",()=>i.checkMigrationSafety,"409d36c849216c2b464162150590299e6932919bb5",()=>l.createPrompt,"409fb375685c88043094f56d191a98654274fc57bb",()=>l.deletePrompt,"40b05f885d53865d3bb62dc70c4feb787293227803",()=>n.setBackupDir,"40c469010428b2da3cfd1497f8a8d22ae4b18090f0",()=>e.createProject,"40ca1b10a23c9a2e5f5b69e02497df0388ab52c46f",()=>j.installExtension,"40ddf979db30eee66f41dec26b069c5ee2a7229593",()=>l.getPrompts,"40eb079eed9fd31bae057f60d020ff0a2e66eb4c12",()=>e.createWorkspace,"40f587a6e4a02ec84e0c15ff54334157761fb4034c",()=>j.uninstallExtension,"60005e05e8c052bce26f001657e2b14f8094759172",()=>l.setDefaultPrompt,"602746042688ca53db58bbc7aeaa115be13d117501",()=>l.updatePrompt,"6046d52703515bb230a9b7650e2bca9f0d6db6f5ea",()=>e.updateWorkspace,"604f7933f9827efb095d99cb2ca2ebaa5f2e5e7f7c",()=>g.globalSearch,"6050e4a303e6958c1f8d6044fe3ab7079613ddccdd",()=>h.setConfigValue,"605a1d60036c6bcb4298bc0b2a34da84b302bea553",()=>k.setOnboardingExtensions,"606e49df84da3b15ebf2e09d87a3fd04d82d9beabd",()=>i.analyzeProjectDirectory,"608de8235b7e769e3f561a42fb93d6b218703c1f5b",()=>h.getConfigValue,"60c4a614995207d6d13933acbd69d413cccca56129",()=>i.migrateProjectPath,"60fe7f9fb52efb97c5ceab6e00c9b5654aa2db2d62",()=>k.completeOnboarding]),c()}catch(a){c(a)}},!1)];
5
5
 
6
6
  //# sourceMappingURL=_070t_mh._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[846195,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),861951,a=>a.a(async(b,c)=>{try{var d=a.i(846195),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=b([d,g,h]);[d,g,h]=l.then?(await l)():l,a.s(["0018d7fa5215153e44c83ba07512e4a698ff3f9a53",()=>j.listAllExtensionStatus,"008f4c4d0335dc961d7674e3a951970d984aef4ad9",()=>h.getActualWsPort,"009ef3927ee211cb1d2b323c46a10eb964ee4977e2",()=>k.getOnboardingStatus,"4027d649bfab93f04ccba39fe95ccd74d8113ce76d",()=>f.deleteLabel,"40328e98217d41dedbc3cf43112409721265189a26",()=>f.getLabelsForWorkspace,"4043aabb87e62fb084ee69331f92fb33e62825d0ef",()=>e.deleteWorkspace,"4046ad59b904f75f21d9be02ec191f5baef99a893d",()=>j.checkExtension,"4059e482801deab77de528041fcfc70feb707a0269",()=>e.reorderWorkspaces,"406b0c4e3d6ae24df472439ee7bc2d0a6014cc8f88",()=>f.createLabel,"406b8a94d56dcc1cfb88a6eb7fee2c998f13959855",()=>h.resolveGitLocalPath,"4078ca9af0417ab7cc9c37866f513a695022d44f53",()=>k.setOnboardingProgress,"408bb3f4da291df84996bb1c59d8fc84950c7e60e1",()=>k.dispatchTaskCompletionEvent,"4094d00d07ed9d0b8c497b5242711fd7d97273f4d6",()=>i.checkMigrationSafety,"40c469010428b2da3cfd1497f8a8d22ae4b18090f0",()=>e.createProject,"40ca1b10a23c9a2e5f5b69e02497df0388ab52c46f",()=>j.installExtension,"40eb079eed9fd31bae057f60d020ff0a2e66eb4c12",()=>e.createWorkspace,"40f587a6e4a02ec84e0c15ff54334157761fb4034c",()=>j.uninstallExtension,"6046d52703515bb230a9b7650e2bca9f0d6db6f5ea",()=>e.updateWorkspace,"604f7933f9827efb095d99cb2ca2ebaa5f2e5e7f7c",()=>g.globalSearch,"6050e4a303e6958c1f8d6044fe3ab7079613ddccdd",()=>h.setConfigValue,"605a1d60036c6bcb4298bc0b2a34da84b302bea553",()=>k.setOnboardingExtensions,"606e49df84da3b15ebf2e09d87a3fd04d82d9beabd",()=>i.analyzeProjectDirectory,"608de8235b7e769e3f561a42fb93d6b218703c1f5b",()=>h.getConfigValue,"60c4a614995207d6d13933acbd69d413cccca56129",()=>i.migrateProjectPath,"60fe7f9fb52efb97c5ceab6e00c9b5654aa2db2d62",()=>k.completeOnboarding]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_12h5txa._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js"].map(b=>a.l(b))).then(()=>b(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0sc_a_d._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
2
+
3
+ //# sourceMappingURL=_0a0aq2i._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[976268,a=>{"use strict";let b=(0,a.i(711796).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);a.s(["default",0,b])},607884,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(553798),e=a.i(634910),f=a.i(607219),g=a.i(774881),h=a.i(690251),i=a.i(975231),j=a.i(336771),k=a.i(91756),l=a.i(881107),m=a.i(350739),n=a.i(347165),o=a.i(711796);let p=(0,o.default)("gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);var q=a.i(335732),r=a.i(269876),s=a.i(814574),t=a.i(785259),u=a.i(699570),v=a.i(866718),w=a.i(780410);let x=(0,w.createServerReference)("40aae0a5c77ecb29bf299a9b5b7ded7c48fcb15035",w.callServer,void 0,w.findSourceMapURL,"createWorkspace"),y=(0,w.createServerReference)("60ac6f4bd4d697bdb9a80ee84b6b8681a016324318",w.callServer,void 0,w.findSourceMapURL,"updateWorkspace"),z=(0,w.createServerReference)("40c4ea0176b204ccd558edddd45e3b0fc6d3937db7",w.callServer,void 0,w.findSourceMapURL,"deleteWorkspace"),A=(0,w.createServerReference)("40ed7bd4658bec28e8fdbdf52207e42489021aaa31",w.callServer,void 0,w.findSourceMapURL,"reorderWorkspaces");var B=a.i(171994);let C=(0,w.createServerReference)("40694a8b7e3dfee12c3f14aef6186cf6d60b75b54e",w.callServer,void 0,w.findSourceMapURL,"createLabel"),D=(0,w.createServerReference)("40122d445f0fe947895dd124dd00ae78837c018ef7",w.callServer,void 0,w.findSourceMapURL,"deleteLabel");var E=a.i(951192),F=a.i(952313),G=a.i(643228),H=a.i(859103),I=a.i(514126);let J=["📋","🚀","🎯","💡","🔧","📦","🎨","📊","🔬","🌟","📝","🏗️"];function K({workspaces:a}){let h,i=(0,d.useRouter)(),j=(0,d.usePathname)(),{t:l}=(0,E.useI18n)(),[o,q]=(0,c.useState)(!1);(0,c.useEffect)(()=>{"true"===localStorage.getItem("sidebar-collapsed")&&q(!0)},[]);let[s,v]=(0,c.useState)(!1),[w,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!1),[I,N]=(0,c.useState)(null),[P,Q]=(0,c.useState)(""),[R,S]=(0,c.useState)(J[0]),[T,U]=(0,c.useState)(null),[V,W]=(0,c.useState)(a);(0,c.useEffect)(()=>{W(a)},[a]);let X=(0,G.useSensors)((0,G.useSensor)(G.PointerSensor,{activationConstraint:{distance:8}})),Y=(0,c.useCallback)(b=>{let{active:c,over:d}=b;if(!d||c.id===d.id)return;let e=V.findIndex(a=>a.id===c.id),f=V.findIndex(a=>a.id===d.id);if(-1===e||-1===f)return;let g=(0,H.arrayMove)(V,e,f);W(g),A(g.map(a=>a.id)).then(()=>i.refresh()).catch(()=>{W(a),F.toast.error(l("sidebar.reorderError"))})},[V,a,i,l]),Z=j.split("/workspaces/")[1]?.split("/")[0],$=(0,c.useCallback)(()=>{q(a=>{let b=!a;return localStorage.setItem("sidebar-collapsed",String(b)),b})},[]),_=(0,c.useCallback)(async()=>{if(!P.trim())return;let a=await x({name:P.trim(),description:R});Q(""),S(J[0]),v(!1),i.refresh(),i.push(`/workspaces/${a.id}`)},[P,R,i]),aa=(0,c.useCallback)(async()=>{P.trim()&&T&&(await y(T,{name:P.trim(),description:R}),Q(""),B(!1),U(null),i.refresh())},[P,R,T,i]),ab=(0,c.useCallback)(a=>{U(a.id),Q(a.name),S(a.description&&J.includes(a.description)?a.description:J[0]),B(!0)},[]),ac=(0,c.useCallback)(async(b,c)=>{if(a.length<=1)return void F.toast.error(l("sidebar.lastWorkspaceError"));if(confirm(l("sidebar.deleteConfirm",{name:c})))try{await z(b),i.refresh(),Z===b&&i.push("/workspaces")}catch{F.toast.error(l("sidebar.lastWorkspaceError"))}},[Z,i,l,a.length]),ad=(0,c.useCallback)(a=>{N(a),D(!0)},[]),ae=a=>a.description&&J.includes(a.description)?a.description:a.name.charAt(0).toUpperCase();if(o){let c;return(0,b.jsxs)("aside",{className:"flex h-screen w-14 flex-col items-center border-r border-border bg-sidebar py-3",children:[(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:$,className:"mb-4 flex h-9 w-9 items-center justify-center rounded-lg bg-primary/10 ring-1 ring-primary/20 transition-transform hover:scale-105"}),children:(0,b.jsx)("img",{src:"/logo.png",alt:"Tower",className:"h-6 w-6 rounded"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.expand")})]}),(0,b.jsx)(r.ScrollArea,{className:"flex-1 min-h-0",children:(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1 px-0.5 pt-1",children:[a.map(a=>{let c=Z===a.id,d=ae(a);return(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>{c||i.push(`/workspaces/${a.id}`)},className:`flex h-9 w-9 items-center justify-center rounded-lg transition-all ${c?"ring-1 ring-primary/20 text-foreground cursor-default":"text-muted-foreground hover:text-foreground cursor-pointer"}`}),children:(0,b.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-md bg-muted text-sm",children:J.includes(d)?d:(0,b.jsx)("span",{className:"text-xs font-semibold",children:d})})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:a.name})]},a.id)}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{"data-tour":"create-workspace",onClick:()=>v(!0),className:"flex h-9 w-9 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"}),children:(0,b.jsx)(g.Plus,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.newWorkspace")})]})]})}),(0,b.jsxs)("div",{className:"mt-2 flex flex-col items-center gap-1",children:[(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>i.push("/missions"),className:`rounded-lg p-2 transition-colors ${"/missions"===j?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,b.jsx)(p,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("missions.navLabel")})]}),(c=Z||a[0]?.id)?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>i.push(`/workspaces/${c}/notes`),className:`rounded-lg p-2 transition-colors ${j.includes("/notes")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,b.jsx)(m.FileText,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.notes")})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>i.push(`/workspaces/${c}/assets`),className:`rounded-lg p-2 transition-colors ${j.includes("/assets")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,b.jsx)(n.FolderOpen,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.assets")})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>i.push(`/workspaces/${c}/archive`),className:`rounded-lg p-2 transition-colors ${j.includes("/archive")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,b.jsx)(f.Archive,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.archive")})]})]}):null]}),(0,b.jsx)(M,{open:s,onOpenChange:v,title:l("workspace.create"),name:P,onNameChange:Q,icon:R,onIconChange:S,onSubmit:_,submitLabel:l("common.create"),nameLabel:l("workspace.name"),iconLabel:l("workspace.icon"),namePlaceholder:l("workspace.namePlaceholder"),cancelLabel:l("common.cancel")})]})}return(0,b.jsxs)("aside",{className:"noise relative flex h-screen w-56 flex-col border-r border-border bg-sidebar",children:[(0,b.jsxs)("div",{className:"relative z-10 flex items-center gap-3 px-4 py-4",children:[(0,b.jsx)("img",{src:"/logo.png",alt:"Tower",className:"h-9 w-9 rounded-lg"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-semibold tracking-tight text-foreground",children:"Tower"}),(0,b.jsx)("div",{className:"text-[10px] font-medium uppercase tracking-widest text-muted-foreground",children:"Studio"})]}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon-xs",onClick:$,className:"text-muted-foreground",title:l("sidebar.collapse"),children:(0,b.jsx)(k.ChevronsLeft,{className:"h-4 w-4"})})]}),(0,b.jsxs)("div",{className:"relative z-10 flex items-center justify-between px-4 py-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:l("sidebar.workspace")}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground","data-tour":"create-workspace",onClick:()=>{Q(""),S(J[0]),v(!0)},title:l("sidebar.newWorkspace"),children:(0,b.jsx)(g.Plus,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)(r.ScrollArea,{className:"relative z-10 mt-2 flex-1 min-h-0",children:(0,b.jsx)("div",{className:"px-2 py-1",children:(0,b.jsx)(G.DndContext,{id:"workspace-sidebar",sensors:X,collisionDetection:G.closestCenter,onDragEnd:Y,children:(0,b.jsx)(H.SortableContext,{items:V.map(a=>a.id),strategy:H.verticalListSortingStrategy,children:V.map(a=>(0,b.jsx)(L,{ws:a,isActive:Z===a.id,icon:ae(a),disableDelete:V.length<=1,t:l,onSelect:()=>{Z!==a.id&&i.push(`/workspaces/${a.id}`)},onEdit:()=>ab(a),onManageLabels:()=>ad(a.id),onDelete:()=>ac(a.id,a.name)},a.id))})})})}),(0,b.jsxs)(e.default,{href:"/missions",className:`relative z-10 flex items-center gap-2 border-t border-border px-4 py-3 text-[11px] cursor-pointer transition-colors ${"/missions"===j?"text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,b.jsx)(p,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:l("missions.navLabel")})]}),(h=Z||a[0]?.id)?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(e.default,{href:`/workspaces/${h}/notes`,className:"relative z-10 flex items-center gap-2 border-t border-border px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,b.jsx)(m.FileText,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:l("sidebar.notes")})]}),(0,b.jsxs)(e.default,{href:`/workspaces/${h}/assets`,className:"relative z-10 flex items-center gap-2 px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,b.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:l("sidebar.assets")})]}),(0,b.jsxs)(e.default,{href:`/workspaces/${h}/archive`,className:"relative z-10 flex items-center gap-2 px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,b.jsx)(f.Archive,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:l("sidebar.archive")})]})]}):null,(0,b.jsx)(M,{open:s,onOpenChange:v,title:l("workspace.create"),name:P,onNameChange:Q,icon:R,onIconChange:S,onSubmit:_,submitLabel:l("common.create"),nameLabel:l("workspace.name"),iconLabel:l("workspace.icon"),namePlaceholder:l("workspace.namePlaceholder"),cancelLabel:l("common.cancel")}),(0,b.jsx)(M,{open:w,onOpenChange:a=>{B(a),a||U(null)},title:l("workspace.edit"),name:P,onNameChange:Q,icon:R,onIconChange:S,onSubmit:aa,submitLabel:l("common.save"),nameLabel:l("workspace.name"),iconLabel:l("workspace.icon"),namePlaceholder:l("workspace.namePlaceholder"),cancelLabel:l("common.cancel")}),I&&(0,b.jsx)(O,{open:C,onOpenChange:a=>{D(a),a||N(null)},workspaceId:I})]})}function L({ws:a,isActive:c,icon:d,disableDelete:e,t:f,onSelect:g,onEdit:k,onManageLabels:m,onDelete:n}){var o;let p,r,s,{attributes:t,listeners:u,setNodeRef:v,transform:w,transition:x,isDragging:y}=(0,H.useSortable)({id:a.id}),z={transform:I.CSS.Transform.toString(w),transition:x,opacity:y?.4:1};return(0,b.jsxs)("div",{ref:v,style:z,...t,...u,className:`group relative flex touch-none items-center rounded-lg transition-all ${c?"bg-accent ring-1 ring-primary/15":"hover:bg-accent/60"}`,children:[(0,b.jsxs)("button",{onClick:g,className:`flex flex-1 items-center gap-2.5 px-3 py-2.5 text-left ${c?"cursor-default":"cursor-pointer"}`,children:[(0,b.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-md bg-muted text-sm",children:J.includes(d)?d:(0,b.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:d})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("div",{className:`truncate text-sm font-medium ${c?"text-foreground":"text-secondary-foreground"}`,children:a.name}),(0,b.jsx)("div",{className:"text-[11px] text-muted-foreground",children:(o=a.updatedAt,r=Math.floor((p=Date.now()-new Date(o).getTime())/6e4),s=Math.floor(p/36e5),r<60?`${r}m ago`:s<24?`${s}h ago`:`${Math.floor(s/24)}d ago`)})]})]}),(0,b.jsxs)(q.DropdownMenu,{children:[(0,b.jsx)(q.DropdownMenuTrigger,{render:(0,b.jsx)("button",{className:"mr-2 rounded-md p-1 text-muted-foreground opacity-0 transition-all hover:bg-background hover:text-foreground group-hover:opacity-100",onClick:a=>a.stopPropagation()}),children:(0,b.jsx)(j.MoreHorizontal,{className:"h-3.5 w-3.5"})}),(0,b.jsxs)(q.DropdownMenuContent,{align:"start",side:"right",children:[(0,b.jsxs)(q.DropdownMenuItem,{onClick:k,children:[(0,b.jsx)(h.Pencil,{className:"mr-2 h-3.5 w-3.5"}),f("sidebar.rename")]}),(0,b.jsxs)(q.DropdownMenuItem,{onClick:m,children:[(0,b.jsx)(l.Tag,{className:"mr-2 h-3.5 w-3.5"}),f("sidebar.manageLabels")]}),(0,b.jsxs)(q.DropdownMenuItem,{className:e?"text-muted-foreground opacity-50":"text-rose-400",disabled:e,onClick:n,children:[(0,b.jsx)(i.Trash2,{className:"mr-2 h-3.5 w-3.5"}),f("sidebar.delete")]})]})]})]})}function M({open:a,onOpenChange:c,title:d,name:e,onNameChange:f,icon:g,onIconChange:h,onSubmit:i,submitLabel:j,nameLabel:k,iconLabel:l,namePlaceholder:m,cancelLabel:n}){return(0,b.jsx)(s.Dialog,{open:a,onOpenChange:c,disablePointerDismissal:!0,children:(0,b.jsxs)(s.DialogContent,{className:"sm:max-w-sm",children:[(0,b.jsx)(s.DialogHeader,{children:(0,b.jsx)(s.DialogTitle,{children:d})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:k}),(0,b.jsx)(v.Input,{placeholder:m,value:e,onChange:a=>f(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault(),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l}),(0,b.jsx)("div",{className:"mt-1.5 grid grid-cols-6 gap-1.5",children:J.map(a=>(0,b.jsx)("button",{onClick:()=>h(a),className:`flex h-10 w-10 items-center justify-center rounded-lg text-lg transition-all ${g===a?"bg-primary/15 ring-2 ring-primary/30 scale-110":"bg-muted hover:bg-accent"}`,children:a},a))})]})]}),(0,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(u.Button,{variant:"outline",onClick:()=>c(!1),children:n}),(0,b.jsx)(u.Button,{onClick:i,disabled:!e.trim(),className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:j})]})]})})}let N=["#3b82f6","#ef4444","#f59e0b","#10b981","#8b5cf6","#ec4899","#06b6d4","#f97316"];function O({open:a,onOpenChange:d,workspaceId:e}){let{t:f}=(0,E.useI18n)(),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(N[0]);(0,c.useEffect)(()=>{a&&(0,B.getLabelsForWorkspace)(e).then(h)},[a,e]);let m=async()=>{i.trim()&&(await C({name:i.trim(),color:k,workspaceId:e}),h(await (0,B.getLabelsForWorkspace)(e)),j(""))},n=async a=>{await D(a),h(b=>b.filter(b=>b.id!==a))};return(0,b.jsx)(s.Dialog,{open:a,onOpenChange:d,disablePointerDismissal:!0,children:(0,b.jsxs)(s.DialogContent,{className:"sm:max-w-sm",children:[(0,b.jsx)(s.DialogHeader,{children:(0,b.jsx)(s.DialogTitle,{children:f("label.manage")})}),(0,b.jsxs)("div",{className:"space-y-3 py-2",children:[g.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"h-3 w-3 rounded-full",style:{backgroundColor:a.color}}),(0,b.jsx)("span",{className:"flex-1 text-sm text-foreground",children:a.name}),a.isBuiltin?(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:f("label.builtin")}):(0,b.jsx)("button",{onClick:()=>n(a.id),className:"text-xs text-rose-400 hover:text-rose-300",children:f("common.delete")})]},a.id)),(0,b.jsxs)("div",{className:"border-t border-border pt-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(v.Input,{placeholder:f("label.name"),value:i,onChange:a=>j(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault(),className:"flex-1 h-8"}),(0,b.jsx)(u.Button,{size:"sm",onClick:m,disabled:!i.trim(),className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:f("label.add")})]}),(0,b.jsx)("div",{className:"mt-2 flex gap-1.5",children:N.map(a=>(0,b.jsx)("button",{onClick:()=>l(a),className:`h-5 w-5 rounded-full transition-all ${k===a?"ring-2 ring-offset-2 ring-offset-background ring-foreground/30 scale-110":""}`,style:{backgroundColor:a}},a))})]})]})]})})}var P=a.i(940271),Q=a.i(573242),R=a.i(369289);let S=(0,o.default)("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);var T=a.i(851378);let U=(0,o.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var V=a.i(761052),W=a.i(86354);a.s([],516474),a.i(516474);var X=a.i(213200),Y=a.i(862306);let Z=c.createContext(void 0);function $(){let a=c.useContext(Z);if(void 0===a)throw Error((0,Y.default)(13));return a}let _={imageLoadingStatus:()=>null},aa=c.forwardRef(function(a,d){let{className:e,render:f,...g}=a,[h,i]=c.useState("idle"),j=c.useMemo(()=>({imageLoadingStatus:h,setImageLoadingStatus:i}),[h,i]),k=(0,X.useRenderElement)("span",a,{state:{imageLoadingStatus:h},ref:d,props:g,stateAttributesMapping:_});return(0,b.jsx)(Z.Provider,{value:j,children:k})});var ab=a.i(74686),ac=a.i(830067),ad=a.i(398312),ae=a.i(380562),af=a.i(904531),ag=a.i(535011);let ah={..._,...ae.transitionStatusMapping},ai=c.forwardRef(function(a,b){let{className:d,render:e,onLoadingStatusChange:f,referrerPolicy:g,crossOrigin:h,...i}=a,j=$(),k=function(a,{referrerPolicy:b,crossOrigin:d}){let[e,f]=c.useState("idle");return(0,ac.useIsoLayoutEffect)(()=>{if(!a)return f("error"),ag.NOOP;let c=!0,e=new window.Image,g=a=>()=>{c&&f(a)};return f("loading"),e.onload=g("loaded"),e.onerror=g("error"),b&&(e.referrerPolicy=b),e.crossOrigin=d??null,e.src=a,()=>{c=!1}},[a,d,b]),e}(a.src,{referrerPolicy:g,crossOrigin:h}),l="loaded"===k,{mounted:m,transitionStatus:n,setMounted:o}=(0,af.useTransitionStatus)(l),p=c.useRef(null),q=(0,ab.useStableCallback)(a=>{f?.(a),j.setImageLoadingStatus(a)});(0,ac.useIsoLayoutEffect)(()=>{"idle"!==k&&q(k)},[k,q]),(0,ad.useOpenChangeComplete)({open:l,ref:p,onComplete(){l||o(!1)}});let r=(0,X.useRenderElement)("img",a,{state:{imageLoadingStatus:k,transitionStatus:n},ref:[b,p],props:i,stateAttributesMapping:ah,enabled:m});return m?r:null});var aj=a.i(102934);let ak=c.forwardRef(function(a,b){let{className:d,render:e,delay:f,...g}=a,{imageLoadingStatus:h}=$(),[i,j]=c.useState(void 0===f),k=(0,aj.useTimeout)();return c.useEffect(()=>(void 0!==f&&k.start(f,()=>j(!0)),k.clear),[k,f]),(0,X.useRenderElement)("span",a,{state:{imageLoadingStatus:h},ref:b,props:g,stateAttributesMapping:_,enabled:"loaded"!==h&&i})});a.s(["Fallback",0,ak,"Image",0,ai,"Root",0,aa],991134);var al=a.i(991134),al=al,am=a.i(368114);function an({className:a,size:c="default",...d}){return(0,b.jsx)(al.Root,{"data-slot":"avatar","data-size":c,className:(0,am.cn)("group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten",a),...d})}function ao({className:a,...c}){return(0,b.jsx)(al.Fallback,{"data-slot":"avatar-fallback",className:(0,am.cn)("flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",a),...c})}let ap=(0,o.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);var aq=a.i(577565);let ar=(0,o.default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]),as=(0,o.default)("package-2",[["path",{d:"M12 3v6",key:"1holv5"}],["path",{d:"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",key:"187q7i"}],["path",{d:"M3.054 9.013h17.893",key:"grwhos"}]]);var at=a.i(54384);let au=(0,w.createServerReference)("60e80c193b699ad21f4f33122cfcf5080a02965417",w.callServer,void 0,w.findSourceMapURL,"globalSearch");var av=a.i(532207);let aw=[{id:"all",key:"search.all",icon:Q.Search},{id:"task",key:"search.task",icon:m.FileText},{id:"project",key:"search.project",icon:ap},{id:"repository",key:"search.repository",icon:aq.GitBranch},{id:"note",key:"search.note",icon:ar},{id:"asset",key:"search.asset",icon:as}],ax=["task","project","repository","note","asset"],ay={task:"search.task",project:"search.project",repository:"search.repository",note:"search.note",asset:"search.asset"};function az({result:a,onSelect:c}){let d=aw.find(b=>b.id===a.type)?.icon??m.FileText;return(0,b.jsxs)("button",{onClick:()=>c(a),className:"flex w-full items-center gap-3 border-b border-border/30 px-4 py-3 text-left transition-colors hover:bg-accent last:border-b-0",children:[(0,b.jsx)("div",{className:"rounded-md bg-muted p-1.5",children:(0,b.jsx)(d,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:a.title}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:a.subtitle}),a.snippet&&(0,b.jsx)("div",{className:"text-xs text-muted-foreground/70 truncate mt-0.5",children:a.snippet})]})]})}function aA({open:a,onOpenChange:e}){let f,{t:g}=(0,E.useI18n)(),h=(0,d.useRouter)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)("all"),[m,n]=(0,c.useState)([]),[o,p]=(0,c.useState)(!1),[q,t]=(0,c.useState)(250),v=(0,c.useRef)(null),w=(0,c.useRef)(null);(0,c.useEffect)(()=>{a&&((0,av.getConfigValue)("search.debounceMs",250).then(t),setTimeout(()=>v.current?.focus(),100),j(""),n([]))},[a]),(0,c.useEffect)(()=>{if(w.current&&clearTimeout(w.current),!i.trim()){n([]),p(!1);return}p(!0);let a=!1;return w.current=setTimeout(async()=>{let b=await au(i,k);a||(n(b),p(!1))},q),()=>{w.current&&clearTimeout(w.current),a=!0}},[i,k,q]);let x=(0,c.useCallback)(a=>{h.push(a.navigateTo),e(!1)},[h,e]);return(0,b.jsx)(s.Dialog,{open:a,onOpenChange:e,children:(0,b.jsxs)(s.DialogContent,{className:"sm:max-w-lg p-0 gap-0 overflow-hidden !top-[10vh] !-translate-y-0",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-center border-b border-border px-4",children:[(0,b.jsx)(Q.Search,{className:"h-4 w-4 text-muted-foreground"}),(0,b.jsx)("input",{ref:v,value:i,onChange:a=>j(a.target.value),placeholder:g("search.placeholder"),className:"flex-1 bg-transparent px-3 py-3.5 text-sm text-foreground placeholder-muted-foreground outline-none"}),i&&(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",onClick:()=>{j(""),n([])},className:"text-muted-foreground",children:(0,b.jsx)(at.X,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)("div",{className:"flex items-center gap-1 border-b border-border px-4 py-2",children:aw.map(a=>{let c=a.icon;return(0,b.jsxs)("button",{onClick:()=>l(a.id),className:`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-all ${k===a.id?"bg-primary/10 text-primary ring-1 ring-primary/20":"text-muted-foreground hover:bg-accent hover:text-foreground"}`,children:[(0,b.jsx)(c,{className:"h-3 w-3"}),g(a.key)]},a.id)})}),(0,b.jsxs)(r.ScrollArea,{className:"max-h-80",children:[!i.trim()&&(0,b.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:g("search.typeToSearch")}),i.trim()&&0===m.length&&!o&&(0,b.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:g("search.noResults")}),"all"===k&&m.length>0&&(f=m.reduce((a,b)=>((a[b.type]??=[]).push(b),a),{}),ax.filter(a=>f[a]?.length).map(a=>(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"px-4 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:g(ay[a])}),f[a].map(a=>(0,b.jsx)(az,{result:a,onSelect:x},`${a.type}-${a.id}`))]},a))),"all"!==k&&m.map(a=>(0,b.jsx)(az,{result:a,onSelect:x},`${a.type}-${a.id}`))]})]})})}function aB(a){}let aC=(0,c.createContext)(null);function aD(){return"u">typeof crypto&&crypto.randomUUID?crypto.randomUUID():`msg-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}let aE="assistant-attachment-cache";function aF(a,b,c){try{let d=sessionStorage.getItem(aE),e=d?JSON.parse(d):{};e[a]||(e[a]={}),e[a][b]=c,sessionStorage.setItem(aE,JSON.stringify(e))}catch{}}function aG({children:a}){let[d,e]=(0,c.useState)(!1),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)("sidebar"),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)("idle"),[p,q]=(0,c.useState)(!1),r=(0,c.useRef)([]),s=(0,c.useRef)(null),t=(0,c.useRef)(null),[u,v]=(0,c.useState)([]),[w,x]=(0,c.useState)(null),y=(0,c.useRef)(!1),z=(0,c.useCallback)(()=>{m([...r.current])},[]),A=(0,c.useCallback)(async()=>{i("dialog"===await (0,av.getConfigValue)("assistant.displayMode","sidebar")?"dialog":"sidebar")},[]);(0,c.useEffect)(()=>{A()},[A]);let B=(0,c.useCallback)(async()=>{v([])},[]),C=(0,c.useCallback)(async a=>{q(!0);try{let b=await fetch(`/api/internal/assistant/sessions?sessionId=${encodeURIComponent(a)}`);if(!b.ok)return;let c=await b.json();if(Array.isArray(c.messages)){r.current=c.messages;let b=function(a){try{let b=sessionStorage.getItem(aE);if(!b)return{};return JSON.parse(b)[a]??{}}catch{return{}}}(a);if(Object.keys(b).length>0){let a=0;r.current=r.current.map(c=>{if("user"===c.role){let d=b[a];if(a++,d?.length)return{...c,attachmentFilenames:d}}return c})}m([...r.current])}}catch{}finally{q(!1)}},[]);(0,c.useEffect)(()=>{B()},[B,C]);let D=(0,c.useCallback)(()=>{t.current?.abort(),s.current=null,y.current=!1,x(null),aB(null),r.current=[],m([]),o("idle")},[]),E=(0,c.useCallback)(a=>{t.current?.abort(),s.current=a,y.current=!0,x(a),aB(a),r.current=[],m([]),o("idle"),C(a)},[C]),F=(0,c.useCallback)(a=>{v([]),w===a&&D()},[w,D]),G=(0,c.useCallback)(async()=>{g(!0);try{await A(),e(!0)}finally{g(!1)}},[A]),H=(0,c.useCallback)(()=>{e(!1),t.current?.abort()},[]),I=(0,c.useCallback)(()=>{d||f?H():G()},[d,f,H,G]);(0,c.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"l"===a.key&&(a.preventDefault(),I())};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[I]);let J=(0,c.useCallback)(async(a,b)=>{if(!a.trim()&&!b?.attachmentFilenames?.length)return;t.current?.abort();let c=new AbortController;t.current=c;let d=0!==r.current.length||y.current?null:a,e=aD();if(r.current=[...r.current,{id:aD(),role:"user",content:a,attachmentFilenames:b?.attachmentFilenames?.length?b.attachmentFilenames:void 0},{id:e,role:"thinking",content:"",isStreaming:!0}],z(),b?.attachmentFilenames?.length&&s.current){let a=r.current.filter(a=>"user"===a.role).length-1;aF(s.current,a,b.attachmentFilenames)}o("connecting");let f=null;try{let g=await fetch("/api/internal/assistant/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:a,sessionId:s.current,attachmentFilenames:b?.attachmentFilenames??[]}),signal:c.signal});if(!g.ok||!g.body)throw Error(`HTTP ${g.status}`);o("streaming");let h=g.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:c}=await h.read();if(a)break;let g=(j+=i.decode(c,{stream:!0})).split("\n");for(let a of(j=g.pop()??"",g)){let c;if(a.startsWith("data: ")){try{c=JSON.parse(a.slice(6).trim())}catch{continue}if(c.sessionId){let a=s.current;if(s.current=c.sessionId,d&&!y.current&&c.sessionId!==a){y.current=!0;new Date().toISOString();c.sessionId,function(a){let b=a.trim();b&&b.length>30&&b.slice(0,30)}(d),v([]),x(c.sessionId),aB(c.sessionId),b?.attachmentFilenames?.length&&aF(c.sessionId,0,b.attachmentFilenames)}}switch(c.type){case"text_delta":{let a=r.current.filter(a=>a.id!==e);f?r.current=a.map(a=>a.id===f?{...a,content:a.content+(c.content??""),isStreaming:!0}:a):(f=aD(),r.current=[...a,{id:f,role:"assistant",content:c.content??"",isStreaming:!0}]),z();break}case"text":{let a=r.current.filter(a=>a.id!==e);f?r.current=a.map(a=>a.id===f?{...a,content:c.content??a.content,isStreaming:!0}:a):(f=aD(),r.current=[...a,{id:f,role:"assistant",content:c.content??"",isStreaming:!0}]),z();break}case"tool_start":{let a=r.current.filter(a=>a.id!==e);f?(r.current=a.map(a=>a.id===f?{...a,isStreaming:!1}:a),f=null):r.current=a,r.current=[...r.current,{id:aD(),role:"tool",content:`Calling ${c.content??"tool"}...`,toolName:c.content,isStreaming:!0}],z();break}case"tool_use":{let a=r.current.filter(a=>a.id!==e),b=f?a.map(a=>a.id===f?{...a,isStreaming:!1}:a):a;f=null,r.current=[...b,{id:aD(),role:"tool",content:JSON.stringify(c.toolInput??{},null,2),toolName:c.content}],z();break}case"tool_result":r.current=[...r.current,{id:aD(),role:"tool",content:String(c.toolOutput??""),toolName:`${c.content??"tool"} (result)`}],z();break;case"error":r.current=[...r.current.filter(a=>a.id!==e),{id:aD(),role:"assistant",content:`Error: ${c.content??"Unknown error"}`}],z(),o("error");break;case"done":f&&(r.current=r.current.map(a=>a.id===f?{...a,isStreaming:!1}:a)),r.current=r.current.filter(a=>a.id!==e),z(),o("idle")}}}}r.current=r.current.filter(a=>a.id!==e),z(),o(a=>"streaming"===a?"idle":a),B()}catch(a){if("AbortError"===a.name)return;r.current=[...r.current.filter(a=>a.id!==e),{id:aD(),role:"assistant",content:`Connection error: ${a.message??"Unknown error"}`}],z(),o("error")}},[z,B]),K=(0,c.useCallback)(()=>{t.current?.abort(),t.current=null;let a=[...r.current].reverse().find(a=>"user"===a.role),b=a?.content??null;if(a){let b=r.current.lastIndexOf(a);r.current=r.current.slice(0,b),m([...r.current])}return o("idle"),b},[]),L=l[l.length-1],M="connecting"===n||"streaming"===n||L?.role==="thinking"&&!0===L.isStreaming;return(0,b.jsx)(aC.Provider,{value:{isOpen:d,isStarting:f,displayMode:h,worktreePath:j,toggleAssistant:I,closeAssistant:H,chatMessages:l,chatStatus:n,isChatThinking:M,isLoadingHistory:p,sendChatMessage:J,cancelChat:K,sessions:u,activeSessionId:w,createNewSession:D,switchSession:E,removeSession:F,refreshSessions:B},children:a})}function aH(){let a=(0,c.useContext)(aC);if(!a)throw Error("useAssistant must be used within an AssistantProvider");return a}var aI=a.i(704494),aJ=a.i(668116),aK=a.i(616335),aL=a.i(394259),aM=a.i(487410),aN=a.i(429246);function aO(a){return a.replace(/\.git\/?$/,"")}a.i(446786),a.i(814747);let aP=(0,w.createServerReference)("4067ec8a4012cb20c10b47fa782eb33cc1e243ca7f",w.callServer,void 0,w.findSourceMapURL,"resolveGitLocalPath");var aQ=a.i(308437),aR=a.i(43775);function aS({open:a,onOpenChange:d,onCreateProject:e}){let{t:f,locale:g}=(0,E.useI18n)(),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)("FRONTEND"),[A,B]=(0,c.useState)("idle"),[C,D]=(0,c.useState)(""),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(!1),K=()=>{i(""),k(""),m(""),p(""),r(""),x(!1),z("FRONTEND"),B("idle"),D(""),H(!1)},L=async()=>{if(q.trim()&&!G&&"success"===A){H(!0);try{let a=await (0,aQ.analyzeProjectDirectory)(q.trim(),g);m(a)}catch{F.toast.error(f("project.analyzeError"))}finally{H(!1)}}},M=async a=>{p(a),B("idle"),D("");let b=function(a){let b,c=a.match(/^git@([^:]+):(.+)$/);if(c)return{host:c[1],pathSegments:aO(c[2]).split("/").filter(Boolean)};try{b=new URL(a)}catch{return null}return{host:b.hostname,pathSegments:aO(decodeURIComponent(b.pathname)).split("/").filter(Boolean)}}(a);b&&b.pathSegments.length>0&&i(b.pathSegments[b.pathSegments.length-1]),w||r(await aP(a))},N=async()=>{if(o.trim()&&q.trim()){B("cloning"),D("");try{let a=function(a){let b=a.trim();if(!b)return"";if(b.startsWith("git@")||b.startsWith("ssh://")||b.endsWith(".git"))return b;try{let a=new URL(b),c=a.hostname,d=decodeURIComponent(a.pathname).split("/").filter(Boolean);if("code.iflytek.com"===c){let a=[...d];"osc"===a[0]&&"_source"===a[1]&&(a=a.slice(2));let e=a.indexOf("-");if(e>0&&(a=a.slice(0,e)),0===a.length)return b;return`https://${c}/${a.join("/")}.git`}return`${a.origin}${a.pathname.replace(/\/$/,"")}.git`}catch{return b}}(o.trim()),b=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clone",url:a,path:q.trim()})}),c=await b.json();if(!b.ok){B("error"),D(c.error||"Clone failed");return}B("success")}catch{B("error"),D("Network error")}}},O=async()=>{h.trim()&&(await e?.({name:h.trim(),alias:j.trim()||void 0,description:l.trim()||void 0,gitUrl:o.trim()||void 0,localPath:q.trim()||void 0,projectType:y}),K(),d(!1))};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.Dialog,{open:a,onOpenChange:a=>{d(a),a||K()},disablePointerDismissal:!0,children:(0,b.jsxs)(s.DialogContent,{style:{maxWidth:"32rem"},children:[(0,b.jsx)(s.DialogHeader,{children:(0,b.jsx)(s.DialogTitle,{children:f("topbar.newProject")})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.gitUrl")}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:f("project.gitUrlHint")}),(0,b.jsx)(v.Input,{placeholder:f("project.gitPlaceholder"),value:o,onChange:a=>M(a.target.value),className:"mt-1.5 font-mono text-xs"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.localPath")}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:f("project.localPathHint")}),(0,b.jsxs)("div",{className:"mt-1.5 flex gap-2",children:[(0,b.jsx)(v.Input,{placeholder:f("project.localPathPlaceholder"),value:q,onChange:a=>{r(a.target.value),x(!0)},className:"flex-1 min-w-0 font-mono text-xs"}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsxs)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{type:"button",variant:"outline",onClick:()=>J(!0),className:"shrink-0 gap-1.5 px-2.5 text-xs text-muted-foreground"}),children:[(0,b.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:f("folder.browse")})]}),(0,b.jsx)(t.TooltipContent,{children:f("folder.selectFolder")})]})]}),q.trim().startsWith("~")&&(0,b.jsxs)("p",{className:"mt-1 flex items-center gap-1 text-[11px] text-amber-400",children:[(0,b.jsx)(aK.AlertCircle,{className:"h-3 w-3"}),f("project.tildeWarning")]}),o.trim()&&q.trim()&&(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsxs)(u.Button,{type:"button",disabled:"cloning"===A||"success"===A,onClick:N,className:"gap-1.5 text-xs bg-emerald-500/15 text-emerald-300 ring-1 ring-emerald-500/25 hover:bg-emerald-500/25 disabled:opacity-50",children:["cloning"===A?(0,b.jsx)(aI.Loader2,{className:"h-3 w-3 animate-spin"}):"success"===A?(0,b.jsx)(aJ.Check,{className:"h-3 w-3"}):(0,b.jsx)(aq.GitBranch,{className:"h-3 w-3"}),"cloning"===A?f("git.cloning"):"success"===A?f("git.cloned"):f("git.clone")]}),"error"===A&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-rose-400",children:[(0,b.jsx)(aK.AlertCircle,{className:"h-3 w-3"}),C]}),"success"===A&&(0,b.jsx)("span",{className:"text-[11px] text-emerald-400",children:f("git.cloneSuccess")})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.name")}),(0,b.jsx)(v.Input,{placeholder:f("project.namePlaceholder"),value:h,onChange:a=>i(a.target.value),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.type.label")}),(0,b.jsx)("div",{className:"mt-1.5",children:(0,b.jsx)(aM.SegmentedControl,{options:[{value:"FRONTEND",label:f("project.type.frontend")},{value:"BACKEND",label:f("project.type.backend")}],value:y,onChange:z})})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.alias")}),(0,b.jsx)(v.Input,{placeholder:f("project.aliasPlaceholder"),value:j,onChange:a=>k(a.target.value),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mt-0.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.description")}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsxs)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{type:"button",variant:"ghost",onClick:L,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!q.trim()||G?"opacity-50":""}`}),children:[G?(0,b.jsx)(aI.Loader2,{className:"h-3 w-3 animate-spin"}):(0,b.jsx)(aL.Sparkles,{className:"h-3 w-3"}),G?f("project.analyzing"):f("project.genDesc")]}),(0,b.jsx)(t.TooltipContent,{children:q.trim()?"success"!==A?f("project.genDescNotCloned"):f("project.genDescReady"):f("project.genDescNoPath")})]})]}),(0,b.jsx)(aN.Textarea,{placeholder:f("project.descPlaceholder"),value:l,onChange:a=>m(a.target.value),rows:3,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,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(u.Button,{variant:"outline",onClick:()=>{d(!1),K()},children:f("common.cancel")}),(0,b.jsx)(u.Button,{onClick:O,disabled:!h.trim()||G,className:"bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",children:f("common.create")})]})]})}),(0,b.jsx)(aR.FolderBrowserDialog,{open:I,onOpenChange:J,onSelect:a=>{if(r(a),x(!0),!h.trim()){let b=a.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??"";b&&i(b)}}})]})}var aT=a.i(976268),aT=aT,aU=a.i(563658);let aV=(0,w.createServerReference)("60935d958ee4de4d23f3d6eb2cac58925798a56de0",w.callServer,void 0,w.findSourceMapURL,"migrateProjectPath"),aW=(0,w.createServerReference)("40455070bf1efea18955a656364d9d5f6f81405df3",w.callServer,void 0,w.findSourceMapURL,"checkMigrationSafety");function aX({open:a,onOpenChange:d,onCreateProject:e}){let{t:f,locale:g}=(0,E.useI18n)(),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)("FRONTEND"),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!1),[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(""),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(!1),S=()=>{i(""),k(""),m(""),p(""),r(""),z("FRONTEND"),B(!1),D(!1),H(""),J(!1),L(""),N(""),P(!1),R(!1)},T=async a=>{r(a),B(!1),D(!1),H(""),L(""),N(""),P(!1),i(a.split("/").filter(Boolean).pop()??"");try{let b=await fetch(`/api/git?path=${encodeURIComponent(a)}`);if(b.ok){let a=await b.json();if(a.isGit&&a.remoteUrl){p(a.remoteUrl),B(!0);let b=a.remoteUrl.match(/\/([^/]+?)(?:\.git)?$/);b&&i(b[1])}}}catch{}},U=(0,c.useCallback)(async a=>{if(D(a),L(""),N(""),P(!1),!a)return void H("");if(o)try{let a=await aP(o);a&&(H(a),a===q&&P(!0))}catch{}if(q)try{let a=await fetch(`/api/git?path=${encodeURIComponent(q)}&checkWorktrees=true`);a.ok&&(await a.json()).hasWorktrees&&N(f("project.worktreeWarning"))}catch{}},[o,q]),V=async()=>{if(q&&!Q){R(!0);try{let a=await (0,aQ.analyzeProjectDirectory)(q.trim(),g);m(a)}catch{F.toast.error(f("project.analyzeError"))}finally{R(!1)}}},W=async()=>{if(!h.trim())return;let a={name:h.trim(),alias:j.trim()||void 0,description:l.trim()||void 0,gitUrl:o.trim()||void 0,localPath:q.trim()||void 0,projectType:y},b=await e?.(a);if(C&&G&&G!==q&&b&&"id"in b){J(!0),L("");try{let a=await aW(b.id);if(!a.safe)return void L(a.reason);let c=await aV(b.id,G);if(!c.success)return void L(c.error??f("project.migrateError"));F.toast.success(f("project.migrateSuccess"))}catch(b){let a=b instanceof Error?b.message:String(b);L(`${f("project.migrateError")}:${a}`);return}finally{J(!1)}}S(),d(!1)},X=!h.trim()||!q.trim()||I||Q||C&&!!M;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.Dialog,{open:a,onOpenChange:a=>{d(a),a||S()},disablePointerDismissal:!0,children:(0,b.jsxs)(s.DialogContent,{style:{maxWidth:"32rem"},children:[(0,b.jsx)(s.DialogHeader,{children:(0,b.jsx)(s.DialogTitle,{children:f("topbar.importProject")})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.localPath")}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:f("project.importHint")}),(0,b.jsxs)("div",{className:"mt-1.5 flex gap-2",children:[(0,b.jsx)(v.Input,{value:q,readOnly:!0,placeholder:f("project.localPathPlaceholder"),className:"flex-1 font-mono text-xs bg-muted/30"}),(0,b.jsxs)(u.Button,{type:"button",variant:"outline",onClick:()=>x(!0),className:"shrink-0 gap-1.5",children:[(0,b.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5"}),f("folder.browse")]})]}),A&&(0,b.jsx)("p",{className:"mt-1.5 text-[11px] text-emerald-400",children:f("project.autoDetected")})]}),o&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.gitUrl")}),(0,b.jsx)(v.Input,{value:o,onChange:a=>p(a.target.value),className:"mt-1.5 font-mono text-xs"})]}),A&&q&&(0,b.jsxs)("div",{className:"rounded-md border border-border p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:f("project.migrate")}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:f("project.migrateHint")})]}),(0,b.jsx)(aU.Switch,{checked:C,onCheckedChange:a=>U(a)})]}),C&&(0,b.jsxs)("div",{className:"space-y-2 pt-1",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-[10px] font-medium text-muted-foreground",children:f("project.targetPath")}),(0,b.jsx)(v.Input,{value:G,onChange:a=>{H(a.target.value),P(a.target.value===q)},placeholder:"/path/to/canonical/location",className:"mt-1 font-mono text-xs"})]}),O&&(0,b.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-sky-400",children:[(0,b.jsx)(aT.default,{className:"h-3 w-3"}),f("project.samePathInfo")]}),M&&(0,b.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-amber-400",children:[(0,b.jsx)(aK.AlertCircle,{className:"h-3 w-3"}),M]}),K&&(0,b.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-rose-400",children:[(0,b.jsx)(aK.AlertCircle,{className:"h-3 w-3"}),K]})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.name")}),(0,b.jsx)(v.Input,{placeholder:f("project.namePlaceholder"),value:h,onChange:a=>i(a.target.value),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.type.label")}),(0,b.jsx)("div",{className:"mt-1.5",children:(0,b.jsx)(aM.SegmentedControl,{options:[{value:"FRONTEND",label:f("project.type.frontend")},{value:"BACKEND",label:f("project.type.backend")}],value:y,onChange:z})})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.alias")}),(0,b.jsx)(v.Input,{placeholder:f("project.aliasPlaceholder"),value:j,onChange:a=>k(a.target.value),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mt-0.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.description")}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsxs)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{type:"button",variant:"ghost",onClick:V,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!q||Q?"opacity-50":""}`}),children:[Q?(0,b.jsx)(aI.Loader2,{className:"h-3 w-3 animate-spin"}):(0,b.jsx)(aL.Sparkles,{className:"h-3 w-3"}),Q?f("project.analyzing"):f("project.genDesc")]}),(0,b.jsx)(t.TooltipContent,{children:q?f("project.genDescReady"):f("project.genDescNoPath")})]})]}),(0,b.jsx)(aN.Textarea,{placeholder:f("project.descPlaceholder"),value:l,onChange:a=>m(a.target.value),rows:3,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,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(u.Button,{variant:"outline",onClick:()=>{d(!1),S()},children:f("common.cancel")}),(0,b.jsx)(u.Button,{onClick:W,disabled:X,className:"bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",children:I?f("project.migrating"):f("common.create")})]})]})}),(0,b.jsx)(aR.FolderBrowserDialog,{open:w,onOpenChange:x,onSelect:a=>T(a)})]})}function aY({className:a}){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",className:a,children:(0,b.jsx)("path",{d:"M12 .5C5.65.5.5 5.65.5 12.02c0 5.08 3.29 9.39 7.86 10.91.58.11.79-.25.79-.56v-2c-3.2.7-3.87-1.36-3.87-1.36-.52-1.34-1.27-1.7-1.27-1.7-1.04-.71.08-.7.08-.7 1.15.08 1.76 1.18 1.76 1.18 1.02 1.76 2.68 1.25 3.34.96.1-.74.4-1.25.72-1.54-2.56-.29-5.25-1.28-5.25-5.69 0-1.26.45-2.28 1.18-3.09-.12-.29-.51-1.46.11-3.04 0 0 .97-.31 3.18 1.18a11.1 11.1 0 0 1 5.79 0c2.2-1.49 3.18-1.18 3.18-1.18.62 1.58.23 2.75.11 3.04.74.81 1.18 1.83 1.18 3.09 0 4.42-2.69 5.4-5.25 5.69.41.36.78 1.05.78 2.12v3.14c0 .31.21.68.79.56A11.52 11.52 0 0 0 23.5 12.02C23.5 5.65 18.35.5 12 .5Z"})})}function aZ({onCreateProject:a,username:e}){let{t:f,locale:h,setLocale:i}=(0,E.useI18n)(),{isOpen:j,toggleAssistant:k}=aH(),{resolvedTheme:l,toggleTheme:m,triggerRef:o}=function(){let{resolvedTheme:a,setTheme:b}=(0,P.useTheme)(),d=(0,c.useRef)(null),e=(0,c.useCallback)(c=>{let d="dark"===a?"light":"dark";if("u">typeof document&&"startViewTransition"in document&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches){let a=c?.clientX??window.innerWidth/2,e=c?.clientY??0,f=Math.hypot(Math.max(a,window.innerWidth-a),Math.max(e,window.innerHeight-e));document.startViewTransition(()=>{b(d)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${e}px)`,`circle(${f}px at ${a}px ${e}px)`]},{duration:400,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})}else b(d)},[a,b]);return{resolvedTheme:a,toggleTheme:e,triggerRef:d}}(),p=(0,d.useRouter)(),[r,s]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"k"===a.key&&(a.preventDefault(),s(!0))};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("header",{className:"flex h-12 items-center justify-between border-b border-border bg-background/80 px-5 backdrop-blur-sm",children:[(0,b.jsx)("div",{className:"w-40"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(u.Button,{variant:"outline",onClick:()=>s(!0),className:"h-8 w-[400px] justify-start gap-2 bg-muted/50 text-muted-foreground hover:bg-muted",children:[(0,b.jsx)(Q.Search,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{className:"flex-1 text-left",suppressHydrationWarning:!0,children:f("topbar.searchPlaceholder")}),(0,b.jsxs)("kbd",{className:"mr-1 flex items-center gap-0.5 rounded border border-border bg-background px-1.5 py-0.5 text-[10px] font-mono",children:[(0,b.jsx)(S,{className:"h-2.5 w-2.5"}),"K"]})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{delay:500,render:(0,b.jsx)("button",{"data-tour":"open-assistant",onClick:k,"aria-label":f("assistant.iconLabel"),className:["cursor-pointer rounded-lg p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",j?"bg-accent text-foreground":""].join(" ")}),children:(0,b.jsx)(U,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{children:f("assistant.iconLabel")})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsxs)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{variant:"ghost",onClick:()=>i("zh"===h?"en":"zh"),className:"text-muted-foreground"}),children:[(0,b.jsx)(T.Globe,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{className:"text-[11px] font-semibold",children:"zh"===h?"EN":"中"})]}),(0,b.jsx)(t.TooltipContent,{children:f("settings.language")})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{ref:o,variant:"ghost",size:"icon",onClick:m,className:"text-muted-foreground"}),children:"dark"===l?(0,b.jsx)(V.Sun,{className:"h-4 w-4"}):(0,b.jsx)(W.Moon,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{children:f("settings.theme")})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",onClick:()=>window.open("https://github.com/jp-liu/tower","_blank","noopener,noreferrer"),className:"text-muted-foreground","aria-label":f("topbar.github")}),children:(0,b.jsx)(aY,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{children:f("topbar.github")})]}),(0,b.jsx)("div",{className:"h-4 w-px bg-border"}),(0,b.jsxs)(u.Button,{variant:"outline",className:"gap-1.5 ring-1 ring-border hover:bg-accent",onClick:()=>y(!0),children:[(0,b.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5"}),f("topbar.importProject")]}),(0,b.jsxs)(u.Button,{"data-tour":"create-project",className:"gap-1.5 bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",onClick:()=>w(!0),children:[(0,b.jsx)(g.Plus,{className:"h-3.5 w-3.5"}),f("topbar.newProject")]}),(0,b.jsxs)(q.DropdownMenu,{children:[(0,b.jsx)(q.DropdownMenuTrigger,{render:(0,b.jsxs)("button",{className:"ml-0.5 flex cursor-pointer items-center gap-1.5 rounded-lg px-2.5 py-1 transition-colors hover:bg-accent",children:[e&&(0,b.jsx)("span",{className:"max-w-[80px] truncate text-xs text-muted-foreground",children:e}),(0,b.jsx)(an,{className:"h-7 w-7 ring-1 ring-border",children:(0,b.jsx)(ao,{className:"bg-emerald-500/20 text-emerald-400 text-[10px] font-semibold",children:e?e.trim().split(/\s+/).filter(a=>a.length>0).slice(0,2).map(a=>a[0].toUpperCase()).join(""):"U"})})]})}),(0,b.jsx)(q.DropdownMenuContent,{align:"end",sideOffset:8,className:"w-40",children:(0,b.jsxs)(q.DropdownMenuItem,{onClick:()=>p.push("/settings"),children:[(0,b.jsx)(R.Settings,{className:"mr-2 h-3.5 w-3.5"}),f("settings.title")]})})]})]})]}),(0,b.jsx)(aA,{open:r,onOpenChange:s}),(0,b.jsx)(aS,{open:v,onOpenChange:w,onCreateProject:a}),(0,b.jsx)(aX,{open:x,onOpenChange:y,onCreateProject:a})]})}var a$=a.i(347872),a_=a.i(595999),a0=a.i(822462),a1=a.i(969032),a2=a.i(442620);let a3=(0,a1.default)(async()=>{},{loadableGenerated:{modules:[103363]},ssr:!1});function a4({mode:a}){let{isOpen:c,closeAssistant:d,sessions:e,activeSessionId:f,createNewSession:h,switchSession:j,removeSession:k}=aH(),{t:l}=(0,E.useI18n)(),m=e.find(a=>a.id===f),n=m?.title??l("assistant.newSession");return(0,b.jsxs)("div",{className:"sidebar"===a?"min-w-[320px] max-w-[480px] w-[30vw] shrink-0 border-r border-border flex flex-col bg-sidebar overflow-hidden":"flex flex-col h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"header-sm flex items-center px-4 gap-2 bg-sidebar",children:[(0,b.jsx)(U,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"text-sm font-semibold text-foreground shrink-0",children:l("assistant.title")}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)(q.DropdownMenu,{children:[(0,b.jsxs)(q.DropdownMenuTrigger,{className:"flex items-center gap-1 h-8 px-2 rounded-md text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground max-w-[120px] truncate","aria-label":l("assistant.sessionList"),children:[(0,b.jsx)("span",{className:"truncate",children:n}),(0,b.jsx)(a2.ChevronDown,{className:"h-3 w-3 shrink-0"})]}),(0,b.jsxs)(q.DropdownMenuContent,{side:"bottom",align:"end",sideOffset:4,children:[0===e.length?(0,b.jsx)("div",{className:"px-2 py-4 text-xs text-muted-foreground text-center",children:l("assistant.noSessions")}):e.map(a=>(0,b.jsxs)(q.DropdownMenuItem,{className:"flex items-center justify-between gap-2 pr-1",onClick:()=>j(a.id),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-0.5 min-w-0",children:[(0,b.jsx)("span",{className:"text-xs truncate max-w-[140px]",children:a.title}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(a.updatedAt)})]}),(0,b.jsx)(u.Button,{variant:"ghost",className:"h-6 w-6 p-0 shrink-0 opacity-50 hover:opacity-100 hover:text-destructive",onClick:b=>{b.stopPropagation(),k(a.id)},"aria-label":l("assistant.deleteSession"),children:(0,b.jsx)(i.Trash2,{className:"h-3 w-3"})})]},a.id)),e.length>0&&(0,b.jsx)(q.DropdownMenuSeparator,{}),(0,b.jsxs)(q.DropdownMenuItem,{onClick:h,children:[(0,b.jsx)(g.Plus,{className:"h-3 w-3 mr-1"}),(0,b.jsx)("span",{className:"text-xs",children:l("assistant.newSession")})]})]})]}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",className:"text-muted-foreground",onClick:h,"aria-label":l("assistant.newSession"),children:(0,b.jsx)(g.Plus,{className:"h-4 w-4"})})]}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",className:"text-muted-foreground",onClick:d,"aria-label":l("assistant.closeLabel"),children:(0,b.jsx)(at.X,{className:"h-4 w-4"})})]}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:c?(0,b.jsx)(a3,{}):null})]})}var a5=a.i(190076);function a6({onDismiss:a}){let{t:d}=(0,E.useI18n)(),[e,f]=(0,c.useState)(!1);(0,c.useEffect)(()=>{},[]);let g=async()=>{"default"!==await window.Notification.requestPermission()&&(f(!1),a?.())};return e?(0,b.jsxs)("div",{className:"fixed top-3 left-1/2 -translate-x-1/2 z-[9999] w-auto max-w-lg bg-card border rounded-lg shadow-lg px-4 py-2.5 flex items-center gap-3 animate-in fade-in slide-in-from-top-4 duration-500",children:[(0,b.jsx)(a5.Bell,{className:"h-4 w-4 shrink-0 text-primary"}),(0,b.jsx)("span",{className:"flex-1 text-sm",children:d("notification.permissionPrompt")}),(0,b.jsx)(u.Button,{size:"default",onClick:g,children:d("notification.allow")}),(0,b.jsx)(u.Button,{variant:"ghost",size:"default",onClick:()=>{f(!1),a?.()},children:d("notification.dismiss")})]}):null}a.i(895657);var a7=a.i(401488);let a8=[{target:"create-workspace",titleKey:"tour.step1.title",descKey:"tour.step1.desc",placement:"right"},{target:"create-project",titleKey:"tour.step2.title",descKey:"tour.step2.desc",placement:"bottom",waitForTarget:!0},{target:"open-assistant",titleKey:"tour.step3.title",descKey:"tour.step3.desc",placement:"bottom"}];function a9({onComplete:a}){let{t:d}=(0,E.useI18n)(),[e,f]=(0,c.useState)(0),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(!1),k=(0,c.useRef)(null),l=a8[e],m=(0,c.useCallback)(async()=>{await (0,a7.setConfigValue)("onboarding.tourCompleted",!0),a()},[a]),n=(0,c.useCallback)(()=>l?document.querySelector(`[data-tour="${l.target}"]`):null,[l]),o=(0,c.useCallback)(()=>{let a=n();a?(h(a.getBoundingClientRect()),j(!0)):j(!1)},[n]);(0,c.useEffect)(()=>{o();let a=null;!i&&l?.waitForTarget&&(k.current=new MutationObserver(()=>{let b=n();b&&(h(b.getBoundingClientRect()),j(!0),k.current?.disconnect(),a&&clearTimeout(a))}),k.current.observe(document.body,{childList:!0,subtree:!0}),a=setTimeout(()=>{!n()&&(f(a=>{let b=a+1;return b<a8.length?b:a}),e>=a8.length-1&&m())},5e3));let b=()=>o();return window.addEventListener("resize",b),window.addEventListener("scroll",b,!0),()=>{k.current?.disconnect(),a&&clearTimeout(a),window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0)}},[e,l,n,o,i,m]),(0,c.useEffect)(()=>{let a=setInterval(o,1e3);return()=>clearInterval(a)},[o]);let p=(0,c.useCallback)(()=>{e<a8.length-1?(f(a=>a+1),j(!1)):m()},[e]);return l?(0,b.jsx)(b.Fragment,{children:i&&g&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-[10000]",style:{background:`radial-gradient(
1
+ module.exports=[976268,a=>{"use strict";let b=(0,a.i(711796).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);a.s(["default",0,b])},607884,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(553798),e=a.i(634910),f=a.i(607219),g=a.i(774881),h=a.i(690251),i=a.i(975231),j=a.i(336771),k=a.i(91756),l=a.i(881107),m=a.i(350739),n=a.i(347165),o=a.i(711796);let p=(0,o.default)("gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);var q=a.i(335732),r=a.i(269876),s=a.i(814574),t=a.i(785259),u=a.i(699570),v=a.i(866718),w=a.i(780410);let x=(0,w.createServerReference)("40eb079eed9fd31bae057f60d020ff0a2e66eb4c12",w.callServer,void 0,w.findSourceMapURL,"createWorkspace"),y=(0,w.createServerReference)("6046d52703515bb230a9b7650e2bca9f0d6db6f5ea",w.callServer,void 0,w.findSourceMapURL,"updateWorkspace"),z=(0,w.createServerReference)("4043aabb87e62fb084ee69331f92fb33e62825d0ef",w.callServer,void 0,w.findSourceMapURL,"deleteWorkspace"),A=(0,w.createServerReference)("4059e482801deab77de528041fcfc70feb707a0269",w.callServer,void 0,w.findSourceMapURL,"reorderWorkspaces");var B=a.i(269022);let C=(0,w.createServerReference)("406b0c4e3d6ae24df472439ee7bc2d0a6014cc8f88",w.callServer,void 0,w.findSourceMapURL,"createLabel"),D=(0,w.createServerReference)("4027d649bfab93f04ccba39fe95ccd74d8113ce76d",w.callServer,void 0,w.findSourceMapURL,"deleteLabel");var E=a.i(951192),F=a.i(952313),G=a.i(643228),H=a.i(859103),I=a.i(514126);let J=["📋","🚀","🎯","💡","🔧","📦","🎨","📊","🔬","🌟","📝","🏗️"];function K({workspaces:a}){let h,i=(0,d.useRouter)(),j=(0,d.usePathname)(),{t:l}=(0,E.useI18n)(),[o,q]=(0,c.useState)(!1);(0,c.useEffect)(()=>{"true"===localStorage.getItem("sidebar-collapsed")&&q(!0)},[]);let[s,v]=(0,c.useState)(!1),[w,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!1),[I,N]=(0,c.useState)(null),[P,Q]=(0,c.useState)(""),[R,S]=(0,c.useState)(J[0]),[T,U]=(0,c.useState)(null),[V,W]=(0,c.useState)(a);(0,c.useEffect)(()=>{W(a)},[a]);let X=(0,G.useSensors)((0,G.useSensor)(G.PointerSensor,{activationConstraint:{distance:8}})),Y=(0,c.useCallback)(b=>{let{active:c,over:d}=b;if(!d||c.id===d.id)return;let e=V.findIndex(a=>a.id===c.id),f=V.findIndex(a=>a.id===d.id);if(-1===e||-1===f)return;let g=(0,H.arrayMove)(V,e,f);W(g),A(g.map(a=>a.id)).then(()=>i.refresh()).catch(()=>{W(a),F.toast.error(l("sidebar.reorderError"))})},[V,a,i,l]),Z=j.split("/workspaces/")[1]?.split("/")[0],$=(0,c.useCallback)(()=>{q(a=>{let b=!a;return localStorage.setItem("sidebar-collapsed",String(b)),b})},[]),_=(0,c.useCallback)(async()=>{if(!P.trim())return;let a=await x({name:P.trim(),description:R});Q(""),S(J[0]),v(!1),i.refresh(),i.push(`/workspaces/${a.id}`)},[P,R,i]),aa=(0,c.useCallback)(async()=>{P.trim()&&T&&(await y(T,{name:P.trim(),description:R}),Q(""),B(!1),U(null),i.refresh())},[P,R,T,i]),ab=(0,c.useCallback)(a=>{U(a.id),Q(a.name),S(a.description&&J.includes(a.description)?a.description:J[0]),B(!0)},[]),ac=(0,c.useCallback)(async(b,c)=>{if(a.length<=1)return void F.toast.error(l("sidebar.lastWorkspaceError"));if(confirm(l("sidebar.deleteConfirm",{name:c})))try{await z(b),i.refresh(),Z===b&&i.push("/workspaces")}catch{F.toast.error(l("sidebar.lastWorkspaceError"))}},[Z,i,l,a.length]),ad=(0,c.useCallback)(a=>{N(a),D(!0)},[]),ae=a=>a.description&&J.includes(a.description)?a.description:a.name.charAt(0).toUpperCase();if(o){let c;return(0,b.jsxs)("aside",{className:"flex h-screen w-14 flex-col items-center border-r border-border bg-sidebar py-3",children:[(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:$,className:"mb-4 flex h-9 w-9 items-center justify-center rounded-lg bg-primary/10 ring-1 ring-primary/20 transition-transform hover:scale-105"}),children:(0,b.jsx)("img",{src:"/logo.png",alt:"Tower",className:"h-6 w-6 rounded"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.expand")})]}),(0,b.jsx)(r.ScrollArea,{className:"flex-1 min-h-0",children:(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1 px-0.5 pt-1",children:[a.map(a=>{let c=Z===a.id,d=ae(a);return(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>{c||i.push(`/workspaces/${a.id}`)},className:`flex h-9 w-9 items-center justify-center rounded-lg transition-all ${c?"ring-1 ring-primary/20 text-foreground cursor-default":"text-muted-foreground hover:text-foreground cursor-pointer"}`}),children:(0,b.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-md bg-muted text-sm",children:J.includes(d)?d:(0,b.jsx)("span",{className:"text-xs font-semibold",children:d})})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:a.name})]},a.id)}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{"data-tour":"create-workspace",onClick:()=>v(!0),className:"flex h-9 w-9 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"}),children:(0,b.jsx)(g.Plus,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.newWorkspace")})]})]})}),(0,b.jsxs)("div",{className:"mt-2 flex flex-col items-center gap-1",children:[(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>i.push("/missions"),className:`rounded-lg p-2 transition-colors ${"/missions"===j?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,b.jsx)(p,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("missions.navLabel")})]}),(c=Z||a[0]?.id)?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>i.push(`/workspaces/${c}/notes`),className:`rounded-lg p-2 transition-colors ${j.includes("/notes")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,b.jsx)(m.FileText,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.notes")})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>i.push(`/workspaces/${c}/assets`),className:`rounded-lg p-2 transition-colors ${j.includes("/assets")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,b.jsx)(n.FolderOpen,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.assets")})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)("button",{onClick:()=>i.push(`/workspaces/${c}/archive`),className:`rounded-lg p-2 transition-colors ${j.includes("/archive")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,b.jsx)(f.Archive,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{side:"right",sideOffset:8,children:l("sidebar.archive")})]})]}):null]}),(0,b.jsx)(M,{open:s,onOpenChange:v,title:l("workspace.create"),name:P,onNameChange:Q,icon:R,onIconChange:S,onSubmit:_,submitLabel:l("common.create"),nameLabel:l("workspace.name"),iconLabel:l("workspace.icon"),namePlaceholder:l("workspace.namePlaceholder"),cancelLabel:l("common.cancel")})]})}return(0,b.jsxs)("aside",{className:"noise relative flex h-screen w-56 flex-col border-r border-border bg-sidebar",children:[(0,b.jsxs)("div",{className:"relative z-10 flex items-center gap-3 px-4 py-4",children:[(0,b.jsx)("img",{src:"/logo.png",alt:"Tower",className:"h-9 w-9 rounded-lg"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-semibold tracking-tight text-foreground",children:"Tower"}),(0,b.jsx)("div",{className:"text-[10px] font-medium uppercase tracking-widest text-muted-foreground",children:"Studio"})]}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon-xs",onClick:$,className:"text-muted-foreground",title:l("sidebar.collapse"),children:(0,b.jsx)(k.ChevronsLeft,{className:"h-4 w-4"})})]}),(0,b.jsxs)("div",{className:"relative z-10 flex items-center justify-between px-4 py-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:l("sidebar.workspace")}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground","data-tour":"create-workspace",onClick:()=>{Q(""),S(J[0]),v(!0)},title:l("sidebar.newWorkspace"),children:(0,b.jsx)(g.Plus,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)(r.ScrollArea,{className:"relative z-10 mt-2 flex-1 min-h-0",children:(0,b.jsx)("div",{className:"px-2 py-1",children:(0,b.jsx)(G.DndContext,{id:"workspace-sidebar",sensors:X,collisionDetection:G.closestCenter,onDragEnd:Y,children:(0,b.jsx)(H.SortableContext,{items:V.map(a=>a.id),strategy:H.verticalListSortingStrategy,children:V.map(a=>(0,b.jsx)(L,{ws:a,isActive:Z===a.id,icon:ae(a),disableDelete:V.length<=1,t:l,onSelect:()=>{Z!==a.id&&i.push(`/workspaces/${a.id}`)},onEdit:()=>ab(a),onManageLabels:()=>ad(a.id),onDelete:()=>ac(a.id,a.name)},a.id))})})})}),(0,b.jsxs)(e.default,{href:"/missions",className:`relative z-10 flex items-center gap-2 border-t border-border px-4 py-3 text-[11px] cursor-pointer transition-colors ${"/missions"===j?"text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,b.jsx)(p,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:l("missions.navLabel")})]}),(h=Z||a[0]?.id)?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(e.default,{href:`/workspaces/${h}/notes`,className:"relative z-10 flex items-center gap-2 border-t border-border px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,b.jsx)(m.FileText,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:l("sidebar.notes")})]}),(0,b.jsxs)(e.default,{href:`/workspaces/${h}/assets`,className:"relative z-10 flex items-center gap-2 px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,b.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:l("sidebar.assets")})]}),(0,b.jsxs)(e.default,{href:`/workspaces/${h}/archive`,className:"relative z-10 flex items-center gap-2 px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,b.jsx)(f.Archive,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:l("sidebar.archive")})]})]}):null,(0,b.jsx)(M,{open:s,onOpenChange:v,title:l("workspace.create"),name:P,onNameChange:Q,icon:R,onIconChange:S,onSubmit:_,submitLabel:l("common.create"),nameLabel:l("workspace.name"),iconLabel:l("workspace.icon"),namePlaceholder:l("workspace.namePlaceholder"),cancelLabel:l("common.cancel")}),(0,b.jsx)(M,{open:w,onOpenChange:a=>{B(a),a||U(null)},title:l("workspace.edit"),name:P,onNameChange:Q,icon:R,onIconChange:S,onSubmit:aa,submitLabel:l("common.save"),nameLabel:l("workspace.name"),iconLabel:l("workspace.icon"),namePlaceholder:l("workspace.namePlaceholder"),cancelLabel:l("common.cancel")}),I&&(0,b.jsx)(O,{open:C,onOpenChange:a=>{D(a),a||N(null)},workspaceId:I})]})}function L({ws:a,isActive:c,icon:d,disableDelete:e,t:f,onSelect:g,onEdit:k,onManageLabels:m,onDelete:n}){var o;let p,r,s,{attributes:t,listeners:u,setNodeRef:v,transform:w,transition:x,isDragging:y}=(0,H.useSortable)({id:a.id}),z={transform:I.CSS.Transform.toString(w),transition:x,opacity:y?.4:1};return(0,b.jsxs)("div",{ref:v,style:z,...t,...u,className:`group relative flex touch-none items-center rounded-lg transition-all ${c?"bg-accent ring-1 ring-primary/15":"hover:bg-accent/60"}`,children:[(0,b.jsxs)("button",{onClick:g,className:`flex flex-1 items-center gap-2.5 px-3 py-2.5 text-left ${c?"cursor-default":"cursor-pointer"}`,children:[(0,b.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-md bg-muted text-sm",children:J.includes(d)?d:(0,b.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:d})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("div",{className:`truncate text-sm font-medium ${c?"text-foreground":"text-secondary-foreground"}`,children:a.name}),(0,b.jsx)("div",{className:"text-[11px] text-muted-foreground",children:(o=a.updatedAt,r=Math.floor((p=Date.now()-new Date(o).getTime())/6e4),s=Math.floor(p/36e5),r<60?`${r}m ago`:s<24?`${s}h ago`:`${Math.floor(s/24)}d ago`)})]})]}),(0,b.jsxs)(q.DropdownMenu,{children:[(0,b.jsx)(q.DropdownMenuTrigger,{render:(0,b.jsx)("button",{className:"mr-2 rounded-md p-1 text-muted-foreground opacity-0 transition-all hover:bg-background hover:text-foreground group-hover:opacity-100",onClick:a=>a.stopPropagation()}),children:(0,b.jsx)(j.MoreHorizontal,{className:"h-3.5 w-3.5"})}),(0,b.jsxs)(q.DropdownMenuContent,{align:"start",side:"right",children:[(0,b.jsxs)(q.DropdownMenuItem,{onClick:k,children:[(0,b.jsx)(h.Pencil,{className:"mr-2 h-3.5 w-3.5"}),f("sidebar.rename")]}),(0,b.jsxs)(q.DropdownMenuItem,{onClick:m,children:[(0,b.jsx)(l.Tag,{className:"mr-2 h-3.5 w-3.5"}),f("sidebar.manageLabels")]}),(0,b.jsxs)(q.DropdownMenuItem,{className:e?"text-muted-foreground opacity-50":"text-rose-400",disabled:e,onClick:n,children:[(0,b.jsx)(i.Trash2,{className:"mr-2 h-3.5 w-3.5"}),f("sidebar.delete")]})]})]})]})}function M({open:a,onOpenChange:c,title:d,name:e,onNameChange:f,icon:g,onIconChange:h,onSubmit:i,submitLabel:j,nameLabel:k,iconLabel:l,namePlaceholder:m,cancelLabel:n}){return(0,b.jsx)(s.Dialog,{open:a,onOpenChange:c,disablePointerDismissal:!0,children:(0,b.jsxs)(s.DialogContent,{className:"sm:max-w-sm",children:[(0,b.jsx)(s.DialogHeader,{children:(0,b.jsx)(s.DialogTitle,{children:d})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:k}),(0,b.jsx)(v.Input,{placeholder:m,value:e,onChange:a=>f(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault(),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:l}),(0,b.jsx)("div",{className:"mt-1.5 grid grid-cols-6 gap-1.5",children:J.map(a=>(0,b.jsx)("button",{onClick:()=>h(a),className:`flex h-10 w-10 items-center justify-center rounded-lg text-lg transition-all ${g===a?"bg-primary/15 ring-2 ring-primary/30 scale-110":"bg-muted hover:bg-accent"}`,children:a},a))})]})]}),(0,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(u.Button,{variant:"outline",onClick:()=>c(!1),children:n}),(0,b.jsx)(u.Button,{onClick:i,disabled:!e.trim(),className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:j})]})]})})}let N=["#3b82f6","#ef4444","#f59e0b","#10b981","#8b5cf6","#ec4899","#06b6d4","#f97316"];function O({open:a,onOpenChange:d,workspaceId:e}){let{t:f}=(0,E.useI18n)(),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(N[0]);(0,c.useEffect)(()=>{a&&(0,B.getLabelsForWorkspace)(e).then(h)},[a,e]);let m=async()=>{i.trim()&&(await C({name:i.trim(),color:k,workspaceId:e}),h(await (0,B.getLabelsForWorkspace)(e)),j(""))},n=async a=>{await D(a),h(b=>b.filter(b=>b.id!==a))};return(0,b.jsx)(s.Dialog,{open:a,onOpenChange:d,disablePointerDismissal:!0,children:(0,b.jsxs)(s.DialogContent,{className:"sm:max-w-sm",children:[(0,b.jsx)(s.DialogHeader,{children:(0,b.jsx)(s.DialogTitle,{children:f("label.manage")})}),(0,b.jsxs)("div",{className:"space-y-3 py-2",children:[g.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"h-3 w-3 rounded-full",style:{backgroundColor:a.color}}),(0,b.jsx)("span",{className:"flex-1 text-sm text-foreground",children:a.name}),a.isBuiltin?(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:f("label.builtin")}):(0,b.jsx)("button",{onClick:()=>n(a.id),className:"text-xs text-rose-400 hover:text-rose-300",children:f("common.delete")})]},a.id)),(0,b.jsxs)("div",{className:"border-t border-border pt-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(v.Input,{placeholder:f("label.name"),value:i,onChange:a=>j(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault(),className:"flex-1 h-8"}),(0,b.jsx)(u.Button,{size:"sm",onClick:m,disabled:!i.trim(),className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:f("label.add")})]}),(0,b.jsx)("div",{className:"mt-2 flex gap-1.5",children:N.map(a=>(0,b.jsx)("button",{onClick:()=>l(a),className:`h-5 w-5 rounded-full transition-all ${k===a?"ring-2 ring-offset-2 ring-offset-background ring-foreground/30 scale-110":""}`,style:{backgroundColor:a}},a))})]})]})]})})}var P=a.i(940271),Q=a.i(573242),R=a.i(369289);let S=(0,o.default)("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);var T=a.i(851378);let U=(0,o.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var V=a.i(761052),W=a.i(86354);a.s([],516474),a.i(516474);var X=a.i(213200),Y=a.i(862306);let Z=c.createContext(void 0);function $(){let a=c.useContext(Z);if(void 0===a)throw Error((0,Y.default)(13));return a}let _={imageLoadingStatus:()=>null},aa=c.forwardRef(function(a,d){let{className:e,render:f,...g}=a,[h,i]=c.useState("idle"),j=c.useMemo(()=>({imageLoadingStatus:h,setImageLoadingStatus:i}),[h,i]),k=(0,X.useRenderElement)("span",a,{state:{imageLoadingStatus:h},ref:d,props:g,stateAttributesMapping:_});return(0,b.jsx)(Z.Provider,{value:j,children:k})});var ab=a.i(74686),ac=a.i(830067),ad=a.i(398312),ae=a.i(380562),af=a.i(904531),ag=a.i(535011);let ah={..._,...ae.transitionStatusMapping},ai=c.forwardRef(function(a,b){let{className:d,render:e,onLoadingStatusChange:f,referrerPolicy:g,crossOrigin:h,...i}=a,j=$(),k=function(a,{referrerPolicy:b,crossOrigin:d}){let[e,f]=c.useState("idle");return(0,ac.useIsoLayoutEffect)(()=>{if(!a)return f("error"),ag.NOOP;let c=!0,e=new window.Image,g=a=>()=>{c&&f(a)};return f("loading"),e.onload=g("loaded"),e.onerror=g("error"),b&&(e.referrerPolicy=b),e.crossOrigin=d??null,e.src=a,()=>{c=!1}},[a,d,b]),e}(a.src,{referrerPolicy:g,crossOrigin:h}),l="loaded"===k,{mounted:m,transitionStatus:n,setMounted:o}=(0,af.useTransitionStatus)(l),p=c.useRef(null),q=(0,ab.useStableCallback)(a=>{f?.(a),j.setImageLoadingStatus(a)});(0,ac.useIsoLayoutEffect)(()=>{"idle"!==k&&q(k)},[k,q]),(0,ad.useOpenChangeComplete)({open:l,ref:p,onComplete(){l||o(!1)}});let r=(0,X.useRenderElement)("img",a,{state:{imageLoadingStatus:k,transitionStatus:n},ref:[b,p],props:i,stateAttributesMapping:ah,enabled:m});return m?r:null});var aj=a.i(102934);let ak=c.forwardRef(function(a,b){let{className:d,render:e,delay:f,...g}=a,{imageLoadingStatus:h}=$(),[i,j]=c.useState(void 0===f),k=(0,aj.useTimeout)();return c.useEffect(()=>(void 0!==f&&k.start(f,()=>j(!0)),k.clear),[k,f]),(0,X.useRenderElement)("span",a,{state:{imageLoadingStatus:h},ref:b,props:g,stateAttributesMapping:_,enabled:"loaded"!==h&&i})});a.s(["Fallback",0,ak,"Image",0,ai,"Root",0,aa],991134);var al=a.i(991134),al=al,am=a.i(368114);function an({className:a,size:c="default",...d}){return(0,b.jsx)(al.Root,{"data-slot":"avatar","data-size":c,className:(0,am.cn)("group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten",a),...d})}function ao({className:a,...c}){return(0,b.jsx)(al.Fallback,{"data-slot":"avatar-fallback",className:(0,am.cn)("flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",a),...c})}let ap=(0,o.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);var aq=a.i(577565);let ar=(0,o.default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]),as=(0,o.default)("package-2",[["path",{d:"M12 3v6",key:"1holv5"}],["path",{d:"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",key:"187q7i"}],["path",{d:"M3.054 9.013h17.893",key:"grwhos"}]]);var at=a.i(54384);let au=(0,w.createServerReference)("604f7933f9827efb095d99cb2ca2ebaa5f2e5e7f7c",w.callServer,void 0,w.findSourceMapURL,"globalSearch");var av=a.i(68810);let aw=[{id:"all",key:"search.all",icon:Q.Search},{id:"task",key:"search.task",icon:m.FileText},{id:"project",key:"search.project",icon:ap},{id:"repository",key:"search.repository",icon:aq.GitBranch},{id:"note",key:"search.note",icon:ar},{id:"asset",key:"search.asset",icon:as}],ax=["task","project","repository","note","asset"],ay={task:"search.task",project:"search.project",repository:"search.repository",note:"search.note",asset:"search.asset"};function az({result:a,onSelect:c}){let d=aw.find(b=>b.id===a.type)?.icon??m.FileText;return(0,b.jsxs)("button",{onClick:()=>c(a),className:"flex w-full items-center gap-3 border-b border-border/30 px-4 py-3 text-left transition-colors hover:bg-accent last:border-b-0",children:[(0,b.jsx)("div",{className:"rounded-md bg-muted p-1.5",children:(0,b.jsx)(d,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:a.title}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:a.subtitle}),a.snippet&&(0,b.jsx)("div",{className:"text-xs text-muted-foreground/70 truncate mt-0.5",children:a.snippet})]})]})}function aA({open:a,onOpenChange:e}){let f,{t:g}=(0,E.useI18n)(),h=(0,d.useRouter)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)("all"),[m,n]=(0,c.useState)([]),[o,p]=(0,c.useState)(!1),[q,t]=(0,c.useState)(250),v=(0,c.useRef)(null),w=(0,c.useRef)(null);(0,c.useEffect)(()=>{a&&((0,av.getConfigValue)("search.debounceMs",250).then(t),setTimeout(()=>v.current?.focus(),100),j(""),n([]))},[a]),(0,c.useEffect)(()=>{if(w.current&&clearTimeout(w.current),!i.trim()){n([]),p(!1);return}p(!0);let a=!1;return w.current=setTimeout(async()=>{let b=await au(i,k);a||(n(b),p(!1))},q),()=>{w.current&&clearTimeout(w.current),a=!0}},[i,k,q]);let x=(0,c.useCallback)(a=>{h.push(a.navigateTo),e(!1)},[h,e]);return(0,b.jsx)(s.Dialog,{open:a,onOpenChange:e,children:(0,b.jsxs)(s.DialogContent,{className:"sm:max-w-lg p-0 gap-0 overflow-hidden !top-[10vh] !-translate-y-0",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-center border-b border-border px-4",children:[(0,b.jsx)(Q.Search,{className:"h-4 w-4 text-muted-foreground"}),(0,b.jsx)("input",{ref:v,value:i,onChange:a=>j(a.target.value),placeholder:g("search.placeholder"),className:"flex-1 bg-transparent px-3 py-3.5 text-sm text-foreground placeholder-muted-foreground outline-none"}),i&&(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",onClick:()=>{j(""),n([])},className:"text-muted-foreground",children:(0,b.jsx)(at.X,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)("div",{className:"flex items-center gap-1 border-b border-border px-4 py-2",children:aw.map(a=>{let c=a.icon;return(0,b.jsxs)("button",{onClick:()=>l(a.id),className:`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-all ${k===a.id?"bg-primary/10 text-primary ring-1 ring-primary/20":"text-muted-foreground hover:bg-accent hover:text-foreground"}`,children:[(0,b.jsx)(c,{className:"h-3 w-3"}),g(a.key)]},a.id)})}),(0,b.jsxs)(r.ScrollArea,{className:"max-h-80",children:[!i.trim()&&(0,b.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:g("search.typeToSearch")}),i.trim()&&0===m.length&&!o&&(0,b.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:g("search.noResults")}),"all"===k&&m.length>0&&(f=m.reduce((a,b)=>((a[b.type]??=[]).push(b),a),{}),ax.filter(a=>f[a]?.length).map(a=>(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"px-4 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:g(ay[a])}),f[a].map(a=>(0,b.jsx)(az,{result:a,onSelect:x},`${a.type}-${a.id}`))]},a))),"all"!==k&&m.map(a=>(0,b.jsx)(az,{result:a,onSelect:x},`${a.type}-${a.id}`))]})]})})}function aB(a){}let aC=(0,c.createContext)(null);function aD(){return"u">typeof crypto&&crypto.randomUUID?crypto.randomUUID():`msg-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}let aE="assistant-attachment-cache";function aF(a,b,c){try{let d=sessionStorage.getItem(aE),e=d?JSON.parse(d):{};e[a]||(e[a]={}),e[a][b]=c,sessionStorage.setItem(aE,JSON.stringify(e))}catch{}}function aG({children:a}){let[d,e]=(0,c.useState)(!1),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)("sidebar"),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)("idle"),[p,q]=(0,c.useState)(!1),r=(0,c.useRef)([]),s=(0,c.useRef)(null),t=(0,c.useRef)(null),[u,v]=(0,c.useState)([]),[w,x]=(0,c.useState)(null),y=(0,c.useRef)(!1),z=(0,c.useCallback)(()=>{m([...r.current])},[]),A=(0,c.useCallback)(async()=>{i("dialog"===await (0,av.getConfigValue)("assistant.displayMode","sidebar")?"dialog":"sidebar")},[]);(0,c.useEffect)(()=>{A()},[A]);let B=(0,c.useCallback)(async()=>{v([])},[]),C=(0,c.useCallback)(async a=>{q(!0);try{let b=await fetch(`/api/internal/assistant/sessions?sessionId=${encodeURIComponent(a)}`);if(!b.ok)return;let c=await b.json();if(Array.isArray(c.messages)){r.current=c.messages;let b=function(a){try{let b=sessionStorage.getItem(aE);if(!b)return{};return JSON.parse(b)[a]??{}}catch{return{}}}(a);if(Object.keys(b).length>0){let a=0;r.current=r.current.map(c=>{if("user"===c.role){let d=b[a];if(a++,d?.length)return{...c,attachmentFilenames:d}}return c})}m([...r.current])}}catch{}finally{q(!1)}},[]);(0,c.useEffect)(()=>{B()},[B,C]);let D=(0,c.useCallback)(()=>{t.current?.abort(),s.current=null,y.current=!1,x(null),aB(null),r.current=[],m([]),o("idle")},[]),E=(0,c.useCallback)(a=>{t.current?.abort(),s.current=a,y.current=!0,x(a),aB(a),r.current=[],m([]),o("idle"),C(a)},[C]),F=(0,c.useCallback)(a=>{v([]),w===a&&D()},[w,D]),G=(0,c.useCallback)(async()=>{g(!0);try{await A(),e(!0)}finally{g(!1)}},[A]),H=(0,c.useCallback)(()=>{e(!1),t.current?.abort()},[]),I=(0,c.useCallback)(()=>{d||f?H():G()},[d,f,H,G]);(0,c.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"l"===a.key&&(a.preventDefault(),I())};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[I]);let J=(0,c.useCallback)(async(a,b)=>{if(!a.trim()&&!b?.attachmentFilenames?.length)return;t.current?.abort();let c=new AbortController;t.current=c;let d=0!==r.current.length||y.current?null:a,e=aD();if(r.current=[...r.current,{id:aD(),role:"user",content:a,attachmentFilenames:b?.attachmentFilenames?.length?b.attachmentFilenames:void 0},{id:e,role:"thinking",content:"",isStreaming:!0}],z(),b?.attachmentFilenames?.length&&s.current){let a=r.current.filter(a=>"user"===a.role).length-1;aF(s.current,a,b.attachmentFilenames)}o("connecting");let f=null;try{let g=await fetch("/api/internal/assistant/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:a,sessionId:s.current,attachmentFilenames:b?.attachmentFilenames??[]}),signal:c.signal});if(!g.ok||!g.body)throw Error(`HTTP ${g.status}`);o("streaming");let h=g.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:c}=await h.read();if(a)break;let g=(j+=i.decode(c,{stream:!0})).split("\n");for(let a of(j=g.pop()??"",g)){let c;if(a.startsWith("data: ")){try{c=JSON.parse(a.slice(6).trim())}catch{continue}if(c.sessionId){let a=s.current;if(s.current=c.sessionId,d&&!y.current&&c.sessionId!==a){y.current=!0;new Date().toISOString();c.sessionId,function(a){let b=a.trim();b&&b.length>30&&b.slice(0,30)}(d),v([]),x(c.sessionId),aB(c.sessionId),b?.attachmentFilenames?.length&&aF(c.sessionId,0,b.attachmentFilenames)}}switch(c.type){case"text_delta":{let a=r.current.filter(a=>a.id!==e);f?r.current=a.map(a=>a.id===f?{...a,content:a.content+(c.content??""),isStreaming:!0}:a):(f=aD(),r.current=[...a,{id:f,role:"assistant",content:c.content??"",isStreaming:!0}]),z();break}case"text":{let a=r.current.filter(a=>a.id!==e);f?r.current=a.map(a=>a.id===f?{...a,content:c.content??a.content,isStreaming:!0}:a):(f=aD(),r.current=[...a,{id:f,role:"assistant",content:c.content??"",isStreaming:!0}]),z();break}case"tool_start":{let a=r.current.filter(a=>a.id!==e);f?(r.current=a.map(a=>a.id===f?{...a,isStreaming:!1}:a),f=null):r.current=a,r.current=[...r.current,{id:aD(),role:"tool",content:`Calling ${c.content??"tool"}...`,toolName:c.content,isStreaming:!0}],z();break}case"tool_use":{let a=r.current.filter(a=>a.id!==e),b=f?a.map(a=>a.id===f?{...a,isStreaming:!1}:a):a;f=null,r.current=[...b,{id:aD(),role:"tool",content:JSON.stringify(c.toolInput??{},null,2),toolName:c.content}],z();break}case"tool_result":r.current=[...r.current,{id:aD(),role:"tool",content:String(c.toolOutput??""),toolName:`${c.content??"tool"} (result)`}],z();break;case"error":r.current=[...r.current.filter(a=>a.id!==e),{id:aD(),role:"assistant",content:`Error: ${c.content??"Unknown error"}`}],z(),o("error");break;case"done":f&&(r.current=r.current.map(a=>a.id===f?{...a,isStreaming:!1}:a)),r.current=r.current.filter(a=>a.id!==e),z(),o("idle")}}}}r.current=r.current.filter(a=>a.id!==e),z(),o(a=>"streaming"===a?"idle":a),B()}catch(a){if("AbortError"===a.name)return;r.current=[...r.current.filter(a=>a.id!==e),{id:aD(),role:"assistant",content:`Connection error: ${a.message??"Unknown error"}`}],z(),o("error")}},[z,B]),K=(0,c.useCallback)(()=>{t.current?.abort(),t.current=null;let a=[...r.current].reverse().find(a=>"user"===a.role),b=a?.content??null;if(a){let b=r.current.lastIndexOf(a);r.current=r.current.slice(0,b),m([...r.current])}return o("idle"),b},[]),L=l[l.length-1],M="connecting"===n||"streaming"===n||L?.role==="thinking"&&!0===L.isStreaming;return(0,b.jsx)(aC.Provider,{value:{isOpen:d,isStarting:f,displayMode:h,worktreePath:j,toggleAssistant:I,closeAssistant:H,chatMessages:l,chatStatus:n,isChatThinking:M,isLoadingHistory:p,sendChatMessage:J,cancelChat:K,sessions:u,activeSessionId:w,createNewSession:D,switchSession:E,removeSession:F,refreshSessions:B},children:a})}function aH(){let a=(0,c.useContext)(aC);if(!a)throw Error("useAssistant must be used within an AssistantProvider");return a}var aI=a.i(704494),aJ=a.i(668116),aK=a.i(616335),aL=a.i(394259),aM=a.i(487410),aN=a.i(429246);function aO(a){return a.replace(/\.git\/?$/,"")}a.i(446786),a.i(814747);let aP=(0,w.createServerReference)("406b8a94d56dcc1cfb88a6eb7fee2c998f13959855",w.callServer,void 0,w.findSourceMapURL,"resolveGitLocalPath");var aQ=a.i(742382),aR=a.i(43775);function aS({open:a,onOpenChange:d,onCreateProject:e}){let{t:f,locale:g}=(0,E.useI18n)(),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)("FRONTEND"),[A,B]=(0,c.useState)("idle"),[C,D]=(0,c.useState)(""),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(!1),K=()=>{i(""),k(""),m(""),p(""),r(""),x(!1),z("FRONTEND"),B("idle"),D(""),H(!1)},L=async()=>{if(q.trim()&&!G&&"success"===A){H(!0);try{let a=await (0,aQ.analyzeProjectDirectory)(q.trim(),g);m(a)}catch{F.toast.error(f("project.analyzeError"))}finally{H(!1)}}},M=async a=>{p(a),B("idle"),D("");let b=function(a){let b,c=a.match(/^git@([^:]+):(.+)$/);if(c)return{host:c[1],pathSegments:aO(c[2]).split("/").filter(Boolean)};try{b=new URL(a)}catch{return null}return{host:b.hostname,pathSegments:aO(decodeURIComponent(b.pathname)).split("/").filter(Boolean)}}(a);b&&b.pathSegments.length>0&&i(b.pathSegments[b.pathSegments.length-1]),w||r(await aP(a))},N=async()=>{if(o.trim()&&q.trim()){B("cloning"),D("");try{let a=function(a){let b=a.trim();if(!b)return"";if(b.startsWith("git@")||b.startsWith("ssh://")||b.endsWith(".git"))return b;try{let a=new URL(b),c=a.hostname,d=decodeURIComponent(a.pathname).split("/").filter(Boolean);if("code.iflytek.com"===c){let a=[...d];"osc"===a[0]&&"_source"===a[1]&&(a=a.slice(2));let e=a.indexOf("-");if(e>0&&(a=a.slice(0,e)),0===a.length)return b;return`https://${c}/${a.join("/")}.git`}return`${a.origin}${a.pathname.replace(/\/$/,"")}.git`}catch{return b}}(o.trim()),b=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clone",url:a,path:q.trim()})}),c=await b.json();if(!b.ok){B("error"),D(c.error||"Clone failed");return}B("success")}catch{B("error"),D("Network error")}}},O=async()=>{h.trim()&&(await e?.({name:h.trim(),alias:j.trim()||void 0,description:l.trim()||void 0,gitUrl:o.trim()||void 0,localPath:q.trim()||void 0,projectType:y}),K(),d(!1))};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.Dialog,{open:a,onOpenChange:a=>{d(a),a||K()},disablePointerDismissal:!0,children:(0,b.jsxs)(s.DialogContent,{style:{maxWidth:"32rem"},children:[(0,b.jsx)(s.DialogHeader,{children:(0,b.jsx)(s.DialogTitle,{children:f("topbar.newProject")})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.gitUrl")}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:f("project.gitUrlHint")}),(0,b.jsx)(v.Input,{placeholder:f("project.gitPlaceholder"),value:o,onChange:a=>M(a.target.value),className:"mt-1.5 font-mono text-xs"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.localPath")}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:f("project.localPathHint")}),(0,b.jsxs)("div",{className:"mt-1.5 flex gap-2",children:[(0,b.jsx)(v.Input,{placeholder:f("project.localPathPlaceholder"),value:q,onChange:a=>{r(a.target.value),x(!0)},className:"flex-1 min-w-0 font-mono text-xs"}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsxs)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{type:"button",variant:"outline",onClick:()=>J(!0),className:"shrink-0 gap-1.5 px-2.5 text-xs text-muted-foreground"}),children:[(0,b.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:f("folder.browse")})]}),(0,b.jsx)(t.TooltipContent,{children:f("folder.selectFolder")})]})]}),q.trim().startsWith("~")&&(0,b.jsxs)("p",{className:"mt-1 flex items-center gap-1 text-[11px] text-amber-400",children:[(0,b.jsx)(aK.AlertCircle,{className:"h-3 w-3"}),f("project.tildeWarning")]}),o.trim()&&q.trim()&&(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsxs)(u.Button,{type:"button",disabled:"cloning"===A||"success"===A,onClick:N,className:"gap-1.5 text-xs bg-emerald-500/15 text-emerald-300 ring-1 ring-emerald-500/25 hover:bg-emerald-500/25 disabled:opacity-50",children:["cloning"===A?(0,b.jsx)(aI.Loader2,{className:"h-3 w-3 animate-spin"}):"success"===A?(0,b.jsx)(aJ.Check,{className:"h-3 w-3"}):(0,b.jsx)(aq.GitBranch,{className:"h-3 w-3"}),"cloning"===A?f("git.cloning"):"success"===A?f("git.cloned"):f("git.clone")]}),"error"===A&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-rose-400",children:[(0,b.jsx)(aK.AlertCircle,{className:"h-3 w-3"}),C]}),"success"===A&&(0,b.jsx)("span",{className:"text-[11px] text-emerald-400",children:f("git.cloneSuccess")})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.name")}),(0,b.jsx)(v.Input,{placeholder:f("project.namePlaceholder"),value:h,onChange:a=>i(a.target.value),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.type.label")}),(0,b.jsx)("div",{className:"mt-1.5",children:(0,b.jsx)(aM.SegmentedControl,{options:[{value:"FRONTEND",label:f("project.type.frontend")},{value:"BACKEND",label:f("project.type.backend")}],value:y,onChange:z})})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.alias")}),(0,b.jsx)(v.Input,{placeholder:f("project.aliasPlaceholder"),value:j,onChange:a=>k(a.target.value),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mt-0.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.description")}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsxs)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{type:"button",variant:"ghost",onClick:L,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!q.trim()||G?"opacity-50":""}`}),children:[G?(0,b.jsx)(aI.Loader2,{className:"h-3 w-3 animate-spin"}):(0,b.jsx)(aL.Sparkles,{className:"h-3 w-3"}),G?f("project.analyzing"):f("project.genDesc")]}),(0,b.jsx)(t.TooltipContent,{children:q.trim()?"success"!==A?f("project.genDescNotCloned"):f("project.genDescReady"):f("project.genDescNoPath")})]})]}),(0,b.jsx)(aN.Textarea,{placeholder:f("project.descPlaceholder"),value:l,onChange:a=>m(a.target.value),rows:3,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,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(u.Button,{variant:"outline",onClick:()=>{d(!1),K()},children:f("common.cancel")}),(0,b.jsx)(u.Button,{onClick:O,disabled:!h.trim()||G,className:"bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",children:f("common.create")})]})]})}),(0,b.jsx)(aR.FolderBrowserDialog,{open:I,onOpenChange:J,onSelect:a=>{if(r(a),x(!0),!h.trim()){let b=a.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??"";b&&i(b)}}})]})}var aT=a.i(976268),aT=aT,aU=a.i(563658);let aV=(0,w.createServerReference)("60c4a614995207d6d13933acbd69d413cccca56129",w.callServer,void 0,w.findSourceMapURL,"migrateProjectPath"),aW=(0,w.createServerReference)("4094d00d07ed9d0b8c497b5242711fd7d97273f4d6",w.callServer,void 0,w.findSourceMapURL,"checkMigrationSafety");function aX({open:a,onOpenChange:d,onCreateProject:e}){let{t:f,locale:g}=(0,E.useI18n)(),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)("FRONTEND"),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!1),[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(""),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(!1),S=()=>{i(""),k(""),m(""),p(""),r(""),z("FRONTEND"),B(!1),D(!1),H(""),J(!1),L(""),N(""),P(!1),R(!1)},T=async a=>{r(a),B(!1),D(!1),H(""),L(""),N(""),P(!1),i(a.split("/").filter(Boolean).pop()??"");try{let b=await fetch(`/api/git?path=${encodeURIComponent(a)}`);if(b.ok){let a=await b.json();if(a.isGit&&a.remoteUrl){p(a.remoteUrl),B(!0);let b=a.remoteUrl.match(/\/([^/]+?)(?:\.git)?$/);b&&i(b[1])}}}catch{}},U=(0,c.useCallback)(async a=>{if(D(a),L(""),N(""),P(!1),!a)return void H("");if(o)try{let a=await aP(o);a&&(H(a),a===q&&P(!0))}catch{}if(q)try{let a=await fetch(`/api/git?path=${encodeURIComponent(q)}&checkWorktrees=true`);a.ok&&(await a.json()).hasWorktrees&&N(f("project.worktreeWarning"))}catch{}},[o,q]),V=async()=>{if(q&&!Q){R(!0);try{let a=await (0,aQ.analyzeProjectDirectory)(q.trim(),g);m(a)}catch{F.toast.error(f("project.analyzeError"))}finally{R(!1)}}},W=async()=>{if(!h.trim())return;let a={name:h.trim(),alias:j.trim()||void 0,description:l.trim()||void 0,gitUrl:o.trim()||void 0,localPath:q.trim()||void 0,projectType:y},b=await e?.(a);if(C&&G&&G!==q&&b&&"id"in b){J(!0),L("");try{let a=await aW(b.id);if(!a.safe)return void L(a.reason);let c=await aV(b.id,G);if(!c.success)return void L(c.error??f("project.migrateError"));F.toast.success(f("project.migrateSuccess"))}catch(b){let a=b instanceof Error?b.message:String(b);L(`${f("project.migrateError")}:${a}`);return}finally{J(!1)}}S(),d(!1)},X=!h.trim()||!q.trim()||I||Q||C&&!!M;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.Dialog,{open:a,onOpenChange:a=>{d(a),a||S()},disablePointerDismissal:!0,children:(0,b.jsxs)(s.DialogContent,{style:{maxWidth:"32rem"},children:[(0,b.jsx)(s.DialogHeader,{children:(0,b.jsx)(s.DialogTitle,{children:f("topbar.importProject")})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.localPath")}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:f("project.importHint")}),(0,b.jsxs)("div",{className:"mt-1.5 flex gap-2",children:[(0,b.jsx)(v.Input,{value:q,readOnly:!0,placeholder:f("project.localPathPlaceholder"),className:"flex-1 font-mono text-xs bg-muted/30"}),(0,b.jsxs)(u.Button,{type:"button",variant:"outline",onClick:()=>x(!0),className:"shrink-0 gap-1.5",children:[(0,b.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5"}),f("folder.browse")]})]}),A&&(0,b.jsx)("p",{className:"mt-1.5 text-[11px] text-emerald-400",children:f("project.autoDetected")})]}),o&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.gitUrl")}),(0,b.jsx)(v.Input,{value:o,onChange:a=>p(a.target.value),className:"mt-1.5 font-mono text-xs"})]}),A&&q&&(0,b.jsxs)("div",{className:"rounded-md border border-border p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:f("project.migrate")}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:f("project.migrateHint")})]}),(0,b.jsx)(aU.Switch,{checked:C,onCheckedChange:a=>U(a)})]}),C&&(0,b.jsxs)("div",{className:"space-y-2 pt-1",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-[10px] font-medium text-muted-foreground",children:f("project.targetPath")}),(0,b.jsx)(v.Input,{value:G,onChange:a=>{H(a.target.value),P(a.target.value===q)},placeholder:"/path/to/canonical/location",className:"mt-1 font-mono text-xs"})]}),O&&(0,b.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-sky-400",children:[(0,b.jsx)(aT.default,{className:"h-3 w-3"}),f("project.samePathInfo")]}),M&&(0,b.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-amber-400",children:[(0,b.jsx)(aK.AlertCircle,{className:"h-3 w-3"}),M]}),K&&(0,b.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-rose-400",children:[(0,b.jsx)(aK.AlertCircle,{className:"h-3 w-3"}),K]})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.name")}),(0,b.jsx)(v.Input,{placeholder:f("project.namePlaceholder"),value:h,onChange:a=>i(a.target.value),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.type.label")}),(0,b.jsx)("div",{className:"mt-1.5",children:(0,b.jsx)(aM.SegmentedControl,{options:[{value:"FRONTEND",label:f("project.type.frontend")},{value:"BACKEND",label:f("project.type.backend")}],value:y,onChange:z})})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.alias")}),(0,b.jsx)(v.Input,{placeholder:f("project.aliasPlaceholder"),value:j,onChange:a=>k(a.target.value),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mt-0.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:f("project.description")}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsxs)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{type:"button",variant:"ghost",onClick:V,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!q||Q?"opacity-50":""}`}),children:[Q?(0,b.jsx)(aI.Loader2,{className:"h-3 w-3 animate-spin"}):(0,b.jsx)(aL.Sparkles,{className:"h-3 w-3"}),Q?f("project.analyzing"):f("project.genDesc")]}),(0,b.jsx)(t.TooltipContent,{children:q?f("project.genDescReady"):f("project.genDescNoPath")})]})]}),(0,b.jsx)(aN.Textarea,{placeholder:f("project.descPlaceholder"),value:l,onChange:a=>m(a.target.value),rows:3,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,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(u.Button,{variant:"outline",onClick:()=>{d(!1),S()},children:f("common.cancel")}),(0,b.jsx)(u.Button,{onClick:W,disabled:X,className:"bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",children:I?f("project.migrating"):f("common.create")})]})]})}),(0,b.jsx)(aR.FolderBrowserDialog,{open:w,onOpenChange:x,onSelect:a=>T(a)})]})}function aY({className:a}){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",className:a,children:(0,b.jsx)("path",{d:"M12 .5C5.65.5.5 5.65.5 12.02c0 5.08 3.29 9.39 7.86 10.91.58.11.79-.25.79-.56v-2c-3.2.7-3.87-1.36-3.87-1.36-.52-1.34-1.27-1.7-1.27-1.7-1.04-.71.08-.7.08-.7 1.15.08 1.76 1.18 1.76 1.18 1.02 1.76 2.68 1.25 3.34.96.1-.74.4-1.25.72-1.54-2.56-.29-5.25-1.28-5.25-5.69 0-1.26.45-2.28 1.18-3.09-.12-.29-.51-1.46.11-3.04 0 0 .97-.31 3.18 1.18a11.1 11.1 0 0 1 5.79 0c2.2-1.49 3.18-1.18 3.18-1.18.62 1.58.23 2.75.11 3.04.74.81 1.18 1.83 1.18 3.09 0 4.42-2.69 5.4-5.25 5.69.41.36.78 1.05.78 2.12v3.14c0 .31.21.68.79.56A11.52 11.52 0 0 0 23.5 12.02C23.5 5.65 18.35.5 12 .5Z"})})}function aZ({onCreateProject:a,username:e}){let{t:f,locale:h,setLocale:i}=(0,E.useI18n)(),{isOpen:j,toggleAssistant:k}=aH(),{resolvedTheme:l,toggleTheme:m,triggerRef:o}=function(){let{resolvedTheme:a,setTheme:b}=(0,P.useTheme)(),d=(0,c.useRef)(null),e=(0,c.useCallback)(c=>{let d="dark"===a?"light":"dark";if("u">typeof document&&"startViewTransition"in document&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches){let a=c?.clientX??window.innerWidth/2,e=c?.clientY??0,f=Math.hypot(Math.max(a,window.innerWidth-a),Math.max(e,window.innerHeight-e));document.startViewTransition(()=>{b(d)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${e}px)`,`circle(${f}px at ${a}px ${e}px)`]},{duration:400,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})}else b(d)},[a,b]);return{resolvedTheme:a,toggleTheme:e,triggerRef:d}}(),p=(0,d.useRouter)(),[r,s]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"k"===a.key&&(a.preventDefault(),s(!0))};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("header",{className:"flex h-12 items-center justify-between border-b border-border bg-background/80 px-5 backdrop-blur-sm",children:[(0,b.jsx)("div",{className:"w-40"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(u.Button,{variant:"outline",onClick:()=>s(!0),className:"h-8 w-[400px] justify-start gap-2 bg-muted/50 text-muted-foreground hover:bg-muted",children:[(0,b.jsx)(Q.Search,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{className:"flex-1 text-left",suppressHydrationWarning:!0,children:f("topbar.searchPlaceholder")}),(0,b.jsxs)("kbd",{className:"mr-1 flex items-center gap-0.5 rounded border border-border bg-background px-1.5 py-0.5 text-[10px] font-mono",children:[(0,b.jsx)(S,{className:"h-2.5 w-2.5"}),"K"]})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{delay:500,render:(0,b.jsx)("button",{"data-tour":"open-assistant",onClick:k,"aria-label":f("assistant.iconLabel"),className:["cursor-pointer rounded-lg p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",j?"bg-accent text-foreground":""].join(" ")}),children:(0,b.jsx)(U,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{children:f("assistant.iconLabel")})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsxs)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{variant:"ghost",onClick:()=>i("zh"===h?"en":"zh"),className:"text-muted-foreground"}),children:[(0,b.jsx)(T.Globe,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{className:"text-[11px] font-semibold",children:"zh"===h?"EN":"中"})]}),(0,b.jsx)(t.TooltipContent,{children:f("settings.language")})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{ref:o,variant:"ghost",size:"icon",onClick:m,className:"text-muted-foreground"}),children:"dark"===l?(0,b.jsx)(V.Sun,{className:"h-4 w-4"}):(0,b.jsx)(W.Moon,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{children:f("settings.theme")})]}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{render:(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",onClick:()=>window.open("https://github.com/jp-liu/tower","_blank","noopener,noreferrer"),className:"text-muted-foreground","aria-label":f("topbar.github")}),children:(0,b.jsx)(aY,{className:"h-4 w-4"})}),(0,b.jsx)(t.TooltipContent,{children:f("topbar.github")})]}),(0,b.jsx)("div",{className:"h-4 w-px bg-border"}),(0,b.jsxs)(u.Button,{variant:"outline",className:"gap-1.5 ring-1 ring-border hover:bg-accent",onClick:()=>y(!0),children:[(0,b.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5"}),f("topbar.importProject")]}),(0,b.jsxs)(u.Button,{"data-tour":"create-project",className:"gap-1.5 bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",onClick:()=>w(!0),children:[(0,b.jsx)(g.Plus,{className:"h-3.5 w-3.5"}),f("topbar.newProject")]}),(0,b.jsxs)(q.DropdownMenu,{children:[(0,b.jsx)(q.DropdownMenuTrigger,{render:(0,b.jsxs)("button",{className:"ml-0.5 flex cursor-pointer items-center gap-1.5 rounded-lg px-2.5 py-1 transition-colors hover:bg-accent",children:[e&&(0,b.jsx)("span",{className:"max-w-[80px] truncate text-xs text-muted-foreground",children:e}),(0,b.jsx)(an,{className:"h-7 w-7 ring-1 ring-border",children:(0,b.jsx)(ao,{className:"bg-emerald-500/20 text-emerald-400 text-[10px] font-semibold",children:e?e.trim().split(/\s+/).filter(a=>a.length>0).slice(0,2).map(a=>a[0].toUpperCase()).join(""):"U"})})]})}),(0,b.jsx)(q.DropdownMenuContent,{align:"end",sideOffset:8,className:"w-40",children:(0,b.jsxs)(q.DropdownMenuItem,{onClick:()=>p.push("/settings"),children:[(0,b.jsx)(R.Settings,{className:"mr-2 h-3.5 w-3.5"}),f("settings.title")]})})]})]})]}),(0,b.jsx)(aA,{open:r,onOpenChange:s}),(0,b.jsx)(aS,{open:v,onOpenChange:w,onCreateProject:a}),(0,b.jsx)(aX,{open:x,onOpenChange:y,onCreateProject:a})]})}var a$=a.i(347872),a_=a.i(595999),a0=a.i(673539),a1=a.i(969032),a2=a.i(442620);let a3=(0,a1.default)(async()=>{},{loadableGenerated:{modules:[103363]},ssr:!1});function a4({mode:a}){let{isOpen:c,closeAssistant:d,sessions:e,activeSessionId:f,createNewSession:h,switchSession:j,removeSession:k}=aH(),{t:l}=(0,E.useI18n)(),m=e.find(a=>a.id===f),n=m?.title??l("assistant.newSession");return(0,b.jsxs)("div",{className:"sidebar"===a?"min-w-[320px] max-w-[480px] w-[30vw] shrink-0 border-r border-border flex flex-col bg-sidebar overflow-hidden":"flex flex-col h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"header-sm flex items-center px-4 gap-2 bg-sidebar",children:[(0,b.jsx)(U,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"text-sm font-semibold text-foreground shrink-0",children:l("assistant.title")}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)(q.DropdownMenu,{children:[(0,b.jsxs)(q.DropdownMenuTrigger,{className:"flex items-center gap-1 h-8 px-2 rounded-md text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground max-w-[120px] truncate","aria-label":l("assistant.sessionList"),children:[(0,b.jsx)("span",{className:"truncate",children:n}),(0,b.jsx)(a2.ChevronDown,{className:"h-3 w-3 shrink-0"})]}),(0,b.jsxs)(q.DropdownMenuContent,{side:"bottom",align:"end",sideOffset:4,children:[0===e.length?(0,b.jsx)("div",{className:"px-2 py-4 text-xs text-muted-foreground text-center",children:l("assistant.noSessions")}):e.map(a=>(0,b.jsxs)(q.DropdownMenuItem,{className:"flex items-center justify-between gap-2 pr-1",onClick:()=>j(a.id),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-0.5 min-w-0",children:[(0,b.jsx)("span",{className:"text-xs truncate max-w-[140px]",children:a.title}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(a.updatedAt)})]}),(0,b.jsx)(u.Button,{variant:"ghost",className:"h-6 w-6 p-0 shrink-0 opacity-50 hover:opacity-100 hover:text-destructive",onClick:b=>{b.stopPropagation(),k(a.id)},"aria-label":l("assistant.deleteSession"),children:(0,b.jsx)(i.Trash2,{className:"h-3 w-3"})})]},a.id)),e.length>0&&(0,b.jsx)(q.DropdownMenuSeparator,{}),(0,b.jsxs)(q.DropdownMenuItem,{onClick:h,children:[(0,b.jsx)(g.Plus,{className:"h-3 w-3 mr-1"}),(0,b.jsx)("span",{className:"text-xs",children:l("assistant.newSession")})]})]})]}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",className:"text-muted-foreground",onClick:h,"aria-label":l("assistant.newSession"),children:(0,b.jsx)(g.Plus,{className:"h-4 w-4"})})]}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",className:"text-muted-foreground",onClick:d,"aria-label":l("assistant.closeLabel"),children:(0,b.jsx)(at.X,{className:"h-4 w-4"})})]}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:c?(0,b.jsx)(a3,{}):null})]})}var a5=a.i(190076);function a6({onDismiss:a}){let{t:d}=(0,E.useI18n)(),[e,f]=(0,c.useState)(!1);(0,c.useEffect)(()=>{},[]);let g=async()=>{"default"!==await window.Notification.requestPermission()&&(f(!1),a?.())};return e?(0,b.jsxs)("div",{className:"fixed top-3 left-1/2 -translate-x-1/2 z-[9999] w-auto max-w-lg bg-card border rounded-lg shadow-lg px-4 py-2.5 flex items-center gap-3 animate-in fade-in slide-in-from-top-4 duration-500",children:[(0,b.jsx)(a5.Bell,{className:"h-4 w-4 shrink-0 text-primary"}),(0,b.jsx)("span",{className:"flex-1 text-sm",children:d("notification.permissionPrompt")}),(0,b.jsx)(u.Button,{size:"default",onClick:g,children:d("notification.allow")}),(0,b.jsx)(u.Button,{variant:"ghost",size:"default",onClick:()=>{f(!1),a?.()},children:d("notification.dismiss")})]}):null}a.i(863521);var a7=a.i(327628);let a8=[{target:"create-workspace",titleKey:"tour.step1.title",descKey:"tour.step1.desc",placement:"right"},{target:"create-project",titleKey:"tour.step2.title",descKey:"tour.step2.desc",placement:"bottom",waitForTarget:!0},{target:"open-assistant",titleKey:"tour.step3.title",descKey:"tour.step3.desc",placement:"bottom"}];function a9({onComplete:a}){let{t:d}=(0,E.useI18n)(),[e,f]=(0,c.useState)(0),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(!1),k=(0,c.useRef)(null),l=a8[e],m=(0,c.useCallback)(async()=>{await (0,a7.setConfigValue)("onboarding.tourCompleted",!0),a()},[a]),n=(0,c.useCallback)(()=>l?document.querySelector(`[data-tour="${l.target}"]`):null,[l]),o=(0,c.useCallback)(()=>{let a=n();a?(h(a.getBoundingClientRect()),j(!0)):j(!1)},[n]);(0,c.useEffect)(()=>{o();let a=null;!i&&l?.waitForTarget&&(k.current=new MutationObserver(()=>{let b=n();b&&(h(b.getBoundingClientRect()),j(!0),k.current?.disconnect(),a&&clearTimeout(a))}),k.current.observe(document.body,{childList:!0,subtree:!0}),a=setTimeout(()=>{!n()&&(f(a=>{let b=a+1;return b<a8.length?b:a}),e>=a8.length-1&&m())},5e3));let b=()=>o();return window.addEventListener("resize",b),window.addEventListener("scroll",b,!0),()=>{k.current?.disconnect(),a&&clearTimeout(a),window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0)}},[e,l,n,o,i,m]),(0,c.useEffect)(()=>{let a=setInterval(o,1e3);return()=>clearInterval(a)},[o]);let p=(0,c.useCallback)(()=>{e<a8.length-1?(f(a=>a+1),j(!1)):m()},[e]);return l?(0,b.jsx)(b.Fragment,{children:i&&g&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-[10000]",style:{background:`radial-gradient(
2
2
  ellipse at ${g.left+g.width/2}px ${g.top+g.height/2}px,
3
3
  transparent ${Math.max(g.width,g.height)}px,
4
4
  rgba(0,0,0,0.6) ${Math.max(g.width,g.height)+30}px
@@ -1,3 +1,3 @@
1
- module.exports=[913284,468862,a=>{"use strict";var b=a.i(884664);a.s(["CheckCircle2",()=>b.default],913284);let c=(0,a.i(711796).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,c],468862)},865011,a=>{"use strict";var b=a.i(728778),c=a.i(634910),d=a.i(553798),e=a.i(269280),f=a.i(350739),g=a.i(347165),h=a.i(607219),i=a.i(951192);let j=[{key:"notes",icon:f.FileText},{key:"assets",icon:g.FolderOpen},{key:"archive",icon:h.Archive}];a.s(["SubPageNav",0,function({workspaceId:a}){let{t:f}=(0,i.useI18n)(),g=(0,d.usePathname)(),h=j.find(a=>g.includes(`/${a.key}`))?.key;return(0,b.jsxs)("div",{className:"header-sm flex items-center gap-1 px-4",children:[(0,b.jsxs)(c.default,{href:`/workspaces/${a}`,className:"mr-2 inline-flex h-8 items-center gap-1.5 rounded-md px-2 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:[(0,b.jsx)(e.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:f("archive.backToBoard")})]}),(0,b.jsx)("span",{className:"mr-2 h-4 w-px bg-border"}),j.map(d=>{let e=d.icon,g=h===d.key;return(0,b.jsxs)(c.default,{href:`/workspaces/${a}/${d.key}`,className:`inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-xs font-medium transition-colors ${g?"bg-accent text-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"}`,children:[(0,b.jsx)(e,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:f(`sidebar.${d.key}`)})]},d.key)})]})}])},149234,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(607219),e=a.i(913284),f=a.i(468862),g=a.i(704494),h=a.i(580701),i=a.i(951192),j=a.i(865011),k=a.i(780410);let l=(0,k.createServerReference)("4073816c40b9e929fd1f98161e799e93a7c90fb6aa",k.callServer,void 0,k.findSourceMapURL,"getArchivedTasks");var m=a.i(972420),n=a.i(551578);function o(a){return new Date(a).toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function p({priority:a}){return(0,b.jsx)("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${{LOW:"bg-slate-400",MEDIUM:"bg-amber-400",HIGH:"bg-orange-500",CRITICAL:"bg-rose-500"}[a]??"bg-slate-400"}`})}a.s(["ArchivePageClient",0,function({allWorkspaces:a,initialWorkspaceId:k,initialProjectId:q,initialTasks:r}){let s,{t}=(0,i.useI18n)(),[u,v]=(0,c.useTransition)(),[w,x]=(0,c.useState)(k),[y,z]=(0,c.useState)(q),[A,B]=(0,c.useState)(r),[C,D]=(0,c.useState)(null),E=a.find(a=>a.id===w),F=E?.projects??[],G=(0,c.useCallback)(a=>{a?v(async()=>{B(await l(a))}):B([])},[v]);return(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsx)(j.SubPageNav,{workspaceId:w}),(0,b.jsxs)("div",{className:"header-sm flex items-center gap-3 px-6 py-2",children:[(0,b.jsxs)(h.Select,{value:w,onValueChange:b=>b&&(b=>{if(b===w)return;x(b);let c=a.find(a=>a.id===b),d=c?.projects[0]??null;z(d?.id??null),G(d?.id??null)})(b),children:[(0,b.jsx)(h.SelectTrigger,{className:"h-8 w-auto min-w-[120px]",children:(0,b.jsx)("span",{className:"truncate",children:E?.name??w})}),(0,b.jsx)(h.SelectContent,{children:a.map(a=>(0,b.jsx)(h.SelectItem,{value:a.id,children:a.name},a.id))})]}),F.length>0&&(0,b.jsxs)(h.Select,{value:y??"",onValueChange:a=>a&&void(a!==y&&(z(a),G(a))),children:[(0,b.jsx)(h.SelectTrigger,{className:"h-8 w-auto min-w-[140px]",children:(0,b.jsx)("span",{className:"truncate",children:(s=F.find(a=>a.id===y))?s.alias?`${s.name} (${s.alias})`:s.name:""})}),(0,b.jsx)(h.SelectContent,{children:F.map(a=>(0,b.jsxs)(h.SelectItem,{value:a.id,children:[a.name,a.alias?` (${a.alias})`:""]},a.id))})]}),(0,b.jsxs)("span",{className:"ml-auto rounded-full bg-muted px-2.5 py-0.5 text-[11px] text-muted-foreground",children:[A.length," ",t("archive.tasksCount")]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-6 py-4",children:(0,b.jsxs)("div",{className:`relative ${u?"opacity-40 pointer-events-none":""} transition-opacity`,children:[u&&(0,b.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:(0,b.jsx)(g.Loader2,{className:"size-5 animate-spin text-muted-foreground"})}),0===A.length?(0,b.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-16 text-center",children:[(0,b.jsx)(d.Archive,{className:"h-10 w-10 text-muted-foreground/30"}),(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:t("archive.noTasks")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/60",children:t("archive.noTasksDesc")})]}):(0,b.jsx)("div",{className:"space-y-2",children:A.map(a=>{let c="DONE"===a.status,d=a.executions[0];return(0,b.jsx)("div",{role:"button",tabIndex:0,onClick:()=>D(a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),D(a.id))},className:"group cursor-pointer rounded-lg border border-border bg-card px-4 py-3 transition-colors hover:border-border/80 hover:bg-accent/30 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background",children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-0.5 shrink-0",children:c?(0,b.jsx)(e.CheckCircle2,{className:"h-4 w-4 text-emerald-500"}):(0,b.jsx)(f.XCircle,{className:"h-4 w-4 text-rose-500"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p,{priority:a.priority}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-foreground",children:a.title}),(0,b.jsx)("span",{className:`ml-1 shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${c?"bg-emerald-500/10 text-emerald-400 ring-1 ring-emerald-500/20":"bg-rose-500/10 text-rose-400 ring-1 ring-rose-500/20"}`,children:c?t("archive.status.done"):t("archive.status.cancelled")}),a.version&&(0,b.jsx)(n.TaskVersionTag,{number:a.version.number,name:a.version.name,showName:!0,className:"shrink-0"})]}),a.labels.length>0&&(0,b.jsx)("div",{className:"mt-1.5 flex flex-wrap gap-1",children:a.labels.map(a=>(0,b.jsx)("span",{className:"rounded-full px-1.5 py-0.5 text-[10px] font-medium",style:{backgroundColor:`${a.label.color}20`,color:a.label.color,outline:`1px solid ${a.label.color}40`},children:a.label.name},a.label.id))}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-[11px] text-muted-foreground",children:[(0,b.jsxs)("span",{children:[t("archive.createdAt"),": ",o(a.createdAt)]}),(0,b.jsxs)("span",{children:[c?t("archive.completedAt"):t("archive.cancelledAt"),": ",o(a.updatedAt)]}),d&&(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[t("archive.lastExecution"),":"," ",(0,b.jsx)("span",{className:`rounded px-1 py-0.5 font-mono text-[10px] ${"COMPLETED"===d.status?"bg-emerald-500/10 text-emerald-400":"FAILED"===d.status?"bg-rose-500/10 text-rose-400":"bg-amber-500/10 text-amber-400"}`,children:d.status})]})]})]})]})},a.id)})})]})}),(0,b.jsx)(m.TaskOverviewDrawer,{open:!!C,onOpenChange:a=>{a||D(null)},taskId:C})]})}],149234)}];
1
+ module.exports=[913284,468862,a=>{"use strict";var b=a.i(884664);a.s(["CheckCircle2",()=>b.default],913284);let c=(0,a.i(711796).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,c],468862)},865011,a=>{"use strict";var b=a.i(728778),c=a.i(634910),d=a.i(553798),e=a.i(269280),f=a.i(350739),g=a.i(347165),h=a.i(607219),i=a.i(951192);let j=[{key:"notes",icon:f.FileText},{key:"assets",icon:g.FolderOpen},{key:"archive",icon:h.Archive}];a.s(["SubPageNav",0,function({workspaceId:a}){let{t:f}=(0,i.useI18n)(),g=(0,d.usePathname)(),h=j.find(a=>g.includes(`/${a.key}`))?.key;return(0,b.jsxs)("div",{className:"header-sm flex items-center gap-1 px-4",children:[(0,b.jsxs)(c.default,{href:`/workspaces/${a}`,className:"mr-2 inline-flex h-8 items-center gap-1.5 rounded-md px-2 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:[(0,b.jsx)(e.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:f("archive.backToBoard")})]}),(0,b.jsx)("span",{className:"mr-2 h-4 w-px bg-border"}),j.map(d=>{let e=d.icon,g=h===d.key;return(0,b.jsxs)(c.default,{href:`/workspaces/${a}/${d.key}`,className:`inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-xs font-medium transition-colors ${g?"bg-accent text-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"}`,children:[(0,b.jsx)(e,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:f(`sidebar.${d.key}`)})]},d.key)})]})}])},149234,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(607219),e=a.i(913284),f=a.i(468862),g=a.i(704494),h=a.i(580701),i=a.i(951192),j=a.i(865011),k=a.i(780410);let l=(0,k.createServerReference)("400e366cbde3a3de3b7720fa1f1107fdca245f5308",k.callServer,void 0,k.findSourceMapURL,"getArchivedTasks");var m=a.i(972420),n=a.i(551578);function o(a){return new Date(a).toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function p({priority:a}){return(0,b.jsx)("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${{LOW:"bg-slate-400",MEDIUM:"bg-amber-400",HIGH:"bg-orange-500",CRITICAL:"bg-rose-500"}[a]??"bg-slate-400"}`})}a.s(["ArchivePageClient",0,function({allWorkspaces:a,initialWorkspaceId:k,initialProjectId:q,initialTasks:r}){let s,{t}=(0,i.useI18n)(),[u,v]=(0,c.useTransition)(),[w,x]=(0,c.useState)(k),[y,z]=(0,c.useState)(q),[A,B]=(0,c.useState)(r),[C,D]=(0,c.useState)(null),E=a.find(a=>a.id===w),F=E?.projects??[],G=(0,c.useCallback)(a=>{a?v(async()=>{B(await l(a))}):B([])},[v]);return(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsx)(j.SubPageNav,{workspaceId:w}),(0,b.jsxs)("div",{className:"header-sm flex items-center gap-3 px-6 py-2",children:[(0,b.jsxs)(h.Select,{value:w,onValueChange:b=>b&&(b=>{if(b===w)return;x(b);let c=a.find(a=>a.id===b),d=c?.projects[0]??null;z(d?.id??null),G(d?.id??null)})(b),children:[(0,b.jsx)(h.SelectTrigger,{className:"h-8 w-auto min-w-[120px]",children:(0,b.jsx)("span",{className:"truncate",children:E?.name??w})}),(0,b.jsx)(h.SelectContent,{children:a.map(a=>(0,b.jsx)(h.SelectItem,{value:a.id,children:a.name},a.id))})]}),F.length>0&&(0,b.jsxs)(h.Select,{value:y??"",onValueChange:a=>a&&void(a!==y&&(z(a),G(a))),children:[(0,b.jsx)(h.SelectTrigger,{className:"h-8 w-auto min-w-[140px]",children:(0,b.jsx)("span",{className:"truncate",children:(s=F.find(a=>a.id===y))?s.alias?`${s.name} (${s.alias})`:s.name:""})}),(0,b.jsx)(h.SelectContent,{children:F.map(a=>(0,b.jsxs)(h.SelectItem,{value:a.id,children:[a.name,a.alias?` (${a.alias})`:""]},a.id))})]}),(0,b.jsxs)("span",{className:"ml-auto rounded-full bg-muted px-2.5 py-0.5 text-[11px] text-muted-foreground",children:[A.length," ",t("archive.tasksCount")]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-6 py-4",children:(0,b.jsxs)("div",{className:`relative ${u?"opacity-40 pointer-events-none":""} transition-opacity`,children:[u&&(0,b.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:(0,b.jsx)(g.Loader2,{className:"size-5 animate-spin text-muted-foreground"})}),0===A.length?(0,b.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-16 text-center",children:[(0,b.jsx)(d.Archive,{className:"h-10 w-10 text-muted-foreground/30"}),(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:t("archive.noTasks")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/60",children:t("archive.noTasksDesc")})]}):(0,b.jsx)("div",{className:"space-y-2",children:A.map(a=>{let c="DONE"===a.status,d=a.executions[0];return(0,b.jsx)("div",{role:"button",tabIndex:0,onClick:()=>D(a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),D(a.id))},className:"group cursor-pointer rounded-lg border border-border bg-card px-4 py-3 transition-colors hover:border-border/80 hover:bg-accent/30 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background",children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-0.5 shrink-0",children:c?(0,b.jsx)(e.CheckCircle2,{className:"h-4 w-4 text-emerald-500"}):(0,b.jsx)(f.XCircle,{className:"h-4 w-4 text-rose-500"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p,{priority:a.priority}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-foreground",children:a.title}),(0,b.jsx)("span",{className:`ml-1 shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${c?"bg-emerald-500/10 text-emerald-400 ring-1 ring-emerald-500/20":"bg-rose-500/10 text-rose-400 ring-1 ring-rose-500/20"}`,children:c?t("archive.status.done"):t("archive.status.cancelled")}),a.version&&(0,b.jsx)(n.TaskVersionTag,{number:a.version.number,name:a.version.name,showName:!0,className:"shrink-0"})]}),a.labels.length>0&&(0,b.jsx)("div",{className:"mt-1.5 flex flex-wrap gap-1",children:a.labels.map(a=>(0,b.jsx)("span",{className:"rounded-full px-1.5 py-0.5 text-[10px] font-medium",style:{backgroundColor:`${a.label.color}20`,color:a.label.color,outline:`1px solid ${a.label.color}40`},children:a.label.name},a.label.id))}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-[11px] text-muted-foreground",children:[(0,b.jsxs)("span",{children:[t("archive.createdAt"),": ",o(a.createdAt)]}),(0,b.jsxs)("span",{children:[c?t("archive.completedAt"):t("archive.cancelledAt"),": ",o(a.updatedAt)]}),d&&(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[t("archive.lastExecution"),":"," ",(0,b.jsx)("span",{className:`rounded px-1 py-0.5 font-mono text-[10px] ${"COMPLETED"===d.status?"bg-emerald-500/10 text-emerald-400":"FAILED"===d.status?"bg-rose-500/10 text-rose-400":"bg-amber-500/10 text-amber-400"}`,children:d.status})]})]})]})]})},a.id)})})]})}),(0,b.jsx)(m.TaskOverviewDrawer,{open:!!C,onOpenChange:a=>{a||D(null)},taskId:C})]})}],149234)}];
2
2
 
3
3
  //# sourceMappingURL=_0jg.s-g._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[269280,a=>{"use strict";let b=(0,a.i(711796).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],269280)},521007,a=>{"use strict";a.s(["BOARD_COLUMNS",0,[{id:"TODO",label:"To Do",color:"bg-slate-400"},{id:"IN_PROGRESS",label:"In Progress",color:"bg-amber-400"},{id:"IN_REVIEW",label:"In Review",color:"bg-sky-400"},{id:"DONE",label:"Done",color:"bg-emerald-400"},{id:"CANCELLED",label:"Cancelled",color:"bg-rose-400"}],"NOTE_CATEGORIES_PRESET",0,["账号","环境","需求","备忘"],"PRIORITY_CONFIG",0,{LOW:{label:"低",color:"bg-slate-500/20 text-slate-300 border border-slate-500/30"},MEDIUM:{label:"中",color:"bg-amber-500/20 text-amber-300 border border-amber-500/30"},HIGH:{label:"高",color:"bg-orange-500/20 text-orange-300 border border-orange-500/30"},CRITICAL:{label:"紧急",color:"bg-rose-500/20 text-rose-300 border border-rose-500/30"}},"TOWER_LABEL_NAME",0,"Tower"])},341199,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40f96c6d9be0eb5e7b763d2adbea0bd96a0a944e5f",b.callServer,void 0,b.findSourceMapURL,"openInTerminal");a.s(["openInTerminal",0,c])},648512,a=>{"use strict";let b=(0,a.i(711796).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",0,b],648512)},551578,a=>{"use strict";var b=a.i(728778);let c=(0,a.i(711796).default)("milestone",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M18.172 6a2 2 0 0 1 1.414.586l2.06 2.06a1.207 1.207 0 0 1 0 1.708l-2.06 2.06a2 2 0 0 1-1.414.586H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1z",key:"8gz4t4"}]]);var d=a.i(951192);let e=["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 f(a){return e[function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;return b}(a)%e.length]}let g={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"};a.s(["TaskVersionTag",0,function({number:a,name:d,showName:e=!1,className:f="",title:g}){return(0,b.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-md border border-border bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground ${f}`,title:g??(d?`${a} \xb7 ${d}`:a),children:[(0,b.jsx)(c,{className:"h-2.5 w-2.5 shrink-0"}),(0,b.jsx)("span",{className:"font-mono",children:a}),e&&d?(0,b.jsx)("span",{className:"max-w-[140px] truncate",children:d}):null]})},"VersionStatusBadge",0,function({status:a}){let{t:c}=(0,d.useI18n)();return(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${g[a]}`,children:c(`version.status.${a}`)})},"VersionTypeBadge",0,function({name:a}){let{t:c}=(0,d.useI18n)();return a?(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${f(a)}`,children:a}):(0,b.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:c("version.type.uncategorized")})},"typeBadgeColor",0,f],551578)},30571,559855,165614,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("409fb3aec2f0570e157b4c44513073e002afb27209",b.callServer,void 0,b.findSourceMapURL,"openInFileManager");a.s(["openInFileManager",0,c],30571);let d=(0,b.createServerReference)("40cdd23e47eb9df505ad39eccb4f8beeae01cc922b",b.callServer,void 0,b.findSourceMapURL,"openInEditor");a.s(["openInEditor",0,d],559855);let e=(0,a.i(711796).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"}]]);a.s(["PlayCircle",0,e],165614)},625892,939859,a=>{"use strict";var b=a.i(711796);let c=(0,b.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);a.s(["FolderSearch",0,c],625892);let d=(0,b.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["Code",0,d],939859)},264589,a=>{"use strict";let b=(0,a.i(711796).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"}]]);a.s(["Package",0,b],264589)},786304,a=>{"use strict";var b=a.i(475295),c=a.i(213200),d=a.i(142261),e=a.i(368114);let f=(0,d.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"}});a.s(["Badge",0,function({className:a,variant:d="default",render:g,...h}){var i;return i={defaultTagName:"span",props:(0,b.mergeProps)({className:(0,e.cn)(f({variant:d}),a)},h),render:g,state:{slot:"badge",variant:d}},(0,c.useRenderElement)(i.defaultTagName??"div",i,i)}],786304)},23604,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4047d68832f5f32fbc78f1fe77b506dc65817de222",b.callServer,void 0,b.findSourceMapURL,"getConfigValues");a.s(["getConfigValues",0,c])},412783,22761,a=>{"use strict";var b=a.i(728778),c=a.i(368114);a.s(["Label",0,function({className:a,...d}){return(0,b.jsx)("label",{"data-slot":"label",className:(0,c.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",a),...d})}],412783);let d=(0,a.i(711796).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"}]]);a.s(["Copy",0,d],22761)},157551,a=>{"use strict";let b=(0,a.i(711796).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"}]]);a.s(["Calendar",0,b],157551)},757061,547961,a=>{"use strict";var b=a.i(728778),c=a.i(432949),d=a.i(368114),e=a.i(699570),f=a.i(14906);function g({...a}){return(0,b.jsx)(c.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function h({className:a,...e}){return(0,b.jsx)(c.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,d.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",a),...e})}a.s(["Sheet",0,function({...a}){return(0,b.jsx)(c.Dialog.Root,{"data-slot":"sheet",...a})},"SheetContent",0,function({className:a,children:i,side:j="right",showCloseButton:k=!0,...l}){return(0,b.jsxs)(g,{children:[(0,b.jsx)(h,{}),(0,b.jsxs)(c.Dialog.Popup,{"data-slot":"sheet-content","data-side":j,className:(0,d.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",a),...l,children:[i,k&&(0,b.jsxs)(c.Dialog.Close,{"data-slot":"sheet-close",render:(0,b.jsx)(e.Button,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,b.jsx)(f.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"SheetDescription",0,function({className:a,...e}){return(0,b.jsx)(c.Dialog.Description,{"data-slot":"sheet-description",className:(0,d.cn)("text-sm text-muted-foreground",a),...e})},"SheetHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,d.cn)("flex flex-col gap-0.5 p-4",a),...c})},"SheetTitle",0,function({className:a,...e}){return(0,b.jsx)(c.Dialog.Title,{"data-slot":"sheet-title",className:(0,d.cn)("font-heading text-base font-medium text-foreground",a),...e})}],757061);var i=a.i(780410);let j=(0,i.createServerReference)("4099b446a4efe2d8a4eaf405c941f5084421c5c9d8",i.callServer,void 0,i.findSourceMapURL,"getTaskOverview");a.s(["getTaskOverview",0,j],547961)},972420,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(757061),e=a.i(269876),f=a.i(786304),g=a.i(699570),h=a.i(951192),i=a.i(968812),j=a.i(547961),k=a.i(269022),l=a.i(30571),m=a.i(559855),n=a.i(341199),o=a.i(445798),p=a.i(521007),q=a.i(157551),r=a.i(22761),s=a.i(264589),t=a.i(165614),u=a.i(625892),v=a.i(939859),w=a.i(648512);function x({added:a,removed:c}){let{t:d}=(0,h.useI18n)();return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-gray-500",children:[(0,b.jsx)("span",{children:d("diff.filesChanged",{count:String(a+c)})}),a>0&&(0,b.jsxs)("span",{className:"text-green-500",children:["+",a]}),c>0&&(0,b.jsxs)("span",{className:"text-red-500",children:["-",c]})]})}var y=a.i(551578),z=a.i(952313);a.s(["TaskOverviewDrawer",0,function({open:a,onOpenChange:A,taskId:B}){let{t:C}=(0,h.useI18n)(),[D,E]=(0,c.useState)(null),[F,G]=(0,c.useTransition)(),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)([]);(0,c.useEffect)(()=>{B&&a?G(async()=>{let a=await (0,j.getTaskOverview)(B);a&&(E(a),a.project?.workspaceId&&(0,k.getLabelsForWorkspace)(a.project.workspaceId).then(a=>{K(a.map(a=>({id:a.id,name:a.name,color:a.color,isBuiltin:a.isBuiltin})))}).catch(()=>K([])))}):E(null)},[B,a]);let L=D?p.BOARD_COLUMNS.find(a=>a.id===D.status):null,M=D?p.PRIORITY_CONFIG[D.priority]:null,N=D?.executions?.[0]??null,O=(()=>{if(N?.worktreePath)return N.worktreePath;let a=D?.project?.localPath;return a?D?.subPath?`${a}/${D.subPath}`:a:null})(),P=(()=>{let a=N?.gitStats;if(!a)return null;try{let b=JSON.parse(a);return{added:b.insertions??0,removed:b.deletions??0}}catch{return null}})(),Q=async a=>{if(D?.project)try{let{autoStart:b,...c}=a;await (0,i.createTask)({...c,projectId:D.project.id}),z.toast.success(C("taskDrawer.duplicateSuccess")),I(!1),A(!1)}catch{z.toast.error(C("taskDrawer.duplicateFailed"))}};return(0,b.jsxs)(d.Sheet,{open:a,onOpenChange:A,children:[(0,b.jsxs)(d.SheetContent,{side:"right",className:"w-[380px] sm:max-w-[380px] p-0",children:[(0,b.jsxs)(d.SheetHeader,{className:"px-4 pt-4 pb-3 border-b border-border",children:[(0,b.jsx)(d.SheetTitle,{className:"text-base font-semibold leading-tight pr-8",children:D?.title??""}),(0,b.jsx)(d.SheetDescription,{className:"sr-only",children:C("taskDrawer.title")}),D&&(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[L&&(0,b.jsxs)(f.Badge,{variant:"secondary",className:"text-xs",children:[(0,b.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-1.5 ${L.color}`}),L.label]}),M&&(0,b.jsx)(f.Badge,{variant:"secondary",className:`text-xs ${M.color}`,children:M.label}),D.version&&(0,b.jsx)(y.TaskVersionTag,{number:D.version.number,name:D.version.name,showName:!0})]})]}),(0,b.jsx)(e.ScrollArea,{className:"flex-1 h-[calc(100%-80px)]",children:F&&!D?(0,b.jsx)("div",{className:"flex items-center justify-center h-32 text-sm text-muted-foreground",children:C("assets.loading")}):D?(0,b.jsxs)("div",{className:"p-4 space-y-4",children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:C("taskDrawer.description")}),(0,b.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:D.description||C("taskDrawer.noDescription")})]}),D.labels.length>0&&(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:C("taskDrawer.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:D.labels.map(a=>(0,b.jsx)(f.Badge,{variant:"secondary",className:"text-xs",style:{backgroundColor:`${a.label.color}20`,color:a.label.color,borderColor:`${a.label.color}40`},children:a.label.name},a.label.id))})]}),(0,b.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(q.Calendar,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:C("taskDrawer.createdAt")}),(0,b.jsx)("span",{className:"text-foreground",children:new Date(D.createdAt).toLocaleDateString()})]}),(0,b.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(s.Package,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:C("taskDrawer.resources")}),(0,b.jsx)("span",{className:"text-foreground",children:D._count.assets})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:C("taskDrawer.fileChanges")}),P?(0,b.jsx)(x,{added:P.added,removed:P.removed}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:C("taskDrawer.noFileChanges")})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(t.PlayCircle,{className:"h-3.5 w-3.5"}),C("taskDrawer.lastExecution")]}),N?(0,b.jsxs)("div",{className:"rounded-md border border-border p-2.5 text-sm",children:[(0,b.jsx)(f.Badge,{variant:"secondary",className:"text-xs mb-1.5",children:N.status}),N.summary&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-4",children:N.summary.slice(0,200)})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:C("taskDrawer.noExecution")})]}),O&&(0,b.jsxs)("section",{className:"flex flex-col",children:[(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,l.openInFileManager)(O)}catch(a){console.error("openInFileManager failed:",a),z.toast.error(C("git.openInFileManagerFailed"))}},children:[(0,b.jsx)(u.FolderSearch,{className:"h-3.5 w-3.5 shrink-0"}),C("git.openInFileManager")]}),(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,m.openInEditor)(O)}catch(a){console.error("openInEditor failed:",a),z.toast.error(C("git.openInEditorFailed"))}},children:[(0,b.jsx)(v.Code,{className:"h-3.5 w-3.5 shrink-0"}),C("git.openInEditor")]}),(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,n.openInTerminal)(O)}catch(a){console.error("openInTerminal failed:",a),z.toast.error(C("git.openInTerminalFailed"))}},children:[(0,b.jsx)(w.Terminal,{className:"h-3.5 w-3.5 shrink-0"}),C("git.openInTerminal")]})]}),(0,b.jsx)("section",{children:(0,b.jsxs)(g.Button,{variant:"default",className:"w-full",onClick:()=>{D&&I(!0)},disabled:!D,children:[(0,b.jsx)(r.Copy,{className:"h-4 w-4"}),C("taskDrawer.duplicate")]})})]}):null})]}),D?.project&&(0,b.jsx)(o.CreateTaskDialog,{open:H,onOpenChange:I,onSubmit:Q,labels:J,projectType:D.project.type,projectLocalPath:D.project.localPath,prefillFromTask:{title:D.title,description:D.description,priority:D.priority,subPath:D.subPath,labelIds:D.labels.map(a=>a.label.id),baseBranch:D.baseBranch}})]})}],972420)}];
2
+
3
+ //# sourceMappingURL=_0lhvl1i._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[374306,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),811509,a=>a.a(async(b,c)=>{try{var d=a.i(374306),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=b([d,g,h]);[d,g,h]=l.then?(await l)():l,a.s(["0018d7fa5215153e44c83ba07512e4a698ff3f9a53",()=>j.listAllExtensionStatus,"008f4c4d0335dc961d7674e3a951970d984aef4ad9",()=>h.getActualWsPort,"009ef3927ee211cb1d2b323c46a10eb964ee4977e2",()=>k.getOnboardingStatus,"4027d649bfab93f04ccba39fe95ccd74d8113ce76d",()=>f.deleteLabel,"40328e98217d41dedbc3cf43112409721265189a26",()=>f.getLabelsForWorkspace,"4043aabb87e62fb084ee69331f92fb33e62825d0ef",()=>e.deleteWorkspace,"4046ad59b904f75f21d9be02ec191f5baef99a893d",()=>j.checkExtension,"4059e482801deab77de528041fcfc70feb707a0269",()=>e.reorderWorkspaces,"406b0c4e3d6ae24df472439ee7bc2d0a6014cc8f88",()=>f.createLabel,"406b8a94d56dcc1cfb88a6eb7fee2c998f13959855",()=>h.resolveGitLocalPath,"4078ca9af0417ab7cc9c37866f513a695022d44f53",()=>k.setOnboardingProgress,"408bb3f4da291df84996bb1c59d8fc84950c7e60e1",()=>k.dispatchTaskCompletionEvent,"4094d00d07ed9d0b8c497b5242711fd7d97273f4d6",()=>i.checkMigrationSafety,"40c469010428b2da3cfd1497f8a8d22ae4b18090f0",()=>e.createProject,"40ca1b10a23c9a2e5f5b69e02497df0388ab52c46f",()=>j.installExtension,"40eb079eed9fd31bae057f60d020ff0a2e66eb4c12",()=>e.createWorkspace,"40f587a6e4a02ec84e0c15ff54334157761fb4034c",()=>j.uninstallExtension,"6046d52703515bb230a9b7650e2bca9f0d6db6f5ea",()=>e.updateWorkspace,"604f7933f9827efb095d99cb2ca2ebaa5f2e5e7f7c",()=>g.globalSearch,"6050e4a303e6958c1f8d6044fe3ab7079613ddccdd",()=>h.setConfigValue,"605a1d60036c6bcb4298bc0b2a34da84b302bea553",()=>k.setOnboardingExtensions,"606e49df84da3b15ebf2e09d87a3fd04d82d9beabd",()=>i.analyzeProjectDirectory,"608de8235b7e769e3f561a42fb93d6b218703c1f5b",()=>h.getConfigValue,"60c4a614995207d6d13933acbd69d413cccca56129",()=>i.migrateProjectPath,"60fe7f9fb52efb97c5ceab6e00c9b5654aa2db2d62",()=>k.completeOnboarding]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0dnn~ft._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js"].map(b=>a.l(b))).then(()=>b(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0oqhxfb._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
2
+
3
+ //# sourceMappingURL=_0me6z_3._.js.map