@chorus-aidlc/chorus 0.13.1 → 0.13.2

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 (320) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +321 -320
  3. package/.next/standalone/.next/app-path-routes-manifest.json +37 -37
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +27 -27
  6. package/.next/standalone/.next/react-loadable-manifest.json +2 -2
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  41. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  42. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  45. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  46. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  48. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  49. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/admin.html +1 -1
  51. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  52. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  60. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  74. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  82. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  92. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
  98. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  101. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  104. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  107. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  111. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  114. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/events/route.js +1 -1
  117. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  121. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  124. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  127. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  130. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  133. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  134. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  136. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  137. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
  139. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/mcp/route.js +2 -2
  142. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  143. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  145. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  148. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  151. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  154. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  157. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  160. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  163. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  166. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  173. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  178. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  181. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
  187. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  192. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  195. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  206. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  209. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  210. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  212. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  214. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  215. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  217. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  218. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  219. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  221. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  222. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  224. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/index.html +1 -1
  227. package/.next/standalone/.next/server/app/index.rsc +2 -2
  228. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  230. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  231. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  232. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  233. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  234. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  236. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  237. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  238. package/.next/standalone/.next/server/app/login.html +1 -1
  239. package/.next/standalone/.next/server/app/login.rsc +2 -2
  240. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  242. package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
  243. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/projects.html +1 -1
  245. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  246. package/.next/standalone/.next/server/app/settings.html +1 -1
  247. package/.next/standalone/.next/server/app/settings.rsc +2 -2
  248. package/.next/standalone/.next/server/app-paths-manifest.json +37 -37
  249. package/.next/standalone/.next/server/chunks/1463.js +1 -0
  250. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  251. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  252. package/.next/standalone/.next/server/chunks/3219.js +1 -1
  253. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  254. package/.next/standalone/.next/server/chunks/5011.js +1 -0
  255. package/.next/standalone/.next/server/chunks/5631.js +1 -0
  256. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  257. package/.next/standalone/.next/server/chunks/6817.js +1 -1
  258. package/.next/standalone/.next/server/chunks/7160.js +1 -1
  259. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  260. package/.next/standalone/.next/server/chunks/7578.js +1 -1
  261. package/.next/standalone/.next/server/chunks/8448.js +1 -1
  262. package/.next/standalone/.next/server/chunks/8577.js +1 -1
  263. package/.next/standalone/.next/server/chunks/920.js +1 -1
  264. package/.next/standalone/.next/server/chunks/{5095.js → 9855.js} +2 -2
  265. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  266. package/.next/standalone/.next/server/middleware-manifest.json +1 -1
  267. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  268. package/.next/standalone/.next/server/pages/404.html +1 -1
  269. package/.next/standalone/.next/server/pages/500.html +1 -1
  270. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  271. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  272. package/.next/standalone/.next/static/chunks/225-7b0507c29df705f1.js +1 -0
  273. package/.next/standalone/.next/static/chunks/38366.62260b57e5f4b09d.js +1 -0
  274. package/.next/standalone/.next/static/chunks/{4860.7844c573cb3914f3.js → 4860.18e9c1a01636e309.js} +1 -1
  275. package/.next/standalone/.next/static/chunks/63820-551bca4e19d0119c.js +1 -0
  276. package/.next/standalone/.next/static/chunks/{80350-8ac8d602965bb4df.js → 80350-20c953d484f262ff.js} +1 -1
  277. package/.next/standalone/.next/static/chunks/96752-ad15cc38599f12e2.js +1 -0
  278. package/.next/standalone/.next/static/chunks/{99373.6f0ec031fb759d88.js → 99373.c4a36dcd46ec841e.js} +1 -1
  279. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-b2db3da2d7945904.js +1 -0
  280. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-b3b2b2ba3d60893e.js +1 -0
  281. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/{page-9f0ebba7e855b2f9.js → page-0aff1fa7a814188c.js} +1 -1
  282. package/.next/standalone/.next/static/chunks/{webpack-fe12dfe2e0d0e4f3.js → webpack-3551a4c7f9bfe638.js} +1 -1
  283. package/.next/standalone/.next/static/css/a80bf83b9122bfc5.css +1 -0
  284. package/.next/standalone/package.json +1 -1
  285. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  286. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  287. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +1 -1
  288. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  289. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +9 -1
  290. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  291. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +3 -1
  292. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  293. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  294. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
  295. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
  296. package/.next/standalone/public/skill/chorus/SKILL.md +1 -1
  297. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +1 -1
  298. package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
  299. package/.next/standalone/public/skill/idea-chorus/SKILL.md +9 -1
  300. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +3 -1
  301. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +1 -1
  302. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  303. package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
  304. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +1 -1
  305. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +1 -1
  306. package/package.json +1 -1
  307. package/prisma/migrations/20260707104706_add_idea_is_container/migration.sql +2 -0
  308. package/prisma/schema.prisma +1 -0
  309. package/.next/standalone/.next/server/chunks/1114.js +0 -1
  310. package/.next/standalone/.next/server/chunks/8497.js +0 -1
  311. package/.next/standalone/.next/server/chunks/8895.js +0 -1
  312. package/.next/standalone/.next/static/chunks/225-8a41a800021f3d11.js +0 -1
  313. package/.next/standalone/.next/static/chunks/58262-395c00e04f610a32.js +0 -1
  314. package/.next/standalone/.next/static/chunks/78966.075119c3a72135ed.js +0 -1
  315. package/.next/standalone/.next/static/chunks/94528-ed3f03485480f5e5.js +0 -1
  316. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-f72f17eb58614d2b.js +0 -1
  317. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-3238e0b5474c60f6.js +0 -1
  318. package/.next/standalone/.next/static/css/3f3ae2bdc9e55259.css +0 -1
  319. /package/.next/standalone/.next/static/{eORNzMShbzkJbNfQT8MbW → CIg9Mtv4fKIeKqPY5Rczv}/_buildManifest.js +0 -0
  320. /package/.next/standalone/.next/static/{eORNzMShbzkJbNfQT8MbW → CIg9Mtv4fKIeKqPY5Rczv}/_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:()=>r});var e=c(65582),f=c(52618),g=c(34853),h=c(97515),i=c(70369),j=c(35205),k=a([f,g,h,i,j]);[f,g,h,i,j]=k.then?(await k)():k;let s=e.default.child({module:"notification-turn"}),t={mentioned:"mentioned",elaboration_requested:"elaboration",elaboration_answered:"elaboration",elaboration_verified:"elaboration_verified",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"},u=new Set(["task","document","proposal","idea"]),v=new Set(["task_assigned","elaboration","elaboration_verified","start_development","yolo_requested"]);async function l(a,b){return await f.z.agentInstance.findFirst({where:{uuid:b,companyUuid:a},select:{host:!0,cwd:!0,agentUuid:!0}})??null}function m(a,b,c){return(null==a||""===a)&&(null==b||""===b)?null:{host:a??"",cwd:null!=b&&""!==b?b:null,soft:c}}async function n(a,b){if("mentioned"===b)return m(a.pinnedHost,a.pinnedCwd,!1);if(!u.has(a.entityType))return null;if("task"===a.entityType){let b=await f.z.task.findFirst({where:{uuid:a.entityUuid,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0}});if(b?.assigneeType==="agent_instance"&&b.assigneeUuid){let c=await l(a.companyUuid,b.assigneeUuid);if(c){let a=m(c.host,c.cwd,!0);if(a)return a}}}if("idea"===a.entityType){let b=await (0,g.resolveDirectIdeaUuid)(a.companyUuid,a.entityType,a.entityUuid),c=await o(a,b);if(c)return c}let c=await p(a);return o(a,c)}async function o(a,b){if(!b)return null;let c=await f.z.idea.findFirst({where:{uuid:b,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0}});if(c?.assigneeType==="agent_instance"&&c.assigneeUuid){let b=await l(a.companyUuid,c.assigneeUuid);if(b&&b.agentUuid===a.recipientUuid)return m(b.host,b.cwd,!0)}return null}async function p(a){return(await (0,j.K)(a.companyUuid,a.entityType,a.entityUuid)).rootIdeaUuid}async function q(a,b,c,d){if(!c)return null;let e=await f.z.daemonSession.findFirst({where:{companyUuid:a,agentUuid:b,sessionId:c},select:{originConnectionUuid:!0}});return e?d.find(a=>a.uuid===e.originConnectionUuid&&"online"===a.effectiveStatus)??null:null}async function r(a){let b={turn:null,targetConnectionUuid:null,suppressWake:!1},c=t[a.action]??null;if(!c||"agent"!==a.recipientType)return b;try{let d=await (0,h._R)(a.companyUuid,a.recipientUuid),e=await n(a,c),j=function(a,b){if(b){let c=a.find(a=>a.host===b.host&&a.cwd===b.cwd&&"online"===a.effectiveStatus);if(c)return{kind:"directed",connection:c};if(!b.soft)return{kind:"offline_pin"}}let c=a.find(a=>"online"===a.effectiveStatus);return c?{kind:"online_first",connection:c}:{kind:"none"}}(d,e),k=null;if(u.has(a.entityType)&&(k=await (0,g.resolveDirectIdeaUuid)(a.companyUuid,a.entityType,a.entityUuid)),v.has(c)&&"online_first"===j.kind){let b=await q(a.companyUuid,a.recipientUuid,k,d);b&&(j={kind:"directed",connection:b})}if("offline_pin"===j.kind)return{turn:null,targetConnectionUuid:null,suppressWake:!0};if("none"===j.kind)return b;let l=j.connection,m="directed"===j.kind,o=k??a.entityUuid,p=k;if(m&&k){let b=await f.z.daemonSession.findFirst({where:{companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:k},select:{originConnectionUuid:!0}});b&&b.originConnectionUuid!==l.uuid&&(o=`${k}::${l.uuid}`,p=null)}let r=await (0,g.resolveOrCreateSession)({companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:o,directIdeaUuid:p,originConnectionUuid:l.uuid}),s="human_instruction"===c?a.instructionText??null:null,t=await (0,g.createPendingTurn)({sessionUuid:r.uuid,trigger:c,promptText:s});if(m)return(0,i.N_)({companyUuid:a.companyUuid,originConnectionUuid:l.uuid,turnUuid:t.uuid}),{turn:t,targetConnectionUuid:l.uuid,suppressWake:!1};return{turn:t,targetConnectionUuid:null,suppressWake:!1}}catch(c){return s.error({err:c,companyUuid:a.companyUuid,agentUuid:a.recipientUuid,action:a.action,entityType:a.entityType,entityUuid:a.entityUuid},"Failed to create DaemonSessionTurn for wake notification (notification was still created)"),b}}d()}catch(a){d(a)}})},25736:(a,b,c)=>{c.d(b,{vE:()=>d});function d(a){if(!a)return{pinnedHost:null,pinnedCwd:null};let b=new URLSearchParams(a),c=b.has("cwd"),d=b.has("host");if(!c&&!d)return{pinnedHost:null,pinnedCwd:null};let e=b.get("cwd")??"",f=b.get("host");return{pinnedCwd:c&&""!==e?e:null,pinnedHost:d?f??"":null}}},28792:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K1:()=>k,Ll:()=>i,U_:()=>h,s7:()=>j});var e=c(52618),f=c(42558),g=a([e]);e=(g.then?(await g)():g)[0];let k=["task","idea","proposal","document","daemon_session"];async function h(a,b){let c=await e.z.daemonConnection.findFirst({where:{uuid:b,companyUuid:a},select:{agentUuid:!0,agent:{select:{ownerUuid:!0}}}});return c?{agentUuid:c.agentUuid,ownerUuid:c.agent?.ownerUuid??null}:null}async function i(a){let b=await h(a.companyUuid,a.connectionUuid);return b?null!=b.ownerUuid&&a.actorUuid===b.ownerUuid||a.hasTaskAdmin?{ok:!0,target:b}:{ok:!1,reason:"forbidden"}:{ok:!1,reason:"not_found"}}function j(a){let b="deliver_turn"===a.command?{type:"control",command:"deliver_turn",targetConnectionUuid:a.targetConnectionUuid,turnUuid:a.turnUuid}:{type:"control",command:a.command,targetConnectionUuid:a.targetConnectionUuid,entityType:a.entityType,entityUuid:a.entityUuid,...a.resumeReason?{resumeReason:a.resumeReason}:{}};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:()=>I,DEFAULT_TRANSCRIPT_MESSAGE_PAGE:()=>N,MAX_TRANSCRIPT_MESSAGES_PER_SESSION:()=>L,SESSION_STATUSES:()=>J,STALE_THRESHOLD_MS:()=>h.BP,SessionReadOnlyError:()=>O,TRANSCRIPT_ROLES:()=>K,TURN_INTERRUPT_REASONS:()=>H,TURN_STATUSES:()=>G,TURN_TRIGGERS:()=>F,advanceTurn:()=>s,advanceTurnForWake:()=>D,appendTranscriptMessages:()=>B,assertContinuable:()=>z,conversationNameFromInstruction:()=>i.Ff,createPendingTurn:()=>r,getFirstInstructionBySessionUuid:()=>i.L0,getPendingTurnsForConnection:()=>E,getSessionDetail:()=>y,getSessionTurns:()=>w,getVisibleSessions:()=>v,isSessionVisibleToCaller:()=>x,publishTranscriptEvent:()=>o,reconcileOrphanTurns:()=>t,resolveDirectIdeaUuid:()=>q,resolveOrCreateSession:()=>p,transcriptEventName:()=>n});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 F=["task_assigned","mentioned","elaboration","elaboration_verified","start_development","yolo_requested","resume","human_instruction"],G=["pending","running","ended","interrupted"],H=["user","crash","shutdown","offline"],I=["user","crash","shutdown"],J=["active","ended"],K=["user","assistant"],L=200;function k(a){return{uuid:a.uuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid,originConnectionUuid:a.originConnectionUuid,status:a.status,title:a.title,lastTurnAt:a.lastTurnAt.toISOString(),createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}function l(a){return{uuid:a.uuid,sessionUuid:a.sessionUuid,seq:a.seq,trigger:a.trigger,promptText:a.promptText,status:a.status,interruptedReason:a.interruptedReason,executionUuid:a.executionUuid,startedAt:a.startedAt?a.startedAt.toISOString():null,endedAt:a.endedAt?a.endedAt.toISOString():null,createdAt:a.createdAt.toISOString()}}function m(a){return"agent"===a.type?{agentUuid:a.actorUuid}:{agent:{ownerUuid:a.actorUuid}}}function n(a){return`transcript:${a}`}function o(a){f.B.emit(n(a.sessionUuid),a)}async function p(a){let b=await e.z.daemonSession.upsert({where:{agentUuid_sessionId:{agentUuid:a.agentUuid,sessionId:a.sessionId}},create:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid??null,originConnectionUuid:a.originConnectionUuid,status:"active"},update:{companyUuid:a.companyUuid}});return k(b)}async function q(a,b,c){return(await (0,g.K)(a,b,c)).directIdeaUuid}async function r(a){let b=await e.z.daemonSession.findUnique({where:{uuid:a.sessionUuid},select:{uuid:!0,companyUuid:!0}});if(!b)throw Error(`DaemonSession ${a.sessionUuid} not found`);let c=null;for(let b=0;b<5;b++){let d=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:a.sessionUuid},orderBy:{seq:"desc"},select:{seq:!0}}),f=(d?.seq??0)+1;try{c=await e.z.daemonSessionTurn.create({data:{sessionUuid:a.sessionUuid,seq:f,trigger:a.trigger,promptText:a.promptText??null,status:"pending",executionUuid:a.executionUuid??null}});break}catch(a){if("object"==typeof a&&null!==a&&"code"in a&&"P2002"===a.code&&b<4)continue;throw a}}if(!c)throw Error(`createPendingTurn: could not allocate a unique seq for session ${a.sessionUuid} after 5 attempts`);await e.z.daemonSession.update({where:{uuid:a.sessionUuid},data:{lastTurnAt:new Date}});let d=l(c);return o({companyUuid:b.companyUuid,sessionUuid:a.sessionUuid,trigger:"turn_created",turn:d,messages:[]}),d}let M={pending:["running"],running:["ended","interrupted"],ended:[],interrupted:[]};async function s(a,b,c={}){let d=await e.z.daemonSessionTurn.findUnique({where:{uuid:a},select:{uuid:!0,sessionUuid:!0,status:!0}});if(!d)return{ok:!1,reason:"not_found"};if(!(M[d.status]??[]).includes(b))return{ok:!1,reason:"invalid_transition",from:d.status,to:b};let f={status:b};void 0!==c.startedAt&&(f.startedAt=c.startedAt),void 0!==c.endedAt&&(f.endedAt=c.endedAt),void 0!==c.executionUuid&&(f.executionUuid=c.executionUuid),"interrupted"===b&&void 0!==c.interruptedReason&&(f.interruptedReason=c.interruptedReason);let g=await e.z.daemonSessionTurn.update({where:{uuid:a},data:f}),h=await e.z.daemonSession.findUnique({where:{uuid:d.sessionUuid},select:{companyUuid:!0}});if(!h)throw Error(`advanceTurn: session ${d.sessionUuid} missing for just-updated turn ${a}`);let i=l(g);return o({companyUuid:h.companyUuid,sessionUuid:d.sessionUuid,trigger:"turn_status_changed",turn:i,messages:[]}),{ok:!0,turn:i}}async function t(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 s(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 u(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 t(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 v(a){let b=await e.z.daemonSession.findMany({where:{companyUuid:a.companyUuid,...m(a)},orderBy:{lastTurnAt:"desc"}});return await u(a.companyUuid,b),b.map(k)}async function w(a,b){return await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)},select:{uuid:!0}})?(await e.z.daemonSessionTurn.findMany({where:{sessionUuid:b},orderBy:{seq:"asc"}})).map(l):null}async function x(a,b){let c=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)},select:{uuid:!0}});return null!=c}let N=20;async function y(a,b,c={}){let d=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)}});if(!d)return null;await u(a.companyUuid,[d]);let f=Math.min(Math.max(1,Math.floor(c.limit??N)),200),g="number"==typeof c.beforeTurnSeq&&Number.isFinite(c.beforeTurnSeq)?c.beforeTurnSeq:null,h="number"==typeof c.beforeMsgSeq&&Number.isFinite(c.beforeMsgSeq)?c.beforeMsgSeq:null,i=await e.z.daemonSessionTurn.findMany({where:{sessionUuid:b,...null!==g?{seq:{lte:g}}:{}},orderBy:{seq:"desc"}}),j=i.map(a=>a.uuid),n=j.length>0?await e.z.daemonTranscriptMessage.findMany({where:{turnUuid:{in:j}},orderBy:[{turnUuid:"asc"},{seq:"asc"}]}):[],o=new Map;for(let a of n){let b=A(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(),v=s.length>0?s[s.length-1]:null,w=new Map;for(let a of i)w.set(a.uuid,a);let x=new Map;for(let a of i)x.set(a.seq,a.uuid);let z=new Map,B=[];for(let a of t)z.has(a.turnSeq)||(z.set(a.turnSeq,[]),B.push(a.turnSeq)),a.rendered&&z.get(a.turnSeq).push(a.rendered);let C=B.map(a=>{let b=x.get(a);return{...l(w.get(b)),messages:z.get(a)??[]}});return{session:k(d),turns:C,hasMore:r,oldestTurnSeq:v?v.turnSeq:null,oldestMsgSeq:v?v.msgSeq:null}}class O 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 z(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 O(c.originConnectionUuid);return c.originConnectionUuid}function A(a){return{uuid:a.uuid,turnUuid:a.turnUuid,role:a.role,text:a.text,seq:a.seq,createdAt:a.createdAt.toISOString()}}async function B(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=>K.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(A),await C(c)}let g=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:c}}});if(f.length>0){let d=await e.z.daemonSessionTurn.findUnique({where:{uuid:b.uuid}}),g=await e.z.daemonSession.findUnique({where:{uuid:c},select:{companyUuid:!0}});d&&o({companyUuid:g?.companyUuid??a.companyUuid,sessionUuid:c,trigger:"transcript_appended",turn:l(d),messages:f})}return{ok:!0,appended:f.length,stored:g,messages:f}}async function C(a){let b=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:a}}})-L;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 D(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:{sessionUuid:c.uuid,...d?{status:d}:{}},orderBy:{seq:"asc"},select:{uuid:!0}});if(!f)return{ok:!1,reason:"not_found"};if(a.entityType&&a.entityUuid){let c=await e.z.daemonExecution.findFirst({where:{companyUuid:a.companyUuid,connectionUuid:a.connectionUuid,entityType:a.entityType,entityUuid:a.entityUuid},select:{uuid:!0}});b=c?.uuid??null}let g=new Date,h=void 0!==a.startedAt?a.startedAt:"running"===a.status?g:void 0,i=void 0!==a.endedAt?a.endedAt:"ended"===a.status||"interrupted"===a.status?g:void 0,j=await s(f.uuid,a.status,{...void 0!==h?{startedAt:h}:{},...void 0!==i?{endedAt:i}:{},...void 0!==b?{executionUuid:b}:{},...void 0!==a.interruptedReason?{interruptedReason:a.interruptedReason}:{}});return j.ok?{ok:!0,turn:j.turn}:"not_found"===j.reason?{ok:!1,reason:"not_found"}:{ok:!1,reason:"invalid_transition",from:j.from,to:j.to}}async function E(a){return(await e.z.daemonSessionTurn.findMany({where:{status:"pending",session:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,originConnectionUuid:a.connectionUuid}},orderBy:[{session:{createdAt:"asc"}},{seq:"asc"}],select:{uuid:!0,sessionUuid:!0,seq:!0,trigger:!0,promptText:!0,session:{select:{sessionId:!0,directIdeaUuid:!0}}}})).map(a=>({turnUuid:a.uuid,sessionUuid:a.sessionUuid,sessionId:a.session.sessionId,directIdeaUuid:a.session.directIdeaUuid,seq:a.seq,trigger:a.trigger,promptText:a.promptText}))}d()}catch(a){d(a)}})},35205:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K:()=>j});var e=c(71165),f=c(57578),g=c(8777),h=c(66643),i=a([e,f,g,h]);async function j(a,b,c){let d=await k(a,b,c),e=d.lineage.find(a=>"idea"===a.type)?.uuid??null;return{...d,directIdeaUuid:e}}async function k(a,b,c){switch(b){case"idea":return l(a,c);case"proposal":return o(a,c,"proposal");case"task":return m(a,c);case"document":return n(a,c);default:return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}}}async function l(a,b){let c=[],d=await p(a,b,c);return null===d?{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}:{rootIdeaUuid:d,lineage:c,resolvedVia:"root_idea"}}async function m(a,b){let c=await (0,e.K4)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"task",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"no_proposal"}}async function n(a,b){let c=await (0,g.Cs)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"document",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_document_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"standalone_document"}}async function o(a,b,c,d){var e;let g=d?[d]:[],h=await (0,f.PK)(a,b);if(!h)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};if(g.push({type:"proposal",uuid:h.uuid,title:h.title}),"idea"!==h.inputType)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let i=(e=h.inputUuids,Array.isArray(e)?e.filter(a=>"string"==typeof a):[]);if(0===i.length)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let j=await p(a,i[0],g);if(null===j)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};let k="via_document_proposal"===c?"via_document_proposal":"via_proposal"===c?"via_proposal":"root_idea";if(1===i.length)return{rootIdeaUuid:j,lineage:g,resolvedVia:k};let l=[j];for(let b of i.slice(1)){let c=await p(a,b);null!==c&&l.push(c)}return{rootIdeaUuid:j,lineage:g,resolvedVia:k,ambiguous:!0,candidates:l}}async function p(a,b,c){let d=await (0,h.MY)(a,b);if(!d)return null;c?.push({type:"idea",uuid:d.uuid,title:d.title});let e=new Set([d.uuid]);for(let b=0;b<50;b++){let b=d.parentUuid;if(!b||e.has(b))break;e.add(b);let f=await (0,h.MY)(a,b);if(!f)break;c?.push({type:"idea",uuid:f.uuid,title:f.title}),d=f}return d.uuid}[e,f,g,h]=i.then?(await i)():i,d()}catch(a){d(a)}})},37943:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>m,Ip:()=>n,NL:()=>o,Ug:()=>s,Xm:()=>k,aF:()=>j,lX:()=>r,p_:()=>l,rD:()=>p,y1:()=>q});var e=c(52618),f=c(42558),g=c(14120),h=a([e,g]);function i(a){return{uuid:a.uuid,projectUuid:a.projectUuid,projectName:a.projectName,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,readAt:a.readAt?.toISOString()??null,archivedAt:a.archivedAt?.toISOString()??null,createdAt:a.createdAt.toISOString(),instructionText:a.instructionText??null}}async function j(a){let b=await e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}),c=await m(a.companyUuid,a.recipientType,a.recipientUuid),{turn:d,targetConnectionUuid:h,suppressWake:j}=await (0,g.Wy)(a);return f.B.emit(`notification:${a.recipientType}:${a.recipientUuid}`,{type:"new_notification",notificationUuid:b.uuid,unreadCount:c,action:a.action,actorName:a.actorName,entityTitle:a.entityTitle,entityType:a.entityType,entityUuid:a.entityUuid,projectUuid:a.projectUuid,targetConnectionUuid:h,suppressWake:j}),{notification:i(b),turn:d}}async function k(a){let b=await Promise.all(a.map(a=>e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}))),c=new Map;for(let b of a){let{targetConnectionUuid:a,suppressWake:d}=await (0,g.Wy)(b);c.set(b,{targetConnectionUuid:a,suppressWake:d})}let d=new Set;for(let b of a)d.add(`${b.recipientType}:${b.recipientUuid}:${b.companyUuid}`);for(let e of d){let[d,g,h]=e.split(":"),i=await m(h,d,g),j=b.find(a=>a.recipientType===d&&a.recipientUuid===g),k=a.find(a=>a.recipientType===d&&a.recipientUuid===g);f.B.emit(`notification:${d}:${g}`,{type:"new_notification",notificationUuid:j?.uuid,unreadCount:i,action:k?.action,actorName:k?.actorName,entityTitle:k?.entityTitle,entityType:k?.entityType,entityUuid:k?.entityUuid,projectUuid:k?.projectUuid,targetConnectionUuid:k?c.get(k)?.targetConnectionUuid??null:null,suppressWake:!!k&&(c.get(k)?.suppressWake??!1)})}return b.map(i)}async function l(a){let{companyUuid:b,recipientType:c,recipientUuid:d,projectUuid:f,readFilter:g,archived:h}=a,j=a.skip??0,k=a.take??20,l={companyUuid:b,recipientType:c,recipientUuid:d,...f&&{projectUuid:f},..."unread"===g&&{readAt:null},..."read"===g&&{readAt:{not:null}},...!1===h&&{archivedAt:null},...!0===h&&{archivedAt:{not:null}}},[n,o,p]=await Promise.all([e.z.notification.findMany({where:l,skip:j,take:k,orderBy:{createdAt:"desc"}}),e.z.notification.count({where:l}),m(b,c,d)]);return{notifications:n.map(i),total:o,unreadCount:p}}async function m(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function n(a,b,c,d){await e.z.notification.updateMany({where:{uuid:a,companyUuid:b,recipientType:c,recipientUuid:d,readAt:null},data:{readAt:new Date}});let g=await e.z.notification.findFirst({where:{uuid:a,companyUuid:b}});if(!g)throw Error("Notification not found");let h=await m(b,c,d);return f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h}),i(g)}async function o(a,b,c,d){let g=await e.z.notification.updateMany({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,...d&&{projectUuid:d}},data:{readAt:new Date}}),h=await m(a,b,c);return f.B.emit(`notification:${b}:${c}`,{type:"count_update",unreadCount:h}),{count:g.count}}async function p(a,b,c,d){await e.z.notification.updateMany({where:{uuid:a,companyUuid:b,recipientType:c,recipientUuid:d,archivedAt:null},data:{archivedAt:new Date}});let g=await e.z.notification.findFirst({where:{uuid:a,companyUuid:b}});if(!g)throw Error("Notification not found");let h=await m(b,c,d);return f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h}),i(g)}function q(a){f.B.emit(`notification:user:${a.ownerUuid}`,{type:"new_notification",action:"agent_checkin",entityType:"agent",entityUuid:a.agentUuid,entityTitle:a.agentName,actorName:a.agentName})}async function r(a,b,c){let d=await e.z.notificationPreference.findUnique({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}}});return d||(d=await e.z.notificationPreference.create({data:{companyUuid:a,ownerType:b,ownerUuid:c}})),{uuid:d.uuid,ownerType:d.ownerType,ownerUuid:d.ownerUuid,taskAssigned:d.taskAssigned,taskStatusChanged:d.taskStatusChanged,taskVerified:d.taskVerified,taskReopened:d.taskReopened,proposalSubmitted:d.proposalSubmitted,proposalApproved:d.proposalApproved,proposalRejected:d.proposalRejected,ideaClaimed:d.ideaClaimed,commentAdded:d.commentAdded,elaborationRequested:d.elaborationRequested,elaborationAnswered:d.elaborationAnswered,mentioned:d.mentioned}}async function s(a,b,c,d){let f=await e.z.notificationPreference.upsert({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}},create:{companyUuid:a,ownerType:b,ownerUuid:c,...d},update:d});return{uuid:f.uuid,ownerType:f.ownerType,ownerUuid:f.ownerUuid,taskAssigned:f.taskAssigned,taskStatusChanged:f.taskStatusChanged,taskVerified:f.taskVerified,taskReopened:f.taskReopened,proposalSubmitted:f.proposalSubmitted,proposalApproved:f.proposalApproved,proposalRejected:f.proposalRejected,ideaClaimed:f.ideaClaimed,commentAdded:f.commentAdded,elaborationRequested:f.elaborationRequested,elaborationAnswered:f.elaborationAnswered,mentioned:f.mentioned}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},48873:(a,b,c)=>{c.d(b,{Ik:()=>f,Yy:()=>d,nm:()=>e});class d extends Error{constructor(a){super(`${a} is already claimed`),this.name="AlreadyClaimedError"}}class e extends Error{constructor(a){super(`${a} is not currently claimed`),this.name="NotClaimedError"}}function f(a){return"object"==typeof a&&null!==a&&"code"in a&&"P2025"===a.code}},54349:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Hu:()=>p,eT:()=>o,fg:()=>m,uA:()=>s});var e=c(52618),f=c(76872),g=c(90494),h=c(88437),i=c(42558),j=c(65582),k=a([e,f,g,h]);[e,f,g,h]=k.then?(await k)():k;let t={uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0};async function l(a){return Promise.all(a.map(async a=>{let b=await (0,f.lR)(a.authorType,a.authorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,content:a.content,author:{type:a.authorType,uuid:a.authorUuid,name:b??"Unknown"},createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}))}async function m(a){let{companyUuid:b,targetType:c,targetUuid:d,limit:g}=a;if(!await (0,f._9)(c,d,b))return void 0!==g?{comments:[],total:0,nextCursor:null,hasMore:!1}:{comments:[],total:0};if(void 0!==g)return n(a,g);let{skip:h,take:i}=a,j={companyUuid:b,targetType:c,targetUuid:d},[k,m]=await Promise.all([e.z.comment.findMany({where:j,skip:h,take:i,orderBy:{createdAt:"asc"},select:t}),e.z.comment.count({where:j})]);return{comments:await l(k),total:m}}async function n(a,b){let{companyUuid:c,targetType:d,targetUuid:f,cursor:g}=a,h={companyUuid:c,targetType:d,targetUuid:f},i=!1;if(g){let a=await e.z.comment.findFirst({where:{...h,uuid:g},select:{uuid:!0}});i=null!==a}let[j,k]=await Promise.all([e.z.comment.findMany({where:h,orderBy:[{createdAt:"desc"},{id:"desc"}],take:b+1,...i?{cursor:{uuid:g},skip:1}:{},select:t}),e.z.comment.count({where:h})]),m=j.length>b,n=m?j.slice(0,b):j,o=m?n[n.length-1].uuid:null;return{comments:await l(n),total:k,nextCursor:o,hasMore:m}}async function o({companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h}){if(!await (0,f._9)(b,c,a))throw Error(`Target ${b} with UUID ${c} not found`);let k=await e.z.comment.create({data:{companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),l=await (0,f.lR)(k.authorType,k.authorUuid);return p(b,c).then(d=>{d&&i.B.emitChange({companyUuid:a,projectUuid:d,entityType:b,entityUuid:c,action:"updated",actorUuid:h})}).catch(()=>{}),r(a,b,c,k.uuid,d,g,h).catch(a=>j.default.error({err:a},"Failed to process comment mentions")),{uuid:k.uuid,targetType:k.targetType,targetUuid:k.targetUuid,content:k.content,author:{type:k.authorType,uuid:k.authorUuid,name:l??"Unknown"},createdAt:k.createdAt.toISOString(),updatedAt:k.updatedAt.toISOString()}}async function p(a,b,c){let d=c?{companyUuid:c}:{};switch(a){case"task":{let a=await e.z.task.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"idea":{let a=await e.z.idea.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"proposal":{let a=await e.z.proposal.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"document":{let a=await e.z.document.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}default:return null}}async function q(a,b){switch(a){case"task":{let a=await e.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await e.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await e.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await e.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function r(a,b,c,d,e,f,i){let j=g.Xs(e);if(0===j.length)return;let k=await p(b,c);if(!k)return;let l=await q(b,c);for(let m of(await g.AM({companyUuid:a,sourceType:"comment",sourceUuid:d,content:e,actorType:f,actorUuid:i,projectUuid:k,entityTitle:l}),j))(m.type!==f||m.uuid!==i)&&await h.createActivity({companyUuid:a,projectUuid:k,targetType:b,targetUuid:c,actorType:f,actorUuid:i,action:"mentioned",value:{mentionedType:m.type,mentionedUuid:m.uuid,mentionedName:m.displayName,sourceType:"comment",sourceUuid:d}})}async function s(a,b,c){if(0===c.length)return{};let d=await e.z.comment.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:b,targetUuid:{in:c}},_count:{targetUuid:!0}}),f={};for(let a of c)f[a]=0;for(let a of d)f[a.targetUuid]=a._count.targetUuid;return f}d()}catch(a){d(a)}})},66643:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BB:()=>t,EZ:()=>A,JF:()=>y,MY:()=>w,Nm:()=>E,Q7:()=>v,XB:()=>J,bO:()=>q,bY:()=>F,h_:()=>C,i1:()=>x,jJ:()=>G,w9:()=>B,xo:()=>H});var e=c(52618),f=c(76872),g=c(42558),h=c(48873),i=c(27473),j=c(90494),k=c(88437),l=c(8777),m=c(57578),n=c(65582),o=a([e,f,j,k,l,m]);[e,f,j,k,l,m]=o.then?(await o)():o;let K={open:["elaborating"],elaborating:["elaborated"],elaborated:[]};function p(a){switch(a){case"assigned":case"in_progress":return"elaborating";case"proposal_created":case"completed":case"closed":case"pending_review":return"elaborated";default:return a}}function q(a,b){return(K[p(a)]||[]).includes(b)}async function r(a,b,c,d){if(!d)return{assigneeType:b,assigneeUuid:c};let f=await e.z.agentInstance.findFirst({where:{uuid:d,companyUuid:a},select:{uuid:!0}});if(!f)throw Error("Agent instance not found");return{assigneeType:"agent_instance",assigneeUuid:f.uuid}}async function s(a){let[b,c]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid),(0,f.LS)(a.createdByUuid)]);return{uuid:a.uuid,title:a.title,content:a.content,attachments:a.attachments,status:p(a.status),assignee:b,...a.project&&{project:a.project},...null!=a.elaborationStatus&&{elaborationStatus:a.elaborationStatus},...null!=a.elaborationDepth&&{elaborationDepth:a.elaborationDepth},createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function t({companyUuid:a,projectUuid:b,skip:c,take:d,status:g,assignedToMe:h,actorUuid:i,actorType:j,ownerUuid:k}){let l={projectUuid:b,companyUuid:a,...g&&{status:g}};h&&i&&j&&(l.OR=await (0,f.zl)({type:"agent"===j?"agent":"user",companyUuid:a,actorUuid:i,ownerUuid:k}));let[m,n]=await Promise.all([e.z.idea.findMany({where:l,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,parentUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:l})]),o=await Promise.all(m.map(s));if(m.forEach((a,b)=>{o[b].parentUuid=a.parentUuid??null}),o.length>0){let c=await u(a,b,o.map(a=>a.uuid));for(let a of o)a.reportCount=c.get(a.uuid)??0;let d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);for(let a of o)a.childCount=f.get(a.uuid)??0}return{ideas:o,total:n}}let L=["approved","closed"];async function u(a,b,c){let d=new Map;if(0===c.length)return d;let f=await e.z.proposal.findMany({where:{projectUuid:b,companyUuid:a,status:{in:[...L]},inputType:"idea"},select:{uuid:!0,inputUuids:!0}});if(0===f.length)return d;let g=new Set(c),h=new Map;for(let a of f){if(!Array.isArray(a.inputUuids))continue;let b=a.inputUuids.filter(a=>g.has(a));b.length>0&&h.set(a.uuid,b)}if(0===h.size)return d;for(let b of(await e.z.document.groupBy({by:["proposalUuid"],where:{companyUuid:a,type:"report",proposalUuid:{in:Array.from(h.keys())}},_count:{_all:!0}}))){if(!b.proposalUuid)continue;let a=h.get(b.proposalUuid);if(a)for(let c of a)d.set(c,(d.get(c)??0)+b._count._all)}return d}async function v(a,b){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},parent:{select:{uuid:!0,title:!0,status:!0}},children:{select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0},orderBy:{createdAt:"asc"}}}});if(!c)return null;let d=await s(c);d.parentUuid=c.parentUuid??null,d.parent=c.parent?{uuid:c.parent.uuid,title:c.parent.title,status:p(c.parent.status)}:null;let f=c.children??[];if(f.length>0){let b=await I(a,c.projectUuid),e=new Map(b.map(a=>[a.uuid,a.derivedStatus]));d.children=f.map(a=>({uuid:a.uuid,title:a.title,status:p(a.status),derivedStatus:e.get(a.uuid)??"todo"}))}else d.children=[];d.descendantUuids=await z(b,a);let g=(await m.fS(a,c.projectUuid,b)).filter(a=>L.includes(a.status));return 0===g.length?d.reports=[]:d.reports=await l.yZ(a,g.map(a=>a.uuid),"report"),d}async function w(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){if(a.parentUuid){let b=await e.z.idea.findFirst({where:{uuid:a.parentUuid,companyUuid:a.companyUuid},select:{projectUuid:!0}});if(!b)throw Error("Parent idea not found");if(b.projectUuid!==a.projectUuid)throw Error("Parent idea must be in the same project")}let b=await e.z.idea.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,content:a.content,attachments:a.attachments||void 0,status:"open",createdByUuid:a.createdByUuid,parentUuid:a.parentUuid??void 0},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,parentUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"created"});let c=await s(b);return c.parentUuid=b.parentUuid,c}async function y(a,b,c,d){let f=null;if(void 0!==c.content&&d){let b=await e.z.idea.findUnique({where:{uuid:a},select:{content:!0}});f=b?.content??null}let h=await e.z.idea.update({where:{uuid:a},data:c,include:{project:{select:{uuid:!0,name:!0}}}});if(g.B.emitChange({companyUuid:h.companyUuid,projectUuid:h.project.uuid,entityType:"idea",entityUuid:h.uuid,action:"updated"}),d){let a=["title","content"].filter(a=>void 0!==c[a]);a.length>0&&await k.createActivity({companyUuid:h.companyUuid,projectUuid:h.project.uuid,targetType:"idea",targetUuid:h.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"edited",value:{changedFields:a}})}return void 0!==c.content&&d&&c.content&&D(h.companyUuid,h.project.uuid,h.uuid,h.title,f,c.content,d.actorType,d.actorUuid).catch(a=>n.default.error({err:a},"Failed to process idea mentions")),s(h)}async function z(a,b){let c=new Set,d=[a];for(;d.length>0;){let f=await e.z.idea.findMany({where:{companyUuid:b,parentUuid:{in:d}},select:{uuid:!0}})??[],g=[];for(let b of f)b.uuid!==a&&(c.has(b.uuid)||(c.add(b.uuid),g.push(b.uuid)));d=g}return[...c]}async function A(a,b,c,d){let f=await e.z.idea.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!f)throw Error("Idea not found");let h=f.parentUuid??null;if(b){if(b===a)throw Error("An idea cannot be its own parent");let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!d)throw Error("Parent idea not found");if(d.projectUuid!==f.projectUuid)throw Error("Parent idea must be in the same project");let g=new Set,h=d.parentUuid;for(;h;){if(h===a)throw Error("Cannot set parent: would create a cycle");if(g.has(h))break;g.add(h);let b=await e.z.idea.findFirst({where:{uuid:h,companyUuid:c},select:{parentUuid:!0}});h=b?.parentUuid??null}}let i=await e.z.idea.update({where:{uuid:a},data:{parentUuid:b??null},include:{project:{select:{uuid:!0,name:!0}}}});g.B.emitChange({companyUuid:i.companyUuid,projectUuid:i.projectUuid,entityType:"idea",entityUuid:i.uuid,action:"updated"});let j=i.parentUuid??null;d&&j!==h&&await k.createActivity({companyUuid:i.companyUuid,projectUuid:i.projectUuid,targetType:"idea",targetUuid:i.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"reparented",value:{fromParentUuid:h,toParentUuid:j}});let l=await s(i);return l.parentUuid=i.parentUuid,l}async function B({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,instanceUuid:i}){let j=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!j||j.assigneeUuid)throw new h.Yy("Idea");let k=p(j.status);if("elaborated"===k)throw Error("Cannot claim an elaborated Idea");let l=await r(b,c,d,i),m=await e.z.idea.update({where:{uuid:a},data:{status:"elaborating",assigneeType:l.assigneeType,assigneeUuid:l.assigneeUuid,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:m.companyUuid,projectUuid:m.project.uuid,entityType:"idea",entityUuid:m.uuid,action:"updated"}),s(m)}async function C(a){let b=await e.z.idea.findUnique({where:{uuid:a}});if(!b)throw Error("Idea not found");let c=p(b.status);if("elaborated"===c)throw Error("Cannot release an elaborated Idea");let d=await e.z.idea.update({where:{uuid:a},data:{status:"open",assigneeType:null,assigneeUuid:null,assignedAt:null,assignedByUuid:null,elaborationDepth:null,elaborationStatus:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.project.uuid,entityType:"idea",entityUuid:d.uuid,action:"updated"}),s(d)}async function D(a,b,c,d,e,f,g,h){let i=e?j.Xs(e):[],l=j.Xs(f),m=new Set(i.map(a=>`${a.type}:${a.uuid}`)),n=l.filter(a=>!m.has(`${a.type}:${a.uuid}`));if(0!==n.length)for(let e of(await j.AM({companyUuid:a,sourceType:"idea",sourceUuid:c,content:f,actorType:g,actorUuid:h,projectUuid:b,entityTitle:d}),n))(e.type!==g||e.uuid!==h)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:"idea",targetUuid:c,actorType:g,actorUuid:h,action:"mentioned",value:{mentionedType:e.type,mentionedUuid:e.uuid,mentionedName:e.displayName,sourceType:"idea",sourceUuid:c}})}async function E(a){let b=await e.z.idea.findUnique({where:{uuid:a},select:{companyUuid:!0}});b&&await e.z.idea.updateMany({where:{companyUuid:b.companyUuid,parentUuid:a},data:{parentUuid:null}});let c=await e.z.idea.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:c.companyUuid,projectUuid:c.projectUuid,entityType:"idea",entityUuid:c.uuid,action:"deleted"}),c}async function F(a,b,c,d,f="user"){let h=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});if(!h)throw new i.hD("NOT_FOUND","Idea not found",404);let j=await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0,name:!0}});if(!j)throw new i.hD("NOT_FOUND","Target project not found",404);if(h.projectUuid===c)throw new i.hD("BAD_REQUEST","Idea is already in the target project",400);let l=h.projectUuid,m=await z(b,a),n=[b,...m],o=await e.z.$transaction(async d=>{let e=(await d.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:n.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),f=(await d.idea.updateMany({where:{companyUuid:a,uuid:{in:n}},data:{projectUuid:c}})).count;h.parentUuid&&await d.idea.update({where:{uuid:b},data:{parentUuid:null}});let g=0,i=0,j=0,k=[],l=[];if(e.length>0){let[b,f]=await Promise.all([d.document.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}}),d.task.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}})]);k=b.map(a=>a.uuid),l=f.map(a=>a.uuid),g=(await d.proposal.updateMany({where:{companyUuid:a,uuid:{in:e}},data:{projectUuid:c}})).count,i=(await d.document.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count,j=(await d.task.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count}let m=await d.activity.updateMany({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:n}},{targetType:"proposal",targetUuid:{in:e}},{targetType:"task",targetUuid:{in:l}},{targetType:"document",targetUuid:{in:k}}]},data:{projectUuid:c}});return{ideas:f,proposals:g,documents:i,tasks:j,activities:m.count}});await k.createActivity({companyUuid:a,projectUuid:c,targetType:"idea",targetUuid:b,actorType:f,actorUuid:d,action:"moved",value:{fromProjectUuid:l,fromProjectName:h.project.name,toProjectUuid:c,toProjectName:j.name,moved:o}}),g.B.emitChange({companyUuid:a,projectUuid:l,entityType:"idea",entityUuid:b,action:"updated"}),g.B.emitChange({companyUuid:a,projectUuid:c,entityType:"idea",entityUuid:b,action:"updated"});let p=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return{...await s(p),moved:o}}async function G(a,b,c){let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0,projectUuid:!0}});if(!d)throw new i.hD("NOT_FOUND","Idea not found",404);if(!await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}))throw new i.hD("NOT_FOUND","Target project not found",404);if(d.projectUuid===c)throw new i.hD("BAD_REQUEST","Idea is already in the target project",400);let f=await z(b,a),g=[b,...f],h=(await e.z.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:g.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),j=0,k=0,l=[],m=[];if(h.length>0){let[b,c]=await Promise.all([e.z.document.findMany({where:{companyUuid:a,proposalUuid:{in:h}},select:{uuid:!0}}),e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:h}},select:{uuid:!0}})]);l=b.map(a=>a.uuid),m=c.map(a=>a.uuid),j=l.length,k=m.length}let n=await e.z.activity.count({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:g}},{targetType:"proposal",targetUuid:{in:h}},{targetType:"task",targetUuid:{in:m}},{targetType:"document",targetUuid:{in:l}}]}});return{moved:{ideas:g.length,proposals:h.length,documents:j,tasks:k,activities:n}}}function H(a){switch(p(a.ideaStatus)){case"open":default:return{derivedStatus:"todo",badgeHint:"open"};case"elaborating":if("pending_answers"===a.elaborationStatus)return{derivedStatus:"human_conduct_required",badgeHint:"answer_questions"};return{derivedStatus:"in_progress",badgeHint:"researching"};case"elaborated":if(a.hasPendingProposal)return{derivedStatus:"human_conduct_required",badgeHint:"review_proposal"};if(a.hasApprovedProposal){if(a.taskStatuses.some(a=>"to_verify"===a))return{derivedStatus:"human_conduct_required",badgeHint:"verify_work"};if(a.taskStatuses.length>0&&a.taskStatuses.every(a=>"done"===a||"closed"===a))return{derivedStatus:"done",badgeHint:"done"};return{derivedStatus:"in_progress",badgeHint:"building"}}return{derivedStatus:"in_progress",badgeHint:"planning"}}}async function I(a,b){let c=await e.z.idea.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0,parentUuid:!0,createdAt:!0,updatedAt:!0},orderBy:{createdAt:"desc"}}),d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);let g=await e.z.proposal.findMany({where:{companyUuid:a,projectUuid:b,status:{in:["approved","pending"]}},select:{uuid:!0,status:!0,inputUuids:!0,createdAt:!0},orderBy:{createdAt:"desc"}}),h=new Map,i=new Set,j=new Map;for(let a of g){let b=a.inputUuids;if(Array.isArray(b)){for(let c of b)if(j.set(c,(j.get(c)??0)+1),"pending"===a.status)i.add(c);else if("approved"===a.status){let b=h.get(c);(!b||a.createdAt>b.createdAt)&&h.set(c,{uuid:a.uuid,createdAt:a.createdAt})}}}let k=[...new Set([...h.values()].map(a=>a.uuid))],l=new Map;if(k.length>0)for(let b of(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:k}},select:{proposalUuid:!0,status:!0}}))){if(!b.proposalUuid)continue;let a=l.get(b.proposalUuid)||[];a.push(b.status),l.set(b.proposalUuid,a)}return c.map(a=>{let c=h.get(a.uuid),d=c&&l.get(c.uuid)||[],{derivedStatus:e,badgeHint:g}=H({ideaStatus:a.status,elaborationStatus:a.elaborationStatus,hasPendingProposal:i.has(a.uuid),hasApprovedProposal:!!c,taskStatuses:d});return{uuid:a.uuid,title:a.title,status:a.status,derivedStatus:e,badgeHint:g,createdAt:a.createdAt,updatedAt:a.updatedAt,projectUuid:b,proposalCount:j.get(a.uuid)??0,taskCount:d.length,parentUuid:a.parentUuid??null,childCount:f.get(a.uuid)??0}})}let M=["todo","in_progress","human_conduct_required","done"];async function J(a,b){let c=await I(a,b),d={},e={};for(let a of M)d[a]=[],e[a]=0;for(let a of c){let b=a.derivedStatus,c={uuid:a.uuid,title:a.title,status:a.status,derivedStatus:b,badgeHint:a.badgeHint,createdAt:a.createdAt.toISOString(),parentUuid:a.parentUuid,childCount:a.childCount};d[b]&&(d[b].push(c),e[b]++)}return{groups:d,counts:e}}d()}catch(a){d(a)}})},70369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bp:()=>u,N_:()=>q,OQ:()=>y,Oi:()=>w,Rk:()=>r,Uc:()=>C,Vn:()=>D,i2:()=>B,k3:()=>E,mX:()=>z,sB:()=>t,ub:()=>s,y9:()=>A});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=a([f,i,j,k,l]);[f,i,j,k,l]=m.then?(await m)():m;let x=g.default.child({module:"daemon-instruction.service"});class y extends Error{constructor(){super("Daemon session not found"),this.code="session_not_visible",this.name="SessionNotVisibleError"}}class z extends Error{constructor(){super("Connection not found"),this.code="connection_not_visible",this.name="ConnectionNotVisibleError"}}class A 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 B 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 C 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 n(a){let b=(a??"").trim();if(0===b.length)throw new C("empty");if(b.length>4e3)throw new C("too_long");return b}async function o(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 p(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 q(a){try{(0,j.s7)({companyUuid:a.companyUuid,targetConnectionUuid:a.originConnectionUuid,command:"deliver_turn",turnUuid:a.turnUuid})}catch(b){x.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 r(a,b){let c=n(b.instructionText),d=await o(a,b.sessionUuid);if(!d)throw new y;await (0,k.assertContinuable)(a.companyUuid,b.sessionUuid);let e=await p({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});return q({companyUuid:a.companyUuid,originConnectionUuid:d.originConnectionUuid,turnUuid:e.uuid}),{turn:e}}async function s(a,b){let c=n(b.instructionText),d=await v(a,b.agentUuid),f=await (0,l.HC)(a.companyUuid,b.agentUuid,b.connectionUuid);if(!d||!f)throw new z;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new A(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 p({auth:a,agentUuid:b.agentUuid,sessionUuid:h.uuid,sessionId:g,directIdeaUuid:null,instructionText:c});return q({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:i.uuid}),{session:h,turn:i}}class D extends Error{constructor(){super("Project not found"),this.code="project_not_visible",this.name="ProjectNotVisibleError"}}class E 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}}async function t(a,b){let c=await v(a,b.agentUuid),d=await (0,l.HC)(a.companyUuid,b.agentUuid,b.connectionUuid);if(!c||!d)throw new z;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new A(b.connectionUuid);let g=await f.z.project.findFirst({where:{uuid:b.projectUuid,companyUuid:a.companyUuid},select:{uuid:!0,name:!0}});if(!g)throw new D;let i=await f.z.daemonConnection.findFirst({where:{uuid:b.connectionUuid,companyUuid:a.companyUuid},select:{agentInstanceUuid:!0}});if(!i?.agentInstanceUuid)throw new E(b.connectionUuid);let j=i.agentInstanceUuid,m=b.descriptionText?.trim()??"";if(0===m.length)throw new C("empty");let o=(0,e.randomUUID)(),p=n(function(a){let b=a.projectName?.trim()?`"${a.projectName.trim()}" (projectUuid: ${a.projectUuid})`:`projectUuid: ${a.projectUuid}`;return[`[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\n--- User's idea description ---",a.descriptionText].join("\n")}({ideaUuid:o,projectUuid:g.uuid,projectName:g.name,descriptionText:m})),{ideaRow:r,sessionRow:s,turnRow:t}=await f.z.$transaction(async c=>{let d=await c.idea.create({data:{uuid:o,companyUuid:a.companyUuid,projectUuid:g.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)}…`}(m),content:m,status:"elaborating",assigneeType:"agent_instance",assigneeUuid:j,assignedAt:new Date,assignedByUuid:a.actorUuid,createdByUuid:a.actorUuid},select:{uuid:!0,title:!0,content:!0,status:!0,projectUuid:!0,createdAt:!0}}),e=await c.daemonSession.create({data:{companyUuid:a.companyUuid,agentUuid:b.agentUuid,sessionId:o,directIdeaUuid:o,originConnectionUuid:b.connectionUuid,status:"active"}}),f=await c.daemonSessionTurn.create({data:{sessionUuid:e.uuid,seq:1,trigger:"human_instruction",promptText:p,status:"pending"}});return{ideaRow:d,sessionRow:e,turnRow:f}}),u={uuid:s.uuid,agentUuid:s.agentUuid,sessionId:s.sessionId,directIdeaUuid:s.directIdeaUuid,originConnectionUuid:s.originConnectionUuid,status:s.status,title:s.title,lastTurnAt:s.lastTurnAt.toISOString(),createdAt:s.createdAt.toISOString(),updatedAt:s.updatedAt.toISOString()},w={uuid:t.uuid,sessionUuid:t.sessionUuid,seq:t.seq,trigger:t.trigger,promptText:t.promptText,status:t.status,interruptedReason:t.interruptedReason,executionUuid:t.executionUuid,startedAt:t.startedAt?t.startedAt.toISOString():null,endedAt:t.endedAt?t.endedAt.toISOString():null,createdAt:t.createdAt.toISOString()},x={uuid:r.uuid,title:r.title,content:r.content,status:r.status,projectUuid:r.projectUuid,createdAt:r.createdAt.toISOString()};return(0,k.publishTranscriptEvent)({companyUuid:a.companyUuid,sessionUuid:u.uuid,trigger:"turn_created",turn:w,messages:[]}),h.B.emitChange({companyUuid:a.companyUuid,projectUuid:g.uuid,entityType:"idea",entityUuid:x.uuid,action:"created"}),q({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:w.uuid}),{idea:x,session:u,turn:w}}async function u(a,b){let c=n(b.instructionText),d=await o(a,b.sessionUuid);if(!d)throw new y;if(await (0,l.j8)(a.companyUuid,d.originConnectionUuid))throw new B(d.originConnectionUuid);if(!await (0,l.HC)(a.companyUuid,d.agentUuid,b.connectionUuid))throw new z;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new A(b.connectionUuid);await f.z.daemonSession.update({where:{uuid:b.sessionUuid,companyUuid:a.companyUuid},data:{originConnectionUuid:b.connectionUuid}});let e=await p({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});q({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:e.uuid});let g=await f.z.daemonSession.findUnique({where:{uuid:b.sessionUuid}});if(!g)throw Error(`repointSessionOriginAndSend: session ${b.sessionUuid} missing after re-point`);return{session:{uuid:g.uuid,agentUuid:g.agentUuid,sessionId:g.sessionId,directIdeaUuid:g.directIdeaUuid,originConnectionUuid:g.originConnectionUuid,status:g.status,title:g.title,lastTurnAt:g.lastTurnAt.toISOString(),createdAt:g.createdAt.toISOString(),updatedAt:g.updatedAt.toISOString()},turn:e}}async function v(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 w(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),(0,f.LS)(a.createdByUuid)]),e=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),g=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),h=(a.acceptanceCriteriaItems||[]).map(q),{status:i,summary:j}=p(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:h,acceptanceStatus:i,acceptanceSummary:j,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:e,dependedBy:g,commentCount:b,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function t(a,b){if(0===a.length)return[];let c=[],d=[],e=[];for(let b of a)b.assigneeType&&b.assigneeUuid&&(c.push({type:b.assigneeType,uuid:b.assigneeUuid}),"agent_instance"===b.assigneeType&&e.push(b.assigneeUuid)),b.assignedByUuid&&c.push({type:"user",uuid:b.assignedByUuid}),d.push(b.createdByUuid);let[g,h,i]=await Promise.all([(0,f.Uo)(c),(0,f.Xx)(d),(0,f.dI)(e)]);return a.map(a=>{let c=null;if(a.assigneeType&&a.assigneeUuid){let b=g.get(a.assigneeUuid);if(b){let d=null;if(a.assignedByUuid){let b=g.get(a.assignedByUuid);b&&(d={type:"user",uuid:a.assignedByUuid,name:b})}let e="agent_instance"===a.assigneeType?i.get(a.assigneeUuid):void 0;c={type:a.assigneeType,uuid:a.assigneeUuid,name:b,assignedAt:a.assignedAt?.toISOString()??null,assignedBy:d,...e?{instance:e}:{}}}}let d=h.get(a.createdByUuid)??null,e=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),f=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),j=(a.acceptanceCriteriaItems||[]).map(q),{status:k,summary:l}=p(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:j,acceptanceStatus:k,acceptanceSummary:l,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:e,dependedBy:f,commentCount:b[a.uuid]??0,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}})}let S={dependsOn:{select:{dependsOn:{select:{uuid:!0,title:!0,status:!0}}}},dependedBy:{select:{task:{select:{uuid:!0,title:!0,status:!0}}}},acceptanceCriteriaItems:{orderBy:{sortOrder:"asc"}}};async function u({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,priority:g,proposalUuids:h}){let j={projectUuid:b,companyUuid:a,...f&&{status:f},...g&&{priority:g},...h&&h.length>0&&{proposalUuid:{in:h}}},[k,l]=await Promise.all([e.z.task.findMany({where:j,skip:c,take:d,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:j})]),m=await (0,i.uA)(a,"task",k.map(a=>a.uuid));return{tasks:await t(k,m),total:l}}async function v(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},...S}});if(!c)return null;let d=await e.z.comment.count({where:{companyUuid:a,targetType:"task",targetUuid:b}});return s(c,d)}async function w(a,b){return e.z.task.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){let b=await e.z.task.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,description:a.description,status:"open",priority:a.priority||"medium",storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"task",entityUuid:b.uuid,action:"created"}),s(b)}async function y(a,b,c){let d=null;if(void 0!==b.description&&c){let b=await e.z.task.findUnique({where:{uuid:a},select:{description:!0}});d=b?.description??null}let f=await e.z.$transaction(async c=>{if(b.status&&"done"!==b.status){let b=await c.task.findUnique({where:{uuid:a},select:{status:!0}});b?.status==="to_verify"&&await c.acceptanceCriterion.updateMany({where:{taskUuid:a},data:{status:"pending",evidence:null,markedByType:null,markedBy:null,markedAt:null,devStatus:"pending",devEvidence:null,devMarkedByType:null,devMarkedBy:null,devMarkedAt:null}})}return c.task.update({where:{uuid:a},data:b,include:{project:{select:{uuid:!0,name:!0}}}})});return g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.project.uuid,entityType:"task",entityUuid:f.uuid,action:"updated"}),void 0!==b.description&&c&&b.description&&I(f.companyUuid,f.project.uuid,"task",f.uuid,f.title,d,b.description,c.actorType,c.actorUuid).catch(a=>l.default.error({err:a},"Failed to process task mentions")),s(f)}async function z({taskUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,instanceUuid:i}){try{let h=await r(b,c,d,i),j=await e.z.task.update({where:{uuid:a,status:{in:["open","assigned"]}},data:{status:"assigned",assigneeType:h.assigneeType,assigneeUuid:h.assigneeUuid,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:j.companyUuid,projectUuid:j.project.uuid,entityType:"task",entityUuid:j.uuid,action:"updated"}),s(j)}catch(a){if((0,h.Ik)(a))throw new h.Yy("Task");throw a}}async function A(a){try{let b=await e.z.task.update({where:{uuid:a,status:"assigned"},data:{status:"open",assigneeType:null,assigneeUuid:null,assignedAt:null,assignedByUuid:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.project.uuid,entityType:"task",entityUuid:b.uuid,action:"updated"}),s(b)}catch(a){if((0,h.Ik)(a))throw new h.nm("Task");throw a}}async function B(a){let b=await e.z.task.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.projectUuid,entityType:"task",entityUuid:b.uuid,action:"deleted"}),b}async function C(a,b){if(0===b.length)return[];let c=b.map((b,c)=>e.z.acceptanceCriterion.create({data:{taskUuid:a,description:b.description,required:b.required??!0,sortOrder:b.sortOrder??c}}));return(await Promise.all(c)).map(q)}async function D(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");if(!(0,m.hY)(c))throw Error(m.se);let f=(0,m.Ch)(c),h=await e.z.$transaction(async a=>(await a.acceptanceCriterion.deleteMany({where:{taskUuid:b}}),f.length>0&&await a.acceptanceCriterion.createMany({data:f.map((a,c)=>({taskUuid:b,description:a.description,required:a.required,sortOrder:c}))}),a.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}})));return g.B.emitChange({companyUuid:a,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),h.map(q)}async function E(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{status:a.status,evidence:a.evidence??null,markedByType:d.type,markedBy:d.actorUuid,markedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),G(a,b)}async function F(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{devStatus:a.devStatus,devEvidence:a.devEvidence??null,devMarkedByType:d.type,devMarkedBy:d.actorUuid,devMarkedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),G(a,b)}async function G(a,b){if(!await e.z.task.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Task not found");let c=await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}}),d=c.map(q),{status:f,summary:g}=p(c);return{items:d,status:f,summary:g}}async function H(a){let b=await e.z.acceptanceCriterion.findMany({where:{taskUuid:a},orderBy:{sortOrder:"asc"}});if(0===b.length||b.filter(a=>a.required).every(a=>"passed"===a.status))return{allowed:!0};let{summary:c}=p(b),d=b.filter(a=>a.required&&"passed"!==a.status).map(q);return{allowed:!1,reason:`Not all required acceptance criteria are passed. Required: ${c.required}, Passed: ${c.requiredPassed}, Failed: ${c.requiredFailed}, Pending: ${c.requiredPending}`,summary:c,unresolvedCriteria:d}}async function I(a,b,c,d,e,f,g,h,i){let l=f?j.Xs(f):[],m=j.Xs(g),n=new Set(l.map(a=>`${a.type}:${a.uuid}`)),o=m.filter(a=>!n.has(`${a.type}:${a.uuid}`));if(0!==o.length)for(let f of(await j.AM({companyUuid:a,sourceType:c,sourceUuid:d,content:g,actorType:h,actorUuid:i,projectUuid:b,entityTitle:e}),o))(f.type!==h||f.uuid!==i)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:h,actorUuid:i,action:"mentioned",value:{mentionedType:f.type,mentionedUuid:f.uuid,mentionedName:f.displayName,sourceType:c,sourceUuid:d}})}async function J(a,b){let c=await e.z.taskDependency.findMany({select:{taskUuid:!0,dependsOnUuid:!0}}),d=new Map;for(let a of c)d.has(a.taskUuid)||d.set(a.taskUuid,[]),d.get(a.taskUuid).push(a.dependsOnUuid);let f=new Set,g=[a];for(;g.length>0;){let a=g.pop();if(a===b)return!0;if(!f.has(a))for(let b of(f.add(a),d.get(a)||[]))f.has(b)||g.push(b)}return!1}async function K(a,b,c){if(b===c)throw Error("A task cannot depend on itself");let[d,f]=await Promise.all([e.z.task.findFirst({where:{uuid:b,companyUuid:a}}),e.z.task.findFirst({where:{uuid:c,companyUuid:a}})]);if(!d)throw Error("Task not found");if(!f)throw Error("Dependency task not found");if(d.projectUuid!==f.projectUuid)throw Error("Tasks must belong to the same project");if(await J(c,b))throw Error("Adding this dependency would create a cycle");let h=await e.z.taskDependency.create({data:{taskUuid:b,dependsOnUuid:c}});return g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.projectUuid,entityType:"task",entityUuid:c,action:"updated"}),{taskUuid:h.taskUuid,dependsOnUuid:h.dependsOnUuid,createdAt:h.createdAt}}async function L(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");let f=await e.z.task.findFirst({where:{uuid:c,companyUuid:a}});await e.z.taskDependency.deleteMany({where:{taskUuid:b,dependsOnUuid:c}}),g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),f&&g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.projectUuid,entityType:"task",entityUuid:c,action:"updated"})}async function M(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:S});if(!c)throw Error("Task not found");return{dependsOn:c.dependsOn.map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),dependedBy:c.dependedBy.map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status}))}}async function N({companyUuid:a,projectUuid:b,proposalUuids:c}){let d={projectUuid:b,companyUuid:a,status:{in:["open","assigned"]},...c&&c.length>0&&{proposalUuid:{in:c}},NOT:{dependsOn:{some:{dependsOn:{status:{notIn:["done","closed"]}}}}}},[f,g]=await Promise.all([e.z.task.findMany({where:d,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:d})]),h=await (0,i.uA)(a,"task",f.map(a=>a.uuid));return{tasks:await t(f,h),total:g}}async function O(a){let b=await e.z.taskDependency.findMany({where:{taskUuid:a},select:{dependsOn:{select:{uuid:!0,title:!0,status:!0,assigneeType:!0,assigneeUuid:!0}}}});if(0===b.length)return{resolved:!0,blockers:[]};let c=b.filter(a=>"done"!==a.dependsOn.status&&"closed"!==a.dependsOn.status);if(0===c.length)return{resolved:!0,blockers:[]};let d=c.map(a=>a.dependsOn.uuid),[g,h]=await Promise.all([e.z.sessionTaskCheckin.findMany({where:{taskUuid:{in:d},checkoutAt:null},select:{taskUuid:!0,sessionUuid:!0,session:{select:{name:!0}}}}),(0,f.Uo)(c.filter(a=>a.dependsOn.assigneeType&&a.dependsOn.assigneeUuid).map(a=>({type:a.dependsOn.assigneeType,uuid:a.dependsOn.assigneeUuid})))]),i=new Map;for(let a of g)i.set(a.taskUuid,{sessionUuid:a.sessionUuid,sessionName:a.session.name});let j=c.map(a=>{let b=a.dependsOn,c=null;if(b.assigneeType&&b.assigneeUuid){let a=h.get(b.assigneeUuid);a&&(c={type:b.assigneeType,uuid:b.assigneeUuid,name:a})}return{uuid:b.uuid,title:b.title,status:b.status,assignee:c,sessionCheckin:i.get(b.uuid)??null}});return{resolved:!1,blockers:j}}async function P(a,b){let[c,d]=await Promise.all([e.z.task.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,priority:!0,proposalUuid:!0}}),e.z.taskDependency.findMany({where:{task:{companyUuid:a,projectUuid:b}},select:{taskUuid:!0,dependsOnUuid:!0}})]);return{nodes:c.map(a=>({uuid:a.uuid,title:a.title,status:a.status,priority:a.priority,proposalUuid:a.proposalUuid??null})),edges:d.map(a=>({from:a.taskUuid,to:a.dependsOnUuid}))}}d()}catch(a){d(a)}})},88437:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{createActivity:()=>k,listActivities:()=>i,listActivitiesWithActorNames:()=>j});var e=c(52618),f=c(42558),g=c(76872),h=a([e,g]);async function i({companyUuid:a,projectUuid:b,skip:c,take:d,targetType:f,targetUuid:g}){let h={projectUuid:b,companyUuid:a,...f&&{targetType:f},...g&&{targetUuid:g}},[i,j]=await Promise.all([e.z.activity.findMany({where:h,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,targetType:!0,targetUuid:!0,actorType:!0,actorUuid:!0,action:!0,value:!0,sessionUuid:!0,sessionName:!0,createdAt:!0}}),e.z.activity.count({where:h})]);return{activities:i,total:j}}async function j(a){let{activities:b,total:c}=await i(a);return{activities:await Promise.all(b.map(async a=>{let b=await (0,g.lR)(a.actorType,a.actorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,action:a.action,actorType:a.actorType,actorName:b||"Unknown",value:a.value,sessionUuid:a.sessionUuid,sessionName:a.sessionName,createdAt:a.createdAt.toISOString()}})),total:c}}async function k({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l}){let m=await e.z.activity.create({data:{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j||void 0,sessionUuid:k||void 0,sessionName:l||void 0}});return f.B.emit("activity",{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l,uuid:m.uuid}),m}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},90494:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AM:()=>m,Xs:()=>l,_L:()=>r});var e=c(52618),f=c(76872),g=c(37943),h=c(25736),i=c(97515),j=c(93419),k=a([e,f,g,i,j]);[e,f,g,i,j]=k.then?(await k)():k;let t=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\?([^)]*))?\)/gi;function l(a){let b,c=[],d=new Set;for(t.lastIndex=0;null!==(b=t.exec(a))&&!(c.length>=10);){let a=b[1],e=b[2].toLowerCase(),f=b[3].toLowerCase(),{pinnedHost:g,pinnedCwd:i}=(0,h.vE)(b[4]),j=`${e}:${f}`;if(!d.has(j)){d.add(j);let b={type:e,uuid:f,displayName:a};(null!==g||null!==i)&&(b.pinnedHost=g,b.pinnedCwd=i),c.push(b)}}return c}async function m(a){let{companyUuid:b,sourceType:c,sourceUuid:d,content:h,actorType:i,actorUuid:j,projectUuid:k,entityTitle:m}=a,n=l(h);if(0===n.length)return;let o=n.filter(a=>a.type!==i||a.uuid!==j);if(0===o.length)return;let p=[];for(let a of o)await s(b,a.type,a.uuid)&&p.push(a);if(0===p.length)return;await e.z.mention.createMany({data:p.map(a=>({companyUuid:b,sourceType:c,sourceUuid:d,mentionedType:a.type,mentionedUuid:a.uuid,actorType:i,actorUuid:j}))});let q=await (0,f.lR)(i,j)??"Someone",r=await e.z.project.findUnique({where:{uuid:k},select:{name:!0}}),u=r?.name??"Unknown Project",v=function(a){let b=a.replace(t,"@$1");return b.length<=120?b:b.substring(0,117)+"..."}(h),w=c,x=d;if("comment"===c){let a=await e.z.comment.findUnique({where:{uuid:d},select:{targetType:!0,targetUuid:!0}});a&&(w=a.targetType,x=a.targetUuid)}let y=[];for(let a of p){if(!(await g.lX(b,a.type,a.uuid)).mentioned)continue;let c=`${q} mentioned you: "${v}"`;y.push({companyUuid:b,projectUuid:k,recipientType:a.type,recipientUuid:a.uuid,entityType:w,entityUuid:x,entityTitle:m,projectName:u,action:"mentioned",message:c,actorType:i,actorUuid:j,actorName:q,pinnedHost:a.pinnedHost,pinnedCwd:a.pinnedCwd})}y.length>0&&await g.Xm(y)}function n(a){return"agent"===a.type?+!a.online:2}function o(a,b){let c=n(a),d=n(b);if(c!==d)return c-d;if(0===c){let c=a.activeCount??0,d=b.activeCount??0;return c!==d?c-d:a.name.localeCompare(b.name)}return 0}async function p(a,b){let c=b.filter(a=>"agent"===a.type).map(a=>a.uuid);if(0===c.length)return;let d=Date.now(),f=await e.z.daemonConnection.findMany({where:{companyUuid:a,agentUuid:{in:c}},select:{agentUuid:!0,status:!0,lastSeenAt:!0}}),g=new Set;for(let a of f){let b=d-a.lastSeenAt.getTime()<=i.BP;"online"===a.status&&b&&g.add(a.agentUuid)}let h=await e.z.daemonExecution.groupBy({by:["agentUuid"],where:{companyUuid:a,agentUuid:{in:c},status:{in:[...j.PF]}},_count:{_all:!0}}),k=new Map;for(let a of h)k.set(a.agentUuid,a._count._all);for(let a of b){if("agent"!==a.type)continue;let b=g.has(a.uuid);a.online=b,a.activeCount=b?k.get(a.uuid)??0:0}}async function q(a,b){let c=b.filter(a=>"agent"===a.type);if(0===c.length)return;let d=await Promise.all(c.map(async b=>{let c=(await (0,i._R)(a,b.uuid)).map(a=>({connectionUuid:a.uuid,host:a.host,cwd:a.cwd,effectiveStatus:a.effectiveStatus}));return{uuid:b.uuid,instances:c}})),e=new Map;for(let{uuid:a,instances:b}of d)e.set(a,b);for(let a of b)"agent"===a.type&&(a.instances=e.get(a.uuid)??[])}async function r(a){let b,{companyUuid:c,query:d,actorType:f,actorUuid:g,ownerUuid:h,limit:i=10,withInstances:j=!1}=a,k=Math.min(i,50),l=[];if("user"===f?b=g:"agent"===f&&h&&(b=h),!d){if(b)for(let a of(await e.z.agent.findMany({where:{companyUuid:c,ownerUuid:b},select:{uuid:!0,name:!0,roles:!0},orderBy:{createdAt:"desc"},take:k})))l.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await p(c,l),l.sort(o);let a=l.slice(0,Math.min(5,k));return j&&await q(c,a),a}for(let a of(await e.z.user.findMany({where:{companyUuid:c,OR:[{name:{contains:d,mode:"insensitive"}},{email:{contains:d,mode:"insensitive"}}]},select:{uuid:!0,name:!0,email:!0,avatarUrl:!0},take:k})))l.push({type:"user",uuid:a.uuid,name:a.name??a.email??"Unknown",email:a.email,avatarUrl:a.avatarUrl});let m={companyUuid:c,name:{contains:d,mode:"insensitive"}};for(let a of(b&&(m.ownerUuid=b),await e.z.agent.findMany({where:m,select:{uuid:!0,name:!0,roles:!0},take:k})))l.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await p(c,l),l.sort(o);let n=l.slice(0,k);return j&&await q(c,n),n}async function s(a,b,c){return"user"===b?!!await e.z.user.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}):!!await e.z.agent.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}})}d()}catch(a){d(a)}})}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=8497,exports.ids=[8497],exports.modules={72229:(a,b,c)=>{c.d(b,{b:()=>j});var d=c(21968),e=c(16551),f=c(10837),g="horizontal",h=["horizontal","vertical"],i=d.forwardRef((a,b)=>{var c;let{decorative:d,orientation:i=g,...j}=a,k=(c=i,h.includes(c))?i:g;return(0,f.jsx)(e.sG.div,{"data-orientation":k,...d?{role:"none"}:{"aria-orientation":"vertical"===k?k:void 0,role:"separator"},...j,ref:b})});i.displayName="Separator";var j=i},80501:(a,b,c)=>{c.r(b),c.d(b,{Arrow:()=>X,Content:()=>W,Portal:()=>V,Provider:()=>S,Root:()=>T,Tooltip:()=>C,TooltipArrow:()=>R,TooltipContent:()=>K,TooltipPortal:()=>I,TooltipProvider:()=>y,TooltipTrigger:()=>E,Trigger:()=>U,createTooltipScope:()=>s});var d=c(21968),e=c(22546),f=c(96090),g=c(42990),h=c(44768),i=c(22243),j=c(47536),k=c(66619),l=c(5030),m=c(16551),n=c(11156),o=c(15035),p=c(35014),q=c(10837),[r,s]=(0,g.A)("Tooltip",[j.Bk]),t=(0,j.Bk)(),u="TooltipProvider",v="tooltip.open",[w,x]=r(u),y=a=>{let{__scopeTooltip:b,delayDuration:c=700,skipDelayDuration:e=300,disableHoverableContent:f=!1,children:g}=a,h=d.useRef(!0),i=d.useRef(!1),j=d.useRef(0);return d.useEffect(()=>{let a=j.current;return()=>window.clearTimeout(a)},[]),(0,q.jsx)(w,{scope:b,isOpenDelayedRef:h,delayDuration:c,onOpen:d.useCallback(()=>{window.clearTimeout(j.current),h.current=!1},[]),onClose:d.useCallback(()=>{window.clearTimeout(j.current),j.current=window.setTimeout(()=>h.current=!0,e)},[e]),isPointerInTransitRef:i,onPointerInTransitChange:d.useCallback(a=>{i.current=a},[]),disableHoverableContent:f,children:g})};y.displayName=u;var z="Tooltip",[A,B]=r(z),C=a=>{let{__scopeTooltip:b,children:c,open:e,defaultOpen:f,onOpenChange:g,disableHoverableContent:h,delayDuration:k}=a,l=x(z,a.__scopeTooltip),m=t(b),[n,p]=d.useState(null),r=(0,i.B)(),s=d.useRef(0),u=h??l.disableHoverableContent,w=k??l.delayDuration,y=d.useRef(!1),[B,C]=(0,o.i)({prop:e,defaultProp:f??!1,onChange:a=>{a?(l.onOpen(),document.dispatchEvent(new CustomEvent(v))):l.onClose(),g?.(a)},caller:z}),D=d.useMemo(()=>B?y.current?"delayed-open":"instant-open":"closed",[B]),E=d.useCallback(()=>{window.clearTimeout(s.current),s.current=0,y.current=!1,C(!0)},[C]),F=d.useCallback(()=>{window.clearTimeout(s.current),s.current=0,C(!1)},[C]),G=d.useCallback(()=>{window.clearTimeout(s.current),s.current=window.setTimeout(()=>{y.current=!0,C(!0),s.current=0},w)},[w,C]);return d.useEffect(()=>()=>{s.current&&(window.clearTimeout(s.current),s.current=0)},[]),(0,q.jsx)(j.bL,{...m,children:(0,q.jsx)(A,{scope:b,contentId:r,open:B,stateAttribute:D,trigger:n,onTriggerChange:p,onTriggerEnter:d.useCallback(()=>{l.isOpenDelayedRef.current?G():E()},[l.isOpenDelayedRef,G,E]),onTriggerLeave:d.useCallback(()=>{u?F():(window.clearTimeout(s.current),s.current=0)},[F,u]),onOpen:E,onClose:F,disableHoverableContent:u,children:c})})};C.displayName=z;var D="TooltipTrigger",E=d.forwardRef((a,b)=>{let{__scopeTooltip:c,...g}=a,h=B(D,c),i=x(D,c),k=t(c),l=d.useRef(null),n=(0,f.s)(b,l,h.onTriggerChange),o=d.useRef(!1),p=d.useRef(!1),r=d.useCallback(()=>o.current=!1,[]);return d.useEffect(()=>()=>document.removeEventListener("pointerup",r),[r]),(0,q.jsx)(j.Mz,{asChild:!0,...k,children:(0,q.jsx)(m.sG.button,{"aria-describedby":h.open?h.contentId:void 0,"data-state":h.stateAttribute,...g,ref:n,onPointerMove:(0,e.mK)(a.onPointerMove,a=>{"touch"!==a.pointerType&&(p.current||i.isPointerInTransitRef.current||(h.onTriggerEnter(),p.current=!0))}),onPointerLeave:(0,e.mK)(a.onPointerLeave,()=>{h.onTriggerLeave(),p.current=!1}),onPointerDown:(0,e.mK)(a.onPointerDown,()=>{h.open&&h.onClose(),o.current=!0,document.addEventListener("pointerup",r,{once:!0})}),onFocus:(0,e.mK)(a.onFocus,()=>{o.current||h.onOpen()}),onBlur:(0,e.mK)(a.onBlur,h.onClose),onClick:(0,e.mK)(a.onClick,h.onClose)})})});E.displayName=D;var F="TooltipPortal",[G,H]=r(F,{forceMount:void 0}),I=a=>{let{__scopeTooltip:b,forceMount:c,children:d,container:e}=a,f=B(F,b);return(0,q.jsx)(G,{scope:b,forceMount:c,children:(0,q.jsx)(l.C,{present:c||f.open,children:(0,q.jsx)(k.Portal,{asChild:!0,container:e,children:d})})})};I.displayName=F;var J="TooltipContent",K=d.forwardRef((a,b)=>{let c=H(J,a.__scopeTooltip),{forceMount:d=c.forceMount,side:e="top",...f}=a,g=B(J,a.__scopeTooltip);return(0,q.jsx)(l.C,{present:d||g.open,children:g.disableHoverableContent?(0,q.jsx)(P,{side:e,...f,ref:b}):(0,q.jsx)(L,{side:e,...f,ref:b})})}),L=d.forwardRef((a,b)=>{let c=B(J,a.__scopeTooltip),e=x(J,a.__scopeTooltip),g=d.useRef(null),h=(0,f.s)(b,g),[i,j]=d.useState(null),{trigger:k,onClose:l}=c,m=g.current,{onPointerInTransitChange:n}=e,o=d.useCallback(()=>{j(null),n(!1)},[n]),p=d.useCallback((a,b)=>{let c=a.currentTarget,d={x:a.clientX,y:a.clientY},e=function(a,b){let c=Math.abs(b.top-a.y),d=Math.abs(b.bottom-a.y),e=Math.abs(b.right-a.x),f=Math.abs(b.left-a.x);switch(Math.min(c,d,e,f)){case f:return"left";case e:return"right";case c:return"top";case d:return"bottom";default:throw Error("unreachable")}}(d,c.getBoundingClientRect());j(function(a){let b=a.slice();return b.sort((a,b)=>a.x<b.x?-1:a.x>b.x?1:a.y<b.y?-1:1*!!(a.y>b.y)),function(a){if(a.length<=1)return a.slice();let b=[];for(let c=0;c<a.length;c++){let d=a[c];for(;b.length>=2;){let a=b[b.length-1],c=b[b.length-2];if((a.x-c.x)*(d.y-c.y)>=(a.y-c.y)*(d.x-c.x))b.pop();else break}b.push(d)}b.pop();let c=[];for(let b=a.length-1;b>=0;b--){let d=a[b];for(;c.length>=2;){let a=c[c.length-1],b=c[c.length-2];if((a.x-b.x)*(d.y-b.y)>=(a.y-b.y)*(d.x-b.x))c.pop();else break}c.push(d)}return(c.pop(),1===b.length&&1===c.length&&b[0].x===c[0].x&&b[0].y===c[0].y)?b:b.concat(c)}(b)}([...function(a,b,c=5){let d=[];switch(b){case"top":d.push({x:a.x-c,y:a.y+c},{x:a.x+c,y:a.y+c});break;case"bottom":d.push({x:a.x-c,y:a.y-c},{x:a.x+c,y:a.y-c});break;case"left":d.push({x:a.x+c,y:a.y-c},{x:a.x+c,y:a.y+c});break;case"right":d.push({x:a.x-c,y:a.y-c},{x:a.x-c,y:a.y+c})}return d}(d,e),...function(a){let{top:b,right:c,bottom:d,left:e}=a;return[{x:e,y:b},{x:c,y:b},{x:c,y:d},{x:e,y:d}]}(b.getBoundingClientRect())])),n(!0)},[n]);return d.useEffect(()=>()=>o(),[o]),d.useEffect(()=>{if(k&&m){let a=a=>p(a,m),b=a=>p(a,k);return k.addEventListener("pointerleave",a),m.addEventListener("pointerleave",b),()=>{k.removeEventListener("pointerleave",a),m.removeEventListener("pointerleave",b)}}},[k,m,p,o]),d.useEffect(()=>{if(i){let a=a=>{let b=a.target,c={x:a.clientX,y:a.clientY},d=k?.contains(b)||m?.contains(b),e=!function(a,b){let{x:c,y:d}=a,e=!1;for(let a=0,f=b.length-1;a<b.length;f=a++){let g=b[a],h=b[f],i=g.x,j=g.y,k=h.x,l=h.y;j>d!=l>d&&c<(k-i)*(d-j)/(l-j)+i&&(e=!e)}return e}(c,i);d?o():e&&(o(),l())};return document.addEventListener("pointermove",a),()=>document.removeEventListener("pointermove",a)}},[k,m,i,l,o]),(0,q.jsx)(P,{...a,ref:h})}),[M,N]=r(z,{isInside:!1}),O=(0,n.Dc)("TooltipContent"),P=d.forwardRef((a,b)=>{let{__scopeTooltip:c,children:e,"aria-label":f,onEscapeKeyDown:g,onPointerDownOutside:i,...k}=a,l=B(J,c),m=t(c),{onClose:n}=l;return d.useEffect(()=>(document.addEventListener(v,n),()=>document.removeEventListener(v,n)),[n]),d.useEffect(()=>{if(l.trigger){let a=a=>{let b=a.target;b?.contains(l.trigger)&&n()};return window.addEventListener("scroll",a,{capture:!0}),()=>window.removeEventListener("scroll",a,{capture:!0})}},[l.trigger,n]),(0,q.jsx)(h.qW,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:g,onPointerDownOutside:i,onFocusOutside:a=>a.preventDefault(),onDismiss:n,children:(0,q.jsxs)(j.UC,{"data-state":l.stateAttribute,...m,...k,ref:b,style:{...k.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,q.jsx)(O,{children:e}),(0,q.jsx)(M,{scope:c,isInside:!0,children:(0,q.jsx)(p.bL,{id:l.contentId,role:"tooltip",children:f||e})})]})})});K.displayName=J;var Q="TooltipArrow",R=d.forwardRef((a,b)=>{let{__scopeTooltip:c,...d}=a,e=t(c);return N(Q,c).isInside?null:(0,q.jsx)(j.i3,{...e,...d,ref:b})});R.displayName=Q;var S=y,T=C,U=E,V=I,W=K,X=R}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=8895,exports.ids=[8895],exports.modules={3461:(a,b,c)=>{c.d(b,{U:()=>e});var d=c(42377);let e=(0,d.createServerReference)("6052d9883918dd9baa074736be4368f6d77908c2a6",d.callServer,void 0,d.findSourceMapURL,"getProposalsForIdeaAction")},4284:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{a1:()=>g});var e=c(71255);c(62729);var f=a([e]);async function g(a){let b=await e.z.projectGroup.findMany({where:{companyUuid:a},orderBy:{createdAt:"asc"}}),c=b.map(a=>a.uuid),d=c.length>0?await e.z.project.groupBy({by:["groupUuid"],where:{companyUuid:a,groupUuid:{in:c}},_count:{_all:!0}}):[],f=new Map(d.map(a=>[a.groupUuid,a._count._all])),g=b.map(a=>({uuid:a.uuid,name:a.name,description:a.description,projectCount:f.get(a.uuid)??0,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()})),h=await e.z.project.count({where:{companyUuid:a,groupUuid:null}});return{groups:g,total:b.length,ungroupedCount:h}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},5527:(a,b,c)=>{c.d(b,{w:()=>q});var d=c(10837),e=c(21968),f=c(9222),g=c(76549),h=c(86460),i=c(58270),j=c(42424),k=c(70028);let l=new Set(["done","closed"]);function m({assignee:a,proposals:b,tasks:c}){return!!a&&("agent"===a.type||"agent_instance"===a.type)&&!!b&&!!b.some(a=>"approved"===a.status)&&!!c&&!!c.some(a=>!l.has(a.status))&&!0}var n=c(42377);let o=(0,n.createServerReference)("409497599266cc70b8b9249fe47a4e75bffc2d39c3",n.callServer,void 0,n.findSourceMapURL,"startDevelopmentAction"),p={unauthorized:"errorGeneric",not_human:"errorGeneric",idea_not_found:"errorGeneric",assignee_not_agent:"errorAssigneeNotAgent",no_approved_proposal:"errorNoApprovedProposal",no_unfinished_tasks:"errorNoUnfinishedTasks",agent_offline:"errorAgentOffline",unknown:"errorGeneric"};function q({ideaUuid:a,assignee:b,proposals:c,tasks:l,onStarted:n}){var q;let r=(0,f.c)("startDevelopment"),s=(0,k.kz)()?.connections??[],[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(!1),x=b?"agent"===b.type?b.uuid:"agent_instance"===b.type?b.instance?.agentUuid??null:null:null,y=null!==x&&s.some(a=>a.agentUuid===x&&"online"===a.effectiveStatus),z=m({assignee:b,proposals:c,tasks:l}),A=m(q={assignee:b,proposals:c,tasks:l,agentOnline:y})&&q.agentOnline;if(!z||v)return v?(0,d.jsx)("span",{className:"text-[11px] text-[#00796B]",children:r("startedHint")}):null;let B=async()=>{u(!0);let b=await o(a);u(!1),b.success?(w(!0),g.oR.success(r("startedHint")),n?.()):g.oR.error(r(p[b.errorCode??"unknown"]))};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:B,disabled:!A||t,children:t?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.A,{className:"mr-2 h-4 w-4 animate-spin"}),r("starting")]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.A,{className:"mr-2 h-4 w-4"}),r("button")]})}),!y&&(0,d.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:r("offlineHint")})]})}},5797:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]])},11166:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{p:()=>g});var e=c(89998),f=a([e]);e=(f.then?(await f)():f)[0];let h={action:"yolo_requested",precondition:async({idea:a})=>{if("agent"!==a.assigneeType&&"agent_instance"!==a.assigneeType)throw new e.$("ASSIGNEE_NOT_AGENT","The Idea's assignee is not an agent — there is no daemon to wake");return{}},offlinePolicy:"require_online"};async function g({companyUuid:a,ideaUuid:b,actorUuid:c,actorType:d}){await (0,e.u)(h,{companyUuid:a,ideaUuid:b,actorUuid:c,actorType:d})}d()}catch(a){d(a)}})},22110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{e1:()=>o,em:()=>n,yu:()=>p,zS:()=>m});var e=c(2613);c(50785);var f=c(5562),g=c(9259),h=c(23733),i=c(71255),j=c(97307),k=c(12217),l=a([g,h,i]);async function m(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let c=await (0,h.t8)({companyUuid:b.companyUuid,ideaUuid:a});return{success:!0,data:c}}catch(a){return j.default.error({err:a},"Failed to get elaboration"),{success:!1,error:a instanceof Error?a.message:"Failed to get elaboration"}}}async function n(a,b,c){let d=await (0,g.d)();if(!d)return{success:!1,error:"Unauthorized"};try{let e=await (0,h.Rm)({companyUuid:d.companyUuid,ideaUuid:a,roundUuid:b,actorUuid:d.actorUuid,actorType:d.type,answers:c}),g=await i.z.idea.findFirst({where:{uuid:a,companyUuid:d.companyUuid}});return g&&((0,f.revalidatePath)(`/projects/${g.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${g.projectUuid}/ideas`)),{success:!0,data:e}}catch(a){return j.default.error({err:a},"Failed to submit elaboration answers"),{success:!1,error:a instanceof Error?a.message:"Failed to submit answers"}}}async function o(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};if("user"!==b.type&&"super_admin"!==b.type)return{success:!1,error:"Only users can verify elaboration"};try{let c=await (0,h.A7)({companyUuid:b.companyUuid,ideaUuid:a,actorUuid:b.actorUuid,actorType:b.type}),d=await i.z.idea.findFirst({where:{uuid:a,companyUuid:b.companyUuid}});return d&&((0,f.revalidatePath)(`/projects/${d.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${d.projectUuid}/ideas`)),{success:!0,data:c}}catch(a){return j.default.error({err:a},"Failed to verify elaboration"),{success:!1,error:a instanceof Error?a.message:"Failed to verify elaboration"}}}async function p(a,b){let c=await (0,g.d)();if(!c)return{success:!1,error:"Unauthorized"};try{await (0,h.Y_)({companyUuid:c.companyUuid,ideaUuid:a,actorUuid:c.actorUuid,actorType:c.type,reason:b});let d=await i.z.idea.findFirst({where:{uuid:a,companyUuid:c.companyUuid}});return d&&((0,f.revalidatePath)(`/projects/${d.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${d.projectUuid}/ideas`)),{success:!0}}catch(a){return j.default.error({err:a},"Failed to skip elaboration"),{success:!1,error:a instanceof Error?a.message:"Failed to skip elaboration"}}}[g,h,i]=l.then?(await l)():l,(0,k.D)([m,n,o,p]),(0,e.A)(m,"40e0356507f636560a182a0005ea4bf41f9f1e6f3a",null),(0,e.A)(n,"70e12e3baa87d7b6ed51ea8e0112f20c9229f18209",null),(0,e.A)(o,"40a762e8050c2f89bbe72ab597cd3abc85cf8d3382",null),(0,e.A)(p,"60e751d24b0d64a89c0040779bed094e66b1b377e5",null),d()}catch(a){d(a)}})},23157:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ax:()=>p,G3:()=>t,M$:()=>q,UD:()=>s,ZL:()=>r,qN:()=>o});var e=c(2613);c(50785);var f=c(5562),g=c(9259),h=c(61212),i=c(28774),j=c(61076),k=c(67738),l=c(97307),m=c(12217),n=a([g,h,i,j,k]);async function o(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let c=await (0,h.MY)(b.companyUuid,a);if(!c)return{success:!1,error:"Idea not found"};if("elaborated"===c.status)return{success:!1,error:"Idea is not available for assignment"};return await (0,h.Xo)({ideaUuid:a,companyUuid:b.companyUuid,assigneeType:b.type,assigneeUuid:b.actorUuid,assignedByUuid:b.actorUuid}),await (0,k.createActivity)({companyUuid:b.companyUuid,projectUuid:c.projectUuid,targetType:"idea",targetUuid:a,actorType:b.type,actorUuid:b.actorUuid,action:"assigned",value:{assigneeType:b.type,assigneeUuid:b.actorUuid}}),(0,f.revalidatePath)(`/projects/${c.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${c.projectUuid}/ideas`),{success:!0}}catch(a){return l.default.error({err:a},"Failed to claim idea"),{success:!1,error:"Failed to claim idea"}}}async function p(a,b,c){let d=await (0,g.d)();if(!d||"user"!==d.type)return{success:!1,error:"Unauthorized"};try{let e=await (0,h.MY)(d.companyUuid,a);if(!e)return{success:!1,error:"Idea not found"};if("elaborated"===e.status)return{success:!1,error:"Idea is not available for assignment"};return await (0,h.Xo)({ideaUuid:a,companyUuid:d.companyUuid,assigneeType:"agent",assigneeUuid:b,assignedByUuid:d.actorUuid,instanceUuid:c??void 0}),await (0,k.createActivity)({companyUuid:d.companyUuid,projectUuid:e.projectUuid,targetType:"idea",targetUuid:a,actorType:"user",actorUuid:d.actorUuid,action:"assigned",value:{assigneeType:"agent",assigneeUuid:b,...c?{instanceUuid:c}:{}}}),(0,f.revalidatePath)(`/projects/${e.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${e.projectUuid}/ideas`),{success:!0}}catch(a){return l.default.error({err:a},"Failed to claim idea to agent"),{success:!1,error:"Failed to claim idea"}}}async function q(a,b){let c=await (0,g.d)();if(!c||"user"!==c.type)return{success:!1,error:"Unauthorized"};try{let d=await (0,h.MY)(c.companyUuid,a);if(!d)return{success:!1,error:"Idea not found"};if("elaborated"===d.status)return{success:!1,error:"Idea is not available for assignment"};return await (0,h.Xo)({ideaUuid:a,companyUuid:c.companyUuid,assigneeType:"user",assigneeUuid:b,assignedByUuid:c.actorUuid}),(0,f.revalidatePath)(`/projects/${d.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${d.projectUuid}/ideas`),{success:!0}}catch(a){return l.default.error({err:a},"Failed to claim idea to user"),{success:!1,error:"Failed to claim idea"}}}async function r(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let c=await (0,h.MY)(b.companyUuid,a);if(!c)return{success:!1,error:"Idea not found"};if("elaborated"===c.status)return{success:!1,error:"Idea cannot be released from current status"};return await (0,h.h_)(c.uuid),(0,f.revalidatePath)(`/projects/${c.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${c.projectUuid}/ideas`),{success:!0}}catch(a){return l.default.error({err:a},"Failed to release idea"),{success:!1,error:"Failed to release idea"}}}async function s(){let a=await (0,g.d)();if(!a||"user"!==a.type)return{agents:[],users:[]};try{let[b,c]=await Promise.all([(0,i.ic)(a.companyUuid,"idea:write",a.actorUuid),(0,i.A8)(a.companyUuid)]);return{agents:b,users:c}}catch(a){return l.default.error({err:a},"Failed to get assignable agents"),{agents:[],users:[]}}}async function t(a){let b=await (0,g.d)();if(!b||"user"!==b.type)return{instances:[]};try{return{instances:(await (0,j._R)(b.companyUuid,a)).map(a=>({connectionUuid:a.uuid,agentInstanceUuid:a.agentInstanceUuid,host:a.host,cwd:a.cwd,effectiveStatus:a.effectiveStatus}))}}catch(a){return l.default.error({err:a},"Failed to get agent instances"),{instances:[]}}}[g,h,i,j,k]=n.then?(await n)():n,(0,m.D)([o,p,q,r,s,t]),(0,e.A)(o,"404a967ebaaf755d7f837a5e0d7e1e6da7c0a2855c",null),(0,e.A)(p,"708bff042cdb93ab9aaa60f3c9c2a61f5a167b0f15",null),(0,e.A)(q,"60b6cc9baa0c55a4f28544dd1ee3ad0097d7d67a6a",null),(0,e.A)(r,"40ef8af3880fdaea6bec6a0c76ae6efec18fb3ab38",null),(0,e.A)(s,"00c772b5aff2cf3f90a5f083965e9d6df07f80e8e1",null),(0,e.A)(t,"4093e77ed8fd3fcd2a8201ab872a3e9e0b9b22f5b3",null),d()}catch(a){d(a)}})},23733:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A7:()=>m,Rm:()=>l,Y_:()=>n,t8:()=>o});var e=c(71255),f=c(62729),g=c(85806),h=c(92633),i=c(89998),j=a([e,g,h,i]);async function k(a,b,c){if(b.assigneeUuid===c)return!0;if("agent_instance"===b.assigneeType){let d=await (0,h.wo)(a,b.assigneeType,b.assigneeUuid);return null!==d&&d===c}return!1}async function l({companyUuid:a,ideaUuid:b,roundUuid:c,actorUuid:d,actorType:h,answers:i}){let j=c;if(!j){let c=await e.z.elaborationRound.findMany({where:{ideaUuid:b,companyUuid:a,status:"pending_answers"},select:{uuid:!0}});if(0===c.length)throw Error("no active round to answer");if(c.length>1)throw Error("multiple active rounds; specify roundUuid");j=c[0].uuid}let k=await e.z.elaborationRound.findFirst({where:{uuid:j,ideaUuid:b,companyUuid:a},include:{questions:!0}});if(!k)throw Error("Elaboration round not found");if("pending_answers"!==k.status)throw Error(`Round is '${k.status}', expected 'pending_answers'`);let l=new Date;for(let a of i){let b=k.questions.find(b=>b.questionId===a.questionId);if(!b)throw Error(`Question '${a.questionId}' not found in round`);if(null!==a.selectedOptionId){if(!b.options.find(b=>b.id===a.selectedOptionId))throw Error(`Invalid option '${a.selectedOptionId}' for question '${a.questionId}'`)}else if(!a.customText?.trim())throw Error(`Question '${a.questionId}': custom text is required when no option is selected`);await e.z.elaborationQuestion.update({where:{uuid:b.uuid},data:{selectedOptionId:a.selectedOptionId,customText:a.customText,answeredAt:l,answeredByType:h,answeredByUuid:d}})}let m=(await e.z.elaborationQuestion.findMany({where:{roundUuid:j}})).filter(a=>a.required).every(a=>null!==a.answeredAt),n=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a}});m&&(await e.z.elaborationRound.update({where:{uuid:j},data:{status:"answered"}}),n?.elaborationStatus!=="resolved"&&await e.z.idea.update({where:{uuid:b},data:{elaborationStatus:"validating"}})),await g.f0.createActivity({companyUuid:a,projectUuid:n.projectUuid,targetType:"idea",targetUuid:b,actorType:h,actorUuid:d,action:"elaboration_answered",value:{roundNumber:k.roundNumber,answeredCount:i.length}}),f.B.emitChange({companyUuid:a,projectUuid:n.projectUuid,entityType:"idea",entityUuid:b,action:"updated"});let o=await e.z.elaborationRound.findUnique({where:{uuid:j},include:{questions:!0}});return p(o)}[e,g,h,i]=j.then?(await j)():j;let r={action:"elaboration_verified",precondition:async({companyUuid:a,ideaUuid:b})=>{let c=await e.z.elaborationRound.findMany({where:{ideaUuid:b,companyUuid:a}});if(0===c.length)throw new i.$("PRECONDITION_FAILED","Cannot resolve: the Idea has no elaboration rounds","no_rounds");let d=c.filter(a=>"pending_answers"===a.status);if(d.length>0)throw new i.$("PRECONDITION_FAILED",`Cannot resolve: ${d.length} round(s) still have unanswered questions`,"pending_answers");return{totalRounds:c.length}},transition:async({ideaUuid:a})=>{await e.z.idea.update({where:{uuid:a},data:{status:"elaborated",elaborationStatus:"resolved"}})},offlinePolicy:"queue"};async function m({companyUuid:a,ideaUuid:b,actorUuid:c,actorType:d}){return await (0,i.u)(r,{companyUuid:a,ideaUuid:b,actorUuid:c,actorType:d}),o({companyUuid:a,ideaUuid:b})}async function n({companyUuid:a,ideaUuid:b,actorUuid:c,actorType:d,reason:h}){let i=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a}});if(!i)throw Error("Idea not found");if(!await k(a,i,c))throw Error("Only the assigned agent can skip elaboration");if("elaborating"!==i.status)throw Error(`Cannot skip elaboration from status '${i.status}'`);await e.z.idea.update({where:{uuid:b},data:{status:"elaborated",elaborationDepth:"minimal",elaborationStatus:"resolved"}}),await g.f0.createActivity({companyUuid:a,projectUuid:i.projectUuid,targetType:"idea",targetUuid:b,actorType:d,actorUuid:c,action:"elaboration_skipped",value:{reason:h}}),f.B.emitChange({companyUuid:a,projectUuid:i.projectUuid,entityType:"idea",entityUuid:b,action:"updated"})}async function o({companyUuid:a,ideaUuid:b}){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Idea not found");let d=await e.z.elaborationRound.findMany({where:{ideaUuid:b,companyUuid:a},include:{questions:!0},orderBy:{roundNumber:"asc"}}),f=d.flatMap(a=>a.questions),g=f.filter(a=>null!==a.answeredAt),h=d.filter(a=>"pending_answers"!==a.status),i=d.find(a=>"pending_answers"===a.status);return{ideaUuid:b,depth:c.elaborationDepth,status:c.elaborationStatus,rounds:d.map(p),summary:{totalQuestions:f.length,answeredQuestions:g.length,validatedRounds:h.length,pendingRound:i?.roundNumber||null}}}function p(a){return{uuid:a.uuid,roundNumber:a.roundNumber,status:a.status,isAppended:a.isAppended,createdBy:{type:a.createdByType,uuid:a.createdByUuid},validatedAt:a.validatedAt?.toISOString()||null,createdAt:a.createdAt.toISOString(),questions:a.questions.map(q)}}function q(a){return{uuid:a.uuid,questionId:a.questionId,text:a.text,category:a.category,options:a.options,required:a.required,answer:a.answeredAt?{selectedOptionId:a.selectedOptionId,customText:a.customText,answeredAt:a.answeredAt.toISOString(),answeredBy:{type:a.answeredByType,uuid:a.answeredByUuid}}:null,issue:a.issueType?{type:a.issueType,description:a.issueDescription||""}:null}}d()}catch(a){d(a)}})},24364:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("arrow-right-left",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]])},26402:(a,b,c)=>{c.d(b,{o:()=>d});function d({ideaStatus:a,elaborationStatus:b,elaboration:c}){return!("elaborating"!==a||"resolved"===b||!c||0===c.rounds.length||c.rounds.some(a=>"pending_answers"===a.status))}},30259:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(71255),e=c(92633),f=c(61212),g=a([d,e,f]);[d,e,f]=g.then?(await g)():g,b()}catch(a){b(a)}})},31138:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{JQ:()=>o,Z$:()=>p,w$:()=>n,zK:()=>q});var e=c(2613);c(50785);var f=c(5562),g=c(9259),h=c(61212),i=c(97879),j=c(466),k=c(97307),l=c(12217),m=a([g,h,i,j]);async function n(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let c=await (0,h.i1)({companyUuid:b.companyUuid,projectUuid:a.projectUuid,title:a.title,content:a.content||null,attachments:a.attachments||null,createdByUuid:b.actorUuid});return(0,f.revalidatePath)(`/projects/${a.projectUuid}/ideas`),{success:!0,ideaUuid:c.uuid}}catch(a){return k.default.error({err:a},"Failed to create idea"),{success:!1,error:"Failed to create idea"}}}async function o(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let c=await (0,h.JF)(a.ideaUuid,b.companyUuid,{title:a.title,content:a.content},{actorType:b.type,actorUuid:b.actorUuid});return(0,f.revalidatePath)(`/projects/${a.projectUuid}/ideas`),{success:!0,idea:c}}catch(a){return k.default.error({err:a},"Failed to update idea"),{success:!1,error:"Failed to update idea"}}}async function p(a,b){if(!await (0,g.d)())return{success:!1,error:"Unauthorized"};try{return await (0,h.Nm)(a),(0,f.revalidatePath)(`/projects/${b}/ideas`),{success:!0}}catch(a){return k.default.error({err:a},"Failed to delete idea"),{success:!1,error:"Failed to delete idea"}}}async function q(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let{ideas:c}=await (0,h.BB)({companyUuid:b.companyUuid,projectUuid:a,skip:0,take:1e3}),d=c.map(a=>a.uuid),[e,f]=await Promise.all([d.length>0?(0,i.e1)(b.companyUuid,d):Promise.resolve({usedIdeas:[]}),d.length>0?(0,j.uA)(b.companyUuid,"idea",d):Promise.resolve({})]),g=e.usedIdeas.map(a=>a.uuid),k={};for(let a of e.usedIdeas)k[a.uuid]=a.proposalUuid;let l=c.map(a=>({...a,commentCount:f[a.uuid]||0}));return{success:!0,data:{ideas:l,usedIdeaUuids:g,ideaProposalMap:k}}}catch(a){return k.default.error({err:a},"Failed to fetch ideas"),{success:!1,error:"Failed to fetch ideas"}}}[g,h,i,j]=m.then?(await m)():m,(0,l.D)([n,o,p,q]),(0,e.A)(n,"40d7f1b96f25caeeac639a97997e23358aaba9bcce",null),(0,e.A)(o,"40f79d0065c816837e1a02cfef1e5727ee949e4aa4",null),(0,e.A)(p,"603a62c3cf062be8b65f238555959aed28e43a3d03",null),(0,e.A)(q,"40597e0cfc3490e798417315b55984bd3e79d7f4e3",null),d()}catch(a){d(a)}})},34324:(a,b,c)=>{c.d(b,{R:()=>w});var d=c(10837),e=c(21968),f=c(1007),g=c(9222),h=c(21790),i=c(49102),j=c(20447),k=c(67832),l=c(87461),m=c(9810),n=c(86460),o=c(42424),p=c(9994),q=c(82658),r=c(42377);let s=(0,r.createServerReference)("70e12e3baa87d7b6ed51ea8e0112f20c9229f18209",r.callServer,void 0,r.findSourceMapURL,"submitElaborationAnswersAction");var t=c(42087);let u="__other__",v={functional:"functional",non_functional:"nonFunctional",business_context:"businessContext",technical_context:"technicalContext",user_scenario:"userScenario",scope:"scope"};function w({ideaUuid:a,elaboration:b,onRefresh:c}){let e=(0,g.c)("elaboration"),h=(0,f.useRouter)();if(!b||0===b.rounds.length)return null;let{summary:i,rounds:j}=b;return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:e("title")}),(0,d.jsx)("span",{className:"text-xs font-medium text-[#C67A52]",children:e("answeredCounter",{answered:i.answeredQuestions,total:i.totalQuestions})})]}),(0,d.jsx)("div",{className:"space-y-2.5",children:j.map(b=>(0,d.jsx)(x,{round:b,ideaUuid:a,onAnswered:async()=>{await c?.(),h.refresh()}},b.uuid))})]})}function x({round:a,ideaUuid:b,onAnswered:c}){let f=(0,g.c)("elaboration"),j="pending_answers"===a.status,k="answered"===a.status||"validated"===a.status||"needs_followup"===a.status,[l,m]=(0,e.useState)(j);return(0,d.jsx)(q.Nt,{open:l,onOpenChange:m,children:(0,d.jsxs)("div",{className:"overflow-hidden rounded-xl border border-[#E5E0D8] bg-white",children:[(0,d.jsx)(q.R6,{asChild:!0,children:(0,d.jsxs)("button",{type:"button",className:`flex w-full items-center justify-between px-4 py-3 text-left transition-colors cursor-pointer hover:bg-[#FAF8F4] ${l?"bg-[#F7F6F3] border-b border-[#E5E0D8]":""}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[l?(0,d.jsx)(h.A,{className:"h-4 w-4 text-[#6B6B6B]"}):(0,d.jsx)(i.A,{className:"h-4 w-4 text-[#6B6B6B]"}),(0,d.jsx)("span",{className:`flex h-[22px] w-[22px] shrink-0 items-center justify-center rounded-full text-[11px] font-semibold text-white ${j?"bg-[#C67A52]":"bg-[#888780]"}`,children:a.roundNumber}),(0,d.jsx)("span",{className:"text-[13px] font-semibold text-[#2C2C2C]",children:f("roundLabel",{number:a.roundNumber})}),a.isAppended&&(0,d.jsx)("span",{className:"rounded bg-[#EDE7F6] px-2 py-0.5 text-[10px] font-medium text-[#6A4FB6]",children:f("appendedBadge")}),!l&&(0,d.jsxs)("span",{className:"text-xs text-[#9A9A9A]",children:["\xb7 ",f("questionCount",{count:a.questions.length})]})]}),k?(0,d.jsx)("span",{className:"rounded bg-[#E8F5E9] px-2 py-0.5 text-[10px] font-medium text-[#2E7D32]",children:f("statusAnswered")}):(0,d.jsx)("span",{className:"rounded bg-[#FFF3E0] px-2 py-0.5 text-[10px] font-medium text-[#E65100]",children:f("pendingAnswers")})]})}),(0,d.jsx)(q.Ke,{children:j?(0,d.jsx)(z,{round:a,ideaUuid:b,onAnswered:c}):(0,d.jsx)(y,{round:a})})]})})}function y({round:a}){let b=(0,g.c)("elaboration");return(0,d.jsx)("div",{className:"space-y-4 px-4 py-4",children:a.questions.map((c,e)=>{let f=c.answer?.selectedOptionId?c.options.find(a=>a.id===c.answer?.selectedOptionId):null,g=c.answer?.customText||f?.label||b("noAnswer"),h=v[c.category]||c.category;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsxs)("span",{className:"text-xs leading-relaxed text-[#6B6B6B]",children:["Q: ",c.text]}),(0,d.jsx)("span",{className:"shrink-0 text-[11px] italic text-[#B0B0B0]",children:b(`category.${h}`)})]}),(0,d.jsxs)("p",{className:"mt-1 text-xs font-medium leading-relaxed text-[#2C2C2C]",children:["A: ",g]}),e<a.questions.length-1&&(0,d.jsx)("div",{className:"mt-4 h-px bg-[#F0EEEA]"})]},c.uuid)})})}function z({round:a,ideaUuid:b,onAnswered:c}){let f=(0,g.c)("elaboration"),[h,q]=(0,e.useState)(0),r=(0,e.useRef)(h),[w,x]=(0,e.useState)("right"),[y,z]=(0,e.useState)({}),[A,B]=(0,e.useState)(!1),[C,D]=(0,e.useState)(null),E=(0,e.useCallback)((a,b)=>{x("left"===b?"right":"left"),q(a)},[]),F=a.questions,G=F[h],H=v[G.category]||G.category,I=(0,e.useCallback)((a,b)=>{if(z(c=>({...c,[a]:{questionId:a,selectedOptionId:b===u?null:b,customText:b===u?c[a]?.customText||"":null}})),b!==u){let a=Math.min(F.length-1,r.current+1);a!==r.current&&setTimeout(()=>E(a,"left"),200)}},[F.length,E]),J=(0,e.useCallback)((a,b)=>{z(c=>({...c,[a]:{...c[a],questionId:a,selectedOptionId:null,customText:b}}))},[]),K=F.filter(a=>a.required).every(a=>{let b=y[a.questionId];return!!b&&!!(b.selectedOptionId||b.customText&&b.customText.trim())}),L=async()=>{B(!0),D(null);let d=Object.values(y),e=await s(b,a.uuid,d);e.success?(await c(),B(!1)):(B(!1),D(e.error||f("submitFailed")))},M=(a=>{let b=y[a];return b?null===b.selectedOptionId&&null!==b.customText&&void 0!==b.customText?u:b.selectedOptionId||null:null})(G.questionId),N=M===u,O=h===F.length-1,P=!!(y[G.questionId]?.customText??"").trim();return(0,d.jsxs)("div",{className:"overflow-hidden p-3.5",children:[(0,d.jsxs)("div",{className:"right"===w?"animate-in slide-in-from-right-4 duration-200":"animate-in slide-in-from-left-4 duration-200",children:[(0,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsx)("div",{className:"flex-1 text-sm text-[#6B6B6B]",children:G.text}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,d.jsx)(o.$,{variant:"ghost",size:"icon",onClick:()=>E(h-1,"right"),disabled:0===h,className:"h-7 w-7 text-[#6B6B6B] disabled:opacity-30",children:(0,d.jsx)(j.A,{className:"h-4 w-4"})}),(0,d.jsx)("span",{className:"text-xs text-[#9A9A9A]",children:f("navCounter",{current:h+1,total:F.length})}),(0,d.jsx)(o.$,{variant:"ghost",size:"icon",onClick:()=>E(h+1,"left"),disabled:h===F.length-1,className:"h-7 w-7 text-[#6B6B6B] disabled:opacity-30",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]})]}),(0,d.jsxs)("div",{className:"mt-3",children:[G.options.map((a,b)=>{let c=M===a.id;return(0,d.jsxs)("div",{children:[(0,d.jsxs)(o.$,{variant:"ghost",onClick:()=>I(G.questionId,a.id),className:`flex w-full items-start justify-between gap-2.5 px-3.5 py-3 h-auto text-left transition-colors rounded-none ${c?"bg-[#F7F6F3]":"hover:bg-[#FAF8F4]"}`,children:[(0,d.jsxs)("span",{className:"flex flex-1 min-w-0 items-start gap-2.5",children:[(0,d.jsx)("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-[#E5E0D8] text-xs font-medium text-[#5F5E5A]",children:b+1}),(0,d.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,d.jsx)("span",{className:"whitespace-normal [overflow-wrap:anywhere] text-[13px] text-[#2C2C2A]",children:a.label}),a.description&&(0,d.jsx)("span",{className:"whitespace-normal [overflow-wrap:anywhere] text-[11px] text-[#9A9A9A]",children:a.description})]})]}),c&&(0,d.jsx)(k.A,{className:"mt-1 h-4 w-4 shrink-0 text-[#888780]"})]}),b<G.options.length-1&&(0,d.jsx)("div",{className:"h-px bg-[#F0EEEA]"})]},a.id)}),(0,d.jsx)("div",{className:"h-px bg-[#F0EEEA]"}),(0,d.jsxs)("div",{className:`flex w-full items-center gap-2.5 px-3.5 py-3 transition-colors ${N?"bg-[#F7F6F3]":"hover:bg-[#FAF8F4]"}`,children:[(0,d.jsx)("span",{className:"flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center rounded-md bg-[#E5E0D8]",onClick:()=>I(G.questionId,u),children:(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 text-[#B4B2A9]"})}),N?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(p.p,{type:"text",value:y[G.questionId]?.customText||"",onChange:a=>J(G.questionId,a.target.value),onKeyDown:a=>{if((0,t.P)(a)||"Enter"!==a.key||a.shiftKey||a.ctrlKey||a.metaKey||(a.preventDefault(),O||!P))return;let b=r.current+1;setTimeout(()=>E(b,"left"),200)},placeholder:f("somethingElse"),className:"flex-1 border-none bg-transparent text-[13px] text-[#2C2C2A] placeholder:italic placeholder:text-[#B4B2A9] shadow-none focus-visible:ring-0",autoFocus:!0}),!O&&(0,d.jsx)(o.$,{type:"button",variant:"ghost",size:"icon",onClick:()=>{if(O||!P)return;let a=r.current+1;setTimeout(()=>E(a,"left"),200)},disabled:!P,"aria-label":f("confirmAnswerAria"),className:"h-7 w-7 text-[#6B6B6B] disabled:opacity-30",children:(0,d.jsx)(m.A,{className:"h-4 w-4"})})]}):(0,d.jsx)(o.$,{variant:"ghost",onClick:()=>I(G.questionId,u),className:"flex-1 justify-start text-left text-[13px] italic text-[#B4B2A9] h-auto p-0 hover:bg-transparent",children:f("somethingElse")})]})]})]},h),C&&(0,d.jsx)("div",{className:"mt-3 rounded-lg bg-destructive/10 p-2.5 text-[12px] text-destructive",children:C}),(0,d.jsxs)("div",{className:"mt-3 flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] text-[#B0B0B0]",children:[(0,d.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-[#C67A52]"}),f(`category.${H}`)]}),(0,d.jsx)(o.$,{onClick:L,disabled:!K||A,className:"bg-[#C67A52] hover:bg-[#B56A42] text-white text-[13px]",children:A?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.A,{className:"mr-2 h-3.5 w-3.5 animate-spin"}),f("submitting")]}):f("submitAnswers")})]})]})}},37004:(a,b,c)=>{c.d(b,{s:()=>s});var d=c(10837),e=c(21968),f=c(9222),g=c(76549),h=c(77840),i=c(86460),j=c(42424),k=c(6019),l=c(99127),m=c(70028);let n=new Set(["done","closed"]);function o({assignee:a,proposals:b,tasks:c}){return!!a&&("agent"===a.type||"agent_instance"===a.type)&&!(b&&b.some(a=>"approved"===a.status)&&c&&0!==c.length&&c.every(a=>n.has(a.status)))}var p=c(42377);let q=(0,p.createServerReference)("40ad9bf6d6d2ae15b3672975c6a815846634ecf091",p.callServer,void 0,p.findSourceMapURL,"yoloRequestedAction"),r={unauthorized:"errorGeneric",not_human:"errorGeneric",idea_not_found:"errorGeneric",assignee_not_agent:"errorAssigneeNotAgent",agent_offline:"errorAgentOffline",unknown:"errorGeneric"};function s({ideaUuid:a,assignee:b,proposals:c,tasks:n,onStarted:p}){var s;let t=(0,f.c)("yolo"),u=(0,m.kz)()?.connections??[],[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(!1),B=b?"agent"===b.type?b.uuid:"agent_instance"===b.type?b.instance?.agentUuid??null:null:null,C=null!==B&&u.some(a=>a.agentUuid===B&&"online"===a.effectiveStatus),D=o({assignee:b,proposals:c,tasks:n}),E=o(s={assignee:b,proposals:c,tasks:n,agentOnline:C})&&s.agentOnline;if(!D||x)return x?(0,d.jsx)("span",{className:"text-[11px] text-[#00796B]",children:t("startedHint")}):null;let F=async()=>{w(!0);let b=await q(a);w(!1),A(!1),b.success?(y(!0),g.oR.success(t("startedHint")),p?.()):g.oR.error(t(r[b.errorCode??"unknown"]))};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(k.Lt,{open:z,onOpenChange:A,children:[(0,d.jsx)(l.Bc,{delayDuration:300,children:(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsx)(k.tv,{asChild:!0,children:(0,d.jsx)(j.$,{size:"icon",className:"h-8 w-8 bg-[#7F5AF0] hover:bg-[#6D48DE] text-white",disabled:!E,"aria-label":t("button"),children:(0,d.jsx)(h.A,{className:"h-4 w-4"})})})}),(0,d.jsx)(l.ZI,{children:t("button")})]})}),(0,d.jsxs)(k.EO,{children:[(0,d.jsxs)(k.wd,{children:[(0,d.jsx)(k.r7,{children:t("confirmTitle")}),(0,d.jsx)(k.$v,{children:t("confirmDescription")})]}),(0,d.jsxs)(k.ck,{children:[(0,d.jsx)(k.Zr,{disabled:v,children:t("cancel")}),(0,d.jsx)(j.$,{className:"bg-[#7F5AF0] hover:bg-[#6D48DE] text-white",onClick:F,disabled:v,children:v?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}),t("starting")]}):t("confirmCta")})]})]})]}),!C&&(0,d.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:t("offlineHint")})]})}},42479:(a,b,c)=>{c.d(b,{z:()=>e});var d=c(42377);let e=(0,d.createServerReference)("40e0356507f636560a182a0005ea4bf41f9f1e6f3a",d.callServer,void 0,d.findSourceMapURL,"getElaborationAction")},42708:(a,b,c)=>{c.d(b,{c:()=>e});var d=c(42377);let e=(0,d.createServerReference)("60abec303b08acb427946055f356bc1caa0bb39623",d.callServer,void 0,d.findSourceMapURL,"getTasksForProposalAction")},43307:(a,b,c)=>{c.d(b,{e:()=>e});var d=c(42377);let e=(0,d.createServerReference)("40a762e8050c2f89bbe72ab597cd3abc85cf8d3382",d.callServer,void 0,d.findSourceMapURL,"verifyElaborationAction")},45133:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{X:()=>i,y:()=>h});var e=c(71255),f=c(89998),g=a([e,f]);[e,f]=g.then?(await g)():g;let i={NO_APPROVED_PROPOSAL:"no_approved_proposal",NO_UNFINISHED_TASKS:"no_unfinished_tasks"},j=["done","closed"],k={action:"start_development",precondition:async({companyUuid:a,ideaUuid:b,idea:c})=>{if("agent"!==c.assigneeType&&"agent_instance"!==c.assigneeType)throw new f.$("ASSIGNEE_NOT_AGENT","The Idea's assignee is not an agent — there is no daemon to wake");let d=await e.z.proposal.findFirst({where:{companyUuid:a,projectUuid:c.projectUuid,status:"approved",inputUuids:{array_contains:[b]}},select:{uuid:!0},orderBy:{createdAt:"desc"}});if(!d)throw new f.$("PRECONDITION_FAILED","The Idea has no approved proposal",i.NO_APPROVED_PROPOSAL);let g=await e.z.task.count({where:{companyUuid:a,proposalUuid:d.uuid,status:{notIn:j}}});if(0===g)throw new f.$("PRECONDITION_FAILED","All tasks of the approved proposal are finished",i.NO_UNFINISHED_TASKS);return{proposalUuid:d.uuid,remainingTasks:g}},offlinePolicy:"require_online"};async function h({companyUuid:a,ideaUuid:b,actorUuid:c,actorType:d}){await (0,f.u)(k,{companyUuid:a,ideaUuid:b,actorUuid:c,actorType:d})}d()}catch(a){d(a)}})},49102:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},49262:(a,b,c)=>{c.d(b,{h:()=>w});var d=c(10837),e=c(21968),f=c(9222),g=c(1007),h=c(76549),i=c(86460),j=c(56149),k=c(9810),l=c(55775),m=c(42424),n=c(2852),o=c(11568),p=c(10297),q=c(74113),r=c(96307),s=c(42377);let t=(0,s.createServerReference)("00f7c7be986f02df52fc7f298a5d11487996f96bd9",s.callServer,void 0,s.findSourceMapURL,"getProjectsAndGroupsAction");s.callServer,s.findSourceMapURL;let u=(0,s.createServerReference)("60cae37f9e08398933bd8b397bc5f8219b1e9d37f5",s.callServer,void 0,s.findSourceMapURL,"moveIdeaAction");var v=c(54722);function w({open:a,onOpenChange:b,ideaUuid:c,projectUuid:s,onMoved:w}){let x=(0,f.c)("ideas"),y=(0,f.c)("common"),z=(0,g.useRouter)(),[A,B]=(0,e.useState)([]),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(!1),I=(()=>{if(!E)return null;for(let a of A){let b=a.projects.find(a=>a.uuid===E);if(b)return b.name}return null})(),[J,K]=(0,e.useState)(null),[L,M]=(0,e.useState)(!1),[N,O]=(0,e.useState)(null),[P,Q]=(0,e.useState)(!1),[R,S]=(0,e.useState)(null);(0,e.useRef)(0);let T=(0,e.useCallback)(a=>{a&&a.addEventListener("wheel",a=>a.stopPropagation(),{passive:!0})},[]);(0,e.useCallback)(async()=>{F(null),K(null),O(null),S(null),D(!0);try{let a=await t();if(a.success){let{projects:b,groups:c}=a.data,d=b.filter(a=>a.uuid!==s).map(a=>({uuid:a.uuid,name:a.name,groupUuid:a.groupUuid})),e=new Map;for(let a of c)e.set(a.uuid,a.name);let f=new Map,g=[];for(let a of d)a.groupUuid&&e.has(a.groupUuid)?(f.has(a.groupUuid)||f.set(a.groupUuid,{uuid:a.groupUuid,name:e.get(a.groupUuid),projects:[]}),f.get(a.groupUuid).projects.push({uuid:a.uuid,name:a.name})):g.push({uuid:a.uuid,name:a.name});let h=[...f.values()];g.length>0&&h.push({uuid:"ungrouped",name:x("ungrouped"),projects:g}),B(h)}}catch(a){v.q.error("Failed to load projects for move dialog:",a),B([])}D(!1)},[s,x]);let U=async()=>{if(E&&J&&!P){Q(!0),S(null);try{let a=await u(c,E);if(a.success){let d=a.moved;h.oR.success(x("moveDialog.successToast",{...d}),{action:{label:x("moveDialog.viewMovedIdea"),onClick:()=>{z.push(`/projects/${E}/dashboard?panel=${c}&tab=overview`)}}}),b(!1),z.refresh(),w(d)}else S(x("moveDialog.error",{message:a.error||x("moveFailed")}))}catch(a){S(x("moveDialog.error",{message:a instanceof Error?a.message:x("moveFailed")}))}Q(!1)}};return(0,d.jsx)(o.lG,{open:a,onOpenChange:b,children:(0,d.jsxs)(o.Cf,{children:[(0,d.jsxs)(o.c7,{children:[(0,d.jsx)(o.L3,{children:x("moveDialog.title")}),(0,d.jsx)(o.rr,{children:x("moveDialog.description")})]}),(0,d.jsxs)("div",{className:"space-y-3 pt-1",children:[(0,d.jsx)(n.J,{htmlFor:"move-target-project",className:"text-[13px] font-medium text-[#2C2C2C]",children:x("moveDialog.targetProjectLabel")}),C?(0,d.jsx)("div",{className:"flex items-center justify-center h-10 border border-[#E5E0D8] rounded-md",children:(0,d.jsx)(i.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):(0,d.jsxs)(q.AM,{open:G,onOpenChange:H,children:[(0,d.jsx)(q.Wv,{asChild:!0,children:(0,d.jsxs)(m.$,{id:"move-target-project",variant:"outline",role:"combobox","aria-expanded":G,className:(0,r.cn)("w-full justify-between border-[#E5E0D8] font-normal",!I&&"text-[#9A9A9A]"),children:[I??x("moveDialog.targetProjectPlaceholder"),(0,d.jsx)(j.A,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,d.jsx)(q.hl,{ref:T,className:"w-[--radix-popover-trigger-width] p-0 pointer-events-auto",align:"start",children:(0,d.jsxs)(p.uB,{children:[(0,d.jsx)(p.G7,{placeholder:x("moveDialog.searchProjects")}),(0,d.jsxs)(p.oI,{children:[(0,d.jsx)(p.xL,{children:x("noProjectsFound")}),A.map(a=>(0,d.jsx)(p.L$,{heading:a.name,children:a.projects.map(b=>(0,d.jsxs)(p.h_,{value:`${b.name} ${a.name}`,onSelect:()=>{F(b.uuid),H(!1)},children:[(0,d.jsx)(k.A,{className:(0,r.cn)("mr-2 h-4 w-4",E===b.uuid?"opacity-100":"opacity-0")}),b.name]},b.uuid))},a.uuid))]})]})})]}),E&&(0,d.jsx)("div",{role:"status","aria-live":"polite",className:"rounded-lg border border-[#E5E0D8] bg-[#FAF8F4] p-3 text-[13px] text-[#2C2C2C]",children:L?(0,d.jsxs)("div",{className:"flex items-center gap-2 text-[#6B6B6B]",children:[(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,d.jsx)("span",{children:x("moveDialog.previewLoading")})]}):N?(0,d.jsxs)("div",{className:"flex items-start gap-2 text-destructive",children:[(0,d.jsx)(l.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,d.jsx)("span",{children:N})]}):J?(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("p",{children:x("moveDialog.previewSummary",{...J})}),(0,d.jsx)("p",{className:"text-[12px] text-[#9A9A9A]",children:x("moveDialog.previewWarning")})]}):null}),R&&(0,d.jsx)("p",{className:"text-xs text-destructive",role:"alert",children:R})]}),(0,d.jsxs)("div",{className:"flex justify-end gap-3 pt-2",children:[(0,d.jsx)(m.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:()=>b(!1),disabled:P,children:y("cancel")}),(0,d.jsx)(m.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:U,disabled:!E||!J||P||L,children:P?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}),x("moving")]}):x("moveDialog.confirm")})]})]})})}},57535:(a,b,c)=>{c.d(b,{i:()=>x});var d=c(10837),e=c(21968),f=c(1007),g=c(9222),h=c(86460),i=c(16235),j=c(21692),k=c(97443),l=c(42424),m=c(94214),n=c(2852),o=c(11225),p=c(55732),q=c(23871),r=c(27696),s=c(42377);s.callServer,s.findSourceMapURL,s.callServer,s.findSourceMapURL;let t=(0,s.createServerReference)("404a967ebaaf755d7f837a5e0d7e1e6da7c0a2855c",s.callServer,void 0,s.findSourceMapURL,"claimIdeaAction"),u=(0,s.createServerReference)("708bff042cdb93ab9aaa60f3c9c2a61f5a167b0f15",s.callServer,void 0,s.findSourceMapURL,"claimIdeaToAgentAction"),v=(0,s.createServerReference)("60b6cc9baa0c55a4f28544dd1ee3ad0097d7d67a6a",s.callServer,void 0,s.findSourceMapURL,"claimIdeaToUserAction"),w=(0,s.createServerReference)("40ef8af3880fdaea6bec6a0c76ae6efec18fb3ab38",s.callServer,void 0,s.findSourceMapURL,"releaseIdeaAction");function x({idea:a,projectUuid:b,currentUserUuid:c,onClose:s}){let x=(0,g.c)(),y=(0,f.useRouter)(),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)("self"),[D,E]=(0,e.useState)(""),[F,G]=(0,e.useState)(""),[H,I]=(0,e.useState)([]),[J,K]=(0,e.useState)([]),[L,M]=(0,e.useState)(!0),[N,O]=(0,e.useState)(null),[P,Q]=(0,e.useState)([]),[R,S]=(0,e.useState)(!1),[T,U]=(0,e.useState)(null),V=!!a.assignee,W=P.find(a=>a.connectionUuid===T)??null,X=new Set(P.map(a=>a.host)).size>1,Y=async()=>{let b;if(A(!0),O(null),"self"===B)b=await t(a.uuid);else if("agent"===B&&D)b=await u(a.uuid,D,W?.agentInstanceUuid??void 0);else if("user"===B&&F)b=await v(a.uuid,F);else{if("release"!==B)return void A(!1);b=await w(a.uuid)}A(!1),b?.success?(y.refresh(),s()):b?.error&&O(b.error)},Z="self"===B||"agent"===B&&D||"user"===B&&F||"release"===B&&V;return(0,d.jsxs)(m._8,{open:!0,onOpenChange:a=>{a||s()},className:"bg-white sm:max-w-[400px]",header:(0,d.jsx)(m.AI,{className:"text-base font-semibold text-[#2C2C2C]",children:x("ideas.assignIdea")}),footer:(0,d.jsxs)("div",{className:"flex w-full items-center justify-end gap-4",children:[(0,d.jsx)(l.$,{variant:"outline",onClick:s,disabled:z,className:"border-[#E5E0D8]",children:x("common.cancel")}),(0,d.jsx)(l.$,{onClick:Y,disabled:z||!Z,className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:z?(0,d.jsx)(h.A,{className:"h-4 w-4 animate-spin"}):"release"===B?x("common.release"):function(){if("agent"!==B||!W)return x("common.assign");let a=(0,r.kn)(W.cwd),b=a.isUnknown?x(a.label):a.label,c=(0,r.g9)(W.host),d=c.isUnknown?x(c.label):c.label;return X?x("assignInstance.assignToWithHost",{path:b,host:d}):x("assignInstance.assignTo",{path:b})}()})]}),bodyClassName:"space-y-4",children:[(0,d.jsxs)("div",{className:"rounded-lg bg-[#FAF8F4] p-3",children:[(0,d.jsx)("p",{className:"text-[13px] font-medium text-[#2C2C2C]",children:a.title}),a.content&&(0,d.jsx)("p",{className:"mt-1 text-[11px] text-[#6B6B6B] line-clamp-2",children:a.content})]}),V&&(0,d.jsx)("div",{className:"rounded-lg bg-[#E3F2FD] p-3",children:(0,d.jsxs)("p",{className:"text-xs text-[#1976D2]",children:[x("common.currentAssignee"),": ",(0,d.jsx)("span",{className:"font-medium",children:a.assignee?.name})]})}),N&&(0,d.jsx)("div",{className:"rounded-lg bg-[#FEE2E2] p-3",children:(0,d.jsx)("p",{className:"text-xs text-[#D32F2F]",children:N})}),(0,d.jsx)("p",{className:"text-[13px] text-[#6B6B6B]",children:x("ideas.selectIdeaAssignee")}),L?(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(h.A,{className:"h-6 w-6 animate-spin text-[#9A9A9A]"})}):(0,d.jsxs)(o.z,{value:B,onValueChange:a=>C(a),className:"space-y-3",children:[(0,d.jsxs)("div",{className:`rounded-[10px] p-4 transition-colors cursor-pointer ${"self"===B?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8] hover:border-[#C67A52]/50"}`,onClick:()=>C("self"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(o.C,{value:"self",id:"idea-self",className:"border-[#C67A52] text-[#C67A52]"}),(0,d.jsx)(n.J,{htmlFor:"idea-self",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:x("assign.assignToMyself")})]}),(0,d.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:x("ideas.assignToMyselfIdeaDesc")})]}),(0,d.jsxs)("div",{className:`rounded-[10px] p-4 transition-colors ${"agent"===B?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8]"}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5 cursor-pointer",onClick:()=>C("agent"),children:[(0,d.jsx)(o.C,{value:"agent",id:"idea-agent",className:"border-[#C67A52] text-[#C67A52]"}),(0,d.jsx)(n.J,{htmlFor:"idea-agent",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:x("ideas.orAssignToPmAgent")})]}),(0,d.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:x("ideas.onlySelectedPmAgentCanWork")}),"agent"===B&&(0,d.jsxs)("div",{className:"mt-3 ml-6 space-y-3",children:[(0,d.jsxs)(p.l6,{value:D,onValueChange:E,children:[(0,d.jsx)(p.bq,{className:"w-full border-[#E5E0D8]",children:(0,d.jsx)(p.yv,{placeholder:x("ideas.selectPmAgent")})}),(0,d.jsx)(p.gC,{className:"z-[120]",children:H.length>0?H.map(a=>(0,d.jsx)(p.eb,{value:a.uuid,children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(i.A,{className:"h-4 w-4 text-[#C67A52]"}),(0,d.jsx)("span",{children:a.name})]})},a.uuid)):(0,d.jsx)("div",{className:"px-3 py-2 text-xs text-[#9A9A9A]",children:x("ideas.noPmAgentsAvailable")})})]}),D&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:x("assignInstance.workingDirectory")}),R?(0,d.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-[#9A9A9A]",children:[(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 animate-spin"}),x("assignInstance.loadingInstances")]}):0===P.length?(0,d.jsx)("p",{className:"rounded-lg bg-[#FAF8F4] p-2.5 text-[11px] leading-relaxed text-[#6B6B6B]",children:x("assignInstance.noInstances")}):(0,d.jsx)(q.O,{instances:P,selectedConnectionUuid:T,onSelect:a=>U(a.connectionUuid),ariaLabel:x("assignInstance.workingDirectory")}),(0,d.jsxs)("div",{className:"flex items-start gap-1.5 text-[11px] leading-relaxed text-[#9A8C7E]",children:[(0,d.jsx)(j.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,d.jsx)("span",{children:x("assignInstance.ideaPinNote")})]})]})]})]}),(0,d.jsxs)("div",{className:`rounded-[10px] p-4 transition-colors ${"user"===B?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8]"}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5 cursor-pointer",onClick:()=>C("user"),children:[(0,d.jsx)(o.C,{value:"user",id:"idea-user",className:"border-[#C67A52] text-[#C67A52]"}),(0,d.jsx)(n.J,{htmlFor:"idea-user",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:x("assign.orAssignToUser")})]}),"user"===B&&(0,d.jsx)("div",{className:"mt-3 ml-6",children:(0,d.jsxs)(p.l6,{value:F,onValueChange:G,children:[(0,d.jsx)(p.bq,{className:"w-full border-[#E5E0D8]",children:(0,d.jsx)(p.yv,{placeholder:x("tasks.selectUser")})}),(0,d.jsx)(p.gC,{className:"z-[120]",children:J.length>0?J.map(a=>(0,d.jsx)(p.eb,{value:a.uuid,children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(k.A,{className:"h-4 w-4 text-[#6B6B6B]"}),(0,d.jsx)("span",{children:a.name||a.email})]})},a.uuid)):(0,d.jsx)("div",{className:"px-3 py-2 text-xs text-[#9A9A9A]",children:x("tasks.noUsersAvailable")})})]})})]}),V&&(0,d.jsxs)("div",{className:`rounded-[10px] p-4 transition-colors cursor-pointer ${"release"===B?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8] hover:border-[#C67A52]/50"}`,onClick:()=>C("release"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(o.C,{value:"release",id:"idea-release",className:"border-[#C67A52] text-[#C67A52]"}),(0,d.jsx)(n.J,{htmlFor:"idea-release",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:x("assign.releaseAssignee")})]}),(0,d.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:x("ideas.releaseIdeaAssigneeDesc")})]})]})]})}},57644:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Qd:()=>r,U$:()=>w,UN:()=>u,WD:()=>y,co:()=>v,cq:()=>q,d1:()=>z,nR:()=>s,s$:()=>x,wm:()=>t,zS:()=>A});var e=c(2613);c(50785);var f=c(9259),g=c(61212),h=c(97879),i=c(53870),j=c(50530),k=c(33994),l=c(4284),m=c(23733),n=c(97307),o=c(12217),p=a([f,g,h,i,j,k,l,m]);async function q(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"Unauthorized"};let c=await (0,g.Zl)(b.companyUuid,a);return c?{success:!0,data:c}:{success:!1,error:"Not found"}}async function r(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"Unauthorized"};let c=await (0,j.gg)(b.companyUuid,a);return c?{success:!0,data:c}:{success:!1,error:"Not found"}}async function s(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"Unauthorized"};try{let d=await (0,g.bY)(c.companyUuid,a,b,c.actorUuid,c.type);return{success:!0,moved:d.moved}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to move idea"}}}async function t(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"Unauthorized"};try{let d=await (0,g.MY)(c.companyUuid,a);if(!d)return{success:!1,error:"Idea not found"};if(d.projectUuid===b)return{success:!1,error:"Idea is already in the target project"};let e=await (0,g.jJ)(c.companyUuid,a,b);return{success:!0,moved:e.moved}}catch(a){return n.default.error({err:a},"Failed to preview idea move"),{success:!1,error:a instanceof Error?a.message:"Failed to preview move"}}}async function u(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"Unauthorized"};let d=await (0,h.fS)(c.companyUuid,a,b);return{success:!0,data:d}}async function v(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"Unauthorized"};let{tasks:d}=await (0,j.Vk)({companyUuid:c.companyUuid,projectUuid:a,proposalUuids:[b],skip:0,take:100});return{success:!0,data:d}}async function w(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"Unauthorized"};let d=(await (0,h.fS)(c.companyUuid,a,b)).filter(a=>"approved"===a.status).map(a=>a.uuid),e=await (0,i.yZ)(c.companyUuid,d,"report");return e.sort((a,b)=>new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime()),{success:!0,data:e}}async function x(){let a=await (0,f.d)();if(!a)return{success:!1,error:"Unauthorized"};let[{projects:b},{groups:c}]=await Promise.all([(0,k.hF)({companyUuid:a.companyUuid,skip:0,take:100}),(0,l.a1)(a.companyUuid)]);return{success:!0,data:{projects:b,groups:c}}}async function y(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"Unauthorized"};try{let d=await (0,g.EZ)(a,b,c.companyUuid,{actorType:c.type,actorUuid:c.actorUuid});return{success:!0,data:d}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to set parent"}}}async function z(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"Unauthorized"};let{ideas:c,total:d}=await (0,g.BB)({companyUuid:b.companyUuid,projectUuid:a,skip:0,take:200});return{success:!0,data:c.map(a=>({uuid:a.uuid,title:a.title})),total:d,hasMore:d>c.length}}async function A(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let c=await (0,m.t8)({companyUuid:b.companyUuid,ideaUuid:a});return{success:!0,data:c}}catch(a){return n.default.error({err:a},"Failed to get elaboration"),{success:!1,error:a instanceof Error?a.message:"Failed to get elaboration"}}}[f,g,h,i,j,k,l,m]=p.then?(await p)():p,(0,o.D)([q,r,s,t,u,v,w,x,y,z,A]),(0,e.A)(q,"4040f002467cca317c082889a14041485f531d95ef",null),(0,e.A)(r,"40bf94f62ce0ce8184a8c8659a8cf5c81cb64708e8",null),(0,e.A)(s,"60cae37f9e08398933bd8b397bc5f8219b1e9d37f5",null),(0,e.A)(t,"60de55b3ebd55d12db6a501490cfc2ad1748618995",null),(0,e.A)(u,"6052d9883918dd9baa074736be4368f6d77908c2a6",null),(0,e.A)(v,"60abec303b08acb427946055f356bc1caa0bb39623",null),(0,e.A)(w,"60946d7963b917a5c70ca1925c0ea530fe03822d36",null),(0,e.A)(x,"00f7c7be986f02df52fc7f298a5d11487996f96bd9",null),(0,e.A)(y,"606347076f72433d83088fa304ea5b8936197847dc",null),(0,e.A)(z,"40dea3a5d82afa8a50d325d86aeffd2c101d45343f",null),(0,e.A)(A,"4047a90ef603a47130bdb4ef5104e862199b20d3eb",null),d()}catch(a){d(a)}})},63231:(a,b,c)=>{c.d(b,{Z:()=>e});var d=c(42377);let e=(0,d.createServerReference)("603a62c3cf062be8b65f238555959aed28e43a3d03",d.callServer,void 0,d.findSourceMapURL,"deleteIdeaAction")},77840:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]])},80041:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{x:()=>l});var e=c(2613);c(50785);var f=c(9259),g=c(67738),h=c(61212),i=c(97307),j=c(12217),k=a([f,g,h]);async function l(a){let b=await (0,f.d)();if(!b)return{activities:[],total:0};try{let c=await (0,h.MY)(b.companyUuid,a);if(!c)return{activities:[],total:0};return await (0,g.listActivitiesWithActorNames)({companyUuid:b.companyUuid,projectUuid:c.projectUuid,targetType:"idea",targetUuid:a,skip:0,take:50})}catch(a){return i.default.error({err:a},"Failed to get idea activities"),{activities:[],total:0}}}[f,g,h]=k.then?(await k)():k,(0,j.D)([l]),(0,e.A)(l,"405a9219aa7f1c0d6ca0604f203815504f183ace7a",null),d()}catch(a){d(a)}})},80717:(a,b,c)=>{c.d(b,{x:()=>e});var d=c(42377);let e=(0,d.createServerReference)("405a9219aa7f1c0d6ca0604f203815504f183ace7a",d.callServer,void 0,d.findSourceMapURL,"getIdeaActivitiesAction")},82552:(a,b,c)=>{c.d(b,{J:()=>e});var d=c(42377);let e=(0,d.createServerReference)("40f79d0065c816837e1a02cfef1e5727ee949e4aa4",d.callServer,void 0,d.findSourceMapURL,"updateIdeaAction")},82870:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(71255),e=c(92633),f=c(30259),g=a([d,e,f]);[d,e,f]=g.then?(await g)():g,b()}catch(a){b(a)}})},84819:(a,b,c)=>{c.d(b,{Separator:()=>g});var d=c(10837);c(21968);var e=c(72229),f=c(96307);function g({className:a,orientation:b="horizontal",decorative:c=!0,...g}){return(0,d.jsx)(e.b,{"data-slot":"separator",decorative:c,orientation:b,className:(0,f.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",a),...g})}},85806:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{f0:()=>l});var e=c(33994),f=c(61212),g=c(50530),h=c(53870),i=c(97879),j=c(28774),k=c(466),l=c(67738),m=c(82870),n=c(23733),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)}})},89998:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$:()=>m,u:()=>l});var e=c(71255),f=c(62729),g=c(85806),h=c(92633),i=c(61076),j=a([e,g,h,i]);[e,g,h,i]=j.then?(await j)():j;class m extends Error{constructor(a,b,c){super(b),this.name="StageAdvanceError",this.code=a,this.reason=c}}async function k(a){let b=new Date(Date.now()-i.BP),c=await e.z.daemonConnection.findFirst({where:{agentUuid:a,status:"online",lastSeenAt:{gte:b}},select:{uuid:!0}});return null!==c}async function l(a,{companyUuid:b,ideaUuid:c,actorUuid:d,actorType:i}){if("user"!==i&&"super_admin"!==i)throw new m("NOT_HUMAN","Only users can perform a stage-advance action");let j=await e.z.idea.findFirst({where:{uuid:c,companyUuid:b}});if(!j)throw new m("IDEA_NOT_FOUND","Idea not found");let l={companyUuid:b,ideaUuid:c,actorUuid:d,actorType:i,idea:{uuid:j.uuid,companyUuid:j.companyUuid,projectUuid:j.projectUuid,status:j.status,elaborationStatus:j.elaborationStatus,assigneeType:j.assigneeType,assigneeUuid:j.assigneeUuid}},n=await a.precondition(l);if("require_online"===a.offlinePolicy){let a=await (0,h.wo)(b,l.idea.assigneeType,l.idea.assigneeUuid);if(!a)throw new m("ASSIGNEE_NOT_AGENT","The Idea's assignee is not an agent — there is no daemon to wake");if(!await k(a))throw new m("AGENT_OFFLINE","The assigned agent has no online daemon connection")}a.transition&&await a.transition(l),await g.f0.createActivity({companyUuid:b,projectUuid:l.idea.projectUuid,targetType:"idea",targetUuid:c,actorType:i,actorUuid:d,action:a.action,value:n}),f.B.emitChange({companyUuid:b,projectUuid:l.idea.projectUuid,entityType:"idea",entityUuid:c,action:"updated"})}d()}catch(a){d(a)}})},91117:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{E:()=>p,g:()=>o});var e=c(2613);c(50785);var f=c(5562),g=c(9259),h=c(45133),i=c(11166),j=c(89998),k=c(71255),l=c(97307),m=c(12217),n=a([g,h,i,j,k]);async function o(a){let b=await (0,g.d)();if(!b)return{success:!1,errorCode:"unauthorized"};if("user"!==b.type&&"super_admin"!==b.type)return{success:!1,errorCode:"not_human"};try{await (0,h.y)({companyUuid:b.companyUuid,ideaUuid:a,actorUuid:b.actorUuid,actorType:b.type});let c=await k.z.idea.findFirst({where:{uuid:a,companyUuid:b.companyUuid}});return c&&((0,f.revalidatePath)(`/projects/${c.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${c.projectUuid}/ideas`)),{success:!0}}catch(b){return b instanceof j.$?l.default.info({code:b.code,reason:b.reason,ideaUuid:a},"Start development rejected"):l.default.error({err:b,ideaUuid:a},"Failed to start development"),{success:!1,errorCode:function(a){if(a instanceof j.$)switch(a.code){case"NOT_HUMAN":return"not_human";case"IDEA_NOT_FOUND":return"idea_not_found";case"ASSIGNEE_NOT_AGENT":return"assignee_not_agent";case"AGENT_OFFLINE":return"agent_offline";case"PRECONDITION_FAILED":if(a.reason===h.X.NO_APPROVED_PROPOSAL)return"no_approved_proposal";if(a.reason===h.X.NO_UNFINISHED_TASKS)return"no_unfinished_tasks"}return"unknown"}(b)}}}async function p(a){let b=await (0,g.d)();if(!b)return{success:!1,errorCode:"unauthorized"};if("user"!==b.type&&"super_admin"!==b.type)return{success:!1,errorCode:"not_human"};try{await (0,i.p)({companyUuid:b.companyUuid,ideaUuid:a,actorUuid:b.actorUuid,actorType:b.type});let c=await k.z.idea.findFirst({where:{uuid:a,companyUuid:b.companyUuid}});return c&&((0,f.revalidatePath)(`/projects/${c.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${c.projectUuid}/ideas`)),{success:!0}}catch(b){return b instanceof j.$?l.default.info({code:b.code,reason:b.reason,ideaUuid:a},"Yolo request rejected"):l.default.error({err:b,ideaUuid:a},"Failed to request yolo"),{success:!1,errorCode:function(a){if(a instanceof j.$)switch(a.code){case"NOT_HUMAN":return"not_human";case"IDEA_NOT_FOUND":return"idea_not_found";case"ASSIGNEE_NOT_AGENT":return"assignee_not_agent";case"AGENT_OFFLINE":return"agent_offline"}return"unknown"}(b)}}}[g,h,i,j,k]=n.then?(await n)():n,(0,m.D)([o,p]),(0,e.A)(o,"409497599266cc70b8b9249fe47a4e75bffc2d39c3",null),(0,e.A)(p,"40ad9bf6d6d2ae15b3672975c6a815846634ecf091",null),d()}catch(a){d(a)}})},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]"})]})})}}};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[225],{225:(e,t,s)=>{s.d(t,{D:()=>eJ});var a=s(90508),n=s(1856),i=s(39268),l=s(23675),r=s(67587),c=s(64131),d=s(95900),o=s(57893),u=s(9160),x=s(85226),m=s(53881),p=s(48127),h=s(94903),f=s(42533),j=s(97413),g=s(22922),v=s(64993),b=s(57731),N=s(14554),y=s(15972),A=s(88064),w=s(51817),C=s(92691),k=s(63964),F=s(5425),E=s(84247),B=s(80490),S=s(97261),D=s(16544),_=s(65626),U=s(73693),T=s(84169),P=s(29532);function R(e){let{assignee:t}=e,s=(0,i.c)("common");return(0,a.jsxs)("div",{children:[(0,a.jsx)(A.J,{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:s("assignee")}),(0,a.jsx)("div",{className:"mt-2 flex items-center gap-2.5 rounded-lg bg-[#FAF8F4] p-3",children:t?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(U.eu,{className:"h-7 w-7",children:(0,a.jsx)(U.q5,{className:(0,P.bB)(t)?"bg-[#C67A52] text-white":"bg-[#E5E0D8] text-[#6B6B6B]",children:(0,P.bB)(t)?(0,a.jsx)(F.A,{className:"h-3.5 w-3.5"}):t.name.charAt(0).toUpperCase()})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"text-sm font-medium text-[#2C2C2C]",children:t.name}),(0,a.jsx)("div",{className:"text-xs text-[#6B6B6B]",children:s((0,P.bB)(t)?"agent":"user")}),"agent_instance"===t.type&&t.instance&&(0,a.jsx)("div",{className:"mt-1",children:(0,a.jsx)(T.jQ,{cwd:t.instance.cwd,host:t.instance.host})})]})]}):(0,a.jsx)("span",{className:"text-sm text-[#9A9A9A]",children:s("unassigned")})})]})}function L(e){let{idea:t,elaboration:s,isLoading:n,onRefresh:l}=e,r=(0,i.c)("ideaTracker"),c=(0,i.c)("common");return n?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsx)(x.A,{className:"h-5 w-5 animate-spin text-[#C67A52]"})}):(0,a.jsxs)(D.P.div,{variants:_.qG,initial:"initial",animate:"animate",children:[(0,a.jsx)(R,{assignee:t.assignee}),(0,a.jsx)(E.Separator,{className:"my-5 bg-[#F5F2EC]"}),s&&s.rounds.length>0?(0,a.jsx)("div",{children:(0,a.jsx)(B.R,{ideaUuid:t.uuid,elaboration:s,onRefresh:l})}):"open"===t.status?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-8 text-center",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-[#FFF3E0]",children:(0,a.jsx)(F.A,{className:"h-5 w-5 text-[#E65100]"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium text-[#2C2C2C]",children:r("panel.elaborationNotStarted")}),(0,a.jsx)("p",{className:"mt-1 text-xs text-[#9A9A9A]",children:r("panel.elaborationNotStartedDesc")})]})]}):(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-8 text-center",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-[#E3F2FD]",children:(0,a.jsx)(F.A,{className:"h-5 w-5 text-[#1976D2]"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium text-[#2C2C2C]",children:r("panel.elaborationWaiting")}),(0,a.jsx)("p",{className:"mt-1 text-xs text-[#9A9A9A]",children:r("panel.elaborationWaitingDesc")})]})]}),t.content&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(E.Separator,{className:"my-5 bg-[#F5F2EC]"}),(0,a.jsxs)("div",{children:[(0,a.jsx)(A.J,{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:c("content")}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)("div",{className:"prose prose-sm max-w-none text-[13px] leading-relaxed text-[#2C2C2C]",children:(0,a.jsx)(S.MarkdownContent,{children:t.content})})})]})]})]})}var I=s(12790),M=s.n(I),$=s(71921),z=s(78948),q=s(37915),O=s(17730),V=s(32470),J=s(96213),Q=s(47754),H=s(92745),K=s(82523),G=s(41528),W=s(14145),X=s(67712);function Z(e){let{idea:t,projectUuid:s,onTaskClick:l,onDocClick:r,initialProposals:c}=e,d=(0,i.c)("ideaTracker"),[o,u]=(0,n.useState)(null!=c?c:[]),[m,p]=(0,n.useState)(!c),h=(0,n.useCallback)(async()=>{try{let e=await (0,G.U)(s,t.uuid);if(e.success)return u(e.data),e.data}catch(e){X.q.error("Failed to fetch proposals:",e)}finally{p(!1)}return[]},[s,t.uuid]);(0,n.useEffect)(()=>{c||h()},[h,c]);let f=(0,n.useRef)(o);f.current=o;let{getPresence:j}=(0,Q.xQ)();return((0,k.eV)("proposal",async()=>{let e=f.current;for(let i of(await h())){var t,s,a,n;let l=e.find(e=>e.uuid===i.uuid);if(!l)continue;let r=new Set((null!=(t=l.documentDrafts)?t:[]).map(e=>e.uuid)),c=new Set((null!=(s=l.taskDrafts)?s:[]).map(e=>e.uuid)),d=(null!=(a=i.documentDrafts)?a:[]).filter(e=>e.uuid&&!r.has(e.uuid)),o=(null!=(n=i.taskDrafts)?n:[]).filter(e=>e.uuid&&!c.has(e.uuid)),u=[...d.map(e=>e.uuid),...o.map(e=>e.uuid)];if(u.length>0){let e=j("proposal",i.uuid)[0];if(e)for(let t of u)(0,Q.fv)({entityType:"proposal",entityUuid:i.uuid,subEntityType:"draft",subEntityUuid:t,agentUuid:e.agentUuid,agentName:e.agentName,action:"mutate"})}}}),m)?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsx)(x.A,{className:"h-5 w-5 animate-spin text-[#C67A52]"})}):0===o.length?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-12 text-center",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-[#F3E5F5]",children:(0,a.jsx)($.A,{className:"h-5 w-5 text-[#7B1FA2]"})}),(0,a.jsx)("p",{className:"text-sm text-[#9A9A9A]",children:d("panel.noProposals")})]}):(0,a.jsx)("div",{className:"space-y-5",children:o.map(e=>(0,a.jsx)(ee,{proposal:e,projectUuid:s,onTaskClick:l,onDocClick:r},e.uuid))})}let Y={draft:"bg-[#F5F5F5] text-[#6B6B6B]",pending:"bg-[#FFF3E0] text-[#E65100]",approved:"bg-[#E8F5E9] text-[#5A9E6F]",rejected:"bg-[#FFEBEE] text-[#C4574C]",revised:"bg-[#E3F2FD] text-[#1976D2]",closed:"bg-[#F5F5F5] text-[#9A9A9A]"};function ee(e){let{proposal:t,projectUuid:s,onTaskClick:l,onDocClick:r}=e,c=(0,i.c)("ideaTracker"),d=(0,i.c)(),o=(0,i.c)("proposals"),u=(0,i.c)("tasks"),x=(0,i.c)("documents"),m=t.documentDrafts||[],p=t.taskDrafts||[],[h,f]=(0,n.useState)(new Set),[j,v]=(0,n.useState)("cards"),[N,y]=(0,n.useState)([]),A="approved"===t.status;(0,n.useEffect)(()=>{A&&(0,W.c)(s,t.uuid).then(e=>{e.success&&y(e.data||[])}).catch(e=>X.q.error("Failed to fetch materialized tasks:",e))},[A,s,t.uuid]);let w=(0,n.useMemo)(()=>{let e=new Map;for(let t of N)e.set(t.title,t);return e},[N]),{dagTasks:C,dagEdges:k,dagHeight:F}=(0,n.useMemo)(()=>{let e=p.map(e=>{let t=w.get(e.title);return{uuid:(null==t?void 0:t.uuid)||e.uuid,title:e.title,status:(null==t?void 0:t.status)||"open",priority:e.priority||"medium"}}),t=[],s=new Map(p.map(e=>[e.uuid,e]));for(let e of p)if(e.dependsOnDraftUuids)for(let a of e.dependsOnDraftUuids){let n=w.get(e.title),i=s.get(a),l=i?w.get(i.title):void 0;t.push({from:(null==n?void 0:n.uuid)||e.uuid,to:(null==l?void 0:l.uuid)||a})}return{dagTasks:e,dagEdges:t,dagHeight:Math.max(350,90*e.length)}},[p,w]),E=A?N.filter(e=>"done"===e.status||"closed"===e.status).length:0;return(0,a.jsxs)("div",{className:"space-y-5",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("h3",{className:"text-[14px] font-semibold text-[#2C2C2C] truncate flex-1",children:t.title}),(0,a.jsx)(b.E,{className:"text-[11px] font-semibold border-0 shrink-0 ".concat(Y[t.status]||""),children:d("status.".concat(t.status))})]}),t.description&&(0,a.jsx)("div",{className:"max-h-[120px] overflow-y-auto text-[13px] leading-relaxed text-[#4A4A4A] prose prose-sm max-w-none [&_h1]:text-sm [&_h2]:text-[13px] [&_h3]:text-xs [&_p]:text-[13px] [&_p]:text-[#4A4A4A] [&_p]:my-1.5 [&_li]:text-[13px] [&_li]:text-[#4A4A4A] [&_ul]:my-1 [&_ol]:my-1 [&_strong]:text-[#2C2C2C]",children:(0,a.jsx)(S.MarkdownContent,{children:(0,K.j)(t.description)})}),(0,a.jsxs)(M(),{href:"/projects/".concat(s,"/proposals/").concat(t.uuid),className:"flex items-center gap-1 text-[13px] font-medium text-[#C67A52] hover:underline",children:[c("panel.viewProposal"),(0,a.jsx)(z.A,{className:"h-3.5 w-3.5"})]}),m.length>0&&(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[1px] text-[#9A9A9A]",children:o(A?"documents":"documentDrafts")}),(0,a.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:m.length})]}),(0,a.jsx)("div",{className:"space-y-0",children:m.map((e,s)=>(0,a.jsx)(J.D,{entityType:"proposal",entityUuid:t.uuid,subEntityType:"draft",subEntityUuid:e.uuid||"draft-".concat(s),badgeInside:!0,children:(0,a.jsxs)(g.$,{variant:"ghost",className:"w-full justify-start h-auto text-left flex items-center gap-2.5 py-3.5 hover:bg-[#FAF8F4] transition-colors cursor-pointer -mx-1 px-1 rounded-lg",onClick:()=>e.content&&(null==r?void 0:r({title:e.title,type:e.type,content:e.content})),children:[(0,a.jsx)(q.A,{className:"h-3.5 w-3.5 shrink-0 text-[#B4B2A9]"}),(0,a.jsx)(b.E,{variant:"outline",className:"shrink-0 text-[10px] font-medium border-[#E5E0D8] text-[#6B6B6B] bg-[#F5F2EC] px-2 py-0.5 font-mono",children:x(K.y[e.type]||"typeOther")}),(0,a.jsx)("span",{className:"flex-1 min-w-0 text-left text-[13px] text-[#2C2C2A] truncate",children:e.title})]})},e.uuid||s))})]}),(p.length>0||N.length>0)&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between pb-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[1px] text-[#9A9A9A]",children:o(A?"tasks":"taskDrafts")}),(0,a.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:A&&N.length>0?N.length:p.length})]}),(0,a.jsxs)("span",{className:"text-[12px] text-[#9A9A9A]",children:[E,"/",A&&N.length>0?N.length:p.length]})]}),(0,a.jsx)("div",{className:"-mx-6 border-t border-[#E5E0D8]"}),k.length>0&&(0,a.jsxs)("div",{className:"flex gap-0.5 rounded-lg border border-[#E5E0D8] bg-[#F7F6F3] p-0.5 mt-3 w-fit",children:[(0,a.jsx)(g.$,{variant:"ghost",size:"sm",onClick:()=>v("cards"),className:"rounded-md px-2.5 py-1 h-auto text-[11px] font-medium transition-colors ".concat("cards"===j?"bg-white text-[#2C2C2C] shadow-sm":"text-[#9A9A9A] hover:text-[#6B6B6B]"),children:o("cardsView")}),(0,a.jsx)(g.$,{variant:"ghost",size:"sm",onClick:()=>v("dag"),className:"rounded-md px-2.5 py-1 h-auto text-[11px] font-medium transition-colors ".concat("dag"===j?"bg-white text-[#2C2C2C] shadow-sm":"text-[#9A9A9A] hover:text-[#6B6B6B]"),children:u("dagView")})]}),"cards"===j&&(0,a.jsx)("div",{className:"space-y-0",children:A&&N.length>0?N.map(e=>(0,a.jsx)(J.D,{entityType:"task",entityUuid:e.uuid,badgeInside:!0,children:(0,a.jsx)(ea,{task:{uuid:e.uuid,title:e.title},expanded:!1,onToggle:()=>{},onNavigate:l?()=>l(e.uuid):void 0,taskStatus:e.status})},e.uuid)):p.map((e,s)=>(0,a.jsx)(J.D,{entityType:"proposal",entityUuid:t.uuid,subEntityType:"draft",subEntityUuid:e.uuid,badgeInside:!0,children:(0,a.jsx)(ea,{task:e,expanded:h.has(s),onToggle:()=>{f(e=>{let t=new Set(e);return t.has(s)?t.delete(s):t.add(s),t})}})},e.uuid))}),"dag"===j&&(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(H._u,{tasks:C,edges:k,readonly:!0,height:F,onNodeClick:l})})]}),0===m.length&&0===p.length&&0===N.length&&(0,a.jsx)("p",{className:"text-xs text-[#9A9A9A] italic",children:o("emptyContainer")})]})}let et={open:"border-[#D9D9D9] bg-white",assigned:"border-[#1976D2] bg-[#1976D2]",in_progress:"border-[#5A9E6F] bg-[#5A9E6F]",to_verify:"border-[#7B1FA2] bg-[#7B1FA2]",done:"border-[#00796B] bg-[#00796B]",closed:"border-[#9A9A9A] bg-[#9A9A9A]"},es={open:null,assigned:null,in_progress:{className:"bg-[#E8F5E9] text-[#5A9E6F]",key:"inProgress"},to_verify:{className:"bg-[#F3E5F5] text-[#7B1FA2]",key:"toVerify"},done:{className:"bg-[#E0F2F1] text-[#00796B]",key:"done"},closed:{className:"bg-[#F5F5F5] text-[#9A9A9A]",key:"done"}};function ea(e){let{task:t,expanded:s,onToggle:n,onNavigate:l,taskStatus:r}=e,c=(0,i.c)("proposals"),d=(0,i.c)("acceptanceCriteria"),o=(0,i.c)("status"),u=t.acceptanceCriteriaItems||[],x=!!(t.description||u.length>0),m=r?et[r]||et.open:"border-[#D9D9D9] bg-white",p=r?es[r]:null,h=(0,a.jsx)("span",{className:"shrink-0 h-2 w-2 rounded-full border-[1.5px] ".concat(m," transition-colors")}),f=(0,a.jsx)("span",{className:"flex-1 min-w-0 text-[13px] leading-snug truncate text-[#6B6B6B]",children:t.title}),j=p?(0,a.jsx)("span",{className:"shrink-0 rounded px-1.5 py-0.5 text-[10px] font-medium ".concat(p.className),children:o(p.key)}):null;return l?(0,a.jsxs)(g.$,{variant:"ghost",onClick:l,className:"w-full justify-start h-auto text-left flex items-center gap-2.5 py-4 cursor-pointer hover:bg-[#FAF8F4] -mx-1 px-1 rounded-lg transition-colors",children:[(0,a.jsx)(q.A,{className:"h-3.5 w-3.5 shrink-0 text-[#B4B2A9]"}),h,f,j]}):(0,a.jsxs)("div",{children:[(0,a.jsxs)(g.$,{variant:"ghost",onClick:x?n:void 0,className:"w-full justify-start h-auto text-left flex items-center gap-2.5 py-4 ".concat(x?"cursor-pointer hover:bg-[#FAF8F4] -mx-1 px-1 rounded-lg":""," transition-colors"),children:[s?(0,a.jsx)(O.A,{className:"h-3.5 w-3.5 shrink-0 text-[#B4B2A9]"}):(0,a.jsx)(z.A,{className:"h-3.5 w-3.5 shrink-0 text-[#B4B2A9]"}),h,f,j]}),s&&x&&(0,a.jsxs)("div",{className:"pb-3 pl-5 space-y-3",children:[t.description&&(0,a.jsx)("p",{className:"text-[11px] leading-relaxed text-[#6B6B6B]",children:t.description}),u.length>0&&(0,a.jsxs)("div",{className:"rounded-lg bg-[#FAF8F4] p-3 space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(V.A,{className:"h-3.5 w-3.5 text-[#888780]"}),(0,a.jsx)("span",{className:"text-[11px] font-semibold text-[#2C2C2C]",children:c("taskAcceptanceCriteria")})]}),(0,a.jsx)("div",{className:"space-y-1.5",children:u.map((e,t)=>(0,a.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,a.jsx)("p",{className:"text-[11px] leading-snug text-[#4A4A4A] flex-1",children:e.description}),!1!==e.required&&(0,a.jsx)("span",{className:"shrink-0 text-[10px] font-medium text-[#E65100]",children:d("required")})]},t))})]})]})]})}var en=s(29767),ei=s(69443),el=s(56770),er=s(60532),ec=s(97964),ed=s(52217);let eo=(0,ed.createServerReference)("4047a90ef603a47130bdb4ef5104e862199b20d3eb",ed.callServer,void 0,ed.findSourceMapURL,"getElaborationAction");var eu=s(90795);function ex(e){let{idea:t,proposals:s,tasks:l,onSelectTask:r}=e,c=(0,i.c)("ideaTracker"),d=(0,i.c)(),[o,u]=(0,n.useState)(null),[x,m]=(0,n.useState)(new Set);(0,n.useEffect)(()=>{"open"!==t.status&&eo(t.uuid).then(e=>{e.success&&e.data&&u(e.data)})},[t.uuid,t.status]);let p=(0,n.useMemo)(()=>"open"===t.status?"idea_created":"elaborating"===t.status||0===s.length?"elaboration":s.some(e=>"approved"===e.status)&&l.length>0?"tasks":"proposal",[t.status,s,l]),h=(0,n.useMemo)(()=>{let e=["idea_created","elaboration","proposal","tasks"],t=e.indexOf(p);return e.map((e,s)=>({id:e,labelKey:({idea_created:"panel.timeline.ideaCreated",elaboration:"panel.timeline.elaboration",proposal:"panel.timeline.proposal",tasks:"panel.timeline.tasksProgress"})[e],status:s<t?"completed":s===t?"active":"upcoming",icon:({idea_created:(0,a.jsx)(en.A,{className:"h-3.5 w-3.5"}),elaboration:(0,a.jsx)(ei.A,{className:"h-3.5 w-3.5"}),proposal:(0,a.jsx)($.A,{className:"h-3.5 w-3.5"}),tasks:(0,a.jsx)(V.A,{className:"h-3.5 w-3.5"})})[e]}))},[p]);(0,n.useEffect)(()=>{let e=h.find(e=>"active"===e.status);e&&m(new Set([e.id]))},[p]);let f=(0,n.useCallback)(e=>{m(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]),j=(0,n.useMemo)(()=>"open"===t.status?c("panel.timeline.noElaboration"):"skipped"===t.elaborationStatus?c("panel.timeline.elaborationSkipped"):"resolved"===t.elaborationStatus&&o?c("panel.timeline.elaborationComplete",{count:o.summary.totalQuestions}):"elaborating"===t.status?c("panel.timeline.elaborationInProgress"):o&&o.summary.totalQuestions>0?c("panel.timeline.elaborationComplete",{count:o.summary.totalQuestions}):c("panel.timeline.noElaboration"),[t.status,t.elaborationStatus,o,c]),g=(0,n.useMemo)(()=>{if(0===s.length)return c("panel.timeline.noProposal");let e=s.filter(e=>"approved"===e.status).length,t=s.filter(e=>"pending"===e.status).length;if(e>0&&1===s.length)return c("panel.timeline.proposalApproved");if(e>0)return c("panel.timeline.proposalsApproved",{count:e,total:s.length});if(t>0)return c("panel.timeline.proposalPending");switch(s[0].status){case"draft":default:return c("panel.timeline.proposalDraft");case"rejected":return c("panel.timeline.proposalRejected")}},[s,c]),v=(0,n.useMemo)(()=>{let e=0,t=0;for(let r of s){var a,n,i,l;e+=null!=(i=null==(a=r.documentDrafts)?void 0:a.length)?i:0,t+=null!=(l=null==(n=r.taskDrafts)?void 0:n.length)?l:0}return{docCount:e,taskDraftCount:t}},[s]),b=(0,n.useMemo)(()=>{let e=l.filter(e=>"done"===e.status||"closed"===e.status).length,t=l.filter(e=>"in_progress"===e.status).length;return{done:e,inProgress:t,toVerify:l.filter(e=>"to_verify"===e.status).length,open:l.filter(e=>"open"===e.status||"assigned"===e.status).length,total:l.length}},[l]);return(0,a.jsx)("div",{className:"space-y-0",children:h.map((e,n)=>{let i=x.has(e.id),u=n===h.length-1;return(0,a.jsxs)("div",{className:"flex gap-3",children:[(0,a.jsxs)("div",{className:"flex flex-col items-center w-5 shrink-0",children:[(0,a.jsx)("div",{className:"mt-1",children:"completed"===e.status?(0,a.jsx)("div",{className:"h-5 w-5 rounded-full bg-[#E0F2F1] flex items-center justify-center",children:(0,a.jsx)(er.A,{className:"h-3 w-3 text-[#00796B]"})}):"active"===e.status?(0,a.jsx)("div",{className:"h-5 w-5 rounded-full bg-[#C67A52] flex items-center justify-center",children:(0,a.jsx)(ec.A,{className:"h-2 w-2 fill-white text-white"})}):(0,a.jsx)("div",{className:"h-5 w-5 rounded-full border-2 border-dashed border-[#D9D9D9] flex items-center justify-center",children:(0,a.jsx)(ec.A,{className:"h-2 w-2 text-[#D9D9D9]"})})}),!u&&(0,a.jsx)("div",{className:"flex-1 w-px bg-[#E5E0D8] mt-1 min-h-[8px]"})]}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 ".concat(u?"pb-0":"pb-4"),children:[(0,a.jsxs)("button",{onClick:()=>f(e.id),className:"flex items-center gap-1.5 w-full text-left group cursor-pointer",children:[i?(0,a.jsx)(O.A,{className:"h-3.5 w-3.5 text-[#9A9A9A] shrink-0"}):(0,a.jsx)(z.A,{className:"h-3.5 w-3.5 text-[#9A9A9A] shrink-0"}),(0,a.jsx)("span",{className:"text-[13px] font-medium ".concat("active"===e.status?"text-[#C67A52]":"completed"===e.status?"text-[#2C2C2C]":"text-[#9A9A9A]"),children:c(e.labelKey)}),!i&&(0,a.jsx)("span",{className:"text-[11px] text-[#9A9A9A] truncate ml-1",children:(e=>{switch(e.id){case"idea_created":return t.createdBy?t.createdBy.name:"";case"elaboration":return j;case"proposal":return g;case"tasks":return l.length>0?c("panel.timeline.tasksComplete",{done:b.done,total:b.total}):c("panel.timeline.noTasks");default:return""}})(e)})]}),(e=>{let n=x.has(e.id);switch(e.id){case"idea_created":return n?(0,a.jsxs)("div",{className:"mt-2 space-y-1.5",children:[t.createdBy&&(0,a.jsx)("p",{className:"text-[12px] text-[#6B6B6B]",children:c("panel.timeline.createdBy",{name:t.createdBy.name})}),(0,a.jsx)("p",{className:"text-[12px] text-[#9A9A9A]",children:(0,eu.fw)(t.createdAt,d)}),t.content&&(0,a.jsxs)("p",{className:"text-[12px] text-[#6B6B6B] line-clamp-2",children:[t.content.slice(0,120),t.content.length>120?"...":""]})]}):null;case"elaboration":return n?(0,a.jsxs)("div",{className:"mt-2 space-y-1.5",children:[(0,a.jsx)("p",{className:"text-[12px] text-[#6B6B6B]",children:j}),o&&o.rounds.length>0&&(0,a.jsx)("p",{className:"text-[12px] text-[#9A9A9A]",children:c("panel.timeline.rounds",{count:o.rounds.length})})]}):null;case"proposal":return n?(0,a.jsxs)("div",{className:"mt-2 space-y-1.5",children:[(0,a.jsx)("p",{className:"text-[12px] text-[#6B6B6B]",children:g}),s.length>0&&(0,a.jsxs)("div",{className:"space-y-1",children:[v.docCount>0&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-[12px] text-[#9A9A9A]",children:[(0,a.jsx)(el.A,{className:"h-3 w-3"}),(0,a.jsx)("span",{children:c("panel.timeline.documents",{count:v.docCount})})]}),v.taskDraftCount>0&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-[12px] text-[#9A9A9A]",children:[(0,a.jsx)(V.A,{className:"h-3 w-3"}),(0,a.jsx)("span",{children:c("panel.timeline.tasks",{count:v.taskDraftCount})})]})]})]}):null;case"tasks":return n?(0,a.jsx)("div",{className:"mt-2 space-y-2",children:0===l.length?(0,a.jsx)("p",{className:"text-[12px] text-[#9A9A9A]",children:c("panel.timeline.noTasks")}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex-1 h-1.5 rounded-full bg-[#F0EDE8] overflow-hidden flex",children:[b.done>0&&(0,a.jsx)("div",{className:"h-full bg-[#00796B]",style:{width:"".concat(b.done/b.total*100,"%")}}),b.inProgress>0&&(0,a.jsx)("div",{className:"h-full bg-[#1976D2]",style:{width:"".concat(b.inProgress/b.total*100,"%")}}),b.toVerify>0&&(0,a.jsx)("div",{className:"h-full bg-[#7B1FA2]",style:{width:"".concat(b.toVerify/b.total*100,"%")}})]}),(0,a.jsx)("span",{className:"text-[11px] text-[#9A9A9A] shrink-0",children:c("panel.timeline.tasksComplete",{done:b.done,total:b.total})})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[l.slice(0,5).map(e=>(0,a.jsxs)("button",{onClick:()=>r(e.uuid),className:"flex items-center gap-2 w-full text-left rounded-md px-2 py-1.5 hover:bg-[#F5F2EC] transition-colors group cursor-pointer",children:[(0,a.jsx)(q.A,{className:"h-3 w-3 text-[#D9D9D9] shrink-0 group-hover:text-[#C67A52]"}),(0,a.jsx)("span",{className:"h-2 w-2 rounded-full shrink-0 ".concat((0,eu.eT)(e.status))}),(0,a.jsx)("span",{className:"flex-1 text-[12px] text-[#2C2C2C] truncate group-hover:text-[#C67A52]",children:e.title})]},e.uuid)),l.length>5&&(0,a.jsx)("p",{className:"text-[11px] text-[#9A9A9A] px-2",children:c("panel.timeline.moreItems",{count:l.length-5})})]})]})}):null;default:return null}})(e)]})]},e.id)})})}let em=(0,ed.createServerReference)("60946d7963b917a5c70ca1925c0ea530fe03822d36",ed.callServer,void 0,ed.findSourceMapURL,"getReportsForIdeaAction");function ep(e){let{projectUuid:t,ideaUuid:s,proposals:l,onDocClick:r}=e,c=(0,i.c)("idea"),d=(0,i.c)("documents"),[o,u]=(0,n.useState)([]),[m,p]=(0,n.useState)(!0),h=l.some(e=>"approved"===e.status),f=(0,n.useCallback)(async()=>{if(!h){u([]),p(!1);return}try{let e=await em(t,s);if(e.success){let t=[...e.data].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());u(t.map(e=>{var t;return{uuid:e.uuid,title:e.title,type:e.type,content:null!=(t=e.content)?t:null,createdAt:e.createdAt}}))}}catch(e){X.q.error("Failed to fetch reports for idea:",e)}finally{p(!1)}},[t,s,h]);return((0,n.useEffect)(()=>{p(!0),f()},[f]),(0,k.eV)("document",f),m)?h?(0,a.jsx)("div",{className:"flex items-center justify-center py-3",children:(0,a.jsx)(x.A,{className:"h-4 w-4 animate-spin text-[#C67A52]"})}):null:0===o.length?null:(0,a.jsxs)("div",{className:"mt-6 space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,a.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[1px] text-[#9A9A9A]",children:c("reportsList")}),(0,a.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:o.length}),(0,a.jsxs)("span",{className:"text-[11px] text-[#B4B2A9]",children:["\xb7 ",c("reportsAcrossProposals")]})]}),(0,a.jsx)("div",{className:"space-y-0",children:o.map(e=>(0,a.jsxs)(g.$,{variant:"ghost",className:"w-full justify-start h-auto text-left flex items-center gap-2.5 py-3.5 hover:bg-[#FAF8F4] transition-colors cursor-pointer -mx-1 px-1 rounded-lg",onClick:()=>{var t;return r({title:e.title,type:"report",content:null!=(t=e.content)?t:""})},children:[(0,a.jsx)(q.A,{className:"h-3.5 w-3.5 shrink-0 text-[#B4B2A9]"}),(0,a.jsx)(b.E,{variant:"outline",className:"shrink-0 text-[10px] font-medium border-[#E5E0D8] text-[#6B6B6B] bg-[#F5F2EC] px-2 py-0.5 font-mono",children:d(K.y[e.type]||"typeOther")}),(0,a.jsx)("span",{className:"flex-1 min-w-0 text-left text-[13px] text-[#2C2C2A] truncate",children:e.title})]},e.uuid))})]})}var eh=s(24756);let ef=["in_progress","to_verify","open","assigned","done","closed"];function ej(e){let{tasks:t,projectUuid:s,proposalUuids:l,onSelectTask:r}=e,c=(0,i.c)("ideaTracker"),[d,o]=(0,n.useState)({}),u=(0,n.useMemo)(()=>t.map(e=>e.uuid),[t]),x=(0,n.useCallback)(async()=>{if(0===u.length)return;let e=await (0,eh.h)(u);e.success&&e.data&&o(e.data)},[u]);(0,n.useEffect)(()=>{x()},[x]),(0,k.eV)("task",x);let m=(0,n.useMemo)(()=>{let e=[];for(let s of ef){let a=t.filter(e=>e.status===s);a.length>0&&e.push({status:s,tasks:a})}let s=new Set(ef),a=t.filter(e=>!s.has(e.status));return a.length>0&&e.push({status:"other",tasks:a}),e},[t]),[p,f]=(0,n.useState)(new Set),j=(0,n.useMemo)(()=>{let e=t.length,s=t.filter(e=>"done"===e.status||"closed"===e.status).length,a=0,n=0,i=0,l=0;for(let e of t)e.acceptanceSummary&&(a+=e.acceptanceSummary.total,n+=e.acceptanceSummary.passed,i+=e.acceptanceSummary.required,l+=e.acceptanceSummary.requiredPassed);return{total:e,done:s,acTotal:a,acPassed:n,acRequired:i,acRequiredPassed:l}},[t]);return 0===t.length?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-12 text-center",children:[(0,a.jsx)(V.A,{className:"h-8 w-8 text-[#D9D9D9]"}),(0,a.jsx)("p",{className:"text-sm text-[#9A9A9A]",children:c("panel.taskList.noTasks")})]}):(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 rounded-lg bg-[#FAFAF7] px-3 py-2",children:[(0,a.jsx)("span",{className:"text-[12px] text-[#6B6B6B]",children:c("panel.taskList.summary",{done:j.done,total:j.total})}),j.acTotal>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-[12px] text-[#D9D9D9]",children:"\xb7"}),(0,a.jsx)("span",{className:"text-[12px] text-[#6B6B6B]",children:c("panel.taskList.acSummary",{passed:j.acRequiredPassed,total:j.acRequired})})]}),l.length>0&&(0,a.jsxs)(M(),{href:"/projects/".concat(s,"/tasks?proposalUuids=").concat(l.join(",")),className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-[#C67A52] shrink-0",children:[c("panel.taskList.viewKanban"),(0,a.jsx)(z.A,{className:"h-3.5 w-3.5"})]})]}),m.map(e=>{let t=p.has(e.status);return(0,a.jsxs)("div",{children:[(0,a.jsxs)("button",{onClick:()=>{var t;return t=e.status,void f(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},className:"flex items-center gap-2 w-full text-left py-1.5 group cursor-pointer",children:[t?(0,a.jsx)(z.A,{className:"h-3.5 w-3.5 text-[#9A9A9A]"}):(0,a.jsx)(O.A,{className:"h-3.5 w-3.5 text-[#9A9A9A]"}),(0,a.jsx)("span",{className:"h-2 w-2 rounded-full shrink-0 ".concat((0,eu.eT)(e.status))}),(0,a.jsx)("span",{className:"text-[13px] font-medium text-[#2C2C2C]",children:function(e,t){switch(e){case"in_progress":return t("panel.taskList.inProgress");case"to_verify":return t("panel.taskList.toVerify");case"open":return t("panel.taskList.open");case"assigned":return t("panel.taskList.assigned");case"done":return t("panel.taskList.done");case"closed":return t("panel.taskList.closed");default:return e}}(e.status,c)}),(0,a.jsx)("span",{className:"text-[11px] text-[#9A9A9A] ml-auto",children:e.tasks.length})]}),!t&&(0,a.jsx)("div",{className:"ml-3 space-y-0.5",children:e.tasks.map(e=>{let t=d[e.uuid]||0,s=e.acceptanceSummary;return(0,a.jsx)(J.D,{entityType:"task",entityUuid:e.uuid,badgeInside:!0,children:(0,a.jsxs)("button",{onClick:()=>r(e.uuid),className:"flex items-center gap-2 w-full text-left rounded-md px-2.5 py-2 hover:bg-[#F5F2EC] transition-colors group cursor-pointer",children:[(0,a.jsx)(q.A,{className:"h-3.5 w-3.5 text-[#D9D9D9] shrink-0 group-hover:text-[#C67A52]"}),(0,a.jsx)("span",{className:"h-1.5 w-1.5 rounded-full shrink-0 ".concat((0,eu.eT)(e.status))}),(0,a.jsx)("span",{className:"flex-1 text-[13px] text-[#2C2C2C] truncate group-hover:text-[#C67A52]",children:e.title}),s&&s.total>0&&(0,a.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 rounded-full bg-[#F0EDE8] px-1.5 py-0.5 text-[10px] text-[#6B6B6B]",children:[(0,a.jsx)(er.A,{className:"h-2.5 w-2.5"}),s.requiredPassed,"/",s.required]}),e.assignee&&(0,a.jsxs)("span",{className:"shrink-0 inline-flex items-center gap-1 text-[10px] text-[#9A9A9A] max-w-[72px] truncate",title:e.assignee.name,children:[(0,a.jsx)(h.A,{className:"h-2.5 w-2.5 shrink-0"}),e.assignee.name.split(/[@\s]/)[0]]}),t>0&&(0,a.jsx)("span",{className:"inline-flex items-center justify-center h-4 min-w-[16px] rounded-full bg-[#E8F5E9] text-[#2E7D32] text-[9px] font-semibold shrink-0",title:c("panel.taskList.workersActive",{count:t}),children:t})]})},e.uuid)})})]},e.status)})]})}var eg=s(5712);function ev(e){let{ideaUuid:t}=e,s=(0,i.c)(),[l,r]=(0,n.useState)([]),[c,d]=(0,n.useState)(!0),o=(0,n.useCallback)(async()=>{d(!0),r((await (0,eg.x)(t)).activities),d(!1)},[t]);return(0,n.useEffect)(()=>{o()},[o]),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)(A.J,{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:s("common.activity")}),(0,a.jsx)("div",{className:"mt-2",children:c?(0,a.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,a.jsx)(x.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):0===l.length?(0,a.jsx)("p",{className:"text-sm text-[#9A9A9A] italic",children:s("common.noActivity")}):l.map((e,t)=>(0,a.jsxs)("div",{className:"flex items-stretch gap-2.5",children:[(0,a.jsxs)("div",{className:"flex flex-col items-center w-2 shrink-0",children:[(0,a.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full border-[1.5px] border-[#D9D9D9] bg-white"}),t<l.length-1&&(0,a.jsx)("div",{className:"flex-1 w-px bg-[#E5E0D8] mt-1"})]}),(0,a.jsxs)("div",{className:"flex-1 pb-3",children:[(0,a.jsx)("p",{className:"text-[13px] text-[#2C2C2C]",children:function(e,t){let{action:s,actorName:a}=e;switch(s){case"created":case"idea_created":return t("activity.ideaCreated",{actor:a});case"assigned":case"idea_assigned":return t("activity.ideaAssigned",{actor:a});case"claimed":case"idea_claimed":return t("activity.ideaClaimed",{actor:a});case"released":case"idea_released":return t("activity.ideaReleased",{actor:a});case"status_changed":case"idea_status_changed":return t("activity.ideaStatusChanged",{actor:a});case"edited":case"idea_edited":return t("activity.ideaEdited",{actor:a});case"reparented":case"idea_reparented":return t("activity.ideaReparented",{actor:a});case"elaboration_started":return t("activity.elaborationStarted",{actor:a});case"elaboration_answered":return t("activity.elaborationAnswered",{actor:a});case"elaboration_skipped":return t("activity.elaborationSkipped",{actor:a});case"elaboration_resolved":return t("activity.elaborationResolved",{actor:a});case"elaboration_followup":return t("activity.elaborationFollowup",{actor:a});default:return t("activity.genericAction",{actor:a,action:s})}}(e,s)}),(0,a.jsx)("p",{className:"text-[11px] text-[#9A9A9A]",children:(0,eu.fw)(e.createdAt,s)})]})]},e.uuid))})]})}var eb=s(57362);function eN(e){let{ideaUuid:t,currentUserUuid:s,commentCount:l,onCommentCountChange:r}=e,c=(0,i.c)("ideaTracker"),[d,o]=(0,n.useState)("comments");return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex gap-1 rounded-lg bg-[#F5F2EC] p-0.5",children:[(0,a.jsxs)("button",{onClick:()=>o("comments"),className:"flex-1 rounded-md px-3 py-1.5 text-[13px] font-medium transition-colors flex items-center justify-center gap-1.5 cursor-pointer ".concat("comments"===d?"bg-white text-[#2C2C2C] shadow-sm":"text-[#9A9A9A] hover:text-[#6B6B6B]"),children:[c("panel.activityTab.comments"),l>0&&(0,a.jsx)("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-[#F5F2EC] text-[#6B6B6B] text-[10px] font-semibold leading-none",children:l})]}),(0,a.jsx)("button",{onClick:()=>o("activity"),className:"flex-1 rounded-md px-3 py-1.5 text-[13px] font-medium transition-colors cursor-pointer ".concat("activity"===d?"bg-white text-[#2C2C2C] shadow-sm":"text-[#9A9A9A] hover:text-[#6B6B6B]"),children:c("panel.activityTab.activity")})]}),(0,a.jsx)("div",{children:"activity"===d?(0,a.jsx)(ev,{ideaUuid:t}):(0,a.jsx)(eb.$m,{targetType:"idea",targetUuid:t,currentUserUuid:s,onCountChange:r,compact:!0})})]})}var ey=s(25347),eA=s(24522),ew=s(72992),eC=s(14741),ek=s(30028),eF=s(97438),eE=s(4365),eB=s(24377);let eS=(0,ed.createServerReference)("40dea3a5d82afa8a50d325d86aeffd2c101d45343f",ed.callServer,void 0,ed.findSourceMapURL,"getProjectIdeasForPickerAction"),eD=(0,ed.createServerReference)("606347076f72433d83088fa304ea5b8936197847dc",ed.callServer,void 0,ed.findSourceMapURL,"setIdeaParentAction");function e_(e){let{open:t,onOpenChange:s,ideaUuid:c,ideaTitle:d,projectUuid:o,currentParentUuid:u,descendantUuids:m,onChanged:p}=e,h=(0,i.c)("ideaTracker.lineage"),f=(0,i.c)("common"),j=(0,l.useRouter)(),[v,b]=(0,n.useState)([]),[N,y]=(0,n.useState)(!1),[A,w]=(0,n.useState)(!1),[C,k]=(0,n.useState)(!1),[F,E]=(0,n.useState)(null),B=new Set([c,...m]),S=(0,n.useCallback)(async()=>{w(!0),E(null);try{let e=await eS(o);e.success?(b(e.data),y(e.hasMore)):E(e.error)}catch(e){X.q.error("Failed to load parent candidates:",e),E(h("saveFailed"))}w(!1)},[o,h]);(0,n.useEffect)(()=>{t&&S()},[t,S]);let D=async e=>{if(!C){k(!0),E(null);try{let t=await eD(c,e);t.success?(r.oR.success(e?h("save"):h("detach")),s(!1),j.refresh(),p()):E(t.error||h("saveFailed"))}catch(e){E(e instanceof Error?e.message:h("saveFailed"))}k(!1)}};return(0,a.jsx)(eF.lG,{open:t,onOpenChange:s,children:(0,a.jsxs)(eF.Cf,{children:[(0,a.jsxs)(eF.c7,{children:[(0,a.jsx)(eF.L3,{children:h("setParentTitle")}),(0,a.jsx)(eF.rr,{children:h("setParentDescription",{title:d})})]}),(0,a.jsxs)("div",{className:"min-w-0 space-y-3 pt-1",children:[A?(0,a.jsx)("div",{className:"flex h-40 items-center justify-center",children:(0,a.jsx)(x.A,{className:"h-5 w-5 animate-spin text-[#9A9A9A]"})}):(0,a.jsx)("div",{className:"rounded-md border border-[#E5E0D8]",children:(0,a.jsxs)(eE.uB,{children:[(0,a.jsx)(eE.G7,{placeholder:h("searchPlaceholder")}),(0,a.jsxs)(eE.oI,{children:[(0,a.jsx)(eE.xL,{children:h("noCandidates")}),(0,a.jsx)(eE.L$,{children:v.map(e=>{let t=B.has(e.uuid),s=e.uuid===u;return(0,a.jsxs)(eE.h_,{value:e.title,disabled:t,onSelect:()=>{t||D(e.uuid)},className:(0,eB.cn)("flex min-w-0 items-center justify-between gap-2",t&&"opacity-55",s&&"bg-[#C67A52]/10"),children:[(0,a.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13px] text-[#2C2C2A]",children:e.title}),t&&(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-1 text-[11px] font-medium text-[#B0654A]",children:[(0,a.jsx)(eC.A,{className:"h-3 w-3"}),h("cycleBlocked")]})]},e.uuid)})})]})]})}),(0,a.jsxs)("div",{className:"flex items-start gap-2 rounded-md bg-[#FBF0EB] px-3 py-2.5",children:[(0,a.jsx)(ek.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[#B0654A]"}),(0,a.jsx)("p",{className:"text-[12px] leading-relaxed text-[#9A5238]",children:h("cycleWarning")})]}),N&&(0,a.jsx)("p",{className:"px-1 text-[12px] text-[#A8A498]",role:"status",children:h("pickerTruncated")}),F&&(0,a.jsx)("p",{className:"text-xs text-destructive",role:"alert",children:F})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3 pt-2",children:[u?(0,a.jsx)(g.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:()=>D(null),disabled:C,children:h("detach")}):(0,a.jsx)("span",{}),(0,a.jsx)(g.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:()=>s(!1),disabled:C,children:f("cancel")})]})]})})}var eU=s(875),eT=s(38845),eP=s(86750);let eR=(0,ed.createServerReference)("4040f002467cca317c082889a14041485f531d95ef",ed.callServer,void 0,ed.findSourceMapURL,"getIdeaAction");var eL=s(40888),eI=s(11982),eM=s(15906),e$=s(11083),ez=s(11166),eq=s(23552),eO=s(30603),eV=s(38106);function eJ(e){var t,s;let{ideaUuid:F,projectUuid:E,currentUserUuid:B,onClose:S,onNavigate:D}=e,_=(0,i.c)(),U=(0,i.c)("ideaTracker"),T=(0,i.c)("status"),P=(0,i.c)("ideaTracker.lineage"),R=(0,l.useRouter)(),[I,M]=(0,n.useState)(null),[$,z]=(0,n.useState)(!0),[q,O]=(0,n.useState)(null),[V,J]=(0,n.useState)([]),[Q,H]=(0,n.useState)([]),[K,Y]=(0,n.useState)("overview"),[ee,et]=(0,n.useState)(new Set(["overview"])),[es,ea]=(0,n.useState)(!1),[en,ei]=(0,n.useState)(0),[el,er]=(0,n.useState)(!1),[ec,ed]=(0,n.useState)(!1),[eo,em]=(0,n.useState)(null),[eh,ef]=(0,n.useState)(!0),[eg,ev]=(0,n.useState)(!1),[eb,eC]=(0,n.useState)(null),[ek,eF]=(0,n.useState)(!1),[eE,eB]=(0,n.useState)(!1),[eS,eD]=(0,n.useState)(""),[eJ,eQ]=(0,n.useState)(""),[eH,eK]=(0,n.useState)(!1),[eG,eW]=(0,n.useState)(null),[eX,eZ]=(0,n.useState)(!1),[eY,e0]=(0,n.useState)(!1),[e2,e1]=(0,n.useState)(!1),[e5,e9]=(0,n.useState)(null),[e6,e3]=(0,n.useState)(null),[e4,e8]=(0,n.useState)(null),e7=(0,n.useCallback)(e=>{e8(null),e9(e)},[]),te=(0,n.useCallback)(e=>{e9(null),e3(null),e8(e)},[]),[tt,ts]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=window.matchMedia("(min-width: 960px)");ts(e.matches);let t=e=>ts(e.matches);return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let[ta,tn]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=setTimeout(()=>tn(!0),300);return()=>clearTimeout(e)},[]);let ti=(0,n.useCallback)(e=>{let t=new URLSearchParams(window.location.search);t.set("tab",e),window.history.replaceState(null,"","".concat(window.location.pathname,"?").concat(t.toString()))},[]),tl=(0,n.useCallback)(async()=>{try{let e=await eR(F);e.success?(M(e.data),O(null)):O(U("Not found"===e.error?"panel.notFound":"panel.loadFailed"))}catch(e){O(U("panel.loadFailed"))}finally{z(!1)}},[F,U]);(0,n.useEffect)(()=>{z(!0),tl()},[tl]),(0,k.eV)("idea",tl),(0,k.eV)("proposal",tl),(0,k.eV)("task",tl);let tr=null==I?void 0:I.uuid,tc=null==I?void 0:I.status,td=(0,n.useCallback)(async()=>{if(!tr||"open"===tc)return void J([]);try{let e=await (0,G.U)(E,tr);e.success&&J(e.data)}catch(e){X.q.error("Failed to fetch proposals:",e)}},[E,tr,tc]);(0,n.useEffect)(()=>{td()},[td]),(0,k.eV)("proposal",td);let to=(0,n.useCallback)(async()=>{let e=V.filter(e=>"approved"===e.status);if(0===e.length)return void H([]);try{let t=(await Promise.all(e.map(e=>(0,W.c)(E,e.uuid)))).flatMap(e=>e.success&&e.data?e.data.map(e=>{var t,s,a;return{uuid:e.uuid,title:e.title,status:e.status,commentCount:null!=(t=e.commentCount)?t:0,assignee:null!=(s=e.assignee)?s:null,acceptanceSummary:null!=(a=e.acceptanceSummary)?a:null}}):[]);H(t)}catch(e){X.q.error("Failed to fetch tasks:",e)}},[E,V]);(0,n.useEffect)(()=>{to()},[to]),(0,k.eV)("task",to);let tu=(0,n.useCallback)(async()=>{if(!tr)return;let e=await (0,eI.z)(tr);e.success&&e.data&&em(e.data),ef(!1)},[tr]);(0,n.useEffect)(()=>{tu()},[tu]),(0,k.eV)("idea",tu);let tx=(0,n.useMemo)(()=>I?function(e,t,s){let a=["overview"];return a.push("elaboration"),t.length>0&&a.push("proposal"),s.length>0&&a.push("tasks"),a.push("activity"),a}(0,V,Q):["overview","activity"],[I,V,Q]),tm=(0,n.useRef)(new URLSearchParams(window.location.search).get("tab")),tp=I?function(e){switch(e){case"open":case"researching":case"answer_questions":return"elaboration";case"planning":case"review_proposal":return"proposal";case"building":case"verify_work":return"tasks";default:return"overview"}}(I.badgeHint):"overview";(0,n.useEffect)(()=>{let e;if(!I||es)return;let t=tm.current;if(t)if(!tx.includes(t))return;else e=t,tm.current=null,ea(!0);else if(tx.includes(tp))e=tp;else{if("overview"!==tp)return;e="overview"}Y(e),et(t=>new Set([...t,e])),ti(e)},[null==I?void 0:I.uuid,tp,tx]),(0,n.useEffect)(()=>{ea(!1)},[F]),(0,n.useEffect)(()=>{tx.includes(K)||Y("overview")},[tx,K]);let th=(0,n.useMemo)(()=>Q.filter(e=>"in_progress"===e.status||"assigned"===e.status||"to_verify"===e.status).length,[Q]),tf=(0,n.useCallback)(()=>{if(!e5)return void e3(null);(0,eL.Q)(e5).then(e=>{e.success&&e3(e.data)}).catch(e=>X.q.error("Failed to load task details:",e))},[e5]);(0,n.useEffect)(()=>{tf()},[tf]),(0,k.eV)("task",tf),(0,n.useEffect)(()=>{eB(!1),eD((null==I?void 0:I.title)||""),eQ((null==I?void 0:I.content)||""),eW(null)},[null==I?void 0:I.uuid,null==I?void 0:I.title,null==I?void 0:I.content]);let tj=()=>{eB(!1),eD((null==I?void 0:I.title)||""),eQ((null==I?void 0:I.content)||""),eW(null)},tg=async()=>{if(!I||!eS.trim())return void eW(_("ideas.titleRequired"));eK(!0),eW(null);let e=await (0,eT.J)({ideaUuid:I.uuid,projectUuid:E,title:eS.trim(),content:eJ.trim()||null});eK(!1),e.success?(eB(!1),await tl(),R.refresh()):eW(e.error||_("ideas.updateFailed"))},tv=async()=>{if(!I)return;ed(!0);let e=await (0,eP.Z)(I.uuid,E);ed(!1),e.success&&(S(),R.refresh())},tb=async()=>{if(!I)return;ev(!0),eC(null);let e=await (0,eM.e)(I.uuid);ev(!1),e.success?(eF(!0),await tl(),R.refresh()):eC(e.error||_("elaboration.verifyFailed"))},tN=(null==I?void 0:I.derivedStatus)||"todo",ty=!!I&&"elaborated"!==I.status,tA=(0,ez.o)({ideaStatus:null==I?void 0:I.status,elaborationStatus:null==I?void 0:I.elaborationStatus,elaboration:eo});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:S}),(0,a.jsxs)("div",{className:"fixed right-0 top-14 md:top-0 z-50 flex h-[calc(100%-3.5rem)] md:h-full w-full md:w-[480px] flex-col bg-white shadow-xl border-l border-[#E5E0D8] ".concat(ta?"":"animate-in slide-in-from-right duration-300"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-[#F5F2EC] px-6 py-5",children:[(0,a.jsx)("div",{className:"flex-1 min-w-0",children:$?(0,a.jsx)("div",{className:"h-5 w-40 animate-pulse rounded bg-[#F5F2EC]"}):I?eE?(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:_("ideas.editIdea")}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C] truncate",children:I.title}),(0,a.jsxs)("div",{className:"mt-1.5 flex items-center gap-2",children:[(0,a.jsx)(b.E,{className:eu._5[tN]||eu._5.todo,children:I.badgeHint?U("badge.".concat(eu.Wl[I.badgeHint]||"open")):T(eu.Bj[tN]||"todo")}),(0,a.jsx)("span",{className:"text-xs text-[#9A9A9A]",children:(0,eV.r)(I.createdAt)})]})]}):(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:U("panel.notFound")})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-4",children:[I&&!eE&&(0,a.jsxs)(g.$,{variant:"outline",size:"sm",className:"h-8 gap-1.5 border-[#E5E0D8] px-2.5",onClick:()=>e1(!0),title:P("deriveIdea"),"aria-label":P("deriveIdea"),children:[(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 text-[#C67A52]"}),(0,a.jsx)("span",{className:"text-[12px] font-medium text-[#C67A52]",children:P("derive")})]}),I&&!eE&&(0,a.jsx)(g.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:()=>eZ(!0),title:_("ideas.actions.move"),"aria-label":_("ideas.actions.move"),children:(0,a.jsx)(d.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),I&&"elaborated"!==I.status&&!eE&&(0,a.jsx)(g.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:()=>{I&&(eD(I.title),eQ(I.content||""),eW(null),eB(!0))},title:_("ideas.editIdea"),children:(0,a.jsx)(o.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),(0,a.jsx)(g.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:eE?tj:S,children:(0,a.jsx)(u.A,{className:"h-4 w-4 text-[#6B6B6B]"})})]})]}),I&&!$&&!eE&&(0,a.jsx)("div",{className:"border-b border-[#F5F2EC] px-6",children:(0,a.jsx)("div",{className:"flex gap-0 -mb-px",children:tx.map(e=>(0,a.jsxs)("button",{onClick:()=>{Y(e),ea(!0),et(t=>new Set([...t,e])),ti(e)},className:"relative flex items-center gap-1.5 px-3 py-2.5 text-[13px] font-medium transition-colors cursor-pointer ".concat(K===e?"text-[#C67A52] border-b-2 border-[#C67A52]":"text-[#9A9A9A] hover:text-[#6B6B6B]"),children:[U("panel.tabs.".concat(e)),"tasks"===e&&th>0&&(0,a.jsx)("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-[#E3F2FD] text-[#1976D2] text-[10px] font-semibold leading-none",children:th}),"activity"===e&&en>0&&(0,a.jsx)("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-[#F5F2EC] text-[#6B6B6B] text-[10px] font-semibold leading-none",children:en})]},e))})}),(0,a.jsx)(v.F,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:(0,a.jsx)("div",{className:"flex min-h-full flex-col px-6 py-5",children:$?(0,a.jsxs)("div",{className:"flex flex-1 items-center justify-center py-12",children:[(0,a.jsx)(x.A,{className:"h-6 w-6 animate-spin text-[#C67A52]"}),(0,a.jsx)("span",{className:"ml-2 text-sm text-[#9A9A9A]",children:U("loading")})]}):q?(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,a.jsx)("p",{className:"text-sm text-[#9A9A9A]",children:q})}):I?eE?(0,a.jsxs)("div",{className:"space-y-5",children:[eG&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:eG}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(A.J,{htmlFor:"edit-title",className:"text-[13px] font-medium text-[#2C2C2C]",children:_("ideas.titleLabel")}),(0,a.jsx)(N.p,{id:"edit-title",value:eS,onChange:e=>eD(e.target.value),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(A.J,{htmlFor:"edit-content",className:"text-[13px] font-medium text-[#2C2C2C]",children:_("common.content")}),(0,a.jsx)(y.T,{id:"edit-content",value:eJ,onChange:e=>eQ(e.target.value),rows:8,className:"border-[#E5E0D8] text-sm resize-none focus-visible:ring-[#C67A52]"})]})]}):(0,a.jsxs)(a.Fragment,{children:[ee.has("overview")&&(0,a.jsxs)("div",{style:{display:"overview"===K?"block":"none"},children:[(0,a.jsx)(ex,{idea:I,proposals:V,tasks:Q,onSelectTask:e7}),(0,a.jsxs)("div",{className:"mt-5 space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 text-[#C67A52]"}),(0,a.jsx)("span",{className:"text-[12px] font-semibold text-[#5F5E5A]",children:P("title")})]}),(0,a.jsxs)(g.$,{variant:"outline",size:"sm",className:"h-7 gap-1 border-[#E5E0D8] px-2 text-[11px] text-[#6B6B6B]",onClick:()=>e0(!0),children:[(0,a.jsx)(o.A,{className:"h-3 w-3"}),I.parentUuid?P("changeParent"):P("setParent")]})]}),I.parent?(0,a.jsxs)("button",{type:"button",onClick:()=>null==D?void 0:D(I.parent.uuid),className:"flex w-full items-center gap-2 rounded-lg bg-[#FAF8F4] px-3 py-2.5 text-left transition-colors hover:bg-[#F5F2EC]",children:[(0,a.jsx)(m.A,{className:"h-3.5 w-3.5 shrink-0 text-[#888780]"}),(0,a.jsx)("span",{className:"shrink-0 text-[12px] text-[#888780]",children:P("derivedFrom")}),(0,a.jsx)("span",{className:"min-w-0 flex-1 truncate text-[12px] font-medium text-[#5F5E5A]",children:I.parent.title})]}):(0,a.jsx)("p",{className:"px-1 text-[12px] text-[#A8A498]",children:P("noParent")}),I.children&&I.children.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 px-1 pt-1",children:[(0,a.jsx)("span",{className:"text-[12px] font-medium text-[#5F5E5A]",children:P("derivedIdeas")}),(0,a.jsx)("span",{className:"text-[11px] text-[#888780]",children:I.children.length})]}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-[#EFEBE3]",children:I.children.map((e,t)=>(0,a.jsxs)("div",{children:[t>0&&(0,a.jsx)("div",{className:"h-px bg-[#F0EEEA]"}),(0,a.jsxs)("button",{type:"button",onClick:()=>null==D?void 0:D(e.uuid),className:"flex w-full items-center justify-between gap-2 px-3 py-2.5 text-left transition-colors hover:bg-[#FAF8F4]",children:[(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,a.jsx)(p.A,{className:"h-3.5 w-3.5 shrink-0 text-[#C2BDB2]"}),(0,a.jsx)("span",{className:"truncate text-[12px] text-[#2C2C2A]",children:e.title})]}),(0,a.jsx)(b.E,{className:"shrink-0 border-0 text-[10px] ".concat(eu._5[e.derivedStatus]||eu._5.todo),children:T(eu.Bj[e.derivedStatus]||"todo")})]})]},e.uuid))})]})]}),(0,a.jsx)(ep,{projectUuid:E,ideaUuid:I.uuid,proposals:V,onDocClick:te})]}),tx.includes("elaboration")&&ee.has("elaboration")&&(0,a.jsx)("div",{style:{display:"elaboration"===K?"block":"none"},children:(0,a.jsx)(L,{idea:I,elaboration:eo,isLoading:eh,onRefresh:async()=>{await tu(),await tl()}})}),tx.includes("proposal")&&ee.has("proposal")&&(0,a.jsx)("div",{style:{display:"proposal"===K?"block":"none"},children:(0,a.jsx)(Z,{idea:I,projectUuid:E,onTaskClick:e7,onDocClick:te,initialProposals:V})}),tx.includes("tasks")&&ee.has("tasks")&&(0,a.jsx)("div",{style:{display:"tasks"===K?"block":"none"},children:(0,a.jsx)(ej,{tasks:Q,projectUuid:E,proposalUuids:V.filter(e=>"approved"===e.status).map(e=>e.uuid),onSelectTask:e7})}),ee.has("activity")&&(0,a.jsx)("div",{style:{display:"activity"===K?"block":"none"},children:(0,a.jsx)(eN,{ideaUuid:I.uuid,currentUserUuid:B,commentCount:en,onCommentCountChange:ei})})]}):null})}),I&&!$&&(0,a.jsx)("div",{className:"border-t border-[#F5F2EC] px-6 py-4",children:eE?(0,a.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,a.jsx)(g.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:tj,disabled:eH,children:_("common.cancel")}),(0,a.jsx)(g.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:tg,disabled:eH||!eS.trim(),children:eH?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),_("common.save")]}):_("common.save")})]}):(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[ty&&(0,a.jsx)(C.Bc,{delayDuration:300,children:(0,a.jsxs)(C.m_,{children:[(0,a.jsx)(C.k$,{asChild:!0,children:(0,a.jsx)(g.$,{variant:"outline",size:"icon",className:"shrink-0 h-8 w-8 border-[#E5E0D8]",onClick:()=>er(!0),"aria-label":I.assignee?_("common.reassign"):_("common.assign"),children:(0,a.jsx)(h.A,{className:"h-4 w-4"})})}),(0,a.jsx)(C.ZI,{children:I.assignee?_("common.reassign"):_("common.assign")})]})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 flex flex-wrap items-center gap-2",children:[tA&&!ek&&(0,a.jsx)(g.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:tb,disabled:eg,children:eg?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),_("elaboration.verifying")]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.A,{className:"mr-2 h-4 w-4"}),_("elaboration.verifyButton")]})}),ek&&(0,a.jsx)("span",{className:"text-[11px] text-[#00796B]",children:_("elaboration.verifiedQueuedHint")}),eb&&(0,a.jsx)("span",{className:"text-[11px] text-destructive",children:eb}),(0,a.jsx)(eq.w,{ideaUuid:I.uuid,assignee:I.assignee,proposals:V,tasks:Q,onStarted:()=>{tl()}}),(0,a.jsx)(eO.s,{ideaUuid:I.uuid,assignee:I.assignee,proposals:V,tasks:Q,onStarted:()=>{tl()}})]}),(0,a.jsxs)(w.Lt,{children:[(0,a.jsx)(w.tv,{asChild:!0,children:(0,a.jsx)(g.$,{variant:"outline",size:"icon",className:"shrink-0 h-8 w-8 border-[#E5E0D8] text-[#EF4444] hover:bg-[#FFEBEE] hover:text-[#EF4444] hover:border-[#EF4444]",children:(0,a.jsx)(j.A,{className:"h-4 w-4"})})}),(0,a.jsxs)(w.EO,{children:[(0,a.jsxs)(w.wd,{children:[(0,a.jsx)(w.r7,{children:_("ideas.deleteIdea")}),(0,a.jsx)(w.$v,{children:_("ideas.deleteIdeaConfirm",{title:I.title})})]}),(0,a.jsxs)(w.ck,{children:[(0,a.jsx)(w.Zr,{children:_("common.cancel")}),(0,a.jsx)(w.Rx,{variant:"destructive",onClick:tv,disabled:ec,children:ec?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),_("common.delete")]}):_("common.delete")})]})]})]})]})})]}),(0,a.jsx)(ew.h,{open:eX,onOpenChange:eZ,ideaUuid:F,projectUuid:E,onMoved:()=>S()}),I&&(0,a.jsx)(e_,{open:eY,onOpenChange:e0,ideaUuid:I.uuid,ideaTitle:I.title,projectUuid:E,currentParentUuid:null!=(t=I.parentUuid)?t:null,descendantUuids:null!=(s=I.descendantUuids)?s:[],onChanged:tl}),I&&(0,a.jsx)(eU.i,{open:e2,onOpenChange:e1,projectUuid:E,parentUuid:I.uuid,parentTitle:I.title,onCreated:e=>{r.oR.success(P("deriveIdea")),R.refresh(),null==D||D(e)}}),el&&I&&(0,a.jsx)(e$.i,{idea:{uuid:I.uuid,title:I.title,content:I.content,status:I.status,assignee:I.assignee?{type:I.assignee.type,uuid:I.assignee.uuid,name:I.assignee.name}:null},projectUuid:E,currentUserUuid:B,onClose:()=>{er(!1),tl()}}),e5&&e6&&(0,a.jsx)(ey.v,{task:e6,projectUuid:E,currentUserUuid:B,mode:tt?"sidebyside":"overlay",onClose:()=>{e9(null),e3(null)},onBack:()=>{e9(null),e3(null)}}),e4&&(0,a.jsx)(eA.K,{title:e4.title,type:e4.type,content:e4.content,mode:tt?"sidebyside":"overlay",onClose:()=>e8(null),onBack:()=>e8(null)})]})}},875:(e,t,s)=>{s.d(t,{i:()=>j});var a=s(90508),n=s(1856),i=s(39268),l=s(85226),r=s(22922),c=s(97438),d=s(14554),o=s(15972),u=s(88064),x=s(39674),m=s(42305),p=s(62990),h=s(59208),f=s(84169);function j(e){var t;let{open:s,onOpenChange:j,projectUuid:g,onCreated:v,parentUuid:b,parentTitle:N}=e,y=(0,i.c)("ideaTracker"),A=(0,i.c)("ideaTracker.lineage"),w=!!b,C=(0,i.c)("common"),[k,F]=(0,n.useState)(""),[E,B]=(0,n.useState)(""),[S,D]=(0,n.useState)(!1),[_,U]=(0,n.useState)(null),T=(0,h.kz)(),P=(null!=(t=null==T?void 0:T.connections)?t:[]).some(e=>"online"===e.effectiveStatus),[R,L]=(0,n.useState)("form"),I=w?"form":R,M=async()=>{let e=k.trim();if(e){D(!0),U(null);try{var t;let s=await fetch("/api/projects/".concat(g,"/ideas"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e,content:E.trim()||void 0,...b?{parentUuid:b}:{}})}),a=await s.json();a.success&&(null==(t=a.data)?void 0:t.uuid)?(F(""),B(""),j(!1),null==v||v(a.data.uuid)):U(a.error||y("error.createFailed"))}catch(e){U(y("error.createFailed"))}finally{D(!1)}}},$=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"space-y-4 py-2",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(u.J,{htmlFor:"idea-title",children:y("newIdea.ideaTitle")}),(0,a.jsx)(d.p,{id:"idea-title",value:k,onChange:e=>F(e.target.value),placeholder:y("newIdea.titlePlaceholder"),autoFocus:!0,onKeyDown:e=>{!(0,m.P)(e)&&"Enter"===e.key&&!e.shiftKey&&k.trim()&&(e.preventDefault(),M())}})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)(u.J,{htmlFor:"idea-content",children:[y("newIdea.description"),(0,a.jsxs)("span",{className:"ml-1 text-xs font-normal text-[#9A9A9A]",children:["(",C("optional"),")"]})]}),(0,a.jsx)(o.T,{id:"idea-content",value:E,onChange:e=>B(e.target.value),placeholder:y("newIdea.descriptionPlaceholder"),rows:4,className:"resize-none"})]}),_&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 px-3 py-2 text-[12px] text-destructive",children:_})]}),(0,a.jsxs)(c.Es,{children:[(0,a.jsx)(r.$,{variant:"outline",onClick:()=>j(!1),disabled:S,children:C("cancel")}),(0,a.jsxs)(r.$,{onClick:M,disabled:S||!k.trim(),className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:[S?(0,a.jsx)(l.A,{className:"mr-2 h-4 w-4 animate-spin"}):null,C("create")]})]})]}),z=async e=>{let t=await (0,p.tm)("/api/ideas/conversational",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectUuid:g,agentUuid:e.agentUuid,connectionUuid:e.connectionUuid,descriptionText:e.userText})});if(!t.ok){let e=null;try{let s=await t.json();"string"==typeof(null==s?void 0:s.error)&&s.error&&(e=s.error)}catch(e){}throw new f.fF(t.status,e)}let s=null;try{var a;let e=await t.json();(null==e?void 0:e.success)&&(null==(a=e.data)?void 0:a.session)&&(s=e.data.session)}catch(e){}if(!s)throw new f.fF(t.status,null);return s},q=(0,a.jsx)("div",{className:"py-2",children:(0,a.jsx)(f.jH,{dispatch:z,onStarted:e=>{j(!1),null==T||T.openChatForSession(e)}})});return(0,a.jsx)(c.lG,{open:s,onOpenChange:j,children:(0,a.jsxs)(c.Cf,{className:"sm:max-w-[480px]",children:[(0,a.jsxs)(c.c7,{children:[(0,a.jsx)(c.L3,{children:w?A("deriveIdea"):y("newIdea.title")}),w&&N&&(0,a.jsxs)("p",{className:"text-[13px] text-[#6B6B6B]",children:[A("derivedFrom")," \xb7 ",N]})]}),!w&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.tU,{value:I,onValueChange:e=>L(e),children:(0,a.jsxs)(x.j7,{className:"grid w-full grid-cols-2",children:[(0,a.jsx)(x.Xi,{value:"form",children:y("newIdea.modeForm")}),(0,a.jsx)(x.Xi,{value:"conversation",disabled:!P,children:y("newIdea.modeConversation")})]})}),!P&&(0,a.jsxs)("div",{className:"rounded-xl border border-[#EFEBE4] bg-[#FCFBF8] px-3 py-2",children:[(0,a.jsx)("p",{className:"px-1 pt-1 text-[12px] font-medium text-[#6B6B6B]",children:y("newIdea.modeConversationOfflineHint")}),(0,a.jsx)(f.Bs,{variant:"compact"})]})]}),"form"===I?$:q]})})}},24522:(e,t,s)=>{s.d(t,{K:()=>p});var a=s(90508),n=s(1856),i=s(39268),l=s(70633),r=s(9160),c=s(22922),d=s(57731),o=s(64993),u=s(97261),x=s(82523),m=s(90795);function p(e){let{title:t,type:s,content:p,mode:h="overlay",onClose:f,onBack:j}=e,g=(0,i.c)("documents"),[v,b]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=setTimeout(()=>b(!0),300);return()=>clearTimeout(e)},[]),(0,n.useEffect)(()=>{let e=e=>{"Escape"!==e.key||e.defaultPrevented||(e.preventDefault(),f())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[f]);let N="sidebyside"===h;return(0,a.jsxs)(a.Fragment,{children:[!N&&(0,a.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:f}),(0,a.jsxs)("div",{className:"fixed top-14 md:top-0 flex h-[calc(100%-3.5rem)] md:h-full w-full md:w-[480px] flex-col bg-white shadow-xl border-l border-[#E5E0D8] ".concat(N?"z-40 ".concat(v?"":"animate-in slide-in-from-right duration-300"):"z-50 right-0 ".concat(v?"":"animate-in slide-in-from-right duration-300")),style:N?{right:"".concat(m.L8,"px")}:void 0,children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-[#F5F2EC] px-6 py-5",children:[j&&(0,a.jsx)(c.$,{variant:"ghost",size:"icon",className:"mr-2 h-8 w-8 shrink-0",onClick:j,children:(0,a.jsx)(l.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C] truncate",children:t}),(0,a.jsx)("div",{className:"mt-1.5",children:(0,a.jsx)(d.E,{variant:"outline",className:"text-[10px] font-medium border-[#E5E0D8] text-[#6B6B6B] bg-[#F5F2EC] px-2 py-0.5 font-mono",children:g(x.y[s]||"typeOther")})})]}),(0,a.jsx)(c.$,{variant:"outline",size:"icon",className:"ml-4 h-8 w-8 shrink-0 border-[#E5E0D8]",onClick:f,children:(0,a.jsx)(r.A,{className:"h-4 w-4 text-[#6B6B6B]"})})]}),(0,a.jsx)(o.F,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:(0,a.jsx)("div",{className:"px-6 py-5 text-[13px] leading-relaxed text-[#2C2C2A] prose prose-sm max-w-none [&_h1]:text-lg [&_h1]:font-semibold [&_h1]:mt-4 [&_h1]:mb-2 [&_h2]:text-base [&_h2]:font-semibold [&_h2]:mt-3 [&_h2]:mb-1.5 [&_h3]:text-sm [&_h3]:font-medium [&_h3]:mt-2 [&_h3]:mb-1 [&_p]:text-[13px] [&_p]:text-[#4A4A4A] [&_p]:my-1.5 [&_li]:text-[13px] [&_li]:text-[#4A4A4A] [&_ul]:my-1 [&_ol]:my-1 [&_strong]:text-[#2C2C2C] [&_code]:text-[12px] [&_code]:bg-[#F5F2EC] [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_pre]:bg-[#FAF8F4] [&_pre]:p-3 [&_pre]:rounded-lg [&_pre]:my-2",children:(0,a.jsx)(u.MarkdownContent,{children:(0,x.j)(p)})})})]})]})}},39674:(e,t,s)=>{s.d(t,{Xi:()=>c,av:()=>d,j7:()=>r,tU:()=>l});var a=s(90508);s(1856);var n=s(79834),i=s(24377);function l(e){let{className:t,...s}=e;return(0,a.jsx)(n.Root,{"data-slot":"tabs",className:(0,i.cn)("flex flex-col gap-2",t),...s})}function r(e){let{className:t,...s}=e;return(0,a.jsx)(n.List,{"data-slot":"tabs-list",className:(0,i.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",t),...s})}function c(e){let{className:t,...s}=e;return(0,a.jsx)(n.Trigger,{"data-slot":"tabs-trigger",className:(0,i.cn)("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...s})}function d(e){let{className:t,...s}=e;return(0,a.jsx)(n.Content,{"data-slot":"tabs-content",className:(0,i.cn)("flex-1 outline-none",t),...s})}},40888:(e,t,s)=>{s.d(t,{Q:()=>n});var a=s(52217);let n=(0,a.createServerReference)("40bf94f62ce0ce8184a8c8659a8cf5c81cb64708e8",a.callServer,void 0,a.findSourceMapURL,"getTaskAction")},82523:(e,t,s)=>{function a(e){return e.replace(/\\n/g,"\n")}s.d(t,{j:()=>a,y:()=>n});let n={prd:"typePrd",tech_design:"typeTechDesign",adr:"typeAdr",spec:"typeSpec",guide:"typeGuide",design:"typeDesign",note:"typeNote",report:"typeReport",other:"typeOther"}}}]);