@chorus-aidlc/chorus 0.6.7 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/.next/standalone/.env +2 -1
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-build-manifest.json +398 -379
  4. package/.next/standalone/.next/app-path-routes-manifest.json +42 -40
  5. package/.next/standalone/.next/build-manifest.json +5 -5
  6. package/.next/standalone/.next/prerender-manifest.json +59 -35
  7. package/.next/standalone/.next/react-loadable-manifest.json +2 -2
  8. package/.next/standalone/.next/routes-manifest.json +6 -0
  9. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  46. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
  49. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  52. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  56. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  57. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  60. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  61. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  63. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  64. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/admin.html +1 -1
  66. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  67. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js +1 -1
  68. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/admin/companies/route.js +1 -1
  70. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  74. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  77. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/auth/company-oidc/route.js +1 -0
  83. package/.next/standalone/.next/server/app/api/auth/company-oidc/route.js.nft.json +1 -0
  84. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -0
  85. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/auth/identify/route.js +1 -1
  87. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  100. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  102. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  104. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  106. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/mcp/route.js +6 -6
  108. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.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.js +1 -1
  120. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  122. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  124. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  126. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  128. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  130. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  134. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  138. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  140. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  142. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  144. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  146. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  148. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  150. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  152. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  154. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  158. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  160. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  164. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  166. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  168. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  170. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  172. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  174. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/index.html +1 -1
  176. package/.next/standalone/.next/server/app/index.rsc +2 -2
  177. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  179. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  180. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  182. package/.next/standalone/.next/server/app/login/callback.rsc +3 -3
  183. package/.next/standalone/.next/server/app/login/page.js +1 -1
  184. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/login/pick-workspace/page.js +2 -0
  186. package/.next/standalone/.next/server/app/login/pick-workspace/page.js.nft.json +1 -0
  187. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -0
  188. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -0
  189. package/.next/standalone/.next/server/app/login/pick-workspace.meta +7 -0
  190. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +24 -0
  191. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  193. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +2 -2
  194. package/.next/standalone/.next/server/app/login.html +1 -1
  195. package/.next/standalone/.next/server/app/login.rsc +3 -3
  196. package/.next/standalone/.next/server/app/onboarding/page.js +5 -4
  197. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  200. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  201. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/projects.html +1 -1
  203. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  204. package/.next/standalone/.next/server/app/settings.html +1 -1
  205. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  206. package/.next/standalone/.next/server/app-paths-manifest.json +42 -40
  207. package/.next/standalone/.next/server/chunks/1596.js +1 -1
  208. package/.next/standalone/.next/server/chunks/1639.js +1 -0
  209. package/.next/standalone/.next/server/chunks/1871.js +1 -0
  210. package/.next/standalone/.next/server/chunks/2570.js +1 -1
  211. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  212. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  213. package/.next/standalone/.next/server/chunks/{3408.js → 3300.js} +1 -1
  214. package/.next/standalone/.next/server/chunks/3611.js +158 -0
  215. package/.next/standalone/.next/server/chunks/3890.js +1 -1
  216. package/.next/standalone/.next/server/chunks/5300.js +1 -1
  217. package/.next/standalone/.next/server/chunks/5869.js +16 -0
  218. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  219. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  220. package/.next/standalone/.next/server/chunks/6753.js +3 -3
  221. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  222. package/.next/standalone/.next/server/chunks/8251.js +1 -0
  223. package/.next/standalone/.next/server/chunks/8584.js +1 -0
  224. package/.next/standalone/.next/server/chunks/9051.js +1 -0
  225. package/.next/standalone/.next/server/chunks/920.js +1 -1
  226. package/.next/standalone/.next/server/chunks/937.js +1 -1
  227. package/.next/standalone/.next/server/chunks/9508.js +2 -2
  228. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  229. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  230. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  231. package/.next/standalone/.next/server/pages/404.html +1 -1
  232. package/.next/standalone/.next/server/pages/500.html +1 -1
  233. package/.next/standalone/.next/server/pages-manifest.json +1 -1
  234. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  236. package/.next/standalone/.next/static/CQcM9hNpa5m8P_K5qveuk/_buildManifest.js +1 -0
  237. package/.next/standalone/.next/static/chunks/10739-5c185aa0432f5d56.js +1 -0
  238. package/.next/standalone/.next/static/chunks/{14945-45ab8dcd7d1460b0.js → 14945-0bc0086add441ba7.js} +1 -1
  239. package/.next/standalone/.next/static/chunks/19126-858a24cab6fd338a.js +1 -0
  240. package/.next/standalone/.next/static/chunks/21932-bce5ba937d1603e1.js +1 -0
  241. package/.next/standalone/.next/static/chunks/29445-04c4ab36da85b7da.js +1 -0
  242. package/.next/standalone/.next/static/chunks/34775-387b9a9967a35ccb.js +1 -0
  243. package/.next/standalone/.next/static/chunks/39611-cc227784ed679a6d.js +1 -0
  244. package/.next/standalone/.next/static/chunks/4457-b86052b2e954e357.js +1 -0
  245. package/.next/standalone/.next/static/chunks/4842-95cf4b7efd540e89.js +1 -0
  246. package/.next/standalone/.next/static/chunks/4860.d626399834b496e5.js +1 -0
  247. package/.next/standalone/.next/static/chunks/53298-82b9c818cd70686d.js +1 -0
  248. package/.next/standalone/.next/static/chunks/{72156-693a7612a0a1927c.js → 53664-a2be2eaacce03f0f.js} +1 -1
  249. package/.next/standalone/.next/static/chunks/55434-622522b242e7747f.js +1 -0
  250. package/.next/standalone/.next/static/chunks/95750-3d0d1d48995d1088.js +1 -0
  251. package/.next/standalone/.next/static/chunks/96919-8cbf6310c703e7af.js +1 -0
  252. package/.next/standalone/.next/static/chunks/{52162.90c7520be06645a7.js → 96924.93f7dab7363f09ac.js} +1 -1
  253. package/.next/standalone/.next/static/chunks/{99373.5b5e7a2cd5147b83.js → 99373.aedaca88297c6d8b.js} +1 -1
  254. package/.next/standalone/.next/static/chunks/99513-24849ff68a8098e1.js +1 -0
  255. package/.next/standalone/.next/static/chunks/app/(dashboard)/{layout-45973b20578f2dd7.js → layout-acddb9c84f5d1607.js} +1 -1
  256. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-63a6a5b6cf9ecf87.js +1 -0
  257. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-e81d22f021f61318.js +1 -0
  258. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-b4c6141dd26cc506.js +1 -0
  259. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-4bf7bff8d68509f9.js +1 -0
  260. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-37a0cea0ba40c31b.js +1 -0
  261. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page-2d820769aa7bcaf6.js +1 -0
  262. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/page-dec0e71221d77928.js +1 -0
  263. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-355321010dd82e56.js +1 -0
  264. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-59f6f1967c3dfcad.js → page-bc66567cb9c40bf0.js} +1 -1
  265. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-a4995a788651e9bc.js → page-86cfeb421fa97830.js} +1 -1
  266. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-7fe70579023330da.js +1 -0
  267. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-8c51993bb3866a55.js +1 -0
  268. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-7c30b3f9f2b8f520.js → page-80566dcc1cd42bee.js} +1 -1
  269. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-8db25385236a9bbf.js +1 -0
  270. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-e81d22f021f61318.js +1 -0
  271. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-e81d22f021f61318.js +1 -0
  272. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-e81d22f021f61318.js +1 -0
  273. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-e81d22f021f61318.js +1 -0
  274. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-e81d22f021f61318.js +1 -0
  275. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-e81d22f021f61318.js +1 -0
  276. package/.next/standalone/.next/static/chunks/app/api/agents/route-e81d22f021f61318.js +1 -0
  277. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-e81d22f021f61318.js +1 -0
  278. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-e81d22f021f61318.js +1 -0
  279. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-e81d22f021f61318.js +1 -0
  280. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-e81d22f021f61318.js +1 -0
  281. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-e81d22f021f61318.js +1 -0
  282. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-e81d22f021f61318.js +1 -0
  283. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-e81d22f021f61318.js +1 -0
  284. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-e81d22f021f61318.js +1 -0
  285. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-e81d22f021f61318.js +1 -0
  286. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-e81d22f021f61318.js +1 -0
  287. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-e81d22f021f61318.js +1 -0
  288. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-e81d22f021f61318.js +1 -0
  289. package/.next/standalone/.next/static/chunks/app/api/comments/route-e81d22f021f61318.js +1 -0
  290. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-e81d22f021f61318.js +1 -0
  291. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-e81d22f021f61318.js +1 -0
  292. package/.next/standalone/.next/static/chunks/app/api/events/route-e81d22f021f61318.js +1 -0
  293. package/.next/standalone/.next/static/chunks/app/api/health/route-e81d22f021f61318.js +1 -0
  294. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-e81d22f021f61318.js +1 -0
  295. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-e81d22f021f61318.js +1 -0
  296. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-e81d22f021f61318.js +1 -0
  297. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-e81d22f021f61318.js +1 -0
  298. package/.next/standalone/.next/static/chunks/app/api/mcp/route-e81d22f021f61318.js +1 -0
  299. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-e81d22f021f61318.js +1 -0
  300. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-e81d22f021f61318.js +1 -0
  301. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-e81d22f021f61318.js +1 -0
  302. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-e81d22f021f61318.js +1 -0
  303. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-e81d22f021f61318.js +1 -0
  304. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-e81d22f021f61318.js +1 -0
  305. package/.next/standalone/.next/static/chunks/app/api/notifications/route-e81d22f021f61318.js +1 -0
  306. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-e81d22f021f61318.js +1 -0
  307. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-e81d22f021f61318.js +1 -0
  308. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-e81d22f021f61318.js +1 -0
  309. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-e81d22f021f61318.js +1 -0
  310. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-e81d22f021f61318.js +1 -0
  311. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-e81d22f021f61318.js +1 -0
  312. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-e81d22f021f61318.js +1 -0
  313. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-e81d22f021f61318.js +1 -0
  314. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-e81d22f021f61318.js +1 -0
  315. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-e81d22f021f61318.js +1 -0
  316. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-e81d22f021f61318.js +1 -0
  317. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-e81d22f021f61318.js +1 -0
  318. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-e81d22f021f61318.js +1 -0
  319. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-e81d22f021f61318.js +1 -0
  320. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-e81d22f021f61318.js +1 -0
  321. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-e81d22f021f61318.js +1 -0
  322. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-e81d22f021f61318.js +1 -0
  323. package/.next/standalone/.next/static/chunks/app/api/projects/route-e81d22f021f61318.js +1 -0
  324. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-e81d22f021f61318.js +1 -0
  325. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-e81d22f021f61318.js +1 -0
  326. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-e81d22f021f61318.js +1 -0
  327. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-e81d22f021f61318.js +1 -0
  328. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-e81d22f021f61318.js +1 -0
  329. package/.next/standalone/.next/static/chunks/app/api/search/route-e81d22f021f61318.js +1 -0
  330. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-e81d22f021f61318.js +1 -0
  331. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-e81d22f021f61318.js +1 -0
  332. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-e81d22f021f61318.js +1 -0
  333. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-e81d22f021f61318.js +1 -0
  334. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-e81d22f021f61318.js +1 -0
  335. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-e81d22f021f61318.js +1 -0
  336. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-e81d22f021f61318.js +1 -0
  337. package/.next/standalone/.next/static/chunks/app/login/callback/{page-e756563d2407e942.js → page-48a34c31a0f8e58c.js} +1 -1
  338. package/.next/standalone/.next/static/chunks/app/login/page-dcb689dfe6e69879.js +1 -0
  339. package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-ee9bda8bfc4e0697.js +1 -0
  340. package/.next/standalone/.next/static/chunks/app/onboarding/page-e9409a2935c3c480.js +1 -0
  341. package/.next/standalone/.next/static/chunks/{webpack-17a45e2f5f3cd686.js → webpack-da41e6b9f3fe2f48.js} +1 -1
  342. package/.next/standalone/.next/static/css/ca9796ac54f96058.css +1 -0
  343. package/.next/standalone/package.json +7 -1
  344. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  345. package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +5 -2
  346. package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +5 -2
  347. package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +11 -4
  348. package/.next/standalone/public/chorus-plugin/bin/on-subagent-start.sh +1 -1
  349. package/.next/standalone/public/chorus-plugin/bin/on-subagent-stop.sh +5 -5
  350. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +43 -18
  351. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +3 -1
  352. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  353. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +2 -2
  354. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +3 -3
  355. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +4 -3
  356. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +19 -18
  357. package/.next/standalone/public/install-codex.sh +304 -0
  358. package/.next/standalone/public/skill/chorus/SKILL.md +44 -19
  359. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +2 -2
  360. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +3 -3
  361. package/.next/standalone/public/test-install-codex.sh +165 -0
  362. package/README.md +11 -38
  363. package/README.zh.md +11 -38
  364. package/package.json +7 -1
  365. package/prisma/migrations/20260430034110_add_agent_permissions/migration.sql +2 -0
  366. package/prisma/schema.prisma +1 -0
  367. package/.next/standalone/.next/server/chunks/1386.js +0 -1
  368. package/.next/standalone/.next/server/chunks/1526.js +0 -1
  369. package/.next/standalone/.next/server/chunks/3088.js +0 -1
  370. package/.next/standalone/.next/server/chunks/4152.js +0 -1
  371. package/.next/standalone/.next/server/chunks/4772.js +0 -158
  372. package/.next/standalone/.next/server/chunks/8104.js +0 -16
  373. package/.next/standalone/.next/server/chunks/9408.js +0 -1
  374. package/.next/standalone/.next/static/chunks/10739-f8a95983c740edff.js +0 -1
  375. package/.next/standalone/.next/static/chunks/19126-ce11a472a7b46715.js +0 -1
  376. package/.next/standalone/.next/static/chunks/192-2fe41d1be4cf52c7.js +0 -1
  377. package/.next/standalone/.next/static/chunks/36940-1a052dcfd7a51c42.js +0 -1
  378. package/.next/standalone/.next/static/chunks/4860.e2abb2e82b6cc9b4.js +0 -1
  379. package/.next/standalone/.next/static/chunks/53011-6c6e5c3c761b4229.js +0 -1
  380. package/.next/standalone/.next/static/chunks/55203-e226f28d874a003b.js +0 -1
  381. package/.next/standalone/.next/static/chunks/58245-b2ea112ace9624d2.js +0 -1
  382. package/.next/standalone/.next/static/chunks/59703-726546958cd4cf44.js +0 -1
  383. package/.next/standalone/.next/static/chunks/62326-65d43abf563d7ce2.js +0 -1
  384. package/.next/standalone/.next/static/chunks/67312-2b0c88796d8a1f83.js +0 -1
  385. package/.next/standalone/.next/static/chunks/71350-88c2649fc693c1e8.js +0 -1
  386. package/.next/standalone/.next/static/chunks/89310-e7dd1f2b9518aeb2.js +0 -1
  387. package/.next/standalone/.next/static/chunks/96924-847b528f7abad0e5.js +0 -1
  388. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-78f88c60bbff6c0f.js +0 -1
  389. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-0e35b9b3fc9b614e.js +0 -1
  390. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-61ad25356f1bcf61.js +0 -1
  391. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-cfd59c5238497200.js +0 -1
  392. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-9d721a820e1058b5.js +0 -1
  393. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page-9199629492f0d6cc.js +0 -1
  394. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/page-164acb03167c8257.js +0 -1
  395. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-642981c5c760bfef.js +0 -1
  396. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-38e4430e5591fbff.js +0 -1
  397. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-cb3978ef57e7197a.js +0 -1
  398. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-94169bdcca8cb817.js +0 -1
  399. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  400. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-0e35b9b3fc9b614e.js +0 -1
  401. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-0e35b9b3fc9b614e.js +0 -1
  402. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-0e35b9b3fc9b614e.js +0 -1
  403. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  404. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-0e35b9b3fc9b614e.js +0 -1
  405. package/.next/standalone/.next/static/chunks/app/api/agents/route-0e35b9b3fc9b614e.js +0 -1
  406. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  407. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-0e35b9b3fc9b614e.js +0 -1
  408. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-0e35b9b3fc9b614e.js +0 -1
  409. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-0e35b9b3fc9b614e.js +0 -1
  410. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-0e35b9b3fc9b614e.js +0 -1
  411. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-0e35b9b3fc9b614e.js +0 -1
  412. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-0e35b9b3fc9b614e.js +0 -1
  413. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-0e35b9b3fc9b614e.js +0 -1
  414. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-0e35b9b3fc9b614e.js +0 -1
  415. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-0e35b9b3fc9b614e.js +0 -1
  416. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-0e35b9b3fc9b614e.js +0 -1
  417. package/.next/standalone/.next/static/chunks/app/api/comments/route-0e35b9b3fc9b614e.js +0 -1
  418. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  419. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-0e35b9b3fc9b614e.js +0 -1
  420. package/.next/standalone/.next/static/chunks/app/api/events/route-0e35b9b3fc9b614e.js +0 -1
  421. package/.next/standalone/.next/static/chunks/app/api/health/route-0e35b9b3fc9b614e.js +0 -1
  422. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-0e35b9b3fc9b614e.js +0 -1
  423. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-0e35b9b3fc9b614e.js +0 -1
  424. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-0e35b9b3fc9b614e.js +0 -1
  425. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  426. package/.next/standalone/.next/static/chunks/app/api/mcp/route-0e35b9b3fc9b614e.js +0 -1
  427. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-0e35b9b3fc9b614e.js +0 -1
  428. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-0e35b9b3fc9b614e.js +0 -1
  429. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-0e35b9b3fc9b614e.js +0 -1
  430. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-0e35b9b3fc9b614e.js +0 -1
  431. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-0e35b9b3fc9b614e.js +0 -1
  432. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-0e35b9b3fc9b614e.js +0 -1
  433. package/.next/standalone/.next/static/chunks/app/api/notifications/route-0e35b9b3fc9b614e.js +0 -1
  434. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-0e35b9b3fc9b614e.js +0 -1
  435. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-0e35b9b3fc9b614e.js +0 -1
  436. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  437. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-0e35b9b3fc9b614e.js +0 -1
  438. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-0e35b9b3fc9b614e.js +0 -1
  439. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-0e35b9b3fc9b614e.js +0 -1
  440. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-0e35b9b3fc9b614e.js +0 -1
  441. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-0e35b9b3fc9b614e.js +0 -1
  442. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-0e35b9b3fc9b614e.js +0 -1
  443. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-0e35b9b3fc9b614e.js +0 -1
  444. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-0e35b9b3fc9b614e.js +0 -1
  445. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-0e35b9b3fc9b614e.js +0 -1
  446. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-0e35b9b3fc9b614e.js +0 -1
  447. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  448. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-0e35b9b3fc9b614e.js +0 -1
  449. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-0e35b9b3fc9b614e.js +0 -1
  450. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-0e35b9b3fc9b614e.js +0 -1
  451. package/.next/standalone/.next/static/chunks/app/api/projects/route-0e35b9b3fc9b614e.js +0 -1
  452. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-0e35b9b3fc9b614e.js +0 -1
  453. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-0e35b9b3fc9b614e.js +0 -1
  454. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-0e35b9b3fc9b614e.js +0 -1
  455. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-0e35b9b3fc9b614e.js +0 -1
  456. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  457. package/.next/standalone/.next/static/chunks/app/api/search/route-0e35b9b3fc9b614e.js +0 -1
  458. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  459. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-0e35b9b3fc9b614e.js +0 -1
  460. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-0e35b9b3fc9b614e.js +0 -1
  461. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-0e35b9b3fc9b614e.js +0 -1
  462. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-0e35b9b3fc9b614e.js +0 -1
  463. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-0e35b9b3fc9b614e.js +0 -1
  464. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-0e35b9b3fc9b614e.js +0 -1
  465. package/.next/standalone/.next/static/chunks/app/login/page-d7e41e281967f94d.js +0 -1
  466. package/.next/standalone/.next/static/chunks/app/onboarding/page-834ecbaf55d82ba5.js +0 -1
  467. package/.next/standalone/.next/static/css/99c7a0c50ad6bd32.css +0 -1
  468. package/.next/standalone/.next/static/kc2HwRxZUiMeDzrPiJW6z/_buildManifest.js +0 -1
  469. /package/.next/standalone/.next/static/{kc2HwRxZUiMeDzrPiJW6z → CQcM9hNpa5m8P_K5qveuk}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ exports.id=1871,exports.ids=[1871],exports.modules={466:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Hu:()=>o,Yt:()=>n,eT:()=>m,fg:()=>l,uA:()=>r});var e=c(71255),f=c(92633),g=c(34923),h=c(67738),i=c(62729),j=c(97307),k=a([e,f,g,h]);async function l({companyUuid:a,targetType:b,targetUuid:c,skip:d,take:g}){if(!await (0,f._9)(b,c,a))return{comments:[],total:0};let h={companyUuid:a,targetType:b,targetUuid:c},[i,j]=await Promise.all([e.z.comment.findMany({where:h,skip:d,take:g,orderBy:{createdAt:"asc"},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.comment.count({where:h})]);return{comments:await Promise.all(i.map(async a=>{let b=await (0,f.lR)(a.authorType,a.authorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,content:a.content,author:{type:a.authorType,uuid:a.authorUuid,name:b??"Unknown"},createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}})),total:j}}async function m({companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h}){if(!await (0,f._9)(b,c,a))throw Error(`Target ${b} with UUID ${c} not found`);let k=await e.z.comment.create({data:{companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),l=await (0,f.lR)(k.authorType,k.authorUuid);return o(b,c).then(d=>{d&&i.B.emitChange({companyUuid:a,projectUuid:d,entityType:b,entityUuid:c,action:"updated",actorUuid:h})}).catch(()=>{}),q(a,b,c,k.uuid,d,g,h).catch(a=>j.A.error({err:a},"Failed to process comment mentions")),{uuid:k.uuid,targetType:k.targetType,targetUuid:k.targetUuid,content:k.content,author:{type:k.authorType,uuid:k.authorUuid,name:l??"Unknown"},createdAt:k.createdAt.toISOString(),updatedAt:k.updatedAt.toISOString()}}async function n(a){let b=[...new Set(a.filter(a=>"agent"===a.author.type).map(a=>a.author.uuid))];if(0===b.length)return a.map(a=>({...a,author:{...a.author}}));let c=await e.z.agent.findMany({where:{uuid:{in:b}},select:{uuid:!0,ownerUuid:!0}}),d=new Map,f=[];for(let a of c)a.ownerUuid&&(d.set(a.uuid,a.ownerUuid),f.push(a.ownerUuid));let g=new Map;if(f.length>0)for(let a of(await e.z.user.findMany({where:{uuid:{in:[...new Set(f)]}},select:{uuid:!0,name:!0,email:!0}})))g.set(a.uuid,a.name||a.email||"Unknown");return a.map(a=>{let b={...a.author};if("agent"===a.author.type){let c=d.get(a.author.uuid);if(c){let a=g.get(c);a&&(b.owner={uuid:c,name:a})}}return{...a,author:b}})}async function o(a,b,c){let d=c?{companyUuid:c}:{};switch(a){case"task":{let a=await e.z.task.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"idea":{let a=await e.z.idea.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"proposal":{let a=await e.z.proposal.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"document":{let a=await e.z.document.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}default:return null}}async function p(a,b){switch(a){case"task":{let a=await e.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await e.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await e.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await e.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function q(a,b,c,d,e,f,i){let j=g.Xs(e);if(0===j.length)return;let k=await o(b,c);if(!k)return;let l=await p(b,c);for(let m of(await g.AM({companyUuid:a,sourceType:"comment",sourceUuid:d,content:e,actorType:f,actorUuid:i,projectUuid:k,entityTitle:l}),j))(m.type!==f||m.uuid!==i)&&await h.createActivity({companyUuid:a,projectUuid:k,targetType:b,targetUuid:c,actorType:f,actorUuid:i,action:"mentioned",value:{mentionedType:m.type,mentionedUuid:m.uuid,mentionedName:m.displayName,sourceType:"comment",sourceUuid:d}})}async function r(a,b,c){if(0===c.length)return{};let d=await e.z.comment.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:b,targetUuid:{in:c}},_count:{targetUuid:!0}}),f={};for(let a of c)f[a]=0;for(let a of d)f[a.targetUuid]=a._count.targetUuid;return f}[e,f,g,h]=k.then?(await k)():k,d()}catch(a){d(a)}})},2978:(a,b,c)=>{Promise.resolve().then(c.bind(c,69187))},5134:(a,b,c)=>{"use strict";c.d(b,{Ik:()=>f,Yy:()=>d,nm:()=>e});class d extends Error{constructor(a){super(`${a} is already claimed`),this.name="AlreadyClaimedError"}}class e extends Error{constructor(a){super(`${a} is not currently claimed`),this.name="NotClaimedError"}}function f(a){return"object"==typeof a&&null!==a&&"code"in a&&"P2025"===a.code}},9259:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{d:()=>i});var e=c(41290),f=c(86963),g=c(79793),h=a([f]);async function i(){let a=await (0,e.UL)(),b=a.get("oidc_access_token")?.value;if(b)return(0,f.Q)(b);let c=a.get("user_session")?.value;if(c){let a=await (0,g.$Y)(c);if(a)return{type:"user",companyUuid:a.companyUuid,actorUuid:a.userUuid,email:a.email,name:a.name}}return null}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},9994:(a,b,c)=>{"use strict";c.d(b,{p:()=>f});var d=c(10837);c(21968);var e=c(96307);function f({className:a,type:b,...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:(0,e.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","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",a),...c})}},18151:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,29723,23)),Promise.resolve().then(c.t.bind(c,31706,23)),Promise.resolve().then(c.t.bind(c,75324,23)),Promise.resolve().then(c.t.bind(c,20227,23)),Promise.resolve().then(c.t.bind(c,2931,23)),Promise.resolve().then(c.t.bind(c,17531,23)),Promise.resolve().then(c.t.bind(c,69357,23)),Promise.resolve().then(c.t.bind(c,69442,23)),Promise.resolve().then(c.t.bind(c,99875,23))},18421:(a,b,c)=>{var d={"./en.json":[50920,920],"./zh.json":[86113,6113]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=18421,a.exports=e},21130:(a,b,c)=>{Promise.resolve().then(c.bind(c,58857))},30457:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{OU:()=>l,UL:()=>o,Vu:()=>k,Xo:()=>j,aQ:()=>m,y_:()=>n});var e=c(71255),f=c(62729),g=c(50530),h=a([e,g]);function i(a){return{uuid:a.uuid,agentUuid:a.agentUuid,name:a.name,description:a.description,status:a.status,lastActiveAt:a.lastActiveAt.toISOString(),expiresAt:a.expiresAt?.toISOString()??null,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString(),checkins:(a.taskCheckins||[]).map(a=>({taskUuid:a.taskUuid,checkinAt:a.checkinAt.toISOString(),checkoutAt:a.checkoutAt?.toISOString()??null}))}}async function j(a,b,c){return(await e.z.agentSession.findMany({where:{companyUuid:a,agentUuid:b,...c&&{status:c}},include:{taskCheckins:{where:{checkoutAt:null},select:{taskUuid:!0,checkinAt:!0,checkoutAt:!0}}},orderBy:{createdAt:"desc"}})).map(i)}async function k(a,b){let c=await e.z.agentSession.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Session not found");let d=await e.z.sessionTaskCheckin.findMany({where:{sessionUuid:b,checkoutAt:null},select:{task:{select:{uuid:!0,projectUuid:!0}}}});await e.z.sessionTaskCheckin.updateMany({where:{sessionUuid:b,checkoutAt:null},data:{checkoutAt:new Date}});let g=await e.z.agentSession.update({where:{uuid:b},data:{status:"closed"},include:{taskCheckins:{select:{taskUuid:!0,checkinAt:!0,checkoutAt:!0}}}});for(let a of d)f.B.emitChange({companyUuid:c.companyUuid,projectUuid:a.task.projectUuid,entityType:"task",entityUuid:a.task.uuid,action:"updated"});return i(g)}async function l(a,b){return(await e.z.sessionTaskCheckin.findMany({where:{taskUuid:b,checkoutAt:null,session:{companyUuid:a,status:{in:["active","inactive"]}}},include:{session:{select:{uuid:!0,name:!0,agentUuid:!0,agent:{select:{name:!0}}}}}})).map(a=>({sessionUuid:a.session.uuid,sessionName:a.session.name,agentUuid:a.session.agentUuid,agentName:a.session.agent.name,checkinAt:a.checkinAt.toISOString()}))}async function m(a,b){let c=await e.z.agentSession.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Session not found");if("closed"!==c.status)throw Error("Only closed sessions can be reopened");let d=await e.z.agentSession.update({where:{uuid:b},data:{status:"active",lastActiveAt:new Date},include:{taskCheckins:{where:{checkoutAt:null},select:{taskUuid:!0,checkinAt:!0,checkoutAt:!0}}}});return i(d)}async function n(a,b){if(0===b.length)return{};let c=await e.z.sessionTaskCheckin.groupBy({by:["taskUuid"],where:{taskUuid:{in:b},checkoutAt:null,session:{companyUuid:a,status:{in:["active","inactive"]}}},_count:{taskUuid:!0}}),d={};for(let a of c)d[a.taskUuid]=a._count.taskUuid;return d}async function o(a,b){let c=await e.z.sessionTaskCheckin.findMany({where:{checkoutAt:null,task:{projectUuid:b},session:{companyUuid:a,status:{in:["active","inactive"]}}},include:{session:{select:{uuid:!0,name:!0,agentUuid:!0,agent:{select:{name:!0}}}}},orderBy:{checkinAt:"asc"}}),d=new Set,f=[],g=new Set;for(let a of c)if(g.add(a.taskUuid),!d.has(a.session.uuid)&&(d.add(a.session.uuid),f.push({sessionUuid:a.session.uuid,sessionName:a.session.name,agentUuid:a.session.agentUuid,agentName:a.session.agent.name,checkinAt:a.checkinAt.toISOString()}),f.length>=7))return f;let h=await e.z.task.findMany({where:{projectUuid:b,companyUuid:a,status:"in_progress",assigneeType:"agent",assigneeUuid:{not:null},...g.size>0?{uuid:{notIn:[...g]}}:{}},select:{uuid:!0,assigneeUuid:!0,updatedAt:!0},orderBy:{updatedAt:"asc"}}),i=new Set,j=[];for(let a of h)if(!(!a.assigneeUuid||i.has(a.assigneeUuid))&&(i.add(a.assigneeUuid),j.push(a),f.length+j.length>=7))break;if(j.length>0){let a=await e.z.agent.findMany({where:{uuid:{in:j.map(a=>a.assigneeUuid)}},select:{uuid:!0,name:!0}}),b=new Map(a.map(a=>[a.uuid,a.name]));for(let a of j){let c=b.get(a.assigneeUuid);c&&f.push({sessionUuid:"",sessionName:c,agentUuid:a.assigneeUuid,agentName:c,checkinAt:a.updatedAt.toISOString()})}}return f}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},32376:()=>{},33367:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(10948);let e=async a=>[{type:"image/x-icon",sizes:"256x256",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+""}]},34923:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AM:()=>j,Xs:()=>i});var e=c(71255),f=c(92633),g=c(92592),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let l=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)/gi;function i(a){let b,c=[],d=new Set;for(l.lastIndex=0;null!==(b=l.exec(a))&&!(c.length>=10);){let a=b[1],e=b[2].toLowerCase(),f=b[3].toLowerCase(),g=`${e}:${f}`;d.has(g)||(d.add(g),c.push({type:e,uuid:f,displayName:a}))}return c}async function j(a){let{companyUuid:b,sourceType:c,sourceUuid:d,content:h,actorType:j,actorUuid:m,projectUuid:n,entityTitle:o}=a,p=i(h);if(0===p.length)return;let q=p.filter(a=>a.type!==j||a.uuid!==m);if(0===q.length)return;let r=[];for(let a of q)await k(b,a.type,a.uuid)&&r.push(a);if(0===r.length)return;await e.z.mention.createMany({data:r.map(a=>({companyUuid:b,sourceType:c,sourceUuid:d,mentionedType:a.type,mentionedUuid:a.uuid,actorType:j,actorUuid:m}))});let s=await (0,f.lR)(j,m)??"Someone",t=await e.z.project.findUnique({where:{uuid:n},select:{name:!0}}),u=t?.name??"Unknown Project",v=function(a){let b=a.replace(l,"@$1");return b.length<=120?b:b.substring(0,117)+"..."}(h),w=c,x=d;if("comment"===c){let a=await e.z.comment.findUnique({where:{uuid:d},select:{targetType:!0,targetUuid:!0}});a&&(w=a.targetType,x=a.targetUuid)}let y=[];for(let a of r){if(!(await g.lX(b,a.type,a.uuid)).mentioned)continue;let c=`${s} mentioned you: "${v}"`;y.push({companyUuid:b,projectUuid:n,recipientType:a.type,recipientUuid:a.uuid,entityType:w,entityUuid:x,entityTitle:o,projectName:u,action:"mentioned",message:c,actorType:j,actorUuid:m,actorName:s})}y.length>0&&await g.Xm(y)}async function k(a,b,c){return"user"===b?!!await e.z.user.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}):!!await e.z.agent.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}})}d()}catch(a){d(a)}})},40340:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>k,metadata:()=>j});var d=c(10023),e=c(28103),f=c.n(e),g=c(85355),h=c.n(g),i=c(69187);c(32376);let j={title:{default:"Chorus",template:"%s | Chorus"},description:"AI Agent & Human collaboration platform for the AI-Driven Development Lifecycle",openGraph:{title:"Chorus",description:"AI Agent & Human collaboration platform for the AI-Driven Development Lifecycle",type:"website",siteName:"Chorus"}};function k({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{className:`${f().variable} ${h().variable} antialiased`,children:(0,d.jsx)(i.LocaleProvider,{children:a})})})}},42424:(a,b,c)=>{"use strict";c.d(b,{$:()=>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 gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-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",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",asChild:e=!1,...i}){let j=e?f.bL:"button";return(0,d.jsx)(j,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,g.cn)(h({variant:b,size:c,className:a})),...i})}},45148:(a,b,c)=>{"use strict";c.d(b,{K5:()=>i,Rf:()=>h,Yv:()=>d,bK:()=>g,qG:()=>f,tE:()=>e});let d={fast:.15,normal:.2,slow:.3,easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1],stagger:.04,staggerFast:.03,spring:{type:"spring",stiffness:500,damping:30},tween:{type:"tween",duration:.2,ease:[0,0,.2,1]}},e={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:d.normal,ease:d.easeOut}},exit:{opacity:0,y:-4,transition:{duration:d.fast,ease:d.easeOut}}},f={initial:{opacity:0},animate:{opacity:1,transition:{duration:d.normal,ease:d.easeOut}},exit:{opacity:0,transition:{duration:d.fast,ease:d.easeOut}}};d.normal,d.easeOut,d.fast,d.easeOut;let g={initial:{},animate:{transition:{staggerChildren:d.stagger}}},h={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:d.normal,ease:d.easeOut}}},i={initial:{opacity:0,scale:.95,y:-4},animate:{opacity:1,scale:1,y:0,transition:{duration:d.fast,ease:d.easeOut}},exit:{opacity:0,scale:.95,y:-4,transition:{duration:d.fast,ease:d.easeOut}}}},48415:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,16885,23)),Promise.resolve().then(c.t.bind(c,30892,23)),Promise.resolve().then(c.t.bind(c,89410,23)),Promise.resolve().then(c.t.bind(c,99349,23)),Promise.resolve().then(c.t.bind(c,41105,23)),Promise.resolve().then(c.t.bind(c,89065,23)),Promise.resolve().then(c.t.bind(c,403,23)),Promise.resolve().then(c.t.bind(c,33532,23)),Promise.resolve().then(c.bind(c,41905))},50530:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Cm:()=>K,Ew:()=>D,Fp:()=>x,IM:()=>J,K4:()=>t,QK:()=>w,QL:()=>G,Qi:()=>B,UT:()=>u,Vk:()=>r,_T:()=>z,cn:()=>A,gg:()=>s,j9:()=>H,lC:()=>v,vQ:()=>I,vq:()=>y});var e=c(71255),f=c(92633),g=c(62729),h=c(5134),i=c(466),j=c(34923),k=c(67738),l=c(97307),m=a([e,f,i,j,k]);[e,f,i,j,k]=m.then?(await m)():m;let L={total:0,required:0,passed:0,failed:0,pending:0,requiredPassed:0,requiredFailed:0,requiredPending:0};function n(a){if(0===a.length)return{status:"not_started",summary:{...L}};let b={...L,total:a.length};for(let c of a)c.required&&b.required++,"passed"===c.status?(b.passed++,c.required&&b.requiredPassed++):"failed"===c.status?(b.failed++,c.required&&b.requiredFailed++):(b.pending++,c.required&&b.requiredPending++);return b.requiredFailed>0?{status:"failed",summary:b}:b.requiredPassed===b.required&&b.required>0?{status:"passed",summary:b}:b.passed>0||b.failed>0?{status:"in_progress",summary:b}:{status:"not_started",summary:b}}function o(a){return{uuid:a.uuid,description:a.description,required:a.required,devStatus:a.devStatus,devEvidence:a.devEvidence,devMarkedByType:a.devMarkedByType,devMarkedBy:a.devMarkedBy,devMarkedAt:a.devMarkedAt?.toISOString()??null,status:a.status,evidence:a.evidence,markedByType:a.markedByType,markedBy:a.markedBy,markedAt:a.markedAt?.toISOString()??null,sortOrder:a.sortOrder}}async function p(a,b=0){let[c,d]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid),(0,f.LS)(a.createdByUuid)]),e=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),g=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),h=(a.acceptanceCriteriaItems||[]).map(o),{status:i,summary:j}=n(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:h,acceptanceStatus:i,acceptanceSummary:j,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:e,dependedBy:g,commentCount:b,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function q(a,b){if(0===a.length)return[];let c=[],d=[];for(let b of a)b.assigneeType&&b.assigneeUuid&&c.push({type:b.assigneeType,uuid:b.assigneeUuid}),b.assignedByUuid&&c.push({type:"user",uuid:b.assignedByUuid}),d.push(b.createdByUuid);let[e,g]=await Promise.all([(0,f.Uo)(c),(0,f.Xx)(d)]);return a.map(a=>{let c=null;if(a.assigneeType&&a.assigneeUuid){let b=e.get(a.assigneeUuid);if(b){let d=null;if(a.assignedByUuid){let b=e.get(a.assignedByUuid);b&&(d={type:"user",uuid:a.assignedByUuid,name:b})}c={type:a.assigneeType,uuid:a.assigneeUuid,name:b,assignedAt:a.assignedAt?.toISOString()??null,assignedBy:d}}}let d=g.get(a.createdByUuid)??null,f=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),h=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),i=(a.acceptanceCriteriaItems||[]).map(o),{status:j,summary:k}=n(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:i,acceptanceStatus:j,acceptanceSummary:k,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:f,dependedBy:h,commentCount:b[a.uuid]??0,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}})}let M={dependsOn:{select:{dependsOn:{select:{uuid:!0,title:!0,status:!0}}}},dependedBy:{select:{task:{select:{uuid:!0,title:!0,status:!0}}}},acceptanceCriteriaItems:{orderBy:{sortOrder:"asc"}}};async function r({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,priority:g,proposalUuids:h}){let j={projectUuid:b,companyUuid:a,...f&&{status:f},...g&&{priority:g},...h&&h.length>0&&{proposalUuid:{in:h}}},[k,l]=await Promise.all([e.z.task.findMany({where:j,skip:c,take:d,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...M}}),e.z.task.count({where:j})]),m=await (0,i.uA)(a,"task",k.map(a=>a.uuid));return{tasks:await q(k,m),total:l}}async function s(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},...M}});if(!c)return null;let d=await e.z.comment.count({where:{companyUuid:a,targetType:"task",targetUuid:b}});return p(c,d)}async function t(a,b){return e.z.task.findFirst({where:{uuid:b,companyUuid:a}})}async function u(a){let b=await e.z.task.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,description:a.description,status:"open",priority:a.priority||"medium",storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"task",entityUuid:b.uuid,action:"created"}),p(b)}async function v(a,b,c){let d=null;if(void 0!==b.description&&c){let b=await e.z.task.findUnique({where:{uuid:a},select:{description:!0}});d=b?.description??null}let f=await e.z.$transaction(async c=>{if(b.status&&"done"!==b.status){let b=await c.task.findUnique({where:{uuid:a},select:{status:!0}});b?.status==="to_verify"&&await c.acceptanceCriterion.updateMany({where:{taskUuid:a},data:{status:"pending",evidence:null,markedByType:null,markedBy:null,markedAt:null,devStatus:"pending",devEvidence:null,devMarkedByType:null,devMarkedBy:null,devMarkedAt:null}})}return c.task.update({where:{uuid:a},data:b,include:{project:{select:{uuid:!0,name:!0}}}})});return g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.project.uuid,entityType:"task",entityUuid:f.uuid,action:"updated"}),void 0!==b.description&&c&&b.description&&E(f.companyUuid,f.project.uuid,"task",f.uuid,f.title,d,b.description,c.actorType,c.actorUuid).catch(a=>l.A.error({err:a},"Failed to process task mentions")),p(f)}async function w({taskUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f}){try{let b=await e.z.task.update({where:{uuid:a,status:{in:["open","assigned"]}},data:{status:"assigned",assigneeType:c,assigneeUuid:d,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.project.uuid,entityType:"task",entityUuid:b.uuid,action:"updated"}),p(b)}catch(a){if((0,h.Ik)(a))throw new h.Yy("Task");throw a}}async function x(a){try{let b=await e.z.task.update({where:{uuid:a,status:"assigned"},data:{status:"open",assigneeType:null,assigneeUuid:null,assignedAt:null,assignedByUuid:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.project.uuid,entityType:"task",entityUuid:b.uuid,action:"updated"}),p(b)}catch(a){if((0,h.Ik)(a))throw new h.nm("Task");throw a}}async function y(a){let b=await e.z.task.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.projectUuid,entityType:"task",entityUuid:b.uuid,action:"deleted"}),b}async function z(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{status:a.status,evidence:a.evidence??null,markedByType:d.type,markedBy:d.actorUuid,markedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),C(a,b)}async function A(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{devStatus:a.devStatus,devEvidence:a.devEvidence??null,devMarkedByType:d.type,devMarkedBy:d.actorUuid,devMarkedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),C(a,b)}async function B(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");if(!await e.z.acceptanceCriterion.findFirst({where:{uuid:c,taskUuid:b}}))throw Error("Criterion not found for this task");await e.z.acceptanceCriterion.update({where:{uuid:c},data:{status:"pending",evidence:null,markedByType:null,markedBy:null,markedAt:null}}),g.B.emitChange({companyUuid:a,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"})}async function C(a,b){if(!await e.z.task.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Task not found");let c=await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}}),d=c.map(o),{status:f,summary:g}=n(c);return{items:d,status:f,summary:g}}async function D(a){let b=await e.z.acceptanceCriterion.findMany({where:{taskUuid:a},orderBy:{sortOrder:"asc"}});if(0===b.length||b.filter(a=>a.required).every(a=>"passed"===a.status))return{allowed:!0};let{summary:c}=n(b),d=b.filter(a=>a.required&&"passed"!==a.status).map(o);return{allowed:!1,reason:`Not all required acceptance criteria are passed. Required: ${c.required}, Passed: ${c.requiredPassed}, Failed: ${c.requiredFailed}, Pending: ${c.requiredPending}`,summary:c,unresolvedCriteria:d}}async function E(a,b,c,d,e,f,g,h,i){let l=f?j.Xs(f):[],m=j.Xs(g),n=new Set(l.map(a=>`${a.type}:${a.uuid}`)),o=m.filter(a=>!n.has(`${a.type}:${a.uuid}`));if(0!==o.length)for(let f of(await j.AM({companyUuid:a,sourceType:c,sourceUuid:d,content:g,actorType:h,actorUuid:i,projectUuid:b,entityTitle:e}),o))(f.type!==h||f.uuid!==i)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:h,actorUuid:i,action:"mentioned",value:{mentionedType:f.type,mentionedUuid:f.uuid,mentionedName:f.displayName,sourceType:c,sourceUuid:d}})}async function F(a,b){let c=await e.z.taskDependency.findMany({select:{taskUuid:!0,dependsOnUuid:!0}}),d=new Map;for(let a of c)d.has(a.taskUuid)||d.set(a.taskUuid,[]),d.get(a.taskUuid).push(a.dependsOnUuid);let f=new Set,g=[a];for(;g.length>0;){let a=g.pop();if(a===b)return!0;if(!f.has(a))for(let b of(f.add(a),d.get(a)||[]))f.has(b)||g.push(b)}return!1}async function G(a,b,c){if(b===c)throw Error("A task cannot depend on itself");let[d,f]=await Promise.all([e.z.task.findFirst({where:{uuid:b,companyUuid:a}}),e.z.task.findFirst({where:{uuid:c,companyUuid:a}})]);if(!d)throw Error("Task not found");if(!f)throw Error("Dependency task not found");if(d.projectUuid!==f.projectUuid)throw Error("Tasks must belong to the same project");if(await F(c,b))throw Error("Adding this dependency would create a cycle");let g=await e.z.taskDependency.create({data:{taskUuid:b,dependsOnUuid:c}});return{taskUuid:g.taskUuid,dependsOnUuid:g.dependsOnUuid,createdAt:g.createdAt}}async function H(a,b,c){if(!await e.z.task.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Task not found");await e.z.taskDependency.deleteMany({where:{taskUuid:b,dependsOnUuid:c}})}async function I(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:M});if(!c)throw Error("Task not found");return{dependsOn:c.dependsOn.map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),dependedBy:c.dependedBy.map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status}))}}async function J(a){let b=await e.z.taskDependency.findMany({where:{taskUuid:a},select:{dependsOn:{select:{uuid:!0,title:!0,status:!0,assigneeType:!0,assigneeUuid:!0}}}});if(0===b.length)return{resolved:!0,blockers:[]};let c=b.filter(a=>"done"!==a.dependsOn.status&&"closed"!==a.dependsOn.status);if(0===c.length)return{resolved:!0,blockers:[]};let d=c.map(a=>a.dependsOn.uuid),[g,h]=await Promise.all([e.z.sessionTaskCheckin.findMany({where:{taskUuid:{in:d},checkoutAt:null},select:{taskUuid:!0,sessionUuid:!0,session:{select:{name:!0}}}}),(0,f.Uo)(c.filter(a=>a.dependsOn.assigneeType&&a.dependsOn.assigneeUuid).map(a=>({type:a.dependsOn.assigneeType,uuid:a.dependsOn.assigneeUuid})))]),i=new Map;for(let a of g)i.set(a.taskUuid,{sessionUuid:a.sessionUuid,sessionName:a.session.name});let j=c.map(a=>{let b=a.dependsOn,c=null;if(b.assigneeType&&b.assigneeUuid){let a=h.get(b.assigneeUuid);a&&(c={type:b.assigneeType,uuid:b.assigneeUuid,name:a})}return{uuid:b.uuid,title:b.title,status:b.status,assignee:c,sessionCheckin:i.get(b.uuid)??null}});return{resolved:!1,blockers:j}}async function K(a,b){let[c,d]=await Promise.all([e.z.task.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,priority:!0,proposalUuid:!0}}),e.z.taskDependency.findMany({where:{task:{companyUuid:a,projectUuid:b}},select:{taskUuid:!0,dependsOnUuid:!0}})]);return{nodes:c.map(a=>({uuid:a.uuid,title:a.title,status:a.status,priority:a.priority,proposalUuid:a.proposalUuid??null})),edges:d.map(a=>({from:a.taskUuid,to:a.dependsOnUuid}))}}d()}catch(a){d(a)}})},54722:(a,b,c)=>{"use strict";c.d(b,{q:()=>g});let d={debug:0,info:1,warn:2,error:3},e=process.env.NEXT_PUBLIC_LOG_LEVEL||"warn";function f(a){return d[a]>=d[e]}let g={debug:(a,...b)=>{f("debug")&&console.debug(`[Chorus] ${a}`,...b)},info:(a,...b)=>{f("info")&&console.info(`[Chorus] ${a}`,...b)},warn:(a,...b)=>{f("warn")&&console.warn(`[Chorus] ${a}`,...b)},error:(a,...b)=>{f("error")&&console.error(`[Chorus] ${a}`,...b)}}},55732:(a,b,c)=>{"use strict";c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(10837);c(21968);var e=c(21790),f=c(9810),g=c(85487),h=c(95556),i=c(96307);function j({...a}){return(0,d.jsx)(h.Root,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(h.Value,{"data-slot":"select-value",...a})}function l({className:a,size:b="default",children:c,...f}){return(0,d.jsxs)(h.Trigger,{"data-slot":"select-trigger","data-size":b,className:(0,i.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]: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 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...f,children:[c,(0,d.jsx)(h.Icon,{asChild:!0,children:(0,d.jsx)(e.A,{className:"size-4 opacity-50"})})]})}function m({className:a,children:b,position:c="item-aligned",align:e="center",...f}){return(0,d.jsx)(h.Portal,{children:(0,d.jsxs)(h.Content,{"data-slot":"select-content",className:(0,i.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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,align:e,...f,children:[(0,d.jsx)(o,{}),(0,d.jsx)(h.Viewport,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(p,{})]})})}function n({className:a,children:b,...c}){return(0,d.jsxs)(h.Item,{"data-slot":"select-item",className:(0,i.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",a),...c,children:[(0,d.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(h.ItemIndicator,{children:(0,d.jsx)(f.A,{className:"size-4"})})}),(0,d.jsx)(h.ItemText,{children:b})]})}function o({className:a,...b}){return(0,d.jsx)(h.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(g.A,{className:"size-4"})})}function p({className:a,...b}){return(0,d.jsx)(h.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(e.A,{className:"size-4"})})}},58857:(a,b,c)=>{"use strict";c.d(b,{LocaleProvider:()=>j,Y:()=>i});var d=c(10837),e=c(21968),f=c(13256),g=c(97553);c(54722);let h=(0,e.createContext)(null);function i(){let a=(0,e.useContext)(h);if(!a)throw Error("useLocale must be used within LocaleProvider");return a}function j({children:a}){let[b,c]=(0,e.useState)(g.q),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(!1),m=(0,e.useCallback)(a=>{c(a),localStorage.setItem("chorus-locale",a),document.cookie=`chorus-locale=${a};path=/;max-age=31536000;SameSite=Lax`,document.documentElement.lang=a},[]);return k&&i?(0,d.jsx)(h.Provider,{value:{locale:b,setLocale:m},children:(0,d.jsx)(f.A,{locale:b,messages:i,children:a})}):null}},62729:(a,b,c)=>{"use strict";c.d(b,{B:()=>s});var d=c(94735),e=c(55511),f=c(9686),g=c.n(f),h=c(97307);let i=h.A.child({module:"redis"}),j=function(){if(process.env.REDIS_URL)return process.env.REDIS_URL;let a=process.env.REDIS_HOST;if(!a)return;let b=process.env.REDIS_PORT||"6379",c=process.env.REDIS_USERNAME||"default",d=process.env.REDIS_PASSWORD,e="rediss";return d?`${e}://${c}:${encodeURIComponent(d)}@${a}:${b}`:`${e}://${a}:${b}`}(),k=globalThis;function l(a){let b=new(g())(j,{lazyConnect:!0,maxRetriesPerRequest:null,retryStrategy(b){let c=Math.min(200*b,5e3);return i.warn({name:a,delay:c,attempt:b},"Reconnecting"),c}});return b.on("error",b=>{i.error({name:a,err:b},"Redis error")}),b.on("connect",()=>{i.info({name:a},"Connected")}),b}function m(){return j?(k.redisPub||(k.redisPub=l("pub")),k.redisPub):null}function n(){return j?(k.redisSub||(k.redisSub=l("sub")),k.redisSub):null}let o=h.A.child({module:"event-bus"}),p="chorus:events";class q extends d.EventEmitter{static{this.THROTTLE_WINDOW_MS=2e3}static{this.EVICTION_INTERVAL_MS=3e4}static{this.EVICTION_TTL_MS=3e4}async connect(){if(this._connected||!j)return;this._connected=!0;let a=n(),b=m();a&&(await a.connect(),b&&await b.connect(),await a.subscribe(p),a.on("message",(a,b)=>{try{let a=JSON.parse(b);if(a._origin===this._instanceId)return;let c=null!==a.data&&"object"==typeof a.data?{...a.data,_remote:!0}:a.data;super.emit(a.channel,c)}catch{}}))}emit(a,...b){if("string"==typeof a&&j){let c=m();if(c&&"ready"===c.status){let d={_origin:this._instanceId,channel:a,data:b[0]};c.publish(p,JSON.stringify(d)).catch(()=>{})}}return super.emit(a,...b)}emitPresence(a){let b=`${a.agentUuid}:${a.entityType}:${a.entityUuid}${a.subEntityType?`:${a.subEntityType}`:""}${a.subEntityUuid?`:${a.subEntityUuid}`:""}`,c=Date.now(),d=this._presenceThrottle.get(b);d&&c-d<q.THROTTLE_WINDOW_MS||(this._presenceThrottle.set(b,c),this._ensureEvictionTimer(),this.emit("presence",a))}_ensureEvictionTimer(){!this._evictionTimer&&(this._evictionTimer=setInterval(()=>{let a=Date.now();for(let[b,c]of this._presenceThrottle)a-c>=q.EVICTION_TTL_MS&&this._presenceThrottle.delete(b);0===this._presenceThrottle.size&&(clearInterval(this._evictionTimer),this._evictionTimer=null)},q.EVICTION_INTERVAL_MS),this._evictionTimer&&"object"==typeof this._evictionTimer&&"unref"in this._evictionTimer&&this._evictionTimer.unref())}get _throttleMapSize(){return this._presenceThrottle.size}_resetPresenceState(){this._presenceThrottle.clear(),this._evictionTimer&&(clearInterval(this._evictionTimer),this._evictionTimer=null)}emitChange(a){this.emit("change",a)}async disconnect(){let a=m(),b=n();b&&await b.quit().catch(()=>{}),a&&await a.quit().catch(()=>{}),this._connected=!1}constructor(...a){super(...a),this._connected=!1,this._instanceId=(0,e.randomUUID)(),this._presenceThrottle=new Map,this._evictionTimer=null}}let r=globalThis,s=r.chorusEventBus??=new q;j&&s.connect().catch(a=>{o.error({err:a},"Redis connect failed, falling back to memory")})},67738:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{createActivity:()=>k,listActivities:()=>i,listActivitiesWithActorNames:()=>j});var e=c(71255),f=c(62729),g=c(92633),h=a([e,g]);async function i({companyUuid:a,projectUuid:b,skip:c,take:d,targetType:f,targetUuid:g}){let h={projectUuid:b,companyUuid:a,...f&&{targetType:f},...g&&{targetUuid:g}},[i,j]=await Promise.all([e.z.activity.findMany({where:h,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,targetType:!0,targetUuid:!0,actorType:!0,actorUuid:!0,action:!0,value:!0,sessionUuid:!0,sessionName:!0,createdAt:!0}}),e.z.activity.count({where:h})]);return{activities:i,total:j}}async function j(a){let{activities:b,total:c}=await i(a);return{activities:await Promise.all(b.map(async a=>{let b=await (0,g.lR)(a.actorType,a.actorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,action:a.action,actorType:a.actorType,actorName:b||"Unknown",value:a.value,sessionUuid:a.sessionUuid,sessionName:a.sessionName,createdAt:a.createdAt.toISOString()}})),total:c}}async function k({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l}){let m=await e.z.activity.create({data:{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j||void 0,sessionUuid:k||void 0,sessionName:l||void 0}});return f.B.emit("activity",{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l,uuid:m.uuid}),m}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},69187:(a,b,c)=>{"use strict";c.d(b,{LocaleProvider:()=>e});var d=c(37143);(0,d.registerClientReference)(function(){throw Error("Attempted to call useLocale() from the server but useLocale is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/ubuntu/dev/ai-pm/src/contexts/locale-context.tsx","useLocale");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call LocaleProvider() from the server but LocaleProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/ubuntu/dev/ai-pm/src/contexts/locale-context.tsx","LocaleProvider")},69996:(a,b,c)=>{"use strict";c.d(b,{D1:()=>d,m3:()=>k});var d={};c.r(d),c.d(d,{Fj:()=>j});var e=c(76760),f=c(73136),g=c(26849);let h={previewFeatures:[],clientVersion:"7.3.0",engineVersion:"9d6ad21cbbceab97458517b147a6a09ff43aa735",activeProvider:"postgresql",inlineSchema:'// prisma/schema.prisma\n\ngenerator client {\n provider = "prisma-client"\n output = "../src/generated/prisma"\n}\n\ndatasource db {\n provider = "postgresql"\n relationMode = "prisma" // Relations managed by Prisma, no DB-level foreign key constraints\n}\n\n// Tenant\nmodel Company {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n name String\n // Email domain matching (used to identify Company during login)\n emailDomains String[] @default([]) // e.g., ["example.com", "example.org"]\n // OIDC configuration (per-Company login, PKCE only, no Client Secret)\n oidcIssuer String? // OIDC Provider URL\n oidcClientId String? // Client ID\n oidcEnabled Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n users User[]\n agents Agent[]\n apiKeys ApiKey[]\n projects Project[]\n ideas Idea[]\n documents Document[]\n tasks Task[]\n proposals Proposal[]\n activities Activity[]\n comments Comment[]\n sessions AgentSession[]\n}\n\n// User (human, OIDC login)\nmodel User {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n oidcSub String // OIDC subject\n email String?\n name String?\n avatarUrl String?\n createdAt DateTime @default(now())\n\n ownedAgents Agent[]\n\n @@unique([companyUuid, oidcSub])\n @@index([companyUuid])\n}\n\n// Agent (e.g., Claude Code)\nmodel Agent {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n name String\n roles String[] @default(["developer"]) // pm | developer (multi-select)\n permissions String[] @default([]) // Custom permission bits (resource:action); merged with role presets at auth time\n // Agent persona definition (Zero Context Injection)\n persona String? // Custom persona description (brief)\n systemPrompt String? // Full system prompt (optional, overrides default template)\n ownerUuid String? // User\'s UUID\n owner User? @relation(fields: [ownerUuid], references: [uuid])\n lastActiveAt DateTime?\n createdAt DateTime @default(now())\n\n apiKeys ApiKey[]\n sessions AgentSession[]\n\n @@index([companyUuid])\n @@index([ownerUuid])\n}\n\n// API Key (independently managed, supports rotation and revocation)\nmodel ApiKey {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n agentUuid String // Agent\'s UUID\n agent Agent @relation(fields: [agentUuid], references: [uuid], onDelete: Cascade)\n keyHash String @unique // API Key stored as hash\n keyPrefix String // Key prefix for display (e.g., "cho_xxx...")\n name String? // Optional descriptive name\n lastUsed DateTime?\n expiresAt DateTime?\n revokedAt DateTime?\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([agentUuid])\n}\n\n// Project Group (single-level grouping of projects)\nmodel ProjectGroup {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n name String\n description String? @default("")\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n}\n\n// Project\nmodel Project {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n name String\n description String?\n groupUuid String? // nullable FK → ProjectGroup.uuid\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n ideas Idea[]\n documents Document[]\n tasks Task[]\n proposals Proposal[]\n activities Activity[]\n\n @@index([companyUuid])\n @@index([groupUuid])\n}\n\n// Idea (raw human input)\nmodel Idea {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n content String? // Text content\n attachments Json? // Attachment list [{type, url, name}]\n // Status and assignment (ARCHITECTURE.md \xa77.3)\n status String @default("open") // open | elaborating | elaborated (3-state model; post-elaboration status derived from Proposal+Task)\n assigneeType String? // user | agent\n assigneeUuid String? // User or Agent UUID (polymorphic)\n assignedAt DateTime? // Assignment timestamp\n assignedByUuid String? // User UUID (human assignment)\n // Elaboration (AI-DLC Stage 3 — structured requirements clarification)\n elaborationDepth String? // "minimal" | "standard" | "comprehensive"\n elaborationStatus String? // "pending_answers" | "validating" | "resolved"\n createdByUuid String // User UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([status])\n @@index([assigneeUuid])\n}\n\n// Document (PRD, tech design, etc. — Proposal output)\nmodel Document {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n type String // prd | tech_design | adr | ...\n title String\n content String? // Markdown content\n version Int @default(1)\n proposalUuid String? // Source Proposal UUID (traceable)\n createdByUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([proposalUuid])\n}\n\n// Task (Proposal output or manually created)\nmodel Task {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n description String?\n // Status and assignment (ARCHITECTURE.md \xa77.2)\n status String @default("open") // open | assigned | in_progress | to_verify | done | closed\n priority String @default("medium") // low | medium | high\n storyPoints Float? // Effort estimate (unit: Agent hours)\n acceptanceCriteria String? // Acceptance criteria (Markdown)\n assigneeType String? // user | agent\n assigneeUuid String? // User or Agent UUID (polymorphic)\n assignedAt DateTime? // Assignment timestamp\n assignedByUuid String? // User UUID (human assignment)\n proposalUuid String? // Source Proposal UUID (traceable, optional)\n createdByUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // Task dependencies (DAG)\n dependsOn TaskDependency[] @relation("taskDependencies")\n dependedBy TaskDependency[] @relation("taskDependedBy")\n // Session checkins\n sessionCheckins SessionTaskCheckin[]\n // Structured acceptance criteria (independent table)\n acceptanceCriteriaItems AcceptanceCriterion[]\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([proposalUuid])\n @@index([assigneeUuid])\n @@index([status])\n}\n\n// Task dependency (DAG edge)\nmodel TaskDependency {\n id Int @id @default(autoincrement())\n taskUuid String\n dependsOnUuid String\n task Task @relation("taskDependencies", fields: [taskUuid], references: [uuid], onDelete: Cascade)\n dependsOn Task @relation("taskDependedBy", fields: [dependsOnUuid], references: [uuid], onDelete: Cascade)\n createdAt DateTime @default(now())\n\n @@unique([taskUuid, dependsOnUuid])\n @@index([taskUuid])\n @@index([dependsOnUuid])\n}\n\n// Acceptance Criterion (independent table — per-row atomic updates, no concurrent write conflicts)\nmodel AcceptanceCriterion {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n taskUuid String\n task Task @relation(fields: [taskUuid], references: [uuid], onDelete: Cascade)\n description String\n required Boolean @default(true)\n // Dev self-check (developer fills during work)\n devStatus String @default("pending") // pending | passed | failed\n devEvidence String?\n devMarkedByType String? // "user" | "agent"\n devMarkedBy String? // UUID of marker\n devMarkedAt DateTime?\n // Admin verification (admin/user fills during verify)\n status String @default("pending") // pending | passed | failed\n evidence String?\n markedByType String? // "user" | "agent"\n markedBy String? // UUID of marker\n markedAt DateTime?\n sortOrder Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([taskUuid])\n}\n\n// Proposal (container model: created by Agent/human, approved by human, contains document drafts and task drafts)\nmodel Proposal {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n title String\n description String?\n\n // Input source (what the Proposal is based on)\n inputType String // idea | document\n inputUuids Json // Array of UUID strings\n\n // Container contents (can include both documents and tasks)\n documentDrafts Json? // Document draft list [{type, title, content}]\n taskDrafts Json? // Task draft list [{title, description, storyPoints, priority, acceptanceCriteria}]\n\n // Status and approval\n status String @default("draft") // draft | pending | approved | rejected | revised\n createdByUuid String // Agent or User UUID\n createdByType String @default("agent") // agent | user\n reviewedByUuid String? // User UUID\n reviewNote String? // Review note\n reviewedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([status])\n}\n\n// Comment (can comment on Idea, Proposal, Task, Document)\nmodel Comment {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n targetType String // idea | proposal | task | document\n targetUuid String // UUID of target entity (idea/proposal/task/document)\n content String\n authorType String // user | agent\n authorUuid String // User or Agent UUID\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([companyUuid])\n @@index([targetType, targetUuid])\n}\n\n// Activity stream (project-level) — generic design\nmodel Activity {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n projectUuid String\n project Project @relation(fields: [projectUuid], references: [uuid], onDelete: Cascade)\n // Target entity (generic design)\n targetType String // idea | task | proposal | document\n targetUuid String // Target entity UUID\n // Action info\n actorType String // user | agent\n actorUuid String // Actor UUID\n action String // created | assigned | released | status_changed | submitted | approved | rejected | comment_added\n value Json? // Action result value (e.g., new status, assignment target info)\n // Session attribution (denormalized to avoid joins)\n sessionUuid String?\n sessionName String?\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([projectUuid])\n @@index([targetType, targetUuid])\n @@index([createdAt])\n}\n\n// Agent Session (sub-session for swarm mode observability)\nmodel AgentSession {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n company Company @relation(fields: [companyUuid], references: [uuid])\n agentUuid String\n agent Agent @relation(fields: [agentUuid], references: [uuid], onDelete: Cascade)\n name String\n description String?\n status String @default("active") // active | inactive | closed\n lastActiveAt DateTime @default(now())\n expiresAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n taskCheckins SessionTaskCheckin[]\n\n @@index([companyUuid])\n @@index([agentUuid])\n @@index([status])\n}\n\n// Session-Task checkin relation (many-to-many)\nmodel SessionTaskCheckin {\n id Int @id @default(autoincrement())\n sessionUuid String\n session AgentSession @relation(fields: [sessionUuid], references: [uuid], onDelete: Cascade)\n taskUuid String\n task Task @relation(fields: [taskUuid], references: [uuid], onDelete: Cascade)\n checkinAt DateTime @default(now())\n checkoutAt DateTime?\n\n @@unique([sessionUuid, taskUuid])\n @@index([sessionUuid])\n @@index([taskUuid])\n}\n\n// Notification\nmodel Notification {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n projectUuid String\n // Recipient (polymorphic: user | agent)\n recipientType String // user | agent\n recipientUuid String\n // Related entity\n entityType String // task | idea | proposal | document | comment\n entityUuid String\n entityTitle String // Denormalized to avoid joins\n projectName String // Denormalized for project badge UI\n // Action info\n action String // assigned | status_changed | verified | reopened | submitted | approved | rejected | claimed | comment_added\n message String // Human-readable message\n actorType String // user | agent\n actorUuid String\n actorName String // Denormalized to avoid joins\n // Status\n readAt DateTime?\n archivedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([recipientType, recipientUuid, readAt])\n @@index([companyUuid, recipientUuid])\n @@index([entityType, entityUuid])\n @@index([projectUuid])\n}\n\n// Notification preferences\nmodel NotificationPreference {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n ownerType String // user | agent\n ownerUuid String\n // Toggle for each notification type (all enabled by default)\n taskAssigned Boolean @default(true)\n taskStatusChanged Boolean @default(true)\n taskVerified Boolean @default(true)\n taskReopened Boolean @default(true)\n proposalSubmitted Boolean @default(true)\n proposalApproved Boolean @default(true)\n proposalRejected Boolean @default(true)\n ideaClaimed Boolean @default(true)\n commentAdded Boolean @default(true)\n elaborationRequested Boolean @default(true)\n elaborationAnswered Boolean @default(true)\n mentioned Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([ownerType, ownerUuid])\n @@index([companyUuid])\n}\n\n// Mention (tracks @mentions in comments, tasks, ideas)\nmodel Mention {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n // Source: where the mention occurred\n sourceType String // comment | task | idea\n sourceUuid String // UUID of the comment, task, or idea\n // Target: who was mentioned\n mentionedType String // user | agent\n mentionedUuid String\n // Actor: who wrote the mention\n actorType String // user | agent\n actorUuid String\n createdAt DateTime @default(now())\n\n @@index([companyUuid])\n @@index([mentionedType, mentionedUuid])\n @@index([sourceType, sourceUuid])\n}\n\n// Elaboration Round (AI-DLC Stage 3 — structured requirements clarification)\nmodel ElaborationRound {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n ideaUuid String\n roundNumber Int\n status String @default("pending_answers") // pending_answers | answered | validated | needs_followup\n createdByType String // agent | user\n createdByUuid String\n validatedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n questions ElaborationQuestion[]\n\n @@index([ideaUuid])\n @@index([companyUuid])\n}\n\n// Elaboration Question (individual Q&A item within a round)\nmodel ElaborationQuestion {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n roundUuid String\n round ElaborationRound @relation(fields: [roundUuid], references: [uuid], onDelete: Cascade)\n questionId String // Round-scoped ID: "q1", "q2", etc.\n text String\n category String // functional | non_functional | business_context | technical_context | user_scenario | scope\n options Json // [{id, label, description?}] — 2-5 options\n required Boolean @default(true)\n // Answer (null = unanswered)\n selectedOptionId String?\n customText String?\n answeredAt DateTime?\n answeredByType String? // user | agent\n answeredByUuid String?\n // Validation issue (null = no issue)\n issueType String? // contradiction | ambiguity | incomplete\n issueDescription String?\n\n @@unique([roundUuid, questionId])\n @@index([roundUuid])\n}\n',runtimeDataModel:{models:{},enums:{},types:{}}};async function i(a){let{Buffer:b}=await Promise.resolve().then(c.t.bind(c,4573,23)),d=b.from(a,"base64");return new WebAssembly.Module(d)}h.runtimeDataModel=JSON.parse('{"models":{"Company":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"emailDomains","kind":"scalar","type":"String"},{"name":"oidcIssuer","kind":"scalar","type":"String"},{"name":"oidcClientId","kind":"scalar","type":"String"},{"name":"oidcEnabled","kind":"scalar","type":"Boolean"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"users","kind":"object","type":"User","relationName":"CompanyToUser"},{"name":"agents","kind":"object","type":"Agent","relationName":"AgentToCompany"},{"name":"apiKeys","kind":"object","type":"ApiKey","relationName":"ApiKeyToCompany"},{"name":"projects","kind":"object","type":"Project","relationName":"CompanyToProject"},{"name":"ideas","kind":"object","type":"Idea","relationName":"CompanyToIdea"},{"name":"documents","kind":"object","type":"Document","relationName":"CompanyToDocument"},{"name":"tasks","kind":"object","type":"Task","relationName":"CompanyToTask"},{"name":"proposals","kind":"object","type":"Proposal","relationName":"CompanyToProposal"},{"name":"activities","kind":"object","type":"Activity","relationName":"ActivityToCompany"},{"name":"comments","kind":"object","type":"Comment","relationName":"CommentToCompany"},{"name":"sessions","kind":"object","type":"AgentSession","relationName":"AgentSessionToCompany"}],"dbName":null},"User":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToUser"},{"name":"oidcSub","kind":"scalar","type":"String"},{"name":"email","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"avatarUrl","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"ownedAgents","kind":"object","type":"Agent","relationName":"AgentToUser"}],"dbName":null},"Agent":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"AgentToCompany"},{"name":"name","kind":"scalar","type":"String"},{"name":"roles","kind":"scalar","type":"String"},{"name":"permissions","kind":"scalar","type":"String"},{"name":"persona","kind":"scalar","type":"String"},{"name":"systemPrompt","kind":"scalar","type":"String"},{"name":"ownerUuid","kind":"scalar","type":"String"},{"name":"owner","kind":"object","type":"User","relationName":"AgentToUser"},{"name":"lastActiveAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"apiKeys","kind":"object","type":"ApiKey","relationName":"AgentToApiKey"},{"name":"sessions","kind":"object","type":"AgentSession","relationName":"AgentToAgentSession"}],"dbName":null},"ApiKey":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"ApiKeyToCompany"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToApiKey"},{"name":"keyHash","kind":"scalar","type":"String"},{"name":"keyPrefix","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"lastUsed","kind":"scalar","type":"DateTime"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"revokedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ProjectGroup":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Project":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToProject"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"groupUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"ideas","kind":"object","type":"Idea","relationName":"IdeaToProject"},{"name":"documents","kind":"object","type":"Document","relationName":"DocumentToProject"},{"name":"tasks","kind":"object","type":"Task","relationName":"ProjectToTask"},{"name":"proposals","kind":"object","type":"Proposal","relationName":"ProjectToProposal"},{"name":"activities","kind":"object","type":"Activity","relationName":"ActivityToProject"}],"dbName":null},"Idea":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToIdea"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"IdeaToProject"},{"name":"title","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"attachments","kind":"scalar","type":"Json"},{"name":"status","kind":"scalar","type":"String"},{"name":"assigneeType","kind":"scalar","type":"String"},{"name":"assigneeUuid","kind":"scalar","type":"String"},{"name":"assignedAt","kind":"scalar","type":"DateTime"},{"name":"assignedByUuid","kind":"scalar","type":"String"},{"name":"elaborationDepth","kind":"scalar","type":"String"},{"name":"elaborationStatus","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Document":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToDocument"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"DocumentToProject"},{"name":"type","kind":"scalar","type":"String"},{"name":"title","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"version","kind":"scalar","type":"Int"},{"name":"proposalUuid","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Task":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToTask"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ProjectToTask"},{"name":"title","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"priority","kind":"scalar","type":"String"},{"name":"storyPoints","kind":"scalar","type":"Float"},{"name":"acceptanceCriteria","kind":"scalar","type":"String"},{"name":"assigneeType","kind":"scalar","type":"String"},{"name":"assigneeUuid","kind":"scalar","type":"String"},{"name":"assignedAt","kind":"scalar","type":"DateTime"},{"name":"assignedByUuid","kind":"scalar","type":"String"},{"name":"proposalUuid","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"dependsOn","kind":"object","type":"TaskDependency","relationName":"taskDependencies"},{"name":"dependedBy","kind":"object","type":"TaskDependency","relationName":"taskDependedBy"},{"name":"sessionCheckins","kind":"object","type":"SessionTaskCheckin","relationName":"SessionTaskCheckinToTask"},{"name":"acceptanceCriteriaItems","kind":"object","type":"AcceptanceCriterion","relationName":"AcceptanceCriterionToTask"}],"dbName":null},"TaskDependency":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"dependsOnUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"taskDependencies"},{"name":"dependsOn","kind":"object","type":"Task","relationName":"taskDependedBy"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"AcceptanceCriterion":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"AcceptanceCriterionToTask"},{"name":"description","kind":"scalar","type":"String"},{"name":"required","kind":"scalar","type":"Boolean"},{"name":"devStatus","kind":"scalar","type":"String"},{"name":"devEvidence","kind":"scalar","type":"String"},{"name":"devMarkedByType","kind":"scalar","type":"String"},{"name":"devMarkedBy","kind":"scalar","type":"String"},{"name":"devMarkedAt","kind":"scalar","type":"DateTime"},{"name":"status","kind":"scalar","type":"String"},{"name":"evidence","kind":"scalar","type":"String"},{"name":"markedByType","kind":"scalar","type":"String"},{"name":"markedBy","kind":"scalar","type":"String"},{"name":"markedAt","kind":"scalar","type":"DateTime"},{"name":"sortOrder","kind":"scalar","type":"Int"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Proposal":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CompanyToProposal"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ProjectToProposal"},{"name":"title","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"inputType","kind":"scalar","type":"String"},{"name":"inputUuids","kind":"scalar","type":"Json"},{"name":"documentDrafts","kind":"scalar","type":"Json"},{"name":"taskDrafts","kind":"scalar","type":"Json"},{"name":"status","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"createdByType","kind":"scalar","type":"String"},{"name":"reviewedByUuid","kind":"scalar","type":"String"},{"name":"reviewNote","kind":"scalar","type":"String"},{"name":"reviewedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Comment":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"CommentToCompany"},{"name":"targetType","kind":"scalar","type":"String"},{"name":"targetUuid","kind":"scalar","type":"String"},{"name":"content","kind":"scalar","type":"String"},{"name":"authorType","kind":"scalar","type":"String"},{"name":"authorUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Activity":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"ActivityToCompany"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"project","kind":"object","type":"Project","relationName":"ActivityToProject"},{"name":"targetType","kind":"scalar","type":"String"},{"name":"targetUuid","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"action","kind":"scalar","type":"String"},{"name":"value","kind":"scalar","type":"Json"},{"name":"sessionUuid","kind":"scalar","type":"String"},{"name":"sessionName","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"AgentSession":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"company","kind":"object","type":"Company","relationName":"AgentSessionToCompany"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToAgentSession"},{"name":"name","kind":"scalar","type":"String"},{"name":"description","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"lastActiveAt","kind":"scalar","type":"DateTime"},{"name":"expiresAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"taskCheckins","kind":"object","type":"SessionTaskCheckin","relationName":"AgentSessionToSessionTaskCheckin"}],"dbName":null},"SessionTaskCheckin":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"sessionUuid","kind":"scalar","type":"String"},{"name":"session","kind":"object","type":"AgentSession","relationName":"AgentSessionToSessionTaskCheckin"},{"name":"taskUuid","kind":"scalar","type":"String"},{"name":"task","kind":"object","type":"Task","relationName":"SessionTaskCheckinToTask"},{"name":"checkinAt","kind":"scalar","type":"DateTime"},{"name":"checkoutAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Notification":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"projectUuid","kind":"scalar","type":"String"},{"name":"recipientType","kind":"scalar","type":"String"},{"name":"recipientUuid","kind":"scalar","type":"String"},{"name":"entityType","kind":"scalar","type":"String"},{"name":"entityUuid","kind":"scalar","type":"String"},{"name":"entityTitle","kind":"scalar","type":"String"},{"name":"projectName","kind":"scalar","type":"String"},{"name":"action","kind":"scalar","type":"String"},{"name":"message","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"actorName","kind":"scalar","type":"String"},{"name":"readAt","kind":"scalar","type":"DateTime"},{"name":"archivedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"NotificationPreference":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"ownerType","kind":"scalar","type":"String"},{"name":"ownerUuid","kind":"scalar","type":"String"},{"name":"taskAssigned","kind":"scalar","type":"Boolean"},{"name":"taskStatusChanged","kind":"scalar","type":"Boolean"},{"name":"taskVerified","kind":"scalar","type":"Boolean"},{"name":"taskReopened","kind":"scalar","type":"Boolean"},{"name":"proposalSubmitted","kind":"scalar","type":"Boolean"},{"name":"proposalApproved","kind":"scalar","type":"Boolean"},{"name":"proposalRejected","kind":"scalar","type":"Boolean"},{"name":"ideaClaimed","kind":"scalar","type":"Boolean"},{"name":"commentAdded","kind":"scalar","type":"Boolean"},{"name":"elaborationRequested","kind":"scalar","type":"Boolean"},{"name":"elaborationAnswered","kind":"scalar","type":"Boolean"},{"name":"mentioned","kind":"scalar","type":"Boolean"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"Mention":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"sourceType","kind":"scalar","type":"String"},{"name":"sourceUuid","kind":"scalar","type":"String"},{"name":"mentionedType","kind":"scalar","type":"String"},{"name":"mentionedUuid","kind":"scalar","type":"String"},{"name":"actorType","kind":"scalar","type":"String"},{"name":"actorUuid","kind":"scalar","type":"String"},{"name":"createdAt","kind":"scalar","type":"DateTime"}],"dbName":null},"ElaborationRound":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"ideaUuid","kind":"scalar","type":"String"},{"name":"roundNumber","kind":"scalar","type":"Int"},{"name":"status","kind":"scalar","type":"String"},{"name":"createdByType","kind":"scalar","type":"String"},{"name":"createdByUuid","kind":"scalar","type":"String"},{"name":"validatedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"questions","kind":"object","type":"ElaborationQuestion","relationName":"ElaborationQuestionToElaborationRound"}],"dbName":null},"ElaborationQuestion":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"roundUuid","kind":"scalar","type":"String"},{"name":"round","kind":"object","type":"ElaborationRound","relationName":"ElaborationQuestionToElaborationRound"},{"name":"questionId","kind":"scalar","type":"String"},{"name":"text","kind":"scalar","type":"String"},{"name":"category","kind":"scalar","type":"String"},{"name":"options","kind":"scalar","type":"Json"},{"name":"required","kind":"scalar","type":"Boolean"},{"name":"selectedOptionId","kind":"scalar","type":"String"},{"name":"customText","kind":"scalar","type":"String"},{"name":"answeredAt","kind":"scalar","type":"DateTime"},{"name":"answeredByType","kind":"scalar","type":"String"},{"name":"answeredByUuid","kind":"scalar","type":"String"},{"name":"issueType","kind":"scalar","type":"String"},{"name":"issueDescription","kind":"scalar","type":"String"}],"dbName":null}},"enums":{},"types":{}}'),h.compilerWasm={getRuntime:async()=>await Promise.resolve().then(c.bind(c,75811)),getQueryCompilerWasmModule:async()=>{let{wasm:a}=await Promise.resolve().then(c.bind(c,44865));return await i(a)},importName:"./query_compiler_fast_bg.js"},g.PrismaClientKnownRequestError,g.PrismaClientUnknownRequestError,g.PrismaClientRustPanicError,g.PrismaClientInitializationError,g.PrismaClientValidationError,g.sqltag,g.empty,g.join,g.raw,g.Sql,g.Decimal,g.Extensions.getExtensionContext,g.NullTypes.DbNull,g.NullTypes.JsonNull,g.NullTypes.AnyNull,g.DbNull;let j=g.JsonNull;g.AnyNull,g.makeStrictEnum({ReadUncommitted:"ReadUncommitted",ReadCommitted:"ReadCommitted",RepeatableRead:"RepeatableRead",Serializable:"Serializable"}),g.Extensions.defineExtension,globalThis.__dirname=e.dirname((0,f.fileURLToPath)("file:///home/ubuntu/dev/ai-pm/src/generated/prisma/client.ts"));let k=g.getPrismaClient(h)},71255:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{z:()=>q});var e=c(69996),f=c(58078),g=c(64939),h=c(97307),i=a([g,f]);[g,f]=i.then?(await i)():i;let j=process.env.DATABASE_URL||(process.env.DB_HOST?`postgresql://${process.env.DB_USERNAME}:${encodeURIComponent(process.env.DB_PASSWORD||"")}@${process.env.DB_HOST}:${process.env.DB_PORT||"5432"}/${process.env.DB_NAME||"chorus"}`:void 0),k=globalThis,l=k.pool??new g.default.Pool({connectionString:j,...process.env.DB_HOST?{ssl:{rejectUnauthorized:!1}}:{}});k.pool||l.on("error",a=>{h.A.child({module:"pg-pool"}).warn({err:a.message},"Idle connection evicted")});let m=new f.M(l),n=h.A.child({module:"prisma"}),o=k.prisma??new e.m3({adapter:m,log:[{emit:"event",level:"error"}]}),p=h.A.child({module:"pg-pool"}),q=o.$extends({query:{async $allOperations({args:a,query:b}){let c;for(let d=0;d<=3;d++)try{return await b(a)}catch(a){if(a instanceof Error&&("code"in a&&"P1017"===a.code||a.message.includes("Connection terminated")||a.message.includes("Server has closed the connection"))&&d<3){p.warn("Stale connection evicted (attempt %d/%d)",d+1,3),c=a;continue}throw a}throw c}}});k.prisma||"function"!=typeof o.$on||(o.$on("query",a=>{n.debug({duration:a.duration},a.query)}),o.$on("warn",a=>{n.warn(a.message)}),o.$on("error",a=>{n.error(a.message)})),d()}catch(a){d(a)}})},79793:(a,b,c)=>{"use strict";c.d(b,{$Y:()=>e});var d=c(86053);async function e(a){try{let{payload:b}=await (0,d.V)(a,function(){let a=process.env.NEXTAUTH_SECRET;if(!a)throw Error("NEXTAUTH_SECRET is not set");return new TextEncoder().encode(a)}());if("user"===b.type&&"access"===b.tokenType)return{type:"user",userUuid:b.userUuid,companyUuid:b.companyUuid,email:b.email,name:b.name,oidcSub:b.oidcSub,oidcAccessToken:b.oidcAccessToken,oidcRefreshToken:b.oidcRefreshToken,oidcExpiresAt:b.oidcExpiresAt};return null}catch{return null}}},86963:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Q:()=>j});var e=c(51514),f=c(86053),g=c(71255),h=c(97307),i=a([g]);g=(i.then?(await i)():i)[0];let k=new Map;async function j(a){try{let b=a.split(".");if(3!==b.length)return null;let c=JSON.parse(Buffer.from(b[1],"base64url").toString("utf-8")).iss;if(!c)return null;let d=function(a){if(!k.has(a)){let b=new URL(`${a.replace(/\/$/,"")}/.well-known/jwks.json`);k.set(a,(0,e.RD)(b))}return k.get(a)}(c),{payload:h}=await (0,f.V)(a,d,{issuer:c});if(h.token_use&&"access"!==h.token_use)return null;let i=await g.z.company.findFirst({where:{oidcEnabled:!0,oidcIssuer:c}});if(!i)return null;let j=await g.z.user.findFirst({where:{companyUuid:i.uuid,oidcSub:h.sub}});if(!j)return null;return{type:"user",companyUuid:i.uuid,actorUuid:j.uuid,email:j.email||h.email,name:j.name||h.name}}catch(a){return h.A.error({err:a},"OIDC token verification failed"),null}}d()}catch(a){d(a)}})},92592:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Xm:()=>i,lX:()=>k});var e=c(71255),f=c(62729),g=a([e]);function h(a){return{uuid:a.uuid,projectUuid:a.projectUuid,projectName:a.projectName,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,readAt:a.readAt?.toISOString()??null,archivedAt:a.archivedAt?.toISOString()??null,createdAt:a.createdAt.toISOString()}}async function i(a){let b=await Promise.all(a.map(a=>e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName}}))),c=new Set;for(let b of a)c.add(`${b.recipientType}:${b.recipientUuid}:${b.companyUuid}`);for(let d of c){let[c,e,g]=d.split(":"),h=await j(g,c,e),i=b.find(a=>a.recipientType===c&&a.recipientUuid===e),k=a.find(a=>a.recipientType===c&&a.recipientUuid===e);f.B.emit(`notification:${c}:${e}`,{type:"new_notification",notificationUuid:i?.uuid,unreadCount:h,action:k?.action,actorName:k?.actorName,entityTitle:k?.entityTitle,entityType:k?.entityType,entityUuid:k?.entityUuid,projectUuid:k?.projectUuid})}return b.map(h)}async function j(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function k(a,b,c){let d=await e.z.notificationPreference.findUnique({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}}});return d||(d=await e.z.notificationPreference.create({data:{companyUuid:a,ownerType:b,ownerUuid:c}})),{uuid:d.uuid,ownerType:d.ownerType,ownerUuid:d.ownerUuid,taskAssigned:d.taskAssigned,taskStatusChanged:d.taskStatusChanged,taskVerified:d.taskVerified,taskReopened:d.taskReopened,proposalSubmitted:d.proposalSubmitted,proposalApproved:d.proposalApproved,proposalRejected:d.proposalRejected,ideaClaimed:d.ideaClaimed,commentAdded:d.commentAdded,elaborationRequested:d.elaborationRequested,elaborationAnswered:d.elaborationAnswered,mentioned:d.mentioned}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},92633:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{LS:()=>h,SJ:()=>j,Uo:()=>k,Xx:()=>l,_9:()=>m,ir:()=>i,lR:()=>g});var e=c(71255),f=a([e]);async function g(a,b){if("user"===a){let a=await e.z.user.findUnique({where:{uuid:b},select:{name:!0,email:!0}});return a&&(a.name||a.email)||"Unknown"}if("agent"===a){let a=await e.z.agent.findUnique({where:{uuid:b},select:{name:!0}});return a?.name??null}return null}async function h(a,b){if(b){let c=await g(b,a);return c?{type:b,uuid:a,name:c}:null}let c=await e.z.user.findUnique({where:{uuid:a},select:{name:!0,email:!0}});if(c)return{type:"user",uuid:a,name:c.name||c.email||"Unknown"};let d=await e.z.agent.findUnique({where:{uuid:a},select:{name:!0}});return d?{type:"agent",uuid:a,name:d.name}:null}async function i(a,b,c,d){if(!a||!b)return null;let e=await g(a,b);if(!e)return null;let f=null;if(d){let a=await g("user",d);a&&(f={type:"user",uuid:d,name:a})}return{type:a,uuid:b,name:e,assignedAt:c?.toISOString()??null,assignedBy:f}}async function j(a,b,c){if(!a)return null;let d=await g("user",a);if(d&&"Unknown"!==d)return{reviewedBy:{type:"user",uuid:a,name:d},reviewNote:b,reviewedAt:c?.toISOString()??null};let e=await g("agent",a);return e?{reviewedBy:{type:"agent",uuid:a,name:e},reviewNote:b,reviewedAt:c?.toISOString()??null}:null}async function k(a){let b=new Map;if(0===a.length)return b;let c=[...new Set(a.filter(a=>"user"===a.type).map(a=>a.uuid))],d=[...new Set(a.filter(a=>"agent"===a.type).map(a=>a.uuid))],[f,g]=await Promise.all([c.length>0?e.z.user.findMany({where:{uuid:{in:c}},select:{uuid:!0,name:!0,email:!0}}):[],d.length>0?e.z.agent.findMany({where:{uuid:{in:d}},select:{uuid:!0,name:!0}}):[]]);for(let a of f)b.set(a.uuid,a.name||a.email||"Unknown");for(let a of g)b.set(a.uuid,a.name);return b}async function l(a){let b=new Map;if(0===a.length)return b;let c=[...new Set(a)],d=await e.z.user.findMany({where:{uuid:{in:c}},select:{uuid:!0,name:!0,email:!0}}),f=new Set;for(let a of d)f.add(a.uuid),b.set(a.uuid,{type:"user",uuid:a.uuid,name:a.name||a.email||"Unknown"});let g=c.filter(a=>!f.has(a));if(g.length>0)for(let a of(await e.z.agent.findMany({where:{uuid:{in:g}},select:{uuid:!0,name:!0}})))b.set(a.uuid,{type:"agent",uuid:a.uuid,name:a.name});return b}async function m(a,b,c){let d={uuid:b,companyUuid:c};switch(a){case"idea":return!!await e.z.idea.findFirst({where:d,select:{uuid:!0}});case"proposal":return!!await e.z.proposal.findFirst({where:d,select:{uuid:!0}});case"task":return!!await e.z.task.findFirst({where:d,select:{uuid:!0}});case"document":return!!await e.z.document.findFirst({where:d,select:{uuid:!0}});default:return!1}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},94372:(a,b,c)=>{"use strict";c.d(b,{Xi:()=>i,av:()=>j,j7:()=>h,tU:()=>g});var d=c(10837);c(21968);var e=c(25400),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"tabs",className:(0,f.cn)("flex flex-col gap-2",a),...b})}function h({className:a,...b}){return(0,d.jsx)(e.List,{"data-slot":"tabs-list",className:(0,f.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",a),...b})}function i({className:a,...b}){return(0,d.jsx)(e.Trigger,{"data-slot":"tabs-trigger",className:(0,f.cn)("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...b})}function j({className:a,...b}){return(0,d.jsx)(e.Content,{"data-slot":"tabs-content",className:(0,f.cn)("flex-1 outline-none",a),...b})}},96307:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(25335),e=c(30393);function f(...a){return(0,e.QP)((0,d.$)(a))}},97307:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});var d=c(74552);let e=c.n(d)()({level:process.env.LOG_LEVEL||"info",base:{service:"chorus"},...{}})},97553:(a,b,c)=>{"use strict";c.d(b,{AL:()=>g,IB:()=>d,L$:()=>f,q:()=>e});let d=["en","zh"],e="en",f={en:"English",zh:"中文"};function g(){if("undefined"==typeof navigator)return e;let a=navigator.language.split("-")[0];return d.includes(a)?a:e}}};