tower-studio 0.2.6 → 0.2.7

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 (282) 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 +47 -47
  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 +1 -1
  24. package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/browse-fs/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/assistant/attachments/route.js +1 -2
  28. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +3 -2
  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/route.js +1 -2
  32. package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js +3 -2
  34. package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +2 -3
  36. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js +3 -2
  38. package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js +2 -3
  40. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js +2 -3
  42. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js +2 -3
  44. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +3 -4
  46. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/index.html +1 -1
  48. package/.next/standalone/.next/server/app/index.rsc +14 -14
  49. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  50. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
  51. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  52. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +9 -9
  53. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
  55. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +81 -81
  56. package/.next/standalone/.next/server/app/missions/page.js +1 -1
  57. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +1 -1
  60. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +47 -47
  61. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  64. package/.next/standalone/.next/server/app/onboarding.rsc +16 -16
  65. package/.next/standalone/.next/server/app/onboarding.segments/_full.segment.rsc +16 -16
  66. package/.next/standalone/.next/server/app/onboarding.segments/_head.segment.rsc +4 -4
  67. package/.next/standalone/.next/server/app/onboarding.segments/_index.segment.rsc +9 -9
  68. package/.next/standalone/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
  69. package/.next/standalone/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  70. package/.next/standalone/.next/server/app/onboarding.segments/onboarding.segment.rsc +3 -3
  71. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -1
  72. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +47 -47
  73. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
  76. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +60 -60
  77. package/.next/standalone/.next/server/app/settings/page.js +1 -1
  78. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/settings.html +1 -1
  81. package/.next/standalone/.next/server/app/settings.rsc +16 -16
  82. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +16 -16
  83. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  84. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +9 -9
  85. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  86. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  87. package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  88. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +1 -1
  89. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +102 -102
  90. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +1 -1
  93. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +84 -84
  94. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +1 -1
  97. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +77 -77
  98. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +1 -1
  101. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +76 -76
  102. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +1 -1
  103. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +1 -1
  106. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +47 -47
  107. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +1 -1
  110. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +83 -83
  111. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +2 -2
  114. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +90 -90
  115. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +1 -1
  116. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +1 -1
  119. package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +61 -61
  120. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0h5yr8p.js +1 -1
  123. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +1 -1
  124. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00mjz~7._.js +3 -0
  125. package/.next/standalone/.next/server/chunks/[root-of-the-server]__028ucbo._.js +4 -0
  126. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03gi3ue._.js +4 -0
  127. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07f7~6u._.js +4 -0
  128. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09p152b._.js +3 -0
  129. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b-ib~7._.js +3 -0
  130. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c513um._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d~z6xs._.js +4 -0
  132. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e44k3f._.js +20 -0
  133. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h.z9fm._.js +11 -0
  134. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lioghc._.js +3 -0
  135. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mw.9lg._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ogh_qu._.js +20 -0
  137. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tys9pv._.js +3 -0
  138. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0dsv3wl._.js → [root-of-the-server]__0wbndoc._.js} +2 -2
  139. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12c9noi._.js +3 -0
  140. package/.next/standalone/.next/server/chunks/{_0trog_r._.js → _0_eodxe._.js} +1 -1
  141. package/.next/standalone/.next/server/chunks/{src_01ztl3b._.js → src_0bkvm8c._.js} +2 -2
  142. package/.next/standalone/.next/server/chunks/src_0weytpz._.js +1 -1
  143. package/.next/standalone/.next/server/chunks/src_lib_0ba0ntr._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/src_lib_ai_0q-~me1._.js +1 -1
  145. package/.next/standalone/.next/server/chunks/src_lib_ai_0xx6y51._.js +1 -1
  146. package/.next/standalone/.next/server/chunks/src_lib_ai_providers_index_ts_0.y.3vp._.js +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  148. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0gcf4k3._.js → [root-of-the-server]__0.ukame._.js} +3 -3
  149. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__006_qh0._.js +1 -1
  150. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0tf4zp_._.js → [root-of-the-server]__01j8ix6._.js} +3 -3
  151. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02px.0y._.js +1 -1
  152. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03ebsif._.js +3 -3
  153. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vh-egg._.js → [root-of-the-server]__04pq37d._.js} +2 -2
  154. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__13k4vkg._.js → [root-of-the-server]__07_b6c.._.js} +2 -2
  155. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08n5qbf._.js +1 -1
  156. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0k3isnk._.js → [root-of-the-server]__09kc.q_._.js} +2 -2
  157. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__11bequ2._.js → [root-of-the-server]__0ca_ueb._.js} +3 -3
  158. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0y.nw7l._.js → [root-of-the-server]__0dsdplu._.js} +3 -3
  159. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__079.nog._.js → [root-of-the-server]__0jo1r7k._.js} +2 -2
  160. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l43.5g._.js +1 -1
  161. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0q7ho54._.js → [root-of-the-server]__0n.cuy2._.js} +3 -3
  162. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0nbj.ml._.js +30 -0
  163. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0-yld.d._.js → [root-of-the-server]__0o8k4pc._.js} +2 -2
  164. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pm2~fu._.js +30 -0
  165. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ps55l6._.js +1 -1
  166. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ribsk4._.js +1 -1
  167. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rjue04._.js +30 -0
  168. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.5rcav._.js → [root-of-the-server]__0tc6uh2._.js} +3 -3
  169. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0c4.z1s._.js → [root-of-the-server]__0u4gc4b._.js} +2 -2
  170. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0gaa~xc._.js → [root-of-the-server]__0v2eslh._.js} +3 -3
  171. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wjg_.n._.js +1 -1
  172. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wlmzzq._.js +30 -0
  173. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wvyks.._.js +1 -1
  174. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zbmoit._.js +1 -1
  175. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0nwue~m._.js → [root-of-the-server]__0zujp5l._.js} +2 -2
  176. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ghfuuv._.js → [root-of-the-server]__0~a-emb._.js} +3 -3
  177. package/.next/standalone/.next/server/chunks/ssr/_02v3fjp._.js +7 -0
  178. package/.next/standalone/.next/server/chunks/ssr/_04b71ua._.js +1 -1
  179. package/.next/standalone/.next/server/chunks/ssr/_05h.8a~._.js +1 -1
  180. package/.next/standalone/.next/server/chunks/ssr/_07~0_w6._.js +7 -0
  181. package/.next/standalone/.next/server/chunks/ssr/_08w-r6e._.js +7 -0
  182. package/.next/standalone/.next/server/chunks/ssr/_0_l8.dg._.js +1 -1
  183. package/.next/standalone/.next/server/chunks/ssr/{_0f8jvpw._.js → _0_q~7z7._.js} +1 -1
  184. package/.next/standalone/.next/server/chunks/ssr/{_0vqyzrr._.js → _0b0.-sj._.js} +2 -2
  185. package/.next/standalone/.next/server/chunks/ssr/{_00d1y-k._.js → _0bw-tx8._.js} +2 -2
  186. package/.next/standalone/.next/server/chunks/ssr/{_0i2usny._.js → _0c-49y3._.js} +1 -1
  187. package/.next/standalone/.next/server/chunks/ssr/{_0fri5n~._.js → _0c-jnbs._.js} +2 -2
  188. package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
  189. package/.next/standalone/.next/server/chunks/ssr/_0ds6nk2._.js +1 -1
  190. package/.next/standalone/.next/server/chunks/ssr/{_08t2xag._.js → _0f6u19w._.js} +2 -2
  191. package/.next/standalone/.next/server/chunks/ssr/{_0_~ftjv._.js → _0fob8fc._.js} +2 -2
  192. package/.next/standalone/.next/server/chunks/ssr/_0i4__mf._.js +1 -1
  193. package/.next/standalone/.next/server/chunks/ssr/_0ihq._v._.js +1 -1
  194. package/.next/standalone/.next/server/chunks/ssr/{_0ah80pn._.js → _0niubv5._.js} +1 -1
  195. package/.next/standalone/.next/server/chunks/ssr/{_0rfo51k._.js → _0pd0.8f._.js} +2 -2
  196. package/.next/standalone/.next/server/chunks/ssr/_0r9w-k8._.js +1 -1
  197. package/.next/standalone/.next/server/chunks/ssr/{_0_gqtgq._.js → _0rbai5c._.js} +1 -1
  198. package/.next/standalone/.next/server/chunks/ssr/_0rbctq7._.js +1 -1
  199. package/.next/standalone/.next/server/chunks/ssr/_0rt8hus._.js +1 -1
  200. package/.next/standalone/.next/server/chunks/ssr/{_0ep3sg_._.js → _0y-7tle._.js} +1 -1
  201. package/.next/standalone/.next/server/chunks/ssr/{_054w82_._.js → _0ysygps._.js} +2 -2
  202. package/.next/standalone/.next/server/chunks/ssr/{_03xwww2._.js → _0ysyq9g._.js} +2 -2
  203. package/.next/standalone/.next/server/chunks/ssr/{_049.box._.js → _0zgu282._.js} +1 -1
  204. package/.next/standalone/.next/server/chunks/ssr/{_086yn8o._.js → _0zszi6-._.js} +1 -1
  205. package/.next/standalone/.next/server/chunks/ssr/_0~80adm._.js +3 -3
  206. package/.next/standalone/.next/server/chunks/ssr/src_095o8x6._.js +1 -1
  207. package/.next/standalone/.next/server/chunks/ssr/src_13jha60._.js +1 -1
  208. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  209. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  210. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  211. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  212. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  213. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  214. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  215. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  216. package/.next/standalone/.next/server/chunks/ssr/{src_lib_08n755q._.js → src_lib_07rspg0._.js} +1 -1
  217. package/.next/standalone/.next/server/chunks/ssr/{src_lib_0tb2yya._.js → src_lib_0_8frs_._.js} +1 -1
  218. package/.next/standalone/.next/server/chunks/ssr/{src_lib_123jf_a._.js → src_lib_0fjk3hr._.js} +1 -1
  219. package/.next/standalone/.next/server/chunks/ssr/{src_lib_12ulcxj._.js → src_lib_0g-92s-._.js} +1 -1
  220. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  221. package/.next/standalone/.next/server/pages/404.html +1 -1
  222. package/.next/standalone/.next/server/pages/500.html +1 -1
  223. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/server-reference-manifest.json +356 -356
  225. package/.next/standalone/.next/static/chunks/{0hxgzql5.szyz.js → 00.52653v5c~c.js} +1 -1
  226. package/.next/standalone/.next/static/chunks/{0r7jm27~cp-vs.js → 00j0mdc41wa44.js} +1 -1
  227. package/.next/standalone/.next/static/chunks/{0nrbltth-7m~e.js → 02edbrlq~2uyx.js} +1 -1
  228. package/.next/standalone/.next/static/chunks/05-ui_o~3irq_.js +5 -0
  229. package/.next/standalone/.next/static/chunks/05hls.3r4bz.0.js +1 -0
  230. package/.next/standalone/.next/static/chunks/{07i~~ygu~oi26.js → 08~e63d2q~cam.js} +1 -1
  231. package/.next/standalone/.next/static/chunks/{0m2lubto0vt0x.js → 0bw4ahlj4~l~g.js} +1 -1
  232. package/.next/standalone/.next/static/chunks/{0fovq74l0wh7c.js → 0ft77ybyq903..js} +1 -1
  233. package/.next/standalone/.next/static/chunks/0fxm-wv..y_a_.js +5 -0
  234. package/.next/standalone/.next/static/chunks/{0v9ahxdsn0mse.js → 0i55dediewjp5.js} +1 -1
  235. package/.next/standalone/.next/static/chunks/0l3mmc866npw4.js +2 -0
  236. package/.next/standalone/.next/static/chunks/0nno5if2x1mvs.js +1 -0
  237. package/.next/standalone/.next/static/chunks/0q-u-hhre1uyw.js +1 -0
  238. package/.next/standalone/.next/static/chunks/0qazzw-pr_sv7.js +1 -0
  239. package/.next/standalone/.next/static/chunks/{06shpikm5rcmu.js → 0r1mkt5qs~s6m.js} +1 -1
  240. package/.next/standalone/.next/static/chunks/{0ee.~~ae-vl_q.js → 0v~pz9e87t99b.js} +1 -1
  241. package/.next/standalone/.next/static/chunks/{0jscst0zjd2az.js → 0w3jww1m3k77x.js} +1 -1
  242. package/.next/standalone/.next/static/chunks/0z01g02xstbqe.js +1 -0
  243. package/.next/standalone/.next/static/chunks/0~27mkhc9s5k2.js +5 -0
  244. package/.next/standalone/.next/static/chunks/{04-7c5m91nvj1.js → 117qu902jput3.js} +1 -1
  245. package/.next/standalone/.next/static/chunks/{0mfgulw-d49o9.js → 142w-q8.7m3kl.js} +1 -1
  246. package/.next/standalone/package.json +1 -1
  247. package/dist/mcp-server.cjs +223 -33
  248. package/package.json +1 -1
  249. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.9mj3v._.js +0 -4
  250. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05353yb._.js +0 -4
  251. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09h3i6m._.js +0 -4
  252. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_a8-jq._.js +0 -3
  253. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_mbhor._.js +0 -3
  254. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jmqy_3._.js +0 -3
  255. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j~qauc._.js +0 -4
  256. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nwxhai._.js +0 -3
  257. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o4z8qp._.js +0 -3
  258. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0p_ii~p._.js +0 -3
  259. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0puw1af._.js +0 -20
  260. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0py_jdb._.js +0 -3
  261. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qie1gs._.js +0 -11
  262. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qz9-me._.js +0 -3
  263. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w2w3x.._.js +0 -20
  264. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05kq890._.js +0 -30
  265. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qe~p-n._.js +0 -30
  266. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11ko84j._.js +0 -30
  267. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12pnl8n._.js +0 -30
  268. package/.next/standalone/.next/server/chunks/ssr/_0-pqb_c._.js +0 -7
  269. package/.next/standalone/.next/server/chunks/ssr/_05-r00y._.js +0 -7
  270. package/.next/standalone/.next/server/chunks/ssr/_0h_~oum._.js +0 -7
  271. package/.next/standalone/.next/static/chunks/0.zipr1bga3lu.js +0 -1
  272. package/.next/standalone/.next/static/chunks/037-verumdykv.js +0 -5
  273. package/.next/standalone/.next/static/chunks/082cedbq4pp.-.js +0 -1
  274. package/.next/standalone/.next/static/chunks/089ktlh~nim1x.js +0 -1
  275. package/.next/standalone/.next/static/chunks/0m~ltp.wfnbf7.js +0 -5
  276. package/.next/standalone/.next/static/chunks/0tk-ju9xhoh68.js +0 -5
  277. package/.next/standalone/.next/static/chunks/0w9x-ap4dcwy..js +0 -1
  278. package/.next/standalone/.next/static/chunks/17cayeebhpt~w.js +0 -2
  279. package/.next/standalone/.next/static/chunks/186ahmq856rfj.js +0 -1
  280. /package/.next/standalone/.next/static/{VGoiH5uRfCRm6SKXNPZoz → om3SyUw4eAwMA0KLhpSGh}/_buildManifest.js +0 -0
  281. /package/.next/standalone/.next/static/{VGoiH5uRfCRm6SKXNPZoz → om3SyUw4eAwMA0KLhpSGh}/_clientMiddlewareManifest.js +0 -0
  282. /package/.next/standalone/.next/static/{VGoiH5uRfCRm6SKXNPZoz → om3SyUw4eAwMA0KLhpSGh}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=!1,g=this.getHookArray(b,"SessionStart");if(!this.hasHook(g,"session-start-hook.js")){let a=d.join(c,"scripts","session-start-hook.js").replace(/\\/g,"/");g.push({hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]}),b.SessionStart=g,e=!0}let h=this.getHookArray(b,"PostToolUse");if(!this.hasHook(h,"post-tool-hook.js")){let a=d.join(c,"scripts","post-tool-hook.js").replace(/\\/g,"/");h.push({hooks:[{command:`node "${a}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"}),b.PostToolUse=h,e=!0}let i=this.getHookArray(b,"Stop");if(!this.hasHook(i,"stop-hook.js")){let a=d.join(c,"scripts","stop-hook.js").replace(/\\/g,"/");i.push({hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]}),b.Stop=i,e=!0}return e&&(a.hooks=b,this.writeSettings(a)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!b.existsSync(c))return{ok:!1,method:"symlink",detail:e,error:`Source skill dir does not exist: ${c}`};b.mkdirSync(d.dirname(e),{recursive:!0});let a=await b.promises.lstat(e).catch(()=>null);if(a)if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:e,error:`Refusing to overwrite non-symlink at ${e}`};else{let a=await b.promises.readlink(e);if(d.resolve(a)===d.resolve(c))return{ok:!0,method:"symlink",detail:`${e} → ${c} (already)`};await b.promises.unlink(e)}return await b.promises.symlink(c,e,"dir"),{ok:!0,method:"symlink",detail:`${e} → ${c}`}}catch(a){return{ok:!1,method:"symlink",detail:e,error:a instanceof Error?a.message:String(a)}}}async uninstallSkill(a){let c=d.join(this.getConfigDir(),"skills",a);try{let a=await b.promises.lstat(c).catch(()=>null);if(!a)return{ok:!0,method:"symlink",detail:`${c} (already absent)`};if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:c,error:`Refusing to remove non-symlink at ${c}`};return await b.promises.unlink(c),{ok:!0,method:"symlink",detail:c}}catch(a){return{ok:!1,method:"symlink",detail:c,error:a instanceof Error?a.message:String(a)}}}async isSkillInstalled(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!(await b.promises.lstat(e)).isSymbolicLink())return!1;if(!c)return!0;let a=await b.promises.readlink(e),f=d.isAbsolute(a)?a:d.resolve(d.dirname(e),a);return d.resolve(f)===d.resolve(c)}catch{return!1}}async runCli(b,c,d,e=1e4){let{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),{stdout:i}=await h(b,c,{cwd:d,timeout:e});return i}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),d=c(b),e=this.resolveCommand(),{stdout:f}=await d(e,["--version"],{timeout:5e3});return f.trim()||null}catch{return null}}async getModels(){return g}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(){return{command:this.resolveCommand(),args:["--print","-","--output-format","stream-json","--verbose"]}}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getHookArray(a,b){let c=a[b];return Array.isArray(c)?c:[]}hasHook(a,b){return a.some(a=>a.hooks?.some(a=>a.command?.includes(b)))}}],52350)},897667,a=>{"use strict";let b=new(a.i(52350)).ClaudeCliAdapter;async function c(d,e,f={}){let g="";try{let{query:c}=await a.A(719041),h=b.resolveCommand();for await(let a of c({prompt:d,options:{tools:f.tools??[],allowedTools:f.allowedTools??[],maxTurns:f.maxTurns??1,cwd:e,pathToClaudeCodeExecutable:h,sessionPersistence:!1}}))if("assistant"===a.type){let b=a.message.content.filter(a=>"text"===a.type);g+=b.map(a=>a.text??"").join("")}else if("result"===a.type){let b="string"==typeof a.result?a.result:"";b&&!g&&(g=b)}return g.trim()||null}catch(a){if(a.message?.includes("maximum number of turns")&&g.trim())return g.trim();return console.error("[aiQuery] Failed:",a.message,a.stack?.slice(0,300)),null}}async function d(a,b){let d=`以下是一次AI编程助手的终端会话记录。请用一句简短的中文总结这次会话做了什么(不超过50字,只回答总结内容,不要加引号或前缀):
1
+ module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=!1,g=this.getHookArray(b,"SessionStart");if(!this.hasHook(g,"session-start-hook.js")){let a=d.join(c,"scripts","session-start-hook.js").replace(/\\/g,"/");g.push({hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]}),b.SessionStart=g,e=!0}let h=this.getHookArray(b,"PostToolUse");if(!this.hasHook(h,"post-tool-hook.js")){let a=d.join(c,"scripts","post-tool-hook.js").replace(/\\/g,"/");h.push({hooks:[{command:`node "${a}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"}),b.PostToolUse=h,e=!0}let i=this.getHookArray(b,"Stop");if(!this.hasHook(i,"stop-hook.js")){let a=d.join(c,"scripts","stop-hook.js").replace(/\\/g,"/");i.push({hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]}),b.Stop=i,e=!0}return e&&(a.hooks=b,this.writeSettings(a)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!b.existsSync(c))return{ok:!1,method:"symlink",detail:e,error:`Source skill dir does not exist: ${c}`};b.mkdirSync(d.dirname(e),{recursive:!0});let a=await b.promises.lstat(e).catch(()=>null);if(a)if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:e,error:`Refusing to overwrite non-symlink at ${e}`};else{let a=await b.promises.readlink(e);if(d.resolve(a)===d.resolve(c))return{ok:!0,method:"symlink",detail:`${e} → ${c} (already)`};await b.promises.unlink(e)}return await b.promises.symlink(c,e,"dir"),{ok:!0,method:"symlink",detail:`${e} → ${c}`}}catch(a){return{ok:!1,method:"symlink",detail:e,error:a instanceof Error?a.message:String(a)}}}async uninstallSkill(a){let c=d.join(this.getConfigDir(),"skills",a);try{let a=await b.promises.lstat(c).catch(()=>null);if(!a)return{ok:!0,method:"symlink",detail:`${c} (already absent)`};if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:c,error:`Refusing to remove non-symlink at ${c}`};return await b.promises.unlink(c),{ok:!0,method:"symlink",detail:c}}catch(a){return{ok:!1,method:"symlink",detail:c,error:a instanceof Error?a.message:String(a)}}}async isSkillInstalled(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!(await b.promises.lstat(e)).isSymbolicLink())return!1;if(!c)return!0;let a=await b.promises.readlink(e),f=d.isAbsolute(a)?a:d.resolve(d.dirname(e),a);return d.resolve(f)===d.resolve(c)}catch{return!1}}async runCli(b,c,d,e=1e4){let{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),{stdout:i}=await h(b,c,{cwd:d,timeout:e});return i}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),{resolveSpawnTarget:d}=await a.A(889618),e=c(b),f=await d(this.resolveCommand(),["--version"]),{stdout:g}=await e(f.command,f.args,{timeout:5e3});return g.trim()||null}catch{return null}}async getModels(){return g}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(a){return{command:this.resolveCommand(),args:["--print",a,"--output-format","stream-json","--verbose"]}}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getHookArray(a,b){let c=a[b];return Array.isArray(c)?c:[]}hasHook(a,b){return a.some(a=>a.hooks?.some(a=>a.command?.includes(b)))}}],52350)},897667,a=>{"use strict";let b=new(a.i(52350)).ClaudeCliAdapter;async function c(d,e,f={}){let g="";try{let{query:c}=await a.A(719041),h=b.resolveCommand();for await(let a of c({prompt:d,options:{tools:f.tools??[],allowedTools:f.allowedTools??[],maxTurns:f.maxTurns??1,cwd:e,pathToClaudeCodeExecutable:h,sessionPersistence:!1}}))if("assistant"===a.type){let b=a.message.content.filter(a=>"text"===a.type);g+=b.map(a=>a.text??"").join("")}else if("result"===a.type){let b="string"==typeof a.result?a.result:"";b&&!g&&(g=b)}return g.trim()||null}catch(a){if(a.message?.includes("maximum number of turns")&&g.trim())return g.trim();return console.error("[aiQuery] Failed:",a.message,a.stack?.slice(0,300)),null}}async function d(a,b){let d=`以下是一次AI编程助手的终端会话记录。请用一句简短的中文总结这次会话做了什么(不超过50字,只回答总结内容,不要加引号或前缀):
2
2
 
3
3
  \`\`\`
4
4
  ${a.slice(-5e3)}
@@ -25,6 +25,6 @@ Rules:
25
25
  - Set shouldCreateNote=true ONLY if there are genuinely reusable insights (architectural decisions, non-obvious pitfalls, useful patterns, important tool discoveries)
26
26
  - Trivial sessions (simple formatting, single-line edits, routine commits) should have shouldCreateNote=false
27
27
  - insights array can be empty if nothing notable
28
- - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},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)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0u-vzb1._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
28
+ - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0u-vzb1._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
29
29
 
30
- //# sourceMappingURL=%5Broot-of-the-server%5D__0gcf4k3._.js.map
30
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0.ukame._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[951436,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(689171),a.i(196195);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),354866,a=>a.a(async(b,c)=>{try{var d=a.i(951436),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(689171),n=a.i(196195),o=b([d,g,h,l]);[d,g,h,l]=o.then?(await o)():o,a.s(["0017c96cfbba10eb5558b07c346d467fafc74ba32f",()=>h.getAvailableTerminalApps,"001e1fa1609fa6f321934af3c930363baeed8b3d15",()=>h.getActualWsPort,"003dd4b40b9ae3999cf2e766e4b5d199fce319b6b6",()=>j.listAllExtensionStatus,"00622b352cefb59a96b3d2c010c4d0e0b755d24f6f",()=>l.clearRgPathCache,"006c547946b18a978afe38dac465451e8dfd63a785",()=>k.getOnboardingStatus,"006ca763a21e0c7b1c866f46617803dde0a13da9ea",()=>h.getAvailableShells,"00a0bb5d9c48aaddca2d041f9c1d6239a502e3bf7e",()=>l.checkRgAvailable,"00b949dc7bbd1fc4e9ba440184ecb9228769fb7dbe",()=>e.getWorkspacesWithProjects,"00dbf32469ff11201d8f24aef9098bcb9fa141bcd4",()=>h.getPlatformInfo,"40034a51d1e587cfe04b0c6f78a4523ff39a715254",()=>n.getCurrentBranch,"40036cfdf05d58fb529acd58a7ac9272c2067e45db",()=>f.createLabel,"400a83c5a3284de78c677f400afb2f133682c97bf7",()=>m.getArchivedTasks,"4011457e535193c5d7efdd65958f16689d280f23dd",()=>k.setOnboardingProgress,"4020cafb3c50ccfd1680566c22b87061c1447e23f8",()=>j.uninstallExtension,"40263a1f1f0df6df40affa450732cf0df70cd85b26",()=>e.getOrCreateTowerTaskId,"402e30179203e6f5820b8a8153582b58d4e9d98329",()=>i.checkMigrationSafety,"403c803398940b34763d2420f86863d0cd1b0756fa",()=>m.getArchivedTaskCount,"4042d9836c2241490e52103b34fdb5e516fc6b9a23",()=>e.deleteProject,"4057e5e3ee82c47ba83afefd7334fdd0706177ccba",()=>m.getProjectTasks,"405a0e13cfa93336f590c0d47faa6f19aabd3434c8",()=>e.getProjectByLocalPath,"405b5907b8c09fc5a1785cf0520268508a891b671a",()=>m.toggleTaskPinned,"40630710ecf15c1586ac6b867f5c1211b2fb77dcd2",()=>n.getProjectBranches,"4069d554d8f7ce56ec3f58c1688d421b364bdf6005",()=>e.deleteWorkspace,"406aa7039d3735db6ec5bfc145b1374bcbb5117add",()=>m.searchTasks,"408432700cf2b8320487521790d310de922b0ecff7",()=>m.getTaskOverview,"4087bc0924ce6c5c00399e8a59c06e287e10c7ee43",()=>f.getTaskLabels,"408a94f097a9a92d17f4ef2a81b170cb16586e0cba",()=>h.getConfigValues,"408c1e0ffd66123838eaa2aad3234fbb7d6600f314",()=>m.deleteTask,"409e6268ea403bc68707518dd425bd71601685c0ca",()=>k.dispatchTaskCompletionEvent,"409ee6e37d942f52744a1dd7cc270956e7868eb39b",()=>e.getWorkspaceById,"40a0d04e2182c19049121a129bc097fd7a246bb71e",()=>m.checkWorktreeClean,"40a39b5660e68513c913cb4aa87373255ce74e58ec",()=>e.getRecentLocalProjects,"40a72d2e11016792a7be09074a65e6daa439d5a87a",()=>j.checkExtension,"40a854914e1c3d19dad8786e65c306c87611ade1f8",()=>e.createProject,"40b05fa1832e38faf3093f26ffc25130691bc7b075",()=>h.resolveGitLocalPath,"40b08935f992f3b992e349b4873710e2a4aa6e4248",()=>e.createWorkspace,"40baad4a3c5f68100f528509be2170b43469cbcbc6",()=>j.installExtension,"40e0ac89b080f5ef618a53d9c811e487609f9a3290",()=>f.getLabelsForWorkspace,"40f6da9d6a292541ecab985cf51d35172244ad5594",()=>e.getWorkspacesWithRecentTasks,"40f6f1ef73a519aa967b27410a0786b03beb86a63a",()=>m.createTask,"40f9c1322120e8b7829290e7771b3e2b925d1b574a",()=>f.deleteLabel,"40fa344b1bf3836c4864ced4a707258e300c6c3cfa",()=>n.fetchRemoteBranches,"6009a7bd243192c601ff5ab6bf4f3a774cc9bf0df2",()=>k.setOnboardingExtensions,"601172fb23e968143b4ab89f03812a9da36edda611",()=>m.updateTaskStatus,"6011ea8e7944a4a344175315363e288c4ee38f8382",()=>g.globalSearch,"601406ecac79b3ad03802ebdad7fee412b1cd242a3",()=>h.getConfigValue,"6018c79bde2d7d7b690c57b9fef03c703cef7ac30f",()=>m.updateTask,"601e1f2fa0826aad4b151f644631ed3de772839cf3",()=>m.commitWorktreeChanges,"6024c18827e9d0b93cf5e60ccfdb304b3f8167f020",()=>e.updateProject,"602a9baca17d1dfb46d6920ffa0a228eef5457ab33",()=>h.setConfigValue,"60422b53101cd553e6bc590d8b6c97c138e774d438",()=>i.migrateProjectPath,"604fccb4262ac62af97139f93b27d64097c183782b",()=>e.updateWorkspace,"6050e7dd371728221714178cb353624ad04f5ed9f7",()=>k.completeOnboarding,"60870e5ad7965e108335eebda2c2bacffd779094e8",()=>f.setTaskLabels,"60d844213b06bdf9b556f80d11cf318691a6b9ea5e",()=>i.analyzeProjectDirectory,"7c9ed21e64e67aa2e483eab0fbfe6ded34dadcf78d",()=>l.searchCode]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_05il5a6._.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]__05kq890._.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]__0ghfuuv._.js"].map(b=>a.l(b))).then(()=>b(818992)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
1
+ module.exports=[951436,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(689171),a.i(196195);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),354866,a=>a.a(async(b,c)=>{try{var d=a.i(951436),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(689171),n=a.i(196195),o=b([d,g,h,l]);[d,g,h,l]=o.then?(await o)():o,a.s(["000068ce2fe44507bf690991ced2f8810ee21aa06b",()=>h.getAvailableTerminalApps,"00158c921cd696ea4c1ce82a55937d11a7689d4366",()=>k.getOnboardingStatus,"00344a67d1ab405b6770b42b61d196e25061669ed5",()=>h.getActualWsPort,"00352243efe42977dfd6af7568a8910b0168021847",()=>e.getWorkspacesWithProjects,"005dfa564934754fa9e330eea2d7cf3314c7404691",()=>l.checkRgAvailable,"00917a291a1ba427a2d5757832254c170fe37954b9",()=>h.getPlatformInfo,"00c7b21fbe8ad6d8d5036d0a2d22c11f624ed54027",()=>l.clearRgPathCache,"00d83917ed4b0681fd8751d66b13765c7c6bcfad01",()=>h.getAvailableShells,"00e9060c585c3583b63be04c71492fb32c6512b5f2",()=>j.listAllExtensionStatus,"4001f8775d784fd13b7787b6535ee8883b0627ccd6",()=>m.checkWorktreeClean,"4010c23871e21313632c6e547b088728eaaaf8d6ed",()=>m.searchTasks,"40144cdabed5ebf75fcf8f5a37d9843fe89867905d",()=>n.getCurrentBranch,"401864e07f05eb5712c61726e7c45c9127437f3ed4",()=>m.createTask,"4026cce9744b390018c9fb8c8647caf6832e9c80ed",()=>n.fetchRemoteBranches,"402b1385fefcfc9db6d341b3cce5f657983b51f500",()=>k.dispatchTaskCompletionEvent,"403d34b6c07f1211d62ffcf8957d4e12c5cd30d6cb",()=>h.getConfigValues,"404bbef08c8b4cd47e625800cc0b5f3058bebe348f",()=>n.getProjectBranches,"405f319d9375c810e45a6ced3d136b541eed06d322",()=>e.getOrCreateTowerTaskId,"4066f5b7ea4a9151707d2b708464e41ca8b46f2824",()=>e.getWorkspacesWithRecentTasks,"4071d9e76239c1dd807a3e838c615246588e99889c",()=>k.setOnboardingProgress,"4079ddcb0d3bea2eb0a8f1c822f43181fc6bc7a8e1",()=>f.deleteLabel,"4083025e1088f0ea1132dc991ca3f8360acfda29d5",()=>e.createWorkspace,"408c338c2266f72bd527b82785fdd777cbec6c4d47",()=>f.createLabel,"40a1d04c2e1466451263ed2619455d05f00b9d4bce",()=>e.getProjectByLocalPath,"40adba9339d5dcdae2f99eacb52c5217bb737c9561",()=>e.deleteWorkspace,"40b36c864d4d23ff0d7f5c0345462b73016d89624e",()=>m.getTaskOverview,"40b4cb2d11c40610200181530e40845077be931004",()=>h.resolveGitLocalPath,"40b536712468b173859a6f5b7d2a1975d71a8847ca",()=>m.getArchivedTasks,"40b864e02d048dabde7fce059da3bc8340153ec409",()=>m.deleteTask,"40bad5a0ca1f19f6a0ecd2d5c4cc816552e9405e6e",()=>e.deleteProject,"40c09cce85fa62a5188f302cb8ed640c144a62a304",()=>m.getProjectTasks,"40c3ea63137ef3cd7359bf5b6962fc87c9ea9abe68",()=>m.getArchivedTaskCount,"40c937dfc6020ed56d61f7375b16690d08aba8874d",()=>e.createProject,"40cb62edcf28baf88be1c006416b1dc17a165a7708",()=>m.toggleTaskPinned,"40cc1ddd5bc652248bd8ff8007cced78a3c7830a00",()=>f.getLabelsForWorkspace,"40d6569939da4917ee5c58541cb007ec61742108cb",()=>f.getTaskLabels,"40e5d7afe519f9455de7e860e63f98482d474436c1",()=>j.uninstallExtension,"40e673386ce29ba0afa3cedc513d447e16bb423111",()=>e.getRecentLocalProjects,"40ee476cf0921ed8dfca9463a686403acc340870e7",()=>i.checkMigrationSafety,"40f7a7a324cabac3b30f90d2f71132492f0e2976f9",()=>j.checkExtension,"40face0b1894edbb9834aea9d69cd108b567a54da1",()=>j.installExtension,"40fdbf62e7bbf6381a499ec7d118cfface9d3b4b77",()=>e.getWorkspaceById,"601b9b8e5f87c7210ac53f19895be46302ae5aec4d",()=>i.analyzeProjectDirectory,"603c0264012af76a302a9257aabe7ba4f12e177654",()=>h.getConfigValue,"604cfd61cf005b488dc365cfb233fd1f0db5e21428",()=>e.updateProject,"604e2b67b2ae23ce5db8ad79e81f1456572fc96cff",()=>h.setConfigValue,"6057ade64560859b1c9eca7326d6cc20ace51d3f74",()=>m.commitWorktreeChanges,"6090b9072de227a79fc49dc75310ab3287833a57ad",()=>k.completeOnboarding,"60afb9f705474245774d13886613c57f2d1d6fe6ff",()=>m.updateTaskStatus,"60b83a9e949e27da23575e9ec56d9aed80201f2edd",()=>m.updateTask,"60c53796d27d723175d8f0a97d30a21c625456d25b",()=>e.updateWorkspace,"60c71da1164a70c3c76a887077ed5cce6ca9885b52",()=>i.migrateProjectPath,"60cca945638d621516131c1789cc32678882a18731",()=>k.setOnboardingExtensions,"60dcf8f8f6fc30c42e03b1a674c112ac4b962db064",()=>g.globalSearch,"60df8d8d4eb43e7a879400fd0034f9d364cc369261",()=>f.setTaskLabels,"7ccf83ff07956e6239cf7502476722cd7b35b9a6a5",()=>l.searchCode]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_05il5a6._.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]__0v2eslh._.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]__0ca_ueb._.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__006_qh0._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=!1,g=this.getHookArray(b,"SessionStart");if(!this.hasHook(g,"session-start-hook.js")){let a=d.join(c,"scripts","session-start-hook.js").replace(/\\/g,"/");g.push({hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]}),b.SessionStart=g,e=!0}let h=this.getHookArray(b,"PostToolUse");if(!this.hasHook(h,"post-tool-hook.js")){let a=d.join(c,"scripts","post-tool-hook.js").replace(/\\/g,"/");h.push({hooks:[{command:`node "${a}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"}),b.PostToolUse=h,e=!0}let i=this.getHookArray(b,"Stop");if(!this.hasHook(i,"stop-hook.js")){let a=d.join(c,"scripts","stop-hook.js").replace(/\\/g,"/");i.push({hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]}),b.Stop=i,e=!0}return e&&(a.hooks=b,this.writeSettings(a)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!b.existsSync(c))return{ok:!1,method:"symlink",detail:e,error:`Source skill dir does not exist: ${c}`};b.mkdirSync(d.dirname(e),{recursive:!0});let a=await b.promises.lstat(e).catch(()=>null);if(a)if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:e,error:`Refusing to overwrite non-symlink at ${e}`};else{let a=await b.promises.readlink(e);if(d.resolve(a)===d.resolve(c))return{ok:!0,method:"symlink",detail:`${e} → ${c} (already)`};await b.promises.unlink(e)}return await b.promises.symlink(c,e,"dir"),{ok:!0,method:"symlink",detail:`${e} → ${c}`}}catch(a){return{ok:!1,method:"symlink",detail:e,error:a instanceof Error?a.message:String(a)}}}async uninstallSkill(a){let c=d.join(this.getConfigDir(),"skills",a);try{let a=await b.promises.lstat(c).catch(()=>null);if(!a)return{ok:!0,method:"symlink",detail:`${c} (already absent)`};if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:c,error:`Refusing to remove non-symlink at ${c}`};return await b.promises.unlink(c),{ok:!0,method:"symlink",detail:c}}catch(a){return{ok:!1,method:"symlink",detail:c,error:a instanceof Error?a.message:String(a)}}}async isSkillInstalled(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!(await b.promises.lstat(e)).isSymbolicLink())return!1;if(!c)return!0;let a=await b.promises.readlink(e),f=d.isAbsolute(a)?a:d.resolve(d.dirname(e),a);return d.resolve(f)===d.resolve(c)}catch{return!1}}async runCli(b,c,d,e=1e4){let{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),{stdout:i}=await h(b,c,{cwd:d,timeout:e});return i}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),d=c(b),e=this.resolveCommand(),{stdout:f}=await d(e,["--version"],{timeout:5e3});return f.trim()||null}catch{return null}}async getModels(){return g}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(){return{command:this.resolveCommand(),args:["--print","-","--output-format","stream-json","--verbose"]}}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getHookArray(a,b){let c=a[b];return Array.isArray(c)?c:[]}hasHook(a,b){return a.some(a=>a.hooks?.some(a=>a.command?.includes(b)))}}],52350)},897667,a=>{"use strict";let b=new(a.i(52350)).ClaudeCliAdapter;async function c(d,e,f={}){let g="";try{let{query:c}=await a.A(719041),h=b.resolveCommand();for await(let a of c({prompt:d,options:{tools:f.tools??[],allowedTools:f.allowedTools??[],maxTurns:f.maxTurns??1,cwd:e,pathToClaudeCodeExecutable:h,sessionPersistence:!1}}))if("assistant"===a.type){let b=a.message.content.filter(a=>"text"===a.type);g+=b.map(a=>a.text??"").join("")}else if("result"===a.type){let b="string"==typeof a.result?a.result:"";b&&!g&&(g=b)}return g.trim()||null}catch(a){if(a.message?.includes("maximum number of turns")&&g.trim())return g.trim();return console.error("[aiQuery] Failed:",a.message,a.stack?.slice(0,300)),null}}async function d(a,b){let d=`以下是一次AI编程助手的终端会话记录。请用一句简短的中文总结这次会话做了什么(不超过50字,只回答总结内容,不要加引号或前缀):
1
+ module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=!1,g=this.getHookArray(b,"SessionStart");if(!this.hasHook(g,"session-start-hook.js")){let a=d.join(c,"scripts","session-start-hook.js").replace(/\\/g,"/");g.push({hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]}),b.SessionStart=g,e=!0}let h=this.getHookArray(b,"PostToolUse");if(!this.hasHook(h,"post-tool-hook.js")){let a=d.join(c,"scripts","post-tool-hook.js").replace(/\\/g,"/");h.push({hooks:[{command:`node "${a}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"}),b.PostToolUse=h,e=!0}let i=this.getHookArray(b,"Stop");if(!this.hasHook(i,"stop-hook.js")){let a=d.join(c,"scripts","stop-hook.js").replace(/\\/g,"/");i.push({hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]}),b.Stop=i,e=!0}return e&&(a.hooks=b,this.writeSettings(a)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!b.existsSync(c))return{ok:!1,method:"symlink",detail:e,error:`Source skill dir does not exist: ${c}`};b.mkdirSync(d.dirname(e),{recursive:!0});let a=await b.promises.lstat(e).catch(()=>null);if(a)if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:e,error:`Refusing to overwrite non-symlink at ${e}`};else{let a=await b.promises.readlink(e);if(d.resolve(a)===d.resolve(c))return{ok:!0,method:"symlink",detail:`${e} → ${c} (already)`};await b.promises.unlink(e)}return await b.promises.symlink(c,e,"dir"),{ok:!0,method:"symlink",detail:`${e} → ${c}`}}catch(a){return{ok:!1,method:"symlink",detail:e,error:a instanceof Error?a.message:String(a)}}}async uninstallSkill(a){let c=d.join(this.getConfigDir(),"skills",a);try{let a=await b.promises.lstat(c).catch(()=>null);if(!a)return{ok:!0,method:"symlink",detail:`${c} (already absent)`};if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:c,error:`Refusing to remove non-symlink at ${c}`};return await b.promises.unlink(c),{ok:!0,method:"symlink",detail:c}}catch(a){return{ok:!1,method:"symlink",detail:c,error:a instanceof Error?a.message:String(a)}}}async isSkillInstalled(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!(await b.promises.lstat(e)).isSymbolicLink())return!1;if(!c)return!0;let a=await b.promises.readlink(e),f=d.isAbsolute(a)?a:d.resolve(d.dirname(e),a);return d.resolve(f)===d.resolve(c)}catch{return!1}}async runCli(b,c,d,e=1e4){let{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),{stdout:i}=await h(b,c,{cwd:d,timeout:e});return i}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),{resolveSpawnTarget:d}=await a.A(889618),e=c(b),f=await d(this.resolveCommand(),["--version"]),{stdout:g}=await e(f.command,f.args,{timeout:5e3});return g.trim()||null}catch{return null}}async getModels(){return g}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(a){return{command:this.resolveCommand(),args:["--print",a,"--output-format","stream-json","--verbose"]}}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getHookArray(a,b){let c=a[b];return Array.isArray(c)?c:[]}hasHook(a,b){return a.some(a=>a.hooks?.some(a=>a.command?.includes(b)))}}],52350)},897667,a=>{"use strict";let b=new(a.i(52350)).ClaudeCliAdapter;async function c(d,e,f={}){let g="";try{let{query:c}=await a.A(719041),h=b.resolveCommand();for await(let a of c({prompt:d,options:{tools:f.tools??[],allowedTools:f.allowedTools??[],maxTurns:f.maxTurns??1,cwd:e,pathToClaudeCodeExecutable:h,sessionPersistence:!1}}))if("assistant"===a.type){let b=a.message.content.filter(a=>"text"===a.type);g+=b.map(a=>a.text??"").join("")}else if("result"===a.type){let b="string"==typeof a.result?a.result:"";b&&!g&&(g=b)}return g.trim()||null}catch(a){if(a.message?.includes("maximum number of turns")&&g.trim())return g.trim();return console.error("[aiQuery] Failed:",a.message,a.stack?.slice(0,300)),null}}async function d(a,b){let d=`以下是一次AI编程助手的终端会话记录。请用一句简短的中文总结这次会话做了什么(不超过50字,只回答总结内容,不要加引号或前缀):
2
2
 
3
3
  \`\`\`
4
4
  ${a.slice(-5e3)}
@@ -25,6 +25,6 @@ Rules:
25
25
  - Set shouldCreateNote=true ONLY if there are genuinely reusable insights (architectural decisions, non-obvious pitfalls, useful patterns, important tool discoveries)
26
26
  - Trivial sessions (simple formatting, single-line edits, routine commits) should have shouldCreateNote=false
27
27
  - insights array can be empty if nothing notable
28
- - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},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)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0u-vzb1._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
28
+ - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},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)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0u-vzb1._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
29
29
 
30
- //# sourceMappingURL=%5Broot-of-the-server%5D__0tf4zp_._.js.map
30
+ //# sourceMappingURL=%5Broot-of-the-server%5D__01j8ix6._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[748383,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877),f=a.i(233405);function g(a,b){if(!b||b.startsWith("-"))return null;try{return(0,f.execFileSync)("git",["rev-parse",b],{cwd:a,encoding:"utf-8",timeout:5e3}).trim()||null}catch(a){return null}}async function h(a){return c.db.version.findMany({where:{projectId:a},orderBy:[{targetDate:"desc"},{order:"desc"},{createdAt:"desc"}],include:{type:!0,tasks:{orderBy:[{order:"asc"},{createdAt:"desc"}],include:{labels:{include:{label:!0}},assets:{select:{id:!0,filename:!0,mimeType:!0,size:!0}},notes:{select:{id:!0,title:!0,category:!0}}}}}})}async function i(a){let b=e.createVersionSchema.parse(a),f=null;if(b.baseBranch){let a=await c.db.project.findUnique({where:{id:b.projectId},select:{localPath:!0}});a?.localPath&&(f=g(a.localPath,b.baseBranch))}let h=await c.db.version.create({data:{projectId:b.projectId,number:b.number,name:b.name,typeId:b.typeId??null,status:"PLANNED",baseBranch:b.baseBranch??null,baseCommit:f,startDate:b.startDate??null,targetDate:b.targetDate??null,description:b.description??null}});return b.setCurrent&&await q(h.id),(0,d.revalidatePath)("/workspaces"),h}async function j(a,b){let f=e.updateVersionSchema.parse(b);try{let b=await c.db.version.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if("object"==typeof a&&a&&"code"in a&&"P2025"===a.code)throw Error("版本不存在");throw a}}async function k(a){try{await c.db.version.delete({where:{id:a}})}catch(a){if("object"==typeof a&&a&&"code"in a&&"P2025"===a.code)throw Error("版本不存在");throw a}(0,d.revalidatePath)("/workspaces")}async function l(a,b){await c.db.task.updateMany({where:{id:a},data:{versionId:b}}),(0,d.revalidatePath)("/workspaces")}async function m(a,b){let e=await c.db.version.findUnique({where:{id:a},select:{id:!0,projectId:!0,status:!0,baseBranch:!0,project:{select:{localPath:!0}}}});if(!e)throw Error("版本不存在");if("RELEASED"===e.status)throw Error("该版本已发布");let f=null;e.baseBranch&&e.project?.localPath&&(f=g(e.project.localPath,e.baseBranch));let h=await c.db.version.findUnique({where:{id:b},select:{id:!0,projectId:!0,status:!0}});if(!h)throw Error("目标版本不存在");if(h.projectId!==e.projectId)throw Error("目标版本必须属于同一项目");if(h.id===a)throw Error("目标版本不能是正在发布的版本本身");if("RELEASED"===h.status)throw Error("目标版本已发布,不能作为下一个当前版本");await c.db.$transaction(async c=>{await c.version.update({where:{id:a},data:{status:"RELEASED",releasedAt:new Date,releaseCommit:f,isCurrent:!1}}),await c.task.updateMany({where:{versionId:a,status:{notIn:["DONE","CANCELLED"]}},data:{versionId:b}}),await c.version.updateMany({where:{projectId:e.projectId,isCurrent:!0},data:{isCurrent:!1}}),await c.version.update({where:{id:b},data:{isCurrent:!0,status:"ACTIVE"}})}),(0,d.revalidatePath)("/workspaces")}async function n(a){return c.db.version.findMany({where:{projectId:a,status:{not:"RELEASED"}},select:{id:!0,number:!0,name:!0,isCurrent:!0,status:!0},orderBy:[{isCurrent:"desc"},{targetDate:"desc"},{createdAt:"desc"}]})}async function o(a){let b=await c.db.version.findUnique({where:{id:a},select:{baseCommit:!0,releaseCommit:!0,baseBranch:!0,project:{select:{localPath:!0}}}});if(!b?.baseCommit||!b.project?.localPath)return null;let d=b.releaseCommit??(b.baseBranch?g(b.project.localPath,b.baseBranch):null);return d?function(a,b,c){try{let d=(0,f.execFileSync)("git",["diff","--numstat",`${b}..${c}`],{cwd:a,encoding:"utf-8",timeout:5e3}),e=0,g=0,h=0;for(let a of d.split("\n")){let b=a.trim();if(!b)continue;let[c,d]=b.split(" ");e+=Number.parseInt(c,10)||0,g+=Number.parseInt(d,10)||0,h+=1}return{additions:e,deletions:g,files:h}}catch(a){return{additions:0,deletions:0,files:0}}}(b.project.localPath,b.baseCommit,d):null}async function p(a){let b=await c.db.version.findUnique({where:{id:a},select:{baseCommit:!0,releaseCommit:!0,baseBranch:!0,project:{select:{localPath:!0}}}});if(!b?.baseCommit||!b.project?.localPath)return null;let d=b.releaseCommit??(b.baseBranch?g(b.project.localPath,b.baseBranch):null);return d?{patch:function(a,b,c){try{return(0,f.execFileSync)("git",["diff",`${b}..${c}`],{cwd:a,encoding:"utf-8",timeout:15e3,maxBuffer:0x1400000})}catch(a){return""}}(b.project.localPath,b.baseCommit,d)}:null}async function q(a){let b=await c.db.version.findUnique({where:{id:a},select:{id:!0,projectId:!0}});if(!b)throw Error("版本不存在");await c.db.$transaction(async c=>{await c.version.updateMany({where:{projectId:b.projectId,isCurrent:!0},data:{isCurrent:!1}}),await c.version.update({where:{id:a},data:{isCurrent:!0,status:"ACTIVE"}})}),(0,d.revalidatePath)("/workspaces")}(0,a.i(630048).ensureServerEntryExports)([h,i,j,k,l,m,n,o,p,q]),(0,b.registerServerReference)(h,"4022901a92805afd69caa31a5165428c59ce4839d2",null),(0,b.registerServerReference)(i,"40fb4338ef5b6898b84f59d2da6e6504301acb3023",null),(0,b.registerServerReference)(j,"603c6cfff512fe1ee85089665d8aeab407397fefe5",null),(0,b.registerServerReference)(k,"4067ae3dd3cb3aa9d2ceb738d260a7b8b7849a798f",null),(0,b.registerServerReference)(l,"609f95e1c969b171cafd54060644b4a19e52509b28",null),(0,b.registerServerReference)(m,"6035c458218064df3e57b0f419986fa4d1f81193f3",null),(0,b.registerServerReference)(n,"40c54b0535c2253844d59548defa5a0043188828f9",null),(0,b.registerServerReference)(o,"40d2d586bd45fcd24f623902e64c4b0d5d7f272e81",null),(0,b.registerServerReference)(p,"40735d39dcaad4613132bd765ebf878e8b6cdb32e6",null),(0,b.registerServerReference)(q,"4080eced2541c28ce149d2f4ccb156f4cdb38bc3c4",null),a.s(["assignTaskVersion",0,l,"createVersion",0,i,"deleteVersion",0,k,"getProjectVersions",0,h,"getVersionDiff",0,p,"getVersionDiffStat",0,o,"getVersionsForPicker",0,n,"releaseVersion",0,m,"setCurrentVersion",0,q,"updateVersion",0,j],748383)},239499,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.versionType.findMany({where:{workspaceId:a},orderBy:{createdAt:"asc"}})}async function g(a){let b=e.createVersionTypeSchema.parse(a),f=await c.db.versionType.create({data:{name:b.name,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a,b){let f=e.updateVersionTypeSchema.parse(b);try{let b=await c.db.versionType.update({where:{id:a},data:{name:f.name}});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if("object"==typeof a&&a&&"code"in a&&"P2025"===a.code)throw Error("类型不存在");throw a}}async function i(a){try{await c.db.versionType.delete({where:{id:a}})}catch(a){if("object"==typeof a&&a&&"code"in a&&"P2025"===a.code)throw Error("类型不存在");throw a}(0,d.revalidatePath)("/workspaces")}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i]),(0,b.registerServerReference)(f,"40f34adc3a4bc44349becebf545a2bf9a587af72c4",null),(0,b.registerServerReference)(g,"40cbba956dbece8fd6d8b86e5d9b977244a93c3d2d",null),(0,b.registerServerReference)(h,"60c2746f2b48f56b61f8f62ba7dffa1dece49fa766",null),(0,b.registerServerReference)(i,"403c823aaf576e14530429fc747485a789f83f6f80",null),a.s(["createVersionType",0,g,"deleteVersionType",0,i,"getVersionTypes",0,f,"updateVersionType",0,h])},89160,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(748383),a.i(239499),a.i(196195),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),637202,a=>a.a(async(b,c)=>{try{var d=a.i(89160),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(748383),n=a.i(239499),o=a.i(196195),p=a.i(689171),q=b([d,g,h,l]);[d,g,h,l]=q.then?(await q)():q,a.s(["0017c96cfbba10eb5558b07c346d467fafc74ba32f",()=>h.getAvailableTerminalApps,"001e1fa1609fa6f321934af3c930363baeed8b3d15",()=>h.getActualWsPort,"003dd4b40b9ae3999cf2e766e4b5d199fce319b6b6",()=>j.listAllExtensionStatus,"00622b352cefb59a96b3d2c010c4d0e0b755d24f6f",()=>l.clearRgPathCache,"006c547946b18a978afe38dac465451e8dfd63a785",()=>k.getOnboardingStatus,"006ca763a21e0c7b1c866f46617803dde0a13da9ea",()=>h.getAvailableShells,"00a0bb5d9c48aaddca2d041f9c1d6239a502e3bf7e",()=>l.checkRgAvailable,"00dbf32469ff11201d8f24aef9098bcb9fa141bcd4",()=>h.getPlatformInfo,"40034a51d1e587cfe04b0c6f78a4523ff39a715254",()=>o.getCurrentBranch,"40036cfdf05d58fb529acd58a7ac9272c2067e45db",()=>f.createLabel,"4011457e535193c5d7efdd65958f16689d280f23dd",()=>k.setOnboardingProgress,"4020cafb3c50ccfd1680566c22b87061c1447e23f8",()=>j.uninstallExtension,"4022901a92805afd69caa31a5165428c59ce4839d2",()=>m.getProjectVersions,"402e30179203e6f5820b8a8153582b58d4e9d98329",()=>i.checkMigrationSafety,"403c823aaf576e14530429fc747485a789f83f6f80",()=>n.deleteVersionType,"40630710ecf15c1586ac6b867f5c1211b2fb77dcd2",()=>o.getProjectBranches,"4067ae3dd3cb3aa9d2ceb738d260a7b8b7849a798f",()=>m.deleteVersion,"4069d554d8f7ce56ec3f58c1688d421b364bdf6005",()=>e.deleteWorkspace,"40735d39dcaad4613132bd765ebf878e8b6cdb32e6",()=>m.getVersionDiff,"4080eced2541c28ce149d2f4ccb156f4cdb38bc3c4",()=>m.setCurrentVersion,"408432700cf2b8320487521790d310de922b0ecff7",()=>p.getTaskOverview,"408a94f097a9a92d17f4ef2a81b170cb16586e0cba",()=>h.getConfigValues,"409e6268ea403bc68707518dd425bd71601685c0ca",()=>k.dispatchTaskCompletionEvent,"40a72d2e11016792a7be09074a65e6daa439d5a87a",()=>j.checkExtension,"40a854914e1c3d19dad8786e65c306c87611ade1f8",()=>e.createProject,"40b05fa1832e38faf3093f26ffc25130691bc7b075",()=>h.resolveGitLocalPath,"40b08935f992f3b992e349b4873710e2a4aa6e4248",()=>e.createWorkspace,"40baad4a3c5f68100f528509be2170b43469cbcbc6",()=>j.installExtension,"40c54b0535c2253844d59548defa5a0043188828f9",()=>m.getVersionsForPicker,"40cbba956dbece8fd6d8b86e5d9b977244a93c3d2d",()=>n.createVersionType,"40d2d586bd45fcd24f623902e64c4b0d5d7f272e81",()=>m.getVersionDiffStat,"40e0ac89b080f5ef618a53d9c811e487609f9a3290",()=>f.getLabelsForWorkspace,"40f34adc3a4bc44349becebf545a2bf9a587af72c4",()=>n.getVersionTypes,"40f6f1ef73a519aa967b27410a0786b03beb86a63a",()=>p.createTask,"40f9c1322120e8b7829290e7771b3e2b925d1b574a",()=>f.deleteLabel,"40fa344b1bf3836c4864ced4a707258e300c6c3cfa",()=>o.fetchRemoteBranches,"40fb4338ef5b6898b84f59d2da6e6504301acb3023",()=>m.createVersion,"6009a7bd243192c601ff5ab6bf4f3a774cc9bf0df2",()=>k.setOnboardingExtensions,"6011ea8e7944a4a344175315363e288c4ee38f8382",()=>g.globalSearch,"601406ecac79b3ad03802ebdad7fee412b1cd242a3",()=>h.getConfigValue,"602a9baca17d1dfb46d6920ffa0a228eef5457ab33",()=>h.setConfigValue,"6035c458218064df3e57b0f419986fa4d1f81193f3",()=>m.releaseVersion,"603c6cfff512fe1ee85089665d8aeab407397fefe5",()=>m.updateVersion,"60422b53101cd553e6bc590d8b6c97c138e774d438",()=>i.migrateProjectPath,"604fccb4262ac62af97139f93b27d64097c183782b",()=>e.updateWorkspace,"6050e7dd371728221714178cb353624ad04f5ed9f7",()=>k.completeOnboarding,"609f95e1c969b171cafd54060644b4a19e52509b28",()=>m.assignTaskVersion,"60c2746f2b48f56b61f8f62ba7dffa1dece49fa766",()=>n.updateVersionType,"60d844213b06bdf9b556f80d11cf318691a6b9ea5e",()=>i.analyzeProjectDirectory,"7c9ed21e64e67aa2e483eab0fbfe6ded34dadcf78d",()=>l.searchCode]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0yvo_x7._.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]__0qe~p-n._.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]__11bequ2._.js"].map(b=>a.l(b))).then(()=>b(818992)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
1
+ module.exports=[748383,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877),f=a.i(233405);function g(a,b){if(!b||b.startsWith("-"))return null;try{return(0,f.execFileSync)("git",["rev-parse",b],{cwd:a,encoding:"utf-8",timeout:5e3}).trim()||null}catch(a){return null}}async function h(a){return c.db.version.findMany({where:{projectId:a},orderBy:[{targetDate:"desc"},{order:"desc"},{createdAt:"desc"}],include:{type:!0,tasks:{orderBy:[{order:"asc"},{createdAt:"desc"}],include:{labels:{include:{label:!0}},assets:{select:{id:!0,filename:!0,mimeType:!0,size:!0}},notes:{select:{id:!0,title:!0,category:!0}}}}}})}async function i(a){let b=e.createVersionSchema.parse(a),f=null;if(b.baseBranch){let a=await c.db.project.findUnique({where:{id:b.projectId},select:{localPath:!0}});a?.localPath&&(f=g(a.localPath,b.baseBranch))}let h=await c.db.version.create({data:{projectId:b.projectId,number:b.number,name:b.name,typeId:b.typeId??null,status:"PLANNED",baseBranch:b.baseBranch??null,baseCommit:f,startDate:b.startDate??null,targetDate:b.targetDate??null,description:b.description??null}});return b.setCurrent&&await q(h.id),(0,d.revalidatePath)("/workspaces"),h}async function j(a,b){let f=e.updateVersionSchema.parse(b);try{let b=await c.db.version.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if("object"==typeof a&&a&&"code"in a&&"P2025"===a.code)throw Error("版本不存在");throw a}}async function k(a){try{await c.db.version.delete({where:{id:a}})}catch(a){if("object"==typeof a&&a&&"code"in a&&"P2025"===a.code)throw Error("版本不存在");throw a}(0,d.revalidatePath)("/workspaces")}async function l(a,b){await c.db.task.updateMany({where:{id:a},data:{versionId:b}}),(0,d.revalidatePath)("/workspaces")}async function m(a,b){let e=await c.db.version.findUnique({where:{id:a},select:{id:!0,projectId:!0,status:!0,baseBranch:!0,project:{select:{localPath:!0}}}});if(!e)throw Error("版本不存在");if("RELEASED"===e.status)throw Error("该版本已发布");let f=null;e.baseBranch&&e.project?.localPath&&(f=g(e.project.localPath,e.baseBranch));let h=await c.db.version.findUnique({where:{id:b},select:{id:!0,projectId:!0,status:!0}});if(!h)throw Error("目标版本不存在");if(h.projectId!==e.projectId)throw Error("目标版本必须属于同一项目");if(h.id===a)throw Error("目标版本不能是正在发布的版本本身");if("RELEASED"===h.status)throw Error("目标版本已发布,不能作为下一个当前版本");await c.db.$transaction(async c=>{await c.version.update({where:{id:a},data:{status:"RELEASED",releasedAt:new Date,releaseCommit:f,isCurrent:!1}}),await c.task.updateMany({where:{versionId:a,status:{notIn:["DONE","CANCELLED"]}},data:{versionId:b}}),await c.version.updateMany({where:{projectId:e.projectId,isCurrent:!0},data:{isCurrent:!1}}),await c.version.update({where:{id:b},data:{isCurrent:!0,status:"ACTIVE"}})}),(0,d.revalidatePath)("/workspaces")}async function n(a){return c.db.version.findMany({where:{projectId:a,status:{not:"RELEASED"}},select:{id:!0,number:!0,name:!0,isCurrent:!0,status:!0},orderBy:[{isCurrent:"desc"},{targetDate:"desc"},{createdAt:"desc"}]})}async function o(a){let b=await c.db.version.findUnique({where:{id:a},select:{baseCommit:!0,releaseCommit:!0,baseBranch:!0,project:{select:{localPath:!0}}}});if(!b?.baseCommit||!b.project?.localPath)return null;let d=b.releaseCommit??(b.baseBranch?g(b.project.localPath,b.baseBranch):null);return d?function(a,b,c){try{let d=(0,f.execFileSync)("git",["diff","--numstat",`${b}..${c}`],{cwd:a,encoding:"utf-8",timeout:5e3}),e=0,g=0,h=0;for(let a of d.split("\n")){let b=a.trim();if(!b)continue;let[c,d]=b.split(" ");e+=Number.parseInt(c,10)||0,g+=Number.parseInt(d,10)||0,h+=1}return{additions:e,deletions:g,files:h}}catch(a){return{additions:0,deletions:0,files:0}}}(b.project.localPath,b.baseCommit,d):null}async function p(a){let b=await c.db.version.findUnique({where:{id:a},select:{baseCommit:!0,releaseCommit:!0,baseBranch:!0,project:{select:{localPath:!0}}}});if(!b?.baseCommit||!b.project?.localPath)return null;let d=b.releaseCommit??(b.baseBranch?g(b.project.localPath,b.baseBranch):null);return d?{patch:function(a,b,c){try{return(0,f.execFileSync)("git",["diff",`${b}..${c}`],{cwd:a,encoding:"utf-8",timeout:15e3,maxBuffer:0x1400000})}catch(a){return""}}(b.project.localPath,b.baseCommit,d)}:null}async function q(a){let b=await c.db.version.findUnique({where:{id:a},select:{id:!0,projectId:!0}});if(!b)throw Error("版本不存在");await c.db.$transaction(async c=>{await c.version.updateMany({where:{projectId:b.projectId,isCurrent:!0},data:{isCurrent:!1}}),await c.version.update({where:{id:a},data:{isCurrent:!0,status:"ACTIVE"}})}),(0,d.revalidatePath)("/workspaces")}(0,a.i(630048).ensureServerEntryExports)([h,i,j,k,l,m,n,o,p,q]),(0,b.registerServerReference)(h,"405b11129c958896555c915986c5a6f9a97c6d2d4d",null),(0,b.registerServerReference)(i,"4035aeb303a13bed8fda4465736df8a0f708cd37b3",null),(0,b.registerServerReference)(j,"60f1544acac2b4bacf68d4722cb6002dc7c736d92b",null),(0,b.registerServerReference)(k,"4080b530c3524bd971f995dcb141b52ffef5b9e2f6",null),(0,b.registerServerReference)(l,"60935ff5df1e244e44ffadb8fed5537f97825d0fd6",null),(0,b.registerServerReference)(m,"609bd30d0af14ce31bb49e71ad36b910c73d395bb1",null),(0,b.registerServerReference)(n,"40aa0b118228575abc653ff9aa04ca0f29e8547ef4",null),(0,b.registerServerReference)(o,"4081ee3f3dd5a8ee9cfe148a40eefea166fa8c3dbd",null),(0,b.registerServerReference)(p,"40e6423714206788362bb8adcc18b09e831cd580c5",null),(0,b.registerServerReference)(q,"4093d5a72eeb95129c0e46869a5827377dee2f1333",null),a.s(["assignTaskVersion",0,l,"createVersion",0,i,"deleteVersion",0,k,"getProjectVersions",0,h,"getVersionDiff",0,p,"getVersionDiffStat",0,o,"getVersionsForPicker",0,n,"releaseVersion",0,m,"setCurrentVersion",0,q,"updateVersion",0,j],748383)},239499,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.versionType.findMany({where:{workspaceId:a},orderBy:{createdAt:"asc"}})}async function g(a){let b=e.createVersionTypeSchema.parse(a),f=await c.db.versionType.create({data:{name:b.name,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a,b){let f=e.updateVersionTypeSchema.parse(b);try{let b=await c.db.versionType.update({where:{id:a},data:{name:f.name}});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if("object"==typeof a&&a&&"code"in a&&"P2025"===a.code)throw Error("类型不存在");throw a}}async function i(a){try{await c.db.versionType.delete({where:{id:a}})}catch(a){if("object"==typeof a&&a&&"code"in a&&"P2025"===a.code)throw Error("类型不存在");throw a}(0,d.revalidatePath)("/workspaces")}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i]),(0,b.registerServerReference)(f,"40a1f5a787858b7a59a0c29558456853226fc22251",null),(0,b.registerServerReference)(g,"40d4b3ba9413922b4366411c22d78e9ab9f88a1ee5",null),(0,b.registerServerReference)(h,"6038f8c3c78d0d99f4dc04aa2f57cf10af99b4d3c0",null),(0,b.registerServerReference)(i,"40b69852784877dbbd5f05021bd6a9870ceed83c37",null),a.s(["createVersionType",0,g,"deleteVersionType",0,i,"getVersionTypes",0,f,"updateVersionType",0,h])},89160,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(748383),a.i(239499),a.i(196195),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),637202,a=>a.a(async(b,c)=>{try{var d=a.i(89160),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(748383),n=a.i(239499),o=a.i(196195),p=a.i(689171),q=b([d,g,h,l]);[d,g,h,l]=q.then?(await q)():q,a.s(["000068ce2fe44507bf690991ced2f8810ee21aa06b",()=>h.getAvailableTerminalApps,"00158c921cd696ea4c1ce82a55937d11a7689d4366",()=>k.getOnboardingStatus,"00344a67d1ab405b6770b42b61d196e25061669ed5",()=>h.getActualWsPort,"005dfa564934754fa9e330eea2d7cf3314c7404691",()=>l.checkRgAvailable,"00917a291a1ba427a2d5757832254c170fe37954b9",()=>h.getPlatformInfo,"00c7b21fbe8ad6d8d5036d0a2d22c11f624ed54027",()=>l.clearRgPathCache,"00d83917ed4b0681fd8751d66b13765c7c6bcfad01",()=>h.getAvailableShells,"00e9060c585c3583b63be04c71492fb32c6512b5f2",()=>j.listAllExtensionStatus,"40144cdabed5ebf75fcf8f5a37d9843fe89867905d",()=>o.getCurrentBranch,"401864e07f05eb5712c61726e7c45c9127437f3ed4",()=>p.createTask,"4026cce9744b390018c9fb8c8647caf6832e9c80ed",()=>o.fetchRemoteBranches,"402b1385fefcfc9db6d341b3cce5f657983b51f500",()=>k.dispatchTaskCompletionEvent,"4035aeb303a13bed8fda4465736df8a0f708cd37b3",()=>m.createVersion,"403d34b6c07f1211d62ffcf8957d4e12c5cd30d6cb",()=>h.getConfigValues,"404bbef08c8b4cd47e625800cc0b5f3058bebe348f",()=>o.getProjectBranches,"405b11129c958896555c915986c5a6f9a97c6d2d4d",()=>m.getProjectVersions,"4071d9e76239c1dd807a3e838c615246588e99889c",()=>k.setOnboardingProgress,"4079ddcb0d3bea2eb0a8f1c822f43181fc6bc7a8e1",()=>f.deleteLabel,"4080b530c3524bd971f995dcb141b52ffef5b9e2f6",()=>m.deleteVersion,"4081ee3f3dd5a8ee9cfe148a40eefea166fa8c3dbd",()=>m.getVersionDiffStat,"4083025e1088f0ea1132dc991ca3f8360acfda29d5",()=>e.createWorkspace,"408c338c2266f72bd527b82785fdd777cbec6c4d47",()=>f.createLabel,"4093d5a72eeb95129c0e46869a5827377dee2f1333",()=>m.setCurrentVersion,"40a1f5a787858b7a59a0c29558456853226fc22251",()=>n.getVersionTypes,"40aa0b118228575abc653ff9aa04ca0f29e8547ef4",()=>m.getVersionsForPicker,"40adba9339d5dcdae2f99eacb52c5217bb737c9561",()=>e.deleteWorkspace,"40b36c864d4d23ff0d7f5c0345462b73016d89624e",()=>p.getTaskOverview,"40b4cb2d11c40610200181530e40845077be931004",()=>h.resolveGitLocalPath,"40b69852784877dbbd5f05021bd6a9870ceed83c37",()=>n.deleteVersionType,"40c937dfc6020ed56d61f7375b16690d08aba8874d",()=>e.createProject,"40cc1ddd5bc652248bd8ff8007cced78a3c7830a00",()=>f.getLabelsForWorkspace,"40d4b3ba9413922b4366411c22d78e9ab9f88a1ee5",()=>n.createVersionType,"40e5d7afe519f9455de7e860e63f98482d474436c1",()=>j.uninstallExtension,"40e6423714206788362bb8adcc18b09e831cd580c5",()=>m.getVersionDiff,"40ee476cf0921ed8dfca9463a686403acc340870e7",()=>i.checkMigrationSafety,"40f7a7a324cabac3b30f90d2f71132492f0e2976f9",()=>j.checkExtension,"40face0b1894edbb9834aea9d69cd108b567a54da1",()=>j.installExtension,"601b9b8e5f87c7210ac53f19895be46302ae5aec4d",()=>i.analyzeProjectDirectory,"6038f8c3c78d0d99f4dc04aa2f57cf10af99b4d3c0",()=>n.updateVersionType,"603c0264012af76a302a9257aabe7ba4f12e177654",()=>h.getConfigValue,"604e2b67b2ae23ce5db8ad79e81f1456572fc96cff",()=>h.setConfigValue,"6090b9072de227a79fc49dc75310ab3287833a57ad",()=>k.completeOnboarding,"60935ff5df1e244e44ffadb8fed5537f97825d0fd6",()=>m.assignTaskVersion,"609bd30d0af14ce31bb49e71ad36b910c73d395bb1",()=>m.releaseVersion,"60c53796d27d723175d8f0a97d30a21c625456d25b",()=>e.updateWorkspace,"60c71da1164a70c3c76a887077ed5cce6ca9885b52",()=>i.migrateProjectPath,"60cca945638d621516131c1789cc32678882a18731",()=>k.setOnboardingExtensions,"60dcf8f8f6fc30c42e03b1a674c112ac4b962db064",()=>g.globalSearch,"60f1544acac2b4bacf68d4722cb6002dc7c736d92b",()=>m.updateVersion,"7ccf83ff07956e6239cf7502476722cd7b35b9a6a5",()=>l.searchCode]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0yvo_x7._.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]__01j8ix6._.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~a-emb._.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__02px.0y._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40e0ac89b080f5ef618a53d9c811e487609f9a3290",null),(0,b.registerServerReference)(g,"40036cfdf05d58fb529acd58a7ac9272c2067e45db",null),(0,b.registerServerReference)(h,"40f9c1322120e8b7829290e7771b3e2b925d1b574a",null),(0,b.registerServerReference)(i,"60870e5ad7965e108335eebda2c2bacffd779094e8",null),(0,b.registerServerReference)(j,"4087bc0924ce6c5c00399e8a59c06e287e10c7ee43",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},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,"00a0bb5d9c48aaddca2d041f9c1d6239a502e3bf7e",null),(0,d.registerServerReference)(m,"00622b352cefb59a96b3d2c010c4d0e0b755d24f6f",null),(0,d.registerServerReference)(n,"7c9ed21e64e67aa2e483eab0fbfe6ded34dadcf78d",null),a.s(["checkRgAvailable",0,l,"clearRgPathCache",0,m,"searchCode",0,n]),c()}catch(a){c(a)}},!1),287068,a=>{"use strict";var b=a.i(761469);function c(a,b){return{id:a.note_id,type:"note",title:a.title,subtitle:`${a.workspace_name} / ${a.project_name}`,navigateTo:`/workspaces/${a.workspaceId}/notes?projectId=${a.projectId}`,snippet:a.content?a.content.slice(0,b):void 0}}async function d(a,e="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===e){let[a,b,c,e,h]=await Promise.allSettled([d(g,"task",f),d(g,"project",f),d(g,"repository",f),d(g,"note",f),d(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(e),...j(h)]}if("task"===e)return(await b.db.task.findMany({where:{OR:[{title:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{updatedAt:"desc"}})).map(a=>{let b="DONE"===a.status||"CANCELLED"===a.status,c=a.project.workspaceId;return{id:a.id,type:"task",title:a.title,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:b?`/workspaces/${c}/archive?projectId=${a.projectId}`:`/workspaces/${c}?projectId=${a.projectId}`}});if("project"===e)return(await b.db.project.findMany({where:{OR:[{name:{contains:g}},{alias:{contains:g}},{description:{contains:g}}]},include:{workspace:!0},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"project",title:a.alias?`${a.name} (${a.alias})`:a.name,subtitle:a.workspace.name,navigateTo:`/workspaces/${a.workspaceId}?projectId=${a.id}`}));if("repository"===e)return(await b.db.repository.findMany({where:{OR:[{name:{contains:g}},{path:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h})).map(a=>({id:a.id,type:"repository",title:a.name,subtitle:`${a.project.workspace.name} / ${a.project.name} \xb7 ${a.branch}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("note"===e){if(g.length<3)return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
1
+ module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40cc1ddd5bc652248bd8ff8007cced78a3c7830a00",null),(0,b.registerServerReference)(g,"408c338c2266f72bd527b82785fdd777cbec6c4d47",null),(0,b.registerServerReference)(h,"4079ddcb0d3bea2eb0a8f1c822f43181fc6bc7a8e1",null),(0,b.registerServerReference)(i,"60df8d8d4eb43e7a879400fd0034f9d364cc369261",null),(0,b.registerServerReference)(j,"40d6569939da4917ee5c58541cb007ec61742108cb",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},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,"005dfa564934754fa9e330eea2d7cf3314c7404691",null),(0,d.registerServerReference)(m,"00c7b21fbe8ad6d8d5036d0a2d22c11f624ed54027",null),(0,d.registerServerReference)(n,"7ccf83ff07956e6239cf7502476722cd7b35b9a6a5",null),a.s(["checkRgAvailable",0,l,"clearRgPathCache",0,m,"searchCode",0,n]),c()}catch(a){c(a)}},!1),287068,a=>{"use strict";var b=a.i(761469);function c(a,b){return{id:a.note_id,type:"note",title:a.title,subtitle:`${a.workspace_name} / ${a.project_name}`,navigateTo:`/workspaces/${a.workspaceId}/notes?projectId=${a.projectId}`,snippet:a.content?a.content.slice(0,b):void 0}}async function d(a,e="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===e){let[a,b,c,e,h]=await Promise.allSettled([d(g,"task",f),d(g,"project",f),d(g,"repository",f),d(g,"note",f),d(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(e),...j(h)]}if("task"===e)return(await b.db.task.findMany({where:{OR:[{title:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{updatedAt:"desc"}})).map(a=>{let b="DONE"===a.status||"CANCELLED"===a.status,c=a.project.workspaceId;return{id:a.id,type:"task",title:a.title,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:b?`/workspaces/${c}/archive?projectId=${a.projectId}`:`/workspaces/${c}?projectId=${a.projectId}`}});if("project"===e)return(await b.db.project.findMany({where:{OR:[{name:{contains:g}},{alias:{contains:g}},{description:{contains:g}}]},include:{workspace:!0},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"project",title:a.alias?`${a.name} (${a.alias})`:a.name,subtitle:a.workspace.name,navigateTo:`/workspaces/${a.workspaceId}?projectId=${a.id}`}));if("repository"===e)return(await b.db.repository.findMany({where:{OR:[{name:{contains:g}},{path:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h})).map(a=>({id:a.id,type:"repository",title:a.name,subtitle:`${a.project.workspace.name} / ${a.project.name} \xb7 ${a.branch}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("note"===e){if(g.length<3)return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
2
2
  n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
3
3
  FROM "ProjectNote" n
4
4
  JOIN "Project" p ON p.id = n."projectId"
@@ -18,7 +18,7 @@ module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(18
18
18
  JOIN "Project" p ON p.id = n."projectId"
19
19
  JOIN "Workspace" w ON w.id = p."workspaceId"
20
20
  WHERE n.title LIKE ? OR n.content LIKE ?
21
- LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"6011ea8e7944a4a344175315363e288c4ee38f8382",null),a.s(["globalSearch",0,i]),c()}catch(a){c(a)}},!1),101844,a=>{"use strict";var b=a.i(815429),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(761469),g=a.i(188139),h=a.i(630048);async function i(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let g=await f.db.project.findUnique({where:{id:b}});if(!g||!g.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let h=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:i}=await a.A(98813);for(let a of h)if(void 0!==i(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let j=e.default.join(g.localPath,".worktrees");if((0,d.existsSync)(j))try{if((await (0,c.readdir)(j)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function j(b,h){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!h||"string"!=typeof h||!e.default.isAbsolute(h))return{success:!1,error:"目标路径必须是非空的绝对路径"};let i=await f.db.project.findUnique({where:{id:b}});if(!i||!i.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let j=i.localPath;if(h===j)return{success:!1,error:"源路径和目标路径相同"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let k=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:l}=await a.A(98813);for(let a of k)if(void 0!==l(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=e.default.join(j,".worktrees");if((0,d.existsSync)(m))try{if((await (0,c.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,d.existsSync)(h))try{if((await (0,c.readdir)(h)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=e.default.dirname(h);try{await (0,c.mkdir)(n,{recursive:!0})}catch(a){if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限创建父目录 ${n} — 请检查 Git 路径映射规则的模板是否漏了 "~/" 前缀`};if("EROFS"===a.code)return{success:!1,error:`父目录所在文件系统只读:${n}`};return{success:!1,error:`创建父目录失败:${a.message||a.code||"未知错误"}`}}try{await (0,c.rename)(j,h)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${h}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await f.db.project.update({where:{id:b},data:{localPath:h}}),(0,g.revalidatePath)("/workspaces"),{success:!0}}let k=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
21
+ LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"60dcf8f8f6fc30c42e03b1a674c112ac4b962db064",null),a.s(["globalSearch",0,i]),c()}catch(a){c(a)}},!1),101844,a=>{"use strict";var b=a.i(815429),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(761469),g=a.i(188139),h=a.i(630048);async function i(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let g=await f.db.project.findUnique({where:{id:b}});if(!g||!g.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let h=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:i}=await a.A(98813);for(let a of h)if(void 0!==i(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let j=e.default.join(g.localPath,".worktrees");if((0,d.existsSync)(j))try{if((await (0,c.readdir)(j)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function j(b,h){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!h||"string"!=typeof h||!e.default.isAbsolute(h))return{success:!1,error:"目标路径必须是非空的绝对路径"};let i=await f.db.project.findUnique({where:{id:b}});if(!i||!i.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let j=i.localPath;if(h===j)return{success:!1,error:"源路径和目标路径相同"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let k=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:l}=await a.A(98813);for(let a of k)if(void 0!==l(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=e.default.join(j,".worktrees");if((0,d.existsSync)(m))try{if((await (0,c.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,d.existsSync)(h))try{if((await (0,c.readdir)(h)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=e.default.dirname(h);try{await (0,c.mkdir)(n,{recursive:!0})}catch(a){if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限创建父目录 ${n} — 请检查 Git 路径映射规则的模板是否漏了 "~/" 前缀`};if("EROFS"===a.code)return{success:!1,error:`父目录所在文件系统只读:${n}`};return{success:!1,error:`创建父目录失败:${a.message||a.code||"未知错误"}`}}try{await (0,c.rename)(j,h)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${h}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await f.db.project.update({where:{id:b},data:{localPath:h}}),(0,g.revalidatePath)("/workspaces"),{success:!0}}let k=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
22
22
 
23
23
  读取 package.json、README.md 等关键文件,然后概括:
24
24
 
@@ -42,6 +42,6 @@ Requirements:
42
42
  - Keep it under 1000 words
43
43
  - Use concise Markdown (bold labels + short sentences), no ## headings or tables
44
44
  - Don't list every file/directory, only key information
45
- - Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"402e30179203e6f5820b8a8153582b58d4e9d98329",null),(0,b.registerServerReference)(j,"60422b53101cd553e6bc590d8b6c97c138e774d438",null),(0,b.registerServerReference)(m,"60d844213b06bdf9b556f80d11cf318691a6b9ea5e",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])}];
45
+ - Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"40ee476cf0921ed8dfca9463a686403acc340870e7",null),(0,b.registerServerReference)(j,"60c71da1164a70c3c76a887077ed5cce6ca9885b52",null),(0,b.registerServerReference)(m,"601b9b8e5f87c7210ac53f19895be46302ae5aec4d",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])}];
46
46
 
47
47
  //# sourceMappingURL=%5Broot-of-the-server%5D__03ebsif._.js.map
@@ -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,"40f6f1ef73a519aa967b27410a0786b03beb86a63a",null),(0,b.registerServerReference)(m,"601172fb23e968143b4ab89f03812a9da36edda611",null),(0,b.registerServerReference)(n,"6018c79bde2d7d7b690c57b9fef03c703cef7ac30f",null),(0,b.registerServerReference)(o,"405b5907b8c09fc5a1785cf0520268508a891b671a",null),(0,b.registerServerReference)(p,"408c1e0ffd66123838eaa2aad3234fbb7d6600f314",null),(0,b.registerServerReference)(q,"4057e5e3ee82c47ba83afefd7334fdd0706177ccba",null),(0,b.registerServerReference)(r,"406aa7039d3735db6ec5bfc145b1374bcbb5117add",null),(0,b.registerServerReference)(s,"400a83c5a3284de78c677f400afb2f133682c97bf7",null),(0,b.registerServerReference)(t,"40a0d04e2182c19049121a129bc097fd7a246bb71e",null),(0,b.registerServerReference)(u,"601e1f2fa0826aad4b151f644631ed3de772839cf3",null),(0,b.registerServerReference)(v,"408432700cf2b8320487521790d310de922b0ecff7",null),(0,b.registerServerReference)(w,"403c803398940b34763d2420f86863d0cd1b0756fa",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])},925886,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(630048).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"408accb4cc4036960ffbe673d3c54faf7a444d87b1",null),(0,b.registerServerReference)(f,"40531770fc5a315eca4883e92f2b3e03ffda015e7b",null),(0,b.registerServerReference)(g,"40343ae474f890964308647b5803f9734a720deef0",null),(0,b.registerServerReference)(h,"60bdd2a7ccc15ab629dbd3b67bf89065dc538f8ab7",null),(0,b.registerServerReference)(i,"40cd9b519d904a0706b64e8fd24705179724ddd0c3",null),(0,b.registerServerReference)(j,"60a34b51fb2262ccba1c2c6ff9922c1590410877d1",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},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,"40404c6175e128e3fd5cb1fb7918446239622ce012",null),(0,b.registerServerReference)(s,"40ebc8d00f1487ad93a82bd27e2632189ca4560081",null),(0,b.registerServerReference)(t,"404dc4e0a31c9f67cfb643d8a68df24dd825a60037",null),(0,b.registerServerReference)(u,"40bd75aa4d48aa1dcc787bd9fc497f8d454db29904",null),(0,b.registerServerReference)(v,"40c2765223524fc985e6a78efde14243b3967c6728",null),(0,b.registerServerReference)(w,"4023d09dd64b3fb0530ffeaff528a33045909d81d0",null),(0,b.registerServerReference)(x,"40bf2a3412de14a6d62c34b22ab21eb1904dad5ba7",null),(0,b.registerServerReference)(z,"406a94abee2646bf6ab6201c87bd5fdd9dd9beb72b",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)},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_08n755q._.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/_0_gqtgq._.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/_0f8jvpw._.js"].map(b=>a.l(b))).then(()=>b(818992)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},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)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},610073,a=>{a.v(a=>Promise.resolve().then(()=>a(4634)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))}];
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,"401864e07f05eb5712c61726e7c45c9127437f3ed4",null),(0,b.registerServerReference)(m,"60afb9f705474245774d13886613c57f2d1d6fe6ff",null),(0,b.registerServerReference)(n,"60b83a9e949e27da23575e9ec56d9aed80201f2edd",null),(0,b.registerServerReference)(o,"40cb62edcf28baf88be1c006416b1dc17a165a7708",null),(0,b.registerServerReference)(p,"40b864e02d048dabde7fce059da3bc8340153ec409",null),(0,b.registerServerReference)(q,"40c09cce85fa62a5188f302cb8ed640c144a62a304",null),(0,b.registerServerReference)(r,"4010c23871e21313632c6e547b088728eaaaf8d6ed",null),(0,b.registerServerReference)(s,"40b536712468b173859a6f5b7d2a1975d71a8847ca",null),(0,b.registerServerReference)(t,"4001f8775d784fd13b7787b6535ee8883b0627ccd6",null),(0,b.registerServerReference)(u,"6057ade64560859b1c9eca7326d6cc20ace51d3f74",null),(0,b.registerServerReference)(v,"40b36c864d4d23ff0d7f5c0345462b73016d89624e",null),(0,b.registerServerReference)(w,"40c3ea63137ef3cd7359bf5b6962fc87c9ea9abe68",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])},925886,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(630048).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"407392ec926020c29f780329b99fbe7f2e09384a4d",null),(0,b.registerServerReference)(f,"406a0ecb3e6dca43cfb6b57d40bf27a8820bf877b2",null),(0,b.registerServerReference)(g,"404f138ed1e5c25a6fa282d6c3eaf2dcb4bcc5c354",null),(0,b.registerServerReference)(h,"60e44bc2e8146759509e5b05eb222b4c2b5f8398cb",null),(0,b.registerServerReference)(i,"40abf66222b384e46e8fd8c65f22ff76b9d167cc3c",null),(0,b.registerServerReference)(j,"60d204cb3730cc9142ddd5617ed776fd5f172096f8",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},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,"4044454b8b85ba6d683fd310124c6c2dc74699ce17",null),(0,b.registerServerReference)(s,"402df62b043d61fdb729316c0867f299a07c1354ee",null),(0,b.registerServerReference)(t,"40cc140f8f032ee2e5145e155a70920179af1f9331",null),(0,b.registerServerReference)(u,"40fda54b53185bf26690204e4cc5193f818c1187a3",null),(0,b.registerServerReference)(v,"4036dad21ee7a91d0f5aea347b005a99e1ce8a98b7",null),(0,b.registerServerReference)(w,"409bd258e7aac0203d5bec2217b7ecfe3cd911da7f",null),(0,b.registerServerReference)(x,"400e519fe8ed9d50d437519e44ee06ee00bf970edf",null),(0,b.registerServerReference)(z,"404a1bf2ffa6202561fb32a0a53d40df2f58404943",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)},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0fjk3hr._.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/_0niubv5._.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/_0zszi6-._.js"].map(b=>a.l(b))).then(()=>b(818992)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},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)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},610073,a=>{a.v(a=>Promise.resolve().then(()=>a(4634)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0vh-egg._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__04pq37d._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},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])},925886,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(630048).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"408accb4cc4036960ffbe673d3c54faf7a444d87b1",null),(0,b.registerServerReference)(f,"40531770fc5a315eca4883e92f2b3e03ffda015e7b",null),(0,b.registerServerReference)(g,"40343ae474f890964308647b5803f9734a720deef0",null),(0,b.registerServerReference)(h,"60bdd2a7ccc15ab629dbd3b67bf89065dc538f8ab7",null),(0,b.registerServerReference)(i,"40cd9b519d904a0706b64e8fd24705179724ddd0c3",null),(0,b.registerServerReference)(j,"60a34b51fb2262ccba1c2c6ff9922c1590410877d1",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},899871,(a,b,c)=>{b.exports=a.x("node:string_decoder",()=>require("node:string_decoder"))},449719,(a,b,c)=>{b.exports=a.x("assert",()=>require("assert"))},500874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},406461,(a,b,c)=>{b.exports=a.x("zlib",()=>require("zlib"))},57328,(a,b,c)=>{b.exports=a.x("node:assert",()=>require("node:assert"))},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_123jf_a._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js"].map(b=>a.l(b))).then(()=>b(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0ep3sg_._.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)))},195404,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_fts_ts_01m1thq._.js"].map(b=>a.l(b))).then(()=>b(835032)))}];
1
+ module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},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])},925886,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(630048).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"407392ec926020c29f780329b99fbe7f2e09384a4d",null),(0,b.registerServerReference)(f,"406a0ecb3e6dca43cfb6b57d40bf27a8820bf877b2",null),(0,b.registerServerReference)(g,"404f138ed1e5c25a6fa282d6c3eaf2dcb4bcc5c354",null),(0,b.registerServerReference)(h,"60e44bc2e8146759509e5b05eb222b4c2b5f8398cb",null),(0,b.registerServerReference)(i,"40abf66222b384e46e8fd8c65f22ff76b9d167cc3c",null),(0,b.registerServerReference)(j,"60d204cb3730cc9142ddd5617ed776fd5f172096f8",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},899871,(a,b,c)=>{b.exports=a.x("node:string_decoder",()=>require("node:string_decoder"))},449719,(a,b,c)=>{b.exports=a.x("assert",()=>require("assert"))},500874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},406461,(a,b,c)=>{b.exports=a.x("zlib",()=>require("zlib"))},57328,(a,b,c)=>{b.exports=a.x("node:assert",()=>require("node:assert"))},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_07rspg0._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js"].map(b=>a.l(b))).then(()=>b(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0y-7tle._.js"].map(b=>a.l(b))).then(()=>b(897667)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},195404,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_fts_ts_01m1thq._.js"].map(b=>a.l(b))).then(()=>b(835032)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__13k4vkg._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__07_b6c.._.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])},640545,a=>a.a(async(b,c)=>{try{var d=a.i(823615);a.i(117738);var e=b([d]);[d]=e.then?(await e)():e,a.s(["broadcastNotification",()=>d.broadcastNotification]),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 m(b,g)?b:null}let i=f.PATH??f.Path??"",j=e(g)?";":":",k=i.split(j).filter(Boolean),l=e(g)?(f.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],n=e(g)&&d.default.extname(a).length>0;for(let b of k)for(let c of e(g)?n?[d.default.join(b,a)]:l.map(c=>d.default.join(b,`${a}${c}`)):[d.default.join(b,a)])if(await m(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,b,c={}){let d=c.env??process.env,e=c.platform??process.platform;return l(await h(a,c)??a,b,d,e)}function l(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}}async function m(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 n(a=process.platform){return e(a)?p():o()}async function o(){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 m(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 m(b)&&a.push({name:d.default.basename(b),path:b});return a}}async function p(){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 m(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 m(i,"win32")&&a.push({name:"Windows PowerShell",path:i});let j=process.env.ComSpec??d.default.join(g,"System32","cmd.exe");return await m(j,"win32")&&a.push({name:"Command Prompt",path:j}),a}let q=[{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 r(a=process.platform){if("darwin"===a){let b=[];for(let c of q)await m(`/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,n,"detectTerminalApps",0,r,"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,"resolveSpawnTarget",0,k,"resolveSpawnTargetSync",0,function(a,b,c=process.platform,d){return l(j(a,c,d),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])},640545,a=>a.a(async(b,c)=>{try{var d=a.i(823615);a.i(117738);var e=b([d]);[d]=e.then?(await e)():e,a.s(["broadcastNotification",()=>d.broadcastNotification]),c()}catch(a){c(a)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__08n5qbf._.js.map