tower-studio 0.2.32 → 0.2.34

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 (360) 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 +30 -30
  13. package/.next/standalone/.next/server/app/_not-found/page.js +8 -7
  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/adapters/test/route.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/api/browse-fs/route.js +1 -1
  18. package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +1 -1
  24. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js +2 -1
  34. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/internal/monaco/[...path]/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +1 -1
  39. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js +1 -1
  42. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
  44. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +71 -71
  45. package/.next/standalone/.next/server/app/missions/page.js +8 -7
  46. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +2 -2
  49. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +30 -30
  50. package/.next/standalone/.next/server/app/onboarding/page.js +8 -7
  51. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +2 -2
  54. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +30 -30
  55. package/.next/standalone/.next/server/app/page.js +8 -7
  56. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +2 -2
  59. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +47 -47
  60. package/.next/standalone/.next/server/app/settings/page.js +9 -8
  61. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +2 -2
  64. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +222 -138
  65. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +9 -8
  66. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +2 -2
  69. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +158 -134
  70. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +9 -8
  71. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +2 -2
  74. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +208 -100
  75. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +10 -7
  76. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +2 -2
  79. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +123 -63
  80. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +9 -8
  81. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +2 -2
  84. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +30 -30
  85. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +9 -8
  86. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +2 -2
  89. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +142 -118
  90. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +9 -8
  91. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +3 -3
  94. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +85 -85
  95. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +10 -9
  96. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +2 -2
  99. package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +50 -50
  100. package/.next/standalone/.next/server/app/workspaces/page.js +8 -7
  101. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +1 -1
  104. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0yp430z.js +3 -0
  105. package/.next/standalone/.next/server/chunks/{[externals]__12mj_bs._.js → [externals]__0o6dym7._.js} +2 -2
  106. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00llstz._.js +4 -0
  107. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01n7exm._.js +1 -1
  108. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0kay2~d._.js → [root-of-the-server]__01yu.gw._.js} +3 -3
  109. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__01_h-re._.js → [root-of-the-server]__05nz.tg._.js} +2 -2
  110. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08u6wg.._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d2japj._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fey.8j._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j7565a._.js +3 -0
  114. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0omyrab._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qif839._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~foo~5._.js +4 -0
  117. package/.next/standalone/.next/server/chunks/src_0bkvm8c._.js +1 -1
  118. package/.next/standalone/.next/server/chunks/src_lib_02llcit._.js +1 -1
  119. package/.next/standalone/.next/server/chunks/src_lib_0aowbzy._.js +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-tolks._.js +47 -0
  122. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__004dmwv._.js +4 -0
  123. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ohx~.q._.js → [root-of-the-server]__00~jawi._.js} +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0mv64fw._.js → [root-of-the-server]__02ur64h._.js} +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0tjczqw._.js → [root-of-the-server]__04rp1ck._.js} +4 -4
  126. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0bs_c.t._.js → [root-of-the-server]__05sv58d._.js} +2 -2
  127. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05xg05r._.js +3 -0
  128. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__061p5rc._.js +3 -0
  129. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__062b.yt._.js +47 -0
  130. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06yx5l5._.js +3 -0
  131. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0azyv7l._.js → [root-of-the-server]__07_o.al._.js} +1 -1
  132. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__093tt4a._.js +47 -0
  133. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0hg-fwv._.js → [root-of-the-server]__09s~cme._.js} +3 -3
  134. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0-b8f6d._.js → [root-of-the-server]__0_1zewr._.js} +3 -3
  135. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__037nnpo._.js → [root-of-the-server]__0_i7zpd._.js} +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0almni9._.js +3 -0
  137. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b.ej5q._.js +1 -1
  138. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bgr0ql._.js +3 -0
  139. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0wm~yai._.js → [root-of-the-server]__0f88ua~._.js} +3 -3
  140. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0guqcva._.js +47 -0
  141. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gzafdq._.js +3 -0
  142. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0j8~mdg._.js +3 -0
  143. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jymb~t._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0u7n6kw._.js → [root-of-the-server]__0k-mx8r._.js} +4 -4
  145. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ymqgu_._.js → [root-of-the-server]__0lozqxc._.js} +4 -4
  146. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0p8otw1._.js → [root-of-the-server]__0lz4wdp._.js} +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0d76zys._.js → [root-of-the-server]__0m7ydqb._.js} +1 -1
  148. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__06ubi1g._.js → [root-of-the-server]__0m80~su._.js} +1 -1
  149. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__127.0d7._.js → [root-of-the-server]__0na8eiv._.js} +1 -1
  150. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p0te97._.js +47 -0
  151. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qnzkj3._.js +30 -0
  152. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qqbb31._.js +43 -0
  153. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0scj6ed._.js +30 -0
  154. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0siyg1p._.js +47 -0
  155. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s~4y3y._.js +1 -1
  156. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t6f4lq._.js +47 -0
  157. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0th-t1a._.js +47 -0
  158. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wofia_._.js +30 -0
  159. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wt83kv._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y~ooou._.js +3 -0
  161. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z7je5_._.js +1 -1
  162. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~_qwfy._.js +3 -0
  163. package/.next/standalone/.next/server/chunks/ssr/_0-~9em3._.js +3 -0
  164. package/.next/standalone/.next/server/chunks/ssr/_00t6138._.js +47 -0
  165. package/.next/standalone/.next/server/chunks/ssr/_02encue._.js +30 -0
  166. package/.next/standalone/.next/server/chunks/ssr/_033p42a._.js +3 -0
  167. package/.next/standalone/.next/server/chunks/ssr/_041l0cv._.js +3 -0
  168. package/.next/standalone/.next/server/chunks/ssr/_0644da7._.js +3 -0
  169. package/.next/standalone/.next/server/chunks/ssr/_070t_mh._.js +2 -2
  170. package/.next/standalone/.next/server/chunks/ssr/{_0np9y-t._.js → _07fnvnm._.js} +1 -1
  171. package/.next/standalone/.next/server/chunks/ssr/_09n0s9b._.js +3 -0
  172. package/.next/standalone/.next/server/chunks/ssr/{_079_ku8._.js → _0_hnt09._.js} +1 -1
  173. package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +2 -2
  174. package/.next/standalone/.next/server/chunks/ssr/_0clhm~f._.js +30 -0
  175. package/.next/standalone/.next/server/chunks/ssr/_0cxhub8._.js +47 -0
  176. package/.next/standalone/.next/server/chunks/ssr/{_0vcbjph._.js → _0e-zyn2._.js} +4 -4
  177. package/.next/standalone/.next/server/chunks/ssr/_0eca65n._.js +7 -0
  178. package/.next/standalone/.next/server/chunks/ssr/_0hchxpl._.js +4 -0
  179. package/.next/standalone/.next/server/chunks/ssr/_0hh17jg._.js +17 -0
  180. package/.next/standalone/.next/server/chunks/ssr/_0hu0tyg._.js +30 -0
  181. package/.next/standalone/.next/server/chunks/ssr/_0k4f1.-._.js +3 -0
  182. package/.next/standalone/.next/server/chunks/ssr/{_0tf~vm8._.js → _0k9b94s._.js} +1 -1
  183. package/.next/standalone/.next/server/chunks/ssr/_0l3l_d6._.js +43 -0
  184. package/.next/standalone/.next/server/chunks/ssr/_0mpce0d._.js +47 -0
  185. package/.next/standalone/.next/server/chunks/ssr/_0muaopo._.js +47 -0
  186. package/.next/standalone/.next/server/chunks/ssr/{_0w2xtk9._.js → _0mzwe90._.js} +4 -4
  187. package/.next/standalone/.next/server/chunks/ssr/_0n1l7yo._.js +47 -0
  188. package/.next/standalone/.next/server/chunks/ssr/{_0xl~whi._.js → _0n54odq._.js} +1 -1
  189. package/.next/standalone/.next/server/chunks/ssr/_0nk7qd4._.js +3 -0
  190. package/.next/standalone/.next/server/chunks/ssr/{_0lw1tq2._.js → _0px0igh._.js} +2 -2
  191. package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +1 -1
  192. package/.next/standalone/.next/server/chunks/ssr/{_0_vq_9m._.js → _0rehvm-._.js} +2 -2
  193. package/.next/standalone/.next/server/chunks/ssr/_0retby~._.js +3 -0
  194. package/.next/standalone/.next/server/chunks/ssr/_0wbcp88._.js +3 -0
  195. package/.next/standalone/.next/server/chunks/ssr/_0y.q-vg._.js +3 -0
  196. package/.next/standalone/.next/server/chunks/ssr/_0z2tba8._.js +3 -0
  197. package/.next/standalone/.next/server/chunks/ssr/{_0fb1op1._.js → _12yox4f._.js} +2 -2
  198. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_03r.9go._.js +3 -0
  199. package/.next/standalone/.next/server/chunks/ssr/src_0djxlqx._.js +1 -1
  200. package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +1 -1
  201. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  202. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  203. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  204. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  205. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  206. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  207. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  208. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_notes_notes-page-client_tsx_10gyo3v._.js +3 -0
  209. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  210. package/.next/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_0d2ra01._.js +1 -1
  211. package/.next/standalone/.next/server/chunks/ssr/{src_lib_09vospx._.js → src_lib_01xtio2._.js} +1 -1
  212. package/.next/standalone/.next/server/chunks/ssr/{src_lib_0-t3s4k._.js → src_lib_03p6skw._.js} +1 -1
  213. package/.next/standalone/.next/server/chunks/ssr/{src_lib_007-dd1._.js → src_lib_05mu4f0._.js} +1 -1
  214. package/.next/standalone/.next/server/chunks/ssr/{src_lib_09bjxpu._.js → src_lib_06nbc41._.js} +1 -1
  215. package/.next/standalone/.next/server/chunks/ssr/src_lib_06okbb2._.js +3 -0
  216. package/.next/standalone/.next/server/chunks/ssr/src_lib_0741dos._.js +3 -0
  217. package/.next/standalone/.next/server/chunks/ssr/src_lib_0cbuy0_._.js +3 -0
  218. package/.next/standalone/.next/server/chunks/ssr/src_lib_0e27xy7._.js +3 -0
  219. package/.next/standalone/.next/server/chunks/ssr/src_lib_0n5-vk5._.js +3 -0
  220. package/.next/standalone/.next/server/chunks/ssr/src_lib_0rk2hla._.js +3 -0
  221. package/.next/standalone/.next/server/chunks/ssr/src_lib_0t5xz2y._.js +3 -0
  222. package/.next/standalone/.next/server/chunks/ssr/src_lib_0u5_gf2._.js +3 -0
  223. package/.next/standalone/.next/server/chunks/ssr/src_lib_0v6s6se._.js +3 -0
  224. package/.next/standalone/.next/server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js +1 -1
  225. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  226. package/.next/standalone/.next/server/pages/500.html +1 -1
  227. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/server-reference-manifest.json +651 -495
  229. package/.next/standalone/.next/static/chunks/0.65.u3zhwau~.js +12 -0
  230. package/.next/standalone/.next/static/chunks/0.nsmn6shzidu.js +2 -0
  231. package/.next/standalone/.next/static/chunks/01yoibobkdz3x.js +1 -0
  232. package/.next/standalone/.next/static/chunks/02~4b.8ir68sf.js +1 -0
  233. package/.next/standalone/.next/static/chunks/04l-.s3_om9y..js +1 -0
  234. package/.next/standalone/.next/static/chunks/074pl-db8hd7n.js +1 -0
  235. package/.next/standalone/.next/static/chunks/08gmt7zfmi07i.js +1 -0
  236. package/.next/standalone/.next/static/chunks/09qqx5e6_m69a.js +1 -0
  237. package/.next/standalone/.next/static/chunks/0bq-a.iqnlign.js +1 -0
  238. package/.next/standalone/.next/static/chunks/0cwsb9~cex3mr.js +5 -0
  239. package/.next/standalone/.next/static/chunks/0d.tt7u.5fs~f.js +1 -0
  240. package/.next/standalone/.next/static/chunks/0f2~z.xnkw0.u.js +1 -0
  241. package/.next/standalone/.next/static/chunks/0gr0_ba-400rj.js +1 -0
  242. package/.next/standalone/.next/static/chunks/0gyk.it.hj68o.js +1 -0
  243. package/.next/standalone/.next/static/chunks/0iv8gbv-ghx4_.js +1 -0
  244. package/.next/standalone/.next/static/chunks/0oxib0ew0i6jf.js +1 -0
  245. package/.next/standalone/.next/static/chunks/0p40_9yteagn~.js +1 -0
  246. package/.next/standalone/.next/static/chunks/0p4w5b_p_yju8.js +1 -0
  247. package/.next/standalone/.next/static/chunks/0phbm9we70sdr.js +1 -0
  248. package/.next/standalone/.next/static/chunks/0qonpqhvpg-tt.js +1 -0
  249. package/.next/standalone/.next/static/chunks/0so6swvdpools.js +1 -0
  250. package/.next/standalone/.next/static/chunks/0stxf.y~zqvv8.css +1 -0
  251. package/.next/standalone/.next/static/chunks/0t44qy6r~z0bj.js +1 -0
  252. package/.next/standalone/.next/static/chunks/{0g7kwivg0c5zn.js → 0uu4dne-yscov.js} +1 -1
  253. package/.next/standalone/.next/static/chunks/{0o.a8t_h5vwy-.js → 0wxk387~-lxu1.js} +3 -3
  254. package/.next/standalone/.next/static/chunks/0z3mmfc8sv-51.js +5 -0
  255. package/.next/standalone/.next/static/chunks/0~uo_7-sxehxf.js +1 -0
  256. package/.next/standalone/.next/static/chunks/10mwqzqdpi9d5.js +1 -0
  257. package/.next/standalone/.next/static/chunks/11.gxz8y59q9x.js +1 -0
  258. package/.next/standalone/.next/static/chunks/11z9-ri~78bsr.js +2 -0
  259. package/.next/standalone/.next/static/chunks/14ynp8ao1ictj.js +1 -0
  260. package/.next/standalone/.next/static/chunks/15bcjdgsecs_j.js +1 -0
  261. package/.next/standalone/.next/static/chunks/{13iipzi9xw35f.js → 15qvpc33og_et.js} +1 -1
  262. package/.next/standalone/.next/static/chunks/16ubws05gi6md.js +1 -0
  263. package/.next/standalone/.next/static/chunks/16v1p30jl74cu.js +1 -0
  264. package/.next/standalone/package.json +5 -1
  265. package/bin/tower.mjs +58 -18
  266. package/dist/mcp-server.cjs +25102 -21098
  267. package/package.json +5 -1
  268. package/prisma/schema.prisma +16 -0
  269. package/scripts/migrations/0001-insight-category.ts +22 -0
  270. package/scripts/run-migrations.ts +73 -0
  271. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0122.hq._.js +0 -3
  272. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0541-er._.js +0 -3
  273. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0clvf~t._.js +0 -4
  274. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gk6ftq._.js +0 -4
  275. package/.next/standalone/.next/server/chunks/ssr/12k._sonner_dist_index_mjs_0-vmpk5._.js +0 -3
  276. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01pn3ol._.js +0 -3
  277. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02p4lry._.js +0 -3
  278. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07ptf-z._.js +0 -3
  279. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b77ayk._.js +0 -47
  280. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cle18b._.js +0 -3
  281. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dzfucv._.js +0 -3
  282. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e25s-_._.js +0 -3
  283. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lx7sf8._.js +0 -3
  284. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pik08u._.js +0 -3
  285. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rara9.._.js +0 -3
  286. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rv7-_r._.js +0 -3
  287. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t0.u9.._.js +0 -3
  288. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0uq_0mc._.js +0 -30
  289. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12w_sm_._.js +0 -30
  290. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1307ll-._.js +0 -3
  291. package/.next/standalone/.next/server/chunks/ssr/_0-frleg._.js +0 -3
  292. package/.next/standalone/.next/server/chunks/ssr/_0-sia69._.js +0 -4
  293. package/.next/standalone/.next/server/chunks/ssr/_0.sfgns._.js +0 -3
  294. package/.next/standalone/.next/server/chunks/ssr/_0.y2of~._.js +0 -7
  295. package/.next/standalone/.next/server/chunks/ssr/_04ia97a._.js +0 -3
  296. package/.next/standalone/.next/server/chunks/ssr/_0533im8._.js +0 -30
  297. package/.next/standalone/.next/server/chunks/ssr/_06~9axc._.js +0 -3
  298. package/.next/standalone/.next/server/chunks/ssr/_0_kfemp._.js +0 -3
  299. package/.next/standalone/.next/server/chunks/ssr/_0a5f4n.._.js +0 -3
  300. package/.next/standalone/.next/server/chunks/ssr/_0bkb_.9._.js +0 -3
  301. package/.next/standalone/.next/server/chunks/ssr/_0ex2yo6._.js +0 -3
  302. package/.next/standalone/.next/server/chunks/ssr/_0fuoov5._.js +0 -3
  303. package/.next/standalone/.next/server/chunks/ssr/_0ia4gik._.js +0 -3
  304. package/.next/standalone/.next/server/chunks/ssr/_0jg.s-g._.js +0 -3
  305. package/.next/standalone/.next/server/chunks/ssr/_0kqe7k7._.js +0 -3
  306. package/.next/standalone/.next/server/chunks/ssr/_0mci_e0._.js +0 -7
  307. package/.next/standalone/.next/server/chunks/ssr/_0njo37o._.js +0 -30
  308. package/.next/standalone/.next/server/chunks/ssr/_0qd7u-y._.js +0 -4
  309. package/.next/standalone/.next/server/chunks/ssr/_0r5h7cr._.js +0 -30
  310. package/.next/standalone/.next/server/chunks/ssr/_0s02eu9._.js +0 -43
  311. package/.next/standalone/.next/server/chunks/ssr/_0tb5sv.._.js +0 -3
  312. package/.next/standalone/.next/server/chunks/ssr/_0ttg7a2._.js +0 -3
  313. package/.next/standalone/.next/server/chunks/ssr/_0ueyys5._.js +0 -17
  314. package/.next/standalone/.next/server/chunks/ssr/_0vl82nb._.js +0 -3
  315. package/.next/standalone/.next/server/chunks/ssr/_0vz_pgd._.js +0 -7
  316. package/.next/standalone/.next/server/chunks/ssr/src_075s.rk._.js +0 -3
  317. package/.next/standalone/.next/server/chunks/ssr/src_lib_0dbdb7l._.js +0 -3
  318. package/.next/standalone/.next/server/chunks/ssr/src_lib_0dypzt_._.js +0 -3
  319. package/.next/standalone/.next/server/chunks/ssr/src_lib_0f948rt._.js +0 -3
  320. package/.next/standalone/.next/server/chunks/ssr/src_lib_0h1rnc.._.js +0 -3
  321. package/.next/standalone/.next/server/chunks/ssr/src_lib_0lcvt1c._.js +0 -3
  322. package/.next/standalone/.next/server/chunks/ssr/src_lib_0mao-of._.js +0 -3
  323. package/.next/standalone/.next/server/chunks/ssr/src_lib_0qlnl~c._.js +0 -3
  324. package/.next/standalone/.next/server/chunks/ssr/src_lib_0qt5bft._.js +0 -3
  325. package/.next/standalone/.next/server/chunks/ssr/src_lib_0z75cue._.js +0 -3
  326. package/.next/standalone/.next/static/chunks/01iha~qq-s2iq.js +0 -1
  327. package/.next/standalone/.next/static/chunks/024-z6hhx6kj8.js +0 -1
  328. package/.next/standalone/.next/static/chunks/02cdl9l647nfw.js +0 -5
  329. package/.next/standalone/.next/static/chunks/02hkeaf1dqmhz.js +0 -1
  330. package/.next/standalone/.next/static/chunks/05qdpgnpb_7mk.js +0 -1
  331. package/.next/standalone/.next/static/chunks/076x3dc258jv8.js +0 -1
  332. package/.next/standalone/.next/static/chunks/08fee4dmmdj39.js +0 -5
  333. package/.next/standalone/.next/static/chunks/08hbrv30ik~i9.js +0 -1
  334. package/.next/standalone/.next/static/chunks/0b6cq1pd_clzr.js +0 -2
  335. package/.next/standalone/.next/static/chunks/0cx03gmt.9kfo.js +0 -1
  336. package/.next/standalone/.next/static/chunks/0dsr03qh0epy8.js +0 -1
  337. package/.next/standalone/.next/static/chunks/0ktahv77jdq60.css +0 -1
  338. package/.next/standalone/.next/static/chunks/0m.k-orls2qu4.js +0 -1
  339. package/.next/standalone/.next/static/chunks/0mov-lr-7u237.js +0 -5
  340. package/.next/standalone/.next/static/chunks/0n52vvco8hy2h.js +0 -1
  341. package/.next/standalone/.next/static/chunks/0nkn227~1tu4_.js +0 -1
  342. package/.next/standalone/.next/static/chunks/0nxf2s5ppbm.b.js +0 -1
  343. package/.next/standalone/.next/static/chunks/0n~h~45imnm42.js +0 -1
  344. package/.next/standalone/.next/static/chunks/0qmzg_a-~~1-1.js +0 -2
  345. package/.next/standalone/.next/static/chunks/0s86miqs3h9gi.js +0 -1
  346. package/.next/standalone/.next/static/chunks/0serb6jug2wgz.js +0 -1
  347. package/.next/standalone/.next/static/chunks/0w6~b9luhbk1x.js +0 -1
  348. package/.next/standalone/.next/static/chunks/0wyjnhk_5g3.8.js +0 -12
  349. package/.next/standalone/.next/static/chunks/0x.izf3-isfsq.js +0 -1
  350. package/.next/standalone/.next/static/chunks/0x.tfkgl9nu-f.js +0 -1
  351. package/.next/standalone/.next/static/chunks/0y_s_afcrfp3_.js +0 -1
  352. package/.next/standalone/.next/static/chunks/0~moqlrzya~z_.js +0 -5
  353. package/.next/standalone/.next/static/chunks/116ssnh5k8ad9.js +0 -1
  354. package/.next/standalone/.next/static/chunks/13.pi0v53g-4n.js +0 -1
  355. package/.next/standalone/.next/static/chunks/13dz~n5.w6hta.js +0 -1
  356. package/.next/standalone/.next/static/chunks/15550tahnp.5j.js +0 -1
  357. package/.next/standalone/.next/static/chunks/17.p0kyu6y24w.js +0 -1
  358. /package/.next/standalone/.next/static/{v4Xp8QqFHgGyfY7YcmgRm → CvoaJSaxJicoNzSHfMek0}/_buildManifest.js +0 -0
  359. /package/.next/standalone/.next/static/{v4Xp8QqFHgGyfY7YcmgRm → CvoaJSaxJicoNzSHfMek0}/_clientMiddlewareManifest.js +0 -0
  360. /package/.next/standalone/.next/static/{v4Xp8QqFHgGyfY7YcmgRm → CvoaJSaxJicoNzSHfMek0}/_ssgManifest.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tower-studio",
3
- "version": "0.2.32",
3
+ "version": "0.2.34",
4
4
  "description": "AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",
5
5
  "bin": {
6
6
  "tower": "bin/tower.mjs"
@@ -18,6 +18,8 @@
18
18
  "scripts/post-install-banner.js",
19
19
  "scripts/prune-standalone-natives.js",
20
20
  "scripts/migrate-data.ts",
21
+ "scripts/run-migrations.ts",
22
+ "scripts/migrations/",
21
23
  "scripts/post-tool-hook.js",
22
24
  "scripts/session-start-hook.js",
23
25
  "scripts/stop-hook.js",
@@ -41,6 +43,7 @@
41
43
  "db:studio": "prisma studio",
42
44
  "db:init": "tsx scripts/init-db.ts",
43
45
  "db:init-fts": "tsx prisma/init-fts.ts",
46
+ "db:migrate": "tsx scripts/run-migrations.ts",
44
47
  "test": "vitest",
45
48
  "test:run": "vitest run",
46
49
  "test:e2e": "NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test",
@@ -64,6 +67,7 @@
64
67
  "@vscode/ripgrep": "1.18.0",
65
68
  "node-pty": "^1.1.0",
66
69
  "prisma": "^6.19.2",
70
+ "tinykeys": "^4.0.0",
67
71
  "tsx": "^4.21.0",
68
72
  "ws": "^8.20.0"
69
73
  },
@@ -89,6 +89,7 @@ model Task {
89
89
  versionId String?
90
90
  createdAt DateTime @default(now())
91
91
  updatedAt DateTime @updatedAt
92
+ doneAt DateTime? // 进入 DONE 的时间戳,用于「归档期限」判定(离开 DONE 时清空)
92
93
 
93
94
  project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
94
95
  executions TaskExecution[]
@@ -233,11 +234,17 @@ model ProjectAsset {
233
234
  description String? @default("")
234
235
  projectId String
235
236
  taskId String?
237
+ // 自动上传去重:sourceKey 是来源文件的稳定逻辑标识(剥离 worktree 前缀的项目相对路径),
238
+ // contentHash 是内容 sha256。同一文件再次写入按 (projectId, sourceKey) 就地更新,
239
+ // 内容未变则幂等跳过 —— 避免每次编辑都追加时间戳生成新资产。旧记录二者为 null。
240
+ sourceKey String?
241
+ contentHash String?
236
242
  createdAt DateTime @default(now())
237
243
 
238
244
  project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
239
245
  task Task? @relation(fields: [taskId], references: [id], onDelete: SetNull)
240
246
 
247
+ @@unique([projectId, sourceKey])
241
248
  @@index([projectId])
242
249
  @@index([taskId])
243
250
  }
@@ -322,6 +329,15 @@ model ProviderConnection {
322
329
  updatedAt DateTime @updatedAt
323
330
  }
324
331
 
332
+ /// Ledger of one-shot data migrations applied to THIS database (see
333
+ /// scripts/run-migrations.ts + scripts/migrations/). Bound to the DB so the
334
+ /// "already migrated" record can never drift from the data it describes.
335
+ model AppliedMigration {
336
+ /// Migration id = filename without extension, e.g. "0001-insight-category".
337
+ id String @id
338
+ appliedAt DateTime @default(now())
339
+ }
340
+
325
341
  enum ProjectType {
326
342
  NORMAL
327
343
  GIT
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Rename legacy session-insight ("dreaming") note categories to the current
3
+ * label. Covers the original "session-insight" slug and the short-lived
4
+ * "会话洞见" interim value → "经验洞见".
5
+ *
6
+ * Idempotent. Values are hardcoded on purpose: a migration is a point-in-time
7
+ * snapshot and must NOT import live app constants (those can change later; this
8
+ * migration must keep doing exactly what it did the day it shipped). src/ is
9
+ * also absent from the published package.
10
+ */
11
+
12
+ import type { PrismaClient } from "@prisma/client";
13
+
14
+ export async function up(prisma: PrismaClient): Promise<void> {
15
+ const res = await prisma.projectNote.updateMany({
16
+ where: { category: { in: ["session-insight", "会话洞见"] } },
17
+ data: { category: "经验洞见" },
18
+ });
19
+ if (res.count > 0) {
20
+ console.log(` renamed ${res.count} insight note(s) → 经验洞见`);
21
+ }
22
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * One-shot data migration runner (pre-start lifecycle phase).
3
+ *
4
+ * Runs every file in scripts/migrations/ that hasn't been applied to THIS
5
+ * database yet, in filename order, exactly once. Applied ids are recorded in
6
+ * the `AppliedMigration` table (DB-bound ledger — see schema.prisma), so the
7
+ * record can never drift from the data it describes (dev DB and prod DB each
8
+ * carry their own ledger).
9
+ *
10
+ * Each migration file exports `up(prisma)`:
11
+ * export async function up(prisma) { ... } // must be idempotent
12
+ *
13
+ * Failure policy: a failing migration is logged and retried on the next start;
14
+ * later migrations are NOT run (they may depend on it). The process still exits
15
+ * 0 so a single bad migration never bricks startup. Only an unrecoverable error
16
+ * (e.g. DB unreachable) exits non-zero.
17
+ *
18
+ * Invoked by bin/tower.mjs pre-start, and available in dev via `pnpm db:migrate`.
19
+ * Requires the schema to be current (the AppliedMigration table must exist) —
20
+ * bin/tower.mjs guarantees this by running schema sync first.
21
+ */
22
+
23
+ import { PrismaClient } from "@prisma/client";
24
+ import { existsSync, readdirSync } from "fs";
25
+ import { join, dirname } from "path";
26
+ import { fileURLToPath, pathToFileURL } from "url";
27
+
28
+ const MIGRATIONS_DIR = join(dirname(fileURLToPath(import.meta.url)), "migrations");
29
+
30
+ async function main() {
31
+ if (!existsSync(MIGRATIONS_DIR)) return;
32
+
33
+ const files = readdirSync(MIGRATIONS_DIR)
34
+ .filter((f) => /^\d.*\.(ts|mjs|js)$/.test(f))
35
+ .sort();
36
+ if (files.length === 0) return;
37
+
38
+ const prisma = new PrismaClient();
39
+ try {
40
+ const appliedRows = await prisma.appliedMigration.findMany({ select: { id: true } });
41
+ const applied = new Set(appliedRows.map((r) => r.id));
42
+
43
+ for (const file of files) {
44
+ const id = file.replace(/\.(ts|mjs|js)$/, "");
45
+ if (applied.has(id)) continue;
46
+
47
+ try {
48
+ const mod = await import(pathToFileURL(join(MIGRATIONS_DIR, file)).href);
49
+ const up = mod.up ?? mod.default;
50
+ if (typeof up !== "function") {
51
+ console.error(`[migrate] ${id}: no up()/default export — skipping`);
52
+ continue;
53
+ }
54
+ console.log(`[migrate] applying ${id}...`);
55
+ await up(prisma);
56
+ await prisma.appliedMigration.create({ data: { id } });
57
+ console.log(`[migrate] ${id} done`);
58
+ } catch (err) {
59
+ // Stop here — later migrations may depend on this one. Not recorded, so
60
+ // it retries on next start. Non-fatal: don't block server startup.
61
+ console.error(`[migrate] ${id} FAILED (will retry next start):`, err);
62
+ break;
63
+ }
64
+ }
65
+ } finally {
66
+ await prisma.$disconnect();
67
+ }
68
+ }
69
+
70
+ main().catch((err) => {
71
+ console.error("[migrate] runner failed:", err);
72
+ process.exit(1);
73
+ });
@@ -1,3 +0,0 @@
1
- module.exports=[324725,(e,r,n)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,r,n)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,r,n)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,r,n)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,r,n)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},270406,(e,r,n)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},814747,(e,r,n)=>{r.exports=e.x("path",()=>require("path"))},446786,(e,r,n)=>{r.exports=e.x("os",()=>require("os"))},750227,(e,r,n)=>{r.exports=e.x("node:path",()=>require("node:path"))},902157,(e,r,n)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,r,n)=>{r.exports=e.x("node:child_process",()=>require("node:child_process"))},522734,(e,r,n)=>{r.exports=e.x("fs",()=>require("fs"))},233405,(e,r,n)=>{r.exports=e.x("child_process",()=>require("child_process"))},769310,e=>{"use strict";var r=e.i(902157),n=e.i(874533),t=e.i(750227);function a(e=process.platform){return"win32"===e}function s(e){let r=e.replace(/\r\n|\r|\n/g," ");if(!r.length)return'""';let n=r.replace(/"/g,'""');return/[\s"&<>|^()]/.test(n)?`"${n}"`:n}let o=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function i(e,r={}){let n=r.cwd??process.cwd(),s=r.env??process.env,o=r.platform??process.platform;if(e.includes("/")||e.includes("\\")){let r=t.default.isAbsolute(e)?e:t.default.resolve(n,e);return await m(r,o)?r:null}let l=s.PATH??s.Path??"",p=a(o)?";":":",c=l.split(p).filter(Boolean),d=a(o)?(s.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],u=a(o)&&t.default.extname(e).length>0;for(let r of c)for(let n of a(o)?u?[t.default.join(r,e)]:d.map(n=>t.default.join(r,`${e}${n}`)):[t.default.join(r,e)])if(await m(n,o))return n;return null}let l=e=>(0,n.execSync)(e,{encoding:"utf-8",timeout:5e3,stdio:["ignore","pipe","ignore"]});function p(e,r=process.platform,s=l){if(t.default.extname(e)||e.includes("/")||e.includes("\\"))return e;if(!a(r)){try{let r=(0,n.execFileSync)("which",[e],{encoding:"utf-8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();if(r)return r}catch{}return e}try{let r=s(`where ${e}`).trim().split("\n").map(e=>e.trim()).filter(Boolean),n=r.find(e=>/\.(cmd|bat|exe)$/i.test(e));if(n)return n;if(r.length>0)return r[0]}catch{}return e}async function c(e,r,n={}){let t=n.env??process.env,a=n.platform??process.platform;return d(await i(e,n)??e,r,t,a)}function d(e,r,n,o){if(!a(o))return{command:e,args:r};let i=t.default.extname(e).toLowerCase();return".cmd"===i||".bat"===i||".com"===i?{command:n.ComSpec||"cmd.exe",args:["/d","/s","/c",[s(e),...r.map(s)].join(" ")]}:{command:e,args:r}}async function m(e,n=process.platform){try{return await r.promises.access(e,a(n)?r.constants.F_OK:r.constants.X_OK),!0}catch{return!1}}async function u(e=process.platform){return a(e)?w():f()}async function f(){try{let e=await r.promises.readFile("/etc/shells","utf-8"),n=[],a=new Map;for(let r of e.split("\n")){let e=r.replace(/#.*/,"").trim();if(!e||!e.startsWith("/")||!await m(e))continue;let s=t.default.basename(e),o=a.get(s)??0;a.set(s,o+1),o>0&&(s=`${s} (${o+1})`),n.push({name:s,path:e})}return n}catch{let e=[];for(let r of["/bin/zsh","/bin/bash","/bin/sh"])await m(r)&&e.push({name:t.default.basename(r),path:r});return e}}async function w(){let e=[],r=[],n=await i("git",{platform:"win32"});if(n){let e=t.default.resolve(t.default.dirname(n),"..","..");r.push(t.default.join(e,"bin","bash.exe"),t.default.join(e,"usr","bin","bash.exe"))}for(let e of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?t.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))r.push(t.default.join(e,"Git","bin","bash.exe"),t.default.join(e,"Git","usr","bin","bash.exe"));let a=process.env.USERPROFILE??"";for(let n of(a&&r.push(t.default.join(a,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&r.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),r))if(await m(n,"win32")){e.push({name:"Git Bash",path:n});break}let s=await i("pwsh",{platform:"win32"});s&&e.push({name:"PowerShell",path:s});let o=process.env.windir??"C:\\WINDOWS",l=t.default.join(o,"System32","WindowsPowerShell","v1.0","powershell.exe");await m(l,"win32")&&e.push({name:"Windows PowerShell",path:l});let p=process.env.ComSpec??t.default.join(o,"System32","cmd.exe");return await m(p,"win32")&&e.push({name:"Command Prompt",path:p}),e}let b=[{name:"Terminal",bundleName:"Terminal"},{name:"iTerm2",bundleName:"iTerm"},{name:"Warp",bundleName:"Warp"},{name:"Alacritty",bundleName:"Alacritty"},{name:"WezTerm",bundleName:"WezTerm"},{name:"kitty",bundleName:"kitty"},{name:"Hyper",bundleName:"Hyper"}];async function h(e=process.platform){if("darwin"===e){let r=[];for(let n of b){let t=await m(`/Applications/${n.bundleName}.app`,e);r.push({name:n.name,value:n.bundleName,installed:t})}return r}if(a(e)){let r=[],n=await i("wt",{platform:e});return n&&r.push({name:"Windows Terminal",value:n,installed:!0}),r}return[]}let x=[{name:"VS Code",command:"code"},{name:"VS Code Insiders",command:"code-insiders"},{name:"Cursor",command:"cursor"},{name:"Windsurf",command:"windsurf"},{name:"Zed",command:"zed"},{name:"Sublime Text",command:"subl"},{name:"IntelliJ IDEA",command:"idea"},{name:"WebStorm",command:"webstorm"},{name:"PyCharm",command:"pycharm"},{name:"GoLand",command:"goland"},{name:"RubyMine",command:"rubymine"},{name:"PhpStorm",command:"phpstorm"},{name:"CLion",command:"clion"},{name:"Rider",command:"rider"}],C={code:{darwin:["/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"],win32:["%LOCALAPPDATA%\\Programs\\Microsoft VS Code\\bin\\code.cmd","%ProgramFiles%\\Microsoft VS Code\\bin\\code.cmd"]},"code-insiders":{darwin:["/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin/code-insiders"],win32:["%LOCALAPPDATA%\\Programs\\Microsoft VS Code Insiders\\bin\\code-insiders.cmd","%ProgramFiles%\\Microsoft VS Code Insiders\\bin\\code-insiders.cmd"]},cursor:{darwin:["/Applications/Cursor.app/Contents/Resources/app/bin/cursor"],win32:["%LOCALAPPDATA%\\Programs\\cursor\\resources\\app\\bin\\cursor.cmd"]},windsurf:{darwin:["/Applications/Windsurf.app/Contents/Resources/app/bin/windsurf"],win32:["%LOCALAPPDATA%\\Programs\\Windsurf\\bin\\windsurf.cmd"]},zed:{darwin:["/Applications/Zed.app/Contents/MacOS/cli"]},subl:{darwin:["/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"],win32:["%ProgramFiles%\\Sublime Text\\subl.exe","%ProgramFiles%\\Sublime Text 3\\subl.exe"]},idea:{darwin:["/Applications/IntelliJ IDEA.app/Contents/MacOS/idea","/Applications/IntelliJ IDEA CE.app/Contents/MacOS/idea"]},webstorm:{darwin:["/Applications/WebStorm.app/Contents/MacOS/webstorm"]},pycharm:{darwin:["/Applications/PyCharm.app/Contents/MacOS/pycharm","/Applications/PyCharm CE.app/Contents/MacOS/pycharm"]},goland:{darwin:["/Applications/GoLand.app/Contents/MacOS/goland"]},rubymine:{darwin:["/Applications/RubyMine.app/Contents/MacOS/rubymine"]},phpstorm:{darwin:["/Applications/PhpStorm.app/Contents/MacOS/phpstorm"]},clion:{darwin:["/Applications/CLion.app/Contents/MacOS/clion"]},rider:{darwin:["/Applications/Rider.app/Contents/MacOS/rider"]}};async function S(e,r={}){let n=r.platform??process.platform,t=r.env??process.env,s=await i(e,r);if(s)return s;for(let r of C[e]?.[n]??[]){let e=a(n)?function(e,r){return e.replace(/%([^%]+)%/g,(e,n)=>{let t=r[n];if(void 0!==t)return t;let a=Object.keys(r).find(e=>e.toLowerCase()===n.toLowerCase());return a?r[a]??e:e})}(r,t):r;if(await m(e,n))return e}return null}async function A(e=process.platform){let r=[];for(let n of x){let t=!!await S(n.command,{platform:e});r.push({name:n.name,command:n.command,installed:t})}return r}e.s(["detectEditors",0,A,"detectShells",0,u,"detectTerminalApps",0,h,"ensurePathInEnv",0,function(e,r=process.platform){let n=a(r)?"Path":"PATH";return(e.PATH??e.Path??"").length>0?e:{...e,[n]:function(e=process.platform){return a(e)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(r)}},"isWindows",0,a,"resolveCommandPath",0,i,"resolveCommandPathSync",0,p,"resolveSdkExecutable",0,function(e,n=process.platform,s=e=>(0,r.readFileSync)(e,"utf-8"),o=e=>(0,r.existsSync)(e)){if(!a(n))return e;let i=t.default.extname(e).toLowerCase();if(".cmd"!==i&&".bat"!==i)return e;let l=t.default.win32.dirname(e),p="";try{let r=s(e);p=r.replace(/\s+/g," ").slice(0,400);let n=r.match(/"([^"]*\.(?:c?js|mjs))"/i);if(n){let e=n[1].replace(/%~?dp0%/gi,l).replace(/\//g,"\\"),r=t.default.win32.isAbsolute(e)?t.default.win32.normalize(e):t.default.win32.resolve(l,e);if(o(r))return r;console.error(`[resolveSdkExecutable] parsed cli="${r}" but it doesn't exist`)}}catch(e){console.error(`[resolveSdkExecutable] shim read failed: ${e instanceof Error?e.message:e}`)}let c=t.default.win32.join(l,"node_modules","@anthropic-ai","claude-code","cli.js");return o(c)?c:(console.error(`[resolveSdkExecutable] could not convert ${e} → guess="${c}" exists=${o(c)} shim="${p}"`),e)},"resolveSpawnTarget",0,c,"resolveSpawnTargetSync",0,function(e,r,n=process.platform,t){return d(p(e,n,t),r,process.env,n)},"stripClaudeNestingEnv",0,function(e){let r={...e};for(let e of o)delete r[e];return r}])}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0122.hq._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},198840,e=>{"use strict";var t=e.i(855104);let r=["localhost","127.0.0.1","[::1]"],s=new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]),n=/^c[a-z0-9]{20,30}$/;e.s(["requireLocalhost",0,function(e){let n=e.headers.get("x-forwarded-for");if(n&&!n.split(",").map(e=>e.trim()).every(e=>s.has(e)))return t.NextResponse.json({error:"Forbidden"},{status:403});let a=e.headers.get("host")??"";return r.some(e=>a.startsWith(e))?null:t.NextResponse.json({error:"Forbidden"},{status:403})},"validateProjectId",0,function(e){return n.test(e)?null:t.NextResponse.json({error:"Invalid projectId format"},{status:400})},"validateTaskId",0,function(e){return n.test(e)?null:t.NextResponse.json({error:"Invalid taskId format"},{status:400})}])},933919,(e,t,r)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},192520,e=>{"use strict";let t;var r=e.i(750227),s=e.i(660526),n=e.i(902157);function a(){return t||(t=process.env.TOWER_DATA_DIR||(0,r.join)((0,s.homedir)(),".tower"),(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0})),t}e.s(["getAssistantDir",0,function(){let e=(0,r.join)(a(),"assistant");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getBackupsDir",0,function(){let e=(0,r.join)(a(),"backups");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getExtensionsDir",0,function(){let e=(0,r.join)(a(),"extensions");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getStorageDir",0,function(){let e=process.env.TOWER_STORAGE_DIR||function(){try{let e=(0,n.readFileSync)((0,r.join)(a(),"storage-location"),"utf-8").trim();return e.length>0?e:null}catch{return null}}(),t=e&&e.length>0?e:(0,r.join)(a(),"storage");return(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0}),t},"getTowerDbPath",0,function(){let e;return(0,r.join)((e=(0,r.join)(a(),"database"),(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e),"tower.db")},"getTowerDir",0,a])},843793,e=>{"use strict";var t=e.i(933919);let r=globalThis.prisma??new t.PrismaClient({log:[]});process.on("SIGTERM",()=>{r.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{r.$disconnect().catch(()=>{})}),e.s(["db",0,r])},572173,e=>{"use strict";var t=e.i(843793);async function r(e,r){let s=await t.db.systemConfig.findUnique({where:{key:e}});if(!s)return r;try{return JSON.parse(s.value)}catch{return r}}e.s(["readConfigValue",0,r])},341291,e=>{"use strict";var t=e.i(666680),r=e.i(902157),s=e.i(750227),n=e.i(192520);function a(e){if(!e.startsWith((0,n.getStorageDir)()+s.sep))throw Error("Path traversal detected")}let i=new Set(["image","screenshot","img","photo","picture","clipboard","paste","untitled"]);e.s(["buildCacheFilename",0,function(e,r){let n=s.basename(e,s.extname(e)),a=t.randomUUID().replace(/-/g,"").slice(0,8),o=n.toLowerCase();if(!n||i.has(o)||/^screenshot[\s_\-]/i.test(n))return`tower_image-${a}${r}`;let l=n.replace(/[^\p{L}\p{N}]/gu,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"");return`${l||"file"}-${a}${r}`},"ensureAssetsDir",0,function(e){let t,i=(a(t=s.join((0,n.getStorageDir)(),"assets",e)),t);return r.mkdirSync(i,{recursive:!0}),i},"getAssistantCacheDir",0,function(e="images"){let t=new Date,i=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}`,o=s.join((0,n.getStorageDir)(),"cache","assistant",i,e);return a(o),r.mkdirSync(o,{recursive:!0}),o},"getAssistantCacheRoot",0,function(){let e=s.join((0,n.getStorageDir)(),"cache","assistant");return a(e),e}])},760640,e=>{"use strict";var t=e.i(765876),r=e.i(675896),s=e.i(959160),n=e.i(97944),a=e.i(86757),i=e.i(204144),o=e.i(273436),l=e.i(743641),u=e.i(813766),c=e.i(840884),d=e.i(498814),p=e.i(780006),h=e.i(544432),x=e.i(772005),g=e.i(450223),f=e.i(193695);e.i(628400);var m=e.i(800071),v=e.i(855104),R=e.i(924868),y=e.i(522734),w=e.i(814747),j=e.i(843793),b=e.i(198840),S=e.i(572173),E=e.i(341291);let C=["png","jpg","jpeg","gif","webp","svg","pdf","md","txt","json"],k={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",pdf:"application/pdf",md:"text/markdown",txt:"text/plain",json:"application/json"};async function N(e){let t=(0,b.requireLocalhost)(e);if(t)return t;let r=await (0,S.readConfigValue)("hooks.autoUploadTypes",C);return v.NextResponse.json({types:r})}async function T(e){let t,r,s=(0,b.requireLocalhost)(e);if(s)return s;try{t=await e.json()}catch{return v.NextResponse.json({error:"Invalid JSON body"},{status:400})}let{taskId:n,filePath:a}=t;if(!n||"string"!=typeof n)return v.NextResponse.json({error:"Missing taskId"},{status:400});let i=(0,b.validateTaskId)(n);if(i)return i;if(!a||"string"!=typeof a)return v.NextResponse.json({error:"Missing filePath"},{status:400});try{r=await (0,R.stat)(a)}catch{return v.NextResponse.json({error:"File not found"},{status:404})}let o=await (0,S.readConfigValue)("system.maxUploadBytes",0xa00000);if(r.size>o)return v.NextResponse.json({error:`File exceeds max size (${o} bytes)`},{status:413});let l=w.extname(a).slice(1).toLowerCase();if(!(await (0,S.readConfigValue)("hooks.autoUploadTypes",C)).includes(l))return v.NextResponse.json({error:`File type .${l} not in allowed list`},{status:400});let u=await j.db.task.findUnique({where:{id:n},select:{projectId:!0,project:{select:{localPath:!0}}}});if(!u)return v.NextResponse.json({error:"Task not found"},{status:404});let c=w.resolve(a),d=u.project.localPath,p=process.env.TMPDIR||"/tmp",h=d&&c.startsWith(w.resolve(d)+w.sep),x=c.startsWith(w.resolve(p)+w.sep);if(!h&&!x)return v.NextResponse.json({error:"filePath must be within the project directory or temp directory"},{status:403});let g=u.projectId,f=(0,E.ensureAssetsDir)(g),m=w.basename(a),N=w.join(f,m);if((0,y.existsSync)(N)){let e=w.basename(m,w.extname(m)),t=Date.now();m=`${e}-${t}.${l}`,N=w.join(f,m)}try{await (0,R.copyFile)(a,N)}catch(e){return v.NextResponse.json({error:`Failed to copy file: ${e instanceof Error?e.message:"unknown"}`},{status:500})}let T=k[l]||"application/octet-stream",A=await j.db.projectAsset.create({data:{filename:m,path:N,mimeType:T,size:r.size,projectId:g,taskId:n}});return v.NextResponse.json({success:!0,assetId:A.id})}e.s(["GET",0,N,"POST",0,T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],779901);var A=e.i(779901);let q=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/internal/hooks/upload/route",pathname:"/api/internal/hooks/upload",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/internal/hooks/upload/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:I,workUnitAsyncStorage:P,serverHooks:D}=q;async function _(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),q.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/internal/hooks/upload/route";v=v.replace(/\/index$/,"")||"/";let R=await q.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:j,parsedUrl:b,isDraftMode:S,prerenderManifest:E,routerServerContext:C,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,resolvedPathname:T,clientReferenceManifest:A,serverActionsManifest:I}=R,P=(0,o.normalizeAppPath)(v),D=!!(E.dynamicRoutes[P]||E.routes[T]),_=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,b,!1):t.end("This page could not be found"),null);if(D&&!S){let e=!!E.routes[T],t=E.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(j.adapterPath)return await _();throw new f.NoFallbackError}}let O=null;!D||q.isDev||S||(O="/index"===(O=T)?"/":O);let $=!0===q.isDev||!D,U=D&&!$;I&&A&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:A,serverActionsManifest:I});let M=e.method||"GET",F=(0,a.getTracer)(),H=F.getActiveScopeSpan(),L=!!(null==C?void 0:C.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await q.getIncrementalCache(e,j,E,W);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let K={params:w,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:$,incrementalCache:B,cacheLifeProfiles:j.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>q.onRequestError(e,t,s,n,C)},sharedContext:{buildId:y}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>q.handle(z,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${M} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",s),n.updateName(t))}else e.updateName(`${M} ${v}`)}),o=async n=>{var a,o;let l=async({previousCacheEntry:r})=>{try{if(!W&&k&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let l=K.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(G,V,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,s=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await q.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:k})},!1,C),t}},u=await q.handleResponse({req:e,nextConfig:j,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:W});if(!D)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&D||c.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(G,V,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};L&&H?await o(H):(n=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!L))}catch(t){if(t instanceof f.NoFallbackError||await q.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:k})},!1,C),D)throw t;return await (0,p.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:I,workUnitAsyncStorage:P})},"routeModule",0,q,"serverHooks",0,D,"workAsyncStorage",0,I,"workUnitAsyncStorage",0,P],760640)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0541-er._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},198840,e=>{"use strict";var t=e.i(855104);let r=["localhost","127.0.0.1","[::1]"],a=new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]),n=/^c[a-z0-9]{20,30}$/;e.s(["requireLocalhost",0,function(e){let n=e.headers.get("x-forwarded-for");if(n&&!n.split(",").map(e=>e.trim()).every(e=>a.has(e)))return t.NextResponse.json({error:"Forbidden"},{status:403});let s=e.headers.get("host")??"";return r.some(e=>s.startsWith(e))?null:t.NextResponse.json({error:"Forbidden"},{status:403})},"validateProjectId",0,function(e){return n.test(e)?null:t.NextResponse.json({error:"Invalid projectId format"},{status:400})},"validateTaskId",0,function(e){return n.test(e)?null:t.NextResponse.json({error:"Invalid taskId format"},{status:400})}])},980738,(e,t,r)=>{t.exports=e.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,e=>e.a(async(t,r)=>{try{let t=await e.y("ws-4df7fc762dfa9a52");e.n(t),r()}catch(e){r(e)}},!0),504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},933919,(e,t,r)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},192520,e=>{"use strict";let t;var r=e.i(750227),a=e.i(660526),n=e.i(902157);function s(){return t||(t=process.env.TOWER_DATA_DIR||(0,r.join)((0,a.homedir)(),".tower"),(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0})),t}e.s(["getAssistantDir",0,function(){let e=(0,r.join)(s(),"assistant");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getBackupsDir",0,function(){let e=(0,r.join)(s(),"backups");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getExtensionsDir",0,function(){let e=(0,r.join)(s(),"extensions");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getStorageDir",0,function(){let e=process.env.TOWER_STORAGE_DIR||function(){try{let e=(0,n.readFileSync)((0,r.join)(s(),"storage-location"),"utf-8").trim();return e.length>0?e:null}catch{return null}}(),t=e&&e.length>0?e:(0,r.join)(s(),"storage");return(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0}),t},"getTowerDbPath",0,function(){let e;return(0,r.join)((e=(0,r.join)(s(),"database"),(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e),"tower.db")},"getTowerDir",0,s])},482819,(e,t,r)=>{"use strict";t.exports=e.r(583981).vendored["react-rsc"].ReactServerDOMTurbopackServer},921675,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"registerServerReference",{enumerable:!0,get:function(){return a.registerServerReference}});let a=e.r(482819)},86708,(e,t,r)=>{"use strict";function a(e){for(let t=0;t<e.length;t++){let r=e[t];if("function"!=typeof r)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof r}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return a}})},843793,e=>{"use strict";var t=e.i(933919);let r=globalThis.prisma??new t.PrismaClient({log:[]});process.on("SIGTERM",()=>{r.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{r.$disconnect().catch(()=>{})}),e.s(["db",0,r])},572173,e=>{"use strict";var t=e.i(843793);async function r(e,r){let a=await t.db.systemConfig.findUnique({where:{key:e}});if(!a)return r;try{return JSON.parse(a.value)}catch{return r}}e.s(["readConfigValue",0,r])},658053,e=>{"use strict";e.s(["ASSISTANT_SESSION_KEY",0,"__assistant__"])},341291,e=>{"use strict";var t=e.i(666680),r=e.i(902157),a=e.i(750227),n=e.i(192520);function s(e){if(!e.startsWith((0,n.getStorageDir)()+a.sep))throw Error("Path traversal detected")}let i=new Set(["image","screenshot","img","photo","picture","clipboard","paste","untitled"]);e.s(["buildCacheFilename",0,function(e,r){let n=a.basename(e,a.extname(e)),s=t.randomUUID().replace(/-/g,"").slice(0,8),o=n.toLowerCase();if(!n||i.has(o)||/^screenshot[\s_\-]/i.test(n))return`tower_image-${s}${r}`;let l=n.replace(/[^\p{L}\p{N}]/gu,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"");return`${l||"file"}-${s}${r}`},"ensureAssetsDir",0,function(e){let t,i=(s(t=a.join((0,n.getStorageDir)(),"assets",e)),t);return r.mkdirSync(i,{recursive:!0}),i},"getAssistantCacheDir",0,function(e="images"){let t=new Date,i=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}`,o=a.join((0,n.getStorageDir)(),"cache","assistant",i,e);return s(o),r.mkdirSync(o,{recursive:!0}),o},"getAssistantCacheRoot",0,function(){let e=a.join((0,n.getStorageDir)(),"cache","assistant");return s(e),e}])},634712,e=>{"use strict";let t=["jpg","jpeg","png","gif","webp"],r=["md","txt","json","csv"],a=[...t,...r].join("|"),n=RegExp(`^\\d{4}-\\d{2}/(images|files)/[^/]+\\.(${a})$`,"i");function s(e){let a=e.replace(/^\./,"").toLowerCase();return t.includes(a)?"image":r.includes(a)?"text":null}[...t.map(e=>`.${e}`),...r.map(e=>`.${e}`),"image/*"].join(","),e.s(["ALLOWED_TEXT_EXTS",0,r,"ATTACHMENT_SUBPATH_RE",0,n,"MAX_ATTACHMENTS",0,10,"classifyAttachmentExt",0,s,"classifyAttachmentSubPath",0,function(e){if(!n.test(e))return null;let t=e.lastIndexOf(".");return t<0?null:s(e.slice(t+1))}])},276534,e=>{"use strict";e.s(["CONFIG_DEFAULTS",0,{"git.pathMappingRules":{defaultValue:[],type:"object",label:"Git Path Mapping Rules"},"system.maxUploadBytes":{defaultValue:0x3200000,type:"number",label:"Max Upload Size (bytes)"},"system.maxConcurrentExecutions":{defaultValue:20,type:"number",label:"Max Concurrent Executions"},"system.maxReadableFileBytes":{defaultValue:5242880,type:"number",label:"Max Readable File Size (bytes)"},"system.backupDir":{defaultValue:"",type:"string",label:"Backup Directory"},"git.timeoutSec":{defaultValue:30,type:"number",label:"Git Operation Timeout (seconds)"},"search.resultLimit":{defaultValue:20,type:"number",label:"Search Result Limit"},"search.allModeCap":{defaultValue:5,type:"number",label:"All-Mode Per-Type Cap"},"search.debounceMs":{defaultValue:250,type:"number",label:"Search Debounce (ms)"},"search.snippetLength":{defaultValue:80,type:"number",label:"Snippet Length (characters)"},"search.codeTimeoutSec":{defaultValue:30,type:"number",label:"Code Search Timeout (seconds)"},"missions.grid.minCols":{defaultValue:1,type:"number",label:"Grid Min Columns"},"missions.grid.maxCols":{defaultValue:5,type:"number",label:"Grid Max Columns"},"missions.grid.minRows":{defaultValue:1,type:"number",label:"Grid Min Rows"},"missions.grid.maxRows":{defaultValue:5,type:"number",label:"Grid Max Rows"},"terminal.app":{defaultValue:"Terminal",type:"string",label:"Default Terminal App"},"editor.command":{defaultValue:"",type:"string",label:"Default Editor Command"},"terminal.wsPort":{defaultValue:3001,type:"number",label:"WebSocket Port"},"terminal.idleTimeoutSec":{defaultValue:180,type:"number",label:"Idle Timeout (seconds)"},"terminal.fontSize":{defaultValue:13,type:"number",label:"Terminal Font Size"},"terminal.fontFamily":{defaultValue:"Menlo, Monaco, 'Courier New', monospace",type:"string",label:"Terminal Font Family"},"assistant.systemPrompt":{defaultValue:'You are Tower Assistant — the built-in AI operator for the Tower task management platform.\n\n## Identity\n- You are a task management operator, NOT a coding assistant.\n- You can ONLY use Tower MCP tools. You CANNOT read files, edit code, run shell commands, or search the web.\n- Always respond in the same language the user uses.\n\n## Capabilities\nWhen users ask what you can do, respond with EXACTLY these 6 groups. Translate to the user\'s language.\n\n1. **Workspace & Project** — View, create, update, delete workspaces and projects. Search projects and repositories.\n2. **Task Management** — Create tasks (priority, labels, worktree branch isolation, sub-path, auto-start). Move task status (TODO → IN_PROGRESS → IN_REVIEW → DONE / CANCELLED). Update task info and labels.\n3. **Execution Monitor** — Start task execution, check execution status, get terminal output, send commands to running terminals.\n4. **Daily Report & Todo** — Generate daily work summary (completed + in-progress). View pending task list sorted by priority.\n5. **Labels & Notes & Assets** — Manage workspace labels, project notes, and file attachments.\n6. **Global Search** — Search tasks, projects, repositories, notes, and assets by keyword.\n\nDo NOT list any capabilities beyond the above. Do NOT mention code editing, debugging, testing, git operations, or any development capabilities.\n\n## Scope Boundary\nIf the user asks you to write code, explain code, debug, search the web, read/write files, or anything outside Tower task management, reply:\n"抱歉,我只能帮你管理工作区、项目和任务。编码、调试等操作请在任务终端中完成。"',type:"string",label:"Assistant System Prompt"},"assistant.displayMode":{defaultValue:"sidebar",type:"string",label:"Assistant Display Mode"},"assistant.communicationMode":{defaultValue:"chat",type:"string",label:"Assistant Communication Mode"},"task.defaultUseWorktree":{defaultValue:!0,type:"boolean",label:"Default: Use Worktree"},"task.defaultAutoStart":{defaultValue:!1,type:"boolean",label:"Default: Auto-start Execution"},"task.mcpDefaultsConfigured":{defaultValue:!1,type:"boolean",label:"MCP Task Defaults Configured"}}])},61920,e=>{"use strict";var t=e.i(446786),r=e.i(814747);function a(e){return e.startsWith("~/")?r.default.join(t.default.homedir(),e.slice(2)):e}function n(e){let t,r=e.match(/^git@([^:]+):(.+)$/);if(r)return{host:r[1],pathSegments:s(r[2]).split("/").filter(Boolean)};try{t=new URL(e)}catch{return null}return{host:t.hostname,pathSegments:s(decodeURIComponent(t.pathname)).split("/").filter(Boolean)}}function s(e){return e.replace(/\.git\/?$/,"")}e.s(["gitUrlToLocalPath",0,function(e){let t=e.trim();if(!t)return"";try{let e=n(t);if(!e)return"";let{host:s,pathSegments:i}=e;if("code.iflytek.com"===s){let e,t;return a((e=[...i],"osc"===e[0]&&"_source"===e[1]&&(e=e.slice(2)),((t=e.indexOf("-"))>0&&(e=e.slice(0,t)),0===e.length)?"":`~/company/${e.join("/")}`))}if("github.com"===s){var r;let e,t;return a((e=(r=i)[0],t=r[1],e&&t?`${"jp-liu"===e?"~/project/i":"~/project/f"}/${t}`:""))}let o=i[i.length-1];return o?a(`~/project/f/${o}`):""}catch{return""}},"matchGitPathRule",0,function(e,t){if(!t.length)return"";let r=e.trim();if(!r)return"";let s=n(r);if(!s)return"";let{host:i,pathSegments:o}=s,l=o[0]??"",u=o[o.length-1]??"",c=[...t].sort((e,t)=>{let r=+("*"===e.ownerMatch),a=+("*"===t.ownerMatch);return r!==a?r-a:e.priority-t.priority}),d=o.join("/");for(let e of c){if(e.host!==i||"*"!==e.ownerMatch&&e.ownerMatch!==l)continue;let t=e.localPathTemplate;if(t.includes("{path}"))return a(t.replace("{path}",d).replace("{owner}",l).replace("{repo}",u).replace(/\/+$/,""));let r=t.replace("{owner}",l).replace("{repo}","").replace(/\/+$/,"");return a(`${r}/${u}`)}return""}])},22569,e=>e.a(async(t,r)=>{try{var a=e.i(921675),n=e.i(843793),s=e.i(276534),i=e.i(61920),o=e.i(769310),l=e.i(721390),u=e.i(86708),c=t([l]);async function d(e,t){let r=await n.db.systemConfig.findUnique({where:{key:e}});if(!r)return t;try{return JSON.parse(r.value)}catch{return t}}async function p(e,t){await n.db.systemConfig.upsert({where:{key:e},create:{key:e,value:JSON.stringify(t)},update:{value:JSON.stringify(t)}})}async function f(e){let t=e.trim();if(!t)return"";try{let e=await d("git.pathMappingRules",[]),r=(0,i.matchGitPathRule)(t,e);if(r)return r;return(0,i.gitUrlToLocalPath)(t)}catch{return(0,i.gitUrlToLocalPath)(t)}}async function m(e){let t=await n.db.systemConfig.findMany({where:{key:{in:e}}}),r=Object.fromEntries(t.map(e=>{try{return[e.key,JSON.parse(e.value)]}catch{return[e.key,null]}})),a={};for(let t of e)a[t]=t in r?r[t]:s.CONFIG_DEFAULTS[t]?.defaultValue??null;return a}async function h(){return(0,o.detectShells)()}async function g(){return(0,o.detectTerminalApps)()}async function y(){return(0,o.detectEditors)()}async function b(){return{platform:process.platform}}async function x(){let e=(0,l.getActiveWsPort)();if(null!==e)return e;let t=parseInt(process.env.PORT||"3000",10);return d("terminal.wsPort",t+1)}[l]=c.then?(await c)():c,(0,u.ensureServerEntryExports)([d,p,f,m,h,g,y,b,x]),(0,a.registerServerReference)(d,"6023f7fd9697f8622ec6253be83036fb51f78a003f",null),(0,a.registerServerReference)(p,"60419002d165e0acbafb67ca7d3daa91b1a43038f4",null),(0,a.registerServerReference)(f,"406cf57ab441b87fe26b4e4ba61492f885d99c626c",null),(0,a.registerServerReference)(m,"40bbb15b95b61da428c7e4c39a37b1859d070f0d4a",null),(0,a.registerServerReference)(h,"000117c8322c6744858d19768dc231e2644e700bbf",null),(0,a.registerServerReference)(g,"00efa63e5ad5c88ad23570d460c7e51e389903e249",null),(0,a.registerServerReference)(y,"000ef5644a74d2cb87838153533141bf8e3d6dc301",null),(0,a.registerServerReference)(b,"003a7801adab8f01470f0a6b52a9ffaea5eab3fd1a",null),(0,a.registerServerReference)(x,"0013b21d67a7ce907696bad27cf0af74419e936884",null),e.s(["getConfigValue",0,d]),r()}catch(e){r(e)}},!1),437513,e=>{"use strict";let t=[{mime:"image/jpeg",check:e=>255===e[0]&&216===e[1]&&255===e[2]},{mime:"image/png",check:e=>137===e[0]&&80===e[1]&&78===e[2]&&71===e[3]},{mime:"image/gif",check:e=>71===e[0]&&73===e[1]&&70===e[2]},{mime:"image/webp",check:e=>82===e[0]&&73===e[1]&&70===e[2]&&70===e[3]&&87===e[8]&&69===e[9]&&66===e[10]&&80===e[11]}];e.s(["MIME_TO_EXT",0,{"image/jpeg":".jpg","image/png":".png","image/gif":".gif","image/webp":".webp"},"TEXT_EXT_TO_MIME",0,{".md":"text/markdown",".txt":"text/plain",".json":"application/json",".csv":"text/csv"},"detectImageMime",0,function(e){if(e.length<12)return null;for(let r of t)if(r.check(e))return r.mime;return null},"isLikelyTextFile",0,function(e){if(0===e.length)return!0;let t=Math.min(e.length,8192);for(let r=0;r<t;r++)if(0===e[r])return!1;return!0}])},648834,e=>e.a(async(t,r)=>{try{var a=e.i(750227),n=e.i(902157),s=e.i(855104),i=e.i(198840),o=e.i(437513),l=e.i(341291),u=e.i(22569),c=e.i(634712),d=t([u]);async function p(e){let t,r,d,p=(0,i.requireLocalhost)(e);if(p)return p;let f=(await e.formData()).get("file");if(!f)return s.NextResponse.json({error:"Missing file field"},{status:400});let m=await (0,u.getConfigValue)("system.maxUploadBytes",0x3200000);if(f.size>m)return s.NextResponse.json({error:"File too large"},{status:400});let h=Buffer.from(await f.arrayBuffer()),g=a.extname(f.name),y=(0,c.classifyAttachmentExt)(g);if(!y)return s.NextResponse.json({error:"Unsupported file type"},{status:400});if("image"===y){let e=(0,o.detectImageMime)(h);if(!e)return s.NextResponse.json({error:"Invalid image content"},{status:400});r=e,t=o.MIME_TO_EXT[e],d=(0,l.getAssistantCacheDir)("images")}else{if(!(0,o.isLikelyTextFile)(h))return s.NextResponse.json({error:"File appears to be binary, not text"},{status:400});let e=g.toLowerCase();if(!c.ALLOWED_TEXT_EXTS.includes(e.replace(/^\./,"")))return s.NextResponse.json({error:"Unsupported text type"},{status:400});t=e,r=o.TEXT_EXT_TO_MIME[e]??"text/plain",d=(0,l.getAssistantCacheDir)("files")}let b=(0,l.buildCacheFilename)(f.name,t),x=a.join(d,b);if(!x.startsWith(d+a.sep)&&x!==d)return s.NextResponse.json({error:"Invalid path"},{status:400});await n.promises.writeFile(x,h);let v=a.relative((0,l.getAssistantCacheRoot)(),x);return s.NextResponse.json({filename:v,mimeType:r,kind:y})}[u]=d.then?(await d)():d,e.s(["POST",0,p,"dynamic",0,"force-dynamic","runtime",0,"nodejs"]),r()}catch(e){r(e)}},!1),122166,e=>e.a(async(t,r)=>{try{var a=e.i(765876),n=e.i(675896),s=e.i(959160),i=e.i(97944),o=e.i(86757),l=e.i(204144),u=e.i(273436),c=e.i(743641),d=e.i(813766),p=e.i(840884),f=e.i(498814),m=e.i(780006),h=e.i(544432),g=e.i(772005),y=e.i(450223),b=e.i(193695);e.i(628400);var x=e.i(800071),v=e.i(648834),R=t([v]);[v]=R.then?(await R)():R;let S=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/internal/assistant/attachments/route",pathname:"/api/internal/assistant/attachments",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/internal/assistant/attachments/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:T,workUnitAsyncStorage:E,serverHooks:C}=S;async function w(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),S.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/internal/assistant/attachments/route";a=a.replace(/\/index$/,"")||"/";let s=await S.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:w,parsedUrl:T,isDraftMode:E,prerenderManifest:C,routerServerContext:j,isOnDemandRevalidate:k,revalidateOnlyGenerated:A,resolvedPathname:_,clientReferenceManifest:M,serverActionsManifest:N}=s,O=(0,u.normalizeAppPath)(a),D=!!(C.dynamicRoutes[O]||C.routes[_]),P=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,T,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!C.routes[_],t=C.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(w.adapterPath)return await P();throw new b.NoFallbackError}}let I=null;!D||S.isDev||E||(I=_,I="/index"===I?"/":I);let q=!0===S.isDev||!D,V=D&&!q;N&&M&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:M,serverActionsManifest:N});let U=e.method||"GET",$=(0,o.getTracer)(),L=$.getActiveScopeSpan(),F=!!(null==j?void 0:j.isWrappedByNextServer),H=!!(0,i.getRequestMeta)(e,"minimalMode"),G=(0,i.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,w,C,H);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let W={params:R,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:q,incrementalCache:G,cacheLifeProfiles:w.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>S.onRequestError(e,t,a,n,j)},sharedContext:{buildId:v}},B=new c.NodeNextRequest(e),X=new c.NodeNextResponse(t),K=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let s,i=async e=>S.handle(K,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${U} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",n),s.updateName(t))}else e.updateName(`${U} ${a}`)}),l=async s=>{var o,l;let u=async({previousCacheEntry:n})=>{try{if(!H&&k&&A&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=W.renderOpts.collectedTags;if(!D)return await (0,m.sendResponse)(B,X,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:V,isOnDemandRevalidate:k})},!1,j),t}},c=await S.handleResponse({req:e,nextConfig:w,cacheKey:I,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:A,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:H});if(!D)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});H||t.setHeader("x-nextjs-cache",k?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return H&&D||d.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,m.sendResponse)(B,X,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};F&&L?await l(L):(s=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${U} ${a}`,kind:o.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l),void 0,!F))}catch(t){if(t instanceof b.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:V,isOnDemandRevalidate:k})},!1,j),D)throw t;return await (0,m.sendResponse)(B,X,new Response(null,{status:500})),null}}e.s(["handler",0,w,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:E})},"routeModule",0,S,"serverHooks",0,C,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,E]),r()}catch(e){r(e)}},!1)];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0clvf~t._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},198840,e=>{"use strict";var t=e.i(855104);let r=["localhost","127.0.0.1","[::1]"],n=new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]),a=/^c[a-z0-9]{20,30}$/;e.s(["requireLocalhost",0,function(e){let a=e.headers.get("x-forwarded-for");if(a&&!a.split(",").map(e=>e.trim()).every(e=>n.has(e)))return t.NextResponse.json({error:"Forbidden"},{status:403});let s=e.headers.get("host")??"";return r.some(e=>s.startsWith(e))?null:t.NextResponse.json({error:"Forbidden"},{status:403})},"validateProjectId",0,function(e){return a.test(e)?null:t.NextResponse.json({error:"Invalid projectId format"},{status:400})},"validateTaskId",0,function(e){return a.test(e)?null:t.NextResponse.json({error:"Invalid taskId format"},{status:400})}])},980738,(e,t,r)=>{t.exports=e.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,e=>e.a(async(t,r)=>{try{let t=await e.y("ws-4df7fc762dfa9a52");e.n(t),r()}catch(e){r(e)}},!0),504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},933919,(e,t,r)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},687769,(e,t,r)=>{t.exports=e.x("node:events",()=>require("node:events"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},899871,(e,t,r)=>{t.exports=e.x("node:string_decoder",()=>require("node:string_decoder"))},449719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},406461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},57328,(e,t,r)=>{t.exports=e.x("node:assert",()=>require("node:assert"))},192520,e=>{"use strict";let t;var r=e.i(750227),n=e.i(660526),a=e.i(902157);function s(){return t||(t=process.env.TOWER_DATA_DIR||(0,r.join)((0,n.homedir)(),".tower"),(0,a.existsSync)(t)||(0,a.mkdirSync)(t,{recursive:!0})),t}e.s(["getAssistantDir",0,function(){let e=(0,r.join)(s(),"assistant");return(0,a.existsSync)(e)||(0,a.mkdirSync)(e,{recursive:!0}),e},"getBackupsDir",0,function(){let e=(0,r.join)(s(),"backups");return(0,a.existsSync)(e)||(0,a.mkdirSync)(e,{recursive:!0}),e},"getExtensionsDir",0,function(){let e=(0,r.join)(s(),"extensions");return(0,a.existsSync)(e)||(0,a.mkdirSync)(e,{recursive:!0}),e},"getStorageDir",0,function(){let e=process.env.TOWER_STORAGE_DIR||function(){try{let e=(0,a.readFileSync)((0,r.join)(s(),"storage-location"),"utf-8").trim();return e.length>0?e:null}catch{return null}}(),t=e&&e.length>0?e:(0,r.join)(s(),"storage");return(0,a.existsSync)(t)||(0,a.mkdirSync)(t,{recursive:!0}),t},"getTowerDbPath",0,function(){let e;return(0,r.join)((e=(0,r.join)(s(),"database"),(0,a.existsSync)(e)||(0,a.mkdirSync)(e,{recursive:!0}),e),"tower.db")},"getTowerDir",0,s])},482819,(e,t,r)=>{"use strict";t.exports=e.r(583981).vendored["react-rsc"].ReactServerDOMTurbopackServer},921675,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"registerServerReference",{enumerable:!0,get:function(){return n.registerServerReference}});let n=e.r(482819)},86708,(e,t,r)=>{"use strict";function n(e){for(let t=0;t<e.length;t++){let r=e[t];if("function"!=typeof r)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof r}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return n}})},843793,e=>{"use strict";var t=e.i(933919);let r=globalThis.prisma??new t.PrismaClient({log:[]});process.on("SIGTERM",()=>{r.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{r.$disconnect().catch(()=>{})}),e.s(["db",0,r])},572173,e=>{"use strict";var t=e.i(843793);async function r(e,r){let n=await t.db.systemConfig.findUnique({where:{key:e}});if(!n)return r;try{return JSON.parse(n.value)}catch{return r}}e.s(["readConfigValue",0,r])},658053,e=>{"use strict";e.s(["ASSISTANT_SESSION_KEY",0,"__assistant__"])},276534,e=>{"use strict";e.s(["CONFIG_DEFAULTS",0,{"git.pathMappingRules":{defaultValue:[],type:"object",label:"Git Path Mapping Rules"},"system.maxUploadBytes":{defaultValue:0x3200000,type:"number",label:"Max Upload Size (bytes)"},"system.maxConcurrentExecutions":{defaultValue:20,type:"number",label:"Max Concurrent Executions"},"system.maxReadableFileBytes":{defaultValue:5242880,type:"number",label:"Max Readable File Size (bytes)"},"system.backupDir":{defaultValue:"",type:"string",label:"Backup Directory"},"git.timeoutSec":{defaultValue:30,type:"number",label:"Git Operation Timeout (seconds)"},"search.resultLimit":{defaultValue:20,type:"number",label:"Search Result Limit"},"search.allModeCap":{defaultValue:5,type:"number",label:"All-Mode Per-Type Cap"},"search.debounceMs":{defaultValue:250,type:"number",label:"Search Debounce (ms)"},"search.snippetLength":{defaultValue:80,type:"number",label:"Snippet Length (characters)"},"search.codeTimeoutSec":{defaultValue:30,type:"number",label:"Code Search Timeout (seconds)"},"missions.grid.minCols":{defaultValue:1,type:"number",label:"Grid Min Columns"},"missions.grid.maxCols":{defaultValue:5,type:"number",label:"Grid Max Columns"},"missions.grid.minRows":{defaultValue:1,type:"number",label:"Grid Min Rows"},"missions.grid.maxRows":{defaultValue:5,type:"number",label:"Grid Max Rows"},"terminal.app":{defaultValue:"Terminal",type:"string",label:"Default Terminal App"},"editor.command":{defaultValue:"",type:"string",label:"Default Editor Command"},"terminal.wsPort":{defaultValue:3001,type:"number",label:"WebSocket Port"},"terminal.idleTimeoutSec":{defaultValue:180,type:"number",label:"Idle Timeout (seconds)"},"terminal.fontSize":{defaultValue:13,type:"number",label:"Terminal Font Size"},"terminal.fontFamily":{defaultValue:"Menlo, Monaco, 'Courier New', monospace",type:"string",label:"Terminal Font Family"},"assistant.systemPrompt":{defaultValue:'You are Tower Assistant — the built-in AI operator for the Tower task management platform.\n\n## Identity\n- You are a task management operator, NOT a coding assistant.\n- You can ONLY use Tower MCP tools. You CANNOT read files, edit code, run shell commands, or search the web.\n- Always respond in the same language the user uses.\n\n## Capabilities\nWhen users ask what you can do, respond with EXACTLY these 6 groups. Translate to the user\'s language.\n\n1. **Workspace & Project** — View, create, update, delete workspaces and projects. Search projects and repositories.\n2. **Task Management** — Create tasks (priority, labels, worktree branch isolation, sub-path, auto-start). Move task status (TODO → IN_PROGRESS → IN_REVIEW → DONE / CANCELLED). Update task info and labels.\n3. **Execution Monitor** — Start task execution, check execution status, get terminal output, send commands to running terminals.\n4. **Daily Report & Todo** — Generate daily work summary (completed + in-progress). View pending task list sorted by priority.\n5. **Labels & Notes & Assets** — Manage workspace labels, project notes, and file attachments.\n6. **Global Search** — Search tasks, projects, repositories, notes, and assets by keyword.\n\nDo NOT list any capabilities beyond the above. Do NOT mention code editing, debugging, testing, git operations, or any development capabilities.\n\n## Scope Boundary\nIf the user asks you to write code, explain code, debug, search the web, read/write files, or anything outside Tower task management, reply:\n"抱歉,我只能帮你管理工作区、项目和任务。编码、调试等操作请在任务终端中完成。"',type:"string",label:"Assistant System Prompt"},"assistant.displayMode":{defaultValue:"sidebar",type:"string",label:"Assistant Display Mode"},"assistant.communicationMode":{defaultValue:"chat",type:"string",label:"Assistant Communication Mode"},"task.defaultUseWorktree":{defaultValue:!0,type:"boolean",label:"Default: Use Worktree"},"task.defaultAutoStart":{defaultValue:!1,type:"boolean",label:"Default: Auto-start Execution"},"task.mcpDefaultsConfigured":{defaultValue:!1,type:"boolean",label:"MCP Task Defaults Configured"}}])},61920,e=>{"use strict";var t=e.i(446786),r=e.i(814747);function n(e){return e.startsWith("~/")?r.default.join(t.default.homedir(),e.slice(2)):e}function a(e){let t,r=e.match(/^git@([^:]+):(.+)$/);if(r)return{host:r[1],pathSegments:s(r[2]).split("/").filter(Boolean)};try{t=new URL(e)}catch{return null}return{host:t.hostname,pathSegments:s(decodeURIComponent(t.pathname)).split("/").filter(Boolean)}}function s(e){return e.replace(/\.git\/?$/,"")}e.s(["gitUrlToLocalPath",0,function(e){let t=e.trim();if(!t)return"";try{let e=a(t);if(!e)return"";let{host:s,pathSegments:i}=e;if("code.iflytek.com"===s){let e,t;return n((e=[...i],"osc"===e[0]&&"_source"===e[1]&&(e=e.slice(2)),((t=e.indexOf("-"))>0&&(e=e.slice(0,t)),0===e.length)?"":`~/company/${e.join("/")}`))}if("github.com"===s){var r;let e,t;return n((e=(r=i)[0],t=r[1],e&&t?`${"jp-liu"===e?"~/project/i":"~/project/f"}/${t}`:""))}let o=i[i.length-1];return o?n(`~/project/f/${o}`):""}catch{return""}},"matchGitPathRule",0,function(e,t){if(!t.length)return"";let r=e.trim();if(!r)return"";let s=a(r);if(!s)return"";let{host:i,pathSegments:o}=s,l=o[0]??"",u=o[o.length-1]??"",c=[...t].sort((e,t)=>{let r=+("*"===e.ownerMatch),n=+("*"===t.ownerMatch);return r!==n?r-n:e.priority-t.priority}),d=o.join("/");for(let e of c){if(e.host!==i||"*"!==e.ownerMatch&&e.ownerMatch!==l)continue;let t=e.localPathTemplate;if(t.includes("{path}"))return n(t.replace("{path}",d).replace("{owner}",l).replace("{repo}",u).replace(/\/+$/,""));let r=t.replace("{owner}",l).replace("{repo}","").replace(/\/+$/,"");return n(`${r}/${u}`)}return""}])},22569,e=>e.a(async(t,r)=>{try{var n=e.i(921675),a=e.i(843793),s=e.i(276534),i=e.i(61920),o=e.i(769310),l=e.i(721390),u=e.i(86708),c=t([l]);async function d(e,t){let r=await a.db.systemConfig.findUnique({where:{key:e}});if(!r)return t;try{return JSON.parse(r.value)}catch{return t}}async function p(e,t){await a.db.systemConfig.upsert({where:{key:e},create:{key:e,value:JSON.stringify(t)},update:{value:JSON.stringify(t)}})}async function f(e){let t=e.trim();if(!t)return"";try{let e=await d("git.pathMappingRules",[]),r=(0,i.matchGitPathRule)(t,e);if(r)return r;return(0,i.gitUrlToLocalPath)(t)}catch{return(0,i.gitUrlToLocalPath)(t)}}async function m(e){let t=await a.db.systemConfig.findMany({where:{key:{in:e}}}),r=Object.fromEntries(t.map(e=>{try{return[e.key,JSON.parse(e.value)]}catch{return[e.key,null]}})),n={};for(let t of e)n[t]=t in r?r[t]:s.CONFIG_DEFAULTS[t]?.defaultValue??null;return n}async function b(){return(0,o.detectShells)()}async function y(){return(0,o.detectTerminalApps)()}async function x(){return(0,o.detectEditors)()}async function g(){return{platform:process.platform}}async function h(){let e=(0,l.getActiveWsPort)();if(null!==e)return e;let t=parseInt(process.env.PORT||"3000",10);return d("terminal.wsPort",t+1)}[l]=c.then?(await c)():c,(0,u.ensureServerEntryExports)([d,p,f,m,b,y,x,g,h]),(0,n.registerServerReference)(d,"6023f7fd9697f8622ec6253be83036fb51f78a003f",null),(0,n.registerServerReference)(p,"60419002d165e0acbafb67ca7d3daa91b1a43038f4",null),(0,n.registerServerReference)(f,"406cf57ab441b87fe26b4e4ba61492f885d99c626c",null),(0,n.registerServerReference)(m,"40bbb15b95b61da428c7e4c39a37b1859d070f0d4a",null),(0,n.registerServerReference)(b,"000117c8322c6744858d19768dc231e2644e700bbf",null),(0,n.registerServerReference)(y,"00efa63e5ad5c88ad23570d460c7e51e389903e249",null),(0,n.registerServerReference)(x,"000ef5644a74d2cb87838153533141bf8e3d6dc301",null),(0,n.registerServerReference)(g,"003a7801adab8f01470f0a6b52a9ffaea5eab3fd1a",null),(0,n.registerServerReference)(h,"0013b21d67a7ce907696bad27cf0af74419e936884",null),e.s(["getConfigValue",0,d]),r()}catch(e){r(e)}},!1)];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0gk6ftq._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[952313,a=>{"use strict";var b=a.i(374637),c=a.i(986099);let d=Array(12).fill(0),e=({visible:a,className:c})=>b.default.createElement("div",{className:["sonner-loading-wrapper",c].filter(Boolean).join(" "),"data-visible":a},b.default.createElement("div",{className:"sonner-spinner"},d.map((a,c)=>b.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${c}`})))),f=b.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),g=b.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},b.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),h=b.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),i=b.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),j=b.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},b.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),b.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),k=1,l=new class{constructor(){this.subscribe=a=>(this.subscribers.push(a),()=>{let b=this.subscribers.indexOf(a);this.subscribers.splice(b,1)}),this.publish=a=>{this.subscribers.forEach(b=>b(a))},this.addToast=a=>{this.publish(a),this.toasts=[...this.toasts,a]},this.create=a=>{var b;let{message:c,...d}=a,e="number"==typeof(null==a?void 0:a.id)||(null==(b=a.id)?void 0:b.length)>0?a.id:k++,f=this.toasts.find(a=>a.id===e),g=void 0===a.dismissible||a.dismissible;return this.dismissedToasts.has(e)&&this.dismissedToasts.delete(e),f?this.toasts=this.toasts.map(b=>b.id===e?(this.publish({...b,...a,id:e,title:c}),{...b,...a,id:e,dismissible:g,title:c}):b):this.addToast({title:c,...d,dismissible:g,id:e}),e},this.dismiss=a=>(a?(this.dismissedToasts.add(a),requestAnimationFrame(()=>this.subscribers.forEach(b=>b({id:a,dismiss:!0})))):this.toasts.forEach(a=>{this.subscribers.forEach(b=>b({id:a.id,dismiss:!0}))}),a),this.message=(a,b)=>this.create({...b,message:a}),this.error=(a,b)=>this.create({...b,message:a,type:"error"}),this.success=(a,b)=>this.create({...b,type:"success",message:a}),this.info=(a,b)=>this.create({...b,type:"info",message:a}),this.warning=(a,b)=>this.create({...b,type:"warning",message:a}),this.loading=(a,b)=>this.create({...b,type:"loading",message:a}),this.promise=(a,c)=>{let d,e;if(!c)return;void 0!==c.loading&&(e=this.create({...c,promise:a,type:"loading",message:c.loading,description:"function"!=typeof c.description?c.description:void 0}));let f=Promise.resolve(a instanceof Function?a():a),g=void 0!==e,h=f.then(async a=>{if(d=["resolve",a],b.default.isValidElement(a))g=!1,this.create({id:e,type:"default",message:a});else if(m(a)&&!a.ok){g=!1;let d="function"==typeof c.error?await c.error(`HTTP error! status: ${a.status}`):c.error,f="function"==typeof c.description?await c.description(`HTTP error! status: ${a.status}`):c.description,h="object"!=typeof d||b.default.isValidElement(d)?{message:d}:d;this.create({id:e,type:"error",description:f,...h})}else if(a instanceof Error){g=!1;let d="function"==typeof c.error?await c.error(a):c.error,f="function"==typeof c.description?await c.description(a):c.description,h="object"!=typeof d||b.default.isValidElement(d)?{message:d}:d;this.create({id:e,type:"error",description:f,...h})}else if(void 0!==c.success){g=!1;let d="function"==typeof c.success?await c.success(a):c.success,f="function"==typeof c.description?await c.description(a):c.description,h="object"!=typeof d||b.default.isValidElement(d)?{message:d}:d;this.create({id:e,type:"success",description:f,...h})}}).catch(async a=>{if(d=["reject",a],void 0!==c.error){g=!1;let d="function"==typeof c.error?await c.error(a):c.error,f="function"==typeof c.description?await c.description(a):c.description,h="object"!=typeof d||b.default.isValidElement(d)?{message:d}:d;this.create({id:e,type:"error",description:f,...h})}}).finally(()=>{g&&(this.dismiss(e),e=void 0),null==c.finally||c.finally.call(c)}),i=()=>new Promise((a,b)=>h.then(()=>"reject"===d[0]?b(d[1]):a(d[1])).catch(b));return"string"!=typeof e&&"number"!=typeof e?{unwrap:i}:Object.assign(e,{unwrap:i})},this.custom=(a,b)=>{let c=(null==b?void 0:b.id)||k++;return this.create({jsx:a(c),id:c,...b}),c},this.getActiveToasts=()=>this.toasts.filter(a=>!this.dismissedToasts.has(a.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},m=a=>a&&"object"==typeof a&&"ok"in a&&"boolean"==typeof a.ok&&"status"in a&&"number"==typeof a.status,n=Object.assign((a,b)=>{let c=(null==b?void 0:b.id)||k++;return l.addToast({title:a,...b,id:c}),c},{success:l.success,info:l.info,warning:l.warning,error:l.error,custom:l.custom,message:l.message,promise:l.promise,dismiss:l.dismiss,loading:l.loading},{getHistory:()=>l.toasts,getToasts:()=>l.getActiveToasts()});function o(a){return void 0!==a.label}function p(...a){return a.filter(Boolean).join(" ")}!function(a){if(!a||"u"<typeof document)return;let b=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",b.appendChild(c),c.styleSheet?c.styleSheet.cssText=a:c.appendChild(document.createTextNode(a))}("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let q=a=>{var c,d,k,l,m,n,q,r,s,t,u,v,w;let{invert:x,toast:y,unstyled:z,interacting:A,setHeights:B,visibleToasts:C,heights:D,index:E,toasts:F,expanded:G,removeToast:H,defaultRichColors:I,closeButton:J,style:K,cancelButtonStyle:L,actionButtonStyle:M,className:N="",descriptionClassName:O="",duration:P,position:Q,gap:R,expandByDefault:S,classNames:T,icons:U,closeButtonAriaLabel:V="Close toast"}=a,[W,X]=b.default.useState(null),[Y,Z]=b.default.useState(null),[$,_]=b.default.useState(!1),[aa,ab]=b.default.useState(!1),[ac,ad]=b.default.useState(!1),[ae,af]=b.default.useState(!1),[ag,ah]=b.default.useState(!1),[ai,aj]=b.default.useState(0),[ak,al]=b.default.useState(0),am=b.default.useRef(y.duration||P||4e3),an=b.default.useRef(null),ao=b.default.useRef(null),ap=0===E,aq=E+1<=C,ar=y.type,as=!1!==y.dismissible,at=y.className||"",au=y.descriptionClassName||"",av=b.default.useMemo(()=>D.findIndex(a=>a.toastId===y.id)||0,[D,y.id]),aw=b.default.useMemo(()=>{var a;return null!=(a=y.closeButton)?a:J},[y.closeButton,J]),ax=b.default.useMemo(()=>y.duration||P||4e3,[y.duration,P]),ay=b.default.useRef(0),az=b.default.useRef(0),aA=b.default.useRef(0),aB=b.default.useRef(null),[aC,aD]=Q.split("-"),aE=b.default.useMemo(()=>D.reduce((a,b,c)=>c>=av?a:a+b.height,0),[D,av]),aF=(()=>{let[a,c]=b.default.useState(document.hidden);return b.default.useEffect(()=>{let a=()=>{c(document.hidden)};return document.addEventListener("visibilitychange",a),()=>window.removeEventListener("visibilitychange",a)},[]),a})(),aG=y.invert||x,aH="loading"===ar;az.current=b.default.useMemo(()=>av*R+aE,[av,aE]),b.default.useEffect(()=>{am.current=ax},[ax]),b.default.useEffect(()=>{_(!0)},[]),b.default.useEffect(()=>{let a=ao.current;if(a){let b=a.getBoundingClientRect().height;return al(b),B(a=>[{toastId:y.id,height:b,position:y.position},...a]),()=>B(a=>a.filter(a=>a.toastId!==y.id))}},[B,y.id]),b.default.useLayoutEffect(()=>{if(!$)return;let a=ao.current,b=a.style.height;a.style.height="auto";let c=a.getBoundingClientRect().height;a.style.height=b,al(c),B(a=>a.find(a=>a.toastId===y.id)?a.map(a=>a.toastId===y.id?{...a,height:c}:a):[{toastId:y.id,height:c,position:y.position},...a])},[$,y.title,y.description,B,y.id,y.jsx,y.action,y.cancel]);let aI=b.default.useCallback(()=>{ab(!0),aj(az.current),B(a=>a.filter(a=>a.toastId!==y.id)),setTimeout(()=>{H(y)},200)},[y,H,B,az]);b.default.useEffect(()=>{let a;if((!y.promise||"loading"!==ar)&&y.duration!==1/0&&"loading"!==y.type){if(G||A||aF){if(aA.current<ay.current){let a=new Date().getTime()-ay.current;am.current=am.current-a}aA.current=new Date().getTime()}else am.current!==1/0&&(ay.current=new Date().getTime(),a=setTimeout(()=>{null==y.onAutoClose||y.onAutoClose.call(y,y),aI()},am.current));return()=>clearTimeout(a)}},[G,A,y,ar,aF,aI]),b.default.useEffect(()=>{y.delete&&(aI(),null==y.onDismiss||y.onDismiss.call(y,y))},[aI,y.delete]);let aJ=y.icon||(null==U?void 0:U[ar])||(a=>{switch(a){case"success":return f;case"info":return h;case"warning":return g;case"error":return i;default:return null}})(ar);return b.default.createElement("li",{tabIndex:0,ref:ao,className:p(N,at,null==T?void 0:T.toast,null==y||null==(c=y.classNames)?void 0:c.toast,null==T?void 0:T.default,null==T?void 0:T[ar],null==y||null==(d=y.classNames)?void 0:d[ar]),"data-sonner-toast":"","data-rich-colors":null!=(t=y.richColors)?t:I,"data-styled":!(y.jsx||y.unstyled||z),"data-mounted":$,"data-promise":!!y.promise,"data-swiped":ag,"data-removed":aa,"data-visible":aq,"data-y-position":aC,"data-x-position":aD,"data-index":E,"data-front":ap,"data-swiping":ac,"data-dismissible":as,"data-type":ar,"data-invert":aG,"data-swipe-out":ae,"data-swipe-direction":Y,"data-expanded":!!(G||S&&$),"data-testid":y.testId,style:{"--index":E,"--toasts-before":E,"--z-index":F.length-E,"--offset":`${aa?ai:az.current}px`,"--initial-height":S?"auto":`${ak}px`,...K,...y.style},onDragEnd:()=>{ad(!1),X(null),aB.current=null},onPointerDown:a=>{2===a.button||aH||!as||(an.current=new Date,aj(az.current),a.target.setPointerCapture(a.pointerId),"BUTTON"!==a.target.tagName&&(ad(!0),aB.current={x:a.clientX,y:a.clientY}))},onPointerUp:()=>{var a,b,c,d,e;if(ae||!as)return;aB.current=null;let f=Number((null==(a=ao.current)?void 0:a.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),g=Number((null==(b=ao.current)?void 0:b.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),h=new Date().getTime()-(null==(c=an.current)?void 0:c.getTime()),i="x"===W?f:g,j=Math.abs(i)/h;if(Math.abs(i)>=45||j>.11){aj(az.current),null==y.onDismiss||y.onDismiss.call(y,y),"x"===W?Z(f>0?"right":"left"):Z(g>0?"down":"up"),aI(),af(!0);return}null==(d=ao.current)||d.style.setProperty("--swipe-amount-x","0px"),null==(e=ao.current)||e.style.setProperty("--swipe-amount-y","0px"),ah(!1),ad(!1),X(null)},onPointerMove:b=>{var c,d,e,f;if(!aB.current||!as||(null==(c=window.getSelection())?void 0:c.toString().length)>0)return;let g=b.clientY-aB.current.y,h=b.clientX-aB.current.x,i=null!=(f=a.swipeDirections)?f:function(a){let[b,c]=a.split("-"),d=[];return b&&d.push(b),c&&d.push(c),d}(Q);!W&&(Math.abs(h)>1||Math.abs(g)>1)&&X(Math.abs(h)>Math.abs(g)?"x":"y");let j={x:0,y:0},k=a=>1/(1.5+Math.abs(a)/20);if("y"===W){if(i.includes("top")||i.includes("bottom"))if(i.includes("top")&&g<0||i.includes("bottom")&&g>0)j.y=g;else{let a=g*k(g);j.y=Math.abs(a)<Math.abs(g)?a:g}}else if("x"===W&&(i.includes("left")||i.includes("right")))if(i.includes("left")&&h<0||i.includes("right")&&h>0)j.x=h;else{let a=h*k(h);j.x=Math.abs(a)<Math.abs(h)?a:h}(Math.abs(j.x)>0||Math.abs(j.y)>0)&&ah(!0),null==(d=ao.current)||d.style.setProperty("--swipe-amount-x",`${j.x}px`),null==(e=ao.current)||e.style.setProperty("--swipe-amount-y",`${j.y}px`)}},aw&&!y.jsx&&"loading"!==ar?b.default.createElement("button",{"aria-label":V,"data-disabled":aH,"data-close-button":!0,onClick:aH||!as?()=>{}:()=>{aI(),null==y.onDismiss||y.onDismiss.call(y,y)},className:p(null==T?void 0:T.closeButton,null==y||null==(k=y.classNames)?void 0:k.closeButton)},null!=(u=null==U?void 0:U.close)?u:j):null,(ar||y.icon||y.promise)&&null!==y.icon&&((null==U?void 0:U[ar])!==null||y.icon)?b.default.createElement("div",{"data-icon":"",className:p(null==T?void 0:T.icon,null==y||null==(l=y.classNames)?void 0:l.icon)},y.promise||"loading"===y.type&&!y.icon?y.icon||((null==U?void 0:U.loading)?b.default.createElement("div",{className:p(null==T?void 0:T.loader,null==y||null==(w=y.classNames)?void 0:w.loader,"sonner-loader"),"data-visible":"loading"===ar},U.loading):b.default.createElement(e,{className:p(null==T?void 0:T.loader,null==y||null==(v=y.classNames)?void 0:v.loader),visible:"loading"===ar})):null,"loading"!==y.type?aJ:null):null,b.default.createElement("div",{"data-content":"",className:p(null==T?void 0:T.content,null==y||null==(m=y.classNames)?void 0:m.content)},b.default.createElement("div",{"data-title":"",className:p(null==T?void 0:T.title,null==y||null==(n=y.classNames)?void 0:n.title)},y.jsx?y.jsx:"function"==typeof y.title?y.title():y.title),y.description?b.default.createElement("div",{"data-description":"",className:p(O,au,null==T?void 0:T.description,null==y||null==(q=y.classNames)?void 0:q.description)},"function"==typeof y.description?y.description():y.description):null),b.default.isValidElement(y.cancel)?y.cancel:y.cancel&&o(y.cancel)?b.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:y.cancelButtonStyle||L,onClick:a=>{!o(y.cancel)||as&&(null==y.cancel.onClick||y.cancel.onClick.call(y.cancel,a),aI())},className:p(null==T?void 0:T.cancelButton,null==y||null==(r=y.classNames)?void 0:r.cancelButton)},y.cancel.label):null,b.default.isValidElement(y.action)?y.action:y.action&&o(y.action)?b.default.createElement("button",{"data-button":!0,"data-action":!0,style:y.actionButtonStyle||M,onClick:a=>{!o(y.action)||(null==y.action.onClick||y.action.onClick.call(y.action,a),a.defaultPrevented||aI())},className:p(null==T?void 0:T.actionButton,null==y||null==(s=y.classNames)?void 0:s.actionButton)},y.action.label):null)},r=b.default.forwardRef(function(a,d){let{id:e,invert:f,position:g="bottom-right",hotkey:h=["altKey","KeyT"],expand:i,closeButton:j,className:k,offset:m,mobileOffset:n,theme:o="light",richColors:p,duration:r,style:s,visibleToasts:t=3,toastOptions:u,dir:v="ltr",gap:w=14,icons:x,containerAriaLabel:y="Notifications"}=a,[z,A]=b.default.useState([]),B=b.default.useMemo(()=>e?z.filter(a=>a.toasterId===e):z.filter(a=>!a.toasterId),[z,e]),C=b.default.useMemo(()=>Array.from(new Set([g].concat(B.filter(a=>a.position).map(a=>a.position)))),[B,g]),[D,E]=b.default.useState([]),[F,G]=b.default.useState(!1),[H,I]=b.default.useState(!1),[J,K]=b.default.useState("system"!==o?o:"light"),L=b.default.useRef(null),M=h.join("+").replace(/Key/g,"").replace(/Digit/g,""),N=b.default.useRef(null),O=b.default.useRef(!1),P=b.default.useCallback(a=>{A(b=>{var c;return(null==(c=b.find(b=>b.id===a.id))?void 0:c.delete)||l.dismiss(a.id),b.filter(({id:b})=>b!==a.id)})},[]);return b.default.useEffect(()=>l.subscribe(a=>{a.dismiss?requestAnimationFrame(()=>{A(b=>b.map(b=>b.id===a.id?{...b,delete:!0}:b))}):setTimeout(()=>{c.default.flushSync(()=>{A(b=>{let c=b.findIndex(b=>b.id===a.id);return -1!==c?[...b.slice(0,c),{...b[c],...a},...b.slice(c+1)]:[a,...b]})})})}),[z]),b.default.useEffect(()=>{"system"!==o?K(o):"system"===o&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?K("dark"):K("light"))},[o]),b.default.useEffect(()=>{z.length<=1&&G(!1)},[z]),b.default.useEffect(()=>{let a=a=>{var b,c;h.every(b=>a[b]||a.code===b)&&(G(!0),null==(c=L.current)||c.focus()),"Escape"===a.code&&(document.activeElement===L.current||(null==(b=L.current)?void 0:b.contains(document.activeElement)))&&G(!1)};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[h]),b.default.useEffect(()=>{if(L.current)return()=>{N.current&&(N.current.focus({preventScroll:!0}),N.current=null,O.current=!1)}},[L.current]),b.default.createElement("section",{ref:d,"aria-label":`${y} ${M}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},C.map((c,d)=>{var e;let g,[h,l]=c.split("-");return B.length?b.default.createElement("ol",{key:c,dir:"auto"===v?"ltr":v,tabIndex:-1,ref:L,className:k,"data-sonner-toaster":!0,"data-sonner-theme":J,"data-y-position":h,"data-x-position":l,style:{"--front-toast-height":`${(null==(e=D[0])?void 0:e.height)||0}px`,"--width":"356px","--gap":`${w}px`,...s,...(g={},[m,n].forEach((a,b)=>{let c=1===b,d=c?"--mobile-offset":"--offset",e=c?"16px":"24px";function f(a){["top","right","bottom","left"].forEach(b=>{g[`${d}-${b}`]="number"==typeof a?`${a}px`:a})}"number"==typeof a||"string"==typeof a?f(a):"object"==typeof a?["top","right","bottom","left"].forEach(b=>{void 0===a[b]?g[`${d}-${b}`]=e:g[`${d}-${b}`]="number"==typeof a[b]?`${a[b]}px`:a[b]}):f(e)}),g)},onBlur:a=>{O.current&&!a.currentTarget.contains(a.relatedTarget)&&(O.current=!1,N.current&&(N.current.focus({preventScroll:!0}),N.current=null))},onFocus:a=>{!(a.target instanceof HTMLElement&&"false"===a.target.dataset.dismissible)&&(O.current||(O.current=!0,N.current=a.relatedTarget))},onMouseEnter:()=>G(!0),onMouseMove:()=>G(!0),onMouseLeave:()=>{H||G(!1)},onDragEnd:()=>G(!1),onPointerDown:a=>{a.target instanceof HTMLElement&&"false"===a.target.dataset.dismissible||I(!0)},onPointerUp:()=>I(!1)},B.filter(a=>!a.position&&0===d||a.position===c).map((d,e)=>{var g,h;return b.default.createElement(q,{key:d.id,icons:x,index:e,toast:d,defaultRichColors:p,duration:null!=(g=null==u?void 0:u.duration)?g:r,className:null==u?void 0:u.className,descriptionClassName:null==u?void 0:u.descriptionClassName,invert:f,visibleToasts:t,closeButton:null!=(h=null==u?void 0:u.closeButton)?h:j,interacting:H,position:c,style:null==u?void 0:u.style,unstyled:null==u?void 0:u.unstyled,classNames:null==u?void 0:u.classNames,cancelButtonStyle:null==u?void 0:u.cancelButtonStyle,actionButtonStyle:null==u?void 0:u.actionButtonStyle,closeButtonAriaLabel:null==u?void 0:u.closeButtonAriaLabel,removeToast:P,toasts:B.filter(a=>a.position==d.position),heights:D.filter(a=>a.position==d.position),setHeights:E,expandByDefault:i,gap:w,expanded:F,swipeDirections:a.swipeDirections})})):null}))});a.s(["Toaster",0,r,"toast",0,n])}];
2
-
3
- //# sourceMappingURL=12k._sonner_dist_index_mjs_0-vmpk5._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=d.join(c,"scripts","session-start-hook.js").replace(/\\/g,"/"),g=d.join(c,"scripts","post-tool-hook.js").replace(/\\/g,"/"),h=d.join(c,"scripts","stop-hook.js").replace(/\\/g,"/"),i=!1;return i=this.upsertHook(b,"SessionStart","session-start-hook.js",{hooks:[{command:`node "${e}"`,timeout:5,type:"command"}]})||i,i=this.upsertHook(b,"PostToolUse","post-tool-hook.js",{hooks:[{command:`node "${g}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"})||i,(i=this.upsertHook(b,"Stop","stop-hook.js",{hooks:[{command:`node "${h}"`,timeout:5,type:"command"}]})||i)&&(a.hooks=b,this.writeSettings(a)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async repairHookPaths(){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=!1;for(let[a,f]of[["SessionStart","session-start-hook.js"],["PostToolUse","post-tool-hook.js"],["Stop","stop-hook.js"]]){let g=this.getHookArray(b,a),h=g.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(f)));if(h<0)continue;let i=d.join(c,"scripts",f).replace(/\\/g,"/"),j=`node "${i}"`,k=g[h]?.hooks?.[0];k&&k.command!==j&&(k.command=j,b[a]=g,e=!0)}e&&(a.hooks=b,this.writeSettings(a))}catch{}}upsertHook(a,b,c,d){let e=this.getHookArray(a,b),f=d?.hooks?.[0]?.command,g=e.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(c)));if(g>=0){if(e[g]?.hooks?.[0]?.command===f)return!1;e.splice(g,1)}return e.push(d),a[b]=e,!0}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let f=d.join(this.getConfigDir(),"skills",a);try{if(!b.existsSync(c))return{ok:!1,method:"symlink",detail:f,error:`Source skill dir does not exist: ${c}`};b.mkdirSync(d.dirname(f),{recursive:!0});let a=await b.promises.lstat(f).catch(()=>null);if(a)if(!(a.isSymbolicLink()||(0,e.isWindows)()&&a.isDirectory()))return{ok:!1,method:"symlink",detail:f,error:`Refusing to overwrite non-symlink at ${f}`};else try{let a=await b.promises.readlink(f);if(d.resolve(a)===d.resolve(c))return{ok:!0,method:"symlink",detail:`${f} → ${c} (already)`};await b.promises.unlink(f)}catch{if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:f,error:`Refusing to overwrite non-symlink at ${f}`}}let g=(0,e.isWindows)()?"junction":"dir";return await b.promises.symlink(c,f,g),{ok:!0,method:"symlink",detail:`${f} → ${c}`}}catch(a){return{ok:!1,method:"symlink",detail:f,error:a instanceof Error?a.message:String(a)}}}async uninstallSkill(a){let c=d.join(this.getConfigDir(),"skills",a);try{let a=await b.promises.lstat(c).catch(()=>null);if(!a)return{ok:!0,method:"symlink",detail:`${c} (already absent)`};if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:c,error:`Refusing to remove non-symlink at ${c}`};return await b.promises.unlink(c),{ok:!0,method:"symlink",detail:c}}catch(a){return{ok:!1,method:"symlink",detail:c,error:a instanceof Error?a.message:String(a)}}}async isSkillInstalled(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!(await b.promises.lstat(e)).isSymbolicLink())return!1;if(!c)return!0;let a=await b.promises.readlink(e),f=d.isAbsolute(a)?a:d.resolve(d.dirname(e),a);return d.resolve(f)===d.resolve(c)}catch{return!1}}async runCli(b,c,d,e=1e4){let{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),{stdout:i}=await h(b,c,{cwd:d,timeout:e});return i}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),{resolveSpawnTarget:d}=await a.A(889618),e=c(b),f=await d(this.resolveCommand(),["--version"]),{stdout:g}=await e(f.command,f.args,{timeout:5e3});return g.trim()||null}catch{return null}}async getModels(){return g}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(a){return{command:this.resolveCommand(),args:["--print",a,"--output-format","stream-json","--verbose"]}}resolveCommand(){if(process.env.CLAUDE_CODE_PATH)return process.env.CLAUDE_CODE_PATH;if((0,e.isWindows)()){let a=(0,e.resolveCommandPathSync)("claude-code");if("claude-code"!==a)return a}return(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getHookArray(a,b){let c=a[b];return Array.isArray(c)?c:[]}hasHook(a,b){return a.some(a=>a.hooks?.some(a=>a.command?.includes(b)))}}],52350)},925886,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(630048).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"40ec078238dc42004bc617c4035896dcd15be6787f",null),(0,b.registerServerReference)(f,"40b94f45b3fb03c9a6f7e63dfcb428968e26cbec8b",null),(0,b.registerServerReference)(g,"4053f3ebcfeadf7a83ad60b52ee632cbed0ae485b4",null),(0,b.registerServerReference)(h,"607b46546c21022e3504570aab2b4b255dc23822af",null),(0,b.registerServerReference)(i,"4044312e78a830b6c91ca5b12ce1119bc5b8646e35",null),(0,b.registerServerReference)(j,"6081ca3a9f7e3c1d98a66990fbeaecf602ce9baa44",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0dypzt_._.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/_079_ku8._.js"].map(b=>a.l(b))).then(()=>b(897667)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},195404,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_fts_ts_01m1thq._.js"].map(b=>a.l(b))).then(()=>b(835032)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__01pn3ol._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[196195,a=>{"use strict";var b=a.i(815429),c=a.i(233405),d=a.i(814747),e=a.i(446786);function f(a){return a.startsWith("~/")||"~"===a?d.default.join(e.default.homedir(),a.slice(1)):a}async function g(a){if(!a?.trim())return null;let b=d.default.resolve(f(a));try{return(0,c.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:b,encoding:"utf-8",timeout:5e3}).trim()}catch{return null}}async function h(a){if(!a?.trim())return[];let b=d.default.resolve(f(a));try{let a,d;return a=new Set((0,c.execSync)("git branch --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,""))),d=(0,c.execSync)("git branch -r --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,"").replace(/^origin\//,"")).filter(b=>"HEAD"!==b&&!a.has(b)),[...a,...d]}catch{return[]}}async function i(a){if(!a?.trim())return;let b=d.default.resolve(f(a));try{(0,c.spawn)("git",["fetch","--prune"],{cwd:b,stdio:"ignore",detached:!0}).unref()}catch{}}(0,a.i(630048).ensureServerEntryExports)([g,h,i]),(0,b.registerServerReference)(g,"408f1c8bdcc32c65523ca29637b77ea0b21cdc3bcc",null),(0,b.registerServerReference)(h,"40785f66a40ae44142db30d691958a7ea1b294f789",null),(0,b.registerServerReference)(i,"406902d618aaf93e5f70e88de83dc968c5d795988c",null),a.s(["fetchRemoteBranches",0,i,"getCurrentBranch",0,g,"getProjectBranches",0,h])},417219,a=>{"use strict";a.i(666680);var b=a.i(902157),c=a.i(750227),d=a.i(319997);a.s(["ensureAssetsDir",0,function(a){let e=function(a){let b=c.join((0,d.getStorageDir)(),"assets",a);if(!b.startsWith((0,d.getStorageDir)()+c.sep))throw Error("Path traversal detected");return b}(a);return b.mkdirSync(e,{recursive:!0}),e}])},97397,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(902157),f=a.i(750227),g=a.i(75681),h=a.i(761469),i=a.i(188139),j=a.i(417219),k=a.i(980999),l=a.i(630048),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"40dd814fffe051e5f444977a53a743b2478250395c",null),(0,d.registerServerReference)(o,"400a4be3966798744492442d6e52e981eb270fa215",null),(0,d.registerServerReference)(p,"40adc9fa0c304a7cd83c0b41a33a7a52c68d247a3f",null),(0,d.registerServerReference)(q,"408ff93b09853c3e48be0285dba399f40396ce4e07",null),(0,d.registerServerReference)(r,"400abad77f960086a858493d7637775a248382f2e1",null),(0,d.registerServerReference)(s,"40863df29ad9b4fad91a5867680b320d0f3118d5c6",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),209051,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=a.i(97397);a.i(689171),a.i(536960),a.i(196195);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),814122,a=>a.a(async(b,c)=>{try{var d=a.i(209051),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(97397),m=a.i(689171),n=a.i(536960),o=a.i(196195),p=b([d,g,h,l]);[d,g,h,l]=p.then?(await p)():p,a.s(["000117c8322c6744858d19768dc231e2644e700bbf",()=>h.getAvailableShells,"000d14bf95e77f5146ecedeafe36dd0cf4f69bef2b",()=>k.getOnboardingStatus,"000ef5644a74d2cb87838153533141bf8e3d6dc301",()=>h.getAvailableEditors,"0013b21d67a7ce907696bad27cf0af74419e936884",()=>h.getActualWsPort,"003a7801adab8f01470f0a6b52a9ffaea5eab3fd1a",()=>h.getPlatformInfo,"009a8310daa43caed254189f3df8ca9e4cd9ec15ce",()=>e.getWorkspacesWithProjects,"00a37ed9d7817ae2f43835e3ba3f7a6372a7c44f2b",()=>j.listAllExtensionStatus,"00efa63e5ad5c88ad23570d460c7e51e389903e249",()=>h.getAvailableTerminalApps,"4007aed739a0ce03f191023d9d814279807cc7e067",()=>e.deleteWorkspace,"400a4be3966798744492442d6e52e981eb270fa215",()=>l.deleteAsset,"400abad77f960086a858493d7637775a248382f2e1",()=>l.getAssetById,"401507e22bdf8ed89380da82391a5cc3b4680d6523",()=>e.deleteProject,"4024cd5e25a73f70ee2ad32d713ed63bded909c1e9",()=>e.getWorkspacesWithRecentTasks,"402b5bbcb9000f82183949dd6bd27fcd4b6f35334a",()=>j.checkExtension,"402bed4755ff79e2867db3780af837f50e5a57dfca",()=>e.createWorkspace,"403188dbd789058a2242037e5cb4c1b414c6d4dd82",()=>e.getProjectByLocalPath,"403571b0157629e00faaad8d6db072c4b80039727f",()=>f.createLabel,"404202ed461e1dc3979fcf4b4e3f43e192015924f8",()=>f.deleteLabel,"40439232ece3bb831138972c38d756e8e8a05b1ac6",()=>e.reorderWorkspaces,"406902d618aaf93e5f70e88de83dc968c5d795988c",()=>o.fetchRemoteBranches,"4069332f44db7650fccc2f480d27ffb20dc9f17f4a",()=>j.installExtension,"406a27b6e3dcf314ab94933879e542f5d5807c687a",()=>k.setOnboardingProgress,"406cf57ab441b87fe26b4e4ba61492f885d99c626c",()=>h.resolveGitLocalPath,"407085d02d16fff1bce4bd832c0cc01b9fba3cd841",()=>n.openInEditor,"40785f66a40ae44142db30d691958a7ea1b294f789",()=>o.getProjectBranches,"408281c21d75e3d64e1002f8da0e8b93ecef46e46b",()=>m.getTaskOverview,"40863df29ad9b4fad91a5867680b320d0f3118d5c6",()=>l.uploadAsset,"408f1c8bdcc32c65523ca29637b77ea0b21cdc3bcc",()=>o.getCurrentBranch,"408ff93b09853c3e48be0285dba399f40396ce4e07",()=>l.getTaskAssets,"409351ba2f53bff642bdeefc748e2b4f5900e08771",()=>m.createTask,"409d48f73c35b549e06bf17e7c910d1dfda4443bca",()=>n.openInTerminal,"40adc9fa0c304a7cd83c0b41a33a7a52c68d247a3f",()=>l.getProjectAssets,"40b5222e72e32cd9f45dc74923a7de5adbd67bc035",()=>j.uninstallExtension,"40bbb15b95b61da428c7e4c39a37b1859d070f0d4a",()=>h.getConfigValues,"40bbf2511527d659cda23200ebab62c449b3333981",()=>k.dispatchTaskCompletionEvent,"40bf13d805ba5df8c98104966626fa3c379fe124fe",()=>e.getWorkspaceById,"40c41ee3dbd5922ea86bfa9c171b0cf86fd70be5fb",()=>f.getLabelsForWorkspace,"40c537d4a523dd876dc26956b554758fd7a5893c2c",()=>i.checkMigrationSafety,"40cc2950bbbba5801ebd3766e25d2e144a88b0121e",()=>n.openInFileManager,"40cdddf74c4871e58a967171910cd4e70f66d9fcb9",()=>e.getOrCreateTowerTaskId,"40dd814fffe051e5f444977a53a743b2478250395c",()=>l.createAsset,"40f0fdb5e9a1a34468de5b220651e1d97fe652c148",()=>e.createProject,"40f4bc7d33dfc4192f63cea49ce2d3321a9a6daf65",()=>e.getRecentLocalProjects,"6023f7fd9697f8622ec6253be83036fb51f78a003f",()=>h.getConfigValue,"6024dbc330f4c524daa08e7ac710214e9e81039cc8",()=>i.analyzeProjectDirectory,"60419002d165e0acbafb67ca7d3daa91b1a43038f4",()=>h.setConfigValue,"604ed770eae5fe6c7eb9bb3e7920034f2876adcc93",()=>i.migrateProjectPath,"605776670179f7e81aa8dc4c1efdf239d4bcee2b24",()=>e.updateWorkspace,"609fd24cefe3230b2272c1c8c2db26ea3e5a4a6234",()=>g.globalSearch,"60b0380e165f524a2d94cf6eeea69d6a79b8c869e3",()=>e.updateProject,"60daedfee26db2b3db86558c507c9657419b041b19",()=>k.completeOnboarding,"60f838a02bdbc2cb7a865af120230e7d827d85ec63",()=>k.setOnboardingExtensions]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0lcvt1c._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(a=>Promise.resolve().then(()=>a(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0p8otw1._.js"].map(b=>a.l(b))).then(()=>b(897667)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0hg-fwv._.js"].map(b=>a.l(b))).then(()=>b(818992)))},200442,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0u7n6kw._.js"].map(b=>a.l(b))).then(()=>b(941750)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},173855,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_open-targets_ts_12a-_~u._.js"].map(b=>a.l(b))).then(()=>b(289288)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__02p4lry._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[589578,a=>{a.v({className:"geist_a71539c9-module__T19VSG__className",variable:"geist_a71539c9-module__T19VSG__variable"})},435214,a=>{a.v({className:"geist_mono_8d43a2aa-module__8Li5zG__className",variable:"geist_mono_8d43a2aa-module__8Li5zG__variable"})},655209,a=>{"use strict";a.s(["Tooltip",()=>c,"TooltipContent",()=>d,"TooltipProvider",()=>e,"TooltipTrigger",()=>f]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Tooltip() from the server but Tooltip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","Tooltip"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipContent() from the server but TooltipContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipProvider() from the server but TooltipProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipProvider"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipTrigger() from the server but TooltipTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipTrigger")},480581,a=>{"use strict";a.s(["Tooltip",()=>c,"TooltipContent",()=>d,"TooltipProvider",()=>e,"TooltipTrigger",()=>f]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Tooltip() from the server but Tooltip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","Tooltip"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipContent() from the server but TooltipContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipProvider() from the server but TooltipProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipProvider"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipTrigger() from the server but TooltipTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipTrigger")},570588,a=>{"use strict";a.i(655209);var b=a.i(480581);a.n(b)},58951,a=>{"use strict";a.s(["LayoutClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call LayoutClient() from the server but LayoutClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/layout/layout-client.tsx <module evaluation>","LayoutClient")},890170,a=>{"use strict";a.s(["LayoutClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call LayoutClient() from the server but LayoutClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/layout/layout-client.tsx","LayoutClient")},910515,a=>{"use strict";a.i(58951);var b=a.i(890170);a.n(b)},878776,a=>{"use strict";a.s(["I18nProvider",()=>c,"useI18n",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call I18nProvider() from the server but I18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx <module evaluation>","I18nProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useI18n() from the server but useI18n is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx <module evaluation>","useI18n")},604483,a=>{"use strict";a.s(["I18nProvider",()=>c,"useI18n",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call I18nProvider() from the server but I18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx","I18nProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useI18n() from the server but useI18n is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx","useI18n")},796661,a=>{"use strict";a.i(878776);var b=a.i(604483);a.n(b)},314493,a=>{"use strict";a.s(["ThemeProvider",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/providers/theme-provider.tsx <module evaluation>","ThemeProvider")},718127,a=>{"use strict";a.s(["ThemeProvider",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/providers/theme-provider.tsx","ThemeProvider")},538939,a=>{"use strict";a.i(314493);var b=a.i(718127);a.n(b)},336511,a=>{"use strict";a.s(["ExtensionContext",()=>c,"ExtensionProvider",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionContext() from the server but ExtensionContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx <module evaluation>","ExtensionContext"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionProvider() from the server but ExtensionProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx <module evaluation>","ExtensionProvider")},948109,a=>{"use strict";a.s(["ExtensionContext",()=>c,"ExtensionProvider",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionContext() from the server but ExtensionContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx","ExtensionContext"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionProvider() from the server but ExtensionProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx","ExtensionProvider")},350569,a=>{"use strict";a.i(336511);var b=a.i(948109);a.n(b)},396988,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sonner.tsx <module evaluation>","Toaster")},324257,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sonner.tsx","Toaster")},767807,a=>{"use strict";a.i(396988);var b=a.i(324257);a.n(b)},827572,a=>{"use strict";var b=a.i(203469),c=a.i(589578);let d={className:c.default.className,style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"}};null!=c.default.variable&&(d.variable=c.default.variable);var e=a.i(435214);let f={className:e.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=e.default.variable&&(f.variable=e.default.variable);var g=a.i(570588),h=a.i(910515),i=a.i(796661),j=a.i(538939),k=a.i(350569),l=a.i(767807),m=a.i(761469),n=a.i(4634),o=a.i(563736);async function p({children:a}){let[c,e,q]=await Promise.all([m.db.workspace.findMany({orderBy:[{order:"asc"},{updatedAt:"desc"}],select:{id:!0,name:!0,description:!0,updatedAt:!0}}),(0,n.getOnboardingStatus)(),(0,o.listAllExtensionStatus)()]);return(0,b.jsxs)("html",{lang:"zh-CN",suppressHydrationWarning:!0,children:[(0,b.jsxs)("head",{children:[(0,b.jsx)("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),(0,b.jsx)("link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),(0,b.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&family=JetBrains+Mono:wght@400;500;600&display=swap",rel:"stylesheet"})]}),(0,b.jsx)("body",{className:`${d.variable} ${f.variable} antialiased`,children:(0,b.jsx)(j.ThemeProvider,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,b.jsx)(g.TooltipProvider,{children:(0,b.jsx)(i.I18nProvider,{children:(0,b.jsxs)(k.ExtensionProvider,{initialStatus:q,children:[(0,b.jsx)(h.LayoutClient,{workspaces:c,isFirstRun:e.isFirstRun,username:e.username,children:a}),(0,b.jsx)(l.Toaster,{richColors:!0,position:"top-right"})]})})})})})]})}a.s(["default",0,p,"dynamic",0,"force-dynamic","metadata",0,{title:"AI Task Platform - Tower",description:"AI task orchestration and multi-project management platform"},"runtime",0,"nodejs"],827572)},650645,a=>{a.n(a.i(827572))},904454,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0qp5cw1._.js","server/chunks/ssr/src_lib_0sms4xl._.js"].map(b=>a.l(b))).then(()=>b(640545)))},640417,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_@vscode_ripgrep_0m7itqb._.js"].map(b=>a.l(b))).then(()=>b(942094)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__07ptf-z._.js.map