@chorus-aidlc/chorus 0.12.1 → 0.13.0

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 (507) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +416 -369
  3. package/.next/standalone/.next/app-path-routes-manifest.json +36 -34
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +27 -27
  6. package/.next/standalone/.next/react-loadable-manifest.json +36 -30
  7. package/.next/standalone/.next/routes-manifest.json +16 -0
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -0
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -0
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -0
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  48. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  52. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  53. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  57. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  59. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  60. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/admin.html +1 -1
  62. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  63. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/keepalive/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -0
  131. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -0
  132. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -0
  133. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/index.html +1 -1
  152. package/.next/standalone/.next/server/app/index.rsc +2 -2
  153. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  155. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  156. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  158. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  159. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  162. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  163. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  165. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +2 -2
  166. package/.next/standalone/.next/server/app/login.html +1 -1
  167. package/.next/standalone/.next/server/app/login.rsc +2 -2
  168. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  169. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  172. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  173. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/projects.html +1 -1
  175. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  176. package/.next/standalone/.next/server/app/settings.html +1 -1
  177. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  178. package/.next/standalone/.next/server/app-paths-manifest.json +36 -34
  179. package/.next/standalone/.next/server/chunks/1113.js +2 -2
  180. package/.next/standalone/.next/server/chunks/1337.js +1 -1
  181. package/.next/standalone/.next/server/chunks/1463.js +1 -1
  182. package/.next/standalone/.next/server/chunks/1559.js +13 -0
  183. package/.next/standalone/.next/server/chunks/{2779.js → 178.js} +3 -3
  184. package/.next/standalone/.next/server/chunks/2315.js +1 -1
  185. package/.next/standalone/.next/server/chunks/2364.js +2 -2
  186. package/.next/standalone/.next/server/chunks/2631.js +2 -2
  187. package/.next/standalone/.next/server/chunks/282.js +1 -1
  188. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  189. package/.next/standalone/.next/server/chunks/298.js +1 -0
  190. package/.next/standalone/.next/server/chunks/3197.js +3 -0
  191. package/.next/standalone/.next/server/chunks/3217.js +1 -1
  192. package/.next/standalone/.next/server/chunks/3219.js +1 -1
  193. package/.next/standalone/.next/server/chunks/3373.js +1 -0
  194. package/.next/standalone/.next/server/chunks/3680.js +1 -1
  195. package/.next/standalone/.next/server/chunks/4157.js +1 -1
  196. package/.next/standalone/.next/server/chunks/4193.js +1 -1
  197. package/.next/standalone/.next/server/chunks/4375.js +2 -2
  198. package/.next/standalone/.next/server/chunks/4615.js +1 -1
  199. package/.next/standalone/.next/server/chunks/5011.js +1 -0
  200. package/.next/standalone/.next/server/chunks/5090.js +1 -1
  201. package/.next/standalone/.next/server/chunks/5217.js +1 -1
  202. package/.next/standalone/.next/server/chunks/5319.js +1 -1
  203. package/.next/standalone/.next/server/chunks/5453.js +1 -1
  204. package/.next/standalone/.next/server/chunks/5511.js +1 -1
  205. package/.next/standalone/.next/server/chunks/5957.js +1 -0
  206. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  207. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  208. package/.next/standalone/.next/server/chunks/679.js +1 -0
  209. package/.next/standalone/.next/server/chunks/6813.js +1 -0
  210. package/.next/standalone/.next/server/chunks/7217.js +1 -1
  211. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  212. package/.next/standalone/.next/server/chunks/7421.js +1 -0
  213. package/.next/standalone/.next/server/chunks/7912.js +1 -0
  214. package/.next/standalone/.next/server/chunks/796.js +6 -6
  215. package/.next/standalone/.next/server/chunks/8431.js +1 -1
  216. package/.next/standalone/.next/server/chunks/8812.js +1 -1
  217. package/.next/standalone/.next/server/chunks/8821.js +1 -0
  218. package/.next/standalone/.next/server/chunks/903.js +1 -1
  219. package/.next/standalone/.next/server/chunks/920.js +1 -1
  220. package/.next/standalone/.next/server/chunks/937.js +1 -1
  221. package/.next/standalone/.next/server/chunks/9849.js +2 -2
  222. package/.next/standalone/.next/server/chunks/{7063.js → 9855.js} +2 -2
  223. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  224. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  225. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  226. package/.next/standalone/.next/server/pages/404.html +1 -1
  227. package/.next/standalone/.next/server/pages/500.html +1 -1
  228. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  230. package/.next/standalone/.next/static/chunks/10919-7f63b2801a92b8c6.js +1 -0
  231. package/.next/standalone/.next/static/chunks/{16551-68896c0ca7966ebf.js → 16551-d129ae0de4a04d69.js} +5 -5
  232. package/.next/standalone/.next/static/chunks/1891-d4a9e756fefba3a9.js +1 -0
  233. package/.next/standalone/.next/static/chunks/22190.149dd0799cbcba06.js +1 -0
  234. package/.next/standalone/.next/static/chunks/{2351.35085ef2663aaa44.js → 2351.a2908f154b03857c.js} +1 -1
  235. package/.next/standalone/.next/static/chunks/{29047.664290ff8a84b205.js → 29047.65b677c7f3e6459f.js} +1 -1
  236. package/.next/standalone/.next/static/chunks/2987-c15f09093b821b24.js +1 -0
  237. package/.next/standalone/.next/static/chunks/{30682.c8fc49d63bf75772.js → 30682.b12a9bef588e7b03.js} +1 -1
  238. package/.next/standalone/.next/static/chunks/31467.9f8adfa602f97fcf.js +115 -0
  239. package/.next/standalone/.next/static/chunks/{33187.1328c15b9dab78a8.js → 33187.13c12f5c0821ac57.js} +1 -1
  240. package/.next/standalone/.next/static/chunks/{33665.20ed9144405f8b21.js → 33665.804ece4d6c6e4eca.js} +3 -3
  241. package/.next/standalone/.next/static/chunks/34520.1a6c6a7c421b0ff3.js +1 -0
  242. package/.next/standalone/.next/static/chunks/36493-5326c14a7240edc8.js +1 -0
  243. package/.next/standalone/.next/static/chunks/43741-aeea04ab873ac4e9.js +1 -0
  244. package/.next/standalone/.next/static/chunks/{47066.7848777fc81f5714.js → 47066.214cf62dd898ea16.js} +1 -1
  245. package/.next/standalone/.next/static/chunks/4860.c3c83713d1f163a5.js +1 -0
  246. package/.next/standalone/.next/static/chunks/48782.4ca261e8e23a8983.js +24 -0
  247. package/.next/standalone/.next/static/chunks/49852-5337f139a2f87c46.js +1 -0
  248. package/.next/standalone/.next/static/chunks/49965-fa11628d5ac8fbbe.js +1 -0
  249. package/.next/standalone/.next/static/chunks/56812-a6fe5225adc0b2ff.js +1 -0
  250. package/.next/standalone/.next/static/chunks/58699.364d357d33fcb52f.js +80 -0
  251. package/.next/standalone/.next/static/chunks/61963.fd130ba09dd25e2e.js +23 -0
  252. package/.next/standalone/.next/static/chunks/64894-71b047ae8ef2f3d8.js +1 -0
  253. package/.next/standalone/.next/static/chunks/65317.ab0c5ecb4164b291.js +148 -0
  254. package/.next/standalone/.next/static/chunks/{69477.4b854e377a3860cc.js → 69477.5b79cd575f93298f.js} +1 -1
  255. package/.next/standalone/.next/static/chunks/{69763.37d07a3035805bc7.js → 69763.003df47b4ee38644.js} +1 -1
  256. package/.next/standalone/.next/static/chunks/7317.8e3ce1ce083425d8.js +5 -0
  257. package/.next/standalone/.next/static/chunks/73506.b9c053e2335b6084.js +1 -0
  258. package/.next/standalone/.next/static/chunks/78966.075119c3a72135ed.js +1 -0
  259. package/.next/standalone/.next/static/chunks/79806.21f1d23ca273000d.js +4 -0
  260. package/.next/standalone/.next/static/chunks/85947.c813bf8bc6e1d675.js +90 -0
  261. package/.next/standalone/.next/static/chunks/8796-69e708cb8603d8b4.js +1 -0
  262. package/.next/standalone/.next/static/chunks/91666-3fd4f3512a53ff20.js +1 -0
  263. package/.next/standalone/.next/static/chunks/91709.ed3bfd285c518df1.js +287 -0
  264. package/.next/standalone/.next/static/chunks/94400.0d371a4d306a614b.js +1 -0
  265. package/.next/standalone/.next/static/chunks/96028.cdbf36dca753e70f.js +215 -0
  266. package/.next/standalone/.next/static/chunks/{96132.3bac072bb2743fb5.js → 96132.ab9b9433c7b2fa1c.js} +1 -1
  267. package/.next/standalone/.next/static/chunks/97263-018d631416efa5cd.js +1 -0
  268. package/.next/standalone/.next/static/chunks/{97784-42081b75f8cc6da8.js → 97784-7b90a17294840e32.js} +1 -1
  269. package/.next/standalone/.next/static/chunks/99373.2b68fce200cc323e.js +1 -0
  270. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-6061b60d52262d3c.js +1 -0
  271. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-78ab05c72bcd04fd.js +1 -0
  272. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/{page-f1b0daea9f947caf.js → page-31ae6abada6e6a64.js} +1 -1
  273. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-478cce81afbfc145.js +1 -0
  274. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/{page-c68f1eda3779b448.js → page-494b80e61b485870.js} +1 -1
  275. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/{page-e0935445535c28cb.js → page-7ebb779f0db4c58b.js} +1 -1
  276. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-bfbfc5005de2be13.js +1 -0
  277. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-fbb4dd4124525f97.js +1 -0
  278. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-164fe175720b24a1.js +1 -0
  279. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-2742c745a90f843f.js +1 -0
  280. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-ceeec49af0396432.js → page-f2313bf05387b39b.js} +1 -1
  281. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-1286afe43c086d6a.js → page-955e8fd8d7b0b7c8.js} +1 -1
  282. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-fec019d974ef8d4e.js → page-0bc22273214e522f.js} +1 -1
  283. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/{page-0fb1d51016f6bd56.js → page-960ab78b5055780c.js} +1 -1
  284. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/{route-f1b0daea9f947caf.js → route-31ae6abada6e6a64.js} +1 -1
  285. package/.next/standalone/.next/static/chunks/app/api/admin/companies/{route-f1b0daea9f947caf.js → route-31ae6abada6e6a64.js} +1 -1
  286. package/.next/standalone/.next/static/chunks/app/api/admin/login/{route-f1b0daea9f947caf.js → route-31ae6abada6e6a64.js} +1 -1
  287. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-31ae6abada6e6a64.js +1 -0
  288. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-31ae6abada6e6a64.js +1 -0
  289. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-31ae6abada6e6a64.js +1 -0
  290. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-31ae6abada6e6a64.js +1 -0
  291. package/.next/standalone/.next/static/chunks/app/api/agents/route-31ae6abada6e6a64.js +1 -0
  292. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-31ae6abada6e6a64.js +1 -0
  293. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-31ae6abada6e6a64.js +1 -0
  294. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-31ae6abada6e6a64.js +1 -0
  295. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-31ae6abada6e6a64.js +1 -0
  296. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-31ae6abada6e6a64.js +1 -0
  297. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-31ae6abada6e6a64.js +1 -0
  298. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-31ae6abada6e6a64.js +1 -0
  299. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-31ae6abada6e6a64.js +1 -0
  300. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-31ae6abada6e6a64.js +1 -0
  301. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-31ae6abada6e6a64.js +1 -0
  302. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-31ae6abada6e6a64.js +1 -0
  303. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-31ae6abada6e6a64.js +1 -0
  304. package/.next/standalone/.next/static/chunks/app/api/comments/route-31ae6abada6e6a64.js +1 -0
  305. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-31ae6abada6e6a64.js +1 -0
  306. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-31ae6abada6e6a64.js +1 -0
  307. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-31ae6abada6e6a64.js +1 -0
  308. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-31ae6abada6e6a64.js +1 -0
  309. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-31ae6abada6e6a64.js +1 -0
  310. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-31ae6abada6e6a64.js +1 -0
  311. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-31ae6abada6e6a64.js +1 -0
  312. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-31ae6abada6e6a64.js +1 -0
  313. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-31ae6abada6e6a64.js +1 -0
  314. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-31ae6abada6e6a64.js +1 -0
  315. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-31ae6abada6e6a64.js +1 -0
  316. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-31ae6abada6e6a64.js +1 -0
  317. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-31ae6abada6e6a64.js +1 -0
  318. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-31ae6abada6e6a64.js +1 -0
  319. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-31ae6abada6e6a64.js +1 -0
  320. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-31ae6abada6e6a64.js +1 -0
  321. package/.next/standalone/.next/static/chunks/app/api/events/route-31ae6abada6e6a64.js +1 -0
  322. package/.next/standalone/.next/static/chunks/app/api/health/route-31ae6abada6e6a64.js +1 -0
  323. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-31ae6abada6e6a64.js +1 -0
  324. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-31ae6abada6e6a64.js +1 -0
  325. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-31ae6abada6e6a64.js +1 -0
  326. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-31ae6abada6e6a64.js +1 -0
  327. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-31ae6abada6e6a64.js +1 -0
  328. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-31ae6abada6e6a64.js +1 -0
  329. package/.next/standalone/.next/static/chunks/app/api/keepalive/route-31ae6abada6e6a64.js +1 -0
  330. package/.next/standalone/.next/static/chunks/app/api/mcp/route-31ae6abada6e6a64.js +1 -0
  331. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-31ae6abada6e6a64.js +1 -0
  332. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-31ae6abada6e6a64.js +1 -0
  333. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-31ae6abada6e6a64.js +1 -0
  334. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-31ae6abada6e6a64.js +1 -0
  335. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-31ae6abada6e6a64.js +1 -0
  336. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-31ae6abada6e6a64.js +1 -0
  337. package/.next/standalone/.next/static/chunks/app/api/notifications/route-31ae6abada6e6a64.js +1 -0
  338. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-31ae6abada6e6a64.js +1 -0
  339. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-31ae6abada6e6a64.js +1 -0
  340. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-31ae6abada6e6a64.js +1 -0
  341. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-31ae6abada6e6a64.js +1 -0
  342. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-31ae6abada6e6a64.js +1 -0
  343. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-31ae6abada6e6a64.js +1 -0
  344. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-31ae6abada6e6a64.js +1 -0
  345. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-31ae6abada6e6a64.js +1 -0
  346. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-31ae6abada6e6a64.js +1 -0
  347. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-31ae6abada6e6a64.js +1 -0
  348. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-31ae6abada6e6a64.js +1 -0
  349. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-31ae6abada6e6a64.js +1 -0
  350. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-31ae6abada6e6a64.js +1 -0
  351. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/resource-graph/route-31ae6abada6e6a64.js +1 -0
  352. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-31ae6abada6e6a64.js +1 -0
  353. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-31ae6abada6e6a64.js +1 -0
  354. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-31ae6abada6e6a64.js +1 -0
  355. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-31ae6abada6e6a64.js +1 -0
  356. package/.next/standalone/.next/static/chunks/app/api/projects/route-31ae6abada6e6a64.js +1 -0
  357. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-31ae6abada6e6a64.js +1 -0
  358. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-31ae6abada6e6a64.js +1 -0
  359. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-31ae6abada6e6a64.js +1 -0
  360. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-31ae6abada6e6a64.js +1 -0
  361. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-31ae6abada6e6a64.js +1 -0
  362. package/.next/standalone/.next/static/chunks/app/api/search/route-31ae6abada6e6a64.js +1 -0
  363. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-31ae6abada6e6a64.js +1 -0
  364. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-31ae6abada6e6a64.js +1 -0
  365. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-31ae6abada6e6a64.js +1 -0
  366. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-31ae6abada6e6a64.js +1 -0
  367. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-31ae6abada6e6a64.js +1 -0
  368. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-31ae6abada6e6a64.js +1 -0
  369. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-31ae6abada6e6a64.js +1 -0
  370. package/.next/standalone/.next/static/chunks/app/onboarding/{page-2936274fb252329e.js → page-500aded75bf11ed6.js} +1 -1
  371. package/.next/standalone/.next/static/chunks/{f57f1d5e.71d2022a2e2d95ba.js → f57f1d5e.c345ce68aa5052a7.js} +1 -1
  372. package/.next/standalone/.next/static/chunks/{fcc64ffe-de8d357e657bd162.js → fcc64ffe-2c36a6b45f81782c.js} +3 -3
  373. package/.next/standalone/.next/static/chunks/webpack-7483083a976ed3d7.js +1 -0
  374. package/.next/standalone/.next/static/css/ed6baccd62b81c4e.css +1 -0
  375. package/.next/standalone/package.json +3 -1
  376. package/README.md +8 -0
  377. package/README.zh.md +8 -0
  378. package/chorus.mjs +118 -34
  379. package/cli/embedded-db.mjs +234 -0
  380. package/package.json +3 -1
  381. package/.next/standalone/.next/server/chunks/1596.js +0 -13
  382. package/.next/standalone/.next/server/chunks/2622.js +0 -1
  383. package/.next/standalone/.next/server/chunks/4292.js +0 -1
  384. package/.next/standalone/.next/server/chunks/4872.js +0 -1
  385. package/.next/standalone/.next/server/chunks/5538.js +0 -1
  386. package/.next/standalone/.next/server/chunks/6096.js +0 -3
  387. package/.next/standalone/.next/server/chunks/7427.js +0 -1
  388. package/.next/standalone/.next/server/chunks/8732.js +0 -1
  389. package/.next/standalone/.next/server/chunks/9161.js +0 -1
  390. package/.next/standalone/.next/static/chunks/10344-2e9a9d767e2e8ed1.js +0 -1
  391. package/.next/standalone/.next/static/chunks/22190.ee4e8f3ac0189d87.js +0 -1
  392. package/.next/standalone/.next/static/chunks/2280-f48bf99ea9d88ece.js +0 -1
  393. package/.next/standalone/.next/static/chunks/31467.2013df596c751e6e.js +0 -115
  394. package/.next/standalone/.next/static/chunks/34520.34ba1239c9b5a275.js +0 -1
  395. package/.next/standalone/.next/static/chunks/46983-8bf90f1ffeb55957.js +0 -1
  396. package/.next/standalone/.next/static/chunks/46999-f53da8f53fe1b8a9.js +0 -1
  397. package/.next/standalone/.next/static/chunks/4860.e3d0dd79a4d37626.js +0 -1
  398. package/.next/standalone/.next/static/chunks/48782.5b60e8a0f22f6da1.js +0 -24
  399. package/.next/standalone/.next/static/chunks/54637-71d281d649ea3a17.js +0 -1
  400. package/.next/standalone/.next/static/chunks/58245-b2ea112ace9624d2.js +0 -1
  401. package/.next/standalone/.next/static/chunks/58699.fa3b8ce67889f23b.js +0 -80
  402. package/.next/standalone/.next/static/chunks/61963.18e80afc0dac41e3.js +0 -23
  403. package/.next/standalone/.next/static/chunks/65317.7179d4bc41c8075a.js +0 -148
  404. package/.next/standalone/.next/static/chunks/7317.1a06bc56028637f6.js +0 -5
  405. package/.next/standalone/.next/static/chunks/73506.7423a313220e1769.js +0 -1
  406. package/.next/standalone/.next/static/chunks/78917-aa5bbff9248799a4.js +0 -1
  407. package/.next/standalone/.next/static/chunks/79806.d210b93e41d4d7ff.js +0 -4
  408. package/.next/standalone/.next/static/chunks/85573-fb4d2cbd67612d47.js +0 -1
  409. package/.next/standalone/.next/static/chunks/85947.cf4ac5dd618283ee.js +0 -90
  410. package/.next/standalone/.next/static/chunks/88561-0b14e1564419f215.js +0 -1
  411. package/.next/standalone/.next/static/chunks/89035-faf398b7bbc7d2ed.js +0 -1
  412. package/.next/standalone/.next/static/chunks/91709.f7c8eff0c3692bd6.js +0 -287
  413. package/.next/standalone/.next/static/chunks/94400.30696ed643217da2.js +0 -1
  414. package/.next/standalone/.next/static/chunks/96028.427c0bd44fa35314.js +0 -215
  415. package/.next/standalone/.next/static/chunks/99373.cc6319fa4cf36081.js +0 -1
  416. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-b3a497ba5eb08036.js +0 -1
  417. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-2944c6c9bc48a7d6.js +0 -1
  418. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-d786f0c18a9c4f06.js +0 -1
  419. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-f824632ff61a9fa7.js +0 -1
  420. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-dbcb6e50fc4816c6.js +0 -1
  421. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-1295bc505e727383.js +0 -1
  422. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-f1b0daea9f947caf.js +0 -1
  423. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-f1b0daea9f947caf.js +0 -1
  424. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-f1b0daea9f947caf.js +0 -1
  425. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-f1b0daea9f947caf.js +0 -1
  426. package/.next/standalone/.next/static/chunks/app/api/agents/route-f1b0daea9f947caf.js +0 -1
  427. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-f1b0daea9f947caf.js +0 -1
  428. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-f1b0daea9f947caf.js +0 -1
  429. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-f1b0daea9f947caf.js +0 -1
  430. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-f1b0daea9f947caf.js +0 -1
  431. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-f1b0daea9f947caf.js +0 -1
  432. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-f1b0daea9f947caf.js +0 -1
  433. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-f1b0daea9f947caf.js +0 -1
  434. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-f1b0daea9f947caf.js +0 -1
  435. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-f1b0daea9f947caf.js +0 -1
  436. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-f1b0daea9f947caf.js +0 -1
  437. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-f1b0daea9f947caf.js +0 -1
  438. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-f1b0daea9f947caf.js +0 -1
  439. package/.next/standalone/.next/static/chunks/app/api/comments/route-f1b0daea9f947caf.js +0 -1
  440. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-f1b0daea9f947caf.js +0 -1
  441. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-f1b0daea9f947caf.js +0 -1
  442. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-f1b0daea9f947caf.js +0 -1
  443. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-f1b0daea9f947caf.js +0 -1
  444. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-f1b0daea9f947caf.js +0 -1
  445. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-f1b0daea9f947caf.js +0 -1
  446. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-f1b0daea9f947caf.js +0 -1
  447. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-f1b0daea9f947caf.js +0 -1
  448. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-f1b0daea9f947caf.js +0 -1
  449. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-f1b0daea9f947caf.js +0 -1
  450. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-f1b0daea9f947caf.js +0 -1
  451. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-f1b0daea9f947caf.js +0 -1
  452. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-f1b0daea9f947caf.js +0 -1
  453. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-f1b0daea9f947caf.js +0 -1
  454. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-f1b0daea9f947caf.js +0 -1
  455. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-f1b0daea9f947caf.js +0 -1
  456. package/.next/standalone/.next/static/chunks/app/api/events/route-f1b0daea9f947caf.js +0 -1
  457. package/.next/standalone/.next/static/chunks/app/api/health/route-f1b0daea9f947caf.js +0 -1
  458. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-f1b0daea9f947caf.js +0 -1
  459. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-f1b0daea9f947caf.js +0 -1
  460. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-f1b0daea9f947caf.js +0 -1
  461. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-f1b0daea9f947caf.js +0 -1
  462. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-f1b0daea9f947caf.js +0 -1
  463. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-f1b0daea9f947caf.js +0 -1
  464. package/.next/standalone/.next/static/chunks/app/api/keepalive/route-f1b0daea9f947caf.js +0 -1
  465. package/.next/standalone/.next/static/chunks/app/api/mcp/route-f1b0daea9f947caf.js +0 -1
  466. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-f1b0daea9f947caf.js +0 -1
  467. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-f1b0daea9f947caf.js +0 -1
  468. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-f1b0daea9f947caf.js +0 -1
  469. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-f1b0daea9f947caf.js +0 -1
  470. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-f1b0daea9f947caf.js +0 -1
  471. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-f1b0daea9f947caf.js +0 -1
  472. package/.next/standalone/.next/static/chunks/app/api/notifications/route-f1b0daea9f947caf.js +0 -1
  473. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-f1b0daea9f947caf.js +0 -1
  474. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-f1b0daea9f947caf.js +0 -1
  475. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-f1b0daea9f947caf.js +0 -1
  476. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-f1b0daea9f947caf.js +0 -1
  477. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-f1b0daea9f947caf.js +0 -1
  478. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-f1b0daea9f947caf.js +0 -1
  479. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-f1b0daea9f947caf.js +0 -1
  480. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-f1b0daea9f947caf.js +0 -1
  481. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-f1b0daea9f947caf.js +0 -1
  482. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-f1b0daea9f947caf.js +0 -1
  483. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-f1b0daea9f947caf.js +0 -1
  484. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-f1b0daea9f947caf.js +0 -1
  485. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-f1b0daea9f947caf.js +0 -1
  486. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-f1b0daea9f947caf.js +0 -1
  487. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-f1b0daea9f947caf.js +0 -1
  488. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-f1b0daea9f947caf.js +0 -1
  489. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-f1b0daea9f947caf.js +0 -1
  490. package/.next/standalone/.next/static/chunks/app/api/projects/route-f1b0daea9f947caf.js +0 -1
  491. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-f1b0daea9f947caf.js +0 -1
  492. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-f1b0daea9f947caf.js +0 -1
  493. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-f1b0daea9f947caf.js +0 -1
  494. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-f1b0daea9f947caf.js +0 -1
  495. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-f1b0daea9f947caf.js +0 -1
  496. package/.next/standalone/.next/static/chunks/app/api/search/route-f1b0daea9f947caf.js +0 -1
  497. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-f1b0daea9f947caf.js +0 -1
  498. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-f1b0daea9f947caf.js +0 -1
  499. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-f1b0daea9f947caf.js +0 -1
  500. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-f1b0daea9f947caf.js +0 -1
  501. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-f1b0daea9f947caf.js +0 -1
  502. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-f1b0daea9f947caf.js +0 -1
  503. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-f1b0daea9f947caf.js +0 -1
  504. package/.next/standalone/.next/static/chunks/webpack-ed3555ea61243391.js +0 -1
  505. package/.next/standalone/.next/static/css/6e8fd46b062fd4fc.css +0 -1
  506. /package/.next/standalone/.next/static/{GmBblfxcDziUENBiEap4B → W3KEB0tOAICVtfAUfR_M9}/_buildManifest.js +0 -0
  507. /package/.next/standalone/.next/static/{GmBblfxcDziUENBiEap4B → W3KEB0tOAICVtfAUfR_M9}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=1463,exports.ids=[1463],exports.modules={8777:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cs:()=>o,Nn:()=>s,YE:()=>n,lC:()=>l,lU:()=>r,ui:()=>p,yZ:()=>m});var e=c(52618),f=c(76872),g=c(42558),h=c(88437),i=c(65582),j=a([e,f,h]);[e,f,h]=j.then?(await j)():j;let t=i.default.child({module:"document.service"});async function k(a,b=!1){let c=await (0,f.LS)(a.createdByUuid),d={uuid:a.uuid,type:a.type,title:a.title,version:a.version,proposalUuid:a.proposalUuid,createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()};return b&&void 0!==a.content&&(d.content=a.content),a.project&&(d.project=a.project),d}async function l({companyUuid:a,projectUuid:b,skip:c,take:d,type:f}){let g={projectUuid:b,companyUuid:a,...f&&{type:f}},[h,i]=await Promise.all([e.z.document.findMany({where:g,skip:c,take:d,orderBy:{updatedAt:"desc"},select:{uuid:!0,type:!0,title:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.document.count({where:g})]);return{documents:await Promise.all(h.map(a=>k(a))),total:i}}async function m(a,b,c){if(0===b.length)return[];let d={companyUuid:a,proposalUuid:{in:b},...c&&{type:c}},f=await e.z.document.findMany({where:d,orderBy:{createdAt:"desc"},select:{uuid:!0,type:!0,title:!0,content:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return Promise.all(f.map(a=>k(a,!0)))}async function n(a,b){let c=await e.z.document.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return c?k(c,!0):null}async function o(a,b){return e.z.document.findFirst({where:{uuid:b,companyUuid:a}})}async function p(a){let b=await e.z.document.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,type:a.type,title:a.title,content:a.content,version:1,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,type:!0,title:!0,content:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return"report"===a.type&&await q(a,b.uuid),k(b,!0)}async function q(a,b){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"document",entityUuid:b,action:"created",actorUuid:a.createdByUuid})}catch(c){t.warn({err:c,reportUuid:b,proposalUuid:a.proposalUuid},"Failed to emit document/created event for report")}if(!a.proposalUuid)return;let c=null;try{let b=await e.z.proposal.findFirst({where:{uuid:a.proposalUuid,companyUuid:a.companyUuid},select:{inputType:!0,inputUuids:!0}});if(b&&"idea"===b.inputType&&Array.isArray(b.inputUuids)){let a=b.inputUuids[0];"string"==typeof a&&a.length>0&&(c=a)}}catch(c){t.warn({err:c,reportUuid:b,proposalUuid:a.proposalUuid},"Failed to resolve parent Idea for report side effects");return}if(c){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:c,action:"updated",actorUuid:a.createdByUuid})}catch(d){t.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to emit idea/updated event for report")}try{let d=await (0,f.LS)(a.createdByUuid),e=d?.type??"agent";await h.createActivity({companyUuid:a.companyUuid,projectUuid:a.projectUuid,targetType:"idea",targetUuid:c,actorType:e,actorUuid:a.createdByUuid,action:"report_created",value:{reportUuid:b,proposalUuid:a.proposalUuid,reportTitle:a.title}})}catch(d){t.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to record report_created Activity")}}}async function r(a,{title:b,content:c,incrementVersion:d}){let f={};void 0!==b&&(f.title=b),void 0!==c&&(f.content=c),d&&(f.version={increment:1});let g=await e.z.document.update({where:{uuid:a},data:f,include:{project:{select:{uuid:!0,name:!0}}}});return k(g,!0)}async function s(a){return e.z.document.delete({where:{uuid:a}})}d()}catch(a){d(a)}})},14120:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Wy:()=>r});var e=c(65582),f=c(52618),g=c(34853),h=c(97515),i=c(70369),j=c(35205),k=a([f,g,h,i,j]);[f,g,h,i,j]=k.then?(await k)():k;let s=e.default.child({module:"notification-turn"}),t={mentioned:"mentioned",elaboration_requested:"elaboration",elaboration_answered:"elaboration",elaboration_verified:"elaboration_verified",human_instruction:"human_instruction",task_assigned:"task_assigned",task_reopened:"task_assigned",task_verified:"task_assigned",idea_claimed:"task_assigned",proposal_approved:"task_assigned",proposal_rejected:"task_assigned"},u=new Set(["task","document","proposal","idea"]);async function l(a,b){return await f.z.agentInstance.findFirst({where:{uuid:b,companyUuid:a},select:{host:!0,cwd:!0,agentUuid:!0}})??null}function m(a,b,c){return(null==a||""===a)&&(null==b||""===b)?null:{host:a??"",cwd:null!=b&&""!==b?b:null,soft:c}}async function n(a,b){if("mentioned"===b)return m(a.pinnedHost,a.pinnedCwd,!1);if(!u.has(a.entityType))return null;if("task"===a.entityType){let b=await f.z.task.findFirst({where:{uuid:a.entityUuid,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0}});if(b?.assigneeType==="agent_instance"&&b.assigneeUuid){let c=await l(a.companyUuid,b.assigneeUuid);if(c){let a=m(c.host,c.cwd,!0);if(a)return a}}}if("idea"===a.entityType){let b=await (0,g.cQ)(a.companyUuid,a.entityType,a.entityUuid),c=await o(a,b);if(c)return c}let c=await p(a);return o(a,c)}async function o(a,b){if(!b)return null;let c=await f.z.idea.findFirst({where:{uuid:b,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0}});if(c?.assigneeType==="agent_instance"&&c.assigneeUuid){let b=await l(a.companyUuid,c.assigneeUuid);if(b&&b.agentUuid===a.recipientUuid)return m(b.host,b.cwd,!0)}return null}async function p(a){return(await (0,j.K)(a.companyUuid,a.entityType,a.entityUuid)).rootIdeaUuid}async function q(a,b,c,d){if(!c)return null;let e=await f.z.daemonSession.findFirst({where:{companyUuid:a,agentUuid:b,sessionId:c},select:{originConnectionUuid:!0}});return e?d.find(a=>a.uuid===e.originConnectionUuid&&"online"===a.effectiveStatus)??null:null}async function r(a){let b={turn:null,targetConnectionUuid:null,suppressWake:!1},c=t[a.action]??null;if(!c||"agent"!==a.recipientType)return b;try{let d=await (0,h._R)(a.companyUuid,a.recipientUuid),e=await n(a,c),j=function(a,b){if(b){let c=a.find(a=>a.host===b.host&&a.cwd===b.cwd&&"online"===a.effectiveStatus);if(c)return{kind:"directed",connection:c};if(!b.soft)return{kind:"offline_pin"}}let c=a.find(a=>"online"===a.effectiveStatus);return c?{kind:"online_first",connection:c}:{kind:"none"}}(d,e),k=null;if(u.has(a.entityType)&&(k=await (0,g.cQ)(a.companyUuid,a.entityType,a.entityUuid)),"elaboration_verified"===c&&"online_first"===j.kind){let b=await q(a.companyUuid,a.recipientUuid,k,d);b&&(j={kind:"directed",connection:b})}if("offline_pin"===j.kind)return{turn:null,targetConnectionUuid:null,suppressWake:!0};if("none"===j.kind)return b;let l=j.connection,m="directed"===j.kind,o=k??a.entityUuid,p=k;if(m&&k){let b=await f.z.daemonSession.findFirst({where:{companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:k},select:{originConnectionUuid:!0}});b&&b.originConnectionUuid!==l.uuid&&(o=`${k}::${l.uuid}`,p=null)}let r=await (0,g.KF)({companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:o,directIdeaUuid:p,originConnectionUuid:l.uuid}),s="human_instruction"===c?a.instructionText??null:null,t=await (0,g.n_)({sessionUuid:r.uuid,trigger:c,promptText:s});if(m)return(0,i.N_)({companyUuid:a.companyUuid,originConnectionUuid:l.uuid,turnUuid:t.uuid}),{turn:t,targetConnectionUuid:l.uuid,suppressWake:!1};return{turn:t,targetConnectionUuid:null,suppressWake:!1}}catch(c){return s.error({err:c,companyUuid:a.companyUuid,agentUuid:a.recipientUuid,action:a.action,entityType:a.entityType,entityUuid:a.entityUuid},"Failed to create DaemonSessionTurn for wake notification (notification was still created)"),b}}d()}catch(a){d(a)}})},25736:(a,b,c)=>{c.d(b,{vE:()=>d});function d(a){if(!a)return{pinnedHost:null,pinnedCwd:null};let b=new URLSearchParams(a),c=b.has("cwd"),d=b.has("host");if(!c&&!d)return{pinnedHost:null,pinnedCwd:null};let e=b.get("cwd")??"",f=b.get("host");return{pinnedCwd:c&&""!==e?e:null,pinnedHost:d?f??"":null}}},27473:(a,b,c)=>{c.d(b,{hD:()=>h,OG:()=>k,YB:()=>m,mA:()=>l,FB:()=>j});var d=c(70936),e=c(7046),f=c(65582);let g=new(c(16698)).AsyncLocalStorage;class h extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}let i={P2002:"Unique constraint violation",P2025:"Record not found",P2003:"Foreign key constraint violation"};function j(a){return async(b,c)=>{let j=crypto.randomUUID(),k=(0,f.q)({requestId:j});return g.run({requestId:j,logger:k},async()=>{try{return await a(b,c)}catch(a){if((g.getStore()?.logger??f.default).error({err:a},"API error"),a instanceof h)return d.NextResponse.json({success:!1,error:{code:a.code,message:a.message,details:a.details}},{status:a.status});if(a&&"object"==typeof a&&"code"in a){let b=i[a.code];if(b){if("P2025"===a.code)return e.sO.notFound();if("P2002"===a.code)return e.sO.conflict(b);return e.sO.database(b)}}if(a instanceof Error)return e.sO.internal("Internal server error");return e.sO.internal()}})}}async function k(a){try{return await a.json()}catch{throw new h("BAD_REQUEST","Invalid JSON body",400)}}function l(a){let b=new URL(a.url),c={};return b.searchParams.forEach((a,b)=>{c[b]=a}),c}function m(a){let b=l(a),c=Math.max(1,parseInt(b.page||"1",10)),d=Math.min(100,Math.max(1,parseInt(b.pageSize||"20",10)));return{page:c,pageSize:d,skip:(c-1)*d,take:d}}},28792:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K1:()=>k,Ll:()=>i,U_:()=>h,s7:()=>j});var e=c(52618),f=c(42558),g=a([e]);e=(g.then?(await g)():g)[0];let k=["task","idea","proposal","document","daemon_session"];async function h(a,b){let c=await e.z.daemonConnection.findFirst({where:{uuid:b,companyUuid:a},select:{agentUuid:!0,agent:{select:{ownerUuid:!0}}}});return c?{agentUuid:c.agentUuid,ownerUuid:c.agent?.ownerUuid??null}:null}async function i(a){let b=await h(a.companyUuid,a.connectionUuid);return b?null!=b.ownerUuid&&a.actorUuid===b.ownerUuid||a.hasTaskAdmin?{ok:!0,target:b}:{ok:!1,reason:"forbidden"}:{ok:!1,reason:"not_found"}}function j(a){let b="deliver_turn"===a.command?{type:"control",command:"deliver_turn",targetConnectionUuid:a.targetConnectionUuid,turnUuid:a.turnUuid}:{type:"control",command:a.command,targetConnectionUuid:a.targetConnectionUuid,entityType:a.entityType,entityUuid:a.entityUuid};f.B.emit((0,f.T)(a.targetConnectionUuid),b)}d()}catch(a){d(a)}})},34853:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BP:()=>h.BP,FG:()=>C,Jo:()=>u,KF:()=>p,Kk:()=>v,L0:()=>i.L0,VA:()=>A,WP:()=>t,cQ:()=>q,kA:()=>n,n7:()=>D,n_:()=>r,p_:()=>F,ts:()=>B,v8:()=>w,vG:()=>y});var e=c(52618),f=c(42558),g=c(35205),h=c(97515),i=c(22137),j=a([e,g,h,i]);[e,g,h,i]=j.then?(await j)():j;let C=["pending","running","ended"],D=["user","assistant"];function k(a){return{uuid:a.uuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid,originConnectionUuid:a.originConnectionUuid,status:a.status,title:a.title,lastTurnAt:a.lastTurnAt.toISOString(),createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}function l(a){return{uuid:a.uuid,sessionUuid:a.sessionUuid,seq:a.seq,trigger:a.trigger,promptText:a.promptText,status:a.status,executionUuid:a.executionUuid,startedAt:a.startedAt?a.startedAt.toISOString():null,endedAt:a.endedAt?a.endedAt.toISOString():null,createdAt:a.createdAt.toISOString()}}function m(a){return"agent"===a.type?{agentUuid:a.actorUuid}:{agent:{ownerUuid:a.actorUuid}}}function n(a){return`transcript:${a}`}function o(a){f.B.emit(n(a.sessionUuid),a)}async function p(a){let b=await e.z.daemonSession.upsert({where:{agentUuid_sessionId:{agentUuid:a.agentUuid,sessionId:a.sessionId}},create:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid??null,originConnectionUuid:a.originConnectionUuid,status:"active"},update:{companyUuid:a.companyUuid}});return k(b)}async function q(a,b,c){return(await (0,g.K)(a,b,c)).directIdeaUuid}async function r(a){let b=await e.z.daemonSession.findUnique({where:{uuid:a.sessionUuid},select:{uuid:!0,companyUuid:!0}});if(!b)throw Error(`DaemonSession ${a.sessionUuid} not found`);let c=null;for(let b=0;b<5;b++){let d=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:a.sessionUuid},orderBy:{seq:"desc"},select:{seq:!0}}),f=(d?.seq??0)+1;try{c=await e.z.daemonSessionTurn.create({data:{sessionUuid:a.sessionUuid,seq:f,trigger:a.trigger,promptText:a.promptText??null,status:"pending",executionUuid:a.executionUuid??null}});break}catch(a){if("object"==typeof a&&null!==a&&"code"in a&&"P2002"===a.code&&b<4)continue;throw a}}if(!c)throw Error(`createPendingTurn: could not allocate a unique seq for session ${a.sessionUuid} after 5 attempts`);await e.z.daemonSession.update({where:{uuid:a.sessionUuid},data:{lastTurnAt:new Date}});let d=l(c);return o({companyUuid:b.companyUuid,sessionUuid:a.sessionUuid,trigger:"turn_created",turn:d,messages:[]}),d}let E={pending:"running",running:"ended",ended:null};async function s(a,b,c={}){let d=await e.z.daemonSessionTurn.findUnique({where:{uuid:a},select:{uuid:!0,sessionUuid:!0,status:!0}});if(!d)return{ok:!1,reason:"not_found"};let f=E[d.status]??null;if(b!==f)return{ok:!1,reason:"invalid_transition",from:d.status,to:b};let g={status:b};void 0!==c.startedAt&&(g.startedAt=c.startedAt),void 0!==c.endedAt&&(g.endedAt=c.endedAt),void 0!==c.executionUuid&&(g.executionUuid=c.executionUuid);let h=await e.z.daemonSessionTurn.update({where:{uuid:a},data:g}),i=await e.z.daemonSession.findUnique({where:{uuid:d.sessionUuid},select:{companyUuid:!0}});if(!i)throw Error(`advanceTurn: session ${d.sessionUuid} missing for just-updated turn ${a}`);let j=l(h);return o({companyUuid:i.companyUuid,sessionUuid:d.sessionUuid,trigger:"turn_status_changed",turn:j,messages:[]}),{ok:!0,turn:j}}async function t(a){return(await e.z.daemonSession.findMany({where:{companyUuid:a.companyUuid,...m(a)},orderBy:{lastTurnAt:"desc"}})).map(k)}async function u(a,b){let c=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)},select:{uuid:!0}});return null!=c}async function v(a,b,c={}){let d=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)}});if(!d)return null;let f=Math.min(Math.max(1,Math.floor(c.limit??20)),200),g="number"==typeof c.beforeTurnSeq&&Number.isFinite(c.beforeTurnSeq)?c.beforeTurnSeq:null,h="number"==typeof c.beforeMsgSeq&&Number.isFinite(c.beforeMsgSeq)?c.beforeMsgSeq:null,i=await e.z.daemonSessionTurn.findMany({where:{sessionUuid:b,...null!==g?{seq:{lte:g}}:{}},orderBy:{seq:"desc"}}),j=i.map(a=>a.uuid),n=j.length>0?await e.z.daemonTranscriptMessage.findMany({where:{turnUuid:{in:j}},orderBy:[{turnUuid:"asc"},{seq:"asc"}]}):[],o=new Map;for(let a of n){let b=x(a),c=o.get(b.turnUuid);c?c.push(b):o.set(b.turnUuid,[b])}let p=[];for(let a of i){let b=o.get(a.uuid)??[];for(let c=b.length-1;c>=0;c--)p.push({turnSeq:a.seq,msgSeq:b[c].seq,rendered:b[c]});let c=a.promptText,d="string"==typeof c&&c.length>0;p.push({turnSeq:a.seq,msgSeq:0,rendered:d?{uuid:`synthetic:${a.uuid}`,turnUuid:a.uuid,role:"user",text:c,seq:0,createdAt:a.createdAt.toISOString()}:null})}let q=null!==g?p.filter(a=>a.turnSeq<g||a.turnSeq===g&&a.msgSeq<(h??0)):p,r=q.length>f,s=r?q.slice(0,f):q,t=[...s].reverse(),u=s.length>0?s[s.length-1]:null,w=new Map;for(let a of i)w.set(a.uuid,a);let y=new Map;for(let a of i)y.set(a.seq,a.uuid);let z=new Map,A=[];for(let a of t)z.has(a.turnSeq)||(z.set(a.turnSeq,[]),A.push(a.turnSeq)),a.rendered&&z.get(a.turnSeq).push(a.rendered);let B=A.map(a=>{let b=y.get(a);return{...l(w.get(b)),messages:z.get(a)??[]}});return{session:k(d),turns:B,hasMore:r,oldestTurnSeq:u?u.turnSeq:null,oldestMsgSeq:u?u.msgSeq:null}}class F extends Error{constructor(a){super("This session is read-only: its origin connection is offline. A daemon session can only be continued on the connection that holds its on-disk transcript (claude --resume is cwd/machine-bound), so it is never routed to another connection."),this.code="session_read_only",this.name="SessionReadOnlyError",this.originConnectionUuid=a}}async function w(a,b){let c=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a},select:{originConnectionUuid:!0}});if(!c)throw Error(`DaemonSession ${b} not found`);let d=await e.z.daemonConnection.findFirst({where:{uuid:c.originConnectionUuid,companyUuid:a},select:{status:!0,lastSeenAt:!0,cwd:!0}});if(!(null!=d&&"online"===d.status&&Date.now()-d.lastSeenAt.getTime()<=h.BP))throw new F(c.originConnectionUuid);return c.originConnectionUuid}function x(a){return{uuid:a.uuid,turnUuid:a.turnUuid,role:a.role,text:a.text,seq:a.seq,createdAt:a.createdAt.toISOString()}}async function y(a){let b=null;if(a.turnUuid)b=await e.z.daemonSessionTurn.findFirst({where:{uuid:a.turnUuid,session:{agentUuid:a.agentUuid,companyUuid:a.companyUuid}},select:{uuid:!0,sessionUuid:!0}});else if(a.sessionId){let c=await e.z.daemonSession.findFirst({where:{agentUuid:a.agentUuid,companyUuid:a.companyUuid,sessionId:a.sessionId},select:{uuid:!0}});c&&(b=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid,status:"running"},orderBy:{seq:"asc"},select:{uuid:!0,sessionUuid:!0}})??await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid},orderBy:{seq:"desc"},select:{uuid:!0,sessionUuid:!0}}))}if(!b)return{ok:!1,reason:"not_found"};let c=b.sessionUuid,d=a.messages.filter(a=>D.includes(a.role)&&"string"==typeof a.text&&a.text.trim().length>0),f=[];if(d.length>0){let a=await e.z.daemonTranscriptMessage.findFirst({where:{turnUuid:b.uuid},orderBy:{seq:"desc"},select:{seq:!0}}),g=(a?.seq??0)+1,h=[];for(let a of d){let c=await e.z.daemonTranscriptMessage.create({data:{turnUuid:b.uuid,role:a.role,text:a.text,seq:g}});h.push(c),g+=1}f=h.map(x),await z(c)}let g=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:c}}});if(f.length>0){let d=await e.z.daemonSessionTurn.findUnique({where:{uuid:b.uuid}}),g=await e.z.daemonSession.findUnique({where:{uuid:c},select:{companyUuid:!0}});d&&o({companyUuid:g?.companyUuid??a.companyUuid,sessionUuid:c,trigger:"transcript_appended",turn:l(d),messages:f})}return{ok:!0,appended:f.length,stored:g,messages:f}}async function z(a){let b=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:a}}})-200;if(b<=0)return;let c=await e.z.daemonTranscriptMessage.findMany({where:{turn:{sessionUuid:a}},orderBy:[{createdAt:"asc"},{id:"asc"}],take:b,select:{uuid:!0}});0!==c.length&&await e.z.daemonTranscriptMessage.deleteMany({where:{uuid:{in:c.map(a=>a.uuid)}}})}async function A(a){let b,c=await e.z.daemonSession.findFirst({where:{agentUuid:a.agentUuid,companyUuid:a.companyUuid,sessionId:a.sessionId},select:{uuid:!0}});if(!c)return{ok:!1,reason:"not_found"};let d="running"===a.status?"pending":"ended"===a.status?"running":null,f=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid,...d?{status:d}:{}},orderBy:{seq:"asc"},select:{uuid:!0}});if(!f)return{ok:!1,reason:"not_found"};if(a.entityType&&a.entityUuid){let c=await e.z.daemonExecution.findFirst({where:{companyUuid:a.companyUuid,connectionUuid:a.connectionUuid,entityType:a.entityType,entityUuid:a.entityUuid},select:{uuid:!0}});b=c?.uuid??null}let g=new Date,h=void 0!==a.startedAt?a.startedAt:"running"===a.status?g:void 0,i=void 0!==a.endedAt?a.endedAt:"ended"===a.status?g:void 0,j=await s(f.uuid,a.status,{...void 0!==h?{startedAt:h}:{},...void 0!==i?{endedAt:i}:{},...void 0!==b?{executionUuid:b}:{}});return j.ok?{ok:!0,turn:j.turn}:"not_found"===j.reason?{ok:!1,reason:"not_found"}:{ok:!1,reason:"invalid_transition",from:j.from,to:j.to}}async function B(a){return(await e.z.daemonSessionTurn.findMany({where:{status:"pending",session:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,originConnectionUuid:a.connectionUuid}},orderBy:[{session:{createdAt:"asc"}},{seq:"asc"}],select:{uuid:!0,sessionUuid:!0,seq:!0,trigger:!0,promptText:!0,session:{select:{sessionId:!0,directIdeaUuid:!0}}}})).map(a=>({turnUuid:a.uuid,sessionUuid:a.sessionUuid,sessionId:a.session.sessionId,directIdeaUuid:a.session.directIdeaUuid,seq:a.seq,trigger:a.trigger,promptText:a.promptText}))}d()}catch(a){d(a)}})},35205:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K:()=>j});var e=c(71165),f=c(57578),g=c(8777),h=c(66643),i=a([e,f,g,h]);async function j(a,b,c){let d=await k(a,b,c),e=d.lineage.find(a=>"idea"===a.type)?.uuid??null;return{...d,directIdeaUuid:e}}async function k(a,b,c){switch(b){case"idea":return l(a,c);case"proposal":return o(a,c,"proposal");case"task":return m(a,c);case"document":return n(a,c);default:return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}}}async function l(a,b){let c=[],d=await p(a,b,c);return null===d?{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}:{rootIdeaUuid:d,lineage:c,resolvedVia:"root_idea"}}async function m(a,b){let c=await (0,e.K4)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"task",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"no_proposal"}}async function n(a,b){let c=await (0,g.Cs)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"document",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_document_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"standalone_document"}}async function o(a,b,c,d){var e;let g=d?[d]:[],h=await (0,f.PK)(a,b);if(!h)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};if(g.push({type:"proposal",uuid:h.uuid,title:h.title}),"idea"!==h.inputType)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let i=(e=h.inputUuids,Array.isArray(e)?e.filter(a=>"string"==typeof a):[]);if(0===i.length)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let j=await p(a,i[0],g);if(null===j)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};let k="via_document_proposal"===c?"via_document_proposal":"via_proposal"===c?"via_proposal":"root_idea";if(1===i.length)return{rootIdeaUuid:j,lineage:g,resolvedVia:k};let l=[j];for(let b of i.slice(1)){let c=await p(a,b);null!==c&&l.push(c)}return{rootIdeaUuid:j,lineage:g,resolvedVia:k,ambiguous:!0,candidates:l}}async function p(a,b,c){let d=await (0,h.MY)(a,b);if(!d)return null;c?.push({type:"idea",uuid:d.uuid,title:d.title});let e=new Set([d.uuid]);for(let b=0;b<50;b++){let b=d.parentUuid;if(!b||e.has(b))break;e.add(b);let f=await (0,h.MY)(a,b);if(!f)break;c?.push({type:"idea",uuid:f.uuid,title:f.title}),d=f}return d.uuid}[e,f,g,h]=i.then?(await i)():i,d()}catch(a){d(a)}})},37943:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>m,Ip:()=>n,NL:()=>o,Ug:()=>s,Xm:()=>k,aF:()=>j,lX:()=>r,p_:()=>l,rD:()=>p,y1:()=>q});var e=c(52618),f=c(42558),g=c(14120),h=a([e,g]);function i(a){return{uuid:a.uuid,projectUuid:a.projectUuid,projectName:a.projectName,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,readAt:a.readAt?.toISOString()??null,archivedAt:a.archivedAt?.toISOString()??null,createdAt:a.createdAt.toISOString(),instructionText:a.instructionText??null}}async function j(a){let b=await e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}),c=await m(a.companyUuid,a.recipientType,a.recipientUuid),{turn:d,targetConnectionUuid:h,suppressWake:j}=await (0,g.Wy)(a);return f.B.emit(`notification:${a.recipientType}:${a.recipientUuid}`,{type:"new_notification",notificationUuid:b.uuid,unreadCount:c,action:a.action,actorName:a.actorName,entityTitle:a.entityTitle,entityType:a.entityType,entityUuid:a.entityUuid,projectUuid:a.projectUuid,targetConnectionUuid:h,suppressWake:j}),{notification:i(b),turn:d}}async function k(a){let b=await Promise.all(a.map(a=>e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}))),c=new Map;for(let b of a){let{targetConnectionUuid:a,suppressWake:d}=await (0,g.Wy)(b);c.set(b,{targetConnectionUuid:a,suppressWake:d})}let d=new Set;for(let b of a)d.add(`${b.recipientType}:${b.recipientUuid}:${b.companyUuid}`);for(let e of d){let[d,g,h]=e.split(":"),i=await m(h,d,g),j=b.find(a=>a.recipientType===d&&a.recipientUuid===g),k=a.find(a=>a.recipientType===d&&a.recipientUuid===g);f.B.emit(`notification:${d}:${g}`,{type:"new_notification",notificationUuid:j?.uuid,unreadCount:i,action:k?.action,actorName:k?.actorName,entityTitle:k?.entityTitle,entityType:k?.entityType,entityUuid:k?.entityUuid,projectUuid:k?.projectUuid,targetConnectionUuid:k?c.get(k)?.targetConnectionUuid??null:null,suppressWake:!!k&&(c.get(k)?.suppressWake??!1)})}return b.map(i)}async function l(a){let{companyUuid:b,recipientType:c,recipientUuid:d,projectUuid:f,readFilter:g,archived:h}=a,j=a.skip??0,k=a.take??20,l={companyUuid:b,recipientType:c,recipientUuid:d,...f&&{projectUuid:f},..."unread"===g&&{readAt:null},..."read"===g&&{readAt:{not:null}},...!1===h&&{archivedAt:null},...!0===h&&{archivedAt:{not:null}}},[n,o,p]=await Promise.all([e.z.notification.findMany({where:l,skip:j,take:k,orderBy:{createdAt:"desc"}}),e.z.notification.count({where:l}),m(b,c,d)]);return{notifications:n.map(i),total:o,unreadCount:p}}async function m(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function n(a,b,c,d){await e.z.notification.updateMany({where:{uuid:a,companyUuid:b,recipientType:c,recipientUuid:d,readAt:null},data:{readAt:new Date}});let g=await e.z.notification.findFirst({where:{uuid:a,companyUuid:b}});if(!g)throw Error("Notification not found");let h=await m(b,c,d);return f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h}),i(g)}async function o(a,b,c,d){let g=await e.z.notification.updateMany({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,...d&&{projectUuid:d}},data:{readAt:new Date}}),h=await m(a,b,c);return f.B.emit(`notification:${b}:${c}`,{type:"count_update",unreadCount:h}),{count:g.count}}async function p(a,b,c,d){await e.z.notification.updateMany({where:{uuid:a,companyUuid:b,recipientType:c,recipientUuid:d,archivedAt:null},data:{archivedAt:new Date}});let g=await e.z.notification.findFirst({where:{uuid:a,companyUuid:b}});if(!g)throw Error("Notification not found");let h=await m(b,c,d);return f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h}),i(g)}function q(a){f.B.emit(`notification:user:${a.ownerUuid}`,{type:"new_notification",action:"agent_checkin",entityType:"agent",entityUuid:a.agentUuid,entityTitle:a.agentName,actorName:a.agentName})}async function r(a,b,c){let d=await e.z.notificationPreference.findUnique({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}}});return d||(d=await e.z.notificationPreference.create({data:{companyUuid:a,ownerType:b,ownerUuid:c}})),{uuid:d.uuid,ownerType:d.ownerType,ownerUuid:d.ownerUuid,taskAssigned:d.taskAssigned,taskStatusChanged:d.taskStatusChanged,taskVerified:d.taskVerified,taskReopened:d.taskReopened,proposalSubmitted:d.proposalSubmitted,proposalApproved:d.proposalApproved,proposalRejected:d.proposalRejected,ideaClaimed:d.ideaClaimed,commentAdded:d.commentAdded,elaborationRequested:d.elaborationRequested,elaborationAnswered:d.elaborationAnswered,mentioned:d.mentioned}}async function s(a,b,c,d){let f=await e.z.notificationPreference.upsert({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}},create:{companyUuid:a,ownerType:b,ownerUuid:c,...d},update:d});return{uuid:f.uuid,ownerType:f.ownerType,ownerUuid:f.ownerUuid,taskAssigned:f.taskAssigned,taskStatusChanged:f.taskStatusChanged,taskVerified:f.taskVerified,taskReopened:f.taskReopened,proposalSubmitted:f.proposalSubmitted,proposalApproved:f.proposalApproved,proposalRejected:f.proposalRejected,ideaClaimed:f.ideaClaimed,commentAdded:f.commentAdded,elaborationRequested:f.elaborationRequested,elaborationAnswered:f.elaborationAnswered,mentioned:f.mentioned}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},48873:(a,b,c)=>{c.d(b,{Ik:()=>f,Yy:()=>d,nm:()=>e});class d extends Error{constructor(a){super(`${a} is already claimed`),this.name="AlreadyClaimedError"}}class e extends Error{constructor(a){super(`${a} is not currently claimed`),this.name="NotClaimedError"}}function f(a){return"object"==typeof a&&null!==a&&"code"in a&&"P2025"===a.code}},54349:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Hu:()=>p,eT:()=>o,fg:()=>m,uA:()=>s});var e=c(52618),f=c(76872),g=c(90494),h=c(88437),i=c(42558),j=c(65582),k=a([e,f,g,h]);[e,f,g,h]=k.then?(await k)():k;let t={uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0};async function l(a){return Promise.all(a.map(async a=>{let b=await (0,f.lR)(a.authorType,a.authorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,content:a.content,author:{type:a.authorType,uuid:a.authorUuid,name:b??"Unknown"},createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}))}async function m(a){let{companyUuid:b,targetType:c,targetUuid:d,limit:g}=a;if(!await (0,f._9)(c,d,b))return void 0!==g?{comments:[],total:0,nextCursor:null,hasMore:!1}:{comments:[],total:0};if(void 0!==g)return n(a,g);let{skip:h,take:i}=a,j={companyUuid:b,targetType:c,targetUuid:d},[k,m]=await Promise.all([e.z.comment.findMany({where:j,skip:h,take:i,orderBy:{createdAt:"asc"},select:t}),e.z.comment.count({where:j})]);return{comments:await l(k),total:m}}async function n(a,b){let{companyUuid:c,targetType:d,targetUuid:f,cursor:g}=a,h={companyUuid:c,targetType:d,targetUuid:f},i=!1;if(g){let a=await e.z.comment.findFirst({where:{...h,uuid:g},select:{uuid:!0}});i=null!==a}let[j,k]=await Promise.all([e.z.comment.findMany({where:h,orderBy:[{createdAt:"desc"},{id:"desc"}],take:b+1,...i?{cursor:{uuid:g},skip:1}:{},select:t}),e.z.comment.count({where:h})]),m=j.length>b,n=m?j.slice(0,b):j,o=m?n[n.length-1].uuid:null;return{comments:await l(n),total:k,nextCursor:o,hasMore:m}}async function o({companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h}){if(!await (0,f._9)(b,c,a))throw Error(`Target ${b} with UUID ${c} not found`);let k=await e.z.comment.create({data:{companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),l=await (0,f.lR)(k.authorType,k.authorUuid);return p(b,c).then(d=>{d&&i.B.emitChange({companyUuid:a,projectUuid:d,entityType:b,entityUuid:c,action:"updated",actorUuid:h})}).catch(()=>{}),r(a,b,c,k.uuid,d,g,h).catch(a=>j.default.error({err:a},"Failed to process comment mentions")),{uuid:k.uuid,targetType:k.targetType,targetUuid:k.targetUuid,content:k.content,author:{type:k.authorType,uuid:k.authorUuid,name:l??"Unknown"},createdAt:k.createdAt.toISOString(),updatedAt:k.updatedAt.toISOString()}}async function p(a,b,c){let d=c?{companyUuid:c}:{};switch(a){case"task":{let a=await e.z.task.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"idea":{let a=await e.z.idea.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"proposal":{let a=await e.z.proposal.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"document":{let a=await e.z.document.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}default:return null}}async function q(a,b){switch(a){case"task":{let a=await e.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await e.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await e.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await e.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function r(a,b,c,d,e,f,i){let j=g.Xs(e);if(0===j.length)return;let k=await p(b,c);if(!k)return;let l=await q(b,c);for(let m of(await g.AM({companyUuid:a,sourceType:"comment",sourceUuid:d,content:e,actorType:f,actorUuid:i,projectUuid:k,entityTitle:l}),j))(m.type!==f||m.uuid!==i)&&await h.createActivity({companyUuid:a,projectUuid:k,targetType:b,targetUuid:c,actorType:f,actorUuid:i,action:"mentioned",value:{mentionedType:m.type,mentionedUuid:m.uuid,mentionedName:m.displayName,sourceType:"comment",sourceUuid:d}})}async function s(a,b,c){if(0===c.length)return{};let d=await e.z.comment.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:b,targetUuid:{in:c}},_count:{targetUuid:!0}}),f={};for(let a of c)f[a]=0;for(let a of d)f[a.targetUuid]=a._count.targetUuid;return f}d()}catch(a){d(a)}})},66643:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BB:()=>t,EZ:()=>A,JF:()=>y,MY:()=>w,Nm:()=>E,Q7:()=>v,XB:()=>J,bO:()=>q,bY:()=>F,h_:()=>C,i1:()=>x,jJ:()=>G,w9:()=>B,xo:()=>H});var e=c(52618),f=c(76872),g=c(42558),h=c(48873),i=c(27473),j=c(90494),k=c(88437),l=c(8777),m=c(57578),n=c(65582),o=a([e,f,j,k,l,m]);[e,f,j,k,l,m]=o.then?(await o)():o;let K={open:["elaborating"],elaborating:["elaborated"],elaborated:[]};function p(a){switch(a){case"assigned":case"in_progress":return"elaborating";case"proposal_created":case"completed":case"closed":case"pending_review":return"elaborated";default:return a}}function q(a,b){return(K[p(a)]||[]).includes(b)}async function r(a,b,c,d){if(!d)return{assigneeType:b,assigneeUuid:c};let f=await e.z.agentInstance.findFirst({where:{uuid:d,companyUuid:a},select:{uuid:!0}});if(!f)throw Error("Agent instance not found");return{assigneeType:"agent_instance",assigneeUuid:f.uuid}}async function s(a){let[b,c]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid),(0,f.LS)(a.createdByUuid)]);return{uuid:a.uuid,title:a.title,content:a.content,attachments:a.attachments,status:p(a.status),assignee:b,...a.project&&{project:a.project},...null!=a.elaborationStatus&&{elaborationStatus:a.elaborationStatus},...null!=a.elaborationDepth&&{elaborationDepth:a.elaborationDepth},createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function t({companyUuid:a,projectUuid:b,skip:c,take:d,status:g,assignedToMe:h,actorUuid:i,actorType:j,ownerUuid:k}){let l={projectUuid:b,companyUuid:a,...g&&{status:g}};h&&i&&j&&(l.OR=await (0,f.zl)({type:"agent"===j?"agent":"user",companyUuid:a,actorUuid:i,ownerUuid:k}));let[m,n]=await Promise.all([e.z.idea.findMany({where:l,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,parentUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:l})]),o=await Promise.all(m.map(s));if(m.forEach((a,b)=>{o[b].parentUuid=a.parentUuid??null}),o.length>0){let c=await u(a,b,o.map(a=>a.uuid));for(let a of o)a.reportCount=c.get(a.uuid)??0;let d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);for(let a of o)a.childCount=f.get(a.uuid)??0}return{ideas:o,total:n}}let L=["approved","closed"];async function u(a,b,c){let d=new Map;if(0===c.length)return d;let f=await e.z.proposal.findMany({where:{projectUuid:b,companyUuid:a,status:{in:[...L]},inputType:"idea"},select:{uuid:!0,inputUuids:!0}});if(0===f.length)return d;let g=new Set(c),h=new Map;for(let a of f){if(!Array.isArray(a.inputUuids))continue;let b=a.inputUuids.filter(a=>g.has(a));b.length>0&&h.set(a.uuid,b)}if(0===h.size)return d;for(let b of(await e.z.document.groupBy({by:["proposalUuid"],where:{companyUuid:a,type:"report",proposalUuid:{in:Array.from(h.keys())}},_count:{_all:!0}}))){if(!b.proposalUuid)continue;let a=h.get(b.proposalUuid);if(a)for(let c of a)d.set(c,(d.get(c)??0)+b._count._all)}return d}async function v(a,b){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},parent:{select:{uuid:!0,title:!0,status:!0}},children:{select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0},orderBy:{createdAt:"asc"}}}});if(!c)return null;let d=await s(c);d.parentUuid=c.parentUuid??null,d.parent=c.parent?{uuid:c.parent.uuid,title:c.parent.title,status:p(c.parent.status)}:null;let f=c.children??[];if(f.length>0){let b=await I(a,c.projectUuid),e=new Map(b.map(a=>[a.uuid,a.derivedStatus]));d.children=f.map(a=>({uuid:a.uuid,title:a.title,status:p(a.status),derivedStatus:e.get(a.uuid)??"todo"}))}else d.children=[];d.descendantUuids=await z(b,a);let g=(await m.fS(a,c.projectUuid,b)).filter(a=>L.includes(a.status));return 0===g.length?d.reports=[]:d.reports=await l.yZ(a,g.map(a=>a.uuid),"report"),d}async function w(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){if(a.parentUuid){let b=await e.z.idea.findFirst({where:{uuid:a.parentUuid,companyUuid:a.companyUuid},select:{projectUuid:!0}});if(!b)throw Error("Parent idea not found");if(b.projectUuid!==a.projectUuid)throw Error("Parent idea must be in the same project")}let b=await e.z.idea.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,content:a.content,attachments:a.attachments||void 0,status:"open",createdByUuid:a.createdByUuid,parentUuid:a.parentUuid??void 0},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,parentUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"created"});let c=await s(b);return c.parentUuid=b.parentUuid,c}async function y(a,b,c,d){let f=null;if(void 0!==c.content&&d){let b=await e.z.idea.findUnique({where:{uuid:a},select:{content:!0}});f=b?.content??null}let h=await e.z.idea.update({where:{uuid:a},data:c,include:{project:{select:{uuid:!0,name:!0}}}});if(g.B.emitChange({companyUuid:h.companyUuid,projectUuid:h.project.uuid,entityType:"idea",entityUuid:h.uuid,action:"updated"}),d){let a=["title","content"].filter(a=>void 0!==c[a]);a.length>0&&await k.createActivity({companyUuid:h.companyUuid,projectUuid:h.project.uuid,targetType:"idea",targetUuid:h.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"edited",value:{changedFields:a}})}return void 0!==c.content&&d&&c.content&&D(h.companyUuid,h.project.uuid,h.uuid,h.title,f,c.content,d.actorType,d.actorUuid).catch(a=>n.default.error({err:a},"Failed to process idea mentions")),s(h)}async function z(a,b){let c=new Set,d=[a];for(;d.length>0;){let f=await e.z.idea.findMany({where:{companyUuid:b,parentUuid:{in:d}},select:{uuid:!0}})??[],g=[];for(let b of f)b.uuid!==a&&(c.has(b.uuid)||(c.add(b.uuid),g.push(b.uuid)));d=g}return[...c]}async function A(a,b,c,d){let f=await e.z.idea.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!f)throw Error("Idea not found");let h=f.parentUuid??null;if(b){if(b===a)throw Error("An idea cannot be its own parent");let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!d)throw Error("Parent idea not found");if(d.projectUuid!==f.projectUuid)throw Error("Parent idea must be in the same project");let g=new Set,h=d.parentUuid;for(;h;){if(h===a)throw Error("Cannot set parent: would create a cycle");if(g.has(h))break;g.add(h);let b=await e.z.idea.findFirst({where:{uuid:h,companyUuid:c},select:{parentUuid:!0}});h=b?.parentUuid??null}}let i=await e.z.idea.update({where:{uuid:a},data:{parentUuid:b??null},include:{project:{select:{uuid:!0,name:!0}}}});g.B.emitChange({companyUuid:i.companyUuid,projectUuid:i.projectUuid,entityType:"idea",entityUuid:i.uuid,action:"updated"});let j=i.parentUuid??null;d&&j!==h&&await k.createActivity({companyUuid:i.companyUuid,projectUuid:i.projectUuid,targetType:"idea",targetUuid:i.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"reparented",value:{fromParentUuid:h,toParentUuid:j}});let l=await s(i);return l.parentUuid=i.parentUuid,l}async function B({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,instanceUuid:i}){let j=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!j||j.assigneeUuid)throw new h.Yy("Idea");let k=p(j.status);if("elaborated"===k)throw Error("Cannot claim an elaborated Idea");let l=await r(b,c,d,i),m=await e.z.idea.update({where:{uuid:a},data:{status:"elaborating",assigneeType:l.assigneeType,assigneeUuid:l.assigneeUuid,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:m.companyUuid,projectUuid:m.project.uuid,entityType:"idea",entityUuid:m.uuid,action:"updated"}),s(m)}async function C(a){let b=await e.z.idea.findUnique({where:{uuid:a}});if(!b)throw Error("Idea not found");let c=p(b.status);if("elaborated"===c)throw Error("Cannot release an elaborated Idea");let d=await e.z.idea.update({where:{uuid:a},data:{status:"open",assigneeType:null,assigneeUuid:null,assignedAt:null,assignedByUuid:null,elaborationDepth:null,elaborationStatus:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.project.uuid,entityType:"idea",entityUuid:d.uuid,action:"updated"}),s(d)}async function D(a,b,c,d,e,f,g,h){let i=e?j.Xs(e):[],l=j.Xs(f),m=new Set(i.map(a=>`${a.type}:${a.uuid}`)),n=l.filter(a=>!m.has(`${a.type}:${a.uuid}`));if(0!==n.length)for(let e of(await j.AM({companyUuid:a,sourceType:"idea",sourceUuid:c,content:f,actorType:g,actorUuid:h,projectUuid:b,entityTitle:d}),n))(e.type!==g||e.uuid!==h)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:"idea",targetUuid:c,actorType:g,actorUuid:h,action:"mentioned",value:{mentionedType:e.type,mentionedUuid:e.uuid,mentionedName:e.displayName,sourceType:"idea",sourceUuid:c}})}async function E(a){let b=await e.z.idea.findUnique({where:{uuid:a},select:{companyUuid:!0}});b&&await e.z.idea.updateMany({where:{companyUuid:b.companyUuid,parentUuid:a},data:{parentUuid:null}});let c=await e.z.idea.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:c.companyUuid,projectUuid:c.projectUuid,entityType:"idea",entityUuid:c.uuid,action:"deleted"}),c}async function F(a,b,c,d,f="user"){let h=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});if(!h)throw new i.hD("NOT_FOUND","Idea not found",404);let j=await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0,name:!0}});if(!j)throw new i.hD("NOT_FOUND","Target project not found",404);if(h.projectUuid===c)throw new i.hD("BAD_REQUEST","Idea is already in the target project",400);let l=h.projectUuid,m=await z(b,a),n=[b,...m],o=await e.z.$transaction(async d=>{let e=(await d.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:n.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),f=(await d.idea.updateMany({where:{companyUuid:a,uuid:{in:n}},data:{projectUuid:c}})).count;h.parentUuid&&await d.idea.update({where:{uuid:b},data:{parentUuid:null}});let g=0,i=0,j=0,k=[],l=[];if(e.length>0){let[b,f]=await Promise.all([d.document.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}}),d.task.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}})]);k=b.map(a=>a.uuid),l=f.map(a=>a.uuid),g=(await d.proposal.updateMany({where:{companyUuid:a,uuid:{in:e}},data:{projectUuid:c}})).count,i=(await d.document.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count,j=(await d.task.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count}let m=await d.activity.updateMany({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:n}},{targetType:"proposal",targetUuid:{in:e}},{targetType:"task",targetUuid:{in:l}},{targetType:"document",targetUuid:{in:k}}]},data:{projectUuid:c}});return{ideas:f,proposals:g,documents:i,tasks:j,activities:m.count}});await k.createActivity({companyUuid:a,projectUuid:c,targetType:"idea",targetUuid:b,actorType:f,actorUuid:d,action:"moved",value:{fromProjectUuid:l,fromProjectName:h.project.name,toProjectUuid:c,toProjectName:j.name,moved:o}}),g.B.emitChange({companyUuid:a,projectUuid:l,entityType:"idea",entityUuid:b,action:"updated"}),g.B.emitChange({companyUuid:a,projectUuid:c,entityType:"idea",entityUuid:b,action:"updated"});let p=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return{...await s(p),moved:o}}async function G(a,b,c){let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0,projectUuid:!0}});if(!d)throw new i.hD("NOT_FOUND","Idea not found",404);if(!await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}))throw new i.hD("NOT_FOUND","Target project not found",404);if(d.projectUuid===c)throw new i.hD("BAD_REQUEST","Idea is already in the target project",400);let f=await z(b,a),g=[b,...f],h=(await e.z.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:g.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),j=0,k=0,l=[],m=[];if(h.length>0){let[b,c]=await Promise.all([e.z.document.findMany({where:{companyUuid:a,proposalUuid:{in:h}},select:{uuid:!0}}),e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:h}},select:{uuid:!0}})]);l=b.map(a=>a.uuid),m=c.map(a=>a.uuid),j=l.length,k=m.length}let n=await e.z.activity.count({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:g}},{targetType:"proposal",targetUuid:{in:h}},{targetType:"task",targetUuid:{in:m}},{targetType:"document",targetUuid:{in:l}}]}});return{moved:{ideas:g.length,proposals:h.length,documents:j,tasks:k,activities:n}}}function H(a){switch(p(a.ideaStatus)){case"open":default:return{derivedStatus:"todo",badgeHint:"open"};case"elaborating":if("pending_answers"===a.elaborationStatus)return{derivedStatus:"human_conduct_required",badgeHint:"answer_questions"};return{derivedStatus:"in_progress",badgeHint:"researching"};case"elaborated":if(a.hasPendingProposal)return{derivedStatus:"human_conduct_required",badgeHint:"review_proposal"};if(a.hasApprovedProposal){if(a.taskStatuses.some(a=>"to_verify"===a))return{derivedStatus:"human_conduct_required",badgeHint:"verify_work"};if(a.taskStatuses.length>0&&a.taskStatuses.every(a=>"done"===a||"closed"===a))return{derivedStatus:"done",badgeHint:"done"};return{derivedStatus:"in_progress",badgeHint:"building"}}return{derivedStatus:"in_progress",badgeHint:"planning"}}}async function I(a,b){let c=await e.z.idea.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0,parentUuid:!0,createdAt:!0,updatedAt:!0},orderBy:{createdAt:"desc"}}),d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);let g=await e.z.proposal.findMany({where:{companyUuid:a,projectUuid:b,status:{in:["approved","pending"]}},select:{uuid:!0,status:!0,inputUuids:!0,createdAt:!0},orderBy:{createdAt:"desc"}}),h=new Map,i=new Set,j=new Map;for(let a of g){let b=a.inputUuids;if(Array.isArray(b)){for(let c of b)if(j.set(c,(j.get(c)??0)+1),"pending"===a.status)i.add(c);else if("approved"===a.status){let b=h.get(c);(!b||a.createdAt>b.createdAt)&&h.set(c,{uuid:a.uuid,createdAt:a.createdAt})}}}let k=[...new Set([...h.values()].map(a=>a.uuid))],l=new Map;if(k.length>0)for(let b of(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:k}},select:{proposalUuid:!0,status:!0}}))){if(!b.proposalUuid)continue;let a=l.get(b.proposalUuid)||[];a.push(b.status),l.set(b.proposalUuid,a)}return c.map(a=>{let c=h.get(a.uuid),d=c&&l.get(c.uuid)||[],{derivedStatus:e,badgeHint:g}=H({ideaStatus:a.status,elaborationStatus:a.elaborationStatus,hasPendingProposal:i.has(a.uuid),hasApprovedProposal:!!c,taskStatuses:d});return{uuid:a.uuid,title:a.title,status:a.status,derivedStatus:e,badgeHint:g,createdAt:a.createdAt,updatedAt:a.updatedAt,projectUuid:b,proposalCount:j.get(a.uuid)??0,taskCount:d.length,parentUuid:a.parentUuid??null,childCount:f.get(a.uuid)??0}})}let M=["todo","in_progress","human_conduct_required","done"];async function J(a,b){let c=await I(a,b),d={},e={};for(let a of M)d[a]=[],e[a]=0;for(let a of c){let b=a.derivedStatus,c={uuid:a.uuid,title:a.title,status:a.status,derivedStatus:b,badgeHint:a.badgeHint,createdAt:a.createdAt.toISOString(),parentUuid:a.parentUuid,childCount:a.childCount};d[b]&&(d[b].push(c),e[b]++)}return{groups:d,counts:e}}d()}catch(a){d(a)}})},70369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bp:()=>s,N_:()=>p,OQ:()=>w,Oi:()=>u,Rk:()=>q,Uc:()=>A,i2:()=>z,mX:()=>x,ub:()=>r,y9:()=>y});var e=c(55511),f=c(52618),g=c(65582),h=c(37943),i=c(28792),j=c(34853),k=c(93419),l=a([f,h,i,j,k]);[f,h,i,j,k]=l.then?(await l)():l;let v=g.default.child({module:"daemon-instruction.service"});class w extends Error{constructor(){super("Daemon session not found"),this.code="session_not_visible",this.name="SessionNotVisibleError"}}class x extends Error{constructor(){super("Connection not found"),this.code="connection_not_visible",this.name="ConnectionNotVisibleError"}}class y extends Error{constructor(a){super("The chosen connection is offline. An instruction can only run on an online daemon connection (claude --resume is cwd/machine-bound)."),this.code="connection_offline",this.name="ConnectionOfflineError",this.connectionUuid=a}}class z extends Error{constructor(a){super("This conversation's origin is still online, so it cannot be re-pointed. Re-pointing only rescues a read-only conversation whose origin went offline; send to the live origin instead."),this.code="repoint_origin_live",this.name="RepointOriginLiveError",this.originConnectionUuid=a}}class A extends Error{constructor(a){super("empty"===a?"Instruction text must not be empty.":"Instruction text exceeds the maximum of 4000 characters."),this.code="invalid_instruction_text",this.name="InstructionTextError",this.reason=a}}function m(a){let b=(a??"").trim();if(0===b.length)throw new A("empty");if(b.length>4e3)throw new A("too_long");return b}async function n(a,b){let c="agent"===a.type?{agentUuid:a.actorUuid}:{agent:{ownerUuid:a.actorUuid}};return await f.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...c},select:{agentUuid:!0,sessionId:!0,directIdeaUuid:!0,originConnectionUuid:!0}})}async function o(a){let{auth:b,agentUuid:c,sessionUuid:d,sessionId:e,directIdeaUuid:f,instructionText:g}=a,{turn:i}=await h.aF({companyUuid:b.companyUuid,projectUuid:"",projectName:"",recipientType:"agent",recipientUuid:c,entityType:null!=f?"idea":"daemon_session",entityUuid:null!=f?f:e,entityTitle:"",action:"human_instruction",message:"Human instruction",actorType:"agent"===b.type?"agent":"user",actorUuid:b.actorUuid,actorName:"",instructionText:g});if(!i)throw Error(`Instruction turn was not created on session ${d} (no online origin at chokepoint).`);return i}function p(a){try{(0,i.s7)({companyUuid:a.companyUuid,targetConnectionUuid:a.originConnectionUuid,command:"deliver_turn",turnUuid:a.turnUuid})}catch(b){v.warn({err:b,originConnectionUuid:a.originConnectionUuid,turnUuid:a.turnUuid},"deliver_turn live ping failed; the turn is persisted and will be recovered by the daemon's reconnect-backfill")}}async function q(a,b){let c=m(b.instructionText),d=await n(a,b.sessionUuid);if(!d)throw new w;await (0,j.v8)(a.companyUuid,b.sessionUuid);let e=await o({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});return p({companyUuid:a.companyUuid,originConnectionUuid:d.originConnectionUuid,turnUuid:e.uuid}),{turn:e}}async function r(a,b){let c=m(b.instructionText),d=await t(a,b.agentUuid),f=await (0,k.HC)(a.companyUuid,b.agentUuid,b.connectionUuid);if(!d||!f)throw new x;if(!await (0,k.j8)(a.companyUuid,b.connectionUuid))throw new y(b.connectionUuid);let g=(0,e.randomUUID)(),h=await (0,j.KF)({companyUuid:a.companyUuid,agentUuid:b.agentUuid,sessionId:g,directIdeaUuid:null,originConnectionUuid:b.connectionUuid}),i=await o({auth:a,agentUuid:b.agentUuid,sessionUuid:h.uuid,sessionId:g,directIdeaUuid:null,instructionText:c});return p({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:i.uuid}),{session:h,turn:i}}async function s(a,b){let c=m(b.instructionText),d=await n(a,b.sessionUuid);if(!d)throw new w;if(await (0,k.j8)(a.companyUuid,d.originConnectionUuid))throw new z(d.originConnectionUuid);if(!await (0,k.HC)(a.companyUuid,d.agentUuid,b.connectionUuid))throw new x;if(!await (0,k.j8)(a.companyUuid,b.connectionUuid))throw new y(b.connectionUuid);await f.z.daemonSession.update({where:{uuid:b.sessionUuid,companyUuid:a.companyUuid},data:{originConnectionUuid:b.connectionUuid}});let e=await o({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});p({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:e.uuid});let g=await f.z.daemonSession.findUnique({where:{uuid:b.sessionUuid}});if(!g)throw Error(`repointSessionOriginAndSend: session ${b.sessionUuid} missing after re-point`);return{session:{uuid:g.uuid,agentUuid:g.agentUuid,sessionId:g.sessionId,directIdeaUuid:g.directIdeaUuid,originConnectionUuid:g.originConnectionUuid,status:g.status,title:g.title,lastTurnAt:g.lastTurnAt.toISOString(),createdAt:g.createdAt.toISOString(),updatedAt:g.updatedAt.toISOString()},turn:e}}async function t(a,b){return"agent"===a.type?b===a.actorUuid:await f.z.agent.count({where:{uuid:b,companyUuid:a.companyUuid,ownerUuid:a.actorUuid}})>0}async function u(a){let b=await (0,j.WP)(a);if(0===b.length)return[];let c=[...new Set(b.map(a=>a.originConnectionUuid))],d=await f.z.daemonConnection.findMany({where:{companyUuid:a.companyUuid,uuid:{in:c}},select:{uuid:!0,status:!0,lastSeenAt:!0}}),e=Date.now(),g=new Set(d.filter(a=>"online"===a.status&&e-a.lastSeenAt.getTime()<=j.BP).map(a=>a.uuid)),h=[...new Set(b.map(a=>a.directIdeaUuid).filter(a=>!!a))],i=(0,j.L0)(b.map(a=>a.uuid)),k=h.length>0?f.z.idea.findMany({where:{companyUuid:a.companyUuid,uuid:{in:h}},select:{uuid:!0,title:!0}}):Promise.resolve([]),l=await i,m=await k,n=new Map(m.map(a=>[a.uuid,a.title]));return b.map(a=>({...a,originOnline:g.has(a.originConnectionUuid),firstInstruction:l.get(a.uuid)??null,ideaTitle:a.directIdeaUuid?n.get(a.directIdeaUuid)??null:null}))}d()}catch(a){d(a)}})},71165:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AY:()=>N,Cm:()=>P,Ew:()=>H,Fp:()=>A,IM:()=>O,K4:()=>w,LQ:()=>C,Pf:()=>D,QK:()=>z,QL:()=>K,UT:()=>x,Vk:()=>u,_T:()=>E,cn:()=>F,gg:()=>v,j9:()=>L,lC:()=>y,vQ:()=>M,vq:()=>B,xI:()=>o});var e=c(52618),f=c(76872),g=c(42558),h=c(48873),i=c(54349),j=c(90494),k=c(88437),l=c(65582),m=c(68775),n=a([e,f,i,j,k]);[e,f,i,j,k]=n.then?(await n)():n;let Q={open:["assigned","closed"],assigned:["open","in_progress","closed"],in_progress:["to_verify","closed"],to_verify:["done","in_progress","closed"],done:["closed"],closed:[]};function o(a,b){return(Q[a]||[]).includes(b)}let R={total:0,required:0,passed:0,failed:0,pending:0,requiredPassed:0,requiredFailed:0,requiredPending:0};function p(a){if(0===a.length)return{status:"not_started",summary:{...R}};let b={...R,total:a.length};for(let c of a)c.required&&b.required++,"passed"===c.status?(b.passed++,c.required&&b.requiredPassed++):"failed"===c.status?(b.failed++,c.required&&b.requiredFailed++):(b.pending++,c.required&&b.requiredPending++);return b.requiredFailed>0?{status:"failed",summary:b}:b.requiredPassed===b.required&&b.required>0?{status:"passed",summary:b}:b.passed>0||b.failed>0?{status:"in_progress",summary:b}:{status:"not_started",summary:b}}function q(a){return{uuid:a.uuid,description:a.description,required:a.required,devStatus:a.devStatus,devEvidence:a.devEvidence,devMarkedByType:a.devMarkedByType,devMarkedBy:a.devMarkedBy,devMarkedAt:a.devMarkedAt?.toISOString()??null,status:a.status,evidence:a.evidence,markedByType:a.markedByType,markedBy:a.markedBy,markedAt:a.markedAt?.toISOString()??null,sortOrder:a.sortOrder}}async function r(a,b,c,d){if(!d)return{assigneeType:b,assigneeUuid:c};let f=await e.z.agentInstance.findFirst({where:{uuid:d,companyUuid:a},select:{uuid:!0}});if(!f)throw Error("Agent instance not found");return{assigneeType:"agent_instance",assigneeUuid:f.uuid}}async function s(a,b=0){let[c,d]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid),(0,f.LS)(a.createdByUuid)]),e=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),g=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),h=(a.acceptanceCriteriaItems||[]).map(q),{status:i,summary:j}=p(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:h,acceptanceStatus:i,acceptanceSummary:j,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:e,dependedBy:g,commentCount:b,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function t(a,b){if(0===a.length)return[];let c=[],d=[],e=[];for(let b of a)b.assigneeType&&b.assigneeUuid&&(c.push({type:b.assigneeType,uuid:b.assigneeUuid}),"agent_instance"===b.assigneeType&&e.push(b.assigneeUuid)),b.assignedByUuid&&c.push({type:"user",uuid:b.assignedByUuid}),d.push(b.createdByUuid);let[g,h,i]=await Promise.all([(0,f.Uo)(c),(0,f.Xx)(d),(0,f.dI)(e)]);return a.map(a=>{let c=null;if(a.assigneeType&&a.assigneeUuid){let b=g.get(a.assigneeUuid);if(b){let d=null;if(a.assignedByUuid){let b=g.get(a.assignedByUuid);b&&(d={type:"user",uuid:a.assignedByUuid,name:b})}let e="agent_instance"===a.assigneeType?i.get(a.assigneeUuid):void 0;c={type:a.assigneeType,uuid:a.assigneeUuid,name:b,assignedAt:a.assignedAt?.toISOString()??null,assignedBy:d,...e?{instance:e}:{}}}}let d=h.get(a.createdByUuid)??null,e=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),f=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),j=(a.acceptanceCriteriaItems||[]).map(q),{status:k,summary:l}=p(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:j,acceptanceStatus:k,acceptanceSummary:l,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:e,dependedBy:f,commentCount:b[a.uuid]??0,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}})}let S={dependsOn:{select:{dependsOn:{select:{uuid:!0,title:!0,status:!0}}}},dependedBy:{select:{task:{select:{uuid:!0,title:!0,status:!0}}}},acceptanceCriteriaItems:{orderBy:{sortOrder:"asc"}}};async function u({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,priority:g,proposalUuids:h}){let j={projectUuid:b,companyUuid:a,...f&&{status:f},...g&&{priority:g},...h&&h.length>0&&{proposalUuid:{in:h}}},[k,l]=await Promise.all([e.z.task.findMany({where:j,skip:c,take:d,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:j})]),m=await (0,i.uA)(a,"task",k.map(a=>a.uuid));return{tasks:await t(k,m),total:l}}async function v(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},...S}});if(!c)return null;let d=await e.z.comment.count({where:{companyUuid:a,targetType:"task",targetUuid:b}});return s(c,d)}async function w(a,b){return e.z.task.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){let b=await e.z.task.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,description:a.description,status:"open",priority:a.priority||"medium",storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"task",entityUuid:b.uuid,action:"created"}),s(b)}async function y(a,b,c){let d=null;if(void 0!==b.description&&c){let b=await e.z.task.findUnique({where:{uuid:a},select:{description:!0}});d=b?.description??null}let f=await e.z.$transaction(async c=>{if(b.status&&"done"!==b.status){let b=await c.task.findUnique({where:{uuid:a},select:{status:!0}});b?.status==="to_verify"&&await c.acceptanceCriterion.updateMany({where:{taskUuid:a},data:{status:"pending",evidence:null,markedByType:null,markedBy:null,markedAt:null,devStatus:"pending",devEvidence:null,devMarkedByType:null,devMarkedBy:null,devMarkedAt:null}})}return c.task.update({where:{uuid:a},data:b,include:{project:{select:{uuid:!0,name:!0}}}})});return g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.project.uuid,entityType:"task",entityUuid:f.uuid,action:"updated"}),void 0!==b.description&&c&&b.description&&I(f.companyUuid,f.project.uuid,"task",f.uuid,f.title,d,b.description,c.actorType,c.actorUuid).catch(a=>l.default.error({err:a},"Failed to process task mentions")),s(f)}async function z({taskUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,instanceUuid:i}){try{let h=await r(b,c,d,i),j=await e.z.task.update({where:{uuid:a,status:{in:["open","assigned"]}},data:{status:"assigned",assigneeType:h.assigneeType,assigneeUuid:h.assigneeUuid,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:j.companyUuid,projectUuid:j.project.uuid,entityType:"task",entityUuid:j.uuid,action:"updated"}),s(j)}catch(a){if((0,h.Ik)(a))throw new h.Yy("Task");throw a}}async function A(a){try{let b=await e.z.task.update({where:{uuid:a,status:"assigned"},data:{status:"open",assigneeType:null,assigneeUuid:null,assignedAt:null,assignedByUuid:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.project.uuid,entityType:"task",entityUuid:b.uuid,action:"updated"}),s(b)}catch(a){if((0,h.Ik)(a))throw new h.nm("Task");throw a}}async function B(a){let b=await e.z.task.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.projectUuid,entityType:"task",entityUuid:b.uuid,action:"deleted"}),b}async function C(a,b){if(0===b.length)return[];let c=b.map((b,c)=>e.z.acceptanceCriterion.create({data:{taskUuid:a,description:b.description,required:b.required??!0,sortOrder:b.sortOrder??c}}));return(await Promise.all(c)).map(q)}async function D(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");if(!(0,m.hY)(c))throw Error(m.se);let f=(0,m.Ch)(c),h=await e.z.$transaction(async a=>(await a.acceptanceCriterion.deleteMany({where:{taskUuid:b}}),f.length>0&&await a.acceptanceCriterion.createMany({data:f.map((a,c)=>({taskUuid:b,description:a.description,required:a.required,sortOrder:c}))}),a.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}})));return g.B.emitChange({companyUuid:a,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),h.map(q)}async function E(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{status:a.status,evidence:a.evidence??null,markedByType:d.type,markedBy:d.actorUuid,markedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),G(a,b)}async function F(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{devStatus:a.devStatus,devEvidence:a.devEvidence??null,devMarkedByType:d.type,devMarkedBy:d.actorUuid,devMarkedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),G(a,b)}async function G(a,b){if(!await e.z.task.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Task not found");let c=await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}}),d=c.map(q),{status:f,summary:g}=p(c);return{items:d,status:f,summary:g}}async function H(a){let b=await e.z.acceptanceCriterion.findMany({where:{taskUuid:a},orderBy:{sortOrder:"asc"}});if(0===b.length||b.filter(a=>a.required).every(a=>"passed"===a.status))return{allowed:!0};let{summary:c}=p(b),d=b.filter(a=>a.required&&"passed"!==a.status).map(q);return{allowed:!1,reason:`Not all required acceptance criteria are passed. Required: ${c.required}, Passed: ${c.requiredPassed}, Failed: ${c.requiredFailed}, Pending: ${c.requiredPending}`,summary:c,unresolvedCriteria:d}}async function I(a,b,c,d,e,f,g,h,i){let l=f?j.Xs(f):[],m=j.Xs(g),n=new Set(l.map(a=>`${a.type}:${a.uuid}`)),o=m.filter(a=>!n.has(`${a.type}:${a.uuid}`));if(0!==o.length)for(let f of(await j.AM({companyUuid:a,sourceType:c,sourceUuid:d,content:g,actorType:h,actorUuid:i,projectUuid:b,entityTitle:e}),o))(f.type!==h||f.uuid!==i)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:h,actorUuid:i,action:"mentioned",value:{mentionedType:f.type,mentionedUuid:f.uuid,mentionedName:f.displayName,sourceType:c,sourceUuid:d}})}async function J(a,b){let c=await e.z.taskDependency.findMany({select:{taskUuid:!0,dependsOnUuid:!0}}),d=new Map;for(let a of c)d.has(a.taskUuid)||d.set(a.taskUuid,[]),d.get(a.taskUuid).push(a.dependsOnUuid);let f=new Set,g=[a];for(;g.length>0;){let a=g.pop();if(a===b)return!0;if(!f.has(a))for(let b of(f.add(a),d.get(a)||[]))f.has(b)||g.push(b)}return!1}async function K(a,b,c){if(b===c)throw Error("A task cannot depend on itself");let[d,f]=await Promise.all([e.z.task.findFirst({where:{uuid:b,companyUuid:a}}),e.z.task.findFirst({where:{uuid:c,companyUuid:a}})]);if(!d)throw Error("Task not found");if(!f)throw Error("Dependency task not found");if(d.projectUuid!==f.projectUuid)throw Error("Tasks must belong to the same project");if(await J(c,b))throw Error("Adding this dependency would create a cycle");let g=await e.z.taskDependency.create({data:{taskUuid:b,dependsOnUuid:c}});return{taskUuid:g.taskUuid,dependsOnUuid:g.dependsOnUuid,createdAt:g.createdAt}}async function L(a,b,c){if(!await e.z.task.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Task not found");await e.z.taskDependency.deleteMany({where:{taskUuid:b,dependsOnUuid:c}})}async function M(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:S});if(!c)throw Error("Task not found");return{dependsOn:c.dependsOn.map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),dependedBy:c.dependedBy.map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status}))}}async function N({companyUuid:a,projectUuid:b,proposalUuids:c}){let d={projectUuid:b,companyUuid:a,status:{in:["open","assigned"]},...c&&c.length>0&&{proposalUuid:{in:c}},NOT:{dependsOn:{some:{dependsOn:{status:{notIn:["done","closed"]}}}}}},[f,g]=await Promise.all([e.z.task.findMany({where:d,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:d})]),h=await (0,i.uA)(a,"task",f.map(a=>a.uuid));return{tasks:await t(f,h),total:g}}async function O(a){let b=await e.z.taskDependency.findMany({where:{taskUuid:a},select:{dependsOn:{select:{uuid:!0,title:!0,status:!0,assigneeType:!0,assigneeUuid:!0}}}});if(0===b.length)return{resolved:!0,blockers:[]};let c=b.filter(a=>"done"!==a.dependsOn.status&&"closed"!==a.dependsOn.status);if(0===c.length)return{resolved:!0,blockers:[]};let d=c.map(a=>a.dependsOn.uuid),[g,h]=await Promise.all([e.z.sessionTaskCheckin.findMany({where:{taskUuid:{in:d},checkoutAt:null},select:{taskUuid:!0,sessionUuid:!0,session:{select:{name:!0}}}}),(0,f.Uo)(c.filter(a=>a.dependsOn.assigneeType&&a.dependsOn.assigneeUuid).map(a=>({type:a.dependsOn.assigneeType,uuid:a.dependsOn.assigneeUuid})))]),i=new Map;for(let a of g)i.set(a.taskUuid,{sessionUuid:a.sessionUuid,sessionName:a.session.name});let j=c.map(a=>{let b=a.dependsOn,c=null;if(b.assigneeType&&b.assigneeUuid){let a=h.get(b.assigneeUuid);a&&(c={type:b.assigneeType,uuid:b.assigneeUuid,name:a})}return{uuid:b.uuid,title:b.title,status:b.status,assignee:c,sessionCheckin:i.get(b.uuid)??null}});return{resolved:!1,blockers:j}}async function P(a,b){let[c,d]=await Promise.all([e.z.task.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,priority:!0,proposalUuid:!0}}),e.z.taskDependency.findMany({where:{task:{companyUuid:a,projectUuid:b}},select:{taskUuid:!0,dependsOnUuid:!0}})]);return{nodes:c.map(a=>({uuid:a.uuid,title:a.title,status:a.status,priority:a.priority,proposalUuid:a.proposalUuid??null})),edges:d.map(a=>({from:a.taskUuid,to:a.dependsOnUuid}))}}d()}catch(a){d(a)}})},88437:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{createActivity:()=>k,listActivities:()=>i,listActivitiesWithActorNames:()=>j});var e=c(52618),f=c(42558),g=c(76872),h=a([e,g]);async function i({companyUuid:a,projectUuid:b,skip:c,take:d,targetType:f,targetUuid:g}){let h={projectUuid:b,companyUuid:a,...f&&{targetType:f},...g&&{targetUuid:g}},[i,j]=await Promise.all([e.z.activity.findMany({where:h,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,targetType:!0,targetUuid:!0,actorType:!0,actorUuid:!0,action:!0,value:!0,sessionUuid:!0,sessionName:!0,createdAt:!0}}),e.z.activity.count({where:h})]);return{activities:i,total:j}}async function j(a){let{activities:b,total:c}=await i(a);return{activities:await Promise.all(b.map(async a=>{let b=await (0,g.lR)(a.actorType,a.actorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,action:a.action,actorType:a.actorType,actorName:b||"Unknown",value:a.value,sessionUuid:a.sessionUuid,sessionName:a.sessionName,createdAt:a.createdAt.toISOString()}})),total:c}}async function k({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l}){let m=await e.z.activity.create({data:{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j||void 0,sessionUuid:k||void 0,sessionName:l||void 0}});return f.B.emit("activity",{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l,uuid:m.uuid}),m}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},90494:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AM:()=>m,Xs:()=>l,_L:()=>r});var e=c(52618),f=c(76872),g=c(37943),h=c(25736),i=c(97515),j=c(93419),k=a([e,f,g,i,j]);[e,f,g,i,j]=k.then?(await k)():k;let t=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\?([^)]*))?\)/gi;function l(a){let b,c=[],d=new Set;for(t.lastIndex=0;null!==(b=t.exec(a))&&!(c.length>=10);){let a=b[1],e=b[2].toLowerCase(),f=b[3].toLowerCase(),{pinnedHost:g,pinnedCwd:i}=(0,h.vE)(b[4]),j=`${e}:${f}`;if(!d.has(j)){d.add(j);let b={type:e,uuid:f,displayName:a};(null!==g||null!==i)&&(b.pinnedHost=g,b.pinnedCwd=i),c.push(b)}}return c}async function m(a){let{companyUuid:b,sourceType:c,sourceUuid:d,content:h,actorType:i,actorUuid:j,projectUuid:k,entityTitle:m}=a,n=l(h);if(0===n.length)return;let o=n.filter(a=>a.type!==i||a.uuid!==j);if(0===o.length)return;let p=[];for(let a of o)await s(b,a.type,a.uuid)&&p.push(a);if(0===p.length)return;await e.z.mention.createMany({data:p.map(a=>({companyUuid:b,sourceType:c,sourceUuid:d,mentionedType:a.type,mentionedUuid:a.uuid,actorType:i,actorUuid:j}))});let q=await (0,f.lR)(i,j)??"Someone",r=await e.z.project.findUnique({where:{uuid:k},select:{name:!0}}),u=r?.name??"Unknown Project",v=function(a){let b=a.replace(t,"@$1");return b.length<=120?b:b.substring(0,117)+"..."}(h),w=c,x=d;if("comment"===c){let a=await e.z.comment.findUnique({where:{uuid:d},select:{targetType:!0,targetUuid:!0}});a&&(w=a.targetType,x=a.targetUuid)}let y=[];for(let a of p){if(!(await g.lX(b,a.type,a.uuid)).mentioned)continue;let c=`${q} mentioned you: "${v}"`;y.push({companyUuid:b,projectUuid:k,recipientType:a.type,recipientUuid:a.uuid,entityType:w,entityUuid:x,entityTitle:m,projectName:u,action:"mentioned",message:c,actorType:i,actorUuid:j,actorName:q,pinnedHost:a.pinnedHost,pinnedCwd:a.pinnedCwd})}y.length>0&&await g.Xm(y)}function n(a){return"agent"===a.type?+!a.online:2}function o(a,b){let c=n(a),d=n(b);if(c!==d)return c-d;if(0===c){let c=a.activeCount??0,d=b.activeCount??0;return c!==d?c-d:a.name.localeCompare(b.name)}return 0}async function p(a,b){let c=b.filter(a=>"agent"===a.type).map(a=>a.uuid);if(0===c.length)return;let d=Date.now(),f=await e.z.daemonConnection.findMany({where:{companyUuid:a,agentUuid:{in:c}},select:{agentUuid:!0,status:!0,lastSeenAt:!0}}),g=new Set;for(let a of f){let b=d-a.lastSeenAt.getTime()<=i.BP;"online"===a.status&&b&&g.add(a.agentUuid)}let h=await e.z.daemonExecution.groupBy({by:["agentUuid"],where:{companyUuid:a,agentUuid:{in:c},status:{in:[...j.PF]}},_count:{_all:!0}}),k=new Map;for(let a of h)k.set(a.agentUuid,a._count._all);for(let a of b){if("agent"!==a.type)continue;let b=g.has(a.uuid);a.online=b,a.activeCount=b?k.get(a.uuid)??0:0}}async function q(a,b){let c=b.filter(a=>"agent"===a.type);if(0===c.length)return;let d=await Promise.all(c.map(async b=>{let c=(await (0,i._R)(a,b.uuid)).map(a=>({connectionUuid:a.uuid,host:a.host,cwd:a.cwd,effectiveStatus:a.effectiveStatus}));return{uuid:b.uuid,instances:c}})),e=new Map;for(let{uuid:a,instances:b}of d)e.set(a,b);for(let a of b)"agent"===a.type&&(a.instances=e.get(a.uuid)??[])}async function r(a){let b,{companyUuid:c,query:d,actorType:f,actorUuid:g,ownerUuid:h,limit:i=10,withInstances:j=!1}=a,k=Math.min(i,50),l=[];if("user"===f?b=g:"agent"===f&&h&&(b=h),!d){if(b)for(let a of(await e.z.agent.findMany({where:{companyUuid:c,ownerUuid:b},select:{uuid:!0,name:!0,roles:!0},orderBy:{createdAt:"desc"},take:k})))l.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await p(c,l),l.sort(o);let a=l.slice(0,Math.min(5,k));return j&&await q(c,a),a}for(let a of(await e.z.user.findMany({where:{companyUuid:c,OR:[{name:{contains:d,mode:"insensitive"}},{email:{contains:d,mode:"insensitive"}}]},select:{uuid:!0,name:!0,email:!0,avatarUrl:!0},take:k})))l.push({type:"user",uuid:a.uuid,name:a.name??a.email??"Unknown",email:a.email,avatarUrl:a.avatarUrl});let m={companyUuid:c,name:{contains:d,mode:"insensitive"}};for(let a of(b&&(m.ownerUuid=b),await e.z.agent.findMany({where:m,select:{uuid:!0,name:!0,roles:!0},take:k})))l.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await p(c,l),l.sort(o);let n=l.slice(0,k);return j&&await q(c,n),n}async function s(a,b,c){return"user"===b?!!await e.z.user.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}):!!await e.z.agent.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}})}d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=1463,exports.ids=[1463],exports.modules={8777:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cs:()=>o,Nn:()=>s,YE:()=>n,lC:()=>l,lU:()=>r,ui:()=>p,yZ:()=>m});var e=c(52618),f=c(76872),g=c(42558),h=c(88437),i=c(65582),j=a([e,f,h]);[e,f,h]=j.then?(await j)():j;let t=i.default.child({module:"document.service"});async function k(a,b=!1){let c=await (0,f.LS)(a.createdByUuid),d={uuid:a.uuid,type:a.type,title:a.title,version:a.version,proposalUuid:a.proposalUuid,createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()};return b&&void 0!==a.content&&(d.content=a.content),a.project&&(d.project=a.project),d}async function l({companyUuid:a,projectUuid:b,skip:c,take:d,type:f}){let g={projectUuid:b,companyUuid:a,...f&&{type:f}},[h,i]=await Promise.all([e.z.document.findMany({where:g,skip:c,take:d,orderBy:{updatedAt:"desc"},select:{uuid:!0,type:!0,title:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.document.count({where:g})]);return{documents:await Promise.all(h.map(a=>k(a))),total:i}}async function m(a,b,c){if(0===b.length)return[];let d={companyUuid:a,proposalUuid:{in:b},...c&&{type:c}},f=await e.z.document.findMany({where:d,orderBy:{createdAt:"desc"},select:{uuid:!0,type:!0,title:!0,content:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return Promise.all(f.map(a=>k(a,!0)))}async function n(a,b){let c=await e.z.document.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return c?k(c,!0):null}async function o(a,b){return e.z.document.findFirst({where:{uuid:b,companyUuid:a}})}async function p(a){let b=await e.z.document.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,type:a.type,title:a.title,content:a.content,version:1,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,type:!0,title:!0,content:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return"report"===a.type&&await q(a,b.uuid),k(b,!0)}async function q(a,b){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"document",entityUuid:b,action:"created",actorUuid:a.createdByUuid})}catch(c){t.warn({err:c,reportUuid:b,proposalUuid:a.proposalUuid},"Failed to emit document/created event for report")}if(!a.proposalUuid)return;let c=null;try{let b=await e.z.proposal.findFirst({where:{uuid:a.proposalUuid,companyUuid:a.companyUuid},select:{inputType:!0,inputUuids:!0}});if(b&&"idea"===b.inputType&&Array.isArray(b.inputUuids)){let a=b.inputUuids[0];"string"==typeof a&&a.length>0&&(c=a)}}catch(c){t.warn({err:c,reportUuid:b,proposalUuid:a.proposalUuid},"Failed to resolve parent Idea for report side effects");return}if(c){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:c,action:"updated",actorUuid:a.createdByUuid})}catch(d){t.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to emit idea/updated event for report")}try{let d=await (0,f.LS)(a.createdByUuid),e=d?.type??"agent";await h.createActivity({companyUuid:a.companyUuid,projectUuid:a.projectUuid,targetType:"idea",targetUuid:c,actorType:e,actorUuid:a.createdByUuid,action:"report_created",value:{reportUuid:b,proposalUuid:a.proposalUuid,reportTitle:a.title}})}catch(d){t.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to record report_created Activity")}}}async function r(a,{title:b,content:c,incrementVersion:d}){let f={};void 0!==b&&(f.title=b),void 0!==c&&(f.content=c),d&&(f.version={increment:1});let g=await e.z.document.update({where:{uuid:a},data:f,include:{project:{select:{uuid:!0,name:!0}}}});return k(g,!0)}async function s(a){return e.z.document.delete({where:{uuid:a}})}d()}catch(a){d(a)}})},14120:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Wy:()=>r});var e=c(65582),f=c(52618),g=c(34853),h=c(97515),i=c(70369),j=c(35205),k=a([f,g,h,i,j]);[f,g,h,i,j]=k.then?(await k)():k;let s=e.default.child({module:"notification-turn"}),t={mentioned:"mentioned",elaboration_requested:"elaboration",elaboration_answered:"elaboration",elaboration_verified:"elaboration_verified",human_instruction:"human_instruction",task_assigned:"task_assigned",task_reopened:"task_assigned",task_verified:"task_assigned",idea_claimed:"task_assigned",proposal_approved:"task_assigned",proposal_rejected:"task_assigned"},u=new Set(["task","document","proposal","idea"]),v=new Set(["task_assigned","elaboration","elaboration_verified"]);async function l(a,b){return await f.z.agentInstance.findFirst({where:{uuid:b,companyUuid:a},select:{host:!0,cwd:!0,agentUuid:!0}})??null}function m(a,b,c){return(null==a||""===a)&&(null==b||""===b)?null:{host:a??"",cwd:null!=b&&""!==b?b:null,soft:c}}async function n(a,b){if("mentioned"===b)return m(a.pinnedHost,a.pinnedCwd,!1);if(!u.has(a.entityType))return null;if("task"===a.entityType){let b=await f.z.task.findFirst({where:{uuid:a.entityUuid,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0}});if(b?.assigneeType==="agent_instance"&&b.assigneeUuid){let c=await l(a.companyUuid,b.assigneeUuid);if(c){let a=m(c.host,c.cwd,!0);if(a)return a}}}if("idea"===a.entityType){let b=await (0,g.cQ)(a.companyUuid,a.entityType,a.entityUuid),c=await o(a,b);if(c)return c}let c=await p(a);return o(a,c)}async function o(a,b){if(!b)return null;let c=await f.z.idea.findFirst({where:{uuid:b,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0}});if(c?.assigneeType==="agent_instance"&&c.assigneeUuid){let b=await l(a.companyUuid,c.assigneeUuid);if(b&&b.agentUuid===a.recipientUuid)return m(b.host,b.cwd,!0)}return null}async function p(a){return(await (0,j.K)(a.companyUuid,a.entityType,a.entityUuid)).rootIdeaUuid}async function q(a,b,c,d){if(!c)return null;let e=await f.z.daemonSession.findFirst({where:{companyUuid:a,agentUuid:b,sessionId:c},select:{originConnectionUuid:!0}});return e?d.find(a=>a.uuid===e.originConnectionUuid&&"online"===a.effectiveStatus)??null:null}async function r(a){let b={turn:null,targetConnectionUuid:null,suppressWake:!1},c=t[a.action]??null;if(!c||"agent"!==a.recipientType)return b;try{let d=await (0,h._R)(a.companyUuid,a.recipientUuid),e=await n(a,c),j=function(a,b){if(b){let c=a.find(a=>a.host===b.host&&a.cwd===b.cwd&&"online"===a.effectiveStatus);if(c)return{kind:"directed",connection:c};if(!b.soft)return{kind:"offline_pin"}}let c=a.find(a=>"online"===a.effectiveStatus);return c?{kind:"online_first",connection:c}:{kind:"none"}}(d,e),k=null;if(u.has(a.entityType)&&(k=await (0,g.cQ)(a.companyUuid,a.entityType,a.entityUuid)),v.has(c)&&"online_first"===j.kind){let b=await q(a.companyUuid,a.recipientUuid,k,d);b&&(j={kind:"directed",connection:b})}if("offline_pin"===j.kind)return{turn:null,targetConnectionUuid:null,suppressWake:!0};if("none"===j.kind)return b;let l=j.connection,m="directed"===j.kind,o=k??a.entityUuid,p=k;if(m&&k){let b=await f.z.daemonSession.findFirst({where:{companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:k},select:{originConnectionUuid:!0}});b&&b.originConnectionUuid!==l.uuid&&(o=`${k}::${l.uuid}`,p=null)}let r=await (0,g.KF)({companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:o,directIdeaUuid:p,originConnectionUuid:l.uuid}),s="human_instruction"===c?a.instructionText??null:null,t=await (0,g.n_)({sessionUuid:r.uuid,trigger:c,promptText:s});if(m)return(0,i.N_)({companyUuid:a.companyUuid,originConnectionUuid:l.uuid,turnUuid:t.uuid}),{turn:t,targetConnectionUuid:l.uuid,suppressWake:!1};return{turn:t,targetConnectionUuid:null,suppressWake:!1}}catch(c){return s.error({err:c,companyUuid:a.companyUuid,agentUuid:a.recipientUuid,action:a.action,entityType:a.entityType,entityUuid:a.entityUuid},"Failed to create DaemonSessionTurn for wake notification (notification was still created)"),b}}d()}catch(a){d(a)}})},25736:(a,b,c)=>{c.d(b,{vE:()=>d});function d(a){if(!a)return{pinnedHost:null,pinnedCwd:null};let b=new URLSearchParams(a),c=b.has("cwd"),d=b.has("host");if(!c&&!d)return{pinnedHost:null,pinnedCwd:null};let e=b.get("cwd")??"",f=b.get("host");return{pinnedCwd:c&&""!==e?e:null,pinnedHost:d?f??"":null}}},27473:(a,b,c)=>{c.d(b,{hD:()=>h,OG:()=>k,YB:()=>m,mA:()=>l,FB:()=>j});var d=c(70936),e=c(7046),f=c(65582);let g=new(c(16698)).AsyncLocalStorage;class h extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}let i={P2002:"Unique constraint violation",P2025:"Record not found",P2003:"Foreign key constraint violation"};function j(a){return async(b,c)=>{let j=crypto.randomUUID(),k=(0,f.q)({requestId:j});return g.run({requestId:j,logger:k},async()=>{try{return await a(b,c)}catch(a){if((g.getStore()?.logger??f.default).error({err:a},"API error"),a instanceof h)return d.NextResponse.json({success:!1,error:{code:a.code,message:a.message,details:a.details}},{status:a.status});if(a&&"object"==typeof a&&"code"in a){let b=i[a.code];if(b){if("P2025"===a.code)return e.sO.notFound();if("P2002"===a.code)return e.sO.conflict(b);return e.sO.database(b)}}if(a instanceof Error)return e.sO.internal("Internal server error");return e.sO.internal()}})}}async function k(a){try{return await a.json()}catch{throw new h("BAD_REQUEST","Invalid JSON body",400)}}function l(a){let b=new URL(a.url),c={};return b.searchParams.forEach((a,b)=>{c[b]=a}),c}function m(a){let b=l(a),c=Math.max(1,parseInt(b.page||"1",10)),d=Math.min(100,Math.max(1,parseInt(b.pageSize||"20",10)));return{page:c,pageSize:d,skip:(c-1)*d,take:d}}},28792:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K1:()=>k,Ll:()=>i,U_:()=>h,s7:()=>j});var e=c(52618),f=c(42558),g=a([e]);e=(g.then?(await g)():g)[0];let k=["task","idea","proposal","document","daemon_session"];async function h(a,b){let c=await e.z.daemonConnection.findFirst({where:{uuid:b,companyUuid:a},select:{agentUuid:!0,agent:{select:{ownerUuid:!0}}}});return c?{agentUuid:c.agentUuid,ownerUuid:c.agent?.ownerUuid??null}:null}async function i(a){let b=await h(a.companyUuid,a.connectionUuid);return b?null!=b.ownerUuid&&a.actorUuid===b.ownerUuid||a.hasTaskAdmin?{ok:!0,target:b}:{ok:!1,reason:"forbidden"}:{ok:!1,reason:"not_found"}}function j(a){let b="deliver_turn"===a.command?{type:"control",command:"deliver_turn",targetConnectionUuid:a.targetConnectionUuid,turnUuid:a.turnUuid}:{type:"control",command:a.command,targetConnectionUuid:a.targetConnectionUuid,entityType:a.entityType,entityUuid:a.entityUuid};f.B.emit((0,f.T)(a.targetConnectionUuid),b)}d()}catch(a){d(a)}})},34853:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BP:()=>h.BP,FG:()=>C,Jo:()=>u,KF:()=>p,Kk:()=>v,L0:()=>i.L0,VA:()=>A,WP:()=>t,cQ:()=>q,kA:()=>n,n7:()=>D,n_:()=>r,p_:()=>F,ts:()=>B,v8:()=>w,vG:()=>y});var e=c(52618),f=c(42558),g=c(35205),h=c(97515),i=c(22137),j=a([e,g,h,i]);[e,g,h,i]=j.then?(await j)():j;let C=["pending","running","ended"],D=["user","assistant"];function k(a){return{uuid:a.uuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid,originConnectionUuid:a.originConnectionUuid,status:a.status,title:a.title,lastTurnAt:a.lastTurnAt.toISOString(),createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}function l(a){return{uuid:a.uuid,sessionUuid:a.sessionUuid,seq:a.seq,trigger:a.trigger,promptText:a.promptText,status:a.status,executionUuid:a.executionUuid,startedAt:a.startedAt?a.startedAt.toISOString():null,endedAt:a.endedAt?a.endedAt.toISOString():null,createdAt:a.createdAt.toISOString()}}function m(a){return"agent"===a.type?{agentUuid:a.actorUuid}:{agent:{ownerUuid:a.actorUuid}}}function n(a){return`transcript:${a}`}function o(a){f.B.emit(n(a.sessionUuid),a)}async function p(a){let b=await e.z.daemonSession.upsert({where:{agentUuid_sessionId:{agentUuid:a.agentUuid,sessionId:a.sessionId}},create:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid??null,originConnectionUuid:a.originConnectionUuid,status:"active"},update:{companyUuid:a.companyUuid}});return k(b)}async function q(a,b,c){return(await (0,g.K)(a,b,c)).directIdeaUuid}async function r(a){let b=await e.z.daemonSession.findUnique({where:{uuid:a.sessionUuid},select:{uuid:!0,companyUuid:!0}});if(!b)throw Error(`DaemonSession ${a.sessionUuid} not found`);let c=null;for(let b=0;b<5;b++){let d=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:a.sessionUuid},orderBy:{seq:"desc"},select:{seq:!0}}),f=(d?.seq??0)+1;try{c=await e.z.daemonSessionTurn.create({data:{sessionUuid:a.sessionUuid,seq:f,trigger:a.trigger,promptText:a.promptText??null,status:"pending",executionUuid:a.executionUuid??null}});break}catch(a){if("object"==typeof a&&null!==a&&"code"in a&&"P2002"===a.code&&b<4)continue;throw a}}if(!c)throw Error(`createPendingTurn: could not allocate a unique seq for session ${a.sessionUuid} after 5 attempts`);await e.z.daemonSession.update({where:{uuid:a.sessionUuid},data:{lastTurnAt:new Date}});let d=l(c);return o({companyUuid:b.companyUuid,sessionUuid:a.sessionUuid,trigger:"turn_created",turn:d,messages:[]}),d}let E={pending:"running",running:"ended",ended:null};async function s(a,b,c={}){let d=await e.z.daemonSessionTurn.findUnique({where:{uuid:a},select:{uuid:!0,sessionUuid:!0,status:!0}});if(!d)return{ok:!1,reason:"not_found"};let f=E[d.status]??null;if(b!==f)return{ok:!1,reason:"invalid_transition",from:d.status,to:b};let g={status:b};void 0!==c.startedAt&&(g.startedAt=c.startedAt),void 0!==c.endedAt&&(g.endedAt=c.endedAt),void 0!==c.executionUuid&&(g.executionUuid=c.executionUuid);let h=await e.z.daemonSessionTurn.update({where:{uuid:a},data:g}),i=await e.z.daemonSession.findUnique({where:{uuid:d.sessionUuid},select:{companyUuid:!0}});if(!i)throw Error(`advanceTurn: session ${d.sessionUuid} missing for just-updated turn ${a}`);let j=l(h);return o({companyUuid:i.companyUuid,sessionUuid:d.sessionUuid,trigger:"turn_status_changed",turn:j,messages:[]}),{ok:!0,turn:j}}async function t(a){return(await e.z.daemonSession.findMany({where:{companyUuid:a.companyUuid,...m(a)},orderBy:{lastTurnAt:"desc"}})).map(k)}async function u(a,b){let c=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)},select:{uuid:!0}});return null!=c}async function v(a,b,c={}){let d=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)}});if(!d)return null;let f=Math.min(Math.max(1,Math.floor(c.limit??20)),200),g="number"==typeof c.beforeTurnSeq&&Number.isFinite(c.beforeTurnSeq)?c.beforeTurnSeq:null,h="number"==typeof c.beforeMsgSeq&&Number.isFinite(c.beforeMsgSeq)?c.beforeMsgSeq:null,i=await e.z.daemonSessionTurn.findMany({where:{sessionUuid:b,...null!==g?{seq:{lte:g}}:{}},orderBy:{seq:"desc"}}),j=i.map(a=>a.uuid),n=j.length>0?await e.z.daemonTranscriptMessage.findMany({where:{turnUuid:{in:j}},orderBy:[{turnUuid:"asc"},{seq:"asc"}]}):[],o=new Map;for(let a of n){let b=x(a),c=o.get(b.turnUuid);c?c.push(b):o.set(b.turnUuid,[b])}let p=[];for(let a of i){let b=o.get(a.uuid)??[];for(let c=b.length-1;c>=0;c--)p.push({turnSeq:a.seq,msgSeq:b[c].seq,rendered:b[c]});let c=a.promptText,d="string"==typeof c&&c.length>0;p.push({turnSeq:a.seq,msgSeq:0,rendered:d?{uuid:`synthetic:${a.uuid}`,turnUuid:a.uuid,role:"user",text:c,seq:0,createdAt:a.createdAt.toISOString()}:null})}let q=null!==g?p.filter(a=>a.turnSeq<g||a.turnSeq===g&&a.msgSeq<(h??0)):p,r=q.length>f,s=r?q.slice(0,f):q,t=[...s].reverse(),u=s.length>0?s[s.length-1]:null,w=new Map;for(let a of i)w.set(a.uuid,a);let y=new Map;for(let a of i)y.set(a.seq,a.uuid);let z=new Map,A=[];for(let a of t)z.has(a.turnSeq)||(z.set(a.turnSeq,[]),A.push(a.turnSeq)),a.rendered&&z.get(a.turnSeq).push(a.rendered);let B=A.map(a=>{let b=y.get(a);return{...l(w.get(b)),messages:z.get(a)??[]}});return{session:k(d),turns:B,hasMore:r,oldestTurnSeq:u?u.turnSeq:null,oldestMsgSeq:u?u.msgSeq:null}}class F extends Error{constructor(a){super("This session is read-only: its origin connection is offline. A daemon session can only be continued on the connection that holds its on-disk transcript (claude --resume is cwd/machine-bound), so it is never routed to another connection."),this.code="session_read_only",this.name="SessionReadOnlyError",this.originConnectionUuid=a}}async function w(a,b){let c=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a},select:{originConnectionUuid:!0}});if(!c)throw Error(`DaemonSession ${b} not found`);let d=await e.z.daemonConnection.findFirst({where:{uuid:c.originConnectionUuid,companyUuid:a},select:{status:!0,lastSeenAt:!0,cwd:!0}});if(!(null!=d&&"online"===d.status&&Date.now()-d.lastSeenAt.getTime()<=h.BP))throw new F(c.originConnectionUuid);return c.originConnectionUuid}function x(a){return{uuid:a.uuid,turnUuid:a.turnUuid,role:a.role,text:a.text,seq:a.seq,createdAt:a.createdAt.toISOString()}}async function y(a){let b=null;if(a.turnUuid)b=await e.z.daemonSessionTurn.findFirst({where:{uuid:a.turnUuid,session:{agentUuid:a.agentUuid,companyUuid:a.companyUuid}},select:{uuid:!0,sessionUuid:!0}});else if(a.sessionId){let c=await e.z.daemonSession.findFirst({where:{agentUuid:a.agentUuid,companyUuid:a.companyUuid,sessionId:a.sessionId},select:{uuid:!0}});c&&(b=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid,status:"running"},orderBy:{seq:"asc"},select:{uuid:!0,sessionUuid:!0}})??await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid},orderBy:{seq:"desc"},select:{uuid:!0,sessionUuid:!0}}))}if(!b)return{ok:!1,reason:"not_found"};let c=b.sessionUuid,d=a.messages.filter(a=>D.includes(a.role)&&"string"==typeof a.text&&a.text.trim().length>0),f=[];if(d.length>0){let a=await e.z.daemonTranscriptMessage.findFirst({where:{turnUuid:b.uuid},orderBy:{seq:"desc"},select:{seq:!0}}),g=(a?.seq??0)+1,h=[];for(let a of d){let c=await e.z.daemonTranscriptMessage.create({data:{turnUuid:b.uuid,role:a.role,text:a.text,seq:g}});h.push(c),g+=1}f=h.map(x),await z(c)}let g=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:c}}});if(f.length>0){let d=await e.z.daemonSessionTurn.findUnique({where:{uuid:b.uuid}}),g=await e.z.daemonSession.findUnique({where:{uuid:c},select:{companyUuid:!0}});d&&o({companyUuid:g?.companyUuid??a.companyUuid,sessionUuid:c,trigger:"transcript_appended",turn:l(d),messages:f})}return{ok:!0,appended:f.length,stored:g,messages:f}}async function z(a){let b=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:a}}})-200;if(b<=0)return;let c=await e.z.daemonTranscriptMessage.findMany({where:{turn:{sessionUuid:a}},orderBy:[{createdAt:"asc"},{id:"asc"}],take:b,select:{uuid:!0}});0!==c.length&&await e.z.daemonTranscriptMessage.deleteMany({where:{uuid:{in:c.map(a=>a.uuid)}}})}async function A(a){let b,c=await e.z.daemonSession.findFirst({where:{agentUuid:a.agentUuid,companyUuid:a.companyUuid,sessionId:a.sessionId},select:{uuid:!0}});if(!c)return{ok:!1,reason:"not_found"};let d="running"===a.status?"pending":"ended"===a.status?"running":null,f=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid,...d?{status:d}:{}},orderBy:{seq:"asc"},select:{uuid:!0}});if(!f)return{ok:!1,reason:"not_found"};if(a.entityType&&a.entityUuid){let c=await e.z.daemonExecution.findFirst({where:{companyUuid:a.companyUuid,connectionUuid:a.connectionUuid,entityType:a.entityType,entityUuid:a.entityUuid},select:{uuid:!0}});b=c?.uuid??null}let g=new Date,h=void 0!==a.startedAt?a.startedAt:"running"===a.status?g:void 0,i=void 0!==a.endedAt?a.endedAt:"ended"===a.status?g:void 0,j=await s(f.uuid,a.status,{...void 0!==h?{startedAt:h}:{},...void 0!==i?{endedAt:i}:{},...void 0!==b?{executionUuid:b}:{}});return j.ok?{ok:!0,turn:j.turn}:"not_found"===j.reason?{ok:!1,reason:"not_found"}:{ok:!1,reason:"invalid_transition",from:j.from,to:j.to}}async function B(a){return(await e.z.daemonSessionTurn.findMany({where:{status:"pending",session:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,originConnectionUuid:a.connectionUuid}},orderBy:[{session:{createdAt:"asc"}},{seq:"asc"}],select:{uuid:!0,sessionUuid:!0,seq:!0,trigger:!0,promptText:!0,session:{select:{sessionId:!0,directIdeaUuid:!0}}}})).map(a=>({turnUuid:a.uuid,sessionUuid:a.sessionUuid,sessionId:a.session.sessionId,directIdeaUuid:a.session.directIdeaUuid,seq:a.seq,trigger:a.trigger,promptText:a.promptText}))}d()}catch(a){d(a)}})},35205:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K:()=>j});var e=c(71165),f=c(57578),g=c(8777),h=c(66643),i=a([e,f,g,h]);async function j(a,b,c){let d=await k(a,b,c),e=d.lineage.find(a=>"idea"===a.type)?.uuid??null;return{...d,directIdeaUuid:e}}async function k(a,b,c){switch(b){case"idea":return l(a,c);case"proposal":return o(a,c,"proposal");case"task":return m(a,c);case"document":return n(a,c);default:return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}}}async function l(a,b){let c=[],d=await p(a,b,c);return null===d?{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}:{rootIdeaUuid:d,lineage:c,resolvedVia:"root_idea"}}async function m(a,b){let c=await (0,e.K4)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"task",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"no_proposal"}}async function n(a,b){let c=await (0,g.Cs)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"document",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_document_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"standalone_document"}}async function o(a,b,c,d){var e;let g=d?[d]:[],h=await (0,f.PK)(a,b);if(!h)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};if(g.push({type:"proposal",uuid:h.uuid,title:h.title}),"idea"!==h.inputType)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let i=(e=h.inputUuids,Array.isArray(e)?e.filter(a=>"string"==typeof a):[]);if(0===i.length)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let j=await p(a,i[0],g);if(null===j)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};let k="via_document_proposal"===c?"via_document_proposal":"via_proposal"===c?"via_proposal":"root_idea";if(1===i.length)return{rootIdeaUuid:j,lineage:g,resolvedVia:k};let l=[j];for(let b of i.slice(1)){let c=await p(a,b);null!==c&&l.push(c)}return{rootIdeaUuid:j,lineage:g,resolvedVia:k,ambiguous:!0,candidates:l}}async function p(a,b,c){let d=await (0,h.MY)(a,b);if(!d)return null;c?.push({type:"idea",uuid:d.uuid,title:d.title});let e=new Set([d.uuid]);for(let b=0;b<50;b++){let b=d.parentUuid;if(!b||e.has(b))break;e.add(b);let f=await (0,h.MY)(a,b);if(!f)break;c?.push({type:"idea",uuid:f.uuid,title:f.title}),d=f}return d.uuid}[e,f,g,h]=i.then?(await i)():i,d()}catch(a){d(a)}})},37943:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>m,Ip:()=>n,NL:()=>o,Ug:()=>s,Xm:()=>k,aF:()=>j,lX:()=>r,p_:()=>l,rD:()=>p,y1:()=>q});var e=c(52618),f=c(42558),g=c(14120),h=a([e,g]);function i(a){return{uuid:a.uuid,projectUuid:a.projectUuid,projectName:a.projectName,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,readAt:a.readAt?.toISOString()??null,archivedAt:a.archivedAt?.toISOString()??null,createdAt:a.createdAt.toISOString(),instructionText:a.instructionText??null}}async function j(a){let b=await e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}),c=await m(a.companyUuid,a.recipientType,a.recipientUuid),{turn:d,targetConnectionUuid:h,suppressWake:j}=await (0,g.Wy)(a);return f.B.emit(`notification:${a.recipientType}:${a.recipientUuid}`,{type:"new_notification",notificationUuid:b.uuid,unreadCount:c,action:a.action,actorName:a.actorName,entityTitle:a.entityTitle,entityType:a.entityType,entityUuid:a.entityUuid,projectUuid:a.projectUuid,targetConnectionUuid:h,suppressWake:j}),{notification:i(b),turn:d}}async function k(a){let b=await Promise.all(a.map(a=>e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}))),c=new Map;for(let b of a){let{targetConnectionUuid:a,suppressWake:d}=await (0,g.Wy)(b);c.set(b,{targetConnectionUuid:a,suppressWake:d})}let d=new Set;for(let b of a)d.add(`${b.recipientType}:${b.recipientUuid}:${b.companyUuid}`);for(let e of d){let[d,g,h]=e.split(":"),i=await m(h,d,g),j=b.find(a=>a.recipientType===d&&a.recipientUuid===g),k=a.find(a=>a.recipientType===d&&a.recipientUuid===g);f.B.emit(`notification:${d}:${g}`,{type:"new_notification",notificationUuid:j?.uuid,unreadCount:i,action:k?.action,actorName:k?.actorName,entityTitle:k?.entityTitle,entityType:k?.entityType,entityUuid:k?.entityUuid,projectUuid:k?.projectUuid,targetConnectionUuid:k?c.get(k)?.targetConnectionUuid??null:null,suppressWake:!!k&&(c.get(k)?.suppressWake??!1)})}return b.map(i)}async function l(a){let{companyUuid:b,recipientType:c,recipientUuid:d,projectUuid:f,readFilter:g,archived:h}=a,j=a.skip??0,k=a.take??20,l={companyUuid:b,recipientType:c,recipientUuid:d,...f&&{projectUuid:f},..."unread"===g&&{readAt:null},..."read"===g&&{readAt:{not:null}},...!1===h&&{archivedAt:null},...!0===h&&{archivedAt:{not:null}}},[n,o,p]=await Promise.all([e.z.notification.findMany({where:l,skip:j,take:k,orderBy:{createdAt:"desc"}}),e.z.notification.count({where:l}),m(b,c,d)]);return{notifications:n.map(i),total:o,unreadCount:p}}async function m(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function n(a,b,c,d){await e.z.notification.updateMany({where:{uuid:a,companyUuid:b,recipientType:c,recipientUuid:d,readAt:null},data:{readAt:new Date}});let g=await e.z.notification.findFirst({where:{uuid:a,companyUuid:b}});if(!g)throw Error("Notification not found");let h=await m(b,c,d);return f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h}),i(g)}async function o(a,b,c,d){let g=await e.z.notification.updateMany({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,...d&&{projectUuid:d}},data:{readAt:new Date}}),h=await m(a,b,c);return f.B.emit(`notification:${b}:${c}`,{type:"count_update",unreadCount:h}),{count:g.count}}async function p(a,b,c,d){await e.z.notification.updateMany({where:{uuid:a,companyUuid:b,recipientType:c,recipientUuid:d,archivedAt:null},data:{archivedAt:new Date}});let g=await e.z.notification.findFirst({where:{uuid:a,companyUuid:b}});if(!g)throw Error("Notification not found");let h=await m(b,c,d);return f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h}),i(g)}function q(a){f.B.emit(`notification:user:${a.ownerUuid}`,{type:"new_notification",action:"agent_checkin",entityType:"agent",entityUuid:a.agentUuid,entityTitle:a.agentName,actorName:a.agentName})}async function r(a,b,c){let d=await e.z.notificationPreference.findUnique({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}}});return d||(d=await e.z.notificationPreference.create({data:{companyUuid:a,ownerType:b,ownerUuid:c}})),{uuid:d.uuid,ownerType:d.ownerType,ownerUuid:d.ownerUuid,taskAssigned:d.taskAssigned,taskStatusChanged:d.taskStatusChanged,taskVerified:d.taskVerified,taskReopened:d.taskReopened,proposalSubmitted:d.proposalSubmitted,proposalApproved:d.proposalApproved,proposalRejected:d.proposalRejected,ideaClaimed:d.ideaClaimed,commentAdded:d.commentAdded,elaborationRequested:d.elaborationRequested,elaborationAnswered:d.elaborationAnswered,mentioned:d.mentioned}}async function s(a,b,c,d){let f=await e.z.notificationPreference.upsert({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}},create:{companyUuid:a,ownerType:b,ownerUuid:c,...d},update:d});return{uuid:f.uuid,ownerType:f.ownerType,ownerUuid:f.ownerUuid,taskAssigned:f.taskAssigned,taskStatusChanged:f.taskStatusChanged,taskVerified:f.taskVerified,taskReopened:f.taskReopened,proposalSubmitted:f.proposalSubmitted,proposalApproved:f.proposalApproved,proposalRejected:f.proposalRejected,ideaClaimed:f.ideaClaimed,commentAdded:f.commentAdded,elaborationRequested:f.elaborationRequested,elaborationAnswered:f.elaborationAnswered,mentioned:f.mentioned}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},48873:(a,b,c)=>{c.d(b,{Ik:()=>f,Yy:()=>d,nm:()=>e});class d extends Error{constructor(a){super(`${a} is already claimed`),this.name="AlreadyClaimedError"}}class e extends Error{constructor(a){super(`${a} is not currently claimed`),this.name="NotClaimedError"}}function f(a){return"object"==typeof a&&null!==a&&"code"in a&&"P2025"===a.code}},54349:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Hu:()=>p,eT:()=>o,fg:()=>m,uA:()=>s});var e=c(52618),f=c(76872),g=c(90494),h=c(88437),i=c(42558),j=c(65582),k=a([e,f,g,h]);[e,f,g,h]=k.then?(await k)():k;let t={uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0};async function l(a){return Promise.all(a.map(async a=>{let b=await (0,f.lR)(a.authorType,a.authorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,content:a.content,author:{type:a.authorType,uuid:a.authorUuid,name:b??"Unknown"},createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}))}async function m(a){let{companyUuid:b,targetType:c,targetUuid:d,limit:g}=a;if(!await (0,f._9)(c,d,b))return void 0!==g?{comments:[],total:0,nextCursor:null,hasMore:!1}:{comments:[],total:0};if(void 0!==g)return n(a,g);let{skip:h,take:i}=a,j={companyUuid:b,targetType:c,targetUuid:d},[k,m]=await Promise.all([e.z.comment.findMany({where:j,skip:h,take:i,orderBy:{createdAt:"asc"},select:t}),e.z.comment.count({where:j})]);return{comments:await l(k),total:m}}async function n(a,b){let{companyUuid:c,targetType:d,targetUuid:f,cursor:g}=a,h={companyUuid:c,targetType:d,targetUuid:f},i=!1;if(g){let a=await e.z.comment.findFirst({where:{...h,uuid:g},select:{uuid:!0}});i=null!==a}let[j,k]=await Promise.all([e.z.comment.findMany({where:h,orderBy:[{createdAt:"desc"},{id:"desc"}],take:b+1,...i?{cursor:{uuid:g},skip:1}:{},select:t}),e.z.comment.count({where:h})]),m=j.length>b,n=m?j.slice(0,b):j,o=m?n[n.length-1].uuid:null;return{comments:await l(n),total:k,nextCursor:o,hasMore:m}}async function o({companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h}){if(!await (0,f._9)(b,c,a))throw Error(`Target ${b} with UUID ${c} not found`);let k=await e.z.comment.create({data:{companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),l=await (0,f.lR)(k.authorType,k.authorUuid);return p(b,c).then(d=>{d&&i.B.emitChange({companyUuid:a,projectUuid:d,entityType:b,entityUuid:c,action:"updated",actorUuid:h})}).catch(()=>{}),r(a,b,c,k.uuid,d,g,h).catch(a=>j.default.error({err:a},"Failed to process comment mentions")),{uuid:k.uuid,targetType:k.targetType,targetUuid:k.targetUuid,content:k.content,author:{type:k.authorType,uuid:k.authorUuid,name:l??"Unknown"},createdAt:k.createdAt.toISOString(),updatedAt:k.updatedAt.toISOString()}}async function p(a,b,c){let d=c?{companyUuid:c}:{};switch(a){case"task":{let a=await e.z.task.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"idea":{let a=await e.z.idea.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"proposal":{let a=await e.z.proposal.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"document":{let a=await e.z.document.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}default:return null}}async function q(a,b){switch(a){case"task":{let a=await e.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await e.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await e.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await e.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function r(a,b,c,d,e,f,i){let j=g.Xs(e);if(0===j.length)return;let k=await p(b,c);if(!k)return;let l=await q(b,c);for(let m of(await g.AM({companyUuid:a,sourceType:"comment",sourceUuid:d,content:e,actorType:f,actorUuid:i,projectUuid:k,entityTitle:l}),j))(m.type!==f||m.uuid!==i)&&await h.createActivity({companyUuid:a,projectUuid:k,targetType:b,targetUuid:c,actorType:f,actorUuid:i,action:"mentioned",value:{mentionedType:m.type,mentionedUuid:m.uuid,mentionedName:m.displayName,sourceType:"comment",sourceUuid:d}})}async function s(a,b,c){if(0===c.length)return{};let d=await e.z.comment.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:b,targetUuid:{in:c}},_count:{targetUuid:!0}}),f={};for(let a of c)f[a]=0;for(let a of d)f[a.targetUuid]=a._count.targetUuid;return f}d()}catch(a){d(a)}})},66643:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BB:()=>t,EZ:()=>A,JF:()=>y,MY:()=>w,Nm:()=>E,Q7:()=>v,XB:()=>J,bO:()=>q,bY:()=>F,h_:()=>C,i1:()=>x,jJ:()=>G,w9:()=>B,xo:()=>H});var e=c(52618),f=c(76872),g=c(42558),h=c(48873),i=c(27473),j=c(90494),k=c(88437),l=c(8777),m=c(57578),n=c(65582),o=a([e,f,j,k,l,m]);[e,f,j,k,l,m]=o.then?(await o)():o;let K={open:["elaborating"],elaborating:["elaborated"],elaborated:[]};function p(a){switch(a){case"assigned":case"in_progress":return"elaborating";case"proposal_created":case"completed":case"closed":case"pending_review":return"elaborated";default:return a}}function q(a,b){return(K[p(a)]||[]).includes(b)}async function r(a,b,c,d){if(!d)return{assigneeType:b,assigneeUuid:c};let f=await e.z.agentInstance.findFirst({where:{uuid:d,companyUuid:a},select:{uuid:!0}});if(!f)throw Error("Agent instance not found");return{assigneeType:"agent_instance",assigneeUuid:f.uuid}}async function s(a){let[b,c]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid),(0,f.LS)(a.createdByUuid)]);return{uuid:a.uuid,title:a.title,content:a.content,attachments:a.attachments,status:p(a.status),assignee:b,...a.project&&{project:a.project},...null!=a.elaborationStatus&&{elaborationStatus:a.elaborationStatus},...null!=a.elaborationDepth&&{elaborationDepth:a.elaborationDepth},createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function t({companyUuid:a,projectUuid:b,skip:c,take:d,status:g,assignedToMe:h,actorUuid:i,actorType:j,ownerUuid:k}){let l={projectUuid:b,companyUuid:a,...g&&{status:g}};h&&i&&j&&(l.OR=await (0,f.zl)({type:"agent"===j?"agent":"user",companyUuid:a,actorUuid:i,ownerUuid:k}));let[m,n]=await Promise.all([e.z.idea.findMany({where:l,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,parentUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:l})]),o=await Promise.all(m.map(s));if(m.forEach((a,b)=>{o[b].parentUuid=a.parentUuid??null}),o.length>0){let c=await u(a,b,o.map(a=>a.uuid));for(let a of o)a.reportCount=c.get(a.uuid)??0;let d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);for(let a of o)a.childCount=f.get(a.uuid)??0}return{ideas:o,total:n}}let L=["approved","closed"];async function u(a,b,c){let d=new Map;if(0===c.length)return d;let f=await e.z.proposal.findMany({where:{projectUuid:b,companyUuid:a,status:{in:[...L]},inputType:"idea"},select:{uuid:!0,inputUuids:!0}});if(0===f.length)return d;let g=new Set(c),h=new Map;for(let a of f){if(!Array.isArray(a.inputUuids))continue;let b=a.inputUuids.filter(a=>g.has(a));b.length>0&&h.set(a.uuid,b)}if(0===h.size)return d;for(let b of(await e.z.document.groupBy({by:["proposalUuid"],where:{companyUuid:a,type:"report",proposalUuid:{in:Array.from(h.keys())}},_count:{_all:!0}}))){if(!b.proposalUuid)continue;let a=h.get(b.proposalUuid);if(a)for(let c of a)d.set(c,(d.get(c)??0)+b._count._all)}return d}async function v(a,b){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},parent:{select:{uuid:!0,title:!0,status:!0}},children:{select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0},orderBy:{createdAt:"asc"}}}});if(!c)return null;let d=await s(c);d.parentUuid=c.parentUuid??null,d.parent=c.parent?{uuid:c.parent.uuid,title:c.parent.title,status:p(c.parent.status)}:null;let f=c.children??[];if(f.length>0){let b=await I(a,c.projectUuid),e=new Map(b.map(a=>[a.uuid,a.derivedStatus]));d.children=f.map(a=>({uuid:a.uuid,title:a.title,status:p(a.status),derivedStatus:e.get(a.uuid)??"todo"}))}else d.children=[];d.descendantUuids=await z(b,a);let g=(await m.fS(a,c.projectUuid,b)).filter(a=>L.includes(a.status));return 0===g.length?d.reports=[]:d.reports=await l.yZ(a,g.map(a=>a.uuid),"report"),d}async function w(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){if(a.parentUuid){let b=await e.z.idea.findFirst({where:{uuid:a.parentUuid,companyUuid:a.companyUuid},select:{projectUuid:!0}});if(!b)throw Error("Parent idea not found");if(b.projectUuid!==a.projectUuid)throw Error("Parent idea must be in the same project")}let b=await e.z.idea.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,content:a.content,attachments:a.attachments||void 0,status:"open",createdByUuid:a.createdByUuid,parentUuid:a.parentUuid??void 0},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,parentUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"created"});let c=await s(b);return c.parentUuid=b.parentUuid,c}async function y(a,b,c,d){let f=null;if(void 0!==c.content&&d){let b=await e.z.idea.findUnique({where:{uuid:a},select:{content:!0}});f=b?.content??null}let h=await e.z.idea.update({where:{uuid:a},data:c,include:{project:{select:{uuid:!0,name:!0}}}});if(g.B.emitChange({companyUuid:h.companyUuid,projectUuid:h.project.uuid,entityType:"idea",entityUuid:h.uuid,action:"updated"}),d){let a=["title","content"].filter(a=>void 0!==c[a]);a.length>0&&await k.createActivity({companyUuid:h.companyUuid,projectUuid:h.project.uuid,targetType:"idea",targetUuid:h.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"edited",value:{changedFields:a}})}return void 0!==c.content&&d&&c.content&&D(h.companyUuid,h.project.uuid,h.uuid,h.title,f,c.content,d.actorType,d.actorUuid).catch(a=>n.default.error({err:a},"Failed to process idea mentions")),s(h)}async function z(a,b){let c=new Set,d=[a];for(;d.length>0;){let f=await e.z.idea.findMany({where:{companyUuid:b,parentUuid:{in:d}},select:{uuid:!0}})??[],g=[];for(let b of f)b.uuid!==a&&(c.has(b.uuid)||(c.add(b.uuid),g.push(b.uuid)));d=g}return[...c]}async function A(a,b,c,d){let f=await e.z.idea.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!f)throw Error("Idea not found");let h=f.parentUuid??null;if(b){if(b===a)throw Error("An idea cannot be its own parent");let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!d)throw Error("Parent idea not found");if(d.projectUuid!==f.projectUuid)throw Error("Parent idea must be in the same project");let g=new Set,h=d.parentUuid;for(;h;){if(h===a)throw Error("Cannot set parent: would create a cycle");if(g.has(h))break;g.add(h);let b=await e.z.idea.findFirst({where:{uuid:h,companyUuid:c},select:{parentUuid:!0}});h=b?.parentUuid??null}}let i=await e.z.idea.update({where:{uuid:a},data:{parentUuid:b??null},include:{project:{select:{uuid:!0,name:!0}}}});g.B.emitChange({companyUuid:i.companyUuid,projectUuid:i.projectUuid,entityType:"idea",entityUuid:i.uuid,action:"updated"});let j=i.parentUuid??null;d&&j!==h&&await k.createActivity({companyUuid:i.companyUuid,projectUuid:i.projectUuid,targetType:"idea",targetUuid:i.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"reparented",value:{fromParentUuid:h,toParentUuid:j}});let l=await s(i);return l.parentUuid=i.parentUuid,l}async function B({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,instanceUuid:i}){let j=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!j||j.assigneeUuid)throw new h.Yy("Idea");let k=p(j.status);if("elaborated"===k)throw Error("Cannot claim an elaborated Idea");let l=await r(b,c,d,i),m=await e.z.idea.update({where:{uuid:a},data:{status:"elaborating",assigneeType:l.assigneeType,assigneeUuid:l.assigneeUuid,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:m.companyUuid,projectUuid:m.project.uuid,entityType:"idea",entityUuid:m.uuid,action:"updated"}),s(m)}async function C(a){let b=await e.z.idea.findUnique({where:{uuid:a}});if(!b)throw Error("Idea not found");let c=p(b.status);if("elaborated"===c)throw Error("Cannot release an elaborated Idea");let d=await e.z.idea.update({where:{uuid:a},data:{status:"open",assigneeType:null,assigneeUuid:null,assignedAt:null,assignedByUuid:null,elaborationDepth:null,elaborationStatus:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.project.uuid,entityType:"idea",entityUuid:d.uuid,action:"updated"}),s(d)}async function D(a,b,c,d,e,f,g,h){let i=e?j.Xs(e):[],l=j.Xs(f),m=new Set(i.map(a=>`${a.type}:${a.uuid}`)),n=l.filter(a=>!m.has(`${a.type}:${a.uuid}`));if(0!==n.length)for(let e of(await j.AM({companyUuid:a,sourceType:"idea",sourceUuid:c,content:f,actorType:g,actorUuid:h,projectUuid:b,entityTitle:d}),n))(e.type!==g||e.uuid!==h)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:"idea",targetUuid:c,actorType:g,actorUuid:h,action:"mentioned",value:{mentionedType:e.type,mentionedUuid:e.uuid,mentionedName:e.displayName,sourceType:"idea",sourceUuid:c}})}async function E(a){let b=await e.z.idea.findUnique({where:{uuid:a},select:{companyUuid:!0}});b&&await e.z.idea.updateMany({where:{companyUuid:b.companyUuid,parentUuid:a},data:{parentUuid:null}});let c=await e.z.idea.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:c.companyUuid,projectUuid:c.projectUuid,entityType:"idea",entityUuid:c.uuid,action:"deleted"}),c}async function F(a,b,c,d,f="user"){let h=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});if(!h)throw new i.hD("NOT_FOUND","Idea not found",404);let j=await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0,name:!0}});if(!j)throw new i.hD("NOT_FOUND","Target project not found",404);if(h.projectUuid===c)throw new i.hD("BAD_REQUEST","Idea is already in the target project",400);let l=h.projectUuid,m=await z(b,a),n=[b,...m],o=await e.z.$transaction(async d=>{let e=(await d.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:n.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),f=(await d.idea.updateMany({where:{companyUuid:a,uuid:{in:n}},data:{projectUuid:c}})).count;h.parentUuid&&await d.idea.update({where:{uuid:b},data:{parentUuid:null}});let g=0,i=0,j=0,k=[],l=[];if(e.length>0){let[b,f]=await Promise.all([d.document.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}}),d.task.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}})]);k=b.map(a=>a.uuid),l=f.map(a=>a.uuid),g=(await d.proposal.updateMany({where:{companyUuid:a,uuid:{in:e}},data:{projectUuid:c}})).count,i=(await d.document.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count,j=(await d.task.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count}let m=await d.activity.updateMany({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:n}},{targetType:"proposal",targetUuid:{in:e}},{targetType:"task",targetUuid:{in:l}},{targetType:"document",targetUuid:{in:k}}]},data:{projectUuid:c}});return{ideas:f,proposals:g,documents:i,tasks:j,activities:m.count}});await k.createActivity({companyUuid:a,projectUuid:c,targetType:"idea",targetUuid:b,actorType:f,actorUuid:d,action:"moved",value:{fromProjectUuid:l,fromProjectName:h.project.name,toProjectUuid:c,toProjectName:j.name,moved:o}}),g.B.emitChange({companyUuid:a,projectUuid:l,entityType:"idea",entityUuid:b,action:"updated"}),g.B.emitChange({companyUuid:a,projectUuid:c,entityType:"idea",entityUuid:b,action:"updated"});let p=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return{...await s(p),moved:o}}async function G(a,b,c){let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0,projectUuid:!0}});if(!d)throw new i.hD("NOT_FOUND","Idea not found",404);if(!await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}))throw new i.hD("NOT_FOUND","Target project not found",404);if(d.projectUuid===c)throw new i.hD("BAD_REQUEST","Idea is already in the target project",400);let f=await z(b,a),g=[b,...f],h=(await e.z.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:g.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),j=0,k=0,l=[],m=[];if(h.length>0){let[b,c]=await Promise.all([e.z.document.findMany({where:{companyUuid:a,proposalUuid:{in:h}},select:{uuid:!0}}),e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:h}},select:{uuid:!0}})]);l=b.map(a=>a.uuid),m=c.map(a=>a.uuid),j=l.length,k=m.length}let n=await e.z.activity.count({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:g}},{targetType:"proposal",targetUuid:{in:h}},{targetType:"task",targetUuid:{in:m}},{targetType:"document",targetUuid:{in:l}}]}});return{moved:{ideas:g.length,proposals:h.length,documents:j,tasks:k,activities:n}}}function H(a){switch(p(a.ideaStatus)){case"open":default:return{derivedStatus:"todo",badgeHint:"open"};case"elaborating":if("pending_answers"===a.elaborationStatus)return{derivedStatus:"human_conduct_required",badgeHint:"answer_questions"};return{derivedStatus:"in_progress",badgeHint:"researching"};case"elaborated":if(a.hasPendingProposal)return{derivedStatus:"human_conduct_required",badgeHint:"review_proposal"};if(a.hasApprovedProposal){if(a.taskStatuses.some(a=>"to_verify"===a))return{derivedStatus:"human_conduct_required",badgeHint:"verify_work"};if(a.taskStatuses.length>0&&a.taskStatuses.every(a=>"done"===a||"closed"===a))return{derivedStatus:"done",badgeHint:"done"};return{derivedStatus:"in_progress",badgeHint:"building"}}return{derivedStatus:"in_progress",badgeHint:"planning"}}}async function I(a,b){let c=await e.z.idea.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0,parentUuid:!0,createdAt:!0,updatedAt:!0},orderBy:{createdAt:"desc"}}),d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);let g=await e.z.proposal.findMany({where:{companyUuid:a,projectUuid:b,status:{in:["approved","pending"]}},select:{uuid:!0,status:!0,inputUuids:!0,createdAt:!0},orderBy:{createdAt:"desc"}}),h=new Map,i=new Set,j=new Map;for(let a of g){let b=a.inputUuids;if(Array.isArray(b)){for(let c of b)if(j.set(c,(j.get(c)??0)+1),"pending"===a.status)i.add(c);else if("approved"===a.status){let b=h.get(c);(!b||a.createdAt>b.createdAt)&&h.set(c,{uuid:a.uuid,createdAt:a.createdAt})}}}let k=[...new Set([...h.values()].map(a=>a.uuid))],l=new Map;if(k.length>0)for(let b of(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:k}},select:{proposalUuid:!0,status:!0}}))){if(!b.proposalUuid)continue;let a=l.get(b.proposalUuid)||[];a.push(b.status),l.set(b.proposalUuid,a)}return c.map(a=>{let c=h.get(a.uuid),d=c&&l.get(c.uuid)||[],{derivedStatus:e,badgeHint:g}=H({ideaStatus:a.status,elaborationStatus:a.elaborationStatus,hasPendingProposal:i.has(a.uuid),hasApprovedProposal:!!c,taskStatuses:d});return{uuid:a.uuid,title:a.title,status:a.status,derivedStatus:e,badgeHint:g,createdAt:a.createdAt,updatedAt:a.updatedAt,projectUuid:b,proposalCount:j.get(a.uuid)??0,taskCount:d.length,parentUuid:a.parentUuid??null,childCount:f.get(a.uuid)??0}})}let M=["todo","in_progress","human_conduct_required","done"];async function J(a,b){let c=await I(a,b),d={},e={};for(let a of M)d[a]=[],e[a]=0;for(let a of c){let b=a.derivedStatus,c={uuid:a.uuid,title:a.title,status:a.status,derivedStatus:b,badgeHint:a.badgeHint,createdAt:a.createdAt.toISOString(),parentUuid:a.parentUuid,childCount:a.childCount};d[b]&&(d[b].push(c),e[b]++)}return{groups:d,counts:e}}d()}catch(a){d(a)}})},70369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bp:()=>s,N_:()=>p,OQ:()=>w,Oi:()=>u,Rk:()=>q,Uc:()=>A,i2:()=>z,mX:()=>x,ub:()=>r,y9:()=>y});var e=c(55511),f=c(52618),g=c(65582),h=c(37943),i=c(28792),j=c(34853),k=c(93419),l=a([f,h,i,j,k]);[f,h,i,j,k]=l.then?(await l)():l;let v=g.default.child({module:"daemon-instruction.service"});class w extends Error{constructor(){super("Daemon session not found"),this.code="session_not_visible",this.name="SessionNotVisibleError"}}class x extends Error{constructor(){super("Connection not found"),this.code="connection_not_visible",this.name="ConnectionNotVisibleError"}}class y extends Error{constructor(a){super("The chosen connection is offline. An instruction can only run on an online daemon connection (claude --resume is cwd/machine-bound)."),this.code="connection_offline",this.name="ConnectionOfflineError",this.connectionUuid=a}}class z extends Error{constructor(a){super("This conversation's origin is still online, so it cannot be re-pointed. Re-pointing only rescues a read-only conversation whose origin went offline; send to the live origin instead."),this.code="repoint_origin_live",this.name="RepointOriginLiveError",this.originConnectionUuid=a}}class A extends Error{constructor(a){super("empty"===a?"Instruction text must not be empty.":"Instruction text exceeds the maximum of 4000 characters."),this.code="invalid_instruction_text",this.name="InstructionTextError",this.reason=a}}function m(a){let b=(a??"").trim();if(0===b.length)throw new A("empty");if(b.length>4e3)throw new A("too_long");return b}async function n(a,b){let c="agent"===a.type?{agentUuid:a.actorUuid}:{agent:{ownerUuid:a.actorUuid}};return await f.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...c},select:{agentUuid:!0,sessionId:!0,directIdeaUuid:!0,originConnectionUuid:!0}})}async function o(a){let{auth:b,agentUuid:c,sessionUuid:d,sessionId:e,directIdeaUuid:f,instructionText:g}=a,{turn:i}=await h.aF({companyUuid:b.companyUuid,projectUuid:"",projectName:"",recipientType:"agent",recipientUuid:c,entityType:null!=f?"idea":"daemon_session",entityUuid:null!=f?f:e,entityTitle:"",action:"human_instruction",message:"Human instruction",actorType:"agent"===b.type?"agent":"user",actorUuid:b.actorUuid,actorName:"",instructionText:g});if(!i)throw Error(`Instruction turn was not created on session ${d} (no online origin at chokepoint).`);return i}function p(a){try{(0,i.s7)({companyUuid:a.companyUuid,targetConnectionUuid:a.originConnectionUuid,command:"deliver_turn",turnUuid:a.turnUuid})}catch(b){v.warn({err:b,originConnectionUuid:a.originConnectionUuid,turnUuid:a.turnUuid},"deliver_turn live ping failed; the turn is persisted and will be recovered by the daemon's reconnect-backfill")}}async function q(a,b){let c=m(b.instructionText),d=await n(a,b.sessionUuid);if(!d)throw new w;await (0,j.v8)(a.companyUuid,b.sessionUuid);let e=await o({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});return p({companyUuid:a.companyUuid,originConnectionUuid:d.originConnectionUuid,turnUuid:e.uuid}),{turn:e}}async function r(a,b){let c=m(b.instructionText),d=await t(a,b.agentUuid),f=await (0,k.HC)(a.companyUuid,b.agentUuid,b.connectionUuid);if(!d||!f)throw new x;if(!await (0,k.j8)(a.companyUuid,b.connectionUuid))throw new y(b.connectionUuid);let g=(0,e.randomUUID)(),h=await (0,j.KF)({companyUuid:a.companyUuid,agentUuid:b.agentUuid,sessionId:g,directIdeaUuid:null,originConnectionUuid:b.connectionUuid}),i=await o({auth:a,agentUuid:b.agentUuid,sessionUuid:h.uuid,sessionId:g,directIdeaUuid:null,instructionText:c});return p({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:i.uuid}),{session:h,turn:i}}async function s(a,b){let c=m(b.instructionText),d=await n(a,b.sessionUuid);if(!d)throw new w;if(await (0,k.j8)(a.companyUuid,d.originConnectionUuid))throw new z(d.originConnectionUuid);if(!await (0,k.HC)(a.companyUuid,d.agentUuid,b.connectionUuid))throw new x;if(!await (0,k.j8)(a.companyUuid,b.connectionUuid))throw new y(b.connectionUuid);await f.z.daemonSession.update({where:{uuid:b.sessionUuid,companyUuid:a.companyUuid},data:{originConnectionUuid:b.connectionUuid}});let e=await o({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});p({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:e.uuid});let g=await f.z.daemonSession.findUnique({where:{uuid:b.sessionUuid}});if(!g)throw Error(`repointSessionOriginAndSend: session ${b.sessionUuid} missing after re-point`);return{session:{uuid:g.uuid,agentUuid:g.agentUuid,sessionId:g.sessionId,directIdeaUuid:g.directIdeaUuid,originConnectionUuid:g.originConnectionUuid,status:g.status,title:g.title,lastTurnAt:g.lastTurnAt.toISOString(),createdAt:g.createdAt.toISOString(),updatedAt:g.updatedAt.toISOString()},turn:e}}async function t(a,b){return"agent"===a.type?b===a.actorUuid:await f.z.agent.count({where:{uuid:b,companyUuid:a.companyUuid,ownerUuid:a.actorUuid}})>0}async function u(a){let b=await (0,j.WP)(a);if(0===b.length)return[];let c=[...new Set(b.map(a=>a.originConnectionUuid))],d=await f.z.daemonConnection.findMany({where:{companyUuid:a.companyUuid,uuid:{in:c}},select:{uuid:!0,status:!0,lastSeenAt:!0}}),e=Date.now(),g=new Set(d.filter(a=>"online"===a.status&&e-a.lastSeenAt.getTime()<=j.BP).map(a=>a.uuid)),h=[...new Set(b.map(a=>a.directIdeaUuid).filter(a=>!!a))],i=(0,j.L0)(b.map(a=>a.uuid)),k=h.length>0?f.z.idea.findMany({where:{companyUuid:a.companyUuid,uuid:{in:h}},select:{uuid:!0,title:!0}}):Promise.resolve([]),l=await i,m=await k,n=new Map(m.map(a=>[a.uuid,a.title]));return b.map(a=>({...a,originOnline:g.has(a.originConnectionUuid),firstInstruction:l.get(a.uuid)??null,ideaTitle:a.directIdeaUuid?n.get(a.directIdeaUuid)??null:null}))}d()}catch(a){d(a)}})},71165:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AY:()=>N,Cm:()=>P,Ew:()=>H,Fp:()=>A,IM:()=>O,K4:()=>w,LQ:()=>C,Pf:()=>D,QK:()=>z,QL:()=>K,UT:()=>x,Vk:()=>u,_T:()=>E,cn:()=>F,gg:()=>v,j9:()=>L,lC:()=>y,vQ:()=>M,vq:()=>B,xI:()=>o});var e=c(52618),f=c(76872),g=c(42558),h=c(48873),i=c(54349),j=c(90494),k=c(88437),l=c(65582),m=c(68775),n=a([e,f,i,j,k]);[e,f,i,j,k]=n.then?(await n)():n;let Q={open:["assigned","closed"],assigned:["open","in_progress","closed"],in_progress:["to_verify","closed"],to_verify:["done","in_progress","closed"],done:["closed"],closed:[]};function o(a,b){return(Q[a]||[]).includes(b)}let R={total:0,required:0,passed:0,failed:0,pending:0,requiredPassed:0,requiredFailed:0,requiredPending:0};function p(a){if(0===a.length)return{status:"not_started",summary:{...R}};let b={...R,total:a.length};for(let c of a)c.required&&b.required++,"passed"===c.status?(b.passed++,c.required&&b.requiredPassed++):"failed"===c.status?(b.failed++,c.required&&b.requiredFailed++):(b.pending++,c.required&&b.requiredPending++);return b.requiredFailed>0?{status:"failed",summary:b}:b.requiredPassed===b.required&&b.required>0?{status:"passed",summary:b}:b.passed>0||b.failed>0?{status:"in_progress",summary:b}:{status:"not_started",summary:b}}function q(a){return{uuid:a.uuid,description:a.description,required:a.required,devStatus:a.devStatus,devEvidence:a.devEvidence,devMarkedByType:a.devMarkedByType,devMarkedBy:a.devMarkedBy,devMarkedAt:a.devMarkedAt?.toISOString()??null,status:a.status,evidence:a.evidence,markedByType:a.markedByType,markedBy:a.markedBy,markedAt:a.markedAt?.toISOString()??null,sortOrder:a.sortOrder}}async function r(a,b,c,d){if(!d)return{assigneeType:b,assigneeUuid:c};let f=await e.z.agentInstance.findFirst({where:{uuid:d,companyUuid:a},select:{uuid:!0}});if(!f)throw Error("Agent instance not found");return{assigneeType:"agent_instance",assigneeUuid:f.uuid}}async function s(a,b=0){let[c,d]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid),(0,f.LS)(a.createdByUuid)]),e=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),g=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),h=(a.acceptanceCriteriaItems||[]).map(q),{status:i,summary:j}=p(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:h,acceptanceStatus:i,acceptanceSummary:j,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:e,dependedBy:g,commentCount:b,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function t(a,b){if(0===a.length)return[];let c=[],d=[],e=[];for(let b of a)b.assigneeType&&b.assigneeUuid&&(c.push({type:b.assigneeType,uuid:b.assigneeUuid}),"agent_instance"===b.assigneeType&&e.push(b.assigneeUuid)),b.assignedByUuid&&c.push({type:"user",uuid:b.assignedByUuid}),d.push(b.createdByUuid);let[g,h,i]=await Promise.all([(0,f.Uo)(c),(0,f.Xx)(d),(0,f.dI)(e)]);return a.map(a=>{let c=null;if(a.assigneeType&&a.assigneeUuid){let b=g.get(a.assigneeUuid);if(b){let d=null;if(a.assignedByUuid){let b=g.get(a.assignedByUuid);b&&(d={type:"user",uuid:a.assignedByUuid,name:b})}let e="agent_instance"===a.assigneeType?i.get(a.assigneeUuid):void 0;c={type:a.assigneeType,uuid:a.assigneeUuid,name:b,assignedAt:a.assignedAt?.toISOString()??null,assignedBy:d,...e?{instance:e}:{}}}}let d=h.get(a.createdByUuid)??null,e=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),f=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),j=(a.acceptanceCriteriaItems||[]).map(q),{status:k,summary:l}=p(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:j,acceptanceStatus:k,acceptanceSummary:l,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:e,dependedBy:f,commentCount:b[a.uuid]??0,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}})}let S={dependsOn:{select:{dependsOn:{select:{uuid:!0,title:!0,status:!0}}}},dependedBy:{select:{task:{select:{uuid:!0,title:!0,status:!0}}}},acceptanceCriteriaItems:{orderBy:{sortOrder:"asc"}}};async function u({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,priority:g,proposalUuids:h}){let j={projectUuid:b,companyUuid:a,...f&&{status:f},...g&&{priority:g},...h&&h.length>0&&{proposalUuid:{in:h}}},[k,l]=await Promise.all([e.z.task.findMany({where:j,skip:c,take:d,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:j})]),m=await (0,i.uA)(a,"task",k.map(a=>a.uuid));return{tasks:await t(k,m),total:l}}async function v(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},...S}});if(!c)return null;let d=await e.z.comment.count({where:{companyUuid:a,targetType:"task",targetUuid:b}});return s(c,d)}async function w(a,b){return e.z.task.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){let b=await e.z.task.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,description:a.description,status:"open",priority:a.priority||"medium",storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"task",entityUuid:b.uuid,action:"created"}),s(b)}async function y(a,b,c){let d=null;if(void 0!==b.description&&c){let b=await e.z.task.findUnique({where:{uuid:a},select:{description:!0}});d=b?.description??null}let f=await e.z.$transaction(async c=>{if(b.status&&"done"!==b.status){let b=await c.task.findUnique({where:{uuid:a},select:{status:!0}});b?.status==="to_verify"&&await c.acceptanceCriterion.updateMany({where:{taskUuid:a},data:{status:"pending",evidence:null,markedByType:null,markedBy:null,markedAt:null,devStatus:"pending",devEvidence:null,devMarkedByType:null,devMarkedBy:null,devMarkedAt:null}})}return c.task.update({where:{uuid:a},data:b,include:{project:{select:{uuid:!0,name:!0}}}})});return g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.project.uuid,entityType:"task",entityUuid:f.uuid,action:"updated"}),void 0!==b.description&&c&&b.description&&I(f.companyUuid,f.project.uuid,"task",f.uuid,f.title,d,b.description,c.actorType,c.actorUuid).catch(a=>l.default.error({err:a},"Failed to process task mentions")),s(f)}async function z({taskUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,instanceUuid:i}){try{let h=await r(b,c,d,i),j=await e.z.task.update({where:{uuid:a,status:{in:["open","assigned"]}},data:{status:"assigned",assigneeType:h.assigneeType,assigneeUuid:h.assigneeUuid,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:j.companyUuid,projectUuid:j.project.uuid,entityType:"task",entityUuid:j.uuid,action:"updated"}),s(j)}catch(a){if((0,h.Ik)(a))throw new h.Yy("Task");throw a}}async function A(a){try{let b=await e.z.task.update({where:{uuid:a,status:"assigned"},data:{status:"open",assigneeType:null,assigneeUuid:null,assignedAt:null,assignedByUuid:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.project.uuid,entityType:"task",entityUuid:b.uuid,action:"updated"}),s(b)}catch(a){if((0,h.Ik)(a))throw new h.nm("Task");throw a}}async function B(a){let b=await e.z.task.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.projectUuid,entityType:"task",entityUuid:b.uuid,action:"deleted"}),b}async function C(a,b){if(0===b.length)return[];let c=b.map((b,c)=>e.z.acceptanceCriterion.create({data:{taskUuid:a,description:b.description,required:b.required??!0,sortOrder:b.sortOrder??c}}));return(await Promise.all(c)).map(q)}async function D(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");if(!(0,m.hY)(c))throw Error(m.se);let f=(0,m.Ch)(c),h=await e.z.$transaction(async a=>(await a.acceptanceCriterion.deleteMany({where:{taskUuid:b}}),f.length>0&&await a.acceptanceCriterion.createMany({data:f.map((a,c)=>({taskUuid:b,description:a.description,required:a.required,sortOrder:c}))}),a.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}})));return g.B.emitChange({companyUuid:a,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),h.map(q)}async function E(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{status:a.status,evidence:a.evidence??null,markedByType:d.type,markedBy:d.actorUuid,markedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),G(a,b)}async function F(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{devStatus:a.devStatus,devEvidence:a.devEvidence??null,devMarkedByType:d.type,devMarkedBy:d.actorUuid,devMarkedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),G(a,b)}async function G(a,b){if(!await e.z.task.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Task not found");let c=await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}}),d=c.map(q),{status:f,summary:g}=p(c);return{items:d,status:f,summary:g}}async function H(a){let b=await e.z.acceptanceCriterion.findMany({where:{taskUuid:a},orderBy:{sortOrder:"asc"}});if(0===b.length||b.filter(a=>a.required).every(a=>"passed"===a.status))return{allowed:!0};let{summary:c}=p(b),d=b.filter(a=>a.required&&"passed"!==a.status).map(q);return{allowed:!1,reason:`Not all required acceptance criteria are passed. Required: ${c.required}, Passed: ${c.requiredPassed}, Failed: ${c.requiredFailed}, Pending: ${c.requiredPending}`,summary:c,unresolvedCriteria:d}}async function I(a,b,c,d,e,f,g,h,i){let l=f?j.Xs(f):[],m=j.Xs(g),n=new Set(l.map(a=>`${a.type}:${a.uuid}`)),o=m.filter(a=>!n.has(`${a.type}:${a.uuid}`));if(0!==o.length)for(let f of(await j.AM({companyUuid:a,sourceType:c,sourceUuid:d,content:g,actorType:h,actorUuid:i,projectUuid:b,entityTitle:e}),o))(f.type!==h||f.uuid!==i)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:h,actorUuid:i,action:"mentioned",value:{mentionedType:f.type,mentionedUuid:f.uuid,mentionedName:f.displayName,sourceType:c,sourceUuid:d}})}async function J(a,b){let c=await e.z.taskDependency.findMany({select:{taskUuid:!0,dependsOnUuid:!0}}),d=new Map;for(let a of c)d.has(a.taskUuid)||d.set(a.taskUuid,[]),d.get(a.taskUuid).push(a.dependsOnUuid);let f=new Set,g=[a];for(;g.length>0;){let a=g.pop();if(a===b)return!0;if(!f.has(a))for(let b of(f.add(a),d.get(a)||[]))f.has(b)||g.push(b)}return!1}async function K(a,b,c){if(b===c)throw Error("A task cannot depend on itself");let[d,f]=await Promise.all([e.z.task.findFirst({where:{uuid:b,companyUuid:a}}),e.z.task.findFirst({where:{uuid:c,companyUuid:a}})]);if(!d)throw Error("Task not found");if(!f)throw Error("Dependency task not found");if(d.projectUuid!==f.projectUuid)throw Error("Tasks must belong to the same project");if(await J(c,b))throw Error("Adding this dependency would create a cycle");let h=await e.z.taskDependency.create({data:{taskUuid:b,dependsOnUuid:c}});return g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.projectUuid,entityType:"task",entityUuid:c,action:"updated"}),{taskUuid:h.taskUuid,dependsOnUuid:h.dependsOnUuid,createdAt:h.createdAt}}async function L(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");let f=await e.z.task.findFirst({where:{uuid:c,companyUuid:a}});await e.z.taskDependency.deleteMany({where:{taskUuid:b,dependsOnUuid:c}}),g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),f&&g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.projectUuid,entityType:"task",entityUuid:c,action:"updated"})}async function M(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:S});if(!c)throw Error("Task not found");return{dependsOn:c.dependsOn.map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),dependedBy:c.dependedBy.map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status}))}}async function N({companyUuid:a,projectUuid:b,proposalUuids:c}){let d={projectUuid:b,companyUuid:a,status:{in:["open","assigned"]},...c&&c.length>0&&{proposalUuid:{in:c}},NOT:{dependsOn:{some:{dependsOn:{status:{notIn:["done","closed"]}}}}}},[f,g]=await Promise.all([e.z.task.findMany({where:d,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:d})]),h=await (0,i.uA)(a,"task",f.map(a=>a.uuid));return{tasks:await t(f,h),total:g}}async function O(a){let b=await e.z.taskDependency.findMany({where:{taskUuid:a},select:{dependsOn:{select:{uuid:!0,title:!0,status:!0,assigneeType:!0,assigneeUuid:!0}}}});if(0===b.length)return{resolved:!0,blockers:[]};let c=b.filter(a=>"done"!==a.dependsOn.status&&"closed"!==a.dependsOn.status);if(0===c.length)return{resolved:!0,blockers:[]};let d=c.map(a=>a.dependsOn.uuid),[g,h]=await Promise.all([e.z.sessionTaskCheckin.findMany({where:{taskUuid:{in:d},checkoutAt:null},select:{taskUuid:!0,sessionUuid:!0,session:{select:{name:!0}}}}),(0,f.Uo)(c.filter(a=>a.dependsOn.assigneeType&&a.dependsOn.assigneeUuid).map(a=>({type:a.dependsOn.assigneeType,uuid:a.dependsOn.assigneeUuid})))]),i=new Map;for(let a of g)i.set(a.taskUuid,{sessionUuid:a.sessionUuid,sessionName:a.session.name});let j=c.map(a=>{let b=a.dependsOn,c=null;if(b.assigneeType&&b.assigneeUuid){let a=h.get(b.assigneeUuid);a&&(c={type:b.assigneeType,uuid:b.assigneeUuid,name:a})}return{uuid:b.uuid,title:b.title,status:b.status,assignee:c,sessionCheckin:i.get(b.uuid)??null}});return{resolved:!1,blockers:j}}async function P(a,b){let[c,d]=await Promise.all([e.z.task.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,priority:!0,proposalUuid:!0}}),e.z.taskDependency.findMany({where:{task:{companyUuid:a,projectUuid:b}},select:{taskUuid:!0,dependsOnUuid:!0}})]);return{nodes:c.map(a=>({uuid:a.uuid,title:a.title,status:a.status,priority:a.priority,proposalUuid:a.proposalUuid??null})),edges:d.map(a=>({from:a.taskUuid,to:a.dependsOnUuid}))}}d()}catch(a){d(a)}})},88437:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{createActivity:()=>k,listActivities:()=>i,listActivitiesWithActorNames:()=>j});var e=c(52618),f=c(42558),g=c(76872),h=a([e,g]);async function i({companyUuid:a,projectUuid:b,skip:c,take:d,targetType:f,targetUuid:g}){let h={projectUuid:b,companyUuid:a,...f&&{targetType:f},...g&&{targetUuid:g}},[i,j]=await Promise.all([e.z.activity.findMany({where:h,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,targetType:!0,targetUuid:!0,actorType:!0,actorUuid:!0,action:!0,value:!0,sessionUuid:!0,sessionName:!0,createdAt:!0}}),e.z.activity.count({where:h})]);return{activities:i,total:j}}async function j(a){let{activities:b,total:c}=await i(a);return{activities:await Promise.all(b.map(async a=>{let b=await (0,g.lR)(a.actorType,a.actorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,action:a.action,actorType:a.actorType,actorName:b||"Unknown",value:a.value,sessionUuid:a.sessionUuid,sessionName:a.sessionName,createdAt:a.createdAt.toISOString()}})),total:c}}async function k({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l}){let m=await e.z.activity.create({data:{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j||void 0,sessionUuid:k||void 0,sessionName:l||void 0}});return f.B.emit("activity",{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l,uuid:m.uuid}),m}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},90494:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AM:()=>m,Xs:()=>l,_L:()=>r});var e=c(52618),f=c(76872),g=c(37943),h=c(25736),i=c(97515),j=c(93419),k=a([e,f,g,i,j]);[e,f,g,i,j]=k.then?(await k)():k;let t=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\?([^)]*))?\)/gi;function l(a){let b,c=[],d=new Set;for(t.lastIndex=0;null!==(b=t.exec(a))&&!(c.length>=10);){let a=b[1],e=b[2].toLowerCase(),f=b[3].toLowerCase(),{pinnedHost:g,pinnedCwd:i}=(0,h.vE)(b[4]),j=`${e}:${f}`;if(!d.has(j)){d.add(j);let b={type:e,uuid:f,displayName:a};(null!==g||null!==i)&&(b.pinnedHost=g,b.pinnedCwd=i),c.push(b)}}return c}async function m(a){let{companyUuid:b,sourceType:c,sourceUuid:d,content:h,actorType:i,actorUuid:j,projectUuid:k,entityTitle:m}=a,n=l(h);if(0===n.length)return;let o=n.filter(a=>a.type!==i||a.uuid!==j);if(0===o.length)return;let p=[];for(let a of o)await s(b,a.type,a.uuid)&&p.push(a);if(0===p.length)return;await e.z.mention.createMany({data:p.map(a=>({companyUuid:b,sourceType:c,sourceUuid:d,mentionedType:a.type,mentionedUuid:a.uuid,actorType:i,actorUuid:j}))});let q=await (0,f.lR)(i,j)??"Someone",r=await e.z.project.findUnique({where:{uuid:k},select:{name:!0}}),u=r?.name??"Unknown Project",v=function(a){let b=a.replace(t,"@$1");return b.length<=120?b:b.substring(0,117)+"..."}(h),w=c,x=d;if("comment"===c){let a=await e.z.comment.findUnique({where:{uuid:d},select:{targetType:!0,targetUuid:!0}});a&&(w=a.targetType,x=a.targetUuid)}let y=[];for(let a of p){if(!(await g.lX(b,a.type,a.uuid)).mentioned)continue;let c=`${q} mentioned you: "${v}"`;y.push({companyUuid:b,projectUuid:k,recipientType:a.type,recipientUuid:a.uuid,entityType:w,entityUuid:x,entityTitle:m,projectName:u,action:"mentioned",message:c,actorType:i,actorUuid:j,actorName:q,pinnedHost:a.pinnedHost,pinnedCwd:a.pinnedCwd})}y.length>0&&await g.Xm(y)}function n(a){return"agent"===a.type?+!a.online:2}function o(a,b){let c=n(a),d=n(b);if(c!==d)return c-d;if(0===c){let c=a.activeCount??0,d=b.activeCount??0;return c!==d?c-d:a.name.localeCompare(b.name)}return 0}async function p(a,b){let c=b.filter(a=>"agent"===a.type).map(a=>a.uuid);if(0===c.length)return;let d=Date.now(),f=await e.z.daemonConnection.findMany({where:{companyUuid:a,agentUuid:{in:c}},select:{agentUuid:!0,status:!0,lastSeenAt:!0}}),g=new Set;for(let a of f){let b=d-a.lastSeenAt.getTime()<=i.BP;"online"===a.status&&b&&g.add(a.agentUuid)}let h=await e.z.daemonExecution.groupBy({by:["agentUuid"],where:{companyUuid:a,agentUuid:{in:c},status:{in:[...j.PF]}},_count:{_all:!0}}),k=new Map;for(let a of h)k.set(a.agentUuid,a._count._all);for(let a of b){if("agent"!==a.type)continue;let b=g.has(a.uuid);a.online=b,a.activeCount=b?k.get(a.uuid)??0:0}}async function q(a,b){let c=b.filter(a=>"agent"===a.type);if(0===c.length)return;let d=await Promise.all(c.map(async b=>{let c=(await (0,i._R)(a,b.uuid)).map(a=>({connectionUuid:a.uuid,host:a.host,cwd:a.cwd,effectiveStatus:a.effectiveStatus}));return{uuid:b.uuid,instances:c}})),e=new Map;for(let{uuid:a,instances:b}of d)e.set(a,b);for(let a of b)"agent"===a.type&&(a.instances=e.get(a.uuid)??[])}async function r(a){let b,{companyUuid:c,query:d,actorType:f,actorUuid:g,ownerUuid:h,limit:i=10,withInstances:j=!1}=a,k=Math.min(i,50),l=[];if("user"===f?b=g:"agent"===f&&h&&(b=h),!d){if(b)for(let a of(await e.z.agent.findMany({where:{companyUuid:c,ownerUuid:b},select:{uuid:!0,name:!0,roles:!0},orderBy:{createdAt:"desc"},take:k})))l.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await p(c,l),l.sort(o);let a=l.slice(0,Math.min(5,k));return j&&await q(c,a),a}for(let a of(await e.z.user.findMany({where:{companyUuid:c,OR:[{name:{contains:d,mode:"insensitive"}},{email:{contains:d,mode:"insensitive"}}]},select:{uuid:!0,name:!0,email:!0,avatarUrl:!0},take:k})))l.push({type:"user",uuid:a.uuid,name:a.name??a.email??"Unknown",email:a.email,avatarUrl:a.avatarUrl});let m={companyUuid:c,name:{contains:d,mode:"insensitive"}};for(let a of(b&&(m.ownerUuid=b),await e.z.agent.findMany({where:m,select:{uuid:!0,name:!0,roles:!0},take:k})))l.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await p(c,l),l.sort(o);let n=l.slice(0,k);return j&&await q(c,n),n}async function s(a,b,c){return"user"===b?!!await e.z.user.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}):!!await e.z.agent.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}})}d()}catch(a){d(a)}})}};
@@ -0,0 +1,13 @@
1
+ "use strict";exports.id=1559,exports.ids=[1559],exports.modules={88:(a,b,c)=>{c.d(b,{s:()=>e});var d=c(42377);let e=(0,d.createServerReference)("70519761271750b6d87e832e8dbe4c0847af6b0df1",d.callServer,void 0,d.findSourceMapURL,"createCommentAction")},10174:(a,b,c)=>{function d(a){if(!a)return{pinnedHost:null,pinnedCwd:null};let b=new URLSearchParams(a),c=b.has("cwd"),d=b.has("host");if(!c&&!d)return{pinnedHost:null,pinnedCwd:null};let e=b.get("cwd")??"",f=b.get("host");return{pinnedCwd:c&&""!==e?e:null,pinnedHost:d?f??"":null}}function e(a,b,c,d,e){return`@[${a}](${b}:${c}${function(a,b){if(null==a&&null==b)return"";let c=a=>encodeURIComponent(a).replace(/\(/g,"%28").replace(/\)/g,"%29"),d=[];return d.push(`cwd=${null==b?"":c(b)}`),null!=a&&d.push(`host=${c(a)}`),`?${d.join("&")}`}(d,e)})`}c.d(b,{$v:()=>e,vE:()=>d})},11573:(a,b,c)=>{c.d(b,{j:()=>e});let d=["#E06C75","#E5C07B","#98C379","#56B6C2","#61AFEF","#C678DD","#D19A66","#BE5046","#7EC8E3","#C3E88D","#F78C6C","#A9DC76"];function e(a){let b=function(a){let b=0;for(let c=0;c<a.length;c++)b=(b<<5)-b+a.charCodeAt(c)|0;return Math.abs(b)}(a)%d.length;return d[b]}},13057:(a,b,c)=>{c.d(b,{d:()=>e});var d=c(42377);let e=(0,d.createServerReference)("70da7ad886a7c95b61008abdc2b487250aa7ec64d8",d.callServer,void 0,d.findSourceMapURL,"getCommentsAction")},22727:(a,b,c)=>{c.d(b,{D:()=>h});var d=c(10837),e=c(90061),f=c(11573),g=c(16235);function h({entityType:a,entityUuid:b,subEntityType:c,subEntityUuid:g,children:h,badgeInside:j}){let{getPresence:k}=(0,e.xQ)(),l=k(a,b,c,g),m=l.length>0,n=m&&l.some(a=>"mutate"===a.action),o=m?n?l.find(a=>"mutate"===a.action):l[l.length-1]:null,p=o?(0,f.j)(o.agentName):"transparent";return(0,d.jsxs)("div",{className:"relative",style:m?{outline:`2px ${n?"solid":"dashed"} ${p}`,outlineOffset:"-2px",borderRadius:"var(--radius)"}:void 0,children:[m&&(0,d.jsxs)("div",{className:`absolute flex gap-1 z-10 justify-end ${j?"top-0.5 right-1.5 max-w-[70%]":"-top-2.5 right-2 max-w-[80%]"}`,children:[l.slice(0,3).map(a=>(0,d.jsx)(i,{entry:a},a.agentUuid)),l.length>3&&(0,d.jsxs)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white bg-gray-500 whitespace-nowrap",children:["+",l.length-3]})]}),h]})}function i({entry:a}){let b=(0,f.j)(a.agentName);return(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white whitespace-nowrap animate-in fade-in duration-300 ease-out sm:text-[11px] sm:px-2",style:{backgroundColor:b},children:[(0,d.jsx)(g.A,{className:"h-2.5 w-2.5"}),a.agentName]})}},24433:(a,b,c)=>{c.d(b,{c5:()=>v});var d=c(10837),e=c(21968),f=c(87864),g=c(45150),h=c(49101),i=c(9222),j=c(96307),k=c(54722),l=c(42087),m=c(10174),n=c(23871),o=c(11568),p=c(42424);let q=h.A.extend({addAttributes(){return{...this.parent?.(),mentionType:{default:"user",parseHTML:a=>a.getAttribute("data-mention-type")||"user",renderHTML:a=>({"data-mention-type":a.mentionType||"user"})},pinnedHost:{default:null,parseHTML:a=>a.getAttribute("data-pinned-host"),renderHTML:a=>null==a.pinnedHost?{}:{"data-pinned-host":String(a.pinnedHost)}},pinnedCwd:{default:null,parseHTML:a=>a.getAttribute("data-pinned-cwd"),renderHTML:a=>null==a.pinnedCwd?{}:{"data-pinned-cwd":String(a.pinnedCwd)}}}}});function r(a){let b=a.getJSON();return b.content?b.content.map(a=>(function a(b){if("mention"===b.type){let a=b.attrs;return a?(0,m.$v)(a.label||a.id,a.mentionType||"user",a.id,a.pinnedHost??null,a.pinnedCwd??null):""}if("text"===b.type)return b.text||"";if("hardBreak"===b.type)return"\n";let c=b.content;return c?c.map(a).join(""):""})(a)).join("\n"):""}function s(a){if(!a)return{type:"doc",content:[{type:"paragraph"}]};let b=/@\[([^\]]+)\]\((user|agent):([a-f0-9-]+)(?:\?([^)]*))?\)/g;return{type:"doc",content:a.split("\n").map(a=>{let c,d=[],e=0,f=RegExp(b.source,"g");for(;null!==(c=f.exec(a));){c.index>e&&d.push({type:"text",text:a.slice(e,c.index)});let{pinnedHost:b,pinnedCwd:f}=(0,m.vE)(c[4]);d.push({type:"mention",attrs:{id:c[3],label:c[1],mentionType:c[2],pinnedHost:b,pinnedCwd:f}}),e=c.index+c[0].length}return e<a.length&&d.push({type:"text",text:a.slice(e)}),{type:"paragraph",content:d.length>0?d:void 0}})}}function t(a,b,c,d,e,f,g){if(e.innerHTML="",b){let a=document.createElement("div");a.className="flex items-center justify-center py-3 px-4",a.innerHTML='<div class="h-4 w-4 animate-spin rounded-full border-2 border-[#9A9A9A] border-t-transparent"></div>',e.appendChild(a);return}if(0===a.length){let a=document.createElement("div");a.className="py-2 px-3 text-xs text-[#9A9A9A]",a.textContent="No results",e.appendChild(a);return}let h=document.createElement("div");h.className="py-1";let i=0,j=a=>{if(g)return void g(a,c);c({id:a.uuid,label:a.name,mentionType:a.type})},k=()=>{h.innerHTML="",a.forEach((a,b)=>{let c=document.createElement("button");c.type="button",c.className=`flex w-full items-center gap-2.5 px-3 py-1.5 text-left text-sm transition-colors ${b===i?"bg-[#FAF8F4] text-[#2C2C2C]":"text-[#6B6B6B] hover:bg-[#FAF8F4]"}`,c.onclick=()=>j(a);let d=document.createElement("div");d.className="relative shrink-0";let e=document.createElement("div");if(e.className=`flex h-6 w-6 items-center justify-center rounded-full ${"agent"===a.type?"bg-[#C67A52] text-white":"bg-[#E5E0D8] text-[#6B6B6B]"}`,e.innerHTML="agent"===a.type?'<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></svg>':'<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>',d.appendChild(e),"agent"===a.type&&a.online){let a=document.createElement("span");a.className="absolute -bottom-0.5 -right-0.5 h-2 w-2 rounded-full bg-[#22C55E] ring-2 ring-white",a.title=f.online,d.appendChild(a)}let g=document.createElement("div");g.className="min-w-0 flex-1";let k=document.createElement("div");if(k.className="truncate text-xs font-medium",k.textContent=a.name,g.appendChild(k),a.email){let b=document.createElement("div");b.className="truncate text-[10px] text-[#9A9A9A]",b.textContent=a.email,g.appendChild(b)}if("agent"===a.type&&a.online){let b=a.activeCount??0,c=document.createElement("div");b>0?(c.className="mt-0.5 truncate text-[10px] font-medium text-[#15803D]",c.textContent=`▶ ${f.activeCount(b)}`):(c.className="mt-0.5 truncate text-[10px] text-[#9A9A9A]",c.textContent=f.idle),g.appendChild(c)}c.appendChild(d),c.appendChild(g),h.appendChild(c)})};k(),e.appendChild(h),d.current={onKeyDown:({event:b})=>!(0,l.P)(b)&&("ArrowUp"===b.key?(i=i<=0?a.length-1:i-1,k(),!0):"ArrowDown"===b.key?(i=i>=a.length-1?0:i+1,k(),!0):"Enter"===b.key?(a[i]&&j(a[i]),!0):"Escape"===b.key)}}function u({open:a,agentName:b,instances:c,onConfirm:f,onCancel:g}){let h=(0,i.c)("mentionInstance"),[j,k]=(0,e.useState)(null),m=new Set(c.map(a=>a.host)).size;return(0,d.jsx)(o.lG,{open:a,onOpenChange:a=>{a||g()},children:(0,d.jsxs)(o.Cf,{className:"z-[110] flex max-h-[85svh] flex-col gap-0 sm:max-w-md",overlayClassName:"z-[110]",children:[(0,d.jsxs)(o.c7,{className:"shrink-0",children:[(0,d.jsx)(o.L3,{children:h("title")}),(0,d.jsx)(o.rr,{children:h("subtitle",{name:b,count:c.length,hosts:m})})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto py-3",onKeyDown:a=>{!("Enter"!==a.key||(0,l.P)(a))&&j&&(a.preventDefault(),f(j))},children:(0,d.jsx)(n.O,{instances:c,selectedConnectionUuid:j?.connectionUuid??null,onSelect:k,ariaLabel:h("title")})}),(0,d.jsxs)(o.Es,{className:"shrink-0",children:[(0,d.jsx)(p.$,{variant:"ghost",onClick:g,children:h("cancel")}),(0,d.jsx)(p.$,{disabled:!j,onClick:()=>{j&&f(j)},children:h("confirm")})]})]})})}let v=(0,e.forwardRef)(({value:a,onChange:b,placeholder:c,className:h,disabled:m,onSubmit:n},o)=>{let p=(0,e.useRef)([]),v=(0,e.useRef)(!1),w=(0,e.useRef)(null),x=(0,e.useRef)(null),y=(0,e.useRef)(null),z=(0,e.useRef)(null),[,A]=(0,e.useState)(0),B=(0,e.useRef)(!1),C=(0,i.c)("mention"),D=(0,e.useRef)({online:"",offline:"",idle:"",activeCount:()=>""});D.current={online:C("online"),offline:C("offline"),idle:C("idle"),activeCount:a=>C("activeCount",{count:a})};let E=function(a,b){let c=(0,e.useRef)(null),d=(0,e.useRef)(a);return d.current=a,(0,e.useCallback)(a=>{c.current&&clearTimeout(c.current),c.current=setTimeout(()=>d.current(a),250)},[250])}((0,e.useCallback)(async a=>{v.current=!0,A(a=>a+1);try{let b=await fetch(`/api/mentionables?q=${encodeURIComponent(a)}&limit=10&withInstances=1`);if(b.ok){let a=await b.json();a.success&&(p.current=a.data)}}catch{p.current=[]}finally{v.current=!1,A(a=>a+1)}},[]),250),[F,G]=(0,e.useState)(null),H=(0,e.useCallback)((a,b,c)=>{b({id:a.uuid,label:a.name,mentionType:a.type,pinnedHost:c?c.host:null,pinnedCwd:c?c.cwd:null})},[]),I=(0,e.useRef)(()=>{});I.current=(a,b)=>{let c="agent"===a.type?(a.instances??[]).filter(a=>"online"===a.effectiveStatus):[];return c.length>=2?void G({item:a,onlineInstances:c,command:b}):1===c.length?void H(a,b,c[0]):void H(a,b)};let J=(0,e.useCallback)((a,b)=>I.current(a,b),[]);(0,e.useEffect)(()=>{y.current&&z.current&&t(p.current,v.current,z.current,w,y.current,D.current,J)});let K=(0,f.hG)({immediatelyRender:!1,extensions:[g.A.configure({heading:!1,blockquote:!1,codeBlock:!1,bulletList:!1,orderedList:!1,listItem:!1,horizontalRule:!1}),q.configure({HTMLAttributes:{class:"text-blue-600 font-medium"},renderText:({node:a})=>`@${a.attrs.label??a.attrs.id}`,suggestion:{char:"@",allowSpaces:!0,items:({query:a})=>(E(a),p.current),render:()=>({onStart:a=>{let b=document.createElement("div");if(b.className="z-[100] rounded-md border border-[#E5E0D8] bg-white shadow-md min-w-[200px] max-w-[300px] overflow-hidden",y.current=b,z.current=a.command,a.clientRect){let c="function"==typeof a.clientRect?a.clientRect():a.clientRect;c&&(b.style.position="fixed",b.style.left=`${c.left}px`,window.innerHeight-c.bottom<220?b.style.bottom=`${window.innerHeight-c.top+4}px`:b.style.top=`${c.bottom+4}px`)}(x.current??document.body).appendChild(b),t(p.current,v.current,a.command,w,b,D.current,J)},onUpdate:a=>{if(z.current=a.command,y.current&&a.clientRect){let b="function"==typeof a.clientRect?a.clientRect():a.clientRect;b&&(y.current.style.left=`${b.left}px`,window.innerHeight-b.bottom<220?(y.current.style.top="",y.current.style.bottom=`${window.innerHeight-b.top+4}px`):(y.current.style.bottom="",y.current.style.top=`${b.bottom+4}px`))}y.current&&t(p.current,v.current,a.command,w,y.current,D.current,J)},onKeyDown:a=>!!w.current&&w.current.onKeyDown(a),onExit:()=>{y.current?.remove(),y.current=null,z.current=null,p.current=[],v.current=!1}})}})],content:s(a),editable:!m,editorProps:{attributes:{class:(0,j.cn)("min-h-[36px] max-h-[120px] overflow-y-auto px-3 py-2 text-sm outline-none","prose prose-sm max-w-none [&_p]:my-0"),"data-placeholder":c||""},handleKeyDown:(a,b)=>!(0,l.P)(b)&&"Enter"===b.key&&!b.shiftKey&&!y.current&&!!n&&(b.preventDefault(),n(),!0)},onUpdate:({editor:a})=>{B.current=!0,b(r(a))}});return(0,e.useEffect)(()=>{if(!K||B.current){B.current=!1;return}r(K)!==a&&K.commands.setContent(s(a))},[a,K]),(0,e.useEffect)(()=>{K&&K.setEditable(!m)},[m,K]),(0,e.useImperativeHandle)(o,()=>({focus:()=>K?.commands.focus(),clear:()=>{K?.commands.clearContent(),b("")}})),(0,d.jsxs)("div",{ref:x,className:(0,j.cn)("relative rounded-md border border-input bg-transparent shadow-xs transition-[color,box-shadow]","focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",m&&"cursor-not-allowed opacity-50",h),children:[(0,d.jsx)(f.$Z,{editor:K}),(0,d.jsx)(u,{open:null!==F,agentName:F?.item.name??"",instances:F?.onlineInstances??[],onConfirm:a=>{!function(a,b,c){c.close(),a&&c.defer(()=>{try{c.focusEditor(),c.insert(a,b)}catch(a){c.onError(a)}})}(F,a,{close:()=>G(null),insert:(a,b)=>H(a.item,a.command,b),defer:a=>requestAnimationFrame(a),focusEditor:()=>K?.commands.focus(),onError:a=>k.q.error("MentionEditor: cwd-pinned mention insert failed",a)})},onCancel:()=>G(null)}),(0,d.jsx)("style",{children:`
2
+ .tiptap p.is-editor-empty:first-child::before {
3
+ content: attr(data-placeholder);
4
+ color: #9A9A9A;
5
+ float: left;
6
+ height: 0;
7
+ pointer-events: none;
8
+ }
9
+ .tiptap .mention {
10
+ color: #2563eb;
11
+ font-weight: 500;
12
+ }
13
+ `})]})});v.displayName="MentionEditor"},29662:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{d:()=>i});var e=c(50117),f=c(74438),g=c(15264),h=a([f]);async function i(){let a=await (0,e.UL)(),b=a.get("oidc_access_token")?.value;if(b)return(0,f.Q)(b);let c=a.get("user_session")?.value;if(c){let a=await (0,g.$Y)(c);if(a)return{type:"user",companyUuid:a.companyUuid,actorUuid:a.userUuid,email:a.email,name:a.name}}return null}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},56828:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$m:()=>C});var e=c(10837),f=c(21968),g=c(9222),h=c(97443),i=c(86460),j=c(24714),k=c(33091),l=c(16235),m=c(42424),n=c(80251),o=c(24433),p=c(13057),q=c(88),r=c(82831),s=c(68797),t=c(76172),u=c(22727),v=c(11573),w=c(76664),x=c(76549),y=a([r,s]);function z(a){return"agent"===a.type?(0,e.jsx)(s.Gm,{mention:a,displayName:a.displayName},a.index):(0,e.jsxs)("span",{className:"text-blue-600 font-medium",title:`${a.type}: ${a.uuid}`,children:["@",a.displayName]},a.index)}function A(a,b){let c=new Map;for(let b of a)c.set(b.uuid,b);for(let a of b)c.set(a.uuid,a);return[...c.values()].sort((a,b)=>a.createdAt!==b.createdAt?a.createdAt<b.createdAt?1:-1:a.uuid<b.uuid?1:-1)}async function B(a,b,c=5){let d=new Set(a.map(a=>a.uuid)),e=[],f=null,g=!1,h=0,i=!1,j=null,k=!1;for(let a=0;a<c;a++){let a=await b(f);if(!a)break;if(k=!0,h=a.total,e.push(...a.comments),i=a.hasMore,j=a.nextCursor,a.comments.some(a=>d.has(a.uuid))||!a.hasMore){g=!0;break}f=a.nextCursor}return k?g?{comments:A(a,e),total:h,contiguous:!0,resetOldestCursor:null,resetHasMore:!1}:{comments:A([],e),total:h,contiguous:!1,resetOldestCursor:j,resetHasMore:i}:null}function C({targetType:a,targetUuid:b,currentUserUuid:c,onCountChange:d,compact:l=!1}){let r=(0,g.c)(),[s,v]=(0,f.useState)(""),[w,y]=(0,f.useState)([]),[z,C]=(0,f.useState)(!0),[E,F]=(0,f.useState)(null),[G,H]=(0,f.useState)(!1),[I,J]=(0,f.useState)(!1),[K,L]=(0,f.useState)(null),[M,N]=(0,f.useState)(!1),[O,P]=(0,f.useState)(0),Q=(0,f.useRef)(null),R=(0,f.useRef)(null),S=(0,f.useRef)(w);S.current=w;let T=(0,f.useRef)(K);T.current=K;let U=(0,f.useRef)(M);U.current=M;let V=(0,f.useRef)(G);V.current=G;let W=(0,f.useRef)(z);W.current=z;let X=l?"h-6 w-6":"h-[30px] w-[30px]",Y=l?"gap-2":"gap-2.5",Z=l?"h-3 w-3":"h-[15px] w-[15px]",$=(0,f.useCallback)(async()=>{C(!0),F(null);let c=await (0,p.d)(a,b,{limit:10});c.success?(y(c.comments),L(c.nextCursor),N(c.hasMore),P(c.total)):F(c.error),C(!1)},[a,b]);(0,f.useCallback)(async()=>{if(V.current||W.current||!U.current||!T.current)return;H(!0);let c=await (0,p.d)(a,b,{cursor:T.current,limit:10});c.success&&(y(a=>A(a,c.comments)),L(c.nextCursor),N(c.hasMore),P(c.total)),H(!1)},[a,b]),(0,t.w0)(a,b,d=>{c&&d.actorUuid===c||B(S.current,async c=>{let d=await (0,p.d)(a,b,{cursor:c,limit:10});return d.success?d:null}).then(a=>{a&&(y(a.comments),P(a.total),a.contiguous||(L(a.resetOldestCursor),N(a.resetHasMore)))})});let _=async()=>{if(!s.trim()||I)return;J(!0);let c=await (0,q.s)(a,b,s);if(J(!1),c.success){let a=!S.current.some(a=>a.uuid===c.comment.uuid);y(a=>A(a,[c.comment])),a&&P(a=>a+1),v(""),Q.current?.clear()}else x.oR.error(c.error)};return(0,e.jsx)(u.D,{entityType:a,entityUuid:b,subEntityType:"comment",children:(0,e.jsxs)("div",{className:"flex flex-col gap-0",children:[(0,e.jsxs)("div",{className:`flex items-center ${Y} pb-3 border-b border-[#F0EDE8]`,children:[(0,e.jsx)(n.eu,{className:`${l?"h-6 w-6":"h-7 w-7"} shrink-0`,children:(0,e.jsx)(n.q5,{className:"bg-[#E5E0D8] text-[#6B6B6B]",children:(0,e.jsx)(h.A,{className:`${l?"h-3 w-3":"h-3.5 w-3.5"}`})})}),(0,e.jsx)("div",{className:"flex-1 min-w-0",children:(0,e.jsx)(o.c5,{ref:Q,value:s,onChange:v,onSubmit:_,placeholder:r("comments.addComment"),className:"border border-[#E5E0D8] bg-white text-sm rounded-lg",disabled:I})}),(0,e.jsx)(m.$,{size:"sm",className:"shrink-0 gap-1 bg-[#E07A5F] text-white hover:bg-[#D06A4F]",disabled:!s.trim()||I,onClick:_,children:I?(0,e.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,e.jsx)(j.A,{className:"h-3.5 w-3.5"})})]}),z?(0,e.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,e.jsx)(i.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):E?(0,e.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-sm text-[#9A9A9A]",children:[(0,e.jsx)(k.A,{className:"h-4 w-4"}),(0,e.jsx)("p",{children:r("comments.loadError")}),(0,e.jsx)(m.$,{variant:"outline",size:"sm",onClick:$,children:r("comments.retry")})]}):0===w.length?(0,e.jsx)("p",{className:"py-8 text-center text-sm text-[#9A9A9A] italic",children:r("comments.noComments")}):(0,e.jsxs)("div",{children:[w.map(a=>(0,e.jsx)(D,{comment:a,compact:l,avatarSize:X,gap:Y,iconSize:Z,t:r},a.uuid)),(0,e.jsx)("div",{ref:R,"aria-hidden":"true"}),G?(0,e.jsxs)("div",{className:"flex items-center justify-center py-4",children:[(0,e.jsx)(i.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"}),(0,e.jsx)("span",{className:"ml-2 text-xs text-[#9A9A9A]",children:r("comments.loadingMore")})]}):!M&&(0,e.jsx)("p",{className:"py-4 text-center text-xs text-[#BFBFBF] italic",children:r("comments.noMoreComments")})]})]})})}function D({comment:a,compact:b,avatarSize:c,gap:d,iconSize:g,t:h}){let[i,j]=(0,f.useState)(!1),k="agent"===a.author.type,o=k?(0,v.j)(a.author.name):null,p=a.content.length>200,q=o?`${o}18`:void 0;return(0,e.jsxs)("div",{className:`flex ${d} py-3 border-b border-[#F0EDE8] last:border-b-0`,children:[(0,e.jsx)(n.eu,{className:`${c} shrink-0`,children:(0,e.jsx)(n.q5,{style:k?{backgroundColor:q,color:o??void 0}:void 0,className:k?"":"bg-[#E5E0D8] text-[#6B6B6B] text-[11px] font-medium",children:k?(0,e.jsx)(l.A,{className:g}):a.author.name.charAt(0).toUpperCase()})}),(0,e.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,e.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,e.jsx)("span",{className:`${b?"text-xs":"text-[13px]"} font-semibold text-[#1A1A1A]`,children:a.author.name}),(0,e.jsx)("span",{style:k?{backgroundColor:q,color:o??void 0}:void 0,className:`inline-flex items-center rounded px-1.5 py-px text-[9px] font-medium ${k?"":"bg-[#F0EDE8] text-[#6B6B6B]"}`,children:h(k?"comments.roleAgent":"comments.roleHuman")}),(0,e.jsx)("span",{className:"text-[11px] text-[#BFBFBF]",children:function(a,b){let c=new Date(a),d=new Date().getTime()-c.getTime(),e=Math.floor(d/6e4),f=Math.floor(d/36e5),g=Math.floor(d/864e5);return e<1?b("time.justNow"):e<60?b("time.minutesAgo",{minutes:e}):f<24?b("time.hoursAgo",{hours:f}):g<7?b("time.daysAgo",{days:g}):(0,w.r)(c)}(a.createdAt,h)})]}),k&&a.author.owner&&(0,e.jsx)("div",{className:"flex items-center gap-1 mt-0.5",children:(0,e.jsx)("span",{className:"text-[11px] text-[#A3A3A3] italic",children:h("comments.onBehalfOf",{name:a.author.owner.name})})}),(0,e.jsx)("div",{className:`mt-1 ${b?"text-xs":"text-[13px]"} leading-relaxed text-[#3D3D3D] max-w-none [&_h1]:text-sm [&_h1]:font-semibold [&_h1]:mt-2 [&_h1]:mb-1 [&_h2]:text-[13px] [&_h2]:font-semibold [&_h2]:mt-2 [&_h2]:mb-1 [&_h3]:text-[13px] [&_h3]:font-semibold [&_h3]:mt-1.5 [&_h3]:mb-0.5 [&_p]:my-1 [&_ul]:my-1 [&_ol]:my-1 [&_li]:my-0.5`,children:p&&!i?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.z7,{renderMention:z,children:a.content.slice(0,200)+"..."}),(0,e.jsx)(m.$,{variant:"link",size:"sm",onClick:()=>j(!0),className:"h-auto p-0 text-[#E07A5F] text-xs font-medium mt-1",children:h("comments.showMore")})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.z7,{renderMention:z,children:a.content}),p&&(0,e.jsx)(m.$,{variant:"link",size:"sm",onClick:()=>j(!1),className:"h-auto p-0 text-[#E07A5F] text-xs font-medium mt-1",children:h("comments.showLess")})]})})]})]})}[r,s]=y.then?(await y)():y,d()}catch(a){d(a)}})},61413:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LS:()=>p,U$:()=>l,U1:()=>i,Yi:()=>j,gA:()=>m,hF:()=>h,vr:()=>n,xx:()=>o,yx:()=>k});var e=c(52618),f=c(42558),g=a([e]);async function h({companyUuid:a,skip:b,take:c}){let[d,f]=await Promise.all([e.z.project.findMany({where:{companyUuid:a},skip:b,take:c,orderBy:{updatedAt:"desc"},select:{uuid:!0,name:!0,description:!0,groupUuid:!0,createdAt:!0,updatedAt:!0,_count:{select:{ideas:!0,documents:!0,tasks:!0,proposals:!0}}}}),e.z.project.count({where:{companyUuid:a}})]);return{projects:d,total:f}}async function i(a,b){return e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0,name:!0,description:!0,groupUuid:!0,createdAt:!0,updatedAt:!0,_count:{select:{ideas:!0,documents:!0,tasks:!0,proposals:!0,activities:!0}}}})}async function j(a,b){return!!await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}})}async function k(a,b){return e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0,name:!0}})}async function l(a,b){return(await e.z.project.findMany({where:{companyUuid:a,groupUuid:b},select:{uuid:!0}})).map(a=>a.uuid)}async function m({companyUuid:a,name:b,description:c,groupUuid:d}){let g=await e.z.project.create({data:{companyUuid:a,name:b,description:c,groupUuid:d??null},select:{uuid:!0,name:!0,description:!0,groupUuid:!0,createdAt:!0,updatedAt:!0}});return f.B.emitChange({companyUuid:a,projectUuid:g.uuid,entityType:"project",entityUuid:g.uuid,action:"created"}),g}async function n(a,b,c){let d=await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}});return d?e.z.project.update({where:{uuid:d.uuid},data:c,select:{uuid:!0,name:!0,description:!0,createdAt:!0,updatedAt:!0}}):null}async function o(a,b){let c=await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}});return!!c&&(await e.z.project.delete({where:{uuid:c.uuid}}),f.B.emitChange({companyUuid:a,projectUuid:b,entityType:"project",entityUuid:b,action:"deleted"}),!0)}async function p(a,b){let[c,d,f,g]=await Promise.all([e.z.idea.groupBy({by:["status"],where:{projectUuid:b,companyUuid:a},_count:!0}),e.z.task.groupBy({by:["status"],where:{projectUuid:b,companyUuid:a},_count:!0}),e.z.proposal.groupBy({by:["status"],where:{projectUuid:b,companyUuid:a},_count:!0}),e.z.document.count({where:{projectUuid:b,companyUuid:a}})]),h=new Map(c.map(a=>[a.status,a._count])),i=c.reduce((a,b)=>a+b._count,0),j=h.get("open")||0,k=new Map(d.map(a=>[a.status,a._count])),l=d.reduce((a,b)=>a+b._count,0),m=k.get("in_progress")||0,n=(k.get("open")||0)+(k.get("assigned")||0),o=k.get("to_verify")||0,p=(k.get("done")||0)+(k.get("closed")||0),q=new Map(f.map(a=>[a.status,a._count])),r=f.reduce((a,b)=>a+b._count,0),s=q.get("pending")||0;return{ideas:{total:i,open:j},tasks:{total:l,inProgress:m,todo:n,toVerify:o,done:p},proposals:{total:r,pending:s},documents:{total:g}}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},76664:(a,b,c)=>{function d(a){let b="string"==typeof a?new Date(a):a;if(isNaN(b.getTime()))return"";let c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0"),f=String(b.getHours()).padStart(2,"0"),g=String(b.getMinutes()).padStart(2,"0");return`${c}-${d}-${e} ${f}:${g}`}function e(a,b){let c="string"==typeof a?new Date(a):a;return isNaN(c.getTime())?"":c.toLocaleDateString(b,{month:"short",day:"numeric"})}c.d(b,{r:()=>d,s:()=>e})},80251:(a,b,c)=>{c.d(b,{eu:()=>g,q5:()=>h});var d=c(10837);c(21968);var e=c(14672),f=c(96307);function g({className:a,size:b="default",...c}){return(0,d.jsx)(e.Root,{"data-slot":"avatar","data-size":b,className:(0,f.cn)("group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",a),...c})}function h({className:a,...b}){return(0,d.jsx)(e.Fallback,{"data-slot":"avatar-fallback",className:(0,f.cn)("bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs",a),...b})}},82831:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{z7:()=>k});var e=c(10837),f=c(21968),g=c.n(f),h=c(97450),i=c(10174),j=a([h]);h=(j.then?(await j)():j)[0];let n=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\?([^)]*))?\)/gi,o="chorus-mention";function k({children:a,renderMention:b}){if(!a||"string"!=typeof a)return null;if(!new RegExp(n.source,n.flags.replace("g","")).test(a))return(0,e.jsx)("div",{className:"overflow-hidden [&_pre]:overflow-x-auto",children:(0,e.jsx)(h.MarkdownContent,{children:a})});if(b)return(0,e.jsx)(l,{renderMention:b,children:a});let{processed:c,mentions:d}=function(a){let b=[],c=new RegExp(n.source,n.flags);return{processed:a.replace(c,(a,c,d,e,f)=>{let g=b.length,{pinnedHost:h,pinnedCwd:j}=(0,i.vE)(f),k={displayName:c,type:d,uuid:e};return(null!==h||null!==j)&&(k.pinnedHost=h,k.pinnedCwd=j),b.push(k),`\u200B\u200BMENTION_${g}\u200B\u200B`}),mentions:b}}(a);return(0,e.jsx)(m,{mentions:d,children:(0,e.jsx)(h.MarkdownContent,{children:c})})}function l({children:a,renderMention:b}){let{processed:c,mentions:d}=g().useMemo(()=>(function(a){let b=[],c=new RegExp(n.source,n.flags);return{processed:a.replace(c,(a,c,d,e,f)=>{let g=b.length,{pinnedHost:h,pinnedCwd:j}=(0,i.vE)(f),k={type:d.toLowerCase(),uuid:e.toLowerCase(),displayName:c};(null!==h||null!==j)&&(k.pinnedHost=h,k.pinnedCwd=j),b.push(k);let l=`@${c}`.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return`<${o} idx="${g}">${l}</${o}>`}),mentions:b}})(a),[a]),f=g().useMemo(()=>({[o]:({idx:a})=>{let c=void 0===a?NaN:parseInt(a,10),f=Number.isInteger(c)?d[c]:void 0;return f?(0,e.jsx)(e.Fragment,{children:b({...f,index:c})}):null}}),[d,b]);return(0,e.jsx)("div",{className:"overflow-hidden [&_pre]:overflow-x-auto",children:(0,e.jsx)(h.MarkdownContent,{components:f,allowedTags:{[o]:["idx"]},literalTagContent:[o],children:c})})}function m({children:a,mentions:b}){let c=g().useRef(null);return(0,e.jsx)("div",{ref:c,className:"overflow-hidden [&_pre]:overflow-x-auto",children:a})}d()}catch(a){d(a)}})},90061:(a,b,c)=>{c.d(b,{fv:()=>p,xQ:()=>q});var d=c(21968),e=c(76172);let f=new Map,g=new Map,h=new Map,i=new Set,j=0;function k(a,b,c,d){return c?d?`${a}:${b}:${c}:${d}`:`${a}:${b}:${c}`:`${a}:${b}`}function l(){j++,i.forEach(a=>a())}function m(a){let b=a.subEntityType,c=a.subEntityUuid,d=k(a.entityType,a.entityUuid,b,c),e=function(a,b,c,d,e){let f=k(a,b,d,e);return`${f}:${c}`}(a.entityType,a.entityUuid,a.agentUuid,b,c),i=g.get(e);if(i&&Date.now()-i<3e3)return;g.set(e,Date.now());let j={agentUuid:a.agentUuid,agentName:a.agentName,action:a.action,timestamp:Date.now()},m=(f.get(d)??[]).filter(b=>b.agentUuid!==a.agentUuid);m.push(j),f.set(d,m);let n=h.get(e);n&&clearTimeout(n);let o=setTimeout(()=>{let b=f.get(d);if(b){let c=b.filter(b=>b.agentUuid!==a.agentUuid);0===c.length?f.delete(d):f.set(d,c)}g.delete(e),h.delete(e),l()},3e3);h.set(e,o),l()}function n(){return j}function o(a){return i.add(a),()=>{i.delete(a)}}function p(a){m({type:"presence",companyUuid:"",projectUuid:"",...a,timestamp:Date.now()})}function q(){return(0,d.useSyncExternalStore)(o,n,n),(0,e.S2)(m),{getPresence:(a,b,c,d)=>{if(c)return f.get(k(a,b,c,d))??[];let e=`${a}:${b}`,g=new Map;for(let[a,b]of f)if(a===e||a.startsWith(e+":"))for(let a of b){let b=g.get(a.agentUuid);(!b||a.timestamp>b.timestamp)&&g.set(a.agentUuid,a)}return[...g.values()]}}}},98581:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{d:()=>l,s:()=>m});var e=c(2613);c(50785);var f=c(9259),g=c(466),h=c(67738),i=c(97307),j=c(12217),k=a([f,g,h]);[f,g,h]=k.then?(await k)():k;let n=["idea","proposal","task","document"];async function l(a,b,c){let d=await (0,f.d)();if(!d)return{success:!1,error:"Unauthorized"};if(!n.includes(a))return{success:!1,error:`Invalid target type: ${a}`};try{let e=await (0,g.fg)({companyUuid:d.companyUuid,targetType:a,targetUuid:b,cursor:c?.cursor??null,limit:c?.limit??10}),f=await (0,g.Yt)(e.comments);return{success:!0,comments:f,total:e.total,nextCursor:e.nextCursor??null,hasMore:e.hasMore??!1}}catch(b){return i.default.error({err:b,targetType:a},"Failed to get comments"),{success:!1,error:"Failed to load comments"}}}async function m(a,b,c){let d=await (0,f.d)();if(!d)return{success:!1,error:"Unauthorized"};if(!n.includes(a))return{success:!1,error:`Invalid target type: ${a}`};if(!c.trim())return{success:!1,error:"Comment content is required"};try{let e=await (0,g.eT)({companyUuid:d.companyUuid,targetType:a,targetUuid:b,content:c.trim(),authorType:d.type,authorUuid:d.actorUuid}),f=await (0,g.Hu)(a,b,d.companyUuid);f&&await (0,h.createActivity)({companyUuid:d.companyUuid,projectUuid:f,targetType:a,targetUuid:b,actorType:d.type,actorUuid:d.actorUuid,action:"comment_added"});let[i]=await (0,g.Yt)([e]);return{success:!0,comment:i}}catch(b){return i.default.error({err:b,targetType:a},"Failed to create comment"),{success:!1,error:"Failed to create comment"}}}(0,j.D)([l,m]),(0,e.A)(l,"70da7ad886a7c95b61008abdc2b487250aa7ec64d8",null),(0,e.A)(m,"70519761271750b6d87e832e8dbe4c0847af6b0df1",null),d()}catch(a){d(a)}})}};