@chorus-aidlc/chorus 0.8.2 → 0.9.1

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 (260) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +289 -289
  3. package/.next/standalone/.next/app-path-routes-manifest.json +36 -36
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +48 -48
  6. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +3 -3
  46. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  49. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  53. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  54. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  57. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  58. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  60. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  61. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/admin.html +1 -1
  63. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  64. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  70. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  86. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  92. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  98. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  101. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  104. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/mcp/route.js +5 -5
  107. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  109. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  123. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  126. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  149. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/index.html +1 -1
  158. package/.next/standalone/.next/server/app/index.rsc +2 -2
  159. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  161. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  162. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  164. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  165. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  168. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  169. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  171. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +2 -2
  172. package/.next/standalone/.next/server/app/login.html +1 -1
  173. package/.next/standalone/.next/server/app/login.rsc +2 -2
  174. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  176. package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
  177. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/projects.html +1 -1
  179. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  180. package/.next/standalone/.next/server/app/settings.html +1 -1
  181. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  182. package/.next/standalone/.next/server/app-paths-manifest.json +36 -36
  183. package/.next/standalone/.next/server/chunks/162.js +16 -0
  184. package/.next/standalone/.next/server/chunks/1871.js +1 -1
  185. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  186. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  187. package/.next/standalone/.next/server/chunks/4043.js +1 -0
  188. package/.next/standalone/.next/server/chunks/4090.js +2 -2
  189. package/.next/standalone/.next/server/chunks/5044.js +1 -1
  190. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  191. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  192. package/.next/standalone/.next/server/chunks/6592.js +1 -0
  193. package/.next/standalone/.next/server/chunks/6643.js +1 -1
  194. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  195. package/.next/standalone/.next/server/chunks/7578.js +2 -2
  196. package/.next/standalone/.next/server/chunks/8637.js +1 -1
  197. package/.next/standalone/.next/server/chunks/920.js +1 -1
  198. package/.next/standalone/.next/server/chunks/937.js +1 -1
  199. package/.next/standalone/.next/server/chunks/9508.js +2 -2
  200. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  201. package/.next/standalone/.next/server/middleware-manifest.json +1 -1
  202. package/.next/standalone/.next/server/pages/404.html +1 -1
  203. package/.next/standalone/.next/server/pages/500.html +1 -1
  204. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  206. package/.next/standalone/.next/static/chunks/3853-f94afe2f83089c0d.js +1 -0
  207. package/.next/standalone/.next/static/chunks/44046-5c0f7f8c0914988a.js +1 -0
  208. package/.next/standalone/.next/static/chunks/{4860.4aa0288b2953186b.js → 4860.60152a625f2a714f.js} +1 -1
  209. package/.next/standalone/.next/static/chunks/6028-fe4175ea5e6241ed.js +1 -0
  210. package/.next/standalone/.next/static/chunks/93346-c4468893138daac7.js +1 -0
  211. package/.next/standalone/.next/static/chunks/{99373.00844a02fe44575b.js → 99373.4d93aaaf56fe7819.js} +1 -1
  212. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-8409ca03f132910b.js +1 -0
  213. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-7f7a7f654cab4dc3.js +1 -0
  214. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-95cdcec5e6db551f.js +1 -0
  215. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-c36345b80cc5bf5c.js +1 -0
  216. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/{page-a01b45dbe80aeecf.js → page-b153aa34b940a24c.js} +1 -1
  217. package/.next/standalone/.next/static/chunks/{webpack-b999409365c6a0aa.js → webpack-8e0df5e10bc6b98f.js} +1 -1
  218. package/.next/standalone/.next/static/css/ea3f196c7951f8d6.css +1 -0
  219. package/.next/standalone/package.json +1 -1
  220. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  221. package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +1 -1
  222. package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +1 -1
  223. package/.next/standalone/public/chorus-plugin/bin/on-post-verify-task.sh +198 -115
  224. package/.next/standalone/public/chorus-plugin/bin/tests/test-on-post-verify-task.sh +302 -50
  225. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +166 -0
  226. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +10 -6
  227. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +6 -2
  228. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +17 -1
  229. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  230. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +6 -7
  231. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  232. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  233. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +7 -1
  234. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +166 -0
  235. package/.next/standalone/public/skill/chorus/SKILL.md +10 -6
  236. package/.next/standalone/public/skill/develop-chorus/SKILL.md +5 -1
  237. package/.next/standalone/public/skill/idea-chorus/SKILL.md +17 -1
  238. package/.next/standalone/public/skill/package.json +1 -1
  239. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +6 -7
  240. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  241. package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
  242. package/README.md +2 -4
  243. package/README.zh.md +2 -4
  244. package/package.json +1 -1
  245. package/prisma/migrations/20260524144057_remove_session_expires_at/migration.sql +11 -0
  246. package/prisma/schema.prisma +2 -2
  247. package/.next/standalone/.next/server/chunks/554.js +0 -1
  248. package/.next/standalone/.next/server/chunks/5869.js +0 -16
  249. package/.next/standalone/.next/server/chunks/8163.js +0 -1
  250. package/.next/standalone/.next/static/chunks/25846-d1c43e3a187a0c82.js +0 -1
  251. package/.next/standalone/.next/static/chunks/44046-732e5888413d45df.js +0 -1
  252. package/.next/standalone/.next/static/chunks/6028-0fcaf8b495e9bfc8.js +0 -1
  253. package/.next/standalone/.next/static/chunks/93346-9258abbb12887208.js +0 -1
  254. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-5e2b4f48ec70f0e8.js +0 -1
  255. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-ae96fc9386afff88.js +0 -1
  256. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-062c6fef8aef25a6.js +0 -1
  257. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-5326f2b34b200e50.js +0 -1
  258. package/.next/standalone/.next/static/css/a3f1e693b51f7540.css +0 -1
  259. /package/.next/standalone/.next/static/{3AEr6cS1BaPlwTuyPvMQF → yBxnuARbl0brBJS3_STaI}/_buildManifest.js +0 -0
  260. /package/.next/standalone/.next/static/{3AEr6cS1BaPlwTuyPvMQF → yBxnuARbl0brBJS3_STaI}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- exports.id=6207,exports.ids=[6207],exports.modules={9318:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>aq});var d=c(10837),e=c(21968),f=c(1007),g=c(9222),h=c(81512),i=c.n(h),j=c(42424),k=c(76723),l=c(5797),m=c(65956),n=c(4065),o=c(10529),p=c(28605),q=c(33650),r=c(59169),s=c(35209),t=c(21790),u=c(71833),v=c(46839),w=c(93524),x=c(15640),y=c(11568),z=c(54722);let A=[{cx:54,cy:135,topY:117},{cx:96,cy:114,topY:96},{cx:120,cy:118,topY:108},{cx:155,cy:115,topY:105},{cx:146,cy:148,topY:130},{cx:95,cy:149,topY:138},{cx:133,cy:168,topY:158}],B=Array.from({length:7},(a,b)=>b).sort((a,b)=>A[a].topY-A[b].topY);function C({slots:a,projectName:b,agentCount:c,collapsed:f=!1,effects:g,onEffectsConsumed:h}){let i=(0,e.useRef)(null),j=(0,e.useRef)({}),k=(0,e.useRef)(!1),l=(0,e.useRef)(0),m=(0,e.useRef)(0),n=(0,e.useRef)(0),o=(0,e.useRef)(Array.from({length:7},()=>({state:"empty",cycleIndex:0,frameTicks:0,ticksPerFrame:1,stateTimer:0}))),p=(0,e.useRef)(a),q=(0,e.useRef)(b),r=(0,e.useRef)(c),s=(0,e.useRef)(f),t=(0,e.useRef)([]),u=(0,e.useCallback)(a=>{a.fillStyle="#d0d0e0",a.fillRect(0,0,256,16),a.fillStyle="#e4e4f0",a.fillRect(0,0,256,1),a.fillStyle="#9999aa",a.fillRect(0,15,256,1),a.font="bold 7px monospace",a.textBaseline="middle",a.fillStyle="#333",a.textAlign="left";let b=q.current,c=b.length>20?b.slice(0,18)+"..":b;a.fillText(c,6,8),a.textAlign="right",a.fillStyle="#336";let d=r.current;a.fillText(`${d} agent${1!==d?"s":""}`,250,8),a.textAlign="start",a.textBaseline="alphabetic"},[]),v=(0,e.useCallback)((a,b)=>{let c=p.current[b];if(!c?.sessionName)return;let d=A[b];a.font="5px monospace",a.textAlign="center",a.textBaseline="bottom";let e=c.sessionName.length>12?c.sessionName.slice(0,10)+"..":c.sessionName,f=a.measureText(e).width,g=d.cx,h=d.topY-4;a.fillStyle="rgba(0,0,0,0.55)",a.fillRect(g-f/2-2,h-6,f+4,7),a.fillStyle="#fff",a.fillText(e,g,h),a.textAlign="start",a.textBaseline="alphabetic"},[]),w=(0,e.useCallback)(a=>{for(let b of t.current){let c=b.elapsed/b.duration,d=A[b.slotIndex]||A[0];switch(b.type){case"bulb":{let b=c<.1?c/.1:c>.8?(1-c)/.2:1,e=d.cx,f=d.topY-14-2*Math.sin(c*Math.PI*4);a.fillStyle=`rgba(255, 220, 50, ${.3*b})`,a.beginPath(),a.arc(e,f,8,0,2*Math.PI),a.fill(),a.fillStyle=`rgba(255, 230, 80, ${b})`,a.beginPath(),a.arc(e,f,4,0,2*Math.PI),a.fill(),a.fillStyle=`rgba(255, 255, 200, ${b})`,a.fillRect(e-1,f-1,2,2),a.fillStyle=`rgba(180, 180, 180, ${b})`,a.fillRect(e-2,f+3,4,2);break}case"document":{let b=256+(d.cx-256)*Math.min(2*c,1),e=d.topY-10+-15*Math.sin(c*Math.PI);a.globalAlpha=c>.8?(1-c)/.2:1,a.fillStyle="#f8f8f0",a.fillRect(b,e,8,10),a.strokeStyle="#aaa",a.lineWidth=.5,a.strokeRect(b,e,8,10),a.fillStyle="#ccc",a.fillRect(b+1.5,e+2,5,1),a.fillRect(b+1.5,e+4,4,1),a.fillRect(b+1.5,e+6,5,1),a.globalAlpha=1;break}case"stars":{let b=c>.7?(1-c)/.3:1,e=d.cx,f=d.cy;for(let d=0;d<8;d++){let g=d/8*Math.PI*2+c*Math.PI*3,h=10+15*c,i=e+Math.cos(g)*h,j=f+Math.sin(g)*h,k=["#FFD700","#FF6B6B","#4ECDC4","#A78BFA"];a.fillStyle=k[d%k.length],a.globalAlpha=b*(.5+.5*Math.sin(c*Math.PI*6+d));let l=1.5+.5*Math.sin(c*Math.PI*4+d);a.fillRect(i-l/2,j-l/2,l,l)}a.globalAlpha=1;break}case"flash":{let b=c<.3?c/.3:(1-c)/.7;a.fillStyle=`rgba(255, 255, 255, ${.6*b})`,a.fillRect(0,16,256,240)}}}},[]),x=(0,e.useCallback)((a,b)=>{a.clearRect(0,0,768,768),a.save(),a.scale(3,3);let c=b.floor;for(let d of(c?.complete&&c.naturalWidth&&a.drawImage(c,0,0,256,256),B)){let c=o.current[d];if("empty"===c.state)continue;let e="typing"===c.state&&c.cycleIndex%2==1,f=b[`char${d}-frame${e?2:1}`];if(f?.complete&&f.naturalWidth){"celebrate"===c.state&&(a.save(),a.globalAlpha=.85+.15*Math.sin(Date.now()/200));let b="looking"===c.state?+Math.sin(Date.now()/300):0;0!==b&&(a.save(),a.translate(0,b)),a.drawImage(f,0,0,256,256),0!==b&&a.restore(),"celebrate"===c.state&&a.restore()}v(a,d)}u(a),w(a),a.restore()},[u,v,w]),y=(0,e.useCallback)(a=>{for(let b=0;b<7;b++){let c=o.current[b];"empty"!==c.state&&(c.stateTimer+=a,"celebrate"===c.state&&c.stateTimer>=3e3&&(c.state="idle",c.cycleIndex=0,c.frameTicks=0,c.stateTimer=0),"looking"===c.state&&c.stateTimer>=1500&&(c.state="idle",c.cycleIndex=0,c.frameTicks=0,c.stateTimer=0),"typing"===c.state&&(c.frameTicks++,c.frameTicks>=c.ticksPerFrame&&(c.frameTicks=0,c.cycleIndex=(c.cycleIndex+1)%2)))}let b=t.current;for(let c=b.length-1;c>=0;c--)b[c].elapsed+=a,b[c].elapsed>=b[c].duration&&b.splice(c,1)},[]),z=(0,e.useCallback)(a=>{if(s.current){l.current=requestAnimationFrame(z),m.current=a;return}let b=a-m.current;m.current=a,n.current+=b;let c=!1;for(;n.current>=10;)n.current-=10,y(10),c=!0;if(c){let a=i.current,b=a?.getContext("2d");b&&k.current&&x(b,j.current)}l.current=requestAnimationFrame(z)},[y,x]);return(0,d.jsx)("canvas",{ref:i,width:768,height:768,className:"w-full",style:{imageRendering:"pixelated",aspectRatio:"1 / 1"}})}!function(){let a={floor:"floor.png"};for(let b=0;b<7;b++)a[`char${b}-frame1`]=`char${b}-frame1.png`,a[`char${b}-frame2`]=`char${b}-frame2.png`}();var D=c(42377);let E=(0,D.createServerReference)("4019dc5c43c0d0b5cd0ecf1c4101d03c3bcac1be4c",D.callServer,void 0,D.findSourceMapURL,"getProjectActiveSessionsAction");var F=c(76172);function G({projectUuid:a,projectName:b}){let c=(0,g.c)("pixelCanvas"),[f,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(Array.from({length:7},()=>({state:"empty"}))),[k,l]=(0,e.useState)(0),[m,n]=(0,e.useState)([]),o=(0,e.useCallback)(async()=>{let b=await E(a);if(!b.success||!b.data)return;let c=b.data;j(Array.from({length:7},(a,b)=>{let d=c[b];return d?{state:"typing",sessionName:d.sessionName}:{state:"empty"}})),l(c.length)},[a]);(0,F.l9)(o);let p=(0,e.useCallback)(()=>{n([])},[]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"fixed bottom-4 right-4 md:bottom-6 md:right-6 z-40 cursor-pointer",onClick:()=>h(!0),children:(0,d.jsxs)("div",{className:"relative transition-transform hover:scale-105",children:[(0,d.jsx)("div",{className:"overflow-hidden rounded-lg border-2 border-border bg-card shadow-lg hover:shadow-xl",children:(0,d.jsx)(x.default,{src:"/typing-animation.gif",alt:c("title"),width:72,height:72,unoptimized:!0,className:"block scale-[1.3]"})}),k>0&&(0,d.jsx)("span",{className:"absolute -top-3 -right-3 flex h-7 min-w-7 items-center justify-center rounded-full bg-[#B87351] text-xs font-bold text-white shadow-md",children:k})]})}),(0,d.jsx)(y.lG,{open:f,onOpenChange:h,children:(0,d.jsxs)(y.Cf,{className:"sm:max-w-2xl p-4",children:[(0,d.jsxs)(y.L3,{className:"text-sm",children:[b," — ",c("title")]}),(0,d.jsx)(y.rr,{className:"sr-only",children:c("title")}),(0,d.jsx)("div",{className:"overflow-hidden rounded-lg border border-border",children:(0,d.jsx)(C,{slots:i,projectName:b,agentCount:k,collapsed:!f,effects:m,onEffectsConsumed:p})})]})})]})}var H=c(76549),I=c(24838),J=c(98893),K=c(97825),L=c(59129),M=c(61131),N=c(24714),O=c(73112);let P=(0,e.createContext)(null),Q=new Set(["agent_checkin"]);function R({children:a}){let[b,c]=(0,e.useState)(0),h=(0,e.useRef)(new Set),i=(0,f.useRouter)(),j=(0,g.c)("notifications"),k=(0,e.useCallback)(()=>{h.current.forEach(a=>a())},[]),l=(0,e.useCallback)(async()=>{try{let a=await (0,w.tm)("/api/notifications?readFilter=unread&take=0");if(a.ok){let b=await a.json();b.success&&c(b.data.unreadCount)}}catch{}},[]),m=(0,e.useCallback)(()=>{l(),k()},[l,k]);(0,e.useCallback)(a=>{if(!a.action||Q.has(a.action)||!a.entityTitle||!a.actorName)return;let b=j(`types.${a.action}`),c=a.entityTitle,e=`${a.actorName} \xb7 ${b}`;(0,H.oR)(c,{description:e,icon:function(a){switch(a){case"task_assigned":case"idea_claimed":return(0,d.jsx)(I.A,{className:"h-4 w-4 text-[#C67A52]"});case"proposal_approved":case"task_verified":return(0,d.jsx)(J.A,{className:"h-4 w-4 text-green-600"});case"proposal_rejected":case"task_reopened":return(0,d.jsx)(K.A,{className:"h-4 w-4 text-red-500"});case"comment_added":return(0,d.jsx)(L.A,{className:"h-4 w-4 text-orange-500"});case"mentioned":return(0,d.jsx)(M.A,{className:"h-4 w-4 text-blue-600"});case"proposal_submitted":return(0,d.jsx)(N.A,{className:"h-4 w-4 text-blue-500"});case"task_status_changed":return(0,d.jsx)(O.A,{className:"h-4 w-4 text-blue-500"});default:return(0,d.jsx)(N.A,{className:"h-4 w-4 text-muted-foreground"})}}(a.action),duration:5e3,action:a.entityType&&a.entityUuid&&a.projectUuid?{label:j("viewDetail"),onClick:()=>i.push(function(a,b,c){let d=`/projects/${c}`;switch(a){case"task":return`${d}/tasks/${b}`;case"idea":return`${d}/ideas/${b}`;case"proposal":return`${d}/proposals/${b}`;case"document":return`${d}/documents/${b}`;default:return d}}(a.entityType,a.entityUuid,a.projectUuid))}:void 0})},[j,i]);let n=(0,e.useMemo)(()=>({unreadCount:b,refreshNotifications:m}),[b,m]);return(0,d.jsx)(P.Provider,{value:n,children:a})}function S(){let a=(0,e.useContext)(P);return a||{unreadCount:0,refreshNotifications:()=>{}}}var T=c(86677),U=c(74113),V=c(31009),W=c(45148),X=c(94372),Y=c(74645),Z=c(49599);let $=[{bg:"bg-amber-100 dark:bg-amber-900/30",text:"text-amber-800 dark:text-amber-300"},{bg:"bg-blue-100 dark:bg-blue-900/30",text:"text-blue-800 dark:text-blue-300"},{bg:"bg-emerald-100 dark:bg-emerald-900/30",text:"text-emerald-800 dark:text-emerald-300"},{bg:"bg-violet-100 dark:bg-violet-900/30",text:"text-violet-800 dark:text-violet-300"},{bg:"bg-rose-100 dark:bg-rose-900/30",text:"text-rose-800 dark:text-rose-300"},{bg:"bg-cyan-100 dark:bg-cyan-900/30",text:"text-cyan-800 dark:text-cyan-300"},{bg:"bg-orange-100 dark:bg-orange-900/30",text:"text-orange-800 dark:text-orange-300"},{bg:"bg-indigo-100 dark:bg-indigo-900/30",text:"text-indigo-800 dark:text-indigo-300"}],_=new Set(["agent_checkin"]);function aa({onClose:a}){let b=(0,g.c)("notifications"),c=(0,f.useRouter)(),{refreshNotifications:h}=S(),k=(0,e.useCallback)(a=>{let c=Date.now()-new Date(a).getTime(),d=Math.floor(c/6e4),e=Math.floor(c/36e5),f=Math.floor(c/864e5);return d<1?b("justNow"):d<60?b("minutesAgo",{count:d}):e<24?b("hoursAgo",{count:e}):b("daysAgo",{count:f})},[b]),[l,m]=(0,e.useState)([]),[n,o]=(0,e.useState)([]),[p,q]=(0,e.useState)(0),[r,s]=(0,e.useState)(0),[t,u]=(0,e.useState)(!0),v=(0,e.useCallback)(async(a,b)=>{let c=new URLSearchParams({limit:"20",offset:String(b)});a&&c.set("unreadOnly","true");let d=await (0,w.tm)(`/api/notifications?${c}`);if(!d.ok)return null;let e=await d.json();return e.success?e.data:null},[]),x=async()=>{await (0,w.tm)("/api/notifications/read-all",{method:"POST"}),o([]),s(0),m(a=>a.map(a=>a.readAt?a:{...a,readAt:new Date().toISOString()})),h()},y=async b=>{b.readAt||((0,w.tm)(`/api/notifications/${b.uuid}/read`,{method:"PATCH"}),o(a=>a.filter(a=>a.uuid!==b.uuid)),m(a=>a.map(a=>a.uuid===b.uuid?{...a,readAt:new Date().toISOString()}:a)),h()),a(),c.push(function(a){let{entityType:b,entityUuid:c,projectUuid:d}=a,e=`/projects/${d}`;switch(b){case"task":return`${e}/tasks/${c}`;case"idea":return`${e}/ideas/${c}`;case"proposal":return`${e}/proposals/${c}`;case"document":return`${e}/documents/${c}`;default:return e}}(b))},z=async a=>{let b=a?n:l,c=await v(a,b.length);c&&(a?o(a=>[...a,...c.notifications]):m(a=>[...a,...c.notifications]))},A=a=>{let{Icon:c,color:e}=function(a){switch(a){case"task_assigned":case"idea_claimed":return{Icon:I.A,color:"text-[#C67A52]"};case"proposal_approved":case"task_verified":return{Icon:J.A,color:"text-green-600"};case"proposal_rejected":case"task_reopened":return{Icon:K.A,color:"text-red-500"};case"comment_added":return{Icon:L.A,color:"text-orange-500"};case"mentioned":return{Icon:M.A,color:"text-blue-600"};case"proposal_submitted":return{Icon:N.A,color:"text-blue-500"};case"task_status_changed":return{Icon:O.A,color:"text-blue-500"};default:return{Icon:N.A,color:"text-muted-foreground"}}}(a.action),f=function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return $[Math.abs(b)%$.length]}(a.projectUuid),g=!a.readAt;return(0,d.jsx)(V.P.div,{variants:W.Rf,children:(0,d.jsxs)("button",{onClick:()=>y(a),className:"flex w-full gap-3 px-4 py-3 text-left hover:bg-muted/50 transition-colors border-b border-border last:border-b-0",children:[(0,d.jsx)("div",{className:"mt-1.5 flex-shrink-0",children:g?(0,d.jsx)("div",{className:"h-2 w-2 rounded-full bg-[#C67A52]"}):(0,d.jsx)("div",{className:"h-2 w-2"})}),(0,d.jsx)("div",{className:"mt-0.5 flex-shrink-0",children:(0,d.jsx)(c,{className:`h-4 w-4 ${e}`})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)(Z.E,{variant:"secondary",className:`mb-1 px-1.5 py-0 text-[10px] font-medium ${f.bg} ${f.text} border-0`,children:a.projectName}),(0,d.jsx)("div",{className:"text-[13px] font-medium text-foreground truncate",children:a.entityTitle}),(0,d.jsx)("div",{className:"text-[12px] text-muted-foreground truncate",children:b(`types.${a.action}`)}),(0,d.jsxs)("div",{className:"mt-0.5 text-[11px] text-muted-foreground",children:[a.actorName," \xb7 ",k(a.createdAt)]})]})]})},a.uuid)},B=(a,c,e)=>{let f=a.filter(a=>!_.has(a.action));return t?(0,d.jsxs)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:[b("loadMore"),"..."]}):0===f.length?(0,d.jsx)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:c?b("noUnread"):b("noNotifications")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(V.P.div,{initial:"initial",animate:"animate",transition:{staggerChildren:.04},children:f.map(A)}),f.length<e&&(0,d.jsx)("div",{className:"p-3 text-center",children:(0,d.jsx)(j.$,{variant:"ghost",size:"sm",className:"text-xs",onClick:()=>z(c),children:b("loadMore")})})]})};return(0,d.jsxs)("div",{className:"w-[calc(100vw-2rem)] max-w-[360px]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:b("title")}),(0,d.jsx)(j.$,{variant:"ghost",size:"sm",className:"h-auto p-0 text-xs text-primary hover:text-primary/80",onClick:x,children:b("markAllRead")})]}),(0,d.jsxs)(X.tU,{defaultValue:"unread",className:"gap-0",children:[(0,d.jsxs)(X.j7,{className:"w-full rounded-none border-b border-border bg-transparent px-4 py-0 h-9",children:[(0,d.jsxs)(X.Xi,{value:"unread",className:"text-xs rounded-none data-[state=active]:shadow-none data-[state=active]:border-b-2 data-[state=active]:border-primary",children:[b("tabUnread")," ",r>0&&`(${r})`]}),(0,d.jsx)(X.Xi,{value:"all",className:"text-xs rounded-none data-[state=active]:shadow-none data-[state=active]:border-b-2 data-[state=active]:border-primary",children:b("tabAll")})]}),(0,d.jsx)(X.av,{value:"all",className:"mt-0",children:(0,d.jsx)(V.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.15},children:(0,d.jsx)(Y.F,{className:"max-h-[400px] overflow-y-auto",children:B(l,!1,p)})},"tab-all")}),(0,d.jsx)(X.av,{value:"unread",className:"mt-0",children:(0,d.jsx)(V.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.15},children:(0,d.jsx)(Y.F,{className:"max-h-[400px] overflow-y-auto",children:B(n,!0,r)})},"tab-unread")})]}),(0,d.jsx)("div",{className:"border-t border-border px-4 py-2 text-center",children:(0,d.jsx)(i(),{href:"/settings",onClick:a,className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:b("notificationPreferences")})})]})}function ab(){let{unreadCount:a}=S(),[b,c]=(0,e.useState)(!1);return(0,d.jsxs)(U.AM,{open:b,onOpenChange:c,children:[(0,d.jsx)(U.Wv,{asChild:!0,children:(0,d.jsxs)(j.$,{variant:"ghost",size:"icon",className:"relative h-8 w-8 text-muted-foreground hover:text-foreground",children:[(0,d.jsx)(T.A,{className:"h-4 w-4"}),a>0&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-[#C67A52] px-1 text-[10px] font-medium text-white animate-[pulse-badge_1.5s_ease-in-out_infinite]",children:a>99?"99+":a})]})}),(0,d.jsx)(U.hl,{align:"start",sideOffset:8,className:"w-auto p-0 rounded-lg",children:(0,d.jsx)(aa,{onClose:()=>c(!1)})})]})}var ac=c(94143),ad=c(75888),ae=c(86691),af=c(86460),ag=c(78323),ah=c(96307),ai=c(9994),aj=c(55732);let ak=["all","task","idea","proposal","document","project"],al={task:"bg-[#EBF5FF] text-[#2563EB] border-[#2563EB]/20",idea:"bg-[#FEF9C3] text-[#A16207] border-[#A16207]/20",proposal:"bg-[#FFF7ED] text-[#C67A52] border-[#C67A52]/20",document:"bg-[#F3E8FF] text-[#7C3AED] border-[#7C3AED]/20",project:"bg-[#ECFDF5] text-[#059669] border-[#059669]/20",project_group:"bg-[#F0FDFA] text-[#0D9488] border-[#0D9488]/20"},am={all:"filterAll",task:"filterTasks",idea:"filterIdeas",proposal:"filterProposals",document:"filterDocuments",project:"filterProjects",project_group:"filterProjects"};function an({currentProjectUuid:a,currentProjectName:b,currentGroupUuid:c,currentGroupName:h}){let i=(0,g.c)("search"),k=(0,g.c)("time"),l=(0,f.useRouter)(),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(a?"project":c?"group":"global"),[q,r]=(0,e.useState)([]),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)("all"),[A,B]=(0,e.useState)(0),C=(0,e.useRef)(null),D=(0,e.useRef)([]),E=(0,e.useRef)(void 0),F=(0,e.useCallback)(async(b,d,e="all")=>{if(!b.trim()){r([]),t(!1);return}t(!0);try{let f=new URLSearchParams({q:b.trim(),scope:d,limit:"20"});"project"===d&&a?f.set("scopeUuid",a):"group"===d&&c&&f.set("scopeUuid",c),"all"!==e&&f.set("types",e);let g=await fetch(`/api/search?${f.toString()}`,{credentials:"include"});if(!g.ok){z.q.error("Search failed:",g.status),r([]);return}let h=await g.json();h.success?r(h.data.results):r([])}catch(a){z.q.error("Search error:",a),r([])}finally{t(!1)}},[a,c]),G=(0,e.useCallback)(a=>{n(a),E.current&&clearTimeout(E.current),a.trim()?E.current=setTimeout(()=>{F(a,o,w)},300):(r([]),t(!1))},[o,w,F]),H=(0,e.useCallback)(a=>{p(a),m.trim()&&F(m,a,w)},[m,w,F]),I=(0,e.useCallback)(a=>{x(a),B(0),m.trim()&&F(m,o,a)},[m,o,F]),J=(0,e.useCallback)(a=>{switch(v(!1),a.entityType){case"task":a.projectUuid&&l.push(`/projects/${a.projectUuid}/tasks/${a.uuid}`);break;case"idea":a.projectUuid&&l.push(`/projects/${a.projectUuid}/ideas/${a.uuid}`);break;case"proposal":a.projectUuid&&l.push(`/projects/${a.projectUuid}/proposals/${a.uuid}`);break;case"document":a.projectUuid&&l.push(`/projects/${a.projectUuid}/documents/${a.uuid}`);break;case"project":l.push(`/projects/${a.uuid}/dashboard`);break;case"project_group":l.push("/projects")}},[l]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(j.$,{variant:"outline",size:"icon",onClick:()=>v(!0),className:"md:w-full md:justify-start md:gap-3 h-9 md:px-3 text-muted-foreground font-normal",children:[(0,d.jsx)(ad.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"hidden md:inline truncate text-sm",children:i("placeholder")}),(0,d.jsxs)("kbd",{className:"ml-auto pointer-events-none hidden md:flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium",children:[(0,d.jsx)(ae.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{children:"K"})]})]}),(0,d.jsx)(y.lG,{open:u,onOpenChange:v,children:(0,d.jsxs)(y.Cf,{className:"w-[calc(100vw-2rem)] sm:max-w-[600px] p-0 gap-0 overflow-hidden [&>button]:hidden [&>*]:min-w-0 top-4 sm:top-[20%] translate-y-0","aria-describedby":void 0,children:[(0,d.jsx)(y.L3,{className:"sr-only",children:i("placeholder")}),(0,d.jsxs)("div",{className:"flex items-center gap-2 border-b px-3 sm:px-4 py-3",children:[(0,d.jsx)(ad.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)(ai.p,{ref:C,type:"text",placeholder:i("placeholder"),value:m,onChange:a=>G(a.target.value),onKeyDown:a=>{"ArrowDown"===a.key?(a.preventDefault(),B(a=>{let b=Math.min(a+1,q.length-1);return D.current[b]?.scrollIntoView({block:"nearest"}),b})):"ArrowUp"===a.key?(a.preventDefault(),B(a=>{let b=Math.max(a-1,0);return D.current[b]?.scrollIntoView({block:"nearest"}),b})):"Enter"===a.key&&q.length>0&&(a.preventDefault(),J(q[A]))},className:"border-0 shadow-none focus-visible:ring-0 h-8 px-0 text-sm min-w-0"}),s&&(0,d.jsx)(af.A,{className:"h-4 w-4 shrink-0 animate-spin text-muted-foreground"}),(0,d.jsxs)(aj.l6,{value:o,onValueChange:a=>H(a),children:[(0,d.jsx)(aj.bq,{className:"w-auto h-7 text-xs gap-1 border-dashed shrink-0",children:(0,d.jsx)(aj.yv,{})}),(0,d.jsxs)(aj.gC,{children:[(0,d.jsx)(aj.eb,{value:"global",children:i("scopeGlobal")}),c&&(0,d.jsx)(aj.eb,{value:"group",children:h||i("scopeGroup")}),a&&(0,d.jsx)(aj.eb,{value:"project",children:b||i("scopeProject")})]})]})]}),m.trim()&&(0,d.jsx)("div",{className:"flex items-center gap-1 border-b px-4 py-2 overflow-x-auto",children:ak.map(a=>(0,d.jsx)(j.$,{variant:w===a?"default":"ghost",size:"sm",onClick:()=>I(a),className:(0,ah.cn)("h-7 px-3 text-xs rounded-full shrink-0",w===a?"bg-foreground text-background hover:bg-foreground/90":"text-muted-foreground hover:text-foreground"),children:i(am[a])},a))}),(0,d.jsx)(Y.F,{className:"max-h-[400px]",children:(0,d.jsx)(ag.N,{mode:"wait",children:m.trim()?s?(0,d.jsx)(V.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:W.Yv.fast},children:(0,d.jsxs)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:[(0,d.jsx)(af.A,{className:"h-5 w-5 animate-spin mx-auto mb-2"}),i("placeholder"),"..."]})},"loading"):0===q.length?(0,d.jsx)(V.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:W.Yv.fast},children:(0,d.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:i("noResults")})},"no-results"):(0,d.jsx)(V.P.div,{initial:"initial",animate:"animate",transition:{staggerChildren:W.Yv.staggerFast},className:"p-2",children:q.map((a,b)=>(0,d.jsx)(V.P.div,{variants:W.Rf,children:(0,d.jsxs)("button",{ref:a=>{D.current[b]=a},onClick:()=>J(a),onMouseEnter:()=>B(b),className:(0,ah.cn)("block w-full text-left px-3 py-2.5 rounded-lg transition-colors cursor-pointer overflow-hidden",b===A?"bg-accent":"hover:bg-accent/50"),children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 mb-0.5",children:[(0,d.jsx)(Z.E,{variant:"outline",className:(0,ah.cn)("text-[10px] px-1.5 py-0 shrink-0",al[a.entityType]||"bg-muted text-muted-foreground"),children:i(`entityType.${a.entityType}`)}),a.status&&(0,d.jsx)(Z.E,{variant:"secondary",className:"text-[10px] px-1.5 py-0 shrink-0",children:a.status}),a.projectName&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground line-clamp-1 ml-auto",children:a.projectName})]}),(0,d.jsx)("div",{className:"font-medium text-sm line-clamp-1 break-all",children:a.title}),a.snippet&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground line-clamp-1 mt-0.5 break-all",children:a.snippet}),(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground mt-1",children:(a=>{let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);return b<60?k("justNow"):b<3600?k("minutesAgo",{minutes:Math.floor(b/60)}):b<86400?k("hoursAgo",{hours:Math.floor(b/3600)}):k("daysAgo",{days:Math.floor(b/86400)})})(a.updatedAt)})]})},`${a.entityType}-${a.uuid}`))},`results-${w}`):(0,d.jsx)(V.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:W.Yv.fast},children:(0,d.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:i("placeholder")})},"empty")})}),(0,d.jsxs)("div",{className:"hidden sm:flex items-center justify-between border-t px-4 py-2 text-[10px] text-muted-foreground",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"↑"}),(0,d.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"↓"}),i("filterAll")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"⏎"}),"Open"]})]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"Esc"}),"Close"]})]})]})})]})}function ao({children:a}){let b=function(a){let b=a.match(/^(\/projects\/[a-f0-9-]{36}\/(tasks|ideas|documents|proposals))\/.+$/);return b?b[1]:a}((0,f.usePathname)());return(0,d.jsx)(V.P.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:W.Yv.normal,ease:W.Yv.easeOut},className:"flex-1 flex flex-col",children:a},b)}let ap=({...a})=>(0,d.jsx)(H.l$,{className:"toaster group",...a});function aq({children:a}){let b=(0,f.useRouter)(),c=(0,f.usePathname)(),h=(0,g.c)(),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(!0),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(!1),N=function(a){let b=a.match(/^\/projects\/([a-f0-9-]{36})(\/|$)/);return b?b[1]:null}(c),O=function(a){let b=a.match(/^\/project-groups\/([a-f0-9-]{36})(\/|$)/);return b?b[1]:null}(c),[P,Q]=(0,e.useState)(null),S="/projects"===c||"/settings"===c||c.startsWith("/project-groups"),T=N&&!S,U=c.match(/^\/projects\/[a-f0-9-]{36}\/tasks(\/|$)/),X=async()=>{try{await (0,w.ri)()}catch{(0,w.w9)()}b.push("/login")};if(D)return(0,d.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-background",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:h("common.loading")})});let Y=[{href:"/projects",label:h("nav.projects"),icon:q.A},{href:"/settings",label:h("nav.settings"),icon:r.A}],Z=a=>a.endsWith("/dashboard")?c===a:"/projects"===a?"/projects"===c:c===a||c.startsWith(a+"/"),$=({mobile:a=!1})=>{let c=a?"text-[15px]":"text-[13px]",e=a?"h-5 w-5":"h-4 w-4",f=a?"gap-1.5":"gap-1",g=a?"h-10":"";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-8 p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("img",{src:"/chorus-icon.png",alt:"Chorus",className:"h-7 w-7"}),(0,d.jsx)("span",{className:"text-base font-semibold text-foreground",children:h("common.appName")})]}),(0,d.jsx)("div",{className:"hidden md:block",children:(0,d.jsx)(ab,{})})]}),!a&&(0,d.jsx)(an,{currentProjectUuid:N||void 0,currentProjectName:z?.name,currentGroupUuid:O||void 0,currentGroupName:P||void 0}),(0,d.jsx)("nav",{className:`flex flex-col ${f}`,children:T&&N?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i(),{href:"/projects",children:(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",className:`w-full justify-start gap-2.5 text-muted-foreground hover:text-foreground ${c} ${g}`,children:[(0,d.jsx)(s.A,{className:a?"h-4 w-4":"h-3 w-3"}),h("nav.backToProjects")]})}),z&&(0,d.jsxs)("div",{className:"relative mt-2",children:[(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",onClick:()=>B.length>0&&I(!H),className:`w-full justify-between px-3 py-1.5 ${0===B.length?"cursor-default":""}`,children:[(0,d.jsx)("span",{className:`truncate font-semibold uppercase tracking-wider text-foreground ${a?"text-[13px]":"text-[11px]"}`,children:z.name}),B.length>0&&(0,d.jsx)(t.A,{className:`h-3 w-3 text-muted-foreground transition-transform ${H?"rotate-180":""}`})]}),(0,d.jsx)(ag.N,{children:H&&B.length>0&&(0,d.jsx)(V.P.div,{variants:W.K5,initial:"initial",animate:"animate",exit:"exit",className:"absolute left-0 right-0 top-full z-10 mt-1 origin-top rounded-lg border border-border bg-card py-1 shadow-lg",children:B.map(a=>(0,d.jsx)(j.$,{variant:"ghost",size:"sm",onClick:()=>{I(!1),b.push(`/projects/${a.uuid}/dashboard`)},className:`w-full justify-start px-3 py-2 ${c} [&>*]:truncate text-muted-foreground`,children:(0,d.jsx)("span",{className:"truncate",children:a.name})},a.uuid))})})]}),(0,d.jsx)("div",{className:`mt-2 flex flex-col ${f}`,children:[{href:`/projects/${N}/dashboard`,label:h("nav.overview"),icon:k.A},{href:`/projects/${N}/ideas`,label:h("nav.ideas"),icon:l.A},{href:`/projects/${N}/documents`,label:h("nav.documents"),icon:m.A},{href:`/projects/${N}/proposals`,label:h("nav.proposals"),icon:n.A},{href:`/projects/${N}/tasks`,label:h("nav.tasks"),icon:o.A},{href:`/projects/${N}/activity`,label:h("nav.activity"),icon:p.A}].map(a=>{let b=Z(a.href),f=a.icon;return(0,d.jsx)(i(),{href:a.href,children:(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",className:`relative w-full justify-start gap-2.5 ${c} ${g} ${b?"font-medium text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[b&&(0,d.jsx)(V.P.div,{layoutId:"nav-active",className:"absolute inset-0 rounded-md bg-secondary",transition:{type:"spring",stiffness:500,damping:30}}),(0,d.jsxs)("span",{className:"relative flex items-center gap-2.5",children:[(0,d.jsx)(f,{className:`${e} ${b?"text-primary":""}`}),a.label]})]})},a.href)})})]}):(0,d.jsx)(d.Fragment,{children:(0,d.jsx)("div",{className:`flex flex-col ${f}`,children:Y.map(a=>{let b=Z(a.href),f=a.icon;return(0,d.jsx)(i(),{href:a.href,children:(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",className:`relative w-full justify-start gap-2.5 ${c} ${g} ${b?"font-medium text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[b&&(0,d.jsx)(V.P.div,{layoutId:"nav-active",className:"absolute inset-0 rounded-md bg-secondary",transition:{type:"spring",stiffness:500,damping:30}}),(0,d.jsxs)("span",{className:"relative flex items-center gap-2.5",children:[(0,d.jsx)(f,{className:`${e} ${b?"text-primary":""}`}),a.label]})]})},a.href)})})})})]}),(0,d.jsx)("div",{className:"p-6",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:`flex items-center justify-center rounded-full bg-primary font-medium text-primary-foreground ${a?"h-10 w-10 text-base":"h-9 w-9 text-sm"}`,children:x?.name?.charAt(0)||"U"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:`truncate font-medium text-foreground ${a?"text-[15px]":"text-[13px]"}`,children:x?.name}),(0,d.jsx)("div",{className:`truncate text-muted-foreground ${a?"text-[12px]":"text-[11px]"}`,children:x?.email})]}),(0,d.jsx)(j.$,{variant:"ghost",size:"icon",onClick:X,title:h("common.signOut"),className:"h-8 w-8 text-muted-foreground hover:text-foreground",children:(0,d.jsx)(u.A,{className:"h-4 w-4"})})]})})]})};return(0,d.jsxs)(R,{children:[(0,d.jsxs)("div",{className:"flex min-h-screen bg-background",children:[(0,d.jsx)("header",{className:"fixed top-0 left-0 right-0 z-30 border-b border-border bg-card md:hidden",children:(0,d.jsxs)("div",{className:"flex h-14 items-center justify-between px-4",children:[(0,d.jsx)("button",{onClick:()=>K(!0),"aria-label":h("nav.openMenu"),children:(0,d.jsx)(v.A,{className:"h-5 w-5 text-muted-foreground"})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("img",{src:"/chorus-icon.png",alt:"Chorus",className:"h-6 w-6"}),(0,d.jsx)("span",{className:"text-sm font-semibold text-foreground",children:h("common.appName")})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(an,{currentProjectUuid:N||void 0,currentProjectName:z?.name,currentGroupUuid:O||void 0,currentGroupName:P||void 0}),(0,d.jsx)(ab,{})]})]})}),(0,d.jsx)(ac.cj,{open:J,onOpenChange:K,children:(0,d.jsx)(ac.h,{side:"left",className:"w-[280px] p-0",children:(0,d.jsx)("div",{className:"flex h-full flex-col justify-between overflow-y-auto",children:(0,d.jsx)($,{mobile:!0})})})}),(0,d.jsx)("aside",{className:"hidden md:sticky md:top-0 md:flex h-screen w-[220px] flex-shrink-0 flex-col justify-between overflow-y-auto border-r border-border bg-card",children:(0,d.jsx)($,{})}),T&&N?(0,d.jsxs)(F.tS,{projectUuid:N,children:[(0,d.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,d.jsx)("div",{className:`mx-auto w-full flex-1 flex flex-col ${U?"":"max-w-[1200px]"}`,children:(0,d.jsx)(ao,{children:a})})}),(0,d.jsx)(G,{projectUuid:N,projectName:z?.name||""})]}):"/projects"===c||c.startsWith("/project-groups")?(0,d.jsx)(F.tS,{children:(0,d.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,d.jsx)("div",{className:`mx-auto w-full flex-1 flex flex-col ${U?"":"max-w-[1200px]"}`,children:(0,d.jsx)(ao,{children:a})})})}):(0,d.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,d.jsx)("div",{className:`mx-auto w-full flex-1 flex flex-col ${U?"":"max-w-[1200px]"}`,children:(0,d.jsx)(ao,{children:a})})})]}),(0,d.jsx)(ap,{position:L?"top-center":"top-right",closeButton:!L})]})}},11568:(a,b,c)=>{"use strict";c.d(b,{Cf:()=>m,Es:()=>o,L3:()=>p,c7:()=>n,lG:()=>i,rr:()=>q,zM:()=>j});var d=c(10837);c(21968);var e=c(10694),f=c(14220),g=c(96307),h=c(42424);function i({...a}){return(0,d.jsx)(f.Root,{"data-slot":"dialog",...a})}function j({...a}){return(0,d.jsx)(f.Trigger,{"data-slot":"dialog-trigger",...a})}function k({...a}){return(0,d.jsx)(f.Portal,{"data-slot":"dialog-portal",...a})}function l({className:a,...b}){return(0,d.jsx)(f.Overlay,{"data-slot":"dialog-overlay",className:(0,g.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}function m({className:a,children:b,showCloseButton:c=!0,...h}){return(0,d.jsxs)(k,{"data-slot":"dialog-portal",children:[(0,d.jsx)(l,{}),(0,d.jsxs)(f.Content,{"data-slot":"dialog-content",className:(0,g.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",a),...h,children:[b,c&&(0,d.jsxs)(f.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,d.jsx)(e.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function n({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,g.cn)("flex flex-col gap-2 text-center sm:text-left",a),...b})}function o({className:a,showCloseButton:b=!1,children:c,...e}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,g.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...e,children:[c,b&&(0,d.jsx)(f.Close,{asChild:!0,children:(0,d.jsx)(h.$,{variant:"outline",children:"Close"})})]})}function p({className:a,...b}){return(0,d.jsx)(f.Title,{"data-slot":"dialog-title",className:(0,g.cn)("text-lg leading-none font-semibold",a),...b})}function q({className:a,...b}){return(0,d.jsx)(f.Description,{"data-slot":"dialog-description",className:(0,g.cn)("text-muted-foreground text-sm",a),...b})}},16352:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(37143).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/ubuntu/dev/ai-pm/src/app/(dashboard)/layout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/ubuntu/dev/ai-pm/src/app/(dashboard)/layout.tsx","default")},21865:(a,b,c)=>{"use strict";c.d(b,{HB:()=>e,JK:()=>h,XQ:()=>g,bN:()=>i,vh:()=>f});var d=c(99582);function e(a){let b=function(a){let b=process.env.NEXTAUTH_URL||"http://localhost:8637";return{authority:a.issuer,client_id:a.clientId,redirect_uri:`${b}/login/callback`,post_logout_redirect_uri:`${b}/login`,response_type:"code",scope:"openid profile email",automaticSilentRenew:!0,silent_redirect_uri:`${b}/login/silent-refresh`,accessTokenExpiringNotificationTimeInSeconds:60,userStore:void 0,extraQueryParams:{company:a.companyUuid}}}(a);return new d.$5(b)}function f(a){}function g(){return null}function h(){}function i(a){return{sub:a.profile.sub,email:a.profile.email,name:a.profile.name,picture:a.profile.picture,accessToken:a.access_token,refreshToken:a.refresh_token,expiresAt:a.expires_at,idToken:a.id_token}}},22299:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Dv:()=>n,Tg:()=>o,v5:()=>p});var e=c(2613);c(50785);var f=c(4687),g=c(9259),h=c(33994),i=c(5562),j=c(30457),k=c(97307),l=c(12217),m=a([g,h,j]);async function n(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{if(!await (0,h.xx)(b.companyUuid,a))return{success:!1,error:"Project not found"}}catch(a){return k.A.error({err:a},"Failed to delete project"),{success:!1,error:"Failed to delete project"}}(0,f.redirect)("/projects")}async function o(a,b){let c=await (0,g.d)();if(!c)return{success:!1,error:"Unauthorized"};try{let d=await (0,h.vr)(c.companyUuid,a,b);if(!d)return{success:!1,error:"Project not found"};return(0,i.revalidatePath)(`/projects/${a}/dashboard`),{success:!0,data:d}}catch(a){return k.A.error({err:a},"Failed to update project"),{success:!1,error:"Failed to update project"}}}async function p(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let c=await (0,j.UL)(b.companyUuid,a);return{success:!0,data:c}}catch(a){return k.A.error({err:a},"Failed to fetch active sessions"),{success:!1,error:"Failed to fetch active sessions"}}}[g,h,j]=m.then?(await m)():m,(0,l.D)([n,o,p]),(0,e.A)(n,"40cb34bdc4fed2104114738bf7775d107b52ddb319",null),(0,e.A)(o,"60cfafb97dee121da111a8fbb6d24763894ee7029a",null),(0,e.A)(p,"4019dc5c43c0d0b5cd0ecf1c4101d03c3bcac1be4c",null),d()}catch(a){d(a)}})},33994:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Yi:()=>i,hF:()=>h,vr:()=>j,xx:()=>k});var e=c(71255),f=c(62729),g=a([e]);async function h({companyUuid:a,skip:b,take:c}){let[d,f]=await Promise.all([e.z.project.findMany({where:{companyUuid:a},skip:b,take:c,orderBy:{updatedAt:"desc"},select:{uuid:!0,name:!0,description:!0,groupUuid:!0,createdAt:!0,updatedAt:!0,_count:{select:{ideas:!0,documents:!0,tasks:!0,proposals:!0}}}}),e.z.project.count({where:{companyUuid:a}})]);return{projects:d,total:f}}async function i(a,b){return!!await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}})}async function j(a,b,c){let d=await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}});return d?e.z.project.update({where:{uuid:d.uuid},data:c,select:{uuid:!0,name:!0,description:!0,createdAt:!0,updatedAt:!0}}):null}async function k(a,b){let c=await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}});return!!c&&(await e.z.project.delete({where:{uuid:c.uuid}}),f.B.emitChange({companyUuid:a,projectUuid:b,entityType:"project",entityUuid:b,action:"deleted"}),!0)}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},46795:(a,b,c)=>{Promise.resolve().then(c.bind(c,9318))},49599:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(10837);c(21968);var e=c(35973),f=c(11156),g=c(96307);let h=(0,e.F)("inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline",success:"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100",warning:"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b="default",asChild:c=!1,...e}){let i=c?f.bL:"span";return(0,d.jsx)(i,{"data-slot":"badge","data-variant":b,className:(0,g.cn)(h({variant:b}),a),...e})}},74113:(a,b,c)=>{"use strict";c.d(b,{AM:()=>g,Wv:()=>h,hl:()=>i});var d=c(10837);c(21968);var e=c(41335),f=c(96307);function g({...a}){return(0,d.jsx)(e.Root,{"data-slot":"popover",...a})}function h({...a}){return(0,d.jsx)(e.Trigger,{"data-slot":"popover-trigger",...a})}function i({className:a,align:b="center",sideOffset:c=4,...g}){return(0,d.jsx)(e.Portal,{children:(0,d.jsx)(e.Content,{"data-slot":"popover-content",align:b,sideOffset:c,className:(0,f.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",a),...g})})}},74645:(a,b,c)=>{"use strict";c.d(b,{F:()=>g});var d=c(10837);c(21968);var e=c(63658),f=c(96307);function g({className:a,children:b,...c}){return(0,d.jsxs)(e.Root,{"data-slot":"scroll-area",className:(0,f.cn)("relative",a),...c,children:[(0,d.jsx)(e.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:b}),(0,d.jsx)(h,{}),(0,d.jsx)(e.Corner,{})]})}function h({className:a,orientation:b="vertical",...c}){return(0,d.jsx)(e.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:b,className:(0,f.cn)("flex touch-none p-px transition-colors select-none","vertical"===b&&"h-full w-2.5 border-l border-l-transparent","horizontal"===b&&"h-2.5 flex-col border-t border-t-transparent",a),...c,children:(0,d.jsx)(e.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}},76172:(a,b,c)=>{"use strict";c.d(b,{S2:()=>j,eV:()=>i,l9:()=>h,tS:()=>g,w0:()=>k});var d=c(10837),e=c(21968);c(1007);let f=(0,e.createContext)(null);function g({projectUuid:a,children:b}){let c=(0,e.useRef)(new Set),g=(0,e.useRef)(new Set),h=(0,e.useRef)(new Set);(0,e.useCallback)(()=>{c.current.forEach(a=>a())},[]),(0,e.useCallback)(a=>{g.current.forEach(b=>b(a))},[]);let i=(0,e.useCallback)(a=>(c.current.add(a),()=>{c.current.delete(a)}),[]),j=(0,e.useCallback)(a=>(g.current.add(a),()=>{g.current.delete(a)}),[]),k=(0,e.useCallback)(a=>(h.current.add(a),()=>{h.current.delete(a)}),[]),l=(0,e.useMemo)(()=>({subscribe:i,subscribeEntity:j,subscribePresence:k}),[i,j,k]);return(0,d.jsx)(f.Provider,{value:l,children:b})}function h(a){(0,e.useContext)(f),(0,e.useRef)(a).current=a}function i(a,b){(0,e.useContext)(f),(0,e.useRef)(b).current=b,(0,e.useRef)(a).current=a}function j(a){(0,e.useContext)(f),(0,e.useRef)(a).current=a}function k(a,b,c){(0,e.useContext)(f),(0,e.useRef)(c).current=c}},86547:(a,b,c)=>{Promise.resolve().then(c.bind(c,16352))},93524:(a,b,c)=>{"use strict";c.d(b,{hj:()=>f,ri:()=>l,tm:()=>k,w9:()=>g});var d=c(21865),e=c(54722);function f(a){return(0,d.vh)(a),(0,d.HB)(a)}function g(){}async function h(){return null}async function i(){let a=await h();return!a||a.expired?null:a.access_token}async function j(a,b){try{return(await fetch("/api/auth/sync-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a,refreshToken:b})})).ok}catch{return e.q.error("Failed to sync token to cookie"),!1}}async function k(a,b={}){let c=await i(),d=new Headers(b.headers);c&&d.set("Authorization",`Bearer ${c}`);let e=await fetch(a,{...b,headers:d});if(401===e.status)if(1)try{if((await fetch("/api/auth/refresh",{method:"POST"})).ok)return d.delete("Authorization"),fetch(a,{...b,headers:d})}catch{}else try{let c=await null.signinSilent();if(c?.access_token)return await j(c.access_token),d.set("Authorization",`Bearer ${c.access_token}`),fetch(a,{...b,headers:d})}catch{}return e}async function l(){try{await fetch("/api/auth/logout",{method:"POST"})}catch{}g(),(0,d.JK)()}},94143:(a,b,c)=>{"use strict";c.d(b,{CG:()=>j,Fm:()=>o,cj:()=>i,h:()=>n,qp:()=>p});var d=c(10837);c(21968);var e=c(10694),f=c(14220),g=c(35973),h=c(96307);function i({...a}){return(0,d.jsx)(f.Root,{"data-slot":"sheet",...a})}function j({...a}){return(0,d.jsx)(f.Trigger,{"data-slot":"sheet-trigger",...a})}function k({...a}){return(0,d.jsx)(f.Portal,{"data-slot":"sheet-portal",...a})}function l({className:a,...b}){return(0,d.jsx)(f.Overlay,{"data-slot":"sheet-overlay",className:(0,h.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}let m=(0,g.F)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 border-b",bottom:"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 border-t",left:"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",right:"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm"}},defaultVariants:{side:"right"}});function n({className:a,children:b,side:c="right",...g}){return(0,d.jsxs)(k,{children:[(0,d.jsx)(l,{}),(0,d.jsxs)(f.Content,{"data-slot":"sheet-content",className:(0,h.cn)(m({side:c}),a),...g,children:[b,(0,d.jsxs)(f.Close,{"data-slot":"sheet-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,d.jsx)(e.A,{className:"size-4"}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function o({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sheet-header",className:(0,h.cn)("flex flex-col gap-2 p-4",a),...b})}function p({className:a,...b}){return(0,d.jsx)(f.Title,{"data-slot":"sheet-title",className:(0,h.cn)("text-foreground text-lg font-semibold",a),...b})}}};
1
+ exports.id=6207,exports.ids=[6207],exports.modules={9318:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>as});var d=c(10837),e=c(21968),f=c(1007),g=c(9222),h=c(81512),i=c.n(h),j=c(42424),k=c(76723),l=c(5797),m=c(65956),n=c(4065),o=c(10529),p=c(28605),q=c(33650),r=c(59169),s=c(35209),t=c(21790),u=c(71833),v=c(46839),w=c(93524),x=c(15640),y=c(11568),z=c(54722);let A=[{cx:54,cy:135,topY:117},{cx:96,cy:114,topY:96},{cx:120,cy:118,topY:108},{cx:155,cy:115,topY:105},{cx:146,cy:148,topY:130},{cx:95,cy:149,topY:138},{cx:133,cy:168,topY:158}],B=Array.from({length:7},(a,b)=>b).sort((a,b)=>A[a].topY-A[b].topY);function C({slots:a,projectName:b,agentCount:c,collapsed:f=!1,effects:g,onEffectsConsumed:h}){let i=(0,e.useRef)(null),j=(0,e.useRef)({}),k=(0,e.useRef)(!1),l=(0,e.useRef)(0),m=(0,e.useRef)(0),n=(0,e.useRef)(0),o=(0,e.useRef)(Array.from({length:7},()=>({state:"empty",cycleIndex:0,frameTicks:0,ticksPerFrame:1,stateTimer:0}))),p=(0,e.useRef)(a),q=(0,e.useRef)(b),r=(0,e.useRef)(c),s=(0,e.useRef)(f),t=(0,e.useRef)([]),u=(0,e.useCallback)(a=>{a.fillStyle="#d0d0e0",a.fillRect(0,0,256,16),a.fillStyle="#e4e4f0",a.fillRect(0,0,256,1),a.fillStyle="#9999aa",a.fillRect(0,15,256,1),a.font="bold 7px monospace",a.textBaseline="middle",a.fillStyle="#333",a.textAlign="left";let b=q.current,c=b.length>20?b.slice(0,18)+"..":b;a.fillText(c,6,8),a.textAlign="right",a.fillStyle="#336";let d=r.current;a.fillText(`${d} agent${1!==d?"s":""}`,250,8),a.textAlign="start",a.textBaseline="alphabetic"},[]),v=(0,e.useCallback)((a,b)=>{let c=p.current[b];if(!c?.sessionName)return;let d=A[b];a.font="5px monospace",a.textAlign="center",a.textBaseline="bottom";let e=c.sessionName.length>12?c.sessionName.slice(0,10)+"..":c.sessionName,f=a.measureText(e).width,g=d.cx,h=d.topY-4;a.fillStyle="rgba(0,0,0,0.55)",a.fillRect(g-f/2-2,h-6,f+4,7),a.fillStyle="#fff",a.fillText(e,g,h),a.textAlign="start",a.textBaseline="alphabetic"},[]),w=(0,e.useCallback)(a=>{for(let b of t.current){let c=b.elapsed/b.duration,d=A[b.slotIndex]||A[0];switch(b.type){case"bulb":{let b=c<.1?c/.1:c>.8?(1-c)/.2:1,e=d.cx,f=d.topY-14-2*Math.sin(c*Math.PI*4);a.fillStyle=`rgba(255, 220, 50, ${.3*b})`,a.beginPath(),a.arc(e,f,8,0,2*Math.PI),a.fill(),a.fillStyle=`rgba(255, 230, 80, ${b})`,a.beginPath(),a.arc(e,f,4,0,2*Math.PI),a.fill(),a.fillStyle=`rgba(255, 255, 200, ${b})`,a.fillRect(e-1,f-1,2,2),a.fillStyle=`rgba(180, 180, 180, ${b})`,a.fillRect(e-2,f+3,4,2);break}case"document":{let b=256+(d.cx-256)*Math.min(2*c,1),e=d.topY-10+-15*Math.sin(c*Math.PI);a.globalAlpha=c>.8?(1-c)/.2:1,a.fillStyle="#f8f8f0",a.fillRect(b,e,8,10),a.strokeStyle="#aaa",a.lineWidth=.5,a.strokeRect(b,e,8,10),a.fillStyle="#ccc",a.fillRect(b+1.5,e+2,5,1),a.fillRect(b+1.5,e+4,4,1),a.fillRect(b+1.5,e+6,5,1),a.globalAlpha=1;break}case"stars":{let b=c>.7?(1-c)/.3:1,e=d.cx,f=d.cy;for(let d=0;d<8;d++){let g=d/8*Math.PI*2+c*Math.PI*3,h=10+15*c,i=e+Math.cos(g)*h,j=f+Math.sin(g)*h,k=["#FFD700","#FF6B6B","#4ECDC4","#A78BFA"];a.fillStyle=k[d%k.length],a.globalAlpha=b*(.5+.5*Math.sin(c*Math.PI*6+d));let l=1.5+.5*Math.sin(c*Math.PI*4+d);a.fillRect(i-l/2,j-l/2,l,l)}a.globalAlpha=1;break}case"flash":{let b=c<.3?c/.3:(1-c)/.7;a.fillStyle=`rgba(255, 255, 255, ${.6*b})`,a.fillRect(0,16,256,240)}}}},[]),x=(0,e.useCallback)((a,b)=>{a.clearRect(0,0,768,768),a.save(),a.scale(3,3);let c=b.floor;for(let d of(c?.complete&&c.naturalWidth&&a.drawImage(c,0,0,256,256),B)){let c=o.current[d];if("empty"===c.state)continue;let e="typing"===c.state&&c.cycleIndex%2==1,f=b[`char${d}-frame${e?2:1}`];if(f?.complete&&f.naturalWidth){"celebrate"===c.state&&(a.save(),a.globalAlpha=.85+.15*Math.sin(Date.now()/200));let b="looking"===c.state?+Math.sin(Date.now()/300):0;0!==b&&(a.save(),a.translate(0,b)),a.drawImage(f,0,0,256,256),0!==b&&a.restore(),"celebrate"===c.state&&a.restore()}v(a,d)}u(a),w(a),a.restore()},[u,v,w]),y=(0,e.useCallback)(a=>{for(let b=0;b<7;b++){let c=o.current[b];"empty"!==c.state&&(c.stateTimer+=a,"celebrate"===c.state&&c.stateTimer>=3e3&&(c.state="idle",c.cycleIndex=0,c.frameTicks=0,c.stateTimer=0),"looking"===c.state&&c.stateTimer>=1500&&(c.state="idle",c.cycleIndex=0,c.frameTicks=0,c.stateTimer=0),"typing"===c.state&&(c.frameTicks++,c.frameTicks>=c.ticksPerFrame&&(c.frameTicks=0,c.cycleIndex=(c.cycleIndex+1)%2)))}let b=t.current;for(let c=b.length-1;c>=0;c--)b[c].elapsed+=a,b[c].elapsed>=b[c].duration&&b.splice(c,1)},[]),z=(0,e.useCallback)(a=>{if(s.current){l.current=requestAnimationFrame(z),m.current=a;return}let b=a-m.current;m.current=a,n.current+=b;let c=!1;for(;n.current>=10;)n.current-=10,y(10),c=!0;if(c){let a=i.current,b=a?.getContext("2d");b&&k.current&&x(b,j.current)}l.current=requestAnimationFrame(z)},[y,x]);return(0,d.jsx)("canvas",{ref:i,width:768,height:768,className:"w-full",style:{imageRendering:"pixelated",aspectRatio:"1 / 1"}})}!function(){let a={floor:"floor.png"};for(let b=0;b<7;b++)a[`char${b}-frame1`]=`char${b}-frame1.png`,a[`char${b}-frame2`]=`char${b}-frame2.png`}();var D=c(42377);let E=(0,D.createServerReference)("4019dc5c43c0d0b5cd0ecf1c4101d03c3bcac1be4c",D.callServer,void 0,D.findSourceMapURL,"getProjectActiveSessionsAction");var F=c(76172);function G({projectUuid:a,projectName:b}){let c=(0,g.c)("pixelCanvas"),[f,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(Array.from({length:7},()=>({state:"empty"}))),[k,l]=(0,e.useState)(0),[m,n]=(0,e.useState)([]),o=(0,e.useCallback)(async()=>{let b=await E(a);if(!b.success||!b.data)return;let c=b.data;j(Array.from({length:7},(a,b)=>{let d=c[b];return d?{state:"typing",sessionName:d.sessionName}:{state:"empty"}})),l(c.length)},[a]);(0,F.l9)(o);let p=(0,e.useCallback)(()=>{n([])},[]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"fixed bottom-4 right-4 md:bottom-6 md:right-6 z-40 cursor-pointer",onClick:()=>h(!0),children:(0,d.jsxs)("div",{className:"relative transition-transform hover:scale-105",children:[(0,d.jsx)("div",{className:"overflow-hidden rounded-lg border-2 border-border bg-card shadow-lg hover:shadow-xl",children:(0,d.jsx)(x.default,{src:"/typing-animation.gif",alt:c("title"),width:72,height:72,unoptimized:!0,className:"block scale-[1.3]"})}),k>0&&(0,d.jsx)("span",{className:"absolute -top-3 -right-3 flex h-7 min-w-7 items-center justify-center rounded-full bg-[#B87351] text-xs font-bold text-white shadow-md",children:k})]})}),(0,d.jsx)(y.lG,{open:f,onOpenChange:h,children:(0,d.jsxs)(y.Cf,{className:"sm:max-w-2xl p-4",children:[(0,d.jsxs)(y.L3,{className:"text-sm",children:[b," — ",c("title")]}),(0,d.jsx)(y.rr,{className:"sr-only",children:c("title")}),(0,d.jsx)("div",{className:"overflow-hidden rounded-lg border border-border",children:(0,d.jsx)(C,{slots:i,projectName:b,agentCount:k,collapsed:!f,effects:m,onEffectsConsumed:p})})]})})]})}var H=c(76549),I=c(24838),J=c(98893),K=c(97825),L=c(59129),M=c(61131),N=c(24714),O=c(73112);let P=(0,e.createContext)(null),Q=new Set(["agent_checkin"]);function R({children:a}){let[b,c]=(0,e.useState)(0),h=(0,e.useRef)(new Set),i=(0,f.useRouter)(),j=(0,g.c)("notifications"),k=(0,e.useCallback)(()=>{h.current.forEach(a=>a())},[]),l=(0,e.useCallback)(async()=>{try{let a=await (0,w.tm)("/api/notifications?readFilter=unread&take=0");if(a.ok){let b=await a.json();b.success&&c(b.data.unreadCount)}}catch{}},[]),m=(0,e.useCallback)(()=>{l(),k()},[l,k]);(0,e.useCallback)(a=>{if(!a.action||Q.has(a.action)||!a.entityTitle||!a.actorName)return;let b=j(`types.${a.action}`),c=a.entityTitle,e=`${a.actorName} \xb7 ${b}`;(0,H.oR)(c,{description:e,icon:function(a){switch(a){case"task_assigned":case"idea_claimed":return(0,d.jsx)(I.A,{className:"h-4 w-4 text-[#C67A52]"});case"proposal_approved":case"task_verified":return(0,d.jsx)(J.A,{className:"h-4 w-4 text-green-600"});case"proposal_rejected":case"task_reopened":return(0,d.jsx)(K.A,{className:"h-4 w-4 text-red-500"});case"comment_added":return(0,d.jsx)(L.A,{className:"h-4 w-4 text-orange-500"});case"mentioned":return(0,d.jsx)(M.A,{className:"h-4 w-4 text-blue-600"});case"proposal_submitted":return(0,d.jsx)(N.A,{className:"h-4 w-4 text-blue-500"});case"task_status_changed":return(0,d.jsx)(O.A,{className:"h-4 w-4 text-blue-500"});default:return(0,d.jsx)(N.A,{className:"h-4 w-4 text-muted-foreground"})}}(a.action),duration:5e3,action:a.entityType&&a.entityUuid&&a.projectUuid?{label:j("viewDetail"),onClick:()=>i.push(function(a,b,c){let d=`/projects/${c}`;switch(a){case"task":return`${d}/tasks/${b}`;case"idea":return`${d}/ideas/${b}`;case"proposal":return`${d}/proposals/${b}`;case"document":return`${d}/documents/${b}`;default:return d}}(a.entityType,a.entityUuid,a.projectUuid))}:void 0})},[j,i]);let n=(0,e.useMemo)(()=>({unreadCount:b,refreshNotifications:m}),[b,m]);return(0,d.jsx)(P.Provider,{value:n,children:a})}function S(){let a=(0,e.useContext)(P);return a||{unreadCount:0,refreshNotifications:()=>{}}}var T=c(86677),U=c(74113),V=c(27362),W=c(31009),X=c(45148),Y=c(94372),Z=c(74645),$=c(49599);let _=[{bg:"bg-amber-100 dark:bg-amber-900/30",text:"text-amber-800 dark:text-amber-300"},{bg:"bg-blue-100 dark:bg-blue-900/30",text:"text-blue-800 dark:text-blue-300"},{bg:"bg-emerald-100 dark:bg-emerald-900/30",text:"text-emerald-800 dark:text-emerald-300"},{bg:"bg-violet-100 dark:bg-violet-900/30",text:"text-violet-800 dark:text-violet-300"},{bg:"bg-rose-100 dark:bg-rose-900/30",text:"text-rose-800 dark:text-rose-300"},{bg:"bg-cyan-100 dark:bg-cyan-900/30",text:"text-cyan-800 dark:text-cyan-300"},{bg:"bg-orange-100 dark:bg-orange-900/30",text:"text-orange-800 dark:text-orange-300"},{bg:"bg-indigo-100 dark:bg-indigo-900/30",text:"text-indigo-800 dark:text-indigo-300"}],aa=new Set(["agent_checkin"]);function ab({onClose:a}){let b=(0,g.c)("notifications"),c=(0,f.useRouter)(),{refreshNotifications:h}=S(),k=(0,e.useCallback)(a=>{let c=Date.now()-new Date(a).getTime(),d=Math.floor(c/6e4),e=Math.floor(c/36e5),f=Math.floor(c/864e5);return d<1?b("justNow"):d<60?b("minutesAgo",{count:d}):e<24?b("hoursAgo",{count:e}):b("daysAgo",{count:f})},[b]),[l,m]=(0,e.useState)([]),[n,o]=(0,e.useState)([]),[p,q]=(0,e.useState)(0),[r,s]=(0,e.useState)(0),[t,u]=(0,e.useState)(!0),v=(0,e.useCallback)(async(a,b)=>{let c=new URLSearchParams({limit:"20",offset:String(b)});a&&c.set("unreadOnly","true");let d=await (0,w.tm)(`/api/notifications?${c}`);if(!d.ok)return null;let e=await d.json();return e.success?e.data:null},[]),x=async()=>{await (0,w.tm)("/api/notifications/read-all",{method:"POST"}),o([]),s(0),m(a=>a.map(a=>a.readAt?a:{...a,readAt:new Date().toISOString()})),h()},y=async b=>{b.readAt||((0,w.tm)(`/api/notifications/${b.uuid}/read`,{method:"PATCH"}),o(a=>a.filter(a=>a.uuid!==b.uuid)),m(a=>a.map(a=>a.uuid===b.uuid?{...a,readAt:new Date().toISOString()}:a)),h()),a(),c.push(function(a){let{action:b,entityType:c,entityUuid:d,projectUuid:e}=a,f=`/projects/${e}`;if("report_created"===b)return`${f}/dashboard?panel=${d}&tab=overview`;switch(c){case"task":return`${f}/tasks/${d}`;case"idea":return`${f}/ideas/${d}`;case"proposal":return`${f}/proposals/${d}`;case"document":return`${f}/documents/${d}`;default:return f}}(b))},z=async a=>{let b=a?n:l,c=await v(a,b.length);c&&(a?o(a=>[...a,...c.notifications]):m(a=>[...a,...c.notifications]))},A=a=>{let{Icon:c,color:e}=function(a){switch(a){case"task_assigned":case"idea_claimed":return{Icon:I.A,color:"text-[#C67A52]"};case"proposal_approved":case"task_verified":return{Icon:J.A,color:"text-green-600"};case"proposal_rejected":case"task_reopened":return{Icon:K.A,color:"text-red-500"};case"comment_added":return{Icon:L.A,color:"text-orange-500"};case"mentioned":return{Icon:M.A,color:"text-blue-600"};case"proposal_submitted":return{Icon:N.A,color:"text-blue-500"};case"task_status_changed":return{Icon:O.A,color:"text-blue-500"};case"report_created":return{Icon:V.A,color:"text-emerald-600"};default:return{Icon:N.A,color:"text-muted-foreground"}}}(a.action),f=function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return _[Math.abs(b)%_.length]}(a.projectUuid),g=!a.readAt;return(0,d.jsx)(W.P.div,{variants:X.Rf,children:(0,d.jsxs)("button",{onClick:()=>y(a),className:"flex w-full gap-3 px-4 py-3 text-left hover:bg-muted/50 transition-colors border-b border-border last:border-b-0",children:[(0,d.jsx)("div",{className:"mt-1.5 flex-shrink-0",children:g?(0,d.jsx)("div",{className:"h-2 w-2 rounded-full bg-[#C67A52]"}):(0,d.jsx)("div",{className:"h-2 w-2"})}),(0,d.jsx)("div",{className:"mt-0.5 flex-shrink-0",children:(0,d.jsx)(c,{className:`h-4 w-4 ${e}`})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)($.E,{variant:"secondary",className:`mb-1 px-1.5 py-0 text-[10px] font-medium ${f.bg} ${f.text} border-0`,children:a.projectName}),(0,d.jsx)("div",{className:"text-[13px] font-medium text-foreground truncate",children:a.entityTitle}),(0,d.jsx)("div",{className:"text-[12px] text-muted-foreground truncate",children:b(`types.${a.action}`)}),(0,d.jsxs)("div",{className:"mt-0.5 text-[11px] text-muted-foreground",children:[a.actorName," \xb7 ",k(a.createdAt)]})]})]})},a.uuid)},B=(a,c,e)=>{let f=a.filter(a=>!aa.has(a.action));return t?(0,d.jsxs)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:[b("loadMore"),"..."]}):0===f.length?(0,d.jsx)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:c?b("noUnread"):b("noNotifications")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(W.P.div,{initial:"initial",animate:"animate",transition:{staggerChildren:.04},children:f.map(A)}),f.length<e&&(0,d.jsx)("div",{className:"p-3 text-center",children:(0,d.jsx)(j.$,{variant:"ghost",size:"sm",className:"text-xs",onClick:()=>z(c),children:b("loadMore")})})]})};return(0,d.jsxs)("div",{className:"w-[calc(100vw-2rem)] max-w-[360px]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:b("title")}),(0,d.jsx)(j.$,{variant:"ghost",size:"sm",className:"h-auto p-0 text-xs text-primary hover:text-primary/80",onClick:x,children:b("markAllRead")})]}),(0,d.jsxs)(Y.tU,{defaultValue:"unread",className:"gap-0",children:[(0,d.jsxs)(Y.j7,{className:"w-full rounded-none border-b border-border bg-transparent px-4 py-0 h-9",children:[(0,d.jsxs)(Y.Xi,{value:"unread",className:"text-xs rounded-none data-[state=active]:shadow-none data-[state=active]:border-b-2 data-[state=active]:border-primary",children:[b("tabUnread")," ",r>0&&`(${r})`]}),(0,d.jsx)(Y.Xi,{value:"all",className:"text-xs rounded-none data-[state=active]:shadow-none data-[state=active]:border-b-2 data-[state=active]:border-primary",children:b("tabAll")})]}),(0,d.jsx)(Y.av,{value:"all",className:"mt-0",children:(0,d.jsx)(W.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.15},children:(0,d.jsx)(Z.F,{className:"max-h-[400px] overflow-y-auto",children:B(l,!1,p)})},"tab-all")}),(0,d.jsx)(Y.av,{value:"unread",className:"mt-0",children:(0,d.jsx)(W.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.15},children:(0,d.jsx)(Z.F,{className:"max-h-[400px] overflow-y-auto",children:B(n,!0,r)})},"tab-unread")})]}),(0,d.jsx)("div",{className:"border-t border-border px-4 py-2 text-center",children:(0,d.jsx)(i(),{href:"/settings",onClick:a,className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:b("notificationPreferences")})})]})}function ac(){let{unreadCount:a}=S(),[b,c]=(0,e.useState)(!1);return(0,d.jsxs)(U.AM,{open:b,onOpenChange:c,children:[(0,d.jsx)(U.Wv,{asChild:!0,children:(0,d.jsxs)(j.$,{variant:"ghost",size:"icon",className:"relative h-8 w-8 text-muted-foreground hover:text-foreground",children:[(0,d.jsx)(T.A,{className:"h-4 w-4"}),a>0&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-[#C67A52] px-1 text-[10px] font-medium text-white animate-[pulse-badge_1.5s_ease-in-out_infinite]",children:a>99?"99+":a})]})}),(0,d.jsx)(U.hl,{align:"start",sideOffset:8,className:"w-auto p-0 rounded-lg",children:(0,d.jsx)(ab,{onClose:()=>c(!1)})})]})}var ad=c(94143),ae=c(75888),af=c(86691),ag=c(86460),ah=c(78323),ai=c(96307),aj=c(9994),ak=c(55732),al=c(42087);let am=["all","task","idea","proposal","document","project"],an={task:"bg-[#EBF5FF] text-[#2563EB] border-[#2563EB]/20",idea:"bg-[#FEF9C3] text-[#A16207] border-[#A16207]/20",proposal:"bg-[#FFF7ED] text-[#C67A52] border-[#C67A52]/20",document:"bg-[#F3E8FF] text-[#7C3AED] border-[#7C3AED]/20",project:"bg-[#ECFDF5] text-[#059669] border-[#059669]/20",project_group:"bg-[#F0FDFA] text-[#0D9488] border-[#0D9488]/20"},ao={all:"filterAll",task:"filterTasks",idea:"filterIdeas",proposal:"filterProposals",document:"filterDocuments",project:"filterProjects",project_group:"filterProjects"};function ap({currentProjectUuid:a,currentProjectName:b,currentGroupUuid:c,currentGroupName:h}){let i=(0,g.c)("search"),k=(0,g.c)("time"),l=(0,f.useRouter)(),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(a?"project":c?"group":"global"),[q,r]=(0,e.useState)([]),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)("all"),[A,B]=(0,e.useState)(0),C=(0,e.useRef)(null),D=(0,e.useRef)([]),E=(0,e.useRef)(void 0),F=(0,e.useCallback)(async(b,d,e="all")=>{if(!b.trim()){r([]),t(!1);return}t(!0);try{let f=new URLSearchParams({q:b.trim(),scope:d,limit:"20"});"project"===d&&a?f.set("scopeUuid",a):"group"===d&&c&&f.set("scopeUuid",c),"all"!==e&&f.set("types",e);let g=await fetch(`/api/search?${f.toString()}`,{credentials:"include"});if(!g.ok){z.q.error("Search failed:",g.status),r([]);return}let h=await g.json();h.success?r(h.data.results):r([])}catch(a){z.q.error("Search error:",a),r([])}finally{t(!1)}},[a,c]),G=(0,e.useCallback)(a=>{n(a),E.current&&clearTimeout(E.current),a.trim()?E.current=setTimeout(()=>{F(a,o,w)},300):(r([]),t(!1))},[o,w,F]),H=(0,e.useCallback)(a=>{p(a),m.trim()&&F(m,a,w)},[m,w,F]),I=(0,e.useCallback)(a=>{x(a),B(0),m.trim()&&F(m,o,a)},[m,o,F]),J=(0,e.useCallback)(a=>{switch(v(!1),a.entityType){case"task":a.projectUuid&&l.push(`/projects/${a.projectUuid}/tasks/${a.uuid}`);break;case"idea":a.projectUuid&&l.push(`/projects/${a.projectUuid}/ideas/${a.uuid}`);break;case"proposal":a.projectUuid&&l.push(`/projects/${a.projectUuid}/proposals/${a.uuid}`);break;case"document":a.projectUuid&&l.push(`/projects/${a.projectUuid}/documents/${a.uuid}`);break;case"project":l.push(`/projects/${a.uuid}/dashboard`);break;case"project_group":l.push("/projects")}},[l]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(j.$,{variant:"outline",size:"icon",onClick:()=>v(!0),className:"md:w-full md:justify-start md:gap-3 h-9 md:px-3 text-muted-foreground font-normal",children:[(0,d.jsx)(ae.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"hidden md:inline truncate text-sm",children:i("placeholder")}),(0,d.jsxs)("kbd",{className:"ml-auto pointer-events-none hidden md:flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium",children:[(0,d.jsx)(af.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{children:"K"})]})]}),(0,d.jsx)(y.lG,{open:u,onOpenChange:v,children:(0,d.jsxs)(y.Cf,{className:"w-[calc(100vw-2rem)] sm:max-w-[600px] p-0 gap-0 overflow-hidden [&>button]:hidden [&>*]:min-w-0 top-4 sm:top-[20%] translate-y-0","aria-describedby":void 0,children:[(0,d.jsx)(y.L3,{className:"sr-only",children:i("placeholder")}),(0,d.jsxs)("div",{className:"flex items-center gap-2 border-b px-3 sm:px-4 py-3",children:[(0,d.jsx)(ae.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)(aj.p,{ref:C,type:"text",placeholder:i("placeholder"),value:m,onChange:a=>G(a.target.value),onKeyDown:a=>{!(0,al.P)(a)&&("ArrowDown"===a.key?(a.preventDefault(),B(a=>{let b=Math.min(a+1,q.length-1);return D.current[b]?.scrollIntoView({block:"nearest"}),b})):"ArrowUp"===a.key?(a.preventDefault(),B(a=>{let b=Math.max(a-1,0);return D.current[b]?.scrollIntoView({block:"nearest"}),b})):"Enter"===a.key&&q.length>0&&(a.preventDefault(),J(q[A])))},className:"border-0 shadow-none focus-visible:ring-0 h-8 px-0 text-sm min-w-0"}),s&&(0,d.jsx)(ag.A,{className:"h-4 w-4 shrink-0 animate-spin text-muted-foreground"}),(0,d.jsxs)(ak.l6,{value:o,onValueChange:a=>H(a),children:[(0,d.jsx)(ak.bq,{className:"w-auto h-7 text-xs gap-1 border-dashed shrink-0",children:(0,d.jsx)(ak.yv,{})}),(0,d.jsxs)(ak.gC,{children:[(0,d.jsx)(ak.eb,{value:"global",children:i("scopeGlobal")}),c&&(0,d.jsx)(ak.eb,{value:"group",children:h||i("scopeGroup")}),a&&(0,d.jsx)(ak.eb,{value:"project",children:b||i("scopeProject")})]})]})]}),m.trim()&&(0,d.jsx)("div",{className:"flex items-center gap-1 border-b px-4 py-2 overflow-x-auto",children:am.map(a=>(0,d.jsx)(j.$,{variant:w===a?"default":"ghost",size:"sm",onClick:()=>I(a),className:(0,ai.cn)("h-7 px-3 text-xs rounded-full shrink-0",w===a?"bg-foreground text-background hover:bg-foreground/90":"text-muted-foreground hover:text-foreground"),children:i(ao[a])},a))}),(0,d.jsx)(Z.F,{className:"max-h-[400px]",children:(0,d.jsx)(ah.N,{mode:"wait",children:m.trim()?s?(0,d.jsx)(W.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:X.Yv.fast},children:(0,d.jsxs)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:[(0,d.jsx)(ag.A,{className:"h-5 w-5 animate-spin mx-auto mb-2"}),i("placeholder"),"..."]})},"loading"):0===q.length?(0,d.jsx)(W.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:X.Yv.fast},children:(0,d.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:i("noResults")})},"no-results"):(0,d.jsx)(W.P.div,{initial:"initial",animate:"animate",transition:{staggerChildren:X.Yv.staggerFast},className:"p-2",children:q.map((a,b)=>(0,d.jsx)(W.P.div,{variants:X.Rf,children:(0,d.jsxs)("button",{ref:a=>{D.current[b]=a},onClick:()=>J(a),onMouseEnter:()=>B(b),className:(0,ai.cn)("block w-full text-left px-3 py-2.5 rounded-lg transition-colors cursor-pointer overflow-hidden",b===A?"bg-accent":"hover:bg-accent/50"),children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 mb-0.5",children:[(0,d.jsx)($.E,{variant:"outline",className:(0,ai.cn)("text-[10px] px-1.5 py-0 shrink-0",an[a.entityType]||"bg-muted text-muted-foreground"),children:i(`entityType.${a.entityType}`)}),a.status&&(0,d.jsx)($.E,{variant:"secondary",className:"text-[10px] px-1.5 py-0 shrink-0",children:a.status}),a.projectName&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground line-clamp-1 ml-auto",children:a.projectName})]}),(0,d.jsx)("div",{className:"font-medium text-sm line-clamp-1 break-all",children:a.title}),a.snippet&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground line-clamp-1 mt-0.5 break-all",children:a.snippet}),(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground mt-1",children:(a=>{let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);return b<60?k("justNow"):b<3600?k("minutesAgo",{minutes:Math.floor(b/60)}):b<86400?k("hoursAgo",{hours:Math.floor(b/3600)}):k("daysAgo",{days:Math.floor(b/86400)})})(a.updatedAt)})]})},`${a.entityType}-${a.uuid}`))},`results-${w}`):(0,d.jsx)(W.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:X.Yv.fast},children:(0,d.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:i("placeholder")})},"empty")})}),(0,d.jsxs)("div",{className:"hidden sm:flex items-center justify-between border-t px-4 py-2 text-[10px] text-muted-foreground",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"↑"}),(0,d.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"↓"}),i("filterAll")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"⏎"}),"Open"]})]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"Esc"}),"Close"]})]})]})})]})}function aq({children:a}){let b=function(a){let b=a.match(/^(\/projects\/[a-f0-9-]{36}\/(tasks|ideas|documents|proposals))\/.+$/);return b?b[1]:a}((0,f.usePathname)());return(0,d.jsx)(W.P.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:X.Yv.normal,ease:X.Yv.easeOut},className:"flex-1 flex flex-col",children:a},b)}let ar=({...a})=>(0,d.jsx)(H.l$,{className:"toaster group",...a});function as({children:a}){let b=(0,f.useRouter)(),c=(0,f.usePathname)(),h=(0,g.c)(),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(!0),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(!1),N=function(a){let b=a.match(/^\/projects\/([a-f0-9-]{36})(\/|$)/);return b?b[1]:null}(c),O=function(a){let b=a.match(/^\/project-groups\/([a-f0-9-]{36})(\/|$)/);return b?b[1]:null}(c),[P,Q]=(0,e.useState)(null),S="/projects"===c||"/settings"===c||c.startsWith("/project-groups"),T=N&&!S,U=c.match(/^\/projects\/[a-f0-9-]{36}\/tasks(\/|$)/),V=async()=>{try{await (0,w.ri)()}catch{(0,w.w9)()}b.push("/login")};if(D)return(0,d.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-background",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:h("common.loading")})});let Y=[{href:"/projects",label:h("nav.projects"),icon:q.A},{href:"/settings",label:h("nav.settings"),icon:r.A}],Z=a=>a.endsWith("/dashboard")?c===a:"/projects"===a?"/projects"===c:c===a||c.startsWith(a+"/"),$=({mobile:a=!1})=>{let c=a?"text-[15px]":"text-[13px]",e=a?"h-5 w-5":"h-4 w-4",f=a?"gap-1.5":"gap-1",g=a?"h-10":"";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-8 p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("img",{src:"/chorus-icon.png",alt:"Chorus",className:"h-7 w-7"}),(0,d.jsx)("span",{className:"text-base font-semibold text-foreground",children:h("common.appName")})]}),(0,d.jsx)("div",{className:"hidden md:block",children:(0,d.jsx)(ac,{})})]}),!a&&(0,d.jsx)(ap,{currentProjectUuid:N||void 0,currentProjectName:z?.name,currentGroupUuid:O||void 0,currentGroupName:P||void 0}),(0,d.jsx)("nav",{className:`flex flex-col ${f}`,children:T&&N?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i(),{href:"/projects",children:(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",className:`w-full justify-start gap-2.5 text-muted-foreground hover:text-foreground ${c} ${g}`,children:[(0,d.jsx)(s.A,{className:a?"h-4 w-4":"h-3 w-3"}),h("nav.backToProjects")]})}),z&&(0,d.jsxs)("div",{className:"relative mt-2",children:[(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",onClick:()=>B.length>0&&I(!H),className:`w-full justify-between px-3 py-1.5 ${0===B.length?"cursor-default":""}`,children:[(0,d.jsx)("span",{className:`truncate font-semibold uppercase tracking-wider text-foreground ${a?"text-[13px]":"text-[11px]"}`,children:z.name}),B.length>0&&(0,d.jsx)(t.A,{className:`h-3 w-3 text-muted-foreground transition-transform ${H?"rotate-180":""}`})]}),(0,d.jsx)(ah.N,{children:H&&B.length>0&&(0,d.jsx)(W.P.div,{variants:X.K5,initial:"initial",animate:"animate",exit:"exit",className:"absolute left-0 right-0 top-full z-10 mt-1 origin-top rounded-lg border border-border bg-card py-1 shadow-lg",children:B.map(a=>(0,d.jsx)(j.$,{variant:"ghost",size:"sm",onClick:()=>{I(!1),b.push(`/projects/${a.uuid}/dashboard`)},className:`w-full justify-start px-3 py-2 ${c} [&>*]:truncate text-muted-foreground`,children:(0,d.jsx)("span",{className:"truncate",children:a.name})},a.uuid))})})]}),(0,d.jsx)("div",{className:`mt-2 flex flex-col ${f}`,children:[{href:`/projects/${N}/dashboard`,label:h("nav.overview"),icon:k.A},{href:`/projects/${N}/ideas`,label:h("nav.ideas"),icon:l.A},{href:`/projects/${N}/documents`,label:h("nav.documents"),icon:m.A},{href:`/projects/${N}/proposals`,label:h("nav.proposals"),icon:n.A},{href:`/projects/${N}/tasks`,label:h("nav.tasks"),icon:o.A},{href:`/projects/${N}/activity`,label:h("nav.activity"),icon:p.A}].map(a=>{let b=Z(a.href),f=a.icon;return(0,d.jsx)(i(),{href:a.href,children:(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",className:`relative w-full justify-start gap-2.5 ${c} ${g} ${b?"font-medium text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[b&&(0,d.jsx)(W.P.div,{layoutId:"nav-active",className:"absolute inset-0 rounded-md bg-secondary",transition:{type:"spring",stiffness:500,damping:30}}),(0,d.jsxs)("span",{className:"relative flex items-center gap-2.5",children:[(0,d.jsx)(f,{className:`${e} ${b?"text-primary":""}`}),a.label]})]})},a.href)})})]}):(0,d.jsx)(d.Fragment,{children:(0,d.jsx)("div",{className:`flex flex-col ${f}`,children:Y.map(a=>{let b=Z(a.href),f=a.icon;return(0,d.jsx)(i(),{href:a.href,children:(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",className:`relative w-full justify-start gap-2.5 ${c} ${g} ${b?"font-medium text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[b&&(0,d.jsx)(W.P.div,{layoutId:"nav-active",className:"absolute inset-0 rounded-md bg-secondary",transition:{type:"spring",stiffness:500,damping:30}}),(0,d.jsxs)("span",{className:"relative flex items-center gap-2.5",children:[(0,d.jsx)(f,{className:`${e} ${b?"text-primary":""}`}),a.label]})]})},a.href)})})})})]}),(0,d.jsx)("div",{className:"p-6",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:`flex items-center justify-center rounded-full bg-primary font-medium text-primary-foreground ${a?"h-10 w-10 text-base":"h-9 w-9 text-sm"}`,children:x?.name?.charAt(0)||"U"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:`truncate font-medium text-foreground ${a?"text-[15px]":"text-[13px]"}`,children:x?.name}),(0,d.jsx)("div",{className:`truncate text-muted-foreground ${a?"text-[12px]":"text-[11px]"}`,children:x?.email})]}),(0,d.jsx)(j.$,{variant:"ghost",size:"icon",onClick:V,title:h("common.signOut"),className:"h-8 w-8 text-muted-foreground hover:text-foreground",children:(0,d.jsx)(u.A,{className:"h-4 w-4"})})]})})]})};return(0,d.jsxs)(R,{children:[(0,d.jsxs)("div",{className:"flex min-h-screen bg-background",children:[(0,d.jsx)("header",{className:"fixed top-0 left-0 right-0 z-30 border-b border-border bg-card md:hidden",children:(0,d.jsxs)("div",{className:"flex h-14 items-center justify-between px-4",children:[(0,d.jsx)("button",{onClick:()=>K(!0),"aria-label":h("nav.openMenu"),children:(0,d.jsx)(v.A,{className:"h-5 w-5 text-muted-foreground"})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("img",{src:"/chorus-icon.png",alt:"Chorus",className:"h-6 w-6"}),(0,d.jsx)("span",{className:"text-sm font-semibold text-foreground",children:h("common.appName")})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(ap,{currentProjectUuid:N||void 0,currentProjectName:z?.name,currentGroupUuid:O||void 0,currentGroupName:P||void 0}),(0,d.jsx)(ac,{})]})]})}),(0,d.jsx)(ad.cj,{open:J,onOpenChange:K,children:(0,d.jsx)(ad.h,{side:"left",className:"w-[280px] p-0",children:(0,d.jsx)("div",{className:"flex h-full flex-col justify-between overflow-y-auto",children:(0,d.jsx)($,{mobile:!0})})})}),(0,d.jsx)("aside",{className:"hidden md:sticky md:top-0 md:flex h-screen w-[220px] flex-shrink-0 flex-col justify-between overflow-y-auto border-r border-border bg-card",children:(0,d.jsx)($,{})}),T&&N?(0,d.jsxs)(F.tS,{projectUuid:N,children:[(0,d.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,d.jsx)("div",{className:`mx-auto w-full flex-1 flex flex-col ${U?"":"max-w-[1200px]"}`,children:(0,d.jsx)(aq,{children:a})})}),(0,d.jsx)(G,{projectUuid:N,projectName:z?.name||""})]}):"/projects"===c||c.startsWith("/project-groups")?(0,d.jsx)(F.tS,{children:(0,d.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,d.jsx)("div",{className:`mx-auto w-full flex-1 flex flex-col ${U?"":"max-w-[1200px]"}`,children:(0,d.jsx)(aq,{children:a})})})}):(0,d.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,d.jsx)("div",{className:`mx-auto w-full flex-1 flex flex-col ${U?"":"max-w-[1200px]"}`,children:(0,d.jsx)(aq,{children:a})})})]}),(0,d.jsx)(ar,{position:L?"top-center":"top-right",closeButton:!L})]})}},11568:(a,b,c)=>{"use strict";c.d(b,{Cf:()=>m,Es:()=>o,L3:()=>p,c7:()=>n,lG:()=>i,rr:()=>q,zM:()=>j});var d=c(10837);c(21968);var e=c(10694),f=c(14220),g=c(96307),h=c(42424);function i({...a}){return(0,d.jsx)(f.Root,{"data-slot":"dialog",...a})}function j({...a}){return(0,d.jsx)(f.Trigger,{"data-slot":"dialog-trigger",...a})}function k({...a}){return(0,d.jsx)(f.Portal,{"data-slot":"dialog-portal",...a})}function l({className:a,...b}){return(0,d.jsx)(f.Overlay,{"data-slot":"dialog-overlay",className:(0,g.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}function m({className:a,children:b,showCloseButton:c=!0,...h}){return(0,d.jsxs)(k,{"data-slot":"dialog-portal",children:[(0,d.jsx)(l,{}),(0,d.jsxs)(f.Content,{"data-slot":"dialog-content",className:(0,g.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",a),...h,children:[b,c&&(0,d.jsxs)(f.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,d.jsx)(e.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function n({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,g.cn)("flex flex-col gap-2 text-center sm:text-left",a),...b})}function o({className:a,showCloseButton:b=!1,children:c,...e}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,g.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...e,children:[c,b&&(0,d.jsx)(f.Close,{asChild:!0,children:(0,d.jsx)(h.$,{variant:"outline",children:"Close"})})]})}function p({className:a,...b}){return(0,d.jsx)(f.Title,{"data-slot":"dialog-title",className:(0,g.cn)("text-lg leading-none font-semibold",a),...b})}function q({className:a,...b}){return(0,d.jsx)(f.Description,{"data-slot":"dialog-description",className:(0,g.cn)("text-muted-foreground text-sm",a),...b})}},16352:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(37143).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/ubuntu/dev/ai-pm/src/app/(dashboard)/layout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/ubuntu/dev/ai-pm/src/app/(dashboard)/layout.tsx","default")},21865:(a,b,c)=>{"use strict";c.d(b,{HB:()=>e,JK:()=>h,XQ:()=>g,bN:()=>i,vh:()=>f});var d=c(99582);function e(a){let b=function(a){let b=process.env.NEXTAUTH_URL||"http://localhost:8637";return{authority:a.issuer,client_id:a.clientId,redirect_uri:`${b}/login/callback`,post_logout_redirect_uri:`${b}/login`,response_type:"code",scope:"openid profile email",automaticSilentRenew:!0,silent_redirect_uri:`${b}/login/silent-refresh`,accessTokenExpiringNotificationTimeInSeconds:60,userStore:void 0,extraQueryParams:{company:a.companyUuid}}}(a);return new d.$5(b)}function f(a){}function g(){return null}function h(){}function i(a){return{sub:a.profile.sub,email:a.profile.email,name:a.profile.name,picture:a.profile.picture,accessToken:a.access_token,refreshToken:a.refresh_token,expiresAt:a.expires_at,idToken:a.id_token}}},22299:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Dv:()=>n,Tg:()=>o,v5:()=>p});var e=c(2613);c(50785);var f=c(4687),g=c(9259),h=c(33994),i=c(5562),j=c(30457),k=c(97307),l=c(12217),m=a([g,h,j]);async function n(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{if(!await (0,h.xx)(b.companyUuid,a))return{success:!1,error:"Project not found"}}catch(a){return k.A.error({err:a},"Failed to delete project"),{success:!1,error:"Failed to delete project"}}(0,f.redirect)("/projects")}async function o(a,b){let c=await (0,g.d)();if(!c)return{success:!1,error:"Unauthorized"};try{let d=await (0,h.vr)(c.companyUuid,a,b);if(!d)return{success:!1,error:"Project not found"};return(0,i.revalidatePath)(`/projects/${a}/dashboard`),{success:!0,data:d}}catch(a){return k.A.error({err:a},"Failed to update project"),{success:!1,error:"Failed to update project"}}}async function p(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{let c=await (0,j.UL)(b.companyUuid,a);return{success:!0,data:c}}catch(a){return k.A.error({err:a},"Failed to fetch active sessions"),{success:!1,error:"Failed to fetch active sessions"}}}[g,h,j]=m.then?(await m)():m,(0,l.D)([n,o,p]),(0,e.A)(n,"40cb34bdc4fed2104114738bf7775d107b52ddb319",null),(0,e.A)(o,"60cfafb97dee121da111a8fbb6d24763894ee7029a",null),(0,e.A)(p,"4019dc5c43c0d0b5cd0ecf1c4101d03c3bcac1be4c",null),d()}catch(a){d(a)}})},33994:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Yi:()=>i,hF:()=>h,vr:()=>j,xx:()=>k});var e=c(71255),f=c(62729),g=a([e]);async function h({companyUuid:a,skip:b,take:c}){let[d,f]=await Promise.all([e.z.project.findMany({where:{companyUuid:a},skip:b,take:c,orderBy:{updatedAt:"desc"},select:{uuid:!0,name:!0,description:!0,groupUuid:!0,createdAt:!0,updatedAt:!0,_count:{select:{ideas:!0,documents:!0,tasks:!0,proposals:!0}}}}),e.z.project.count({where:{companyUuid:a}})]);return{projects:d,total:f}}async function i(a,b){return!!await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}})}async function j(a,b,c){let d=await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}});return d?e.z.project.update({where:{uuid:d.uuid},data:c,select:{uuid:!0,name:!0,description:!0,createdAt:!0,updatedAt:!0}}):null}async function k(a,b){let c=await e.z.project.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}});return!!c&&(await e.z.project.delete({where:{uuid:c.uuid}}),f.B.emitChange({companyUuid:a,projectUuid:b,entityType:"project",entityUuid:b,action:"deleted"}),!0)}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},42087:(a,b,c)=>{"use strict";function d(a){return("nativeEvent"in a?a.nativeEvent:a).isComposing||229===a.keyCode}c.d(b,{P:()=>d})},46795:(a,b,c)=>{Promise.resolve().then(c.bind(c,9318))},49599:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(10837);c(21968);var e=c(35973),f=c(11156),g=c(96307);let h=(0,e.F)("inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline",success:"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100",warning:"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b="default",asChild:c=!1,...e}){let i=c?f.bL:"span";return(0,d.jsx)(i,{"data-slot":"badge","data-variant":b,className:(0,g.cn)(h({variant:b}),a),...e})}},74113:(a,b,c)=>{"use strict";c.d(b,{AM:()=>g,Wv:()=>h,hl:()=>i});var d=c(10837);c(21968);var e=c(41335),f=c(96307);function g({...a}){return(0,d.jsx)(e.Root,{"data-slot":"popover",...a})}function h({...a}){return(0,d.jsx)(e.Trigger,{"data-slot":"popover-trigger",...a})}function i({className:a,align:b="center",sideOffset:c=4,...g}){return(0,d.jsx)(e.Portal,{children:(0,d.jsx)(e.Content,{"data-slot":"popover-content",align:b,sideOffset:c,className:(0,f.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",a),...g})})}},74645:(a,b,c)=>{"use strict";c.d(b,{F:()=>g});var d=c(10837);c(21968);var e=c(63658),f=c(96307);function g({className:a,children:b,...c}){return(0,d.jsxs)(e.Root,{"data-slot":"scroll-area",className:(0,f.cn)("relative",a),...c,children:[(0,d.jsx)(e.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:b}),(0,d.jsx)(h,{}),(0,d.jsx)(e.Corner,{})]})}function h({className:a,orientation:b="vertical",...c}){return(0,d.jsx)(e.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:b,className:(0,f.cn)("flex touch-none p-px transition-colors select-none","vertical"===b&&"h-full w-2.5 border-l border-l-transparent","horizontal"===b&&"h-2.5 flex-col border-t border-t-transparent",a),...c,children:(0,d.jsx)(e.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}},76172:(a,b,c)=>{"use strict";c.d(b,{S2:()=>j,eV:()=>i,l9:()=>h,tS:()=>g,w0:()=>k});var d=c(10837),e=c(21968);c(1007);let f=(0,e.createContext)(null);function g({projectUuid:a,children:b}){let c=(0,e.useRef)(new Set),g=(0,e.useRef)(new Set),h=(0,e.useRef)(new Set);(0,e.useCallback)(()=>{c.current.forEach(a=>a())},[]),(0,e.useCallback)(a=>{g.current.forEach(b=>b(a))},[]);let i=(0,e.useCallback)(a=>(c.current.add(a),()=>{c.current.delete(a)}),[]),j=(0,e.useCallback)(a=>(g.current.add(a),()=>{g.current.delete(a)}),[]),k=(0,e.useCallback)(a=>(h.current.add(a),()=>{h.current.delete(a)}),[]),l=(0,e.useMemo)(()=>({subscribe:i,subscribeEntity:j,subscribePresence:k}),[i,j,k]);return(0,d.jsx)(f.Provider,{value:l,children:b})}function h(a){(0,e.useContext)(f),(0,e.useRef)(a).current=a}function i(a,b){(0,e.useContext)(f),(0,e.useRef)(b).current=b,(0,e.useRef)(a).current=a}function j(a){(0,e.useContext)(f),(0,e.useRef)(a).current=a}function k(a,b,c){(0,e.useContext)(f),(0,e.useRef)(c).current=c}},86547:(a,b,c)=>{Promise.resolve().then(c.bind(c,16352))},93524:(a,b,c)=>{"use strict";c.d(b,{hj:()=>f,ri:()=>l,tm:()=>k,w9:()=>g});var d=c(21865),e=c(54722);function f(a){return(0,d.vh)(a),(0,d.HB)(a)}function g(){}async function h(){return null}async function i(){let a=await h();return!a||a.expired?null:a.access_token}async function j(a,b){try{return(await fetch("/api/auth/sync-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a,refreshToken:b})})).ok}catch{return e.q.error("Failed to sync token to cookie"),!1}}async function k(a,b={}){let c=await i(),d=new Headers(b.headers);c&&d.set("Authorization",`Bearer ${c}`);let e=await fetch(a,{...b,headers:d});if(401===e.status)if(1)try{if((await fetch("/api/auth/refresh",{method:"POST"})).ok)return d.delete("Authorization"),fetch(a,{...b,headers:d})}catch{}else try{let c=await null.signinSilent();if(c?.access_token)return await j(c.access_token),d.set("Authorization",`Bearer ${c.access_token}`),fetch(a,{...b,headers:d})}catch{}return e}async function l(){try{await fetch("/api/auth/logout",{method:"POST"})}catch{}g(),(0,d.JK)()}},94143:(a,b,c)=>{"use strict";c.d(b,{CG:()=>j,Fm:()=>o,cj:()=>i,h:()=>n,qp:()=>p});var d=c(10837);c(21968);var e=c(10694),f=c(14220),g=c(35973),h=c(96307);function i({...a}){return(0,d.jsx)(f.Root,{"data-slot":"sheet",...a})}function j({...a}){return(0,d.jsx)(f.Trigger,{"data-slot":"sheet-trigger",...a})}function k({...a}){return(0,d.jsx)(f.Portal,{"data-slot":"sheet-portal",...a})}function l({className:a,...b}){return(0,d.jsx)(f.Overlay,{"data-slot":"sheet-overlay",className:(0,h.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}let m=(0,g.F)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 border-b",bottom:"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 border-t",left:"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",right:"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm"}},defaultVariants:{side:"right"}});function n({className:a,children:b,side:c="right",...g}){return(0,d.jsxs)(k,{children:[(0,d.jsx)(l,{}),(0,d.jsxs)(f.Content,{"data-slot":"sheet-content",className:(0,h.cn)(m({side:c}),a),...g,children:[b,(0,d.jsxs)(f.Close,{"data-slot":"sheet-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,d.jsx)(e.A,{className:"size-4"}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function o({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sheet-header",className:(0,h.cn)("flex flex-col gap-2 p-4",a),...b})}function p({className:a,...b}){return(0,d.jsx)(f.Title,{"data-slot":"sheet-title",className:(0,h.cn)("text-foreground text-lg font-semibold",a),...b})}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6592,exports.ids=[6592],exports.modules={1053:(a,b,c)=>{c.d(b,{x:()=>e});var d=c(42377);let e=(0,d.createServerReference)("40b87c9088e53f05d128cb7aea80d80fd4a1a91c9e",d.callServer,void 0,d.findSourceMapURL,"getIdeaActivitiesAction")},2852:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(10837);c(21968);var e=c(13277),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}},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)}})},7046:(a,b,c)=>{c.d(b,{kX:()=>e,od:()=>f,sO:()=>j});var d=c(70936);function e(a,b){return d.NextResponse.json({success:!0,data:a,meta:b})}function f(a,b,c,e){return d.NextResponse.json({success:!0,data:a,meta:{page:b,pageSize:c,total:e}})}let g={BAD_REQUEST:"BAD_REQUEST",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",NOT_FOUND:"NOT_FOUND",CONFLICT:"CONFLICT",VALIDATION_ERROR:"VALIDATION_ERROR",ALREADY_CLAIMED:"ALREADY_CLAIMED",NOT_CLAIMED:"NOT_CLAIMED",INVALID_STATUS_TRANSITION:"INVALID_STATUS_TRANSITION",PERMISSION_DENIED:"PERMISSION_DENIED",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR"},h={[g.BAD_REQUEST]:400,[g.UNAUTHORIZED]:401,[g.FORBIDDEN]:403,[g.NOT_FOUND]:404,[g.CONFLICT]:409,[g.VALIDATION_ERROR]:422,[g.ALREADY_CLAIMED]:409,[g.NOT_CLAIMED]:400,[g.INVALID_STATUS_TRANSITION]:400,[g.PERMISSION_DENIED]:403,[g.INTERNAL_ERROR]:500,[g.DATABASE_ERROR]:500};function i(a,b,c){let e=h[a]||500;return d.NextResponse.json({success:!1,error:{code:a,message:b,details:c}},{status:e})}let j={badRequest:(a,b)=>i(g.BAD_REQUEST,a,b),unauthorized:(a="Authentication required")=>i(g.UNAUTHORIZED,a),forbidden:(a="Access denied")=>i(g.FORBIDDEN,a),notFound:(a="Resource")=>i(g.NOT_FOUND,`${a} not found`),conflict:a=>i(g.CONFLICT,a),validationError:a=>i(g.VALIDATION_ERROR,"Validation failed",a),alreadyClaimed:()=>i(g.ALREADY_CLAIMED,"Resource is already claimed"),notClaimed:()=>i(g.NOT_CLAIMED,"Resource is not claimed"),invalidStatusTransition:(a,b)=>i(g.INVALID_STATUS_TRANSITION,`Invalid status transition from ${a} to ${b}`),permissionDenied:a=>i(g.PERMISSION_DENIED,`Permission denied: ${a}`),internal:(a="Internal server error")=>i(g.INTERNAL_ERROR,a),database:(a="Database error")=>i(g.DATABASE_ERROR,a)}},10072:(a,b,c)=>{c.d(b,{J:()=>e});var d=c(42377);let e=(0,d.createServerReference)("40a8dc731d4afcd4711ee4de5c14c357fc1b4639ca",d.callServer,void 0,d.findSourceMapURL,"updateIdeaAction")},10297:(a,b,c)=>{c.d(b,{G7:()=>i,L$:()=>l,h_:()=>m,oI:()=>j,uB:()=>h,xL:()=>k});var d=c(10837);c(21968);var e=c(28918),f=c(75888),g=c(96307);function h({className:a,...b}){return(0,d.jsx)(e.uB,{"data-slot":"command",className:(0,g.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...b})}function i({className:a,...b}){return(0,d.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,d.jsx)(f.A,{className:"size-4 shrink-0 opacity-50"}),(0,d.jsx)(e.uB.Input,{"data-slot":"command-input",className:(0,g.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...b})]})}function j({className:a,...b}){return(0,d.jsx)(e.uB.List,{"data-slot":"command-list",className:(0,g.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",a),...b})}function k({...a}){return(0,d.jsx)(e.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...a})}function l({className:a,...b}){return(0,d.jsx)(e.uB.Group,{"data-slot":"command-group",className:(0,g.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...b})}function m({className:a,...b}){return(0,d.jsx)(e.uB.Item,{"data-slot":"command-item",className:(0,g.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...b})}},11225:(a,b,c)=>{c.d(b,{C:()=>i,z:()=>h});var d=c(10837);c(21968);var e=c(90856),f=c(28121),g=c(96307);function h({className:a,...b}){return(0,d.jsx)(f.Root,{"data-slot":"radio-group",className:(0,g.cn)("grid gap-3",a),...b})}function i({className:a,...b}){return(0,d.jsx)(f.Item,{"data-slot":"radio-group-item",className:(0,g.cn)("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(f.Indicator,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:(0,d.jsx)(e.A,{className:"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})})})}},19093:(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)("003c13cd364f44bcc2a2a37e25d3585f4e90f821b2",s.callServer,void 0,s.findSourceMapURL,"getProjectsAndGroupsAction");s.callServer,s.findSourceMapURL;let u=(0,s.createServerReference)("607d2b7a6d75ffa185acec5138986d06e30a6d9c19",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")})]})]})})}},20170:(a,b,c)=>{c.d(b,{T:()=>f});var d=c(10837);c(21968);var e=c(96307);function f({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,e.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),...b})}},22110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{em:()=>n,yu:()=>o,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.A.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.A.error({err:a},"Failed to submit elaboration answers"),{success:!1,error:a instanceof Error?a.message:"Failed to submit answers"}}}async function o(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.A.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]),(0,e.A)(m,"408601058044febf68e8336e07ed5085f28c4d4eae",null),(0,e.A)(n,"701c6cc943504a7de9e8eef50d2493072ed3eb0380",null),(0,e.A)(o,"60c43a9f2b19ee7b3969eed5e9b23569c77064677e",null),d()}catch(a){d(a)}})},23157:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ax:()=>o,M$:()=>p,UD:()=>r,ZL:()=>q,qN:()=>n});var e=c(2613);c(50785);var f=c(5562),g=c(9259),h=c(61212),i=c(28774),j=c(67738),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.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,j.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 k.A.error({err:a},"Failed to claim idea"),{success:!1,error:"Failed to claim idea"}}}async function o(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:"agent",assigneeUuid:b,assignedByUuid:c.actorUuid}),await (0,j.createActivity)({companyUuid:c.companyUuid,projectUuid:d.projectUuid,targetType:"idea",targetUuid:a,actorType:"user",actorUuid:c.actorUuid,action:"assigned",value:{assigneeType:"agent",assigneeUuid:b}}),(0,f.revalidatePath)(`/projects/${d.projectUuid}/ideas/${a}`),(0,f.revalidatePath)(`/projects/${d.projectUuid}/ideas`),{success:!0}}catch(a){return k.A.error({err:a},"Failed to claim idea to agent"),{success:!1,error:"Failed to claim idea"}}}async function p(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 k.A.error({err:a},"Failed to claim idea to user"),{success:!1,error:"Failed to claim idea"}}}async function q(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 k.A.error({err:a},"Failed to release idea"),{success:!1,error:"Failed to release idea"}}}async function r(){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 k.A.error({err:a},"Failed to get assignable agents"),{agents:[],users:[]}}}[g,h,i,j]=m.then?(await m)():m,(0,l.D)([n,o,p,q,r]),(0,e.A)(n,"407ffac12f593d62998dda19ad905f6958683c105c",null),(0,e.A)(o,"6087f3e9888300b773d5b392ae84a724defbca763c",null),(0,e.A)(p,"602f13cc95042682d5cf10c3387439a4d8c9e9323f",null),(0,e.A)(q,"401da80330372c6f48bb98b62ef3e13f5e2a56707e",null),(0,e.A)(r,"008f20a9405b38193432bd623a732a03d1573f9915",null),d()}catch(a){d(a)}})},23733:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Rm:()=>i,Y_:()=>j,t8:()=>k});var e=c(71255),f=c(62729),g=c(85806),h=a([e,g]);async function i({companyUuid:a,ideaUuid:b,roundUuid:c,actorUuid:d,actorType:h,answers:i}){let j=await e.z.elaborationRound.findFirst({where:{uuid:c,ideaUuid:b,companyUuid:a},include:{questions:!0}});if(!j)throw Error("Elaboration round not found");if("pending_answers"!==j.status)throw Error(`Round is '${j.status}', expected 'pending_answers'`);let k=new Date;for(let a of i){let b=j.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:k,answeredByType:h,answeredByUuid:d}})}(await e.z.elaborationQuestion.findMany({where:{roundUuid:c}})).filter(a=>a.required).every(a=>null!==a.answeredAt)&&(await e.z.elaborationRound.update({where:{uuid:c},data:{status:"answered"}}),await e.z.idea.update({where:{uuid:b},data:{elaborationStatus:"validating"}}));let m=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a}});await g.f0.createActivity({companyUuid:a,projectUuid:m.projectUuid,targetType:"idea",targetUuid:b,actorType:h,actorUuid:d,action:"elaboration_answered",value:{roundNumber:j.roundNumber,answeredCount:i.length}}),f.B.emitChange({companyUuid:a,projectUuid:m.projectUuid,entityType:"idea",entityUuid:b,action:"updated"});let n=await e.z.elaborationRound.findUnique({where:{uuid:c},include:{questions:!0}});return l(n)}async function j({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(i.assigneeUuid!==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 k({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=>"validated"===a.status),i=d.find(a=>"pending_answers"===a.status);return{ideaUuid:b,depth:c.elaborationDepth,status:c.elaborationStatus,rounds:d.map(l),summary:{totalQuestions:f.length,answeredQuestions:g.length,validatedRounds:h.length,pendingRound:i?.roundNumber||null}}}function l(a){return{uuid:a.uuid,roundNumber:a.roundNumber,status:a.status,createdBy:{type:a.createdByType,uuid:a.createdByUuid},validatedAt:a.validatedAt?.toISOString()||null,createdAt:a.createdAt.toISOString(),questions:a.questions.map(m)}}function m(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}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},26078:(a,b,c)=>{c.d(b,{RU:()=>h,s8:()=>g});let d={developer_agent:["idea:read","proposal:read","document:read","project:read","task:read","task:write"],pm_agent:["idea:read","idea:write","proposal:read","proposal:write","document:read","document:write","task:read","task:write","project:read","project:write"],admin_agent:["idea:read","idea:write","idea:admin","proposal:read","proposal:write","proposal:admin","document:read","document:write","document:admin","task:read","task:write","task:admin","project:read","project:write","project:admin"]},e=["read","write","admin"],f=new Set(["idea","proposal","document","task","project"].flatMap(a=>e.map(b=>`${a}:${b}`)));function g(a){return f.has(a)}function h(a,b){let c=new Set;if(a)for(let b of a){let a=d[b.endsWith("_agent")?b:`${b}_agent`];if(a)for(let b of a)c.add(b)}if(b)for(let a of b)g(a)&&c.add(a);return c}},28774:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A8:()=>q,CG:()=>o,Iq:()=>n,RB:()=>l,Sn:()=>i,d5:()=>m,ic:()=>p,tN:()=>k,x4:()=>j});var e=c(71255),f=c(77219),g=c(26078),h=a([e,f]);async function i({companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,permissions:h}){return e.z.agent.create({data:{companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,...void 0!==h&&{permissions:h}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,createdAt:!0}})}async function j(a,b,c){if(c&&!await e.z.agent.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0}}))throw Error("Agent not found");return e.z.agent.update({where:{uuid:a},data:b,select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,lastActiveAt:!0,createdAt:!0}})}async function k(a,b){return e.z.apiKey.updateMany({where:{agentUuid:a,revokedAt:null},data:{name:b}})}async function l(a){return e.z.agent.delete({where:{uuid:a}})}async function m(a,b,c,d){let f={companyUuid:a,revokedAt:null,...d&&{agent:{ownerUuid:d}}},[g,h]=await Promise.all([e.z.apiKey.findMany({where:f,skip:b,take:c,orderBy:{createdAt:"desc"},include:{agent:{select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0}}}}),e.z.apiKey.count({where:f})]);return{apiKeys:g,total:h}}async function n({companyUuid:a,agentUuid:b,name:c,expiresAt:d}){let{key:g,hash:h,prefix:i}=(0,f.XH)();return{...await e.z.apiKey.create({data:{companyUuid:a,agentUuid:b,keyHash:h,keyPrefix:i,name:c,expiresAt:d},select:{uuid:!0,keyPrefix:!0,name:!0,expiresAt:!0,createdAt:!0}}),key:g}}async function o(a,b,c){return e.z.apiKey.findFirst({where:{uuid:b,companyUuid:a,...c&&{agent:{ownerUuid:c}}},select:{uuid:!0,agentUuid:!0,revokedAt:!0}})}async function p(a,b,c){return(await e.z.agent.findMany({where:{companyUuid:a,...c&&{ownerUuid:c}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,ownerUuid:!0},orderBy:{name:"asc"}})).filter(a=>(0,g.RU)(a.roles,a.permissions).has(b)).map(({uuid:a,name:b,roles:c,ownerUuid:d})=>({uuid:a,name:b,roles:c,ownerUuid:d}))}async function q(a){return e.z.user.findMany({where:{companyUuid:a},select:{uuid:!0,name:!0,email:!0},orderBy:{name:"asc"}})}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},28976:(a,b,c)=>{c.d(b,{hD:()=>e}),c(33513);let d={BAD_REQUEST:"BAD_REQUEST",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",NOT_FOUND:"NOT_FOUND",CONFLICT:"CONFLICT",VALIDATION_ERROR:"VALIDATION_ERROR",ALREADY_CLAIMED:"ALREADY_CLAIMED",NOT_CLAIMED:"NOT_CLAIMED",INVALID_STATUS_TRANSITION:"INVALID_STATUS_TRANSITION",PERMISSION_DENIED:"PERMISSION_DENIED",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR"};d.BAD_REQUEST,d.UNAUTHORIZED,d.FORBIDDEN,d.NOT_FOUND,d.CONFLICT,d.VALIDATION_ERROR,d.ALREADY_CLAIMED,d.NOT_CLAIMED,d.INVALID_STATUS_TRANSITION,d.PERMISSION_DENIED,d.INTERNAL_ERROR,d.DATABASE_ERROR,c(97307),new(c(16698)).AsyncLocalStorage;class e extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}},30259:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(71255),e=c(61212),f=a([d,e]);[d,e]=f.then?(await f)():f,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.A.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});return(0,f.revalidatePath)(`/projects/${a.projectUuid}/ideas`),{success:!0,idea:c}}catch(a){return k.A.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.A.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.A.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,"40d8931a3475dbbcf7539393182192df2d87fd982d",null),(0,e.A)(o,"40a8dc731d4afcd4711ee4de5c14c357fc1b4639ca",null),(0,e.A)(p,"602780675b59205b3bd93dcfa5af4464fd9081c679",null),(0,e.A)(q,"4087e40dae1269b2ba2a062b4df8bea0c9964d2c3d",null),d()}catch(a){d(a)}})},33808:(a,b,c)=>{c.d(b,{Z:()=>e});var d=c(42377);let e=(0,d.createServerReference)("602780675b59205b3bd93dcfa5af4464fd9081c679",d.callServer,void 0,d.findSourceMapURL,"deleteIdeaAction")},51381:(a,b,c)=>{c.d(b,{z:()=>e});var d=c(42377);let e=(0,d.createServerReference)("408601058044febf68e8336e07ed5085f28c4d4eae",d.callServer,void 0,d.findSourceMapURL,"getElaborationAction")},53870:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cs:()=>m,NH:()=>n,Nn:()=>r,lU:()=>q,ui:()=>o,yZ:()=>l});var e=c(71255),f=c(92633),g=c(62729),h=c(67738),i=c(97307),j=a([e,f,h]);[e,f,h]=j.then?(await j)():j;let s=i.A.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(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 m(a,b){return e.z.document.findFirst({where:{uuid:b,companyUuid:a}})}async function n(a){return e.z.document.findFirst({where:{uuid:a}})}async function o(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 p(a,b.uuid),k(b,!0)}async function p(a,b){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"document",entityUuid:b,action:"created",actorUuid:a.createdByUuid})}catch(c){s.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){s.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){s.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){s.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to record report_created Activity")}}}async function q(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 r(a){return e.z.document.delete({where:{uuid:a}})}d()}catch(a){d(a)}})},57644:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Qd:()=>r,U$:()=>w,UN:()=>u,co:()=>v,cq:()=>q,d1:()=>t,nR:()=>s,s$:()=>x,zS:()=>y});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.A.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){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.A.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]),(0,e.A)(q,"408d014f9a96037a922b7e6bf7e3cf1e0e28a96577",null),(0,e.A)(r,"40106e9c885a122b86951906d0e2409f8e4a62031b",null),(0,e.A)(s,"607d2b7a6d75ffa185acec5138986d06e30a6d9c19",null),(0,e.A)(t,"609677c522ef267457b4e8c544c35b1f88e290ff09",null),(0,e.A)(u,"6069d5893c952546dbbe150e494d758fde93dbba08",null),(0,e.A)(v,"6050dd308d7c75c1229578f89c56198c125fd45636",null),(0,e.A)(w,"6013cbc19aa3119a1c2af52cfdd66bdda2781c7891",null),(0,e.A)(x,"003c13cd364f44bcc2a2a37e25d3585f4e90f821b2",null),(0,e.A)(y,"401f6f6cb27a3ada1b9f397af1c4c7b946e70e09fe",null),d()}catch(a){d(a)}})},61212:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BB:()=>q,JF:()=>v,MY:()=>t,Nm:()=>z,Xo:()=>w,Zl:()=>C,bY:()=>A,h_:()=>x,i1:()=>u,jJ:()=>B});var e=c(71255),f=c(92633),g=c(62729);c(5134);var h=c(28976),i=c(34923),j=c(67738),k=c(53870),l=c(97879),m=c(97307),n=a([e,f,i,j,k,l]);function o(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}}async function p(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:o(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 q({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,assignedToMe:g,actorUuid:h,actorType:i}){let j={projectUuid:b,companyUuid:a,...f&&{status:f}};g&&h&&i&&(j.assigneeUuid=h,j.assigneeType=i);let[k,l]=await Promise.all([e.z.idea.findMany({where:j,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,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:j})]),m=await Promise.all(k.map(p));if(m.length>0){let c=await r(a,b,m.map(a=>a.uuid));for(let a of m)a.reportCount=c.get(a.uuid)??0}return{ideas:m,total:l}}[e,f,i,j,k,l]=n.then?(await n)():n;let D=["approved","closed"];async function r(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:[...D]},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 s(a,b){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});if(!c)return null;let d=await p(c),f=(await l.fS(a,c.projectUuid,b)).filter(a=>D.includes(a.status));return 0===f.length?d.reports=[]:d.reports=await k.yZ(a,f.map(a=>a.uuid),"report"),d}async function t(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function u(a){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},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"created"}),p(b)}async function v(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}}}});return g.B.emitChange({companyUuid:h.companyUuid,projectUuid:h.project.uuid,entityType:"idea",entityUuid:h.uuid,action:"updated"}),void 0!==c.content&&d&&c.content&&y(h.companyUuid,h.project.uuid,h.uuid,h.title,f,c.content,d.actorType,d.actorUuid).catch(a=>m.A.error({err:a},"Failed to process idea mentions")),p(h)}async function w({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f}){let h=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!h)throw Error("Idea not found");let i=o(h.status);if("elaborated"===i)throw Error("Cannot assign an elaborated Idea");let j="open"===h.status?"elaborating":h.status,k=await e.z.idea.update({where:{uuid:a},data:{status:j,assigneeType:c,assigneeUuid:d,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:k.companyUuid,projectUuid:k.project.uuid,entityType:"idea",entityUuid:k.uuid,action:"updated"}),p(k)}async function x(a){let b=await e.z.idea.findUnique({where:{uuid:a}});if(!b)throw Error("Idea not found");let c=o(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"}),p(d)}async function y(a,b,c,d,e,f,g,h){let k=e?i.Xs(e):[],l=i.Xs(f),m=new Set(k.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 i.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 j.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 z(a){let b=await e.z.idea.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"deleted"}),b}async function A(a,b,c,d,f="user"){let i=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});if(!i)throw new h.hD("NOT_FOUND","Idea not found",404);let k=await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0,name:!0}});if(!k)throw new h.hD("NOT_FOUND","Target project not found",404);if(i.projectUuid===c)throw new h.hD("BAD_REQUEST","Idea is already in the target project",400);let l=i.projectUuid,m=await e.z.$transaction(async d=>{let e=(await d.proposal.findMany({where:{companyUuid:a,inputType:"idea",inputUuids:{array_contains:[b]}},select:{uuid:!0}})).map(a=>a.uuid);await d.idea.update({where:{uuid:b},data:{projectUuid:c}});let f=0,g=0,h=0,i=[],j=[];if(e.length>0){let[b,k]=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}})]);i=b.map(a=>a.uuid),j=k.map(a=>a.uuid),f=(await d.proposal.updateMany({where:{companyUuid:a,uuid:{in:e}},data:{projectUuid:c}})).count,g=(await d.document.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count,h=(await d.task.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count}let k=await d.activity.updateMany({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:b},{targetType:"proposal",targetUuid:{in:e}},{targetType:"task",targetUuid:{in:j}},{targetType:"document",targetUuid:{in:i}}]},data:{projectUuid:c}});return{proposals:f,documents:g,tasks:h,activities:k.count}});await j.createActivity({companyUuid:a,projectUuid:c,targetType:"idea",targetUuid:b,actorType:f,actorUuid:d,action:"moved",value:{fromProjectUuid:l,fromProjectName:i.project.name,toProjectUuid:c,toProjectName:k.name,moved:m}}),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 n=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return{...await p(n),moved:m}}async function B(a,b,c){let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0,projectUuid:!0}});if(!d)throw new h.hD("NOT_FOUND","Idea not found",404);if(!await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}))throw new h.hD("NOT_FOUND","Target project not found",404);if(d.projectUuid===c)throw new h.hD("BAD_REQUEST","Idea is already in the target project",400);let f=(await e.z.proposal.findMany({where:{companyUuid:a,inputType:"idea",inputUuids:{array_contains:[b]}},select:{uuid:!0}})).map(a=>a.uuid),g=0,i=0,j=[],k=[];if(f.length>0){let[b,c]=await Promise.all([e.z.document.findMany({where:{companyUuid:a,proposalUuid:{in:f}},select:{uuid:!0}}),e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:f}},select:{uuid:!0}})]);j=b.map(a=>a.uuid),k=c.map(a=>a.uuid),g=j.length,i=k.length}let l=await e.z.activity.count({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:b},{targetType:"proposal",targetUuid:{in:f}},{targetType:"task",targetUuid:{in:k}},{targetType:"document",targetUuid:{in:j}}]}});return{moved:{proposals:f.length,documents:g,tasks:i,activities:l}}}async function C(a,b){let c=await s(a,b);if(!c)return null;let d=await e.z.proposal.findMany({where:{companyUuid:a,projectUuid:c.project?.uuid,status:{in:["approved","pending"]},inputUuids:{array_contains:[b]}},select:{uuid:!0,status:!0,createdAt:!0},orderBy:{createdAt:"desc"}}),f=d.find(a=>"approved"===a.status)??null,g=[];f&&(g=(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:f.uuid},select:{status:!0}})).map(a=>a.status));let h=function(a){switch(o(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"}}}({ideaStatus:c.status,elaborationStatus:c.elaborationStatus,hasPendingProposal:d.some(a=>"pending"===a.status),hasApprovedProposal:!!f,taskStatuses:g});return{...c,...h}}d()}catch(a){d(a)}})},70409:(a,b,c)=>{c.d(b,{i:()=>u});var d=c(10837),e=c(21968),f=c(1007),g=c(9222),h=c(10694),i=c(86460),j=c(16235),k=c(97443),l=c(42424),m=c(2852),n=c(11225),o=c(55732),p=c(42377);p.callServer,p.findSourceMapURL;let q=(0,p.createServerReference)("407ffac12f593d62998dda19ad905f6958683c105c",p.callServer,void 0,p.findSourceMapURL,"claimIdeaAction"),r=(0,p.createServerReference)("6087f3e9888300b773d5b392ae84a724defbca763c",p.callServer,void 0,p.findSourceMapURL,"claimIdeaToAgentAction"),s=(0,p.createServerReference)("602f13cc95042682d5cf10c3387439a4d8c9e9323f",p.callServer,void 0,p.findSourceMapURL,"claimIdeaToUserAction"),t=(0,p.createServerReference)("401da80330372c6f48bb98b62ef3e13f5e2a56707e",p.callServer,void 0,p.findSourceMapURL,"releaseIdeaAction");function u({idea:a,projectUuid:b,currentUserUuid:c,onClose:p}){let u=(0,g.c)(),v=(0,f.useRouter)(),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)("self"),[A,B]=(0,e.useState)(""),[C,D]=(0,e.useState)(""),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)([]),[I,J]=(0,e.useState)(!0),K=!!a.assignee,L=async()=>{let b;if(x(!0),"self"===y)b=await q(a.uuid);else if("agent"===y&&A)b=await r(a.uuid,A);else if("user"===y&&C)b=await s(a.uuid,C);else{if("release"!==y)return void x(!1);b=await t(a.uuid)}x(!1),b?.success&&(v.refresh(),p())},M="self"===y||"agent"===y&&A||"user"===y&&C||"release"===y&&K;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/40",onClick:p}),(0,d.jsxs)("div",{className:"fixed left-1/2 top-1/2 z-50 w-[400px] -translate-x-1/2 -translate-y-1/2 rounded-2xl bg-white shadow-xl border border-[#E5E0D8]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-[#E5E0D8] px-6 py-5",children:[(0,d.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:u("ideas.assignIdea")}),(0,d.jsx)("button",{onClick:p,className:"text-[#9A9A9A] hover:text-[#6B6B6B] transition-colors",children:(0,d.jsx)(h.A,{className:"h-5 w-5"})})]}),(0,d.jsxs)("div",{className:"p-6 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})]}),K&&(0,d.jsx)("div",{className:"rounded-lg bg-[#E3F2FD] p-3",children:(0,d.jsxs)("p",{className:"text-xs text-[#1976D2]",children:[u("common.currentAssignee"),": ",(0,d.jsx)("span",{className:"font-medium",children:a.assignee?.name})]})}),(0,d.jsx)("p",{className:"text-[13px] text-[#6B6B6B]",children:u("ideas.selectIdeaAssignee")}),I?(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(i.A,{className:"h-6 w-6 animate-spin text-[#9A9A9A]"})}):(0,d.jsxs)(n.z,{value:y,onValueChange:a=>z(a),className:"space-y-3",children:[(0,d.jsxs)("div",{className:`rounded-[10px] p-4 transition-colors cursor-pointer ${"self"===y?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8] hover:border-[#C67A52]/50"}`,onClick:()=>z("self"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(n.C,{value:"self",id:"idea-self",className:"border-[#C67A52] text-[#C67A52]"}),(0,d.jsx)(m.J,{htmlFor:"idea-self",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:u("assign.assignToMyself")})]}),(0,d.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:u("ideas.assignToMyselfIdeaDesc")})]}),(0,d.jsxs)("div",{className:`rounded-[10px] p-4 transition-colors ${"agent"===y?"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:()=>z("agent"),children:[(0,d.jsx)(n.C,{value:"agent",id:"idea-agent",className:"border-[#C67A52] text-[#C67A52]"}),(0,d.jsx)(m.J,{htmlFor:"idea-agent",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:u("ideas.orAssignToPmAgent")})]}),(0,d.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:u("ideas.onlySelectedPmAgentCanWork")}),"agent"===y&&(0,d.jsx)("div",{className:"mt-3 ml-6",children:(0,d.jsxs)(o.l6,{value:A,onValueChange:B,children:[(0,d.jsx)(o.bq,{className:"w-full border-[#E5E0D8]",children:(0,d.jsx)(o.yv,{placeholder:u("ideas.selectPmAgent")})}),(0,d.jsx)(o.gC,{children:E.length>0?E.map(a=>(0,d.jsx)(o.eb,{value:a.uuid,children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(j.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:u("ideas.noPmAgentsAvailable")})})]})})]}),(0,d.jsxs)("div",{className:`rounded-[10px] p-4 transition-colors ${"user"===y?"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:()=>z("user"),children:[(0,d.jsx)(n.C,{value:"user",id:"idea-user",className:"border-[#C67A52] text-[#C67A52]"}),(0,d.jsx)(m.J,{htmlFor:"idea-user",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:u("assign.orAssignToUser")})]}),"user"===y&&(0,d.jsx)("div",{className:"mt-3 ml-6",children:(0,d.jsxs)(o.l6,{value:C,onValueChange:D,children:[(0,d.jsx)(o.bq,{className:"w-full border-[#E5E0D8]",children:(0,d.jsx)(o.yv,{placeholder:u("tasks.selectUser")})}),(0,d.jsx)(o.gC,{children:G.length>0?G.map(a=>(0,d.jsx)(o.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:u("tasks.noUsersAvailable")})})]})})]}),K&&(0,d.jsxs)("div",{className:`rounded-[10px] p-4 transition-colors cursor-pointer ${"release"===y?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8] hover:border-[#C67A52]/50"}`,onClick:()=>z("release"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(n.C,{value:"release",id:"idea-release",className:"border-[#C67A52] text-[#C67A52]"}),(0,d.jsx)(m.J,{htmlFor:"idea-release",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:u("assign.releaseAssignee")})]}),(0,d.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:u("ideas.releaseIdeaAssigneeDesc")})]})]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-end gap-4 rounded-b-2xl bg-white px-6 py-6 border-t border-[#E5E0D8]",children:[(0,d.jsx)(l.$,{variant:"outline",onClick:p,disabled:w,className:"border-[#E5E0D8]",children:u("common.cancel")}),(0,d.jsx)(l.$,{onClick:L,disabled:w||!M,className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:w?(0,d.jsx)(i.A,{className:"h-4 w-4 animate-spin"}):u("release"===y?"common.release":"common.assign")})]})]})]})}},76803:(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)("701c6cc943504a7de9e8eef50d2493072ed3eb0380",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})}),!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")})]})]})}},77219:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{XH:()=>h});var e=c(55511),f=c(71255);c(97307);var g=a([f]);f=(g.then?(await g)():g)[0];let i="cho_";function h(){var a;let b=(0,e.randomBytes)(32).toString("base64url"),c=`${i}${b}`,d=(a=c,(0,e.createHash)("sha256").update(a).digest("hex")),f=`${i}${b.slice(0,4)}...${b.slice(-4)}`;return{key:c,hash:d,prefix:f}}d()}catch(a){d(a)}})},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.A.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,"40b87c9088e53f05d128cb7aea80d80fd4a1a91c9e",null),d()}catch(a){d(a)}})},82658:(a,b,c)=>{c.d(b,{Ke:()=>i,Nt:()=>g,R6:()=>h});var d=c(10837),e=c(70952),f=c(96307);function g({...a}){return(0,d.jsx)(e.Root,{"data-slot":"collapsible",...a})}function h({...a}){return(0,d.jsx)(e.Trigger,{"data-slot":"collapsible-trigger",...a})}function i({className:a,...b}){return(0,d.jsx)(e.Content,{"data-slot":"collapsible-content",className:(0,f.cn)("overflow-hidden data-[state=open]:animate-[collapsible-down_250ms_ease-in-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-in-out]",a),...b})}},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)}})},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)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=6643,exports.ids=[6643],exports.modules={27473:(a,b,c)=>{c.d(b,{hD:()=>h,OG:()=>k,YB:()=>m,mA:()=>l,FB:()=>j});var d=c(70936),e=c(7046),f=c(65582);let g=new(c(16698)).AsyncLocalStorage;class h extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}let i={P2002:"Unique constraint violation",P2025:"Record not found",P2003:"Foreign key constraint violation"};function j(a){return async(b,c)=>{let j=crypto.randomUUID(),k=(0,f.q)({requestId:j});return g.run({requestId:j,logger:k},async()=>{try{return await a(b,c)}catch(a){if((g.getStore()?.logger??f.A).error({err:a},"API error"),a instanceof h)return d.NextResponse.json({success:!1,error:{code:a.code,message:a.message,details:a.details}},{status:a.status});if(a&&"object"==typeof a&&"code"in a){let b=i[a.code];if(b){if("P2025"===a.code)return e.sO.notFound();if("P2002"===a.code)return e.sO.conflict(b);return e.sO.database(b)}}if(a instanceof Error)return e.sO.internal("Internal server error");return e.sO.internal()}})}}async function k(a){try{return await a.json()}catch{throw new h("BAD_REQUEST","Invalid JSON body",400)}}function l(a){let b=new URL(a.url),c={};return b.searchParams.forEach((a,b)=>{c[b]=a}),c}function m(a){let b=l(a),c=Math.max(1,parseInt(b.page||"1",10)),d=Math.min(100,Math.max(1,parseInt(b.pageSize||"20",10)));return{page:c,pageSize:d,skip:(c-1)*d,take:d}}},66643:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BB:()=>q,JF:()=>u,MY:()=>s,Nm:()=>y,Q7:()=>r,XB:()=>D,bO:()=>o,bY:()=>z,h_:()=>w,i1:()=>t,jJ:()=>A,w9:()=>v,xo:()=>B});var e=c(52618),f=c(76872),g=c(42558),h=c(48873),i=c(27473),j=c(90494),k=c(88437),l=c(65582),m=a([e,f,j,k]);[e,f,j,k]=m.then?(await m)():m;let E={open:["elaborating"],elaborating:["elaborated"],elaborated:[]};function n(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 o(a,b){return(E[n(a)]||[]).includes(b)}async function p(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:n(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 q({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,assignedToMe:g,actorUuid:h,actorType:i}){let j={projectUuid:b,companyUuid:a,...f&&{status:f}};g&&h&&i&&(j.assigneeUuid=h,j.assigneeType=i);let[k,l]=await Promise.all([e.z.idea.findMany({where:j,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,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:j})]);return{ideas:await Promise.all(k.map(p)),total:l}}async function r(a,b){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return c?p(c):null}async function s(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function t(a){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},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"created"}),p(b)}async function u(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}}}});return g.B.emitChange({companyUuid:h.companyUuid,projectUuid:h.project.uuid,entityType:"idea",entityUuid:h.uuid,action:"updated"}),void 0!==c.content&&d&&c.content&&x(h.companyUuid,h.project.uuid,h.uuid,h.title,f,c.content,d.actorType,d.actorUuid).catch(a=>l.A.error({err:a},"Failed to process idea mentions")),p(h)}async function v({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f}){let i=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!i||i.assigneeUuid)throw new h.Yy("Idea");let j=n(i.status);if("elaborated"===j)throw Error("Cannot claim an elaborated Idea");let k=await e.z.idea.update({where:{uuid:a},data:{status:"elaborating",assigneeType:c,assigneeUuid:d,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:k.companyUuid,projectUuid:k.project.uuid,entityType:"idea",entityUuid:k.uuid,action:"updated"}),p(k)}async function w(a){let b=await e.z.idea.findUnique({where:{uuid:a}});if(!b)throw Error("Idea not found");let c=n(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"}),p(d)}async function x(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 y(a){let b=await e.z.idea.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"deleted"}),b}async function z(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 e.z.$transaction(async d=>{let e=(await d.proposal.findMany({where:{companyUuid:a,inputType:"idea",inputUuids:{array_contains:[b]}},select:{uuid:!0}})).map(a=>a.uuid);await d.idea.update({where:{uuid:b},data:{projectUuid:c}});let f=0,g=0,h=0,i=[],j=[];if(e.length>0){let[b,k]=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}})]);i=b.map(a=>a.uuid),j=k.map(a=>a.uuid),f=(await d.proposal.updateMany({where:{companyUuid:a,uuid:{in:e}},data:{projectUuid:c}})).count,g=(await d.document.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count,h=(await d.task.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count}let k=await d.activity.updateMany({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:b},{targetType:"proposal",targetUuid:{in:e}},{targetType:"task",targetUuid:{in:j}},{targetType:"document",targetUuid:{in:i}}]},data:{projectUuid:c}});return{proposals:f,documents:g,tasks:h,activities:k.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:m}}),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 n=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return{...await p(n),moved:m}}async function A(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 e.z.proposal.findMany({where:{companyUuid:a,inputType:"idea",inputUuids:{array_contains:[b]}},select:{uuid:!0}})).map(a=>a.uuid),g=0,h=0,j=[],k=[];if(f.length>0){let[b,c]=await Promise.all([e.z.document.findMany({where:{companyUuid:a,proposalUuid:{in:f}},select:{uuid:!0}}),e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:f}},select:{uuid:!0}})]);j=b.map(a=>a.uuid),k=c.map(a=>a.uuid),g=j.length,h=k.length}let l=await e.z.activity.count({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:b},{targetType:"proposal",targetUuid:{in:f}},{targetType:"task",targetUuid:{in:k}},{targetType:"document",targetUuid:{in:j}}]}});return{moved:{proposals:f.length,documents:g,tasks:h,activities:l}}}function B(a){switch(n(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 C(a,b){let c=await e.z.idea.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0,createdAt:!0,updatedAt:!0},orderBy:{createdAt:"desc"}}),d=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"}}),f=new Map,g=new Set,h=new Map;for(let a of d){let b=a.inputUuids;if(Array.isArray(b)){for(let c of b)if(h.set(c,(h.get(c)??0)+1),"pending"===a.status)g.add(c);else if("approved"===a.status){let b=f.get(c);(!b||a.createdAt>b.createdAt)&&f.set(c,{uuid:a.uuid,createdAt:a.createdAt})}}}let i=[...new Set([...f.values()].map(a=>a.uuid))],j=new Map;if(i.length>0)for(let b of(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:i}},select:{proposalUuid:!0,status:!0}}))){if(!b.proposalUuid)continue;let a=j.get(b.proposalUuid)||[];a.push(b.status),j.set(b.proposalUuid,a)}return c.map(a=>{let c=f.get(a.uuid),d=c&&j.get(c.uuid)||[],{derivedStatus:e,badgeHint:i}=B({ideaStatus:a.status,elaborationStatus:a.elaborationStatus,hasPendingProposal:g.has(a.uuid),hasApprovedProposal:!!c,taskStatuses:d});return{uuid:a.uuid,title:a.title,status:a.status,derivedStatus:e,badgeHint:i,createdAt:a.createdAt,updatedAt:a.updatedAt,projectUuid:b,proposalCount:h.get(a.uuid)??0,taskCount:d.length}})}let F=["todo","in_progress","human_conduct_required","done"];async function D(a,b){let c=await C(a,b),d={},e={};for(let a of F)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()};d[b]&&(d[b].push(c),e[b]++)}return{groups:d,counts:e}}d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=6643,exports.ids=[6643],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.A.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)}})},27473:(a,b,c)=>{c.d(b,{hD:()=>h,OG:()=>k,YB:()=>m,mA:()=>l,FB:()=>j});var d=c(70936),e=c(7046),f=c(65582);let g=new(c(16698)).AsyncLocalStorage;class h extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}let i={P2002:"Unique constraint violation",P2025:"Record not found",P2003:"Foreign key constraint violation"};function j(a){return async(b,c)=>{let j=crypto.randomUUID(),k=(0,f.q)({requestId:j});return g.run({requestId:j,logger:k},async()=>{try{return await a(b,c)}catch(a){if((g.getStore()?.logger??f.A).error({err:a},"API error"),a instanceof h)return d.NextResponse.json({success:!1,error:{code:a.code,message:a.message,details:a.details}},{status:a.status});if(a&&"object"==typeof a&&"code"in a){let b=i[a.code];if(b){if("P2025"===a.code)return e.sO.notFound();if("P2002"===a.code)return e.sO.conflict(b);return e.sO.database(b)}}if(a instanceof Error)return e.sO.internal("Internal server error");return e.sO.internal()}})}}async function k(a){try{return await a.json()}catch{throw new h("BAD_REQUEST","Invalid JSON body",400)}}function l(a){let b=new URL(a.url),c={};return b.searchParams.forEach((a,b)=>{c[b]=a}),c}function m(a){let b=l(a),c=Math.max(1,parseInt(b.page||"1",10)),d=Math.min(100,Math.max(1,parseInt(b.pageSize||"20",10)));return{page:c,pageSize:d,skip:(c-1)*d,take:d}}},66643:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BB:()=>s,JF:()=>x,MY:()=>v,Nm:()=>B,Q7:()=>u,XB:()=>G,bO:()=>q,bY:()=>C,h_:()=>z,i1:()=>w,jJ:()=>D,w9:()=>y,xo:()=>E});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 H={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(H[p(a)]||[]).includes(b)}async function r(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 s({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,assignedToMe:g,actorUuid:h,actorType:i}){let j={projectUuid:b,companyUuid:a,...f&&{status:f}};g&&h&&i&&(j.assigneeUuid=h,j.assigneeType=i);let[k,l]=await Promise.all([e.z.idea.findMany({where:j,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,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:j})]),m=await Promise.all(k.map(r));if(m.length>0){let c=await t(a,b,m.map(a=>a.uuid));for(let a of m)a.reportCount=c.get(a.uuid)??0}return{ideas:m,total:l}}let I=["approved","closed"];async function t(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:[...I]},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 u(a,b){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});if(!c)return null;let d=await r(c),f=(await m.fS(a,c.projectUuid,b)).filter(a=>I.includes(a.status));return 0===f.length?d.reports=[]:d.reports=await l.yZ(a,f.map(a=>a.uuid),"report"),d}async function v(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function w(a){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},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"created"}),r(b)}async function x(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}}}});return g.B.emitChange({companyUuid:h.companyUuid,projectUuid:h.project.uuid,entityType:"idea",entityUuid:h.uuid,action:"updated"}),void 0!==c.content&&d&&c.content&&A(h.companyUuid,h.project.uuid,h.uuid,h.title,f,c.content,d.actorType,d.actorUuid).catch(a=>n.A.error({err:a},"Failed to process idea mentions")),r(h)}async function y({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f}){let i=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!i||i.assigneeUuid)throw new h.Yy("Idea");let j=p(i.status);if("elaborated"===j)throw Error("Cannot claim an elaborated Idea");let k=await e.z.idea.update({where:{uuid:a},data:{status:"elaborating",assigneeType:c,assigneeUuid:d,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:k.companyUuid,projectUuid:k.project.uuid,entityType:"idea",entityUuid:k.uuid,action:"updated"}),r(k)}async function z(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"}),r(d)}async function A(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 B(a){let b=await e.z.idea.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"deleted"}),b}async function C(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 e.z.$transaction(async d=>{let e=(await d.proposal.findMany({where:{companyUuid:a,inputType:"idea",inputUuids:{array_contains:[b]}},select:{uuid:!0}})).map(a=>a.uuid);await d.idea.update({where:{uuid:b},data:{projectUuid:c}});let f=0,g=0,h=0,i=[],j=[];if(e.length>0){let[b,k]=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}})]);i=b.map(a=>a.uuid),j=k.map(a=>a.uuid),f=(await d.proposal.updateMany({where:{companyUuid:a,uuid:{in:e}},data:{projectUuid:c}})).count,g=(await d.document.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count,h=(await d.task.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count}let k=await d.activity.updateMany({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:b},{targetType:"proposal",targetUuid:{in:e}},{targetType:"task",targetUuid:{in:j}},{targetType:"document",targetUuid:{in:i}}]},data:{projectUuid:c}});return{proposals:f,documents:g,tasks:h,activities:k.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:m}}),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 n=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return{...await r(n),moved:m}}async function D(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 e.z.proposal.findMany({where:{companyUuid:a,inputType:"idea",inputUuids:{array_contains:[b]}},select:{uuid:!0}})).map(a=>a.uuid),g=0,h=0,j=[],k=[];if(f.length>0){let[b,c]=await Promise.all([e.z.document.findMany({where:{companyUuid:a,proposalUuid:{in:f}},select:{uuid:!0}}),e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:f}},select:{uuid:!0}})]);j=b.map(a=>a.uuid),k=c.map(a=>a.uuid),g=j.length,h=k.length}let l=await e.z.activity.count({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:b},{targetType:"proposal",targetUuid:{in:f}},{targetType:"task",targetUuid:{in:k}},{targetType:"document",targetUuid:{in:j}}]}});return{moved:{proposals:f.length,documents:g,tasks:h,activities:l}}}function E(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 F(a,b){let c=await e.z.idea.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0,createdAt:!0,updatedAt:!0},orderBy:{createdAt:"desc"}}),d=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"}}),f=new Map,g=new Set,h=new Map;for(let a of d){let b=a.inputUuids;if(Array.isArray(b)){for(let c of b)if(h.set(c,(h.get(c)??0)+1),"pending"===a.status)g.add(c);else if("approved"===a.status){let b=f.get(c);(!b||a.createdAt>b.createdAt)&&f.set(c,{uuid:a.uuid,createdAt:a.createdAt})}}}let i=[...new Set([...f.values()].map(a=>a.uuid))],j=new Map;if(i.length>0)for(let b of(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:i}},select:{proposalUuid:!0,status:!0}}))){if(!b.proposalUuid)continue;let a=j.get(b.proposalUuid)||[];a.push(b.status),j.set(b.proposalUuid,a)}return c.map(a=>{let c=f.get(a.uuid),d=c&&j.get(c.uuid)||[],{derivedStatus:e,badgeHint:i}=E({ideaStatus:a.status,elaborationStatus:a.elaborationStatus,hasPendingProposal:g.has(a.uuid),hasApprovedProposal:!!c,taskStatuses:d});return{uuid:a.uuid,title:a.title,status:a.status,derivedStatus:e,badgeHint:i,createdAt:a.createdAt,updatedAt:a.updatedAt,projectUuid:b,proposalCount:h.get(a.uuid)??0,taskCount:d.length}})}let J=["todo","in_progress","human_conduct_required","done"];async function G(a,b){let c=await F(a,b),d={},e={};for(let a of J)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()};d[b]&&(d[b].push(c),e[b]++)}return{groups:d,counts:e}}d()}catch(a){d(a)}})}};