tower-studio 0.2.23 → 0.2.25

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 (197) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
  12. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +29 -29
  13. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/api/browse-fs/route.js +1 -1
  17. package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +1 -1
  21. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js +1 -1
  23. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
  25. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +69 -69
  26. package/.next/standalone/.next/server/app/missions/page.js +1 -1
  27. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +1 -1
  30. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +29 -29
  31. package/.next/standalone/.next/server/app/onboarding/page.js +1 -1
  32. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -1
  35. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +29 -29
  36. package/.next/standalone/.next/server/app/page.js +1 -1
  37. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
  40. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +47 -47
  41. package/.next/standalone/.next/server/app/settings/page.js +1 -1
  42. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +1 -1
  45. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +86 -86
  46. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +1 -1
  47. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +1 -1
  50. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +78 -78
  51. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +1 -1
  52. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +1 -1
  55. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +65 -65
  56. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +1 -1
  57. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +1 -1
  60. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +63 -63
  61. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +1 -1
  62. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +1 -1
  65. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +29 -29
  66. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +1 -1
  67. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +1 -1
  70. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +68 -68
  71. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +1 -1
  72. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +2 -2
  75. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +80 -80
  76. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +1 -1
  77. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +1 -1
  80. package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +47 -47
  81. package/.next/standalone/.next/server/app/workspaces/page.js +1 -1
  82. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0eh8dj_.js +1 -1
  85. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +1 -1
  86. package/.next/standalone/.next/server/chunks/[externals]__12mj_bs._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03j20vp._.js +2 -2
  88. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05se6yk._.js +1 -1
  89. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06m1r8x._.js +1 -1
  90. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0_6swdz._.js → [root-of-the-server]__0g788b3._.js} +3 -3
  91. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0-0gs-6._.js → [root-of-the-server]__0j-4yc7._.js} +2 -2
  92. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o3iihg._.js +1 -1
  93. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0v5.ht~._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wuzc5o._.js +1 -1
  95. package/.next/standalone/.next/server/chunks/src_0bkvm8c._.js +1 -1
  96. package/.next/standalone/.next/server/chunks/src_lib_ai_0xx6y51._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  98. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02-6df-._.js +3 -3
  99. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03e009u._.js +3 -3
  100. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__12p2zz2._.js → [root-of-the-server]__084p3.0._.js} +1 -1
  101. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e_-mj-._.js +3 -3
  102. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fzkdjl._.js +3 -3
  103. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ty1ao1._.js → [root-of-the-server]__0f~m-8x._.js} +2 -2
  104. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0jti4~k._.js → [root-of-the-server]__0i7es1w._.js} +2 -2
  105. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jymb~t._.js +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pu-v0l._.js +3 -3
  107. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0-o.l41._.js → [root-of-the-server]__0qkus8m._.js} +2 -2
  108. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0um1ugs._.js +3 -3
  109. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0s-a4ku._.js → [root-of-the-server]__0ygiyqr._.js} +2 -2
  110. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z7je5_._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__134_xv.._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13vgkq5._.js +3 -3
  113. package/.next/standalone/.next/server/chunks/ssr/{_0m.4akk._.js → _02acmsq._.js} +2 -2
  114. package/.next/standalone/.next/server/chunks/ssr/_03osyxp._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/ssr/_070t_mh._.js +2 -2
  116. package/.next/standalone/.next/server/chunks/ssr/_08z-g~5._.js +3 -3
  117. package/.next/standalone/.next/server/chunks/ssr/_0_vjay8._.js +3 -3
  118. package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
  119. package/.next/standalone/.next/server/chunks/ssr/_0ecgaqt._.js +7 -0
  120. package/.next/standalone/.next/server/chunks/ssr/{_0-9.ea2._.js → _0eete9d._.js} +2 -2
  121. package/.next/standalone/.next/server/chunks/ssr/{_0hzckhd._.js → _0gk20rx._.js} +2 -2
  122. package/.next/standalone/.next/server/chunks/ssr/_0jeo~zr._.js +4 -0
  123. package/.next/standalone/.next/server/chunks/ssr/_0jg.s-g._.js +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/_0kynu6x._.js +7 -0
  125. package/.next/standalone/.next/server/chunks/ssr/{_04y89b3._.js → _0r1pb6u._.js} +2 -2
  126. package/.next/standalone/.next/server/chunks/ssr/_0r6gweb._.js +3 -3
  127. package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/{_0bk06da._.js → _0rny90z._.js} +2 -2
  129. package/.next/standalone/.next/server/chunks/ssr/{_012.igw._.js → _0rr~oe~._.js} +2 -2
  130. package/.next/standalone/.next/server/chunks/ssr/_0rt8jf_._.js +3 -3
  131. package/.next/standalone/.next/server/chunks/ssr/_0ueyys5._.js +1 -1
  132. package/.next/standalone/.next/server/chunks/ssr/_0uuzh5m._.js +3 -3
  133. package/.next/standalone/.next/server/chunks/ssr/{_0~v4z8z._.js → _0vx81le._.js} +2 -2
  134. package/.next/standalone/.next/server/chunks/ssr/{_10-.n35._.js → _0yvg9ie._.js} +2 -2
  135. package/.next/standalone/.next/server/chunks/ssr/_0~aon4t._.js +3 -3
  136. package/.next/standalone/.next/server/chunks/ssr/_11cv4uu._.js +7 -0
  137. package/.next/standalone/.next/server/chunks/ssr/src_075s.rk._.js +1 -1
  138. package/.next/standalone/.next/server/chunks/ssr/src_0djxlqx._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +1 -1
  140. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  141. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  142. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  145. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  146. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  148. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  149. package/.next/standalone/.next/server/pages/500.html +1 -1
  150. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/server-reference-manifest.json +286 -286
  152. package/.next/standalone/.next/static/chunks/{0.qj9vorfgtnt.js → 00fcxpwt-xz7b.js} +1 -1
  153. package/.next/standalone/.next/static/chunks/{0p9zhbwmnn0j4.js → 02.0.zsh_o-10.js} +1 -1
  154. package/.next/standalone/.next/static/chunks/05dryiv53wj6h.js +5 -0
  155. package/.next/standalone/.next/static/chunks/{1007_ur3fj.~m.js → 08ln6v6_fd4nf.js} +1 -1
  156. package/.next/standalone/.next/static/chunks/099fxtzvpw3be.js +1 -0
  157. package/.next/standalone/.next/static/chunks/{0c~0amyhws3l0.js → 0ce8gr~q3rs9k.js} +1 -1
  158. package/.next/standalone/.next/static/chunks/{0zfszxiw4cx9b.js → 0iyxegei1fjbp.js} +1 -1
  159. package/.next/standalone/.next/static/chunks/{17n~0msyl8bur.js → 0izvibcnunqx4.js} +1 -1
  160. package/.next/standalone/.next/static/chunks/{04axhlp_leiii.js → 0jmk1_g~_yd7-.js} +1 -1
  161. package/.next/standalone/.next/static/chunks/{0rec91xfsdv8r.js → 0mi29_2~1sr...js} +1 -1
  162. package/.next/standalone/.next/static/chunks/{0ztty8z0obk5f.js → 0n.isvqurxe72.js} +1 -1
  163. package/.next/standalone/.next/static/chunks/{120x-nmim1wfz.js → 0nl7~2pju.abl.js} +1 -1
  164. package/.next/standalone/.next/static/chunks/{12iivlft6u_tt.js → 0oopksfzoc0_k.js} +1 -1
  165. package/.next/standalone/.next/static/chunks/0p5wczoq4gvin.js +1 -0
  166. package/.next/standalone/.next/static/chunks/0pov66bj_qi58.js +1 -0
  167. package/.next/standalone/.next/static/chunks/{16r-tz37aqyoa.js → 0s2umk4hfyhqa.js} +1 -1
  168. package/.next/standalone/.next/static/chunks/0ur66aluu.t0b.js +1 -0
  169. package/.next/standalone/.next/static/chunks/0w7cz_z6p3-p_.js +1 -0
  170. package/.next/standalone/.next/static/chunks/{0so-w5.m3jaxi.js → 0wa8r89hd0y0b.js} +1 -1
  171. package/.next/standalone/.next/static/chunks/{0ik7-_3wrtspq.js → 0yjkfr0qay7z6.js} +1 -1
  172. package/.next/standalone/.next/static/chunks/{05a6uzgclxdsk.js → 131msw-pgcsxt.js} +2 -2
  173. package/.next/standalone/.next/static/chunks/{099eecj285cbx.js → 13upq83z~yuys.js} +1 -1
  174. package/.next/standalone/.next/static/chunks/{0-.9k92iyul5o.js → 141wmbqfx~lo8.js} +2 -2
  175. package/.next/standalone/.next/static/chunks/157pgx~-2_qo5.js +5 -0
  176. package/.next/standalone/.next/static/chunks/15_.l.-~mxr1v.js +1 -0
  177. package/.next/standalone/.next/static/chunks/{10r4y1zzk24jy.js → 16ndme6.~2w1x.js} +2 -2
  178. package/.next/standalone/package.json +1 -1
  179. package/package.json +1 -1
  180. package/.next/standalone/.next/server/chunks/[externals]__0m5smhl._.js +0 -3
  181. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sy6lau._.js +0 -3
  182. package/.next/standalone/.next/server/chunks/ssr/_0385-.g._.js +0 -4
  183. package/.next/standalone/.next/server/chunks/ssr/_04yogxq._.js +0 -7
  184. package/.next/standalone/.next/server/chunks/ssr/_0cc0gt8._.js +0 -7
  185. package/.next/standalone/.next/server/chunks/ssr/_0oq26rv._.js +0 -3
  186. package/.next/standalone/.next/server/chunks/ssr/_0z-b00b._.js +0 -7
  187. package/.next/standalone/.next/static/chunks/00-6_m40h14vl.js +0 -1
  188. package/.next/standalone/.next/static/chunks/02.ihz-~spbi-.js +0 -1
  189. package/.next/standalone/.next/static/chunks/0e8r37m0q.z0p.js +0 -1
  190. package/.next/standalone/.next/static/chunks/0ima0i0p489ty.js +0 -1
  191. package/.next/standalone/.next/static/chunks/0x3tiuoe.l18z.js +0 -1
  192. package/.next/standalone/.next/static/chunks/10vl5vq1_rh1..js +0 -1
  193. package/.next/standalone/.next/static/chunks/134onqxk2foh5.js +0 -5
  194. package/.next/standalone/.next/static/chunks/16ukg_cswejw4.js +0 -5
  195. /package/.next/standalone/.next/static/{l8InE32VLIGdUBVP3BJKt → biyHBSA-7nbhZk25VrdWY}/_buildManifest.js +0 -0
  196. /package/.next/standalone/.next/static/{l8InE32VLIGdUBVP3BJKt → biyHBSA-7nbhZk25VrdWY}/_clientMiddlewareManifest.js +0 -0
  197. /package/.next/standalone/.next/static/{l8InE32VLIGdUBVP3BJKt → biyHBSA-7nbhZk25VrdWY}/_ssgManifest.js +0 -0
@@ -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,"40c1ed9a257aa67c03663d2c5615e5a2c60cde232a",null),(0,b.registerServerReference)(g,"40c8e22cbbec38a0b343cc303ab78f15dee059b736",null),(0,b.registerServerReference)(h,"4005b705697e7e71d6a43b505aebdc5ba493f42166",null),(0,b.registerServerReference)(i,"6096fc522bc1bedbd9e869f29be5161b68d8944c3d",null),(0,b.registerServerReference)(j,"400eea048188caab32f4ca1bf26d6fb06d99f5f007",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},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,"4091e7c2afbb5050ac2e1700bb1bf6f19569ceead6",null),(0,b.registerServerReference)(g,"405a870c63934bf127b570c94b653f1c5d13d7e638",null),(0,b.registerServerReference)(h,"40581325722ffd1c588020a3d2610615550e6ef286",null),(0,b.registerServerReference)(i,"60dc8e0297b84e53685b2f82ca302923ee67d2cfd8",null),(0,b.registerServerReference)(j,"408d1b9c371b6bace04a52262176cbb248e4d0b865",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},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,"60c95388940c8d3b45d2a8be13a34a5dd553b61d67",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,"60578a5373ee9eacae399ca2b7dfa2be2f0f34ed63",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,"40e8dd01fe9d2dc40496bc845f1f6a95be3454af33",null),(0,b.registerServerReference)(j,"6010d2ca5b605450312f869eafcd0b1b4643681ec6",null),(0,b.registerServerReference)(m,"605e973505a7785564f529b0df2839ad4047c95460",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},196195,a=>{"use strict";var b=a.i(815429),c=a.i(233405),d=a.i(814747),e=a.i(446786);function f(a){return a.startsWith("~/")||"~"===a?d.default.join(e.default.homedir(),a.slice(1)):a}async function g(a){if(!a?.trim())return null;let b=d.default.resolve(f(a));try{return(0,c.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:b,encoding:"utf-8",timeout:5e3}).trim()}catch{return null}}async function h(a){if(!a?.trim())return[];let b=d.default.resolve(f(a));try{let a,d;return a=new Set((0,c.execSync)("git branch --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,""))),d=(0,c.execSync)("git branch -r --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,"").replace(/^origin\//,"")).filter(b=>"HEAD"!==b&&!a.has(b)),[...a,...d]}catch{return[]}}async function i(a){if(!a?.trim())return;let b=d.default.resolve(f(a));try{(0,c.spawn)("git",["fetch","--prune"],{cwd:b,stdio:"ignore",detached:!0}).unref()}catch{}}(0,a.i(630048).ensureServerEntryExports)([g,h,i]),(0,b.registerServerReference)(g,"406f6fca97fa66a01443e29f2340f27050dedd2c80",null),(0,b.registerServerReference)(h,"40f7cf30af1b8a2bd3cbfede819764e7e96d095692",null),(0,b.registerServerReference)(i,"40575c16babf8bfd0918e5724fd055664c9093f5c1",null),a.s(["fetchRemoteBranches",0,i,"getCurrentBranch",0,g,"getProjectBranches",0,h])},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,"409885e581f36392a17d931ca7920bc255fc932a57",null),(0,b.registerServerReference)(i,"401d229feefc4e2d103c4dc434232660d8f7f16ffc",null),(0,b.registerServerReference)(j,"608800938e4a0f56bc384158467b8bffbefecb15c0",null),(0,b.registerServerReference)(k,"4042b3a65173f55fa0b37c3b67ae87bd9eb8e3f30d",null),(0,b.registerServerReference)(l,"60a93268e8e360d92be4d9a145ba39de707366e347",null),(0,b.registerServerReference)(m,"609d3d7177804ef8e588c8cd4249e7ee72343aae94",null),(0,b.registerServerReference)(n,"40fbd322a2220a136d975aef6295d4996afb021346",null),(0,b.registerServerReference)(o,"408cd9c6123640c446e7d4870d12419204bf539f41",null),(0,b.registerServerReference)(p,"400acfd4453438b3dc8e26e66b3d3e970ba5b16a93",null),(0,b.registerServerReference)(q,"405d730f71573de1a8a71d52764d11386ce546fafa",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,"4032d571cfac26fccc236b64f8c65328886d7f6cc0",null),(0,b.registerServerReference)(g,"4021c0128f02653d7b83e2f3fc0d55e29e6fbd6654",null),(0,b.registerServerReference)(h,"60f1dd8fe5645bf33eb54950e8118ad0b3277ae1a9",null),(0,b.registerServerReference)(i,"40ad3d288cf0041cc6b722313eee99caed9aa51258",null),a.s(["createVersionType",0,g,"deleteVersionType",0,i,"getVersionTypes",0,f,"updateVersionType",0,h])},213175,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(748383),a.i(239499),a.i(196195),a.i(689171),a.i(536960);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),825054,a=>a.a(async(b,c)=>{try{var d=a.i(213175),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(748383),m=a.i(239499),n=a.i(196195),o=a.i(689171),p=a.i(536960),q=b([d,g,h]);[d,g,h]=q.then?(await q)():q,a.s(["0024d66bad18dfdd31a48ed0fcc3580e534a5c6668",()=>k.getOnboardingStatus,"005835d362a99c09bedd29e73338f9828d561c2aab",()=>h.getActualWsPort,"00c4ddad6bd53e9873dc2a5f2687e26c7f615535d6",()=>j.listAllExtensionStatus,"4002e37519d2957238210e990a40f8b6d3615e9d35",()=>e.createProject,"4005b705697e7e71d6a43b505aebdc5ba493f42166",()=>f.deleteLabel,"400acfd4453438b3dc8e26e66b3d3e970ba5b16a93",()=>l.getVersionDiff,"40117712ad7408641fee51911c6a78855c43a16445",()=>o.createTask,"40124fd369430ba78afb522a65947fbf399987a187",()=>p.openInTerminal,"401d229feefc4e2d103c4dc434232660d8f7f16ffc",()=>l.createVersion,"4021c0128f02653d7b83e2f3fc0d55e29e6fbd6654",()=>m.createVersionType,"402f0e685f438338e9715a233815fa15a8954d71fb",()=>o.getTaskOverview,"4032d571cfac26fccc236b64f8c65328886d7f6cc0",()=>m.getVersionTypes,"403c85915168c182a91b048f3238a70874011d2c8a",()=>j.checkExtension,"403feae901e319962e3b8b61602b6a73d421edc289",()=>k.setOnboardingProgress,"4042b3a65173f55fa0b37c3b67ae87bd9eb8e3f30d",()=>l.deleteVersion,"40531d44fc6a969dfc8cdcd960018a0fecb76fa761",()=>e.createWorkspace,"40575c16babf8bfd0918e5724fd055664c9093f5c1",()=>n.fetchRemoteBranches,"405d730f71573de1a8a71d52764d11386ce546fafa",()=>l.setCurrentVersion,"406f6fca97fa66a01443e29f2340f27050dedd2c80",()=>n.getCurrentBranch,"4076df959ec66a71d59f36063d120f1014f472b192",()=>p.openInEditor,"408cd9c6123640c446e7d4870d12419204bf539f41",()=>l.getVersionDiffStat,"409885e581f36392a17d931ca7920bc255fc932a57",()=>l.getProjectVersions,"40994e9a8aaaa60dfb3ea7538eb82b14466b734a30",()=>k.dispatchTaskCompletionEvent,"40a3c5f8cf9a7905fb65ed1bb0e2a62bca9a1aade4",()=>h.getConfigValues,"40ad3d288cf0041cc6b722313eee99caed9aa51258",()=>m.deleteVersionType,"40b5c009cb993c580d8b9f006f6e08f0f9cab036e5",()=>p.openInFileManager,"40c1ed9a257aa67c03663d2c5615e5a2c60cde232a",()=>f.getLabelsForWorkspace,"40c8e22cbbec38a0b343cc303ab78f15dee059b736",()=>f.createLabel,"40cac51775567287197fc9934d58611257d8cf6f91",()=>j.installExtension,"40cc9ae73124828542f665de62ef631bd3db3ebc31",()=>j.uninstallExtension,"40da3399fdc20b802b5d4546d6674588913190bf1d",()=>h.resolveGitLocalPath,"40e8dcd3a0f7d21d56cbdf5134bf0d107e94cc96cc",()=>e.reorderWorkspaces,"40e8dd01fe9d2dc40496bc845f1f6a95be3454af33",()=>i.checkMigrationSafety,"40f7cf30af1b8a2bd3cbfede819764e7e96d095692",()=>n.getProjectBranches,"40fbd322a2220a136d975aef6295d4996afb021346",()=>l.getVersionsForPicker,"40ff4f6f97e83422f41dc091226ce39b9ab7e6d367",()=>e.deleteWorkspace,"6010d2ca5b605450312f869eafcd0b1b4643681ec6",()=>i.migrateProjectPath,"605e973505a7785564f529b0df2839ad4047c95460",()=>i.analyzeProjectDirectory,"608800938e4a0f56bc384158467b8bffbefecb15c0",()=>l.updateVersion,"609d3d7177804ef8e588c8cd4249e7ee72343aae94",()=>l.releaseVersion,"60a93268e8e360d92be4d9a145ba39de707366e347",()=>l.assignTaskVersion,"60c4b4dffa60987bfdbec01eb55e546f32374cebe8",()=>h.getConfigValue,"60c95388940c8d3b45d2a8be13a34a5dd553b61d67",()=>g.globalSearch,"60d5bc63eaf7a089633640636960929be695e40db9",()=>k.setOnboardingExtensions,"60de5ffd4477fb756236df1fea67b2a28dd8c71d33",()=>h.setConfigValue,"60dee5fdefcfc5bc4fbaa455a9a46fdbbc76ede5e8",()=>e.updateWorkspace,"60e82cc1ceca7ebd237dcf0bd9f0d5dfd03cac9bcb",()=>k.completeOnboarding,"60f1dd8fe5645bf33eb54950e8118ad0b3277ae1a9",()=>m.updateVersionType]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0e.v07~._.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]__01evhhc._.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]__0sdd0qu._.js"].map(b=>a.l(b))).then(()=>b(818992)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},173855,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_open-targets_ts_12a-_~u._.js"].map(b=>a.l(b))).then(()=>b(289288)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))}];
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,"4072ca35118cb57de16a6ea9447267ffc678259049",null),(0,b.registerServerReference)(j,"604269c8f1bf13a507d2a33c1bb103c710232d3a40",null),(0,b.registerServerReference)(m,"6002f197b6e5ad570e827dce492ddc368ba0e183e3",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},196195,a=>{"use strict";var b=a.i(815429),c=a.i(233405),d=a.i(814747),e=a.i(446786);function f(a){return a.startsWith("~/")||"~"===a?d.default.join(e.default.homedir(),a.slice(1)):a}async function g(a){if(!a?.trim())return null;let b=d.default.resolve(f(a));try{return(0,c.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:b,encoding:"utf-8",timeout:5e3}).trim()}catch{return null}}async function h(a){if(!a?.trim())return[];let b=d.default.resolve(f(a));try{let a,d;return a=new Set((0,c.execSync)("git branch --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,""))),d=(0,c.execSync)("git branch -r --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,"").replace(/^origin\//,"")).filter(b=>"HEAD"!==b&&!a.has(b)),[...a,...d]}catch{return[]}}async function i(a){if(!a?.trim())return;let b=d.default.resolve(f(a));try{(0,c.spawn)("git",["fetch","--prune"],{cwd:b,stdio:"ignore",detached:!0}).unref()}catch{}}(0,a.i(630048).ensureServerEntryExports)([g,h,i]),(0,b.registerServerReference)(g,"405324d5346b0f64514ae645455c3f00de51ae022c",null),(0,b.registerServerReference)(h,"405018bf355471ec15c9d9b8f26db48d4f87210283",null),(0,b.registerServerReference)(i,"408b75aafd47cd28dafe1aa4bb580506514dfe03d2",null),a.s(["fetchRemoteBranches",0,i,"getCurrentBranch",0,g,"getProjectBranches",0,h])},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,"40fe1e766afd7070fd84dd17afe011f254071def45",null),(0,b.registerServerReference)(i,"400f0b8fbfecfcbe055afa2fe8474e3e4a67718a4b",null),(0,b.registerServerReference)(j,"607ad1c062c853f2b493a07e9c17d4ab0af92c3929",null),(0,b.registerServerReference)(k,"401f2bda067faf2cdded51bccf935cc6fbc8a0c5d9",null),(0,b.registerServerReference)(l,"60b6abbb105161e0ae5b3c36d855f3b6d47e307d06",null),(0,b.registerServerReference)(m,"60d8a396a284f13ce96dcc6f1e32018d98b8eb5344",null),(0,b.registerServerReference)(n,"409d80af6412fc9b8e291d2c2bc4780fe4e0d0f198",null),(0,b.registerServerReference)(o,"4086c5ed00a801affc5c87d2abc1efbb7781561396",null),(0,b.registerServerReference)(p,"40eeddda01c4640b57d00f13932e50965270489af0",null),(0,b.registerServerReference)(q,"408b16edd2425d49cd49e1d21e460e122ccb93c125",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,"408f6b18494b73544dfd241989c2448bc76cfa8490",null),(0,b.registerServerReference)(g,"40a42ec1b99169aa188307baec76559eabb954f3f9",null),(0,b.registerServerReference)(h,"6002bdddfc7eedebe3343f4413f5a14e7eb5ed2f13",null),(0,b.registerServerReference)(i,"401c1c1148b68e5a5239c44a55f857048164e9a885",null),a.s(["createVersionType",0,g,"deleteVersionType",0,i,"getVersionTypes",0,f,"updateVersionType",0,h])},213175,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(748383),a.i(239499),a.i(196195),a.i(689171),a.i(536960);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),825054,a=>a.a(async(b,c)=>{try{var d=a.i(213175),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(748383),m=a.i(239499),n=a.i(196195),o=a.i(689171),p=a.i(536960),q=b([d,g,h]);[d,g,h]=q.then?(await q)():q,a.s(["007a331edb75d8bbd8ca63d9d1334025cb700844e2",()=>k.getOnboardingStatus,"007e925c0232975a8b443f05178e2374e175d65f88",()=>h.getActualWsPort,"00c5601e4f5c928410914e20eb9f10e7508564e5e2",()=>j.listAllExtensionStatus,"400f0b8fbfecfcbe055afa2fe8474e3e4a67718a4b",()=>l.createVersion,"401c1c1148b68e5a5239c44a55f857048164e9a885",()=>m.deleteVersionType,"401f2bda067faf2cdded51bccf935cc6fbc8a0c5d9",()=>l.deleteVersion,"40237e4dbff3868f964dd9913f9a4ca85f84822c10",()=>h.getConfigValues,"4038649f70ecf76055867dc0b626910f6872581e5e",()=>h.resolveGitLocalPath,"403c9fe43b98e736adb23aa75d74cf996ebc91c9f5",()=>j.checkExtension,"405018bf355471ec15c9d9b8f26db48d4f87210283",()=>n.getProjectBranches,"405034ec856e7ada8e4aaca22cb95ce5f7a62d4250",()=>e.createWorkspace,"405324d5346b0f64514ae645455c3f00de51ae022c",()=>n.getCurrentBranch,"40581325722ffd1c588020a3d2610615550e6ef286",()=>f.deleteLabel,"405a870c63934bf127b570c94b653f1c5d13d7e638",()=>f.createLabel,"406903301e2570233d02d1b124044ea8abdc70a5a8",()=>k.dispatchTaskCompletionEvent,"4072ca35118cb57de16a6ea9447267ffc678259049",()=>i.checkMigrationSafety,"4084d56f97fc2d106951c08ef353d5dff8b6a7972e",()=>p.openInTerminal,"4086c5ed00a801affc5c87d2abc1efbb7781561396",()=>l.getVersionDiffStat,"408b16edd2425d49cd49e1d21e460e122ccb93c125",()=>l.setCurrentVersion,"408b75aafd47cd28dafe1aa4bb580506514dfe03d2",()=>n.fetchRemoteBranches,"408f6b18494b73544dfd241989c2448bc76cfa8490",()=>m.getVersionTypes,"4091e7c2afbb5050ac2e1700bb1bf6f19569ceead6",()=>f.getLabelsForWorkspace,"409d80af6412fc9b8e291d2c2bc4780fe4e0d0f198",()=>l.getVersionsForPicker,"409fde74f8620398f759dd8e67cdf93e49b6cdc4b5",()=>j.installExtension,"40a42ec1b99169aa188307baec76559eabb954f3f9",()=>m.createVersionType,"40c84ff01dd528e1e7c26b38249183e6e0456f2ba8",()=>e.deleteWorkspace,"40cae26d8c2823110d8bb96e1ee8d8db922742701f",()=>p.openInEditor,"40ce398eab6a20d81c2a81420451a8262f4ed9c842",()=>k.setOnboardingProgress,"40d58e07125e70ee60d88c53ca0b01c36b88626b74",()=>o.createTask,"40d80a8b15d1ad48610f6dbdfcd578ec5e0217c8d1",()=>o.getTaskOverview,"40dfd2f8ff49705931050dba07a43c7982824f5fe2",()=>e.createProject,"40ebc54780e47a891ec14da48ad2e8c835e7e10e1e",()=>p.openInFileManager,"40eeddda01c4640b57d00f13932e50965270489af0",()=>l.getVersionDiff,"40efe84137024cf9e73bab5a49211774817facb903",()=>e.reorderWorkspaces,"40f1117b81010e13893156cfc0053924b0095dbc03",()=>j.uninstallExtension,"40fe1e766afd7070fd84dd17afe011f254071def45",()=>l.getProjectVersions,"6002bdddfc7eedebe3343f4413f5a14e7eb5ed2f13",()=>m.updateVersionType,"6002f197b6e5ad570e827dce492ddc368ba0e183e3",()=>i.analyzeProjectDirectory,"6017e701bea76e287acb17c5152f2dd0adcd111f6b",()=>h.getConfigValue,"60386b08cc497fab02579444f114bdde29daddbb57",()=>e.updateWorkspace,"604269c8f1bf13a507d2a33c1bb103c710232d3a40",()=>i.migrateProjectPath,"60578a5373ee9eacae399ca2b7dfa2be2f0f34ed63",()=>g.globalSearch,"606b722dc209663674ef752b15d7771f1e856e6987",()=>h.setConfigValue,"607ad1c062c853f2b493a07e9c17d4ab0af92c3929",()=>l.updateVersion,"60b6abbb105161e0ae5b3c36d855f3b6d47e307d06",()=>l.assignTaskVersion,"60b6b1b76d50c62a4b60a7aa67fd07fb03e7c4be9f",()=>k.setOnboardingExtensions,"60d8a396a284f13ce96dcc6f1e32018d98b8eb5344",()=>l.releaseVersion,"60dba40ec9ed7b9af7e6b9cf32e39d2eeb7348d1ec",()=>k.completeOnboarding]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0e.v07~._.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]__01evhhc._.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]__0sdd0qu._.js"].map(b=>a.l(b))).then(()=>b(818992)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},173855,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_open-targets_ts_12a-_~u._.js"].map(b=>a.l(b))).then(()=>b(289288)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))}];
46
46
 
47
47
  //# sourceMappingURL=%5Broot-of-the-server%5D__0e_-mj-._.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,"40c1ed9a257aa67c03663d2c5615e5a2c60cde232a",null),(0,b.registerServerReference)(g,"40c8e22cbbec38a0b343cc303ab78f15dee059b736",null),(0,b.registerServerReference)(h,"4005b705697e7e71d6a43b505aebdc5ba493f42166",null),(0,b.registerServerReference)(i,"6096fc522bc1bedbd9e869f29be5161b68d8944c3d",null),(0,b.registerServerReference)(j,"400eea048188caab32f4ca1bf26d6fb06d99f5f007",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},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,"4091e7c2afbb5050ac2e1700bb1bf6f19569ceead6",null),(0,b.registerServerReference)(g,"405a870c63934bf127b570c94b653f1c5d13d7e638",null),(0,b.registerServerReference)(h,"40581325722ffd1c588020a3d2610615550e6ef286",null),(0,b.registerServerReference)(i,"60dc8e0297b84e53685b2f82ca302923ee67d2cfd8",null),(0,b.registerServerReference)(j,"408d1b9c371b6bace04a52262176cbb248e4d0b865",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},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,"60c95388940c8d3b45d2a8be13a34a5dd553b61d67",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,"60578a5373ee9eacae399ca2b7dfa2be2f0f34ed63",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,"40e8dd01fe9d2dc40496bc845f1f6a95be3454af33",null),(0,b.registerServerReference)(j,"6010d2ca5b605450312f869eafcd0b1b4643681ec6",null),(0,b.registerServerReference)(m,"605e973505a7785564f529b0df2839ad4047c95460",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=d.join(c,"scripts","session-start-hook.js").replace(/\\/g,"/"),g=d.join(c,"scripts","post-tool-hook.js").replace(/\\/g,"/"),h=d.join(c,"scripts","stop-hook.js").replace(/\\/g,"/"),i=!1;return i=this.upsertHook(b,"SessionStart","session-start-hook.js",{hooks:[{command:`node "${e}"`,timeout:5,type:"command"}]})||i,i=this.upsertHook(b,"PostToolUse","post-tool-hook.js",{hooks:[{command:`node "${g}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"})||i,(i=this.upsertHook(b,"Stop","stop-hook.js",{hooks:[{command:`node "${h}"`,timeout:5,type:"command"}]})||i)&&(a.hooks=b,this.writeSettings(a)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async repairHookPaths(){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=!1;for(let[a,f]of[["SessionStart","session-start-hook.js"],["PostToolUse","post-tool-hook.js"],["Stop","stop-hook.js"]]){let g=this.getHookArray(b,a),h=g.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(f)));if(h<0)continue;let i=d.join(c,"scripts",f).replace(/\\/g,"/"),j=`node "${i}"`,k=g[h]?.hooks?.[0];k&&k.command!==j&&(k.command=j,b[a]=g,e=!0)}e&&(a.hooks=b,this.writeSettings(a))}catch{}}upsertHook(a,b,c,d){let e=this.getHookArray(a,b),f=d?.hooks?.[0]?.command,g=e.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(c)));if(g>=0){if(e[g]?.hooks?.[0]?.command===f)return!1;e.splice(g,1)}return e.push(d),a[b]=e,!0}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let 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()||"win32"===process.platform&&a.isDirectory()))return{ok:!1,method:"symlink",detail:e,error:`Refusing to overwrite non-symlink at ${e}`};else try{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)}catch{if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:e,error:`Refusing to overwrite non-symlink at ${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)},196195,a=>{"use strict";var b=a.i(815429),c=a.i(233405),d=a.i(814747),e=a.i(446786);function f(a){return a.startsWith("~/")||"~"===a?d.default.join(e.default.homedir(),a.slice(1)):a}async function g(a){if(!a?.trim())return null;let b=d.default.resolve(f(a));try{return(0,c.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:b,encoding:"utf-8",timeout:5e3}).trim()}catch{return null}}async function h(a){if(!a?.trim())return[];let b=d.default.resolve(f(a));try{let a,d;return a=new Set((0,c.execSync)("git branch --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,""))),d=(0,c.execSync)("git branch -r --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,"").replace(/^origin\//,"")).filter(b=>"HEAD"!==b&&!a.has(b)),[...a,...d]}catch{return[]}}async function i(a){if(!a?.trim())return;let b=d.default.resolve(f(a));try{(0,c.spawn)("git",["fetch","--prune"],{cwd:b,stdio:"ignore",detached:!0}).unref()}catch{}}(0,a.i(630048).ensureServerEntryExports)([g,h,i]),(0,b.registerServerReference)(g,"406f6fca97fa66a01443e29f2340f27050dedd2c80",null),(0,b.registerServerReference)(h,"40f7cf30af1b8a2bd3cbfede819764e7e96d095692",null),(0,b.registerServerReference)(i,"40575c16babf8bfd0918e5724fd055664c9093f5c1",null),a.s(["fetchRemoteBranches",0,i,"getCurrentBranch",0,g,"getProjectBranches",0,h])},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,"40b7501e08e21609968acead49b3d4b4c1b9bd1b09",null),(0,b.registerServerReference)(f,"40d73e8cb0640e94393e735f4fb90b2feb56a0b80d",null),(0,b.registerServerReference)(g,"409b3ffe750152a76a67ada9291a03ba4a69c9d1d3",null),(0,b.registerServerReference)(h,"6060a95370405c2d3433a75d5fbd42035d76e6e277",null),(0,b.registerServerReference)(i,"4023fdffccdaae05333a85f7e8e439cead864b1b96",null),(0,b.registerServerReference)(j,"60e4d6d82ba2ccd6c54f5ac357adfb3429f8c57d5b",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},835032,a=>{"use strict";async function b(a,b){await a.$executeRawUnsafe("DELETE FROM notes_fts WHERE note_id = ?",b.id),await a.$executeRawUnsafe("INSERT INTO notes_fts(note_id, title, content) VALUES (?, ?, ?)",b.id,b.title,b.content)}async function c(a,b){await a.$executeRawUnsafe("DELETE FROM notes_fts WHERE note_id = ?",b)}a.s(["deleteNoteFromFts",0,c,"syncNoteToFts",0,b])},392164,a=>{"use strict";var b=a.i(815429),c=a.i(75681),d=a.i(761469),e=a.i(188139),f=a.i(835032),g=a.i(630048);let h=c.z.object({title:c.z.string().min(1).max(200),content:c.z.string(),category:c.z.string().max(50).optional(),projectId:c.z.string().min(1),taskId:c.z.string().optional()}),i=c.z.object({title:c.z.string().min(1).max(200).optional(),content:c.z.string().optional(),category:c.z.string().max(50).optional()});async function j(a){let b=h.parse(a),c=await d.db.projectNote.create({data:{title:b.title,content:b.content,category:b.category??"备忘",projectId:b.projectId,taskId:b.taskId??null}});return await (0,f.syncNoteToFts)(d.db,{id:c.id,title:c.title,content:c.content}),(0,e.revalidatePath)("/workspace"),c}async function k(a,b){let c=i.parse(b),g=await d.db.projectNote.update({where:{id:a},data:c});return await (0,f.syncNoteToFts)(d.db,{id:g.id,title:g.title,content:g.content}),(0,e.revalidatePath)("/workspace"),g}async function l(a){await (0,f.deleteNoteFromFts)(d.db,a),await d.db.projectNote.delete({where:{id:a}}),(0,e.revalidatePath)("/workspace")}async function m(a){return d.db.projectNote.findUnique({where:{id:a}})}async function n(a,b){return d.db.projectNote.findMany({where:{projectId:a,taskId:null,...b?.category?{category:b.category}:{}},orderBy:[{updatedAt:"desc"},{id:"desc"}]})}async function o(a){return d.db.projectNote.findMany({where:{taskId:a},orderBy:[{updatedAt:"desc"},{id:"desc"}]})}(0,g.ensureServerEntryExports)([j,k,l,m,n,o]),(0,b.registerServerReference)(j,"40616596fa4f2dfc94d91eca51a36d057b47216eb3",null),(0,b.registerServerReference)(k,"60a19391fdd2ed4984125e6d29590c4fa741dd84d6",null),(0,b.registerServerReference)(l,"4068cccd8956a230bd6ff1e574451adfa98168dfe5",null),(0,b.registerServerReference)(m,"40e17089ac72ac2df52d3a2c48be3035ba4a6d0fb9",null),(0,b.registerServerReference)(n,"60d3b3d4dc689caca4392adfe1014e45cc6cd65d97",null),(0,b.registerServerReference)(o,"40c7270b5f3e0370f8724ee6aeb6384165a64220c7",null),a.s(["createNote",0,j,"deleteNote",0,l,"getNoteById",0,m,"getProjectNotes",0,n,"getTaskNotes",0,o,"updateNote",0,k])},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,"409885e581f36392a17d931ca7920bc255fc932a57",null),(0,b.registerServerReference)(i,"401d229feefc4e2d103c4dc434232660d8f7f16ffc",null),(0,b.registerServerReference)(j,"608800938e4a0f56bc384158467b8bffbefecb15c0",null),(0,b.registerServerReference)(k,"4042b3a65173f55fa0b37c3b67ae87bd9eb8e3f30d",null),(0,b.registerServerReference)(l,"60a93268e8e360d92be4d9a145ba39de707366e347",null),(0,b.registerServerReference)(m,"609d3d7177804ef8e588c8cd4249e7ee72343aae94",null),(0,b.registerServerReference)(n,"40fbd322a2220a136d975aef6295d4996afb021346",null),(0,b.registerServerReference)(o,"408cd9c6123640c446e7d4870d12419204bf539f41",null),(0,b.registerServerReference)(p,"400acfd4453438b3dc8e26e66b3d3e970ba5b16a93",null),(0,b.registerServerReference)(q,"405d730f71573de1a8a71d52764d11386ce546fafa",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)},859071,a=>{"use strict";a.i(666680);var b=a.i(902157),c=a.i(750227),d=a.i(319997);a.s(["ensureAssetsDir",0,function(a){let e=function(a){let b=c.join((0,d.getStorageDir)(),"assets",a);if(!b.startsWith((0,d.getStorageDir)()+c.sep))throw Error("Path traversal detected");return b}(a);return b.mkdirSync(e,{recursive:!0}),e}])},97397,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(902157),f=a.i(750227),g=a.i(75681),h=a.i(761469),i=a.i(188139),j=a.i(859071),k=a.i(980999),l=a.i(630048),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"40f40339d8c717b1bf02f3a3ecef1df044feef2d97",null),(0,d.registerServerReference)(o,"40170bdfbf2acb2195704addb2929516d6f520cdd1",null),(0,d.registerServerReference)(p,"40008ea3a22a58a174f7aa5d0cde9880f274484fc9",null),(0,d.registerServerReference)(q,"40658e0f067e14a73b111269e4179a5c06a34f63df",null),(0,d.registerServerReference)(r,"40c19b24ab6e37d9282a2d9f19135c734970bd7b2e",null),(0,d.registerServerReference)(s,"406504b14b4a0f4de8d3f1374ee61f0306262a342e",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),408835,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(196195),a.i(536960),a.i(347427),a.i(689171),a.i(925886),a.i(392164);var f=a.i(97397);a.i(748383);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),590656,a=>a.a(async(b,c)=>{try{var d=a.i(408835),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(196195),m=a.i(536960),n=a.i(347427),o=a.i(689171),p=a.i(925886),q=a.i(392164),r=a.i(97397),s=a.i(748383),t=b([d,g,h,r]);[d,g,h,r]=t.then?(await t)():t,a.s(["0024d66bad18dfdd31a48ed0fcc3580e534a5c6668",()=>k.getOnboardingStatus,"005835d362a99c09bedd29e73338f9828d561c2aab",()=>h.getActualWsPort,"00c4ddad6bd53e9873dc2a5f2687e26c7f615535d6",()=>j.listAllExtensionStatus,"4002e37519d2957238210e990a40f8b6d3615e9d35",()=>e.createProject,"4005b705697e7e71d6a43b505aebdc5ba493f42166",()=>f.deleteLabel,"400eea048188caab32f4ca1bf26d6fb06d99f5f007",()=>f.getTaskLabels,"40117712ad7408641fee51911c6a78855c43a16445",()=>o.createTask,"40124fd369430ba78afb522a65947fbf399987a187",()=>m.openInTerminal,"40170bdfbf2acb2195704addb2929516d6f520cdd1",()=>r.deleteAsset,"403959cc58bc62dfaee7df0ba2f549fb24773266ef",()=>n.stopPtyExecution,"403c85915168c182a91b048f3238a70874011d2c8a",()=>j.checkExtension,"403feae901e319962e3b8b61602b6a73d421edc289",()=>k.setOnboardingProgress,"404d0b92b2e8f323321a855f30c76f03687aca3853",()=>n.getTaskExecutions,"40531d44fc6a969dfc8cdcd960018a0fecb76fa761",()=>e.createWorkspace,"40575c16babf8bfd0918e5724fd055664c9093f5c1",()=>l.fetchRemoteBranches,"40616596fa4f2dfc94d91eca51a36d057b47216eb3",()=>q.createNote,"406504b14b4a0f4de8d3f1374ee61f0306262a342e",()=>r.uploadAsset,"40658e0f067e14a73b111269e4179a5c06a34f63df",()=>r.getTaskAssets,"4068cccd8956a230bd6ff1e574451adfa98168dfe5",()=>q.deleteNote,"406f6fca97fa66a01443e29f2340f27050dedd2c80",()=>l.getCurrentBranch,"40705e59f5a30b17bf67b350d66af4db2e7a8e4029",()=>e.getRecentLocalProjects,"407242762ff7550ed5b6999b2b8a95164d679fd9b0",()=>e.deleteProject,"4076df959ec66a71d59f36063d120f1014f472b192",()=>m.openInEditor,"407fd4fefdf711d2a688cc0eff73951b1532a8eba4",()=>o.checkWorktreeClean,"4099066c016a6e290639ef563bd1d72eff923cc403",()=>e.getOrCreateTowerTaskId,"40994e9a8aaaa60dfb3ea7538eb82b14466b734a30",()=>k.dispatchTaskCompletionEvent,"40a3c5f8cf9a7905fb65ed1bb0e2a62bca9a1aade4",()=>h.getConfigValues,"40b5c009cb993c580d8b9f006f6e08f0f9cab036e5",()=>m.openInFileManager,"40b7501e08e21609968acead49b3d4b4c1b9bd1b09",()=>p.getPrompts,"40b9d22cd6da97cb86f4d390c7bdeb55b91df381b3",()=>o.deleteTask,"40bbb3529100faaf0c6532ce0a4f4910bb0a210baf",()=>n.continueLatestPtyExecution,"40c1ed9a257aa67c03663d2c5615e5a2c60cde232a",()=>f.getLabelsForWorkspace,"40c7270b5f3e0370f8724ee6aeb6384165a64220c7",()=>q.getTaskNotes,"40c8e22cbbec38a0b343cc303ab78f15dee059b736",()=>f.createLabel,"40cac51775567287197fc9934d58611257d8cf6f91",()=>j.installExtension,"40cc9ae73124828542f665de62ef631bd3db3ebc31",()=>j.uninstallExtension,"40d120ccbea9e27f9933c9c927c90c8b17867f4f93",()=>o.toggleTaskPinned,"40da3399fdc20b802b5d4546d6674588913190bf1d",()=>h.resolveGitLocalPath,"40e8dcd3a0f7d21d56cbdf5134bf0d107e94cc96cc",()=>e.reorderWorkspaces,"40e8dd01fe9d2dc40496bc845f1f6a95be3454af33",()=>i.checkMigrationSafety,"40f7cf30af1b8a2bd3cbfede819764e7e96d095692",()=>l.getProjectBranches,"40fbd322a2220a136d975aef6295d4996afb021346",()=>s.getVersionsForPicker,"40ff4f6f97e83422f41dc091226ce39b9ab7e6d367",()=>e.deleteWorkspace,"6010d2ca5b605450312f869eafcd0b1b4643681ec6",()=>i.migrateProjectPath,"604dec7b6b53f1003101b265ebad366c3e8f863085",()=>e.updateProject,"6059e11f9667a95e57c5fd53a5393e75aa67fefe22",()=>n.resumePtyExecution,"605e1ec80951070111cde5b15d85b940f44f4773d6",()=>o.updateTask,"605e973505a7785564f529b0df2839ad4047c95460",()=>i.analyzeProjectDirectory,"606f98e043fcd3466d002d5347ad42f6ed5e067ad2",()=>o.commitWorktreeChanges,"6096fc522bc1bedbd9e869f29be5161b68d8944c3d",()=>f.setTaskLabels,"60c4b4dffa60987bfdbec01eb55e546f32374cebe8",()=>h.getConfigValue,"60c95388940c8d3b45d2a8be13a34a5dd553b61d67",()=>g.globalSearch,"60d5bc63eaf7a089633640636960929be695e40db9",()=>k.setOnboardingExtensions,"60de5ffd4477fb756236df1fea67b2a28dd8c71d33",()=>h.setConfigValue,"60dee5fdefcfc5bc4fbaa455a9a46fdbbc76ede5e8",()=>e.updateWorkspace,"60e82cc1ceca7ebd237dcf0bd9f0d5dfd03cac9bcb",()=>k.completeOnboarding,"60ee8a767c1e6291672e39ed93ee850a3224816124",()=>o.updateTaskStatus,"7c7cefd5999e63902bef97ef52fe33d2420a6837c8",()=>n.startPtyExecutionSafe,"7cbbe07076ec268119957e90049fcfabfcd584d569",()=>n.startPtyExecution]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0yvdojq._.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/_0nbufo.._.js"].map(b=>a.l(b))).then(()=>b(897667)))},173855,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_open-targets_ts_12a-_~u._.js"].map(b=>a.l(b))).then(()=>b(289288)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0qkxdkn._.js"].map(b=>a.l(b))).then(()=>b(818992)))},610073,a=>{a.v(a=>Promise.resolve().then(()=>a(4634)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
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,"4072ca35118cb57de16a6ea9447267ffc678259049",null),(0,b.registerServerReference)(j,"604269c8f1bf13a507d2a33c1bb103c710232d3a40",null),(0,b.registerServerReference)(m,"6002f197b6e5ad570e827dce492ddc368ba0e183e3",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=d.join(c,"scripts","session-start-hook.js").replace(/\\/g,"/"),g=d.join(c,"scripts","post-tool-hook.js").replace(/\\/g,"/"),h=d.join(c,"scripts","stop-hook.js").replace(/\\/g,"/"),i=!1;return i=this.upsertHook(b,"SessionStart","session-start-hook.js",{hooks:[{command:`node "${e}"`,timeout:5,type:"command"}]})||i,i=this.upsertHook(b,"PostToolUse","post-tool-hook.js",{hooks:[{command:`node "${g}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"})||i,(i=this.upsertHook(b,"Stop","stop-hook.js",{hooks:[{command:`node "${h}"`,timeout:5,type:"command"}]})||i)&&(a.hooks=b,this.writeSettings(a)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async repairHookPaths(){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=!1;for(let[a,f]of[["SessionStart","session-start-hook.js"],["PostToolUse","post-tool-hook.js"],["Stop","stop-hook.js"]]){let g=this.getHookArray(b,a),h=g.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(f)));if(h<0)continue;let i=d.join(c,"scripts",f).replace(/\\/g,"/"),j=`node "${i}"`,k=g[h]?.hooks?.[0];k&&k.command!==j&&(k.command=j,b[a]=g,e=!0)}e&&(a.hooks=b,this.writeSettings(a))}catch{}}upsertHook(a,b,c,d){let e=this.getHookArray(a,b),f=d?.hooks?.[0]?.command,g=e.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(c)));if(g>=0){if(e[g]?.hooks?.[0]?.command===f)return!1;e.splice(g,1)}return e.push(d),a[b]=e,!0}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let 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()||"win32"===process.platform&&a.isDirectory()))return{ok:!1,method:"symlink",detail:e,error:`Refusing to overwrite non-symlink at ${e}`};else try{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)}catch{if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:e,error:`Refusing to overwrite non-symlink at ${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)},196195,a=>{"use strict";var b=a.i(815429),c=a.i(233405),d=a.i(814747),e=a.i(446786);function f(a){return a.startsWith("~/")||"~"===a?d.default.join(e.default.homedir(),a.slice(1)):a}async function g(a){if(!a?.trim())return null;let b=d.default.resolve(f(a));try{return(0,c.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:b,encoding:"utf-8",timeout:5e3}).trim()}catch{return null}}async function h(a){if(!a?.trim())return[];let b=d.default.resolve(f(a));try{let a,d;return a=new Set((0,c.execSync)("git branch --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,""))),d=(0,c.execSync)("git branch -r --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,"").replace(/^origin\//,"")).filter(b=>"HEAD"!==b&&!a.has(b)),[...a,...d]}catch{return[]}}async function i(a){if(!a?.trim())return;let b=d.default.resolve(f(a));try{(0,c.spawn)("git",["fetch","--prune"],{cwd:b,stdio:"ignore",detached:!0}).unref()}catch{}}(0,a.i(630048).ensureServerEntryExports)([g,h,i]),(0,b.registerServerReference)(g,"405324d5346b0f64514ae645455c3f00de51ae022c",null),(0,b.registerServerReference)(h,"405018bf355471ec15c9d9b8f26db48d4f87210283",null),(0,b.registerServerReference)(i,"408b75aafd47cd28dafe1aa4bb580506514dfe03d2",null),a.s(["fetchRemoteBranches",0,i,"getCurrentBranch",0,g,"getProjectBranches",0,h])},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,"406b71dd2c3138ad65f35a55c0bdd0cf15abb77594",null),(0,b.registerServerReference)(f,"402402c6d6638f840d46f0b56edf1c905b32a4a28b",null),(0,b.registerServerReference)(g,"40db41b2201b28da2dc410790dd1144532a829b18b",null),(0,b.registerServerReference)(h,"60fae2e4e26a6dcaf93a376309946efbb9ef82c06a",null),(0,b.registerServerReference)(i,"40a62bc546a6d5f0a8985f396795c29ad3ce1f1bf0",null),(0,b.registerServerReference)(j,"609c589b8ee620cf01786e1ee7b5f7955ed3c94131",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},835032,a=>{"use strict";async function b(a,b){await a.$executeRawUnsafe("DELETE FROM notes_fts WHERE note_id = ?",b.id),await a.$executeRawUnsafe("INSERT INTO notes_fts(note_id, title, content) VALUES (?, ?, ?)",b.id,b.title,b.content)}async function c(a,b){await a.$executeRawUnsafe("DELETE FROM notes_fts WHERE note_id = ?",b)}a.s(["deleteNoteFromFts",0,c,"syncNoteToFts",0,b])},392164,a=>{"use strict";var b=a.i(815429),c=a.i(75681),d=a.i(761469),e=a.i(188139),f=a.i(835032),g=a.i(630048);let h=c.z.object({title:c.z.string().min(1).max(200),content:c.z.string(),category:c.z.string().max(50).optional(),projectId:c.z.string().min(1),taskId:c.z.string().optional()}),i=c.z.object({title:c.z.string().min(1).max(200).optional(),content:c.z.string().optional(),category:c.z.string().max(50).optional()});async function j(a){let b=h.parse(a),c=await d.db.projectNote.create({data:{title:b.title,content:b.content,category:b.category??"备忘",projectId:b.projectId,taskId:b.taskId??null}});return await (0,f.syncNoteToFts)(d.db,{id:c.id,title:c.title,content:c.content}),(0,e.revalidatePath)("/workspace"),c}async function k(a,b){let c=i.parse(b),g=await d.db.projectNote.update({where:{id:a},data:c});return await (0,f.syncNoteToFts)(d.db,{id:g.id,title:g.title,content:g.content}),(0,e.revalidatePath)("/workspace"),g}async function l(a){await (0,f.deleteNoteFromFts)(d.db,a),await d.db.projectNote.delete({where:{id:a}}),(0,e.revalidatePath)("/workspace")}async function m(a){return d.db.projectNote.findUnique({where:{id:a}})}async function n(a,b){return d.db.projectNote.findMany({where:{projectId:a,taskId:null,...b?.category?{category:b.category}:{}},orderBy:[{updatedAt:"desc"},{id:"desc"}]})}async function o(a){return d.db.projectNote.findMany({where:{taskId:a},orderBy:[{updatedAt:"desc"},{id:"desc"}]})}(0,g.ensureServerEntryExports)([j,k,l,m,n,o]),(0,b.registerServerReference)(j,"40ba70d4312f1b44ea1844a2b5345a0743edf01551",null),(0,b.registerServerReference)(k,"6030969ae781d7029dea2671043db8e1562a20a945",null),(0,b.registerServerReference)(l,"40cc0a2ca8eb3d4b54ea1800371feb54a68b9ef783",null),(0,b.registerServerReference)(m,"401fd47634ec88c32c33561ebbd0036ba310b44854",null),(0,b.registerServerReference)(n,"60258f53a50be7f365ead82e54dfe6a29406d25428",null),(0,b.registerServerReference)(o,"40d08ff346d341404ff0ef27346235922196a84a47",null),a.s(["createNote",0,j,"deleteNote",0,l,"getNoteById",0,m,"getProjectNotes",0,n,"getTaskNotes",0,o,"updateNote",0,k])},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,"40fe1e766afd7070fd84dd17afe011f254071def45",null),(0,b.registerServerReference)(i,"400f0b8fbfecfcbe055afa2fe8474e3e4a67718a4b",null),(0,b.registerServerReference)(j,"607ad1c062c853f2b493a07e9c17d4ab0af92c3929",null),(0,b.registerServerReference)(k,"401f2bda067faf2cdded51bccf935cc6fbc8a0c5d9",null),(0,b.registerServerReference)(l,"60b6abbb105161e0ae5b3c36d855f3b6d47e307d06",null),(0,b.registerServerReference)(m,"60d8a396a284f13ce96dcc6f1e32018d98b8eb5344",null),(0,b.registerServerReference)(n,"409d80af6412fc9b8e291d2c2bc4780fe4e0d0f198",null),(0,b.registerServerReference)(o,"4086c5ed00a801affc5c87d2abc1efbb7781561396",null),(0,b.registerServerReference)(p,"40eeddda01c4640b57d00f13932e50965270489af0",null),(0,b.registerServerReference)(q,"408b16edd2425d49cd49e1d21e460e122ccb93c125",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)},859071,a=>{"use strict";a.i(666680);var b=a.i(902157),c=a.i(750227),d=a.i(319997);a.s(["ensureAssetsDir",0,function(a){let e=function(a){let b=c.join((0,d.getStorageDir)(),"assets",a);if(!b.startsWith((0,d.getStorageDir)()+c.sep))throw Error("Path traversal detected");return b}(a);return b.mkdirSync(e,{recursive:!0}),e}])},97397,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(902157),f=a.i(750227),g=a.i(75681),h=a.i(761469),i=a.i(188139),j=a.i(859071),k=a.i(980999),l=a.i(630048),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"40c66e1cbfded70675f3ee304fc9edec0c4fa977aa",null),(0,d.registerServerReference)(o,"406b45e8b84daef1900b3dd0b22343a43b68fc6478",null),(0,d.registerServerReference)(p,"40ab9b3eba0bd017612cd3ce55089773eb180a5ad5",null),(0,d.registerServerReference)(q,"405403aa7e7a6935ec2d25a2ec320753bef4ac3c23",null),(0,d.registerServerReference)(r,"40dbe029b5b19ab3008ad11f65e643672e1e121496",null),(0,d.registerServerReference)(s,"40e9600dc2cd511545c5c8403d35a7384067f0ef69",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),408835,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(196195),a.i(536960),a.i(347427),a.i(689171),a.i(925886),a.i(392164);var f=a.i(97397);a.i(748383);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),590656,a=>a.a(async(b,c)=>{try{var d=a.i(408835),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(196195),m=a.i(536960),n=a.i(347427),o=a.i(689171),p=a.i(925886),q=a.i(392164),r=a.i(97397),s=a.i(748383),t=b([d,g,h,r]);[d,g,h,r]=t.then?(await t)():t,a.s(["007a331edb75d8bbd8ca63d9d1334025cb700844e2",()=>k.getOnboardingStatus,"007e925c0232975a8b443f05178e2374e175d65f88",()=>h.getActualWsPort,"00c5601e4f5c928410914e20eb9f10e7508564e5e2",()=>j.listAllExtensionStatus,"40237e4dbff3868f964dd9913f9a4ca85f84822c10",()=>h.getConfigValues,"403130c5f9a85c07f32a74c15581cea6163afdffde",()=>n.stopPtyExecution,"4038649f70ecf76055867dc0b626910f6872581e5e",()=>h.resolveGitLocalPath,"403c9fe43b98e736adb23aa75d74cf996ebc91c9f5",()=>j.checkExtension,"404171df3d7939dda365b8d5086e892794ddecfefe",()=>e.deleteProject,"404acb741a64c82eecb0cafc114ed1c3c774ded716",()=>o.checkWorktreeClean,"404f2cec10eea45d333cb6336a3cd276e53a6b6391",()=>o.toggleTaskPinned,"405018bf355471ec15c9d9b8f26db48d4f87210283",()=>l.getProjectBranches,"405034ec856e7ada8e4aaca22cb95ce5f7a62d4250",()=>e.createWorkspace,"405324d5346b0f64514ae645455c3f00de51ae022c",()=>l.getCurrentBranch,"405403aa7e7a6935ec2d25a2ec320753bef4ac3c23",()=>r.getTaskAssets,"40581325722ffd1c588020a3d2610615550e6ef286",()=>f.deleteLabel,"405a870c63934bf127b570c94b653f1c5d13d7e638",()=>f.createLabel,"406903301e2570233d02d1b124044ea8abdc70a5a8",()=>k.dispatchTaskCompletionEvent,"406b45e8b84daef1900b3dd0b22343a43b68fc6478",()=>r.deleteAsset,"406b71dd2c3138ad65f35a55c0bdd0cf15abb77594",()=>p.getPrompts,"4072ca35118cb57de16a6ea9447267ffc678259049",()=>i.checkMigrationSafety,"4075063506e18d5a1c88fa77b9fcd7f9d45e8aa9dc",()=>o.deleteTask,"4084d56f97fc2d106951c08ef353d5dff8b6a7972e",()=>m.openInTerminal,"408b75aafd47cd28dafe1aa4bb580506514dfe03d2",()=>l.fetchRemoteBranches,"408d1b9c371b6bace04a52262176cbb248e4d0b865",()=>f.getTaskLabels,"4090fc0c31155a5a3506400d9b5552460a5aea4bcc",()=>e.getRecentLocalProjects,"4091e7c2afbb5050ac2e1700bb1bf6f19569ceead6",()=>f.getLabelsForWorkspace,"4094a1985cc9f4aca1c58f3fe47160e96438a1e4fa",()=>n.getTaskExecutions,"409d80af6412fc9b8e291d2c2bc4780fe4e0d0f198",()=>s.getVersionsForPicker,"409fde74f8620398f759dd8e67cdf93e49b6cdc4b5",()=>j.installExtension,"40ae52f9c09657ba6f03439b7ef5c06ec2dccbd430",()=>e.getOrCreateTowerTaskId,"40ba70d4312f1b44ea1844a2b5345a0743edf01551",()=>q.createNote,"40c84ff01dd528e1e7c26b38249183e6e0456f2ba8",()=>e.deleteWorkspace,"40cae26d8c2823110d8bb96e1ee8d8db922742701f",()=>m.openInEditor,"40cc0a2ca8eb3d4b54ea1800371feb54a68b9ef783",()=>q.deleteNote,"40ce398eab6a20d81c2a81420451a8262f4ed9c842",()=>k.setOnboardingProgress,"40d08ff346d341404ff0ef27346235922196a84a47",()=>q.getTaskNotes,"40d58e07125e70ee60d88c53ca0b01c36b88626b74",()=>o.createTask,"40dfd2f8ff49705931050dba07a43c7982824f5fe2",()=>e.createProject,"40e9600dc2cd511545c5c8403d35a7384067f0ef69",()=>r.uploadAsset,"40ebc54780e47a891ec14da48ad2e8c835e7e10e1e",()=>m.openInFileManager,"40efe84137024cf9e73bab5a49211774817facb903",()=>e.reorderWorkspaces,"40f02b0f9565f80f33bbf1b464a0767ba121da533f",()=>n.continueLatestPtyExecution,"40f1117b81010e13893156cfc0053924b0095dbc03",()=>j.uninstallExtension,"6002f197b6e5ad570e827dce492ddc368ba0e183e3",()=>i.analyzeProjectDirectory,"6017e701bea76e287acb17c5152f2dd0adcd111f6b",()=>h.getConfigValue,"60386b08cc497fab02579444f114bdde29daddbb57",()=>e.updateWorkspace,"604269c8f1bf13a507d2a33c1bb103c710232d3a40",()=>i.migrateProjectPath,"60578a5373ee9eacae399ca2b7dfa2be2f0f34ed63",()=>g.globalSearch,"606b722dc209663674ef752b15d7771f1e856e6987",()=>h.setConfigValue,"606d705506b8676fd47b192c2c9716ca91ef9f0e8b",()=>o.updateTask,"606d89b05b549976424158925b1b4d2d2895b2dbe2",()=>o.commitWorktreeChanges,"60b6b1b76d50c62a4b60a7aa67fd07fb03e7c4be9f",()=>k.setOnboardingExtensions,"60d9b4cfa4456aec024dd568e422cb9fbf8e3071b3",()=>e.updateProject,"60dba40ec9ed7b9af7e6b9cf32e39d2eeb7348d1ec",()=>k.completeOnboarding,"60dc8e0297b84e53685b2f82ca302923ee67d2cfd8",()=>f.setTaskLabels,"60e8a899bfb81e28750738ba5a60be28ea51fa27a6",()=>o.updateTaskStatus,"60f7ac8fbe64a2669c69afd2f479eb53700b142b3c",()=>n.resumePtyExecution,"7c69cc47130a3e49b112edbffb1ef56b7f5eace9b4",()=>n.startPtyExecution,"7cdcc9374465625d96e749dd6cc269159534491e57",()=>n.startPtyExecutionSafe]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0yvdojq._.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/_0nbufo.._.js"].map(b=>a.l(b))).then(()=>b(897667)))},173855,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_open-targets_ts_12a-_~u._.js"].map(b=>a.l(b))).then(()=>b(289288)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0qkxdkn._.js"].map(b=>a.l(b))).then(()=>b(818992)))},610073,a=>{a.v(a=>Promise.resolve().then(()=>a(4634)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
46
46
 
47
47
  //# sourceMappingURL=%5Broot-of-the-server%5D__0fzkdjl._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},432201,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},933919,(a,b,c)=>{b.exports=a.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},761469,a=>{"use strict";var b=a.i(933919);let c=globalThis.prisma??new b.PrismaClient({log:[]}),d=!1;async function e(){return d||(await c.$connect(),await c.$queryRaw`PRAGMA journal_mode=WAL`,await c.$queryRaw`PRAGMA busy_timeout=5000`,d=!0),c}async function f(){try{await c.$disconnect()}catch{}d=!1,await e()}process.on("SIGTERM",()=>{c.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{c.$disconnect().catch(()=>{})}),a.s(["db",0,c,"resetDbConnection",0,f])},26683,a=>{"use strict";function b(a,b,c,d){let e=new Date().toISOString(),f=`[${e}] ${a.toUpperCase()} [${b}] ${c}`;return d&&Object.keys(d).length>0?`${f} ${JSON.stringify(d)}`:f}a.s(["logger",0,{create:function(a){return{info(c,d){console.log(b("info",a,c,d))},warn(c,d){console.warn(b("warn",a,c,d))},error(c,d,e){console.error(b("error",a,c,d instanceof Error?{...e,error:d.message,stack:d.stack}:{...e,error:String(d)}))}}},info(a,c){console.log(b("info","app",a,c))},warn(a,c){console.warn(b("warn","app",a,c))},error(a,c,d){console.error(b("error","app",a,c instanceof Error?{...d,error:c.message,stack:c.stack}:{...d,error:String(c)}))}}])},4634,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(26683),f=a.i(630048);let g=["onboarding.completed","onboarding.lastStep","onboarding.username"];async function h(){let a=await c.db.systemConfig.findMany({where:{key:{in:[...g]}}}),b={};for(let c of a)try{b[c.key]=JSON.parse(c.value)}catch{b[c.key]=null}let d=!0===b["onboarding.completed"],e=b["onboarding.lastStep"],f=b["onboarding.username"];return{isFirstRun:!d,isCompleted:d,lastStep:"number"==typeof e?e:0,username:"string"==typeof f&&f.length>0?f:null}}async function i(a){await c.db.systemConfig.upsert({where:{key:"onboarding.lastStep"},create:{key:"onboarding.lastStep",value:JSON.stringify(a)},update:{value:JSON.stringify(a)}}),(0,d.revalidatePath)("/","layout")}async function j(a,b=4){if(await c.db.systemConfig.upsert({where:{key:"onboarding.completed"},create:{key:"onboarding.completed",value:"true"},update:{value:"true"}}),await c.db.systemConfig.upsert({where:{key:"onboarding.lastStep"},create:{key:"onboarding.lastStep",value:String(b)},update:{value:String(b)}}),void 0!==a){let b=a.trim().slice(0,64).replace(/[\r\n]/g," ");b.length>0&&await c.db.systemConfig.upsert({where:{key:"onboarding.username"},create:{key:"onboarding.username",value:JSON.stringify(b)},update:{value:JSON.stringify(b)}})}(0,d.revalidatePath)("/","layout")}async function k(a,b){await c.db.systemConfig.upsert({where:{key:"onboarding.extensions.requested"},create:{key:"onboarding.extensions.requested",value:JSON.stringify(a)},update:{value:JSON.stringify(a)}}),await c.db.systemConfig.upsert({where:{key:"onboarding.extensions.completed"},create:{key:"onboarding.extensions.completed",value:JSON.stringify(b)},update:{value:JSON.stringify(b)}}),(0,d.revalidatePath)("/","layout")}async function l(b){try{e.logger.create("task-completion").info("Task completion event dispatched",{taskId:b.taskId,taskTitle:b.taskTitle,status:b.status,executionId:b.executionId});let{broadcastNotification:c}=await a.A(904454);c({...b,type:"completion"})}catch{}}(0,f.ensureServerEntryExports)([h,i,j,k,l]),(0,b.registerServerReference)(h,"0024d66bad18dfdd31a48ed0fcc3580e534a5c6668",null),(0,b.registerServerReference)(i,"403feae901e319962e3b8b61602b6a73d421edc289",null),(0,b.registerServerReference)(j,"60e82cc1ceca7ebd237dcf0bd9f0d5dfd03cac9bcb",null),(0,b.registerServerReference)(k,"60d5bc63eaf7a089633640636960929be695e40db9",null),(0,b.registerServerReference)(l,"40994e9a8aaaa60dfb3ea7538eb82b14466b734a30",null),a.s(["completeOnboarding",0,j,"dispatchTaskCompletionEvent",0,l,"getOnboardingStatus",0,h,"setOnboardingExtensions",0,k,"setOnboardingProgress",0,i])},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},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"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},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"))},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}function g(){return(0,c.join)(f(),"storage")}function h(){return(0,c.join)(f(),"storage-location")}function i(){try{let a=(0,e.readFileSync)(h(),"utf-8").trim();return a.length>0?a:null}catch{return null}}a.s(["getBackupsDir",0,function(){let a=(0,c.join)(f(),"backups");return(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0}),a},"getDefaultStorageDir",0,g,"getExtensionsDir",0,function(){let a=(0,c.join)(f(),"extensions");return(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0}),a},"getStorageDir",0,function(){let a=process.env.TOWER_STORAGE_DIR||i(),b=a&&a.length>0?a:g();return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0}),b},"getTowerDir",0,f,"readStoragePointer",0,i,"writeStoragePointer",0,function(a){let b=h();null===a?(0,e.rmSync)(b,{force:!0}):(0,e.writeFileSync)(b,a,"utf-8")}])},589578,a=>{a.v({className:"geist_a71539c9-module__T19VSG__className",variable:"geist_a71539c9-module__T19VSG__variable"})},435214,a=>{a.v({className:"geist_mono_8d43a2aa-module__8Li5zG__className",variable:"geist_mono_8d43a2aa-module__8Li5zG__variable"})},655209,a=>{"use strict";a.s(["Tooltip",()=>c,"TooltipContent",()=>d,"TooltipProvider",()=>e,"TooltipTrigger",()=>f]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Tooltip() from the server but Tooltip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","Tooltip"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipContent() from the server but TooltipContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipProvider() from the server but TooltipProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipProvider"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipTrigger() from the server but TooltipTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipTrigger")},480581,a=>{"use strict";a.s(["Tooltip",()=>c,"TooltipContent",()=>d,"TooltipProvider",()=>e,"TooltipTrigger",()=>f]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Tooltip() from the server but Tooltip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","Tooltip"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipContent() from the server but TooltipContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipProvider() from the server but TooltipProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipProvider"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipTrigger() from the server but TooltipTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipTrigger")},570588,a=>{"use strict";a.i(655209);var b=a.i(480581);a.n(b)},58951,a=>{"use strict";a.s(["LayoutClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call LayoutClient() from the server but LayoutClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/layout/layout-client.tsx <module evaluation>","LayoutClient")},890170,a=>{"use strict";a.s(["LayoutClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call LayoutClient() from the server but LayoutClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/layout/layout-client.tsx","LayoutClient")},910515,a=>{"use strict";a.i(58951);var b=a.i(890170);a.n(b)},878776,a=>{"use strict";a.s(["I18nProvider",()=>c,"useI18n",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call I18nProvider() from the server but I18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx <module evaluation>","I18nProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useI18n() from the server but useI18n is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx <module evaluation>","useI18n")},604483,a=>{"use strict";a.s(["I18nProvider",()=>c,"useI18n",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call I18nProvider() from the server but I18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx","I18nProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useI18n() from the server but useI18n is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx","useI18n")},796661,a=>{"use strict";a.i(878776);var b=a.i(604483);a.n(b)},314493,a=>{"use strict";a.s(["ThemeProvider",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/providers/theme-provider.tsx <module evaluation>","ThemeProvider")},718127,a=>{"use strict";a.s(["ThemeProvider",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/providers/theme-provider.tsx","ThemeProvider")},538939,a=>{"use strict";a.i(314493);var b=a.i(718127);a.n(b)},336511,a=>{"use strict";a.s(["ExtensionContext",()=>c,"ExtensionProvider",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionContext() from the server but ExtensionContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx <module evaluation>","ExtensionContext"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionProvider() from the server but ExtensionProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx <module evaluation>","ExtensionProvider")},948109,a=>{"use strict";a.s(["ExtensionContext",()=>c,"ExtensionProvider",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionContext() from the server but ExtensionContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx","ExtensionContext"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionProvider() from the server but ExtensionProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx","ExtensionProvider")},350569,a=>{"use strict";a.i(336511);var b=a.i(948109);a.n(b)},396988,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sonner.tsx <module evaluation>","Toaster")},324257,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sonner.tsx","Toaster")},767807,a=>{"use strict";a.i(396988);var b=a.i(324257);a.n(b)},827572,a=>{"use strict";var b=a.i(203469),c=a.i(589578);let d={className:c.default.className,style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"}};null!=c.default.variable&&(d.variable=c.default.variable);var e=a.i(435214);let f={className:e.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=e.default.variable&&(f.variable=e.default.variable);var g=a.i(570588),h=a.i(910515),i=a.i(796661),j=a.i(538939),k=a.i(350569),l=a.i(767807),m=a.i(761469),n=a.i(4634),o=a.i(563736);async function p({children:a}){let[c,e,q]=await Promise.all([m.db.workspace.findMany({orderBy:[{order:"asc"},{updatedAt:"desc"}],select:{id:!0,name:!0,description:!0,updatedAt:!0}}),(0,n.getOnboardingStatus)(),(0,o.listAllExtensionStatus)()]);return(0,b.jsxs)("html",{lang:"zh-CN",suppressHydrationWarning:!0,children:[(0,b.jsxs)("head",{children:[(0,b.jsx)("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),(0,b.jsx)("link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),(0,b.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&family=JetBrains+Mono:wght@400;500;600&display=swap",rel:"stylesheet"})]}),(0,b.jsx)("body",{className:`${d.variable} ${f.variable} antialiased`,children:(0,b.jsx)(j.ThemeProvider,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,b.jsx)(g.TooltipProvider,{children:(0,b.jsx)(i.I18nProvider,{children:(0,b.jsxs)(k.ExtensionProvider,{initialStatus:q,children:[(0,b.jsx)(h.LayoutClient,{workspaces:c,isFirstRun:e.isFirstRun,username:e.username,children:a}),(0,b.jsx)(l.Toaster,{richColors:!0,position:"top-right"})]})})})})})]})}a.s(["default",0,p,"dynamic",0,"force-dynamic","metadata",0,{title:"AI Task Platform - Tower",description:"AI task orchestration and multi-project management platform"},"runtime",0,"nodejs"],827572)},650645,a=>{a.n(a.i(827572))},904454,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__11zjs~k._.js","server/chunks/ssr/src_lib_0sms4xl._.js"].map(b=>a.l(b))).then(()=>b(640545)))},640417,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_@vscode_ripgrep_0m7itqb._.js"].map(b=>a.l(b))).then(()=>b(942094)))}];
1
+ module.exports=[446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},432201,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},933919,(a,b,c)=>{b.exports=a.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},761469,a=>{"use strict";var b=a.i(933919);let c=globalThis.prisma??new b.PrismaClient({log:[]}),d=!1;async function e(){return d||(await c.$connect(),await c.$queryRaw`PRAGMA journal_mode=WAL`,await c.$queryRaw`PRAGMA busy_timeout=5000`,d=!0),c}async function f(){try{await c.$disconnect()}catch{}d=!1,await e()}process.on("SIGTERM",()=>{c.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{c.$disconnect().catch(()=>{})}),a.s(["db",0,c,"resetDbConnection",0,f])},26683,a=>{"use strict";function b(a,b,c,d){let e=new Date().toISOString(),f=`[${e}] ${a.toUpperCase()} [${b}] ${c}`;return d&&Object.keys(d).length>0?`${f} ${JSON.stringify(d)}`:f}a.s(["logger",0,{create:function(a){return{info(c,d){console.log(b("info",a,c,d))},warn(c,d){console.warn(b("warn",a,c,d))},error(c,d,e){console.error(b("error",a,c,d instanceof Error?{...e,error:d.message,stack:d.stack}:{...e,error:String(d)}))}}},info(a,c){console.log(b("info","app",a,c))},warn(a,c){console.warn(b("warn","app",a,c))},error(a,c,d){console.error(b("error","app",a,c instanceof Error?{...d,error:c.message,stack:c.stack}:{...d,error:String(c)}))}}])},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}function g(){return(0,c.join)(f(),"storage")}function h(){return(0,c.join)(f(),"storage-location")}function i(){try{let a=(0,e.readFileSync)(h(),"utf-8").trim();return a.length>0?a:null}catch{return null}}a.s(["getBackupsDir",0,function(){let a=(0,c.join)(f(),"backups");return(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0}),a},"getDefaultStorageDir",0,g,"getExtensionsDir",0,function(){let a=(0,c.join)(f(),"extensions");return(0,e.existsSync)(a)||(0,e.mkdirSync)(a,{recursive:!0}),a},"getStorageDir",0,function(){let a=process.env.TOWER_STORAGE_DIR||i(),b=a&&a.length>0?a:g();return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0}),b},"getTowerDir",0,f,"readStoragePointer",0,i,"writeStoragePointer",0,function(a){let b=h();null===a?(0,e.rmSync)(b,{force:!0}):(0,e.writeFileSync)(b,a,"utf-8")}])},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},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"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},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"))},4634,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(26683),f=a.i(630048);let g=["onboarding.completed","onboarding.lastStep","onboarding.username"];async function h(){let a=await c.db.systemConfig.findMany({where:{key:{in:[...g]}}}),b={};for(let c of a)try{b[c.key]=JSON.parse(c.value)}catch{b[c.key]=null}let d=!0===b["onboarding.completed"],e=b["onboarding.lastStep"],f=b["onboarding.username"];return{isFirstRun:!d,isCompleted:d,lastStep:"number"==typeof e?e:0,username:"string"==typeof f&&f.length>0?f:null}}async function i(a){await c.db.systemConfig.upsert({where:{key:"onboarding.lastStep"},create:{key:"onboarding.lastStep",value:JSON.stringify(a)},update:{value:JSON.stringify(a)}}),(0,d.revalidatePath)("/","layout")}async function j(a,b=4){if(await c.db.systemConfig.upsert({where:{key:"onboarding.completed"},create:{key:"onboarding.completed",value:"true"},update:{value:"true"}}),await c.db.systemConfig.upsert({where:{key:"onboarding.lastStep"},create:{key:"onboarding.lastStep",value:String(b)},update:{value:String(b)}}),void 0!==a){let b=a.trim().slice(0,64).replace(/[\r\n]/g," ");b.length>0&&await c.db.systemConfig.upsert({where:{key:"onboarding.username"},create:{key:"onboarding.username",value:JSON.stringify(b)},update:{value:JSON.stringify(b)}})}(0,d.revalidatePath)("/","layout")}async function k(a,b){await c.db.systemConfig.upsert({where:{key:"onboarding.extensions.requested"},create:{key:"onboarding.extensions.requested",value:JSON.stringify(a)},update:{value:JSON.stringify(a)}}),await c.db.systemConfig.upsert({where:{key:"onboarding.extensions.completed"},create:{key:"onboarding.extensions.completed",value:JSON.stringify(b)},update:{value:JSON.stringify(b)}}),(0,d.revalidatePath)("/","layout")}async function l(b){try{e.logger.create("task-completion").info("Task completion event dispatched",{taskId:b.taskId,taskTitle:b.taskTitle,status:b.status,executionId:b.executionId});let{broadcastNotification:c}=await a.A(904454);c({...b,type:"completion"})}catch{}}(0,f.ensureServerEntryExports)([h,i,j,k,l]),(0,b.registerServerReference)(h,"007a331edb75d8bbd8ca63d9d1334025cb700844e2",null),(0,b.registerServerReference)(i,"40ce398eab6a20d81c2a81420451a8262f4ed9c842",null),(0,b.registerServerReference)(j,"60dba40ec9ed7b9af7e6b9cf32e39d2eeb7348d1ec",null),(0,b.registerServerReference)(k,"60b6b1b76d50c62a4b60a7aa67fd07fb03e7c4be9f",null),(0,b.registerServerReference)(l,"406903301e2570233d02d1b124044ea8abdc70a5a8",null),a.s(["completeOnboarding",0,j,"dispatchTaskCompletionEvent",0,l,"getOnboardingStatus",0,h,"setOnboardingExtensions",0,k,"setOnboardingProgress",0,i])},589578,a=>{a.v({className:"geist_a71539c9-module__T19VSG__className",variable:"geist_a71539c9-module__T19VSG__variable"})},435214,a=>{a.v({className:"geist_mono_8d43a2aa-module__8Li5zG__className",variable:"geist_mono_8d43a2aa-module__8Li5zG__variable"})},655209,a=>{"use strict";a.s(["Tooltip",()=>c,"TooltipContent",()=>d,"TooltipProvider",()=>e,"TooltipTrigger",()=>f]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Tooltip() from the server but Tooltip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","Tooltip"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipContent() from the server but TooltipContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipProvider() from the server but TooltipProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipProvider"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipTrigger() from the server but TooltipTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx <module evaluation>","TooltipTrigger")},480581,a=>{"use strict";a.s(["Tooltip",()=>c,"TooltipContent",()=>d,"TooltipProvider",()=>e,"TooltipTrigger",()=>f]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Tooltip() from the server but Tooltip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","Tooltip"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipContent() from the server but TooltipContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipProvider() from the server but TooltipProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipProvider"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call TooltipTrigger() from the server but TooltipTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/tooltip.tsx","TooltipTrigger")},570588,a=>{"use strict";a.i(655209);var b=a.i(480581);a.n(b)},58951,a=>{"use strict";a.s(["LayoutClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call LayoutClient() from the server but LayoutClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/layout/layout-client.tsx <module evaluation>","LayoutClient")},890170,a=>{"use strict";a.s(["LayoutClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call LayoutClient() from the server but LayoutClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/layout/layout-client.tsx","LayoutClient")},910515,a=>{"use strict";a.i(58951);var b=a.i(890170);a.n(b)},878776,a=>{"use strict";a.s(["I18nProvider",()=>c,"useI18n",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call I18nProvider() from the server but I18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx <module evaluation>","I18nProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useI18n() from the server but useI18n is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx <module evaluation>","useI18n")},604483,a=>{"use strict";a.s(["I18nProvider",()=>c,"useI18n",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call I18nProvider() from the server but I18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx","I18nProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useI18n() from the server but useI18n is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/i18n.tsx","useI18n")},796661,a=>{"use strict";a.i(878776);var b=a.i(604483);a.n(b)},314493,a=>{"use strict";a.s(["ThemeProvider",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/providers/theme-provider.tsx <module evaluation>","ThemeProvider")},718127,a=>{"use strict";a.s(["ThemeProvider",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/providers/theme-provider.tsx","ThemeProvider")},538939,a=>{"use strict";a.i(314493);var b=a.i(718127);a.n(b)},336511,a=>{"use strict";a.s(["ExtensionContext",()=>c,"ExtensionProvider",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionContext() from the server but ExtensionContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx <module evaluation>","ExtensionContext"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionProvider() from the server but ExtensionProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx <module evaluation>","ExtensionProvider")},948109,a=>{"use strict";a.s(["ExtensionContext",()=>c,"ExtensionProvider",()=>d]);var b=a.i(797225);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionContext() from the server but ExtensionContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx","ExtensionContext"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call ExtensionProvider() from the server but ExtensionProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/lib/extensions/context.tsx","ExtensionProvider")},350569,a=>{"use strict";a.i(336511);var b=a.i(948109);a.n(b)},396988,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sonner.tsx <module evaluation>","Toaster")},324257,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sonner.tsx","Toaster")},767807,a=>{"use strict";a.i(396988);var b=a.i(324257);a.n(b)},827572,a=>{"use strict";var b=a.i(203469),c=a.i(589578);let d={className:c.default.className,style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"}};null!=c.default.variable&&(d.variable=c.default.variable);var e=a.i(435214);let f={className:e.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=e.default.variable&&(f.variable=e.default.variable);var g=a.i(570588),h=a.i(910515),i=a.i(796661),j=a.i(538939),k=a.i(350569),l=a.i(767807),m=a.i(761469),n=a.i(4634),o=a.i(563736);async function p({children:a}){let[c,e,q]=await Promise.all([m.db.workspace.findMany({orderBy:[{order:"asc"},{updatedAt:"desc"}],select:{id:!0,name:!0,description:!0,updatedAt:!0}}),(0,n.getOnboardingStatus)(),(0,o.listAllExtensionStatus)()]);return(0,b.jsxs)("html",{lang:"zh-CN",suppressHydrationWarning:!0,children:[(0,b.jsxs)("head",{children:[(0,b.jsx)("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),(0,b.jsx)("link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),(0,b.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&family=JetBrains+Mono:wght@400;500;600&display=swap",rel:"stylesheet"})]}),(0,b.jsx)("body",{className:`${d.variable} ${f.variable} antialiased`,children:(0,b.jsx)(j.ThemeProvider,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,b.jsx)(g.TooltipProvider,{children:(0,b.jsx)(i.I18nProvider,{children:(0,b.jsxs)(k.ExtensionProvider,{initialStatus:q,children:[(0,b.jsx)(h.LayoutClient,{workspaces:c,isFirstRun:e.isFirstRun,username:e.username,children:a}),(0,b.jsx)(l.Toaster,{richColors:!0,position:"top-right"})]})})})})})]})}a.s(["default",0,p,"dynamic",0,"force-dynamic","metadata",0,{title:"AI Task Platform - Tower",description:"AI task orchestration and multi-project management platform"},"runtime",0,"nodejs"],827572)},650645,a=>{a.n(a.i(827572))},904454,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__11zjs~k._.js","server/chunks/ssr/src_lib_0sms4xl._.js"].map(b=>a.l(b))).then(()=>b(640545)))},640417,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_@vscode_ripgrep_0m7itqb._.js"].map(b=>a.l(b))).then(()=>b(942094)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0ty1ao1._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0f~m-8x._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},786304,a=>{"use strict";var b=a.i(475295),c=a.i(213200),d=a.i(142261),e=a.i(368114);let f=(0,d.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:d="default",render:g,...h}){var i;return i={defaultTagName:"span",props:(0,b.mergeProps)({className:(0,e.cn)(f({variant:d}),a)},h),render:g,state:{slot:"badge",variant:d}},(0,c.useRenderElement)(i.defaultTagName??"div",i,i)}],786304)},513835,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40a3c5f8cf9a7905fb65ed1bb0e2a62bca9a1aade4",b.callServer,void 0,b.findSourceMapURL,"getConfigValues");a.s(["getConfigValues",0,c])},269280,a=>{"use strict";let b=(0,a.i(711796).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],269280)},521007,a=>{"use strict";a.s(["BOARD_COLUMNS",0,[{id:"TODO",label:"To Do",color:"bg-slate-400"},{id:"IN_PROGRESS",label:"In Progress",color:"bg-amber-400"},{id:"IN_REVIEW",label:"In Review",color:"bg-sky-400"},{id:"DONE",label:"Done",color:"bg-emerald-400"},{id:"CANCELLED",label:"Cancelled",color:"bg-rose-400"}],"NOTE_CATEGORIES_PRESET",0,["账号","环境","需求","备忘"],"PRIORITY_CONFIG",0,{LOW:{label:"低",color:"bg-slate-500/20 text-slate-300 border border-slate-500/30"},MEDIUM:{label:"中",color:"bg-amber-500/20 text-amber-300 border border-amber-500/30"},HIGH:{label:"高",color:"bg-orange-500/20 text-orange-300 border border-orange-500/30"},CRITICAL:{label:"紧急",color:"bg-rose-500/20 text-rose-300 border border-rose-500/30"}},"TOWER_LABEL_NAME",0,"Tower"])},993293,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40124fd369430ba78afb522a65947fbf399987a187",b.callServer,void 0,b.findSourceMapURL,"openInTerminal");a.s(["openInTerminal",0,c])},648512,a=>{"use strict";let b=(0,a.i(711796).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",0,b],648512)},551578,a=>{"use strict";var b=a.i(728778);let c=(0,a.i(711796).default)("milestone",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M18.172 6a2 2 0 0 1 1.414.586l2.06 2.06a1.207 1.207 0 0 1 0 1.708l-2.06 2.06a2 2 0 0 1-1.414.586H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1z",key:"8gz4t4"}]]);var d=a.i(951192);let e=["bg-sky-500/20 text-sky-300 border border-sky-500/30","bg-amber-500/20 text-amber-300 border border-amber-500/30","bg-violet-500/20 text-violet-300 border border-violet-500/30","bg-emerald-500/20 text-emerald-300 border border-emerald-500/30","bg-rose-500/20 text-rose-300 border border-rose-500/30","bg-cyan-500/20 text-cyan-300 border border-cyan-500/30","bg-indigo-500/20 text-indigo-300 border border-indigo-500/30"];function f(a){return e[function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;return b}(a)%e.length]}let g={PLANNED:"bg-slate-500/20 text-slate-300 border border-slate-500/30",ACTIVE:"bg-emerald-500/20 text-emerald-300 border border-emerald-500/30",RELEASED:"bg-zinc-500/20 text-zinc-400 border border-zinc-500/30"};a.s(["TaskVersionTag",0,function({number:a,name:d,showName:e=!1,className:f="",title:g}){return(0,b.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-md border border-border bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground ${f}`,title:g??(d?`${a} \xb7 ${d}`:a),children:[(0,b.jsx)(c,{className:"h-2.5 w-2.5 shrink-0"}),(0,b.jsx)("span",{className:"font-mono",children:a}),e&&d?(0,b.jsx)("span",{className:"max-w-[140px] truncate",children:d}):null]})},"VersionStatusBadge",0,function({status:a}){let{t:c}=(0,d.useI18n)();return(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${g[a]}`,children:c(`version.status.${a}`)})},"VersionTypeBadge",0,function({name:a}){let{t:c}=(0,d.useI18n)();return a?(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${f(a)}`,children:a}):(0,b.jsx)("span",{className:"inline-flex items-center rounded-full border border-border bg-muted/40 px-2 py-0.5 text-xs font-medium text-muted-foreground",children:c("version.type.uncategorized")})},"typeBadgeColor",0,f],551578)},625892,939859,a=>{"use strict";var b=a.i(711796);let c=(0,b.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);a.s(["FolderSearch",0,c],625892);let d=(0,b.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["Code",0,d],939859)},549478,519498,165614,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40b5c009cb993c580d8b9f006f6e08f0f9cab036e5",b.callServer,void 0,b.findSourceMapURL,"openInFileManager");a.s(["openInFileManager",0,c],549478);let d=(0,b.createServerReference)("4076df959ec66a71d59f36063d120f1014f472b192",b.callServer,void 0,b.findSourceMapURL,"openInEditor");a.s(["openInEditor",0,d],519498);let e=(0,a.i(711796).default)("circle-play",[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["PlayCircle",0,e],165614)},811344,a=>{"use strict";var b=a.i(622945);a.s(["AlertTriangle",()=>b.default])},708305,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40b7501e08e21609968acead49b3d4b4c1b9bd1b09",b.callServer,void 0,b.findSourceMapURL,"getPrompts");a.s(["getPrompts",0,c])},394869,a=>{"use strict";let b=(0,a.i(711796).default)("git-compare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);a.s(["GitCompare",0,b],394869)},207339,a=>{"use strict";let b=(0,a.i(711796).default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);a.s(["GitCommitHorizontal",0,b],207339)},913284,468862,a=>{"use strict";var b=a.i(884664);a.s(["CheckCircle2",()=>b.default],913284);let c=(0,a.i(711796).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,c],468862)},963326,a=>{"use strict";let b=(0,a.i(711796).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",0,b],963326)},757942,950314,a=>{"use strict";var b=a.i(90393);a.s([],757942),a.s(["Streamdown",()=>b.C],950314)},916469,700789,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40616596fa4f2dfc94d91eca51a36d057b47216eb3",b.callServer,void 0,b.findSourceMapURL,"createNote");a.s(["createNote",0,c],916469);let d=(0,b.createServerReference)("4068cccd8956a230bd6ff1e574451adfa98168dfe5",b.callServer,void 0,b.findSourceMapURL,"deleteNote");a.s(["deleteNote",0,d],700789)},695360,652469,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("403959cc58bc62dfaee7df0ba2f549fb24773266ef",b.callServer,void 0,b.findSourceMapURL,"stopPtyExecution");a.s(["stopPtyExecution",0,c],695360);let d=(0,b.createServerReference)("6059e11f9667a95e57c5fd53a5393e75aa67fefe22",b.callServer,void 0,b.findSourceMapURL,"resumePtyExecution");a.s(["resumePtyExecution",0,d],652469)},696736,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("7cbbe07076ec268119957e90049fcfabfcd584d569",b.callServer,void 0,b.findSourceMapURL,"startPtyExecution");a.s(["startPtyExecution",0,c])},574046,a=>{a.v(b=>Promise.all(["server/chunks/ssr/04y0_streamdown_dist_highlighted-body-OFNGDK62_0dm8t_v.js"].map(b=>a.l(b))).then(()=>b(514138)))},170967,a=>{a.v(b=>Promise.all(["server/chunks/ssr/04y0_streamdown_dist_mermaid-GHXKKRXX_0oxtju0.js"].map(b=>a.l(b))).then(()=>b(729004)))}];
1
+ module.exports=[750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},786304,a=>{"use strict";var b=a.i(475295),c=a.i(213200),d=a.i(142261),e=a.i(368114);let f=(0,d.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:d="default",render:g,...h}){var i;return i={defaultTagName:"span",props:(0,b.mergeProps)({className:(0,e.cn)(f({variant:d}),a)},h),render:g,state:{slot:"badge",variant:d}},(0,c.useRenderElement)(i.defaultTagName??"div",i,i)}],786304)},472286,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40237e4dbff3868f964dd9913f9a4ca85f84822c10",b.callServer,void 0,b.findSourceMapURL,"getConfigValues");a.s(["getConfigValues",0,c])},269280,a=>{"use strict";let b=(0,a.i(711796).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],269280)},521007,a=>{"use strict";a.s(["BOARD_COLUMNS",0,[{id:"TODO",label:"To Do",color:"bg-slate-400"},{id:"IN_PROGRESS",label:"In Progress",color:"bg-amber-400"},{id:"IN_REVIEW",label:"In Review",color:"bg-sky-400"},{id:"DONE",label:"Done",color:"bg-emerald-400"},{id:"CANCELLED",label:"Cancelled",color:"bg-rose-400"}],"NOTE_CATEGORIES_PRESET",0,["账号","环境","需求","备忘"],"PRIORITY_CONFIG",0,{LOW:{label:"低",color:"bg-slate-500/20 text-slate-300 border border-slate-500/30"},MEDIUM:{label:"中",color:"bg-amber-500/20 text-amber-300 border border-amber-500/30"},HIGH:{label:"高",color:"bg-orange-500/20 text-orange-300 border border-orange-500/30"},CRITICAL:{label:"紧急",color:"bg-rose-500/20 text-rose-300 border border-rose-500/30"}},"TOWER_LABEL_NAME",0,"Tower"])},514528,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4084d56f97fc2d106951c08ef353d5dff8b6a7972e",b.callServer,void 0,b.findSourceMapURL,"openInTerminal");a.s(["openInTerminal",0,c])},648512,a=>{"use strict";let b=(0,a.i(711796).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",0,b],648512)},551578,a=>{"use strict";var b=a.i(728778);let c=(0,a.i(711796).default)("milestone",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M18.172 6a2 2 0 0 1 1.414.586l2.06 2.06a1.207 1.207 0 0 1 0 1.708l-2.06 2.06a2 2 0 0 1-1.414.586H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1z",key:"8gz4t4"}]]);var d=a.i(951192);let e=["bg-sky-500/20 text-sky-300 border border-sky-500/30","bg-amber-500/20 text-amber-300 border border-amber-500/30","bg-violet-500/20 text-violet-300 border border-violet-500/30","bg-emerald-500/20 text-emerald-300 border border-emerald-500/30","bg-rose-500/20 text-rose-300 border border-rose-500/30","bg-cyan-500/20 text-cyan-300 border border-cyan-500/30","bg-indigo-500/20 text-indigo-300 border border-indigo-500/30"];function f(a){return e[function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;return b}(a)%e.length]}let g={PLANNED:"bg-slate-500/20 text-slate-300 border border-slate-500/30",ACTIVE:"bg-emerald-500/20 text-emerald-300 border border-emerald-500/30",RELEASED:"bg-zinc-500/20 text-zinc-400 border border-zinc-500/30"};a.s(["TaskVersionTag",0,function({number:a,name:d,showName:e=!1,className:f="",title:g}){return(0,b.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-md border border-border bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground ${f}`,title:g??(d?`${a} \xb7 ${d}`:a),children:[(0,b.jsx)(c,{className:"h-2.5 w-2.5 shrink-0"}),(0,b.jsx)("span",{className:"font-mono",children:a}),e&&d?(0,b.jsx)("span",{className:"max-w-[140px] truncate",children:d}):null]})},"VersionStatusBadge",0,function({status:a}){let{t:c}=(0,d.useI18n)();return(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${g[a]}`,children:c(`version.status.${a}`)})},"VersionTypeBadge",0,function({name:a}){let{t:c}=(0,d.useI18n)();return a?(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${f(a)}`,children:a}):(0,b.jsx)("span",{className:"inline-flex items-center rounded-full border border-border bg-muted/40 px-2 py-0.5 text-xs font-medium text-muted-foreground",children:c("version.type.uncategorized")})},"typeBadgeColor",0,f],551578)},625892,939859,a=>{"use strict";var b=a.i(711796);let c=(0,b.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);a.s(["FolderSearch",0,c],625892);let d=(0,b.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["Code",0,d],939859)},458137,119573,165614,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40ebc54780e47a891ec14da48ad2e8c835e7e10e1e",b.callServer,void 0,b.findSourceMapURL,"openInFileManager");a.s(["openInFileManager",0,c],458137);let d=(0,b.createServerReference)("40cae26d8c2823110d8bb96e1ee8d8db922742701f",b.callServer,void 0,b.findSourceMapURL,"openInEditor");a.s(["openInEditor",0,d],119573);let e=(0,a.i(711796).default)("circle-play",[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["PlayCircle",0,e],165614)},811344,a=>{"use strict";var b=a.i(622945);a.s(["AlertTriangle",()=>b.default])},67394,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("406b71dd2c3138ad65f35a55c0bdd0cf15abb77594",b.callServer,void 0,b.findSourceMapURL,"getPrompts");a.s(["getPrompts",0,c])},394869,a=>{"use strict";let b=(0,a.i(711796).default)("git-compare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);a.s(["GitCompare",0,b],394869)},207339,a=>{"use strict";let b=(0,a.i(711796).default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);a.s(["GitCommitHorizontal",0,b],207339)},913284,468862,a=>{"use strict";var b=a.i(884664);a.s(["CheckCircle2",()=>b.default],913284);let c=(0,a.i(711796).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,c],468862)},963326,a=>{"use strict";let b=(0,a.i(711796).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",0,b],963326)},757942,950314,a=>{"use strict";var b=a.i(90393);a.s([],757942),a.s(["Streamdown",()=>b.C],950314)},376215,219560,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40ba70d4312f1b44ea1844a2b5345a0743edf01551",b.callServer,void 0,b.findSourceMapURL,"createNote");a.s(["createNote",0,c],376215);let d=(0,b.createServerReference)("40cc0a2ca8eb3d4b54ea1800371feb54a68b9ef783",b.callServer,void 0,b.findSourceMapURL,"deleteNote");a.s(["deleteNote",0,d],219560)},321095,715735,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("403130c5f9a85c07f32a74c15581cea6163afdffde",b.callServer,void 0,b.findSourceMapURL,"stopPtyExecution");a.s(["stopPtyExecution",0,c],321095);let d=(0,b.createServerReference)("60f7ac8fbe64a2669c69afd2f479eb53700b142b3c",b.callServer,void 0,b.findSourceMapURL,"resumePtyExecution");a.s(["resumePtyExecution",0,d],715735)},241280,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("7c69cc47130a3e49b112edbffb1ef56b7f5eace9b4",b.callServer,void 0,b.findSourceMapURL,"startPtyExecution");a.s(["startPtyExecution",0,c])},574046,a=>{a.v(b=>Promise.all(["server/chunks/ssr/04y0_streamdown_dist_highlighted-body-OFNGDK62_0dm8t_v.js"].map(b=>a.l(b))).then(()=>b(514138)))},170967,a=>{a.v(b=>Promise.all(["server/chunks/ssr/04y0_streamdown_dist_mermaid-GHXKKRXX_0oxtju0.js"].map(b=>a.l(b))).then(()=>b(729004)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0jti4~k._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0i7es1w._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[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,k=await h.db.task.findUniqueOrThrow({where:{id:a.taskId},select:{previewCommandOverride:!0,previewPortOverride:!0,subPath:!0}}),m=await h.db.project.findUniqueOrThrow({where:{id:a.projectId},select:{localPath:!0,previewCommand:!0,previewPort:!0,previewPreset:!0,previewInstallCommand:!0}}),n=(j=(b={worktreePath:a.worktreePath,projectLocalPath:m.localPath,subPath:k.subPath}).worktreePath??b.projectLocalPath)?b.subPath?(0,e.join)(j,b.subPath):j:null,o=null,p=null;k.subPath&&n?p=(o=await (0,l.detectPreset)(n))?"subPath-detected":null:m.previewPreset&&(p=(o=i.PRESETS.find(a=>a.id===m.previewPreset)??null)?"project":null);let q=o?.command??null,r=o?.port??null,s=(c={taskOverride:k.previewCommandOverride,projectDefault:m.previewCommand,presetCommand:q}).taskOverride??c.projectDefault??c.presetCommand??"",t=(d={taskOverride:k.previewPortOverride,projectDefault:m.previewPort,presetPort:r}).taskOverride??d.projectDefault??d.presetPort??0,u=null!==(f={taskOverride:k.previewCommandOverride,projectDefault:m.previewCommand,presetCommand:q}).taskOverride?"task":null!==f.projectDefault?"project":null!==f.presetCommand?"preset":null,v=null!==(g={taskOverride:k.previewPortOverride,projectDefault:m.previewPort,presetPort:r}).taskOverride?"task":null!==g.projectDefault?"project":null!==g.presetPort?"preset":null,w=m.previewInstallCommand??o?.installCommand??null;return{task:k,project:m,preset:o,presetSource:p,cwd:n,command:s,port:t,commandSource:u,portSource:v,projectDefaultCommand:m.previewCommand,projectDefaultPort:m.previewPort,presetCommand:q,presetPort:r,installCommand:w}}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])}}async function A(b){if(!b||!(0,e.isAbsolute)(b))throw Error("openInFileManager requires an absolute path");let{buildFileManagerCommand:c}=await a.A(173855),{command:f,args:g}=c(process.platform,b);(0,d.execFileSync)(f,g)}async function B(b){if(!b||!(0,e.isAbsolute)(b))throw Error("openInEditor requires an absolute path");let{buildEditorCommand:c,buildEditorUrlOpenCommand:f}=await a.A(173855),{resolveCommandPath:g,resolveSpawnTarget:h,detectEditors:i}=await a.A(889618),j=await (0,m.readConfigValue)("editor.command","");if(!j){let a=(await i()).filter(a=>a.installed);if(0===a.length)throw Error("No editor configured and none detected on PATH");j=a[0].command}let k=c(process.platform,j,b);if(await g(k.command)){let a=await h(k.command,k.args);(0,d.execFileSync)(a.command,a.args);return}let l=f(process.platform,j,b);(0,d.execFileSync)(l.command,l.args)}(0,n.ensureServerEntryExports)([r,s,t,u,v,w,x,z,A,B]),(0,b.registerServerReference)(r,"406ce6695c1587dea8c0c7330b127d0806d3a4e722",null),(0,b.registerServerReference)(s,"403fa6e201d29a33765fe3e30f48695b0ca68ff4ea",null),(0,b.registerServerReference)(t,"402c174ad4d8334a5f1603ba7107ec5e0519196fbb",null),(0,b.registerServerReference)(u,"40f9ff92eca568018f8f1c1fedd1397027a93386a5",null),(0,b.registerServerReference)(v,"400776ee5a485ed0118d186f5d4777b842412b1b5e",null),(0,b.registerServerReference)(w,"40aeee93dc5828c5a50f49eeb97b8679436e0539fa",null),(0,b.registerServerReference)(x,"40e54099a01a4ff715af089a25de78b1c70359927c",null),(0,b.registerServerReference)(z,"40124fd369430ba78afb522a65947fbf399987a187",null),(0,b.registerServerReference)(A,"40b5c009cb993c580d8b9f006f6e08f0f9cab036e5",null),(0,b.registerServerReference)(B,"4076df959ec66a71d59f36063d120f1014f472b192",null),a.s(["getPreviewState",0,r,"installPreviewDeps",0,u,"openInEditor",0,B,"openInFileManager",0,A,"openInTerminal",0,z,"redetectPreset",0,v,"setProjectDefaults",0,w,"setProjectPreset",0,x,"startPreview",0,s,"stopPreview",0,t],536960)}];
1
+ module.exports=[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,k=await h.db.task.findUniqueOrThrow({where:{id:a.taskId},select:{previewCommandOverride:!0,previewPortOverride:!0,subPath:!0}}),m=await h.db.project.findUniqueOrThrow({where:{id:a.projectId},select:{localPath:!0,previewCommand:!0,previewPort:!0,previewPreset:!0,previewInstallCommand:!0}}),n=(j=(b={worktreePath:a.worktreePath,projectLocalPath:m.localPath,subPath:k.subPath}).worktreePath??b.projectLocalPath)?b.subPath?(0,e.join)(j,b.subPath):j:null,o=null,p=null;k.subPath&&n?p=(o=await (0,l.detectPreset)(n))?"subPath-detected":null:m.previewPreset&&(p=(o=i.PRESETS.find(a=>a.id===m.previewPreset)??null)?"project":null);let q=o?.command??null,r=o?.port??null,s=(c={taskOverride:k.previewCommandOverride,projectDefault:m.previewCommand,presetCommand:q}).taskOverride??c.projectDefault??c.presetCommand??"",t=(d={taskOverride:k.previewPortOverride,projectDefault:m.previewPort,presetPort:r}).taskOverride??d.projectDefault??d.presetPort??0,u=null!==(f={taskOverride:k.previewCommandOverride,projectDefault:m.previewCommand,presetCommand:q}).taskOverride?"task":null!==f.projectDefault?"project":null!==f.presetCommand?"preset":null,v=null!==(g={taskOverride:k.previewPortOverride,projectDefault:m.previewPort,presetPort:r}).taskOverride?"task":null!==g.projectDefault?"project":null!==g.presetPort?"preset":null,w=m.previewInstallCommand??o?.installCommand??null;return{task:k,project:m,preset:o,presetSource:p,cwd:n,command:s,port:t,commandSource:u,portSource:v,projectDefaultCommand:m.previewCommand,projectDefaultPort:m.previewPort,presetCommand:q,presetPort:r,installCommand:w}}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])}}async function A(b){if(!b||!(0,e.isAbsolute)(b))throw Error("openInFileManager requires an absolute path");let{buildFileManagerCommand:c}=await a.A(173855),{command:f,args:g}=c(process.platform,b);(0,d.execFileSync)(f,g)}async function B(b){if(!b||!(0,e.isAbsolute)(b))throw Error("openInEditor requires an absolute path");let{buildEditorCommand:c,buildEditorUrlOpenCommand:f}=await a.A(173855),{resolveCommandPath:g,resolveSpawnTarget:h,detectEditors:i}=await a.A(889618),j=await (0,m.readConfigValue)("editor.command","");if(!j){let a=(await i()).filter(a=>a.installed);if(0===a.length)throw Error("No editor configured and none detected on PATH");j=a[0].command}let k=c(process.platform,j,b);if(await g(k.command)){let a=await h(k.command,k.args);(0,d.execFileSync)(a.command,a.args);return}let l=f(process.platform,j,b);(0,d.execFileSync)(l.command,l.args)}(0,n.ensureServerEntryExports)([r,s,t,u,v,w,x,z,A,B]),(0,b.registerServerReference)(r,"4030a6c50170afcb16d1f1d33cf7beaf07b36fcba3",null),(0,b.registerServerReference)(s,"40f8a0dd158d948fa9468c1ea53ecb6c4f7966948e",null),(0,b.registerServerReference)(t,"40a6ec4785f2b7d4384e120b80c7a7bc403909ee65",null),(0,b.registerServerReference)(u,"40252befce2af37acf02e1196c2dae0770e8b68faf",null),(0,b.registerServerReference)(v,"402a934cde404054c9370db82c15a94ed5e115bd46",null),(0,b.registerServerReference)(w,"40fbcc16d282b9a424c124cee75ca87ebc3415b0bb",null),(0,b.registerServerReference)(x,"40580f9cb0488615be4c1b22530cfa063f6cbe9a86",null),(0,b.registerServerReference)(z,"4084d56f97fc2d106951c08ef353d5dff8b6a7972e",null),(0,b.registerServerReference)(A,"40ebc54780e47a891ec14da48ad2e8c835e7e10e1e",null),(0,b.registerServerReference)(B,"40cae26d8c2823110d8bb96e1ee8d8db922742701f",null),a.s(["getPreviewState",0,r,"installPreviewDeps",0,u,"openInEditor",0,B,"openInFileManager",0,A,"openInTerminal",0,z,"redetectPreset",0,v,"setProjectDefaults",0,w,"setProjectPreset",0,x,"startPreview",0,s,"stopPreview",0,t],536960)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0jymb~t._.js.map