@chorus-aidlc/chorus 0.17.2 → 0.18.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 (446) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +357 -355
  3. package/.next/standalone/.next/app-path-routes-manifest.json +44 -44
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +18 -18
  6. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  46. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  50. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  51. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  54. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  55. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  57. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  58. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/admin.html +2 -2
  60. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  61. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  83. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  100. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  103. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  106. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  107. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js.nft.json +1 -1
  111. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  113. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
  116. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  122. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/events/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  139. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  142. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  143. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  145. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  148. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  151. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  154. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
  159. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/mcp/route.js +1 -1
  162. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  165. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  168. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  171. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  174. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  177. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  180. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  183. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  186. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  198. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  203. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  206. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
  212. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  214. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  217. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  220. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  232. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  233. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  236. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  237. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  238. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  239. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  242. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  245. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  248. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  249. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  250. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  251. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  252. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  253. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  254. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  255. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  256. package/.next/standalone/.next/server/app/index.html +2 -2
  257. package/.next/standalone/.next/server/app/index.rsc +2 -2
  258. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  259. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  260. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  261. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  262. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  263. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  264. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  265. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  267. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  268. package/.next/standalone/.next/server/app/login.html +2 -2
  269. package/.next/standalone/.next/server/app/login.rsc +2 -2
  270. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  271. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  274. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  275. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/projects.html +2 -2
  277. package/.next/standalone/.next/server/app/projects.rsc +3 -3
  278. package/.next/standalone/.next/server/app/settings.html +2 -2
  279. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  280. package/.next/standalone/.next/server/app-paths-manifest.json +44 -44
  281. package/.next/standalone/.next/server/chunks/109.js +1 -0
  282. package/.next/standalone/.next/server/chunks/1318.js +1 -1
  283. package/.next/standalone/.next/server/chunks/1496.js +1 -0
  284. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  285. package/.next/standalone/.next/server/chunks/2572.js +1 -1
  286. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  287. package/.next/standalone/.next/server/chunks/3112.js +1 -1
  288. package/.next/standalone/.next/server/chunks/{2536.js → 3619.js} +3 -3
  289. package/.next/standalone/.next/server/chunks/{6080.js → 4810.js} +1 -1
  290. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  291. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  292. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  293. package/.next/standalone/.next/server/chunks/6506.js +2 -2
  294. package/.next/standalone/.next/server/chunks/6515.js +2 -2
  295. package/.next/standalone/.next/server/chunks/6737.js +1 -0
  296. package/.next/standalone/.next/server/chunks/6753.js +3 -3
  297. package/.next/standalone/.next/server/chunks/679.js +1 -1
  298. package/.next/standalone/.next/server/chunks/731.js +1 -0
  299. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  300. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  301. package/.next/standalone/.next/server/chunks/7857.js +1 -0
  302. package/.next/standalone/.next/server/chunks/920.js +1 -1
  303. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  304. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  305. package/.next/standalone/.next/server/chunks/9931.js +1 -1
  306. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  307. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  308. package/.next/standalone/.next/server/pages/404.html +2 -2
  309. package/.next/standalone/.next/server/pages/500.html +1 -1
  310. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  311. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  312. package/.next/standalone/.next/static/chunks/11595.0afa1a540f681fb4.js +1 -0
  313. package/.next/standalone/.next/static/chunks/22705-324a191727ae45b7.js +1 -0
  314. package/.next/standalone/.next/static/chunks/{31308-32614efb88305738.js → 31308-bb4a97b3f39c22dd.js} +1 -1
  315. package/.next/standalone/.next/static/chunks/33456.4a5f4712a7e78d8f.js +1 -0
  316. package/.next/standalone/.next/static/chunks/44216-3876e84f5b02d355.js +1 -0
  317. package/.next/standalone/.next/static/chunks/4860.5719e32b95be2d93.js +1 -0
  318. package/.next/standalone/.next/static/chunks/6528-a8a562ef7d26bb43.js +1 -0
  319. package/.next/standalone/.next/static/chunks/67439-7b339b28ed0ecfc6.js +1 -0
  320. package/.next/standalone/.next/static/chunks/79919-ae8bd8d8ec1e38ce.js +1 -0
  321. package/.next/standalone/.next/static/chunks/82203-4ce5926624df7ed0.js +1 -0
  322. package/.next/standalone/.next/static/chunks/94643-37ac7b8ef8ea5e75.js +1 -0
  323. package/.next/standalone/.next/static/chunks/99373.6c1509bfaf599741.js +1 -0
  324. package/.next/standalone/.next/static/chunks/99775-697e82ee04eac6b1.js +1 -0
  325. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-2fda722cdace8147.js +1 -0
  326. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/{page-eecb38fa4b8eb4e8.js → page-b45c42c536eff64b.js} +1 -1
  327. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-792aba7fd6b6daa3.js +1 -0
  328. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/{page-cd7ec77596304a07.js → page-800a979f12b73f27.js} +1 -1
  329. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-97a9e6f949002004.js → page-34de35f75aa71f6d.js} +1 -1
  330. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-a16002aa2a911619.js +1 -0
  331. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-cec15f4b835d34fc.js → page-e8030824994edf35.js} +1 -1
  332. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-4f7f1ddbaf79be8f.js +1 -0
  333. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-4ee117e690fda56f.js → page-349b0977f3c6209a.js} +1 -1
  334. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-7fbc46dfb7b22bd3.js → page-be43cb06112fce12.js} +1 -1
  335. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-6916e1abab42a6e6.js +1 -0
  336. package/.next/standalone/.next/static/chunks/app/onboarding/{page-4fce966dc96d4ff1.js → page-c0090caae202eae5.js} +1 -1
  337. package/.next/standalone/.next/static/chunks/{webpack-1bfc783412a06fc5.js → webpack-cfb63dd1b416c92e.js} +1 -1
  338. package/.next/standalone/.next/static/css/75c761a5428611fa.css +1 -0
  339. package/.next/standalone/package.json +1 -1
  340. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +2 -2
  341. package/.next/standalone/public/chorus-plugin/agents/code-reviewer.md +1 -0
  342. package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +12 -3
  343. package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +4 -0
  344. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
  345. package/.next/standalone/public/chorus-plugin/bin/on-post-submit-for-verify.sh +3 -3
  346. package/.next/standalone/public/chorus-plugin/bin/on-post-submit-proposal.sh +3 -3
  347. package/.next/standalone/public/chorus-plugin/bin/on-post-verify-task.sh +2 -2
  348. package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +39 -64
  349. package/.next/standalone/public/chorus-plugin/bin/resolve-spec-mode.sh +107 -0
  350. package/.next/standalone/public/chorus-plugin/bin/tests/test-resolver-drift.sh +46 -0
  351. package/.next/standalone/public/chorus-plugin/bin/tests/test-skill-harness-fidelity-negative.sh +328 -0
  352. package/.next/standalone/public/chorus-plugin/bin/tests/test-skill-harness-fidelity.sh +372 -0
  353. package/.next/standalone/public/chorus-plugin/bin/tests/test-spec-mode-resolution.sh +83 -0
  354. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  355. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +11 -6
  356. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
  357. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +14 -9
  358. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  359. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  360. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +27 -31
  361. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +11 -1
  362. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +14 -7
  363. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +6 -4
  364. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +10 -8
  365. package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +147 -0
  366. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +49 -34
  367. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +1 -1
  368. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +2 -1
  369. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +1 -1
  370. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.md +1 -1
  371. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
  372. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
  373. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +9 -7
  374. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  375. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
  376. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +35 -27
  377. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +9 -1
  378. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +14 -7
  379. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +2 -2
  380. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +8 -8
  381. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +147 -0
  382. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +39 -25
  383. package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +11 -6
  384. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
  385. package/.next/standalone/public/kiro-plugin/bin/on-agent-spawn.sh +41 -0
  386. package/.next/standalone/public/kiro-plugin/bin/on-post-submit-for-verify.sh +3 -3
  387. package/.next/standalone/public/kiro-plugin/bin/on-post-submit-proposal.sh +3 -3
  388. package/.next/standalone/public/kiro-plugin/bin/on-post-verify-task.sh +2 -2
  389. package/.next/standalone/public/kiro-plugin/bin/resolve-spec-mode.sh +107 -0
  390. package/.next/standalone/public/kiro-plugin/manifest.txt +2 -0
  391. package/.next/standalone/public/skill/chorus/SKILL.md +11 -1
  392. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +1 -0
  393. package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
  394. package/.next/standalone/public/skill/orchestrate-chorus/SKILL.md +11 -1
  395. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +5 -2
  396. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  397. package/.next/standalone/public/skill/review-chorus/SKILL.md +5 -3
  398. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +4 -0
  399. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +23 -7
  400. package/README.ja.md +3 -3
  401. package/README.ko.md +3 -3
  402. package/README.md +3 -3
  403. package/README.zh.md +3 -3
  404. package/cli/agent-cli-config.mjs +323 -0
  405. package/cli/agent-launcher.mjs +45 -17
  406. package/cli/claude-spawner.mjs +22 -13
  407. package/cli/codex-spawner.mjs +23 -15
  408. package/cli/credentials.mjs +7 -0
  409. package/cli/daemon-agent.mjs +1 -1
  410. package/cli/daemon-config.mjs +14 -0
  411. package/cli/daemon.mjs +34 -9
  412. package/cli/dsh-managed-config.mjs +219 -293
  413. package/cli/dsh-spawner.mjs +53 -27
  414. package/cli/init/steps/credential-seed.mjs +1 -1
  415. package/cli/kiro-spawner.mjs +22 -15
  416. package/cli/launch-diagnostics.mjs +67 -0
  417. package/cli/login.mjs +17 -1
  418. package/cli/pi-spawner.mjs +19 -12
  419. package/cli/prompts.mjs +52 -2
  420. package/cli/spawner-select.mjs +6 -11
  421. package/package.json +1 -1
  422. package/.next/standalone/.next/server/chunks/1114.js +0 -1
  423. package/.next/standalone/.next/server/chunks/2953.js +0 -1
  424. package/.next/standalone/.next/server/chunks/5162.js +0 -1
  425. package/.next/standalone/.next/server/chunks/6689.js +0 -1
  426. package/.next/standalone/.next/server/chunks/9667.js +0 -1
  427. package/.next/standalone/.next/static/chunks/11595.b81c0bf7732c3b62.js +0 -1
  428. package/.next/standalone/.next/static/chunks/24808-e3d95efc7ec039c5.js +0 -1
  429. package/.next/standalone/.next/static/chunks/33456.cfc9aa607a62e879.js +0 -1
  430. package/.next/standalone/.next/static/chunks/4860.41351a823cf400e4.js +0 -1
  431. package/.next/standalone/.next/static/chunks/51468-194d894e563580dd.js +0 -1
  432. package/.next/standalone/.next/static/chunks/61570-527701d072d00a24.js +0 -1
  433. package/.next/standalone/.next/static/chunks/65066-6da35d5cb080c7f5.js +0 -1
  434. package/.next/standalone/.next/static/chunks/72875-0987d09cd8406614.js +0 -1
  435. package/.next/standalone/.next/static/chunks/75936-79860953212592fd.js +0 -1
  436. package/.next/standalone/.next/static/chunks/79919-e02963faee5cb563.js +0 -1
  437. package/.next/standalone/.next/static/chunks/94643-e8f5fa25e2340cc8.js +0 -1
  438. package/.next/standalone/.next/static/chunks/99373.633f7c25e64bcdac.js +0 -1
  439. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-bb5ef11586301c72.js +0 -1
  440. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-725373108da1b08c.js +0 -1
  441. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-7d2f4713697eb0a7.js +0 -1
  442. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-0225f87552b977d9.js +0 -1
  443. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-8b30678a58e7b2ee.js +0 -1
  444. package/.next/standalone/.next/static/css/1d9cf83f50b6db00.css +0 -1
  445. /package/.next/standalone/.next/static/{WSN4XeA1kUCI6CeEHcaT_ → IxKVu5zkFPTjSKAUR99yH}/_buildManifest.js +0 -0
  446. /package/.next/standalone/.next/static/{WSN4XeA1kUCI6CeEHcaT_ → IxKVu5zkFPTjSKAUR99yH}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";exports.id=1114,exports.ids=[1114],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:()=>t});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 u=e.default.child({module:"notification-turn"}),v={mentioned:"mentioned",elaboration_requested:"elaboration",elaboration_answered:"elaboration",elaboration_verified:"elaboration_verified",start_development:"start_development",yolo_requested:"yolo_requested",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"},w=new Set(["task","document","proposal","idea"]),x=new Set(["task_assigned","elaboration","elaboration_verified","start_development","yolo_requested"]),y=new Set([...x,"mentioned"]);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(a.resolvedCwdSource&&"unconfigured"!==a.resolvedCwdSource)return{host:"invalid"===a.resolvedCwdAvailability?"\0invalid-project-cwd":a.resolvedCwdHost??"",cwd:null,runtimeCwd:a.resolvedRuntimeCwd,soft:!1};if(a.temporaryHost&&a.temporaryRuntimeCwd)return{host:a.temporaryHost,cwd:null,runtimeCwd:a.temporaryRuntimeCwd,soft:!1};if("mentioned"===b)return m(a.pinnedHost,a.pinnedCwd,!1);if(!w.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,cwdHost:!0,runtimeCwd:!0}});if(b?.assigneeType==="agent_instance"&&b.assigneeUuid){let c=await l(a.companyUuid,b.assigneeUuid);if(c){let a=b.runtimeCwd?{host:b.cwdHost?.trim()?b.cwdHost:c.host,cwd:null,runtimeCwd:b.runtimeCwd,soft:!1}:m(c.host,c.cwd,!1);if(a)return a}}}if("idea"===a.entityType){let b=await (0,g.resolveDirectIdeaUuid)(a.companyUuid,a.entityType,a.entityUuid),c=await p(a,b);if(c)return c}let c=await q(a);return p(a,c)}async function o(a,b,c){try{let d=await f.z.agent.findFirst({where:{uuid:b,companyUuid:a},select:{ownerUuid:!0}});if(!d?.ownerUuid)return null;let e=await f.z.projectAgentCwdPreference.findFirst({where:{companyUuid:a,userUuid:d.ownerUuid,projectUuid:c,agentUuid:b},select:{host:!0,cwd:!0}});if(!e)return null;return m(e.host,e.cwd,!1)}catch(d){return u.warn({err:d,companyUuid:a,agentUuid:b,projectUuid:c},"resolveProjectOwnerCwdPin failed; degrading to online-first"),null}}async function p(a,b){if(!b)return null;let c=await f.z.idea.findFirst({where:{uuid:b,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0,cwdHost:!0,runtimeCwd:!0}});if(c?.assigneeType==="agent_instance"&&c.assigneeUuid){let b=await l(a.companyUuid,c.assigneeUuid);if(b&&b.agentUuid===a.recipientUuid)return c.runtimeCwd?{host:c.cwdHost?.trim()?c.cwdHost:b.host,cwd:null,runtimeCwd:c.runtimeCwd,soft:!1}:m(b.host,b.cwd,!1)}return null}async function q(a){return(await (0,j.resolveRootIdea)(a.companyUuid,a.entityType,a.entityUuid)).rootIdeaUuid}function r(a,b){if(b){let c=a.find(a=>a.host===b.host&&(!!b.runtimeCwd||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"}}async function s(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 t(a){let b={turn:null,targetConnectionUuid:null,runtimeCwd:null,suppressWake:!1},c=v[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=r(d,e),k=null;if(w.has(a.entityType)&&(k=await (0,g.resolveDirectIdeaUuid)(a.companyUuid,a.entityType,a.entityUuid)),y.has(c)&&"online_first"===j.kind){let b=await s(a.companyUuid,a.recipientUuid,k,d);b&&(j={kind:"directed",connection:b})}if("online_first"===j.kind&&y.has(c)&&a.projectUuid){let b=await o(a.companyUuid,a.recipientUuid,a.projectUuid);b&&(e=b,j=r(d,b))}if(("proposal_approved"===a.action||"proposal_rejected"===a.action)&&"online_first"===j.kind&&d.filter(a=>"online"===a.effectiveStatus).length>=2)return{turn:null,targetConnectionUuid:null,runtimeCwd:null,suppressWake:!0};if(y.has(c)&&"online_first"===j.kind&&(j={kind:"directed",connection:j.connection}),"offline_pin"===j.kind)return{turn:null,targetConnectionUuid:null,runtimeCwd:e?.runtimeCwd??null,suppressWake:!0};if("none"===j.kind)return b;let l=j.connection,m="directed"===j.kind,p=e?.runtimeCwd??null,q=m?p??l.cwd??null:p,t=k??a.entityUuid,u=k;if(m&&k){let b=await f.z.daemonSession.findFirst({where:{companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:k},select:{uuid:!0,originConnectionUuid:!0}});b&&b.originConnectionUuid!==l.uuid&&await f.z.daemonSession.update({where:{uuid:b.uuid,companyUuid:a.companyUuid},data:{originConnectionUuid:l.uuid,...q?{runtimeCwd:q}:{}}})}let v=await (0,g.resolveOrCreateSession)({companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:t,directIdeaUuid:u,originConnectionUuid:l.uuid,...q?{runtimeCwd:q}:{}}),x=q??v.runtimeCwd??null,z="human_instruction"===c?a.instructionText??null:null,A="human_instruction"===c&&z?await (0,g.findReusablePendingInstructionTurn)(v.uuid,z):null;if(A||(A=await (0,g.createPendingTurn)({sessionUuid:v.uuid,trigger:c,promptText:z})),m)return(0,i.N_)({companyUuid:a.companyUuid,originConnectionUuid:l.uuid,turnUuid:A.uuid,...x?{runtimeCwd:x}:{}}),{turn:A,targetConnectionUuid:l.uuid,runtimeCwd:x,suppressWake:!1};return{turn:A,targetConnectionUuid:null,runtimeCwd:null,suppressWake:!1}}catch(c){return u.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"),g={pinnedCwd:c&&""!==e?e:null,pinnedHost:d?f??"":null};return"1"===b.get("runtime")&&(g.runtimeCwd=!0),g}},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,...a.runtimeCwd?{runtimeCwd:a.runtimeCwd}:{}}:{type:"control",command:a.command,targetConnectionUuid:a.targetConnectionUuid,entityType:a.entityType,entityUuid:a.entityUuid,...a.runtimeCwd?{runtimeCwd:a.runtimeCwd}:{},...a.resumeReason?{resumeReason:a.resumeReason}:{},..."resume"===a.command?{orchestrator:a.orchestrator??null}:{}};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.r(b),c.d(b,{CONVERSATION_NAME_MAX:()=>i.VM,DAEMON_REPORTABLE_INTERRUPT_REASONS:()=>N,DEFAULT_TRANSCRIPT_MESSAGE_PAGE:()=>S,MAX_TRANSCRIPT_MESSAGES_PER_SESSION:()=>Q,MERGED_TURN_STATUS:()=>L,SESSION_ACTIVITY_EVENT_NAME:()=>K,SESSION_STATUSES:()=>O,STALE_THRESHOLD_MS:()=>h.BP,SessionReadOnlyError:()=>T,TRANSCRIPT_ROLES:()=>P,TURN_INTERRUPT_REASONS:()=>M,TURN_STATUSES:()=>J,TURN_TRIGGERS:()=>I,advanceTurn:()=>u,advanceTurnForWake:()=>G,appendTranscriptMessages:()=>E,assertContinuable:()=>C,conversationNameFromInstruction:()=>i.Ff,createPendingTurn:()=>s,findReusablePendingInstructionTurn:()=>t,getFirstInstructionBySessionUuid:()=>i.L0,getPendingTurnsForConnection:()=>H,getSessionDetail:()=>B,getSessionTurns:()=>z,getVisibleSessions:()=>x,isSessionVisibleToCaller:()=>A,listVisibleRunningSessionActivities:()=>y,publishSessionActivityEvent:()=>k,publishTranscriptEvent:()=>p,reconcileOrphanTurns:()=>v,resolveDirectIdeaUuid:()=>r,resolveOrCreateSession:()=>q,transcriptEventName:()=>o});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 I=["task_assigned","mentioned","elaboration","elaboration_verified","start_development","yolo_requested","resume","human_instruction"],J=["pending","running","ended","interrupted"],K="session_activity";function k(a){f.B.emit(K,a)}let L="merged",M=["user","crash","shutdown","offline","invalid_path"],N=["user","crash","shutdown","invalid_path"],O=["active","ended"],P=["user","assistant"],Q=200;function l(a){return{uuid:a.uuid,agentUuid:a.agentUuid,sessionId:a.sessionId,backendSessionId:a.backendSessionId,directIdeaUuid:a.directIdeaUuid,originConnectionUuid:a.originConnectionUuid,runtimeCwd:a.runtimeCwd??null,status:a.status,title:a.title,lastTurnAt:a.lastTurnAt.toISOString(),totalInputTokens:a.totalInputTokens,totalOutputTokens:a.totalOutputTokens,totalCacheReadTokens:a.totalCacheReadTokens,totalCacheCreationTokens:a.totalCacheCreationTokens,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}function m(a){return{uuid:a.uuid,sessionUuid:a.sessionUuid,backendSessionId:a.backendSessionId??null,seq:a.seq,trigger:a.trigger,promptText:a.promptText,status:a.status,interruptedReason:a.interruptedReason,relayError:a.relayError,usage:function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.source||!a.source)return null;let b=a=>"number"==typeof a&&Number.isFinite(a)?a:null;return{inputTokens:b(a.inputTokens),outputTokens:b(a.outputTokens),cacheCreationTokens:b(a.cacheCreationTokens),cacheReadTokens:b(a.cacheReadTokens),model:"string"==typeof a.model?a.model:null,source:a.source}}(a.usage),executionUuid:a.executionUuid,startedAt:a.startedAt?a.startedAt.toISOString():null,endedAt:a.endedAt?a.endedAt.toISOString():null,createdAt:a.createdAt.toISOString()}}function n(a){return"agent"===a.type?{agentUuid:a.actorUuid}:{agent:{ownerUuid:a.actorUuid}}}function o(a){return`transcript:${a}`}function p(a){f.B.emit(o(a.sessionUuid),a)}async function q(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,runtimeCwd:a.runtimeCwd??null,status:"active"},update:{companyUuid:a.companyUuid,...void 0!==a.runtimeCwd?{runtimeCwd:a.runtimeCwd}:{}}});return l(b)}async function r(a,b,c){return(await (0,g.resolveRootIdea)(a,b,c)).directIdeaUuid}async function s(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=m(c);return p({companyUuid:b.companyUuid,sessionUuid:a.sessionUuid,trigger:"turn_created",turn:d,messages:[]}),d}async function t(a,b){let c=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:a,status:"pending",trigger:"human_instruction",promptText:b},orderBy:{seq:"asc"}});return c?m(c):null}let R={pending:["running"],running:["ended","interrupted"],ended:[],interrupted:[]};async function u(a,b,c={}){let d,f=await e.z.daemonSessionTurn.findUnique({where:{uuid:a},select:{uuid:!0,sessionUuid:!0,status:!0}});if(!f)return{ok:!1,reason:"not_found"};if(!(R[f.status]??[]).includes(b))return{ok:!1,reason:"invalid_transition",from:f.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),"interrupted"===b&&void 0!==c.interruptedReason&&(g.interruptedReason=c.interruptedReason);let h="ended"===b||"interrupted"===b;h&&void 0!==c.relayError&&(g.relayError=c.relayError);let i=h&&null!=c.usage?c.usage:null;if(i&&(g.usage=i),void 0!==c.expectedStatus){if(!(d=await e.z.$transaction(async b=>{let d=await b.daemonSessionTurn.updateMany({where:{uuid:a,status:c.expectedStatus},data:g});return 0===d.count?null:(i&&await b.daemonSession.update({where:{uuid:f.sessionUuid},data:{totalInputTokens:{increment:c.usage?.inputTokens??0},totalOutputTokens:{increment:c.usage?.outputTokens??0},totalCacheReadTokens:{increment:c.usage?.cacheReadTokens??0},totalCacheCreationTokens:{increment:c.usage?.cacheCreationTokens??0}}}),b.daemonSessionTurn.findUnique({where:{uuid:a}}))}))){let c=await e.z.daemonSessionTurn.findUnique({where:{uuid:a},select:{status:!0}});return c?{ok:!1,reason:"invalid_transition",from:c.status,to:b}:{ok:!1,reason:"not_found"}}}else if(i){let[b]=await e.z.$transaction([e.z.daemonSessionTurn.update({where:{uuid:a},data:g}),e.z.daemonSession.update({where:{uuid:f.sessionUuid},data:{totalInputTokens:{increment:c.usage?.inputTokens??0},totalOutputTokens:{increment:c.usage?.outputTokens??0},totalCacheReadTokens:{increment:c.usage?.cacheReadTokens??0},totalCacheCreationTokens:{increment:c.usage?.cacheCreationTokens??0}}})]);d=b}else d=await e.z.daemonSessionTurn.update({where:{uuid:a},data:g});let j=await e.z.daemonSession.findUnique({where:{uuid:f.sessionUuid},select:{companyUuid:!0,directIdeaUuid:!0,agentUuid:!0,originConnectionUuid:!0,agent:{select:{ownerUuid:!0}}}});if(!j)throw Error(`advanceTurn: session ${f.sessionUuid} missing for just-updated turn ${a}`);let l=m(d);return p({companyUuid:j.companyUuid,sessionUuid:f.sessionUuid,trigger:"turn_status_changed",turn:l,messages:[]}),k({type:"running"===b?"session_started":"session_ended",companyUuid:j.companyUuid,sessionUuid:f.sessionUuid,activityUuid:a,directIdeaUuid:j.directIdeaUuid,agentUuid:j.agentUuid,originConnectionUuid:j.originConnectionUuid,agentOwnerUuid:j.agent?.ownerUuid??null}),{ok:!0,turn:l}}async function v(a,b,d={}){try{let f=await e.z.daemonSessionTurn.findMany({where:{status:"running",session:{companyUuid:a,originConnectionUuid:b}},select:{uuid:!0}});if(0===f.length)return 0;if(!d.force){let c=await e.z.daemonConnection.findFirst({where:{companyUuid:a,uuid:b},select:{lastSeenAt:!0}});if(!function(a,b=Date.now()){return!a||b-a.lastSeenAt.getTime()>h.BP}(c))return 0}let g=new Date,i=0;for(let a of f){let b=await u(a.uuid,"interrupted",{interruptedReason:"offline",endedAt:g});if(b.ok)i+=1;else if("invalid_transition"===b.reason){let{default:d}=await Promise.resolve().then(c.bind(c,65582));d.info({turnUuid:a.uuid,from:b.from,to:b.to},"Orphan-turn reconcile lost the race to a concurrent terminal transition")}}return i}catch(e){let{default:d}=await Promise.resolve().then(c.bind(c,65582));return d.error({err:e,companyUuid:a,connectionUuid:b},"Failed to reconcile orphaned running turns"),0}}async function w(a,b){if(0===b.length)return 0;try{let c=await e.z.daemonSessionTurn.findMany({where:{status:"running",sessionUuid:{in:b.map(a=>a.uuid)}},select:{sessionUuid:!0}});if(0===c.length)return 0;let d=new Set(c.map(a=>a.sessionUuid)),f=[...new Set(b.filter(a=>d.has(a.uuid)).map(a=>a.originConnectionUuid))],g=0;for(let b of f)g+=await v(a,b);return g}catch(d){let{default:b}=await Promise.resolve().then(c.bind(c,65582));return b.error({err:d,companyUuid:a},"Read-time orphan-turn fallback failed (read continues unconverged)"),0}}async function x(a){let b=await e.z.daemonSession.findMany({where:{companyUuid:a.companyUuid,...n(a)},orderBy:{lastTurnAt:"desc"}});return await w(a.companyUuid,b),b.map(l)}async function y(a){return(await e.z.daemonSessionTurn.findMany({where:{status:"running",session:{companyUuid:a.companyUuid,..."agent"===a.type?{agentUuid:a.actorUuid}:{}}},orderBy:[{sessionUuid:"asc"},{uuid:"asc"}],select:{uuid:!0,sessionUuid:!0,session:{select:{companyUuid:!0,directIdeaUuid:!0,agentUuid:!0,originConnectionUuid:!0,agent:{select:{ownerUuid:!0}}}}}})).map(b=>({type:"session_started",companyUuid:b.session.companyUuid,sessionUuid:b.sessionUuid,activityUuid:b.uuid,directIdeaUuid:b.session.directIdeaUuid,agentUuid:b.session.agentUuid,originConnectionUuid:b.session.originConnectionUuid,canOpen:"agent"===a.type?b.session.agentUuid===a.actorUuid:b.session.agent.ownerUuid===a.actorUuid}))}async function z(a,b){return await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...n(a)},select:{uuid:!0}})?(await e.z.daemonSessionTurn.findMany({where:{sessionUuid:b},orderBy:{seq:"asc"}})).map(m):null}async function A(a,b){let c=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...n(a)},select:{uuid:!0}});return null!=c}let S=20;async function B(a,b,c={}){let d=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...n(a)}});if(!d)return null;await w(a.companyUuid,[d]);let f=Math.min(Math.max(1,Math.floor(c.limit??S)),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"},take:f+2}),j=i.map(a=>a.uuid),k=j.length>0?await e.z.daemonTranscriptMessage.findMany({where:{turnUuid:{in:j}},orderBy:[{turnUuid:"asc"},{seq:"asc"}]}):[],o=new Map;for(let a of k){let b=D(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,v=new Map;for(let a of i)v.set(a.uuid,a);let x=new Map;for(let a of i)x.set(a.seq,a.uuid);let y=new Map,z=[];for(let a of t)y.has(a.turnSeq)||(y.set(a.turnSeq,[]),z.push(a.turnSeq)),a.rendered&&y.get(a.turnSeq).push(a.rendered);let A=z.map(a=>{let b=x.get(a);return{...m(v.get(b)),messages:y.get(a)??[]}});return{session:l(d),turns:A,hasMore:r,oldestTurnSeq:u?u.turnSeq:null,oldestMsgSeq:u?u.msgSeq:null}}class T 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 C(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 T(c.originConnectionUuid);return c.originConnectionUuid}function D(a){return{uuid:a.uuid,turnUuid:a.turnUuid,role:a.role,text:a.text,seq:a.seq,createdAt:a.createdAt.toISOString()}}async function E(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=>P.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(D),await F(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&&p({companyUuid:g?.companyUuid??a.companyUuid,sessionUuid:c,trigger:"transcript_appended",turn:m(d),messages:f})}return{ok:!0,appended:f.length,stored:g,messages:f}}async function F(a){let b=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:a}}})-Q;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 G(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||"interrupted"===a.status?"running":null,f=await e.z.daemonSessionTurn.findFirst({where:a.turnUuid?{uuid:a.turnUuid,sessionUuid:c.uuid}:{sessionUuid:c.uuid,...d?{status:d}:{}},orderBy:{seq:"asc"}});if(!f)return{ok:!1,reason:"not_found"};let g="ended"===a.status||"interrupted"===a.status;if(a.turnUuid&&g&&f.status===a.status)return(f.backendSessionId??null)!==(a.backendSessionId??null)?{ok:!1,reason:"backend_session_conflict"}:{ok:!0,turn:m(f)};if(a.backendSessionId){let b=await e.z.daemonSessionTurn.updateMany({where:{uuid:f.uuid,OR:[{backendSessionId:null},{backendSessionId:a.backendSessionId}]},data:{backendSessionId:a.backendSessionId}});if(0===b.count)return{ok:!1,reason:"backend_session_conflict"};await e.z.daemonSession.updateMany({where:{uuid:c.uuid,backendSessionId:null},data:{backendSessionId:a.backendSessionId}})}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 h=new Date,i=void 0!==a.startedAt?a.startedAt:"running"===a.status?h:void 0,j=void 0!==a.endedAt?a.endedAt:"ended"===a.status||"interrupted"===a.status?h:void 0,k=await u(f.uuid,a.status,{...void 0!==i?{startedAt:i}:{},...void 0!==j?{endedAt:j}:{},...void 0!==b?{executionUuid:b}:{},...void 0!==a.interruptedReason?{interruptedReason:a.interruptedReason}:{},...void 0!==a.relayError?{relayError:a.relayError}:{},...void 0!==a.usage?{usage:a.usage}:{},expectedStatus:f.status});if(!k.ok){if("not_found"===k.reason)return{ok:!1,reason:"not_found"};if(a.turnUuid&&g){let b=await e.z.daemonSessionTurn.findFirst({where:{uuid:a.turnUuid,sessionUuid:c.uuid}});if(b&&b.status===a.status&&(b.backendSessionId??null)===(a.backendSessionId??null))return{ok:!0,turn:m(b)};if(b&&b.status===a.status&&(b.backendSessionId??null)!==(a.backendSessionId??null))return{ok:!1,reason:"backend_session_conflict"}}return{ok:!1,reason:"invalid_transition",from:k.from,to:k.to}}let l=a.coalescedCount??1;if("running"===a.status&&l>1){let b=await e.z.daemonSessionTurn.findMany({where:{sessionUuid:c.uuid,status:"pending",seq:{gt:f.seq}},orderBy:{seq:"asc"},take:l-1});if(b.length>0)for(let d of(await e.z.daemonSessionTurn.updateMany({where:{uuid:{in:b.map(a=>a.uuid)}},data:{status:L}}),b))p({companyUuid:a.companyUuid,sessionUuid:c.uuid,trigger:"turn_status_changed",turn:m({...d,status:L}),messages:[]})}return{ok:!0,turn:k.turn}}async function H(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,runtimeCwd:!0}}}})).map(a=>({turnUuid:a.uuid,sessionUuid:a.sessionUuid,sessionId:a.session.sessionId,directIdeaUuid:a.session.directIdeaUuid,runtimeCwd:a.session.runtimeCwd,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,{resolveRootIdea:()=>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:()=>o,Ip:()=>p,NL:()=>q,Ug:()=>u,Xm:()=>m,aF:()=>l,lX:()=>t,p_:()=>n,rD:()=>r,y1:()=>s});var e=c(52618),f=c(42558),g=c(14120),h=c(77716),i=a([e,g,h]);function j(a){return"idea"!==a.entityType&&"task"!==a.entityType?null:`${a.companyUuid}:${a.entityType}:${a.entityUuid}`}async function k(a){let b=new Map;for(let c of a){let a=j(c);a&&!b.has(a)&&b.set(a,{companyUuid:c.companyUuid,entityType:c.entityType,entityUuid:c.entityUuid})}let c=new Map;return await Promise.all([...b.entries()].map(async([a,b])=>{c.set(a,await (0,h.V)(b.companyUuid,b.entityType,b.entityUuid))})),a.map(a=>{var b,d;let e=j(a);return b=a,d=e?c.get(e)??null:null,{uuid:b.uuid,projectUuid:b.projectUuid,projectName:b.projectName,recipientType:b.recipientType,recipientUuid:b.recipientUuid,entityType:b.entityType,entityUuid:b.entityUuid,entityTitle:b.entityTitle,action:b.action,message:b.message,actorType:b.actorType,actorUuid:b.actorUuid,actorName:b.actorName,readAt:b.readAt?.toISOString()??null,archivedAt:b.archivedAt?.toISOString()??null,createdAt:b.createdAt.toISOString(),instructionText:b.instructionText??null,orchestrator:d}})}async function l(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 o(a.companyUuid,a.recipientType,a.recipientUuid),{turn:d,targetConnectionUuid:h,runtimeCwd:i,suppressWake:j}=await (0,g.Wy)(a);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,runtimeCwd:i,suppressWake:j});let[l]=await k([b]);return{notification:l,turn:d}}async function m(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,runtimeCwd:d,suppressWake:e}=await (0,g.Wy)(b);c.set(b,{targetConnectionUuid:a,runtimeCwd:d,suppressWake:e})}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 o(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,runtimeCwd:k?c.get(k)?.runtimeCwd??null:null,suppressWake:!!k&&(c.get(k)?.suppressWake??!1)})}return k(b)}async function n(a){let{companyUuid:b,recipientType:c,recipientUuid:d,projectUuid:f,readFilter:g,archived:h}=a,i=a.skip??0,j=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}}},[m,n,p]=await Promise.all([e.z.notification.findMany({where:l,skip:i,take:j,orderBy:{createdAt:"desc"}}),e.z.notification.count({where:l}),o(b,c,d)]);return{notifications:await k(m),total:n,unreadCount:p}}async function o(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function p(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 o(b,c,d);f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h});let[i]=await k([g]);return i}async function q(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 o(a,b,c);return f.B.emit(`notification:${b}:${c}`,{type:"count_update",unreadCount:h}),{count:g.count}}async function r(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 o(b,c,d);f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h});let[i]=await k([g]);return i}function s(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 t(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 u(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]=i.then?(await i)():i,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:"desc"},{id:"desc"}],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:()=>u,EZ:()=>B,JF:()=>z,MY:()=>x,Nm:()=>G,Q7:()=>w,XB:()=>M,Xo:()=>D,bO:()=>q,bY:()=>H,h_:()=>E,i1:()=>y,jJ:()=>I,w9:()=>C,xo:()=>K,yM:()=>L});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 N={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(N[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}}function s(a,b){if(!a&&!b)return{};if(!a||!b)throw Error("Assignment provenance type and UUID must be provided together");return{assignedByType:a,assignedByUuid:b}}async function t(a){let[b,c]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid,a.assignedByType,a.companyUuid),(0,f.LS)(a.createdByUuid)]);return{uuid:a.uuid,title:a.title,content:a.content,attachments:a.attachments,status:p(a.status),isContainer:a.isContainer,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 u({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,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!0,assignedByUuid:!0,parentUuid:!0,isContainer:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:l})]),o=await Promise.all(m.map(t));if(m.forEach((a,b)=>{o[b].parentUuid=a.parentUuid??null}),o.length>0){let c=await v(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 O=["approved","closed"];async function v(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:[...O]},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 w(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 t(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 L(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 A(b,a);let g=(await m.fS(a,c.projectUuid,b)).filter(a=>O.includes(a.status));return 0===g.length?d.reports=[]:d.reports=await l.yZ(a,g.map(a=>a.uuid),"report"),d}async function x(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function y(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,isContainer:a.isContainer??void 0},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!0,assignedByUuid:!0,parentUuid:!0,isContainer:!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 t(b);return c.parentUuid=b.parentUuid,c}async function z(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&&F(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")),t(h)}async function A(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 B(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 t(i);return l.parentUuid=i.parentUuid,l}async function C({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,assignedByType:i,instanceUuid:j,cwdSource:k,cwdHost:l,runtimeCwd:m}){let n=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!n||n.assigneeUuid)throw new h.Yy("Idea");let o=p(n.status);if("elaborated"===o)throw Error("Cannot claim an elaborated Idea");let q=await r(b,c,d,j),u=s(i,f),v=await e.z.idea.update({where:{uuid:a},data:{status:"elaborating",assigneeType:q.assigneeType,assigneeUuid:q.assigneeUuid,cwdSource:m&&k?.trim()?k:null,cwdHost:m?l:null,runtimeCwd:m??null,assignedAt:new Date,...u},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:v.companyUuid,projectUuid:v.project.uuid,entityType:"idea",entityUuid:v.uuid,action:"updated"}),t(v)}async function D({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,assignedByType:h,instanceUuid:i,cwdSource:j,cwdHost:k,runtimeCwd:l}){let m=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!m)throw Error("Idea not found");let n="open"===m.status?"elaborating":m.status,o=await r(b,c,d,i),p=s(h,f),q=await e.z.idea.update({where:{uuid:a},data:{status:n,assigneeType:o.assigneeType,assigneeUuid:o.assigneeUuid,cwdSource:l&&j?.trim()?j:null,cwdHost:l?k:null,runtimeCwd:l??null,assignedAt:new Date,...p},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:q.companyUuid,projectUuid:q.project.uuid,entityType:"idea",entityUuid:q.uuid,action:"updated"}),t(q)}async function E(a){let b=await e.z.idea.findUnique({where:{uuid:a}});if(!b)throw Error("Idea not found");let c=p(b.status),d=await e.z.idea.update({where:{uuid:a},data:{..."elaborated"!==c&&{status:"open",elaborationDepth:null,elaborationStatus:null},assigneeType:null,assigneeUuid:null,cwdSource:null,cwdHost:null,runtimeCwd:null,assignedAt:null,assignedByType:null,assignedByUuid: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"}),t(d)}async function F(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 G(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 H(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 A(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 t(p),moved:o}}async function I(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 A(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 J(a){let b=a.length,c=a.filter(a=>"done"===a).length,d={done:c,total:b};return 0===b?{derivedStatus:"todo",badgeHint:"open",childProgress:d}:c===b?{derivedStatus:"done",badgeHint:"done",childProgress:d}:a.some(a=>"todo"!==a)?{derivedStatus:"in_progress",badgeHint:"building",childProgress:d}:{derivedStatus:"todo",badgeHint:"open",childProgress:d}}function K(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 L(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,isContainer:!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=new Map;if(c.length>0)for(let b of await e.z.referenceArtifact.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:"idea",targetUuid:{in:c.map(a=>a.uuid)}},_count:{_all:!0}})??[])g.set(b.targetUuid,b._count._all);let h=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"}}),i=new Map,j=new Set,k=new Map;for(let a of h){let b=a.inputUuids;if(Array.isArray(b)){for(let c of b)if(k.set(c,(k.get(c)??0)+1),"pending"===a.status)j.add(c);else if("approved"===a.status){let b=i.get(c);(!b||a.createdAt>b.createdAt)&&i.set(c,{uuid:a.uuid,createdAt:a.createdAt})}}}let l=[...new Set([...i.values()].map(a=>a.uuid))],m=new Map;if(l.length>0)for(let b of(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:l}},select:{proposalUuid:!0,status:!0}}))){if(!b.proposalUuid)continue;let a=m.get(b.proposalUuid)||[];a.push(b.status),m.set(b.proposalUuid,a)}let n=c.map(a=>{let c=i.get(a.uuid),d=c&&m.get(c.uuid)||[],{derivedStatus:e,badgeHint:h}=K({ideaStatus:a.status,elaborationStatus:a.elaborationStatus,hasPendingProposal:j.has(a.uuid),hasApprovedProposal:!!c,taskStatuses:d});return{uuid:a.uuid,title:a.title,status:a.status,derivedStatus:e,badgeHint:h,createdAt:a.createdAt,updatedAt:a.updatedAt,projectUuid:b,proposalCount:k.get(a.uuid)??0,taskCount:d.length,parentUuid:a.parentUuid??null,childCount:f.get(a.uuid)??0,isContainer:a.isContainer,childProgress:null,referenceCount:g.get(a.uuid)??0}}),o=new Map(n.map(a=>[a.uuid,a])),p=new Map(n.map(a=>[a.uuid,a.derivedStatus])),q=new Map(n.map(a=>[a.uuid,a.badgeHint])),r=new Map;for(let a of n){if(!a.parentUuid||!o.has(a.parentUuid))continue;let b=r.get(a.parentUuid)??[];b.push(a.uuid),r.set(a.parentUuid,b)}let s=new Set,t=new Set;for(let a of n){if(t.has(a.uuid))continue;let b=[],c=new Map,d=a.uuid;for(;d&&o.has(d)&&!t.has(d);){let a=c.get(d);if(void 0!==a){for(let c of b.slice(a))s.add(c);break}c.set(d,b.length),b.push(d),d=o.get(d)?.parentUuid??null}for(let a of b)t.add(a)}let u=new Map;for(let a of n){let b=r.get(a.uuid)??[];(!a.isContainer||0===b.length||s.has(a.uuid))&&u.set(a.uuid,{derivedStatus:p.get(a.uuid),badgeHint:q.get(a.uuid)})}let v=new Map,w=[];for(let a of n){if(u.has(a.uuid))continue;let b=(r.get(a.uuid)??[]).filter(a=>!u.has(a)).length;v.set(a.uuid,b),0===b&&w.push(a.uuid)}for(let a=0;a<w.length;a+=1){let b=w[a],c=(r.get(b)??[]).map(a=>u.get(a).derivedStatus),d=J(c);u.set(b,d);let e=o.get(b)?.parentUuid;if(!e||!v.has(e))continue;let f=v.get(e)-1;v.set(e,f),0===f&&w.push(e)}for(let a of n){let b=u.get(a.uuid);b&&(a.derivedStatus=b.derivedStatus,a.badgeHint=b.badgeHint);let c=r.get(a.uuid)??[];if(!a.isContainer||0===c.length)continue;let d=c.map(a=>u.get(a)?.derivedStatus??p.get(a));a.childProgress=J(d).childProgress}return n}let P=["todo","in_progress","human_conduct_required","done"];async function M(a,b){let c=await L(a,b),d={},e={};for(let a of P)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,isContainer:a.isContainer,childProgress:a.childProgress??null,referenceCount:a.referenceCount??0};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:()=>v,Ld:()=>G,N_:()=>r,OQ:()=>z,Oi:()=>x,Rk:()=>s,Uc:()=>D,Vn:()=>E,i2:()=>C,k3:()=>F,mX:()=>A,sB:()=>u,ub:()=>t,y9:()=>B});var e=c(55511),f=c(52618),g=c(65582),h=c(42558),i=c(37943),j=c(28792),k=c(34853),l=c(93419),m=c(81722),n=a([f,i,j,k,l,m]);[f,i,j,k,l,m]=n.then?(await n)():n;let y=g.default.child({module:"daemon-instruction.service"});class z extends Error{constructor(){super("Daemon session not found"),this.code="session_not_visible",this.name="SessionNotVisibleError"}}class A extends Error{constructor(){super("Connection not found"),this.code="connection_not_visible",this.name="ConnectionNotVisibleError"}}class B 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 C 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 D 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 o(a){let b=(a??"").trim();if(0===b.length)throw new D("empty");if(b.length>4e3)throw new D("too_long");return b}async function p(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 q(a){let{auth:b,agentUuid:c,sessionUuid:d,sessionId:e,directIdeaUuid:f,instructionText:g}=a,{turn:h}=await i.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(!h)throw Error(`Instruction turn was not created on session ${d} (no online origin at chokepoint).`);return h}function r(a){try{(0,j.s7)({companyUuid:a.companyUuid,targetConnectionUuid:a.originConnectionUuid,command:"deliver_turn",turnUuid:a.turnUuid,...a.runtimeCwd?{runtimeCwd:a.runtimeCwd}:{}})}catch(b){y.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 s(a,b){let c=o(b.instructionText),d=await p(a,b.sessionUuid);if(!d)throw new z;await (0,k.assertContinuable)(a.companyUuid,b.sessionUuid);let e=await q({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});return r({companyUuid:a.companyUuid,originConnectionUuid:d.originConnectionUuid,turnUuid:e.uuid}),{turn:e}}async function t(a,b){let c=o(b.instructionText),d=await w(a,b.agentUuid),f=await (0,l.HC)(a.companyUuid,b.agentUuid,b.connectionUuid);if(!d||!f)throw new A;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new B(b.connectionUuid);let g=(0,e.randomUUID)(),h=await (0,k.resolveOrCreateSession)({companyUuid:a.companyUuid,agentUuid:b.agentUuid,sessionId:g,directIdeaUuid:null,originConnectionUuid:b.connectionUuid}),i=await q({auth:a,agentUuid:b.agentUuid,sessionUuid:h.uuid,sessionId:g,directIdeaUuid:null,instructionText:c});return r({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:i.uuid}),{session:h,turn:i}}class E extends Error{constructor(){super("Project not found"),this.code="project_not_visible",this.name="ProjectNotVisibleError"}}class F extends Error{constructor(a){super("The chosen connection has no registered agent instance yet. Wait for the daemon to finish its handshake and retry."),this.code="connection_instance_missing",this.name="ConnectionInstanceMissingError",this.connectionUuid=a}}class G extends Error{constructor(a){super(`Project fixed working directory is ${a}`),this.availability=a,this.code="project_cwd_target_unavailable"}}async function u(a,b){let c=b.mode??"elaborate";if(!await w(a,b.agentUuid))throw new A;let d=await f.z.project.findFirst({where:{uuid:b.projectUuid,companyUuid:a.companyUuid},select:{uuid:!0,name:!0}});if(!d)throw new E;let g="user"===a.type?a.actorUuid:(await f.z.agent.findFirst({where:{uuid:a.actorUuid,companyUuid:a.companyUuid},select:{ownerUuid:!0}}))?.ownerUuid;if(!g)throw new A;let i=await (0,m.gt)({companyUuid:a.companyUuid,actorUserUuid:g,projectUuid:d.uuid,agentUuid:b.agentUuid}),j=b.connectionUuid,n=null,p=null,q=null,s=null;if("project_fixed"===i.source){if("ready"!==i.availability||!i.connectionUuid||!i.agentInstanceUuid)throw new G("offline"===i.availability?"offline":"invalid");j=i.connectionUuid,n=i.agentInstanceUuid,p="project_fixed",q=i.host,s=i.cwd}else{if(!await (0,l.HC)(a.companyUuid,b.agentUuid,b.connectionUuid))throw new A;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new B(b.connectionUuid);let c=await f.z.daemonConnection.findFirst({where:{uuid:b.connectionUuid,companyUuid:a.companyUuid},select:{agentInstanceUuid:!0}});if(!c?.agentInstanceUuid)throw new F(b.connectionUuid);n=c.agentInstanceUuid}let t=b.descriptionText?.trim()??"";if(0===t.length)throw new D("empty");let u=(0,e.randomUUID)(),v=o(function(a){let b=a.projectName?.trim()?`"${a.projectName.trim()}" (projectUuid: ${a.projectUuid})`:`projectUuid: ${a.projectUuid}`;return"decompose"===a.mode?[`[Chorus container-decompose entry] A new CONTAINER idea has been PRE-CREATED for project ${b} from the user's description below, and it is already assigned to you (status: elaborating, isContainer: true).`,` ideaUuid: ${a.ideaUuid}`,"\nThis conversation IS that container idea's root session. The user wants help DECOMPOSING it into child ideas. Do the following, in order:\n1. Edit the container via chorus_edit_idea: derive a concise title from the description and polish the content (keep the user's meaning). The current title is a placeholder.",`2. Ensure it stays a container: it was pre-created with isContainer=true — do NOT clear that flag (a container groups its child ideas and MUST NOT get a proposal of its own).`,`3. Run ONE lightweight elaboration round (chorus_pm_start_elaboration) to clarify the decomposition scope/dimension — how to slice the work into children. Keep it short; you may self-answer in headless or ask the user, then continue.`,`4. Propose the candidate child ideas AS A STRUCTURED ELABORATION ROUND (chorus_pm_start_elaboration) for the user to review/edit/confirm — use ONE elaboration question PER proposed child (the child's title as the question text, a short rationale as its description), single-select. Elaboration questions are single-select and a round is capped at 15 questions, so propose at most 15 candidates per round and NEVER a single multi-select question; if you need more children, propose them across additional rounds. Do NOT create any child ideas yet — this round is the preview the user accepts/edits/declines per child.`,"5. End the turn. The user's answers in the idea's elaboration panel will wake this same conversation (the existing elaboration-answered wake).",`6. On that re-wake, create each ACCEPTED child via chorus_pm_create_idea with parentUuid=${a.ideaUuid}. Each child starts in the "open" state — do NOT auto-elaborate them. The container's OWN status stays "elaborated"; creating children does not advance or alter it.`,"",`Reference reflex: whenever an external link is evidence for this work (a precedent issue/PR, a reference implementation, official docs, a paper/blog), attach it via references — prefer the inline references[] param at creation time over a post-hoc chorus_add_reference.`,"\n--- User's idea description ---",a.descriptionText].join("\n"):[`[Chorus conversational idea entry] A new idea has been PRE-CREATED for project ${b} from the user's description below, and it is already assigned to you (status: elaborating).`,` ideaUuid: ${a.ideaUuid}`,"",`This conversation IS that idea's root session — its elaboration and lifecycle wakes will continue here. Do the following, in order:`,"1. Edit the idea via chorus_edit_idea: derive a concise title from the description and polish the content (keep the user's meaning; you may restructure). The current title is a placeholder.",`2. Immediately start elaboration on the idea (chorus_pm_start_elaboration), following the idea skill — do NOT wait for another wake. Post a short summary of your questions in this conversation and direct the user to answer in the idea's elaboration panel.`,"3. End the turn. The user's panel answers will wake this same conversation.\n",`Reference reflex: whenever an external link is evidence for this idea (a precedent issue/PR, a reference implementation, official docs, a paper/blog), attach it via references — prefer the inline references[] param at creation time over a post-hoc chorus_add_reference.`,"\n--- User's idea description ---",a.descriptionText].join("\n")}({ideaUuid:u,projectUuid:d.uuid,projectName:d.name,descriptionText:t,mode:c})),{ideaRow:x,sessionRow:y,turnRow:z}=await f.z.$transaction(async e=>{let f=await e.idea.create({data:{uuid:u,companyUuid:a.companyUuid,projectUuid:d.uuid,title:function(a){let b=(a??"").split("\n").map(a=>a.trim()).find(a=>a.length>0)??"";return 0===b.length?"-":b.length<=60?b:`${b.slice(0,59)}…`}(t),content:t,isContainer:"decompose"===c,status:"elaborating",assigneeType:"agent_instance",assigneeUuid:n,cwdSource:p,cwdHost:q,runtimeCwd:s,assignedAt:new Date,assignedByType:"agent"===a.type?"agent":"user",assignedByUuid:a.actorUuid,createdByUuid:a.actorUuid},select:{uuid:!0,title:!0,content:!0,status:!0,projectUuid:!0,createdAt:!0}}),g=await e.daemonSession.create({data:{companyUuid:a.companyUuid,agentUuid:b.agentUuid,sessionId:u,directIdeaUuid:u,originConnectionUuid:j,runtimeCwd:s,status:"active"}}),h=await e.daemonSessionTurn.create({data:{sessionUuid:g.uuid,seq:1,trigger:"human_instruction",promptText:v,status:"pending"}});return{ideaRow:f,sessionRow:g,turnRow:h}}),C={uuid:y.uuid,agentUuid:y.agentUuid,sessionId:y.sessionId,backendSessionId:y.backendSessionId,directIdeaUuid:y.directIdeaUuid,originConnectionUuid:y.originConnectionUuid,runtimeCwd:y.runtimeCwd,status:y.status,title:y.title,lastTurnAt:y.lastTurnAt.toISOString(),totalInputTokens:y.totalInputTokens,totalOutputTokens:y.totalOutputTokens,totalCacheReadTokens:y.totalCacheReadTokens,totalCacheCreationTokens:y.totalCacheCreationTokens,createdAt:y.createdAt.toISOString(),updatedAt:y.updatedAt.toISOString()},H={uuid:z.uuid,sessionUuid:z.sessionUuid,backendSessionId:null,seq:z.seq,trigger:z.trigger,promptText:z.promptText,status:z.status,interruptedReason:z.interruptedReason,relayError:z.relayError,usage:null,executionUuid:z.executionUuid,startedAt:z.startedAt?z.startedAt.toISOString():null,endedAt:z.endedAt?z.endedAt.toISOString():null,createdAt:z.createdAt.toISOString()},I={uuid:x.uuid,title:x.title,content:x.content,status:x.status,projectUuid:x.projectUuid,createdAt:x.createdAt.toISOString()};return(0,k.publishTranscriptEvent)({companyUuid:a.companyUuid,sessionUuid:C.uuid,trigger:"turn_created",turn:H,messages:[]}),h.B.emitChange({companyUuid:a.companyUuid,projectUuid:d.uuid,entityType:"idea",entityUuid:I.uuid,action:"created"}),r({companyUuid:a.companyUuid,originConnectionUuid:j,turnUuid:H.uuid}),{idea:I,session:C,turn:H}}async function v(a,b){let c=o(b.instructionText),d=await p(a,b.sessionUuid);if(!d)throw new z;if(await (0,l.j8)(a.companyUuid,d.originConnectionUuid))throw new C(d.originConnectionUuid);if(!await (0,l.HC)(a.companyUuid,d.agentUuid,b.connectionUuid))throw new A;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new B(b.connectionUuid);await f.z.daemonSession.update({where:{uuid:b.sessionUuid,companyUuid:a.companyUuid},data:{originConnectionUuid:b.connectionUuid}});let e=await q({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});r({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,backendSessionId:g.backendSessionId,directIdeaUuid:g.directIdeaUuid,originConnectionUuid:g.originConnectionUuid,runtimeCwd:g.runtimeCwd,status:g.status,title:g.title,lastTurnAt:g.lastTurnAt.toISOString(),totalInputTokens:g.totalInputTokens,totalOutputTokens:g.totalOutputTokens,totalCacheReadTokens:g.totalCacheReadTokens,totalCacheCreationTokens:g.totalCacheCreationTokens,createdAt:g.createdAt.toISOString(),updatedAt:g.updatedAt.toISOString()},turn:e}}async function w(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 x(a){let b=await (0,k.getVisibleSessions)(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()<=k.STALE_THRESHOLD_MS).map(a=>a.uuid)),h=[...new Set(b.map(a=>a.directIdeaUuid).filter(a=>!!a))],i=(0,k.getFirstInstructionBySessionUuid)(b.map(a=>a.uuid)),j=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 j,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,a.assignedByType,a.companyUuid),(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)),d.push(b.createdByUuid);let[g,h,i,j]=await Promise.all([(0,f.Uo)(c),(0,f.Xx)(d),(0,f.dI)(e),(0,f.O3)(a[0].companyUuid,a.map(a=>({assignedByType:a.assignedByType,assignedByUuid:a.assignedByUuid})))]);return a.map((a,c)=>{let d=null;if(a.assigneeType&&a.assigneeUuid){let b=g.get(a.assigneeUuid);if(b){let e=j[c],f="agent_instance"===a.assigneeType?i.get(a.assigneeUuid):void 0;d={type:a.assigneeType,uuid:a.assigneeUuid,name:b,assignedAt:a.assignedAt?.toISOString()??null,assignedBy:e,...f?{instance:f}:{}}}}let e=h.get(a.createdByUuid)??null,f=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),k=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),l=(a.acceptanceCriteriaItems||[]).map(q),{status:m,summary:n}=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:l,acceptanceStatus:m,acceptanceSummary:n,assignee:d,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:e,dependsOn:f,dependedBy:k,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,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!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,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!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,assignedByType:i,instanceUuid:j,cwdSource:k,cwdHost:l,runtimeCwd:m}){try{let h=await r(b,c,d,j),n=function(a,b){if(!a&&!b)return{};if(!a||!b)throw Error("Assignment provenance type and UUID must be provided together");return{assignedByType:a,assignedByUuid:b}}(i,f),o=await e.z.task.update({where:{uuid:a,status:{in:["open","assigned"]}},data:{status:"assigned",assigneeType:h.assigneeType,assigneeUuid:h.assigneeUuid,cwdSource:m&&k?.trim()?k:null,cwdHost:m?l:null,runtimeCwd:m??null,assignedAt:new Date,...n},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:o.companyUuid,projectUuid:o.project.uuid,entityType:"task",entityUuid:o.uuid,action:"updated"}),s(o)}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,cwdSource:null,cwdHost:null,runtimeCwd:null,assignedAt:null,assignedByType: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,skip:d,take:f}){let g={projectUuid:b,companyUuid:a,status:{in:["open","assigned"]},...c&&c.length>0&&{proposalUuid:{in:c}},NOT:{dependsOn:{some:{dependsOn:{status:{notIn:["done","closed"]}}}}}},[h,j]=await Promise.all([e.z.task.findMany({where:g,skip:d,take:f,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:g})]),k=await (0,i.uA)(a,"task",h.map(a=>a.uuid));return{tasks:await t(h,k),total:j}}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)}})},77716:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{V:()=>h});var e=c(52618),f=c(76872),g=a([e,f]);async function h(a,b,c){let d=null;if("idea"===b)d=await e.z.idea.findFirst({where:{uuid:c,companyUuid:a},select:{assignedByType:!0,assignedByUuid:!0}});else{if("task"!==b)return null;d=await e.z.task.findFirst({where:{uuid:c,companyUuid:a},select:{assignedByType:!0,assignedByUuid:!0}})}if(!d?.assignedByUuid||"user"===d.assignedByType)return null;let g=await (0,f.b)(a,d.assignedByType,d.assignedByUuid);return g?.type==="agent"?{type:"agent",uuid:g.uuid,name:g.name}:null}[e,f]=g.then?(await g)():g,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:()=>q,Xs:()=>p,_L:()=>x});var e=c(52618),f=c(76872),g=c(37943),h=c(25736),i=c(97515),j=c(93419),k=c(81722),l=a([e,f,g,i,j,k]);[e,f,g,i,j,k]=l.then?(await l)():l;let z=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\?([^)]*))?\)/gi;async function m(a,b,c){if("user"===b)return c;let d=await e.z.agent.findFirst({where:{uuid:c,companyUuid:a},select:{ownerUuid:!0}});return d?.ownerUuid??null}async function n(a,b,c){return"idea"===b?(await e.z.idea.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}}))?.projectUuid??null:"task"===b?(await e.z.task.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}}))?.projectUuid??null:"proposal"===b?(await e.z.proposal.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}}))?.projectUuid??null:(await e.z.document.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}}))?.projectUuid??null}async function o(a){let b=await m(a.companyUuid,a.actorType,a.actorUuid);if(!b)return null;let d=null,g=null,h=null,i=null;if(a.entityType&&a.entityUuid){let{resolveRootIdea:b}=await Promise.resolve().then(c.bind(c,35205)),{directIdeaUuid:j}=await b(a.companyUuid,a.entityType,a.entityUuid);if(j){let b=await e.z.idea.findFirst({where:{uuid:j,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0,cwdSource:!0,cwdHost:!0,runtimeCwd:!0}}),c=b?await (0,f.wo)(a.companyUuid,b.assigneeType,b.assigneeUuid):null;b?.assigneeType==="agent_instance"&&b.assigneeUuid&&c===a.agentUuid&&(d=b.assigneeUuid,g="project_fixed"===b.cwdSource?"project_fixed":"registered_instance",h=b.cwdHost,i=b.runtimeCwd)}}return(0,k.gt)({companyUuid:a.companyUuid,actorUserUuid:b,projectUuid:a.projectUuid,agentUuid:a.agentUuid,registeredInstanceUuid:d,registeredSource:g,registeredHost:h,registeredRuntimeCwd:i})}function p(a){let b,c=[],d=new Set;for(z.lastIndex=0;null!==(b=z.exec(a))&&!(c.length>=10);){let a=b[1],e=b[2].toLowerCase(),f=b[3].toLowerCase(),{pinnedHost:g,pinnedCwd:i,runtimeCwd:j}=(0,h.vE)(b[4]),k=`${e}:${f}`;if(!d.has(k)){d.add(k);let b={type:e,uuid:f,displayName:a};(null!==g||null!==i)&&(b.pinnedHost=g,b.pinnedCwd=i,j&&(b.runtimeCwd=!0)),c.push(b)}}return c}async function q(a){let{companyUuid:b,sourceType:c,sourceUuid:d,content:h,actorType:i,actorUuid:j,projectUuid:k,entityTitle:l}=a,m=p(h);if(0===m.length)return;let n=m.filter(a=>a.type!==i||a.uuid!==j);if(0===n.length)return;let q=[];for(let a of n)await y(b,a.type,a.uuid)&&q.push(a);if(0===q.length)return;await e.z.mention.createMany({data:q.map(a=>({companyUuid:b,sourceType:c,sourceUuid:d,mentionedType:a.type,mentionedUuid:a.uuid,actorType:i,actorUuid:j}))});let r=await (0,f.lR)(i,j)??"Someone",s=await e.z.project.findUnique({where:{uuid:k},select:{name:!0}}),t=s?.name??"Unknown Project",u=function(a){let b=a.replace(z,"@$1");return b.length<=120?b:b.substring(0,117)+"..."}(h),v=c,w=d;if("comment"===c){let a=await e.z.comment.findUnique({where:{uuid:d},select:{targetType:!0,targetUuid:!0}});a&&(v=a.targetType,w=a.targetUuid)}let x=[];for(let a of q){if(!(await g.lX(b,a.type,a.uuid)).mentioned)continue;let c=`${r} mentioned you: "${u}"`,d=void 0!==a.pinnedHost||void 0!==a.pinnedCwd,e="agent"!==a.type||d&&!0!==a.runtimeCwd?null:await o({companyUuid:b,actorType:i,actorUuid:j,projectUuid:k,agentUuid:a.uuid,entityType:!0===a.runtimeCwd?void 0:["idea","task","proposal","document"].includes(v)?v:void 0,entityUuid:!0===a.runtimeCwd?void 0:w});x.push({companyUuid:b,projectUuid:k,recipientType:a.type,recipientUuid:a.uuid,entityType:v,entityUuid:w,entityTitle:l,projectName:t,action:"mentioned",message:c,actorType:i,actorUuid:j,actorName:r,pinnedHost:a.pinnedHost,pinnedCwd:a.pinnedCwd,...e?.source==="project_fixed"?{resolvedCwdSource:e.source,resolvedCwdHost:e.host,resolvedRuntimeCwd:e.cwd,resolvedCwdAvailability:e.availability}:e?.source==="registered_instance"?{pinnedHost:e.host,pinnedCwd:e.cwd}:{}})}x.length>0&&await g.Xm(x)}function r(a){return"agent"===a.type?+!a.online:2}function s(a,b){let c=r(a),d=r(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 t(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 u(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 v(a,b,d,g){if(!b.some(a=>"agent"===a.type))return;let{resolveRootIdea:h}=await Promise.resolve().then(c.bind(c,35205)),{directIdeaUuid:i}=await h(a,d,g);if(!i)return;let j=await e.z.idea.findFirst({where:{uuid:i,companyUuid:a},select:{assigneeType:!0,assigneeUuid:!0}});if(!j)return;let k=await (0,f.wo)(a,j.assigneeType,j.assigneeUuid),l="agent_instance"===j.assigneeType?await (0,f.Vj)(j.assigneeType,j.assigneeUuid):null;for(let a of b){if("agent"!==a.type)continue;let b=null!==k&&a.uuid===k;a.isIdeaAssignee=b,b&&l&&j.assigneeUuid&&(a.ideaPin={host:l.host,cwd:l.cwd,agentInstanceUuid:j.assigneeUuid})}}async function w(a){let b=a.results.filter(a=>"agent"===a.type);if(0===b.length)return;let c="user"===a.actorType?a.actorUuid:a.ownerUuid;if(!c)return;let d=await n(a.companyUuid,a.entityType,a.entityUuid);if(!d)return;let f=await e.z.projectAgentCwdPreference.findMany({where:{companyUuid:a.companyUuid,userUuid:c,projectUuid:d,agentUuid:{in:b.map(a=>a.uuid)}},select:{agentUuid:!0,host:!0,cwd:!0}}),g=new Map(f.map(a=>[a.agentUuid,a]));for(let a of b){let b=g.get(a.uuid);if(!b)continue;let c=(a.instances??[]).some(a=>a.host===b.host&&"online"===a.effectiveStatus);a.projectFixedCwd={host:b.host,cwd:b.cwd,availability:b.host&&b.cwd?c?"ready":"offline":"invalid"}}}async function x(a){let b,{companyUuid:c,query:d,actorType:f,actorUuid:g,ownerUuid:h,limit:i=10,withInstances:j=!1,entityType:k,entityUuid:l}=a,m=!!k&&!!l,n=Math.min(i,50),o=[];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:n})))o.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await t(c,o),o.sort(s);let a=o.slice(0,Math.min(5,n));return j&&await u(c,a),m&&(await v(c,a,k,l),await w({companyUuid:c,actorType:f,actorUuid:g,ownerUuid:h,results:a,entityType:k,entityUuid:l})),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:n})))o.push({type:"user",uuid:a.uuid,name:a.name??a.email??"Unknown",email:a.email,avatarUrl:a.avatarUrl});let p={companyUuid:c,name:{contains:d,mode:"insensitive"}};for(let a of(b&&(p.ownerUuid=b),await e.z.agent.findMany({where:p,select:{uuid:!0,name:!0,roles:!0},take:n})))o.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await t(c,o),o.sort(s);let q=o.slice(0,n);return j&&await u(c,q),m&&(await v(c,q,k,l),await w({companyUuid:c,actorType:f,actorUuid:g,ownerUuid:h,results:q,entityType:k,entityUuid:l})),q}async function y(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 +0,0 @@
1
- exports.id=2953,exports.ids=[2953],exports.modules={5514:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{y:()=>E});var e=c(10837),f=c(21968),g=c(9222),h=c(44787),i=c(22727),j=c(24383),k=c(55775),l=c(27936),m=c(68797),n=c(6871),o=c(7086),p=c(24879),q=c(31009),r=c(45148),s=c(35198),t=c(49599),u=c(42424),v=c(11568),w=c(95964),x=c(92323),y=c(82097),z=c(54722),A=c(86104),B=c(87812),C=c(76172),D=a([m,A]);[m,A]=D.then?(await D)():D;let F={open:"bg-[#FFF3E0] dark:bg-[#3a2a12] text-[#E65100] dark:text-[#F0A050]",assigned:"bg-[#E3F2FD] dark:bg-[#13253a] text-[#1976D2] dark:text-[#5AA9F0]",in_progress:"bg-[#E8F5E9] dark:bg-[#14281a] text-[#5A9E6F] dark:text-[#6FD19A]",to_verify:"bg-[#F3E5F5] dark:bg-[#281630] text-[#7B1FA2] dark:text-[#C98FE0]",done:"bg-[#E0F2F1] dark:bg-[#12292a] text-[#00796B] dark:text-[#4FD1C0]",closed:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-[#9A9A9A]"},G={open:"open",assigned:"assigned",in_progress:"inProgress",to_verify:"toVerify",done:"done",closed:"closed"},H={in_progress:"bg-[#FFF3E0] dark:bg-[#3a2a12] text-[#E65100] dark:text-[#F0A050]",assigned:"bg-[#E8F5E9] dark:bg-[#14281a] text-[#2E7D32] dark:text-[#5FD07E]",open:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-muted-foreground",to_verify:"bg-[#E3F2FD] dark:bg-[#13253a] text-[#1565C0] dark:text-[#5AA9F0]"},I=[{id:"todo",labelKey:"todo",statuses:["open","assigned"]},{id:"in_progress",labelKey:"inProgress",statuses:["in_progress"]},{id:"to_verify",labelKey:"toVerify",statuses:["to_verify"]},{id:"done",labelKey:"done",statuses:["done","closed"]}];function E({projectUuid:a,initialTasks:b,currentUserUuid:c,selectedTaskUuid:d,onTaskSelect:D,onPanelClose:E,proposalUuidFilter:J}){let K=(0,g.c)(),[L,M]=(0,f.useState)(b),[N,O]=(0,f.useState)({}),[P,Q]=(0,f.useState)(!1),[R,S]=(0,f.useState)(null),[T,U]=(0,f.useState)([]),[V,W]=(0,f.useState)(!1),[X,Y]=(0,f.useState)([]),[Z,$]=(0,f.useState)(!1),[_,aa]=(0,f.useState)(!1),ab=(0,f.useCallback)(async()=>{let b=await (0,w.p)(a);if(b.success){let a=J?b.data.filter(a=>a.proposalUuid&&J.has(a.proposalUuid)):b.data;M(a);let c=await (0,B.h)(a.map(a=>a.uuid));c.success&&c.data&&O(c.data)}},[a,J]);(0,C.eV)("task",ab),(0,f.useRef)(J);let ac=(0,f.useMemo)(()=>d?L.find(a=>a.uuid===d)??null:null,[d,L]),ad=a=>L.filter(b=>a.includes(b.status)),ae=a=>ad(a).reduce((a,b)=>a+(b.storyPoints||0),0),af=async b=>{let c;aa(!1);let{destination:d,source:e,draggableId:f}=b;if(!d||d.droppableId===e.droppableId&&d.index===e.index)return;let g=d.droppableId;e.droppableId;let h=L.find(a=>a.uuid===f);if(!h)return;if(I.find(a=>a.id===g),"todo"===g)c="assigned"===h.status?"assigned":"open";else if("in_progress"===g)c="in_progress";else if("to_verify"===g)c="to_verify";else{if("done"!==g)return;c="to_verify"===h.status?"done":"to_verify"}M(a=>a.map(a=>a.uuid===f?{...a,status:c}:a));let i=await (0,x.y)(f,g,a);if(i.success)ab();else{if("blocked"in i&&i.blocked&&"blockers"in i){M(a=>a.map(a=>a.uuid===f?{...a,status:h.status}:a)),S(h),U(i.blockers),Q(!0);return}if(M(a=>a.map(a=>a.uuid===f?{...a,status:h.status}:a)),"gateBlocked"in i&&i.gateBlocked){let a="unresolvedCriteria"in i&&Array.isArray(i.unresolvedCriteria)?i.unresolvedCriteria:[];Y(a),W(!0)}}},ag=async()=>{if(R){$(!0);try{let a=await (0,y.H)(R.uuid,"in_progress");a.success?(Q(!1),S(null),U([]),ab()):z.q.error("Failed to force move task:",a.error)}finally{$(!1)}}},ah=()=>{Q(!1),S(null),U([])};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(h.JY,{onDragStart:()=>{aa(!0)},onDragEnd:af,children:(0,e.jsx)(p.o,{children:(0,e.jsx)("div",{className:"flex flex-1 gap-4 overflow-x-auto pb-4",children:I.map(a=>{let b=ad(a.statuses);return(0,e.jsxs)("div",{className:"flex w-[300px] flex-shrink-0 flex-col rounded-xl bg-secondary p-4",children:[(0,e.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("h3",{className:"font-medium text-foreground",children:K(`status.${a.labelKey}`)}),(0,e.jsx)("span",{className:"rounded-full bg-card px-2 py-0.5 text-xs font-medium text-muted-foreground",children:b.length})]}),ae(a.statuses)>0&&(0,e.jsxs)("span",{className:"flex items-center gap-1 text-xs text-[#9A9A9A]",children:[(0,e.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-3 w-3",children:[(0,e.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,e.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),ae(a.statuses),"h"]})]}),(0,e.jsx)(h.gL,{droppableId:a.id,children:(a,c)=>(0,e.jsxs)("div",{ref:a.innerRef,...a.droppableProps,className:`flex-1 space-y-3 overflow-y-auto min-h-[100px] rounded-lg pt-3 pr-3 transition-colors ${c.isDraggingOver?"bg-border":""}`,children:[0!==b.length||c.isDraggingOver?b.map((a,b)=>{let c=!!a.dependsOn&&0!==a.dependsOn.length&&a.dependsOn.some(a=>"done"!==a.status&&"closed"!==a.status),d=(c?!a.dependsOn?[]:a.dependsOn.filter(a=>"done"!==a.status&&"closed"!==a.status):[]).map(a=>a.title).join(", ");return(0,e.jsx)(h.sx,{draggableId:a.uuid,index:b,children:(b,f)=>(0,e.jsx)("div",{ref:b.innerRef,...b.draggableProps,...b.dragHandleProps,onClick:()=>{f.isDragging||D(a.uuid)},style:b.draggableProps.style,children:(0,e.jsxs)(q.P.div,{className:"relative",layoutId:_?void 0:`task-card-${a.uuid}`,transition:r.Yv.spring,children:[N[a.uuid]>0&&(0,e.jsx)("div",{className:"absolute -top-3 -right-3 z-10 flex h-11 w-11 items-center justify-center rounded-full border-2 border-green-400 bg-card shadow-sm",children:(0,e.jsx)("img",{src:"/typing-animation.gif",alt:"",className:"h-8 w-8"})}),(0,e.jsx)(i.D,{entityType:"task",entityUuid:a.uuid,children:(0,e.jsxs)(s.Zp,{className:`cursor-pointer p-4 transition-all ${c?"border-dashed border-[#D1D1D1] dark:border-[#3a3a40] opacity-60":"border-border hover:border-primary"} bg-card hover:shadow-sm ${f.isDragging?"shadow-lg rotate-2":""}`,children:[(0,e.jsxs)("div",{className:"mb-2 flex items-start justify-between",children:[(0,e.jsx)(t.E,{className:F[a.status]||"",children:K(`status.${G[a.status]||a.status}`)}),(0,e.jsx)("div",{className:"flex items-center gap-1.5",children:a.storyPoints&&(0,e.jsxs)("span",{className:"flex items-center gap-1 rounded bg-[#FFF3E0] dark:bg-[#3a2a12] px-2 py-0.5 text-xs font-medium text-[#E65100] dark:text-[#F0A050]",children:[(0,e.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-3 w-3",children:[(0,e.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,e.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),a.storyPoints,"h"]})})]}),(0,e.jsx)("h4",{className:"mb-1 font-medium text-foreground",children:a.title}),a.description&&(0,e.jsx)("p",{className:"mb-2 line-clamp-2 text-sm text-muted-foreground",children:a.description}),c&&(0,e.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 rounded-md bg-[#FFF3E0] dark:bg-[#3a2a12] px-2 py-1",children:[(0,e.jsx)(j.A,{className:"h-3 w-3 shrink-0 text-[#E65100] dark:text-[#F0A050]"}),(0,e.jsx)("span",{className:"text-[9px] font-medium leading-tight text-[#E65100] dark:text-[#F0A050] line-clamp-1",children:K("tasks.blockedBy",{tasks:d})})]}),(0,e.jsxs)("div",{className:"flex items-start justify-between gap-2 text-xs text-[#9A9A9A]",children:[a.assignee?(0,e.jsxs)("span",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,e.jsxs)("span",{className:"flex items-center gap-1",children:[(0,o.bB)(a.assignee)?(0,e.jsx)(n.AgentAvatar,{name:a.assignee.name,size:16,className:"shrink-0 rounded-full"}):(0,e.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-3 w-3 shrink-0",children:[(0,e.jsx)("path",{d:"M12 8V4H8"}),(0,e.jsx)("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"})]}),(0,e.jsx)("span",{className:"truncate",children:a.assignee.name})]}),"agent_instance"===a.assignee.type&&a.assignee.instance&&(0,e.jsx)(m.jQ,{cwd:a.assignee.instance.cwd,host:a.assignee.instance.host,showHost:!1,className:"pl-4"})]}):"open"===a.status?(0,e.jsx)("span",{className:"text-primary",children:K("common.assign")}):(0,e.jsx)("span",{children:K("common.unassigned")}),(0,e.jsxs)("span",{className:"flex items-center gap-1",children:[N[a.uuid]>0&&(0,e.jsxs)(t.E,{variant:"outline",className:"h-4 gap-1 border-green-300 dark:border-[#2a4a34] px-1.5 text-[10px] text-green-700 dark:text-[#6FD19A]",children:[(0,e.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-green-500"}),K("sessions.workerCount",{count:N[a.uuid]})]}),a.acceptanceSummary&&a.acceptanceSummary.total>0&&(()=>{let b=a.acceptanceSummary,c="to_verify"===a.status,d=b.requiredPassed===b.required&&b.required>0,f=b.requiredFailed>0,g="bg-secondary text-muted-foreground";return c&&(g=d?"bg-green-50 text-green-700 dark:bg-[#14281a] dark:text-[#6FD19A]":f?"bg-red-50 text-[#C4574C] dark:bg-[#331619] dark:text-[#F0897E]":"bg-amber-50 text-[#D97706] dark:bg-[#332a12] dark:text-[#E0B44E]"),(0,e.jsxs)(t.E,{className:`h-4 gap-1 border-0 px-1.5 text-[9px] ${g}`,children:[(0,e.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-2.5 w-2.5",children:[(0,e.jsx)("path",{d:"M9 11l3 3L22 4"}),(0,e.jsx)("path",{d:"M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"})]}),b.passed,"/",b.total]})})()]})]})]})})]})})},a.uuid)}):(0,e.jsx)("div",{className:"flex h-24 items-center justify-center rounded-lg border-2 border-dashed border-border text-sm text-[#9A9A9A]",children:K("tasks.noTasks")}),a.placeholder]})})]},a.id)})})})}),ac&&(0,e.jsx)(A.v,{task:ac,projectUuid:a,currentUserUuid:c,onClose:E}),(0,e.jsx)(v.lG,{open:P,onOpenChange:a=>{a||ah()},children:(0,e.jsxs)(v.Cf,{className:"max-w-md rounded-2xl",children:[(0,e.jsxs)(v.c7,{children:[(0,e.jsxs)(v.L3,{className:"flex items-center gap-2",children:[(0,e.jsx)(k.A,{className:"h-5 w-5 text-[#E65100] dark:text-[#F0A050]"}),K("tasks.dependencyBlocked")]}),(0,e.jsx)(v.rr,{children:K("tasks.dependencyBlockedDescription")})]}),(0,e.jsxs)("div",{className:"rounded-lg bg-background p-3",children:[(0,e.jsx)("p",{className:"mb-2 text-xs font-medium text-muted-foreground",children:K("tasks.blockerList")}),(0,e.jsx)("div",{className:"space-y-2",children:T.map(a=>(0,e.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-border bg-card p-3",children:[(0,e.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,e.jsx)("p",{className:"truncate text-sm font-medium text-foreground",children:a.title}),(0,e.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[a.assignee&&(0,e.jsxs)("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,o.bB)(a.assignee)&&(0,e.jsx)(n.AgentAvatar,{name:a.assignee.name,size:16,className:"shrink-0 rounded-full"}),a.assignee.name]}),a.sessionCheckin&&(0,e.jsxs)("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,e.jsx)(l.A,{className:"h-3 w-3"}),a.sessionCheckin.sessionName]})]})]}),(0,e.jsx)(t.E,{className:`shrink-0 ${H[a.status]||"bg-[#F5F5F5] dark:bg-[#1e1e20] text-muted-foreground"}`,children:K(`status.${G[a.status]||a.status}`)})]},a.uuid))})]}),(0,e.jsxs)(v.Es,{className:"gap-2 sm:gap-0",children:[(0,e.jsx)(u.$,{variant:"outline",onClick:ah,children:K("common.cancel")}),(0,e.jsx)(u.$,{className:"bg-[#E65100] hover:bg-[#BF4400] text-white",onClick:ag,disabled:Z,children:Z?K("common.processing"):K("tasks.forceMove")})]})]})}),(0,e.jsx)(v.lG,{open:V,onOpenChange:W,children:(0,e.jsxs)(v.Cf,{className:"max-w-[520px] rounded-2xl p-0 gap-0",children:[(0,e.jsxs)(v.c7,{className:"px-6 pt-6 pb-4",children:[(0,e.jsxs)(v.L3,{className:"flex items-center gap-2.5",children:[(0,e.jsx)(k.A,{className:"h-5 w-5 text-[#C4574C] dark:text-[#F0897E]"}),K("acceptanceCriteria.title")]}),(0,e.jsx)(v.rr,{className:"text-[13px] leading-relaxed text-muted-foreground",children:K("acceptanceCriteria.gateBlocked",{count:X.filter(a=>a.required&&"passed"!==a.status).length})})]}),(0,e.jsxs)("div",{className:"px-6 pb-4 space-y-3",children:[(0,e.jsx)("p",{className:"text-[11px] font-semibold text-[#9A9A9A] uppercase tracking-wide",children:K("acceptanceCriteria.title")}),X.map(a=>(0,e.jsxs)("div",{className:`rounded-lg border p-3 space-y-2 ${"failed"===a.status?"border-red-200 dark:border-[#5a2a2e] bg-card":"border-border bg-card"}`,children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("div",{className:`h-2 w-2 rounded-full shrink-0 ${"failed"===a.status?"bg-[#C4574C]":"bg-[#F59E0B]"}`}),(0,e.jsx)("span",{className:"text-xs font-semibold text-foreground",children:a.description})]}),(0,e.jsxs)("div",{className:"flex items-center gap-2 pl-4",children:[(0,e.jsx)(t.E,{className:`text-[10px] border-0 ${"failed"===a.status?"bg-red-50 text-[#C4574C] dark:bg-[#331619] dark:text-[#F0897E]":"bg-amber-50 text-[#D97706] dark:bg-[#332a12] dark:text-[#E0B44E]"}`,children:K(`acceptanceCriteria.status.${a.status}`)}),(0,e.jsx)(t.E,{className:"text-[10px] border-0 bg-background text-muted-foreground",children:a.required?K("acceptanceCriteria.required"):K("acceptanceCriteria.optional")}),!a.evidence&&(0,e.jsx)("span",{className:"text-[10px] italic text-muted-foreground",children:K("acceptanceCriteria.noEvidence")})]}),a.evidence&&(0,e.jsxs)("div",{className:"rounded-md bg-red-50 dark:bg-[#331619] p-2 ml-4",children:[(0,e.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground",children:K("acceptanceCriteria.verifyEvidence")}),(0,e.jsx)("p",{className:"text-[11px] text-foreground mt-0.5",children:a.evidence})]})]},a.uuid))]}),(0,e.jsx)(v.Es,{className:"border-t border-[#E5E2DC] dark:border-[#2a2a2e] px-6 py-4",children:(0,e.jsx)(u.$,{className:"rounded-lg bg-[#C4574C] hover:bg-[#A3433A] text-white",onClick:()=>W(!1),children:K("acceptanceCriteria.dismiss")})})]})})]})}d()}catch(a){d(a)}})},5955:(a,b,c)=>{"use strict";c.d(b,{i:()=>q});var d=c(10837),e=c(21968),f=c(47797);c(63410);var g=c(9222),h=c(1007),i=c(86460),j=c(10694),k=c(42424),l=c(74798),m=c(60265),n=c(42377);let o=(0,n.createServerReference)("40b3fb980254c7af301f2d0645e11aaa878268b615",n.callServer,void 0,n.findSourceMapURL,"getProjectDependenciesAction");var p=c(22770);function q({projectUuid:a,onTaskSelect:b,refreshKey:c}){let n=(0,g.c)(),q=(0,l.W)(),r=(0,h.useSearchParams)(),[s,t,u]=(0,f.ck)([]),[v,w,x]=(0,f.fM)([]),[y,z]=(0,e.useState)(!0),[A,B]=(0,e.useState)(null),C=(0,e.useMemo)(()=>{let a=r.get("proposalUuids");if(!a)return null;let b=a.split(",").filter(Boolean);return b.length>0?new Set(b):null},[r]),D=(0,e.useCallback)(async()=>{z(!0);let b=await o(a),c=b.nodes,d=b.edges;if(C){let a=new Set((c=b.nodes.filter(a=>null!==a.proposalUuid&&C.has(a.proposalUuid))).map(a=>a.uuid));d=b.edges.filter(b=>a.has(b.from)&&a.has(b.to))}let e=c.map(a=>({id:a.uuid,type:"taskNode",position:{x:0,y:0},data:{title:a.title,status:a.status,priority:a.priority,proposalUuid:a.proposalUuid}})),f=d.map((a,b)=>({id:`e-${b}`,source:a.to,target:a.from,...m.qK})),{nodes:g,edges:h}=(0,m.nF)(e,f);t(g),w(h),z(!1)},[a,C,t,w]),E=(0,e.useCallback)(async a=>{if(!a.source||!a.target)return;B(null);let b=a.target,c=a.source,d=await (0,p.w)(b,c);if(!d.success)return void B(d.error||n("tasks.failedToAddDep"));await D()},[D]),F=(0,e.useCallback)((a,c)=>{b(c.id)},[b]);return y?(0,d.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,d.jsx)(i.A,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):0===s.length?(0,d.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:n("tasks.noTasksToDisplay")}):(0,d.jsxs)("div",{className:"flex-1 rounded-xl border border-border bg-[#FAFAF8] dark:bg-[#1e1e1c] relative",children:[A&&(0,d.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-10 rounded-lg bg-red-50 dark:bg-[#331619] border border-red-200 dark:border-[#5a2a2e] px-4 py-2 text-xs text-red-700 dark:text-[#F08078] shadow-sm",children:[A,(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"ml-2 h-5 w-5 font-medium hover:text-red-900 dark:hover:text-[#F0A0A0]",onClick:()=>B(null),children:(0,d.jsx)(j.A,{className:"h-3 w-3"})})]}),(0,d.jsxs)(f.Gc,{colorMode:q?"dark":"light",nodes:s,edges:v,onNodesChange:u,onEdgesChange:x,onConnect:E,onNodeClick:F,nodeTypes:m.c_,fitView:!0,fitViewOptions:{padding:.2},minZoom:.3,maxZoom:1.5,proOptions:{hideAttribution:!0},zoomOnScroll:!0,zoomOnPinch:!0,panOnDrag:!0,children:[(0,d.jsx)(f.VS,{color:q?"#40392f":"#E5E0D8",gap:20}),(0,d.jsx)(f.H2,{className:"[&>button]:border-border [&>button]:bg-card [&>button]:text-foreground [&>button:hover]:bg-background"})]})]})}},7046:(a,b,c)=>{"use strict";c.d(b,{O4:()=>g,kX:()=>e,od:()=>f,sO:()=>j,z3:()=>i});var d=c(70936);function e(a,b){return d.NextResponse.json({success:!0,data:a,meta:b})}function f(a,b,c,e){return d.NextResponse.json({success:!0,data:a,meta:{page:b,pageSize:c,total:e}})}let g={BAD_REQUEST:"BAD_REQUEST",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",NOT_FOUND:"NOT_FOUND",CONFLICT:"CONFLICT",VALIDATION_ERROR:"VALIDATION_ERROR",ALREADY_CLAIMED:"ALREADY_CLAIMED",NOT_CLAIMED:"NOT_CLAIMED",INVALID_STATUS_TRANSITION:"INVALID_STATUS_TRANSITION",PERMISSION_DENIED:"PERMISSION_DENIED",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR"},h={[g.BAD_REQUEST]:400,[g.UNAUTHORIZED]:401,[g.FORBIDDEN]:403,[g.NOT_FOUND]:404,[g.CONFLICT]:409,[g.VALIDATION_ERROR]:422,[g.ALREADY_CLAIMED]:409,[g.NOT_CLAIMED]:400,[g.INVALID_STATUS_TRANSITION]:400,[g.PERMISSION_DENIED]:403,[g.INTERNAL_ERROR]:500,[g.DATABASE_ERROR]:500};function i(a,b,c){let e=h[a]||500;return d.NextResponse.json({success:!1,error:{code:a,message:b,details:c}},{status:e})}let j={badRequest:(a,b)=>i(g.BAD_REQUEST,a,b),unauthorized:(a="Authentication required")=>i(g.UNAUTHORIZED,a),forbidden:(a="Access denied")=>i(g.FORBIDDEN,a),notFound:(a="Resource")=>i(g.NOT_FOUND,`${a} not found`),conflict:a=>i(g.CONFLICT,a),validationError:a=>i(g.VALIDATION_ERROR,"Validation failed",a),alreadyClaimed:()=>i(g.ALREADY_CLAIMED,"Resource is already claimed"),notClaimed:()=>i(g.NOT_CLAIMED,"Resource is not claimed"),invalidStatusTransition:(a,b)=>i(g.INVALID_STATUS_TRANSITION,`Invalid status transition from ${a} to ${b}`),permissionDenied:a=>i(g.PERMISSION_DENIED,`Permission denied: ${a}`),internal:(a="Internal server error")=>i(g.INTERNAL_ERROR,a),database:(a="Database error")=>i(g.DATABASE_ERROR,a)}},19520:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Hd:()=>n,nk:()=>p,pw:()=>o,yq:()=>m});var e=c(2613);c(50785);var f=c(5562),g=c(9259),h=c(50530),i=c(67738),j=c(97307),k=c(12217),l=a([g,h,i]);[g,h,i]=l.then?(await l)():l;let q={todo:"open",in_progress:"in_progress",to_verify:"to_verify",done:"done"};async function m(a,b,c){let d=await (0,g.d)();if(!d)return{success:!1,error:"Unauthorized"};try{let e=await (0,h.K4)(d.companyUuid,a);if(!e)return{success:!1,error:"Task not found"};let g=q[b];if(!g)return{success:!1,error:"Invalid column"};if("in_progress"===g){let b=await (0,h.IM)(a);if(!b.resolved)return{success:!1,error:"Dependencies not resolved",blocked:!0,blockers:b.blockers}}if("done"===g&&"to_verify"!==e.status)await (0,h.lC)(a,{status:"to_verify"});else if("done"===g&&"to_verify"===e.status){let b=await (0,h.Ew)(a);if(!b.allowed)return{success:!1,error:b.reason||"Not all required acceptance criteria are passed",gateBlocked:!0,unresolvedCriteria:b.unresolvedCriteria||[]};await (0,h.lC)(a,{status:"done"})}else await (0,h.lC)(a,{status:g});return(0,f.revalidatePath)(`/projects/${c}/tasks`),{success:!0}}catch(a){return j.default.error({err:a},"Failed to move task"),{success:!1,error:"Failed to move task"}}}async function n(a,b){let c=await (0,g.d)();if(!c)return{success:!1,error:"Unauthorized"};try{let d=await (0,h.K4)(c.companyUuid,a);if(!d)return{success:!1,error:"Task not found"};return await (0,h.lC)(a,{status:b}),await (0,i.createActivity)({companyUuid:c.companyUuid,projectUuid:d.projectUuid,targetType:"task",targetUuid:d.uuid,actorType:c.type,actorUuid:c.actorUuid,action:"force_status_change",value:JSON.stringify({from:d.status,to:b})}),{success:!0}}catch(a){return j.default.error({err:a},"Failed to force move task"),{success:!1,error:"Failed to force move task"}}}async function o(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let{tasks:c}=await (0,h.Vk)({companyUuid:b.companyUuid,projectUuid:a,skip:0,take:1e3});return{success:!0,data:c}}catch(a){return j.default.error({err:a},"Failed to fetch tasks"),{success:!1,error:"Failed to fetch tasks"}}}async function p(a){let b=await (0,g.d)();if(!b)return{nodes:[],edges:[]};try{return await (0,h.Cm)(b.companyUuid,a)}catch(a){return j.default.error({err:a},"Failed to get project dependencies"),{nodes:[],edges:[]}}}(0,k.D)([m,n,o,p]),(0,e.A)(m,"705c29d0364df27ebabccedb54ab1b3185605837e3",null),(0,e.A)(n,"6059b9d7273381cb19f3e16ef6223e206f8cfe2255",null),(0,e.A)(o,"40a74b0658f0125752b8ff122c57f0f4734f158d72",null),(0,e.A)(p,"40b3fb980254c7af301f2d0645e11aaa878268b615",null),d()}catch(a){d(a)}})},24879:(a,b,c)=>{"use strict";c.d(b,{o:()=>k});var d=c(10837),e=c(21968),f=c(46005);let g=(0,e.createContext)(null);var h=c(46801),i=c(72443);let j=a=>!a.isLayoutDirty&&a.willUpdate(!1),k=({children:a,id:b,inherit:c=!0})=>{let k=(0,e.useContext)(f.L),l=(0,e.useContext)(g),[m,n]=function(){let a=function(){let a=(0,e.useRef)(!1);return(0,i.E)(()=>(a.current=!0,()=>{a.current=!1}),[]),a}(),[b,c]=(0,e.useState)(0),d=(0,e.useCallback)(()=>{a.current&&c(b+1)},[b]);return[(0,e.useCallback)(()=>h.Gt.postRender(d),[d]),b]}(),o=(0,e.useRef)(null),p=k.id||l;null===o.current&&((a=>!0==(!0===a)||"id"===a)(c)&&p&&(b=b?p+"-"+b:p),o.current={id:b,group:!0===c&&k.group||function(){let a=new Set,b=new WeakMap,c=()=>a.forEach(j);return{add:d=>{a.add(d),b.set(d,d.addEventListener("willUpdate",c))},remove:d=>{a.delete(d);let e=b.get(d);e&&(e(),b.delete(d)),c()},dirty:c}}()});let q=(0,e.useMemo)(()=>({...o.current,forceRender:m}),[n]);return(0,d.jsx)(f.L.Provider,{value:q,children:a})}},29334:(a,b,c)=>{"use strict";c.d(b,{TaskViewToggle:()=>d});let d=(0,c(37143).registerClientReference)(function(){throw Error("Attempted to call TaskViewToggle() from the server but TaskViewToggle is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Chorus/Chorus/src/app/(dashboard)/projects/[uuid]/tasks/task-view-toggle.tsx","TaskViewToggle")},37066:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(55211),e=c(50117);let f=["en","zh","ko","ja"],g=(0,d.A)(async()=>{let a=await (0,e.UL)(),b=a.get("chorus-locale")?.value,d=b&&f.includes(b)?b:"en";return{locale:d,messages:(await c(76565)(`./${d}.json`)).default}})},39268:(a,b,c)=>{"use strict";c.d(b,{T:()=>r});var d=c(10837),e=c(21968),f=c(1007),g=c(68884),h=c(9222),i=c(65956),j=c(56149),k=c(9810),l=c(10694),m=c(96307),n=c(42424),o=c(49599),p=c(74113),q=c(10297);function r({projectUuid:a}){let b=(0,h.c)("tasks"),c=(0,g.r)(),r=(0,f.usePathname)(),s=(0,f.useSearchParams)(),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)([]),[x,y]=(0,e.useState)(new Set),z=(0,e.useCallback)(a=>{let b=new URLSearchParams(s.toString());a.size>0?b.set("proposalUuids",Array.from(a).join(",")):b.delete("proposalUuids");let d=b.toString();c.replace(`${r}${d?`?${d}`:""}`,{scroll:!1})},[c,r,s]),A=(0,e.useCallback)(a=>{y(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),z(c),c})},[z]),B=(0,e.useCallback)(()=>{y(new Set),z(new Set)},[z]),C=x.size>0;return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-muted-foreground shrink-0",children:[(0,d.jsx)(i.A,{className:"size-4"}),(0,d.jsxs)("span",{children:[b("proposalFilter.label"),":"]})]}),(0,d.jsxs)(p.AM,{open:t,onOpenChange:u,children:[(0,d.jsx)(p.Wv,{asChild:!0,children:(0,d.jsxs)(n.$,{variant:"outline",size:"sm",role:"combobox","aria-expanded":t,className:(0,m.cn)("justify-between gap-1 min-w-[120px] max-w-[200px] md:min-w-[160px] md:max-w-none",C&&"border-primary bg-[#FFF8F4] dark:bg-[#2a2016]"),children:[(0,d.jsx)("span",{className:"truncate",children:C?b("proposalFilter.filtered",{filtered:x.size,total:v.length}):b("proposalFilter.allProposals")}),(0,d.jsx)(j.A,{className:"size-4 shrink-0 opacity-50"})]})}),(0,d.jsx)(p.hl,{className:"w-[300px] p-0",align:"start",children:(0,d.jsxs)(q.uB,{children:[(0,d.jsx)(q.G7,{placeholder:b("proposalFilter.search")}),(0,d.jsxs)(q.oI,{children:[(0,d.jsx)(q.xL,{children:b("proposalFilter.noResults")}),(0,d.jsx)(q.L$,{children:v.map(a=>{let c=x.has(a.uuid);return(0,d.jsxs)(q.h_,{value:a.title,onSelect:()=>A(a.uuid),className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,d.jsx)("div",{className:(0,m.cn)("flex size-4 shrink-0 items-center justify-center rounded-sm border",c?"border-primary bg-primary text-white":"border-muted-foreground/30"),children:c&&(0,d.jsx)(k.A,{className:"size-3"})}),(0,d.jsx)("span",{className:"truncate",children:a.title})]}),(0,d.jsx)(o.E,{variant:"secondary",className:"ml-2 shrink-0",children:b("proposalFilter.taskCount",{count:a.taskCount})})]},a.uuid)})})]})]})})]}),C&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"flex flex-wrap gap-1 max-w-full",children:v.filter(a=>x.has(a.uuid)).map(a=>(0,d.jsxs)(o.E,{variant:"outline",className:"gap-1 border-primary bg-[#FFF8F4] dark:bg-[#2a2016] text-primary",children:[a.title,(0,d.jsx)("button",{type:"button",className:"ml-0.5 rounded-full hover:bg-primary/20",onClick:()=>A(a.uuid),children:(0,d.jsx)(l.A,{className:"size-3"})})]},a.uuid))}),(0,d.jsx)(n.$,{variant:"ghost",size:"xs",onClick:B,className:"text-muted-foreground",children:b("proposalFilter.clear")})]})]})}},54417:(a,b,c)=>{Promise.resolve().then(c.bind(c,90436))},63748:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>n});var e=c(10023),f=c(66530),g=c(26555),h=c(82858),i=c(29662),j=c(71165),k=c(61413),l=c(29334),m=a([i,j,k]);async function n({projectUuid:a,initialSelectedTaskUuid:b}){let c=await (0,i.d)();c||(0,f.redirect)("/login");let d=await (0,g.A)();await (0,k.Yi)(c.companyUuid,a)||(0,f.redirect)("/projects");let{tasks:m}=await (0,j.Vk)({companyUuid:c.companyUuid,projectUuid:a,skip:0,take:1e3}),n=m.reduce((a,b)=>a+(b.storyPoints||0),0);return(0,e.jsxs)("div",{className:"flex h-full flex-col p-4 md:p-8",children:[(0,e.jsx)("div",{className:"mb-6 flex items-center justify-between",children:(0,e.jsxs)("div",{children:[(0,e.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:d("tasks.title")}),(0,e.jsxs)("div",{className:"mt-1 flex items-center gap-4",children:[(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:d("tasks.subtitle")}),n>0&&(0,e.jsxs)("div",{className:"flex items-center gap-1.5 rounded-full bg-secondary px-3 py-1",children:[(0,e.jsx)(h.A,{className:"h-3.5 w-3.5 text-primary"}),(0,e.jsxs)("span",{className:"text-xs font-medium text-muted-foreground",children:[(0,e.jsx)("span",{className:"text-foreground",children:n.toFixed(1)})," ",d("tasks.agentHours")]})]})]})]})}),(0,e.jsx)(l.TaskViewToggle,{projectUuid:a,initialTasks:m,currentUserUuid:c.actorUuid,initialSelectedTaskUuid:b})]})}[i,j,k]=m.then?(await m)():m,d()}catch(a){d(a)}})},64145:(a,b,c)=>{Promise.resolve().then(c.bind(c,29334))},76565:(a,b,c)=>{var d={"./en.json":[87368,7368],"./ja.json":[49378,9378],"./ko.json":[35245,5245],"./zh.json":[72961,2961]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=76565,a.exports=e},78022:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"00fbf6673eeeca8f650b14b409e5610458bfb72bbd":()=>g.vq,"4003b7497af2dada4c05212ce7fa7830dffb24f156":()=>k.f,"400e870548ff1ee66cf7aa52fa3a70897b73bd5f55":()=>j.bv,"403f3fa65630bc35e92003bd9f8fda22213c75ae64":()=>n.h,"405ea7b688a4adfe3d9660363ced48d74411bbad2a":()=>e.v5,"40756c0ddcbd7106ac6d25fecf7393ef52601f968d":()=>m.xo,"407d9dcb34d5131f644c68c1ce15500d8d0c987dac":()=>l.F,"408eff96a558c3c6c35bfc1e77030ea3f62c5f1492":()=>m.kq,"40a6c814e094e962fcbd4f36c28f0f7fbf1ff46325":()=>g.Yw,"40a74b0658f0125752b8ff122c57f0f4734f158d72":()=>f.pw,"40b0b91c98ecc3174c77d5a0d2f0c0bf3b5b026e10":()=>n.J,"40b3fb980254c7af301f2d0645e11aaa878268b615":()=>f.nk,"40b65f90a978342d9d156f2c0aeb74c2af140323e8":()=>j.Y9,"40c67fe4747e84d75bee43043692f0a512bfcb5eb1":()=>j.t1,"40d154aceb8b55df095d3b5acfec655f54262172a3":()=>g.hR,"40d5948531a474fedcf383f154ee4ed27550ea5283":()=>e.Dv,"40dfd22558e490b7606b566189c9b526d7ed5ec4db":()=>g.A0,"40ecf9df6a6d581381b2708d4de0469047a159dfa2":()=>g.p2,"40f96f0ca5cabaed2a97062b76b87b82fbd7be0f6d":()=>g.iY,"6008bfe7feb1c081a48476af1dab1bb9a3de043fc2":()=>h.IY,"601ea16479734a568c0c48163ee19c73f918ec4071":()=>g.y9,"603218233df7547ca2092fe6ecf59efc3fdc83eeea":()=>g.G3,"603671ef0fb551f0b02dcb9ba5afd7527a52bb19d6":()=>m.wG,"60412a61f8698446452b7522439fff7e8561b439e6":()=>j.jD,"605275b4f942297cee4e2289e5dfd5093e21879f38":()=>g.TV,"6059b9d7273381cb19f3e16ef6223e206f8cfe2255":()=>f.Hd,"6097bf1107d172d5fff394bc688a4287c15b969c15":()=>h.Nq,"60b8fcd133651c5420fc8ba49204d6fd8246675115":()=>m.TK,"60d2eb4679bc241407076a5dfc0ff7a6bb65c30c47":()=>e.Tg,"60ed117af1e5567b5d5aa997d4e8dd68693a6d59df":()=>g.bd,"60f8691f49fbf5b5eae9134fee60757571fd24c4eb":()=>h.hD,"702d6c1fad3b57a0fcab4591819fff770ae5041e43":()=>i.d,"705c29d0364df27ebabccedb54ab1b3185605837e3":()=>f.yq,"708a2d79d6d197b0348e8f0425bd0708735c85b397":()=>g.qb,"70ac3451b3e4920f6eb3f3a8ace1334f515aea23bd":()=>g.M0,"70e5752a00466086490c1ade5064322267331066f4":()=>i.s});var e=c(22299),f=c(19520),g=c(73393),h=c(71353),i=c(98581),j=c(52178),k=c(64029),l=c(72189),m=c(22293),n=c(81751),o=a([e,f,g,h,i,j,k,l,m,n]);[e,f,g,h,i,j,k,l,m,n]=o.then?(await o)():o,d()}catch(a){d(a)}})},82097:(a,b,c)=>{"use strict";c.d(b,{H:()=>e});var d=c(42377);let e=(0,d.createServerReference)("6059b9d7273381cb19f3e16ef6223e206f8cfe2255",d.callServer,void 0,d.findSourceMapURL,"forceMoveTaskToColumnAction")},82858:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(91533).A)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]])},90436:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{TaskViewToggle:()=>z});var e=c(10837),f=c(21968),g=c(1007),h=c(9222),i=c(32552),j=c(45519),k=c(33407),l=c(92900),m=c(42424),n=c(49599),o=c(35198),p=c(96013),q=c(98625),r=c(39268),s=c(5514),t=c(5955),u=c(86104),v=c(6871),w=c(7086),x=c(31009),y=a([s,u]);[s,u]=y.then?(await y)():y;let A={open:"bg-[#FFF3E0] dark:bg-[#3a2a12] text-[#E65100] dark:text-[#F0A050]",assigned:"bg-[#E3F2FD] dark:bg-[#13253a] text-[#1976D2] dark:text-[#5AA9F0]",in_progress:"bg-[#E8F5E9] dark:bg-[#14281a] text-[#5A9E6F] dark:text-[#6FD19A]",to_verify:"bg-[#F3E5F5] dark:bg-[#281630] text-[#7B1FA2] dark:text-[#C98FE0]",done:"bg-[#E0F2F1] dark:bg-[#12292a] text-[#00796B] dark:text-[#4FD1C0]",closed:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-[#9A9A9A]"},B={open:"open",assigned:"assigned",in_progress:"inProgress",to_verify:"toVerify",done:"done",closed:"closed"},C=[{id:"all",labelKey:"allStatuses",statuses:[]},{id:"todo",labelKey:"todo",statuses:["open","assigned"]},{id:"in_progress",labelKey:"inProgress",statuses:["in_progress"]},{id:"to_verify",labelKey:"toVerify",statuses:["to_verify"]},{id:"done",labelKey:"done",statuses:["done","closed"]}],D={high:"bg-red-100 text-red-700",medium:"bg-yellow-100 text-yellow-700",low:"bg-blue-100 text-blue-700"};function z({projectUuid:a,initialTasks:b,currentUserUuid:c,initialSelectedTaskUuid:d}){let y=(0,h.c)(),z=(0,p.a)(),E=(0,g.useSearchParams)(),[F,G]=(0,f.useState)("kanban"),H=`/projects/${a}/tasks`,{selectedId:I,openPanel:J,closePanel:K}=(0,q.T)(H,d),L=(0,f.useMemo)(()=>{let a=E.get("proposalUuids");if(!a)return null;let b=a.split(",").filter(Boolean);return b.length>0?new Set(b):null},[E]),[M,N]=(0,f.useState)(!1),[O,P]=(0,f.useState)(0),[Q,R]=(0,f.useState)("all"),S=(0,f.useMemo)(()=>I?b.find(a=>a.uuid===I)??null:null,[I,b]),T=(0,f.useCallback)(()=>{P(a=>a+1)},[]),U=(0,f.useMemo)(()=>L?b.filter(a=>a.proposalUuid&&L.has(a.proposalUuid)):b,[b,L]),V=(0,f.useMemo)(()=>{let a=C.find(a=>a.id===Q);return a&&0!==a.statuses.length?U.filter(b=>a.statuses.includes(b.status)):U},[U,Q]);return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"mb-4 overflow-x-auto",children:(0,e.jsx)(r.T,{projectUuid:a})}),(0,e.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-secondary p-1 w-fit",children:[z&&(0,e.jsxs)(m.$,{variant:"ghost",size:"sm",className:`h-8 gap-1.5 rounded-md px-3 text-xs ${"list"===F?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,onClick:()=>G("list"),children:[(0,e.jsx)(i.A,{className:"h-3.5 w-3.5"}),y("tasks.listView")]}),!z&&(0,e.jsxs)(m.$,{variant:"ghost",size:"sm",className:`h-8 gap-1.5 rounded-md px-3 text-xs ${"kanban"===F?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,onClick:()=>G("kanban"),children:[(0,e.jsx)(j.A,{className:"h-3.5 w-3.5"}),y("tasks.kanbanView")]}),(0,e.jsxs)(m.$,{variant:"ghost",size:"sm",className:`h-8 gap-1.5 rounded-md px-3 text-xs ${"dag"===F?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,onClick:()=>G("dag"),children:[(0,e.jsx)(k.A,{className:"h-3.5 w-3.5"}),y("tasks.dagView")]})]}),(0,e.jsxs)(m.$,{className:"bg-primary hover:bg-[#B56A42] text-white",onClick:()=>{K(),N(!0)},children:[(0,e.jsx)(l.A,{className:"mr-2 h-4 w-4"}),y("tasks.newTask")]})]}),"list"===F?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"mb-4 flex gap-1 overflow-x-auto border-b border-border pb-2",children:C.map(a=>{let b=0===a.statuses.length?U.length:U.filter(b=>a.statuses.includes(b.status)).length;return(0,e.jsxs)(m.$,{variant:"ghost",size:"sm",className:`h-8 shrink-0 rounded-md px-3 text-xs ${Q===a.id?"bg-secondary text-foreground font-medium":"text-muted-foreground hover:text-foreground"}`,onClick:()=>R(a.id),children:["all"===a.id?y(`tasks.${a.labelKey}`):y(`status.${a.labelKey}`),(0,e.jsx)("span",{className:"ml-1.5 rounded-full bg-card px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:b})]},a.id)})}),(0,e.jsx)("div",{className:"flex-1 space-y-2 overflow-y-auto",children:0===V.length?(0,e.jsx)(x.P.div,{initial:{opacity:0,scale:.98},animate:{opacity:1,scale:1},transition:{duration:.2,ease:[0,0,.2,1]},className:"flex h-24 items-center justify-center rounded-lg border-2 border-dashed border-border text-sm text-[#9A9A9A]",children:y("tasks.noTasks")}):V.map(a=>(0,e.jsxs)(o.Zp,{className:"cursor-pointer border-border bg-card p-4 transition-all hover:border-primary hover:shadow-sm",onClick:()=>J(a.uuid),children:[(0,e.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,e.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,e.jsx)("h4",{className:"font-medium text-foreground truncate",children:a.title}),a.description&&(0,e.jsx)("p",{className:"mt-1 line-clamp-1 text-sm text-muted-foreground",children:a.description})]}),(0,e.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[null!=a.storyPoints&&a.storyPoints>0&&(0,e.jsxs)("span",{className:"rounded bg-[#FFF3E0] dark:bg-[#3a2a12] px-2 py-0.5 text-xs font-medium text-[#E65100] dark:text-[#F0A050]",children:[a.storyPoints,"h"]}),(0,e.jsx)(n.E,{className:D[a.priority]||"",children:y(`priority.${a.priority}`)}),(0,e.jsx)(n.E,{className:A[a.status]||"",children:y(`status.${B[a.status]||a.status}`)})]})]}),a.assignee&&(0,e.jsxs)("div",{className:"mt-2 flex items-center gap-1.5 text-xs text-[#9A9A9A]",children:[(0,w.bB)(a.assignee)&&(0,e.jsx)(v.AgentAvatar,{name:a.assignee.name,size:16,className:"shrink-0 rounded-full"}),(0,e.jsx)("span",{className:"truncate",children:a.assignee.name})]})]},a.uuid))}),S&&(0,e.jsx)(u.v,{task:S,projectUuid:a,currentUserUuid:c,onClose:K,onDependencyChange:T})]}):"kanban"===F?(0,e.jsx)(s.y,{projectUuid:a,initialTasks:U,currentUserUuid:c,selectedTaskUuid:I,onTaskSelect:J,onPanelClose:K,proposalUuidFilter:L}):(0,e.jsxs)("div",{className:"flex flex-1 flex-col",children:[(0,e.jsx)(t.i,{projectUuid:a,onTaskSelect:a=>J(a),refreshKey:O}),S&&(0,e.jsx)(u.v,{task:S,projectUuid:a,currentUserUuid:c,onClose:K,onDependencyChange:T})]}),M&&!S&&(0,e.jsx)(u.v,{task:null,projectUuid:a,currentUserUuid:c,onClose:()=>N(!1),onCreated:()=>N(!1)})]})}d()}catch(a){d(a)}})},91533:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(73426);let e=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),f=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var g={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,d.forwardRef)(({color:a="currentColor",size:b=24,strokeWidth:c=2,absoluteStrokeWidth:f,className:h="",children:i,iconNode:j,...k},l)=>(0,d.createElement)("svg",{ref:l,...g,width:b,height:b,stroke:a,strokeWidth:f?24*Number(c)/Number(b):c,className:e("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,b])=>(0,d.createElement)(a,b)),...Array.isArray(i)?i:[i]])),i=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...g},i)=>(0,d.createElement)(h,{ref:i,iconNode:b,className:e(`lucide-${f(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=f(a),c}},92323:(a,b,c)=>{"use strict";c.d(b,{y:()=>e});var d=c(42377);let e=(0,d.createServerReference)("705c29d0364df27ebabccedb54ab1b3185605837e3",d.callServer,void 0,d.findSourceMapURL,"moveTaskToColumnAction")},95964:(a,b,c)=>{"use strict";c.d(b,{p:()=>e});var d=c(42377);let e=(0,d.createServerReference)("40a74b0658f0125752b8ff122c57f0f4734f158d72",d.callServer,void 0,d.findSourceMapURL,"fetchTasksAction")},96013:(a,b,c)=>{"use strict";c.d(b,{a:()=>e});var d=c(21968);function e(){let[a,b]=(0,d.useState)(!1);return a}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=5162,exports.ids=[5162],exports.modules={2852:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(10837);c(21968);var e=c(13277),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}},7086:(a,b,c)=>{function d(a,b){return!!a&&!!b&&("user"===a.type?"user"===b.type&&a.uuid===b.uuid:"agent"===a.type?"agent"===b.type&&a.uuid===b.uuid:"agent_instance"===a.type&&"agent"===b.type&&!!a.agentUuid&&a.agentUuid===b.uuid)}function e(a){return!!a&&("agent"===a.type||"agent_instance"===a.type)}c.d(b,{RU:()=>d,bB:()=>e})},10297:(a,b,c)=>{c.d(b,{G7:()=>i,L$:()=>l,h_:()=>m,oI:()=>j,uB:()=>h,xL:()=>k});var d=c(10837);c(21968);var e=c(28918),f=c(75888),g=c(96307);function h({className:a,...b}){return(0,d.jsx)(e.uB,{"data-slot":"command",className:(0,g.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...b})}function i({className:a,...b}){return(0,d.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,d.jsx)(f.A,{className:"size-4 shrink-0 opacity-50"}),(0,d.jsx)(e.uB.Input,{"data-slot":"command-input",className:(0,g.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...b})]})}function j({className:a,...b}){return(0,d.jsx)(e.uB.List,{"data-slot":"command-list",className:(0,g.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",a),...b})}function k({...a}){return(0,d.jsx)(e.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...a})}function l({className:a,...b}){return(0,d.jsx)(e.uB.Group,{"data-slot":"command-group",className:(0,g.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...b})}function m({className:a,...b}){return(0,d.jsx)(e.uB.Item,{"data-slot":"command-item",className:(0,g.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...b})}},26078:(a,b,c)=>{c.d(b,{RU:()=>h,s8:()=>g});let d={developer_agent:["idea:read","proposal:read","document:read","project:read","task:read","task:write"],pm_agent:["idea:read","idea:write","proposal:read","proposal:write","document:read","document:write","task:read","task:write","project:read","project:write"],admin_agent:["idea:read","idea:write","idea:admin","proposal:read","proposal:write","proposal:admin","document:read","document:write","document:admin","task:read","task:write","task:admin","project:read","project:write","project:admin"]},e=["read","write","admin"],f=new Set(["idea","proposal","document","task","project"].flatMap(a=>e.map(b=>`${a}:${b}`)));function g(a){return f.has(a)}function h(a,b){let c=new Set;if(a)for(let b of a){let a=d[b.endsWith("_agent")?b:`${b}_agent`];if(a)for(let b of a)c.add(b)}if(b)for(let a of b)g(a)&&c.add(a);return c}},28774:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A8:()=>q,CG:()=>o,Iq:()=>n,RB:()=>l,Sn:()=>i,d5:()=>m,ic:()=>p,tN:()=>k,x4:()=>j});var e=c(71255),f=c(77219),g=c(26078),h=a([e,f]);async function i({companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,permissions:h}){return e.z.agent.create({data:{companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,...void 0!==h&&{permissions:h}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,createdAt:!0}})}async function j(a,b,c){if(c&&!await e.z.agent.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0}}))throw Error("Agent not found");return e.z.agent.update({where:{uuid:a},data:b,select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,lastActiveAt:!0,createdAt:!0}})}async function k(a,b){return e.z.apiKey.updateMany({where:{agentUuid:a,revokedAt:null},data:{name:b}})}async function l(a){return e.z.agent.delete({where:{uuid:a}})}async function m(a,b,c,d){let f={companyUuid:a,revokedAt:null,...d&&{agent:{ownerUuid:d}}},[g,h]=await Promise.all([e.z.apiKey.findMany({where:f,skip:b,take:c,orderBy:{createdAt:"desc"},include:{agent:{select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0}}}}),e.z.apiKey.count({where:f})]);return{apiKeys:g,total:h}}async function n({companyUuid:a,agentUuid:b,name:c,expiresAt:d}){let{key:g,hash:h,prefix:i}=(0,f.XH)();return{...await e.z.apiKey.create({data:{companyUuid:a,agentUuid:b,keyHash:h,keyPrefix:i,name:c,expiresAt:d},select:{uuid:!0,keyPrefix:!0,name:!0,expiresAt:!0,createdAt:!0}}),key:g}}async function o(a,b,c){return e.z.apiKey.findFirst({where:{uuid:b,companyUuid:a,...c&&{agent:{ownerUuid:c}}},select:{uuid:!0,agentUuid:!0,revokedAt:!0}})}async function p(a,b,c){return(await e.z.agent.findMany({where:{companyUuid:a,...c&&{ownerUuid:c}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,ownerUuid:!0},orderBy:{name:"asc"}})).filter(a=>(0,g.RU)(a.roles,a.permissions).has(b)).map(({uuid:a,name:b,roles:c,ownerUuid:d})=>({uuid:a,name:b,roles:c,ownerUuid:d}))}async function q(a){return e.z.user.findMany({where:{companyUuid:a},select:{uuid:!0,name:!0,email:!0},orderBy:{name:"asc"}})}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},30387:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Sy:()=>u,Xo:()=>o,Xp:()=>q,bA:()=>r,kA:()=>p});var e=c(71255),f=c(92633),g=c(62729),h=c(67738),i=c(97307),j=a([e,f,h]);[e,f,h]=j.then?(await j)():j;let s=i.default.child({module:"reference-artifact.service"}),t=["docs","repo","issue_pr","paper_blog"],u=["proposal","task","idea"],v={uuid:!0,targetType:!0,targetUuid:!0,type:!0,url:!0,title:!0,notes:!0,createdByType:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0};async function k(a){let b=await (0,f.LS)(a.createdByUuid,"user"===a.createdByType||"agent"===a.createdByType?a.createdByType:void 0);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,type:a.type,url:a.url,title:a.title,notes:a.notes??null,createdBy:b,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}function l(a){if(!t.includes(a))throw Error(`Invalid reference type: ${a}`)}function m(a){let b="string"==typeof a?a.trim():"";if(!b||!/^https?:\/\//i.test(b))throw Error(`Invalid reference url: ${a}`)}async function n(a,b,c){switch(b){case"proposal":{let b=await e.z.proposal.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target proposal with UUID ${c} not found`);return b.projectUuid}case"task":{let b=await e.z.task.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target task with UUID ${c} not found`);return b.projectUuid}case"idea":{let b=await e.z.idea.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target idea with UUID ${c} not found`);return b.projectUuid}default:throw Error(`Unsupported reference targetType: ${b}`)}}async function o({companyUuid:a,targetType:b,targetUuid:c}){let d=await e.z.referenceArtifact.findMany({where:{companyUuid:a,targetType:b,targetUuid:c},orderBy:{createdAt:"asc"},select:v});return Promise.all(d.map(a=>k(a)))}async function p(a){let{companyUuid:b,targetType:c,targetUuid:d,type:f,url:i,title:j,notes:o}=a;l(f),m(i);let p=await n(b,c,d),q=await e.z.referenceArtifact.create({data:{companyUuid:b,targetType:c,targetUuid:d,type:f,url:i,title:j,notes:o??null,createdByType:a.createdByType,createdByUuid:a.createdByUuid},select:v});try{g.B.emitChange({companyUuid:b,projectUuid:p,entityType:c,entityUuid:d,action:"updated",actorUuid:a.createdByUuid})}catch(a){s.warn({err:a,referenceUuid:q.uuid,targetType:c,targetUuid:d},"Failed to emit change event for reference artifact")}try{await h.createActivity({companyUuid:b,projectUuid:p,targetType:c,targetUuid:d,actorType:a.createdByType,actorUuid:a.createdByUuid,action:"reference_added",value:{referenceUuid:q.uuid,type:q.type,url:q.url,title:q.title}})}catch(a){s.warn({err:a,referenceUuid:q.uuid,targetType:c,targetUuid:d},"Failed to record reference_added Activity")}return k(q)}async function q(a,b,{type:c,url:d,title:f,notes:g}){if(void 0!==c&&l(c),void 0!==d&&m(d),!await e.z.referenceArtifact.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}}))throw Error(`Reference with UUID ${b} not found`);let h={};void 0!==c&&(h.type=c),void 0!==d&&(h.url=d),void 0!==f&&(h.title=f),void 0!==g&&(h.notes=g);let i=await e.z.referenceArtifact.update({where:{uuid:b},data:h,select:v});return k(i)}async function r(a,b){if(!await e.z.referenceArtifact.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}}))throw Error(`Reference with UUID ${b} not found`);await e.z.referenceArtifact.delete({where:{uuid:b}})}d()}catch(a){d(a)}})},37888:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(42377);let e=(0,d.createServerReference)("60412a61f8698446452b7522439fff7e8561b439e6",d.callServer,void 0,d.findSourceMapURL,"listReferencesAction")},46398:(a,b,c)=>{c.d(b,{N2:()=>j,mP:()=>h,qQ:()=>i});var d=c(84797),e=c(97731),f=c(40260),g=c(96101);let h=["docs","repo","issue_pr","paper_blog"],i={docs:{labelKey:"references.typeDocs",badgeClass:"bg-blue-50 text-blue-700 dark:bg-[#13253a] dark:text-[#5AA9F0]",icon:d.A},repo:{labelKey:"references.typeRepo",badgeClass:"bg-green-50 text-green-700 dark:bg-[#14281a] dark:text-[#6FD19A]",icon:e.A},issue_pr:{labelKey:"references.typeIssuePr",badgeClass:"bg-purple-50 text-purple-700 dark:bg-[#281630] dark:text-[#C98FE0]",icon:f.A},paper_blog:{labelKey:"references.typePaperBlog",badgeClass:"bg-amber-50 text-amber-700 dark:bg-[#332a12] dark:text-[#E0B44E]",icon:g.A}};function j(a){return h.includes(a)}},52178:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Y9:()=>l,bv:()=>n,jD:()=>k,t1:()=>m});var e=c(2613);c(50785);var f=c(9259),g=c(30387),h=c(97307),i=c(12217),j=a([f,g]);[f,g]=j.then?(await j)():j;let o=g.Sy;async function k(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"unauthorized"};if(!o.includes(a))return{success:!1,error:`Invalid target type: ${a}`};try{let d=await (0,g.Xo)({companyUuid:c.companyUuid,targetType:a,targetUuid:b});return{success:!0,references:d}}catch(c){return h.default.error({err:c,targetType:a,targetUuid:b},"Failed to list references"),{success:!1,error:"Failed to load references"}}}async function l(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};if(!o.includes(a.targetType))return{success:!1,error:`Invalid target type: ${a.targetType}`};try{let c=await (0,g.kA)({companyUuid:b.companyUuid,targetType:a.targetType,targetUuid:a.targetUuid,type:a.type,url:a.url,title:a.title,notes:a.notes??null,createdByType:"user",createdByUuid:b.actorUuid});return{success:!0,reference:c}}catch(b){h.default.error({err:b},"Failed to create reference");let a=b instanceof Error?b.message:"Failed to add reference";return{success:!1,error:a}}}async function m(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};try{let c=await (0,g.Xp)(b.companyUuid,a.uuid,{...void 0!==a.type?{type:a.type}:{},...void 0!==a.url?{url:a.url}:{},...void 0!==a.title?{title:a.title}:{},...void 0!==a.notes?{notes:a.notes}:{}});return{success:!0,reference:c}}catch(c){h.default.error({err:c,uuid:a.uuid},"Failed to update reference");let b=c instanceof Error?c.message:"Failed to update reference";return{success:!1,error:b}}}async function n(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};try{return await (0,g.bA)(b.companyUuid,a),{success:!0}}catch(c){h.default.error({err:c,uuid:a},"Failed to delete reference");let b=c instanceof Error?c.message:"Failed to delete reference";return{success:!1,error:b}}}(0,i.D)([k,l,m,n]),(0,e.A)(k,"60412a61f8698446452b7522439fff7e8561b439e6",null),(0,e.A)(l,"40b65f90a978342d9d156f2c0aeb74c2af140323e8",null),(0,e.A)(m,"40c67fe4747e84d75bee43043692f0a512bfcb5eb1",null),(0,e.A)(n,"400e870548ff1ee66cf7aa52fa3a70897b73bd5f55",null),d()}catch(a){d(a)}})},59058:(a,b,c)=>{c.d(b,{ReferencesSection:()=>C});var d=c(10837),e=c(21968),f=c(68884),g=c(9222),h=c(59876),i=c(35312),j=c(87461),k=c(86460),l=c(79543),m=c(92900),n=c(49599),o=c(42424),p=c(9994),q=c(2852),r=c(20170),s=c(11568),t=c(55732),u=c(6019),v=c(37888),w=c(42377);let x=(0,w.createServerReference)("40c67fe4747e84d75bee43043692f0a512bfcb5eb1",w.callServer,void 0,w.findSourceMapURL,"updateReferenceAction"),y=(0,w.createServerReference)("40b65f90a978342d9d156f2c0aeb74c2af140323e8",w.callServer,void 0,w.findSourceMapURL,"createReferenceAction"),z=(0,w.createServerReference)("400e870548ff1ee66cf7aa52fa3a70897b73bd5f55",w.callServer,void 0,w.findSourceMapURL,"deleteReferenceAction");var A=c(46398),B=c(61206);function C({targetType:a,targetUuid:b,canWrite:c,initialReferences:w,compact:C=!1}){let D=(0,g.c)(),E=(0,f.r)(),[F,G]=(0,e.useState)(w??[]),[H,I]=(0,e.useState)(void 0!==w),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(null),[N,O]=(0,e.useState)("docs"),[P,Q]=(0,e.useState)(""),[R,S]=(0,e.useState)(""),[T,U]=(0,e.useState)(""),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(!1),[Z,$]=(0,e.useState)(null),_=(0,e.useCallback)(async()=>{let c=await (0,v.j)(a,b);c.success&&G(c.references),I(!0)},[a,b]),aa=async()=>{if(!P.trim())return void W(D("references.urlRequired"));if(!R.trim())return void W(D("references.titleRequired"));Y(!0),W(null);let c=T.trim()?T.trim():null,d=L?await x({uuid:L.uuid,type:N,url:P.trim(),title:R.trim(),notes:c}):await y({targetType:a,targetUuid:b,type:N,url:P.trim(),title:R.trim(),notes:c});Y(!1),d.success?(K(!1),await _(),E.refresh()):W(d.error||(L?D("references.updateFailed"):D("references.addFailed")))},ab=async a=>{$(a);let b=await z(a);$(null),b.success&&(await _(),E.refresh())};return(0,d.jsxs)("div",{className:C?"space-y-2":"space-y-2.5",children:[0===F.length?(0,d.jsx)("p",{className:"text-sm italic text-muted-foreground",children:H?D("references.empty"):D("references.loading")}):(0,d.jsx)("div",{className:"space-y-2",children:F.map(a=>{let b=(0,A.N2)(a.type)?A.qQ[a.type]:null,e=b?.icon??h.A;return(0,d.jsx)("div",{className:"group rounded-lg border border-border bg-background p-3",children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"mb-1 flex items-center gap-2",children:(0,d.jsxs)(n.E,{className:`gap-1 border-0 text-[10px] font-medium ${b?.badgeClass??"bg-secondary text-muted-foreground"}`,children:[(0,d.jsx)(e,{className:"h-3 w-3"}),b?D(b.labelKey):a.type]})}),(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",title:a.title,className:"flex min-w-0 items-center gap-1 text-sm font-medium text-primary hover:underline",children:[(0,d.jsx)("span",{className:"truncate",children:a.title}),(0,d.jsx)(i.A,{className:"h-3 w-3 shrink-0"})]}),(0,d.jsx)(B.L,{notes:a.notes})]}),c&&(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5 transition-opacity md:opacity-0 md:group-hover:opacity-100 md:focus-within:opacity-100",children:[(0,d.jsx)(o.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>{M(a),O(a.type),Q(a.url),S(a.title),U(a.notes??""),W(null),K(!0)},"aria-label":D("references.editReference"),children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,d.jsxs)(u.Lt,{children:[(0,d.jsx)(u.tv,{asChild:!0,children:(0,d.jsx)(o.$,{variant:"ghost",size:"icon",className:"h-7 w-7","aria-label":D("references.deleteReference"),children:Z===a.uuid?(0,d.jsx)(k.A,{className:"h-3.5 w-3.5 animate-spin text-muted-foreground"}):(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 text-destructive"})})}),(0,d.jsxs)(u.EO,{children:[(0,d.jsxs)(u.wd,{children:[(0,d.jsx)(u.r7,{children:D("references.deleteReference")}),(0,d.jsx)(u.$v,{children:D("references.deleteConfirm",{title:a.title})})]}),(0,d.jsxs)(u.ck,{children:[(0,d.jsx)(u.Zr,{children:D("common.cancel")}),(0,d.jsx)(u.Rx,{variant:"destructive",onClick:()=>ab(a.uuid),children:D("common.delete")})]})]})]})]})]})},a.uuid)})}),c&&(0,d.jsxs)(o.$,{variant:"outline",size:"sm",className:"h-8 w-full gap-1.5 border-border border-dashed text-xs text-muted-foreground",onClick:()=>{M(null),O("docs"),Q(""),S(""),U(""),W(null),K(!0)},children:[(0,d.jsx)(m.A,{className:"h-3.5 w-3.5"}),D("references.addReference")]}),(0,d.jsx)(s.lG,{open:J,onOpenChange:K,children:(0,d.jsxs)(s.Cf,{className:"sm:max-w-[480px]",children:[(0,d.jsx)(s.c7,{children:(0,d.jsx)(s.L3,{children:L?D("references.editReference"):D("references.addReference")})}),(0,d.jsxs)("div",{className:"space-y-4 py-2",children:[V&&(0,d.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:V}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"ref-type",className:"text-[13px] font-medium text-foreground",children:D("references.typeLabel")}),(0,d.jsxs)(t.l6,{value:N,onValueChange:O,children:[(0,d.jsx)(t.bq,{id:"ref-type",className:"border-border focus:ring-primary",children:(0,d.jsx)(t.yv,{})}),(0,d.jsx)(t.gC,{children:A.mP.map(a=>(0,d.jsx)(t.eb,{value:a,children:D(A.qQ[a].labelKey)},a))})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)(q.J,{htmlFor:"ref-url",className:"text-[13px] font-medium text-foreground",children:[D("references.urlLabel")," *"]}),(0,d.jsx)(p.p,{id:"ref-url",value:P,onChange:a=>Q(a.target.value),placeholder:D("references.urlPlaceholder"),className:"border-border focus-visible:ring-primary",autoFocus:!0})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)(q.J,{htmlFor:"ref-title",className:"text-[13px] font-medium text-foreground",children:[D("references.titleLabel")," *"]}),(0,d.jsx)(p.p,{id:"ref-title",value:R,onChange:a=>S(a.target.value),placeholder:D("references.titlePlaceholder"),className:"border-border focus-visible:ring-primary"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"ref-notes",className:"text-[13px] font-medium text-foreground",children:D("references.notesLabel")}),(0,d.jsx)(r.T,{id:"ref-notes",value:T,onChange:a=>U(a.target.value),placeholder:D("references.notesPlaceholder"),rows:3,className:"resize-none border-border focus-visible:ring-primary"})]})]}),(0,d.jsxs)(s.Es,{children:[(0,d.jsx)(o.$,{variant:"outline",onClick:()=>K(!1),disabled:X,className:"border-border",children:D("common.cancel")}),(0,d.jsx)(o.$,{onClick:aa,disabled:X||!P.trim()||!R.trim(),className:"bg-primary hover:bg-primary/90 text-primary-foreground",children:X?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(k.A,{className:"mr-2 h-4 w-4 animate-spin"}),D("common.saving")]}):L?D("common.save"):D("references.add")})]})]})})]})}},61206:(a,b,c)=>{c.d(b,{L:()=>h});var d=c(10837),e=c(21968),f=c(9222),g=c(99127);function h({notes:a}){let b=(0,f.c)(),[c,h]=(0,e.useState)(!1),i=a?.trim();if(!i)return null;let j=(0,d.jsx)("button",{type:"button",onClick:()=>h(a=>!a),"aria-expanded":c,"aria-label":b("references.toggleNotes"),className:`mt-1 w-full cursor-pointer text-left text-xs leading-relaxed text-muted-foreground ${c?"block":"line-clamp-2"}`,children:i});return c?j:(0,d.jsx)(g.Bc,{delayDuration:200,children:(0,d.jsxs)(g.m_,{children:[(0,d.jsx)(g.k$,{asChild:!0,children:j}),(0,d.jsx)(g.ZI,{className:"max-w-xs whitespace-pre-wrap break-words",children:i})]})})}},73908:(a,b,c)=>{c.d(b,{C:()=>k,K:()=>m});var d=c(10837),e=c(9222),f=c(79543),g=c(92900),h=c(42424),i=c(9994),j=c(88536);function k({items:a,onChange:b,disabled:c}){let k=(0,e.c)(),l=(c,d)=>{let e=a.slice();e[c]={...e[c],...d},b(e)};return(0,d.jsxs)("div",{className:"space-y-3",children:[a.length>0&&(0,d.jsx)("div",{className:"space-y-2",children:a.map((e,g)=>(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-[#E5E2DC] dark:border-[#2a2a2e] bg-background p-2.5",children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:(0,d.jsx)(i.p,{value:e.description,onChange:a=>l(g,{description:a.target.value}),placeholder:k("acceptanceCriteria.criterionPlaceholder"),className:"border-[#E5E2DC] dark:border-[#2a2a2e] text-sm focus-visible:ring-primary h-8",disabled:c})}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0 pt-1",children:[(0,d.jsx)(j.d,{checked:e.required,onCheckedChange:a=>l(g,{required:a}),className:"data-[state=checked]:bg-primary",disabled:c}),(0,d.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground min-w-[52px]",children:e.required?k("acceptanceCriteria.required"):k("acceptanceCriteria.optional")}),(0,d.jsx)(h.$,{variant:"outline",size:"sm",className:"h-7 w-7 p-0 border-[#E5E2DC] dark:border-[#2a2a2e] text-muted-foreground hover:text-[#D32F2F] hover:border-[#D32F2F] hover:bg-[#FFEBEE] dark:hover:bg-[#331619]",onClick:()=>{b(a.filter((a,b)=>b!==g))},disabled:c,type:"button",children:(0,d.jsx)(f.A,{className:"h-3 w-3"})})]})]},g))}),(0,d.jsxs)(h.$,{variant:"outline",size:"sm",className:"h-8 gap-1.5 border-[#E5E2DC] dark:border-[#2a2a2e] text-xs text-muted-foreground hover:text-primary hover:border-primary",onClick:()=>{b([...a,{description:"",required:!0}])},disabled:c,type:"button",children:[(0,d.jsx)(g.A,{className:"h-3 w-3"}),k("acceptanceCriteria.addCriterion")]})]})}function l(a){return{description:a.description.trim(),required:!!a.required}}function m(a,b){if(a.length!==b.length)return!0;for(let c=0;c<a.length;c++){let d=l(a[c]),e=l(b[c]);if(d.description!==e.description||d.required!==e.required)return!0}return!1}},74798:(a,b,c)=>{c.d(b,{W:()=>e});var d=c(21968);function e(){let[a,b]=(0,d.useState)(!1);return a}},77219:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{XH:()=>h});var e=c(55511),f=c(71255);c(97307);var g=a([f]);f=(g.then?(await g)():g)[0];let i="cho_";function h(){var a;let b=(0,e.randomBytes)(32).toString("base64url"),c=`${i}${b}`,d=(a=c,(0,e.createHash)("sha256").update(a).digest("hex")),f=`${i}${b.slice(0,4)}...${b.slice(-4)}`;return{key:c,hash:d,prefix:f}}d()}catch(a){d(a)}})},88536:(a,b,c)=>{c.d(b,{d:()=>g});var d=c(10837);c(21968);var e=c(15644),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"switch",className:(0,f.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:ring-ring/50 inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(e.Thumb,{"data-slot":"switch-thumb",className:(0,f.cn)("bg-background pointer-events-none block size-4 rounded-full ring-0 shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})}},94214:(a,b,c)=>{c.d(b,{AI:()=>h,_8:()=>g});var d=c(10837);c(21968);var e=c(11568),f=c(96307);function g({open:a,onOpenChange:b,header:c,footer:g,children:h,className:i,bodyClassName:j,zIndexClassName:k="z-[110]",showCloseButton:l=!0}){return(0,d.jsx)(e.lG,{open:a,onOpenChange:b,children:(0,d.jsxs)(e.Cf,{className:(0,f.cn)("flex max-h-[85svh] flex-col gap-0 overflow-hidden p-0",k,i),overlayClassName:k,showCloseButton:l,children:[(0,d.jsx)(e.c7,{className:"shrink-0 border-b border-border px-6 py-5 text-left",children:c}),(0,d.jsx)("div",{className:(0,f.cn)("min-h-0 flex-1 overflow-y-auto px-6 py-4",j),children:h}),(0,d.jsx)(e.Es,{className:"shrink-0 border-t border-border px-6 py-5",children:g})]})})}let h=e.L3},99127:(a,b,c)=>{c.d(b,{Bc:()=>g,ZI:()=>j,k$:()=>i,m_:()=>h});var d=c(10837);c(21968);var e=c(80501),f=c(96307);function g({delayDuration:a=0,...b}){return(0,d.jsx)(e.Provider,{"data-slot":"tooltip-provider",delayDuration:a,...b})}function h({...a}){return(0,d.jsx)(e.Root,{"data-slot":"tooltip",...a})}function i({...a}){return(0,d.jsx)(e.Trigger,{"data-slot":"tooltip-trigger",...a})}function j({className:a,sideOffset:b=0,children:c,...g}){return(0,d.jsx)(e.Portal,{children:(0,d.jsxs)(e.Content,{"data-slot":"tooltip-content",sideOffset:b,className:(0,f.cn)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",a),...g,children:[c,(0,d.jsx)(e.Arrow,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}}};