tower-studio 0.2.25 → 0.2.27

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 (259) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
  12. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +29 -29
  13. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  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 +1 -1
  17. package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +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 +1 -1
  20. package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js +1 -1
  23. package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js +1 -1
  25. package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +1 -1
  27. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/internal/assistant/route.js +1 -1
  31. package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +1 -1
  33. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js +1 -1
  35. package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/internal/hooks/session/route.js +1 -1
  37. package/.next/standalone/.next/server/app/api/internal/hooks/session/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js +1 -1
  39. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js +1 -1
  41. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +1 -1
  43. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js +1 -1
  45. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js +1 -1
  47. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js +1 -1
  49. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
  51. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +67 -67
  52. package/.next/standalone/.next/server/app/missions/page.js +1 -1
  53. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +1 -1
  56. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +29 -29
  57. package/.next/standalone/.next/server/app/onboarding/page.js +1 -1
  58. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -1
  61. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +29 -29
  62. package/.next/standalone/.next/server/app/page.js +1 -1
  63. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
  66. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +47 -47
  67. package/.next/standalone/.next/server/app/settings/page.js +1 -1
  68. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +1 -1
  71. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +86 -86
  72. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +1 -1
  73. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +1 -1
  76. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +80 -80
  77. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +1 -1
  78. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +1 -1
  81. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +61 -61
  82. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +1 -1
  83. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +1 -1
  86. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +63 -63
  87. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +1 -1
  88. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +1 -1
  91. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +29 -29
  92. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +1 -1
  93. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +1 -1
  96. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +70 -70
  97. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +1 -1
  98. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +2 -2
  101. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +80 -80
  102. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +1 -1
  103. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +1 -1
  106. package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +45 -45
  107. package/.next/standalone/.next/server/app/workspaces/page.js +1 -1
  108. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0eh8dj_.js +5 -5
  111. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +1 -1
  112. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08xus7y._.js +3 -0
  113. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09p152b._.js +1 -1
  114. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0j-4yc7._.js → [root-of-the-server]__09sw_a5._.js} +2 -2
  115. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_3ce_3._.js +3 -0
  116. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b-ib~7._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dy~osn._.js +3 -0
  118. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gmwjkc._.js +1 -1
  119. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l1-djp._.js +3 -0
  120. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nggjno._.js +4 -0
  121. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oe.86i._.js +4 -0
  122. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q8.khe._.js +3 -0
  123. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qif839._.js +4 -0
  124. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qn.178._.js +4 -0
  125. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0o3iihg._.js → [root-of-the-server]__0r17py1._.js} +2 -2
  126. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__024m_g.._.js → [root-of-the-server]__0rpck4h._.js} +2 -2
  127. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0hc9vir._.js → [root-of-the-server]__0ul.hbv._.js} +2 -2
  128. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0v5.ht~._.js +1 -1
  129. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0j8xb6s._.js → [root-of-the-server]__0~au8v.._.js} +2 -2
  130. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0r9mscb._.js → [root-of-the-server]__11c_is3._.js} +2 -2
  131. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11j15wy._.js +4 -0
  132. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12brxjg._.js +3 -0
  133. package/.next/standalone/.next/server/chunks/src_0bkvm8c._.js +1 -1
  134. package/.next/standalone/.next/server/chunks/src_lib_0aowbzy._.js +1 -1
  135. package/.next/standalone/.next/server/chunks/src_lib_ai_0xx6y51._.js +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  137. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02-6df-._.js +3 -3
  138. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03e009u._.js +3 -3
  139. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e_-mj-._.js +3 -3
  140. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fzkdjl._.js +3 -3
  141. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h-yd-.._.js +3 -0
  142. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0f~m-8x._.js → [root-of-the-server]__0ihwpkg._.js} +2 -2
  143. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__084p3.0._.js → [root-of-the-server]__0jaud.k._.js} +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jymb~t._.js +1 -1
  145. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pu-v0l._.js +3 -3
  146. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ygiyqr._.js → [root-of-the-server]__0srv77j._.js} +2 -2
  147. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0qkus8m._.js → [root-of-the-server]__0uh3kpv._.js} +2 -2
  148. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0um1ugs._.js +3 -3
  149. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z7je5_._.js +1 -1
  150. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__134_xv.._.js +1 -1
  151. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13vgkq5._.js +3 -3
  152. package/.next/standalone/.next/server/chunks/ssr/_006o~oo._.js +3 -0
  153. package/.next/standalone/.next/server/chunks/ssr/{_11cv4uu._.js → _03f_wwv._.js} +3 -3
  154. package/.next/standalone/.next/server/chunks/ssr/_070t_mh._.js +2 -2
  155. package/.next/standalone/.next/server/chunks/ssr/_08z-g~5._.js +3 -3
  156. package/.next/standalone/.next/server/chunks/ssr/_0_vjay8._.js +3 -3
  157. package/.next/standalone/.next/server/chunks/ssr/_0adfhzf._.js +3 -0
  158. package/.next/standalone/.next/server/chunks/ssr/_0cacv5.._.js +3 -0
  159. package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/ssr/_0eqcb.s._.js +3 -0
  161. package/.next/standalone/.next/server/chunks/ssr/_0hp.0s8._.js +3 -0
  162. package/.next/standalone/.next/server/chunks/ssr/{_0ecgaqt._.js → _0jd3nyu._.js} +3 -3
  163. package/.next/standalone/.next/server/chunks/ssr/_0jg.s-g._.js +1 -1
  164. package/.next/standalone/.next/server/chunks/ssr/_0m-e3bn._.js +3 -0
  165. package/.next/standalone/.next/server/chunks/ssr/{_0kynu6x._.js → _0o.uf_.._.js} +3 -3
  166. package/.next/standalone/.next/server/chunks/ssr/{_0r1pb6u._.js → _0px5iue._.js} +2 -2
  167. package/.next/standalone/.next/server/chunks/ssr/{_03osyxp._.js → _0qdu.-q._.js} +2 -2
  168. package/.next/standalone/.next/server/chunks/ssr/{_0vx81le._.js → _0r48bby._.js} +2 -2
  169. package/.next/standalone/.next/server/chunks/ssr/_0r6gweb._.js +3 -3
  170. package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +1 -1
  171. package/.next/standalone/.next/server/chunks/ssr/_0rt8jf_._.js +3 -3
  172. package/.next/standalone/.next/server/chunks/ssr/_0uuzh5m._.js +3 -3
  173. package/.next/standalone/.next/server/chunks/ssr/_0yb~7-n._.js +4 -0
  174. package/.next/standalone/.next/server/chunks/ssr/_0~aon4t._.js +3 -3
  175. package/.next/standalone/.next/server/chunks/ssr/_11df4xf._.js +3 -0
  176. package/.next/standalone/.next/server/chunks/ssr/src_075s.rk._.js +1 -1
  177. package/.next/standalone/.next/server/chunks/ssr/src_0djxlqx._.js +1 -1
  178. package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +1 -1
  179. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  180. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  181. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  182. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  183. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  184. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  185. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  186. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  187. package/.next/standalone/.next/server/chunks/ssr/src_components_ui_popover_tsx_0a78wqo._.js +3 -0
  188. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  189. package/.next/standalone/.next/server/pages/500.html +1 -1
  190. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/server-reference-manifest.json +279 -279
  192. package/.next/standalone/.next/static/chunks/0-f79~906wz5j.js +1 -0
  193. package/.next/standalone/.next/static/chunks/{0mi29_2~1sr...js → 0149fv_0zggn8.js} +1 -1
  194. package/.next/standalone/.next/static/chunks/02gl~iszfc1yd.js +1 -0
  195. package/.next/standalone/.next/static/chunks/{0jmk1_g~_yd7-.js → 039a4i2lrpg48.js} +1 -1
  196. package/.next/standalone/.next/static/chunks/04iae2dax3a4_.css +1 -0
  197. package/.next/standalone/.next/static/chunks/04l_v10h82d9x.js +1 -0
  198. package/.next/standalone/.next/static/chunks/{0izvibcnunqx4.js → 05aw58w9v12_k.js} +1 -1
  199. package/.next/standalone/.next/static/chunks/05ro4v-~1rzzu.js +1 -0
  200. package/.next/standalone/.next/static/chunks/06pml6cu861_z.js +1 -0
  201. package/.next/standalone/.next/static/chunks/{0oopksfzoc0_k.js → 07-hrgrojd47k.js} +1 -1
  202. package/.next/standalone/.next/static/chunks/082l64h0~egwa.js +1 -0
  203. package/.next/standalone/.next/static/chunks/08stlcmc.w7i-.js +1 -0
  204. package/.next/standalone/.next/static/chunks/{08ln6v6_fd4nf.js → 0_0at2~~4zjdh.js} +1 -1
  205. package/.next/standalone/.next/static/chunks/0_1uz793pu.9y.js +1 -0
  206. package/.next/standalone/.next/static/chunks/{131msw-pgcsxt.js → 0aml6gixhw._8.js} +2 -2
  207. package/.next/standalone/.next/static/chunks/{0s2umk4hfyhqa.js → 0chv87z6o3n63.js} +1 -1
  208. package/.next/standalone/.next/static/chunks/0d-53ws8ezr.b.js +1 -0
  209. package/.next/standalone/.next/static/chunks/{157pgx~-2_qo5.js → 0fvf0wt_q0_zq.js} +2 -2
  210. package/.next/standalone/.next/static/chunks/0gd1q9f89qnfj.js +1 -0
  211. package/.next/standalone/.next/static/chunks/{0pov66bj_qi58.js → 0gn8igf9i2j_9.js} +1 -1
  212. package/.next/standalone/.next/static/chunks/0g~pi-_mk2cd8.js +1 -0
  213. package/.next/standalone/.next/static/chunks/0osd9c3nf.67-.js +1 -0
  214. package/.next/standalone/.next/static/chunks/{13upq83z~yuys.js → 0tmwe-h4iyyf~.js} +1 -1
  215. package/.next/standalone/.next/static/chunks/{0w7cz_z6p3-p_.js → 0vsivergi0gca.js} +1 -1
  216. package/.next/standalone/.next/static/chunks/{141wmbqfx~lo8.js → 14~xgkw1qggbk.js} +2 -2
  217. package/.next/standalone/.next/static/chunks/16-54g5tfsd82.js +5 -0
  218. package/.next/standalone/.next/static/chunks/16szb7161dy4k.js +1 -0
  219. package/.next/standalone/.next/static/chunks/17z3hzpf34o4a.js +2 -0
  220. package/.next/standalone/package.json +1 -1
  221. package/dist/mcp-server.cjs +16 -7
  222. package/package.json +1 -1
  223. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03j20vp._.js +0 -4
  224. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05se6yk._.js +0 -4
  225. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06m1r8x._.js +0 -4
  226. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g788b3._.js +0 -4
  227. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qdvear._.js +0 -3
  228. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0umocfj._.js +0 -3
  229. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wuzc5o._.js +0 -4
  230. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0z-k6vg._.js +0 -3
  231. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~rm9q.._.js +0 -3
  232. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12c9noi._.js +0 -3
  233. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0i7es1w._.js +0 -3
  234. package/.next/standalone/.next/server/chunks/ssr/_02acmsq._.js +0 -3
  235. package/.next/standalone/.next/server/chunks/ssr/_06-jig2._.js +0 -3
  236. package/.next/standalone/.next/server/chunks/ssr/_0eete9d._.js +0 -3
  237. package/.next/standalone/.next/server/chunks/ssr/_0gk20rx._.js +0 -3
  238. package/.next/standalone/.next/server/chunks/ssr/_0jeo~zr._.js +0 -4
  239. package/.next/standalone/.next/server/chunks/ssr/_0rny90z._.js +0 -3
  240. package/.next/standalone/.next/server/chunks/ssr/_0rr~oe~._.js +0 -3
  241. package/.next/standalone/.next/server/chunks/ssr/_0yvg9ie._.js +0 -3
  242. package/.next/standalone/.next/server/chunks/ssr/_13esy08._.js +0 -3
  243. package/.next/standalone/.next/static/chunks/00fcxpwt-xz7b.js +0 -1
  244. package/.next/standalone/.next/static/chunks/02.0.zsh_o-10.js +0 -1
  245. package/.next/standalone/.next/static/chunks/05dryiv53wj6h.js +0 -5
  246. package/.next/standalone/.next/static/chunks/099fxtzvpw3be.js +0 -1
  247. package/.next/standalone/.next/static/chunks/0ce8gr~q3rs9k.js +0 -1
  248. package/.next/standalone/.next/static/chunks/0iyxegei1fjbp.js +0 -1
  249. package/.next/standalone/.next/static/chunks/0n.isvqurxe72.js +0 -1
  250. package/.next/standalone/.next/static/chunks/0nl7~2pju.abl.js +0 -1
  251. package/.next/standalone/.next/static/chunks/0okjtk-a.5lz0.css +0 -1
  252. package/.next/standalone/.next/static/chunks/0p5wczoq4gvin.js +0 -1
  253. package/.next/standalone/.next/static/chunks/0ur66aluu.t0b.js +0 -1
  254. package/.next/standalone/.next/static/chunks/0wa8r89hd0y0b.js +0 -1
  255. package/.next/standalone/.next/static/chunks/0yjkfr0qay7z6.js +0 -1
  256. package/.next/standalone/.next/static/chunks/16ndme6.~2w1x.js +0 -2
  257. /package/.next/standalone/.next/static/{biyHBSA-7nbhZk25VrdWY → oV8mD-RwRHyXZf4Iv1-cU}/_buildManifest.js +0 -0
  258. /package/.next/standalone/.next/static/{biyHBSA-7nbhZk25VrdWY → oV8mD-RwRHyXZf4Iv1-cU}/_clientMiddlewareManifest.js +0 -0
  259. /package/.next/standalone/.next/static/{biyHBSA-7nbhZk25VrdWY → oV8mD-RwRHyXZf4Iv1-cU}/_ssgManifest.js +0 -0
@@ -0,0 +1,2 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,313029,e=>{"use strict";let t=(0,e.i(572989).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);e.s(["Square",0,t],313029)},368490,e=>{"use strict";var t=e.i(776405);e.s(["ChevronRight",()=>t.default])},922541,e=>{"use strict";let t=(0,e.i(572989).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],922541)},912505,e=>{"use strict";var t=e.i(289721),r=e.i(975157);e.s(["EmptyState",0,function({icon:e,title:n,description:i,action:s,className:u}){return(0,t.jsxs)("div",{className:(0,r.cn)("flex h-48 flex-col items-center justify-center gap-2 text-center",u),children:[e&&(0,t.jsx)(e,{className:"h-10 w-10 text-muted-foreground/40"}),(0,t.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:n}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground/60",children:i}),s&&(0,t.jsx)("div",{className:"mt-2",children:s})]})}])},867533,e=>{"use strict";let t=(0,e.i(572989).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,t],867533)},77597,485599,e=>{"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach(function(t){var r,i;r=t,i=n[t],(r=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(r))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function u(e){return function t(){for(var r=this,n=arguments.length,i=Array(n),s=0;s<n;s++)i[s]=arguments[s];return i.length>=e.length?e.apply(this,i):function(){for(var e=arguments.length,n=Array(e),s=0;s<e;s++)n[s]=arguments[s];return t.apply(r,[].concat(i,n))}}}function o(e){return({}).toString.call(e).includes("Object")}function c(e){return"function"==typeof e}var a,l,h=u(function(e,t){throw Error(e[t]||e.default)})({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),d=function(e,t){return o(t)||h("changeType"),Object.keys(t).some(function(t){return!Object.prototype.hasOwnProperty.call(e,t)})&&h("changeField"),t},f=function(e){c(e)||h("selectorType")},g=function(e){c(e)||o(e)||h("handlerType"),o(e)&&Object.values(e).some(function(e){return!c(e)})&&h("handlersType")},p=function(e){e||h("initialIsRequired"),o(e)||h("initialType"),Object.keys(e).length||h("initialContent")};function m(e,t){return c(t)?t(e.current):t}function y(e,t){return e.current=s(s({},e.current),t),t}function v(e,t,r){return c(t)?t(e.current):Object.keys(r).forEach(function(r){var n;return null==(n=t[r])?void 0:n.call(t,e.current[r])}),r}var b={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "},A=(a=function(e,t){throw Error(e[t]||e.default)},function e(){for(var t=this,r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];return n.length>=a.length?a.apply(this,n):function(){for(var r=arguments.length,i=Array(r),s=0;s<r;s++)i[s]=arguments[s];return e.apply(t,[].concat(n,i))}})(b),x=function(e){return(e||A("configIsRequired"),({}).toString.call(e).includes("Object")||A("configType"),e.urls)?(console.warn(b.deprecation),{paths:{vs:e.urls.monacoBase}}):e},E=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}},M={type:"cancelation",msg:"operation is manually canceled"};function C(e){var t=!1,r=new Promise(function(r,n){e.then(function(e){return t?n(M):r(e)}),e.catch(n)});return r.cancel=function(){return t=!0},r}var S=["monaco"],w=function(e){if(Array.isArray(e))return e}(l=({create:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};p(e),g(t);var r={current:e},n=u(v)(r,t),i=u(y)(r),s=u(d)(e),o=u(m)(r);return[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return f(e),e(r.current)},function(e){(function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}})(n,i,s,o)(e)}]}}).create({config:{paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}},isInitialized:!1,resolve:null,reject:null,monaco:null}))||function(e){var t=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,n,i,s,u=[],o=!0,c=!1;try{i=(t=t.call(e)).next,!1;for(;!(o=(r=i.call(t)).done)&&(u.push(r.value),2!==u.length);o=!0);}catch(e){c=!0,n=e}finally{try{if(!o&&null!=t.return&&(s=t.return(),Object(s)!==s))return}finally{if(c)throw n}}return u}}(l)||function(e){if(e){if("string"==typeof e)return t(e,2);var r=({}).toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,2):void 0}}(l)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),k=w[0],D=w[1];function F(e){return document.body.appendChild(e)}function _(e){var t,r,n=k(function(e){return{config:e.config,reject:e.reject}}),i=(t="".concat(n.config.paths.vs,"/loader.js"),r=document.createElement("script"),t&&(r.src=t),r);return i.onload=function(){return e()},i.onerror=n.reject,i}function j(){var e=k(function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(t){var r=t.m||t;B(r),e.resolve(r)},function(t){e.reject(t)})}function B(e){k().monaco||D({monaco:e})}var O=new Promise(function(e,t){return D({resolve:e,reject:t})}),R={config:function(e){var t=x(e),r=t.monaco,i=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(t,S);D(function(e){return{config:function e(t,r){return Object.keys(r).forEach(function(n){r[n]instanceof Object&&t[n]&&Object.assign(r[n],e(t[n],r[n]))}),n(n({},t),r)}(e.config,i),monaco:r}})},init:function(){var e=k(function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}});if(!e.isInitialized){if(D({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),C(O);if(window.monaco&&window.monaco.editor)return B(window.monaco),e.resolve(window.monaco),C(O);E(F,_)(j)}return C(O)},__getMonacoInstance:function(){return k(function(e){return e.monaco})}};e.s(["default",0,R],485599);var I=e.i(965652),L={display:"flex",position:"relative",textAlign:"initial"},P={width:"100%"},$={display:"none"},z={display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"},N=function({children:e}){return I.default.createElement("div",{style:z},e)},T=(0,I.memo)(function({width:e,height:t,isEditorReady:r,loading:n,_ref:i,className:s,wrapperProps:u}){return I.default.createElement("section",{style:{...L,width:e,height:t},...u},!r&&I.default.createElement(N,null,n),I.default.createElement("div",{ref:i,style:{...P,...!r&&$},className:s}))}),U=function(e){(0,I.useEffect)(e,[])},V=function(e,t,r=!0){let n=(0,I.useRef)(!0);(0,I.useEffect)(n.current||!r?()=>{n.current=!1}:e,t)};function q(){}function W(e,t,r,n){var i,s,u,o,c,a;return i=e,s=n,i.editor.getModel(K(i,s))||(u=e,o=t,c=r,a=n,u.editor.createModel(o,c,a?K(u,a):void 0))}function K(e,t){return e.Uri.parse(t)}var G=(0,I.memo)(function({original:e,modified:t,language:r,originalLanguage:n,modifiedLanguage:i,originalModelPath:s,modifiedModelPath:u,keepCurrentOriginalModel:o=!1,keepCurrentModifiedModel:c=!1,theme:a="light",loading:l="Loading...",options:h={},height:d="100%",width:f="100%",className:g,wrapperProps:p={},beforeMount:m=q,onMount:y=q}){let[v,b]=(0,I.useState)(!1),[A,x]=(0,I.useState)(!0),E=(0,I.useRef)(null),M=(0,I.useRef)(null),C=(0,I.useRef)(null),S=(0,I.useRef)(y),w=(0,I.useRef)(m),k=(0,I.useRef)(!1);U(()=>{let e=R.init();return e.then(e=>(M.current=e)&&x(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>{let t;return E.current?(t=E.current?.getModel(),void(o||t?.original?.dispose(),c||t?.modified?.dispose(),E.current?.dispose())):e.cancel()}}),V(()=>{if(E.current&&M.current){let t=E.current.getOriginalEditor(),i=W(M.current,e||"",n||r||"text",s||"");i!==t.getModel()&&t.setModel(i)}},[s],v),V(()=>{if(E.current&&M.current){let e=E.current.getModifiedEditor(),n=W(M.current,t||"",i||r||"text",u||"");n!==e.getModel()&&e.setModel(n)}},[u],v),V(()=>{let e=E.current.getModifiedEditor();e.getOption(M.current.editor.EditorOption.readOnly)?e.setValue(t||""):t!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),e.pushUndoStop())},[t],v),V(()=>{E.current?.getModel()?.original.setValue(e||"")},[e],v),V(()=>{let{original:e,modified:t}=E.current.getModel();M.current.editor.setModelLanguage(e,n||r||"text"),M.current.editor.setModelLanguage(t,i||r||"text")},[r,n,i],v),V(()=>{M.current?.editor.setTheme(a)},[a],v),V(()=>{E.current?.updateOptions(h)},[h],v);let D=(0,I.useCallback)(()=>{if(!M.current)return;w.current(M.current);let o=W(M.current,e||"",n||r||"text",s||""),c=W(M.current,t||"",i||r||"text",u||"");E.current?.setModel({original:o,modified:c})},[r,t,i,e,n,s,u]),F=(0,I.useCallback)(()=>{!k.current&&C.current&&(E.current=M.current.editor.createDiffEditor(C.current,{automaticLayout:!0,...h}),D(),M.current?.editor.setTheme(a),b(!0),k.current=!0)},[h,a,D]);return(0,I.useEffect)(()=>{v&&S.current(E.current,M.current)},[v]),(0,I.useEffect)(()=>{A||v||F()},[A,v,F]),I.default.createElement(T,{width:f,height:d,isEditorReady:v,loading:l,_ref:C,className:g,wrapperProps:p})}),Q=function(e){let t=(0,I.useRef)();return(0,I.useEffect)(()=>{t.current=e},[e]),t.current},H=new Map,J=(0,I.memo)(function({defaultValue:e,defaultLanguage:t,defaultPath:r,value:n,language:i,path:s,theme:u="light",line:o,loading:c="Loading...",options:a={},overrideServices:l={},saveViewState:h=!0,keepCurrentModel:d=!1,width:f="100%",height:g="100%",className:p,wrapperProps:m={},beforeMount:y=q,onMount:v=q,onChange:b,onValidate:A=q}){let[x,E]=(0,I.useState)(!1),[M,C]=(0,I.useState)(!0),S=(0,I.useRef)(null),w=(0,I.useRef)(null),k=(0,I.useRef)(null),D=(0,I.useRef)(v),F=(0,I.useRef)(y),_=(0,I.useRef)(void 0),j=(0,I.useRef)(n),B=Q(s),O=(0,I.useRef)(!1),L=(0,I.useRef)(!1);U(()=>{let e=R.init();return e.then(e=>(S.current=e)&&C(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>w.current?void(_.current?.dispose(),d?h&&H.set(s,w.current.saveViewState()):w.current.getModel()?.dispose(),w.current.dispose(),w.current=null,O.current=!1,E(!1)):e.cancel()}),V(()=>{let u=W(S.current,e||n||"",t||i||"",s||r||"");u!==w.current?.getModel()&&(h&&H.set(B,w.current?.saveViewState()),w.current?.setModel(u),h&&w.current?.restoreViewState(H.get(s)))},[s],x),V(()=>{w.current?.updateOptions(a)},[a],x),V(()=>{w.current&&void 0!==n&&(w.current.getOption(S.current.editor.EditorOption.readOnly)?w.current.setValue(n):n!==w.current.getValue()&&(L.current=!0,w.current.executeEdits("",[{range:w.current.getModel().getFullModelRange(),text:n,forceMoveMarkers:!0}]),w.current.pushUndoStop(),L.current=!1))},[n],x),V(()=>{let e=w.current?.getModel();x&&e&&i&&S.current?.editor.setModelLanguage(e,i)},[i,x],x),V(()=>{void 0!==o&&w.current?.revealLine(o)},[o],x),V(()=>{S.current?.editor.setTheme(u)},[u],x);let P=(0,I.useCallback)(()=>{if(!(!k.current||!S.current)&&!O.current){F.current(S.current);let c=s||r,d=W(S.current,n||e||"",t||i||"",c||"");w.current=S.current?.editor.create(k.current,{model:d,automaticLayout:!0,...a},l),h&&w.current.restoreViewState(H.get(c)),S.current.editor.setTheme(u),void 0!==o&&w.current.revealLine(o),E(!0),O.current=!0}},[e,t,r,n,i,s,a,l,h,u,o]);return(0,I.useEffect)(()=>{x&&D.current(w.current,S.current)},[x]),(0,I.useEffect)(()=>{M||x||P()},[M,x,P]),j.current=n,(0,I.useEffect)(()=>{x&&b&&(_.current?.dispose(),_.current=w.current?.onDidChangeModelContent(e=>{L.current||b(w.current.getValue(),e)}))},[x,b]),(0,I.useEffect)(()=>{if(x){let e=S.current.editor.onDidChangeMarkers(e=>{let t=w.current.getModel()?.uri;if(t&&e.find(e=>e.path===t.path)){let e=S.current.editor.getModelMarkers({resource:t});A?.(e)}});return()=>{e?.dispose()}}return()=>{}},[x,A]),I.default.createElement(T,{width:f,height:g,isEditorReady:x,loading:c,_ref:k,className:p,wrapperProps:m})});e.s(["DiffEditor",0,G,"Editor",0,J,"default",0,J,"useMonaco",0,function(){let[e,t]=(0,I.useState)(R.__getMonacoInstance());return U(()=>{let r;return e||(r=R.init()).then(e=>{t(e)}),()=>r?.cancel()}),e}],77597)},461526,e=>{"use strict";e.s(["PREVIEW_TASK_ID",0,"__preview__"])},301348,181209,e=>{"use strict";var t=e.i(59737);e.s(["CheckCircle2",()=>t.default],301348);let r=(0,e.i(572989).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,r],181209)},759686,e=>{"use strict";var t=e.i(567098);e.s(["AlertTriangle",()=>t.default])},937446,e=>{"use strict";var t=e.i(514798);let r=(0,t.createServerReference)("4027ef3d427c53c4f6bf8f3cc5652ec1062a5ddc4e",t.callServer,void 0,t.findSourceMapURL,"getPrompts");e.s(["getPrompts",0,r])},991838,e=>{"use strict";var t=e.i(965652),r=e.i(770303);e.s(["useExtension",0,function(e){let n=(0,t.useContext)(r.ExtensionContext);if(!n)throw Error("useExtension must be used inside <ExtensionProvider>");return{status:n.statusMap[e],loading:n.loading,isInstalling:n.installing.has(e),install:()=>n.install(e),uninstall:()=>n.uninstall(e),refresh:()=>n.refresh(e)}}])},960518,e=>{"use strict";let t=(0,e.i(572989).default)("git-compare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);e.s(["GitCompare",0,t],960518)},340873,e=>{"use strict";let t=(0,e.i(572989).default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);e.s(["GitCommitHorizontal",0,t],340873)},707631,(e,t,r)=>{t.exports=e=>{if(!e||"string"!=typeof e||e.match(/^\s+$/))return[];let t=e.split(`
2
+ `);if(0===t.length)return[];let r=[],n=null,i=null,u=0,c=0,a=null,l=e=>{let[t,i]=s(e)??[];n={chunks:[],deletions:0,additions:0,from:t,to:i},r.push(n)},h=()=>{(!n||n.chunks.length)&&l()},d=e=>{if(!i)return;let[t]=i.changes.slice(-1);i.changes.push({type:t.type,[t.type]:!0,ln1:t.ln1,ln2:t.ln2,ln:t.ln,content:e})},f=[[/^diff\s/,l],[/^new file mode (\d+)$/,(e,t)=>{h(),n.new=!0,n.newMode=t[1],n.from="/dev/null"}],[/^deleted file mode (\d+)$/,(e,t)=>{h(),n.deleted=!0,n.oldMode=t[1],n.to="/dev/null"}],[/^old mode (\d+)$/,(e,t)=>{h(),n.oldMode=t[1]}],[/^new mode (\d+)$/,(e,t)=>{h(),n.newMode=t[1]}],[/^index\s[\da-zA-Z]+\.\.[\da-zA-Z]+(\s(\d+))?$/,(e,t)=>{h(),n.index=e.split(" ").slice(1),t[1]&&(n.oldMode=n.newMode=t[1].trim())}],[/^---\s/,e=>{h(),n.from=o(e)}],[/^\+\+\+\s/,e=>{h(),n.to=o(e)}],[/^@@\s+-(\d+),?(\d+)?\s+\+(\d+),?(\d+)?\s@@/,(e,t)=>{n||l(e);let[r,s,o,h]=t.slice(1);u=+r,c=+o,i={content:e,changes:[],oldStart:+r,oldLines:+(s||1),newStart:+o,newLines:+(h||1)},a={oldLines:+(s||1),newLines:+(h||1)},n.chunks.push(i)}],[/^\$/,d]],g=[[/^\$/,d],[/^-/,e=>{i&&(i.changes.push({type:"del",del:!0,ln:u++,content:e}),n.deletions++,a.oldLines--)}],[/^\+/,e=>{i&&(i.changes.push({type:"add",add:!0,ln:c++,content:e}),n.additions++,a.newLines--)}],[/^\s*/,e=>{i?.changes.push({type:"normal",normal:!0,ln1:u++,ln2:c++,content:e}),a.oldLines--,a.newLines--}]],p=e=>{a?(e=>{for(let[t,r]of g){let n=e.match(t);if(n){r(e,n);break}}0===a.oldLines&&0===a.newLines&&(a=null)})(e):(e=>{for(let[t,r]of f){let n=e.match(t);if(n){r(e,n);break}}})(e)};for(let e of t)p(e);return r};let n=/(a|i|w|c|o|1|2)\/.*(?=["']? ["']?(b|i|w|c|o|1|2)\/)|(b|i|w|c|o|1|2)\/.*$/g,i=/^(a|b|i|w|c|o|1|2)\//,s=e=>e?.match(n)?.map(e=>e.replace(i,"").replace(/("|')$/,"")),u=/^\\?['"]|\\?['"]$/g,o=e=>{let t=c(e,"-+").trim();return(t=l(t)).replace(u,"").replace(i,"")},c=(e,t)=>{if(e=d(e),!t&&String.prototype.trimLeft)return e.trimLeft();let r=h(t);return e.replace(RegExp(`^${r}+`),"")},a=/\t.*|\d{4}-\d\d-\d\d\s\d\d:\d\d:\d\d(.\d+)?\s(\+|-)\d\d\d\d/,l=e=>{let t=a.exec(e);return t&&(e=e.substring(0,t.index).trim()),e},h=e=>null==e?"\\s":e instanceof RegExp?e.source:`[${d(e).replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}]`,d=e=>`${e??""}`},196199,e=>{"use strict";var t=e.i(707631);function r(e){return e.replace(/\r\n/g,"\n")}e.s(["normalizeLF",0,r,"parseUnifiedDiff",0,function(e){return(0,t.default)(r(e))}])},852002,327136,430265,857940,136273,485265,373921,514395,e=>{"use strict";var t=e.i(514798);let r=(0,t.createServerReference)("604f524abfdc8db700ea77cf97102f727e2deb8c8e",t.callServer,void 0,t.findSourceMapURL,"listDirectory");e.s(["listDirectory",0,r],852002);let n=(0,t.createServerReference)("70c6e39eee071495c5c1cba4add4bc5bf1c32ea2f3",t.callServer,void 0,t.findSourceMapURL,"getGitStatus");e.s(["getGitStatus",0,n],327136);let i=(0,t.createServerReference)("60a317d7c62961d4c4991f4f1b19e2d439ea16e0c9",t.callServer,void 0,t.findSourceMapURL,"createFile");e.s(["createFile",0,i],430265);let s=(0,t.createServerReference)("60299102a75d3f372e6cefa2cfd4e3f4945794e9f1",t.callServer,void 0,t.findSourceMapURL,"createDirectory");e.s(["createDirectory",0,s],857940);let u=(0,t.createServerReference)("70e3a2aafb8a83b41c912af4148376fb895e5469a4",t.callServer,void 0,t.findSourceMapURL,"renameEntry");e.s(["renameEntry",0,u],136273);let o=(0,t.createServerReference)("601f8373a3eae741b5d5cb41e45b7a6d31260721e9",t.callServer,void 0,t.findSourceMapURL,"deleteEntry");e.s(["deleteEntry",0,o],485265);let c=(0,t.createServerReference)("40c98519c272aa778a14abac101052dd1994d4aee5",t.callServer,void 0,t.findSourceMapURL,"listAllFiles");e.s(["listAllFiles",0,c],373921);let a=(0,t.createServerReference)("60480e84944ff21aca8b30311d3d74380feb7f58f1",t.callServer,void 0,t.findSourceMapURL,"readFileContent");e.s(["readFileContent",0,a],514395)},745786,e=>{"use strict";var t=e.i(514798);let r=(0,t.createServerReference)("70d60311e5b2e41e4ecfe51762757ae93ca0f8d0ae",t.callServer,void 0,t.findSourceMapURL,"writeFileContent");e.s(["writeFileContent",0,r])},688837,e=>{"use strict";var t=e.i(514798);let r=(0,t.createServerReference)("6003550d45cb1646b47bd0bb478d3a2249f74ec06a",t.callServer,void 0,t.findSourceMapURL,"readFileContentForce");e.s(["readFileContentForce",0,r])},123298,710231,e=>{"use strict";var t=e.i(514798);let r=(0,t.createServerReference)("4068d991ac172cb0c147f0133650419a6f3e690dab",t.callServer,void 0,t.findSourceMapURL,"stopPtyExecution");e.s(["stopPtyExecution",0,r],123298);let n=(0,t.createServerReference)("606900ac2271c5797f2e391f840b2f34d8d34a45da",t.callServer,void 0,t.findSourceMapURL,"resumePtyExecution");e.s(["resumePtyExecution",0,n],710231)},169751,e=>{"use strict";function t(e){return Array.isArray?Array.isArray(e):"[object Array]"===c(e)}function r(e){return null==e?"":function(e){if("string"==typeof e)return e;if("bigint"==typeof e)return e.toString();let t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(e)}function n(e){return"string"==typeof e}function i(e){return"number"==typeof e}function s(e){return"object"==typeof e}function u(e){return null!=e}function o(e){return!e.trim().length}function c(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let a=Object.prototype.hasOwnProperty;class l{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let r=h(e);this._keys.push(r),this._keyMap[r.id]=r,t+=r.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function h(e){let r=null,i=null,s=null,u=1,o=null;if(n(e)||t(e))s=e,r=d(e),i=f(e);else{if(!a.call(e,"name"))throw Error("Missing name property in key");let t=e.name;if(s=t,a.call(e,"weight")&&(u=e.weight)<=0)throw Error(`Property 'weight' in key '${t}' must be a positive integer`);r=d(t),i=f(t),o=e.getFn}return{path:r,id:i,weight:u,src:s,getFn:o}}function d(e){return t(e)?e:e.split(".")}function f(e){return t(e)?e.join("."):e}let g=Object.freeze({isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,useExtendedSearch:!1,useTokenSearch:!1,getFn:function(e,o){let a=[],l=!1,h=(e,o,d,f)=>{if(u(e))if(o[d]){var g,p;let m=e[o[d]];if(!u(m))return;if(d===o.length-1&&(n(m)||i(m)||!0===(g=m)||!1===g||s(p=g)&&null!==p&&"[object Boolean]"==c(g)||"bigint"==typeof m))a.push(void 0!==f?{v:r(m),i:f}:r(m));else if(t(m)){l=!0;for(let e=0,t=m.length;e<t;e+=1)h(m[e],o,d+1,e)}else o.length&&h(m,o,d+1,f)}else a.push(void 0!==f?{v:e,i:f}:e)};return h(e,n(o)?o.split("."):o,0),l?a:a[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}),p=/[^ ]+/g;class m{constructor({getFn:e=g.getFn,fieldNormWeight:t=g.fieldNormWeight}={}){this.norm=function(e=1,t=3){let r=new Map,n=Math.pow(10,t);return{get(t){let i=t.match(p).length;if(r.has(i))return r.get(i);let s=parseFloat(Math.round(1/Math.pow(i,.5*e)*n)/n);return r.set(i,s),s},clear(){r.clear()}}}(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,n(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){let t=this.size();n(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,r=this.size();t<r;t+=1)this.records[t].i-=1}removeAll(e){for(let t=e.length-1;t>=0;t-=1)this.records.splice(e[t],1);for(let e=0,t=this.records.length;e<t;e+=1)this.records[e].i=e}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!u(e)||o(e))return;let r={v:e,i:t,n:this.norm.get(e)};this.records.push(r)}_addObject(e,i){let s={i:i,$:{}};this.keys.forEach((i,c)=>{let a=i.getFn?i.getFn(e):this.getFn(e,i.path);if(u(a)){if(t(a)){let e=[];for(let t=0,i=a.length;t<i;t+=1){let i=a[t];if(u(i)){if(n(i)){if(!o(i)){let r={v:i,i:t,n:this.norm.get(i)};e.push(r)}}else if(u(i.v)){let t=n(i.v)?i.v:r(i.v);if(!o(t)){let r={v:t,i:i.i,n:this.norm.get(t)};e.push(r)}}}}s.$[c]=e}else if(n(a)&&!o(a)){let e={v:a,n:this.norm.get(a)};s.$[c]=e}}}),this.records.push(s)}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}}function y(e,t,{getFn:r=g.getFn,fieldNormWeight:n=g.fieldNormWeight}={}){let i=new m({getFn:r,fieldNormWeight:n});return i.setKeys(e.map(h)),i.setSources(t),i.create(),i}function v(e){if(e.length<=1)return e;e.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let t=[e[0]];for(let r=1,n=e.length;r<n;r+=1){let n=t[t.length-1],i=e[r];i[0]<=n[1]+1?n[1]=Math.max(n[1],i[1]):t.push(i)}return t}let b={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},A=RegExp("["+Object.keys(b).join("")+"]","g"),x=String.prototype.normalize?e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(A,e=>b[e]):e=>e;class E{constructor(e,{location:t=g.location,threshold:r=g.threshold,distance:n=g.distance,includeMatches:i=g.includeMatches,findAllMatches:s=g.findAllMatches,minMatchCharLength:u=g.minMatchCharLength,isCaseSensitive:o=g.isCaseSensitive,ignoreDiacritics:c=g.ignoreDiacritics,ignoreLocation:a=g.ignoreLocation}={}){if(this.options={location:t,threshold:r,distance:n,includeMatches:i,findAllMatches:s,minMatchCharLength:u,isCaseSensitive:o,ignoreDiacritics:c,ignoreLocation:a},e=o?e:e.toLowerCase(),e=c?x(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const l=(e,t)=>{this.chunks.push({pattern:e,alphabet:function(e){let t={};for(let r=0,n=e.length;r<n;r+=1){let i=e.charAt(r);t[i]=(t[i]||0)|1<<n-r-1}return t}(e),startIndex:t})},h=this.pattern.length;if(h>32){let e=0;const t=h%32,r=h-t;for(;e<r;)l(this.pattern.substr(e,32),e),e+=32;if(t){const e=h-32;l(this.pattern.substr(e),e)}}else l(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:r,includeMatches:n}=this.options;if(e=t?e:e.toLowerCase(),e=r?x(e):e,this.pattern===e){let t={isMatch:!0,score:0};return n&&(t.indices=[[0,e.length-1]]),t}let{location:i,distance:s,threshold:u,findAllMatches:o,minMatchCharLength:c,ignoreLocation:a}=this.options,l=[],h=0,d=!1;this.chunks.forEach(({pattern:t,alphabet:r,startIndex:f})=>{let{isMatch:p,score:m,indices:y}=function(e,t,r,{location:n=g.location,distance:i=g.distance,threshold:s=g.threshold,findAllMatches:u=g.findAllMatches,minMatchCharLength:o=g.minMatchCharLength,includeMatches:c=g.includeMatches,ignoreLocation:a=g.ignoreLocation}={}){let l;if(t.length>32)throw Error("Pattern length exceeds max of 32.");let h=t.length,d=e.length,f=Math.max(0,Math.min(n,d)),p=s,m=f,y=(e,t)=>{let r=e/h;if(a)return r;let n=Math.abs(f-t);return i?r+n/i:n?1:r},v=o>1||c,b=v?Array(d):[];for(;(l=e.indexOf(t,m))>-1;)if(p=Math.min(y(0,l),p),m=l+h,v){let e=0;for(;e<h;)b[l+e]=1,e+=1}m=-1;let A=[],x=1,E=h+d,M=1<<h-1;for(let t=0;t<h;t+=1){let n=0,i=E;for(;n<i;)y(t,f+i)<=p?n=i:E=i,i=Math.floor((E-n)/2+n);E=i;let s=Math.max(1,f-i+1),o=u?d:Math.min(f+i,d)+h,c=Array(o+2);c[o+1]=(1<<t)-1;for(let n=o;n>=s;n-=1){let i=n-1,u=r[e[i]];if(v&&(b[i]=+!!u),c[n]=(c[n+1]<<1|1)&u,t&&(c[n]|=(A[n+1]|A[n])<<1|1|A[n+1]),c[n]&M&&(x=y(t,i))<=p){if(p=x,(m=i)<=f)break;s=Math.max(1,2*f-m)}}if(y(t+1,f)>p)break;A=c}let C={isMatch:m>=0,score:Math.max(.001,x)};if(v){let e=function(e=[],t=g.minMatchCharLength){let r=[],n=-1,i=-1,s=0;for(let u=e.length;s<u;s+=1){let u=e[s];u&&-1===n?n=s:u||-1===n||((i=s-1)-n+1>=t&&r.push([n,i]),n=-1)}return e[s-1]&&s-n>=t&&r.push([n,s-1]),r}(b,o);e.length?c&&(C.indices=e):C.isMatch=!1}return C}(e,t,r,{location:i+f,distance:s,threshold:u,findAllMatches:o,minMatchCharLength:c,includeMatches:n,ignoreLocation:a});p&&(d=!0),h+=m,p&&y&&l.push(...y)});let f={isMatch:d,score:d?h/this.chunks.length:1};return d&&n&&(f.indices=v(l)),f}}class M{constructor(e){this.pattern=e}static isMultiMatch(e){return C(e,this.multiRegex)}static isSingleMatch(e){return C(e,this.singleRegex)}search(e){return{isMatch:!1,score:1}}}function C(e,t){let r=e.match(t);return r?r[1]:null}class S extends M{constructor(e,{location:t=g.location,threshold:r=g.threshold,distance:n=g.distance,includeMatches:i=g.includeMatches,findAllMatches:s=g.findAllMatches,minMatchCharLength:u=g.minMatchCharLength,isCaseSensitive:o=g.isCaseSensitive,ignoreDiacritics:c=g.ignoreDiacritics,ignoreLocation:a=g.ignoreLocation}={}){super(e),this._bitapSearch=new E(e,{location:t,threshold:r,distance:n,includeMatches:i,findAllMatches:s,minMatchCharLength:u,isCaseSensitive:o,ignoreDiacritics:c,ignoreLocation:a})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class w extends M{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,r=0,n=[],i=this.pattern.length;for(;(t=e.indexOf(this.pattern,r))>-1;)r=t+i,n.push([t,r-1]);let s=!!n.length;return{isMatch:s,score:+!s,indices:n}}}let k=[class extends M{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){let t=e===this.pattern;return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},w,class extends M{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){let t=e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},class extends M{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){let t=!e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends M{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){let t=!e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends M{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){let t=e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[e.length-this.pattern.length,e.length-1]}}},class extends M{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){let t=-1===e.indexOf(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},S],D=k.length,F=new Set([S.type,w.type]),_=[];function j(...e){_.push(...e)}function B(e,t){for(let r=0,n=_.length;r<n;r+=1){let n=_[r];if(n.condition(e,t))return new n(e,t)}return new E(e,t)}let O="$and",R="$path",I=e=>!!(e[O]||e.$or),L=e=>({[O]:Object.keys(e).map(t=>({[t]:e[t]}))});function P(e,r,{auto:i=!0}={}){let u=e=>{if(n(e)){let t={keyId:null,pattern:e};return i&&(t.searcher=B(e,r)),t}let o=Object.keys(e),c=!!e[R];if(!c&&o.length>1&&!I(e))return u(L(e));if(!t(e)&&s(e)&&!I(e)){let t=c?e[R]:o[0],s=c?e.$val:e[t];if(!n(s))throw Error(`Invalid value for key ${t}`);let u={keyId:f(t),pattern:s};return i&&(u.searcher=B(s,r)),u}let a={children:[],operator:o[0]};return o.forEach(r=>{let n=e[r];t(n)&&n.forEach(e=>{a.children.push(u(e))})}),a};return I(e)||(e=L(e)),u(e)}function $(e,{ignoreFieldNorm:t=g.ignoreFieldNorm}){let r=1;return e.forEach(({key:e,norm:n,score:i})=>{let s=e?e.weight:null;r*=Math.pow(0===i&&s?Number.EPSILON:i,(s||1)*(t?1:n))}),r}class z{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){let t=this.heap;for(;e>0;){let r=e-1>>1;if(t[e].score<=t[r].score)break;let n=t[e];t[e]=t[r],t[r]=n,e=r}}_sinkDown(e){let t=this.heap,r=t.length,n=e;do{let i=2*(e=n)+1,s=2*e+2;if(i<r&&t[i].score>t[n].score&&(n=i),s<r&&t[s].score>t[n].score&&(n=s),n!==e){let r=t[e];t[e]=t[n],t[n]=r}}while(n!==e)}}function N(e,t){let r=e.matches;t.matches=[],u(r)&&r.forEach(e=>{if(!u(e.indices)||!e.indices.length)return;let{indices:r,value:n}=e,i={indices:r,value:n};e.key&&(i.key=e.key.src),e.idx>-1&&(i.refIndex=e.idx),t.matches.push(i)})}function T(e,t){t.score=e.score}let U=/\b\w+\b/g;function V({isCaseSensitive:e=!1,ignoreDiacritics:t=!1}={}){return{tokenize:r=>(e||(r=r.toLowerCase()),t&&(r=x(r)),r.match(U)||[])}}function q(e,t){for(let[r,n]of e.terms){let i=n.filter(e=>e.docIdx!==t),s=n.length-i.length;s>0&&(e.fieldCount-=s,e.df.set(r,(e.df.get(r)||0)-s),0===i.length?(e.terms.delete(r),e.df.delete(r)):e.terms.set(r,i))}}class W{constructor(e,t,r){this.options={...g,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new l(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,r),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;let t=B(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof m))throw Error("Incorrect 'index' type");if(this._myIndex=t||y(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=V({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics});this._invertedIndex=function(e,t,r){let n=new Map,i=new Map,s=0;function u(e,t,u,o){let c=r.tokenize(e);if(!c.length)return;s++;let a=new Map;for(let e of c)a.set(e,(a.get(e)||0)+1);for(let[e,r]of a){let s={docIdx:t,keyIdx:u,subIdx:o,tf:r},c=n.get(e);c||(c=[],n.set(e,c)),c.push(s),i.set(e,(i.get(e)||0)+1)}}for(let r of e){let{i:e,v:n,$:i}=r;if(void 0!==n){u(n,e,-1,-1);continue}if(i)for(let r=0;r<t;r++){let t=i[r];if(t)if(Array.isArray(t))for(let n of t)u(n.v,e,r,n.i??-1);else u(t.v,e,r,-1)}}return{terms:n,fieldCount:s,df:i}}(this._myIndex.records,this._myIndex.keys.length,e)}}add(e){if(u(e)&&(this._docs.push(e),this._myIndex.add(e),this._invertedIndex)){let e=this._myIndex.records[this._myIndex.records.length-1],t=V({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics});!function(e,t,r,n){let{i:i,v:s,$:u}=t;function o(t,r,s){let u=n.tokenize(t);if(!u.length)return;e.fieldCount++;let o=new Map;for(let e of u)o.set(e,(o.get(e)||0)+1);for(let[t,n]of o){let u={docIdx:i,keyIdx:r,subIdx:s,tf:n},o=e.terms.get(t);o||(o=[],e.terms.set(t,o)),o.push(u),e.df.set(t,(e.df.get(t)||0)+1)}}if(void 0!==s)return o(s,-1,-1);if(u)for(let e=0;e<r;e++){let t=u[e];if(t)if(Array.isArray(t))for(let r of t)o(r.v,e,r.i??-1);else o(t.v,e,-1)}}(this._invertedIndex,e,this._myIndex.keys.length,t)}}remove(e=()=>!1){let t=[],r=[];for(let n=0,i=this._docs.length;n<i;n+=1)e(this._docs[n],n)&&(t.push(this._docs[n]),r.push(n));if(r.length){if(this._invertedIndex)for(let e of r)q(this._invertedIndex,e);for(let e=r.length-1;e>=0;e-=1)this._docs.splice(r[e],1);this._myIndex.removeAll(r)}return t}removeAt(e){this._invertedIndex&&q(this._invertedIndex,e);let t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),t}getIndex(){return this._myIndex}search(e,t){let r,{limit:s=-1}=t||{},{includeMatches:u,includeScore:o,shouldSort:c,sortFn:a,ignoreFieldNorm:l}=this.options;if(n(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return i(s)&&s>-1&&(e=e.slice(0,s)),e}if(i(s)&&s>0&&n(e)){let t=new z(s);n(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:l}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:l}),r=t.extractSorted(a)}else!function(e,{ignoreFieldNorm:t=g.ignoreFieldNorm}){e.forEach(e=>{e.score=$(e.matches,{ignoreFieldNorm:t})})}(r=n(e)?n(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),{ignoreFieldNorm:l}),c&&r.sort(a),i(s)&&s>-1&&(r=r.slice(0,s));return function(e,t,{includeMatches:r=g.includeMatches,includeScore:n=g.includeScore}={}){let i=[];return r&&i.push(N),n&&i.push(T),e.map(e=>{let{idx:r}=e,n={item:t[r],refIndex:r};return i.length&&i.forEach(t=>{t(e,n)}),n})}(r,this._docs,{includeMatches:u,includeScore:o})}_searchStringList(e,{heap:t,ignoreFieldNorm:r}={}){let n=this._getSearcher(e),{records:i}=this._myIndex,s=t?null:[];return i.forEach(({v:e,i:i,n:o})=>{if(!u(e))return;let{isMatch:c,score:a,indices:l}=n.searchIn(e);if(c){let n={item:e,idx:i,matches:[{score:a,value:e,norm:o,indices:l}]};t?(n.score=$(n.matches,{ignoreFieldNorm:r}),t.shouldInsert(n.score)&&t.insert(n)):s.push(n)}}),s}_searchLogical(e){let t=P(e,this.options),r=(e,t,n)=>{if(!("children"in e)){let r,{keyId:i,searcher:s}=e;return(null===i?(r=[],this._myIndex.keys.forEach((e,n)=>{r.push(...this._findMatches({key:e,value:t[n],searcher:s}))})):r=this._findMatches({key:this._keyStore.get(i),value:this._myIndex.getValueForItemAtKeyId(t,i),searcher:s}),r&&r.length)?[{idx:n,item:t,matches:r}]:[]}let{children:i,operator:s}=e,u=[];for(let e=0,o=i.length;e<o;e+=1){let o=r(i[e],t,n);if(o.length)u.push(...o);else if(s===O)return[]}return u},n=this._myIndex.records,i=new Map,s=[];return n.forEach(({$:e,i:n})=>{if(u(e)){let u=r(t,e,n);u.length&&(i.has(n)||(i.set(n,{idx:n,item:e,matches:[]}),s.push(i.get(n))),u.forEach(({matches:e})=>{i.get(n).matches.push(...e)}))}}),s}_searchObjectList(e,{heap:t,ignoreFieldNorm:r}={}){let n=this._getSearcher(e),{keys:i,records:s}=this._myIndex,o=t?null:[];return s.forEach(({$:e,i:s})=>{if(!u(e))return;let c=[],a=!1,l=!1;if(i.forEach((t,r)=>{let i=this._findMatches({key:t,value:e[r],searcher:n});i.length?(c.push(...i),i[0].hasInverse&&(l=!0)):a=!0}),(!l||!a)&&c.length){let n={idx:s,item:e,matches:c};t?(n.score=$(n.matches,{ignoreFieldNorm:r}),t.shouldInsert(n.score)&&t.insert(n)):o.push(n)}}),o}_findMatches({key:e,value:r,searcher:n}){if(!u(r))return[];let i=[];if(t(r))r.forEach(({v:t,i:r,n:s})=>{if(!u(t))return;let{isMatch:o,score:c,indices:a,hasInverse:l}=n.searchIn(t);o&&i.push({score:c,key:e,value:t,idx:r,norm:s,indices:a,hasInverse:l})});else{let{v:t,n:s}=r,{isMatch:u,score:o,indices:c,hasInverse:a}=n.searchIn(t);u&&i.push({score:o,key:e,value:t,norm:s,indices:c,hasInverse:a})}return i}}W.version="7.3.0",W.createIndex=y,W.parseIndex=function(e,{getFn:t=g.getFn,fieldNormWeight:r=g.fieldNormWeight}={}){let{keys:n,records:i}=e,s=new m({getFn:t,fieldNormWeight:r});return s.setKeys(n),s.setIndexRecords(i),s},W.config=g,W.match=function(e,t,r){return B(e,{...g,...r}).searchIn(t)},W.parseQuery=P,j(class{constructor(e,{isCaseSensitive:t=g.isCaseSensitive,ignoreDiacritics:r=g.ignoreDiacritics,includeMatches:n=g.includeMatches,minMatchCharLength:i=g.minMatchCharLength,ignoreLocation:s=g.ignoreLocation,findAllMatches:u=g.findAllMatches,location:o=g.location,threshold:c=g.threshold,distance:a=g.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:r,includeMatches:n,minMatchCharLength:i,findAllMatches:u,ignoreLocation:s,location:o,threshold:c,distance:a},e=t?e:e.toLowerCase(),e=r?x(e):e,this.pattern=e,this.query=function(e,t={}){return e.replace(/\\\|/g,"\0").split("|").map(e=>{let r=(function(e){let t=[],r=e.length,n=0;for(;n<r;){for(;n<r&&" "===e[n];)n++;if(n>=r)break;let i=n;for(;i<r&&" "!==e[i]&&'"'!==e[i];)i++;if(i<r&&'"'===e[i]){for(i++;i<r;){if('"'===e[i]){let t=i+1;if(t>=r||" "===e[t]){i++;break}if("$"===e[t]&&(t+1>=r||" "===e[t+1])){i+=2;break}}i++}t.push(e.substring(n,i)),n=i}else{for(;i<r&&" "!==e[i];)i++;t.push(e.substring(n,i)),n=i}}return t})(e.replace(/\u0000/g,"|").trim()).filter(e=>e&&!!e.trim()),n=[];for(let e=0,i=r.length;e<i;e+=1){let i=r[e],s=!1,u=-1;for(;!s&&++u<D;){let e=k[u],r=e.isMultiMatch(i);r&&(n.push(new e(r,t)),s=!0)}if(!s)for(u=-1;++u<D;){let e=k[u],r=e.isSingleMatch(i);if(r){n.push(new e(r,t));break}}}return n})}(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:r,isCaseSensitive:n,ignoreDiacritics:i}=this.options;e=n?e:e.toLowerCase(),e=i?x(e):e;let s=0,u=[],o=0,c=!1;for(let n=0,i=t.length;n<i;n+=1){let i=t[n];u.length=0,s=0,c=!1;for(let t=0,n=i.length;t<n;t+=1){let n=i[t],{isMatch:a,indices:l,score:h}=n.search(e);if(a){s+=1,o+=h;let e=n.constructor.type;e.startsWith("inverse")&&(c=!0),r&&(F.has(e)?u.push(...l):u.push(l))}else{o=0,s=0,u.length=0,c=!1;break}}if(s){let e={isMatch:!0,score:o/s};return c&&(e.hasInverse=!0),r&&(e.indices=v(u)),e}}return{isMatch:!1,score:1}}}),j(class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=V({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics});const r=this.analyzer.tokenize(e),{df:n,fieldCount:i}=t._invertedIndex;for(const e of(this.termSearchers=[],this.idfWeights=[],r)){this.termSearchers.push(new E(e,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));const r=n.get(e)||0,s=Math.log(1+(i-r+.5)/(r+.5));this.idfWeights.push(s)}}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};let t=[],r=0,n=0,i=0;for(let s=0;s<this.termSearchers.length;s++){let u=this.termSearchers[s].searchIn(e),o=this.idfWeights[s];n+=o,u.isMatch&&(i++,r+=o*(1-u.score),u.indices&&t.push(...u.indices))}if(0===i)return{isMatch:!1,score:1};let s={isMatch:!0,score:Math.max(.001,n>0?1-r/n:0)};return this.options.includeMatches&&t.length&&(s.indices=v(t)),s}}),W.use=function(...e){e.forEach(e=>j(e))},e.s(["default",0,W])},922088,e=>{e.v(t=>Promise.all(["static/chunks/0d-53ws8ezr.b.js"].map(t=>e.l(t))).then(()=>t(69466)))},84973,e=>{e.v(t=>Promise.all(["static/chunks/06.0rr3vc.77j.js"].map(t=>e.l(t))).then(()=>t(609403)))},574372,e=>{e.v(t=>Promise.all(["static/chunks/167~e_c5qi8o2.js"].map(t=>e.l(t))).then(()=>t(318135)))},732137,e=>{e.v(t=>Promise.all(["static/chunks/039a4i2lrpg48.js","static/chunks/0ep-qrl_zzch8.js","static/chunks/17oc2l.ekcs8b.css"].map(t=>e.l(t))).then(()=>t(461834)))}]);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tower-studio",
3
- "version": "0.2.25",
3
+ "version": "0.2.27",
4
4
  "description": "AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",
5
5
  "bin": {
6
6
  "tower": "bin/tower.mjs"
@@ -26434,19 +26434,28 @@ function resolveCommandPathSync(command, platform = process.platform, exec = def
26434
26434
  }
26435
26435
  return command;
26436
26436
  }
26437
- function resolveSdkExecutable(command, platform = process.platform, readFile = (p2) => (0, import_node_fs2.readFileSync)(p2, "utf-8")) {
26437
+ function resolveSdkExecutable(command, platform = process.platform, readFile = (p2) => (0, import_node_fs2.readFileSync)(p2, "utf-8"), fileExists = (p2) => (0, import_node_fs2.existsSync)(p2)) {
26438
26438
  if (!isWindows(platform)) return command;
26439
26439
  const ext = import_node_path2.default.extname(command).toLowerCase();
26440
26440
  if (ext !== ".cmd" && ext !== ".bat") return command;
26441
+ const dir = import_node_path2.default.win32.dirname(command);
26441
26442
  try {
26442
26443
  const shim = readFile(command);
26443
26444
  const match = shim.match(/%~?dp0%[\\/]?([^"]+?\.(?:js|mjs|cjs))/i);
26444
26445
  if (match) {
26445
- const rel = match[1].replace(/\//g, "\\");
26446
- return import_node_path2.default.win32.resolve(import_node_path2.default.win32.dirname(command), rel);
26446
+ const resolved = import_node_path2.default.win32.resolve(dir, match[1].replace(/\//g, "\\"));
26447
+ if (fileExists(resolved)) return resolved;
26447
26448
  }
26448
26449
  } catch {
26449
26450
  }
26451
+ const guess = import_node_path2.default.win32.join(
26452
+ dir,
26453
+ "node_modules",
26454
+ "@anthropic-ai",
26455
+ "claude-code",
26456
+ "cli.js"
26457
+ );
26458
+ if (fileExists(guess)) return guess;
26450
26459
  return command;
26451
26460
  }
26452
26461
  async function resolveSpawnTarget(command, args, opts = {}) {
@@ -49192,13 +49201,13 @@ async function getArchivedTasks(projectId) {
49192
49201
  }
49193
49202
  async function checkWorktreeClean(taskId) {
49194
49203
  const { execFileSync: execFileSync5 } = await import("child_process");
49195
- const { existsSync: existsSync9 } = await import("fs");
49204
+ const { existsSync: existsSync10 } = await import("fs");
49196
49205
  const task = await db2.task.findUnique({ where: { id: taskId } });
49197
49206
  const execution = await db2.taskExecution.findFirst({
49198
49207
  where: { taskId },
49199
49208
  orderBy: { createdAt: "desc" }
49200
49209
  });
49201
- if (!execution?.worktreePath || !existsSync9(execution.worktreePath)) {
49210
+ if (!execution?.worktreePath || !existsSync10(execution.worktreePath)) {
49202
49211
  return { clean: true, files: [], hasCommits: false, lastCommitMessage: null, commitLog: [], hasWorktree: false };
49203
49212
  }
49204
49213
  const cwd = execution.worktreePath;
@@ -49248,12 +49257,12 @@ async function checkWorktreeClean(taskId) {
49248
49257
  }
49249
49258
  async function commitWorktreeChanges(taskId, message) {
49250
49259
  const { execFileSync: execFileSync5 } = await import("child_process");
49251
- const { existsSync: existsSync9 } = await import("fs");
49260
+ const { existsSync: existsSync10 } = await import("fs");
49252
49261
  const execution = await db2.taskExecution.findFirst({
49253
49262
  where: { taskId },
49254
49263
  orderBy: { createdAt: "desc" }
49255
49264
  });
49256
- if (!execution?.worktreePath || !existsSync9(execution.worktreePath)) {
49265
+ if (!execution?.worktreePath || !existsSync10(execution.worktreePath)) {
49257
49266
  throw new Error("No active worktree for this task");
49258
49267
  }
49259
49268
  const cwd = execution.worktreePath;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tower-studio",
3
- "version": "0.2.25",
3
+ "version": "0.2.27",
4
4
  "description": "AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",
5
5
  "bin": {
6
6
  "tower": "bin/tower.mjs"
@@ -1,4 +0,0 @@
1
- module.exports=[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"))},980738,(e,t,r)=>{t.exports=e.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},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"))},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"))},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"))},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"]),s=/^c[a-z0-9]{20,30}$/;e.s(["requireLocalhost",0,function(e){let s=e.headers.get("x-forwarded-for");if(s&&!s.split(",").map(e=>e.trim()).every(e=>n.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 s.test(e)?null:t.NextResponse.json({error:"Invalid projectId format"},{status:400})},"validateTaskId",0,function(e){return s.test(e)?null:t.NextResponse.json({error:"Invalid taskId format"},{status:400})}])},769310,e=>{"use strict";var t=e.i(902157),r=e.i(874533),n=e.i(750227);function s(e=process.platform){return"win32"===e}function a(e){let t=e.replace(/\r\n|\r|\n/g," ");if(!t.length)return'""';let r=t.replace(/"/g,'""');return/[\s"&<>|^()]/.test(r)?`"${r}"`:r}let i=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function o(e,t={}){let r=t.cwd??process.cwd(),a=t.env??process.env,i=t.platform??process.platform;if(e.includes("/")||e.includes("\\")){let t=n.default.isAbsolute(e)?e:n.default.resolve(r,e);return await p(t,i)?t:null}let l=a.PATH??a.Path??"",c=s(i)?";":":",d=l.split(c).filter(Boolean),u=s(i)?(a.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],m=s(i)&&n.default.extname(e).length>0;for(let t of d)for(let r of s(i)?m?[n.default.join(t,e)]:u.map(r=>n.default.join(t,`${e}${r}`)):[n.default.join(t,e)])if(await p(r,i))return r;return null}let l=e=>(0,r.execSync)(e,{encoding:"utf-8",timeout:5e3});function c(e,t=process.platform,a=l){if(n.default.extname(e)||e.includes("/")||e.includes("\\"))return e;if(!s(t)){try{let t=(0,r.execFileSync)("which",[e],{encoding:"utf-8",timeout:5e3}).trim();if(t)return t}catch{}return e}try{let t=a(`where ${e}`).trim().split("\n").map(e=>e.trim()).filter(Boolean),r=t.find(e=>/\.(cmd|bat|exe)$/i.test(e));if(r)return r;if(t.length>0)return t[0]}catch{}return e}async function d(e,t,r={}){let n=r.env??process.env,s=r.platform??process.platform;return u(await o(e,r)??e,t,n,s)}function u(e,t,r,i){if(!s(i))return{command:e,args:t};let o=n.default.extname(e).toLowerCase();return".cmd"===o||".bat"===o||".com"===o?{command:r.ComSpec||"cmd.exe",args:["/d","/s","/c",[a(e),...t.map(a)].join(" ")]}:{command:e,args:t}}async function p(e,r=process.platform){try{return await t.promises.access(e,s(r)?t.constants.F_OK:t.constants.X_OK),!0}catch{return!1}}async function m(e=process.platform){return s(e)?h():f()}async function f(){try{let e=await t.promises.readFile("/etc/shells","utf-8"),r=[],s=new Map;for(let t of e.split("\n")){let e=t.replace(/#.*/,"").trim();if(!e||!e.startsWith("/")||!await p(e))continue;let a=n.default.basename(e),i=s.get(a)??0;s.set(a,i+1),i>0&&(a=`${a} (${i+1})`),r.push({name:a,path:e})}return r}catch{let e=[];for(let t of["/bin/zsh","/bin/bash","/bin/sh"])await p(t)&&e.push({name:n.default.basename(t),path:t});return e}}async function h(){let e=[],t=[],r=await o("git",{platform:"win32"});if(r){let e=n.default.resolve(n.default.dirname(r),"..","..");t.push(n.default.join(e,"bin","bash.exe"),n.default.join(e,"usr","bin","bash.exe"))}for(let e of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?n.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))t.push(n.default.join(e,"Git","bin","bash.exe"),n.default.join(e,"Git","usr","bin","bash.exe"));let s=process.env.USERPROFILE??"";for(let r of(s&&t.push(n.default.join(s,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&t.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),t))if(await p(r,"win32")){e.push({name:"Git Bash",path:r});break}let a=await o("pwsh",{platform:"win32"});a&&e.push({name:"PowerShell",path:a});let i=process.env.windir??"C:\\WINDOWS",l=n.default.join(i,"System32","WindowsPowerShell","v1.0","powershell.exe");await p(l,"win32")&&e.push({name:"Windows PowerShell",path:l});let c=process.env.ComSpec??n.default.join(i,"System32","cmd.exe");return await p(c,"win32")&&e.push({name:"Command Prompt",path:c}),e}let v=[{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 _(e=process.platform){if("darwin"===e){let t=[];for(let r of v){let n=await p(`/Applications/${r.bundleName}.app`,e);t.push({name:r.name,value:r.bundleName,installed:n})}return t}if(s(e)){let t=[],r=await o("wt",{platform:e});return r&&t.push({name:"Windows Terminal",value:r,installed:!0}),t}return[]}let w=[{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"}];async function S(e=process.platform){let t=[];for(let r of w){let n=!!await o(r.command,{platform:e});t.push({name:r.name,command:r.command,installed:n})}return t}e.s(["detectEditors",0,S,"detectShells",0,m,"detectTerminalApps",0,_,"ensurePathInEnv",0,function(e,t=process.platform){let r=s(t)?"Path":"PATH";return(e.PATH??e.Path??"").length>0?e:{...e,[r]:function(e=process.platform){return s(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"}(t)}},"resolveCommandPath",0,o,"resolveCommandPathSync",0,c,"resolveSdkExecutable",0,function(e,r=process.platform,a=e=>(0,t.readFileSync)(e,"utf-8")){if(!s(r))return e;let i=n.default.extname(e).toLowerCase();if(".cmd"!==i&&".bat"!==i)return e;try{let t=a(e).match(/%~?dp0%[\\/]?([^"]+?\.(?:js|mjs|cjs))/i);if(t){let r=t[1].replace(/\//g,"\\");return n.default.win32.resolve(n.default.win32.dirname(e),r)}}catch{}return e},"resolveSpawnTarget",0,d,"resolveSpawnTargetSync",0,function(e,t,r=process.platform,n){return u(c(e,r,n),t,process.env,r)},"stripClaudeNestingEnv",0,function(e){let t={...e};for(let e of i)delete t[e];return t}])},519895,e=>{"use strict";var t=e.i(980738),r=e.i(769310);class n{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(e,s,a,i,o,l,c,d,u){this.taskId=e,this._onData=o,this._onIdle=d??null,this._idleThresholdMs=Math.max(u??18e4,18e4);const p={...(0,r.stripClaudeNestingEnv)((0,r.ensurePathInEnv)(process.env)),TERM:"xterm-color",...c};try{this._pty=t.spawn(s,a,{name:"xterm-color",cols:80,rows:24,cwd:i,env:p})}catch(e){throw console.error(`[pty] spawn failed: command="${s}", cwd="${i}", PATH="${p.PATH?.slice(0,200)}"`),e}this._pty.onData(e=>{this._buffer+=e,this._buffer.length>n.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-n.BUFFER_MAX)),this._resetIdleTimer(),this._onData(e)}),this._pty.onExit(({exitCode:e,signal:t})=>{for(let r of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),l(e,t),this._exitListeners))r(e)}),this._resetIdleTimer()}_resetIdleTimer(){this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),null===this._onIdle||this.killed||this._idleFired||(this._idleTimer=setTimeout(()=>{this._idleFired=!0,this._onIdle?.()},this._idleThresholdMs))}setDataListener(e){this._onData=e}setExitListener(e){this._exitListeners=[e]}write(e){this.killed||(this._resetIdleTimer(),this._pty.write(e))}resize(e,t){this.killed||this._pty.resize(e,t)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}kill(e){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(e)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}}e.s(["PtySession",0,n])},83721,e=>{"use strict";var t=e.i(519895),r=e.i(769310);let n=globalThis;n.__ptySessions||(n.__ptySessions=new Map);let s=n.__ptySessions;function a(e){let t=s.get(e);t&&(s.delete(e),t.disconnectTimer&&(clearTimeout(t.disconnectTimer),t.disconnectTimer=null),t.kill())}function i(){for(let e of s.keys())a(e)}let o=globalThis;"phase-production-build"===process.env.NEXT_PHASE||o.__ptySignalHandlersRegistered||(o.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),i()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),i()})),e.s(["createSession",0,function(e,n,i,o,l,c,d,u,p){a(e);let{command:m,args:f}=(0,r.resolveSpawnTargetSync)(n,i),h=new t.PtySession(e,m,f,o,l,c,d,u,p);return s.set(e,h),h},"destroySession",0,a,"getSession",0,function(e){return s.get(e)}])},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__"])},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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}})},932583,e=>{"use strict";var t=e.i(921675),r=e.i(843793);async function n(e,t={}){let s=t.report,a=s?JSON.stringify(s):null;await r.db.providerConnection.upsert({where:{provider:e},create:{provider:e,lastTestedAt:new Date,testOk:!0,version:t.version??null,mcpInstalled:s?.mcp?.ok??!1,hooksInstalled:s?.hooks?.ok??!1,skillsInstalled:s?.skill?.ok??!1,installLog:a},update:{lastTestedAt:new Date,testOk:!0,version:t.version??null,mcpInstalled:s?.mcp?.ok??!1,hooksInstalled:s?.hooks?.ok??!1,skillsInstalled:s?.skill?.ok??!1,installLog:a}})}async function s(e,t={}){await r.db.providerConnection.upsert({where:{provider:e},create:{provider:e,lastTestedAt:new Date,testOk:!1,installLog:t.reason??null},update:{lastTestedAt:new Date,testOk:!1,mcpInstalled:!1,hooksInstalled:!1,skillsInstalled:!1,installLog:t.reason??null}})}async function a(e){let t=await r.db.providerConnection.findUnique({where:{provider:e}});return!!t&&t.testOk}async function i(){return(await r.db.providerConnection.findMany({where:{testOk:!0},select:{provider:!0},orderBy:{provider:"asc"}})).map(e=>e.provider)}async function o(){return r.db.providerConnection.findMany({select:{provider:!0,lastTestedAt:!0,testOk:!0,version:!0,mcpInstalled:!0,hooksInstalled:!0,skillsInstalled:!0,installLog:!0},orderBy:{provider:"asc"}})}(0,e.i(86708).ensureServerEntryExports)([n,s,a,i,o]),(0,t.registerServerReference)(n,"605f84ecae0f5d5589d9e93ace2656bd8a982f9b62",null),(0,t.registerServerReference)(s,"6095874992c9108022fc6467c3478f885f7403aae2",null),(0,t.registerServerReference)(a,"4021479b2b9e5af3e10a7c7b1b6aa944b5da8489ce",null),(0,t.registerServerReference)(i,"006ca59784a351abea267267a17855ffbc48f7c661",null),(0,t.registerServerReference)(o,"00ec817a4b36f91ba93798352f03b765a27a310a47",null),e.s(["getConnectedProviders",0,i,"isProviderConnected",0,a,"markProviderConnected",0,n,"markProviderDisconnected",0,s])},89428,e=>{"use strict";var t=e.i(843793),r=e.i(279711);class n extends Error{code;provider;constructor(e,t,r){super(r),this.code=e,this.provider=t,this.name="AiProviderError"}}var s=e.i(932583);let a="claude",i="请到 Settings → Test Connection 测试该 Provider 后再使用(未注入的 CLI 不能被插槽选中)";async function o(e){return t.db.aiCapabilityConfig.findUnique({where:{slot:e}})}async function l(e){if(e){if(await (0,s.isProviderConnected)(e))return e;throw new n("CLI_NOT_FOUND",e,`Provider "${e}" 未连接:${i}`)}let t=await (0,s.getConnectedProviders)();if(0===t.length)throw new n("CLI_NOT_FOUND",a,`没有任何 AI Provider 已连接:${i}`);return t.includes(a)?a:t[0]}async function c(e){let t=await o(e),s=t?.model??void 0,a=await l(t?.provider??null),i=r.providerRegistry.get(a);if(!i)throw new n("CLI_NOT_FOUND",a,`Provider "${a}" 未注册`);let c=i.cli?.adapter;if(!c)throw new n("UNSUPPORTED_MODE",a,`Provider "${a}" 不支持 CLI 模式`);return{adapter:c,provider:i,model:s}}e.s(["resolveCliAdapter",0,c],89428)},224389,e=>{"use strict";var t=e.i(765876),r=e.i(675896),n=e.i(959160),s=e.i(97944),a=e.i(86757),i=e.i(204144),o=e.i(273436),l=e.i(743641),c=e.i(813766),d=e.i(840884),u=e.i(498814),p=e.i(780006),m=e.i(544432),f=e.i(772005),h=e.i(450223),v=e.i(193695);e.i(628400);var _=e.i(800071),w=e.i(855104),S=e.i(198840),y=e.i(921675),g=e.i(254799),b=e.i(83721),x=e.i(572173),T=e.i(89428),E=e.i(658053);async function R(t){(0,b.destroySession)(E.ASSISTANT_SESSION_KEY);let{adapter:r}=await (0,T.resolveCliAdapter)("terminal"),n=await (0,x.readConfigValue)("assistant.systemPrompt","You are Tower Assistant, an AI operator for the Tower task management platform."),{getPackageRoot:s}=await e.A(901874),a=s(),i=["--allowedTools","mcp__tower__*","--append-system-prompt",n];t?i.push("--resume",t):i.push("--session-id",(0,g.randomUUID)());let o=r.buildSpawnArgs({taskId:E.ASSISTANT_SESSION_KEY,prompt:"",cwd:a,extraArgs:i});(0,b.createSession)(E.ASSISTANT_SESSION_KEY,o.command,o.args,a,()=>{},()=>{},o.env)}async function I(){(0,b.destroySession)(E.ASSISTANT_SESSION_KEY)}async function C(){let e=(0,b.getSession)(E.ASSISTANT_SESSION_KEY);return!e||e.killed?"idle":"running"}async function A(e){let t,r=(0,S.requireLocalhost)(e);if(r)return r;try{let r=await e.json().catch(()=>({}));r.sessionId&&"string"==typeof r.sessionId&&(t=r.sessionId)}catch{}try{return await R(t),w.NextResponse.json({ok:!0,sessionKey:E.ASSISTANT_SESSION_KEY,sessionId:t??null})}catch(t){let e=t instanceof Error?t.message:String(t);return w.NextResponse.json({error:e},{status:500})}}async function P(e){let t=(0,S.requireLocalhost)(e);return t||(await I(),w.NextResponse.json({ok:!0}))}async function k(e){let t=(0,S.requireLocalhost)(e);if(t)return t;let r=await C();return w.NextResponse.json({status:r})}(0,e.i(86708).ensureServerEntryExports)([R,I,C]),(0,y.registerServerReference)(R,"40bdc4303fefcc7e7c0834fe3a2aff23fbc24070af",null),(0,y.registerServerReference)(I,"008d8238d01119c790ae661e6b1c244340ba8678d7",null),(0,y.registerServerReference)(C,"00948756a69fc322bee4f86dc750c19eb2e4e5013e",null),e.s(["DELETE",0,P,"GET",0,k,"POST",0,A,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],442746);var N=e.i(442746);let O=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/internal/assistant/route",pathname:"/api/internal/assistant",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/internal/assistant/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:j,workUnitAsyncStorage:D,serverHooks:q}=O;async function L(e,t,n){n.requestMeta&&(0,s.setRequestMeta)(e,n.requestMeta),O.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/internal/assistant/route";w=w.replace(/\/index$/,"")||"/";let S=await O.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:g,nextConfig:b,parsedUrl:x,isDraftMode:T,prerenderManifest:E,routerServerContext:R,isOnDemandRevalidate:I,revalidateOnlyGenerated:C,resolvedPathname:A,clientReferenceManifest:P,serverActionsManifest:k}=S,N=(0,o.normalizeAppPath)(w),j=!!(E.dynamicRoutes[N]||E.routes[A]),D=async()=>((null==R?void 0:R.render404)?await R.render404(e,t,x,!1):t.end("This page could not be found"),null);if(j&&!T){let e=!!E.routes[A],t=E.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await D();throw new v.NoFallbackError}}let q=null;!j||O.isDev||T||(q="/index"===(q=A)?"/":q);let L=!0===O.isDev||!j,M=j&&!L;k&&P&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:P,serverActionsManifest:k});let U=e.method||"GET",H=(0,a.getTracer)(),F=H.getActiveScopeSpan(),$=!!(null==R?void 0:R.isWrappedByNextServer),W=!!(0,s.getRequestMeta)(e,"minimalMode"),B=(0,s.getRequestMeta)(e,"incrementalCache")||await O.getIncrementalCache(e,b,E,W);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let K={params:g,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:L,incrementalCache:B,cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>O.onRequestError(e,t,n,s,R)},sharedContext:{buildId:y}},G=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),Y=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let s,i=async e=>O.handle(Y,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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} ${w}`)}),o=async s=>{var a,o;let l=async({previousCacheEntry:r})=>{try{if(!W&&I&&C&&!r)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=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let l=K.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(G,X,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[h.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>=h.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:_.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await O.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:I})},!1,R),t}},c=await O.handleResponse({req:e,nextConfig:b,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:W});if(!j)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==_.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",I?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return W&&j||d.delete(h.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(G,X,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};$&&F?await o(F):(s=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:a.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof v.NoFallbackError||await O.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:I})},!1,R),j)throw t;return await (0,p.sendResponse)(G,X,new Response(null,{status:500})),null}}e.s(["handler",0,L,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:D})},"routeModule",0,O,"serverHooks",0,q,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,D],224389)},482848,e=>{e.v(e=>Promise.resolve().then(()=>e(874533)))},268548,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_util_0xr.y7p._.js"].map(t=>e.l(t))).then(()=>t(812057)))},144264,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_child_process_0pwkpv9._.js"].map(t=>e.l(t))).then(()=>t(233405)))},534777,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_util_0wtvqkc._.js"].map(t=>e.l(t))).then(()=>t(224361)))},200628,e=>{e.v(e=>Promise.resolve().then(()=>e(769310)))},901874,e=>{e.v(e=>Promise.resolve().then(()=>e(53674)))}];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__03j20vp._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[193695,(e,r,t)=>{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,t)=>{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,t)=>{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,t)=>{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,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},324725,(e,r,t)=>{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"))},750227,(e,r,t)=>{r.exports=e.x("node:path",()=>require("node:path"))},902157,(e,r,t)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,r,t)=>{r.exports=e.x("node:child_process",()=>require("node:child_process"))},660526,(e,r,t)=>{r.exports=e.x("node:os",()=>require("node:os"))},933919,(e,r,t)=>{r.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},522734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},192520,e=>{"use strict";let r;var t=e.i(750227),n=e.i(660526),s=e.i(902157);function o(){return r||(r=process.env.TOWER_DATA_DIR||(0,t.join)((0,n.homedir)(),".tower"),(0,s.existsSync)(r)||(0,s.mkdirSync)(r,{recursive:!0})),r}e.s(["getAssistantDir",0,function(){let e=(0,t.join)(o(),"assistant");return(0,s.existsSync)(e)||(0,s.mkdirSync)(e,{recursive:!0}),e},"getBackupsDir",0,function(){let e=(0,t.join)(o(),"backups");return(0,s.existsSync)(e)||(0,s.mkdirSync)(e,{recursive:!0}),e},"getExtensionsDir",0,function(){let e=(0,t.join)(o(),"extensions");return(0,s.existsSync)(e)||(0,s.mkdirSync)(e,{recursive:!0}),e},"getStorageDir",0,function(){let e=process.env.TOWER_STORAGE_DIR||function(){try{let e=(0,s.readFileSync)((0,t.join)(o(),"storage-location"),"utf-8").trim();return e.length>0?e:null}catch{return null}}(),r=e&&e.length>0?e:(0,t.join)(o(),"storage");return(0,s.existsSync)(r)||(0,s.mkdirSync)(r,{recursive:!0}),r},"getTowerDbPath",0,function(){let e;return(0,t.join)((e=(0,t.join)(o(),"database"),(0,s.existsSync)(e)||(0,s.mkdirSync)(e,{recursive:!0}),e),"tower.db")},"getTowerDir",0,o])},843793,e=>{"use strict";var r=e.i(933919);let t=globalThis.prisma??new r.PrismaClient({log:[]});process.on("SIGTERM",()=>{t.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{t.$disconnect().catch(()=>{})}),e.s(["db",0,t])},482819,(e,r,t)=>{"use strict";r.exports=e.r(583981).vendored["react-rsc"].ReactServerDOMTurbopackServer},921675,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"registerServerReference",{enumerable:!0,get:function(){return n.registerServerReference}});let n=e.r(482819)},86708,(e,r,t)=>{"use strict";function n(e){for(let r=0;r<e.length;r++){let t=e[r];if("function"!=typeof t)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof t}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ensureServerEntryExports",{enumerable:!0,get:function(){return n}})},932583,e=>{"use strict";var r=e.i(921675),t=e.i(843793);async function n(e,r={}){let s=r.report,o=s?JSON.stringify(s):null;await t.db.providerConnection.upsert({where:{provider:e},create:{provider:e,lastTestedAt:new Date,testOk:!0,version:r.version??null,mcpInstalled:s?.mcp?.ok??!1,hooksInstalled:s?.hooks?.ok??!1,skillsInstalled:s?.skill?.ok??!1,installLog:o},update:{lastTestedAt:new Date,testOk:!0,version:r.version??null,mcpInstalled:s?.mcp?.ok??!1,hooksInstalled:s?.hooks?.ok??!1,skillsInstalled:s?.skill?.ok??!1,installLog:o}})}async function s(e,r={}){await t.db.providerConnection.upsert({where:{provider:e},create:{provider:e,lastTestedAt:new Date,testOk:!1,installLog:r.reason??null},update:{lastTestedAt:new Date,testOk:!1,mcpInstalled:!1,hooksInstalled:!1,skillsInstalled:!1,installLog:r.reason??null}})}async function o(e){let r=await t.db.providerConnection.findUnique({where:{provider:e}});return!!r&&r.testOk}async function i(){return(await t.db.providerConnection.findMany({where:{testOk:!0},select:{provider:!0},orderBy:{provider:"asc"}})).map(e=>e.provider)}async function a(){return t.db.providerConnection.findMany({select:{provider:!0,lastTestedAt:!0,testOk:!0,version:!0,mcpInstalled:!0,hooksInstalled:!0,skillsInstalled:!0,installLog:!0},orderBy:{provider:"asc"}})}(0,e.i(86708).ensureServerEntryExports)([n,s,o,i,a]),(0,r.registerServerReference)(n,"605f84ecae0f5d5589d9e93ace2656bd8a982f9b62",null),(0,r.registerServerReference)(s,"6095874992c9108022fc6467c3478f885f7403aae2",null),(0,r.registerServerReference)(o,"4021479b2b9e5af3e10a7c7b1b6aa944b5da8489ce",null),(0,r.registerServerReference)(i,"006ca59784a351abea267267a17855ffbc48f7c661",null),(0,r.registerServerReference)(a,"00ec817a4b36f91ba93798352f03b765a27a310a47",null),e.s(["getConnectedProviders",0,i,"isProviderConnected",0,o,"markProviderConnected",0,n,"markProviderDisconnected",0,s])},482848,e=>{e.v(e=>Promise.resolve().then(()=>e(874533)))},268548,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_node_util_0xr.y7p._.js"].map(r=>e.l(r))).then(()=>r(812057)))},144264,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_child_process_0pwkpv9._.js"].map(r=>e.l(r))).then(()=>r(233405)))},534777,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_util_0wtvqkc._.js"].map(r=>e.l(r))).then(()=>r(224361)))},200628,e=>{e.v(e=>Promise.resolve().then(()=>e(769310)))}];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__05se6yk._.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"))},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"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},933919,(e,t,r)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},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"))},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"))},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"]),s=/^c[a-z0-9]{20,30}$/;e.s(["requireLocalhost",0,function(e){let s=e.headers.get("x-forwarded-for");if(s&&!s.split(",").map(e=>e.trim()).every(e=>n.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 s.test(e)?null:t.NextResponse.json({error:"Invalid projectId format"},{status:400})},"validateTaskId",0,function(e){return s.test(e)?null:t.NextResponse.json({error:"Invalid taskId format"},{status:400})}])},192520,e=>{"use strict";let t;var r=e.i(750227),n=e.i(660526),s=e.i(902157);function a(){return t||(t=process.env.TOWER_DATA_DIR||(0,r.join)((0,n.homedir)(),".tower"),(0,s.existsSync)(t)||(0,s.mkdirSync)(t,{recursive:!0})),t}e.s(["getAssistantDir",0,function(){let e=(0,r.join)(a(),"assistant");return(0,s.existsSync)(e)||(0,s.mkdirSync)(e,{recursive:!0}),e},"getBackupsDir",0,function(){let e=(0,r.join)(a(),"backups");return(0,s.existsSync)(e)||(0,s.mkdirSync)(e,{recursive:!0}),e},"getExtensionsDir",0,function(){let e=(0,r.join)(a(),"extensions");return(0,s.existsSync)(e)||(0,s.mkdirSync)(e,{recursive:!0}),e},"getStorageDir",0,function(){let e=process.env.TOWER_STORAGE_DIR||function(){try{let e=(0,s.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,s.existsSync)(t)||(0,s.mkdirSync)(t,{recursive:!0}),t},"getTowerDbPath",0,function(){let e;return(0,r.join)((e=(0,r.join)(a(),"database"),(0,s.existsSync)(e)||(0,s.mkdirSync)(e,{recursive:!0}),e),"tower.db")},"getTowerDir",0,a])},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}})},769310,e=>{"use strict";var t=e.i(902157),r=e.i(874533),n=e.i(750227);function s(e=process.platform){return"win32"===e}function a(e){let t=e.replace(/\r\n|\r|\n/g," ");if(!t.length)return'""';let r=t.replace(/"/g,'""');return/[\s"&<>|^()]/.test(r)?`"${r}"`:r}let i=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function o(e,t={}){let r=t.cwd??process.cwd(),a=t.env??process.env,i=t.platform??process.platform;if(e.includes("/")||e.includes("\\")){let t=n.default.isAbsolute(e)?e:n.default.resolve(r,e);return await p(t,i)?t:null}let l=a.PATH??a.Path??"",u=s(i)?";":":",c=l.split(u).filter(Boolean),d=s(i)?(a.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],m=s(i)&&n.default.extname(e).length>0;for(let t of c)for(let r of s(i)?m?[n.default.join(t,e)]:d.map(r=>n.default.join(t,`${e}${r}`)):[n.default.join(t,e)])if(await p(r,i))return r;return null}let l=e=>(0,r.execSync)(e,{encoding:"utf-8",timeout:5e3});function u(e,t=process.platform,a=l){if(n.default.extname(e)||e.includes("/")||e.includes("\\"))return e;if(!s(t)){try{let t=(0,r.execFileSync)("which",[e],{encoding:"utf-8",timeout:5e3}).trim();if(t)return t}catch{}return e}try{let t=a(`where ${e}`).trim().split("\n").map(e=>e.trim()).filter(Boolean),r=t.find(e=>/\.(cmd|bat|exe)$/i.test(e));if(r)return r;if(t.length>0)return t[0]}catch{}return e}async function c(e,t,r={}){let n=r.env??process.env,s=r.platform??process.platform;return d(await o(e,r)??e,t,n,s)}function d(e,t,r,i){if(!s(i))return{command:e,args:t};let o=n.default.extname(e).toLowerCase();return".cmd"===o||".bat"===o||".com"===o?{command:r.ComSpec||"cmd.exe",args:["/d","/s","/c",[a(e),...t.map(a)].join(" ")]}:{command:e,args:t}}async function p(e,r=process.platform){try{return await t.promises.access(e,s(r)?t.constants.F_OK:t.constants.X_OK),!0}catch{return!1}}async function m(e=process.platform){return s(e)?h():f()}async function f(){try{let e=await t.promises.readFile("/etc/shells","utf-8"),r=[],s=new Map;for(let t of e.split("\n")){let e=t.replace(/#.*/,"").trim();if(!e||!e.startsWith("/")||!await p(e))continue;let a=n.default.basename(e),i=s.get(a)??0;s.set(a,i+1),i>0&&(a=`${a} (${i+1})`),r.push({name:a,path:e})}return r}catch{let e=[];for(let t of["/bin/zsh","/bin/bash","/bin/sh"])await p(t)&&e.push({name:n.default.basename(t),path:t});return e}}async function h(){let e=[],t=[],r=await o("git",{platform:"win32"});if(r){let e=n.default.resolve(n.default.dirname(r),"..","..");t.push(n.default.join(e,"bin","bash.exe"),n.default.join(e,"usr","bin","bash.exe"))}for(let e of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?n.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))t.push(n.default.join(e,"Git","bin","bash.exe"),n.default.join(e,"Git","usr","bin","bash.exe"));let s=process.env.USERPROFILE??"";for(let r of(s&&t.push(n.default.join(s,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&t.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),t))if(await p(r,"win32")){e.push({name:"Git Bash",path:r});break}let a=await o("pwsh",{platform:"win32"});a&&e.push({name:"PowerShell",path:a});let i=process.env.windir??"C:\\WINDOWS",l=n.default.join(i,"System32","WindowsPowerShell","v1.0","powershell.exe");await p(l,"win32")&&e.push({name:"Windows PowerShell",path:l});let u=process.env.ComSpec??n.default.join(i,"System32","cmd.exe");return await p(u,"win32")&&e.push({name:"Command Prompt",path:u}),e}let y=[{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 b(e=process.platform){if("darwin"===e){let t=[];for(let r of y){let n=await p(`/Applications/${r.bundleName}.app`,e);t.push({name:r.name,value:r.bundleName,installed:n})}return t}if(s(e)){let t=[],r=await o("wt",{platform:e});return r&&t.push({name:"Windows Terminal",value:r,installed:!0}),t}return[]}let g=[{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"}];async function x(e=process.platform){let t=[];for(let r of g){let n=!!await o(r.command,{platform:e});t.push({name:r.name,command:r.command,installed:n})}return t}e.s(["detectEditors",0,x,"detectShells",0,m,"detectTerminalApps",0,b,"ensurePathInEnv",0,function(e,t=process.platform){let r=s(t)?"Path":"PATH";return(e.PATH??e.Path??"").length>0?e:{...e,[r]:function(e=process.platform){return s(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"}(t)}},"resolveCommandPath",0,o,"resolveCommandPathSync",0,u,"resolveSdkExecutable",0,function(e,r=process.platform,a=e=>(0,t.readFileSync)(e,"utf-8")){if(!s(r))return e;let i=n.default.extname(e).toLowerCase();if(".cmd"!==i&&".bat"!==i)return e;try{let t=a(e).match(/%~?dp0%[\\/]?([^"]+?\.(?:js|mjs|cjs))/i);if(t){let r=t[1].replace(/\//g,"\\");return n.default.win32.resolve(n.default.win32.dirname(e),r)}}catch{}return e},"resolveSpawnTarget",0,c,"resolveSpawnTargetSync",0,function(e,t,r=process.platform,n){return d(u(e,r,n),t,process.env,r)},"stripClaudeNestingEnv",0,function(e){let t={...e};for(let e of i)delete t[e];return t}])},519895,e=>{"use strict";var t=e.i(980738),r=e.i(769310);class n{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(e,s,a,i,o,l,u,c,d){this.taskId=e,this._onData=o,this._onIdle=c??null,this._idleThresholdMs=Math.max(d??18e4,18e4);const p={...(0,r.stripClaudeNestingEnv)((0,r.ensurePathInEnv)(process.env)),TERM:"xterm-color",...u};try{this._pty=t.spawn(s,a,{name:"xterm-color",cols:80,rows:24,cwd:i,env:p})}catch(e){throw console.error(`[pty] spawn failed: command="${s}", cwd="${i}", PATH="${p.PATH?.slice(0,200)}"`),e}this._pty.onData(e=>{this._buffer+=e,this._buffer.length>n.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-n.BUFFER_MAX)),this._resetIdleTimer(),this._onData(e)}),this._pty.onExit(({exitCode:e,signal:t})=>{for(let r of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),l(e,t),this._exitListeners))r(e)}),this._resetIdleTimer()}_resetIdleTimer(){this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),null===this._onIdle||this.killed||this._idleFired||(this._idleTimer=setTimeout(()=>{this._idleFired=!0,this._onIdle?.()},this._idleThresholdMs))}setDataListener(e){this._onData=e}setExitListener(e){this._exitListeners=[e]}write(e){this.killed||(this._resetIdleTimer(),this._pty.write(e))}resize(e,t){this.killed||this._pty.resize(e,t)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}kill(e){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(e)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}}e.s(["PtySession",0,n])},83721,e=>{"use strict";var t=e.i(519895),r=e.i(769310);let n=globalThis;n.__ptySessions||(n.__ptySessions=new Map);let s=n.__ptySessions;function a(e){let t=s.get(e);t&&(s.delete(e),t.disconnectTimer&&(clearTimeout(t.disconnectTimer),t.disconnectTimer=null),t.kill())}function i(){for(let e of s.keys())a(e)}let o=globalThis;"phase-production-build"===process.env.NEXT_PHASE||o.__ptySignalHandlersRegistered||(o.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),i()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),i()})),e.s(["createSession",0,function(e,n,i,o,l,u,c,d,p){a(e);let{command:m,args:f}=(0,r.resolveSpawnTargetSync)(n,i),h=new t.PtySession(e,m,f,o,l,u,c,d,p);return s.set(e,h),h},"destroySession",0,a,"getSession",0,function(e){return s.get(e)}])},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)"},"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 s(e){let t,r=e.match(/^git@([^:]+):(.+)$/);if(r)return{host:r[1],pathSegments:a(r[2]).split("/").filter(Boolean)};try{t=new URL(e)}catch{return null}return{host:t.hostname,pathSegments:a(decodeURIComponent(t.pathname)).split("/").filter(Boolean)}}function a(e){return e.replace(/\.git\/?$/,"")}e.s(["gitUrlToLocalPath",0,function(e){let t=e.trim();if(!t)return"";try{let e=s(t);if(!e)return"";let{host:a,pathSegments:i}=e;if("code.iflytek.com"===a){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"===a){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 a=s(r);if(!a)return"";let{host:i,pathSegments:o}=a,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),s=e.i(843793),a=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 s.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 s.db.systemConfig.upsert({where:{key:e},create:{key:e,value:JSON.stringify(t)},update:{value:JSON.stringify(t)}})}async function m(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 f(e){let t=await s.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]:a.CONFIG_DEFAULTS[t]?.defaultValue??null;return n}async function h(){return(0,o.detectShells)()}async function y(){return(0,o.detectTerminalApps)()}async function b(){return(0,o.detectEditors)()}async function g(){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,m,f,h,y,b,g,x]),(0,n.registerServerReference)(d,"6017e701bea76e287acb17c5152f2dd0adcd111f6b",null),(0,n.registerServerReference)(p,"606b722dc209663674ef752b15d7771f1e856e6987",null),(0,n.registerServerReference)(m,"4038649f70ecf76055867dc0b626910f6872581e5e",null),(0,n.registerServerReference)(f,"40237e4dbff3868f964dd9913f9a4ca85f84822c10",null),(0,n.registerServerReference)(h,"00d8a88025729a9388e2829708662821fbefae2e81",null),(0,n.registerServerReference)(y,"006f0ea45df94308818c3c4f2869b5d5073fa85032",null),(0,n.registerServerReference)(b,"0050c80ca24c3a14bac42853de9d48cf3455a8fd81",null),(0,n.registerServerReference)(g,"00d3b62ee4e064632dd2075cf9d7871dba8d7702c2",null),(0,n.registerServerReference)(x,"007e925c0232975a8b443f05178e2374e175d65f88",null),e.s(["getConfigValue",0,d]),r()}catch(e){r(e)}},!1)];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__06m1r8x._.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"]),i=/^c[a-z0-9]{20,30}$/;e.s(["requireLocalhost",0,function(e){let i=e.headers.get("x-forwarded-for");if(i&&!i.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 i.test(e)?null:t.NextResponse.json({error:"Invalid projectId format"},{status:400})},"validateTaskId",0,function(e){return i.test(e)?null:t.NextResponse.json({error:"Invalid taskId format"},{status:400})}])},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"))},980738,(e,t,r)=>{t.exports=e.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},933919,(e,t,r)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},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"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},769310,e=>{"use strict";var t=e.i(902157),r=e.i(874533),n=e.i(750227);function i(e=process.platform){return"win32"===e}function s(e){let t=e.replace(/\r\n|\r|\n/g," ");if(!t.length)return'""';let r=t.replace(/"/g,'""');return/[\s"&<>|^()]/.test(r)?`"${r}"`:r}let o=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function a(e,t={}){let r=t.cwd??process.cwd(),s=t.env??process.env,o=t.platform??process.platform;if(e.includes("/")||e.includes("\\")){let t=n.default.isAbsolute(e)?e:n.default.resolve(r,e);return await p(t,o)?t:null}let l=s.PATH??s.Path??"",c=i(o)?";":":",d=l.split(c).filter(Boolean),u=i(o)?(s.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],m=i(o)&&n.default.extname(e).length>0;for(let t of d)for(let r of i(o)?m?[n.default.join(t,e)]:u.map(r=>n.default.join(t,`${e}${r}`)):[n.default.join(t,e)])if(await p(r,o))return r;return null}let l=e=>(0,r.execSync)(e,{encoding:"utf-8",timeout:5e3});function c(e,t=process.platform,s=l){if(n.default.extname(e)||e.includes("/")||e.includes("\\"))return e;if(!i(t)){try{let t=(0,r.execFileSync)("which",[e],{encoding:"utf-8",timeout:5e3}).trim();if(t)return t}catch{}return e}try{let t=s(`where ${e}`).trim().split("\n").map(e=>e.trim()).filter(Boolean),r=t.find(e=>/\.(cmd|bat|exe)$/i.test(e));if(r)return r;if(t.length>0)return t[0]}catch{}return e}async function d(e,t,r={}){let n=r.env??process.env,i=r.platform??process.platform;return u(await a(e,r)??e,t,n,i)}function u(e,t,r,o){if(!i(o))return{command:e,args:t};let a=n.default.extname(e).toLowerCase();return".cmd"===a||".bat"===a||".com"===a?{command:r.ComSpec||"cmd.exe",args:["/d","/s","/c",[s(e),...t.map(s)].join(" ")]}:{command:e,args:t}}async function p(e,r=process.platform){try{return await t.promises.access(e,i(r)?t.constants.F_OK:t.constants.X_OK),!0}catch{return!1}}async function m(e=process.platform){return i(e)?h():f()}async function f(){try{let e=await t.promises.readFile("/etc/shells","utf-8"),r=[],i=new Map;for(let t of e.split("\n")){let e=t.replace(/#.*/,"").trim();if(!e||!e.startsWith("/")||!await p(e))continue;let s=n.default.basename(e),o=i.get(s)??0;i.set(s,o+1),o>0&&(s=`${s} (${o+1})`),r.push({name:s,path:e})}return r}catch{let e=[];for(let t of["/bin/zsh","/bin/bash","/bin/sh"])await p(t)&&e.push({name:n.default.basename(t),path:t});return e}}async function h(){let e=[],t=[],r=await a("git",{platform:"win32"});if(r){let e=n.default.resolve(n.default.dirname(r),"..","..");t.push(n.default.join(e,"bin","bash.exe"),n.default.join(e,"usr","bin","bash.exe"))}for(let e of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?n.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))t.push(n.default.join(e,"Git","bin","bash.exe"),n.default.join(e,"Git","usr","bin","bash.exe"));let i=process.env.USERPROFILE??"";for(let r of(i&&t.push(n.default.join(i,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&t.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),t))if(await p(r,"win32")){e.push({name:"Git Bash",path:r});break}let s=await a("pwsh",{platform:"win32"});s&&e.push({name:"PowerShell",path:s});let o=process.env.windir??"C:\\WINDOWS",l=n.default.join(o,"System32","WindowsPowerShell","v1.0","powershell.exe");await p(l,"win32")&&e.push({name:"Windows PowerShell",path:l});let c=process.env.ComSpec??n.default.join(o,"System32","cmd.exe");return await p(c,"win32")&&e.push({name:"Command Prompt",path:c}),e}let v=[{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 y(e=process.platform){if("darwin"===e){let t=[];for(let r of v){let n=await p(`/Applications/${r.bundleName}.app`,e);t.push({name:r.name,value:r.bundleName,installed:n})}return t}if(i(e)){let t=[],r=await a("wt",{platform:e});return r&&t.push({name:"Windows Terminal",value:r,installed:!0}),t}return[]}let w=[{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"}];async function x(e=process.platform){let t=[];for(let r of w){let n=!!await a(r.command,{platform:e});t.push({name:r.name,command:r.command,installed:n})}return t}e.s(["detectEditors",0,x,"detectShells",0,m,"detectTerminalApps",0,y,"ensurePathInEnv",0,function(e,t=process.platform){let r=i(t)?"Path":"PATH";return(e.PATH??e.Path??"").length>0?e:{...e,[r]:function(e=process.platform){return i(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"}(t)}},"resolveCommandPath",0,a,"resolveCommandPathSync",0,c,"resolveSdkExecutable",0,function(e,r=process.platform,s=e=>(0,t.readFileSync)(e,"utf-8")){if(!i(r))return e;let o=n.default.extname(e).toLowerCase();if(".cmd"!==o&&".bat"!==o)return e;try{let t=s(e).match(/%~?dp0%[\\/]?([^"]+?\.(?:js|mjs|cjs))/i);if(t){let r=t[1].replace(/\//g,"\\");return n.default.win32.resolve(n.default.win32.dirname(e),r)}}catch{}return e},"resolveSpawnTarget",0,d,"resolveSpawnTargetSync",0,function(e,t,r=process.platform,n){return u(c(e,r,n),t,process.env,r)},"stripClaudeNestingEnv",0,function(e){let t={...e};for(let e of o)delete t[e];return t}])},519895,e=>{"use strict";var t=e.i(980738),r=e.i(769310);class n{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(e,i,s,o,a,l,c,d,u){this.taskId=e,this._onData=a,this._onIdle=d??null,this._idleThresholdMs=Math.max(u??18e4,18e4);const p={...(0,r.stripClaudeNestingEnv)((0,r.ensurePathInEnv)(process.env)),TERM:"xterm-color",...c};try{this._pty=t.spawn(i,s,{name:"xterm-color",cols:80,rows:24,cwd:o,env:p})}catch(e){throw console.error(`[pty] spawn failed: command="${i}", cwd="${o}", PATH="${p.PATH?.slice(0,200)}"`),e}this._pty.onData(e=>{this._buffer+=e,this._buffer.length>n.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-n.BUFFER_MAX)),this._resetIdleTimer(),this._onData(e)}),this._pty.onExit(({exitCode:e,signal:t})=>{for(let r of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),l(e,t),this._exitListeners))r(e)}),this._resetIdleTimer()}_resetIdleTimer(){this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),null===this._onIdle||this.killed||this._idleFired||(this._idleTimer=setTimeout(()=>{this._idleFired=!0,this._onIdle?.()},this._idleThresholdMs))}setDataListener(e){this._onData=e}setExitListener(e){this._exitListeners=[e]}write(e){this.killed||(this._resetIdleTimer(),this._pty.write(e))}resize(e,t){this.killed||this._pty.resize(e,t)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}kill(e){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(e)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}}e.s(["PtySession",0,n])},83721,e=>{"use strict";var t=e.i(519895),r=e.i(769310);let n=globalThis;n.__ptySessions||(n.__ptySessions=new Map);let i=n.__ptySessions;function s(e){let t=i.get(e);t&&(i.delete(e),t.disconnectTimer&&(clearTimeout(t.disconnectTimer),t.disconnectTimer=null),t.kill())}function o(){for(let e of i.keys())s(e)}let a=globalThis;"phase-production-build"===process.env.NEXT_PHASE||a.__ptySignalHandlersRegistered||(a.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),o()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),o()})),e.s(["createSession",0,function(e,n,o,a,l,c,d,u,p){s(e);let{command:m,args:f}=(0,r.resolveSpawnTargetSync)(n,o),h=new t.PtySession(e,m,f,a,l,c,d,u,p);return i.set(e,h),h},"destroySession",0,s,"getSession",0,function(e){return i.get(e)}])},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])},248434,e=>{"use strict";var t=e.i(233405),r=e.i(522734),n=e.i(924868),i=e.i(814747),s=e.i(446786),o=e.i(50377);function a(e){return e.startsWith("~/")||"~"===e?i.default.join(s.default.homedir(),e.slice(1)):e}async function l(e,s,l,d){let u=a(e),p=i.default.join(u,".worktrees","task-"+s),m="task/"+s;if(!(0,r.existsSync)(u))throw Error(`项目本地路径不存在:${u}`);try{(0,t.execFileSync)("git",["rev-parse","--is-inside-work-tree"],{cwd:u,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{throw Error(`项目本地路径不是 Git 仓库,无法创建 worktree:${u}`)}await (0,n.mkdir)(i.default.join(u,".worktrees"),{recursive:!0});let f=(0,t.execFileSync)("git",["worktree","list","--porcelain"],{cwd:u,encoding:"utf-8",timeout:1e4}),h=i.default.normalize(p).replace(/\\/g,"/");if(f.split("\n").some(e=>e.startsWith("worktree ")&&e.slice(9).replace(/\\/g,"/")===h))return c(u,p,d),{worktreePath:p,worktreeBranch:m};if((0,r.existsSync)(p)&&(o.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${p}`),(0,t.execFileSync)("git",["worktree","remove",p,"--force"],{cwd:u,encoding:"utf-8",timeout:3e4})),(0,t.execFileSync)("git",["branch","--list",m],{cwd:u,encoding:"utf-8",timeout:5e3}).trim())(0,t.execFileSync)("git",["worktree","add",p,m],{cwd:u,encoding:"utf-8",timeout:3e4});else{let e=l;try{(0,t.execFileSync)("git",["rev-parse","--verify",l],{cwd:u,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,t.execFileSync)("git",["rev-parse","--verify",`origin/${l}`],{cwd:u,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),e=`origin/${l}`}catch{throw Error(`Base branch '${l}' does not exist locally or on remote. Available branches: `+(0,t.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:u,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,t.execFileSync)("git",["worktree","add","-b",m,p,e],{cwd:u,encoding:"utf-8",timeout:3e4})}return c(u,p,d),{worktreePath:p,worktreeBranch:m}}function c(e,t,n){let s=o.logger.create("worktree"),a=["node_modules",".next"];for(let o of n?["",n]:[""])if((0,r.existsSync)(i.default.join(e,o,"package.json")))for(let n of a){let a=o?i.default.join(o,n):n,l=i.default.join(e,a),c=i.default.join(t,a);if((0,r.existsSync)(l)){try{(0,r.lstatSync)(c);continue}catch{}try{(0,r.symlinkSync)(l,c,"junction"),s.info(`Symlinked ${a}`,{from:l,to:c})}catch(e){s.warn(`Failed to symlink ${a}`,{error:String(e)})}}}}async function d(e,n){let s=a(e),o=i.default.join(s,".worktrees","task-"+n),l="task/"+n;(0,r.existsSync)(o)&&(0,t.execFileSync)("git",["worktree","remove",o,"--force"],{cwd:s,encoding:"utf-8",timeout:3e4}),(0,t.execFileSync)("git",["branch","--list",l],{cwd:s,encoding:"utf-8",timeout:5e3}).trim()&&(0,t.execFileSync)("git",["branch","-D",l],{cwd:s,encoding:"utf-8",timeout:5e3})}e.s(["createWorktree",0,l,"removeWorktree",0,d])},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}})},932583,e=>{"use strict";var t=e.i(921675),r=e.i(843793);async function n(e,t={}){let i=t.report,s=i?JSON.stringify(i):null;await r.db.providerConnection.upsert({where:{provider:e},create:{provider:e,lastTestedAt:new Date,testOk:!0,version:t.version??null,mcpInstalled:i?.mcp?.ok??!1,hooksInstalled:i?.hooks?.ok??!1,skillsInstalled:i?.skill?.ok??!1,installLog:s},update:{lastTestedAt:new Date,testOk:!0,version:t.version??null,mcpInstalled:i?.mcp?.ok??!1,hooksInstalled:i?.hooks?.ok??!1,skillsInstalled:i?.skill?.ok??!1,installLog:s}})}async function i(e,t={}){await r.db.providerConnection.upsert({where:{provider:e},create:{provider:e,lastTestedAt:new Date,testOk:!1,installLog:t.reason??null},update:{lastTestedAt:new Date,testOk:!1,mcpInstalled:!1,hooksInstalled:!1,skillsInstalled:!1,installLog:t.reason??null}})}async function s(e){let t=await r.db.providerConnection.findUnique({where:{provider:e}});return!!t&&t.testOk}async function o(){return(await r.db.providerConnection.findMany({where:{testOk:!0},select:{provider:!0},orderBy:{provider:"asc"}})).map(e=>e.provider)}async function a(){return r.db.providerConnection.findMany({select:{provider:!0,lastTestedAt:!0,testOk:!0,version:!0,mcpInstalled:!0,hooksInstalled:!0,skillsInstalled:!0,installLog:!0},orderBy:{provider:"asc"}})}(0,e.i(86708).ensureServerEntryExports)([n,i,s,o,a]),(0,t.registerServerReference)(n,"605f84ecae0f5d5589d9e93ace2656bd8a982f9b62",null),(0,t.registerServerReference)(i,"6095874992c9108022fc6467c3478f885f7403aae2",null),(0,t.registerServerReference)(s,"4021479b2b9e5af3e10a7c7b1b6aa944b5da8489ce",null),(0,t.registerServerReference)(o,"006ca59784a351abea267267a17855ffbc48f7c661",null),(0,t.registerServerReference)(a,"00ec817a4b36f91ba93798352f03b765a27a310a47",null),e.s(["getConnectedProviders",0,o,"isProviderConnected",0,s,"markProviderConnected",0,n,"markProviderDisconnected",0,i])},89428,e=>{"use strict";var t=e.i(843793),r=e.i(279711);class n extends Error{code;provider;constructor(e,t,r){super(r),this.code=e,this.provider=t,this.name="AiProviderError"}}var i=e.i(932583);let s="claude",o="请到 Settings → Test Connection 测试该 Provider 后再使用(未注入的 CLI 不能被插槽选中)";async function a(e){return t.db.aiCapabilityConfig.findUnique({where:{slot:e}})}async function l(e){if(e){if(await (0,i.isProviderConnected)(e))return e;throw new n("CLI_NOT_FOUND",e,`Provider "${e}" 未连接:${o}`)}let t=await (0,i.getConnectedProviders)();if(0===t.length)throw new n("CLI_NOT_FOUND",s,`没有任何 AI Provider 已连接:${o}`);return t.includes(s)?s:t[0]}async function c(e){let t=await a(e),i=t?.model??void 0,s=await l(t?.provider??null),o=r.providerRegistry.get(s);if(!o)throw new n("CLI_NOT_FOUND",s,`Provider "${s}" 未注册`);let c=o.cli?.adapter;if(!c)throw new n("UNSUPPORTED_MODE",s,`Provider "${s}" 不支持 CLI 模式`);return{adapter:c,provider:o,model:i}}e.s(["resolveCliAdapter",0,c],89428)},482848,e=>{e.v(e=>Promise.resolve().then(()=>e(874533)))},268548,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_util_0xr.y7p._.js"].map(t=>e.l(t))).then(()=>t(812057)))},144264,e=>{e.v(e=>Promise.resolve().then(()=>e(233405)))},534777,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_util_0wtvqkc._.js"].map(t=>e.l(t))).then(()=>t(224361)))},200628,e=>{e.v(e=>Promise.resolve().then(()=>e(769310)))},217260,e=>{e.v(e=>Promise.resolve().then(()=>e(83721)))},507603,e=>{e.v(t=>Promise.all(["server/chunks/_0_eodxe._.js"].map(t=>e.l(t))).then(()=>t(283373)))},136565,e=>{e.v(t=>Promise.all(["server/chunks/src_0bkvm8c._.js"].map(t=>e.l(t))).then(()=>t(215624)))},260815,e=>{e.v(e=>Promise.resolve().then(()=>e(924868)))}];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0g788b3._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[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"))},540193,e=>{"use strict";var t=e.i(750227),r=e.i(192520);e.s(["MIME_MAP",0,{".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml",".pdf":"application/pdf",".txt":"text/plain",".md":"text/markdown",".json":"application/json"},"resolveAssetPath",0,function(e,n){let a=(0,r.getStorageDir)(),s=t.resolve(a,"assets",e,n),i=t.resolve(a,"assets")+t.sep;return s.startsWith(i)?{resolved:s,error:null}:{resolved:null,error:"Invalid path"}}])},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"))},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"))},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"))},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})}])},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])},341291,e=>{"use strict";var t=e.i(666680),r=e.i(902157),n=e.i(750227),a=e.i(192520);function s(e){if(!e.startsWith((0,a.getStorageDir)()+n.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 a=n.basename(e,n.extname(e)),s=t.randomUUID().replace(/-/g,"").slice(0,8),o=a.toLowerCase();if(!a||i.has(o)||/^screenshot[\s_\-]/i.test(a))return`tower_image-${s}${r}`;let l=a.replace(/[^\p{L}\p{N}]/gu,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"");return`${l||"file"}-${s}${r}`},"ensureAssetsDir",0,function(e){let t,i=(s(t=n.join((0,a.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=n.join((0,a.getStorageDir)(),"cache","assistant",i,e);return s(o),r.mkdirSync(o,{recursive:!0}),o},"getAssistantCacheRoot",0,function(){let e=n.join((0,a.getStorageDir)(),"cache","assistant");return s(e),e}])},634712,e=>{"use strict";let t=["jpg","jpeg","png","gif","webp"],r=["md","txt","json","csv"],n=[...t,...r].join("|"),a=RegExp(`^\\d{4}-\\d{2}/(images|files)/[^/]+\\.(${n})$`,"i");function s(e){let n=e.replace(/^\./,"").toLowerCase();return t.includes(n)?"image":r.includes(n)?"text":null}[...t.map(e=>`.${e}`),...r.map(e=>`.${e}`),"image/*"].join(","),e.s(["ALLOWED_TEXT_EXTS",0,r,"ATTACHMENT_SUBPATH_RE",0,a,"MAX_ATTACHMENTS",0,10,"classifyAttachmentExt",0,s,"classifyAttachmentSubPath",0,function(e){if(!a.test(e))return null;let t=e.lastIndexOf(".");return t<0?null:s(e.slice(t+1))}])},118951,e=>{"use strict";var t=e.i(765876),r=e.i(675896),n=e.i(959160),a=e.i(97944),s=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),g=e.i(544432),h=e.i(772005),x=e.i(450223),f=e.i(193695);e.i(628400);var m=e.i(800071),v=e.i(902157),R=e.i(750227),w=e.i(855104),y=e.i(198840),E=e.i(540193),A=e.i(341291);let S=e.i(634712).ATTACHMENT_SUBPATH_RE;async function j(e,{params:t}){let r,n=(0,y.requireLocalhost)(e);if(n)return n;let{segments:a}=await t,s=a.join("/");if(!S.test(s))return w.NextResponse.json({error:"Invalid path"},{status:400});let i=(0,A.getAssistantCacheRoot)(),o=R.resolve(i,s);if(!o.startsWith(i+R.sep))return w.NextResponse.json({error:"Invalid path"},{status:400});try{r=await v.promises.readFile(o)}catch(e){if("ENOENT"===e.code)return w.NextResponse.json({error:"Not found"},{status:404});return w.NextResponse.json({error:"Read error"},{status:500})}let l=R.extname(s).toLowerCase(),u=E.MIME_MAP[l]??"application/octet-stream";return new Response(new Uint8Array(r),{status:200,headers:{"Content-Type":u,"Cache-Control":"private, max-age=3600"}})}e.s(["GET",0,j,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],141140);var C=e.i(141140);let T=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/internal/cache/[...segments]/route",pathname:"/api/internal/cache/[...segments]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/internal/cache/[...segments]/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:b,workUnitAsyncStorage:_,serverHooks:N}=T;async function k(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),T.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/internal/cache/[...segments]/route";v=v.replace(/\/index$/,"")||"/";let R=await T.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:E,parsedUrl:A,isDraftMode:S,prerenderManifest:j,routerServerContext:C,isOnDemandRevalidate:b,revalidateOnlyGenerated:_,resolvedPathname:N,clientReferenceManifest:k,serverActionsManifest:P}=R,D=(0,o.normalizeAppPath)(v),I=!!(j.dynamicRoutes[D]||j.routes[N]),q=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,A,!1):t.end("This page could not be found"),null);if(I&&!S){let e=!!j.routes[N],t=j.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await q();throw new f.NoFallbackError}}let O=null;!I||T.isDev||S||(O="/index"===(O=N)?"/":O);let M=!0===T.isDev||!I,H=I&&!M;P&&k&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:k,serverActionsManifest:P});let $=e.method||"GET",U=(0,s.getTracer)(),F=U.getActiveScopeSpan(),L=!!(null==C?void 0:C.isWrappedByNextServer),W=!!(0,a.getRequestMeta)(e,"minimalMode"),B=(0,a.getRequestMeta)(e,"incrementalCache")||await T.getIncrementalCache(e,E,j,W);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let K={params:y,previewProps:j.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:B,cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>T.onRequestError(e,t,n,a,C)},sharedContext:{buildId:w}},X=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t));try{let a,i=async e=>T.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.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 n=r.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",n),a.updateName(t))}else e.updateName(`${$} ${v}`)}),o=async a=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!W&&b&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let l=K.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,G,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[x.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>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,C),t}},u=await T.handleResponse({req:e,nextConfig:E,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:_,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:W});if(!I)return null;if((null==u||null==(s=u.value)?void 0:s.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",b?"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,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&I||c.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(X,G,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};L&&F?await o(F):(a=U.getActiveScopeSpan(),await U.withPropagatedContext(e.headers,()=>U.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!L))}catch(t){if(t instanceof f.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,C),I)throw t;return await (0,p.sendResponse)(X,G,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:_})},"routeModule",0,T,"serverHooks",0,N,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,_],118951)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0qdvear._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[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"))},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"))},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"))},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"))},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})}])},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])},540193,e=>{"use strict";var t=e.i(750227),r=e.i(192520);e.s(["MIME_MAP",0,{".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml",".pdf":"application/pdf",".txt":"text/plain",".md":"text/markdown",".json":"application/json"},"resolveAssetPath",0,function(e,n){let a=(0,r.getStorageDir)(),s=t.resolve(a,"assets",e,n),i=t.resolve(a,"assets")+t.sep;return s.startsWith(i)?{resolved:s,error:null}:{resolved:null,error:"Invalid path"}}])},535744,e=>{"use strict";var t=e.i(765876),r=e.i(675896),n=e.i(959160),a=e.i(97944),s=e.i(86757),i=e.i(204144),o=e.i(273436),l=e.i(743641),u=e.i(813766),d=e.i(840884),p=e.i(498814),c=e.i(780006),x=e.i(544432),h=e.i(772005),v=e.i(450223),g=e.i(193695);e.i(628400);var f=e.i(800071),m=e.i(902157),R=e.i(750227),w=e.i(855104),y=e.i(198840),E=e.i(540193);let j=/^c[a-z0-9]{20,30}$/,A=/^[a-zA-Z0-9_\-\.]{1,128}\.(png|jpg|jpeg|gif|webp|pdf|txt|md|json|svg)$/i;async function C(e,{params:t}){let r,n=(0,y.requireLocalhost)(e);if(n)return n;let{projectId:a,filename:s}=await t;if(!j.test(a)||!A.test(s))return w.NextResponse.json({error:"Invalid path"},{status:400});let{resolved:i,error:o}=(0,E.resolveAssetPath)(a,s);if(o||!i)return w.NextResponse.json({error:"Invalid path"},{status:400});try{r=await m.promises.readFile(i)}catch(e){if("ENOENT"===e.code)return w.NextResponse.json({error:"Not found"},{status:404});return w.NextResponse.json({error:"Read error"},{status:500})}let l=R.extname(s).toLowerCase(),u=E.MIME_MAP[l]??"application/octet-stream";return new Response(new Uint8Array(r),{status:200,headers:{"Content-Type":u,"Cache-Control":"private, max-age=3600"}})}e.s(["GET",0,C,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],166332);var S=e.i(166332);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/internal/assets/[projectId]/[filename]/route",pathname:"/api/internal/assets/[projectId]/[filename]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/internal/assets/[projectId]/[filename]/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:N,workUnitAsyncStorage:T,serverHooks:I}=b;async function k(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),b.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/internal/assets/[projectId]/[filename]/route";m=m.replace(/\/index$/,"")||"/";let R=await b.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:E,parsedUrl:j,isDraftMode:A,prerenderManifest:C,routerServerContext:S,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,resolvedPathname:I,clientReferenceManifest:k,serverActionsManifest:P}=R,q=(0,o.normalizeAppPath)(m),_=!!(C.dynamicRoutes[q]||C.routes[I]),O=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,j,!1):t.end("This page could not be found"),null);if(_&&!A){let e=!!C.routes[I],t=C.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await O();throw new g.NoFallbackError}}let D=null;!_||b.isDev||A||(D="/index"===(D=I)?"/":D);let M=!0===b.isDev||!_,H=_&&!M;P&&k&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:k,serverActionsManifest:P});let U=e.method||"GET",F=(0,s.getTracer)(),$=F.getActiveScopeSpan(),K=!!(null==S?void 0:S.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),B=(0,a.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,E,C,L);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:B,cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>b.onRequestError(e,t,n,a,S)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let a,i=async e=>b.handle(V,W).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")!==d.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),a&&a!==e&&(a.setAttribute("http.route",n),a.updateName(t))}else e.updateName(`${U} ${m}`)}),o=async a=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&N&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let l=W.renderOpts.collectedTags;if(!_)return await (0,c.sendResponse)(G,z,s,W.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[v.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>=v.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,S),t}},u=await b.handleResponse({req:e,nextConfig:E,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!_)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.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});L||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,x.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&_||d.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(G,z,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};K&&$?await o($):(a=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${m}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof g.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,S),_)throw t;return await (0,c.sendResponse)(G,z,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:T})},"routeModule",0,b,"serverHooks",0,I,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,T],535744)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0umocfj._.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"))},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"))},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"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},933919,(e,t,r)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},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"))},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}})},769310,e=>{"use strict";var t=e.i(902157),r=e.i(874533),n=e.i(750227);function a(e=process.platform){return"win32"===e}function s(e){let t=e.replace(/\r\n|\r|\n/g," ");if(!t.length)return'""';let r=t.replace(/"/g,'""');return/[\s"&<>|^()]/.test(r)?`"${r}"`:r}let i=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function o(e,t={}){let r=t.cwd??process.cwd(),s=t.env??process.env,i=t.platform??process.platform;if(e.includes("/")||e.includes("\\")){let t=n.default.isAbsolute(e)?e:n.default.resolve(r,e);return await p(t,i)?t:null}let l=s.PATH??s.Path??"",u=a(i)?";":":",c=l.split(u).filter(Boolean),d=a(i)?(s.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],m=a(i)&&n.default.extname(e).length>0;for(let t of c)for(let r of a(i)?m?[n.default.join(t,e)]:d.map(r=>n.default.join(t,`${e}${r}`)):[n.default.join(t,e)])if(await p(r,i))return r;return null}let l=e=>(0,r.execSync)(e,{encoding:"utf-8",timeout:5e3});function u(e,t=process.platform,s=l){if(n.default.extname(e)||e.includes("/")||e.includes("\\"))return e;if(!a(t)){try{let t=(0,r.execFileSync)("which",[e],{encoding:"utf-8",timeout:5e3}).trim();if(t)return t}catch{}return e}try{let t=s(`where ${e}`).trim().split("\n").map(e=>e.trim()).filter(Boolean),r=t.find(e=>/\.(cmd|bat|exe)$/i.test(e));if(r)return r;if(t.length>0)return t[0]}catch{}return e}async function c(e,t,r={}){let n=r.env??process.env,a=r.platform??process.platform;return d(await o(e,r)??e,t,n,a)}function d(e,t,r,i){if(!a(i))return{command:e,args:t};let o=n.default.extname(e).toLowerCase();return".cmd"===o||".bat"===o||".com"===o?{command:r.ComSpec||"cmd.exe",args:["/d","/s","/c",[s(e),...t.map(s)].join(" ")]}:{command:e,args:t}}async function p(e,r=process.platform){try{return await t.promises.access(e,a(r)?t.constants.F_OK:t.constants.X_OK),!0}catch{return!1}}async function m(e=process.platform){return a(e)?h():f()}async function f(){try{let e=await t.promises.readFile("/etc/shells","utf-8"),r=[],a=new Map;for(let t of e.split("\n")){let e=t.replace(/#.*/,"").trim();if(!e||!e.startsWith("/")||!await p(e))continue;let s=n.default.basename(e),i=a.get(s)??0;a.set(s,i+1),i>0&&(s=`${s} (${i+1})`),r.push({name:s,path:e})}return r}catch{let e=[];for(let t of["/bin/zsh","/bin/bash","/bin/sh"])await p(t)&&e.push({name:n.default.basename(t),path:t});return e}}async function h(){let e=[],t=[],r=await o("git",{platform:"win32"});if(r){let e=n.default.resolve(n.default.dirname(r),"..","..");t.push(n.default.join(e,"bin","bash.exe"),n.default.join(e,"usr","bin","bash.exe"))}for(let e of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?n.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))t.push(n.default.join(e,"Git","bin","bash.exe"),n.default.join(e,"Git","usr","bin","bash.exe"));let a=process.env.USERPROFILE??"";for(let r of(a&&t.push(n.default.join(a,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&t.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),t))if(await p(r,"win32")){e.push({name:"Git Bash",path:r});break}let s=await o("pwsh",{platform:"win32"});s&&e.push({name:"PowerShell",path:s});let i=process.env.windir??"C:\\WINDOWS",l=n.default.join(i,"System32","WindowsPowerShell","v1.0","powershell.exe");await p(l,"win32")&&e.push({name:"Windows PowerShell",path:l});let u=process.env.ComSpec??n.default.join(i,"System32","cmd.exe");return await p(u,"win32")&&e.push({name:"Command Prompt",path:u}),e}let g=[{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 y(e=process.platform){if("darwin"===e){let t=[];for(let r of g){let n=await p(`/Applications/${r.bundleName}.app`,e);t.push({name:r.name,value:r.bundleName,installed:n})}return t}if(a(e)){let t=[],r=await o("wt",{platform:e});return r&&t.push({name:"Windows Terminal",value:r,installed:!0}),t}return[]}let b=[{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"}];async function x(e=process.platform){let t=[];for(let r of b){let n=!!await o(r.command,{platform:e});t.push({name:r.name,command:r.command,installed:n})}return t}e.s(["detectEditors",0,x,"detectShells",0,m,"detectTerminalApps",0,y,"ensurePathInEnv",0,function(e,t=process.platform){let r=a(t)?"Path":"PATH";return(e.PATH??e.Path??"").length>0?e:{...e,[r]: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"}(t)}},"resolveCommandPath",0,o,"resolveCommandPathSync",0,u,"resolveSdkExecutable",0,function(e,r=process.platform,s=e=>(0,t.readFileSync)(e,"utf-8")){if(!a(r))return e;let i=n.default.extname(e).toLowerCase();if(".cmd"!==i&&".bat"!==i)return e;try{let t=s(e).match(/%~?dp0%[\\/]?([^"]+?\.(?:js|mjs|cjs))/i);if(t){let r=t[1].replace(/\//g,"\\");return n.default.win32.resolve(n.default.win32.dirname(e),r)}}catch{}return e},"resolveSpawnTarget",0,c,"resolveSpawnTargetSync",0,function(e,t,r=process.platform,n){return d(u(e,r,n),t,process.env,r)},"stripClaudeNestingEnv",0,function(e){let t={...e};for(let e of i)delete t[e];return t}])},519895,e=>{"use strict";var t=e.i(980738),r=e.i(769310);class n{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(e,a,s,i,o,l,u,c,d){this.taskId=e,this._onData=o,this._onIdle=c??null,this._idleThresholdMs=Math.max(d??18e4,18e4);const p={...(0,r.stripClaudeNestingEnv)((0,r.ensurePathInEnv)(process.env)),TERM:"xterm-color",...u};try{this._pty=t.spawn(a,s,{name:"xterm-color",cols:80,rows:24,cwd:i,env:p})}catch(e){throw console.error(`[pty] spawn failed: command="${a}", cwd="${i}", PATH="${p.PATH?.slice(0,200)}"`),e}this._pty.onData(e=>{this._buffer+=e,this._buffer.length>n.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-n.BUFFER_MAX)),this._resetIdleTimer(),this._onData(e)}),this._pty.onExit(({exitCode:e,signal:t})=>{for(let r of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),l(e,t),this._exitListeners))r(e)}),this._resetIdleTimer()}_resetIdleTimer(){this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),null===this._onIdle||this.killed||this._idleFired||(this._idleTimer=setTimeout(()=>{this._idleFired=!0,this._onIdle?.()},this._idleThresholdMs))}setDataListener(e){this._onData=e}setExitListener(e){this._exitListeners=[e]}write(e){this.killed||(this._resetIdleTimer(),this._pty.write(e))}resize(e,t){this.killed||this._pty.resize(e,t)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}kill(e){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(e)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}}e.s(["PtySession",0,n])},83721,e=>{"use strict";var t=e.i(519895),r=e.i(769310);let n=globalThis;n.__ptySessions||(n.__ptySessions=new Map);let a=n.__ptySessions;function s(e){let t=a.get(e);t&&(a.delete(e),t.disconnectTimer&&(clearTimeout(t.disconnectTimer),t.disconnectTimer=null),t.kill())}function i(){for(let e of a.keys())s(e)}let o=globalThis;"phase-production-build"===process.env.NEXT_PHASE||o.__ptySignalHandlersRegistered||(o.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),i()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),i()})),e.s(["createSession",0,function(e,n,i,o,l,u,c,d,p){s(e);let{command:m,args:f}=(0,r.resolveSpawnTargetSync)(n,i),h=new t.PtySession(e,m,f,o,l,u,c,d,p);return a.set(e,h),h},"destroySession",0,s,"getSession",0,function(e){return a.get(e)}])},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__"])},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})}])},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])},341291,e=>{"use strict";var t=e.i(666680),r=e.i(902157),n=e.i(750227),a=e.i(192520);function s(e){if(!e.startsWith((0,a.getStorageDir)()+n.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 a=n.basename(e,n.extname(e)),s=t.randomUUID().replace(/-/g,"").slice(0,8),o=a.toLowerCase();if(!a||i.has(o)||/^screenshot[\s_\-]/i.test(a))return`tower_image-${s}${r}`;let l=a.replace(/[^\p{L}\p{N}]/gu,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"");return`${l||"file"}-${s}${r}`},"ensureAssetsDir",0,function(e){let t,i=(s(t=n.join((0,a.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=n.join((0,a.getStorageDir)(),"cache","assistant",i,e);return s(o),r.mkdirSync(o,{recursive:!0}),o},"getAssistantCacheRoot",0,function(){let e=n.join((0,a.getStorageDir)(),"cache","assistant");return s(e),e}])},634712,e=>{"use strict";let t=["jpg","jpeg","png","gif","webp"],r=["md","txt","json","csv"],n=[...t,...r].join("|"),a=RegExp(`^\\d{4}-\\d{2}/(images|files)/[^/]+\\.(${n})$`,"i");function s(e){let n=e.replace(/^\./,"").toLowerCase();return t.includes(n)?"image":r.includes(n)?"text":null}[...t.map(e=>`.${e}`),...r.map(e=>`.${e}`),"image/*"].join(","),e.s(["ALLOWED_TEXT_EXTS",0,r,"ATTACHMENT_SUBPATH_RE",0,a,"MAX_ATTACHMENTS",0,10,"classifyAttachmentExt",0,s,"classifyAttachmentSubPath",0,function(e){if(!a.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)"},"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 m(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 f(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 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,m,f,h,g,y,b,x]),(0,n.registerServerReference)(d,"6017e701bea76e287acb17c5152f2dd0adcd111f6b",null),(0,n.registerServerReference)(p,"606b722dc209663674ef752b15d7771f1e856e6987",null),(0,n.registerServerReference)(m,"4038649f70ecf76055867dc0b626910f6872581e5e",null),(0,n.registerServerReference)(f,"40237e4dbff3868f964dd9913f9a4ca85f84822c10",null),(0,n.registerServerReference)(h,"00d8a88025729a9388e2829708662821fbefae2e81",null),(0,n.registerServerReference)(g,"006f0ea45df94308818c3c4f2869b5d5073fa85032",null),(0,n.registerServerReference)(y,"0050c80ca24c3a14bac42853de9d48cf3455a8fd81",null),(0,n.registerServerReference)(b,"00d3b62ee4e064632dd2075cf9d7871dba8d7702c2",null),(0,n.registerServerReference)(x,"007e925c0232975a8b443f05178e2374e175d65f88",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 n=e.i(750227),a=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 m=(await e.formData()).get("file");if(!m)return s.NextResponse.json({error:"Missing file field"},{status:400});let f=await (0,u.getConfigValue)("system.maxUploadBytes",0x3200000);if(m.size>f)return s.NextResponse.json({error:"File too large"},{status:400});let h=Buffer.from(await m.arrayBuffer()),g=n.extname(m.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)(m.name,t),x=n.join(d,b);if(!x.startsWith(d+n.sep)&&x!==d)return s.NextResponse.json({error:"Invalid path"},{status:400});await a.promises.writeFile(x,h);let w=n.relative((0,l.getAssistantCacheRoot)(),x);return s.NextResponse.json({filename:w,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 n=e.i(765876),a=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),m=e.i(498814),f=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),w=e.i(648834),v=t([w]);[w]=v.then?(await v)():v;let S=new n.AppRouteRouteModule({definition:{kind:a.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:w}),{workAsyncStorage:_,workUnitAsyncStorage:E,serverHooks:R}=S;async function T(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),S.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/internal/assistant/attachments/route";n=n.replace(/\/index$/,"")||"/";let s=await S.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:v,nextConfig:T,parsedUrl:_,isDraftMode:E,prerenderManifest:R,routerServerContext:C,isOnDemandRevalidate:A,revalidateOnlyGenerated:k,resolvedPathname:j,clientReferenceManifest:P,serverActionsManifest:N}=s,I=(0,u.normalizeAppPath)(n),D=!!(R.dynamicRoutes[I]||R.routes[j]),M=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,_,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!R.routes[j],t=R.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await M();throw new b.NoFallbackError}}let O=null;!D||S.isDev||E||(O=j,O="/index"===O?"/":O);let L=!0===S.isDev||!D,U=D&&!L;N&&P&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:P,serverActionsManifest:N});let $=e.method||"GET",F=(0,o.getTracer)(),q=F.getActiveScopeSpan(),V=!!(null==C?void 0:C.isWrappedByNextServer),H=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,T,R,H);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let G={params:v,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:L,incrementalCache:W,cacheLifeProfiles:T.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>S.onRequestError(e,t,n,a,C)},sharedContext:{buildId:w}},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,G).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")!==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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${$} ${n}`)}),l=async s=>{var o,l;let u=async({previousCacheEntry:a})=>{try{if(!H&&A&&k&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!D)return await (0,f.sendResponse)(B,X,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==a?void 0:a.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,C),t}},c=await S.handleResponse({req:e,nextConfig:T,cacheKey:O,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:k,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",A?"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,f.sendResponse)(B,X,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};V&&q?await l(q):(s=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${n}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!V))}catch(t){if(t instanceof b.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,C),D)throw t;return await (0,f.sendResponse)(B,X,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:E})},"routeModule",0,S,"serverHooks",0,R,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,E]),r()}catch(e){r(e)}},!1)];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0wuzc5o._.js.map