@chorus-aidlc/chorus 0.10.0 → 0.11.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 (659) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +463 -346
  3. package/.next/standalone/.next/app-path-routes-manifest.json +50 -36
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +27 -27
  6. package/.next/standalone/.next/routes-manifest.json +25 -0
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +2 -2
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -3
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +2 -2
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +2 -2
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +3 -3
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -8
  44. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  48. package/.next/standalone/.next/server/app/_not-found.rsc +5 -5
  49. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies/new.rsc +5 -5
  53. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  55. package/.next/standalone/.next/server/app/admin/companies.rsc +5 -5
  56. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/admin.html +1 -1
  58. package/.next/standalone/.next/server/app/admin.rsc +5 -5
  59. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js +1 -1
  60. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/admin/companies/route.js +1 -1
  62. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/login/route.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/session/route.js +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/agent-connections/route.js +1 -0
  68. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -0
  69. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -0
  70. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  71. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  76. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.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.js +1 -1
  80. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/callback/route.js +1 -1
  82. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/auth/check-default/route.js +1 -1
  84. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/auth/company-oidc/route.js +1 -1
  86. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/auth/default-login/route.js +1 -1
  88. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/auth/identify/route.js +1 -1
  90. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/auth/me/route.js +1 -1
  93. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/auth/refresh/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/auth/session/route.js +1 -1
  97. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/auth/sync-token/route.js +1 -1
  99. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  101. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -0
  104. package/.next/standalone/.next/server/app/api/daemon/control/route.js.nft.json +1 -0
  105. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -0
  106. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -0
  107. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -0
  108. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -0
  109. package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -0
  110. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -0
  111. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -0
  112. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -0
  113. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -0
  114. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -0
  115. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -0
  116. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -0
  117. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -0
  118. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -0
  119. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -0
  120. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -0
  121. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -0
  122. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -0
  123. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -0
  124. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -0
  125. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -0
  126. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -0
  127. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -0
  128. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -0
  129. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -0
  130. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -0
  131. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -0
  132. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -0
  133. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -0
  134. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -0
  135. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -0
  136. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -0
  137. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -0
  138. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -0
  139. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  140. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -0
  142. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -0
  143. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -0
  144. package/.next/standalone/.next/server/app/api/events/notifications/route.js +6 -2
  145. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/events/route.js +7 -3
  148. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/health/route.js +1 -1
  151. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  159. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  162. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  165. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  168. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/mcp/route.js +5 -41
  171. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  174. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  177. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  180. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  183. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  186. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  189. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  192. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  195. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
  198. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
  200. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  202. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  204. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  206. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  209. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  211. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  213. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  216. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  217. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  219. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  221. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  223. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  225. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  227. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  229. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  232. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  235. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  236. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  237. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  238. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  239. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  241. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  242. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  243. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  245. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  246. package/.next/standalone/.next/server/app/api/search/route.js +1 -1
  247. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  248. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  249. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  250. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  252. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  253. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  255. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  256. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  258. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  259. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  260. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  261. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  262. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  263. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  264. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  265. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  267. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  269. package/.next/standalone/.next/server/app/index.html +1 -1
  270. package/.next/standalone/.next/server/app/index.rsc +5 -5
  271. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  272. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  273. package/.next/standalone/.next/server/app/login/admin.rsc +5 -5
  274. package/.next/standalone/.next/server/app/login/callback/page.js +2 -2
  275. package/.next/standalone/.next/server/app/login/callback/page.js.nft.json +1 -1
  276. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  277. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  278. package/.next/standalone/.next/server/app/login/callback.rsc +5 -5
  279. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  280. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  281. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  282. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +5 -5
  283. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  284. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  285. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +5 -5
  286. package/.next/standalone/.next/server/app/login.html +1 -1
  287. package/.next/standalone/.next/server/app/login.rsc +5 -5
  288. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  289. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  290. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  291. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  292. package/.next/standalone/.next/server/app/onboarding.rsc +6 -6
  293. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  294. package/.next/standalone/.next/server/app/projects.html +1 -1
  295. package/.next/standalone/.next/server/app/projects.rsc +7 -7
  296. package/.next/standalone/.next/server/app/settings.html +1 -1
  297. package/.next/standalone/.next/server/app/settings.rsc +7 -7
  298. package/.next/standalone/.next/server/app-paths-manifest.json +50 -36
  299. package/.next/standalone/.next/server/chunks/1064.js +1 -0
  300. package/.next/standalone/.next/server/chunks/1596.js +13 -0
  301. package/.next/standalone/.next/server/chunks/2213.js +1 -0
  302. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  303. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  304. package/.next/standalone/.next/server/chunks/3219.js +2 -0
  305. package/.next/standalone/.next/server/chunks/3371.js +1 -0
  306. package/.next/standalone/.next/server/chunks/3419.js +1 -0
  307. package/.next/standalone/.next/server/chunks/369.js +1 -0
  308. package/.next/standalone/.next/server/chunks/4638.js +1 -0
  309. package/.next/standalone/.next/server/chunks/4711.js +530 -0
  310. package/.next/standalone/.next/server/chunks/5039.js +1 -0
  311. package/.next/standalone/.next/server/chunks/5300.js +1 -1
  312. package/.next/standalone/.next/server/chunks/5631.js +1 -0
  313. package/.next/standalone/.next/server/chunks/6044.js +1 -1
  314. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  315. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  316. package/.next/standalone/.next/server/chunks/6461.js +1 -0
  317. package/.next/standalone/.next/server/chunks/6712.js +1 -0
  318. package/.next/standalone/.next/server/chunks/7002.js +1 -1
  319. package/.next/standalone/.next/server/chunks/7063.js +2 -2
  320. package/.next/standalone/.next/server/chunks/7258.js +37 -0
  321. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  322. package/.next/standalone/.next/server/chunks/7578.js +2 -2
  323. package/.next/standalone/.next/server/chunks/7867.js +1 -0
  324. package/.next/standalone/.next/server/chunks/7897.js +1 -0
  325. package/.next/standalone/.next/server/chunks/8012.js +1 -0
  326. package/.next/standalone/.next/server/chunks/8245.js +31 -0
  327. package/.next/standalone/.next/server/chunks/8322.js +1 -1
  328. package/.next/standalone/.next/server/chunks/9015.js +1 -1
  329. package/.next/standalone/.next/server/chunks/920.js +1 -1
  330. package/.next/standalone/.next/server/chunks/937.js +16 -2
  331. package/.next/standalone/.next/server/chunks/9629.js +1 -0
  332. package/.next/standalone/.next/server/chunks/9725.js +1 -0
  333. package/.next/standalone/.next/server/instrumentation.js +1 -1
  334. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  335. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  336. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  337. package/.next/standalone/.next/server/next-font-manifest.json +1 -1
  338. package/.next/standalone/.next/server/pages/404.html +1 -1
  339. package/.next/standalone/.next/server/pages/500.html +1 -1
  340. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  341. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  342. package/.next/standalone/.next/server/src/middleware.js +1 -1
  343. package/.next/standalone/.next/static/519aK55QLHaVN7b1TVDkB/_buildManifest.js +1 -0
  344. package/.next/standalone/.next/static/chunks/1217-323cc20b73ebfde9.js +1 -0
  345. package/.next/standalone/.next/static/chunks/{11207-8f4b154804f5a66f.js → 15183-5734d279b26e9414.js} +2 -2
  346. package/.next/standalone/.next/static/chunks/1879-7a8b283283218df2.js +1 -0
  347. package/.next/standalone/.next/static/chunks/19276-50b367d7b93d5f34.js +1 -0
  348. package/.next/standalone/.next/static/chunks/23466-e1176a6d814f4897.js +1 -0
  349. package/.next/standalone/.next/static/chunks/38040-a8687f86dd8e9d67.js +1 -0
  350. package/.next/standalone/.next/static/chunks/{4860.e071c0b9e32bd75f.js → 4860.43f5ad8a3aaed0e8.js} +1 -1
  351. package/.next/standalone/.next/static/chunks/58245-b2ea112ace9624d2.js +1 -0
  352. package/.next/standalone/.next/static/chunks/59296-783831c43aa0162e.js +1 -0
  353. package/.next/standalone/.next/static/chunks/60648-36ccbee4ce232d52.js +1 -0
  354. package/.next/standalone/.next/static/chunks/60694-68232120903209df.js +1 -0
  355. package/.next/standalone/.next/static/chunks/64648-81f03be6f9793ab9.js +1 -0
  356. package/.next/standalone/.next/static/chunks/{94655-1c75e0590a66215e.js → 66969-12f0b22c51f5a410.js} +1 -1
  357. package/.next/standalone/.next/static/chunks/70536-b8bf71098ae11f07.js +1 -0
  358. package/.next/standalone/.next/static/chunks/71350-88c2649fc693c1e8.js +1 -0
  359. package/.next/standalone/.next/static/chunks/78389-b32edc6bd5c570a9.js +1 -0
  360. package/.next/standalone/.next/static/chunks/78584-eb2fa8cf2f266329.js +1 -0
  361. package/.next/standalone/.next/static/chunks/78917-150ed14a99844aab.js +1 -0
  362. package/.next/standalone/.next/static/chunks/8574-b9739eb8d054c793.js +1 -0
  363. package/.next/standalone/.next/static/chunks/{99373.4c336ea9ad07311e.js → 99373.0768feb3a08c7da3.js} +1 -1
  364. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-0a28456fea4ce95a.js +1 -0
  365. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-a79969c5c9aadacd.js +1 -0
  366. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-4bc556c2fc8f3d24.js +1 -0
  367. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-e00752a72c31663f.js +1 -0
  368. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-ef82b871895245ea.js +1 -0
  369. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-2c9bcbd11ddb8661.js +1 -0
  370. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-630b168598513ce8.js +1 -0
  371. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-99639479cc98965f.js +1 -0
  372. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-335f2450e44a0fba.js +1 -0
  373. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-4a191d69b2b6e880.js +1 -0
  374. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-0faebb478be4c85d.js +1 -0
  375. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-f198303c176c6e02.js → page-583e58d4d689d38b.js} +1 -1
  376. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-2e8fcb72687100df.js +1 -0
  377. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  378. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-4bc556c2fc8f3d24.js +1 -0
  379. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-4bc556c2fc8f3d24.js +1 -0
  380. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-4bc556c2fc8f3d24.js +1 -0
  381. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-4bc556c2fc8f3d24.js +1 -0
  382. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  383. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-4bc556c2fc8f3d24.js +1 -0
  384. package/.next/standalone/.next/static/chunks/app/api/agents/route-4bc556c2fc8f3d24.js +1 -0
  385. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  386. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-4bc556c2fc8f3d24.js +1 -0
  387. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-4bc556c2fc8f3d24.js +1 -0
  388. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-4bc556c2fc8f3d24.js +1 -0
  389. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-4bc556c2fc8f3d24.js +1 -0
  390. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-4bc556c2fc8f3d24.js +1 -0
  391. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-4bc556c2fc8f3d24.js +1 -0
  392. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-4bc556c2fc8f3d24.js +1 -0
  393. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-4bc556c2fc8f3d24.js +1 -0
  394. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-4bc556c2fc8f3d24.js +1 -0
  395. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-4bc556c2fc8f3d24.js +1 -0
  396. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-4bc556c2fc8f3d24.js +1 -0
  397. package/.next/standalone/.next/static/chunks/app/api/comments/route-4bc556c2fc8f3d24.js +1 -0
  398. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-4bc556c2fc8f3d24.js +1 -0
  399. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-4bc556c2fc8f3d24.js +1 -0
  400. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-4bc556c2fc8f3d24.js +1 -0
  401. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-4bc556c2fc8f3d24.js +1 -0
  402. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-4bc556c2fc8f3d24.js +1 -0
  403. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-4bc556c2fc8f3d24.js +1 -0
  404. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-4bc556c2fc8f3d24.js +1 -0
  405. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-4bc556c2fc8f3d24.js +1 -0
  406. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-4bc556c2fc8f3d24.js +1 -0
  407. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-4bc556c2fc8f3d24.js +1 -0
  408. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-4bc556c2fc8f3d24.js +1 -0
  409. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-4bc556c2fc8f3d24.js +1 -0
  410. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  411. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-4bc556c2fc8f3d24.js +1 -0
  412. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-4bc556c2fc8f3d24.js +1 -0
  413. package/.next/standalone/.next/static/chunks/app/api/events/route-4bc556c2fc8f3d24.js +1 -0
  414. package/.next/standalone/.next/static/chunks/app/api/health/route-4bc556c2fc8f3d24.js +1 -0
  415. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-4bc556c2fc8f3d24.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-4bc556c2fc8f3d24.js +1 -0
  417. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-4bc556c2fc8f3d24.js +1 -0
  418. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-4bc556c2fc8f3d24.js +1 -0
  419. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-4bc556c2fc8f3d24.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/api/mcp/route-4bc556c2fc8f3d24.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-4bc556c2fc8f3d24.js +1 -0
  423. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-4bc556c2fc8f3d24.js +1 -0
  424. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-4bc556c2fc8f3d24.js +1 -0
  425. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-4bc556c2fc8f3d24.js +1 -0
  426. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-4bc556c2fc8f3d24.js +1 -0
  427. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-4bc556c2fc8f3d24.js +1 -0
  428. package/.next/standalone/.next/static/chunks/app/api/notifications/route-4bc556c2fc8f3d24.js +1 -0
  429. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-4bc556c2fc8f3d24.js +1 -0
  430. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-4bc556c2fc8f3d24.js +1 -0
  431. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  432. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-4bc556c2fc8f3d24.js +1 -0
  433. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-4bc556c2fc8f3d24.js +1 -0
  434. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-4bc556c2fc8f3d24.js +1 -0
  435. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-4bc556c2fc8f3d24.js +1 -0
  436. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-4bc556c2fc8f3d24.js +1 -0
  437. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-4bc556c2fc8f3d24.js +1 -0
  438. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-4bc556c2fc8f3d24.js +1 -0
  439. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-4bc556c2fc8f3d24.js +1 -0
  440. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-4bc556c2fc8f3d24.js +1 -0
  441. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-4bc556c2fc8f3d24.js +1 -0
  442. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  443. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-4bc556c2fc8f3d24.js +1 -0
  444. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-4bc556c2fc8f3d24.js +1 -0
  445. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-4bc556c2fc8f3d24.js +1 -0
  446. package/.next/standalone/.next/static/chunks/app/api/projects/route-4bc556c2fc8f3d24.js +1 -0
  447. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-4bc556c2fc8f3d24.js +1 -0
  448. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-4bc556c2fc8f3d24.js +1 -0
  449. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-4bc556c2fc8f3d24.js +1 -0
  450. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-4bc556c2fc8f3d24.js +1 -0
  451. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  452. package/.next/standalone/.next/static/chunks/app/api/search/route-4bc556c2fc8f3d24.js +1 -0
  453. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  454. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-4bc556c2fc8f3d24.js +1 -0
  455. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-4bc556c2fc8f3d24.js +1 -0
  456. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-4bc556c2fc8f3d24.js +1 -0
  457. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-4bc556c2fc8f3d24.js +1 -0
  458. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  459. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-4bc556c2fc8f3d24.js +1 -0
  460. package/.next/standalone/.next/static/chunks/app/layout-9963339572e2e64e.js +1 -0
  461. package/.next/standalone/.next/static/chunks/app/onboarding/page-e9a69a0c537c704f.js +1 -0
  462. package/.next/standalone/.next/static/chunks/{webpack-5bb5740df10ed622.js → webpack-87284a4533d77eaf.js} +1 -1
  463. package/.next/standalone/.next/static/css/{84edd78de243cde6.css → b496025c9cd768cc.css} +1 -1
  464. package/.next/standalone/.next/static/css/e78b3c856420a09f.css +1 -0
  465. package/.next/standalone/.next/static/media/013b72fa676f92e0-s.woff2 +0 -0
  466. package/.next/standalone/.next/static/media/2b5b02fc7e511755-s.woff2 +0 -0
  467. package/.next/standalone/.next/static/media/65f03d54ccadf4a8-s.woff2 +0 -0
  468. package/.next/standalone/.next/static/media/7d4881bb7e1bf84d-s.p.woff2 +0 -0
  469. package/.next/standalone/.next/static/media/b9408752a0c24fb9-s.woff2 +0 -0
  470. package/.next/standalone/.next/static/media/e038a29029a234f2-s.woff2 +0 -0
  471. package/.next/standalone/package.json +3 -1
  472. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  473. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  474. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +1 -1
  475. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  476. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +2 -1
  477. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  478. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
  479. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  480. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  481. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
  482. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
  483. package/.next/standalone/public/skill/chorus/SKILL.md +1 -1
  484. package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
  485. package/.next/standalone/public/skill/idea-chorus/SKILL.md +2 -1
  486. package/.next/standalone/public/skill/package.json +1 -1
  487. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +1 -1
  488. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +1 -1
  489. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  490. package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
  491. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +1 -1
  492. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +1 -1
  493. package/README.md +27 -0
  494. package/README.zh.md +27 -0
  495. package/chorus.mjs +120 -16
  496. package/cli/backfill.mjs +190 -0
  497. package/cli/chorus-client.mjs +154 -0
  498. package/cli/claude-spawner.mjs +415 -0
  499. package/cli/client-args.mjs +146 -0
  500. package/cli/control-handler.mjs +180 -0
  501. package/cli/credentials.mjs +155 -0
  502. package/cli/daemon-agent.mjs +38 -0
  503. package/cli/daemon-banner.mjs +80 -0
  504. package/cli/daemon-config.mjs +84 -0
  505. package/cli/daemon-lifecycle.mjs +191 -0
  506. package/cli/daemon-permission-mode.mjs +68 -0
  507. package/cli/daemon-rest-client.mjs +272 -0
  508. package/cli/daemon.mjs +572 -0
  509. package/cli/event-router.mjs +248 -0
  510. package/cli/interrupt-reporter.mjs +87 -0
  511. package/cli/lineage.mjs +155 -0
  512. package/cli/login.mjs +151 -0
  513. package/cli/mcp-config.mjs +58 -0
  514. package/cli/process-killer.mjs +205 -0
  515. package/cli/prompts.mjs +273 -0
  516. package/cli/sse-listener.mjs +258 -0
  517. package/cli/turn-reporter.mjs +75 -0
  518. package/cli/upload-hooks.mjs +400 -0
  519. package/cli/wake-queue.mjs +121 -0
  520. package/cli/waker.mjs +475 -0
  521. package/package.json +3 -1
  522. package/prisma/migrations/20260615082309_add_daemon_connection/migration.sql +37 -0
  523. package/prisma/migrations/20260616152622_add_daemon_task_execution/migration.sql +28 -0
  524. package/prisma/migrations/20260617013334_generalize_daemon_execution_to_any_resource/migration.sql +38 -0
  525. package/prisma/migrations/20260618022828_add_daemon_execution_interrupted/migration.sql +2 -0
  526. package/prisma/migrations/20260619055322_daemon_session_conversation/migration.sql +77 -0
  527. package/prisma/schema.prisma +366 -188
  528. package/.next/standalone/.next/server/chunks/1059.js +0 -1
  529. package/.next/standalone/.next/server/chunks/1165.js +0 -1
  530. package/.next/standalone/.next/server/chunks/1615.js +0 -31
  531. package/.next/standalone/.next/server/chunks/162.js +0 -16
  532. package/.next/standalone/.next/server/chunks/179.js +0 -158
  533. package/.next/standalone/.next/server/chunks/1871.js +0 -1
  534. package/.next/standalone/.next/server/chunks/2909.js +0 -98
  535. package/.next/standalone/.next/server/chunks/324.js +0 -1
  536. package/.next/standalone/.next/server/chunks/3555.js +0 -1
  537. package/.next/standalone/.next/server/chunks/4090.js +0 -13
  538. package/.next/standalone/.next/server/chunks/4343.js +0 -1
  539. package/.next/standalone/.next/server/chunks/4879.js +0 -1
  540. package/.next/standalone/.next/server/chunks/4913.js +0 -1
  541. package/.next/standalone/.next/server/chunks/5541.js +0 -1
  542. package/.next/standalone/.next/server/chunks/5561.js +0 -7
  543. package/.next/standalone/.next/server/chunks/6643.js +0 -1
  544. package/.next/standalone/.next/server/chunks/6767.js +0 -1
  545. package/.next/standalone/.next/server/chunks/7228.js +0 -2
  546. package/.next/standalone/.next/server/chunks/7462.js +0 -255
  547. package/.next/standalone/.next/server/chunks/7859.js +0 -1
  548. package/.next/standalone/.next/server/chunks/8277.js +0 -1
  549. package/.next/standalone/.next/server/chunks/8637.js +0 -1
  550. package/.next/standalone/.next/server/chunks/896.js +0 -1
  551. package/.next/standalone/.next/server/chunks/9269.js +0 -1
  552. package/.next/standalone/.next/server/chunks/9615.js +0 -1
  553. package/.next/standalone/.next/static/AKJHlhCKd44_-khht8nN0/_buildManifest.js +0 -1
  554. package/.next/standalone/.next/static/chunks/20051-c242544dafd3a690.js +0 -1
  555. package/.next/standalone/.next/static/chunks/21932-bce5ba937d1603e1.js +0 -1
  556. package/.next/standalone/.next/static/chunks/23095-5bf481236249fdd8.js +0 -1
  557. package/.next/standalone/.next/static/chunks/23466-842c126491b753bc.js +0 -1
  558. package/.next/standalone/.next/static/chunks/45436-c5427023f3f386a1.js +0 -1
  559. package/.next/standalone/.next/static/chunks/49852-5337f139a2f87c46.js +0 -1
  560. package/.next/standalone/.next/static/chunks/52206-7c1b0c695c8035eb.js +0 -1
  561. package/.next/standalone/.next/static/chunks/55469-ed5ff019ff71ef59.js +0 -1
  562. package/.next/standalone/.next/static/chunks/59296-50e66102d44d9677.js +0 -1
  563. package/.next/standalone/.next/static/chunks/60524-9811b38c62fed16e.js +0 -1
  564. package/.next/standalone/.next/static/chunks/68855-5c15991e7cf8dc8a.js +0 -1
  565. package/.next/standalone/.next/static/chunks/70093-0ff6fd59445b5cb9.js +0 -1
  566. package/.next/standalone/.next/static/chunks/74030-3a6a6b75e47f5b96.js +0 -1
  567. package/.next/standalone/.next/static/chunks/78917-ff0fda86a96cfa60.js +0 -1
  568. package/.next/standalone/.next/static/chunks/95627-8d9f6d2d88f7a641.js +0 -1
  569. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-5915ccd1a77ebcf8.js +0 -1
  570. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-94d102d945410b55.js +0 -1
  571. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-cd9411c54c8f5b35.js +0 -1
  572. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-56c45b910f914895.js +0 -1
  573. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-2e000a7010d1e9ea.js +0 -1
  574. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-75e42d130404ca2b.js +0 -1
  575. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-d7747749ae6192d8.js +0 -1
  576. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-26488809d26e1daa.js +0 -1
  577. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-8f91ed174c14d5f0.js +0 -1
  578. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-fcc9baa42e6de4d4.js +0 -1
  579. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-5233748464280e9d.js +0 -1
  580. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-ab87cbb18d0ee538.js +0 -1
  581. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  582. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-cd9411c54c8f5b35.js +0 -1
  583. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-cd9411c54c8f5b35.js +0 -1
  584. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-cd9411c54c8f5b35.js +0 -1
  585. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  586. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-cd9411c54c8f5b35.js +0 -1
  587. package/.next/standalone/.next/static/chunks/app/api/agents/route-cd9411c54c8f5b35.js +0 -1
  588. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  589. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-cd9411c54c8f5b35.js +0 -1
  590. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-cd9411c54c8f5b35.js +0 -1
  591. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-cd9411c54c8f5b35.js +0 -1
  592. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-cd9411c54c8f5b35.js +0 -1
  593. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-cd9411c54c8f5b35.js +0 -1
  594. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-cd9411c54c8f5b35.js +0 -1
  595. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-cd9411c54c8f5b35.js +0 -1
  596. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-cd9411c54c8f5b35.js +0 -1
  597. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-cd9411c54c8f5b35.js +0 -1
  598. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-cd9411c54c8f5b35.js +0 -1
  599. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-cd9411c54c8f5b35.js +0 -1
  600. package/.next/standalone/.next/static/chunks/app/api/comments/route-cd9411c54c8f5b35.js +0 -1
  601. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  602. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-cd9411c54c8f5b35.js +0 -1
  603. package/.next/standalone/.next/static/chunks/app/api/events/route-cd9411c54c8f5b35.js +0 -1
  604. package/.next/standalone/.next/static/chunks/app/api/health/route-cd9411c54c8f5b35.js +0 -1
  605. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-cd9411c54c8f5b35.js +0 -1
  606. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-cd9411c54c8f5b35.js +0 -1
  607. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-cd9411c54c8f5b35.js +0 -1
  608. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-cd9411c54c8f5b35.js +0 -1
  609. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-cd9411c54c8f5b35.js +0 -1
  610. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  611. package/.next/standalone/.next/static/chunks/app/api/mcp/route-cd9411c54c8f5b35.js +0 -1
  612. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-cd9411c54c8f5b35.js +0 -1
  613. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-cd9411c54c8f5b35.js +0 -1
  614. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-cd9411c54c8f5b35.js +0 -1
  615. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-cd9411c54c8f5b35.js +0 -1
  616. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-cd9411c54c8f5b35.js +0 -1
  617. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-cd9411c54c8f5b35.js +0 -1
  618. package/.next/standalone/.next/static/chunks/app/api/notifications/route-cd9411c54c8f5b35.js +0 -1
  619. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-cd9411c54c8f5b35.js +0 -1
  620. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-cd9411c54c8f5b35.js +0 -1
  621. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  622. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-cd9411c54c8f5b35.js +0 -1
  623. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-cd9411c54c8f5b35.js +0 -1
  624. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-cd9411c54c8f5b35.js +0 -1
  625. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-cd9411c54c8f5b35.js +0 -1
  626. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-cd9411c54c8f5b35.js +0 -1
  627. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-cd9411c54c8f5b35.js +0 -1
  628. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-cd9411c54c8f5b35.js +0 -1
  629. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-cd9411c54c8f5b35.js +0 -1
  630. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-cd9411c54c8f5b35.js +0 -1
  631. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-cd9411c54c8f5b35.js +0 -1
  632. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  633. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-cd9411c54c8f5b35.js +0 -1
  634. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-cd9411c54c8f5b35.js +0 -1
  635. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-cd9411c54c8f5b35.js +0 -1
  636. package/.next/standalone/.next/static/chunks/app/api/projects/route-cd9411c54c8f5b35.js +0 -1
  637. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-cd9411c54c8f5b35.js +0 -1
  638. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-cd9411c54c8f5b35.js +0 -1
  639. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-cd9411c54c8f5b35.js +0 -1
  640. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-cd9411c54c8f5b35.js +0 -1
  641. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  642. package/.next/standalone/.next/static/chunks/app/api/search/route-cd9411c54c8f5b35.js +0 -1
  643. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  644. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-cd9411c54c8f5b35.js +0 -1
  645. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-cd9411c54c8f5b35.js +0 -1
  646. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-cd9411c54c8f5b35.js +0 -1
  647. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-cd9411c54c8f5b35.js +0 -1
  648. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-cd9411c54c8f5b35.js +0 -1
  649. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-cd9411c54c8f5b35.js +0 -1
  650. package/.next/standalone/.next/static/chunks/app/layout-482dee7dace72c88.js +0 -1
  651. package/.next/standalone/.next/static/chunks/app/onboarding/page-d9dbd817391b462b.js +0 -1
  652. package/.next/standalone/.next/static/css/4279f38594ac772a.css +0 -1
  653. package/.next/standalone/.next/static/media/0f1bdadaf30e2d5f-s.woff2 +0 -0
  654. package/.next/standalone/.next/static/media/2c34d62a75506231-s.woff2 +0 -0
  655. package/.next/standalone/.next/static/media/601f5c280d60caca-s.woff2 +0 -0
  656. package/.next/standalone/.next/static/media/a115172161b307bb-s.woff2 +0 -0
  657. package/.next/standalone/.next/static/media/d100b2a099e34044-s.woff2 +0 -0
  658. package/.next/standalone/.next/static/media/f5271587012faf78-s.p.woff2 +0 -0
  659. /package/.next/standalone/.next/static/{AKJHlhCKd44_-khht8nN0 → 519aK55QLHaVN7b1TVDkB}/_ssgManifest.js +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";exports.id=3219,exports.ids=[3219],exports.modules={466:(a,b,c)=>{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.default.error({err:a},"Failed to process comment mentions")),{uuid:k.uuid,targetType:k.targetType,targetUuid:k.targetUuid,content:k.content,author:{type:k.authorType,uuid:k.authorUuid,name:l??"Unknown"},createdAt:k.createdAt.toISOString(),updatedAt:k.updatedAt.toISOString()}}async function 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)}})},1283:(a,b,c)=>{function d(a,b){return a.filter(a=>b.directIdeaUuid?"idea"===a.entityType&&a.entityUuid===b.directIdeaUuid||a.rootIdeaUuid===b.directIdeaUuid:"daemon_session"===a.entityType&&a.entityUuid===b.sessionId)}function e(a,b){let c=d(a,b);if(c.some(a=>"running"===a.status))return"running";let e=c.find(a=>"interrupted"===a.status);return e?"user"===e.interruptedReason?"interrupted":"error":null}c.d(b,{l9:()=>d,qY:()=>e})},5134:(a,b,c)=>{c.d(b,{Ik:()=>f,Yy:()=>d,nm:()=>e});class d extends Error{constructor(a){super(`${a} is already claimed`),this.name="AlreadyClaimedError"}}class e extends Error{constructor(a){super(`${a} is not currently claimed`),this.name="NotClaimedError"}}function f(a){return"object"==typeof a&&null!==a&&"code"in a&&"P2025"===a.code}},6019:(a,b,c)=>{c.d(b,{$v:()=>p,EO:()=>l,Lt:()=>h,Rx:()=>q,Zr:()=>r,ck:()=>n,r7:()=>o,tv:()=>i,wd:()=>m});var d=c(10837);c(21968);var e=c(81093),f=c(96307),g=c(42424);function h({...a}){return(0,d.jsx)(e.Root,{"data-slot":"alert-dialog",...a})}function i({...a}){return(0,d.jsx)(e.Trigger,{"data-slot":"alert-dialog-trigger",...a})}function j({...a}){return(0,d.jsx)(e.Portal,{"data-slot":"alert-dialog-portal",...a})}function k({className:a,...b}){return(0,d.jsx)(e.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,f.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}function l({className:a,size:b="default",...c}){return(0,d.jsxs)(j,{children:[(0,d.jsx)(k,{}),(0,d.jsx)(e.Content,{"data-slot":"alert-dialog-content","data-size":b,className:(0,f.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",a),...c})]})}function m({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,f.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",a),...b})}function n({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,f.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",a),...b})}function o({className:a,...b}){return(0,d.jsx)(e.Title,{"data-slot":"alert-dialog-title",className:(0,f.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",a),...b})}function p({className:a,...b}){return(0,d.jsx)(e.Description,{"data-slot":"alert-dialog-description",className:(0,f.cn)("text-muted-foreground text-sm",a),...b})}function q({className:a,variant:b="default",size:c="default",...h}){return(0,d.jsx)(g.$,{variant:b,size:c,asChild:!0,children:(0,d.jsx)(e.Action,{"data-slot":"alert-dialog-action",className:(0,f.cn)(a),...h})})}function r({className:a,variant:b="outline",size:c="default",...h}){return(0,d.jsx)(g.$,{variant:b,size:c,asChild:!0,children:(0,d.jsx)(e.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,f.cn)(a),...h})})}},8019:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{tn:()=>v});var e=c(10837),f=c(21968),g=c(9222),h=c(20447),i=c(86577),j=c(50718),k=c(35198),l=c(42424),m=c(93524),n=c(54722),o=c(70028),p=c(85834),q=c(24672),r=c(77126),s=c(1283),t=c(24775),u=a([q]);function v(){let a=(0,g.c)("daemonChat"),{status:b,connections:c,executionsByConnection:d,setOpenSession:u,subscribeTranscript:v}=(0,o.$d)(),[w,x]=(0,f.useState)([]),[y,z]=(0,f.useState)("loading"),A=(0,f.useCallback)(async()=>{try{let a=await (0,m.tm)("/api/daemon-sessions");if(!a.ok)return void z("error");let b=await a.json();b.success?(x(b.data.sessions??[]),z("ok")):z("error")}catch(a){n.q.error("Failed to fetch daemon sessions:",a),z("error")}},[]),B=(0,f.useMemo)(()=>{let b=new Map;for(let a of c)!b.has(a.agentUuid)&&a.agentName?.trim()&&b.set(a.agentUuid,a.agentName.trim());return[...new Set([...c.map(a=>a.agentUuid),...w.map(a=>a.agentUuid)])].map(c=>({agentUuid:c,agentName:b.get(c)??a("roleAgent")}))},[c,w,a]),C=(0,f.useMemo)(()=>{let a=null;for(let b of w)(!a||b.lastTurnAt>a.lastTurnAt)&&(a={agentUuid:b.agentUuid,lastTurnAt:b.lastTurnAt});return a?.agentUuid??B[0]?.agentUuid??null},[w,B]),[D,E]=(0,f.useState)(null),F=D&&B.some(a=>a.agentUuid===D)?D:C,G=(0,f.useCallback)(b=>{if(b.title?.trim())return b.title.trim();if(b.directIdeaUuid)return b.ideaTitle?.trim()?b.ideaTitle.trim():a("conversationIdea",{id:b.directIdeaUuid.slice(0,8)});let c=b.firstInstruction?.trim();if(c){let a=c.replace(/\s+/g," ").trim();return a.length>60?`${a.slice(0,60).trimEnd()}…`:a}return a("conversationAdHoc",{id:b.sessionId.slice(0,8)})},[a]),H=(0,f.useMemo)(()=>F?w.filter(a=>a.agentUuid===F).sort((a,b)=>a.lastTurnAt<b.lastTurnAt?1:-1).map(a=>({session:a,title:G(a),ideaAnchored:null!=a.directIdeaUuid,status:(0,s.qY)(d[a.originConnectionUuid]??[],a)})):[],[w,F,d,G]),[I,J]=(0,f.useState)(12),[K,L]=(0,f.useState)(null),M=(0,f.useMemo)(()=>H.find(a=>a.session.uuid===K)??null,[H,K]),[N,O]=(0,f.useState)(null),[P,Q]=(0,f.useState)([]),[R,S]=(0,f.useState)(!1),[T,U]=(0,f.useState)(!1),[V,W]=(0,f.useState)(!1),[X,Y]=(0,f.useState)(!1),[Z,$]=(0,f.useState)(null),_=(0,f.useRef)(0),aa=M?.session.uuid??null,ab=(0,f.useCallback)(async()=>{if(!aa||X||!Z)return;let{turnSeq:a,msgSeq:b}=Z,c=_.current;Y(!0);try{let d=await (0,m.tm)(`/api/daemon-sessions/${aa}?beforeTurnSeq=${a}&beforeMsgSeq=${b}`);if(c!==_.current||!d.ok)return;let e=await d.json();if(c!==_.current)return;if(e.success){let a=e.data;Q(b=>(function(a,b){let c=new Map;for(let b of a)c.set(b.uuid,b);for(let a of b){let b=c.get(a.uuid);if(!b){c.set(a.uuid,a);continue}let d=new Set(b.messages.map(a=>a.uuid)),e=a.messages.filter(a=>!d.has(a.uuid));c.set(a.uuid,{...a,messages:[...b.messages,...e]})}return[...c.values()].sort((a,b)=>a.seq-b.seq)})(a.turns??[],b)),W(!!a.hasMore),null!==a.oldestTurnSeq&&null!==a.oldestMsgSeq&&$({turnSeq:a.oldestTurnSeq,msgSeq:a.oldestMsgSeq})}}catch(a){n.q.error("Failed to load earlier transcript turns:",a)}finally{Y(!1)}},[aa,X,Z]),ac=(0,f.useMemo)(()=>{let a=N?.session.originConnectionUuid;return a?c.find(b=>b.uuid===a)??null:null},[N,c]),ad=ac?.effectiveStatus==="online",ae=(0,f.useMemo)(()=>F?c.filter(a=>a.agentUuid===F&&"online"===a.effectiveStatus):[],[c,F]),af=B.find(a=>a.agentUuid===F)?.agentName??a("roleAgent"),ag=(0,f.useMemo)(()=>{let a=N?.session;if(!a)return[];let b=d[a.originConnectionUuid]??[];return(0,s.l9)(b,a)},[N,d]),ah=(0,f.useMemo)(()=>{let a=new Map;for(let b of ag)a.set(b.uuid,b);return a},[ag]),ai=M?M.title:N?G(N.session):"",[aj,ak]=(0,f.useState)(!1),al=(0,f.useCallback)(a=>{L(a)},[]),am=(0,f.useCallback)(()=>{L(null),ak(!0)},[]),an=(0,f.useCallback)(a=>{let b={uuid:a.uuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid,originConnectionUuid:a.originConnectionUuid,status:a.status,title:a.title,lastTurnAt:a.lastTurnAt,originOnline:!0,firstInstruction:null,ideaTitle:null};x(a=>a.some(a=>a.uuid===b.uuid)?a:[b,...a]),L(a.uuid),A()},[A]),ao="error"===y&&0===w.length,ap="ok"===y&&0===w.length&&0===B.length,aq=a=>(0,e.jsx)(q.k,{session:N?.session??null,turns:P,title:ai,loading:R,error:T,originConnection:ac,originOnline:ad,sessionExecutions:ag,executionsByUuid:ah,footerLayout:a,hasMoreEarlier:V,loadingEarlier:X,onLoadEarlier:ab}),ar=aq("inline"),as=(0,e.jsx)(r.M,{agentUuid:F,agentName:af,onlineConnections:ae,onStarted:an}),at=M?aq("stacked"):as;return(0,e.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-[#FAF8F4]",children:[aj&&(0,e.jsxs)("div",{className:"flex h-full min-h-0 flex-col lg:hidden",children:[(0,e.jsx)("div",{className:"flex shrink-0 items-center gap-1 border-b border-[#EFEBE4] bg-[#FAF8F4] px-3 py-2.5",children:(0,e.jsxs)(l.$,{variant:"ghost",size:"sm",onClick:()=>ak(!1),className:"h-9 gap-1 px-2 text-[15px] font-normal text-[#C67A52] hover:bg-[#FBF4EF] hover:text-[#C67A52]",children:[(0,e.jsx)(h.A,{className:"h-5 w-5"}),a("mobileBack")]})}),(0,e.jsx)("div",{className:"min-h-0 flex-1",children:at})]}),(0,e.jsxs)("div",{className:`${aj?"hidden lg:flex":"flex"} h-full min-h-0 flex-col gap-3 overflow-y-auto px-4 py-3 lg:overflow-hidden md:px-8 md:py-4 lg:gap-3 lg:px-8 lg:py-4`,children:[(0,e.jsx)("header",{className:"flex flex-col",children:(0,e.jsx)("h2",{className:"text-[22px] font-semibold text-[#2C2C2C] lg:text-[24px]",children:a("title")})}),"loading"===b&&"loading"===y?(0,e.jsx)("p",{className:"text-sm text-[#6B6B6B]",children:a("loading")}):ao?(0,e.jsxs)(k.Zp,{className:"items-center gap-3 rounded-2xl border-[#E7D9C9] bg-[#FFF9F3] p-8 text-center shadow-none md:p-12",children:[(0,e.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-[#D9770615]",children:(0,e.jsx)(i.A,{className:"h-6 w-6 text-[#B45309]"})}),(0,e.jsx)("h3",{className:"text-base font-semibold text-[#92400E]",children:a("loadErrorTitle")}),(0,e.jsx)("p",{className:"max-w-md text-[13px] leading-relaxed text-[#6B6B6B]",children:a("loadErrorBody")})]}):ap?(0,e.jsxs)(k.Zp,{className:"items-center gap-4 rounded-2xl border-[#E5E0D8] bg-white p-8 text-center shadow-none md:p-12",children:[(0,e.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-[#C67A5215]",children:(0,e.jsx)(j.A,{className:"h-6 w-6 text-[#C67A52]"})}),(0,e.jsx)("h3",{className:"text-base font-semibold text-[#2C2C2C]",children:a("noAgents.title")}),(0,e.jsx)("p",{className:"max-w-md text-[13px] leading-relaxed text-[#6B6B6B]",children:a("noAgents.body")}),(0,e.jsx)("div",{className:"w-full max-w-md text-left",children:(0,e.jsx)(t.Bs,{variant:"prominent"})})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"flex flex-col gap-3 lg:hidden",children:(0,e.jsx)(p.U,{agents:B,selectedAgentUuid:F,onSelectAgent:a=>{E(a),L(null)},rows:H,selectedSessionUuid:K,onSelectSession:a=>{al(a),ak(!0)},onNewConversation:am,visibleCount:I,onLoadMore:()=>J(a=>a+12)})}),(0,e.jsxs)("div",{className:"hidden min-h-0 flex-1 gap-5 lg:flex",children:[(0,e.jsx)("div",{className:"flex w-[320px] shrink-0 flex-col",children:(0,e.jsx)(p.U,{agents:B,selectedAgentUuid:F,onSelectAgent:a=>{E(a),L(null)},rows:H,selectedSessionUuid:K,onSelectSession:al,onNewConversation:am,visibleCount:I,onLoadMore:()=>J(a=>a+12)})}),(0,e.jsx)(k.Zp,{className:"flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border-[#E5E0D8] bg-white p-0 shadow-none",children:M?ar:as})]})]})]})]})}q=(u.then?(await u)():u)[0],d()}catch(a){d(a)}})},9259:(a,b,c)=>{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)=>{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})}},11001:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{cn:()=>i});var e=c(97307),f=c(68938),g=c(61076),h=a([f,g]);[f,g]=h.then?(await h)():h;let j=e.default.child({module:"notification-turn"}),k={mentioned:"mentioned",elaboration_requested:"elaboration",elaboration_answered:"elaboration",elaboration_verified:"elaboration_verified",human_instruction:"human_instruction",task_assigned:"task_assigned",task_reopened:"task_assigned",task_verified:"task_assigned",idea_claimed:"task_assigned",proposal_approved:"task_assigned",proposal_rejected:"task_assigned"},l=new Set(["task","document","proposal","idea"]);async function i(a){let b=k[a.action]??null;if(!b||"agent"!==a.recipientType)return null;try{let c=(await (0,g._R)(a.companyUuid,a.recipientUuid)).find(a=>"online"===a.effectiveStatus);if(!c)return null;let d=null;l.has(a.entityType)&&(d=await (0,f.cQ)(a.companyUuid,a.entityType,a.entityUuid));let e=d??a.entityUuid,h=await (0,f.KF)({companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:e,directIdeaUuid:d,originConnectionUuid:c.uuid}),i="human_instruction"===b?a.instructionText??null:null;return await (0,f.n_)({sessionUuid:h.uuid,trigger:b,promptText:i})}catch(b){return j.error({err:b,companyUuid:a.companyUuid,agentUuid:a.recipientUuid,action:a.action,entityType:a.entityType,entityUuid:a.entityUuid},"Failed to create DaemonSessionTurn for wake notification (notification was still created)"),null}}d()}catch(a){d(a)}})},11568:(a,b,c)=>{c.d(b,{Cf:()=>m,Es:()=>o,L3:()=>p,c7:()=>n,lG:()=>i,rr:()=>q,zM:()=>j});var d=c(10837);c(21968);var e=c(10694),f=c(14220),g=c(96307),h=c(42424);function i({...a}){return(0,d.jsx)(f.Root,{"data-slot":"dialog",...a})}function j({...a}){return(0,d.jsx)(f.Trigger,{"data-slot":"dialog-trigger",...a})}function k({...a}){return(0,d.jsx)(f.Portal,{"data-slot":"dialog-portal",...a})}function l({className:a,...b}){return(0,d.jsx)(f.Overlay,{"data-slot":"dialog-overlay",className:(0,g.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}function m({className:a,children:b,showCloseButton:c=!0,...h}){return(0,d.jsxs)(k,{"data-slot":"dialog-portal",children:[(0,d.jsx)(l,{}),(0,d.jsxs)(f.Content,{"data-slot":"dialog-content",className:(0,g.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",a),...h,children:[b,c&&(0,d.jsxs)(f.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,d.jsx)(e.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function n({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,g.cn)("flex flex-col gap-2 text-center sm:text-left",a),...b})}function o({className:a,showCloseButton:b=!1,children:c,...e}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,g.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...e,children:[c,b&&(0,d.jsx)(f.Close,{asChild:!0,children:(0,d.jsx)(h.$,{variant:"outline",children:"Close"})})]})}function p({className:a,...b}){return(0,d.jsx)(f.Title,{"data-slot":"dialog-title",className:(0,g.cn)("text-lg leading-none font-semibold",a),...b})}function q({className:a,...b}){return(0,d.jsx)(f.Description,{"data-slot":"dialog-description",className:(0,g.cn)("text-muted-foreground text-sm",a),...b})}},17974:(a,b,c)=>{c.d(b,{Mo:()=>u,td:()=>t});var d=c(10837),e=c(21968),f=c(9222),g=c(76549),h=c(86460),i=c(35803),j=c(86577);c(49599);var k=c(42424),l=c(20170),m=c(55732),n=c(93524),o=c(54722),p=c(42087),q=c(22629),r=c(43830);function s({value:a,onChange:b,onSend:c,pending:e,disabled:g,disabledReason:m,placeholder:n,sendLabel:o,layout:q,controllableExecution:s}){let t=(0,f.c)("agentConnections"),u=0===a.trim().length,v=g||e||u,w=(0,d.jsxs)(k.$,{type:"button",size:"sm",onClick:c,disabled:v,"aria-label":o,className:"h-8 shrink-0 gap-1.5 rounded-lg bg-[#C67A52] px-3.5 text-[13px] font-medium text-white hover:bg-[#B56A44] disabled:bg-[#E5E0D8] disabled:text-[#9A9A9A]",children:[e?(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 motion-safe:animate-spin","aria-hidden":!0}):(0,d.jsx)(i.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),o]}),x=s??null,y=x?"running"===x.status?(0,d.jsx)(r.yw,{exec:x}):"interrupted"===x.status&&"user"===x.interruptedReason?(0,d.jsx)(r.MG,{exec:x}):"interrupted"===x.status&&"crash"===x.interruptedReason?(0,d.jsx)("span",{className:"text-[11px] font-medium text-[#9A8C7E]",children:t("execCrashAutoRecovers")}):null:null,z=(0,d.jsxs)("div",{className:"absolute bottom-2 right-2 z-10 flex shrink-0 items-center gap-2",children:[y,w]}),A=g?(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[12px] font-medium text-[#B45309]",children:[(0,d.jsx)(j.A,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,d.jsx)("span",{className:"min-w-0",children:m})]}):null;return(0,d.jsxs)("div",{className:"flex flex-col gap-2.5",children:[A,(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(l.T,{value:a,onChange:a=>b(a.target.value),onKeyDown:a=>{(0,p.P)(a)||"Enter"===a.key&&!a.shiftKey&&(a.preventDefault(),v||c())},disabled:g||e,placeholder:n,rows:3,className:"min-h-[76px] resize-none rounded-xl border-[#E5E0D8] bg-white pb-12 text-[14px] text-[#2C2C2C] placeholder:text-[#9A9A9A] focus-visible:border-[#C67A52] focus-visible:ring-[#C67A52]/30"}),z]})]})}function t({sessionUuid:a,originOnline:b,layout:c="inline",controllableExecution:h}){let i=(0,f.c)("agentConnections"),j=(0,f.c)("daemonChat"),[k,l]=(0,e.useState)(""),[m,p]=(0,e.useState)(!1),q=async()=>{let b=k.trim();if(0!==b.length){p(!0);try{let c=await (0,n.tm)(`/api/daemon-sessions/${a}/instruction`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instructionText:b})});if(!c.ok)return void g.oR.error(await v(c,i("instructionError")));l("")}catch(a){o.q.error("Failed to send daemon instruction:",a),g.oR.error(i("instructionError"))}finally{p(!1)}}};return(0,d.jsx)(s,{value:k,onChange:l,onSend:q,pending:m,disabled:!b,disabledReason:b?null:j("originOfflineNote"),placeholder:j("replyPlaceholder"),sendLabel:i("send"),layout:c,controllableExecution:h})}function u({agentUuid:a,onlineConnections:b,layout:c,hideHeader:h=!1,onStarted:i}){let j=(0,f.c)("agentConnections"),k=(0,q.Z5)(),[l,p]=(0,e.useState)(b[0]?.uuid??""),[r,t]=(0,e.useState)(""),[u,w]=(0,e.useState)(!1),x=async()=>{let b=r.trim();if(l&&0!==b.length){w(!0);try{let c=await (0,n.tm)("/api/daemon-sessions/ad-hoc",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentUuid:a,connectionUuid:l,instructionText:b})});if(!c.ok)return void g.oR.error(await v(c,j("instructionError")));let d=null;try{let a=await c.json();a?.success&&a.data?.session&&(d=a.data.session)}catch{}g.oR.success(j("adHocSessionStarted")),t(""),d&&i?.(d)}catch(a){o.q.error("Failed to start ad-hoc daemon session:",a),g.oR.error(j("instructionError"))}finally{w(!1)}}};return(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-xl border border-dashed border-[#E5E0D8] bg-white p-4",children:[!h&&(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[13px] font-semibold text-[#2C2C2C]",children:j("adHocTitle")}),(0,d.jsx)("span",{className:"text-[12px] leading-relaxed text-[#9A9A9A]",children:j("adHocBody")})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:j("pickConnection")}),(0,d.jsxs)(m.l6,{value:l,onValueChange:p,children:[(0,d.jsx)(m.bq,{"aria-label":j("pickConnection"),className:"w-full rounded-lg border-[#E5E0D8] bg-white text-[13px] text-[#2C2C2C]",children:(0,d.jsx)(m.yv,{placeholder:j("pickConnectionPlaceholder")})}),(0,d.jsx)(m.gC,{children:b.map(a=>(0,d.jsx)(m.eb,{value:a.uuid,children:(a.agentName?.trim()||j("unknownAgent"))+" \xb7 "+k(a.clientType)+(a.host?" \xb7 "+a.host:"")},a.uuid))})]})]}),(0,d.jsx)(s,{value:r,onChange:t,onSend:x,pending:u,disabled:!1,disabledReason:null,placeholder:j("sendInstructionPlaceholder"),sendLabel:j("startSession"),layout:c})]})}async function v(a,b){try{let b=await a.json();if(b&&"string"==typeof b.error&&b.error)return b.error}catch{}return b}},20170:(a,b,c)=>{c.d(b,{T:()=>f});var d=c(10837);c(21968);var e=c(96307);function f({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,e.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),...b})}},22629:(a,b,c)=>{c.d(b,{BS:()=>n,Vq:()=>g,Z5:()=>l,l5:()=>k,le:()=>f,pb:()=>j,tN:()=>m});var d=c(21968),e=c(9222);function f(a=1e3){let[b,c]=(0,d.useState)(()=>Date.now());return b}function g(){let a=(0,e.c)("time");return(0,d.useCallback)((b,c)=>{let d=c-new Date(b).getTime(),e=Math.floor(d/6e4),f=Math.floor(d/36e5),g=Math.floor(d/864e5);return e<1?a("justNow"):e<60?a("minutesAgo",{minutes:e}):f<24?a("hoursAgo",{hours:f}):a("daysAgo",{days:g})},[a])}function h(a){return a<10?`0${a}`:String(a)}function i(){let a=(0,e.c)("agentConnections");return(0,d.useCallback)((b,c)=>{let d=Math.floor(Math.max(0,c-new Date(b).getTime())/1e3),e=Math.floor(d/86400),f=Math.floor(d%86400/3600),g=Math.floor(d%3600/60),i=`${h(f)}:${h(g)}:${h(d%60)}`;return e>0?a("uptimeMonoDays",{days:e,time:i}):i},[a])}let j=i,k=i;function l(){let a=(0,e.c)("agentConnections");return(0,d.useCallback)(b=>{switch(b){case"claude_code":return a("clientClaudeCode");case"openclaw":return a("clientOpenclaw");default:return a("clientUnknown")}},[a])}function m(){let a=(0,e.c)("agentConnections");return(0,d.useCallback)(b=>{switch(b){case"task":return a("entityTask");case"idea":return a("entityIdea");case"proposal":return a("entityProposal");case"document":return a("entityDocument");case"daemon_session":return a("entityConversation");default:return a("entityUnknown")}},[a])}function n(a){if(!a.projectUuid)return null;switch(a.entityType){case"task":return`/projects/${a.projectUuid}/tasks/${a.entityUuid}`;case"idea":return`/projects/${a.projectUuid}/dashboard?panel=${a.entityUuid}`;case"proposal":return`/projects/${a.projectUuid}/proposals/${a.entityUuid}`;case"document":return`/projects/${a.projectUuid}/documents/${a.entityUuid}`;default:return null}}},24672:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{k:()=>y});var e=c(10837),f=c(21968),g=c(9222),h=c(21692),i=c(21790),j=c(86577),k=c(24383),l=c(86460),m=c(85487),n=c(49599),o=c(42424),p=c(35198),q=c(74645),r=c(82658),s=c(87625),t=c(17974),u=c(22629),v=c(37207),w=a([v]);function x({label:a,value:b,mono:c}){return(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-[10px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:a}),(0,e.jsx)("div",{className:`mt-0.5 truncate text-[13px] font-medium text-[#2C2C2C] ${c?"font-mono":""}`,children:b})]})}function y({session:a,turns:b,title:c,loading:d,error:w,originConnection:y,originOnline:z,sessionExecutions:A,executionsByUuid:B,footerLayout:C="inline",hasMoreEarlier:D,loadingEarlier:E,onLoadEarlier:F}){let G=(0,g.c)("daemonChat"),H=(0,u.le)(),I=(0,u.Vq)(),J=(0,u.pb)(),K=(0,u.l5)(),L=y?.agentName?.trim()||G("roleAgent"),M=(0,f.useMemo)(()=>b.find(a=>"running"===a.status)??b[b.length-1]??null,[b]),N=(0,f.useMemo)(()=>{let a=A.find(a=>"running"===a.status);if(a)return a;let b=A.find(a=>"interrupted"===a.status&&"user"===a.interruptedReason);return b||(A.find(a=>"interrupted"===a.status&&"crash"===a.interruptedReason)??null)},[A]),O=(0,f.useMemo)(()=>N&&"running"===N.status?N:null,[N]),P=(0,f.useRef)(null);b[b.length-1]?.uuid,b[b.length-1]?.messages.length;let Q=a?.status==="ended";return(0,e.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-2 px-6 py-2.5 lg:gap-3 lg:py-4",children:[(0,e.jsx)("h3",{className:"truncate text-[17px] font-semibold text-[#2C2C2C]",children:c}),(0,e.jsxs)(r.Nt,{children:[(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)(n.E,{variant:"secondary",className:`border-0 px-2 py-0.5 text-[10px] font-medium ${Q?"bg-[#F0EDE8] text-[#6B6B6B]":"bg-[#DCFCE7] text-[#15803D]"}`,children:G(Q?"statusEnded":"statusActive")}),M&&"running"===M.status&&(0,e.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[11px] font-medium text-[#C67A52]",children:[(0,e.jsxs)("span",{className:"relative inline-flex h-2 w-2 items-center justify-center",children:[(0,e.jsx)("span",{className:"absolute inline-flex h-full w-full rounded-full bg-[#C67A52] opacity-40 motion-safe:animate-ping"}),(0,e.jsx)("span",{className:"relative inline-flex h-1 w-1 rounded-full bg-[#C67A52]"})]}),G("running"),O?.startedAt&&(0,e.jsx)("span",{className:"font-mono tabular-nums text-[#C67A52]",title:G("runningElapsedLabel"),children:K(O.startedAt,H)})]}),y&&(0,e.jsxs)(r.R6,{className:"group ml-auto inline-flex items-center gap-1.5 text-[12px] font-medium text-[#6B6B6B] hover:text-[#2C2C2C]",children:[(0,e.jsx)(h.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),G("detailsLabel"),(0,e.jsx)(i.A,{className:"h-3.5 w-3.5 transition-transform group-data-[state=open]:rotate-180","aria-hidden":!0})]})]}),y&&(0,e.jsx)(r.Ke,{children:(0,e.jsxs)("div",{className:"mt-3 flex flex-col gap-3 rounded-xl border border-[#EFEBE4] bg-[#FCFBF8] p-4",children:[(0,e.jsx)(s.k,{connection:y,size:"sm"}),(0,e.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[z&&(0,e.jsx)(x,{label:G("detailUptime"),value:J(y.connectedAt,H),mono:!0}),(0,e.jsx)(x,{label:G("detailHost"),value:""===y.host?G("detailsHostUnknown"):y.host,mono:!0}),y.startedAt&&(0,e.jsx)(x,{label:G("detailStarted"),value:I(y.startedAt,H)})]})]})})]})]}),(0,e.jsx)("div",{className:"h-px w-full bg-[#EFEBE4]"}),w?(0,e.jsx)("div",{className:"flex flex-1 items-center justify-center p-8",children:(0,e.jsxs)(p.Zp,{className:"items-center gap-3 rounded-2xl border-[#E7D9C9] bg-[#FFF9F3] p-8 text-center shadow-none",children:[(0,e.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-[#D9770615]",children:(0,e.jsx)(j.A,{className:"h-6 w-6 text-[#B45309]"})}),(0,e.jsx)("h4",{className:"text-base font-semibold text-[#92400E]",children:G("loadErrorTitle")}),(0,e.jsx)("p",{className:"max-w-md text-[13px] leading-relaxed text-[#6B6B6B]",children:G("loadErrorBody")})]})}):d?(0,e.jsx)("div",{className:"flex flex-1 items-center justify-center p-8 text-[13px] text-[#9A9A9A]",children:G("transcriptLoading")}):(0,e.jsx)(q.F,{className:"daemon-transcript-scroll min-h-0 w-full flex-1",children:(0,e.jsxs)("div",{className:"flex w-full min-w-0 flex-col gap-3 px-6 py-3 lg:gap-5 lg:py-5",children:[(0,e.jsxs)("p",{className:"flex items-start gap-1.5 text-[11px] leading-relaxed text-[#9A9A9A]",children:[(0,e.jsx)(k.A,{className:"mt-0.5 h-3 w-3 shrink-0","aria-hidden":!0}),(0,e.jsx)("span",{children:G("privacyNote")})]}),D&&(0,e.jsx)("div",{className:"flex justify-center",children:(0,e.jsxs)(o.$,{variant:"ghost",size:"sm",onClick:F,disabled:E,className:"h-8 gap-1.5 rounded-lg text-[12px] font-medium text-[#C67A52] hover:bg-[#FBF4EF] hover:text-[#C67A52]",children:[E?(0,e.jsx)(l.A,{className:"h-3.5 w-3.5 motion-safe:animate-spin","aria-hidden":!0}):(0,e.jsx)(m.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),G(E?"loadingEarlier":"loadEarlier")]})}),b.map(a=>(0,e.jsx)(v.P,{turn:a,agentName:L,linkedExecution:a.executionUuid?B.get(a.executionUuid)??null:null},a.uuid)),(0,e.jsx)("div",{ref:P})]})}),!w&&a&&(0,e.jsx)("div",{className:"flex flex-col gap-3 border-t border-[#EFEBE4] bg-[#FAF8F4] px-6 py-2.5 lg:py-4",children:(0,e.jsx)(t.td,{sessionUuid:a.uuid,originOnline:z,layout:C,controllableExecution:N})})]})}v=(w.then?(await w)():w)[0],d()}catch(a){d(a)}})},24775:(a,b,c)=>{c.d(b,{Bs:()=>s});var d=c(10837),e=c(21968),f=c(81512),g=c.n(f),h=c(9222),i=c(9810),j=c(14973),k=c(37060),l=c(42424),m=c(54722);let n="@chorus-aidlc/chorus",o=`npx ${n} daemon`,p=`npx ${n} login`,q="/onboarding";function r({command:a}){let b=(0,h.c)("daemonConnectCta"),[c,f]=(0,e.useState)(!1),g=async()=>{try{await navigator.clipboard?.writeText(a),f(!0),setTimeout(()=>f(!1),2e3)}catch(a){m.q.error("Failed to copy daemon command:",a)}};return(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("code",{className:"flex-1 overflow-x-auto rounded-md bg-foreground px-3 py-2 font-mono text-[12.5px] leading-relaxed text-background",children:a}),(0,d.jsx)(l.$,{variant:"outline",size:"sm",onClick:g,"aria-label":b(c?"copied":"copy"),"aria-live":"polite",className:"shrink-0",children:c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.A,{className:"mr-1 h-4 w-4 text-green-500"}),b("copied")]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.A,{className:"mr-1 h-4 w-4"}),b("copy")]})})]})}function s({variant:a}){let b=(0,h.c)("daemonConnectCta");return"compact"===a?(0,d.jsxs)("div",{className:"flex flex-col gap-2.5 px-1 py-1.5",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(k.A,{className:"mt-0.5 h-4 w-4 shrink-0 text-[#C67A52]","aria-hidden":!0}),(0,d.jsx)("p",{className:"text-[12.5px] leading-relaxed text-[#6B6B6B]",children:b("body")})]}),(0,d.jsx)(r,{command:o}),(0,d.jsx)("p",{className:"text-[11.5px] leading-relaxed text-[#9A9A9A]",children:b("loginNote",{command:p})}),(0,d.jsx)(g(),{href:q,className:"text-[12px] font-medium text-[#C67A52] hover:text-[#A65F3C] hover:underline",children:b("learnMore")})]}):(0,d.jsxs)("div",{className:"flex w-full flex-col gap-3 rounded-xl border border-[#EFEBE4] bg-[#FCFBF8] p-5 text-left",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(k.A,{className:"h-4 w-4 text-[#C67A52]","aria-hidden":!0}),(0,d.jsx)("h3",{className:"text-[14px] font-semibold text-[#2C2C2C]",children:b("headline")})]}),(0,d.jsx)("p",{className:"text-[13px] leading-relaxed text-[#6B6B6B]",children:b("bodyLong")}),(0,d.jsx)(r,{command:o}),(0,d.jsx)("p",{className:"text-[12px] leading-relaxed text-[#9A9A9A]",children:b("loginNote",{command:p})}),(0,d.jsx)(g(),{href:q,className:"text-[12.5px] font-medium text-[#C67A52] hover:text-[#A65F3C] hover:underline",children:b("learnMore")})]})}},28976:(a,b,c)=>{c.d(b,{hD:()=>e}),c(33513);let d={BAD_REQUEST:"BAD_REQUEST",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",NOT_FOUND:"NOT_FOUND",CONFLICT:"CONFLICT",VALIDATION_ERROR:"VALIDATION_ERROR",ALREADY_CLAIMED:"ALREADY_CLAIMED",NOT_CLAIMED:"NOT_CLAIMED",INVALID_STATUS_TRANSITION:"INVALID_STATUS_TRANSITION",PERMISSION_DENIED:"PERMISSION_DENIED",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR"};d.BAD_REQUEST,d.UNAUTHORIZED,d.FORBIDDEN,d.NOT_FOUND,d.CONFLICT,d.VALIDATION_ERROR,d.ALREADY_CLAIMED,d.NOT_CLAIMED,d.INVALID_STATUS_TRANSITION,d.PERMISSION_DENIED,d.INTERNAL_ERROR,d.DATABASE_ERROR,c(97307),new(c(16698)).AsyncLocalStorage;class e extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}},30457:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{OU:()=>n,UL:()=>q,Vu:()=>m,aQ:()=>o,u0:()=>l,y_:()=>p});var e=c(71255),f=c(62729),g=c(50530),h=a([e,g]);function i(){return{status:"active",lastActiveAt:{gt:new Date(Date.now()-36e5)}}}async function j(a){let b=await e.z.agentSession.findUnique({where:{uuid:a},select:{status:!0}});b&&"closed"!==b.status&&await e.z.agentSession.update({where:{uuid:a},data:{lastActiveAt:new Date}})}function k(a){return{uuid:a.uuid,agentUuid:a.agentUuid,name:a.name,description:a.description,status:a.status,lastActiveAt:a.lastActiveAt.toISOString(),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 l(a,b){return(await e.z.agentSession.findMany({where:{companyUuid:a,agentUuid:b,...i()},include:{taskCheckins:{where:{checkoutAt:null},select:{taskUuid:!0,checkinAt:!0,checkoutAt:!0}}},orderBy:{createdAt:"desc"}})).map(k)}async function m(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}}),await j(b);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 k(g)}async function n(a,b){return(await e.z.sessionTaskCheckin.findMany({where:{taskUuid:b,checkoutAt:null,session:{companyUuid:a,...i()}},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 o(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 k(d)}async function p(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,...i()}},_count:{taskUuid:!0}}),d={};for(let a of c)d[a.taskUuid]=a._count.taskUuid;return d}async function q(a,b){let c=await e.z.sessionTaskCheckin.findMany({where:{checkoutAt:null,task:{projectUuid:b},session:{companyUuid:a,...i()}},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"}}),j=new Set,k=[];for(let a of h)if(!(!a.assigneeUuid||j.has(a.assigneeUuid))&&(j.add(a.assigneeUuid),k.push(a),f.length+k.length>=7))break;if(k.length>0){let a=await e.z.agent.findMany({where:{uuid:{in:k.map(a=>a.assigneeUuid)}},select:{uuid:!0,name:!0}}),b=new Map(a.map(a=>[a.uuid,a.name]));for(let a of k){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)}})},34718:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(71255),e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},34923:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AM:()=>l,Xs:()=>k});var e=c(71255),f=c(92633),g=c(92592),h=c(61076),i=c(94100),j=a([e,f,g,h,i]);[e,f,g,h,i]=j.then?(await j)():j;let n=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\)/gi;function k(a){let b,c=[],d=new Set;for(n.lastIndex=0;null!==(b=n.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 l(a){let{companyUuid:b,sourceType:c,sourceUuid:d,content:h,actorType:i,actorUuid:j,projectUuid:l,entityTitle:o}=a,p=k(h);if(0===p.length)return;let q=p.filter(a=>a.type!==i||a.uuid!==j);if(0===q.length)return;let r=[];for(let a of q)await m(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:i,actorUuid:j}))});let s=await (0,f.lR)(i,j)??"Someone",t=await e.z.project.findUnique({where:{uuid:l},select:{name:!0}}),u=t?.name??"Unknown Project",v=function(a){let b=a.replace(n,"@$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:l,recipientType:a.type,recipientUuid:a.uuid,entityType:w,entityUuid:x,entityTitle:o,projectName:u,action:"mentioned",message:c,actorType:i,actorUuid:j,actorName:s})}y.length>0&&await g.Xm(y)}async function m(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)}})},37207:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>t});var e=c(10837),f=c(9222),g=c(81512),h=c.n(g),i=c(51592),j=c(61131),k=c(63811),l=c(92640),m=c(43926),n=c(86460),o=c(35312),p=c(49599),q=c(22629),r=c(60017),s=a([r]);r=(s.then?(await s)():s)[0];let u={task_assigned:{icon:i.A,labelKey:"triggerTask"},mentioned:{icon:j.A,labelKey:"triggerMention"},elaboration:{icon:k.A,labelKey:"triggerElaboration"},human_instruction:{icon:l.A,labelKey:"triggerInstruction"},resume:{icon:m.A,labelKey:"triggerResume"}};function t({turn:a,agentName:b,linkedExecution:c}){let d=(0,f.c)("daemonChat"),g=u[a.trigger],j=g?.icon??i.A,k=d(g?g.labelKey:"triggerUnknown"),l="running"===a.status,m="pending"===a.status,s=d("running"===a.status?"turnStatusRunning":"pending"===a.status?"turnStatusPending":"turnStatusEnded"),t=a.messages.filter(a=>!a.uuid.startsWith("synthetic:")),v=c?(0,q.BS)(c):null,w=d(c?.entityType==="idea"?"openIdea":"openTask");return(0,e.jsxs)("div",{className:"flex gap-3",children:[(0,e.jsx)("div",{"aria-hidden":!0,className:`relative w-[3px] shrink-0 rounded-full ${l||m?"bg-[#C67A52]":"bg-[#EFEBE4]"}`,children:l&&(0,e.jsx)("span",{className:"absolute inset-0 rounded-full bg-[#C67A52] opacity-40 motion-safe:animate-pulse"})}),(0,e.jsxs)("div",{className:"min-w-0 flex-1 pb-2",children:[(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2.5 gap-y-1",children:[(0,e.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,e.jsx)(j,{className:"h-3.5 w-3.5 text-[#C67A52]","aria-hidden":!0}),(0,e.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-wide text-[#2C2C2C]",children:k})]}),(0,e.jsx)("span",{className:"font-mono text-[10px] uppercase tracking-wide text-[#9A9A9A]",children:d("turnLabel",{seq:a.seq})}),(0,e.jsxs)(p.E,{variant:"secondary",className:`gap-1 border-0 px-1.5 py-0 text-[10px] font-medium ${l?"bg-[#FBF0E8] text-[#C67A52]":m?"bg-[#F0EDE8] text-[#9A8C7E]":"bg-[#F0EDE8] text-[#6B6B6B]"}`,children:[l&&(0,e.jsx)(n.A,{className:"h-2.5 w-2.5 motion-safe:animate-spin","aria-hidden":!0}),s]}),v&&(0,e.jsxs)(h(),{href:v,className:"group inline-flex items-center gap-1 text-[11px] font-medium text-[#C67A52] hover:text-[#B56A44]",children:[w,(0,e.jsx)(o.A,{className:"h-3 w-3","aria-hidden":!0})]})]}),a.promptText&&a.promptText.trim().length>0&&(0,e.jsx)("p",{className:"mt-2 whitespace-pre-wrap break-words rounded-lg bg-[#FCFBF8] px-3 py-2 text-[13px] leading-relaxed text-[#6B6B6B]",children:a.promptText}),(0,e.jsx)("div",{className:"mt-3 flex min-w-0 flex-col gap-3",children:t.length>0?t.map(a=>(0,e.jsx)(r.Q,{message:a,agentName:b},a.uuid)):(0,e.jsx)("p",{className:"text-[12px] italic text-[#9A9A9A]",children:d("turnNoMessages")})})]})]})}d()}catch(a){d(a)}})},42087:(a,b,c)=>{c.d(b,{P:()=>d});function d(a){return("nativeEvent"in a?a.nativeEvent:a).isComposing||229===a.keyCode}},43830:(a,b,c)=>{c.d(b,{MG:()=>y,lb:()=>z,wL:()=>A,yw:()=>x});var d=c(10837),e=c(21968),f=c(9222),g=c(76549),h=c(81512),i=c.n(h),j=c(27560),k=c(86460),l=c(80697),m=c(93983),n=c(43332),o=c(59129),p=c(35312),q=c(25355),r=c(49599),s=c(42424),t=c(6019),u=c(93524),v=c(54722),w=c(22629);function x({exec:a}){let b=(0,f.c)("agentConnections"),c=(0,f.c)("common"),[h,i]=(0,e.useState)(!1),[l,m]=(0,e.useState)(!1),n=a.entityTitle?.trim()||b("execEntityUnknown"),o=async()=>{m(!0);try{let c=await (0,u.tm)("/api/daemon/control",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"interrupt",targetConnectionUuid:a.connectionUuid,entityType:a.entityType,entityUuid:a.entityUuid})});if(!c.ok){let a=b("interruptError");try{let b=await c.json();b&&"string"==typeof b.error&&b.error&&(a=b.error)}catch{}g.oR.error(a);return}g.oR.success(b("interruptSuccess",{title:n})),i(!1)}catch(a){v.q.error("Failed to request daemon interrupt:",a),g.oR.error(b("interruptError"))}finally{m(!1)}};return(0,d.jsxs)(t.Lt,{open:h,onOpenChange:a=>!l&&i(a),children:[(0,d.jsx)(t.tv,{asChild:!0,children:(0,d.jsxs)(s.$,{variant:"ghost",size:"sm","aria-label":b("interruptAria"),className:"h-7 shrink-0 gap-1.5 rounded-lg px-2.5 text-[12px] font-medium text-[#B45309] hover:bg-[#FEF3C7] hover:text-[#92400E]",children:[(0,d.jsx)(j.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),b("interrupt")]})}),(0,d.jsxs)(t.EO,{children:[(0,d.jsxs)(t.wd,{children:[(0,d.jsx)(t.r7,{children:b("interruptConfirmTitle")}),(0,d.jsx)(t.$v,{children:b("interruptConfirmBody",{title:n})})]}),(0,d.jsxs)(t.ck,{children:[(0,d.jsx)(t.Zr,{disabled:l,children:c("cancel")}),(0,d.jsx)(t.Rx,{variant:"destructive",disabled:l,onClick:a=>{a.preventDefault(),o()},children:l?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(k.A,{className:"mr-2 h-4 w-4 motion-safe:animate-spin","aria-hidden":!0}),b("interrupting")]}):b("interruptConfirmAction")})]})]})]})}function y({exec:a}){let b=(0,f.c)("agentConnections"),[c,h]=(0,e.useState)(!1),i=a.entityTitle?.trim()||b("execEntityUnknown"),j=async()=>{h(!0);try{let c=await (0,u.tm)("/api/daemon/resume",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connectionUuid:a.connectionUuid,entityType:a.entityType,entityUuid:a.entityUuid})});if(!c.ok){let a=b("resumeError");try{let b=await c.json();b&&"string"==typeof b.error&&b.error&&(a=b.error)}catch{}g.oR.error(a);return}g.oR.success(b("resumeSuccess",{title:i}))}catch(a){v.q.error("Failed to request daemon resume:",a),g.oR.error(b("resumeError"))}finally{h(!1)}};return(0,d.jsxs)(s.$,{variant:"ghost",size:"sm",disabled:c,"aria-label":b("resumeAria"),onClick:()=>void j(),className:"h-7 shrink-0 gap-1.5 rounded-lg px-2.5 text-[12px] font-medium text-[#15803D] hover:bg-[#DCFCE7] hover:text-[#166534]",children:[c?(0,d.jsx)(k.A,{className:"h-3.5 w-3.5 motion-safe:animate-spin","aria-hidden":!0}):(0,d.jsx)(l.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),c?b("resuming"):b("resume")]})}function z({exec:a,nowMs:b,layout:c="inline"}){let e=(0,f.c)("agentConnections"),g=(0,w.l5)(),h=(0,w.tN)(),j="running"===a.status,l="interrupted"===a.status,s=l&&"user"===a.interruptedReason,t="stacked"===c,u="daemon_session"===a.entityType,v=u?a.entityTitle?.trim()||e("execConversation"):a.entityTitle?.trim()||e("execEntityUnknown"),z=(0,w.BS)(a),A=t?"line-clamp-2":"truncate",B=(0,d.jsx)("span",{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${j?"bg-[#C67A5214]":l?"bg-[#FEF3C7]":"bg-[#F0EDE8]"}`,"aria-hidden":!0,children:j?(0,d.jsx)(k.A,{className:"h-4 w-4 text-[#C67A52] motion-safe:animate-spin"}):l?(0,d.jsx)(m.A,{className:"h-4 w-4 text-[#B45309]"}):(0,d.jsx)(n.A,{className:"h-4 w-4 text-[#9A9A9A]"})}),C=(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[u?(0,d.jsx)(o.A,{className:"h-3.5 w-3.5 shrink-0 text-[#C67A52]","aria-hidden":!0}):(0,d.jsx)(r.E,{variant:"secondary",className:"shrink-0 border-0 bg-[#F0EDE8] px-1.5 py-0 text-[10px] font-medium text-[#6B6B6B]",children:h(a.entityType)}),z?(0,d.jsxs)(i(),{href:z,className:`group inline-flex min-w-0 items-center gap-1.5 ${A} text-[14px] font-medium text-[#2C2C2C] hover:text-[#C67A52]`,children:[(0,d.jsx)("span",{className:A,children:v}),(0,d.jsx)(p.A,{className:"h-3.5 w-3.5 shrink-0 text-[#C8C3BA] group-hover:text-[#C67A52]"})]}):(0,d.jsx)("span",{className:`block ${A} text-[14px] font-medium ${u?"text-[#2C2C2C]":"text-[#9A9A9A]"}`,children:v})]}),a.rootIdeaTitle&&(0,d.jsxs)("div",{className:"mt-1 flex items-center gap-1.5",children:[(0,d.jsx)(q.A,{className:"h-3 w-3 shrink-0 text-[#9A8C7E]","aria-hidden":!0}),(0,d.jsx)("span",{className:`${t?"":"truncate"} text-[11px] text-[#9A8C7E]`,children:e("execSession",{idea:a.rootIdeaTitle})})]})]}),D=j?(0,d.jsxs)(d.Fragment,{children:[a.startedAt&&(0,d.jsx)("span",{className:"font-mono text-[12px] font-medium tabular-nums text-[#15803D]",title:e("execElapsedLabel"),children:g(a.startedAt,b)}),(0,d.jsx)(x,{exec:a})]}):l?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(r.E,{variant:"secondary",className:"shrink-0 gap-1 border-0 bg-[#FEF3C7] px-2 py-0.5 text-[10px] font-medium text-[#B45309]",children:[(0,d.jsx)(m.A,{className:"h-3 w-3","aria-hidden":!0}),e(s?"execInterruptedUser":"execInterruptedCrash")]}),s?(0,d.jsx)(y,{exec:a}):(0,d.jsx)("span",{className:"text-[11px] font-medium text-[#9A8C7E]",children:e("execCrashAutoRecovers")})]}):(0,d.jsx)("span",{className:"text-[11px] font-medium text-[#9A9A9A]",children:e("execWaiting")});return t?(0,d.jsxs)("li",{className:"flex flex-col gap-2 rounded-xl border border-[#E5E0D8] bg-white px-3.5 py-3",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[B,C]}),(0,d.jsx)("div",{className:"flex flex-wrap items-center gap-2 pl-11",children:D})]}):(0,d.jsxs)("li",{className:"flex items-center gap-3 rounded-xl border border-[#E5E0D8] bg-white px-3.5 py-3",children:[B,C,j||l?(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:D}):(0,d.jsx)("span",{className:"shrink-0 text-[11px] font-medium text-[#9A9A9A]",children:e("execWaiting")})]})}function A({icon:a,label:b,count:c,children:e}){return(0,d.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(a,{className:"h-4 w-4 text-[#C67A52]","aria-hidden":!0}),(0,d.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-wide text-[#6B6B6B]",children:b}),(0,d.jsx)(r.E,{variant:"secondary",className:"border-0 bg-[#F0EDE8] px-1.5 py-0 font-mono text-[10px] font-medium text-[#9A8C7E]",children:c})]}),(0,d.jsx)("ul",{className:"flex flex-col gap-2",children:e})]})}},45148:(a,b,c)=>{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}}}},45937:(a,b,c)=>{c.d(b,{m:()=>e});var d=c(10837);function e({online:a,size:b="sm"}){let c="md"===b?"h-2.5 w-2.5":"h-2 w-2";return a?(0,d.jsxs)("span",{"aria-hidden":!0,className:`relative inline-flex ${c} items-center justify-center`,children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full rounded-full bg-[#22C55E] opacity-30 motion-safe:animate-ping"}),(0,d.jsx)("span",{className:`relative inline-flex ${"md"===b?"h-1.5 w-1.5":"h-1 w-1"} rounded-full bg-[#22C55E]`})]}):(0,d.jsx)("span",{"aria-hidden":!0,className:`${c} rounded-full bg-[#9A9A9A] opacity-60`})}c(49599)},49599:(a,b,c)=>{c.d(b,{E:()=>i});var d=c(10837);c(21968);var e=c(35973),f=c(11156),g=c(96307);let h=(0,e.F)("inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline",success:"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100",warning:"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b="default",asChild:c=!1,...e}){let i=c?f.bL:"span";return(0,d.jsx)(i,{"data-slot":"badge","data-variant":b,className:(0,g.cn)(h({variant:b}),a),...e})}},50530:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cm:()=>M,Ew:()=>F,Fp:()=>y,IM:()=>L,K4:()=>u,Pf:()=>A,QK:()=>x,QL:()=>I,Qi:()=>D,UT:()=>v,Vk:()=>s,_T:()=>B,cn:()=>C,gg:()=>t,j9:()=>J,lC:()=>w,vQ:()=>K,vq:()=>z});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=c(74432),n=a([e,f,i,j,k]);[e,f,i,j,k]=n.then?(await n)():n;let N={total:0,required:0,passed:0,failed:0,pending:0,requiredPassed:0,requiredFailed:0,requiredPending:0};function o(a){if(0===a.length)return{status:"not_started",summary:{...N}};let b={...N,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 p(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 q(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(p),{status:i,summary:j}=o(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 r(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(p),{status:j,summary:k}=o(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 O={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 s({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,...O}}),e.z.task.count({where:j})]),m=await (0,i.uA)(a,"task",k.map(a=>a.uuid));return{tasks:await r(k,m),total:l}}async function t(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},...O}});if(!c)return null;let d=await e.z.comment.count({where:{companyUuid:a,targetType:"task",targetUuid:b}});return q(c,d)}async function u(a,b){return e.z.task.findFirst({where:{uuid:b,companyUuid:a}})}async function v(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"}),q(b)}async function w(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&&G(f.companyUuid,f.project.uuid,"task",f.uuid,f.title,d,b.description,c.actorType,c.actorUuid).catch(a=>l.default.error({err:a},"Failed to process task mentions")),q(f)}async function x({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"}),q(b)}catch(a){if((0,h.Ik)(a))throw new h.Yy("Task");throw a}}async function y(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"}),q(b)}catch(a){if((0,h.Ik)(a))throw new h.nm("Task");throw a}}async function z(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 A(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");if(!(0,m.hY)(c))throw Error(m.se);let f=(0,m.Ch)(c),h=await e.z.$transaction(async a=>(await a.acceptanceCriterion.deleteMany({where:{taskUuid:b}}),f.length>0&&await a.acceptanceCriterion.createMany({data:f.map((a,c)=>({taskUuid:b,description:a.description,required:a.required,sortOrder:c}))}),a.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}})));return g.B.emitChange({companyUuid:a,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),h.map(p)}async function B(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"}),E(a,b)}async function C(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"}),E(a,b)}async function D(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");if(!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 E(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(p),{status:f,summary:g}=o(c);return{items:d,status:f,summary:g}}async function F(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}=o(b),d=b.filter(a=>a.required&&"passed"!==a.status).map(p);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 G(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 H(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 I(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 H(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 J(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 K(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:O});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 L(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 M(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)}})},53870:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cs:()=>m,NH:()=>n,Nn:()=>r,lU:()=>q,ui:()=>o,yZ:()=>l});var e=c(71255),f=c(92633),g=c(62729),h=c(67738),i=c(97307),j=a([e,f,h]);[e,f,h]=j.then?(await j)():j;let s=i.default.child({module:"document.service"});async function k(a,b=!1){let c=await (0,f.LS)(a.createdByUuid),d={uuid:a.uuid,type:a.type,title:a.title,version:a.version,proposalUuid:a.proposalUuid,createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()};return b&&void 0!==a.content&&(d.content=a.content),a.project&&(d.project=a.project),d}async function l(a,b,c){if(0===b.length)return[];let d={companyUuid:a,proposalUuid:{in:b},...c&&{type:c}},f=await e.z.document.findMany({where:d,orderBy:{createdAt:"desc"},select:{uuid:!0,type:!0,title:!0,content:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return Promise.all(f.map(a=>k(a,!0)))}async function m(a,b){return e.z.document.findFirst({where:{uuid:b,companyUuid:a}})}async function n(a){return e.z.document.findFirst({where:{uuid:a}})}async function o(a){let b=await e.z.document.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,type:a.type,title:a.title,content:a.content,version:1,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,type:!0,title:!0,content:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return"report"===a.type&&await p(a,b.uuid),k(b,!0)}async function p(a,b){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"document",entityUuid:b,action:"created",actorUuid:a.createdByUuid})}catch(c){s.warn({err:c,reportUuid:b,proposalUuid:a.proposalUuid},"Failed to emit document/created event for report")}if(!a.proposalUuid)return;let c=null;try{let b=await e.z.proposal.findFirst({where:{uuid:a.proposalUuid,companyUuid:a.companyUuid},select:{inputType:!0,inputUuids:!0}});if(b&&"idea"===b.inputType&&Array.isArray(b.inputUuids)){let a=b.inputUuids[0];"string"==typeof a&&a.length>0&&(c=a)}}catch(c){s.warn({err:c,reportUuid:b,proposalUuid:a.proposalUuid},"Failed to resolve parent Idea for report side effects");return}if(c){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:c,action:"updated",actorUuid:a.createdByUuid})}catch(d){s.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to emit idea/updated event for report")}try{let d=await (0,f.LS)(a.createdByUuid),e=d?.type??"agent";await h.createActivity({companyUuid:a.companyUuid,projectUuid:a.projectUuid,targetType:"idea",targetUuid:c,actorType:e,actorUuid:a.createdByUuid,action:"report_created",value:{reportUuid:b,proposalUuid:a.proposalUuid,reportTitle:a.title}})}catch(d){s.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to record report_created Activity")}}}async function q(a,{title:b,content:c,incrementVersion:d}){let f={};void 0!==b&&(f.title=b),void 0!==c&&(f.content=c),d&&(f.version={increment:1});let g=await e.z.document.update({where:{uuid:a},data:f,include:{project:{select:{uuid:!0,name:!0}}}});return k(g,!0)}async function r(a){return e.z.document.delete({where:{uuid:a}})}d()}catch(a){d(a)}})},55601:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{f:()=>i,t:()=>h});var e=c(83457),f=c(90064),g=a([e]);let h={code:(e=(g.then?(await g)():g)[0]).a,mermaid:f.a},i={mermaid:{fullscreen:!0,download:!0,copy:!0,panZoom:!0}};d()}catch(a){d(a)}})},55732:(a,b,c)=>{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"})})}},60017:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Q:()=>i});var e=c(10837),f=c(9222),g=c(97450),h=a([g]);function i({message:a,agentName:b}){let c=(0,f.c)("daemonChat"),d="user"===a.role,h=d?c("roleYou"):b||c("roleAgent"),i=function(a){let b=new Date(a);return Number.isNaN(b.getTime())?"":b.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}(a.createdAt);return(0,e.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,e.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,e.jsx)("span",{className:`text-[11px] font-semibold uppercase tracking-wide ${d?"text-[#C67A52]":"text-[#6B6B6B]"}`,children:h}),i&&(0,e.jsx)("span",{className:"font-mono text-[10px] tabular-nums text-[#9A9A9A]",children:i})]}),d?(0,e.jsx)("p",{className:"whitespace-pre-wrap break-words text-[13px] leading-relaxed text-[#2C2C2C]",children:a.text}):(0,e.jsx)("div",{className:"prose prose-sm w-full min-w-0 max-w-full break-words text-[13px] leading-relaxed text-[#2C2C2C] [&_a]:break-all [&_code]:[overflow-wrap:anywhere] [&_img]:h-auto [&_img]:max-w-full [&_pre]:max-w-full [&_pre]:overflow-x-auto [&_table]:block [&_table]:max-w-full [&_table]:overflow-x-auto",children:(0,e.jsx)(g.MarkdownContent,{children:a.text})})]})}g=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},61076:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{_R:()=>h});var e=c(71255);c(97307);var f=a([e]);function g(a){let b=Date.now()-a.lastSeenAt.getTime()<=9e4,c="online"===a.status&&b?"online":"offline";return{uuid:a.uuid,agentUuid:a.agentUuid,agentName:a.agent?.name??null,clientType:a.clientType,clientVersion:a.clientVersion,host:a.host,startedAt:a.startedAt?a.startedAt.toISOString():null,status:a.status,effectiveStatus:c,connectedAt:a.connectedAt.toISOString(),lastSeenAt:a.lastSeenAt.toISOString(),disconnectedAt:a.disconnectedAt?a.disconnectedAt.toISOString():null}}async function h(a,b){return[...(await e.z.daemonConnection.findMany({where:{companyUuid:a,agentUuid:b},include:{agent:{select:{name:!0}}}})).map(g)].sort((a,b)=>a.effectiveStatus!==b.effectiveStatus?"online"===a.effectiveStatus?-1:1:b.lastSeenAt.localeCompare(a.lastSeenAt))}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},61212:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BB:()=>q,EZ:()=>x,JF:()=>v,MY:()=>t,Nm:()=>B,Xo:()=>y,Zl:()=>F,bY:()=>C,h_:()=>z,i1:()=>u,jJ:()=>D});var e=c(71255),f=c(92633),g=c(62729);c(5134);var h=c(28976),i=c(34923),j=c(67738),k=c(53870),l=c(97879),m=c(97307),n=a([e,f,i,j,k,l]);function o(a){switch(a){case"assigned":case"in_progress":return"elaborating";case"proposal_created":case"completed":case"closed":case"pending_review":return"elaborated";default:return a}}async function p(a){let[b,c]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid),(0,f.LS)(a.createdByUuid)]);return{uuid:a.uuid,title:a.title,content:a.content,attachments:a.attachments,status:o(a.status),assignee:b,...a.project&&{project:a.project},...null!=a.elaborationStatus&&{elaborationStatus:a.elaborationStatus},...null!=a.elaborationDepth&&{elaborationDepth:a.elaborationDepth},createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function q({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,assignedToMe:g,actorUuid:h,actorType:i}){let j={projectUuid:b,companyUuid:a,...f&&{status:f}};g&&h&&i&&(j.assigneeUuid=h,j.assigneeType=i);let[k,l]=await Promise.all([e.z.idea.findMany({where:j,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,parentUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:j})]),m=await Promise.all(k.map(p));if(k.forEach((a,b)=>{m[b].parentUuid=a.parentUuid??null}),m.length>0){let c=await r(a,b,m.map(a=>a.uuid));for(let a of m)a.reportCount=c.get(a.uuid)??0;let d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);for(let a of m)a.childCount=f.get(a.uuid)??0}return{ideas:m,total:l}}[e,f,i,j,k,l]=n.then?(await n)():n;let H=["approved","closed"];async function r(a,b,c){let d=new Map;if(0===c.length)return d;let f=await e.z.proposal.findMany({where:{projectUuid:b,companyUuid:a,status:{in:[...H]},inputType:"idea"},select:{uuid:!0,inputUuids:!0}});if(0===f.length)return d;let g=new Set(c),h=new Map;for(let a of f){if(!Array.isArray(a.inputUuids))continue;let b=a.inputUuids.filter(a=>g.has(a));b.length>0&&h.set(a.uuid,b)}if(0===h.size)return d;for(let b of(await e.z.document.groupBy({by:["proposalUuid"],where:{companyUuid:a,type:"report",proposalUuid:{in:Array.from(h.keys())}},_count:{_all:!0}}))){if(!b.proposalUuid)continue;let a=h.get(b.proposalUuid);if(a)for(let c of a)d.set(c,(d.get(c)??0)+b._count._all)}return d}async function s(a,b){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},parent:{select:{uuid:!0,title:!0,status:!0}},children:{select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0},orderBy:{createdAt:"asc"}}}});if(!c)return null;let d=await p(c);d.parentUuid=c.parentUuid??null,d.parent=c.parent?{uuid:c.parent.uuid,title:c.parent.title,status:o(c.parent.status)}:null;let f=c.children??[];if(f.length>0){let b=await G(a,c.projectUuid),e=new Map(b.map(a=>[a.uuid,a.derivedStatus]));d.children=f.map(a=>({uuid:a.uuid,title:a.title,status:o(a.status),derivedStatus:e.get(a.uuid)??"todo"}))}else d.children=[];d.descendantUuids=await w(b,a);let g=(await l.fS(a,c.projectUuid,b)).filter(a=>H.includes(a.status));return 0===g.length?d.reports=[]:d.reports=await k.yZ(a,g.map(a=>a.uuid),"report"),d}async function t(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function u(a){if(a.parentUuid){let b=await e.z.idea.findFirst({where:{uuid:a.parentUuid,companyUuid:a.companyUuid},select:{projectUuid:!0}});if(!b)throw Error("Parent idea not found");if(b.projectUuid!==a.projectUuid)throw Error("Parent idea must be in the same project")}let b=await e.z.idea.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,content:a.content,attachments:a.attachments||void 0,status:"open",createdByUuid:a.createdByUuid,parentUuid:a.parentUuid??void 0},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByUuid:!0,parentUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"created"});let c=await p(b);return c.parentUuid=b.parentUuid,c}async function v(a,b,c,d){let f=null;if(void 0!==c.content&&d){let b=await e.z.idea.findUnique({where:{uuid:a},select:{content:!0}});f=b?.content??null}let h=await e.z.idea.update({where:{uuid:a},data:c,include:{project:{select:{uuid:!0,name:!0}}}});if(g.B.emitChange({companyUuid:h.companyUuid,projectUuid:h.project.uuid,entityType:"idea",entityUuid:h.uuid,action:"updated"}),d){let a=["title","content"].filter(a=>void 0!==c[a]);a.length>0&&await j.createActivity({companyUuid:h.companyUuid,projectUuid:h.project.uuid,targetType:"idea",targetUuid:h.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"edited",value:{changedFields:a}})}return void 0!==c.content&&d&&c.content&&A(h.companyUuid,h.project.uuid,h.uuid,h.title,f,c.content,d.actorType,d.actorUuid).catch(a=>m.default.error({err:a},"Failed to process idea mentions")),p(h)}async function w(a,b){let c=new Set,d=[a];for(;d.length>0;){let f=await e.z.idea.findMany({where:{companyUuid:b,parentUuid:{in:d}},select:{uuid:!0}})??[],g=[];for(let b of f)b.uuid!==a&&(c.has(b.uuid)||(c.add(b.uuid),g.push(b.uuid)));d=g}return[...c]}async function x(a,b,c,d){let f=await e.z.idea.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!f)throw Error("Idea not found");let h=f.parentUuid??null;if(b){if(b===a)throw Error("An idea cannot be its own parent");let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!d)throw Error("Parent idea not found");if(d.projectUuid!==f.projectUuid)throw Error("Parent idea must be in the same project");let g=new Set,h=d.parentUuid;for(;h;){if(h===a)throw Error("Cannot set parent: would create a cycle");if(g.has(h))break;g.add(h);let b=await e.z.idea.findFirst({where:{uuid:h,companyUuid:c},select:{parentUuid:!0}});h=b?.parentUuid??null}}let i=await e.z.idea.update({where:{uuid:a},data:{parentUuid:b??null},include:{project:{select:{uuid:!0,name:!0}}}});g.B.emitChange({companyUuid:i.companyUuid,projectUuid:i.projectUuid,entityType:"idea",entityUuid:i.uuid,action:"updated"});let k=i.parentUuid??null;d&&k!==h&&await j.createActivity({companyUuid:i.companyUuid,projectUuid:i.projectUuid,targetType:"idea",targetUuid:i.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"reparented",value:{fromParentUuid:h,toParentUuid:k}});let l=await p(i);return l.parentUuid=i.parentUuid,l}async function y({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f}){let h=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!h)throw Error("Idea not found");let i=o(h.status);if("elaborated"===i)throw Error("Cannot assign an elaborated Idea");let j="open"===h.status?"elaborating":h.status,k=await e.z.idea.update({where:{uuid:a},data:{status:j,assigneeType:c,assigneeUuid:d,assignedAt:new Date,assignedByUuid:f},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:k.companyUuid,projectUuid:k.project.uuid,entityType:"idea",entityUuid:k.uuid,action:"updated"}),p(k)}async function z(a){let b=await e.z.idea.findUnique({where:{uuid:a}});if(!b)throw Error("Idea not found");let c=o(b.status);if("elaborated"===c)throw Error("Cannot release an elaborated Idea");let d=await e.z.idea.update({where:{uuid:a},data:{status:"open",assigneeType:null,assigneeUuid:null,assignedAt:null,assignedByUuid:null,elaborationDepth:null,elaborationStatus:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.project.uuid,entityType:"idea",entityUuid:d.uuid,action:"updated"}),p(d)}async function A(a,b,c,d,e,f,g,h){let k=e?i.Xs(e):[],l=i.Xs(f),m=new Set(k.map(a=>`${a.type}:${a.uuid}`)),n=l.filter(a=>!m.has(`${a.type}:${a.uuid}`));if(0!==n.length)for(let e of(await i.AM({companyUuid:a,sourceType:"idea",sourceUuid:c,content:f,actorType:g,actorUuid:h,projectUuid:b,entityTitle:d}),n))(e.type!==g||e.uuid!==h)&&await j.createActivity({companyUuid:a,projectUuid:b,targetType:"idea",targetUuid:c,actorType:g,actorUuid:h,action:"mentioned",value:{mentionedType:e.type,mentionedUuid:e.uuid,mentionedName:e.displayName,sourceType:"idea",sourceUuid:c}})}async function B(a){let b=await e.z.idea.findUnique({where:{uuid:a},select:{companyUuid:!0}});b&&await e.z.idea.updateMany({where:{companyUuid:b.companyUuid,parentUuid:a},data:{parentUuid:null}});let c=await e.z.idea.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:c.companyUuid,projectUuid:c.projectUuid,entityType:"idea",entityUuid:c.uuid,action:"deleted"}),c}async function C(a,b,c,d,f="user"){let i=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});if(!i)throw new h.hD("NOT_FOUND","Idea not found",404);let k=await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0,name:!0}});if(!k)throw new h.hD("NOT_FOUND","Target project not found",404);if(i.projectUuid===c)throw new h.hD("BAD_REQUEST","Idea is already in the target project",400);let l=i.projectUuid,m=await w(b,a),n=[b,...m],o=await e.z.$transaction(async d=>{let e=(await d.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:n.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),f=(await d.idea.updateMany({where:{companyUuid:a,uuid:{in:n}},data:{projectUuid:c}})).count;i.parentUuid&&await d.idea.update({where:{uuid:b},data:{parentUuid:null}});let g=0,h=0,j=0,k=[],l=[];if(e.length>0){let[b,f]=await Promise.all([d.document.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}}),d.task.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}})]);k=b.map(a=>a.uuid),l=f.map(a=>a.uuid),g=(await d.proposal.updateMany({where:{companyUuid:a,uuid:{in:e}},data:{projectUuid:c}})).count,h=(await d.document.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count,j=(await d.task.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count}let m=await d.activity.updateMany({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:n}},{targetType:"proposal",targetUuid:{in:e}},{targetType:"task",targetUuid:{in:l}},{targetType:"document",targetUuid:{in:k}}]},data:{projectUuid:c}});return{ideas:f,proposals:g,documents:h,tasks:j,activities:m.count}});await j.createActivity({companyUuid:a,projectUuid:c,targetType:"idea",targetUuid:b,actorType:f,actorUuid:d,action:"moved",value:{fromProjectUuid:l,fromProjectName:i.project.name,toProjectUuid:c,toProjectName:k.name,moved:o}}),g.B.emitChange({companyUuid:a,projectUuid:l,entityType:"idea",entityUuid:b,action:"updated"}),g.B.emitChange({companyUuid:a,projectUuid:c,entityType:"idea",entityUuid:b,action:"updated"});let q=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return{...await p(q),moved:o}}async function D(a,b,c){let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0,projectUuid:!0}});if(!d)throw new h.hD("NOT_FOUND","Idea not found",404);if(!await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}))throw new h.hD("NOT_FOUND","Target project not found",404);if(d.projectUuid===c)throw new h.hD("BAD_REQUEST","Idea is already in the target project",400);let f=await w(b,a),g=[b,...f],i=(await e.z.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:g.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),j=0,k=0,l=[],m=[];if(i.length>0){let[b,c]=await Promise.all([e.z.document.findMany({where:{companyUuid:a,proposalUuid:{in:i}},select:{uuid:!0}}),e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:i}},select:{uuid:!0}})]);l=b.map(a=>a.uuid),m=c.map(a=>a.uuid),j=l.length,k=m.length}let n=await e.z.activity.count({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:g}},{targetType:"proposal",targetUuid:{in:i}},{targetType:"task",targetUuid:{in:m}},{targetType:"document",targetUuid:{in:l}}]}});return{moved:{ideas:g.length,proposals:i.length,documents:j,tasks:k,activities:n}}}function E(a){switch(o(a.ideaStatus)){case"open":default:return{derivedStatus:"todo",badgeHint:"open"};case"elaborating":if("pending_answers"===a.elaborationStatus)return{derivedStatus:"human_conduct_required",badgeHint:"answer_questions"};return{derivedStatus:"in_progress",badgeHint:"researching"};case"elaborated":if(a.hasPendingProposal)return{derivedStatus:"human_conduct_required",badgeHint:"review_proposal"};if(a.hasApprovedProposal){if(a.taskStatuses.some(a=>"to_verify"===a))return{derivedStatus:"human_conduct_required",badgeHint:"verify_work"};if(a.taskStatuses.length>0&&a.taskStatuses.every(a=>"done"===a||"closed"===a))return{derivedStatus:"done",badgeHint:"done"};return{derivedStatus:"in_progress",badgeHint:"building"}}return{derivedStatus:"in_progress",badgeHint:"planning"}}}async function F(a,b){let c=await s(a,b);if(!c)return null;let d=await e.z.proposal.findMany({where:{companyUuid:a,projectUuid:c.project?.uuid,status:{in:["approved","pending"]},inputUuids:{array_contains:[b]}},select:{uuid:!0,status:!0,createdAt:!0},orderBy:{createdAt:"desc"}}),f=d.find(a=>"approved"===a.status)??null,g=[];f&&(g=(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:f.uuid},select:{status:!0}})).map(a=>a.status));let h=E({ideaStatus:c.status,elaborationStatus:c.elaborationStatus,hasPendingProposal:d.some(a=>"pending"===a.status),hasApprovedProposal:!!f,taskStatuses:g});return{...c,...h}}async function G(a,b){let c=await e.z.idea.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0,parentUuid:!0,createdAt:!0,updatedAt:!0},orderBy:{createdAt:"desc"}}),d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);let g=await e.z.proposal.findMany({where:{companyUuid:a,projectUuid:b,status:{in:["approved","pending"]}},select:{uuid:!0,status:!0,inputUuids:!0,createdAt:!0},orderBy:{createdAt:"desc"}}),h=new Map,i=new Set,j=new Map;for(let a of g){let b=a.inputUuids;if(Array.isArray(b)){for(let c of b)if(j.set(c,(j.get(c)??0)+1),"pending"===a.status)i.add(c);else if("approved"===a.status){let b=h.get(c);(!b||a.createdAt>b.createdAt)&&h.set(c,{uuid:a.uuid,createdAt:a.createdAt})}}}let k=[...new Set([...h.values()].map(a=>a.uuid))],l=new Map;if(k.length>0)for(let b of(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:k}},select:{proposalUuid:!0,status:!0}}))){if(!b.proposalUuid)continue;let a=l.get(b.proposalUuid)||[];a.push(b.status),l.set(b.proposalUuid,a)}return c.map(a=>{let c=h.get(a.uuid),d=c&&l.get(c.uuid)||[],{derivedStatus:e,badgeHint:g}=E({ideaStatus:a.status,elaborationStatus:a.elaborationStatus,hasPendingProposal:i.has(a.uuid),hasApprovedProposal:!!c,taskStatuses:d});return{uuid:a.uuid,title:a.title,status:a.status,derivedStatus:e,badgeHint:g,createdAt:a.createdAt,updatedAt:a.updatedAt,projectUuid:b,proposalCount:j.get(a.uuid)??0,taskCount:d.length,parentUuid:a.parentUuid??null,childCount:f.get(a.uuid)??0}})}d()}catch(a){d(a)}})},62729:(a,b,c)=>{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.default.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.default.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)=>{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)}})},68797:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bs:()=>k.Bs,MH:()=>j.M,kJ:()=>g.k,lb:()=>h.lb,le:()=>e.le,md:()=>f.m,wL:()=>h.wL});var e=c(22629),f=c(45937),g=c(87625),h=c(43830);c(17974);var i=c(73404),j=c(82420),k=c(24775),l=a([i,j]);[i,j]=l.then?(await l)():l,d()}catch(a){d(a)}})},68938:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{KF:()=>k,cQ:()=>l,n_:()=>m});var e=c(71255),f=c(62729),g=c(70250),h=c(61076),i=c(34718),j=a([e,g,h,i]);async function k(a){var b;return{uuid:(b=await e.z.daemonSession.upsert({where:{agentUuid_sessionId:{agentUuid:a.agentUuid,sessionId:a.sessionId}},create:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid??null,originConnectionUuid:a.originConnectionUuid,status:"active"},update:{companyUuid:a.companyUuid}})).uuid,agentUuid:b.agentUuid,sessionId:b.sessionId,directIdeaUuid:b.directIdeaUuid,originConnectionUuid:b.originConnectionUuid,status:b.status,title:b.title,lastTurnAt:b.lastTurnAt.toISOString(),createdAt:b.createdAt.toISOString(),updatedAt:b.updatedAt.toISOString()}}async function l(a,b,c){return(await (0,g.K)(a,b,c)).directIdeaUuid}async function m(a){var b,c,d;let g=await e.z.daemonSession.findUnique({where:{uuid:a.sessionUuid},select:{uuid:!0,companyUuid:!0}});if(!g)throw Error(`DaemonSession ${a.sessionUuid} not found`);let h=null;for(let b=0;b<5;b++){let c=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:a.sessionUuid},orderBy:{seq:"desc"},select:{seq:!0}}),d=(c?.seq??0)+1;try{h=await e.z.daemonSessionTurn.create({data:{sessionUuid:a.sessionUuid,seq:d,trigger:a.trigger,promptText:a.promptText??null,status:"pending",executionUuid:a.executionUuid??null}});break}catch(a){if("object"==typeof a&&null!==a&&"code"in a&&"P2002"===a.code&&b<4)continue;throw a}}if(!h)throw Error(`createPendingTurn: could not allocate a unique seq for session ${a.sessionUuid} after 5 attempts`);await e.z.daemonSession.update({where:{uuid:a.sessionUuid},data:{lastTurnAt:new Date}});let i={uuid:(b=h).uuid,sessionUuid:b.sessionUuid,seq:b.seq,trigger:b.trigger,promptText:b.promptText,status:b.status,executionUuid:b.executionUuid,startedAt:b.startedAt?b.startedAt.toISOString():null,endedAt:b.endedAt?b.endedAt.toISOString():null,createdAt:b.createdAt.toISOString()};return c={companyUuid:g.companyUuid,sessionUuid:a.sessionUuid,trigger:"turn_created",turn:i,messages:[]},f.B.emit((d=c.sessionUuid,`transcript:${d}`),c),i}[e,g,h,i]=j.then?(await j)():j,d()}catch(a){d(a)}})},69996:(a,b,c)=>{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 daemonConnections DaemonConnection[]\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 daemonConnections DaemonConnection[]\n daemonExecutions DaemonExecution[]\n daemonSessions DaemonSession[]\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 // Lineage (single-parent forest — weak read-only relation, see openspec change add-idea-lineage)\n parentUuid String? // Single parent Idea UUID (nullable = top-level). One undifferentiated edge; semantics by context.\n parent Idea? @relation("IdeaLineage", fields: [parentUuid], references: [uuid], onDelete: Restrict, onUpdate: Restrict)\n children Idea[] @relation("IdeaLineage")\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 @@index([parentUuid])\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 | closed\n lastActiveAt DateTime @default(now())\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n taskCheckins SessionTaskCheckin[]\n\n @@index([companyUuid])\n @@index([agentUuid])\n @@index([status])\n @@index([lastActiveAt])\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// Daemon SSE connection registry — one row per long-lived daemon SSE connection.\n// Mirrors AgentSession conventions (Int PK + uuid public id, application-level\n// company/agent relations, indexed status/liveness columns).\nmodel DaemonConnection {\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\n clientType String // claude_code | openclaw | browser | other\n clientVersion String? // self-reported, untrusted, display-only\n // Self-reported hostname (display-only). Non-null with "" default: a @@unique\n // over a nullable column is broken for dedup because connectors treat each\n // null as distinct (Prisma docs), which would let reconnects accumulate rows.\n // Defaulting to "" makes (agentUuid, clientType, host) a deterministic upsert key.\n host String @default("")\n startedAt DateTime? // self-reported daemon process start time\n\n status String @default("online") // online | offline\n connectedAt DateTime @default(now())\n lastSeenAt DateTime @default(now())\n disconnectedAt DateTime?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([agentUuid, clientType, host])\n @@index([companyUuid])\n @@index([agentUuid])\n @@index([status])\n @@index([lastSeenAt])\n}\n\n// Daemon execution state — one row per (connection, resource) the daemon is\n// running or has queued. The "resource" is whatever entity the wake-triggering\n// notification pointed at: a task, an idea (e.g. an @-mention or elaboration\n// under an idea), a proposal, or a document. Every wake the daemon performs is\n// reported, so the UI can show "this daemon is processing <resource>" regardless\n// of which resource caused it — not only task dispatches.\n//\n// Fed by the snapshot-reconcile ingest path; rows are retained as history\n// (status -> "ended") rather than deleted, so a connection that goes offline\n// still leaves a queryable trail. References DaemonConnection and the target\n// entity by uuid (relationMode = "prisma"); only the `agent` relation is modeled\n// with a DB-level back-relation so the cascade convention matches\n// DaemonConnection/ApiKey (delete an agent -> its execution rows go too).\nmodel DaemonExecution {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n agentUuid String\n agent Agent @relation(fields: [agentUuid], references: [uuid], onDelete: Cascade)\n // → DaemonConnection.uuid (weak ref, no DB FK — the row outlives the\n // connection as history).\n connectionUuid String\n // The wake-triggering resource: entityType is "task" | "idea" | "proposal" |\n // "document"; entityUuid is that entity\'s uuid (weak ref, no DB FK).\n entityType String\n entityUuid String\n // → Idea.uuid; the root-idea lineage anchor for grouping/labeling. Null when\n // the wake has no idea ancestor (e.g. a standalone/quick task).\n rootIdeaUuid String?\n\n // running | queued | ended | interrupted\n // `interrupted` is a STICKY status: when a wake\'s subprocess is stopped (by a\n // user-requested interrupt or an unexpected crash) the row is marked\n // `interrupted` and snapshot-reconcile will NOT auto-downgrade it to `ended`\n // when the (now-gone) entity drops out of the daemon\'s next snapshot — so the\n // UI keeps showing an "interrupted, resumable" row. It is cleared only when a\n // resume re-dispatch transitions the entity back to running/queued.\n status String // running | queued | ended | interrupted\n // Discriminator for the `interrupted` status: `user` = an authorized\n // user-requested interrupt (manually resumable); `crash` = an unexpected\n // subprocess exit (auto-recovered via reconnect-backfill). Only set while\n // status == interrupted; cleared to null on any transition out of it. This\n // lives on the execution row (not Task) because the daemon executes idea /\n // proposal / document wakes too — interruption is an execution-lifecycle fact,\n // keyed by the same connection+entity the row already tracks.\n interruptedReason String? // null | user | crash\n startedAt DateTime? // set when/once the row is running; null while queued\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // A resource appears at most once per connection: re-dispatch updates the\n // existing row (queued -> running -> ended) rather than inserting a duplicate.\n @@unique([connectionUuid, entityType, entityUuid])\n @@index([connectionUuid, status])\n @@index([companyUuid, agentUuid])\n}\n\n// Daemon persistent conversation — one row per (agentUuid, sessionId) Claude\n// session. Distinct from DaemonExecution (the live running/queued snapshot):\n// this is the DURABLE conversation layer. Its identity and history survive the\n// holding connection going offline and the daemon restarting; it is never\n// deleted merely because a connection dropped. A turn references its execution\n// row by uuid (weak ref) but does not alter execution-state reconcile semantics.\n// Only the `agent` relation is modeled with a DB-level back-relation so the\n// cascade convention matches DaemonConnection/DaemonExecution/ApiKey.\nmodel DaemonSession {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n companyUuid String\n agentUuid String\n agent Agent @relation(fields: [agentUuid], references: [uuid], onDelete: Cascade)\n // Stable business key: the directIdeaUuid for an idea-anchored session, or a\n // server-generated uuid for an ad-hoc session. Unique per agent.\n sessionId String\n directIdeaUuid String? // null ⇒ ad-hoc (no idea lineage)\n // → DaemonConnection.uuid (weak ref, no DB FK). The connection/cwd that owns\n // the on-disk Claude transcript. Fixed at creation; continuation is only ever\n // routed here, because `claude --resume <sessionId>` is cwd/machine-bound.\n originConnectionUuid String\n status String @default("active") // active | ended\n title String?\n lastTurnAt DateTime @default(now())\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n turns DaemonSessionTurn[]\n\n @@unique([agentUuid, sessionId])\n @@index([companyUuid, agentUuid])\n @@index([originConnectionUuid])\n}\n\n// One turn (wake) on a DaemonSession. Every wake — autonomous (task_assigned /\n// mentioned / elaboration / resume) or human (human_instruction) — is exactly one\n// turn, distinguished only by `trigger`. Turn creation + status transitions are\n// the SSE chokepoint for the conversation\'s live updates.\nmodel DaemonSessionTurn {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n sessionUuid String\n session DaemonSession @relation(fields: [sessionUuid], references: [uuid], onDelete: Cascade)\n seq Int // monotonic per session\n trigger String // task_assigned | mentioned | elaboration | elaboration_verified | resume | human_instruction\n promptText String? // free-text body for human_instruction; null otherwise (canonical source)\n status String @default("pending") // pending | running | ended\n // Weak ref to the live DaemonExecution row this turn corresponds to (no DB FK;\n // execution rows are reconciled/transient).\n executionUuid String?\n startedAt DateTime?\n endedAt DateTime?\n createdAt DateTime @default(now())\n messages DaemonTranscriptMessage[]\n\n @@unique([sessionUuid, seq])\n @@index([sessionUuid, status])\n}\n\n// A single user/assistant transcript message on a turn. Tool-call, tool-result,\n// and thinking content are NOT stored. Its own table (not JSON on the turn) so\n// append + per-message rolling-window trim are clean row operations rather than\n// read-modify-write of a JSON blob under concurrent appends.\nmodel DaemonTranscriptMessage {\n id Int @id @default(autoincrement())\n uuid String @unique @default(uuid())\n turnUuid String\n turn DaemonSessionTurn @relation(fields: [turnUuid], references: [uuid], onDelete: Cascade)\n role String // user | assistant (tool/thinking NOT stored)\n text String @db.Text\n seq Int // order within turn; used for rolling-window trim\n createdAt DateTime @default(now())\n\n @@index([turnUuid, seq])\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 // Denormalized write-once copy of a human_instruction turn\'s promptText\n // (DaemonSessionTurn.promptText is canonical). Display/transport only — lets the\n // daemon read the instruction body in the chorus_get_notifications call it already\n // makes, with no extra round-trip. Null for every non-instruction notification.\n instructionText String?\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 retained for legacy rows only — no longer written)\n isAppended Boolean @default(false) // true when created after the Idea was first resolved\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"},{"name":"daemonConnections","kind":"object","type":"DaemonConnection","relationName":"CompanyToDaemonConnection"}],"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"},{"name":"daemonConnections","kind":"object","type":"DaemonConnection","relationName":"AgentToDaemonConnection"},{"name":"daemonExecutions","kind":"object","type":"DaemonExecution","relationName":"AgentToDaemonExecution"},{"name":"daemonSessions","kind":"object","type":"DaemonSession","relationName":"AgentToDaemonSession"}],"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":"parentUuid","kind":"scalar","type":"String"},{"name":"parent","kind":"object","type":"Idea","relationName":"IdeaLineage"},{"name":"children","kind":"object","type":"Idea","relationName":"IdeaLineage"},{"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":"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},"DaemonConnection":{"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":"CompanyToDaemonConnection"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToDaemonConnection"},{"name":"clientType","kind":"scalar","type":"String"},{"name":"clientVersion","kind":"scalar","type":"String"},{"name":"host","kind":"scalar","type":"String"},{"name":"startedAt","kind":"scalar","type":"DateTime"},{"name":"status","kind":"scalar","type":"String"},{"name":"connectedAt","kind":"scalar","type":"DateTime"},{"name":"lastSeenAt","kind":"scalar","type":"DateTime"},{"name":"disconnectedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"DaemonExecution":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToDaemonExecution"},{"name":"connectionUuid","kind":"scalar","type":"String"},{"name":"entityType","kind":"scalar","type":"String"},{"name":"entityUuid","kind":"scalar","type":"String"},{"name":"rootIdeaUuid","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"interruptedReason","kind":"scalar","type":"String"},{"name":"startedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"}],"dbName":null},"DaemonSession":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"companyUuid","kind":"scalar","type":"String"},{"name":"agentUuid","kind":"scalar","type":"String"},{"name":"agent","kind":"object","type":"Agent","relationName":"AgentToDaemonSession"},{"name":"sessionId","kind":"scalar","type":"String"},{"name":"directIdeaUuid","kind":"scalar","type":"String"},{"name":"originConnectionUuid","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"title","kind":"scalar","type":"String"},{"name":"lastTurnAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"updatedAt","kind":"scalar","type":"DateTime"},{"name":"turns","kind":"object","type":"DaemonSessionTurn","relationName":"DaemonSessionToDaemonSessionTurn"}],"dbName":null},"DaemonSessionTurn":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"sessionUuid","kind":"scalar","type":"String"},{"name":"session","kind":"object","type":"DaemonSession","relationName":"DaemonSessionToDaemonSessionTurn"},{"name":"seq","kind":"scalar","type":"Int"},{"name":"trigger","kind":"scalar","type":"String"},{"name":"promptText","kind":"scalar","type":"String"},{"name":"status","kind":"scalar","type":"String"},{"name":"executionUuid","kind":"scalar","type":"String"},{"name":"startedAt","kind":"scalar","type":"DateTime"},{"name":"endedAt","kind":"scalar","type":"DateTime"},{"name":"createdAt","kind":"scalar","type":"DateTime"},{"name":"messages","kind":"object","type":"DaemonTranscriptMessage","relationName":"DaemonSessionTurnToDaemonTranscriptMessage"}],"dbName":null},"DaemonTranscriptMessage":{"fields":[{"name":"id","kind":"scalar","type":"Int"},{"name":"uuid","kind":"scalar","type":"String"},{"name":"turnUuid","kind":"scalar","type":"String"},{"name":"turn","kind":"object","type":"DaemonSessionTurn","relationName":"DaemonSessionTurnToDaemonTranscriptMessage"},{"name":"role","kind":"scalar","type":"String"},{"name":"text","kind":"scalar","type":"String"},{"name":"seq","kind":"scalar","type":"Int"},{"name":"createdAt","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":"instructionText","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":"isAppended","kind":"scalar","type":"Boolean"},{"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=require("path").dirname(__filename);let k=g.getPrismaClient(h)},70028:(a,b,c)=>{c.d(b,{$d:()=>j,Oj:()=>i});var d=c(10837),e=c(21968),f=c(93524),g=c(54722);let h=(0,e.createContext)(null);function i({children:a}){let[b,c]=(0,e.useState)("loading"),[i,j]=(0,e.useState)([]),[k,l]=(0,e.useState)({}),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=(0,e.useRef)(new Set),t=(0,e.useRef)({});(0,e.useCallback)(async()=>{try{let a=await (0,f.tm)("/api/agent-connections");if(!a.ok)return void c("error");let b=await a.json();b.success?(j(b.data.connections??[]),c("ok")):c("error")}catch(a){g.q.error("Failed to fetch agent connections:",a),c("error")}},[]),(0,e.useCallback)(async()=>{let a={...t.current};try{let b=await (0,f.tm)("/api/daemon/executions");if(!b.ok)return;let c=await b.json();if(c.success){let b=function(a){let b={};for(let c of a)(b[c.connectionUuid]??=[]).push(c);return b}(c.data.executions??[]);l(c=>{let d={...b};for(let b of Object.keys(t.current))t.current[b]!==a[b]&&(void 0===c[b]?delete d[b]:d[b]=c[b]);return d})}}catch(a){g.q.error("Failed to fetch daemon executions:",a)}finally{n(!0)}},[]);let u=(0,e.useMemo)(()=>i.filter(a=>"online"===a.effectiveStatus).length,[i]),v=(0,e.useCallback)(a=>(s.current.add(a),()=>{s.current.delete(a)}),[]),w=(0,e.useMemo)(()=>({status:b,connections:i,onlineCount:u,executionsByConnection:k,executionsLoaded:m,modalOpen:o,setModalOpen:p,openSession:q,setOpenSession:r,subscribeTranscript:v}),[b,i,u,k,m,o,q,v]);return(0,d.jsx)(h.Provider,{value:w,children:a})}function j(){let a=(0,e.useContext)(h);if(!a)throw Error("useAgentPresence must be used within an AgentPresenceProvider");return a}},70250:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K:()=>j});var e=c(50530),f=c(97879),g=c(53870),h=c(61212),i=a([e,f,g,h]);async function j(a,b,c){let d=await k(a,b,c),e=d.lineage.find(a=>"idea"===a.type)?.uuid??null;return{...d,directIdeaUuid:e}}async function k(a,b,c){switch(b){case"idea":return l(a,c);case"proposal":return o(a,c,"proposal");case"task":return m(a,c);case"document":return n(a,c);default:return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}}}async function l(a,b){let c=[],d=await p(a,b,c);return null===d?{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}:{rootIdeaUuid:d,lineage:c,resolvedVia:"root_idea"}}async function m(a,b){let c=await (0,e.K4)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"task",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"no_proposal"}}async function n(a,b){let c=await (0,g.Cs)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"document",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_document_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"standalone_document"}}async function o(a,b,c,d){var e;let g=d?[d]:[],h=await (0,f.PK)(a,b);if(!h)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};if(g.push({type:"proposal",uuid:h.uuid,title:h.title}),"idea"!==h.inputType)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let i=(e=h.inputUuids,Array.isArray(e)?e.filter(a=>"string"==typeof a):[]);if(0===i.length)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let j=await p(a,i[0],g);if(null===j)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};let k="via_document_proposal"===c?"via_document_proposal":"via_proposal"===c?"via_proposal":"root_idea";if(1===i.length)return{rootIdeaUuid:j,lineage:g,resolvedVia:k};let l=[j];for(let b of i.slice(1)){let c=await p(a,b);null!==c&&l.push(c)}return{rootIdeaUuid:j,lineage:g,resolvedVia:k,ambiguous:!0,candidates:l}}async function p(a,b,c){let d=await (0,h.MY)(a,b);if(!d)return null;c?.push({type:"idea",uuid:d.uuid,title:d.title});let e=new Set([d.uuid]);for(let b=0;b<50;b++){let b=d.parentUuid;if(!b||e.has(b))break;e.add(b);let f=await (0,h.MY)(a,b);if(!f)break;c?.push({type:"idea",uuid:f.uuid,title:f.title}),d=f}return d.uuid}[e,f,g,h]=i.then?(await i)():i,d()}catch(a){d(a)}})},71255:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{z:()=>r});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="1"===process.env.CHORUS_USE_PGLITE,m=k.pool??new g.default.Pool({connectionString:j,...l?{max:1}:{},...process.env.DB_HOST?{ssl:{rejectUnauthorized:!1}}:{}});k.pool||m.on("error",a=>{h.default.child({module:"pg-pool"}).warn({err:a.message},"Idle connection evicted")});let n=new f.M(m),o=h.default.child({module:"prisma"}),p=k.prisma??new e.m3({adapter:n,log:[{emit:"event",level:"error"}]}),q=h.default.child({module:"pg-pool"}),r=p.$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){q.warn("Stale connection evicted (attempt %d/%d)",d+1,3),c=a;continue}throw a}throw c}}});k.prisma||"function"!=typeof p.$on||(p.$on("query",a=>{o.debug({duration:a.duration},a.query)}),p.$on("warn",a=>{o.warn(a.message)}),p.$on("error",a=>{o.error(a.message)})),d()}catch(a){d(a)}})},73404:(a,b,c)=>{c.a(a,async(a,b)=>{try{c(10837),c(21968),c(35198),c(49599),c(42424),c(93524),c(54722),c(70028);var d=c(68797),e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},74432:(a,b,c)=>{c.d(b,{Ch:()=>e,hY:()=>f,se:()=>d});let d="At least one acceptance criterion with a non-empty description is required.";function e(a){return a?a.filter(a=>a.description.trim().length>0).map(a=>({description:a.description.trim(),required:a.required??!0})):[]}function f(a){return e(a).length>0}},74645:(a,b,c)=>{c.d(b,{F:()=>g});var d=c(10837);c(21968);var e=c(63658),f=c(96307);function g({className:a,children:b,...c}){return(0,d.jsxs)(e.Root,{"data-slot":"scroll-area",className:(0,f.cn)("relative",a),...c,children:[(0,d.jsx)(e.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:b}),(0,d.jsx)(h,{}),(0,d.jsx)(e.Corner,{})]})}function h({className:a,orientation:b="vertical",...c}){return(0,d.jsx)(e.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:b,className:(0,f.cn)("flex touch-none p-px transition-colors select-none","vertical"===b&&"h-full w-2.5 border-l border-l-transparent","horizontal"===b&&"h-2.5 flex-col border-t border-t-transparent",a),...c,children:(0,d.jsx)(e.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}},77126:(a,b,c)=>{c.d(b,{M:()=>i});var d=c(10837),e=c(9222),f=c(88695),g=c(86577),h=c(17974);function i({agentUuid:a,agentName:b,onlineConnections:c,onStarted:i}){let j=(0,e.c)("daemonChat"),k=null!==a&&c.length>0;return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1.5 px-6 py-4",children:[(0,d.jsxs)("h3",{className:"flex items-center gap-2 text-[17px] font-semibold text-[#2C2C2C]",children:[(0,d.jsx)(f.A,{className:"h-[18px] w-[18px] text-[#C67A52]","aria-hidden":!0}),j("newConversationTitle")]}),(0,d.jsx)("p",{className:"text-[13px] leading-relaxed text-[#6B6B6B]",children:a?j("newConversationBody",{agent:b}):j("newConversationNoAgent")})]}),(0,d.jsx)("div",{className:"h-px w-full bg-[#EFEBE4]"}),(0,d.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto px-6 py-5",children:k?(0,d.jsx)(h.Mo,{agentUuid:a,onlineConnections:c,layout:"inline",hideHeader:!0,onStarted:i}):(0,d.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-2.5 rounded-xl border border-dashed border-[#E7D9C9] bg-[#FFF9F3] p-8 text-center",children:[(0,d.jsx)("div",{className:"flex h-11 w-11 items-center justify-center rounded-xl bg-[#D9770615]",children:(0,d.jsx)(g.A,{className:"h-5 w-5 text-[#B45309]","aria-hidden":!0})}),(0,d.jsx)("p",{className:"text-[13px] font-medium text-[#92400E]",children:j("newConversationNoOnlineTitle")}),(0,d.jsx)("p",{className:"max-w-[300px] text-[12px] leading-relaxed text-[#6B6B6B]",children:j("newConversationNoOnlineBody")})]})})]})}},79793:(a,b,c)=>{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}}},82420:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{M:()=>l});var e=c(10837),f=c(9222),g=c(35014),h=c(11568),i=c(70028),j=c(8019),k=a([j]);function l(){let a=(0,f.c)("daemonChat"),{modalOpen:b,setModalOpen:c}=(0,i.$d)();return(0,e.jsx)(h.lG,{open:b,onOpenChange:c,children:(0,e.jsxs)(h.Cf,{className:"flex h-dvh max-h-dvh w-screen max-w-none flex-col gap-0 overflow-hidden rounded-none border-0 p-0 sm:h-[92vh] sm:max-h-[92vh] sm:w-[min(96vw,1100px)] sm:max-w-[min(96vw,1100px)] sm:rounded-lg sm:border",children:[(0,e.jsxs)(g.bL,{children:[(0,e.jsx)(h.L3,{children:a("title")}),(0,e.jsx)(h.rr,{children:a("subtitle")})]}),(0,e.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,e.jsx)(j.tn,{})})]})})}j=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},82658:(a,b,c)=>{c.d(b,{Ke:()=>i,Nt:()=>g,R6:()=>h});var d=c(10837),e=c(70952),f=c(96307);function g({...a}){return(0,d.jsx)(e.Root,{"data-slot":"collapsible",...a})}function h({...a}){return(0,d.jsx)(e.Trigger,{"data-slot":"collapsible-trigger",...a})}function i({className:a,...b}){return(0,d.jsx)(e.Content,{"data-slot":"collapsible-content",className:(0,f.cn)("overflow-hidden data-[state=open]:animate-[collapsible-down_250ms_ease-in-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-in-out]",a),...b})}},85834:(a,b,c)=>{c.d(b,{U:()=>q});var d=c(10837),e=c(9222),f=c(93983),g=c(55775),h=c(25355),i=c(88695),j=c(49599),k=c(35198),l=c(42424),m=c(55732),n=c(22629);function o({status:a}){return"running"===a?(0,d.jsxs)("span",{"aria-hidden":!0,className:"relative inline-flex h-2.5 w-2.5 items-center justify-center",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full rounded-full bg-[#C67A52] opacity-30 motion-safe:animate-ping"}),(0,d.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-[#C67A52]"})]}):"interrupted"===a?(0,d.jsx)(f.A,{"aria-hidden":!0,className:"h-3.5 w-3.5 text-[#B45309]"}):"error"===a?(0,d.jsx)(g.A,{"aria-hidden":!0,className:"h-3.5 w-3.5 text-[#DC2626]"}):(0,d.jsx)("span",{"aria-hidden":!0,className:"h-2 w-2 rounded-full bg-[#D7D2C9]"})}function p({row:a,selected:b,onSelect:c,nowMs:f}){let g=(0,e.c)("daemonChat"),i=(0,n.Vq)(),k="running"===a.status?g("running"):"interrupted"===a.status?g("statusInterrupted"):"error"===a.status?g("statusError"):null;return(0,d.jsxs)(l.$,{variant:"ghost",onClick:c,"aria-current":b?"true":void 0,className:`relative h-auto w-full justify-start gap-0 rounded-none px-0 py-0 text-left transition-colors ${b?"bg-[#FBF4EF] hover:bg-[#FBF4EF]":"bg-white hover:bg-[#FAF8F4]"}`,children:[b&&(0,d.jsx)("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-[#C67A52]"}),(0,d.jsxs)("span",{className:"flex w-full items-center gap-3 px-4 py-3.5",children:[(0,d.jsx)("span",{className:"flex w-2.5 shrink-0 justify-center",children:(0,d.jsx)(o,{status:a.status})}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[a.ideaAnchored&&(0,d.jsxs)(j.E,{variant:"secondary",className:"shrink-0 gap-1 border-0 bg-[#F3ECFB] px-1.5 py-0 text-[10px] font-medium text-[#7C5BC0]",children:[(0,d.jsx)(h.A,{className:"h-2.5 w-2.5","aria-hidden":!0}),g("badgeIdea")]}),(0,d.jsx)("span",{className:"truncate text-[14px] font-semibold text-[#2C2C2C]",children:a.title})]}),(0,d.jsxs)("span",{className:"mt-0.5 flex items-center gap-1.5",children:[k&&(0,d.jsx)("span",{className:`text-[10px] font-semibold uppercase tracking-wide ${"running"===a.status?"text-[#C67A52]":"error"===a.status?"text-[#DC2626]":"text-[#B45309]"}`,children:k}),(0,d.jsx)("span",{className:"truncate font-mono text-[10px] text-[#9A9A9A]",children:i(a.session.lastTurnAt,f)})]})]})]})]})}function q({agents:a,selectedAgentUuid:b,onSelectAgent:c,rows:f,selectedSessionUuid:g,onSelectSession:h,onNewConversation:j,visibleCount:o,onLoadMore:q}){let r=(0,e.c)("daemonChat"),s=(0,n.le)(),t=f.slice(0,o),u=f.length>o,v=null===g;return(0,d.jsxs)("div",{className:"flex h-full flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1.5 px-1",children:[(0,d.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:r("agentSelectLabel")}),(0,d.jsxs)(m.l6,{value:b??void 0,onValueChange:c,children:[(0,d.jsx)(m.bq,{"aria-label":r("agentSelectLabel"),className:"w-full rounded-lg border-[#E5E0D8] bg-white text-[13px] text-[#2C2C2C]",children:(0,d.jsx)(m.yv,{placeholder:r("agentSelectPlaceholder")})}),(0,d.jsx)(m.gC,{children:a.map(a=>(0,d.jsx)(m.eb,{value:a.agentUuid,children:a.agentName},a.agentUuid))})]})]}),(0,d.jsx)("div",{className:"px-1",children:(0,d.jsxs)(l.$,{type:"button",onClick:j,"aria-current":v?"true":void 0,className:`h-9 w-full justify-center gap-1.5 rounded-lg text-[13px] font-medium ${v?"bg-[#C67A52] text-white hover:bg-[#B56A44]":"border border-[#E5D2C2] bg-[#FBF4EF] text-[#C67A52] hover:bg-[#F6E9DF]"}`,children:[(0,d.jsx)(i.A,{className:"h-4 w-4","aria-hidden":!0}),r("newConversationButton")]})}),(0,d.jsxs)(k.Zp,{className:"flex min-h-0 flex-1 flex-col gap-0 overflow-hidden rounded-2xl border-[#E5E0D8] bg-white p-0 shadow-none",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3.5",children:[(0,d.jsx)("span",{className:"font-mono text-[11px] font-medium uppercase tracking-[1px] text-[#9A9A9A]",children:r("listHeader")}),(0,d.jsx)("span",{className:"font-mono text-[11px] font-medium text-[#9A9A9A]",children:f.length})]}),(0,d.jsx)("div",{className:"h-px w-full bg-[#EFEBE4]"}),0===f.length?(0,d.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-1.5 p-8 text-center",children:[(0,d.jsx)("p",{className:"text-[13px] font-medium text-[#6B6B6B]",children:r("noSessions.title")}),(0,d.jsx)("p",{className:"max-w-[220px] text-[12px] leading-relaxed text-[#9A9A9A]",children:r("noSessions.body")})]}):(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto",children:[t.map((a,b)=>(0,d.jsxs)("div",{children:[(0,d.jsx)(p,{row:a,selected:g===a.session.uuid,onSelect:()=>h(a.session.uuid),nowMs:s}),b<t.length-1&&(0,d.jsx)("div",{className:"h-px w-full bg-[#F2EEE7]"})]},a.session.uuid)),u&&(0,d.jsx)("div",{className:"px-4 py-3",children:(0,d.jsx)(l.$,{variant:"ghost",size:"sm",onClick:q,className:"h-8 w-full rounded-lg text-[12px] font-medium text-[#C67A52] hover:bg-[#FBF4EF] hover:text-[#C67A52]",children:r("loadMore")})})]})]})]})}},86963:(a,b,c)=>{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.default.error({err:a},"OIDC token verification failed"),null}}d()}catch(a){d(a)}})},87625:(a,b,c)=>{c.d(b,{k:()=>j});var d=c(10837),e=c(9222),f=c(16235),g=c(43332),h=c(49599),i=c(22629);function j({connection:a,size:b}){let c=(0,e.c)("agentConnections"),j=(0,i.Z5)(),k="online"===a.effectiveStatus,l=k?f.A:g.A,m=a.agentName?.trim()||c("unknownAgent"),n=a.clientVersion??c("versionUnknown"),o=""===a.host?c("hostUnknown"):a.host;return(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:`${"lg"===b?"h-12 w-12":"md"===b?"h-10 w-10":"h-9 w-9"} ${"lg"===b?"rounded-xl":"rounded-lg"} flex shrink-0 items-center justify-center`,style:{backgroundColor:k?"#C67A5214":"#9A9A9A14"},children:(0,d.jsx)(l,{className:"lg"===b?"h-6 w-6":"md"===b?"h-5 w-5":"h-4 w-4",style:{color:k?"#C67A52":"#9A9A9A"}})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:`truncate font-semibold text-[#2C2C2C] ${"lg"===b?"text-[20px]":"md"===b?"text-[16px]":"text-[14px]"}`,children:m}),(0,d.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-2 gap-y-1",children:[(0,d.jsx)(h.E,{variant:"secondary",className:"shrink-0 border-0 bg-[#F0EDE8] px-2 py-0.5 text-[10px] font-medium text-[#6B6B6B]",children:j(a.clientType)}),(0,d.jsxs)("span",{className:"truncate font-mono text-[11px] text-[#9A9A9A]",children:["v",n," \xb7 ",o]})]})]})]})}},92592:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Xm:()=>j,lX:()=>l});var e=c(71255),f=c(62729),g=c(11001),h=a([e,g]);function i(a){return{uuid:a.uuid,projectUuid:a.projectUuid,projectName:a.projectName,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,readAt:a.readAt?.toISOString()??null,archivedAt:a.archivedAt?.toISOString()??null,createdAt:a.createdAt.toISOString(),instructionText:a.instructionText??null}}async function j(a){let b=await Promise.all(a.map(a=>e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}))),c=new 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 k(g,c,e),i=b.find(a=>a.recipientType===c&&a.recipientUuid===e),j=a.find(a=>a.recipientType===c&&a.recipientUuid===e);f.B.emit(`notification:${c}:${e}`,{type:"new_notification",notificationUuid:i?.uuid,unreadCount:h,action:j?.action,actorName:j?.actorName,entityTitle:j?.entityTitle,entityType:j?.entityType,entityUuid:j?.entityUuid,projectUuid:j?.projectUuid})}for(let b of a)await (0,g.cn)(b);return b.map(i)}async function k(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function l(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]=h.then?(await h)():h,d()}catch(a){d(a)}})},92633:(a,b,c)=>{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)}})},94100:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(71255);c(62729);var e=c(61076),f=c(34718),g=a([d,e,f]);[d,e,f]=g.then?(await g)():g,b()}catch(a){b(a)}})},94372:(a,b,c)=>{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})}},97307:(a,b,c)=>{c.d(b,{default:()=>e});var d=c(74552);let e=c.n(d)()({level:process.env.LOG_LEVEL||"info",base:{service:"chorus"},...{}})},97450:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{MarkdownContent:()=>j});var e=c(10837),f=c(21968),g=c(91420),h=c(55601),i=a([h]);function j({children:a}){let b=function(){let[a,b]=(0,f.useState)(!1);return a}(),c=(0,f.useMemo)(()=>({config:{theme:b?"dark":"default"}}),[b]);return(0,e.jsx)(g.jH,{plugins:h.t,controls:h.f,mermaid:c,children:a},b?"dark":"light")}h=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},97879:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AU:()=>q,CA:()=>C,Eh:()=>E,FD:()=>A,IV:()=>x,LJ:()=>y,M9:()=>B,MN:()=>z,PK:()=>t,X2:()=>u,e1:()=>p,fS:()=>r,gF:()=>v,gT:()=>D,lh:()=>G,nW:()=>F,tM:()=>w,wV:()=>s});var e=c(55511),f=c(71255),g=c(69996),h=c(92633),i=c(62729),j=c(74432),k=a([f,h]);function l(a){return{...a,uuid:a.uuid||(0,e.randomUUID)()}}function m(a){return{...a,uuid:a.uuid||(0,e.randomUUID)()}}async function n(a){let b="user"===a.createdByType?"user":"agent",[c,d]=await Promise.all([(0,h.LS)(a.createdByUuid,b),(0,h.SJ)(a.reviewedByUuid,a.reviewNote,a.reviewedAt)]),e={uuid:a.uuid,title:a.title,description:a.description,inputType:a.inputType,inputUuids:a.inputUuids,documentDrafts:a.documentDrafts,taskDrafts:a.taskDrafts,status:a.status,createdBy:c,createdByType:a.createdByType,review:d,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()};return a.project&&(e.project=a.project),e}async function o(a,b){let c=await f.z.proposal.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Proposal not found");let d=[],e=c.documentDrafts||[],g=c.taskDrafts||[],h=c.inputUuids||[];for(let a of(0===e.length&&d.push({id:"E1",level:"error",message:"Proposal must contain at least one document draft"}),e))(!a.content||a.content.length<100)&&d.push({id:"E2",level:"error",message:`Document draft "${a.title}" must have content with at least 100 characters`,field:a.title});if(0===g.length&&d.push({id:"E3",level:"error",message:"Proposal must contain at least one task draft"}),0===h.length&&d.push({id:"E4",level:"error",message:"Proposal must have at least one input (idea or other source)"}),"idea"===c.inputType&&h.length>0)for(let b of(await f.z.idea.findMany({where:{uuid:{in:h},companyUuid:a},select:{uuid:!0,title:!0,elaborationStatus:!0}})))"resolved"!==b.elaborationStatus&&d.push({id:"E5",level:"error",message:`Input idea "${b.title}" has unresolved elaboration (status: ${b.elaborationStatus})`,field:b.title});for(let a of(e.some(a=>"tech_design"===a.type)||d.push({id:"W1",level:"warning",message:"Proposal should contain at least one tech design document draft"}),g))a.description&&0!==a.description.trim().length||d.push({id:"W2",level:"warning",message:`Task draft "${a.title}" is missing a description`,field:a.title});for(let a of g)a.acceptanceCriteriaItems&&0!==a.acceptanceCriteriaItems.length||d.push({id:"E-AC",level:"error",message:`Task draft "${a.title}" is missing acceptance criteria (structured items required)`,field:a.title});for(let a of(g.length>=2&&(g.some(a=>a.dependsOnDraftUuids&&a.dependsOnDraftUuids.length>0)||d.push({id:"W4",level:"warning",message:"When there are multiple tasks, at least one should declare dependencies"})),c.description&&0!==c.description.trim().length||d.push({id:"W5",level:"warning",message:"Proposal description should not be empty"}),g))a.priority||d.push({id:"I1",level:"info",message:`Task draft "${a.title}" does not have a priority set`,field:a.title});for(let a of g)null==a.storyPoints&&d.push({id:"I2",level:"info",message:`Task draft "${a.title}" does not have story points set`,field:a.title});return{valid:!d.some(a=>"error"===a.level),issues:d}}async function p(a,b){let c=await f.z.proposal.findMany({where:{companyUuid:a,inputType:"idea"},select:{uuid:!0,title:!0,inputUuids:!0}}),d=[];for(let a of c){let c=a.inputUuids;for(let e of b)c.includes(e)&&d.push({uuid:e,proposalUuid:a.uuid,proposalTitle:a.title})}return{available:0===d.length,usedIdeas:d}}async function q(a,b,c,d){let e=await f.z.idea.findMany({where:{uuid:{in:b},companyUuid:a},select:{uuid:!0,assigneeType:!0,assigneeUuid:!0}}),g=[];for(let a of e)(a.assigneeType!==d||a.assigneeUuid!==c)&&g.push(a.uuid);return{valid:0===g.length,unassignedIdeas:g}}async function r(a,b,c){let d=(await f.z.proposal.findMany({where:{projectUuid:b,companyUuid:a},orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}})).filter(a=>Array.isArray(a.inputUuids)&&a.inputUuids.includes(c));return Promise.all(d.map(a=>n(a)))}async function s({companyUuid:a,projectUuid:b,skip:c,take:d,status:e}){let g={projectUuid:b,companyUuid:a,...e&&{status:e}},[h,i]=await Promise.all([f.z.proposal.findMany({where:g,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}}),f.z.proposal.count({where:g})]);return{proposals:await Promise.all(h.map(a=>n(a))),total:i}}async function t(a,b){return f.z.proposal.findFirst({where:{uuid:b,companyUuid:a}})}async function u(a){let b=a.documentDrafts?.map(l),c=a.taskDrafts?.map(m),d=await f.z.proposal.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,description:a.description,inputType:a.inputType,inputUuids:a.inputUuids,...b&&{documentDrafts:b},...c&&{taskDrafts:c},status:"draft",createdByUuid:a.createdByUuid,createdByType:a.createdByType||"agent"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}});return i.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"created"}),n(d)}async function v(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!e)throw Error("Proposal not found");let{updatedProposal:g,materializedTasks:h,materializedDocuments:k}=await f.z.$transaction(async b=>{let f=await b.proposal.update({where:{uuid:a},data:{status:"approved",reviewedByUuid:c,reviewNote:d||null,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}}),g=e.documentDrafts,h=e.taskDrafts,i=[],k=[];if(g&&g.length>0){let a=await b.document.createManyAndReturn({data:g.map(a=>({companyUuid:e.companyUuid,projectUuid:e.projectUuid,type:a.type||"prd",title:a.title,content:a.content||null,version:1,proposalUuid:e.uuid,createdByUuid:e.createdByUuid})),select:{uuid:!0,title:!0}});for(let b=0;b<g.length;b++)k.push({draftUuid:g[b].uuid,documentUuid:a[b].uuid,title:a[b].title})}if(h&&h.length>0){for(let a of h)if(a.acceptanceCriteriaItems&&a.acceptanceCriteriaItems.length>0&&!(0,j.hY)(a.acceptanceCriteriaItems))throw Error(`Task draft "${a.title}": acceptanceCriteriaItems has no non-empty description`);let a=await b.task.createManyAndReturn({data:h.map(a=>({companyUuid:e.companyUuid,projectUuid:e.projectUuid,title:a.title,description:a.description||null,status:"open",priority:a.priority||"medium",storyPoints:a.storyPoints||null,acceptanceCriteria:a.acceptanceCriteria||null,proposalUuid:e.uuid,createdByUuid:e.createdByUuid})),select:{uuid:!0,title:!0}}),c=new Map;for(let b=0;b<h.length;b++)c.set(h[b].uuid,a[b].uuid),i.push({draftUuid:h[b].uuid,taskUuid:a[b].uuid,title:a[b].title});let d=[];for(let a of h)if(a.dependsOnDraftUuids&&a.dependsOnDraftUuids.length>0){let b=c.get(a.uuid);if(!b)continue;for(let e of a.dependsOnDraftUuids){let a=c.get(e);a&&d.push({taskUuid:b,dependsOnUuid:a})}}d.length>0&&await b.taskDependency.createMany({data:d});let f=[];for(let a of h){let b=c.get(a.uuid);b&&(0,j.Ch)(a.acceptanceCriteriaItems).forEach((a,c)=>{f.push({taskUuid:b,description:a.description,required:a.required,sortOrder:c})})}f.length>0&&await b.acceptanceCriterion.createMany({data:f})}return{updatedProposal:f,materializedTasks:i,materializedDocuments:k}},{timeout:15e3});i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"});let l=await n(g);return h.length>0&&(l.materializedTasks=h),k.length>0&&(l.materializedDocuments=k),l}async function w(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!e)throw Error("Proposal not found");if("approved"!==e.status)throw Error("Only approved proposals can be revoked");let[g,h]=await Promise.all([f.z.task.findMany({where:{proposalUuid:e.uuid,status:{not:"closed"}},select:{uuid:!0,title:!0}}),f.z.document.findMany({where:{proposalUuid:e.uuid},select:{uuid:!0,title:!0}})]),j=g.map(a=>({uuid:a.uuid,title:a.title})),k=h.map(a=>({uuid:a.uuid,title:a.title}));return await f.z.$transaction(async b=>{let f=j.map(a=>a.uuid),g=k.map(a=>a.uuid);f.length>0&&(await b.sessionTaskCheckin.deleteMany({where:{taskUuid:{in:f}}}),await b.taskDependency.deleteMany({where:{dependsOnUuid:{in:f},taskUuid:{notIn:f}}}),await b.task.updateMany({where:{proposalUuid:e.uuid},data:{status:"closed"}})),g.length>0&&(await b.comment.deleteMany({where:{targetType:"document",targetUuid:{in:g}}}),await b.document.deleteMany({where:{proposalUuid:e.uuid}})),await b.proposal.update({where:{uuid:a},data:{status:"draft",reviewedByUuid:c,reviewedAt:new Date,reviewNote:d||null}})},{timeout:15e3}),i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),{proposalUuid:a,closedTasks:j,deletedDocuments:k}}async function x(a,b,c){let d=await f.z.proposal.update({where:{uuid:a},data:{status:"draft",reviewedByUuid:b,reviewNote:c,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"updated"}),n(d)}async function y(a,b,c){let d=await f.z.proposal.update({where:{uuid:a},data:{status:"closed",reviewedByUuid:b,reviewNote:c,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"updated"}),n(d)}async function z(a,b){let c=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!c)throw Error("Proposal not found");await f.z.proposal.delete({where:{uuid:a}}),i.B.emitChange({companyUuid:c.companyUuid,projectUuid:c.projectUuid,entityType:"proposal",entityUuid:c.uuid,action:"deleted"})}async function A(a,b){let c=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!c)throw Error("Proposal not found");if("draft"!==c.status)throw Error("Only draft proposals can be submitted for review");let d=await o(b,a);if(!d.valid){let a=d.issues.map(a=>`[${a.level}] ${a.message}`);throw Error(`Proposal validation failed:
2
+ ${a.join("\n")}`)}let e=await f.z.proposal.update({where:{uuid:a},data:{status:"pending"},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:e.uuid,action:"updated"}),n(e)}async function B(a,b,c){let d=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!d)throw Error("Proposal not found or not in draft status");let e=d.documentDrafts||[],g=l(c),h=[...e,g],j=await f.z.proposal.update({where:{uuid:a},data:{documentDrafts:h},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),n(j)}async function C(a,b,c){let d=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!d)throw Error("Proposal not found or not in draft status");if(!(0,j.hY)(c.acceptanceCriteriaItems))throw Error(j.se);let e=d.taskDrafts||[],g=m({...c,acceptanceCriteriaItems:(0,j.Ch)(c.acceptanceCriteriaItems)}),h=[...e,g],k=await f.z.proposal.update({where:{uuid:a},data:{taskDrafts:h},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),n(k)}async function D(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!e)throw Error("Proposal not found or not in draft status");let g=e.documentDrafts||[],h=g.findIndex(a=>a.uuid===c);if(-1===h)throw Error("Document draft not found");g[h]={...g[h],...d};let j=await f.z.proposal.update({where:{uuid:a},data:{documentDrafts:g},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),n(j)}async function E(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!e)throw Error("Proposal not found or not in draft status");let g=e.taskDrafts||[],h=g.findIndex(a=>a.uuid===c);if(-1===h)throw Error("Task draft not found");let k={...d};if("acceptanceCriteriaItems"in d){if(!(0,j.hY)(d.acceptanceCriteriaItems))throw Error(j.se);k.acceptanceCriteriaItems=(0,j.Ch)(d.acceptanceCriteriaItems)}g[h]={...g[h],...k};let l=await f.z.proposal.update({where:{uuid:a},data:{taskDrafts:g},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),n(l)}async function F(a,b,c){let d=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!d)throw Error("Proposal not found or not in draft status");let e=(d.documentDrafts||[]).filter(a=>a.uuid!==c),h=await f.z.proposal.update({where:{uuid:a},data:{documentDrafts:e.length>0?e:g.D1.Fj},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),n(h)}async function G(a,b,c){let d=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!d)throw Error("Proposal not found or not in draft status");let e=(d.taskDrafts||[]).filter(a=>a.uuid!==c).map(a=>({...a,dependsOnDraftUuids:a.dependsOnDraftUuids?.filter(a=>a!==c)})),h=await f.z.proposal.update({where:{uuid:a},data:{taskDrafts:e.length>0?e:g.D1.Fj},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),n(h)}[f,h]=k.then?(await k)():k,d()}catch(a){d(a)}})}};
@@ -0,0 +1 @@
1
+ exports.id=3371,exports.ids=[3371],exports.modules={2978:(a,b,c)=>{Promise.resolve().then(c.bind(c,69187))},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))},21865:(a,b,c)=>{"use strict";c.d(b,{HB:()=>e,JK:()=>h,XQ:()=>g,bN:()=>i,vh:()=>f});var d=c(99582);function e(a){let b=function(a){let b=process.env.NEXTAUTH_URL||"http://localhost:8637";return{authority:a.issuer,client_id:a.clientId,redirect_uri:`${b}/login/callback`,post_logout_redirect_uri:`${b}/login`,response_type:"code",scope:"openid profile email",automaticSilentRenew:!0,silent_redirect_uri:`${b}/login/silent-refresh`,accessTokenExpiringNotificationTimeInSeconds:60,userStore:void 0,extraQueryParams:{company:a.companyUuid}}}(a);return new d.$5(b)}function f(a){}function g(){return null}function h(){}function i(a){return{sub:a.profile.sub,email:a.profile.email,name:a.profile.name,picture:a.profile.picture,accessToken:a.access_token,refreshToken:a.refresh_token,expiresAt:a.expires_at,idToken:a.id_token}}},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")+""}]},35198:(a,b,c)=>{"use strict";c.d(b,{BT:()=>i,Wu:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g});var d=c(10837);c(21968);var e=c(96307);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:(0,e.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("leading-none font-semibold",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-muted-foreground text-sm",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("px-6",a),...b})}},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})}},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))},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)}}},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}},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")},93524:(a,b,c)=>{"use strict";c.d(b,{hj:()=>f,ri:()=>l,tm:()=>k,w9:()=>g});var d=c(21865),e=c(54722);function f(a){return(0,d.vh)(a),(0,d.HB)(a)}function g(){}async function h(){return null}async function i(){let a=await h();return!a||a.expired?null:a.access_token}async function j(a,b){try{return(await fetch("/api/auth/sync-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a,refreshToken:b})})).ok}catch{return e.q.error("Failed to sync token to cookie"),!1}}async function k(a,b={}){let c=await i(),d=new Headers(b.headers);c&&d.set("Authorization",`Bearer ${c}`);let e=await fetch(a,{...b,headers:d});if(401===e.status)if(1)try{if((await fetch("/api/auth/refresh",{method:"POST"})).ok)return d.delete("Authorization"),fetch(a,{...b,headers:d})}catch{}else try{let c=await null.signinSilent();if(c?.access_token)return await j(c.access_token),d.set("Authorization",`Bearer ${c.access_token}`),fetch(a,{...b,headers:d})}catch{}return e}async function l(){try{await fetch("/api/auth/logout",{method:"POST"})}catch{}g(),(0,d.JK)()}},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))}},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}}};