tower-studio 0.2.45 → 0.2.46

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 (494) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +8 -0
  6. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +3 -3
  17. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +129 -81
  18. package/.next/standalone/.next/server/app/_not-found/page.js +7 -8
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/api/adapters/test/route.js +2 -2
  22. package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/browse-fs/route.js +1 -1
  24. package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/git/route.js +1 -1
  27. package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +2 -4
  31. package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +2 -2
  33. package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/internal/assistant/route.js +5 -4
  35. package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +3 -5
  38. package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/internal/harness/ask/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/internal/harness/notify/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/internal/harness/pending/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/internal/harness/reply/route.js +4 -4
  44. package/.next/standalone/.next/server/app/api/internal/harness/reply/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/internal/hooks/session/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js +1 -1
  48. package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js +1 -1
  50. package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/internal/monaco/[...path]/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js +1 -1
  53. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js +1 -1
  55. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/paste-image/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route.js +4 -4
  58. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +4 -4
  60. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route.js +4 -4
  62. package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js +1 -1
  64. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js +1 -1
  66. package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js +5 -3
  68. package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/harness/page/react-loadable-manifest.json +3 -3
  70. package/.next/standalone/.next/server/app/harness/page/server-reference-manifest.json +152 -104
  71. package/.next/standalone/.next/server/app/harness/page.js +7 -8
  72. package/.next/standalone/.next/server/app/harness/page.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/harness/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +3 -2
  75. package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +246 -162
  76. package/.next/standalone/.next/server/app/missions/page.js +10 -10
  77. package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +3 -3
  80. package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +129 -81
  81. package/.next/standalone/.next/server/app/onboarding/page.js +7 -8
  82. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +3 -3
  85. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +129 -81
  86. package/.next/standalone/.next/server/app/page.js +7 -8
  87. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +3 -3
  90. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +225 -141
  91. package/.next/standalone/.next/server/app/settings/page.js +9 -11
  92. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +3 -3
  95. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +258 -222
  96. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +8 -9
  97. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +3 -3
  100. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +231 -195
  101. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +8 -9
  102. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/app-paths-manifest.json +3 -0
  105. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/build-manifest.json +18 -0
  106. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/next-font-manifest.json +11 -0
  107. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/react-loadable-manifest.json +18 -0
  108. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/server-reference-manifest.json +401 -0
  109. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page.js +24 -0
  110. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page.js.nft.json +1 -0
  111. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page_client-reference-manifest.js +3 -0
  112. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +3 -3
  113. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +216 -180
  114. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +8 -9
  115. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +3 -3
  118. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +243 -195
  119. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +9 -11
  120. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +3 -3
  123. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +129 -81
  124. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +8 -9
  125. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +3 -3
  128. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +215 -167
  129. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +8 -9
  130. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +4 -4
  133. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +269 -221
  134. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +10 -12
  135. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +3 -3
  138. package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +159 -123
  139. package/.next/standalone/.next/server/app/workspaces/page.js +7 -8
  140. package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  143. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_09ikw5j.js +5 -0
  144. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0eh8dj_.js +9 -5
  145. package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0gr2wxq.js +1 -1
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-1~xqo._.js +3 -0
  147. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.3n3t.._.js +3 -0
  148. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.wsvr6._.js +4 -0
  149. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0y3adwk._.js → [root-of-the-server]__0.yf1mx._.js} +2 -2
  150. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0o6i1wy._.js → [root-of-the-server]__00xe-t8._.js} +2 -2
  151. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0vh3112._.js → [root-of-the-server]__02yvm55._.js} +2 -2
  152. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__09arklv._.js → [root-of-the-server]__04-ty51._.js} +2 -2
  153. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0v98a~t._.js → [root-of-the-server]__065hi6e._.js} +2 -2
  154. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0k9rz_z._.js → [root-of-the-server]__06iuq17._.js} +2 -2
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06x1zwj._.js +1 -1
  156. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06~wmlx._.js +3 -0
  157. package/.next/standalone/.next/server/chunks/[root-of-the-server]__092475e._.js +3 -0
  158. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0atap--._.js +3 -0
  159. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c3je91._.js +3 -0
  160. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dz.knv._.js +3 -0
  161. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ehwsa1._.js +4 -0
  162. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0esywxf._.js +3 -0
  163. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fd9z.r._.js +30 -0
  164. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gcg7i.._.js +3 -0
  165. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0iyp~.k._.js +2 -2
  166. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__07xsu6m._.js → [root-of-the-server]__0j7565a._.js} +2 -2
  167. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kkrbn-._.js +4 -0
  168. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0m8t3vi._.js +3 -0
  169. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nv83.p._.js +4 -0
  170. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0squ613._.js +3 -0
  171. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u8tl88._.js +2 -2
  172. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wugb-9._.js +3 -0
  173. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yeg1kp._.js +4 -0
  174. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zchqv1._.js +43 -0
  175. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0_~s0z4._.js → [root-of-the-server]__0zcy11y._.js} +2 -2
  176. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~1-i5h._.js +3 -0
  177. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~ju4-d._.js +1 -1
  178. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10qclz-._.js +3 -0
  179. package/.next/standalone/.next/server/chunks/_02hac5p._.js +25 -2
  180. package/.next/standalone/.next/server/chunks/_0_w835g._.js +4 -0
  181. package/.next/standalone/.next/server/chunks/_0je3dz2._.js +25 -2
  182. package/.next/standalone/.next/server/chunks/_0tidm8l._.js +25 -2
  183. package/.next/standalone/.next/server/chunks/_0zok2an._.js +25 -2
  184. package/.next/standalone/.next/server/chunks/src_05balzk._.js +1 -1
  185. package/.next/standalone/.next/server/chunks/src_0aygchu._.js +1 -1
  186. package/.next/standalone/.next/server/chunks/src_0gif-f5._.js +1 -1
  187. package/.next/standalone/.next/server/chunks/src_0pg9w-x._.js +3 -0
  188. package/.next/standalone/.next/server/chunks/src_0vp6.co._.js +1 -1
  189. package/.next/standalone/.next/server/chunks/src_11k6i~l._.js +1 -1
  190. package/.next/standalone/.next/server/chunks/src_actions_agent-actions_ts_10q9r5b._.js +3 -3
  191. package/.next/standalone/.next/server/chunks/src_lib_0d~1~wz._.js +1 -1
  192. package/.next/standalone/.next/server/chunks/src_lib_0ylel_1._.js +1 -1
  193. package/.next/standalone/.next/server/chunks/src_lib_ai_0xx6y51._.js +1 -1
  194. package/.next/standalone/.next/server/chunks/src_lib_ai_providers_index_ts_0.y.3vp._.js +1 -1
  195. package/.next/standalone/.next/server/chunks/src_lib_config-defaults_ts_10ayktg._.js +1 -1
  196. package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
  197. package/.next/standalone/.next/server/chunks/ssr/0se9_next_dist_0i5qmqd._.js +1 -1
  198. package/.next/standalone/.next/server/chunks/ssr/0se9_next_dist_esm_build_templates_app-page_04~dhws.js +4 -0
  199. package/.next/standalone/.next/server/chunks/ssr/{0ws9_lucide-react_dist_esm_icons_0r~ty--._.js → 0ws9_lucide-react_dist_esm_icons_0gv_cwy._.js} +2 -2
  200. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-geq20._.js +3 -0
  201. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__051tpij._.js → [root-of-the-server]__0.0m12b._.js} +1 -1
  202. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__096w7g2._.js → [root-of-the-server]__00qzvly._.js} +3 -3
  203. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01bz3_g._.js +3 -0
  204. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02~hdzx._.js +3 -0
  205. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0lau3k_._.js → [root-of-the-server]__06sew6r._.js} +3 -3
  206. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dmjt7o._.js → [root-of-the-server]__07rk6ic._.js} +1 -1
  207. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__090y_.y._.js +3 -0
  208. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b.ej5q._.js +1 -1
  209. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0fl0l82._.js → [root-of-the-server]__0b6fbjv._.js} +1 -1
  210. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0tb.1li._.js → [root-of-the-server]__0b6hugs._.js} +3 -3
  211. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vi-5xg._.js → [root-of-the-server]__0br5e7w._.js} +3 -3
  212. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bx_h2u._.js +4 -0
  213. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dfqa5a._.js → [root-of-the-server]__0dhq_gl._.js} +1 -1
  214. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e79g0v._.js +3 -0
  215. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0g2wrd2._.js → [root-of-the-server]__0esg88l._.js} +1 -1
  216. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h_pt4a._.js +3 -0
  217. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ixgha6._.js → [root-of-the-server]__0hzwoy5._.js} +1 -1
  218. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0iaw1ms._.js +3 -0
  219. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0idkp76._.js +3 -0
  220. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0j4m.1s._.js +3 -0
  221. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jymb~t._.js +1 -1
  222. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kmonje._.js +3 -0
  223. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0i0k_zi._.js → [root-of-the-server]__0kqp70x._.js} +1 -1
  224. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l0~scn._.js +1 -1
  225. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lh3mlq._.js +3 -0
  226. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0~s8otw._.js → [root-of-the-server]__0m8m7vc._.js} +1 -1
  227. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0muf4wq._.js +49 -0
  228. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dv.-zu._.js → [root-of-the-server]__0n02kfa._.js} +1 -1
  229. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n3uc.v._.js +3 -0
  230. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0o5ohqy._.js +47 -0
  231. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ydiu_y._.js → [root-of-the-server]__0s_q09t._.js} +1 -1
  232. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s~4y3y._.js +1 -1
  233. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s~ak20._.js +3 -0
  234. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ta_mpj._.js +30 -0
  235. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0t_zq~v._.js → [root-of-the-server]__0trmndk._.js} +1 -1
  236. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__08etd~v._.js → [root-of-the-server]__0u3~-.g._.js} +1 -1
  237. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vyl8to._.js +3 -0
  238. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ws0_c1._.js +3 -0
  239. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0x7br99._.js +3 -0
  240. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xnuz05._.js +5 -0
  241. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zsnp~d._.js +5 -0
  242. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__06s-_gx._.js → [root-of-the-server]__0~edc3d._.js} +1 -1
  243. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~mhv4m._.js +3 -0
  244. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1013v_g._.js +47 -0
  245. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11fp64w._.js +1 -1
  246. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__123rmn-._.js +30 -0
  247. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0o9jkew._.js → [root-of-the-server]__12viys4._.js} +2 -2
  248. package/.next/standalone/.next/server/chunks/ssr/_0-5.hgb._.js +3 -0
  249. package/.next/standalone/.next/server/chunks/ssr/{_0dye20y._.js → _0-wp_zu._.js} +2 -2
  250. package/.next/standalone/.next/server/chunks/ssr/_0-~9em3._.js +1 -1
  251. package/.next/standalone/.next/server/chunks/ssr/_0..h3hk._.js +1 -1
  252. package/.next/standalone/.next/server/chunks/ssr/{_08bq4g8._.js → _00_h2nx._.js} +2 -2
  253. package/.next/standalone/.next/server/chunks/ssr/_02p-udo._.js +3 -0
  254. package/.next/standalone/.next/server/chunks/ssr/_05~lqg-._.js +4 -0
  255. package/.next/standalone/.next/server/chunks/ssr/_0771b4a._.js +47 -0
  256. package/.next/standalone/.next/server/chunks/ssr/{_078cdw~._.js → _0ak77.u._.js} +3 -3
  257. package/.next/standalone/.next/server/chunks/ssr/{_0ljrvyt._.js → _0ami9yt._.js} +2 -2
  258. package/.next/standalone/.next/server/chunks/ssr/{_12la163._.js → _0awn2mm._.js} +2 -2
  259. package/.next/standalone/.next/server/chunks/ssr/{_09rq08e._.js → _0b660g4._.js} +1 -1
  260. package/.next/standalone/.next/server/chunks/ssr/{_0~6pqk.._.js → _0czsddm._.js} +1 -1
  261. package/.next/standalone/.next/server/chunks/ssr/_0fmko25._.js +3 -0
  262. package/.next/standalone/.next/server/chunks/ssr/_0gomvsp._.js +3 -0
  263. package/.next/standalone/.next/server/chunks/ssr/_0g~p9_x._.js +3 -0
  264. package/.next/standalone/.next/server/chunks/ssr/_0hg~.4w._.js +6 -0
  265. package/.next/standalone/.next/server/chunks/ssr/_0hsuip_._.js +3 -0
  266. package/.next/standalone/.next/server/chunks/ssr/_0hx2o_8._.js +3 -0
  267. package/.next/standalone/.next/server/chunks/ssr/{_0xnn~jq._.js → _0j7m~u6._.js} +1 -1
  268. package/.next/standalone/.next/server/chunks/ssr/{_13_b8hh._.js → _0l6byg1._.js} +1 -1
  269. package/.next/standalone/.next/server/chunks/ssr/_0mmy~98._.js +3 -0
  270. package/.next/standalone/.next/server/chunks/ssr/_0nrxhfb._.js +47 -0
  271. package/.next/standalone/.next/server/chunks/ssr/_0o_c3b2._.js +3 -0
  272. package/.next/standalone/.next/server/chunks/ssr/_0os43sb._.js +1 -1
  273. package/.next/standalone/.next/server/chunks/ssr/{_0h0b46r._.js → _0p5ft59._.js} +1 -1
  274. package/.next/standalone/.next/server/chunks/ssr/_0q2pep_._.js +3 -0
  275. package/.next/standalone/.next/server/chunks/ssr/{_01fdzzv._.js → _0snv7nt._.js} +1 -1
  276. package/.next/standalone/.next/server/chunks/ssr/_0ty4xe6._.js +43 -0
  277. package/.next/standalone/.next/server/chunks/ssr/_0vkl7.h._.js +47 -0
  278. package/.next/standalone/.next/server/chunks/ssr/_0wbcp88._.js +1 -1
  279. package/.next/standalone/.next/server/chunks/ssr/_0x09t_o._.js +47 -0
  280. package/.next/standalone/.next/server/chunks/ssr/_0z5~opf._.js +3 -0
  281. package/.next/standalone/.next/server/chunks/ssr/_0zn.4bi._.js +47 -0
  282. package/.next/standalone/.next/server/chunks/ssr/_1086w4p._.js +47 -0
  283. package/.next/standalone/.next/server/chunks/ssr/{_09z-55_._.js → _10q2mbe._.js} +2 -2
  284. package/.next/standalone/.next/server/chunks/ssr/_11.knhq._.js +3 -0
  285. package/.next/standalone/.next/server/chunks/ssr/_1118hto._.js +43 -0
  286. package/.next/standalone/.next/server/chunks/ssr/{_0ytcm0j._.js → _12s8n8g._.js} +1 -1
  287. package/.next/standalone/.next/server/chunks/ssr/src_11j0qlp._.js +3 -0
  288. package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
  289. package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
  290. package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
  291. package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
  292. package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
  293. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
  294. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
  295. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_notes_notes-page-client_tsx_10gyo3v._.js +1 -1
  296. package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
  297. package/.next/standalone/.next/server/chunks/ssr/src_components_0rowjw~._.js +2 -2
  298. package/.next/standalone/.next/server/chunks/ssr/{_0bndp1~._.js → src_components_ui_popover_tsx_0a78wqo._.js} +2 -2
  299. package/.next/standalone/.next/server/chunks/ssr/{src_lib_04y-65j._.js → src_lib_04nzvfd._.js} +1 -1
  300. package/.next/standalone/.next/server/chunks/ssr/{src_lib_03xtona._.js → src_lib_0_px2pz._.js} +2 -2
  301. package/.next/standalone/.next/server/chunks/ssr/src_lib_0a.zy31._.js +3 -0
  302. package/.next/standalone/.next/server/chunks/ssr/src_lib_0b73q0a._.js +3 -0
  303. package/.next/standalone/.next/server/chunks/ssr/src_lib_0cld9rt._.js +3 -0
  304. package/.next/standalone/.next/server/chunks/ssr/{src_lib_0-x.wbd._.js → src_lib_0dbf2qa._.js} +1 -1
  305. package/.next/standalone/.next/server/chunks/ssr/src_lib_0er7rzd._.js +3 -0
  306. package/.next/standalone/.next/server/chunks/ssr/src_lib_0f0v8_~._.js +3 -0
  307. package/.next/standalone/.next/server/chunks/ssr/src_lib_0fr6fzy._.js +3 -0
  308. package/.next/standalone/.next/server/chunks/ssr/{src_lib_00p-ir2._.js → src_lib_0h2u7a0._.js} +1 -1
  309. package/.next/standalone/.next/server/chunks/ssr/src_lib_0k04rl3._.js +3 -0
  310. package/.next/standalone/.next/server/chunks/ssr/src_lib_0lpxsj~._.js +3 -0
  311. package/.next/standalone/.next/server/chunks/ssr/src_lib_0sq6aqm._.js +3 -0
  312. package/.next/standalone/.next/server/chunks/ssr/src_lib_0ui-~7g._.js +3 -0
  313. package/.next/standalone/.next/server/chunks/ssr/src_lib_0y5zzg-._.js +3 -0
  314. package/.next/standalone/.next/server/chunks/ssr/src_lib_0z-gn78._.js +3 -0
  315. package/.next/standalone/.next/server/chunks/ssr/src_lib_13c4a4g._.js +3 -0
  316. package/.next/standalone/.next/server/chunks/ssr/src_lib_pty_11~ojr2._.js +3 -0
  317. package/.next/standalone/.next/server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js +3 -0
  318. package/.next/standalone/.next/server/chunks/ssr/{_0ng0eku._.js → src_lib_schemas_ts_0ph~1ak._.js} +3 -3
  319. package/.next/standalone/.next/server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js +1 -1
  320. package/.next/standalone/.next/server/functions-config-manifest.json +1 -0
  321. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  322. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  323. package/.next/standalone/.next/server/next-font-manifest.json +4 -0
  324. package/.next/standalone/.next/server/pages/500.html +1 -1
  325. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  326. package/.next/standalone/.next/server/server-reference-manifest.json +2174 -1586
  327. package/.next/standalone/.next/static/chunks/0-kkc.ibted8y.js +1 -0
  328. package/.next/standalone/.next/static/chunks/0.2y9uc38xso-.js +1 -0
  329. package/.next/standalone/.next/static/chunks/{0c4-6qdhi645s.js → 0.gedys.tq.~k.js} +1 -1
  330. package/.next/standalone/.next/static/chunks/00g58.es_hxli.js +1 -0
  331. package/.next/standalone/.next/static/chunks/00o_eiv12t~.1.js +1 -0
  332. package/.next/standalone/.next/static/chunks/01qtgj0xv1fsm.js +2 -0
  333. package/.next/standalone/.next/static/chunks/024euw7po0d0w.js +1 -0
  334. package/.next/standalone/.next/static/chunks/02v-9v~885t9c.js +1 -0
  335. package/.next/standalone/.next/static/chunks/03ct4d8znb7tp.js +1 -0
  336. package/.next/standalone/.next/static/chunks/03uix~1ru.ovv.js +1 -0
  337. package/.next/standalone/.next/static/chunks/04.2m8l~ws19v.js +1 -0
  338. package/.next/standalone/.next/static/chunks/{0bvhkgitn__gl.js → 06x7oq8_iu~9d.js} +1 -1
  339. package/.next/standalone/.next/static/chunks/07c4b1kp_85qg.js +1 -0
  340. package/.next/standalone/.next/static/chunks/07qijq9o5jccu.js +1 -0
  341. package/.next/standalone/.next/static/chunks/{09bezwcb__18t.js → 09om2gfwimh7k.js} +1 -1
  342. package/.next/standalone/.next/static/chunks/0alhq.h4~iogi.js +1 -0
  343. package/.next/standalone/.next/static/chunks/{02xqrfqu.s8-i.js → 0cf7e1scao3zk.js} +1 -1
  344. package/.next/standalone/.next/static/chunks/0ck~sr0nkabl~.js +1 -0
  345. package/.next/standalone/.next/static/chunks/0d1ok-v-u-xe~.js +1 -0
  346. package/.next/standalone/.next/static/chunks/0d9u2xspag~4h.js +5 -0
  347. package/.next/standalone/.next/static/chunks/0ftptcpntzaux.js +1 -0
  348. package/.next/standalone/.next/static/chunks/0gk~m5bwgoafi.js +1 -0
  349. package/.next/standalone/.next/static/chunks/0in_7s8n4lmfr.js +1 -0
  350. package/.next/standalone/.next/static/chunks/0ix28r65.7o_r.js +12 -0
  351. package/.next/standalone/.next/static/chunks/{0c.t.evwah_m4.js → 0j5olwb~d3~3j.js} +1 -1
  352. package/.next/standalone/.next/static/chunks/0mtrtl-jl46in.js +2 -0
  353. package/.next/standalone/.next/static/chunks/0ov_akpudbv96.js +5 -0
  354. package/.next/standalone/.next/static/chunks/0oyskd~8~j.j7.js +1 -0
  355. package/.next/standalone/.next/static/chunks/0q1872yhybt55.js +1 -0
  356. package/.next/standalone/.next/static/chunks/0seo-lerjdkbn.js +1 -0
  357. package/.next/standalone/.next/static/chunks/0t1awv68pnn-e.js +1 -0
  358. package/.next/standalone/.next/static/chunks/0wl8cpmvyhv0l.js +1 -0
  359. package/.next/standalone/.next/static/chunks/0~2l3wz-gxs2j.js +1 -0
  360. package/.next/standalone/.next/static/chunks/0~7h_a_dofg-4.js +1 -0
  361. package/.next/standalone/.next/static/chunks/11yhe31en~dvt.js +1 -0
  362. package/.next/standalone/.next/static/chunks/12-mlz2vukuga.js +1 -0
  363. package/.next/standalone/.next/static/chunks/14fch6~swodjf.css +1 -0
  364. package/.next/standalone/.next/static/chunks/15gztq9f12uhe.js +1 -0
  365. package/.next/standalone/.next/static/chunks/15ue90qe1sh-9.js +1 -0
  366. package/.next/standalone/.next/static/chunks/17z9uivez~kp3.js +1 -0
  367. package/.next/standalone/package.json +1 -2
  368. package/dist/mcp-server.cjs +1199 -4330
  369. package/package.json +1 -2
  370. package/prisma/schema.prisma +46 -5
  371. package/scripts/migrations/0006-project-knowledge.ts +58 -0
  372. package/scripts/migrations/0007-product-group.ts +67 -0
  373. package/skills/tower/SKILL.md +22 -92
  374. package/skills/tower/references/task-source.md +80 -0
  375. package/.next/standalone/.next/server/chunks/[externals]__0x_wqa7._.js +0 -3
  376. package/.next/standalone/.next/server/chunks/[root-of-the-server]__034jopu._.js +0 -4
  377. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08-s.nv._.js +0 -4
  378. package/.next/standalone/.next/server/chunks/[root-of-the-server]__098.3z2._.js +0 -3
  379. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ehx6q.._.js +0 -3
  380. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0iggiij._.js +0 -3
  381. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pmamzv._.js +0 -3
  382. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pzyjqf._.js +0 -20
  383. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tplo5s._.js +0 -3
  384. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tpzojh._.js +0 -3
  385. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xasom7._.js +0 -4
  386. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xy1t4x._.js +0 -4
  387. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y~y6sh._.js +0 -3
  388. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10jnn26._.js +0 -3
  389. package/.next/standalone/.next/server/chunks/[root-of-the-server]__116v_bx._.js +0 -4
  390. package/.next/standalone/.next/server/chunks/[root-of-the-server]__119rbly._.js +0 -3
  391. package/.next/standalone/.next/server/chunks/_0qk_esg._.js +0 -4
  392. package/.next/standalone/.next/server/chunks/_0t31z6q._.js +0 -5
  393. package/.next/standalone/.next/server/chunks/src_0aqjfcv._.js +0 -3
  394. package/.next/standalone/.next/server/chunks/src_lib_0nw5n~t._.js +0 -3
  395. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.q~~2p._.js +0 -3
  396. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01zrinc._.js +0 -3
  397. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03x8axh._.js +0 -47
  398. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04wbr9x._.js +0 -3
  399. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05xg05r._.js +0 -3
  400. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06t.cx~._.js +0 -47
  401. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0__klx0._.js +0 -47
  402. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ccy_gg._.js +0 -3
  403. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cjmeyl._.js +0 -3
  404. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dx9sp-._.js +0 -47
  405. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f57j8r._.js +0 -47
  406. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0j1dx6p._.js +0 -47
  407. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kn~asi._.js +0 -47
  408. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m.hayd._.js +0 -47
  409. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0mpjat-._.js +0 -3
  410. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0sg4fde._.js +0 -4
  411. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w24qox._.js +0 -47
  412. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wq~4aj._.js +0 -30
  413. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0yihqy6._.js +0 -3
  414. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z7je5_._.js +0 -5
  415. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zouyfp._.js +0 -3
  416. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1184s~q._.js +0 -3
  417. package/.next/standalone/.next/server/chunks/ssr/_0.iq8t8._.js +0 -4
  418. package/.next/standalone/.next/server/chunks/ssr/_00.myc6._.js +0 -3
  419. package/.next/standalone/.next/server/chunks/ssr/_00eymu8._.js +0 -3
  420. package/.next/standalone/.next/server/chunks/ssr/_03-we0p._.js +0 -47
  421. package/.next/standalone/.next/server/chunks/ssr/_04szgc6._.js +0 -3
  422. package/.next/standalone/.next/server/chunks/ssr/_0kd_tda._.js +0 -47
  423. package/.next/standalone/.next/server/chunks/ssr/_0ktexki._.js +0 -47
  424. package/.next/standalone/.next/server/chunks/ssr/_0lo1nei._.js +0 -6
  425. package/.next/standalone/.next/server/chunks/ssr/_0mdd702._.js +0 -3
  426. package/.next/standalone/.next/server/chunks/ssr/_0n0q6~9._.js +0 -3
  427. package/.next/standalone/.next/server/chunks/ssr/_0pab_al._.js +0 -3
  428. package/.next/standalone/.next/server/chunks/ssr/_0pg6-.y._.js +0 -3
  429. package/.next/standalone/.next/server/chunks/ssr/_0pvp63a._.js +0 -47
  430. package/.next/standalone/.next/server/chunks/ssr/_0qi4x-5._.js +0 -3
  431. package/.next/standalone/.next/server/chunks/ssr/_0qnobd-._.js +0 -43
  432. package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +0 -3
  433. package/.next/standalone/.next/server/chunks/ssr/_0ts~td3._.js +0 -3
  434. package/.next/standalone/.next/server/chunks/ssr/_0y0_4zs._.js +0 -3
  435. package/.next/standalone/.next/server/chunks/ssr/_0yva1-.._.js +0 -3
  436. package/.next/standalone/.next/server/chunks/ssr/_0yz5dmq._.js +0 -47
  437. package/.next/standalone/.next/server/chunks/ssr/_11w13--._.js +0 -3
  438. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_09eeb85._.js +0 -3
  439. package/.next/standalone/.next/server/chunks/ssr/src_0djxlqx._.js +0 -3
  440. package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +0 -3
  441. package/.next/standalone/.next/server/chunks/ssr/src_0vv366l._.js +0 -3
  442. package/.next/standalone/.next/server/chunks/ssr/src_lib_03x1i~1._.js +0 -5
  443. package/.next/standalone/.next/server/chunks/ssr/src_lib_08gthaz._.js +0 -3
  444. package/.next/standalone/.next/server/chunks/ssr/src_lib_090~6pq._.js +0 -3
  445. package/.next/standalone/.next/server/chunks/ssr/src_lib_0k8dkbn._.js +0 -3
  446. package/.next/standalone/.next/server/chunks/ssr/src_lib_0knbpxk._.js +0 -3
  447. package/.next/standalone/.next/server/chunks/ssr/src_lib_0p_iehl._.js +0 -3
  448. package/.next/standalone/.next/server/chunks/ssr/src_lib_0qve1ri._.js +0 -3
  449. package/.next/standalone/.next/server/chunks/ssr/src_lib_0s35u~4._.js +0 -3
  450. package/.next/standalone/.next/server/chunks/ssr/src_lib_0x2ui80._.js +0 -3
  451. package/.next/standalone/.next/server/chunks/ssr/src_lib_0ypc5_d._.js +0 -3
  452. package/.next/standalone/.next/server/chunks/ssr/src_lib_10jh2mz._.js +0 -3
  453. package/.next/standalone/.next/static/chunks/0-nppzqp-r.9c.js +0 -1
  454. package/.next/standalone/.next/static/chunks/0-te2tg6~a23u.js +0 -1
  455. package/.next/standalone/.next/static/chunks/0.64.6c1mh7d2.js +0 -1
  456. package/.next/standalone/.next/static/chunks/0.8n1ce9lggg4.js +0 -1
  457. package/.next/standalone/.next/static/chunks/0.nsmn6shzidu.js +0 -2
  458. package/.next/standalone/.next/static/chunks/0.zgqz~m3sjej.js +0 -1
  459. package/.next/standalone/.next/static/chunks/00.eotegra08r.js +0 -1
  460. package/.next/standalone/.next/static/chunks/01j9m895w64zn.js +0 -1
  461. package/.next/standalone/.next/static/chunks/03y272e6e9o8i.js +0 -1
  462. package/.next/standalone/.next/static/chunks/08eyd7sq064r0.js +0 -1
  463. package/.next/standalone/.next/static/chunks/09b33znj4m__c.js +0 -1
  464. package/.next/standalone/.next/static/chunks/0d0zm8viq3ol4.js +0 -12
  465. package/.next/standalone/.next/static/chunks/0dktl5t_dtxu..js +0 -1
  466. package/.next/standalone/.next/static/chunks/0e5~nzt657k92.js +0 -1
  467. package/.next/standalone/.next/static/chunks/0erwxvpb9w29_.js +0 -1
  468. package/.next/standalone/.next/static/chunks/0gf~0e3xpa0fj.js +0 -5
  469. package/.next/standalone/.next/static/chunks/0gy79dfi~lnig.js +0 -1
  470. package/.next/standalone/.next/static/chunks/0gz3xwb5_8xwv.js +0 -1
  471. package/.next/standalone/.next/static/chunks/0i75~pu.bp20..js +0 -1
  472. package/.next/standalone/.next/static/chunks/0jn_w5b9r~beu.js +0 -1
  473. package/.next/standalone/.next/static/chunks/0l59z2mf1ouxu.js +0 -1
  474. package/.next/standalone/.next/static/chunks/0m4xd-ie7j.hx.js +0 -1
  475. package/.next/standalone/.next/static/chunks/0mx9ebe6we4z0.js +0 -1
  476. package/.next/standalone/.next/static/chunks/0nsggimu5je3g.js +0 -1
  477. package/.next/standalone/.next/static/chunks/0nw8nx8kafy79.js +0 -1
  478. package/.next/standalone/.next/static/chunks/0pzjryav9pm7p.js +0 -1
  479. package/.next/standalone/.next/static/chunks/0q-rl50zskr35.js +0 -1
  480. package/.next/standalone/.next/static/chunks/0qqy2x-fsmmmx.js +0 -1
  481. package/.next/standalone/.next/static/chunks/0t59wpux0g1~l.js +0 -1
  482. package/.next/standalone/.next/static/chunks/0uezq8wiwkq8d.js +0 -1
  483. package/.next/standalone/.next/static/chunks/0vrc~7m1_cuvl.js +0 -1
  484. package/.next/standalone/.next/static/chunks/0xbh24-hxrt~m.css +0 -1
  485. package/.next/standalone/.next/static/chunks/0xkkmruo8p.l_.js +0 -1
  486. package/.next/standalone/.next/static/chunks/0xx0pe_j2kmr9.js +0 -2
  487. package/.next/standalone/.next/static/chunks/0zqjqiqmorenw.js +0 -5
  488. package/.next/standalone/.next/static/chunks/136l78utn~v08.js +0 -1
  489. package/.next/standalone/.next/static/chunks/171x9kw9wcyk4.js +0 -1
  490. package/.next/standalone/.next/static/chunks/17m4o~gdsvuo3.js +0 -1
  491. package/next.config.ts +0 -18
  492. /package/.next/standalone/.next/static/{f1860bJqnbYj-1WLMj7F- → Pf_z-PYy0CJhvcyPEi-LM}/_buildManifest.js +0 -0
  493. /package/.next/standalone/.next/static/{f1860bJqnbYj-1WLMj7F- → Pf_z-PYy0CJhvcyPEi-LM}/_clientMiddlewareManifest.js +0 -0
  494. /package/.next/standalone/.next/static/{f1860bJqnbYj-1WLMj7F- → Pf_z-PYy0CJhvcyPEi-LM}/_ssgManifest.js +0 -0
@@ -0,0 +1,49 @@
1
+ module.exports=[491890,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(933919);async function f(a){return c.db.productGroup.findMany({where:{workspaceId:a},orderBy:{name:"asc"},include:{projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}}})}async function g(a){let b=a.name.trim();if(!b)throw Error("分组名称不能为空");if(!a.workspaceId)throw Error("缺少工作区");try{let e=await c.db.productGroup.create({data:{name:b,description:a.description?.trim()||null,workspaceId:a.workspaceId}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2002"===a.code)throw Error(`分组「${b}」在该工作区已存在`);throw a}}async function h(a,b){let f={};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("分组名称不能为空");f.name=a}void 0!==b.description&&(f.description=b.description?.trim()||null);try{let b=await c.db.productGroup.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError){if("P2002"===a.code)throw Error("同工作区已有同名分组");if("P2025"===a.code)throw Error("分组不存在")}throw a}}async function i(a){try{await c.db.$transaction([c.db.project.updateMany({where:{groupId:a},data:{groupId:null}}),c.db.productGroup.delete({where:{id:a}})]),(0,d.revalidatePath)("/workspaces")}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("分组不存在");throw a}}async function j(a,b){if(b){let[d,e]=await Promise.all([c.db.project.findUnique({where:{id:a},select:{workspaceId:!0}}),c.db.productGroup.findUnique({where:{id:b},select:{workspaceId:!0}})]);if(!d)throw Error("项目不存在");if(!e)throw Error("分组不存在");if(e.workspaceId!==d.workspaceId)throw Error("分组与项目不在同一工作区,不能跨区分组")}try{let e=await c.db.project.update({where:{id:a},data:{groupId:b}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("项目不存在");throw a}}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40ff151b677eeaf0636f04e8d87327f4046c314c92",null),(0,b.registerServerReference)(g,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",null),(0,b.registerServerReference)(h,"609ab0a0753de43d84bbace4355456cf5a948698d4",null),(0,b.registerServerReference)(i,"409ed0c82178d1e7f500225d0089b30cd36284f589",null),(0,b.registerServerReference)(j,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",null),a.s(["createProductGroup",0,g,"deleteProductGroup",0,i,"getProductGroups",0,f,"setProjectGroup",0,j,"updateProductGroup",0,h])},396904,101844,a=>{"use strict";var b=a.i(815429),c=a.i(761469);function d(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 e(a,b="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===b){let[a,b,c,d,h]=await Promise.allSettled([e(g,"task",f),e(g,"project",f),e(g,"repository",f),e(g,"note",f),e(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(d),...j(h)]}if("task"===b)return(await c.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"===b)return(await c.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"===b)return(await c.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"===b){if(g.length<3)return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
2
+ n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
3
+ FROM "ProjectNote" n
4
+ JOIN "Project" p ON p.id = n."projectId"
5
+ JOIN "Workspace" w ON w.id = p."workspaceId"
6
+ WHERE n.title LIKE ? OR n.content LIKE ?
7
+ LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j));try{return(await c.db.$queryRawUnsafe(`SELECT f.note_id, f.title, f.content,
8
+ n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
9
+ FROM notes_fts f
10
+ JOIN "ProjectNote" n ON n.id = f.note_id
11
+ JOIN "Project" p ON p.id = n."projectId"
12
+ JOIN "Workspace" w ON w.id = p."workspaceId"
13
+ WHERE f.notes_fts MATCH ?
14
+ ORDER BY rank
15
+ LIMIT ?`,g,h)).map(a=>d(a,j))}catch{return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
16
+ n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
17
+ FROM "ProjectNote" n
18
+ JOIN "Project" p ON p.id = n."projectId"
19
+ JOIN "Workspace" w ON w.id = p."workspaceId"
20
+ WHERE n.title LIKE ? OR n.content LIKE ?
21
+ LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j))}}return"asset"===b?(await c.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})):[]}var f=a.i(980999),g=a.i(630048);async function h(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return e(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}(0,g.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",null),a.s(["globalSearch",0,h],396904);var i=a.i(924868),j=a.i(522734),k=a.i(814747),l=a.i(188139);async function m(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let d=await c.db.project.findUnique({where:{id:b}});if(!d||!d.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let e=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:f}=await a.A(98813);for(let a of e)if(void 0!==f(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let g=k.default.join(d.localPath,".worktrees");if((0,j.existsSync)(g))try{if((await (0,i.readdir)(g)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function n(b,d){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!d||"string"!=typeof d||!k.default.isAbsolute(d))return{success:!1,error:"目标路径必须是非空的绝对路径"};let e=await c.db.project.findUnique({where:{id:b}});if(!e||!e.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let f=e.localPath;if(d===f)return{success:!1,error:"源路径和目标路径相同"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let g=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:h}=await a.A(98813);for(let a of g)if(void 0!==h(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=k.default.join(f,".worktrees");if((0,j.existsSync)(m))try{if((await (0,i.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,j.existsSync)(d))try{if((await (0,i.readdir)(d)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=k.default.dirname(d);try{await (0,i.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,i.rename)(f,d)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${d}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await c.db.project.update({where:{id:b},data:{localPath:d}}),(0,l.revalidatePath)("/workspaces"),{success:!0}}let o=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
22
+
23
+ 读取 package.json、README.md 等关键文件,然后概括:
24
+
25
+ **技术栈:** 一句话列出主要语言、框架、关键库
26
+ **定位:** 一句话说明项目是什么
27
+ **核心模块:** 2-3 个关键模块,每个一句话
28
+
29
+ 要求:
30
+ - 总字数不超过 500 字
31
+ - 用简洁的 Markdown(加粗标签 + 短句),不要用 ## 大标题和表格
32
+ - 不要罗列每个文件/目录,只说关键信息
33
+ - 中文输出`,p=`Analyze this project directory and generate a brief Markdown project description.
34
+
35
+ Read package.json, README.md and other key files, then summarize:
36
+
37
+ **Tech Stack:** One sentence listing primary languages, frameworks, and key libraries
38
+ **Overview:** One sentence describing what this project is
39
+ **Core Modules:** 2-3 key modules, one sentence each
40
+
41
+ Requirements:
42
+ - Keep it under 1000 words
43
+ - Use concise Markdown (bold labels + short sentences), no ## headings or tables
44
+ - Don't list every file/directory, only key information
45
+ - Output in English`;async function q(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!k.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),e=await d("en"===c?p:o,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!e)throw Error("AI 分析未返回结果");return e.length>2e3?e.slice(0,2e3).trimEnd()+"\n\n...":e}(0,g.ensureServerEntryExports)([m,n,q]),(0,b.registerServerReference)(m,"4064146185600ce222e9bc8e2316f49c9603a85346",null),(0,b.registerServerReference)(n,"609c9417a5d51517e959d27ee390da88a7c0542bbc",null),(0,b.registerServerReference)(q,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",null),a.s(["analyzeProjectDirectory",0,q,"checkMigrationSafety",0,m,"migrateProjectPath",0,n],101844)},845427,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(26683);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i){let j=h(a),k=e.default.join(j,".worktrees","task-"+f),m="task/"+f;if(!(0,c.existsSync)(j))throw Error(`项目本地路径不存在:${j}`);try{(0,b.execFileSync)("git",["rev-parse","--is-inside-work-tree"],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{throw Error(`项目本地路径不是 Git 仓库,无法创建 worktree:${j}`)}await (0,d.mkdir)(e.default.join(j,".worktrees"),{recursive:!0});let n=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:j,encoding:"utf-8",timeout:1e4}),o=e.default.normalize(k).replace(/\\/g,"/");if(n.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===o))return l(j,k),{worktreePath:k,worktreeBranch:m};if((0,c.existsSync)(k)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${k}`),(0,b.execFileSync)("git",["worktree","remove",k,"--force"],{cwd:j,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",m],{cwd:j,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",k,m],{cwd:j,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",m,k,a],{cwd:j,encoding:"utf-8",timeout:3e4})}return l(j,k),{worktreePath:k,worktreeBranch:m}}let j=new Set(["node_modules",".git",".worktrees"]),k=["node_modules",".next"];function l(a,b){let d,f,h=g.logger.create("worktree");for(let g of(d=[],(f=(a,b,g)=>{let h;if((0,c.existsSync)(e.default.join(a,"package.json"))&&d.push(b),!(g>=8)){try{h=(0,c.readdirSync)(a,{withFileTypes:!0})}catch{return}for(let c of h){if(!c.isDirectory())continue;let d=c.name;j.has(d)||d.startsWith(".")||f(e.default.join(a,d),b?e.default.join(b,d):d,g+1)}}})(a,"",0),d))for(let d of k){let f=g?e.default.join(g,d):d,i=e.default.join(a,f),j=e.default.join(b,f);if(!(0,c.existsSync)(i)){"node_modules"===d&&h.info(`Skipped ${f} — source not installed`,{source:i});continue}try{(0,c.lstatSync)(j);continue}catch{}try{(0,c.mkdirSync)(e.default.dirname(j),{recursive:!0}),(0,c.symlinkSync)(i,j,"junction"),h.info(`Symlinked ${f}`,{from:i,to:j})}catch(a){h.warn(`Failed to symlink ${f}`,{error:String(a)})}}}async function m(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,m,"stripTowerLinkedStatus",0,function(a,b){return a.filter(a=>!a.startsWith("??")||!function(a,b){let d=a.replace(/[/\\]+$/,""),f=e.default.basename(d);if(!k.includes(f))return!1;try{return(0,c.lstatSync)(e.default.join(b,d)).isSymbolicLink()}catch{return!1}}(a.slice(2).trim(),b))},"worktreePathFor",0,function(a,b){return e.default.join(h(a),".worktrees","task-"+b)}])},980738,(a,b,c)=>{b.exports=a.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},42847,a=>{"use strict";var b=a.i(980738),c=a.i(163812);class d{taskId;_pty;killed=!1;disconnectTimer=null;_buffer="";static BUFFER_MAX=51200;_onData;_exitListeners=[];_idleTimer=null;_idleThresholdMs;_onIdle;_idleFired=!1;constructor(a,e,f,g,h,i,j,k,l){this.taskId=a,this._onData=h,this._onIdle=k??null,this._idleThresholdMs=Math.max(l??18e4,18e4);const m={...(0,c.stripClaudeNestingEnv)((0,c.ensurePathInEnv)(process.env)),TERM:"xterm-color",...j};try{this._pty=b.spawn(e,f,{name:"xterm-color",cols:80,rows:24,cwd:g,env:m})}catch(a){throw console.error(`[pty] spawn failed: command="${e}", cwd="${g}", PATH="${m.PATH?.slice(0,200)}"`),a}this._pty.onData(a=>{this._buffer+=a,this._buffer.length>d.BUFFER_MAX&&(this._buffer=this._buffer.slice(this._buffer.length-d.BUFFER_MAX)),this._resetIdleTimer(),this._onData(a)}),this._pty.onExit(({exitCode:a,signal:b})=>{for(let c of(this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),i(a,b),this._exitListeners))c(a)}),this._resetIdleTimer()}_resetIdleTimer(){this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null),null===this._onIdle||this.killed||this._idleFired||(this._idleTimer=setTimeout(()=>{this._idleFired=!0,this._onIdle?.()},this._idleThresholdMs))}setDataListener(a){this._onData=a}setExitListener(a){this._exitListeners=[a]}write(a){this.killed||(this._resetIdleTimer(),this._pty.write(a))}resize(a,b){this.killed||this._pty.resize(a,b)}getBuffer(){return this._buffer}get isIdle(){return this._idleFired}get pid(){return this._pty.pid}kill(a){if(!this.killed){this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);try{this._pty.kill(a)}catch{}}}forceKill(){try{this._pty.kill("SIGKILL")}catch{}this.killed=!0}killTree(a=3e3){if(this.killed)return;this.killed=!0,this._idleTimer&&(clearTimeout(this._idleTimer),this._idleTimer=null);let b=this._pty.pid;try{process.kill(-b,"SIGTERM")}catch{try{this._pty.kill()}catch{}return}let c=setTimeout(()=>{try{process.kill(-b,"SIGKILL")}catch{}},a);c.unref?.()}}a.s(["PtySession",0,d])},312369,a=>{"use strict";var b=a.i(761469);async function c(a,c){let d=await b.db.systemConfig.findUnique({where:{key:a}});if(!d)return c;try{return JSON.parse(d.value)}catch{return c}}a.s(["readConfigValue",0,c])},22700,a=>{"use strict";var b=a.i(42847);let c=/\x1b\[[0-9;]*m/g,d=/(https?:\/\/[^\s]+)/;class e{preset;port;timeoutMs;onReady;onTimeout;ready;timeoutTimer;probeTimer;pendingExtractedUrl;constructor(a,b,c,d,e){this.preset=a,this.port=b,this.timeoutMs=c,this.onReady=d,this.onTimeout=e,this.ready=!1,this.timeoutTimer=null,this.probeTimer=null,this.pendingExtractedUrl=null}start(){this.timeoutTimer=setTimeout(()=>{this.ready||this.onTimeout()},this.timeoutMs),this.probeTimer=setInterval(()=>{this.ready||this.probe()},500)}feedLine(a){if(!this.ready){if(this.preset?.urlExtractRegex){var b,e;let f,g=(b=a,e=this.preset.urlExtractRegex,f=b.replace(c,"").match(e??d),f?.[1]??null);g&&(this.pendingExtractedUrl=g)}this.preset?.readyRegex?.test(a)&&this.emitReady(this.pendingExtractedUrl)}}stop(){this.timeoutTimer&&(clearTimeout(this.timeoutTimer),this.timeoutTimer=null),this.probeTimer&&(clearInterval(this.probeTimer),this.probeTimer=null)}async probe(){try{let a=new AbortController,b=setTimeout(()=>a.abort(),200),c=await fetch(`http://localhost:${this.port}/`,{method:"HEAD",signal:a.signal});clearTimeout(b),c.status>=200&&c.status<400&&this.emitReady(this.pendingExtractedUrl)}catch{}}emitReady(a){this.ready||(this.ready=!0,this.stop(),this.onReady(a))}}class f{opts;status;pty;ringBuffer;currentUrl;startedAt;readyAt;errorMessage;installed;readyWatcher;cancelRequested;pendingAutoStart;outputListeners;stateListeners;subscribers;internalListenerSeq;constructor(a){this.opts=a,this.status="stopped",this.pty=null,this.ringBuffer=[],this.currentUrl=null,this.startedAt=null,this.readyAt=null,this.errorMessage=null,this.installed=null,this.readyWatcher=null,this.cancelRequested=!1,this.pendingAutoStart=!1,this.outputListeners=new Map,this.stateListeners=new Map,this.subscribers=new Map,this.internalListenerSeq=0}get key(){return this.opts.key}get activeSubscriberCount(){return this.subscribers.size}get subscriberTaskIds(){return new Set([...this.subscribers.values()].map(a=>a.taskId))}get isEvictable(){return null===this.pty&&("stopped"===this.status||"error"===this.status)&&0===this.subscribers.size&&!this.pendingAutoStart}getBuffer(){return[...this.ringBuffer]}getState(){return{key:this.opts.key,status:this.status,url:this.currentUrl,port:this.opts.port,startedAt:this.startedAt,readyAt:this.readyAt,errorMessage:this.errorMessage,installed:this.installed,activeSubscribers:this.activeSubscriberCount,subscriberTaskIds:[...this.subscriberTaskIds]}}subscribe(a,b,c,d){return this.subscribers.set(a,{taskId:b}),this.stateListeners.set(a,c),this.outputListeners.set(a,d),()=>{this.subscribers.delete(a),this.stateListeners.delete(a),this.outputListeners.delete(a),this.broadcastState()}}async run(){if("installing"===this.status)return{started:!1,error:"Install in progress"};if("running"===this.status||"starting"===this.status)return{started:!0};this.cancelRequested=!1,this.errorMessage=null,this.status="starting",this.startedAt=Date.now(),this.broadcastState();try{this.pty=this.createPty(this.opts.command,this.opts.args,this.opts.cwd)}catch(a){return this.status="error",this.errorMessage=`Failed to spawn: ${String(a)}`,this.broadcastState(),{started:!1,error:this.errorMessage}}return this.readyWatcher=new e(this.opts.preset,this.opts.port,this.opts.preset?.startTimeoutMs??6e4,a=>this.handleReady(a),()=>this.handleTimeout()),this.readyWatcher.start(),{started:!0}}async install(a){if("stopped"!==this.status&&"error"!==this.status)return{ok:!1,error:`Cannot install while ${this.status}`};this.cancelRequested=!1,this.errorMessage=null,this.status="installing",this.pendingAutoStart=a.autoStartAfter??!1,this.broadcastState();try{this.pty=this.createPty(a.installCommand,a.installArgs,a.installCwd??this.opts.cwd)}catch(a){return this.status="error",this.errorMessage=`Failed to spawn install: ${String(a)}`,this.broadcastState(),{ok:!1,error:this.errorMessage}}return{ok:!0}}stop(){if(("installing"===this.status||"starting"===this.status||"running"===this.status)&&(this.cancelRequested=!0),this.readyWatcher&&(this.readyWatcher.stop(),this.readyWatcher=null),!this.pty||this.pty.killed){this.injectLog("Stopped."),this.status="stopped",this.pendingAutoStart=!1,this.broadcastState();return}this.injectLog("Stopping (SIGTERM)..."),this.status="stopping",this.broadcastState();try{this.pty.killTree()}catch{}}injectLog(a){let b=`[preview] ${a}`;this.pushBuffer(b);let c=`\r
46
+ ${b}\r
47
+ `;for(let a of this.outputListeners.values())try{a(c)}catch{}}pushBuffer(a){this.ringBuffer.push(a),this.ringBuffer.length>5e3&&this.ringBuffer.splice(0,this.ringBuffer.length-5e3)}createPty(a,c,d){let e=new b.PtySession(this.opts.key,a,c,d,a=>this.handlePtyData(a),a=>this.handlePtyExit(a),this.opts.envOverrides,void 0,void 0);try{e.resize(200,50)}catch{}return e}handlePtyData(a){for(let b of a.split(/\r?\n/))0!==b.length&&(this.pushBuffer(b),this.readyWatcher&&this.readyWatcher.feedLine(b));for(let b of this.outputListeners.values())try{b(a)}catch{}}handlePtyExit(a){let b=this.cancelRequested,c="installing"===this.status;this.pty=null,this.readyWatcher&&(this.readyWatcher.stop(),this.readyWatcher=null),b?(this.injectLog(`Stopped (exit code ${a}).`),this.status="stopped",this.pendingAutoStart=!1):0===a&&c?(this.installed=!0,this.status="stopped",this.pendingAutoStart&&(this.pendingAutoStart=!1,setTimeout(()=>void this.run(),0))):0!==a?(this.injectLog(`Exited with code ${a}.`),this.status="error",this.errorMessage=`Process exited with code ${a}`,this.pendingAutoStart=!1):(this.injectLog("Exited."),this.status="stopped"),this.broadcastState()}handleReady(a){this.currentUrl=a??`http://localhost:${this.opts.port}/`,this.status="running",this.readyAt=Date.now(),this.broadcastState()}handleTimeout(){this.status="error",this.errorMessage=`Start timeout (${this.opts.preset?.startTimeoutMs??6e4}ms). See logs.`,this.readyWatcher&&(this.readyWatcher.stop(),this.readyWatcher=null),this.broadcastState()}onStateChange(a){this.stateListeners.set(`__internal-${this.internalListenerSeq++}`,a)}broadcastState(){let a=this.getState();for(let b of this.stateListeners.values())try{b(a)}catch{}}}let g=globalThis.__previewSessions??=new Map;function h(a){let b=g.get(a);if(b){try{b.stop()}catch{}g.delete(a)}}function i(){for(let a of[...g.keys()])h(a)}if(globalThis.__previewSignalHandlersRegistered||(process.on("SIGTERM",i),process.on("SIGINT",i),process.on("SIGHUP",i),globalThis.__previewSignalHandlersRegistered=!0),"phase-production-build"!==process.env.NEXT_PHASE&&!globalThis.__previewSweepStarted){globalThis.__previewSweepStarted=!0;let a=new Map,b=setInterval(()=>{let b=Date.now();for(let c of function(a,b,c){let d=[];for(let{key:e,evictable:f}of a){if(!f){b.delete(e);continue}let a=b.get(e);if(void 0===a){b.set(e,c);continue}c-a>=3e5&&d.push(e)}return d}([...g].map(([a,b])=>({key:a,evictable:b.isEvictable})),a,b))h(c),a.delete(c)},6e4);b.unref?.()}a.s(["getOrCreatePreviewSession",0,function(a,b){let c=g.get(a);return c||(c=new f({...b,key:a}),g.set(a,c)),c},"getPreviewSession",0,function(a){return g.get(a)}],22700)},689171,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(495370),f=a.i(845427),g=a.i(75681),h=a.i(496877),i=a.i(26683),j=a.i(279697),k=a.i(980999),l=a.i(630048);let m=i.logger.create("task-actions");async function n(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null,versionId:b.versionId??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function o(b,e){h.taskStatusSchema.parse(e);let g=!1;if("DONE"===e){let d=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(d?.baseBranch&&d.project?.localPath){let{completeWorktreeReturn:c}=await a.A(404793);g=(await c(b,d.project.localPath,d.baseBranch)).completed}}let i=await c.db.task.update({where:{id:b},data:{status:e,doneAt:"DONE"===e?new Date:null},include:{project:!0}});if("DONE"===e&&!g&&!i.baseBranch&&i.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:i.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&(a.A(662330).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),g||a.A(200442).then(({captureTaskOverview:a})=>{a(b).catch(()=>{})}).catch(()=>{})),"DONE"===e&&!g||"CANCELLED"===e)try{let{destroySession:c}=await a.A(98813);c(b)}catch(a){m.error("PTY session destroy failed",a,{taskId:b})}if("CANCELLED"===e&&i.project?.localPath)try{let{captureTaskOverview:c}=await a.A(200442);await c(b,{kind:"cancelled"})}catch(a){m.error("Task overview capture failed",a,{taskId:b})}if("CANCELLED"===e&&i.project?.localPath)try{await (0,f.removeWorktree)(i.project.localPath,b)}catch(a){m.error("Worktree cleanup failed",a,{taskId:b})}try{(0,d.revalidatePath)("/workspaces")}catch(a){m.error("revalidatePath failed (non-fatal)",a,{taskId:b})}return i}async function p(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function q(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function r(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});try{let{destroySession:c}=await a.A(98813);c(b)}catch{}if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function s(a){let b=await (0,k.getArchiveDelayDays)();return c.db.task.findMany({where:{projectId:a,...(0,j.visibleTaskWhere)(b)},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function t(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function u(a){let b=await (0,k.getArchiveDelayDays)();return c.db.task.findMany({where:{projectId:a,...(0,j.archivedTaskWhere)(b)},include:{labels:{include:{label:!0}},version:{select:{id:!0,number:!0,name:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function v(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),g=await c.db.task.findUnique({where:{id:b}}),h=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}}),i=g?.baseBranch||"main";if(!h?.worktreePath||!e(h.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1,baseBranch:i};let j=h.worktreePath;try{let a=d("git",["status","--porcelain"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=(0,f.stripTowerLinkedStatus)(b,j),e=0===c.length,g=!1,h=null,k=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:j,encoding:"utf-8",timeout:5e3}).trim();if(g=parseInt(b,10)>0){h=d("git",["log","-1","--format=%B"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:j,encoding:"utf-8",timeout:5e3}).trim();k=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:e,files:c,hasCommits:g,lastCommitMessage:h,commitLog:k,hasWorktree:!0,baseBranch:i}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0,baseBranch:i}}}async function w(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function x(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},version:{select:{id:!0,number:!0,name:!0}},project:{select:{id:!0,name:!0,type:!0,localPath:!0,workspaceId:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0,gitStats:!0,worktreePath:!0}},_count:{select:{assets:!0}}}}):null}async function y(a){let b=await (0,k.getArchiveDelayDays)();return c.db.task.count({where:{projectId:a,...(0,j.archivedTaskWhere)(b)}})}(0,l.ensureServerEntryExports)([n,o,p,q,r,s,t,u,v,w,x,y]),(0,b.registerServerReference)(n,"407e209030abeb6675e3ada470cba988bc50a35fd4",null),(0,b.registerServerReference)(o,"60e4b2ed8000953c03639b7e7fbc5233720fd9370a",null),(0,b.registerServerReference)(p,"6076bcc79f9958bb057ccdd60911f9d7b735d7a931",null),(0,b.registerServerReference)(q,"40831188e28055647acd1df5e5715b66798b762ce4",null),(0,b.registerServerReference)(r,"408d0e75cb1bd97639d51db48f5af64af40960c091",null),(0,b.registerServerReference)(s,"405b119efa84acb36bee029d2bcc168afc7f336881",null),(0,b.registerServerReference)(t,"408f6e738e5280db3c9c58fc1751dd54be7d067c14",null),(0,b.registerServerReference)(u,"402ad17793fc99949e1a4d611602a7fc06c5ad0fb5",null),(0,b.registerServerReference)(v,"401acf2b7191c3fbfd39c3f254a5628d15465f16bb",null),(0,b.registerServerReference)(w,"6031d4644cd423486c800f9dcad4ed01df4562a880",null),(0,b.registerServerReference)(x,"403a7d2c9bb7cb0a78ee046f71013ad11077222cc0",null),(0,b.registerServerReference)(y,"409c9c0bf565a9c87ebd39a315aa1db9e204b59db7",null),a.s(["checkWorktreeClean",0,v,"commitWorktreeChanges",0,w,"createTask",0,n,"deleteTask",0,r,"getArchivedTaskCount",0,y,"getArchivedTasks",0,u,"getProjectTasks",0,s,"getTaskOverview",0,x,"searchTasks",0,t,"toggleTaskPinned",0,q,"updateTask",0,p,"updateTaskStatus",0,o])}];
48
+
49
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0muf4wq._.js.map
@@ -27,4 +27,4 @@ Rules:
27
27
  - insights array can be empty if nothing notable
28
28
  - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0ti8vng._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
29
29
 
30
- //# sourceMappingURL=%5Broot-of-the-server%5D__0dv.-zu._.js.map
30
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0n02kfa._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},264589,a=>{"use strict";let b=(0,a.i(711796).default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);a.s(["Package",0,b],264589)},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)},509405,a=>{"use strict";let b=(0,a.i(711796).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Eye",0,b],509405)},10390,a=>{"use strict";var b=a.i(421992);a.s(["ChevronRight",()=>b.default])},912868,a=>{"use strict";let b=(0,a.i(711796).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",0,b],912868)},111699,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4075ec4df24bd89711034f15cca9eb240df9f3f473",b.callServer,void 0,b.findSourceMapURL,"getConfigValues");a.s(["getConfigValues",0,c])},412783,22761,a=>{"use strict";var b=a.i(728778),c=a.i(368114);a.s(["Label",0,function({className:a,...d}){return(0,b.jsx)("label",{"data-slot":"label",className:(0,c.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...d})}],412783);let d=(0,a.i(711796).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",0,d],22761)},865011,a=>{"use strict";var b=a.i(728778),c=a.i(634910),d=a.i(553798),e=a.i(269280),f=a.i(350739),g=a.i(347165),h=a.i(607219),i=a.i(273364),j=a.i(951192);let k=[{key:"notes",icon:f.FileText},{key:"assets",icon:g.FolderOpen},{key:"archive",icon:h.Archive},{key:"groups",icon:i.Boxes}];a.s(["SubPageNav",0,function({workspaceId:a}){let{t:f}=(0,j.useI18n)(),g=(0,d.usePathname)(),h=k.find(a=>g.includes(`/${a.key}`))?.key;return(0,b.jsxs)("div",{className:"header-sm flex items-center gap-1 px-4",children:[(0,b.jsxs)(c.default,{href:`/workspaces/${a}`,className:"mr-2 inline-flex h-8 items-center gap-1.5 rounded-md px-2 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:[(0,b.jsx)(e.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:f("archive.backToBoard")})]}),(0,b.jsx)("span",{className:"mr-2 h-4 w-px bg-border"}),k.map(d=>{let e=d.icon,g=h===d.key;return(0,b.jsxs)(c.default,{href:`/workspaces/${a}/${d.key}`,className:`inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-xs font-medium transition-colors ${g?"bg-accent text-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"}`,children:[(0,b.jsx)(e,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:f(`sidebar.${d.key}`)})]},d.key)})]})}])},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)},161664,a=>{"use strict";let b=(0,a.i(711796).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);a.s(["RotateCcw",0,b],161664)},816282,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("404c5f6bb80cc0d10b604e5640d83816a765fc59f3",b.callServer,void 0,b.findSourceMapURL,"openInTerminal");a.s(["openInTerminal",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)},267540,123089,165614,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("408215e48e1a623e4bbb685a78e3a3ada2ed9a5e8a",b.callServer,void 0,b.findSourceMapURL,"openInFileManager");a.s(["openInFileManager",0,c],267540);let d=(0,b.createServerReference)("40a305711044d42074dc8b719a62360ee159d7fe96",b.callServer,void 0,b.findSourceMapURL,"openInEditor");a.s(["openInEditor",0,d],123089);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)},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)},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)},579834,a=>{"use strict";var b=a.i(728778),c=a.i(368114);a.s(["EmptyState",0,function({icon:a,title:d,description:e,action:f,className:g}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex h-48 flex-col items-center justify-center gap-2 text-center",g),children:[a&&(0,b.jsx)(a,{className:"h-10 w-10 text-muted-foreground/40"}),(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:d}),e&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground/60",children:e}),f&&(0,b.jsx)("div",{className:"mt-2",children:f})]})}])},555445,678518,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4021cffd826ce36203d99f6565f58863b9bc8a2727",b.callServer,void 0,b.findSourceMapURL,"createNote");a.s(["createNote",0,c],555445);let d=(0,b.createServerReference)("40006718afe159ee057487702c0cb12c23f6bac540",b.callServer,void 0,b.findSourceMapURL,"deleteNote");a.s(["deleteNote",0,d],678518)},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
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0n3uc.v._.js.map
@@ -0,0 +1,47 @@
1
+ module.exports=[491890,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(933919);async function f(a){return c.db.productGroup.findMany({where:{workspaceId:a},orderBy:{name:"asc"},include:{projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}}})}async function g(a){let b=a.name.trim();if(!b)throw Error("分组名称不能为空");if(!a.workspaceId)throw Error("缺少工作区");try{let e=await c.db.productGroup.create({data:{name:b,description:a.description?.trim()||null,workspaceId:a.workspaceId}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2002"===a.code)throw Error(`分组「${b}」在该工作区已存在`);throw a}}async function h(a,b){let f={};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("分组名称不能为空");f.name=a}void 0!==b.description&&(f.description=b.description?.trim()||null);try{let b=await c.db.productGroup.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError){if("P2002"===a.code)throw Error("同工作区已有同名分组");if("P2025"===a.code)throw Error("分组不存在")}throw a}}async function i(a){try{await c.db.$transaction([c.db.project.updateMany({where:{groupId:a},data:{groupId:null}}),c.db.productGroup.delete({where:{id:a}})]),(0,d.revalidatePath)("/workspaces")}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("分组不存在");throw a}}async function j(a,b){if(b){let[d,e]=await Promise.all([c.db.project.findUnique({where:{id:a},select:{workspaceId:!0}}),c.db.productGroup.findUnique({where:{id:b},select:{workspaceId:!0}})]);if(!d)throw Error("项目不存在");if(!e)throw Error("分组不存在");if(e.workspaceId!==d.workspaceId)throw Error("分组与项目不在同一工作区,不能跨区分组")}try{let e=await c.db.project.update({where:{id:a},data:{groupId:b}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("项目不存在");throw a}}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40ff151b677eeaf0636f04e8d87327f4046c314c92",null),(0,b.registerServerReference)(g,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",null),(0,b.registerServerReference)(h,"609ab0a0753de43d84bbace4355456cf5a948698d4",null),(0,b.registerServerReference)(i,"409ed0c82178d1e7f500225d0089b30cd36284f589",null),(0,b.registerServerReference)(j,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",null),a.s(["createProductGroup",0,g,"deleteProductGroup",0,i,"getProductGroups",0,f,"setProjectGroup",0,j,"updateProductGroup",0,h])},396904,101844,a=>{"use strict";var b=a.i(815429),c=a.i(761469);function d(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 e(a,b="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===b){let[a,b,c,d,h]=await Promise.allSettled([e(g,"task",f),e(g,"project",f),e(g,"repository",f),e(g,"note",f),e(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(d),...j(h)]}if("task"===b)return(await c.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"===b)return(await c.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"===b)return(await c.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"===b){if(g.length<3)return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
2
+ n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
3
+ FROM "ProjectNote" n
4
+ JOIN "Project" p ON p.id = n."projectId"
5
+ JOIN "Workspace" w ON w.id = p."workspaceId"
6
+ WHERE n.title LIKE ? OR n.content LIKE ?
7
+ LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j));try{return(await c.db.$queryRawUnsafe(`SELECT f.note_id, f.title, f.content,
8
+ n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
9
+ FROM notes_fts f
10
+ JOIN "ProjectNote" n ON n.id = f.note_id
11
+ JOIN "Project" p ON p.id = n."projectId"
12
+ JOIN "Workspace" w ON w.id = p."workspaceId"
13
+ WHERE f.notes_fts MATCH ?
14
+ ORDER BY rank
15
+ LIMIT ?`,g,h)).map(a=>d(a,j))}catch{return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
16
+ n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
17
+ FROM "ProjectNote" n
18
+ JOIN "Project" p ON p.id = n."projectId"
19
+ JOIN "Workspace" w ON w.id = p."workspaceId"
20
+ WHERE n.title LIKE ? OR n.content LIKE ?
21
+ LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j))}}return"asset"===b?(await c.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})):[]}var f=a.i(980999),g=a.i(630048);async function h(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return e(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}(0,g.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",null),a.s(["globalSearch",0,h],396904);var i=a.i(924868),j=a.i(522734),k=a.i(814747),l=a.i(188139);async function m(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let d=await c.db.project.findUnique({where:{id:b}});if(!d||!d.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let e=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:f}=await a.A(98813);for(let a of e)if(void 0!==f(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let g=k.default.join(d.localPath,".worktrees");if((0,j.existsSync)(g))try{if((await (0,i.readdir)(g)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function n(b,d){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!d||"string"!=typeof d||!k.default.isAbsolute(d))return{success:!1,error:"目标路径必须是非空的绝对路径"};let e=await c.db.project.findUnique({where:{id:b}});if(!e||!e.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let f=e.localPath;if(d===f)return{success:!1,error:"源路径和目标路径相同"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let g=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:h}=await a.A(98813);for(let a of g)if(void 0!==h(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=k.default.join(f,".worktrees");if((0,j.existsSync)(m))try{if((await (0,i.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,j.existsSync)(d))try{if((await (0,i.readdir)(d)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=k.default.dirname(d);try{await (0,i.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,i.rename)(f,d)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${d}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await c.db.project.update({where:{id:b},data:{localPath:d}}),(0,l.revalidatePath)("/workspaces"),{success:!0}}let o=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
22
+
23
+ 读取 package.json、README.md 等关键文件,然后概括:
24
+
25
+ **技术栈:** 一句话列出主要语言、框架、关键库
26
+ **定位:** 一句话说明项目是什么
27
+ **核心模块:** 2-3 个关键模块,每个一句话
28
+
29
+ 要求:
30
+ - 总字数不超过 500 字
31
+ - 用简洁的 Markdown(加粗标签 + 短句),不要用 ## 大标题和表格
32
+ - 不要罗列每个文件/目录,只说关键信息
33
+ - 中文输出`,p=`Analyze this project directory and generate a brief Markdown project description.
34
+
35
+ Read package.json, README.md and other key files, then summarize:
36
+
37
+ **Tech Stack:** One sentence listing primary languages, frameworks, and key libraries
38
+ **Overview:** One sentence describing what this project is
39
+ **Core Modules:** 2-3 key modules, one sentence each
40
+
41
+ Requirements:
42
+ - Keep it under 1000 words
43
+ - Use concise Markdown (bold labels + short sentences), no ## headings or tables
44
+ - Don't list every file/directory, only key information
45
+ - Output in English`;async function q(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!k.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),e=await d("en"===c?p:o,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!e)throw Error("AI 分析未返回结果");return e.length>2e3?e.slice(0,2e3).trimEnd()+"\n\n...":e}(0,g.ensureServerEntryExports)([m,n,q]),(0,b.registerServerReference)(m,"4064146185600ce222e9bc8e2316f49c9603a85346",null),(0,b.registerServerReference)(n,"609c9417a5d51517e959d27ee390da88a7c0542bbc",null),(0,b.registerServerReference)(q,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",null),a.s(["analyzeProjectDirectory",0,q,"checkMigrationSafety",0,m,"migrateProjectPath",0,n],101844)},625636,a=>{"use strict";var b=a.i(761469);async function c(a){let c="ask"===a.kind?"OPEN":"CLOSED";return{messageId:(await b.db.harnessMessage.create({data:{taskId:a.taskId,executionId:a.executionId??null,kind:a.kind,content:a.content,state:c}})).id}}async function d(a){return(await b.db.harnessMessage.updateMany({where:{id:a,kind:"ask",state:"OPEN"},data:{state:"IGNORED"}})).count>0}async function e(a){return(await b.db.harnessMessage.updateMany({where:{taskId:a,kind:"ask",state:"OPEN"},data:{state:"CANCELLED"}})).count}async function f(a){await b.db.harnessMessage.delete({where:{id:a}})}async function g(a={}){let c=a.view??"pending";return b.db.harnessMessage.findMany({where:"pending"===c?{kind:"ask",state:"OPEN"}:"answered"===c?{kind:"ask",state:"ANSWERED"}:{},orderBy:{createdAt:"desc"},take:a.limit??200,include:{task:{select:{id:!0,title:!0}}}})}a.s(["cancelOpenAsks",0,e,"dismissMessage",0,f,"ignoreAsk",0,d,"listHarnessMessages",0,g,"recordHarnessMessage",0,c])},333500,a=>{"use strict";var b=a.i(815429),c=a.i(188139),d=a.i(625636);async function e(a="pending"){return(await (0,d.listHarnessMessages)({view:a})).map(a=>({id:a.id,taskId:a.taskId,taskTitle:a.task?.title??"",kind:a.kind,content:a.content,state:a.state,replyText:a.replyText,repliedAt:a.repliedAt?a.repliedAt.toISOString():null,createdAt:a.createdAt.toISOString()}))}async function f(a,b){let d=process.env.PORT??"3000";try{let e=await fetch(`http://localhost:${d}/api/internal/harness/reply`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({taskId:a,text:b})}),f=await e.json().catch(()=>({}));if((0,c.revalidatePath)("/harness"),!e.ok)return{ok:!1,error:f.error??"reply failed"};return{ok:!0,mode:f.mode,injected:f.injected}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function g(b){let c=b.dest?.trim();if(!c)return{ok:!1,output:"缺少测试目的地"};let{getTowerDir:d}=await a.A(371711),{resolveCommandPathSync:e}=await a.A(889618),{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),i=b.downstream?`通过「${b.downstream}」`:"",j=`这是一次通知渠道连通性测试。请用「${b.gateway}」网关${i},给「${c}」发送一条测试消息:「✅ Tower 通知渠道测试,收到请忽略」。收件人「${c}」可能是名称而非 id(如某个人名或群名)—— 若不是现成 id,先用对应平台的 MCP 工具按名称查找该群/人拿到 id,再发送。只做这一件事。发送成功只回复 SENT,失败只回复 FAILED 加简短原因。`,k=process.env.CLAUDE_CODE_PATH||e("claude");try{let{stdout:a}=await h(k,["--print",j,"--permission-mode","bypassPermissions"],{cwd:d(),timeout:12e4,maxBuffer:1048576,env:process.env}),b=(a||"").trim();return{ok:/\bSENT\b/i.test(b)&&!/\bFAIL/i.test(b),output:b||"(无输出)"}}catch(a){return{ok:!1,output:(a.stdout||a.stderr||a.message||String(a)).trim().slice(0,2e3)}}}async function h(a){let b=await (0,d.ignoreAsk)(a);return(0,c.revalidatePath)("/harness"),{ok:b}}async function i(a){return await (0,d.dismissMessage)(a),(0,c.revalidatePath)("/harness"),{ok:!0}}(0,a.i(630048).ensureServerEntryExports)([e,f,g,h,i]),(0,b.registerServerReference)(e,"40eb2e17b12a4365beee5c57c9b5534f3ef6558a2d",null),(0,b.registerServerReference)(f,"60446c5198ebeed1273c32fd2cc0e5c3704123f6e5",null),(0,b.registerServerReference)(g,"40dc9fc2c9c0b69d14fc779a0bb51b34232d5f18d5",null),(0,b.registerServerReference)(h,"405ffc4d2a36ada45d8f20a5c110910625bba0ffeb",null),(0,b.registerServerReference)(i,"40d082281edf0f7744acdbecc71cddd73868edd2a8",null),a.s(["dismissHarnessMessage",0,i,"getHarnessMessages",0,e,"ignoreHarnessAsk",0,h,"replyHarnessAsk",0,f,"testHarnessTarget",0,g])},540608,a=>{"use strict";var b=a.i(244256),c=a.i(495370),d=a.i(396904),e=a.i(980999),f=a.i(101844),g=a.i(491890),h=a.i(563736),i=a.i(4634),j=a.i(333500);a.s([],456535),a.i(456535),a.s(["00106d4fcb4d66916535f592a22f2432e998f5c560",()=>e.getActualWsPort,"001de1e475f046aa339c23ec372c92b714d1f9a6f5",()=>i.getOnboardingStatus,"0069b845452752e9c446565ecc887751ceb88f8302",()=>b.getWorkspacesWithProjects,"00abe22e017185b0aac474fd740ae59ad8cbff33a3",()=>h.listAllExtensionStatus,"40107191906b7bd9007e9c955d43addd4eb4a5a687",()=>i.setOnboardingProgress,"403508781c13bf9d40b2fa51d399f5ca275af8be45",()=>c.createLabel,"4036232b529af0e5d065629d1878dc1a6e82f9ab45",()=>b.createWorkspace,"403629f8c3d76ad7fbefdd04b8cdbe84c9ffc95758",()=>c.deleteLabel,"4036f95ed5dc32f339eacad6c635ee66f9e026db46",()=>h.checkExtension,"4047d8634587ecb96fe8459ea07f040d7d207f1c96",()=>i.dispatchTaskCompletionEvent,"404b88257c253f72e32b690fbfdc864cdbe54233e3",()=>e.resolveGitLocalPath,"404f73addc943bb8455a63e7ceecb59ca89b3e445c",()=>b.deleteWorkspace,"405ffc4d2a36ada45d8f20a5c110910625bba0ffeb",()=>j.ignoreHarnessAsk,"4064146185600ce222e9bc8e2316f49c9603a85346",()=>f.checkMigrationSafety,"406b9ebf02d3183f04e594426f6a5ebe41a65dee0d",()=>h.installExtension,"4075ec4df24bd89711034f15cca9eb240df9f3f473",()=>e.getConfigValues,"40a4ee923ff0b325baafa490ce673265b4bf3061a2",()=>c.getLabelsForWorkspace,"40adbba8c12c1bdb8072b324eb5ae7afff35a67271",()=>e.resolveGitLocalPathWithSource,"40b03ac97723fe879d9efe21b71e56c5a984151d22",()=>b.createProject,"40b59a54ce49a5ad9953b31159f64bfd2ee911e145",()=>h.uninstallExtension,"40d082281edf0f7744acdbecc71cddd73868edd2a8",()=>j.dismissHarnessMessage,"40da1ea17360e58bedf2e6bf6d1f53246b673da623",()=>b.reorderWorkspaces,"40dc9fc2c9c0b69d14fc779a0bb51b34232d5f18d5",()=>j.testHarnessTarget,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",()=>g.createProductGroup,"40eb2e17b12a4365beee5c57c9b5534f3ef6558a2d",()=>j.getHarnessMessages,"40ff151b677eeaf0636f04e8d87327f4046c314c92",()=>g.getProductGroups,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",()=>d.globalSearch,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",()=>f.analyzeProjectDirectory,"603aca60338da224813e09368e73f008feefa9a4fe",()=>i.completeOnboarding,"60446c5198ebeed1273c32fd2cc0e5c3704123f6e5",()=>j.replyHarnessAsk,"609c9417a5d51517e959d27ee390da88a7c0542bbc",()=>f.migrateProjectPath,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",()=>g.setProjectGroup,"60abd5e499bef8cd1d081b74113f0e817026a864e7",()=>e.getConfigValue,"60bc9436cec7b2f26cf49b181625cda9710fd3e4cc",()=>b.updateWorkspace,"60cfe2e76434418decb73fd3d25bf587d7b5ad1695",()=>e.setConfigValue,"60d98f261d5da4342103e4c5be854bfdc7b172158c",()=>i.setOnboardingExtensions],540608)},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0z-gn78._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0e79g0v._.js"].map(b=>a.l(b))).then(()=>b(962620)))},507502,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js"].map(b=>a.l(b))).then(()=>b(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0s_q09t._.js"].map(b=>a.l(b))).then(()=>b(897667)))},371711,a=>{a.v(a=>Promise.resolve().then(()=>a(319997)))},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)))}];
46
+
47
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0o5ohqy._.js.map
@@ -27,4 +27,4 @@ Rules:
27
27
  - insights array can be empty if nothing notable
28
28
  - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0ti8vng._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
29
29
 
30
- //# sourceMappingURL=%5Broot-of-the-server%5D__0ydiu_y._.js.map
30
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0s_q09t._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},123811,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return e}});class d extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class e extends URLSearchParams{append(){throw new d}delete(){throw new d}set(){throw new d}sort(){throw new d}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},934670,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return e}});var d,e=((d={})[d.SeeOther=303]="SeeOther",d[d.TemporaryRedirect=307]="TemporaryRedirect",d[d.PermanentRedirect=308]="PermanentRedirect",d);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},416997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(934670),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},657327,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(934670),g=a.r(416997),h=a.r(120635).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},860207,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},659708,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(860207),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},462553,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(860207).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},378477,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(860207).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},894891,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},807003,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(860207),e=a.r(416997);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},756353,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(54196),e=a.r(894891),f=a.r(375619),g=a.r(807003),h=a.r(856987),i=a.r(174054);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},155152,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(756353).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},82806,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(123811),g=a.r(657327),h=a.r(659708),i=a.r(462553),j=a.r(378477),k=a.r(155152);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},929493,a=>{"use strict";a.i(82806),a.s([])},737769,a=>{a.v("/_next/static/media/apple-icon.16aocl-s-v2qz.png"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},809361,a=>{"use strict";let b={src:a.i(737769).default,width:180,height:180};a.s(["default",0,b])},110585,a=>{a.v("/_next/static/media/favicon.0y2d6j9cou~8p.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},68611,a=>{"use strict";let b={src:a.i(110585).default,width:48,height:48};a.s(["default",0,b])},234057,a=>{a.v("/_next/static/media/icon1.04ux133882seb.png"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},926452,a=>{"use strict";let b={src:a.i(234057).default,width:96,height:96};a.s(["default",0,b])},651734,a=>{"use strict";a.s(["ArchivePageClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ArchivePageClient() from the server but ArchivePageClient 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/app/workspaces/[workspaceId]/archive/archive-page-client.tsx <module evaluation>","ArchivePageClient")},768719,a=>{"use strict";a.s(["ArchivePageClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ArchivePageClient() from the server but ArchivePageClient 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/app/workspaces/[workspaceId]/archive/archive-page-client.tsx","ArchivePageClient")},474477,a=>{"use strict";a.i(651734);var b=a.i(768719);a.n(b)},841107,a=>a.a(async(b,c)=>{try{var d=a.i(203469);a.i(929493);var e=a.i(82806),f=a.i(761469),g=a.i(689171),h=a.i(244256),i=a.i(474477),j=b([g]);async function k({params:a,searchParams:b}){let{workspaceId:c}=await a,{projectId:j}=await b;await f.db.workspace.findUnique({where:{id:c},select:{id:!0}})||(0,e.notFound)();let l=await (0,h.getWorkspacesWithProjects)(),m=l.find(a=>a.id===c),n=(j?m?.projects.find(a=>a.id===j):void 0)??m?.projects[0],o=n?await (0,g.getArchivedTasks)(n.id):[];return(0,d.jsx)(i.ArchivePageClient,{allWorkspaces:l,initialWorkspaceId:c,initialProjectId:n?.id??null,initialTasks:o})}[g]=j.then?(await j)():j,a.s(["default",0,k]),c()}catch(a){c(a)}},!1),926846,a=>{a.n(a.i(841107))}];
1
+ module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},123811,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return e}});class d extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class e extends URLSearchParams{append(){throw new d}delete(){throw new d}set(){throw new d}sort(){throw new d}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},934670,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return e}});var d,e=((d={})[d.SeeOther=303]="SeeOther",d[d.TemporaryRedirect=307]="TemporaryRedirect",d[d.PermanentRedirect=308]="PermanentRedirect",d);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},416997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(934670),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},657327,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(934670),g=a.r(416997),h=a.r(120635).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},860207,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},659708,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(860207),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},462553,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(860207).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},378477,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(860207).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},894891,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},807003,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(860207),e=a.r(416997);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},756353,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(54196),e=a.r(894891),f=a.r(375619),g=a.r(807003),h=a.r(856987),i=a.r(174054);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},155152,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(756353).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},82806,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(123811),g=a.r(657327),h=a.r(659708),i=a.r(462553),j=a.r(378477),k=a.r(155152);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},929493,a=>{"use strict";a.i(82806),a.s([])},737769,a=>{a.v("/_next/static/media/apple-icon.16aocl-s-v2qz.png"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},809361,a=>{"use strict";let b={src:a.i(737769).default,width:180,height:180};a.s(["default",0,b])},110585,a=>{a.v("/_next/static/media/favicon.0y2d6j9cou~8p.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},68611,a=>{"use strict";let b={src:a.i(110585).default,width:48,height:48};a.s(["default",0,b])},234057,a=>{a.v("/_next/static/media/icon1.04ux133882seb.png"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},926452,a=>{"use strict";let b={src:a.i(234057).default,width:96,height:96};a.s(["default",0,b])},651734,a=>{"use strict";a.s(["ArchivePageClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ArchivePageClient() from the server but ArchivePageClient 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/app/workspaces/[workspaceId]/archive/archive-page-client.tsx <module evaluation>","ArchivePageClient")},768719,a=>{"use strict";a.s(["ArchivePageClient",()=>b]);let b=(0,a.i(797225).registerClientReference)(function(){throw Error("Attempted to call ArchivePageClient() from the server but ArchivePageClient 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/app/workspaces/[workspaceId]/archive/archive-page-client.tsx","ArchivePageClient")},474477,a=>{"use strict";a.i(651734);var b=a.i(768719);a.n(b)},841107,a=>{"use strict";var b=a.i(203469);a.i(929493);var c=a.i(82806),d=a.i(761469),e=a.i(689171),f=a.i(244256),g=a.i(474477);async function h({params:a,searchParams:i}){let{workspaceId:j}=await a,{projectId:k}=await i;await d.db.workspace.findUnique({where:{id:j},select:{id:!0}})||(0,c.notFound)();let l=await (0,f.getWorkspacesWithProjects)(),m=l.find(a=>a.id===j),n=(k?m?.projects.find(a=>a.id===k):void 0)??m?.projects[0],o=n?await (0,e.getArchivedTasks)(n.id):[];return(0,b.jsx)(g.ArchivePageClient,{allWorkspaces:l,initialWorkspaceId:j,initialProjectId:n?.id??null,initialTasks:o})}a.s(["default",0,h])},926846,a=>{a.n(a.i(841107))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0s~4y3y._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[163812,a=>{"use strict";var b=a.i(902157),c=a.i(874533),d=a.i(750227);function e(a=process.platform){return"win32"===a}function f(a){let b=a.replace(/\r\n|\r|\n/g," ");if(!b.length)return'""';let c=b.replace(/"/g,'""');return/[\s"&<>|^()]/.test(c)?`"${c}"`:c}let g=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function h(a,b={}){let c=b.cwd??process.cwd(),f=b.env??process.env,g=b.platform??process.platform;if(a.includes("/")||a.includes("\\")){let b=d.default.isAbsolute(a)?a:d.default.resolve(c,a);return await m(b,g)?b:null}let i=f.PATH??f.Path??"",j=e(g)?";":":",k=i.split(j).filter(Boolean),l=e(g)?(f.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],n=e(g)&&d.default.extname(a).length>0;for(let b of k)for(let c of e(g)?n?[d.default.join(b,a)]:l.map(c=>d.default.join(b,`${a}${c}`)):[d.default.join(b,a)])if(await m(c,g))return c;return null}let i=a=>(0,c.execSync)(a,{encoding:"utf-8",timeout:5e3,stdio:["ignore","pipe","ignore"]});function j(a,b=process.platform,f=i){if(d.default.extname(a)||a.includes("/")||a.includes("\\"))return a;if(!e(b)){try{let b=(0,c.execFileSync)("which",[a],{encoding:"utf-8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();if(b)return b}catch{}return a}try{let b=f(`where ${a}`).trim().split("\n").map(a=>a.trim()).filter(Boolean),c=b.find(a=>/\.(cmd|bat|exe)$/i.test(a));if(c)return c;if(b.length>0)return b[0]}catch{}return a}async function k(a,b,c={}){let d=c.env??process.env,e=c.platform??process.platform;return l(await h(a,c)??a,b,d,e)}function l(a,b,c,g){if(!e(g))return{command:a,args:b};let h=d.default.extname(a).toLowerCase();return".cmd"===h||".bat"===h||".com"===h?{command:c.ComSpec||"cmd.exe",args:["/d","/s","/c",[f(a),...b.map(f)].join(" ")]}:{command:a,args:b}}async function m(a,c=process.platform){try{return await b.promises.access(a,e(c)?b.constants.F_OK:b.constants.X_OK),!0}catch{return!1}}async function n(a=process.platform){return e(a)?p():o()}async function o(){try{let a=await b.promises.readFile("/etc/shells","utf-8"),c=[],e=new Map;for(let b of a.split("\n")){let a=b.replace(/#.*/,"").trim();if(!a||!a.startsWith("/")||!await m(a))continue;let f=d.default.basename(a),g=e.get(f)??0;e.set(f,g+1),g>0&&(f=`${f} (${g+1})`),c.push({name:f,path:a})}return c}catch{let a=[];for(let b of["/bin/zsh","/bin/bash","/bin/sh"])await m(b)&&a.push({name:d.default.basename(b),path:b});return a}}async function p(){let a=[],b=[],c=await h("git",{platform:"win32"});if(c){let a=d.default.resolve(d.default.dirname(c),"..","..");b.push(d.default.join(a,"bin","bash.exe"),d.default.join(a,"usr","bin","bash.exe"))}for(let a of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?d.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))b.push(d.default.join(a,"Git","bin","bash.exe"),d.default.join(a,"Git","usr","bin","bash.exe"));let e=process.env.USERPROFILE??"";for(let c of(e&&b.push(d.default.join(e,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&b.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),b))if(await m(c,"win32")){a.push({name:"Git Bash",path:c});break}let f=await h("pwsh",{platform:"win32"});f&&a.push({name:"PowerShell",path:f});let g=process.env.windir??"C:\\WINDOWS",i=d.default.join(g,"System32","WindowsPowerShell","v1.0","powershell.exe");await m(i,"win32")&&a.push({name:"Windows PowerShell",path:i});let j=process.env.ComSpec??d.default.join(g,"System32","cmd.exe");return await m(j,"win32")&&a.push({name:"Command Prompt",path:j}),a}let q=[{name:"Terminal",bundleName:"Terminal"},{name:"iTerm2",bundleName:"iTerm"},{name:"Warp",bundleName:"Warp"},{name:"Alacritty",bundleName:"Alacritty"},{name:"WezTerm",bundleName:"WezTerm"},{name:"kitty",bundleName:"kitty"},{name:"Hyper",bundleName:"Hyper"}];async function r(a=process.platform){if("darwin"===a){let b=[];for(let c of q){let d=await m(`/Applications/${c.bundleName}.app`,a);b.push({name:c.name,value:c.bundleName,installed:d})}return b}if(e(a)){let b=[],c=await h("wt",{platform:a});return c&&b.push({name:"Windows Terminal",value:c,installed:!0}),b}return[]}let s=[{name:"VS Code",command:"code"},{name:"VS Code Insiders",command:"code-insiders"},{name:"Cursor",command:"cursor"},{name:"Windsurf",command:"windsurf"},{name:"Zed",command:"zed"},{name:"Sublime Text",command:"subl"},{name:"IntelliJ IDEA",command:"idea"},{name:"WebStorm",command:"webstorm"},{name:"PyCharm",command:"pycharm"},{name:"GoLand",command:"goland"},{name:"RubyMine",command:"rubymine"},{name:"PhpStorm",command:"phpstorm"},{name:"CLion",command:"clion"},{name:"Rider",command:"rider"}],t={code:{darwin:["/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"],win32:["%LOCALAPPDATA%\\Programs\\Microsoft VS Code\\bin\\code.cmd","%ProgramFiles%\\Microsoft VS Code\\bin\\code.cmd"]},"code-insiders":{darwin:["/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin/code-insiders"],win32:["%LOCALAPPDATA%\\Programs\\Microsoft VS Code Insiders\\bin\\code-insiders.cmd","%ProgramFiles%\\Microsoft VS Code Insiders\\bin\\code-insiders.cmd"]},cursor:{darwin:["/Applications/Cursor.app/Contents/Resources/app/bin/cursor"],win32:["%LOCALAPPDATA%\\Programs\\cursor\\resources\\app\\bin\\cursor.cmd"]},windsurf:{darwin:["/Applications/Windsurf.app/Contents/Resources/app/bin/windsurf"],win32:["%LOCALAPPDATA%\\Programs\\Windsurf\\bin\\windsurf.cmd"]},zed:{darwin:["/Applications/Zed.app/Contents/MacOS/cli"]},subl:{darwin:["/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"],win32:["%ProgramFiles%\\Sublime Text\\subl.exe","%ProgramFiles%\\Sublime Text 3\\subl.exe"]},idea:{darwin:["/Applications/IntelliJ IDEA.app/Contents/MacOS/idea","/Applications/IntelliJ IDEA CE.app/Contents/MacOS/idea"]},webstorm:{darwin:["/Applications/WebStorm.app/Contents/MacOS/webstorm"]},pycharm:{darwin:["/Applications/PyCharm.app/Contents/MacOS/pycharm","/Applications/PyCharm CE.app/Contents/MacOS/pycharm"]},goland:{darwin:["/Applications/GoLand.app/Contents/MacOS/goland"]},rubymine:{darwin:["/Applications/RubyMine.app/Contents/MacOS/rubymine"]},phpstorm:{darwin:["/Applications/PhpStorm.app/Contents/MacOS/phpstorm"]},clion:{darwin:["/Applications/CLion.app/Contents/MacOS/clion"]},rider:{darwin:["/Applications/Rider.app/Contents/MacOS/rider"]}};async function u(a,b={}){let c=b.platform??process.platform,d=b.env??process.env,f=await h(a,b);if(f)return f;for(let b of t[a]?.[c]??[]){let a=e(c)?function(a,b){return a.replace(/%([^%]+)%/g,(a,c)=>{let d=b[c];if(void 0!==d)return d;let e=Object.keys(b).find(a=>a.toLowerCase()===c.toLowerCase());return e?b[e]??a:a})}(b,d):b;if(await m(a,c))return a}return null}async function v(a=process.platform){let b=[];for(let c of s){let d=!!await u(c.command,{platform:a});b.push({name:c.name,command:c.command,installed:d})}return b}a.s(["detectEditors",0,v,"detectShells",0,n,"detectTerminalApps",0,r,"ensurePathInEnv",0,function(a,b=process.platform){let c=e(b)?"Path":"PATH";return(a.PATH??a.Path??"").length>0?a:{...a,[c]:function(a=process.platform){return e(a)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(b)}},"isWindows",0,e,"resolveCommandPathSync",0,j,"resolveEditorBinary",0,u,"resolveSpawnTarget",0,k,"resolveSpawnTargetSync",0,function(a,b,c=process.platform,d){return l(j(a,c,d),b,process.env,c)},"stripClaudeNestingEnv",0,function(a){let b={...a};for(let a of g)delete b[a];return b},"wrapShellCommand",0,function(a,b=process.platform,c=process.env){return e(b)?{command:c.ComSpec||"cmd.exe",args:["/d","/s","/c",a]}:{command:"/bin/sh",args:["-c",a]}}])},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"))},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"))},933919,(a,b,c)=>{b.exports=a.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},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"}}},319997,a=>{"use strict";let b;var c=a.i(750227),d=a.i(660526),e=a.i(666680),f=a.i(902157);function g(){return b||(b=process.env.TOWER_DATA_DIR||(0,c.join)((0,d.homedir)(),".tower"),(0,f.existsSync)(b)||(0,f.mkdirSync)(b,{recursive:!0})),b}function h(){return(0,c.join)(g(),"storage")}function i(){return(0,c.join)(g(),"storage-location")}function j(){try{let a=(0,f.readFileSync)(i(),"utf-8").trim();return a.length>0?a:null}catch{return null}}a.s(["getBackupsDir",0,function(){let a=(0,c.join)(g(),"backups");return(0,f.existsSync)(a)||(0,f.mkdirSync)(a,{recursive:!0}),a},"getDatabaseDir",0,function(){let a=(0,c.join)(g(),"database");return(0,f.existsSync)(a)||(0,f.mkdirSync)(a,{recursive:!0}),a},"getDefaultStorageDir",0,h,"getExtensionsDir",0,function(){let a=(0,c.join)(g(),"extensions");return(0,f.existsSync)(a)||(0,f.mkdirSync)(a,{recursive:!0}),a},"getSignalDir",0,function(){let a=process.env.TOWER_DATA_DIR||(0,c.join)((0,d.homedir)(),".tower"),b=(0,e.createHash)("sha256").update(a).digest("hex").slice(0,16);return(0,c.join)((0,d.tmpdir)(),"tower-signals",b)},"getStorageDir",0,function(){let a=process.env.TOWER_STORAGE_DIR||j(),b=a&&a.length>0?a:h();return(0,f.existsSync)(b)||(0,f.mkdirSync)(b,{recursive:!0}),b},"getTowerDbFilePath",0,function(){let a=process.env.TOWER_DATA_DIR||(0,c.join)((0,d.homedir)(),".tower");return(0,c.join)(a,"database","tower.db")},"getTowerDir",0,g,"readStoragePointer",0,j,"writeStoragePointer",0,function(a){let b=i();null===a?(0,f.rmSync)(b,{force:!0}):(0,f.writeFileSync)(b,a,"utf-8")}])},761469,a=>{"use strict";var b=a.i(933919),c=a.i(319997);let d=globalThis.prisma??new b.PrismaClient({datasourceUrl:`file:${(0,c.getTowerDbFilePath)()}`,log:[]}),e=!1;async function f(){return e||((0,c.getDatabaseDir)(),await d.$connect(),await d.$queryRaw`PRAGMA journal_mode=WAL`,await d.$queryRaw`PRAGMA busy_timeout=5000`,e=!0),d}async function g(){try{await d.$disconnect()}catch{}e=!1,await f()}process.on("SIGTERM",()=>{d.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{d.$disconnect().catch(()=>{})}),a.s(["db",0,d,"resetDbConnection",0,g])},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)}))}}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0s~ak20._.js.map
@@ -0,0 +1,30 @@
1
+ module.exports=[52350,562278,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(163812);function f(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}a.s(["getPackageRoot",0,f],562278);let g=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=["--dangerously-skip-permissions"];a.extraArgs?.length&&b.push(...a.extraArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){try{let a=this.readSettings(),b=a.hooks??{},c=f().replace(/\\/g,"/"),e=d.join(c,"scripts","tower-session-start-hook.js").replace(/\\/g,"/"),g=d.join(c,"scripts","tower-post-tool-hook.js").replace(/\\/g,"/"),h=d.join(c,"scripts","tower-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,g]of[["SessionStart","session-start-hook.js","tower-session-start-hook.js"],["PostToolUse","post-tool-hook.js","tower-post-tool-hook.js"],["Stop","stop-hook.js","tower-stop-hook.js"]]){let h=this.getHookArray(b,a),i=h.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(f)));if(i<0)continue;let j=d.join(c,"scripts",g).replace(/\\/g,"/"),k=`node "${j}"`,l=h[i]?.hooks?.[0];l&&l.command!==k&&(l.command=k,b[a]=h,e=!0)}e&&(a.hooks=b,this.writeSettings(a))}catch{}}upsertHook(a,b,c,d){let e=this.getHookArray(a,b),f=d?.hooks?.[0]?.command,g=e.findIndex(a=>a?.hooks?.some?.(a=>a.command?.includes(c)));if(g>=0){if(e[g]?.hooks?.[0]?.command===f)return!1;e.splice(g,1)}return e.push(d),a[b]=e,!0}async uninstallHooks(){try{let a=this.readSettings(),b=a.hooks??{},c=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let a of["SessionStart","PostToolUse","Stop"]){let d=this.getHookArray(b,a);b[a]=d.filter(a=>!a.hooks?.some(a=>c.some(b=>a.command?.includes(b))))}return a.hooks=b,this.writeSettings(a),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(a){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:a instanceof Error?a.message:String(a)}}}async isHooksInstalled(){let a=this.readSettings().hooks??{},b=this.getHookArray(a,"PostToolUse");return this.hasHook(b,"post-tool-hook.js")}async installMcp(a,b={}){let c=b.scope??"user",d={command:a.command,args:a.args};a.env&&Object.keys(a.env).length>0&&(d.env=a.env);let e=this.resolveCommand(),f=["mcp","add-json","-s",c,a.name,JSON.stringify(d)];try{return await this.runCli(e,["mcp","remove","-s",c,a.name],b.cwd).catch(()=>{}),await this.runCli(e,f,b.cwd),{ok:!0,method:"cli",detail:`${e} ${f.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${e} ${f.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async uninstallMcp(a,b={}){let c=b.scope??"user",d=this.resolveCommand(),e=["mcp","remove","-s",c,a];try{return await this.runCli(d,e,b.cwd),{ok:!0,method:"cli",detail:`${d} ${e.join(" ")}`}}catch(a){return{ok:!1,method:"cli",detail:`${d} ${e.join(" ")}`,error:a instanceof Error?a.message:String(a)}}}async isMcpInstalled(a,b={}){let c=this.resolveCommand();try{return await this.runCli(c,["mcp","get",a],b.cwd,5e3),!0}catch{return!1}}async installSkill(a,c){let f=d.join(this.getConfigDir(),"skills",a);try{if(!b.existsSync(c))return{ok:!1,method:"symlink",detail:f,error:`Source skill dir does not exist: ${c}`};b.mkdirSync(d.dirname(f),{recursive:!0});let a=await b.promises.lstat(f).catch(()=>null);if(a)if(!(a.isSymbolicLink()||(0,e.isWindows)()&&a.isDirectory()))return{ok:!1,method:"symlink",detail:f,error:`Refusing to overwrite non-symlink at ${f}`};else try{let a=await b.promises.readlink(f);if(d.resolve(a)===d.resolve(c))return{ok:!0,method:"symlink",detail:`${f} → ${c} (already)`};await b.promises.unlink(f)}catch{if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:f,error:`Refusing to overwrite non-symlink at ${f}`}}let g=(0,e.isWindows)()?"junction":"dir";return await b.promises.symlink(c,f,g),{ok:!0,method:"symlink",detail:`${f} → ${c}`}}catch(a){return{ok:!1,method:"symlink",detail:f,error:a instanceof Error?a.message:String(a)}}}async uninstallSkill(a){let c=d.join(this.getConfigDir(),"skills",a);try{let a=await b.promises.lstat(c).catch(()=>null);if(!a)return{ok:!0,method:"symlink",detail:`${c} (already absent)`};if(!a.isSymbolicLink())return{ok:!1,method:"symlink",detail:c,error:`Refusing to remove non-symlink at ${c}`};return await b.promises.unlink(c),{ok:!0,method:"symlink",detail:c}}catch(a){return{ok:!1,method:"symlink",detail:c,error:a instanceof Error?a.message:String(a)}}}async isSkillInstalled(a,c){let e=d.join(this.getConfigDir(),"skills",a);try{if(!(await b.promises.lstat(e)).isSymbolicLink())return!1;if(!c)return!0;let a=await b.promises.readlink(e),f=d.isAbsolute(a)?a:d.resolve(d.dirname(e),a);return d.resolve(f)===d.resolve(c)}catch{return!1}}async runCli(b,c,d,e=1e4){let{execFile:f}=await a.A(482848),{promisify:g}=await a.A(268548),h=g(f),{stdout:i}=await h(b,c,{cwd:d,timeout:e});return i}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),{resolveSpawnTarget:d}=await a.A(889618),e=c(b),f=await d(this.resolveCommand(),["--version"]),{stdout:g}=await e(f.command,f.args,{timeout:5e3});return g.trim()||null}catch{return null}}async getModels(){return g}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(a){return{command:this.resolveCommand(),args:["--print",a,"--output-format","stream-json","--verbose"]}}resolveCommand(){if(process.env.CLAUDE_CODE_PATH)return process.env.CLAUDE_CODE_PATH;if((0,e.isWindows)()){let a=(0,e.resolveCommandPathSync)("claude-code");if("claude-code"!==a)return a}return(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getHookArray(a,b){let c=a[b];return Array.isArray(c)?c:[]}hasHook(a,b){return a.some(a=>a.hooks?.some(a=>a.command?.includes(b)))}}],52350)},897667,a=>{"use strict";let b=new(a.i(52350)).ClaudeCliAdapter;async function c(d,e,f={}){let g="";try{let{query:c}=await a.A(719041),h=b.resolveCommand();for await(let a of c({prompt:d,options:{tools:f.tools??[],allowedTools:f.allowedTools??[],maxTurns:f.maxTurns??1,cwd:e,pathToClaudeCodeExecutable:h,sessionPersistence:!1}}))if("assistant"===a.type){let b=a.message.content.filter(a=>"text"===a.type);g+=b.map(a=>a.text??"").join("")}else if("result"===a.type){let b="string"==typeof a.result?a.result:"";b&&!g&&(g=b)}return g.trim()||null}catch(a){if(a.message?.includes("maximum number of turns")&&g.trim())return g.trim();return console.error("[aiQuery] Failed:",a.message,a.stack?.slice(0,300)),null}}async function d(a,b){let d=`以下是一次AI编程助手的终端会话记录。请用一句简短的中文总结这次会话做了什么(不超过50字,只回答总结内容,不要加引号或前缀):
2
+
3
+ \`\`\`
4
+ ${a.slice(-5e3)}
5
+ \`\`\``,e=await c(d,b);return e&&e.replace(/^[#*\->"'\s]+/,"").trim()||null}async function e(a,b,d){let e=a.slice(-8e3),f=d?`
6
+ Session summary: ${d}`:"",g=`You are analyzing a completed AI coding session. Extract reusable insights.
7
+ ${f}
8
+
9
+ Terminal log (last 8000 chars):
10
+ \`\`\`
11
+ ${e}
12
+ \`\`\`
13
+
14
+ Respond ONLY with valid JSON matching this schema (no markdown, no explanation):
15
+ {
16
+ "summary": "one-sentence summary of what was accomplished",
17
+ "insights": [
18
+ { "type": "pattern|pitfall|decision|tool|reference", "content": "description" }
19
+ ],
20
+ "shouldCreateNote": true/false,
21
+ "noteTitle": "short title for the note (only if shouldCreateNote is true)"
22
+ }
23
+
24
+ Rules:
25
+ - Set shouldCreateNote=true ONLY if there are genuinely reusable insights (architectural decisions, non-obvious pitfalls, useful patterns, important tool discoveries)
26
+ - Trivial sessions (simple formatting, single-line edits, routine commits) should have shouldCreateNote=false
27
+ - insights array can be empty if nothing notable
28
+ - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0ti8vng._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
29
+
30
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0ta_mpj._.js.map
@@ -27,4 +27,4 @@ Rules:
27
27
  - insights array can be empty if nothing notable
28
28
  - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},818992,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(761469),e=a.i(897667),f=a.i(103071);function g(a,c){return(0,b.execFileSync)("git",a,{cwd:c,timeout:1e4,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}function h(a,b){if(b)return b;for(let b of["main","master","develop"])try{return g(["merge-base","HEAD",b],a)}catch{}return null}function i(a){if(!a)return null;let b=a.split("\n").filter(Boolean);if(0===b.length)return null;let c=b[0].replace(/^[a-f0-9]+\s+/,"");return 1===b.length?c:`${b.length} commits: ${c}`}async function j(a,b,f,k,l,m=null){try{let b;console.error(`[captureExecutionSummary] Starting: exec=${a.slice(0,8)} exit=${f} buffer=${k.length}chars worktree=${l} fork=${m?.slice(0,8)??"none"}`);let j=null,n=null,o=null;if(l&&(0,c.existsSync)(l))try{if(g(["rev-parse","--git-dir"],l),j=function(a,b){try{let c=h(a,b);if(!c)return null;return g(["log","--oneline",`${c}..HEAD`],a)||null}catch{return null}}(l,m),(n=function(a,b){try{let c=h(a,b);if(!c)return null;let d=g(["diff","--stat",`${c}..HEAD`],a);if(!d)return null;return function(a){let b=a.split("\n"),c=b[b.length-1];if(!c)return null;let d=c.match(/(\d+)\s+files?\s+changed/),e=c.match(/(\d+)\s+insertions?\(\+\)/),f=c.match(/(\d+)\s+deletions?\(-\)/);return d||e||f?{commits:0,filesChanged:d?parseInt(d[1],10):0,insertions:e?parseInt(e[1],10):0,deletions:f?parseInt(f[1],10):0}:null}(d)}catch{return null}}(l,m))&&j){let a=j.split("\n").filter(Boolean).length;n={...n,commits:a}}o=i(j)}catch{}let p=(b=k.replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g,"").replace(/\x1b\[[0-9;?]*[A-Za-z]/g,"").replace(/\x1b[^[\]()][^\x1b]*/g,"").replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"").replace(/\n{3,}/g,"\n\n").trim()).length<=10240?b:b.slice(b.length-10240);await d.db.taskExecution.update({where:{id:a},data:{summary:o??(j?i(j):null),gitLog:j??null,gitStats:n?JSON.stringify(n):null,exitCode:f,terminalLog:p||null}}),p&&l&&(console.error("[captureExecutionSummary] Starting background AI summary..."),(0,e.generateSummaryFromLog)(p,l).then(async b=>{b&&(console.error(`[captureExecutionSummary] AI summary ready: ${b.slice(0,80)}`),await d.db.taskExecution.update({where:{id:a},data:{summary:b}}))}).catch(a=>{console.error("[captureExecutionSummary] Background AI summary failed:",a)}))}catch(a){console.error("[captureExecutionSummary] Failed to capture summary:",a)}}async function k(a){try{let b=await d.db.task.findUnique({where:{id:a},select:{projectId:!0,executions:{orderBy:{createdAt:"desc"},select:{id:!0,terminalLog:!0,worktreePath:!0,summary:!0}}}});if(!b||0===b.executions.length)return;let c="",g=null,h=[];for(let a of b.executions)a.terminalLog&&(c+=a.terminalLog+"\n---\n"),a.summary&&h.push(a.summary),!g&&a.worktreePath&&(g=a.worktreePath);if(!(c=c.slice(-8e3)).trim())return;let i=h.join("\n"),j=g||process.cwd();console.error(`[captureTaskDreaming] Starting for task=${a.slice(0,8)}, ${b.executions.length} executions`);let k=await (0,e.generateDreamingInsight)(c,j,i);if(!k||!k.shouldCreateNote)return void console.error("[captureTaskDreaming] No note needed");let l=await d.db.projectNote.create({data:{title:k.noteTitle||k.summary.slice(0,50),content:function(a){let b=[];if(b.push("## Summary"),b.push(a.summary),b.push(""),a.insights.length>0)for(let c of(b.push("## Insights"),a.insights))b.push(`- **[${c.type}]**: ${c.content}`);return b.join("\n")}(k),category:f.SESSION_INSIGHT_CATEGORY,projectId:b.projectId,taskId:a}}),m=b.executions[0].id;await d.db.taskExecution.update({where:{id:m},data:{insightNoteId:l.id}}),console.error(`[captureTaskDreaming] Note created: ${l.id}`)}catch(a){console.error("[captureTaskDreaming] Failed:",a)}}a.s(["captureExecutionSummary",0,j,"captureTaskDreaming",0,k])},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0ti8vng._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
29
29
 
30
- //# sourceMappingURL=%5Broot-of-the-server%5D__0t_zq~v._.js.map
30
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0trmndk._.js.map
@@ -27,4 +27,4 @@ Rules:
27
27
  - insights array can be empty if nothing notable
28
28
  - Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},818992,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(761469),e=a.i(897667),f=a.i(103071);function g(a,c){return(0,b.execFileSync)("git",a,{cwd:c,timeout:1e4,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}function h(a,b){if(b)return b;for(let b of["main","master","develop"])try{return g(["merge-base","HEAD",b],a)}catch{}return null}function i(a){if(!a)return null;let b=a.split("\n").filter(Boolean);if(0===b.length)return null;let c=b[0].replace(/^[a-f0-9]+\s+/,"");return 1===b.length?c:`${b.length} commits: ${c}`}async function j(a,b,f,k,l,m=null){try{let b;console.error(`[captureExecutionSummary] Starting: exec=${a.slice(0,8)} exit=${f} buffer=${k.length}chars worktree=${l} fork=${m?.slice(0,8)??"none"}`);let j=null,n=null,o=null;if(l&&(0,c.existsSync)(l))try{if(g(["rev-parse","--git-dir"],l),j=function(a,b){try{let c=h(a,b);if(!c)return null;return g(["log","--oneline",`${c}..HEAD`],a)||null}catch{return null}}(l,m),(n=function(a,b){try{let c=h(a,b);if(!c)return null;let d=g(["diff","--stat",`${c}..HEAD`],a);if(!d)return null;return function(a){let b=a.split("\n"),c=b[b.length-1];if(!c)return null;let d=c.match(/(\d+)\s+files?\s+changed/),e=c.match(/(\d+)\s+insertions?\(\+\)/),f=c.match(/(\d+)\s+deletions?\(-\)/);return d||e||f?{commits:0,filesChanged:d?parseInt(d[1],10):0,insertions:e?parseInt(e[1],10):0,deletions:f?parseInt(f[1],10):0}:null}(d)}catch{return null}}(l,m))&&j){let a=j.split("\n").filter(Boolean).length;n={...n,commits:a}}o=i(j)}catch{}let p=(b=k.replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g,"").replace(/\x1b\[[0-9;?]*[A-Za-z]/g,"").replace(/\x1b[^[\]()][^\x1b]*/g,"").replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"").replace(/\n{3,}/g,"\n\n").trim()).length<=10240?b:b.slice(b.length-10240);await d.db.taskExecution.update({where:{id:a},data:{summary:o??(j?i(j):null),gitLog:j??null,gitStats:n?JSON.stringify(n):null,exitCode:f,terminalLog:p||null}}),p&&l&&(console.error("[captureExecutionSummary] Starting background AI summary..."),(0,e.generateSummaryFromLog)(p,l).then(async b=>{b&&(console.error(`[captureExecutionSummary] AI summary ready: ${b.slice(0,80)}`),await d.db.taskExecution.update({where:{id:a},data:{summary:b}}))}).catch(a=>{console.error("[captureExecutionSummary] Background AI summary failed:",a)}))}catch(a){console.error("[captureExecutionSummary] Failed to capture summary:",a)}}async function k(a){try{let b=await d.db.task.findUnique({where:{id:a},select:{projectId:!0,executions:{orderBy:{createdAt:"desc"},select:{id:!0,terminalLog:!0,worktreePath:!0,summary:!0}}}});if(!b||0===b.executions.length)return;let c="",g=null,h=[];for(let a of b.executions)a.terminalLog&&(c+=a.terminalLog+"\n---\n"),a.summary&&h.push(a.summary),!g&&a.worktreePath&&(g=a.worktreePath);if(!(c=c.slice(-8e3)).trim())return;let i=h.join("\n"),j=g||process.cwd();console.error(`[captureTaskDreaming] Starting for task=${a.slice(0,8)}, ${b.executions.length} executions`);let k=await (0,e.generateDreamingInsight)(c,j,i);if(!k||!k.shouldCreateNote)return void console.error("[captureTaskDreaming] No note needed");let l=await d.db.projectNote.create({data:{title:k.noteTitle||k.summary.slice(0,50),content:function(a){let b=[];if(b.push("## Summary"),b.push(a.summary),b.push(""),a.insights.length>0)for(let c of(b.push("## Insights"),a.insights))b.push(`- **[${c.type}]**: ${c.content}`);return b.join("\n")}(k),category:f.SESSION_INSIGHT_CATEGORY,projectId:b.projectId,taskId:a}}),m=b.executions[0].id;await d.db.taskExecution.update({where:{id:m},data:{insightNoteId:l.id}}),console.error(`[captureTaskDreaming] Note created: ${l.id}`)}catch(a){console.error("[captureTaskDreaming] Failed:",a)}}a.s(["captureExecutionSummary",0,j,"captureTaskDreaming",0,k])},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0ti8vng._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
29
29
 
30
- //# sourceMappingURL=%5Broot-of-the-server%5D__08etd~v._.js.map
30
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0u3~-.g._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[328521,a=>{"use strict";var b=a.i(874533),c=a.i(912714),d=a.i(750227);let e=(0,a.i(319997).getSignalDir)(),f="pid-",g=["claude","claude-code","codex"];function h(a){return(0,d.join)(e,`${f}${a}`)}async function i(a,b){try{await (0,c.mkdir)(e,{recursive:!0,mode:448}),await (0,c.writeFile)(h(a),String(b),{mode:384})}catch{}}async function j(a){try{await (0,c.unlink)(h(a))}catch{}}async function k(){let a;try{a=await (0,c.readdir)(e)}catch{return 0}let h=0;for(let i of a){let a;if(!i.startsWith(f))continue;let j=(0,d.join)(e,i);try{a=parseInt((await (0,c.readFile)(j,"utf-8")).trim(),10)}catch{continue}if((await (0,c.unlink)(j).catch(()=>{}),Number.isInteger(a)&&!(a<=1)&&function(a){try{return process.kill(a,0),!0}catch(a){return a?.code==="EPERM"}}(a)&&"win32"!==process.platform)&&function(a){try{let c=(0,b.execFileSync)("ps",["-p",String(a),"-o","command="],{encoding:"utf-8",timeout:3e3}).trim();if(!c)return!1;return g.some(a=>c.includes(a))}catch{return!1}}(a))try{process.kill(-a,"SIGKILL"),h++}catch{}}return h}a.s(["clearSessionPid",0,j,"reapOrphanedProcesses",0,k,"recordSessionPid",0,i])},962620,a=>{"use strict";var b=a.i(42847),c=a.i(163812),d=a.i(328521);let e=globalThis;e.__ptySessions||(e.__ptySessions=new Map);let f=e.__ptySessions;function g(a){let b=f.get(a);if(b)return f.delete(a),b.disconnectTimer&&(clearTimeout(b.disconnectTimer),b.disconnectTimer=null),b.killTree(),b}function h(a){g(a)&&(0,d.clearSessionPid)(a)}function i(){for(let a of f.keys())h(a)}let j=globalThis;"phase-production-build"===process.env.NEXT_PHASE||j.__ptySignalHandlersRegistered||(j.__ptySignalHandlersRegistered=!0,process.once("SIGTERM",()=>{console.error("[session-store] SIGTERM received — cleaning up PTY sessions"),i()}),process.once("SIGINT",()=>{console.error("[session-store] SIGINT received — cleaning up PTY sessions"),i()})),a.s(["createSession",0,function(a,e,h,i,j,k,l,m,n){g(a);let{command:o,args:p}=(0,c.resolveSpawnTargetSync)(e,h),q=new b.PtySession(a,o,p,i,j,k,l,m,n);return f.set(a,q),(0,d.recordSessionPid)(a,q.pid),q},"destroyAllSessions",0,i,"destroySession",0,h,"getSession",0,function(a){return f.get(a)}])},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,"404cffeebf9cd5b11929ed56c5dbcb3e79b820450e",null),(0,b.registerServerReference)(f,"4095cdaa3938b40c0ea0a88b6eb9f0bcfc7c31aa37",null),(0,b.registerServerReference)(g,"40e19466379d9cfbf66fdbf7fcc53b5b163b8ff584",null),(0,b.registerServerReference)(h,"609e6d93185ca81f068f317bfa22b1a7fe0845458e",null),(0,b.registerServerReference)(i,"40f8a1d8e3cecafa1c8b48ae6239f0bdcedae2a59f",null),(0,b.registerServerReference)(j,"60419f442541ca1e5356a8b7b4b672f72e79d4c100",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"updatePrompt",0,h])},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_04nzvfd._.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/_0j7m~u6._.js"].map(b=>a.l(b))).then(()=>b(897667)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},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)))},404793,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0y5zzg-._.js"].map(b=>a.l(b))).then(()=>b(855274)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0p5ft59._.js"].map(b=>a.l(b))).then(()=>b(818992)))},200442,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0ty4xe6._.js"].map(b=>a.l(b))).then(()=>b(941750)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},268548,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_util_0xr.y7p._.js"].map(b=>a.l(b))).then(()=>b(812057)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},610073,a=>{a.v(a=>Promise.resolve().then(()=>a(4634)))},185270,a=>{a.v(a=>Promise.resolve().then(()=>a(830296)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0vyl8to._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},10390,a=>{"use strict";var b=a.i(421992);a.s(["ChevronRight",()=>b.default])},912868,a=>{"use strict";let b=(0,a.i(711796).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",0,b],912868)},111699,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4075ec4df24bd89711034f15cca9eb240df9f3f473",b.callServer,void 0,b.findSourceMapURL,"getConfigValues");a.s(["getConfigValues",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)},509405,a=>{"use strict";let b=(0,a.i(711796).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Eye",0,b],509405)},412783,22761,a=>{"use strict";var b=a.i(728778),c=a.i(368114);a.s(["Label",0,function({className:a,...d}){return(0,b.jsx)("label",{"data-slot":"label",className:(0,c.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...d})}],412783);let d=(0,a.i(711796).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",0,d],22761)},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)},161664,a=>{"use strict";let b=(0,a.i(711796).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);a.s(["RotateCcw",0,b],161664)},816282,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("404c5f6bb80cc0d10b604e5640d83816a765fc59f3",b.callServer,void 0,b.findSourceMapURL,"openInTerminal");a.s(["openInTerminal",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)},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)},267540,123089,165614,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("408215e48e1a623e4bbb685a78e3a3ada2ed9a5e8a",b.callServer,void 0,b.findSourceMapURL,"openInFileManager");a.s(["openInFileManager",0,c],267540);let d=(0,b.createServerReference)("40a305711044d42074dc8b719a62360ee159d7fe96",b.callServer,void 0,b.findSourceMapURL,"openInEditor");a.s(["openInEditor",0,d],123089);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)},283857,a=>{"use strict";let b=(0,a.i(711796).default)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);a.s(["Lightbulb",0,b],283857)},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)},428676,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("404cb0cdb388fc63f10c22dc497e72b00bb5c78d42",b.callServer,void 0,b.findSourceMapURL,"uploadAsset");a.s(["uploadAsset",0,c])},464417,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40423169aa2508c9cd2bada9f65d9397112c0ea175",b.callServer,void 0,b.findSourceMapURL,"deleteAsset");a.s(["deleteAsset",0,c])},555445,678518,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4021cffd826ce36203d99f6565f58863b9bc8a2727",b.callServer,void 0,b.findSourceMapURL,"createNote");a.s(["createNote",0,c],555445);let d=(0,b.createServerReference)("40006718afe159ee057487702c0cb12c23f6bac540",b.callServer,void 0,b.findSourceMapURL,"deleteNote");a.s(["deleteNote",0,d],678518)},913284,761818,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(["default",0,c],761818),a.s(["XCircle",0,c],468862)},811344,a=>{"use strict";var b=a.i(622945);a.s(["AlertTriangle",()=>b.default])},836856,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("404cffeebf9cd5b11929ed56c5dbcb3e79b820450e",b.callServer,void 0,b.findSourceMapURL,"getPrompts");a.s(["getPrompts",0,c])},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)},324954,a=>{"use strict";let b=(0,a.i(711796).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);a.s(["Upload",0,b],324954)},268317,a=>{"use strict";var b=a.i(374637);a.s(["useScrollOverflow",0,function(a,c=[]){let[d,e]=(0,b.useState)({canScrollLeft:!1,canScrollRight:!1}),f=(0,b.useCallback)(()=>{let b=a.current;b&&e({canScrollLeft:b.scrollLeft>0,canScrollRight:b.scrollLeft<b.scrollWidth-b.clientWidth-1})},[a]);return(0,b.useEffect)(()=>{let b=a.current;if(!b)return;f(),b.addEventListener("scroll",f);let c=new ResizeObserver(f);return c.observe(b),window.addEventListener("resize",f),()=>{b.removeEventListener("scroll",f),c.disconnect(),window.removeEventListener("resize",f)}},[f,...c]),d}])},579834,a=>{"use strict";var b=a.i(728778),c=a.i(368114);a.s(["EmptyState",0,function({icon:a,title:d,description:e,action:f,className:g}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex h-48 flex-col items-center justify-center gap-2 text-center",g),children:[a&&(0,b.jsx)(a,{className:"h-10 w-10 text-muted-foreground/40"}),(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:d}),e&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground/60",children:e}),f&&(0,b.jsx)("div",{className:"mt-2",children:f})]})}])},88757,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(553798),e=a.i(814574),f=a.i(699570);let g=(0,a.i(711796).default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]);var h=a.i(704494);a.s(["TaskMergeConfirmDialog",0,function({open:a,onOpenChange:i,taskId:j,taskTitle:k,baseBranch:l,fileCount:m,commitCount:n,commitLog:o=[],onMergeComplete:p}){let q=(0,d.useRouter)(),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),v=async()=>{s(!0),u(null);try{let a=await fetch(`/api/tasks/${j}/merge`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(a.ok){i(!1),p(),q.refresh();return}let b=await a.json().catch(()=>({error:"Merge failed"}));409===a.status?u(`Merge conflicts detected: ${Array.isArray(b.conflictFiles)?b.conflictFiles.join(", "):"unknown files"}`):u(b.error??"Merge failed")}catch{u("Network error — merge failed")}finally{s(!1)}};return(0,b.jsx)(e.Dialog,{open:a,onOpenChange:i,children:(0,b.jsxs)(e.DialogContent,{showCloseButton:!0,className:"sm:max-w-md",children:[(0,b.jsx)(e.DialogHeader,{children:(0,b.jsxs)(e.DialogTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(g,{className:"h-4 w-4 text-emerald-400"}),"Confirm Merge"]})}),(0,b.jsxs)("div",{className:"space-y-3 py-2",children:[(0,b.jsxs)("div",{className:"rounded-lg border border-border bg-muted/30 p-3 space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:"Target branch"}),(0,b.jsx)("code",{className:"text-xs font-mono bg-muted px-2 py-0.5 rounded text-foreground",children:l})]}),(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:"Changed files"}),(0,b.jsx)("span",{className:"text-xs font-medium text-foreground",children:m})]}),(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:"Commits"}),(0,b.jsx)("span",{className:"text-xs font-medium text-foreground",children:n})]})]}),o.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground mb-1 block",children:"Commits"}),(0,b.jsx)("div",{className:"rounded-md border border-border bg-muted/30 p-2 space-y-1 max-h-32 overflow-y-auto",children:o.map((a,c)=>(0,b.jsx)("div",{className:"text-xs font-mono text-foreground/80",children:a},c))})]}),t&&(0,b.jsx)("div",{className:"rounded-lg border border-red-500/20 bg-red-500/10 px-3 py-2",children:(0,b.jsx)("p",{className:"text-xs text-red-400",children:t})})]}),(0,b.jsxs)(e.DialogFooter,{children:[(0,b.jsx)(f.Button,{variant:"outline",onClick:()=>i(!1),disabled:r,children:"Cancel"}),(0,b.jsx)(f.Button,{onClick:v,disabled:r,className:"gap-2",children:r?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Loader2,{className:"h-4 w-4 animate-spin"}),"Merging..."]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g,{className:"h-4 w-4"}),"Confirm Merge"]})})]})]})})}],88757)},778199,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4062d13cdbe45c1cfb8386e810495e72befcfbec91",b.callServer,void 0,b.findSourceMapURL,"stopPtyExecution");a.s(["stopPtyExecution",0,c])},12306,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("60efa135082b65911a52ff807ef8c96f9c3585f6a1",b.callServer,void 0,b.findSourceMapURL,"resumePtyExecution");a.s(["resumePtyExecution",0,c])},367082,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("60e4b2ed8000953c03639b7e7fbc5233720fd9370a",b.callServer,void 0,b.findSourceMapURL,"updateTaskStatus");a.s(["updateTaskStatus",0,c])},789369,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("401acf2b7191c3fbfd39c3f254a5628d15465f16bb",b.callServer,void 0,b.findSourceMapURL,"checkWorktreeClean");a.s(["checkWorktreeClean",0,c])},974957,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("6031d4644cd423486c800f9dcad4ed01df4562a880",b.callServer,void 0,b.findSourceMapURL,"commitWorktreeChanges");a.s(["commitWorktreeChanges",0,c])},957930,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("7c3d6cd7e5e687f4f77510e3a770d804bec50e4336",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
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0ws0_c1._.js.map