tower-studio 0.2.3 → 0.2.5

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 (214) 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 +45 -45
  13. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
  17. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  18. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  19. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
  20. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  22. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/index.html +1 -1
  39. package/.next/standalone/.next/server/app/index.rsc +14 -14
  40. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  41. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
  42. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  43. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +9 -9
  44. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  45. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
  46. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +73 -73
  47. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +1 -1
  50. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +45 -45
  51. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  54. package/.next/standalone/.next/server/app/onboarding.rsc +16 -16
  55. package/.next/standalone/.next/server/app/onboarding.segments/_full.segment.rsc +16 -16
  56. package/.next/standalone/.next/server/app/onboarding.segments/_head.segment.rsc +4 -4
  57. package/.next/standalone/.next/server/app/onboarding.segments/_index.segment.rsc +9 -9
  58. package/.next/standalone/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
  59. package/.next/standalone/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  60. package/.next/standalone/.next/server/app/onboarding.segments/onboarding.segment.rsc +3 -3
  61. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -1
  62. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +45 -45
  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 +58 -58
  67. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/settings.html +1 -1
  70. package/.next/standalone/.next/server/app/settings.rsc +16 -16
  71. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +16 -16
  72. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  73. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +9 -9
  74. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  75. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  76. package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  77. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +1 -1
  78. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +90 -90
  79. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +1 -1
  82. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +74 -74
  83. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +1 -1
  86. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +69 -69
  87. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +1 -1
  90. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +74 -74
  91. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +1 -1
  94. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +45 -45
  95. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +1 -1
  98. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +78 -78
  99. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +2 -2
  102. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +84 -84
  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 +53 -53
  107. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +1 -1
  110. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-eibah._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.9mj3v._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05353yb._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07h7qz8._.js +1 -1
  114. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c1g5im._.js +1 -1
  115. package/.next/standalone/.next/server/chunks/src_0o_27yu._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-xoiaj._.js +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__006_qh0._.js +1 -1
  119. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00wymqa._.js +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02px.0y._.js +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03ebsif._.js +3 -3
  122. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cdz55-._.js +1 -1
  123. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ilem~v._.js +3 -0
  124. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l43.5g._.js +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n8jy_r._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ps55l6._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ribsk4._.js +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wjg_.n._.js +1 -1
  129. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wvyks.._.js +1 -1
  130. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zbmoit._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zjarb3._.js +3 -0
  132. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__102siqc._.js +3 -0
  133. package/.next/standalone/.next/server/chunks/ssr/{_0uw71_l._.js → _0-t_os6._.js} +2 -2
  134. package/.next/standalone/.next/server/chunks/ssr/{_11r_cvh._.js → _00pxhu2._.js} +2 -2
  135. package/.next/standalone/.next/server/chunks/ssr/_04b71ua._.js +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/_05h.8a~._.js +1 -1
  137. package/.next/standalone/.next/server/chunks/ssr/{_0_5~zfr._.js → _0_co86q._.js} +2 -2
  138. package/.next/standalone/.next/server/chunks/ssr/_0_l8.dg._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
  140. package/.next/standalone/.next/server/chunks/ssr/_0ds6nk2._.js +1 -1
  141. package/.next/standalone/.next/server/chunks/ssr/_0h0r8fk._.js +7 -0
  142. package/.next/standalone/.next/server/chunks/ssr/_0i4__mf._.js +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/_0ihq._v._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/{_0rxk_ru._.js → _0j_v~sp._.js} +3 -3
  145. package/.next/standalone/.next/server/chunks/ssr/{_0jmcwhq._.js → _0l6vadw._.js} +2 -2
  146. package/.next/standalone/.next/server/chunks/ssr/{_026ca04._.js → _0lcigjh._.js} +2 -2
  147. package/.next/standalone/.next/server/chunks/ssr/_0r9w-k8._.js +1 -1
  148. package/.next/standalone/.next/server/chunks/ssr/_0rbctq7._.js +1 -1
  149. package/.next/standalone/.next/server/chunks/ssr/_0rt8hus._.js +1 -1
  150. package/.next/standalone/.next/server/chunks/ssr/{_0-g1b0~._.js → _0wxd6t.._.js} +2 -2
  151. package/.next/standalone/.next/server/chunks/ssr/{_0qcq02r._.js → _0xh9m4.._.js} +3 -3
  152. package/.next/standalone/.next/server/chunks/ssr/{_0~k-h8t._.js → _0ybhyal._.js} +2 -2
  153. package/.next/standalone/.next/server/chunks/ssr/_0~80adm._.js +3 -3
  154. package/.next/standalone/.next/server/chunks/ssr/{_0tezux9._.js → _13fpu~5._.js} +2 -2
  155. package/.next/standalone/.next/server/chunks/ssr/src_095o8x6._.js +1 -1
  156. package/.next/standalone/.next/server/chunks/ssr/src_13jha60._.js +1 -1
  157. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  158. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  159. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  161. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  162. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  163. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  164. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  165. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  166. package/.next/standalone/.next/server/pages/404.html +1 -1
  167. package/.next/standalone/.next/server/pages/500.html +1 -1
  168. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/server-reference-manifest.json +273 -273
  170. package/.next/standalone/.next/static/chunks/{15t.hneieng61.js → 0-wn9b_4jrs.9.js} +1 -1
  171. package/.next/standalone/.next/static/chunks/{0coc31aw4hrwj.js → 0.p7x9h8h-..l.js} +1 -1
  172. package/.next/standalone/.next/static/chunks/00grznzz_zqq~.js +1 -0
  173. package/.next/standalone/.next/static/chunks/00jlfmav1nk82.js +1 -0
  174. package/.next/standalone/.next/static/chunks/018vr5fdl426p.js +1 -0
  175. package/.next/standalone/.next/static/chunks/{0579qd_m6ht51.js → 094hp8ak7su7z.js} +2 -2
  176. package/.next/standalone/.next/static/chunks/{0~6auogmolbs_.js → 0a5u1~0._dmx8.js} +1 -1
  177. package/.next/standalone/.next/static/chunks/0fe_jnfm0lqm..js +5 -0
  178. package/.next/standalone/.next/static/chunks/0jk6ji4j.3jod.js +5 -0
  179. package/.next/standalone/.next/static/chunks/0lq1_ynox5frw.js +1 -0
  180. package/.next/standalone/.next/static/chunks/{07548le-lrwlv.js → 0mijmksouoprl.js} +1 -1
  181. package/.next/standalone/.next/static/chunks/0qy~pj-p.oh92.js +1 -0
  182. package/.next/standalone/.next/static/chunks/0y_vg.f~zs~zl.js +1 -0
  183. package/.next/standalone/.next/static/chunks/0z0a_hlsye7mo.js +5 -0
  184. package/.next/standalone/.next/static/chunks/0~2v6ague-7-t.js +5 -0
  185. package/.next/standalone/.next/static/chunks/0~p32xa2eu79e.js +1 -0
  186. package/.next/standalone/.next/static/chunks/{15r6-u5xwu9sc.js → 10ih_a9~empst.js} +1 -1
  187. package/.next/standalone/.next/static/chunks/{0xt_tug29pdob.js → 14se8w2gb9pe0.js} +1 -1
  188. package/.next/standalone/.next/static/chunks/15qi~69blu~3u.js +1 -0
  189. package/.next/standalone/.next/static/chunks/{06v_x59g-dnq0.js → 16.w_z6.3sf2v.js} +1 -1
  190. package/.next/standalone/.next/static/chunks/{03pww9i8.o308.js → 17wptayhzwy6g.js} +1 -1
  191. package/.next/standalone/package.json +2 -1
  192. package/bin/tower.mjs +72 -1
  193. package/package.json +2 -1
  194. package/prisma/init-fts.ts +29 -0
  195. package/prisma/pre-migration.sql +23 -0
  196. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09~4rea._.js +0 -3
  197. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gdsbk6._.js +0 -3
  198. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t-h210._.js +0 -3
  199. package/.next/standalone/.next/server/chunks/ssr/_0_0p7_j._.js +0 -7
  200. package/.next/standalone/.next/static/chunks/0-dc29u.0jt._.js +0 -1
  201. package/.next/standalone/.next/static/chunks/0-k2cp4wa~ian.js +0 -5
  202. package/.next/standalone/.next/static/chunks/0-yv7tpu1-l7f.js +0 -1
  203. package/.next/standalone/.next/static/chunks/0.d67nijuc-ke.js +0 -1
  204. package/.next/standalone/.next/static/chunks/015pm.vmn5qwm.js +0 -5
  205. package/.next/standalone/.next/static/chunks/08ptooiwvphst.js +0 -1
  206. package/.next/standalone/.next/static/chunks/09f8etx~5if7z.js +0 -5
  207. package/.next/standalone/.next/static/chunks/0f7xvfhl.hd9a.js +0 -1
  208. package/.next/standalone/.next/static/chunks/0iqa-cs5~yey9.js +0 -5
  209. package/.next/standalone/.next/static/chunks/0vw0fmmwkkjxh.js +0 -1
  210. package/.next/standalone/.next/static/chunks/14hn1zofp33np.js +0 -1
  211. package/.next/standalone/.next/static/chunks/17m9ln4qibsl6.js +0 -1
  212. /package/.next/standalone/.next/static/{6xdgkVcgYqPzrD57K1mCi → eRr9P5hixKpzabeXJ-AvA}/_buildManifest.js +0 -0
  213. /package/.next/standalone/.next/static/{6xdgkVcgYqPzrD57K1mCi → eRr9P5hixKpzabeXJ-AvA}/_clientMiddlewareManifest.js +0 -0
  214. /package/.next/standalone/.next/static/{6xdgkVcgYqPzrD57K1mCi → eRr9P5hixKpzabeXJ-AvA}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},845427,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(26683);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i,j){let k=h(a),l=e.default.join(k,".worktrees","task-"+f),m="task/"+f;await (0,d.mkdir)(e.default.join(k,".worktrees"),{recursive:!0});let n=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:k,encoding:"utf-8",timeout:1e4}),o=e.default.normalize(l).replace(/\\/g,"/");if(n.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===o))return{worktreePath:l,worktreeBranch:m};if((0,c.existsSync)(l)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${l}`),(0,b.execFileSync)("git",["worktree","remove",l,"--force"],{cwd:k,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",m],{cwd:k,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",l,m],{cwd:k,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:k,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:k,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:k,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",m,l,a],{cwd:k,encoding:"utf-8",timeout:3e4})}return function(a,b,d){let f=g.logger.create("worktree"),h=["node_modules",".next"];for(let g of d?["",d]:[""])if((0,c.existsSync)(e.default.join(a,g,"package.json")))for(let d of h){let h=g?e.default.join(g,d):d,i=e.default.join(a,h),j=e.default.join(b,h);if((0,c.existsSync)(i)){try{(0,c.lstatSync)(j);continue}catch{}try{(0,c.symlinkSync)(i,j,"junction"),f.info(`Symlinked ${h}`,{from:i,to:j})}catch(a){f.warn(`Failed to symlink ${h}`,{error:String(a)})}}}}(k,l,j),{worktreePath:l,worktreeBranch:m}}async function j(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,j])},689171,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(495370),f=a.i(845427),g=a.i(75681),h=a.i(496877),i=a.i(26683),j=a.i(630048);let k=i.logger.create("task-actions");async function l(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null,versionId:b.versionId??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function m(b,e){h.taskStatusSchema.parse(e);let g=await c.db.task.update({where:{id:b},data:{status:e},include:{project:!0}});if("DONE"===e&&!g.baseBranch&&g.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:g.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&a.A(662330).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),"CANCELLED"===e&&g.project?.localPath)try{await (0,f.removeWorktree)(g.project.localPath,b)}catch(a){k.error("Worktree cleanup failed",a,{taskId:b})}return(0,d.revalidatePath)("/workspaces"),g}async function n(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function o(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function p(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}try{let{destroySession:c}=await a.A(98813);c(b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function q(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,OR:[{status:{notIn:["DONE","CANCELLED"]}},{status:{in:["DONE","CANCELLED"]},updatedAt:{gte:b}}]},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function r(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function s(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function t(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),f=await c.db.task.findUnique({where:{id:b}}),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!e(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let h=g.worktreePath,i=f?.baseBranch||"main";try{let a=d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=0===b.length,e=!1,f=null,g=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();if(e=parseInt(b,10)>0){f=d("git",["log","-1","--format=%B"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();g=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:c,files:b,hasCommits:e,lastCommitMessage:f,commitLog:g,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function u(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function v(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},project:{select:{id:!0,name:!0,type:!0,localPath:!0,workspaceId:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0,gitStats:!0}},_count:{select:{assets:!0}}}}):null}async function w(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.count({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}}})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s,t,u,v,w]),(0,b.registerServerReference)(l,"40ee885ebfa0fdcd98eb71c129c70bb7d355f504df",null),(0,b.registerServerReference)(m,"604b3671c52057a6153924238771f19b6c11f7f3ae",null),(0,b.registerServerReference)(n,"60428921d028b0758d25cc752e5e21bf76ffb75a18",null),(0,b.registerServerReference)(o,"404d1e81e97aa30139d651b4dfbcba4e15b7d68663",null),(0,b.registerServerReference)(p,"4021434acf8623905fb933921e60ffb7f66d643922",null),(0,b.registerServerReference)(q,"4075366ddb54761e18dd08e2f5b494a738749912d2",null),(0,b.registerServerReference)(r,"4010540cb440b542e3acf54cc08bf9ad1fc76c6a22",null),(0,b.registerServerReference)(s,"401a249b96fc7bde6cbd0d22c62ed1a8ce5a77dc38",null),(0,b.registerServerReference)(t,"40663206bf8c75d837b92f20bc333cc5cece6ac0bc",null),(0,b.registerServerReference)(u,"608d916724f8862a65dbbbdb74237ab90a8f52a157",null),(0,b.registerServerReference)(v,"40eb56cbb0160cff371e3452be2decec0ec8108dc1",null),(0,b.registerServerReference)(w,"4084e37362b1abf5922d60d19c962958b6b66c6653",null),a.s(["checkWorktreeClean",0,t,"commitWorktreeChanges",0,u,"createTask",0,l,"deleteTask",0,p,"getArchivedTaskCount",0,w,"getArchivedTasks",0,s,"getProjectTasks",0,q,"getTaskOverview",0,v,"searchTasks",0,r,"toggleTaskPinned",0,o,"updateTask",0,n,"updateTaskStatus",0,m])},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},859021,(a,b,c)=>{"use strict";b.exports=function(a){return a.map(function(a){return""===a?"''":a&&"object"==typeof a?a.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(a)&&!/'/.test(a)?"'"+a.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(a)?'"'+a.replace(/(["\\$`!])/g,"\\$1")+'"':String(a).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")}},406076,(a,b,c)=>{"use strict";for(var d="(?:\\|\\||\\&\\&|;;|\\|\\&|\\<\\(|\\<\\<\\<|>>|>\\&|<\\&|[&;()|<>])",e=RegExp("^"+d+"$"),f="|&;()<> \\t",g=/^#$/,h="",i=0;i<4;i++)h+=(0x100000000*Math.random()).toString(16);var j=RegExp("^"+h);b.exports=function(a,b,c){var i=function(a,b,c){c||(c={});var i=c.escape||"\\",j=function(a,b){for(var c,d=b.lastIndex,e=[];c=b.exec(a);)e.push(c),b.lastIndex===c.index&&(b.lastIndex+=1);return b.lastIndex=d,e}(a,RegExp(["("+d+")","("+("(\\"+i+"['\""+f+"]|[^\\s'\""+f)+"])+|\"((\\\\\"|[^\"])*?)\"|'((\\\\'|[^'])*?)')+"].join("|"),"g"));if(0===j.length)return[];b||(b={});var k=!1;return j.map(function(c){var d,f=c[0];if(f&&!k){if(e.test(f))return{op:f};var j=!1,l=!1,m="",n=!1;for(d=0;d<f.length;d++){var o=f.charAt(d);if(n=n||!j&&("*"===o||"?"===o),l)m+=o,l=!1;else if(j)o===j?j=!1:"'"==j?m+=o:o===i?(d+=1,'"'===(o=f.charAt(d))||o===i||"$"===o?m+=o:m+=i+o):"$"===o?m+=q():m+=o;else if('"'===o||"'"===o)j=o;else if(e.test(o))return{op:f};else if(g.test(o)){k=!0;var p={comment:a.slice(c.index+d+1)};if(m.length)return[m,p];return[p]}else o===i?l=!0:"$"===o?m+=q():m+=o}return n?{op:"glob",pattern:m}:m}function q(){d+=1;var a,c,e,g,i,j=f.charAt(d);if("{"===j){if(d+=1,"}"===f.charAt(d))throw Error("Bad substitution: "+f.slice(d-2,d+1));if((g=f.indexOf("}",d))<0)throw Error("Bad substitution: "+f.slice(d));i=f.slice(d,g),d=g}else if(/[*@#?$!_-]/.test(j))i=j,d+=1;else{var k=f.slice(d);(g=k.match(/[^\w\d_]/))?(i=k.slice(0,g.index),d+=g.index-1):(i=k,d=f.length)}return a=b,c=i,(void 0===(e="function"==typeof a?a(c):a[c])&&""!=c?e="":void 0===e&&(e="$"),"object"==typeof e)?""+h+JSON.stringify(e)+h:""+e}}).reduce(function(a,b){return void 0===b?a:a.concat(b)},[])}(a,b,c);return"function"!=typeof b?i:i.reduce(function(a,b){if("object"==typeof b)return a.concat(b);var c=b.split(RegExp("("+h+".*?"+h+")","g"));return 1===c.length?a.concat(c[0]):a.concat(c.filter(Boolean).map(function(a){return j.test(a)?JSON.parse(a.split(h)[1]):a}))},[])}},571950,(a,b,c)=>{"use strict";c.quote=a.r(859021),c.parse=a.r(406076)},536960,a=>{"use strict";var b=a.i(815429),c=a.i(761095),d=a.i(874533),e=a.i(750227),f=a.i(902157),g=a.i(571950),h=a.i(761469),i=a.i(742978);function j(a){return`${a.cwd}|${a.command}|${a.port}`}var k=a.i(22700),l=a.i(292380),m=a.i(312369),n=a.i(630048);function o(a,b){let c=a.replace(/\{port\}/g,String(b)),d=(0,g.parse)(c),e={},f=[];for(let a of d)if("string"==typeof a){if(0===f.length&&/^[A-Za-z_][A-Za-z0-9_]*=/.test(a)){let b=a.indexOf("=");e[a.slice(0,b)]=a.slice(b+1);continue}f.push(a)}return{command:f[0]??"",args:f.slice(1),envOverrides:Object.keys(e).length>0?e:void 0}}async function p(a){return new Promise(b=>{let d=(0,c.createServer)();d.once("error",()=>b(!0)),d.once("listening",()=>d.close(()=>b(!1))),d.listen(a,"0.0.0.0")})}async function q(a){var b,c,d,f,g;let j=await h.db.task.findUniqueOrThrow({where:{id:a.taskId},select:{previewCommandOverride:!0,previewPortOverride:!0,subPath:!0}}),k=await h.db.project.findUniqueOrThrow({where:{id:a.projectId},select:{localPath:!0,previewCommand:!0,previewPort:!0,previewPreset:!0,previewInstallCommand:!0}}),m=(b={worktreePath:a.worktreePath,projectLocalPath:k.localPath,subPath:j.subPath}).worktreePath?b.worktreePath:b.projectLocalPath?b.subPath?(0,e.join)(b.projectLocalPath,b.subPath):b.projectLocalPath:null,n=null,o=null;j.subPath&&m?o=(n=await (0,l.detectPreset)(m))?"subPath-detected":null:k.previewPreset&&(o=(n=i.PRESETS.find(a=>a.id===k.previewPreset)??null)?"project":null);let p=n?.command??null,q=n?.port??null,r=(c={taskOverride:j.previewCommandOverride,projectDefault:k.previewCommand,presetCommand:p}).taskOverride??c.projectDefault??c.presetCommand??"",s=(d={taskOverride:j.previewPortOverride,projectDefault:k.previewPort,presetPort:q}).taskOverride??d.projectDefault??d.presetPort??0,t=null!==(f={taskOverride:j.previewCommandOverride,projectDefault:k.previewCommand,presetCommand:p}).taskOverride?"task":null!==f.projectDefault?"project":null!==f.presetCommand?"preset":null,u=null!==(g={taskOverride:j.previewPortOverride,projectDefault:k.previewPort,presetPort:q}).taskOverride?"task":null!==g.projectDefault?"project":null!==g.presetPort?"preset":null,v=k.previewInstallCommand??n?.installCommand??null;return{task:j,project:k,preset:n,presetSource:o,cwd:m,command:r,port:s,commandSource:t,portSource:u,projectDefaultCommand:k.previewCommand,projectDefaultPort:k.previewPort,presetCommand:p,presetPort:q,installCommand:v}}async function r(a){var b,c;let d=await q(a);d.project.previewPreset||d.task.subPath||!d.cwd||(async()=>{try{let b=await (0,l.detectPreset)(d.cwd);b&&await h.db.project.updateMany({where:{id:a.projectId,previewPreset:null},data:{previewPreset:b.id}})}catch{}})();let g=d.cwd?j({cwd:d.cwd,command:d.command,port:d.port}):"no-cwd",i=(0,k.getPreviewSession)(g),m=(b=d.preset,c=d.cwd,b&&b.installMarker&&c?b.installMarker.some(a=>{try{return(0,f.existsSync)((0,e.join)(c,a))}catch{return!1}}):null);return{previewKey:g,status:i?.status??"stopped",preset:d.preset?{id:d.preset.id,name:d.preset.name,icon:d.preset.icon,docUrl:d.preset.docUrl}:null,presetSource:d.presetSource,command:d.command,port:d.port,commandSource:d.commandSource,portSource:d.portSource,projectDefaultCommand:d.projectDefaultCommand,projectDefaultPort:d.projectDefaultPort,presetCommand:d.presetCommand,presetPort:d.presetPort,installCommand:d.installCommand,url:i?.getState().url??null,installed:m,startedAt:i?.getState().startedAt??null,readyAt:i?.getState().readyAt??null,errorMessage:i?.getState().errorMessage??null,recentLogs:i?.getBuffer().slice(-500)??[],activeSubscribers:i?.activeSubscriberCount??0,cwd:d.cwd}}async function s(a){let b=await q(a);if(!b.cwd)return{started:!1,error:"No working directory configured"};if(!b.command)return{started:!1,error:"No command configured"};if(b.port<=0)return{started:!1,error:"Invalid port"};if(await p(b.port))return{started:!1,error:`Port ${b.port} is in use. Set Task.previewPortOverride to use a different port, or stop the conflicting process.`};let c=j({cwd:b.cwd,command:b.command,port:b.port}),d=o(b.command,b.port);return(0,k.getOrCreatePreviewSession)(c,{cwd:b.cwd,command:d.command,args:d.args,port:b.port,preset:b.preset,envOverrides:d.envOverrides}).run()}async function t(a){let b=(0,k.getPreviewSession)(a.previewKey);b&&b.stop()}async function u(a){var b,c,d;let g=await q(a);if(!g.cwd)return{ok:!1,error:"No working directory"};if(!g.installCommand)return{ok:!1,error:"No install command configured"};let h=j({cwd:g.cwd,command:g.command,port:g.port}),i=o(g.installCommand,g.port),l=i.command,m=i.args,n=o(g.command,g.port),p=(0,k.getOrCreatePreviewSession)(h,{cwd:g.cwd,command:n.command,args:n.args,port:g.port,preset:g.preset,envOverrides:n.envOverrides}),r=(b=g.preset,c=g.cwd,d=g.project.localPath,b?.installCwd==="monorepo-root"&&d||d&&c!==d&&function(a){try{if((0,f.existsSync)((0,e.join)(a,"pnpm-workspace.yaml")))return!0;let b=(0,e.join)(a,"package.json");if((0,f.existsSync)(b)&&JSON.parse((0,f.readFileSync)(b,"utf-8")).workspaces)return!0}catch{}return!1}(d)?d:c);return p.install({installCommand:l,installArgs:m,installCwd:r,autoStartAfter:a.autoStartAfter})}async function v(a){let b=await h.db.project.findUniqueOrThrow({where:{id:a.projectId},select:{localPath:!0}}),c=a.worktreePath??b.localPath;if(!c)return{preset:null};let d=await (0,l.detectPreset)(c);return await h.db.project.update({where:{id:a.projectId},data:{previewPreset:d?.id??null}}),{preset:d?.id??null}}async function w(a){let b={};void 0!==a.command&&(b.previewCommand=a.command),void 0!==a.port&&(b.previewPort=a.port),0!==Object.keys(b).length&&await h.db.project.update({where:{id:a.projectId},data:b})}async function x(a){if(a.presetId&&!i.PRESETS.some(b=>b.id===a.presetId))throw Error(`Unknown preset id: ${a.presetId}`);await h.db.project.update({where:{id:a.projectId},data:{previewPreset:a.presetId}})}let y=["Terminal","iTerm","iTerm2","Warp","Hyper","Alacritty","WezTerm","kitty"];async function z(a){if(!a||!(0,e.isAbsolute)(a))throw Error("openInTerminal requires an absolute path");process.platform;{let b=await (0,m.readConfigValue)("terminal.app","Terminal");if(!y.includes(b))throw Error(`Terminal app '${b}' is not in the allowed list`);(0,d.execFileSync)("open",["-a",b,a])}}(0,n.ensureServerEntryExports)([r,s,t,u,v,w,x,z]),(0,b.registerServerReference)(r,"402c4e9f4aa206ae1d95b7c35daf70582324534d01",null),(0,b.registerServerReference)(s,"401354c832d6a854b9b9625f7589c54d509541499d",null),(0,b.registerServerReference)(t,"400efe7912b5600d6cba88858e044b9efd086f9726",null),(0,b.registerServerReference)(u,"40789321926e7bd4e508d6fd108259227575686c99",null),(0,b.registerServerReference)(v,"40e570b85d9df8e18e54a11797081c62e04beb3513",null),(0,b.registerServerReference)(w,"408aba574ac6a914042139877b20f9e62b25b04b94",null),(0,b.registerServerReference)(x,"4072266a69ff2791aaaff9ff90e37bc7aeb9a5f88f",null),(0,b.registerServerReference)(z,"403ca340325912bde0e2b1d86a486dc7e2df43e97a",null),a.s(["getPreviewState",0,r,"installPreviewDeps",0,u,"openInTerminal",0,z,"redetectPreset",0,v,"setProjectDefaults",0,w,"setProjectPreset",0,x,"startPreview",0,s,"stopPreview",0,t],536960)},219416,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=a.i(870888);a.i(347427),a.i(855806),a.i(536960),a.i(689171);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),276083,a=>a.a(async(b,c)=>{try{var d=a.i(219416),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(870888),m=a.i(347427),n=a.i(855806),o=a.i(536960),p=a.i(689171),q=b([d,g,h,l]);[d,g,h,l]=q.then?(await q)():q,a.s(["0023c11ebfde7a363971d720473d3d23890ca4ec3a",()=>l.clearRgPathCache,"0027b9fc85b54fc902a6f81174a9737693d8a77028",()=>l.checkRgAvailable,"002cef6a22fbcfe59287d5079cc25015ff923ae48d",()=>h.getPlatformInfo,"004d5e5f0f83eb1ef2288a566b68aed93fb5c0dac1",()=>h.getActualWsPort,"0076fad9f26a96440cf6339b16b2b62b495d2d3a54",()=>j.listAllExtensionStatus,"007e26c36cb873787dd81caeb6c50157d8b155721e",()=>k.getOnboardingStatus,"00a0b97099e8cb6b622f2a711954334c87abe1080a",()=>h.getAvailableShells,"00c6942b6108ccc33a20279f10e1ae48bc9903123d",()=>n.getProviderConnections,"00d347137e4936f4c6d738082579d6edc8b74772d2",()=>n.getConnectedProviders,"00de0af2e7cd354db0cb2968e7c11f252c13bddbae",()=>h.getAvailableTerminalApps,"00e6163f8013b56d53e51707e5cf70b3c60455b1ac",()=>m.getActiveExecutionsAcrossWorkspaces,"40060c66956018c8ccd2fd706b8bf8735918ec7bec",()=>f.getLabelsForWorkspace,"400ce1f503cf0b70656c69e9893a8385bd858fb143",()=>m.getTaskExecutions,"402351516d449f86b7956dc0ecdbdb23f87f1fde66",()=>m.getTaskMessages,"40361de49f39d6a5015c217d25f4c83c1e74c56fe3",()=>m.stopPtyExecution,"403ca340325912bde0e2b1d86a486dc7e2df43e97a",()=>o.openInTerminal,"404b73123c9c5b6a665df4b8f8a7372b07b31b7552",()=>i.checkMigrationSafety,"40516e3b4bee0e10125bc8f99718f11285c4c8f1bf",()=>j.uninstallExtension,"406175f6bb9c1fd12337272ad5689acca74c5c3fc8",()=>j.checkExtension,"4075366ddb54761e18dd08e2f5b494a738749912d2",()=>p.getProjectTasks,"40776f0b17d59d1e9a99a5caa325badb97a4ba7f1b",()=>e.createProject,"4079ebb22defb77ba47f732a0796eac0b631af9e73",()=>e.deleteWorkspace,"40940bfd60e839176787e8548b2d230ff8ba94dd40",()=>f.createLabel,"40a309e2c1c91aa89372da4fe9310fd3a93970620a",()=>e.createWorkspace,"40a93925248dc900c3922e64f0d7d7a6edc22754dc",()=>k.dispatchTaskCompletionEvent,"40b617c634040e4958cec944de5ecde516ab62d834",()=>k.setOnboardingProgress,"40b8210bad29b9287effac4ca0b4394577316998b1",()=>h.getConfigValues,"40bd6c50fe8fac7531c57b6112574aeea083aed127",()=>j.installExtension,"40c8125ee6f20ab65c27cb3657e65ae58c4c292632",()=>e.getWorkspacesWithRecentTasks,"40d66b510b77a9b67f0caff350789f29b59e3f7fab",()=>m.continueLatestPtyExecution,"40ecfeee3cfe09b809768234f4883994f9408455c1",()=>h.resolveGitLocalPath,"40f7b4a74ba5531b95073c158f1a6fd881477e0abc",()=>f.deleteLabel,"40fffb2b0f4072a3fa40c93de8e3addda1ebf17056",()=>n.isProviderConnected,"6002e5ad92897050c98049fae3c84e1664068ed6ba",()=>m.sendTaskMessage,"601fb06ec593e5120c6526b3499db102ec2f330424",()=>k.setOnboardingExtensions,"60390b384512dc364e2aaebde0d442014b32d054e8",()=>h.setConfigValue,"605046c340e36d2c46aa90481defb5abe8f2a41458",()=>h.getConfigValue,"60514b5f107b3d857b56f15ea79f412b5e56547da3",()=>k.completeOnboarding,"60656edaaa9dd472d2c0eeb67d04a708ce383dfdbd",()=>g.globalSearch,"606c04ea26c7de5786a0eee95283172fceb0ce0b12",()=>n.markProviderDisconnected,"6086820113ff386210746630ba26fed40127e6d96d",()=>i.migrateProjectPath,"609d9db23a309486fd832a6e8df5d055bead725cc6",()=>n.markProviderConnected,"60ac1795b5b7c942c687dc57ea5d957e42128ffd01",()=>m.stopTaskExecution,"60d4489a858aaca079058c7ce9a646fd94198fb5e0",()=>m.resumePtyExecution,"60e05ef551a447debdc70d52fdca5ce8f70ac2ea28",()=>i.analyzeProjectDirectory,"60ea170bc85887feeb6898c5b6cf81db4edca38f23",()=>e.updateWorkspace,"78037521648a48f811e0f5025264125b1cc02f88b6",()=>m.startTaskExecution,"7c124c5a140ee6ef9f805d516a0fbaa0704a05cded",()=>l.searchCode,"7ca7a4078b507dbb9958b5d5bba892497617852ab8",()=>m.startPtyExecution]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0~jyveg._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(a=>Promise.resolve().then(()=>a(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0cie3rm._.js"].map(b=>a.l(b))).then(()=>b(897667)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_07scffz._.js"].map(b=>a.l(b))).then(()=>b(818992)))},610073,a=>{a.v(a=>Promise.resolve().then(()=>a(4634)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
1
+ module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},845427,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(26683);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i,j){let k=h(a),l=e.default.join(k,".worktrees","task-"+f),m="task/"+f;await (0,d.mkdir)(e.default.join(k,".worktrees"),{recursive:!0});let n=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:k,encoding:"utf-8",timeout:1e4}),o=e.default.normalize(l).replace(/\\/g,"/");if(n.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===o))return{worktreePath:l,worktreeBranch:m};if((0,c.existsSync)(l)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${l}`),(0,b.execFileSync)("git",["worktree","remove",l,"--force"],{cwd:k,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",m],{cwd:k,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",l,m],{cwd:k,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:k,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:k,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:k,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",m,l,a],{cwd:k,encoding:"utf-8",timeout:3e4})}return function(a,b,d){let f=g.logger.create("worktree"),h=["node_modules",".next"];for(let g of d?["",d]:[""])if((0,c.existsSync)(e.default.join(a,g,"package.json")))for(let d of h){let h=g?e.default.join(g,d):d,i=e.default.join(a,h),j=e.default.join(b,h);if((0,c.existsSync)(i)){try{(0,c.lstatSync)(j);continue}catch{}try{(0,c.symlinkSync)(i,j,"junction"),f.info(`Symlinked ${h}`,{from:i,to:j})}catch(a){f.warn(`Failed to symlink ${h}`,{error:String(a)})}}}}(k,l,j),{worktreePath:l,worktreeBranch:m}}async function j(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,j])},689171,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(495370),f=a.i(845427),g=a.i(75681),h=a.i(496877),i=a.i(26683),j=a.i(630048);let k=i.logger.create("task-actions");async function l(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null,versionId:b.versionId??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function m(b,e){h.taskStatusSchema.parse(e);let g=await c.db.task.update({where:{id:b},data:{status:e},include:{project:!0}});if("DONE"===e&&!g.baseBranch&&g.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:g.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&a.A(662330).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),"CANCELLED"===e&&g.project?.localPath)try{await (0,f.removeWorktree)(g.project.localPath,b)}catch(a){k.error("Worktree cleanup failed",a,{taskId:b})}return(0,d.revalidatePath)("/workspaces"),g}async function n(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function o(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function p(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}try{let{destroySession:c}=await a.A(98813);c(b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function q(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,OR:[{status:{notIn:["DONE","CANCELLED"]}},{status:{in:["DONE","CANCELLED"]},updatedAt:{gte:b}}]},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function r(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function s(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function t(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),f=await c.db.task.findUnique({where:{id:b}}),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!e(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let h=g.worktreePath,i=f?.baseBranch||"main";try{let a=d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=0===b.length,e=!1,f=null,g=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();if(e=parseInt(b,10)>0){f=d("git",["log","-1","--format=%B"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();g=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:c,files:b,hasCommits:e,lastCommitMessage:f,commitLog:g,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function u(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function v(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},project:{select:{id:!0,name:!0,type:!0,localPath:!0,workspaceId:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0,gitStats:!0}},_count:{select:{assets:!0}}}}):null}async function w(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.count({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}}})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s,t,u,v,w]),(0,b.registerServerReference)(l,"409bbe6fc01abb32bc37e27247a830f1ff7b4298e4",null),(0,b.registerServerReference)(m,"60f4c78494c43e7d556d4ce7c3c488d1910e78fc41",null),(0,b.registerServerReference)(n,"60ee5be31ada904c08098cc09586ba5f81726eb962",null),(0,b.registerServerReference)(o,"4066883545c3df538b3647f24ac853a3a5e71f5222",null),(0,b.registerServerReference)(p,"404695657c06d4cee2e52333ea3045ff4e4741ae65",null),(0,b.registerServerReference)(q,"40deb065dc31ea1509373d984aecdfd35e60f9680c",null),(0,b.registerServerReference)(r,"40b198ed988215a338eae0a10058dbf1a358bc05b6",null),(0,b.registerServerReference)(s,"40700f84e4642d610352abc0eafd04e55c59c21fb8",null),(0,b.registerServerReference)(t,"4094de802b172b703cf5fdaf296860f8bd65799a66",null),(0,b.registerServerReference)(u,"604be9f4860daafba8f70b6fa644375aa678b18d50",null),(0,b.registerServerReference)(v,"40c0f1f3358e69ad57657d2555cfee73e994dad43f",null),(0,b.registerServerReference)(w,"406a32d02b9c5e5efc52f9fdf6f82d8a8051fea401",null),a.s(["checkWorktreeClean",0,t,"commitWorktreeChanges",0,u,"createTask",0,l,"deleteTask",0,p,"getArchivedTaskCount",0,w,"getArchivedTasks",0,s,"getProjectTasks",0,q,"getTaskOverview",0,v,"searchTasks",0,r,"toggleTaskPinned",0,o,"updateTask",0,n,"updateTaskStatus",0,m])},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},859021,(a,b,c)=>{"use strict";b.exports=function(a){return a.map(function(a){return""===a?"''":a&&"object"==typeof a?a.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(a)&&!/'/.test(a)?"'"+a.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(a)?'"'+a.replace(/(["\\$`!])/g,"\\$1")+'"':String(a).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")}},406076,(a,b,c)=>{"use strict";for(var d="(?:\\|\\||\\&\\&|;;|\\|\\&|\\<\\(|\\<\\<\\<|>>|>\\&|<\\&|[&;()|<>])",e=RegExp("^"+d+"$"),f="|&;()<> \\t",g=/^#$/,h="",i=0;i<4;i++)h+=(0x100000000*Math.random()).toString(16);var j=RegExp("^"+h);b.exports=function(a,b,c){var i=function(a,b,c){c||(c={});var i=c.escape||"\\",j=function(a,b){for(var c,d=b.lastIndex,e=[];c=b.exec(a);)e.push(c),b.lastIndex===c.index&&(b.lastIndex+=1);return b.lastIndex=d,e}(a,RegExp(["("+d+")","("+("(\\"+i+"['\""+f+"]|[^\\s'\""+f)+"])+|\"((\\\\\"|[^\"])*?)\"|'((\\\\'|[^'])*?)')+"].join("|"),"g"));if(0===j.length)return[];b||(b={});var k=!1;return j.map(function(c){var d,f=c[0];if(f&&!k){if(e.test(f))return{op:f};var j=!1,l=!1,m="",n=!1;for(d=0;d<f.length;d++){var o=f.charAt(d);if(n=n||!j&&("*"===o||"?"===o),l)m+=o,l=!1;else if(j)o===j?j=!1:"'"==j?m+=o:o===i?(d+=1,'"'===(o=f.charAt(d))||o===i||"$"===o?m+=o:m+=i+o):"$"===o?m+=q():m+=o;else if('"'===o||"'"===o)j=o;else if(e.test(o))return{op:f};else if(g.test(o)){k=!0;var p={comment:a.slice(c.index+d+1)};if(m.length)return[m,p];return[p]}else o===i?l=!0:"$"===o?m+=q():m+=o}return n?{op:"glob",pattern:m}:m}function q(){d+=1;var a,c,e,g,i,j=f.charAt(d);if("{"===j){if(d+=1,"}"===f.charAt(d))throw Error("Bad substitution: "+f.slice(d-2,d+1));if((g=f.indexOf("}",d))<0)throw Error("Bad substitution: "+f.slice(d));i=f.slice(d,g),d=g}else if(/[*@#?$!_-]/.test(j))i=j,d+=1;else{var k=f.slice(d);(g=k.match(/[^\w\d_]/))?(i=k.slice(0,g.index),d+=g.index-1):(i=k,d=f.length)}return a=b,c=i,(void 0===(e="function"==typeof a?a(c):a[c])&&""!=c?e="":void 0===e&&(e="$"),"object"==typeof e)?""+h+JSON.stringify(e)+h:""+e}}).reduce(function(a,b){return void 0===b?a:a.concat(b)},[])}(a,b,c);return"function"!=typeof b?i:i.reduce(function(a,b){if("object"==typeof b)return a.concat(b);var c=b.split(RegExp("("+h+".*?"+h+")","g"));return 1===c.length?a.concat(c[0]):a.concat(c.filter(Boolean).map(function(a){return j.test(a)?JSON.parse(a.split(h)[1]):a}))},[])}},571950,(a,b,c)=>{"use strict";c.quote=a.r(859021),c.parse=a.r(406076)},536960,a=>{"use strict";var b=a.i(815429),c=a.i(761095),d=a.i(874533),e=a.i(750227),f=a.i(902157),g=a.i(571950),h=a.i(761469),i=a.i(742978);function j(a){return`${a.cwd}|${a.command}|${a.port}`}var k=a.i(22700),l=a.i(292380),m=a.i(312369),n=a.i(630048);function o(a,b){let c=a.replace(/\{port\}/g,String(b)),d=(0,g.parse)(c),e={},f=[];for(let a of d)if("string"==typeof a){if(0===f.length&&/^[A-Za-z_][A-Za-z0-9_]*=/.test(a)){let b=a.indexOf("=");e[a.slice(0,b)]=a.slice(b+1);continue}f.push(a)}return{command:f[0]??"",args:f.slice(1),envOverrides:Object.keys(e).length>0?e:void 0}}async function p(a){return new Promise(b=>{let d=(0,c.createServer)();d.once("error",()=>b(!0)),d.once("listening",()=>d.close(()=>b(!1))),d.listen(a,"0.0.0.0")})}async function q(a){var b,c,d,f,g;let j=await h.db.task.findUniqueOrThrow({where:{id:a.taskId},select:{previewCommandOverride:!0,previewPortOverride:!0,subPath:!0}}),k=await h.db.project.findUniqueOrThrow({where:{id:a.projectId},select:{localPath:!0,previewCommand:!0,previewPort:!0,previewPreset:!0,previewInstallCommand:!0}}),m=(b={worktreePath:a.worktreePath,projectLocalPath:k.localPath,subPath:j.subPath}).worktreePath?b.worktreePath:b.projectLocalPath?b.subPath?(0,e.join)(b.projectLocalPath,b.subPath):b.projectLocalPath:null,n=null,o=null;j.subPath&&m?o=(n=await (0,l.detectPreset)(m))?"subPath-detected":null:k.previewPreset&&(o=(n=i.PRESETS.find(a=>a.id===k.previewPreset)??null)?"project":null);let p=n?.command??null,q=n?.port??null,r=(c={taskOverride:j.previewCommandOverride,projectDefault:k.previewCommand,presetCommand:p}).taskOverride??c.projectDefault??c.presetCommand??"",s=(d={taskOverride:j.previewPortOverride,projectDefault:k.previewPort,presetPort:q}).taskOverride??d.projectDefault??d.presetPort??0,t=null!==(f={taskOverride:j.previewCommandOverride,projectDefault:k.previewCommand,presetCommand:p}).taskOverride?"task":null!==f.projectDefault?"project":null!==f.presetCommand?"preset":null,u=null!==(g={taskOverride:j.previewPortOverride,projectDefault:k.previewPort,presetPort:q}).taskOverride?"task":null!==g.projectDefault?"project":null!==g.presetPort?"preset":null,v=k.previewInstallCommand??n?.installCommand??null;return{task:j,project:k,preset:n,presetSource:o,cwd:m,command:r,port:s,commandSource:t,portSource:u,projectDefaultCommand:k.previewCommand,projectDefaultPort:k.previewPort,presetCommand:p,presetPort:q,installCommand:v}}async function r(a){var b,c;let d=await q(a);d.project.previewPreset||d.task.subPath||!d.cwd||(async()=>{try{let b=await (0,l.detectPreset)(d.cwd);b&&await h.db.project.updateMany({where:{id:a.projectId,previewPreset:null},data:{previewPreset:b.id}})}catch{}})();let g=d.cwd?j({cwd:d.cwd,command:d.command,port:d.port}):"no-cwd",i=(0,k.getPreviewSession)(g),m=(b=d.preset,c=d.cwd,b&&b.installMarker&&c?b.installMarker.some(a=>{try{return(0,f.existsSync)((0,e.join)(c,a))}catch{return!1}}):null);return{previewKey:g,status:i?.status??"stopped",preset:d.preset?{id:d.preset.id,name:d.preset.name,icon:d.preset.icon,docUrl:d.preset.docUrl}:null,presetSource:d.presetSource,command:d.command,port:d.port,commandSource:d.commandSource,portSource:d.portSource,projectDefaultCommand:d.projectDefaultCommand,projectDefaultPort:d.projectDefaultPort,presetCommand:d.presetCommand,presetPort:d.presetPort,installCommand:d.installCommand,url:i?.getState().url??null,installed:m,startedAt:i?.getState().startedAt??null,readyAt:i?.getState().readyAt??null,errorMessage:i?.getState().errorMessage??null,recentLogs:i?.getBuffer().slice(-500)??[],activeSubscribers:i?.activeSubscriberCount??0,cwd:d.cwd}}async function s(a){let b=await q(a);if(!b.cwd)return{started:!1,error:"No working directory configured"};if(!b.command)return{started:!1,error:"No command configured"};if(b.port<=0)return{started:!1,error:"Invalid port"};if(await p(b.port))return{started:!1,error:`Port ${b.port} is in use. Set Task.previewPortOverride to use a different port, or stop the conflicting process.`};let c=j({cwd:b.cwd,command:b.command,port:b.port}),d=o(b.command,b.port);return(0,k.getOrCreatePreviewSession)(c,{cwd:b.cwd,command:d.command,args:d.args,port:b.port,preset:b.preset,envOverrides:d.envOverrides}).run()}async function t(a){let b=(0,k.getPreviewSession)(a.previewKey);b&&b.stop()}async function u(a){var b,c,d;let g=await q(a);if(!g.cwd)return{ok:!1,error:"No working directory"};if(!g.installCommand)return{ok:!1,error:"No install command configured"};let h=j({cwd:g.cwd,command:g.command,port:g.port}),i=o(g.installCommand,g.port),l=i.command,m=i.args,n=o(g.command,g.port),p=(0,k.getOrCreatePreviewSession)(h,{cwd:g.cwd,command:n.command,args:n.args,port:g.port,preset:g.preset,envOverrides:n.envOverrides}),r=(b=g.preset,c=g.cwd,d=g.project.localPath,b?.installCwd==="monorepo-root"&&d||d&&c!==d&&function(a){try{if((0,f.existsSync)((0,e.join)(a,"pnpm-workspace.yaml")))return!0;let b=(0,e.join)(a,"package.json");if((0,f.existsSync)(b)&&JSON.parse((0,f.readFileSync)(b,"utf-8")).workspaces)return!0}catch{}return!1}(d)?d:c);return p.install({installCommand:l,installArgs:m,installCwd:r,autoStartAfter:a.autoStartAfter})}async function v(a){let b=await h.db.project.findUniqueOrThrow({where:{id:a.projectId},select:{localPath:!0}}),c=a.worktreePath??b.localPath;if(!c)return{preset:null};let d=await (0,l.detectPreset)(c);return await h.db.project.update({where:{id:a.projectId},data:{previewPreset:d?.id??null}}),{preset:d?.id??null}}async function w(a){let b={};void 0!==a.command&&(b.previewCommand=a.command),void 0!==a.port&&(b.previewPort=a.port),0!==Object.keys(b).length&&await h.db.project.update({where:{id:a.projectId},data:b})}async function x(a){if(a.presetId&&!i.PRESETS.some(b=>b.id===a.presetId))throw Error(`Unknown preset id: ${a.presetId}`);await h.db.project.update({where:{id:a.projectId},data:{previewPreset:a.presetId}})}let y=["Terminal","iTerm","iTerm2","Warp","Hyper","Alacritty","WezTerm","kitty"];async function z(a){if(!a||!(0,e.isAbsolute)(a))throw Error("openInTerminal requires an absolute path");process.platform;{let b=await (0,m.readConfigValue)("terminal.app","Terminal");if(!y.includes(b))throw Error(`Terminal app '${b}' is not in the allowed list`);(0,d.execFileSync)("open",["-a",b,a])}}(0,n.ensureServerEntryExports)([r,s,t,u,v,w,x,z]),(0,b.registerServerReference)(r,"40ad03e9833b3e04b745988c52c1e7e9a5abf72e23",null),(0,b.registerServerReference)(s,"40e4384ec4d5dee41b1fdca079f7099c9237bb4b89",null),(0,b.registerServerReference)(t,"4017e350edb5bae8d422082454fd14f49fd95c27bc",null),(0,b.registerServerReference)(u,"409abc28c6554d9417c644856b4eeced9d2ab07771",null),(0,b.registerServerReference)(v,"402ddcf50ddc5bef2f46b9898a66dbaa01b54666a3",null),(0,b.registerServerReference)(w,"4065c425f828e33f3bafc24a3791be4e856c7e9c4d",null),(0,b.registerServerReference)(x,"401cf14bd259d94a69e5f04d9dd72e2417d385b87d",null),(0,b.registerServerReference)(z,"40cb59c4c538835ebbc47013db94566e29006590d3",null),a.s(["getPreviewState",0,r,"installPreviewDeps",0,u,"openInTerminal",0,z,"redetectPreset",0,v,"setProjectDefaults",0,w,"setProjectPreset",0,x,"startPreview",0,s,"stopPreview",0,t],536960)},219416,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=a.i(870888);a.i(347427),a.i(855806),a.i(536960),a.i(689171);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),276083,a=>a.a(async(b,c)=>{try{var d=a.i(219416),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(870888),m=a.i(347427),n=a.i(855806),o=a.i(536960),p=a.i(689171),q=b([d,g,h,l]);[d,g,h,l]=q.then?(await q)():q,a.s(["00018330b9515eff599b83f6e8aee6a443832226cc",()=>h.getAvailableShells,"00072f5a7586654dc22cf481305bd54b1171339727",()=>l.checkRgAvailable,"0013a3cd3a8e31b13f33788cc92b5aba4c68857cd2",()=>h.getAvailableTerminalApps,"002b4e9133d8b6d5ca7e3249e4fef36ca77fd4f312",()=>k.getOnboardingStatus,"00388f0bda0ef1bb3b6f549cdb2c11e75732fe92ab",()=>l.clearRgPathCache,"0051ddd6448fbf2a66a65d7e1315914f3b5c11ab78",()=>h.getActualWsPort,"00633c627f11fdcba5dff95e7d77576a38c978a1ec",()=>n.getProviderConnections,"00910df10bbfc4b5d291a45250d3df378d48f82ed1",()=>h.getPlatformInfo,"00ad2db05d2bcab27af0f3eec384ac5ee5fd8ff7ff",()=>m.getActiveExecutionsAcrossWorkspaces,"00ede8c87a5fd3cf389b004244892436243749a14e",()=>j.listAllExtensionStatus,"00f1b27b42c89358c138136f95d73465a530d77838",()=>n.getConnectedProviders,"401f7ea193ba5543c03285574962769ca991ba31d8",()=>f.getLabelsForWorkspace,"402122372e078d3b4d354a06d46800cea3913baa0e",()=>n.isProviderConnected,"40233004ae67d9ba423556f54bcd250c4f83cbc987",()=>m.continueLatestPtyExecution,"40283d29fa7b9833cd64d13eef0a2ad2069446e99e",()=>j.installExtension,"403928ab6a0d26d4220647026235dcd5fa07fd9997",()=>m.getTaskMessages,"403e0605e2aba6a2eec83e2e8ba405ef57772e0280",()=>k.setOnboardingProgress,"405f12842eaf6e7fbd4be0c67ac50791456e973c97",()=>j.checkExtension,"40646009de0e55d0d3b7093421c9081cf2081d27cb",()=>f.deleteLabel,"4074f228cf3801433ba841ac53eb8f36891a444fda",()=>k.dispatchTaskCompletionEvent,"40a92eea809884caaf30a67182ed7d2a53f7543fbb",()=>m.stopPtyExecution,"40aba639dc593066ac63c8ec541ceb62bd496f2851",()=>h.resolveGitLocalPath,"40b0cdf5b66ab7543d8191e84ed31d492a2486b6e9",()=>e.deleteWorkspace,"40bc8da9d8c6b8438d8a24ba848844cfb486fac8d3",()=>e.getWorkspacesWithRecentTasks,"40c338d8c5314b7cfc5beedcdd97af7f273793ae64",()=>e.createWorkspace,"40caa258e579479bf02f1a893acac475c1663b10fb",()=>e.createProject,"40cb59c4c538835ebbc47013db94566e29006590d3",()=>o.openInTerminal,"40d59748411a3a25872b85aab4a4175a89dd143e94",()=>m.getTaskExecutions,"40db66b54b24758580994df7ffab9cebf69bdd1bbb",()=>j.uninstallExtension,"40deb065dc31ea1509373d984aecdfd35e60f9680c",()=>p.getProjectTasks,"40e9dfefba5f21a7eb344f5542440fca2bd4b590e8",()=>i.checkMigrationSafety,"40ed3bfc21750c787bb9cc642f0e455c7da7596ce4",()=>f.createLabel,"40f1971affa3738b021a5049f45140ac16887a04ce",()=>h.getConfigValues,"60088220260626dba51ec9bdcc35083d48fb1764a9",()=>m.resumePtyExecution,"6011f7876a4bc0794966ecdf377e7e7a0891971242",()=>e.updateWorkspace,"602ecd9dd13c59e135814994afd7fa5c9fa0ffcf76",()=>k.setOnboardingExtensions,"604228e8167147dad385e05e214722512256091f8f",()=>h.getConfigValue,"6050eab02fb939d63ca619ebecb4bee2b46666483b",()=>m.sendTaskMessage,"60729a2e1a73741fe6456fc5b0c4e6f216f0c9b976",()=>i.analyzeProjectDirectory,"608ece4847384637c6432e566684ef9512ef80b64a",()=>g.globalSearch,"609a813a377de3ae5efca9187c0d69ab079fb791e8",()=>n.markProviderDisconnected,"60bfac4d8a84cfc8a50aaf8f7c80e53b0829767209",()=>n.markProviderConnected,"60c0ecfed34768b8715cd468e9abc4c6fa11d68ab5",()=>h.setConfigValue,"60c2a4bb34e13bf3c6d5fcb7d51fd060e92385e1b9",()=>i.migrateProjectPath,"60df8249d72ac45826c0d808651a4f1b2646da9ef3",()=>k.completeOnboarding,"60f73154d4f8cc093e06a7c451f4195de7117e98e1",()=>m.stopTaskExecution,"78dfe6086ffb93e7df5bfe973c5638ac3fffa021f0",()=>m.startTaskExecution,"7c5b18e719c81439e9ce20a749d41d09247309d0c1",()=>l.searchCode,"7ce5169bf9a176e6efe36f1bbdb236ac5ce25b16ae",()=>m.startPtyExecution]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0~jyveg._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(a=>Promise.resolve().then(()=>a(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0cie3rm._.js"].map(b=>a.l(b))).then(()=>b(897667)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_07scffz._.js"].map(b=>a.l(b))).then(()=>b(818992)))},610073,a=>{a.v(a=>Promise.resolve().then(()=>a(4634)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0n8jy_r._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},924868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},496877,a=>{"use strict";var b=a.i(75681);let c=b.z.string().min(1,"ID is required"),d=b.z.object({name:b.z.string().min(1,"Name is required").max(100),description:b.z.string().max(500).optional()}),e=b.z.object({name:b.z.string().min(1).max(100).optional(),description:b.z.string().max(500).optional()}),f=b.z.object({name:b.z.string().min(1,"Name is required").max(100),alias:b.z.string().max(100).optional(),description:b.z.string().max(5e3).optional(),gitUrl:b.z.string().max(500).optional().or(b.z.literal("")),localPath:b.z.string().optional(),workspaceId:c,projectType:b.z.enum(["FRONTEND","BACKEND"]).optional(),previewCommand:b.z.string().max(500).nullable().optional()}),g=b.z.object({name:b.z.string().min(1).max(100).optional(),alias:b.z.string().max(100).optional(),description:b.z.string().max(5e3).optional(),localPath:b.z.string().optional(),projectType:b.z.enum(["FRONTEND","BACKEND"]).optional(),previewCommand:b.z.string().max(500).nullable().optional(),previewPort:b.z.number().int().min(1).max(65535).nullable().optional()}),h=b.z.object({title:b.z.string().min(1,"Title is required").max(200),description:b.z.string().max(5e3).optional(),projectId:c,priority:b.z.enum(["LOW","MEDIUM","HIGH","CRITICAL"]).optional(),status:b.z.enum(["TODO","IN_PROGRESS","IN_REVIEW","DONE","CANCELLED"]).optional(),labelIds:b.z.array(c).optional(),baseBranch:b.z.string().max(200).optional(),subPath:b.z.string().max(500).optional(),versionId:c.optional()}),i=b.z.object({title:b.z.string().min(1).max(200).optional(),description:b.z.string().max(5e3).optional(),priority:b.z.enum(["LOW","MEDIUM","HIGH","CRITICAL"]).optional(),labelIds:b.z.array(c).optional(),baseBranch:b.z.string().max(200).optional(),subPath:b.z.string().max(500).optional(),previewCommandOverride:b.z.string().max(500).nullable().optional(),previewPortOverride:b.z.number().int().min(1).max(65535).nullable().optional(),versionId:c.optional()}),j=b.z.enum(["TODO","IN_PROGRESS","IN_REVIEW","DONE","CANCELLED"]),k=b.z.object({name:b.z.string().min(1,"Name is required").max(50),color:b.z.string().regex(/^#[0-9a-fA-F]{6}$/,"Invalid hex color"),workspaceId:c}),l=b.z.object({number:b.z.string().min(1,"Number is required").max(50),name:b.z.string().min(1,"Name is required").max(100),typeId:c.optional(),baseBranch:b.z.string().max(200).optional(),startDate:b.z.coerce.date().optional(),targetDate:b.z.coerce.date().optional(),description:b.z.string().max(5e3).optional(),projectId:c,setCurrent:b.z.boolean().optional()}),m=b.z.object({number:b.z.string().min(1).max(50).optional(),name:b.z.string().min(1).max(100).optional(),typeId:c.nullable().optional(),baseBranch:b.z.string().max(200).nullable().optional(),startDate:b.z.coerce.date().nullable().optional(),targetDate:b.z.coerce.date().nullable().optional(),description:b.z.string().max(5e3).nullable().optional()}),n=b.z.object({workspaceId:c,name:b.z.string().min(1).max(50)}),o=b.z.object({name:b.z.string().min(1).max(50)});a.s(["createLabelSchema",0,k,"createProjectSchema",0,f,"createTaskSchema",0,h,"createVersionSchema",0,l,"createVersionTypeSchema",0,n,"createWorkspaceSchema",0,d,"taskStatusSchema",0,j,"updateProjectSchema",0,g,"updateTaskSchema",0,i,"updateVersionSchema",0,m,"updateVersionTypeSchema",0,o,"updateWorkspaceSchema",0,e])},989927,a=>{"use strict";var b=a.i(446786),c=a.i(814747);function d(a){return a.startsWith("~/")?c.default.join(b.default.homedir(),a.slice(2)):a}function e(a){let b,c=a.match(/^git@([^:]+):(.+)$/);if(c)return{host:c[1],pathSegments:f(c[2]).split("/").filter(Boolean)};try{b=new URL(a)}catch{return null}return{host:b.hostname,pathSegments:f(decodeURIComponent(b.pathname)).split("/").filter(Boolean)}}function f(a){return a.replace(/\.git\/?$/,"")}a.s(["expandHome",0,d,"gitUrlToLocalPath",0,function(a){let b=a.trim();if(!b)return"";try{let a=e(b);if(!a)return"";let{host:f,pathSegments:g}=a;if("code.iflytek.com"===f){let a,b;return d((a=[...g],"osc"===a[0]&&"_source"===a[1]&&(a=a.slice(2)),((b=a.indexOf("-"))>0&&(a=a.slice(0,b)),0===a.length)?"":`~/company/${a.join("/")}`))}if("github.com"===f){var c;let a,b;return d((a=(c=g)[0],b=c[1],a&&b?`${"jp-liu"===a?"~/project/i":"~/project/f"}/${b}`:""))}let h=g[g.length-1];return h?d(`~/project/f/${h}`):""}catch{return""}},"matchGitPathRule",0,function(a,b){if(!b.length)return"";let c=a.trim();if(!c)return"";let f=e(c);if(!f)return"";let{host:g,pathSegments:h}=f,i=h[0]??"",j=h[h.length-1]??"",k=[...b].sort((a,b)=>{let c=+("*"===a.ownerMatch),d=+("*"===b.ownerMatch);return c!==d?c-d:a.priority-b.priority}),l=h.join("/");for(let a of k){if(a.host!==g||"*"!==a.ownerMatch&&a.ownerMatch!==i)continue;let b=a.localPathTemplate;if(b.includes("{path}"))return d(b.replace("{path}",l).replace("{owner}",i).replace("{repo}",j).replace(/\/+$/,""));let c=b.replace("{owner}",i).replace("{repo}","").replace(/\/+$/,"");return d(`${c}/${j}`)}return""}])},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},292380,742978,a=>{"use strict";var b=a.i(912714),c=a.i(902157),d=a.i(750227);function e(a,b){let c=function(a){if(!a)return null;try{return JSON.parse(a)}catch{return null}}(a.files["package.json"]);return!!c&&b in{...c.dependencies,...c.devDependencies}}let f=[{id:"next",name:"Next.js",icon:"simple-icons:nextdotjs",detect:a=>e(a,"next"),command:"pnpm dev",port:3e3,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/Ready in \d+/i,urlExtractRegex:/(https?:\/\/[^\s]+)/,docUrl:"https://nextjs.org/docs"},{id:"nuxt",name:"Nuxt",icon:"simple-icons:nuxtdotjs",detect:a=>e(a,"nuxt"),command:"pnpm dev",port:3e3,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/Nuxt .* ready in/i,urlExtractRegex:/(https?:\/\/[^\s]+)/},{id:"uniapp",name:"uni-app",icon:"simple-icons:vuedotjs",detect:a=>e(a,"@dcloudio/uni-app"),command:"pnpm dev:h5",port:9e3,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/ready in|App running at|Network:/i,urlExtractRegex:/Local:\s+(https?:\/\/[^\s]+)/,docUrl:"https://uniapp.dcloud.net.cn/"},{id:"vue-cli",name:"Vue (CLI)",icon:"simple-icons:vuedotjs",detect:a=>e(a,"@vue/cli-service"),command:"pnpm serve",port:8080,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/App running at|DONE\s+Compiled successfully/i,urlExtractRegex:/Local:\s+(https?:\/\/[^\s]+)/,docUrl:"https://cli.vuejs.org/"},{id:"cra",name:"Create React App",icon:"simple-icons:react",detect:a=>e(a,"react-scripts"),command:"pnpm start",port:3e3,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/Compiled successfully|webpack compiled/i,urlExtractRegex:/Local:\s+(https?:\/\/[^\s]+)/,docUrl:"https://create-react-app.dev/"},{id:"vite",name:"Vite",icon:"simple-icons:vite",detect:a=>e(a,"vite"),command:"pnpm dev",port:5173,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/ready in \d+\s*ms/i,urlExtractRegex:/Local:\s+(https?:\/\/[^\s]+)/},{id:"angular",name:"Angular",icon:"simple-icons:angular",detect:a=>e(a,"@angular/core"),command:"pnpm start",port:4200,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/Compiled successfully|Application bundle generation complete/i,urlExtractRegex:/(https?:\/\/[^\s]+)/},{id:"spring-boot-maven",name:"Spring Boot (Maven)",icon:"simple-icons:springboot",detect:a=>{let b=a.files["pom.xml"];return!!(b&&/spring-boot-starter/.test(b))},command:"./mvnw spring-boot:run",port:8080,installCommand:"./mvnw dependency:resolve",installMarker:["target"],readyRegex:/Started \w+Application in [\d.]+ seconds/i,urlExtractRegex:null,startTimeoutMs:12e4},{id:"spring-boot-gradle",name:"Spring Boot (Gradle)",icon:"simple-icons:springboot",detect:a=>{let b=a.files["build.gradle"]??a.files["build.gradle.kts"];return!!(b&&/spring-boot/.test(b))},command:"./gradlew bootRun",port:8080,installCommand:"./gradlew --refresh-dependencies",installMarker:[".gradle"],readyRegex:/Started \w+Application in [\d.]+ seconds/i,urlExtractRegex:null,startTimeoutMs:12e4},{id:"django",name:"Django",icon:"simple-icons:django",detect:a=>null!==a.files["manage.py"]&&void 0!==a.files["manage.py"],command:"python manage.py runserver",port:8e3,installCommand:"pip install -r requirements.txt",installMarker:[".venv","venv"],readyRegex:/Starting development server at/i,urlExtractRegex:/at\s+(https?:\/\/[^\s]+)/},{id:"fastapi",name:"FastAPI",icon:"simple-icons:fastapi",detect:a=>{let b=a.files["requirements.txt"]??"",c=a.files["pyproject.toml"]??"";return/fastapi/i.test((b??"")+(c??""))},command:"uvicorn main:app --reload",port:8e3,installCommand:"pip install -r requirements.txt",installMarker:[".venv","venv"],readyRegex:/Application startup complete|Uvicorn running on/i,urlExtractRegex:/running on\s+(https?:\/\/[^\s]+)/},{id:"flask",name:"Flask",icon:"simple-icons:flask",detect:a=>{let b=a.files["requirements.txt"]??"";return/^flask/im.test(b??"")},command:"flask --app app run",port:5e3,installCommand:"pip install -r requirements.txt",installMarker:[".venv","venv"],readyRegex:/Running on\s+http/i,urlExtractRegex:/Running on\s+(https?:\/\/[^\s]+)/},{id:"go-generic",name:"Go",icon:"simple-icons:go",detect:a=>null!==a.files["go.mod"]&&void 0!==a.files["go.mod"],command:"go run .",port:8080,installCommand:"go mod download",installMarker:["go.sum"],readyRegex:null,urlExtractRegex:/(https?:\/\/[^\s]+)/},{id:"static",name:"Static HTML",icon:"simple-icons:html5",detect:a=>null!==a.files["index.html"]&&void 0!==a.files["index.html"]&&!a.files["package.json"]&&!a.files["pom.xml"],command:"npx serve -l {port} .",port:3e3,installCommand:null,installMarker:null,readyRegex:/Accepting connections at/i,urlExtractRegex:/(https?:\/\/[^\s]+)/}];a.s(["PRESETS",0,f],742978);let g=["package.json","pom.xml","build.gradle","build.gradle.kts","manage.py","requirements.txt","pyproject.toml","go.mod","index.html"];async function h(a){return Object.fromEntries(await Promise.all(g.map(async c=>{try{let e=await (0,b.readFile)((0,d.join)(a,c),"utf-8");return[c,e]}catch{return[c,null]}})))}async function i(a){return{files:await h(a),hasDir:()=>!1}}async function j(a){try{await (0,b.access)(a,c.constants.R_OK)}catch{return null}let d=await i(a);for(let a of f)try{if(a.detect(d))return a}catch{}return null}a.s(["detectPreset",0,j],292380)},244256,a=>{"use strict";var b=a.i(815429),c=a.i(924868),d=a.i(912714),e=a.i(814747),f=a.i(761469),g=a.i(188139),h=a.i(496877),i=a.i(989927),j=a.i(292380);async function k(){return f.db.workspace.findMany({select:{id:!0,name:!0,projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}},orderBy:{updatedAt:"desc"}})}async function l(a){return f.db.workspace.findUnique({where:{id:a},include:{projects:{include:{tasks:{orderBy:[{order:"asc"},{createdAt:"desc"}]},repositories:!0}}}})}async function m(a){let b=h.createWorkspaceSchema.parse(a),c=await f.db.workspace.create({data:b});return(0,g.revalidatePath)("/workspaces"),c}async function n(a,b){let c=h.updateWorkspaceSchema.parse(b),d=await f.db.workspace.update({where:{id:a},data:c});return(0,g.revalidatePath)("/workspaces"),d}async function o(a){if(await f.db.workspace.count()<=1)throw Error("Cannot delete the last workspace");await f.db.workspace.delete({where:{id:a}}),(0,g.revalidatePath)("/workspaces")}async function p(b){let k=h.createProjectSchema.parse(b),l=k.localPath?(0,i.expandHome)(k.localPath):void 0;if(l&&!k.gitUrl&&e.default.isAbsolute(l))try{await (0,c.mkdir)(l,{recursive:!0})}catch(a){throw Error(`无法创建项目目录 ${l}: ${a.message}`)}let m=await f.db.project.create({data:{name:k.name,alias:k.alias,description:k.description,type:k.gitUrl?"GIT":"NORMAL",gitUrl:k.gitUrl||void 0,localPath:l,projectType:k.projectType,previewCommand:k.previewCommand,workspaceId:k.workspaceId}});try{let{ensureTowerTask:b}=await a.A(76052);await b(m.id,k.name)}catch(a){console.warn("Failed to auto-create Tower task",a)}if(l)try{if((await (0,d.readdir)(l).catch(()=>[])).length>0){let a=await (0,j.detectPreset)(l);a&&await f.db.project.update({where:{id:m.id},data:{previewPreset:a.id}})}}catch{}return(0,g.revalidatePath)("/workspaces"),m}async function q(a,b){let c={...h.updateProjectSchema.parse(b)};c.localPath&&(c.localPath=(0,i.expandHome)(c.localPath));let e=await f.db.project.update({where:{id:a},data:c});if(void 0!==b.localPath){let c=b.localPath?(0,i.expandHome)(b.localPath):null;if(c)try{if((await (0,d.readdir)(c).catch(()=>[])).length>0){let b=await (0,j.detectPreset)(c);await f.db.project.update({where:{id:a},data:{previewPreset:b?.id??null}})}}catch{}}return(0,g.revalidatePath)("/workspaces"),e}async function r(b){let c=await f.db.task.findMany({where:{projectId:b},include:{project:{select:{localPath:!0}}}}),{destroySession:d}=await a.A(98813),{removeWorktree:e}=await a.A(507502);for(let a of c){try{d(a.id)}catch{}if(await f.db.taskExecution.updateMany({where:{taskId:a.id,status:{in:["PENDING","RUNNING","PAUSED"]}},data:{status:"FAILED",endedAt:new Date}}),a.project?.localPath)try{await e(a.project.localPath,a.id)}catch{}["DONE","CANCELLED"].includes(a.status)||await f.db.task.update({where:{id:a.id},data:{status:"CANCELLED"}})}await f.db.project.delete({where:{id:b}}),(0,g.revalidatePath)("/workspaces")}async function s(a){return f.db.project.findFirst({where:{localPath:a},include:{workspace:!0}})}async function t(a=3){return f.db.workspace.findMany({select:{id:!0,name:!0,projects:{select:{id:!0,name:!0,alias:!0,tasks:{where:{status:{in:["TODO","IN_PROGRESS","IN_REVIEW"]},NOT:{labels:{some:{label:{name:"Tower",isBuiltin:!0}}}}},select:{id:!0,title:!0,status:!0,priority:!0,executions:{where:{sessionId:{not:null}},select:{sessionId:!0},orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"},take:a},_count:{select:{tasks:{where:{status:{in:["TODO","IN_PROGRESS","IN_REVIEW"]},NOT:{labels:{some:{label:{name:"Tower",isBuiltin:!0}}}}}}}}},orderBy:{createdAt:"asc"}}},orderBy:{updatedAt:"desc"}})}async function u(a=10){return f.db.project.findMany({where:{localPath:{not:null}},select:{id:!0,name:!0,alias:!0,localPath:!0,workspaceId:!0,type:!0,updatedAt:!0},orderBy:{updatedAt:"desc"},take:a})}async function v(b){let c=await f.db.project.findUnique({where:{id:b},select:{id:!0,name:!0}});if(!c)throw Error("Project not found");let{ensureTowerTask:d}=await a.A(76052);return d(c.id,c.name)}(0,a.i(630048).ensureServerEntryExports)([k,l,m,n,o,p,q,r,s,t,u,v]),(0,b.registerServerReference)(k,"00ad25b2f7ce47d532968f251a381148fd0a437e22",null),(0,b.registerServerReference)(l,"40c9c6d7dd62085c97033749156587c098ae391fe5",null),(0,b.registerServerReference)(m,"40a309e2c1c91aa89372da4fe9310fd3a93970620a",null),(0,b.registerServerReference)(n,"60ea170bc85887feeb6898c5b6cf81db4edca38f23",null),(0,b.registerServerReference)(o,"4079ebb22defb77ba47f732a0796eac0b631af9e73",null),(0,b.registerServerReference)(p,"40776f0b17d59d1e9a99a5caa325badb97a4ba7f1b",null),(0,b.registerServerReference)(q,"605c61fe8c0bf2d00484921cd91f9342a98fa96570",null),(0,b.registerServerReference)(r,"404cd4fe2c541db2f2443005c219384ea571ca20b4",null),(0,b.registerServerReference)(s,"40c45a4b01600122f196861d18fe02dcf9c3a6ca0c",null),(0,b.registerServerReference)(t,"40c8125ee6f20ab65c27cb3657e65ae58c4c292632",null),(0,b.registerServerReference)(u,"40216748760af47617c9c05d3010de0ab41af09951",null),(0,b.registerServerReference)(v,"4032a2a258cae1bccae0b5d4df8dde6f4771f1cb6e",null),a.s(["createProject",0,p,"createWorkspace",0,m,"deleteProject",0,r,"deleteWorkspace",0,o,"getOrCreateTowerTaskId",0,v,"getProjectByLocalPath",0,s,"getRecentLocalProjects",0,u,"getWorkspaceById",0,l,"getWorkspacesWithProjects",0,k,"getWorkspacesWithRecentTasks",0,t,"updateProject",0,q,"updateWorkspace",0,n])}];
1
+ module.exports=[446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},924868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},496877,a=>{"use strict";var b=a.i(75681);let c=b.z.string().min(1,"ID is required"),d=b.z.object({name:b.z.string().min(1,"Name is required").max(100),description:b.z.string().max(500).optional()}),e=b.z.object({name:b.z.string().min(1).max(100).optional(),description:b.z.string().max(500).optional()}),f=b.z.object({name:b.z.string().min(1,"Name is required").max(100),alias:b.z.string().max(100).optional(),description:b.z.string().max(5e3).optional(),gitUrl:b.z.string().max(500).optional().or(b.z.literal("")),localPath:b.z.string().optional(),workspaceId:c,projectType:b.z.enum(["FRONTEND","BACKEND"]).optional(),previewCommand:b.z.string().max(500).nullable().optional()}),g=b.z.object({name:b.z.string().min(1).max(100).optional(),alias:b.z.string().max(100).optional(),description:b.z.string().max(5e3).optional(),localPath:b.z.string().optional(),projectType:b.z.enum(["FRONTEND","BACKEND"]).optional(),previewCommand:b.z.string().max(500).nullable().optional(),previewPort:b.z.number().int().min(1).max(65535).nullable().optional()}),h=b.z.object({title:b.z.string().min(1,"Title is required").max(200),description:b.z.string().max(5e3).optional(),projectId:c,priority:b.z.enum(["LOW","MEDIUM","HIGH","CRITICAL"]).optional(),status:b.z.enum(["TODO","IN_PROGRESS","IN_REVIEW","DONE","CANCELLED"]).optional(),labelIds:b.z.array(c).optional(),baseBranch:b.z.string().max(200).optional(),subPath:b.z.string().max(500).optional(),versionId:c.optional()}),i=b.z.object({title:b.z.string().min(1).max(200).optional(),description:b.z.string().max(5e3).optional(),priority:b.z.enum(["LOW","MEDIUM","HIGH","CRITICAL"]).optional(),labelIds:b.z.array(c).optional(),baseBranch:b.z.string().max(200).optional(),subPath:b.z.string().max(500).optional(),previewCommandOverride:b.z.string().max(500).nullable().optional(),previewPortOverride:b.z.number().int().min(1).max(65535).nullable().optional(),versionId:c.optional()}),j=b.z.enum(["TODO","IN_PROGRESS","IN_REVIEW","DONE","CANCELLED"]),k=b.z.object({name:b.z.string().min(1,"Name is required").max(50),color:b.z.string().regex(/^#[0-9a-fA-F]{6}$/,"Invalid hex color"),workspaceId:c}),l=b.z.object({number:b.z.string().min(1,"Number is required").max(50),name:b.z.string().min(1,"Name is required").max(100),typeId:c.optional(),baseBranch:b.z.string().max(200).optional(),startDate:b.z.coerce.date().optional(),targetDate:b.z.coerce.date().optional(),description:b.z.string().max(5e3).optional(),projectId:c,setCurrent:b.z.boolean().optional()}),m=b.z.object({number:b.z.string().min(1).max(50).optional(),name:b.z.string().min(1).max(100).optional(),typeId:c.nullable().optional(),baseBranch:b.z.string().max(200).nullable().optional(),startDate:b.z.coerce.date().nullable().optional(),targetDate:b.z.coerce.date().nullable().optional(),description:b.z.string().max(5e3).nullable().optional()}),n=b.z.object({workspaceId:c,name:b.z.string().min(1).max(50)}),o=b.z.object({name:b.z.string().min(1).max(50)});a.s(["createLabelSchema",0,k,"createProjectSchema",0,f,"createTaskSchema",0,h,"createVersionSchema",0,l,"createVersionTypeSchema",0,n,"createWorkspaceSchema",0,d,"taskStatusSchema",0,j,"updateProjectSchema",0,g,"updateTaskSchema",0,i,"updateVersionSchema",0,m,"updateVersionTypeSchema",0,o,"updateWorkspaceSchema",0,e])},989927,a=>{"use strict";var b=a.i(446786),c=a.i(814747);function d(a){return a.startsWith("~/")?c.default.join(b.default.homedir(),a.slice(2)):a}function e(a){let b,c=a.match(/^git@([^:]+):(.+)$/);if(c)return{host:c[1],pathSegments:f(c[2]).split("/").filter(Boolean)};try{b=new URL(a)}catch{return null}return{host:b.hostname,pathSegments:f(decodeURIComponent(b.pathname)).split("/").filter(Boolean)}}function f(a){return a.replace(/\.git\/?$/,"")}a.s(["expandHome",0,d,"gitUrlToLocalPath",0,function(a){let b=a.trim();if(!b)return"";try{let a=e(b);if(!a)return"";let{host:f,pathSegments:g}=a;if("code.iflytek.com"===f){let a,b;return d((a=[...g],"osc"===a[0]&&"_source"===a[1]&&(a=a.slice(2)),((b=a.indexOf("-"))>0&&(a=a.slice(0,b)),0===a.length)?"":`~/company/${a.join("/")}`))}if("github.com"===f){var c;let a,b;return d((a=(c=g)[0],b=c[1],a&&b?`${"jp-liu"===a?"~/project/i":"~/project/f"}/${b}`:""))}let h=g[g.length-1];return h?d(`~/project/f/${h}`):""}catch{return""}},"matchGitPathRule",0,function(a,b){if(!b.length)return"";let c=a.trim();if(!c)return"";let f=e(c);if(!f)return"";let{host:g,pathSegments:h}=f,i=h[0]??"",j=h[h.length-1]??"",k=[...b].sort((a,b)=>{let c=+("*"===a.ownerMatch),d=+("*"===b.ownerMatch);return c!==d?c-d:a.priority-b.priority}),l=h.join("/");for(let a of k){if(a.host!==g||"*"!==a.ownerMatch&&a.ownerMatch!==i)continue;let b=a.localPathTemplate;if(b.includes("{path}"))return d(b.replace("{path}",l).replace("{owner}",i).replace("{repo}",j).replace(/\/+$/,""));let c=b.replace("{owner}",i).replace("{repo}","").replace(/\/+$/,"");return d(`${c}/${j}`)}return""}])},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},292380,742978,a=>{"use strict";var b=a.i(912714),c=a.i(902157),d=a.i(750227);function e(a,b){let c=function(a){if(!a)return null;try{return JSON.parse(a)}catch{return null}}(a.files["package.json"]);return!!c&&b in{...c.dependencies,...c.devDependencies}}let f=[{id:"next",name:"Next.js",icon:"simple-icons:nextdotjs",detect:a=>e(a,"next"),command:"pnpm dev",port:3e3,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/Ready in \d+/i,urlExtractRegex:/(https?:\/\/[^\s]+)/,docUrl:"https://nextjs.org/docs"},{id:"nuxt",name:"Nuxt",icon:"simple-icons:nuxtdotjs",detect:a=>e(a,"nuxt"),command:"pnpm dev",port:3e3,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/Nuxt .* ready in/i,urlExtractRegex:/(https?:\/\/[^\s]+)/},{id:"uniapp",name:"uni-app",icon:"simple-icons:vuedotjs",detect:a=>e(a,"@dcloudio/uni-app"),command:"pnpm dev:h5",port:9e3,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/ready in|App running at|Network:/i,urlExtractRegex:/Local:\s+(https?:\/\/[^\s]+)/,docUrl:"https://uniapp.dcloud.net.cn/"},{id:"vue-cli",name:"Vue (CLI)",icon:"simple-icons:vuedotjs",detect:a=>e(a,"@vue/cli-service"),command:"pnpm serve",port:8080,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/App running at|DONE\s+Compiled successfully/i,urlExtractRegex:/Local:\s+(https?:\/\/[^\s]+)/,docUrl:"https://cli.vuejs.org/"},{id:"cra",name:"Create React App",icon:"simple-icons:react",detect:a=>e(a,"react-scripts"),command:"pnpm start",port:3e3,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/Compiled successfully|webpack compiled/i,urlExtractRegex:/Local:\s+(https?:\/\/[^\s]+)/,docUrl:"https://create-react-app.dev/"},{id:"vite",name:"Vite",icon:"simple-icons:vite",detect:a=>e(a,"vite"),command:"pnpm dev",port:5173,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/ready in \d+\s*ms/i,urlExtractRegex:/Local:\s+(https?:\/\/[^\s]+)/},{id:"angular",name:"Angular",icon:"simple-icons:angular",detect:a=>e(a,"@angular/core"),command:"pnpm start",port:4200,installCommand:"pnpm install",installMarker:["node_modules"],readyRegex:/Compiled successfully|Application bundle generation complete/i,urlExtractRegex:/(https?:\/\/[^\s]+)/},{id:"spring-boot-maven",name:"Spring Boot (Maven)",icon:"simple-icons:springboot",detect:a=>{let b=a.files["pom.xml"];return!!(b&&/spring-boot-starter/.test(b))},command:"./mvnw spring-boot:run",port:8080,installCommand:"./mvnw dependency:resolve",installMarker:["target"],readyRegex:/Started \w+Application in [\d.]+ seconds/i,urlExtractRegex:null,startTimeoutMs:12e4},{id:"spring-boot-gradle",name:"Spring Boot (Gradle)",icon:"simple-icons:springboot",detect:a=>{let b=a.files["build.gradle"]??a.files["build.gradle.kts"];return!!(b&&/spring-boot/.test(b))},command:"./gradlew bootRun",port:8080,installCommand:"./gradlew --refresh-dependencies",installMarker:[".gradle"],readyRegex:/Started \w+Application in [\d.]+ seconds/i,urlExtractRegex:null,startTimeoutMs:12e4},{id:"django",name:"Django",icon:"simple-icons:django",detect:a=>null!==a.files["manage.py"]&&void 0!==a.files["manage.py"],command:"python manage.py runserver",port:8e3,installCommand:"pip install -r requirements.txt",installMarker:[".venv","venv"],readyRegex:/Starting development server at/i,urlExtractRegex:/at\s+(https?:\/\/[^\s]+)/},{id:"fastapi",name:"FastAPI",icon:"simple-icons:fastapi",detect:a=>{let b=a.files["requirements.txt"]??"",c=a.files["pyproject.toml"]??"";return/fastapi/i.test((b??"")+(c??""))},command:"uvicorn main:app --reload",port:8e3,installCommand:"pip install -r requirements.txt",installMarker:[".venv","venv"],readyRegex:/Application startup complete|Uvicorn running on/i,urlExtractRegex:/running on\s+(https?:\/\/[^\s]+)/},{id:"flask",name:"Flask",icon:"simple-icons:flask",detect:a=>{let b=a.files["requirements.txt"]??"";return/^flask/im.test(b??"")},command:"flask --app app run",port:5e3,installCommand:"pip install -r requirements.txt",installMarker:[".venv","venv"],readyRegex:/Running on\s+http/i,urlExtractRegex:/Running on\s+(https?:\/\/[^\s]+)/},{id:"go-generic",name:"Go",icon:"simple-icons:go",detect:a=>null!==a.files["go.mod"]&&void 0!==a.files["go.mod"],command:"go run .",port:8080,installCommand:"go mod download",installMarker:["go.sum"],readyRegex:null,urlExtractRegex:/(https?:\/\/[^\s]+)/},{id:"static",name:"Static HTML",icon:"simple-icons:html5",detect:a=>null!==a.files["index.html"]&&void 0!==a.files["index.html"]&&!a.files["package.json"]&&!a.files["pom.xml"],command:"npx serve -l {port} .",port:3e3,installCommand:null,installMarker:null,readyRegex:/Accepting connections at/i,urlExtractRegex:/(https?:\/\/[^\s]+)/}];a.s(["PRESETS",0,f],742978);let g=["package.json","pom.xml","build.gradle","build.gradle.kts","manage.py","requirements.txt","pyproject.toml","go.mod","index.html"];async function h(a){return Object.fromEntries(await Promise.all(g.map(async c=>{try{let e=await (0,b.readFile)((0,d.join)(a,c),"utf-8");return[c,e]}catch{return[c,null]}})))}async function i(a){return{files:await h(a),hasDir:()=>!1}}async function j(a){try{await (0,b.access)(a,c.constants.R_OK)}catch{return null}let d=await i(a);for(let a of f)try{if(a.detect(d))return a}catch{}return null}a.s(["detectPreset",0,j],292380)},244256,a=>{"use strict";var b=a.i(815429),c=a.i(924868),d=a.i(912714),e=a.i(814747),f=a.i(761469),g=a.i(188139),h=a.i(496877),i=a.i(989927),j=a.i(292380);async function k(){return f.db.workspace.findMany({select:{id:!0,name:!0,projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}},orderBy:{updatedAt:"desc"}})}async function l(a){return f.db.workspace.findUnique({where:{id:a},include:{projects:{include:{tasks:{orderBy:[{order:"asc"},{createdAt:"desc"}]},repositories:!0}}}})}async function m(a){let b=h.createWorkspaceSchema.parse(a),c=await f.db.workspace.create({data:b});return(0,g.revalidatePath)("/workspaces"),c}async function n(a,b){let c=h.updateWorkspaceSchema.parse(b),d=await f.db.workspace.update({where:{id:a},data:c});return(0,g.revalidatePath)("/workspaces"),d}async function o(a){if(await f.db.workspace.count()<=1)throw Error("Cannot delete the last workspace");await f.db.workspace.delete({where:{id:a}}),(0,g.revalidatePath)("/workspaces")}async function p(b){let k=h.createProjectSchema.parse(b),l=k.localPath?(0,i.expandHome)(k.localPath):void 0;if(l&&!k.gitUrl&&e.default.isAbsolute(l))try{await (0,c.mkdir)(l,{recursive:!0})}catch(a){throw Error(`无法创建项目目录 ${l}: ${a.message}`)}let m=await f.db.project.create({data:{name:k.name,alias:k.alias,description:k.description,type:k.gitUrl?"GIT":"NORMAL",gitUrl:k.gitUrl||void 0,localPath:l,projectType:k.projectType,previewCommand:k.previewCommand,workspaceId:k.workspaceId}});try{let{ensureTowerTask:b}=await a.A(76052);await b(m.id,k.name)}catch(a){console.warn("Failed to auto-create Tower task",a)}if(l)try{if((await (0,d.readdir)(l).catch(()=>[])).length>0){let a=await (0,j.detectPreset)(l);a&&await f.db.project.update({where:{id:m.id},data:{previewPreset:a.id}})}}catch{}return(0,g.revalidatePath)("/workspaces"),m}async function q(a,b){let c={...h.updateProjectSchema.parse(b)};c.localPath&&(c.localPath=(0,i.expandHome)(c.localPath));let e=await f.db.project.update({where:{id:a},data:c});if(void 0!==b.localPath){let c=b.localPath?(0,i.expandHome)(b.localPath):null;if(c)try{if((await (0,d.readdir)(c).catch(()=>[])).length>0){let b=await (0,j.detectPreset)(c);await f.db.project.update({where:{id:a},data:{previewPreset:b?.id??null}})}}catch{}}return(0,g.revalidatePath)("/workspaces"),e}async function r(b){let c=await f.db.task.findMany({where:{projectId:b},include:{project:{select:{localPath:!0}}}}),{destroySession:d}=await a.A(98813),{removeWorktree:e}=await a.A(507502);for(let a of c){try{d(a.id)}catch{}if(await f.db.taskExecution.updateMany({where:{taskId:a.id,status:{in:["PENDING","RUNNING","PAUSED"]}},data:{status:"FAILED",endedAt:new Date}}),a.project?.localPath)try{await e(a.project.localPath,a.id)}catch{}["DONE","CANCELLED"].includes(a.status)||await f.db.task.update({where:{id:a.id},data:{status:"CANCELLED"}})}await f.db.project.delete({where:{id:b}}),(0,g.revalidatePath)("/workspaces")}async function s(a){return f.db.project.findFirst({where:{localPath:a},include:{workspace:!0}})}async function t(a=3){return f.db.workspace.findMany({select:{id:!0,name:!0,projects:{select:{id:!0,name:!0,alias:!0,tasks:{where:{status:{in:["TODO","IN_PROGRESS","IN_REVIEW"]},NOT:{labels:{some:{label:{name:"Tower",isBuiltin:!0}}}}},select:{id:!0,title:!0,status:!0,priority:!0,executions:{where:{sessionId:{not:null}},select:{sessionId:!0},orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"},take:a},_count:{select:{tasks:{where:{status:{in:["TODO","IN_PROGRESS","IN_REVIEW"]},NOT:{labels:{some:{label:{name:"Tower",isBuiltin:!0}}}}}}}}},orderBy:{createdAt:"asc"}}},orderBy:{updatedAt:"desc"}})}async function u(a=10){return f.db.project.findMany({where:{localPath:{not:null}},select:{id:!0,name:!0,alias:!0,localPath:!0,workspaceId:!0,type:!0,updatedAt:!0},orderBy:{updatedAt:"desc"},take:a})}async function v(b){let c=await f.db.project.findUnique({where:{id:b},select:{id:!0,name:!0}});if(!c)throw Error("Project not found");let{ensureTowerTask:d}=await a.A(76052);return d(c.id,c.name)}(0,a.i(630048).ensureServerEntryExports)([k,l,m,n,o,p,q,r,s,t,u,v]),(0,b.registerServerReference)(k,"004d59886d49e36875cbf469ae444d61c8de28ab13",null),(0,b.registerServerReference)(l,"40c84a36efa9dd56165724a7e56b7c31d4af32f339",null),(0,b.registerServerReference)(m,"40c338d8c5314b7cfc5beedcdd97af7f273793ae64",null),(0,b.registerServerReference)(n,"6011f7876a4bc0794966ecdf377e7e7a0891971242",null),(0,b.registerServerReference)(o,"40b0cdf5b66ab7543d8191e84ed31d492a2486b6e9",null),(0,b.registerServerReference)(p,"40caa258e579479bf02f1a893acac475c1663b10fb",null),(0,b.registerServerReference)(q,"60d48616ad8d81772d41c600d3d9ed9da30f2c66fa",null),(0,b.registerServerReference)(r,"40668b097182c1d021fb7b9aadb3bf9a0b8bf0cce1",null),(0,b.registerServerReference)(s,"40a8b6ab91b37570dbbb0e7225e68e079b8fa5ff46",null),(0,b.registerServerReference)(t,"40bc8da9d8c6b8438d8a24ba848844cfb486fac8d3",null),(0,b.registerServerReference)(u,"4014037c5ac85ca2fc18eda280c6af8ae68365971e",null),(0,b.registerServerReference)(v,"4047e3da62dda0ac86560017c650888e6ebed1792b",null),a.s(["createProject",0,p,"createWorkspace",0,m,"deleteProject",0,r,"deleteWorkspace",0,o,"getOrCreateTowerTaskId",0,v,"getProjectByLocalPath",0,s,"getRecentLocalProjects",0,u,"getWorkspaceById",0,l,"getWorkspacesWithProjects",0,k,"getWorkspacesWithRecentTasks",0,t,"updateProject",0,q,"updateWorkspace",0,n])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0ps55l6._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[799620,(a,b,c)=>{b.exports=a.x("@vscode/ripgrep-9efc5655eb017bdc",()=>require("@vscode/ripgrep-9efc5655eb017bdc"))},870888,a=>a.a(async(b,c)=>{try{let o;var d=a.i(815429),e=a.i(233405),f=a.i(522734),g=a.i(75681),h=a.i(980999),i=a.i(630048),j=b([h]);function k(){return o||(o=function(){try{let b=a.r(799620).rgPath;if(b&&(0,f.existsSync)(b))return b}catch{}try{let a=(0,e.execFileSync)("which",["rg"],{encoding:"utf-8"}).trim();if(a&&(0,f.existsSync)(a))return a}catch{}throw Error("ripgrep not found: install @vscode/ripgrep or system rg")}()),o}async function l(){try{return k(),{available:!0,platform:process.platform}}catch{return{available:!1,platform:process.platform}}}async function m(){o=void 0}[h]=j.then?(await j)():j;let p=g.z.object({localPath:g.z.string().min(1),pattern:g.z.string().min(1).max(500),glob:g.z.string().max(200).optional(),maxResults:g.z.number().int().min(1).max(500).default(200)});async function n(a,b,c,d=200,f){let g,i,j=p.safeParse({localPath:a,pattern:b,glob:c,maxResults:d});if(!j.success)return{matches:[],truncated:!1,error:`Invalid input: ${j.error.message}`};let{localPath:l,pattern:m,glob:o,maxResults:q}=j.data;if(!(l.startsWith("/")||/^[a-zA-Z]:[/\\]/.test(l)))return{matches:[],truncated:!1,error:"localPath must be an absolute path"};try{g=k()}catch(a){return{matches:[],truncated:!1,error:a.message.slice(0,200),errorKind:"not_installed"}}let r=["--json","-n",m];o&&r.push("--glob",o),r.push(l);let s=await (0,h.getConfigValue)("search.codeTimeoutSec",30),t=1e3*Math.max(1,s),u=f instanceof AbortSignal?f:void 0;try{var v,w;i=await (v=g,w={encoding:"utf-8",maxBuffer:0xa00000,timeout:t,signal:u},new Promise((a,b)=>{(0,e.execFile)(v,r,w,(c,d,e)=>{c?(c.stderr="string"==typeof e?e:e?.toString(),b(c)):a("string"==typeof d?d:d.toString())})}))}catch(b){if(1===b.code)return{matches:[],truncated:!1};let a=function(a){if("AbortError"===a.name)return{kind:"aborted",message:""};if(a.killed&&("SIGTERM"===a.signal||"SIGKILL"===a.signal))return{kind:"timeout",message:a.message??"search timed out"};let b=a.stderr??"",c=`${a.message??""} ${b}`.toLowerCase();return c.includes("permission denied")||c.includes("eacces")?{kind:"permission_denied",message:b||a.message||"permission denied"}:c.includes("not found")||c.includes("enoent")||c.includes("ripgrep")?{kind:"not_installed",message:b||a.message||"ripgrep not found"}:{kind:"unknown",message:(b||a.message||"unknown error").slice(0,200)}}(b);if("aborted"===a.kind)return{matches:[],truncated:!1,aborted:!0};return console.error("[searchCode] rg failed:",b),{matches:[],truncated:!1,error:a.message.slice(0,200),errorKind:a.kind}}let x=i.split("\n"),y=[];for(let a of x){let b,c=a.trim();if(!c)continue;try{b=JSON.parse(c)}catch{continue}if("match"!==b.type)continue;let d=b.data,e=d.path.text,f=l.endsWith("/")?l:l+"/",g=e.startsWith(f)?e.slice(f.length):e,h=d.lines.text.replace(/\r?\n$/,""),i=d.submatches.map(a=>({start:a.start,end:a.end}));y.push({filePath:g,lineNumber:d.line_number,lineText:h,submatches:i})}let z=y.length>q;return{matches:z?y.slice(0,q):y,truncated:z}}(0,i.ensureServerEntryExports)([l,m,n]),(0,d.registerServerReference)(l,"0027b9fc85b54fc902a6f81174a9737693d8a77028",null),(0,d.registerServerReference)(m,"0023c11ebfde7a363971d720473d3d23890ca4ec3a",null),(0,d.registerServerReference)(n,"7c124c5a140ee6ef9f805d516a0fbaa0704a05cded",null),a.s(["checkRgAvailable",0,l,"clearRgPathCache",0,m,"searchCode",0,n]),c()}catch(a){c(a)}},!1)];
1
+ module.exports=[799620,(a,b,c)=>{b.exports=a.x("@vscode/ripgrep-9efc5655eb017bdc",()=>require("@vscode/ripgrep-9efc5655eb017bdc"))},870888,a=>a.a(async(b,c)=>{try{let o;var d=a.i(815429),e=a.i(233405),f=a.i(522734),g=a.i(75681),h=a.i(980999),i=a.i(630048),j=b([h]);function k(){return o||(o=function(){try{let b=a.r(799620).rgPath;if(b&&(0,f.existsSync)(b))return b}catch{}try{let a=(0,e.execFileSync)("which",["rg"],{encoding:"utf-8"}).trim();if(a&&(0,f.existsSync)(a))return a}catch{}throw Error("ripgrep not found: install @vscode/ripgrep or system rg")}()),o}async function l(){try{return k(),{available:!0,platform:process.platform}}catch{return{available:!1,platform:process.platform}}}async function m(){o=void 0}[h]=j.then?(await j)():j;let p=g.z.object({localPath:g.z.string().min(1),pattern:g.z.string().min(1).max(500),glob:g.z.string().max(200).optional(),maxResults:g.z.number().int().min(1).max(500).default(200)});async function n(a,b,c,d=200,f){let g,i,j=p.safeParse({localPath:a,pattern:b,glob:c,maxResults:d});if(!j.success)return{matches:[],truncated:!1,error:`Invalid input: ${j.error.message}`};let{localPath:l,pattern:m,glob:o,maxResults:q}=j.data;if(!(l.startsWith("/")||/^[a-zA-Z]:[/\\]/.test(l)))return{matches:[],truncated:!1,error:"localPath must be an absolute path"};try{g=k()}catch(a){return{matches:[],truncated:!1,error:a.message.slice(0,200),errorKind:"not_installed"}}let r=["--json","-n",m];o&&r.push("--glob",o),r.push(l);let s=await (0,h.getConfigValue)("search.codeTimeoutSec",30),t=1e3*Math.max(1,s),u=f instanceof AbortSignal?f:void 0;try{var v,w;i=await (v=g,w={encoding:"utf-8",maxBuffer:0xa00000,timeout:t,signal:u},new Promise((a,b)=>{(0,e.execFile)(v,r,w,(c,d,e)=>{c?(c.stderr="string"==typeof e?e:e?.toString(),b(c)):a("string"==typeof d?d:d.toString())})}))}catch(b){if(1===b.code)return{matches:[],truncated:!1};let a=function(a){if("AbortError"===a.name)return{kind:"aborted",message:""};if(a.killed&&("SIGTERM"===a.signal||"SIGKILL"===a.signal))return{kind:"timeout",message:a.message??"search timed out"};let b=a.stderr??"",c=`${a.message??""} ${b}`.toLowerCase();return c.includes("permission denied")||c.includes("eacces")?{kind:"permission_denied",message:b||a.message||"permission denied"}:c.includes("not found")||c.includes("enoent")||c.includes("ripgrep")?{kind:"not_installed",message:b||a.message||"ripgrep not found"}:{kind:"unknown",message:(b||a.message||"unknown error").slice(0,200)}}(b);if("aborted"===a.kind)return{matches:[],truncated:!1,aborted:!0};return console.error("[searchCode] rg failed:",b),{matches:[],truncated:!1,error:a.message.slice(0,200),errorKind:a.kind}}let x=i.split("\n"),y=[];for(let a of x){let b,c=a.trim();if(!c)continue;try{b=JSON.parse(c)}catch{continue}if("match"!==b.type)continue;let d=b.data,e=d.path.text,f=l.endsWith("/")?l:l+"/",g=e.startsWith(f)?e.slice(f.length):e,h=d.lines.text.replace(/\r?\n$/,""),i=d.submatches.map(a=>({start:a.start,end:a.end}));y.push({filePath:g,lineNumber:d.line_number,lineText:h,submatches:i})}let z=y.length>q;return{matches:z?y.slice(0,q):y,truncated:z}}(0,i.ensureServerEntryExports)([l,m,n]),(0,d.registerServerReference)(l,"00072f5a7586654dc22cf481305bd54b1171339727",null),(0,d.registerServerReference)(m,"00388f0bda0ef1bb3b6f549cdb2c11e75732fe92ab",null),(0,d.registerServerReference)(n,"7c5b18e719c81439e9ce20a749d41d09247309d0c1",null),a.s(["checkRgAvailable",0,l,"clearRgPathCache",0,m,"searchCode",0,n]),c()}catch(a){c(a)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0ribsk4._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},980738,(a,b,c)=>{b.exports=a.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,a=>a.a(async(b,c)=>{try{let b=await a.y("ws-4df7fc762dfa9a52");a.n(b),c()}catch(a){c(a)}},!0),504446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},163812,a=>{"use strict";var b=a.i(902157),c=a.i(874533),d=a.i(750227);function e(a=process.platform){return"win32"===a}function f(a){let b=a.replace(/\r\n|\r|\n/g," ");if(!b.length)return'""';let c=b.replace(/"/g,'""');return/[\s"&<>|^()]/.test(c)?`"${c}"`:c}let g=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function h(a,b={}){let c=b.cwd??process.cwd(),f=b.env??process.env,g=b.platform??process.platform;if(a.includes("/")||a.includes("\\")){let b=d.default.isAbsolute(a)?a:d.default.resolve(c,a);return await k(b,g)?b:null}let i=f.PATH??f.Path??"",j=e(g)?";":":",l=i.split(j).filter(Boolean),m=e(g)?(f.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],n=e(g)&&d.default.extname(a).length>0;for(let b of l)for(let c of e(g)?n?[d.default.join(b,a)]:m.map(c=>d.default.join(b,`${a}${c}`)):[d.default.join(b,a)])if(await k(c,g))return c;return null}let i=a=>(0,c.execSync)(a,{encoding:"utf-8",timeout:5e3});function j(a,b=process.platform,f=i){if(d.default.extname(a)||a.includes("/")||a.includes("\\"))return a;if(!e(b)){try{let b=(0,c.execFileSync)("which",[a],{encoding:"utf-8",timeout:5e3}).trim();if(b)return b}catch{}return a}try{let b=f(`where ${a}`).trim().split("\n").map(a=>a.trim()).filter(Boolean),c=b.find(a=>/\.(cmd|bat|exe)$/i.test(a));if(c)return c;if(b.length>0)return b[0]}catch{}return a}async function k(a,c=process.platform){try{return await b.promises.access(a,e(c)?b.constants.F_OK:b.constants.X_OK),!0}catch{return!1}}async function l(a=process.platform){return e(a)?n():m()}async function m(){try{let a=await b.promises.readFile("/etc/shells","utf-8"),c=[],e=new Map;for(let b of a.split("\n")){let a=b.replace(/#.*/,"").trim();if(!a||!a.startsWith("/")||!await k(a))continue;let f=d.default.basename(a),g=e.get(f)??0;e.set(f,g+1),g>0&&(f=`${f} (${g+1})`),c.push({name:f,path:a})}return c}catch{let a=[];for(let b of["/bin/zsh","/bin/bash","/bin/sh"])await k(b)&&a.push({name:d.default.basename(b),path:b});return a}}async function n(){let a=[],b=[],c=await h("git",{platform:"win32"});if(c){let a=d.default.resolve(d.default.dirname(c),"..","..");b.push(d.default.join(a,"bin","bash.exe"),d.default.join(a,"usr","bin","bash.exe"))}for(let a of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?d.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))b.push(d.default.join(a,"Git","bin","bash.exe"),d.default.join(a,"Git","usr","bin","bash.exe"));let e=process.env.USERPROFILE??"";for(let c of(e&&b.push(d.default.join(e,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&b.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),b))if(await k(c,"win32")){a.push({name:"Git Bash",path:c});break}let f=await h("pwsh",{platform:"win32"});f&&a.push({name:"PowerShell",path:f});let g=process.env.windir??"C:\\WINDOWS",i=d.default.join(g,"System32","WindowsPowerShell","v1.0","powershell.exe");await k(i,"win32")&&a.push({name:"Windows PowerShell",path:i});let j=process.env.ComSpec??d.default.join(g,"System32","cmd.exe");return await k(j,"win32")&&a.push({name:"Command Prompt",path:j}),a}let o=[{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 p(a=process.platform){if("darwin"===a){let b=[];for(let c of o)await k(`/Applications/${c.bundleName}.app`,a)&&b.push({name:c.name,value:c.bundleName});return b}if(e(a)){let b=[],c=await h("wt",{platform:a});return c&&b.push({name:"Windows Terminal",value:c}),b}return[]}a.s(["detectShells",0,l,"detectTerminalApps",0,p,"ensurePathInEnv",0,function(a,b=process.platform){let c=e(b)?"Path":"PATH";return(a.PATH??a.Path??"").length>0?a:{...a,[c]:function(a=process.platform){return e(a)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(b)}},"resolveCommandPathSync",0,j,"resolveSpawnTargetSync",0,function(a,b,c=process.platform,g){return function(a,b,c,g){if(!e(g))return{command:a,args:b};let h=d.default.extname(a).toLowerCase();return".cmd"===h||".bat"===h||".com"===h?{command:c.ComSpec||"cmd.exe",args:["/d","/s","/c",[f(a),...b.map(f)].join(" ")]}:{command:a,args:b}}(j(a,c,g),b,process.env,c)},"stripClaudeNestingEnv",0,function(a){let b={...a};for(let a of g)delete b[a];return b}])},42847,a=>{"use strict";var b=a.i(980738),c=a.i(163812);class d{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(a,e,f,g,h,i,j,k,l){this.taskId=a,this._onData=h,this._onIdle=k??null,this._idleThresholdMs=Math.max(l??18e4,18e4);const m={...(0,c.stripClaudeNestingEnv)((0,c.ensurePathInEnv)(process.env)),TERM:"xterm-color",...j};try{this._pty=b.spawn(e,f,{name:"xterm-color",cols:80,rows:24,cwd:g,env:m})}catch(a){throw console.error(`[pty] spawn failed: command="${e}", cwd="${g}", PATH="${m.PATH?.slice(0,200)}"`),a}this._pty.onData(a=>{this._buffer+=a,this._buffer.length>d.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-d.BUFFER_MAX)),this._resetIdleTimer(),this._onData(a)}),this._pty.onExit(({exitCode:a,signal:b})=>{for(let c of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),i(a,b),this._exitListeners))c(a)}),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(a){this._onData=a}setExitListener(a){this._exitListeners=[a]}write(a){this.killed||(this._resetIdleTimer(),this._pty.write(a))}resize(a,b){this.killed||this._pty.resize(a,b)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}kill(a){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(a)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}}a.s(["PtySession",0,d])},962620,a=>{"use strict";var b=a.i(42847),c=a.i(163812);let d=globalThis;d.__ptySessions||(d.__ptySessions=new Map);let e=d.__ptySessions;function f(a){let b=e.get(a);b&&(e.delete(a),b.disconnectTimer&&(clearTimeout(b.disconnectTimer),b.disconnectTimer=null),b.kill())}function g(){for(let a of e.keys())f(a)}let h=globalThis;"phase-production-build"===process.env.NEXT_PHASE||h.__ptySignalHandlersRegistered||(h.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),g()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),g()})),a.s(["createSession",0,function(a,d,g,h,i,j,k,l,m){f(a);let{command:n,args:o}=(0,c.resolveSpawnTargetSync)(d,g),p=new b.PtySession(a,n,o,h,i,j,k,l,m);return e.set(a,p),p},"destroyAllSessions",0,g,"destroySession",0,f,"getSession",0,function(a){return e.get(a)}])},312369,a=>{"use strict";var b=a.i(761469);async function c(a,c){let d=await b.db.systemConfig.findUnique({where:{key:a}});if(!d)return c;try{return JSON.parse(d.value)}catch{return c}}a.s(["readConfigValue",0,c])},830296,a=>{"use strict";a.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"},"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"}}])},980999,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(830296),g=a.i(989927),h=a.i(163812),i=a.i(823615),j=a.i(630048),k=b([i]);async function l(a,b){let c=await e.db.systemConfig.findUnique({where:{key:a}});if(!c)return b;try{return JSON.parse(c.value)}catch{return b}}async function m(a,b){await e.db.systemConfig.upsert({where:{key:a},create:{key:a,value:JSON.stringify(b)},update:{value:JSON.stringify(b)}})}async function n(a){let b=a.trim();if(!b)return"";try{let a=await l("git.pathMappingRules",[]),c=(0,g.matchGitPathRule)(b,a);if(c)return c;return(0,g.gitUrlToLocalPath)(b)}catch{return(0,g.gitUrlToLocalPath)(b)}}async function o(a){let b=await e.db.systemConfig.findMany({where:{key:{in:a}}}),c=Object.fromEntries(b.map(a=>{try{return[a.key,JSON.parse(a.value)]}catch{return[a.key,null]}})),d={};for(let b of a)d[b]=b in c?c[b]:f.CONFIG_DEFAULTS[b]?.defaultValue??null;return d}async function p(){return(0,h.detectShells)()}async function q(){return(0,h.detectTerminalApps)()}async function r(){return{platform:process.platform}}async function s(){let a=(0,i.getActiveWsPort)();if(null!==a)return a;let b=parseInt(process.env.PORT||"3000",10);return l("terminal.wsPort",b+1)}[i]=k.then?(await k)():k,(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s]),(0,d.registerServerReference)(l,"605046c340e36d2c46aa90481defb5abe8f2a41458",null),(0,d.registerServerReference)(m,"60390b384512dc364e2aaebde0d442014b32d054e8",null),(0,d.registerServerReference)(n,"40ecfeee3cfe09b809768234f4883994f9408455c1",null),(0,d.registerServerReference)(o,"40b8210bad29b9287effac4ca0b4394577316998b1",null),(0,d.registerServerReference)(p,"00a0b97099e8cb6b622f2a711954334c87abe1080a",null),(0,d.registerServerReference)(q,"00de0af2e7cd354db0cb2968e7c11f252c13bddbae",null),(0,d.registerServerReference)(r,"002cef6a22fbcfe59287d5079cc25015ff923ae48d",null),(0,d.registerServerReference)(s,"004d5e5f0f83eb1ef2288a566b68aed93fb5c0dac1",null),a.s(["getActualWsPort",0,s,"getAvailableShells",0,p,"getAvailableTerminalApps",0,q,"getConfigValue",0,l,"getConfigValues",0,o,"getPlatformInfo",0,r,"resolveGitLocalPath",0,n,"setConfigValue",0,m]),c()}catch(a){c(a)}},!1)];
1
+ module.exports=[750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},980738,(a,b,c)=>{b.exports=a.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,a=>a.a(async(b,c)=>{try{let b=await a.y("ws-4df7fc762dfa9a52");a.n(b),c()}catch(a){c(a)}},!0),504446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},163812,a=>{"use strict";var b=a.i(902157),c=a.i(874533),d=a.i(750227);function e(a=process.platform){return"win32"===a}function f(a){let b=a.replace(/\r\n|\r|\n/g," ");if(!b.length)return'""';let c=b.replace(/"/g,'""');return/[\s"&<>|^()]/.test(c)?`"${c}"`:c}let g=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function h(a,b={}){let c=b.cwd??process.cwd(),f=b.env??process.env,g=b.platform??process.platform;if(a.includes("/")||a.includes("\\")){let b=d.default.isAbsolute(a)?a:d.default.resolve(c,a);return await k(b,g)?b:null}let i=f.PATH??f.Path??"",j=e(g)?";":":",l=i.split(j).filter(Boolean),m=e(g)?(f.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],n=e(g)&&d.default.extname(a).length>0;for(let b of l)for(let c of e(g)?n?[d.default.join(b,a)]:m.map(c=>d.default.join(b,`${a}${c}`)):[d.default.join(b,a)])if(await k(c,g))return c;return null}let i=a=>(0,c.execSync)(a,{encoding:"utf-8",timeout:5e3});function j(a,b=process.platform,f=i){if(d.default.extname(a)||a.includes("/")||a.includes("\\"))return a;if(!e(b)){try{let b=(0,c.execFileSync)("which",[a],{encoding:"utf-8",timeout:5e3}).trim();if(b)return b}catch{}return a}try{let b=f(`where ${a}`).trim().split("\n").map(a=>a.trim()).filter(Boolean),c=b.find(a=>/\.(cmd|bat|exe)$/i.test(a));if(c)return c;if(b.length>0)return b[0]}catch{}return a}async function k(a,c=process.platform){try{return await b.promises.access(a,e(c)?b.constants.F_OK:b.constants.X_OK),!0}catch{return!1}}async function l(a=process.platform){return e(a)?n():m()}async function m(){try{let a=await b.promises.readFile("/etc/shells","utf-8"),c=[],e=new Map;for(let b of a.split("\n")){let a=b.replace(/#.*/,"").trim();if(!a||!a.startsWith("/")||!await k(a))continue;let f=d.default.basename(a),g=e.get(f)??0;e.set(f,g+1),g>0&&(f=`${f} (${g+1})`),c.push({name:f,path:a})}return c}catch{let a=[];for(let b of["/bin/zsh","/bin/bash","/bin/sh"])await k(b)&&a.push({name:d.default.basename(b),path:b});return a}}async function n(){let a=[],b=[],c=await h("git",{platform:"win32"});if(c){let a=d.default.resolve(d.default.dirname(c),"..","..");b.push(d.default.join(a,"bin","bash.exe"),d.default.join(a,"usr","bin","bash.exe"))}for(let a of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?d.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))b.push(d.default.join(a,"Git","bin","bash.exe"),d.default.join(a,"Git","usr","bin","bash.exe"));let e=process.env.USERPROFILE??"";for(let c of(e&&b.push(d.default.join(e,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&b.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),b))if(await k(c,"win32")){a.push({name:"Git Bash",path:c});break}let f=await h("pwsh",{platform:"win32"});f&&a.push({name:"PowerShell",path:f});let g=process.env.windir??"C:\\WINDOWS",i=d.default.join(g,"System32","WindowsPowerShell","v1.0","powershell.exe");await k(i,"win32")&&a.push({name:"Windows PowerShell",path:i});let j=process.env.ComSpec??d.default.join(g,"System32","cmd.exe");return await k(j,"win32")&&a.push({name:"Command Prompt",path:j}),a}let o=[{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 p(a=process.platform){if("darwin"===a){let b=[];for(let c of o)await k(`/Applications/${c.bundleName}.app`,a)&&b.push({name:c.name,value:c.bundleName});return b}if(e(a)){let b=[],c=await h("wt",{platform:a});return c&&b.push({name:"Windows Terminal",value:c}),b}return[]}a.s(["detectShells",0,l,"detectTerminalApps",0,p,"ensurePathInEnv",0,function(a,b=process.platform){let c=e(b)?"Path":"PATH";return(a.PATH??a.Path??"").length>0?a:{...a,[c]:function(a=process.platform){return e(a)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(b)}},"resolveCommandPathSync",0,j,"resolveSpawnTargetSync",0,function(a,b,c=process.platform,g){return function(a,b,c,g){if(!e(g))return{command:a,args:b};let h=d.default.extname(a).toLowerCase();return".cmd"===h||".bat"===h||".com"===h?{command:c.ComSpec||"cmd.exe",args:["/d","/s","/c",[f(a),...b.map(f)].join(" ")]}:{command:a,args:b}}(j(a,c,g),b,process.env,c)},"stripClaudeNestingEnv",0,function(a){let b={...a};for(let a of g)delete b[a];return b}])},42847,a=>{"use strict";var b=a.i(980738),c=a.i(163812);class d{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(a,e,f,g,h,i,j,k,l){this.taskId=a,this._onData=h,this._onIdle=k??null,this._idleThresholdMs=Math.max(l??18e4,18e4);const m={...(0,c.stripClaudeNestingEnv)((0,c.ensurePathInEnv)(process.env)),TERM:"xterm-color",...j};try{this._pty=b.spawn(e,f,{name:"xterm-color",cols:80,rows:24,cwd:g,env:m})}catch(a){throw console.error(`[pty] spawn failed: command="${e}", cwd="${g}", PATH="${m.PATH?.slice(0,200)}"`),a}this._pty.onData(a=>{this._buffer+=a,this._buffer.length>d.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-d.BUFFER_MAX)),this._resetIdleTimer(),this._onData(a)}),this._pty.onExit(({exitCode:a,signal:b})=>{for(let c of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),i(a,b),this._exitListeners))c(a)}),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(a){this._onData=a}setExitListener(a){this._exitListeners=[a]}write(a){this.killed||(this._resetIdleTimer(),this._pty.write(a))}resize(a,b){this.killed||this._pty.resize(a,b)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}kill(a){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(a)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}}a.s(["PtySession",0,d])},962620,a=>{"use strict";var b=a.i(42847),c=a.i(163812);let d=globalThis;d.__ptySessions||(d.__ptySessions=new Map);let e=d.__ptySessions;function f(a){let b=e.get(a);b&&(e.delete(a),b.disconnectTimer&&(clearTimeout(b.disconnectTimer),b.disconnectTimer=null),b.kill())}function g(){for(let a of e.keys())f(a)}let h=globalThis;"phase-production-build"===process.env.NEXT_PHASE||h.__ptySignalHandlersRegistered||(h.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),g()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),g()})),a.s(["createSession",0,function(a,d,g,h,i,j,k,l,m){f(a);let{command:n,args:o}=(0,c.resolveSpawnTargetSync)(d,g),p=new b.PtySession(a,n,o,h,i,j,k,l,m);return e.set(a,p),p},"destroyAllSessions",0,g,"destroySession",0,f,"getSession",0,function(a){return e.get(a)}])},312369,a=>{"use strict";var b=a.i(761469);async function c(a,c){let d=await b.db.systemConfig.findUnique({where:{key:a}});if(!d)return c;try{return JSON.parse(d.value)}catch{return c}}a.s(["readConfigValue",0,c])},830296,a=>{"use strict";a.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"},"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"}}])},980999,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(830296),g=a.i(989927),h=a.i(163812),i=a.i(823615),j=a.i(630048),k=b([i]);async function l(a,b){let c=await e.db.systemConfig.findUnique({where:{key:a}});if(!c)return b;try{return JSON.parse(c.value)}catch{return b}}async function m(a,b){await e.db.systemConfig.upsert({where:{key:a},create:{key:a,value:JSON.stringify(b)},update:{value:JSON.stringify(b)}})}async function n(a){let b=a.trim();if(!b)return"";try{let a=await l("git.pathMappingRules",[]),c=(0,g.matchGitPathRule)(b,a);if(c)return c;return(0,g.gitUrlToLocalPath)(b)}catch{return(0,g.gitUrlToLocalPath)(b)}}async function o(a){let b=await e.db.systemConfig.findMany({where:{key:{in:a}}}),c=Object.fromEntries(b.map(a=>{try{return[a.key,JSON.parse(a.value)]}catch{return[a.key,null]}})),d={};for(let b of a)d[b]=b in c?c[b]:f.CONFIG_DEFAULTS[b]?.defaultValue??null;return d}async function p(){return(0,h.detectShells)()}async function q(){return(0,h.detectTerminalApps)()}async function r(){return{platform:process.platform}}async function s(){let a=(0,i.getActiveWsPort)();if(null!==a)return a;let b=parseInt(process.env.PORT||"3000",10);return l("terminal.wsPort",b+1)}[i]=k.then?(await k)():k,(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s]),(0,d.registerServerReference)(l,"604228e8167147dad385e05e214722512256091f8f",null),(0,d.registerServerReference)(m,"60c0ecfed34768b8715cd468e9abc4c6fa11d68ab5",null),(0,d.registerServerReference)(n,"40aba639dc593066ac63c8ec541ceb62bd496f2851",null),(0,d.registerServerReference)(o,"40f1971affa3738b021a5049f45140ac16887a04ce",null),(0,d.registerServerReference)(p,"00018330b9515eff599b83f6e8aee6a443832226cc",null),(0,d.registerServerReference)(q,"0013a3cd3a8e31b13f33788cc92b5aba4c68857cd2",null),(0,d.registerServerReference)(r,"00910df10bbfc4b5d291a45250d3df378d48f82ed1",null),(0,d.registerServerReference)(s,"0051ddd6448fbf2a66a65d7e1315914f3b5c11ab78",null),a.s(["getActualWsPort",0,s,"getAvailableShells",0,p,"getAvailableTerminalApps",0,q,"getConfigValue",0,l,"getConfigValues",0,o,"getPlatformInfo",0,r,"resolveGitLocalPath",0,n,"setConfigValue",0,m]),c()}catch(a){c(a)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0wjg_.n._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},989927,a=>{"use strict";var b=a.i(446786),c=a.i(814747);function d(a){return a.startsWith("~/")?c.default.join(b.default.homedir(),a.slice(2)):a}function e(a){let b,c=a.match(/^git@([^:]+):(.+)$/);if(c)return{host:c[1],pathSegments:f(c[2]).split("/").filter(Boolean)};try{b=new URL(a)}catch{return null}return{host:b.hostname,pathSegments:f(decodeURIComponent(b.pathname)).split("/").filter(Boolean)}}function f(a){return a.replace(/\.git\/?$/,"")}a.s(["expandHome",0,d,"gitUrlToLocalPath",0,function(a){let b=a.trim();if(!b)return"";try{let a=e(b);if(!a)return"";let{host:f,pathSegments:g}=a;if("code.iflytek.com"===f){let a,b;return d((a=[...g],"osc"===a[0]&&"_source"===a[1]&&(a=a.slice(2)),((b=a.indexOf("-"))>0&&(a=a.slice(0,b)),0===a.length)?"":`~/company/${a.join("/")}`))}if("github.com"===f){var c;let a,b;return d((a=(c=g)[0],b=c[1],a&&b?`${"jp-liu"===a?"~/project/i":"~/project/f"}/${b}`:""))}let h=g[g.length-1];return h?d(`~/project/f/${h}`):""}catch{return""}},"matchGitPathRule",0,function(a,b){if(!b.length)return"";let c=a.trim();if(!c)return"";let f=e(c);if(!f)return"";let{host:g,pathSegments:h}=f,i=h[0]??"",j=h[h.length-1]??"",k=[...b].sort((a,b)=>{let c=+("*"===a.ownerMatch),d=+("*"===b.ownerMatch);return c!==d?c-d:a.priority-b.priority}),l=h.join("/");for(let a of k){if(a.host!==g||"*"!==a.ownerMatch&&a.ownerMatch!==i)continue;let b=a.localPathTemplate;if(b.includes("{path}"))return d(b.replace("{path}",l).replace("{owner}",i).replace("{repo}",j).replace(/\/+$/,""));let c=b.replace("{owner}",i).replace("{repo}","").replace(/\/+$/,"");return d(`${c}/${j}`)}return""}])},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},980738,(a,b,c)=>{b.exports=a.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,a=>a.a(async(b,c)=>{try{let b=await a.y("ws-4df7fc762dfa9a52");a.n(b),c()}catch(a){c(a)}},!0),504446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},163812,a=>{"use strict";var b=a.i(902157),c=a.i(874533),d=a.i(750227);function e(a=process.platform){return"win32"===a}function f(a){let b=a.replace(/\r\n|\r|\n/g," ");if(!b.length)return'""';let c=b.replace(/"/g,'""');return/[\s"&<>|^()]/.test(c)?`"${c}"`:c}let g=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function h(a,b={}){let c=b.cwd??process.cwd(),f=b.env??process.env,g=b.platform??process.platform;if(a.includes("/")||a.includes("\\")){let b=d.default.isAbsolute(a)?a:d.default.resolve(c,a);return await k(b,g)?b:null}let i=f.PATH??f.Path??"",j=e(g)?";":":",l=i.split(j).filter(Boolean),m=e(g)?(f.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],n=e(g)&&d.default.extname(a).length>0;for(let b of l)for(let c of e(g)?n?[d.default.join(b,a)]:m.map(c=>d.default.join(b,`${a}${c}`)):[d.default.join(b,a)])if(await k(c,g))return c;return null}let i=a=>(0,c.execSync)(a,{encoding:"utf-8",timeout:5e3});function j(a,b=process.platform,f=i){if(d.default.extname(a)||a.includes("/")||a.includes("\\"))return a;if(!e(b)){try{let b=(0,c.execFileSync)("which",[a],{encoding:"utf-8",timeout:5e3}).trim();if(b)return b}catch{}return a}try{let b=f(`where ${a}`).trim().split("\n").map(a=>a.trim()).filter(Boolean),c=b.find(a=>/\.(cmd|bat|exe)$/i.test(a));if(c)return c;if(b.length>0)return b[0]}catch{}return a}async function k(a,c=process.platform){try{return await b.promises.access(a,e(c)?b.constants.F_OK:b.constants.X_OK),!0}catch{return!1}}async function l(a=process.platform){return e(a)?n():m()}async function m(){try{let a=await b.promises.readFile("/etc/shells","utf-8"),c=[],e=new Map;for(let b of a.split("\n")){let a=b.replace(/#.*/,"").trim();if(!a||!a.startsWith("/")||!await k(a))continue;let f=d.default.basename(a),g=e.get(f)??0;e.set(f,g+1),g>0&&(f=`${f} (${g+1})`),c.push({name:f,path:a})}return c}catch{let a=[];for(let b of["/bin/zsh","/bin/bash","/bin/sh"])await k(b)&&a.push({name:d.default.basename(b),path:b});return a}}async function n(){let a=[],b=[],c=await h("git",{platform:"win32"});if(c){let a=d.default.resolve(d.default.dirname(c),"..","..");b.push(d.default.join(a,"bin","bash.exe"),d.default.join(a,"usr","bin","bash.exe"))}for(let a of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?d.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))b.push(d.default.join(a,"Git","bin","bash.exe"),d.default.join(a,"Git","usr","bin","bash.exe"));let e=process.env.USERPROFILE??"";for(let c of(e&&b.push(d.default.join(e,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&b.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),b))if(await k(c,"win32")){a.push({name:"Git Bash",path:c});break}let f=await h("pwsh",{platform:"win32"});f&&a.push({name:"PowerShell",path:f});let g=process.env.windir??"C:\\WINDOWS",i=d.default.join(g,"System32","WindowsPowerShell","v1.0","powershell.exe");await k(i,"win32")&&a.push({name:"Windows PowerShell",path:i});let j=process.env.ComSpec??d.default.join(g,"System32","cmd.exe");return await k(j,"win32")&&a.push({name:"Command Prompt",path:j}),a}let o=[{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 p(a=process.platform){if("darwin"===a){let b=[];for(let c of o)await k(`/Applications/${c.bundleName}.app`,a)&&b.push({name:c.name,value:c.bundleName});return b}if(e(a)){let b=[],c=await h("wt",{platform:a});return c&&b.push({name:"Windows Terminal",value:c}),b}return[]}a.s(["detectShells",0,l,"detectTerminalApps",0,p,"ensurePathInEnv",0,function(a,b=process.platform){let c=e(b)?"Path":"PATH";return(a.PATH??a.Path??"").length>0?a:{...a,[c]:function(a=process.platform){return e(a)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(b)}},"resolveCommandPathSync",0,j,"resolveSpawnTargetSync",0,function(a,b,c=process.platform,g){return function(a,b,c,g){if(!e(g))return{command:a,args:b};let h=d.default.extname(a).toLowerCase();return".cmd"===h||".bat"===h||".com"===h?{command:c.ComSpec||"cmd.exe",args:["/d","/s","/c",[f(a),...b.map(f)].join(" ")]}:{command:a,args:b}}(j(a,c,g),b,process.env,c)},"stripClaudeNestingEnv",0,function(a){let b={...a};for(let a of g)delete b[a];return b}])},42847,a=>{"use strict";var b=a.i(980738),c=a.i(163812);class d{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(a,e,f,g,h,i,j,k,l){this.taskId=a,this._onData=h,this._onIdle=k??null,this._idleThresholdMs=Math.max(l??18e4,18e4);const m={...(0,c.stripClaudeNestingEnv)((0,c.ensurePathInEnv)(process.env)),TERM:"xterm-color",...j};try{this._pty=b.spawn(e,f,{name:"xterm-color",cols:80,rows:24,cwd:g,env:m})}catch(a){throw console.error(`[pty] spawn failed: command="${e}", cwd="${g}", PATH="${m.PATH?.slice(0,200)}"`),a}this._pty.onData(a=>{this._buffer+=a,this._buffer.length>d.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-d.BUFFER_MAX)),this._resetIdleTimer(),this._onData(a)}),this._pty.onExit(({exitCode:a,signal:b})=>{for(let c of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),i(a,b),this._exitListeners))c(a)}),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(a){this._onData=a}setExitListener(a){this._exitListeners=[a]}write(a){this.killed||(this._resetIdleTimer(),this._pty.write(a))}resize(a,b){this.killed||this._pty.resize(a,b)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}kill(a){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(a)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}}a.s(["PtySession",0,d])},962620,a=>{"use strict";var b=a.i(42847),c=a.i(163812);let d=globalThis;d.__ptySessions||(d.__ptySessions=new Map);let e=d.__ptySessions;function f(a){let b=e.get(a);b&&(e.delete(a),b.disconnectTimer&&(clearTimeout(b.disconnectTimer),b.disconnectTimer=null),b.kill())}function g(){for(let a of e.keys())f(a)}let h=globalThis;"phase-production-build"===process.env.NEXT_PHASE||h.__ptySignalHandlersRegistered||(h.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),g()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),g()})),a.s(["createSession",0,function(a,d,g,h,i,j,k,l,m){f(a);let{command:n,args:o}=(0,c.resolveSpawnTargetSync)(d,g),p=new b.PtySession(a,n,o,h,i,j,k,l,m);return e.set(a,p),p},"destroyAllSessions",0,g,"destroySession",0,f,"getSession",0,function(a){return e.get(a)}])},312369,a=>{"use strict";var b=a.i(761469);async function c(a,c){let d=await b.db.systemConfig.findUnique({where:{key:a}});if(!d)return c;try{return JSON.parse(d.value)}catch{return c}}a.s(["readConfigValue",0,c])},830296,a=>{"use strict";a.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"},"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"}}])},980999,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(830296),g=a.i(989927),h=a.i(163812),i=a.i(823615),j=a.i(630048),k=b([i]);async function l(a,b){let c=await e.db.systemConfig.findUnique({where:{key:a}});if(!c)return b;try{return JSON.parse(c.value)}catch{return b}}async function m(a,b){await e.db.systemConfig.upsert({where:{key:a},create:{key:a,value:JSON.stringify(b)},update:{value:JSON.stringify(b)}})}async function n(a){let b=a.trim();if(!b)return"";try{let a=await l("git.pathMappingRules",[]),c=(0,g.matchGitPathRule)(b,a);if(c)return c;return(0,g.gitUrlToLocalPath)(b)}catch{return(0,g.gitUrlToLocalPath)(b)}}async function o(a){let b=await e.db.systemConfig.findMany({where:{key:{in:a}}}),c=Object.fromEntries(b.map(a=>{try{return[a.key,JSON.parse(a.value)]}catch{return[a.key,null]}})),d={};for(let b of a)d[b]=b in c?c[b]:f.CONFIG_DEFAULTS[b]?.defaultValue??null;return d}async function p(){return(0,h.detectShells)()}async function q(){return(0,h.detectTerminalApps)()}async function r(){return{platform:process.platform}}async function s(){let a=(0,i.getActiveWsPort)();if(null!==a)return a;let b=parseInt(process.env.PORT||"3000",10);return l("terminal.wsPort",b+1)}[i]=k.then?(await k)():k,(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s]),(0,d.registerServerReference)(l,"605046c340e36d2c46aa90481defb5abe8f2a41458",null),(0,d.registerServerReference)(m,"60390b384512dc364e2aaebde0d442014b32d054e8",null),(0,d.registerServerReference)(n,"40ecfeee3cfe09b809768234f4883994f9408455c1",null),(0,d.registerServerReference)(o,"40b8210bad29b9287effac4ca0b4394577316998b1",null),(0,d.registerServerReference)(p,"00a0b97099e8cb6b622f2a711954334c87abe1080a",null),(0,d.registerServerReference)(q,"00de0af2e7cd354db0cb2968e7c11f252c13bddbae",null),(0,d.registerServerReference)(r,"002cef6a22fbcfe59287d5079cc25015ff923ae48d",null),(0,d.registerServerReference)(s,"004d5e5f0f83eb1ef2288a566b68aed93fb5c0dac1",null),a.s(["getActualWsPort",0,s,"getAvailableShells",0,p,"getAvailableTerminalApps",0,q,"getConfigValue",0,l,"getConfigValues",0,o,"getPlatformInfo",0,r,"resolveGitLocalPath",0,n,"setConfigValue",0,m]),c()}catch(a){c(a)}},!1)];
1
+ module.exports=[446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},989927,a=>{"use strict";var b=a.i(446786),c=a.i(814747);function d(a){return a.startsWith("~/")?c.default.join(b.default.homedir(),a.slice(2)):a}function e(a){let b,c=a.match(/^git@([^:]+):(.+)$/);if(c)return{host:c[1],pathSegments:f(c[2]).split("/").filter(Boolean)};try{b=new URL(a)}catch{return null}return{host:b.hostname,pathSegments:f(decodeURIComponent(b.pathname)).split("/").filter(Boolean)}}function f(a){return a.replace(/\.git\/?$/,"")}a.s(["expandHome",0,d,"gitUrlToLocalPath",0,function(a){let b=a.trim();if(!b)return"";try{let a=e(b);if(!a)return"";let{host:f,pathSegments:g}=a;if("code.iflytek.com"===f){let a,b;return d((a=[...g],"osc"===a[0]&&"_source"===a[1]&&(a=a.slice(2)),((b=a.indexOf("-"))>0&&(a=a.slice(0,b)),0===a.length)?"":`~/company/${a.join("/")}`))}if("github.com"===f){var c;let a,b;return d((a=(c=g)[0],b=c[1],a&&b?`${"jp-liu"===a?"~/project/i":"~/project/f"}/${b}`:""))}let h=g[g.length-1];return h?d(`~/project/f/${h}`):""}catch{return""}},"matchGitPathRule",0,function(a,b){if(!b.length)return"";let c=a.trim();if(!c)return"";let f=e(c);if(!f)return"";let{host:g,pathSegments:h}=f,i=h[0]??"",j=h[h.length-1]??"",k=[...b].sort((a,b)=>{let c=+("*"===a.ownerMatch),d=+("*"===b.ownerMatch);return c!==d?c-d:a.priority-b.priority}),l=h.join("/");for(let a of k){if(a.host!==g||"*"!==a.ownerMatch&&a.ownerMatch!==i)continue;let b=a.localPathTemplate;if(b.includes("{path}"))return d(b.replace("{path}",l).replace("{owner}",i).replace("{repo}",j).replace(/\/+$/,""));let c=b.replace("{owner}",i).replace("{repo}","").replace(/\/+$/,"");return d(`${c}/${j}`)}return""}])},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},980738,(a,b,c)=>{b.exports=a.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,a=>a.a(async(b,c)=>{try{let b=await a.y("ws-4df7fc762dfa9a52");a.n(b),c()}catch(a){c(a)}},!0),504446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},163812,a=>{"use strict";var b=a.i(902157),c=a.i(874533),d=a.i(750227);function e(a=process.platform){return"win32"===a}function f(a){let b=a.replace(/\r\n|\r|\n/g," ");if(!b.length)return'""';let c=b.replace(/"/g,'""');return/[\s"&<>|^()]/.test(c)?`"${c}"`:c}let g=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function h(a,b={}){let c=b.cwd??process.cwd(),f=b.env??process.env,g=b.platform??process.platform;if(a.includes("/")||a.includes("\\")){let b=d.default.isAbsolute(a)?a:d.default.resolve(c,a);return await k(b,g)?b:null}let i=f.PATH??f.Path??"",j=e(g)?";":":",l=i.split(j).filter(Boolean),m=e(g)?(f.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],n=e(g)&&d.default.extname(a).length>0;for(let b of l)for(let c of e(g)?n?[d.default.join(b,a)]:m.map(c=>d.default.join(b,`${a}${c}`)):[d.default.join(b,a)])if(await k(c,g))return c;return null}let i=a=>(0,c.execSync)(a,{encoding:"utf-8",timeout:5e3});function j(a,b=process.platform,f=i){if(d.default.extname(a)||a.includes("/")||a.includes("\\"))return a;if(!e(b)){try{let b=(0,c.execFileSync)("which",[a],{encoding:"utf-8",timeout:5e3}).trim();if(b)return b}catch{}return a}try{let b=f(`where ${a}`).trim().split("\n").map(a=>a.trim()).filter(Boolean),c=b.find(a=>/\.(cmd|bat|exe)$/i.test(a));if(c)return c;if(b.length>0)return b[0]}catch{}return a}async function k(a,c=process.platform){try{return await b.promises.access(a,e(c)?b.constants.F_OK:b.constants.X_OK),!0}catch{return!1}}async function l(a=process.platform){return e(a)?n():m()}async function m(){try{let a=await b.promises.readFile("/etc/shells","utf-8"),c=[],e=new Map;for(let b of a.split("\n")){let a=b.replace(/#.*/,"").trim();if(!a||!a.startsWith("/")||!await k(a))continue;let f=d.default.basename(a),g=e.get(f)??0;e.set(f,g+1),g>0&&(f=`${f} (${g+1})`),c.push({name:f,path:a})}return c}catch{let a=[];for(let b of["/bin/zsh","/bin/bash","/bin/sh"])await k(b)&&a.push({name:d.default.basename(b),path:b});return a}}async function n(){let a=[],b=[],c=await h("git",{platform:"win32"});if(c){let a=d.default.resolve(d.default.dirname(c),"..","..");b.push(d.default.join(a,"bin","bash.exe"),d.default.join(a,"usr","bin","bash.exe"))}for(let a of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?d.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))b.push(d.default.join(a,"Git","bin","bash.exe"),d.default.join(a,"Git","usr","bin","bash.exe"));let e=process.env.USERPROFILE??"";for(let c of(e&&b.push(d.default.join(e,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&b.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),b))if(await k(c,"win32")){a.push({name:"Git Bash",path:c});break}let f=await h("pwsh",{platform:"win32"});f&&a.push({name:"PowerShell",path:f});let g=process.env.windir??"C:\\WINDOWS",i=d.default.join(g,"System32","WindowsPowerShell","v1.0","powershell.exe");await k(i,"win32")&&a.push({name:"Windows PowerShell",path:i});let j=process.env.ComSpec??d.default.join(g,"System32","cmd.exe");return await k(j,"win32")&&a.push({name:"Command Prompt",path:j}),a}let o=[{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 p(a=process.platform){if("darwin"===a){let b=[];for(let c of o)await k(`/Applications/${c.bundleName}.app`,a)&&b.push({name:c.name,value:c.bundleName});return b}if(e(a)){let b=[],c=await h("wt",{platform:a});return c&&b.push({name:"Windows Terminal",value:c}),b}return[]}a.s(["detectShells",0,l,"detectTerminalApps",0,p,"ensurePathInEnv",0,function(a,b=process.platform){let c=e(b)?"Path":"PATH";return(a.PATH??a.Path??"").length>0?a:{...a,[c]:function(a=process.platform){return e(a)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(b)}},"resolveCommandPathSync",0,j,"resolveSpawnTargetSync",0,function(a,b,c=process.platform,g){return function(a,b,c,g){if(!e(g))return{command:a,args:b};let h=d.default.extname(a).toLowerCase();return".cmd"===h||".bat"===h||".com"===h?{command:c.ComSpec||"cmd.exe",args:["/d","/s","/c",[f(a),...b.map(f)].join(" ")]}:{command:a,args:b}}(j(a,c,g),b,process.env,c)},"stripClaudeNestingEnv",0,function(a){let b={...a};for(let a of g)delete b[a];return b}])},42847,a=>{"use strict";var b=a.i(980738),c=a.i(163812);class d{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(a,e,f,g,h,i,j,k,l){this.taskId=a,this._onData=h,this._onIdle=k??null,this._idleThresholdMs=Math.max(l??18e4,18e4);const m={...(0,c.stripClaudeNestingEnv)((0,c.ensurePathInEnv)(process.env)),TERM:"xterm-color",...j};try{this._pty=b.spawn(e,f,{name:"xterm-color",cols:80,rows:24,cwd:g,env:m})}catch(a){throw console.error(`[pty] spawn failed: command="${e}", cwd="${g}", PATH="${m.PATH?.slice(0,200)}"`),a}this._pty.onData(a=>{this._buffer+=a,this._buffer.length>d.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-d.BUFFER_MAX)),this._resetIdleTimer(),this._onData(a)}),this._pty.onExit(({exitCode:a,signal:b})=>{for(let c of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),i(a,b),this._exitListeners))c(a)}),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(a){this._onData=a}setExitListener(a){this._exitListeners=[a]}write(a){this.killed||(this._resetIdleTimer(),this._pty.write(a))}resize(a,b){this.killed||this._pty.resize(a,b)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}kill(a){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(a)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}}a.s(["PtySession",0,d])},962620,a=>{"use strict";var b=a.i(42847),c=a.i(163812);let d=globalThis;d.__ptySessions||(d.__ptySessions=new Map);let e=d.__ptySessions;function f(a){let b=e.get(a);b&&(e.delete(a),b.disconnectTimer&&(clearTimeout(b.disconnectTimer),b.disconnectTimer=null),b.kill())}function g(){for(let a of e.keys())f(a)}let h=globalThis;"phase-production-build"===process.env.NEXT_PHASE||h.__ptySignalHandlersRegistered||(h.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),g()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),g()})),a.s(["createSession",0,function(a,d,g,h,i,j,k,l,m){f(a);let{command:n,args:o}=(0,c.resolveSpawnTargetSync)(d,g),p=new b.PtySession(a,n,o,h,i,j,k,l,m);return e.set(a,p),p},"destroyAllSessions",0,g,"destroySession",0,f,"getSession",0,function(a){return e.get(a)}])},312369,a=>{"use strict";var b=a.i(761469);async function c(a,c){let d=await b.db.systemConfig.findUnique({where:{key:a}});if(!d)return c;try{return JSON.parse(d.value)}catch{return c}}a.s(["readConfigValue",0,c])},830296,a=>{"use strict";a.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"},"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"}}])},980999,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(830296),g=a.i(989927),h=a.i(163812),i=a.i(823615),j=a.i(630048),k=b([i]);async function l(a,b){let c=await e.db.systemConfig.findUnique({where:{key:a}});if(!c)return b;try{return JSON.parse(c.value)}catch{return b}}async function m(a,b){await e.db.systemConfig.upsert({where:{key:a},create:{key:a,value:JSON.stringify(b)},update:{value:JSON.stringify(b)}})}async function n(a){let b=a.trim();if(!b)return"";try{let a=await l("git.pathMappingRules",[]),c=(0,g.matchGitPathRule)(b,a);if(c)return c;return(0,g.gitUrlToLocalPath)(b)}catch{return(0,g.gitUrlToLocalPath)(b)}}async function o(a){let b=await e.db.systemConfig.findMany({where:{key:{in:a}}}),c=Object.fromEntries(b.map(a=>{try{return[a.key,JSON.parse(a.value)]}catch{return[a.key,null]}})),d={};for(let b of a)d[b]=b in c?c[b]:f.CONFIG_DEFAULTS[b]?.defaultValue??null;return d}async function p(){return(0,h.detectShells)()}async function q(){return(0,h.detectTerminalApps)()}async function r(){return{platform:process.platform}}async function s(){let a=(0,i.getActiveWsPort)();if(null!==a)return a;let b=parseInt(process.env.PORT||"3000",10);return l("terminal.wsPort",b+1)}[i]=k.then?(await k)():k,(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s]),(0,d.registerServerReference)(l,"604228e8167147dad385e05e214722512256091f8f",null),(0,d.registerServerReference)(m,"60c0ecfed34768b8715cd468e9abc4c6fa11d68ab5",null),(0,d.registerServerReference)(n,"40aba639dc593066ac63c8ec541ceb62bd496f2851",null),(0,d.registerServerReference)(o,"40f1971affa3738b021a5049f45140ac16887a04ce",null),(0,d.registerServerReference)(p,"00018330b9515eff599b83f6e8aee6a443832226cc",null),(0,d.registerServerReference)(q,"0013a3cd3a8e31b13f33788cc92b5aba4c68857cd2",null),(0,d.registerServerReference)(r,"00910df10bbfc4b5d291a45250d3df378d48f82ed1",null),(0,d.registerServerReference)(s,"0051ddd6448fbf2a66a65d7e1315914f3b5c11ab78",null),a.s(["getActualWsPort",0,s,"getAvailableShells",0,p,"getAvailableTerminalApps",0,q,"getConfigValue",0,l,"getConfigValues",0,o,"getPlatformInfo",0,r,"resolveGitLocalPath",0,n,"setConfigValue",0,m]),c()}catch(a){c(a)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0wvyks.._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},319997,a=>{"use strict";let b;var c=a.i(750227),d=a.i(660526),e=a.i(902157);function f(){return b||(b=process.env.TOWER_DATA_DIR||(0,c.join)((0,d.homedir)(),".tower"),(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0})),b}a.s(["getBackupsDir",0,function(){let a=(0,c.join)(f(),"backups");return(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0}),a},"getStorageDir",0,function(){let a=(0,c.join)(f(),"storage");return(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0}),a},"getTowerDir",0,f])},859071,a=>{"use strict";a.i(666680);var b=a.i(902157),c=a.i(750227);let d=(0,a.i(319997).getStorageDir)();a.s(["ensureAssetsDir",0,function(a){let e=function(a){let b=c.join(d,"assets",a);if(!b.startsWith(d+c.sep))throw Error("Path traversal detected");return b}(a);return b.mkdirSync(e,{recursive:!0}),e}])},97397,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(902157),f=a.i(750227),g=a.i(75681),h=a.i(761469),i=a.i(188139),j=a.i(859071),k=a.i(980999),l=a.i(630048),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"40524a1d79422332ca581d068bba90dd5f2ac6b2bc",null),(0,d.registerServerReference)(o,"4026bf666f97f568d1749ef38d39583ea6723b3100",null),(0,d.registerServerReference)(p,"4090f79a860f55b0876b6b8349a587044f4da7f680",null),(0,d.registerServerReference)(q,"40e6def7bf87002f2f57f508f5612858fad825ae10",null),(0,d.registerServerReference)(r,"4092e9dd2a9683c8c4400fb2e09947e1187b7429c7",null),(0,d.registerServerReference)(s,"407aa26d54ff56892df50cd4c39bb2c0a04bd3685f",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),84304,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=a.i(870888),g=a.i(97397);a.i(689171),a.i(196195);var h=b([d,e,f,g]);[d,e,f,g]=h.then?(await h)():h,a.s([]),c()}catch(a){c(a)}},!1),470618,a=>a.a(async(b,c)=>{try{var d=a.i(84304),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(870888),m=a.i(97397),n=a.i(689171),o=a.i(196195),p=b([d,g,h,l,m]);[d,g,h,l,m]=p.then?(await p)():p,a.s(["0023c11ebfde7a363971d720473d3d23890ca4ec3a",()=>l.clearRgPathCache,"0027b9fc85b54fc902a6f81174a9737693d8a77028",()=>l.checkRgAvailable,"002cef6a22fbcfe59287d5079cc25015ff923ae48d",()=>h.getPlatformInfo,"004d5e5f0f83eb1ef2288a566b68aed93fb5c0dac1",()=>h.getActualWsPort,"0076fad9f26a96440cf6339b16b2b62b495d2d3a54",()=>j.listAllExtensionStatus,"007e26c36cb873787dd81caeb6c50157d8b155721e",()=>k.getOnboardingStatus,"00a0b97099e8cb6b622f2a711954334c87abe1080a",()=>h.getAvailableShells,"00ad25b2f7ce47d532968f251a381148fd0a437e22",()=>e.getWorkspacesWithProjects,"00de0af2e7cd354db0cb2968e7c11f252c13bddbae",()=>h.getAvailableTerminalApps,"40060c66956018c8ccd2fd706b8bf8735918ec7bec",()=>f.getLabelsForWorkspace,"40216748760af47617c9c05d3010de0ab41af09951",()=>e.getRecentLocalProjects,"4026bf666f97f568d1749ef38d39583ea6723b3100",()=>m.deleteAsset,"4032a2a258cae1bccae0b5d4df8dde6f4771f1cb6e",()=>e.getOrCreateTowerTaskId,"404b73123c9c5b6a665df4b8f8a7372b07b31b7552",()=>i.checkMigrationSafety,"404cd4fe2c541db2f2443005c219384ea571ca20b4",()=>e.deleteProject,"40516e3b4bee0e10125bc8f99718f11285c4c8f1bf",()=>j.uninstallExtension,"40524a1d79422332ca581d068bba90dd5f2ac6b2bc",()=>m.createAsset,"405a6f4ccdea35fca0c6eb993a4f5ee6e338324f16",()=>o.getCurrentBranch,"405f59a7fc994894e2ca90978fa4ef20f94c9c318e",()=>o.getProjectBranches,"406175f6bb9c1fd12337272ad5689acca74c5c3fc8",()=>j.checkExtension,"40776f0b17d59d1e9a99a5caa325badb97a4ba7f1b",()=>e.createProject,"4079ebb22defb77ba47f732a0796eac0b631af9e73",()=>e.deleteWorkspace,"407aa26d54ff56892df50cd4c39bb2c0a04bd3685f",()=>m.uploadAsset,"408520b724434c49f0853044fa6b696d3adff54578",()=>o.fetchRemoteBranches,"4090f79a860f55b0876b6b8349a587044f4da7f680",()=>m.getProjectAssets,"4092e9dd2a9683c8c4400fb2e09947e1187b7429c7",()=>m.getAssetById,"40940bfd60e839176787e8548b2d230ff8ba94dd40",()=>f.createLabel,"40a309e2c1c91aa89372da4fe9310fd3a93970620a",()=>e.createWorkspace,"40a93925248dc900c3922e64f0d7d7a6edc22754dc",()=>k.dispatchTaskCompletionEvent,"40b617c634040e4958cec944de5ecde516ab62d834",()=>k.setOnboardingProgress,"40b8210bad29b9287effac4ca0b4394577316998b1",()=>h.getConfigValues,"40bd6c50fe8fac7531c57b6112574aeea083aed127",()=>j.installExtension,"40c45a4b01600122f196861d18fe02dcf9c3a6ca0c",()=>e.getProjectByLocalPath,"40c8125ee6f20ab65c27cb3657e65ae58c4c292632",()=>e.getWorkspacesWithRecentTasks,"40c9c6d7dd62085c97033749156587c098ae391fe5",()=>e.getWorkspaceById,"40e6def7bf87002f2f57f508f5612858fad825ae10",()=>m.getTaskAssets,"40eb56cbb0160cff371e3452be2decec0ec8108dc1",()=>n.getTaskOverview,"40ecfeee3cfe09b809768234f4883994f9408455c1",()=>h.resolveGitLocalPath,"40ee885ebfa0fdcd98eb71c129c70bb7d355f504df",()=>n.createTask,"40f7b4a74ba5531b95073c158f1a6fd881477e0abc",()=>f.deleteLabel,"601fb06ec593e5120c6526b3499db102ec2f330424",()=>k.setOnboardingExtensions,"60390b384512dc364e2aaebde0d442014b32d054e8",()=>h.setConfigValue,"605046c340e36d2c46aa90481defb5abe8f2a41458",()=>h.getConfigValue,"60514b5f107b3d857b56f15ea79f412b5e56547da3",()=>k.completeOnboarding,"605c61fe8c0bf2d00484921cd91f9342a98fa96570",()=>e.updateProject,"60656edaaa9dd472d2c0eeb67d04a708ce383dfdbd",()=>g.globalSearch,"6086820113ff386210746630ba26fed40127e6d96d",()=>i.migrateProjectPath,"60e05ef551a447debdc70d52fdca5ce8f70ac2ea28",()=>i.analyzeProjectDirectory,"60ea170bc85887feeb6898c5b6cf81db4edca38f23",()=>e.updateWorkspace,"7c124c5a140ee6ef9f805d516a0fbaa0704a05cded",()=>l.searchCode]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0ss_gux._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(a=>Promise.resolve().then(()=>a(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0y.nw7l._.js"].map(b=>a.l(b))).then(()=>b(897667)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0.5rcav._.js"].map(b=>a.l(b))).then(()=>b(818992)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
1
+ module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},319997,a=>{"use strict";let b;var c=a.i(750227),d=a.i(660526),e=a.i(902157);function f(){return b||(b=process.env.TOWER_DATA_DIR||(0,c.join)((0,d.homedir)(),".tower"),(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0})),b}a.s(["getBackupsDir",0,function(){let a=(0,c.join)(f(),"backups");return(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0}),a},"getStorageDir",0,function(){let a=(0,c.join)(f(),"storage");return(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0}),a},"getTowerDir",0,f])},859071,a=>{"use strict";a.i(666680);var b=a.i(902157),c=a.i(750227);let d=(0,a.i(319997).getStorageDir)();a.s(["ensureAssetsDir",0,function(a){let e=function(a){let b=c.join(d,"assets",a);if(!b.startsWith(d+c.sep))throw Error("Path traversal detected");return b}(a);return b.mkdirSync(e,{recursive:!0}),e}])},97397,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(902157),f=a.i(750227),g=a.i(75681),h=a.i(761469),i=a.i(188139),j=a.i(859071),k=a.i(980999),l=a.i(630048),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"404df5eeca90c5975abe8f05ebe1d06eb20afaefcc",null),(0,d.registerServerReference)(o,"40b7762d844e09ca771339735880bef8ffff3c30ee",null),(0,d.registerServerReference)(p,"405f146d62681a85b1cb132f6d100d6dd9e4012037",null),(0,d.registerServerReference)(q,"40646f51f8e63b45e547e023d6bd4a6ae59726c38d",null),(0,d.registerServerReference)(r,"40f798399fc284f09a06b7a1c86353a4abbbfa590a",null),(0,d.registerServerReference)(s,"40f9d03efc4fdac42889c32b8667f2b5c9ebf4f7bd",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),84304,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=a.i(870888),g=a.i(97397);a.i(689171),a.i(196195);var h=b([d,e,f,g]);[d,e,f,g]=h.then?(await h)():h,a.s([]),c()}catch(a){c(a)}},!1),470618,a=>a.a(async(b,c)=>{try{var d=a.i(84304),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(870888),m=a.i(97397),n=a.i(689171),o=a.i(196195),p=b([d,g,h,l,m]);[d,g,h,l,m]=p.then?(await p)():p,a.s(["00018330b9515eff599b83f6e8aee6a443832226cc",()=>h.getAvailableShells,"00072f5a7586654dc22cf481305bd54b1171339727",()=>l.checkRgAvailable,"0013a3cd3a8e31b13f33788cc92b5aba4c68857cd2",()=>h.getAvailableTerminalApps,"002b4e9133d8b6d5ca7e3249e4fef36ca77fd4f312",()=>k.getOnboardingStatus,"00388f0bda0ef1bb3b6f549cdb2c11e75732fe92ab",()=>l.clearRgPathCache,"004d59886d49e36875cbf469ae444d61c8de28ab13",()=>e.getWorkspacesWithProjects,"0051ddd6448fbf2a66a65d7e1315914f3b5c11ab78",()=>h.getActualWsPort,"00910df10bbfc4b5d291a45250d3df378d48f82ed1",()=>h.getPlatformInfo,"00ede8c87a5fd3cf389b004244892436243749a14e",()=>j.listAllExtensionStatus,"4014037c5ac85ca2fc18eda280c6af8ae68365971e",()=>e.getRecentLocalProjects,"401f7ea193ba5543c03285574962769ca991ba31d8",()=>f.getLabelsForWorkspace,"40283d29fa7b9833cd64d13eef0a2ad2069446e99e",()=>j.installExtension,"403e0605e2aba6a2eec83e2e8ba405ef57772e0280",()=>k.setOnboardingProgress,"4047e3da62dda0ac86560017c650888e6ebed1792b",()=>e.getOrCreateTowerTaskId,"404df5eeca90c5975abe8f05ebe1d06eb20afaefcc",()=>m.createAsset,"405f12842eaf6e7fbd4be0c67ac50791456e973c97",()=>j.checkExtension,"405f146d62681a85b1cb132f6d100d6dd9e4012037",()=>m.getProjectAssets,"40646009de0e55d0d3b7093421c9081cf2081d27cb",()=>f.deleteLabel,"40646f51f8e63b45e547e023d6bd4a6ae59726c38d",()=>m.getTaskAssets,"40668b097182c1d021fb7b9aadb3bf9a0b8bf0cce1",()=>e.deleteProject,"4074f228cf3801433ba841ac53eb8f36891a444fda",()=>k.dispatchTaskCompletionEvent,"4088a75867cb535e9968125bb8a795b66569848c0d",()=>o.getProjectBranches,"409bbe6fc01abb32bc37e27247a830f1ff7b4298e4",()=>n.createTask,"40a8b6ab91b37570dbbb0e7225e68e079b8fa5ff46",()=>e.getProjectByLocalPath,"40aba639dc593066ac63c8ec541ceb62bd496f2851",()=>h.resolveGitLocalPath,"40b0cdf5b66ab7543d8191e84ed31d492a2486b6e9",()=>e.deleteWorkspace,"40b7762d844e09ca771339735880bef8ffff3c30ee",()=>m.deleteAsset,"40ba976c3c663f3526f8053c0d30c2a6dbd2b07024",()=>o.fetchRemoteBranches,"40bc8da9d8c6b8438d8a24ba848844cfb486fac8d3",()=>e.getWorkspacesWithRecentTasks,"40c0f1f3358e69ad57657d2555cfee73e994dad43f",()=>n.getTaskOverview,"40c338d8c5314b7cfc5beedcdd97af7f273793ae64",()=>e.createWorkspace,"40c84a36efa9dd56165724a7e56b7c31d4af32f339",()=>e.getWorkspaceById,"40caa258e579479bf02f1a893acac475c1663b10fb",()=>e.createProject,"40d3eb220054efd9e84e818f5382f8cba13a4464ac",()=>o.getCurrentBranch,"40db66b54b24758580994df7ffab9cebf69bdd1bbb",()=>j.uninstallExtension,"40e9dfefba5f21a7eb344f5542440fca2bd4b590e8",()=>i.checkMigrationSafety,"40ed3bfc21750c787bb9cc642f0e455c7da7596ce4",()=>f.createLabel,"40f1971affa3738b021a5049f45140ac16887a04ce",()=>h.getConfigValues,"40f798399fc284f09a06b7a1c86353a4abbbfa590a",()=>m.getAssetById,"40f9d03efc4fdac42889c32b8667f2b5c9ebf4f7bd",()=>m.uploadAsset,"6011f7876a4bc0794966ecdf377e7e7a0891971242",()=>e.updateWorkspace,"602ecd9dd13c59e135814994afd7fa5c9fa0ffcf76",()=>k.setOnboardingExtensions,"604228e8167147dad385e05e214722512256091f8f",()=>h.getConfigValue,"60729a2e1a73741fe6456fc5b0c4e6f216f0c9b976",()=>i.analyzeProjectDirectory,"608ece4847384637c6432e566684ef9512ef80b64a",()=>g.globalSearch,"60c0ecfed34768b8715cd468e9abc4c6fa11d68ab5",()=>h.setConfigValue,"60c2a4bb34e13bf3c6d5fcb7d51fd060e92385e1b9",()=>i.migrateProjectPath,"60d48616ad8d81772d41c600d3d9ed9da30f2c66fa",()=>e.updateProject,"60df8249d72ac45826c0d808651a4f1b2646da9ef3",()=>k.completeOnboarding,"7c5b18e719c81439e9ce20a749d41d09247309d0c1",()=>l.searchCode]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0ss_gux._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(a=>Promise.resolve().then(()=>a(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0y.nw7l._.js"].map(b=>a.l(b))).then(()=>b(897667)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0.5rcav._.js"].map(b=>a.l(b))).then(()=>b(818992)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0zbmoit._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},918622,(a,b,c)=>{b.exports=a.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,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},120635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},120999,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("401f7ea193ba5543c03285574962769ca991ba31d8",b.callServer,void 0,b.findSourceMapURL,"getLabelsForWorkspace");a.s(["getLabelsForWorkspace",0,c])},607219,a=>{"use strict";let b=(0,a.i(711796).default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);a.s(["Archive",0,b],607219)},350739,a=>{"use strict";let b=(0,a.i(711796).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["FileText",0,b],350739)},429246,a=>{"use strict";var b=a.i(728778),c=a.i(368114);a.s(["Textarea",0,function({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("flex field-sizing-content min-h-16 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",a),...d})}])},975231,a=>{"use strict";let b=(0,a.i(711796).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",0,b],975231)},774881,a=>{"use strict";let b=(0,a.i(711796).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",0,b],774881)},690251,a=>{"use strict";let b=(0,a.i(711796).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],690251)},463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},923266,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(306150);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},846982,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},943814,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(728778),e=a.r(986099),f=a.r(556704),g=a.r(846982),h=a.r(427756);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let j=(0,h.getAssetTokenQuery)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${j}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},451358,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(728778),e=a.r(374637),f=a.r(923266),g=a.r(943814);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},969032,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(463652)._(a.r(451358));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},91756,a=>{"use strict";let b=(0,a.i(711796).default)("chevrons-left",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]);a.s(["ChevronsLeft",0,b],91756)},394259,a=>{"use strict";let b=(0,a.i(711796).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);a.s(["Sparkles",0,b],394259)},441359,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("60729a2e1a73741fe6456fc5b0c4e6f216f0c9b976",b.callServer,void 0,b.findSourceMapURL,"analyzeProjectDirectory");a.s(["analyzeProjectDirectory",0,c])},164092,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40caa258e579479bf02f1a893acac475c1663b10fb",b.callServer,void 0,b.findSourceMapURL,"createProject");a.s(["createProject",0,c])},595999,787270,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(616335),e=a.i(192369),f=a.i(699570);class g extends c.Component{constructor(a){super(a),this.state={hasError:!1,error:null}}static getDerivedStateFromError(a){return{hasError:!0,error:a}}componentDidCatch(a,b){console.error("[ErrorBoundary]",a,b)}render(){return this.state.hasError?this.props.fallback?this.props.fallback:(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[(0,b.jsx)(d.AlertCircle,{className:"h-8 w-8 text-destructive"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Something went wrong"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:this.state.error?.message??"An unexpected error occurred"})]}),(0,b.jsxs)(f.Button,{variant:"outline",onClick:()=>this.setState({hasError:!1,error:null}),children:[(0,b.jsx)(e.RefreshCw,{className:"mr-2 h-3.5 w-3.5"}),"Retry"]})]}):this.props.children}}a.s(["ErrorBoundary",0,g],595999);var h=a.i(780410);let i=(0,h.createServerReference)("0051ddd6448fbf2a66a65d7e1315914f3b5c11ab78",h.callServer,void 0,h.findSourceMapURL,"getActualWsPort");a.s(["getActualWsPort",0,i],787270)},940271,a=>{"use strict";var b=a.i(374637),c=(a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}},d=["light","dark"],e="(prefers-color-scheme: dark)",f=b.createContext(void 0),g={setTheme:a=>{},themes:[]},h=["light","dark"],i=({forcedTheme:a,disableTransitionOnChange:c=!1,enableSystem:g=!0,enableColorScheme:i=!0,storageKey:n="theme",themes:o=h,defaultTheme:p=g?"system":"light",attribute:q="data-theme",value:r,children:s,nonce:t,scriptProps:u})=>{let[v,w]=b.useState(()=>k(n,p)),[x,y]=b.useState(()=>"system"===v?m():v),z=r?Object.values(r):o,A=b.useCallback(a=>{let b=a;if(!b)return;"system"===a&&g&&(b=m());let e=r?r[b]:b,f=c?l(t):null,h=document.documentElement,j=a=>{"class"===a?(h.classList.remove(...z),e&&h.classList.add(e)):a.startsWith("data-")&&(e?h.setAttribute(a,e):h.removeAttribute(a))};if(Array.isArray(q)?q.forEach(j):j(q),i){let a=d.includes(p)?p:null,c=d.includes(b)?b:a;h.style.colorScheme=c}null==f||f()},[t]),B=b.useCallback(a=>{let b="function"==typeof a?a(v):a;w(b);try{localStorage.setItem(n,b)}catch(a){}},[v]),C=b.useCallback(b=>{y(m(b)),"system"===v&&g&&!a&&A("system")},[v,a]);b.useEffect(()=>{let a=window.matchMedia(e);return a.addListener(C),C(a),()=>a.removeListener(C)},[C]),b.useEffect(()=>{let a=a=>{a.key===n&&(a.newValue?w(a.newValue):B(p))};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[B]),b.useEffect(()=>{A(null!=a?a:v)},[a,v]);let D=b.useMemo(()=>({theme:v,setTheme:B,forcedTheme:a,resolvedTheme:"system"===v?x:v,themes:g?[...o,"system"]:o,systemTheme:g?x:void 0}),[v,B,a,x,g,o]);return b.createElement(f.Provider,{value:D},b.createElement(j,{forcedTheme:a,storageKey:n,attribute:q,enableSystem:g,enableColorScheme:i,defaultTheme:p,value:r,themes:o,nonce:t,scriptProps:u}),s)},j=b.memo(({forcedTheme:a,storageKey:d,attribute:e,enableSystem:f,enableColorScheme:g,defaultTheme:h,value:i,themes:j,nonce:k,scriptProps:l})=>{let m=JSON.stringify([e,d,h,a,j,i,f,g]).slice(1,-1);return b.createElement("script",{...l,suppressHydrationWarning:!0,nonce:k,dangerouslySetInnerHTML:{__html:`(${c.toString()})(${m})`}})}),k=(a,b)=>{},l=a=>{let b=document.createElement("style");return a&&b.setAttribute("nonce",a),b.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(b),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(b)},1)}},m=a=>(a||(a=window.matchMedia(e)),a.matches?"dark":"light");a.s(["ThemeProvider",0,a=>b.useContext(f)?b.createElement(b.Fragment,null,a.children):b.createElement(i,{...a}),"useTheme",0,()=>{var a;return null!=(a=b.useContext(f))?a:g}])},158511,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40283d29fa7b9833cd64d13eef0a2ad2069446e99e",b.callServer,void 0,b.findSourceMapURL,"installExtension");a.s(["installExtension",0,c])},191117,a=>{"use strict";let b=(0,a.i(711796).default)("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]);a.s(["FileCode",0,b],191117)},953093,a=>{"use strict";var b=a.i(573242),c=a.i(191117);let d={rg:{id:"rg",name:"代码搜索 (ripgrep)",description:"基于 rg 的全文代码搜索",icon:b.Search,sizeMB:5,homepageUrl:"https://github.com/BurntSushi/ripgrep#installation"},monaco:{id:"monaco",name:"代码编辑器 (Monaco)",description:"VS Code 同款 Web 编辑器",icon:c.FileCode,sizeMB:15,homepageUrl:"https://microsoft.github.io/monaco-editor/"}},e=[d.rg,d.monaco];a.s(["listExtensionMetadata",0,function(){return e}])},982879,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("60c0ecfed34768b8715cd468e9abc4c6fa11d68ab5",b.callServer,void 0,b.findSourceMapURL,"setConfigValue");a.s(["setConfigValue",0,c])},761052,86354,a=>{"use strict";var b=a.i(711796);let c=(0,b.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);a.s(["Sun",0,c],761052);let d=(0,b.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);a.s(["Moon",0,d],86354)},884664,a=>{"use strict";let b=(0,a.i(711796).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["default",0,b])},54384,a=>{"use strict";var b=a.i(758349);a.s(["X",()=>b.default])},573242,a=>{"use strict";var b=a.i(648717);a.s(["Search",()=>b.default])},146758,745539,a=>{"use strict";let b=(0,a.i(711796).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);a.s(["Folder",0,b],146758);var c=a.i(219551);a.s(["ChevronUp",()=>c.default],745539)},192369,a=>{"use strict";let b=(0,a.i(711796).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",0,b],192369)},622945,a=>{"use strict";let b=(0,a.i(711796).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["default",0,b])},87309,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(780410);let e=(0,d.createServerReference)("405f12842eaf6e7fbd4be0c67ac50791456e973c97",d.callServer,void 0,d.findSourceMapURL,"checkExtension");var f=a.i(158511);let g=(0,d.createServerReference)("40db66b54b24758580994df7ffab9cebf69bdd1bbb",d.callServer,void 0,d.findSourceMapURL,"uninstallExtension");var h=a.i(953093);let i={installed:!1},j=(0,c.createContext)(null);a.s(["ExtensionContext",0,j,"ExtensionProvider",0,function({children:a,initialStatus:d}){let[k,l]=(0,c.useState)(()=>d??Object.fromEntries((0,h.listExtensionMetadata)().map(a=>[a.id,i]))),[m,n]=(0,c.useState)(new Set),o=(0,c.useRef)(new Set),p=(0,c.useCallback)(async a=>{let b=await e(a);l(c=>({...c,[a]:b}))},[]),q=(0,c.useCallback)(async a=>{if(o.current.has(a))return{success:!1,error:"install already in progress"};o.current.add(a),n(b=>{let c=new Set(b);return c.add(a),c});try{let b=await (0,f.installExtension)(a);return b.success&&await p(a),b}finally{o.current.delete(a),n(b=>{let c=new Set(b);return c.delete(a),c})}},[p]),r=(0,c.useCallback)(async a=>{if(o.current.has(a))return{success:!1,error:"operation already in progress"};o.current.add(a),n(b=>{let c=new Set(b);return c.add(a),c});try{let b=await g(a);return b.success&&await p(a),b}finally{o.current.delete(a),n(b=>{let c=new Set(b);return c.delete(a),c})}},[p]),s=(0,c.useMemo)(()=>({statusMap:k,loading:!1,installing:m,refresh:p,install:q,uninstall:r}),[k,m,p,q,r]);return(0,b.jsx)(j.Provider,{value:s,children:a})}],87309)},369289,a=>{"use strict";let b=(0,a.i(711796).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Settings",0,b],369289)},374932,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("604228e8167147dad385e05e214722512256091f8f",b.callServer,void 0,b.findSourceMapURL,"getConfigValue");a.s(["getConfigValue",0,c])},190076,a=>{"use strict";let b=(0,a.i(711796).default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);a.s(["Bell",0,b],190076)},563658,a=>{"use strict";var b,c=a.i(728778);a.s([],725980),a.i(725980);var d=a.i(374637),e=a.i(327104),f=a.i(74686),g=a.i(140988),h=a.i(830067),i=a.i(420074),j=a.i(535011),k=a.i(213200),l=a.i(475295),m=a.i(366752),n=a.i(19926),o=a.i(862306);let p=d.createContext(void 0);var q=a.i(258802);let r=((b={}).checked="data-checked",b.unchecked="data-unchecked",b.disabled="data-disabled",b.readonly="data-readonly",b.required="data-required",b.valid="data-valid",b.invalid="data-invalid",b.touched="data-touched",b.dirty="data-dirty",b.filled="data-filled",b.focused="data-focused",b),s={...q.fieldValidityMapping,checked:a=>a?{[r.checked]:""}:{[r.unchecked]:""}};var t=a.i(233619),u=a.i(166388),v=a.i(77469),w=a.i(584395),x=a.i(303722),y=a.i(622047),z=a.i(100737),A=a.i(706092);let B=d.forwardRef(function(a,b){let{checked:o,className:q,defaultChecked:r,"aria-labelledby":B,id:C,inputRef:D,name:E,nativeButton:F=!1,onCheckedChange:G,readOnly:H=!1,required:I=!1,disabled:J=!1,render:K,uncheckedValue:L,value:M,...N}=a,{clearErrors:O}=(0,v.useFormContext)(),{state:P,setTouched:Q,setDirty:R,validityData:S,setFilled:T,setFocused:U,shouldValidateOnChange:V,validationMode:W,disabled:X,name:Y,validation:Z}=(0,u.useFieldRootContext)(),{labelId:$}=(0,w.useLabelableContext)(),_=X||J,aa=Y??E,ab=(0,f.useStableCallback)(G),ac=d.useRef(null),ad=(0,g.useMergedRefs)(ac,D,Z.inputRef),ae=d.useRef(null),af=(0,m.useBaseUiId)(),ag=(0,x.useLabelableId)({id:C,implicit:!1,controlRef:ae}),ah=F?void 0:ag,[ai,aj]=(0,e.useControlled)({controlled:o,default:!!r,name:"Switch",state:"checked"});(0,t.useField)({id:af,commit:Z.commit,value:ai,controlRef:ae,name:aa,getValue:()=>ai}),(0,h.useIsoLayoutEffect)(()=>{ac.current&&T(ac.current.checked)},[ac,T]),(0,A.useValueChanged)(ai,()=>{O(aa),R(ai!==S.initialValue),T(ai),V()?Z.commit(ai):Z.commit(ai,!0)});let{getButtonProps:ak,buttonRef:al}=(0,n.useButton)({disabled:_,native:F}),am=function(a,b,c,e=!0,f){let[g,i]=d.useState(),j=(0,m.useBaseUiId)(f?`${f}-label`:void 0),k=a??b??g;return(0,h.useIsoLayoutEffect)(()=>{let d=a||b||!e?void 0:function(a,b){let c=function(a){if(!a)return;let b=a.parentElement;if(b&&"LABEL"===b.tagName)return b;let c=a.id;if(c){let b=a.nextElementSibling;if(b&&b.htmlFor===c)return b}let d=a.labels;return d&&d[0]}(a);if(c)return!c.id&&b&&(c.id=b),c.id||void 0}(c.current,j);g!==d&&i(d)}),k}(B,$,ac,!F,ah),an=d.useMemo(()=>(0,l.mergeProps)({checked:ai,disabled:_,id:ah,name:aa,required:I,style:aa?i.visuallyHiddenInput:i.visuallyHidden,tabIndex:-1,type:"checkbox","aria-hidden":!0,ref:ad,onChange(a){if(a.nativeEvent.defaultPrevented)return;let b=a.target.checked,c=(0,y.createChangeEventDetails)(z.REASONS.none,a.nativeEvent);ab?.(b,c),c.isCanceled||aj(b)},onFocus(){ae.current?.focus()}},Z.getInputValidationProps,void 0!==M?{value:M}:j.EMPTY_OBJECT),[ai,_,ad,ah,aa,ab,I,aj,Z,M]),ao=d.useMemo(()=>({...P,checked:ai,disabled:_,readOnly:H,required:I}),[P,ai,_,H,I]),ap=(0,k.useRenderElement)("span",a,{state:ao,ref:[b,ae,al],props:[{id:F?ag:af,role:"switch","aria-checked":ai,"aria-readonly":H||void 0,"aria-required":I||void 0,"aria-labelledby":am,onFocus(){_||U(!0)},onBlur(){let a=ac.current;a&&!_&&(Q(!0),U(!1),"onBlur"===W&&Z.commit(a.checked))},onClick(a){H||_||(a.preventDefault(),ac.current?.dispatchEvent(new PointerEvent("click",{bubbles:!0,shiftKey:a.shiftKey,ctrlKey:a.ctrlKey,altKey:a.altKey,metaKey:a.metaKey})))}},Z.getValidationProps,N,ak],stateAttributesMapping:s});return(0,c.jsxs)(p.Provider,{value:ao,children:[ap,!ai&&aa&&void 0!==L&&(0,c.jsx)("input",{type:"hidden",name:aa,value:L}),(0,c.jsx)("input",{...an})]})}),C=d.forwardRef(function(a,b){let{render:c,className:e,...f}=a,{state:g}=(0,u.useFieldRootContext)(),h=function(){let a=d.useContext(p);if(void 0===a)throw Error((0,o.default)(63));return a}(),i={...g,...h};return(0,k.useRenderElement)("span",a,{state:i,ref:b,stateAttributesMapping:s,props:f})});a.s(["Root",0,B,"Thumb",0,C],88348);var D=a.i(88348),D=D,E=a.i(368114);a.s(["Switch",0,function({className:a,size:b="default",...d}){return(0,c.jsx)(D.Root,{"data-slot":"switch","data-size":b,className:(0,E.cn)("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",a),...d,children:(0,c.jsx)(D.Thumb,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"})})}],563658)},881107,a=>{"use strict";let b=(0,a.i(711796).default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);a.s(["Tag",0,b],881107)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0zjarb3._.js.map