@chorus-aidlc/chorus 0.19.1 → 0.20.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 (322) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +349 -349
  3. package/.next/standalone/.next/app-path-routes-manifest.json +38 -38
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +18 -18
  6. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  40. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  44. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  45. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page.js +1 -1
  46. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/admin/companies/new/page.js +1 -1
  48. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  50. package/.next/standalone/.next/server/app/admin/companies/new.rsc +3 -3
  51. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  53. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  54. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/admin.html +2 -2
  56. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  57. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/index.html +2 -2
  155. package/.next/standalone/.next/server/app/index.rsc +2 -2
  156. package/.next/standalone/.next/server/app/login/admin/page.js +1 -1
  157. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  159. package/.next/standalone/.next/server/app/login/admin.rsc +3 -3
  160. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  162. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  163. package/.next/standalone/.next/server/app/login/page.js +1 -1
  164. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  167. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  168. package/.next/standalone/.next/server/app/login.html +2 -2
  169. package/.next/standalone/.next/server/app/login.rsc +3 -3
  170. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  171. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  174. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  175. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/projects.html +2 -2
  177. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  178. package/.next/standalone/.next/server/app/settings.html +2 -2
  179. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  180. package/.next/standalone/.next/server/app-paths-manifest.json +38 -38
  181. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  182. package/.next/standalone/.next/server/chunks/{657.js → 186.js} +1 -1
  183. package/.next/standalone/.next/server/chunks/2572.js +1 -1
  184. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  185. package/.next/standalone/.next/server/chunks/3371.js +1 -0
  186. package/.next/standalone/.next/server/chunks/4131.js +39 -0
  187. package/.next/standalone/.next/server/chunks/4672.js +2 -2
  188. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  189. package/.next/standalone/.next/server/chunks/5577.js +1 -0
  190. package/.next/standalone/.next/server/chunks/5728.js +1 -0
  191. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  192. package/.next/standalone/.next/server/chunks/6515.js +2 -2
  193. package/.next/standalone/.next/server/chunks/6753.js +4 -4
  194. package/.next/standalone/.next/server/chunks/679.js +1 -1
  195. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  196. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  197. package/.next/standalone/.next/server/chunks/8017.js +1 -1
  198. package/.next/standalone/.next/server/chunks/8177.js +1 -0
  199. package/.next/standalone/.next/server/chunks/920.js +1 -1
  200. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  201. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  202. package/.next/standalone/.next/server/chunks/9931.js +1 -1
  203. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  204. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  205. package/.next/standalone/.next/server/pages/404.html +2 -2
  206. package/.next/standalone/.next/server/pages/500.html +1 -1
  207. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  209. package/.next/standalone/.next/static/chunks/{11595.b2b74d1d1d0ae9d9.js → 11595.4cebcf7499ef6a78.js} +1 -1
  210. package/.next/standalone/.next/static/chunks/27370-0d04028ec8a339f0.js +1 -0
  211. package/.next/standalone/.next/static/chunks/27787-3566e3dd0506e241.js +1 -0
  212. package/.next/standalone/.next/static/chunks/{33456.978e5f47d1c8eb93.js → 33456.a5a9acba61ca3665.js} +1 -1
  213. package/.next/standalone/.next/static/chunks/{4860.79d6eefc2861716f.js → 4860.61dfcdf8c4c5c703.js} +1 -1
  214. package/.next/standalone/.next/static/chunks/53504-3a0f6dee12a39d5d.js +1 -0
  215. package/.next/standalone/.next/static/chunks/63819-c52b5bc9ee32ca9b.js +1 -0
  216. package/.next/standalone/.next/static/chunks/76103-5d656aebd9cd5e7f.js +1 -0
  217. package/.next/standalone/.next/static/chunks/78847-9f65efbac984cf70.js +1 -0
  218. package/.next/standalone/.next/static/chunks/79919-32af2c1abfc92a30.js +1 -0
  219. package/.next/standalone/.next/static/chunks/91997-3592827b5a069beb.js +1 -0
  220. package/.next/standalone/.next/static/chunks/{99373.e659954ff5148796.js → 99373.747e181e4c952509.js} +1 -1
  221. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-6135300353d6c6ad.js +1 -0
  222. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-bb9f26c107a6b113.js +1 -0
  223. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-31dd9042ee36b8e5.js +1 -0
  224. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-a6bfa3b6b6893bc4.js +1 -0
  225. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-01e81333c9beee2d.js +1 -0
  226. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-487d071317ae5e6d.js → page-795b161eb0694092.js} +1 -1
  227. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-e20e65b5df817433.js +1 -0
  228. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-fc2d02d552bbdbf0.js +1 -0
  229. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-0cfa38d2de9fa9d9.js +1 -0
  230. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-7cb8a91f6ca34ba8.js → page-529dec4c3bcd5ba9.js} +1 -1
  231. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-6466141ca355d9a4.js → page-b211c29669eaa3e4.js} +1 -1
  232. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-0606d1497512e155.js +1 -0
  233. package/.next/standalone/.next/static/chunks/app/admin/companies/[uuid]/page-47e49c331996193b.js +1 -0
  234. package/.next/standalone/.next/static/chunks/app/admin/companies/new/page-c1e28205503002de.js +1 -0
  235. package/.next/standalone/.next/static/chunks/app/login/admin/page-b0d0ea2fa4102ff7.js +1 -0
  236. package/.next/standalone/.next/static/chunks/app/login/page-ee63e900cb54148c.js +1 -0
  237. package/.next/standalone/.next/static/chunks/app/onboarding/{page-323e1d93218758c5.js → page-1f3ab167cab58610.js} +1 -1
  238. package/.next/standalone/.next/static/chunks/{webpack-ec441a05567c82b0.js → webpack-6151d196b2fab7e8.js} +1 -1
  239. package/.next/standalone/.next/static/css/09ac5931fe977492.css +1 -0
  240. package/.next/standalone/package.json +1 -1
  241. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  242. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
  243. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  244. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +1 -1
  245. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
  246. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  247. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  248. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  249. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  250. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +1 -1
  251. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
  252. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  253. package/.next/standalone/public/chorus-plugin/skills/research/SKILL.md +1 -1
  254. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  255. package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +1 -1
  256. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
  257. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
  258. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
  259. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
  260. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  261. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
  262. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
  263. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
  264. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +1 -1
  265. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
  266. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-research/SKILL.md +1 -1
  267. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
  268. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +1 -1
  269. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +1 -1
  270. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
  271. package/README.ja.md +3 -1
  272. package/README.ko.md +3 -1
  273. package/README.md +18 -1
  274. package/README.zh.md +18 -1
  275. package/chorus.mjs +7 -1
  276. package/cli/agent-cli-config.mjs +28 -2
  277. package/cli/claude-spawner.mjs +330 -18
  278. package/cli/codex-app-server-client.mjs +402 -0
  279. package/cli/codex-app-server-events.mjs +176 -0
  280. package/cli/codex-session-map.mjs +1 -1
  281. package/cli/codex-spawner.mjs +247 -241
  282. package/cli/init/adapters.mjs +2 -2
  283. package/cli/init/file-template.mjs +11 -4
  284. package/cli/init/install-methods.mjs +3 -1
  285. package/cli/pi-spawner.mjs +472 -78
  286. package/cli/process-killer.mjs +138 -13
  287. package/cli/process-stop-hooks.mjs +13 -0
  288. package/cli/upgrade-plugins.mjs +202 -0
  289. package/cli/upgrade-process.mjs +159 -0
  290. package/cli/upgrade.mjs +125 -0
  291. package/cli/upload-hooks.mjs +2 -2
  292. package/cli/windows-process-tree.mjs +154 -0
  293. package/package.json +1 -1
  294. package/.next/standalone/.next/server/chunks/3420.js +0 -1
  295. package/.next/standalone/.next/server/chunks/38.js +0 -39
  296. package/.next/standalone/.next/server/chunks/5576.js +0 -1
  297. package/.next/standalone/.next/server/chunks/6125.js +0 -1
  298. package/.next/standalone/.next/server/chunks/6509.js +0 -1
  299. package/.next/standalone/.next/static/chunks/17081-63e2cad8c15da2fb.js +0 -1
  300. package/.next/standalone/.next/static/chunks/27370-f998ed24dd4fa975.js +0 -1
  301. package/.next/standalone/.next/static/chunks/46437-88abf056c31c7e4e.js +0 -1
  302. package/.next/standalone/.next/static/chunks/48365-13b8e43016ba16a4.js +0 -1
  303. package/.next/standalone/.next/static/chunks/71522-de2b2a9d8e5059e1.js +0 -1
  304. package/.next/standalone/.next/static/chunks/79919-d423af700ae83862.js +0 -1
  305. package/.next/standalone/.next/static/chunks/91796-d235607f577fbaeb.js +0 -1
  306. package/.next/standalone/.next/static/chunks/99540-99af558190f96511.js +0 -1
  307. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-adf9dbdf339e9038.js +0 -1
  308. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-cf8ff072a8bc7409.js +0 -1
  309. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-00d18e26961cee2f.js +0 -1
  310. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-9ed4d7d4f5897de0.js +0 -1
  311. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-9d6d86299f2fadd9.js +0 -1
  312. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-b18a2aba2c4f4f1c.js +0 -1
  313. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-32149a823e7abf42.js +0 -1
  314. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-0ac33f9146fc53c5.js +0 -1
  315. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-ba19aec7fde5086c.js +0 -1
  316. package/.next/standalone/.next/static/chunks/app/admin/companies/[uuid]/page-56118c51122ad639.js +0 -1
  317. package/.next/standalone/.next/static/chunks/app/admin/companies/new/page-4e20deb41357171c.js +0 -1
  318. package/.next/standalone/.next/static/chunks/app/login/admin/page-c8e40259e5d3d9e0.js +0 -1
  319. package/.next/standalone/.next/static/chunks/app/login/page-0a16a64855b771ef.js +0 -1
  320. package/.next/standalone/.next/static/css/652fcc1f1ab231c8.css +0 -1
  321. /package/.next/standalone/.next/static/{AWk31w7ryFKaxOnUlIeo2 → kDppeym4sfPwXjGFspZG8}/_buildManifest.js +0 -0
  322. /package/.next/standalone/.next/static/{AWk31w7ryFKaxOnUlIeo2 → kDppeym4sfPwXjGFspZG8}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[79919],{14925:(e,s,t)=>{"use strict";t.d(s,{TaskViewToggle:()=>ex});var a=t(90508),r=t(1856),n=t(23675),d=t(39268),i=t(83064),l=t(18789),o=t(76111),c=t(5616),u=t(22922),x=t(57731),m=t(48416),p=t(62205),g=t(81531),h=t(91814),f=t(56770),b=t(30825),j=t(60532),k=t(9160),v=t(24377),y=t(17001),N=t(4365);function w(e){let{projectUuid:s}=e,t=(0,d.c)("tasks"),i=(0,h.r)(),l=(0,n.usePathname)(),o=(0,n.useSearchParams)(),[c,m]=(0,r.useState)(!1),[p,g]=(0,r.useState)([]),[w,F]=(0,r.useState)(new Set);(0,r.useEffect)(()=>{let e=o.get("proposalUuids");e?F(new Set(e.split(",").filter(Boolean))):F(new Set)},[o]),(0,r.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/projects/".concat(s,"/proposals/summary"));if(!t.ok)return;let a=await t.json();!e&&a.success&&g(a.data)}catch(e){}}(),()=>{e=!0}},[s]);let A=(0,r.useCallback)(e=>{let s=new URLSearchParams(o.toString());e.size>0?s.set("proposalUuids",Array.from(e).join(",")):s.delete("proposalUuids");let t=s.toString();i.replace("".concat(l).concat(t?"?".concat(t):""),{scroll:!1})},[i,l,o]),C=(0,r.useCallback)(e=>{F(s=>{let t=new Set(s);return t.has(e)?t.delete(e):t.add(e),A(t),t})},[A]),E=(0,r.useCallback)(()=>{F(new Set),A(new Set)},[A]),S=w.size>0;return(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-muted-foreground shrink-0",children:[(0,a.jsx)(f.A,{className:"size-4"}),(0,a.jsxs)("span",{children:[t("proposalFilter.label"),":"]})]}),(0,a.jsxs)(y.AM,{open:c,onOpenChange:m,children:[(0,a.jsx)(y.Wv,{asChild:!0,children:(0,a.jsxs)(u.$,{variant:"outline",size:"sm",role:"combobox","aria-expanded":c,className:(0,v.cn)("justify-between gap-1 min-w-[120px] max-w-[200px] md:min-w-[160px] md:max-w-none",S&&"border-primary bg-[#FFF8F4] dark:bg-[#2a2016]"),children:[(0,a.jsx)("span",{className:"truncate",children:S?t("proposalFilter.filtered",{filtered:w.size,total:p.length}):t("proposalFilter.allProposals")}),(0,a.jsx)(b.A,{className:"size-4 shrink-0 opacity-50"})]})}),(0,a.jsx)(y.hl,{className:"w-[300px] p-0",align:"start",children:(0,a.jsxs)(N.uB,{children:[(0,a.jsx)(N.G7,{placeholder:t("proposalFilter.search")}),(0,a.jsxs)(N.oI,{children:[(0,a.jsx)(N.xL,{children:t("proposalFilter.noResults")}),(0,a.jsx)(N.L$,{children:p.map(e=>{let s=w.has(e.uuid);return(0,a.jsxs)(N.h_,{value:e.title,onSelect:()=>C(e.uuid),className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,a.jsx)("div",{className:(0,v.cn)("flex size-4 shrink-0 items-center justify-center rounded-sm border",s?"border-primary bg-primary text-white":"border-muted-foreground/30"),children:s&&(0,a.jsx)(j.A,{className:"size-3"})}),(0,a.jsx)("span",{className:"truncate",children:e.title})]}),(0,a.jsx)(x.E,{variant:"secondary",className:"ml-2 shrink-0",children:t("proposalFilter.taskCount",{count:e.taskCount})})]},e.uuid)})})]})]})})]}),S&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"flex flex-wrap gap-1 max-w-full",children:p.filter(e=>w.has(e.uuid)).map(e=>(0,a.jsxs)(x.E,{variant:"outline",className:"gap-1 border-primary bg-[#FFF8F4] dark:bg-[#2a2016] text-primary",children:[e.title,(0,a.jsx)("button",{type:"button",className:"ml-0.5 rounded-full hover:bg-primary/20",onClick:()=>C(e.uuid),children:(0,a.jsx)(k.A,{className:"size-3"})})]},e.uuid))}),(0,a.jsx)(u.$,{variant:"ghost",size:"xs",onClick:E,className:"text-muted-foreground",children:t("proposalFilter.clear")})]})]})}var F=t(1976),A=t(96213),C=t(44575),E=t(17475),S=t(68842),U=t(71921),D=t(91385),_=t(29532),P=t(43827);let B=(0,r.createContext)(null);var L=t(95725),z=t(66506);let M=e=>!e.isLayoutDirty&&e.willUpdate(!1),T=e=>{let{children:s,id:t,inherit:n=!0}=e,d=(0,r.useContext)(P.L),i=(0,r.useContext)(B),[l,o]=function(){let e=function(){let e=(0,r.useRef)(!1);return(0,z.E)(()=>(e.current=!0,()=>{e.current=!1}),[]),e}(),[s,t]=(0,r.useState)(0),a=(0,r.useCallback)(()=>{e.current&&t(s+1)},[s]);return[(0,r.useCallback)(()=>L.Gt.postRender(a),[a]),s]}(),c=(0,r.useRef)(null),u=d.id||i;null===c.current&&((e=>!0==(!0===e)||"id"===e)(n)&&u&&(t=t?u+"-"+t:u),c.current={id:t,group:!0===n&&d.group||function(){let e=new Set,s=new WeakMap,t=()=>e.forEach(M);return{add:a=>{e.add(a),s.set(a,a.addEventListener("willUpdate",t))},remove:a=>{e.delete(a);let r=s.get(a);r&&(r(),s.delete(a)),t()},dirty:t}}()});let x=(0,r.useMemo)(()=>({...c.current,forceRender:l}),[o]);return(0,a.jsx)(P.L.Provider,{value:x,children:s})};var R=t(16544),O=t(65626),K=t(97438),V=t(52217);let $=(0,V.createServerReference)("4028cc33d7b0b82df136e4251ffb39fa9507b0e6cc",V.callServer,void 0,V.findSourceMapURL,"fetchTasksAction"),q=(0,V.createServerReference)("70bc8ce4080d4fb527d4d9ecee177dad60fda603ac",V.callServer,void 0,V.findSourceMapURL,"moveTaskToColumnAction"),I=(0,V.createServerReference)("60623dd39deae9d87ec8879e8d5682b48792b27612",V.callServer,void 0,V.findSourceMapURL,"forceMoveTaskToColumnAction");var W=t(67712),G=t(4945),H=t(12959),Z=t(63964);let Y={open:"bg-[#FFF3E0] dark:bg-[#3a2a12] text-[#E65100] dark:text-[#F0A050]",assigned:"bg-[#E3F2FD] dark:bg-[#13253a] text-[#1976D2] dark:text-[#5AA9F0]",in_progress:"bg-[#E8F5E9] dark:bg-[#14281a] text-[#5A9E6F] dark:text-[#6FD19A]",to_verify:"bg-[#F3E5F5] dark:bg-[#281630] text-[#7B1FA2] dark:text-[#C98FE0]",done:"bg-[#E0F2F1] dark:bg-[#12292a] text-[#00796B] dark:text-[#4FD1C0]",closed:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-[#9A9A9A]"},J={open:"open",assigned:"assigned",in_progress:"inProgress",to_verify:"toVerify",done:"done",closed:"closed"},Q={in_progress:"bg-[#FFF3E0] dark:bg-[#3a2a12] text-[#E65100] dark:text-[#F0A050]",assigned:"bg-[#E8F5E9] dark:bg-[#14281a] text-[#2E7D32] dark:text-[#5FD07E]",open:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-muted-foreground",to_verify:"bg-[#E3F2FD] dark:bg-[#13253a] text-[#1565C0] dark:text-[#5AA9F0]"},X=[{id:"todo",labelKey:"todo",statuses:["open","assigned"]},{id:"in_progress",labelKey:"inProgress",statuses:["in_progress"]},{id:"to_verify",labelKey:"toVerify",statuses:["to_verify"]},{id:"done",labelKey:"done",statuses:["done","closed"]}];function ee(e){let{projectUuid:s,initialTasks:t,currentUserUuid:n,selectedTaskUuid:i,onTaskSelect:l,onPanelClose:o,proposalUuidFilter:c}=e,p=(0,d.c)(),[g,h]=(0,r.useState)(t),[f,b]=(0,r.useState)({}),[j,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),[N,w]=(0,r.useState)([]),[P,B]=(0,r.useState)(!1),[L,z]=(0,r.useState)([]),[M,V]=(0,r.useState)(!1),[ee,es]=(0,r.useState)(!1),et=(0,r.useCallback)(async()=>{let e=await $(s);if(e.success){let s=c?e.data.filter(e=>e.proposalUuid&&c.has(e.proposalUuid)):e.data;h(s);let t=await (0,H.h)(s.map(e=>e.uuid));t.success&&t.data&&b(t.data)}},[s,c]);(0,Z.eV)("task",et);let ea=(0,r.useRef)(c);(0,r.useEffect)(()=>{ea.current!==c&&(ea.current=c,et())},[c,et]),(0,r.useEffect)(()=>{0!==t.length&&(0,H.h)(t.map(e=>e.uuid)).then(e=>{e.success&&e.data&&b(e.data)})},[t]);let er=(0,r.useMemo)(()=>{var e;return i&&null!=(e=g.find(e=>e.uuid===i))?e:null},[i,g]),en=e=>g.filter(s=>e.includes(s.status)),ed=e=>en(e).reduce((e,s)=>e+(s.storyPoints||0),0),ei=async e=>{let t;es(!1);let{destination:a,source:r,draggableId:n}=e;if(!a||a.droppableId===r.droppableId&&a.index===r.index)return;let d=a.droppableId;r.droppableId;let i=g.find(e=>e.uuid===n);if(!i)return;if(X.find(e=>e.id===d),"todo"===d)t="assigned"===i.status?"assigned":"open";else if("in_progress"===d)t="in_progress";else if("to_verify"===d)t="to_verify";else{if("done"!==d)return;t="to_verify"===i.status?"done":"to_verify"}h(e=>e.map(e=>e.uuid===n?{...e,status:t}:e));let l=await q(n,d,s);if(l.success)et();else{if("blocked"in l&&l.blocked&&"blockers"in l){h(e=>e.map(e=>e.uuid===n?{...e,status:i.status}:e)),y(i),w(l.blockers),k(!0);return}h(e=>e.map(e=>e.uuid===n?{...e,status:i.status}:e)),"gateBlocked"in l&&l.gateBlocked&&(z("unresolvedCriteria"in l&&Array.isArray(l.unresolvedCriteria)?l.unresolvedCriteria:[]),B(!0))}},el=async()=>{if(v){V(!0);try{let e=await I(v.uuid,"in_progress");e.success?(k(!1),y(null),w([]),et()):W.q.error("Failed to force move task:",e.error)}finally{V(!1)}}},eo=()=>{k(!1),y(null),w([])};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(F.JY,{onDragStart:()=>{es(!0)},onDragEnd:ei,children:(0,a.jsx)(T,{children:(0,a.jsx)("div",{className:"flex flex-1 gap-4 overflow-x-auto pb-4",children:X.map(e=>{let s=en(e.statuses);return(0,a.jsxs)("div",{className:"flex w-[300px] flex-shrink-0 flex-col rounded-xl bg-secondary p-4",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("h3",{className:"font-medium text-foreground",children:p("status.".concat(e.labelKey))}),(0,a.jsx)("span",{className:"rounded-full bg-card px-2 py-0.5 text-xs font-medium text-muted-foreground",children:s.length})]}),ed(e.statuses)>0&&(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs text-[#9A9A9A]",children:[(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-3 w-3",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),ed(e.statuses),"h"]})]}),(0,a.jsx)(F.gL,{droppableId:e.id,children:(e,t)=>(0,a.jsxs)("div",{ref:e.innerRef,...e.droppableProps,className:"flex-1 space-y-3 overflow-y-auto min-h-[100px] rounded-lg pt-3 pr-3 transition-colors ".concat(t.isDraggingOver?"bg-border":""),children:[0!==s.length||t.isDraggingOver?s.map((e,s)=>{let t=!!e.dependsOn&&0!==e.dependsOn.length&&e.dependsOn.some(e=>"done"!==e.status&&"closed"!==e.status),r=(t?!e.dependsOn?[]:e.dependsOn.filter(e=>"done"!==e.status&&"closed"!==e.status):[]).map(e=>e.title).join(", ");return(0,a.jsx)(F.sx,{draggableId:e.uuid,index:s,children:(s,n)=>(0,a.jsx)("div",{ref:s.innerRef,...s.draggableProps,...s.dragHandleProps,onClick:()=>{n.isDragging||l(e.uuid)},style:s.draggableProps.style,children:(0,a.jsxs)(R.P.div,{className:"relative",layoutId:ee?void 0:"task-card-".concat(e.uuid),transition:O.Yv.spring,children:[f[e.uuid]>0&&(0,a.jsx)("div",{className:"absolute -top-3 -right-3 z-10 flex h-11 w-11 items-center justify-center rounded-full border-2 border-green-400 bg-card shadow-sm",children:(0,a.jsx)("img",{src:"/typing-animation.gif",alt:"",className:"h-8 w-8"})}),(0,a.jsx)(A.D,{entityType:"task",entityUuid:e.uuid,children:(0,a.jsxs)(m.Zp,{className:"cursor-pointer p-4 transition-all ".concat(t?"border-dashed border-[#D1D1D1] dark:border-[#3a3a40] opacity-60":"border-border hover:border-primary"," bg-card hover:shadow-sm ").concat(n.isDragging?"shadow-lg rotate-2":""),children:[(0,a.jsxs)("div",{className:"mb-2 flex items-start justify-between",children:[(0,a.jsx)(x.E,{className:Y[e.status]||"",children:p("status.".concat(J[e.status]||e.status))}),(0,a.jsx)("div",{className:"flex items-center gap-1.5",children:e.storyPoints&&(0,a.jsxs)("span",{className:"flex items-center gap-1 rounded bg-[#FFF3E0] dark:bg-[#3a2a12] px-2 py-0.5 text-xs font-medium text-[#E65100] dark:text-[#F0A050]",children:[(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-3 w-3",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),e.storyPoints,"h"]})})]}),(0,a.jsx)("h4",{className:"mb-1 font-medium text-foreground",children:e.title}),e.description&&(0,a.jsx)("p",{className:"mb-2 line-clamp-2 text-sm text-muted-foreground",children:e.description}),t&&(0,a.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 rounded-md bg-[#FFF3E0] dark:bg-[#3a2a12] px-2 py-1",children:[(0,a.jsx)(C.A,{className:"h-3 w-3 shrink-0 text-[#E65100] dark:text-[#F0A050]"}),(0,a.jsx)("span",{className:"text-[9px] font-medium leading-tight text-[#E65100] dark:text-[#F0A050] line-clamp-1",children:p("tasks.blockedBy",{tasks:r})})]}),(0,a.jsxs)("div",{className:"flex items-start justify-between gap-2 text-xs text-[#9A9A9A]",children:[e.assignee?(0,a.jsxs)("span",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[(0,_.bB)(e.assignee)?(0,a.jsx)(D.AgentAvatar,{name:e.assignee.name,size:16,className:"shrink-0 rounded-full"}):(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-3 w-3 shrink-0",children:[(0,a.jsx)("path",{d:"M12 8V4H8"}),(0,a.jsx)("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"})]}),(0,a.jsx)("span",{className:"truncate",children:e.assignee.name})]}),"agent_instance"===e.assignee.type&&e.assignee.instance&&(0,a.jsx)(U.jQ,{cwd:e.assignee.instance.cwd,host:e.assignee.instance.host,showHost:!1,className:"pl-4"})]}):"open"===e.status?(0,a.jsx)("span",{className:"text-primary",children:p("common.assign")}):(0,a.jsx)("span",{children:p("common.unassigned")}),(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[f[e.uuid]>0&&(0,a.jsxs)(x.E,{variant:"outline",className:"h-4 gap-1 border-green-300 dark:border-[#2a4a34] px-1.5 text-[10px] text-green-700 dark:text-[#6FD19A]",children:[(0,a.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-green-500"}),p("sessions.workerCount",{count:f[e.uuid]})]}),e.acceptanceSummary&&e.acceptanceSummary.total>0&&(()=>{let s=e.acceptanceSummary,t="to_verify"===e.status,r=s.requiredPassed===s.required&&s.required>0,n=s.requiredFailed>0,d="bg-secondary text-muted-foreground";return t&&(d=r?"bg-green-50 text-green-700 dark:bg-[#14281a] dark:text-[#6FD19A]":n?"bg-red-50 text-[#C4574C] dark:bg-[#331619] dark:text-[#F0897E]":"bg-amber-50 text-[#D97706] dark:bg-[#332a12] dark:text-[#E0B44E]"),(0,a.jsxs)(x.E,{className:"h-4 gap-1 border-0 px-1.5 text-[9px] ".concat(d),children:[(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-2.5 w-2.5",children:[(0,a.jsx)("path",{d:"M9 11l3 3L22 4"}),(0,a.jsx)("path",{d:"M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"})]}),s.passed,"/",s.total]})})()]})]})]})})]})})},e.uuid)}):(0,a.jsx)("div",{className:"flex h-24 items-center justify-center rounded-lg border-2 border-dashed border-border text-sm text-[#9A9A9A]",children:p("tasks.noTasks")}),e.placeholder]})})]},e.id)})})})}),er&&(0,a.jsx)(G.v,{task:er,projectUuid:s,currentUserUuid:n,onClose:o}),(0,a.jsx)(K.lG,{open:j,onOpenChange:e=>{e||eo()},children:(0,a.jsxs)(K.Cf,{className:"max-w-md rounded-2xl",children:[(0,a.jsxs)(K.c7,{children:[(0,a.jsxs)(K.L3,{className:"flex items-center gap-2",children:[(0,a.jsx)(E.A,{className:"h-5 w-5 text-[#E65100] dark:text-[#F0A050]"}),p("tasks.dependencyBlocked")]}),(0,a.jsx)(K.rr,{children:p("tasks.dependencyBlockedDescription")})]}),(0,a.jsxs)("div",{className:"rounded-lg bg-background p-3",children:[(0,a.jsx)("p",{className:"mb-2 text-xs font-medium text-muted-foreground",children:p("tasks.blockerList")}),(0,a.jsx)("div",{className:"space-y-2",children:N.map(e=>(0,a.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-border bg-card p-3",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-sm font-medium text-foreground",children:e.title}),(0,a.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[e.assignee&&(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,_.bB)(e.assignee)&&(0,a.jsx)(D.AgentAvatar,{name:e.assignee.name,size:16,className:"shrink-0 rounded-full"}),e.assignee.name]}),e.sessionCheckin&&(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,a.jsx)(S.A,{className:"h-3 w-3"}),e.sessionCheckin.sessionName]})]})]}),(0,a.jsx)(x.E,{className:"shrink-0 ".concat(Q[e.status]||"bg-[#F5F5F5] dark:bg-[#1e1e20] text-muted-foreground"),children:p("status.".concat(J[e.status]||e.status))})]},e.uuid))})]}),(0,a.jsxs)(K.Es,{className:"gap-2 sm:gap-0",children:[(0,a.jsx)(u.$,{variant:"outline",onClick:eo,children:p("common.cancel")}),(0,a.jsx)(u.$,{className:"bg-[#E65100] hover:bg-[#BF4400] text-white",onClick:el,disabled:M,children:M?p("common.processing"):p("tasks.forceMove")})]})]})}),(0,a.jsx)(K.lG,{open:P,onOpenChange:B,children:(0,a.jsxs)(K.Cf,{className:"max-w-[520px] rounded-2xl p-0 gap-0",children:[(0,a.jsxs)(K.c7,{className:"px-6 pt-6 pb-4",children:[(0,a.jsxs)(K.L3,{className:"flex items-center gap-2.5",children:[(0,a.jsx)(E.A,{className:"h-5 w-5 text-[#C4574C] dark:text-[#F0897E]"}),p("acceptanceCriteria.title")]}),(0,a.jsx)(K.rr,{className:"text-[13px] leading-relaxed text-muted-foreground",children:p("acceptanceCriteria.gateBlocked",{count:L.filter(e=>e.required&&"passed"!==e.status).length})})]}),(0,a.jsxs)("div",{className:"px-6 pb-4 space-y-3",children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold text-[#9A9A9A] uppercase tracking-wide",children:p("acceptanceCriteria.title")}),L.map(e=>(0,a.jsxs)("div",{className:"rounded-lg border p-3 space-y-2 ".concat("failed"===e.status?"border-red-200 dark:border-[#5a2a2e] bg-card":"border-border bg-card"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"h-2 w-2 rounded-full shrink-0 ".concat("failed"===e.status?"bg-[#C4574C]":"bg-[#F59E0B]")}),(0,a.jsx)("span",{className:"text-xs font-semibold text-foreground",children:e.description})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 pl-4",children:[(0,a.jsx)(x.E,{className:"text-[10px] border-0 ".concat("failed"===e.status?"bg-red-50 text-[#C4574C] dark:bg-[#331619] dark:text-[#F0897E]":"bg-amber-50 text-[#D97706] dark:bg-[#332a12] dark:text-[#E0B44E]"),children:p("acceptanceCriteria.status.".concat(e.status))}),(0,a.jsx)(x.E,{className:"text-[10px] border-0 bg-background text-muted-foreground",children:e.required?p("acceptanceCriteria.required"):p("acceptanceCriteria.optional")}),!e.evidence&&(0,a.jsx)("span",{className:"text-[10px] italic text-muted-foreground",children:p("acceptanceCriteria.noEvidence")})]}),e.evidence&&(0,a.jsxs)("div",{className:"rounded-md bg-red-50 dark:bg-[#331619] p-2 ml-4",children:[(0,a.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground",children:p("acceptanceCriteria.verifyEvidence")}),(0,a.jsx)("p",{className:"text-[11px] text-foreground mt-0.5",children:e.evidence})]})]},e.uuid))]}),(0,a.jsx)(K.Es,{className:"border-t border-[#E5E2DC] dark:border-[#2a2a2e] px-6 py-4",children:(0,a.jsx)(u.$,{className:"rounded-lg bg-[#C4574C] hover:bg-[#A3433A] text-white",onClick:()=>B(!1),children:p("acceptanceCriteria.dismiss")})})]})})]})}var es=t(26145);t(33805);var et=t(85226),ea=t(49914),er=t(92745);let en=(0,V.createServerReference)("406867687d5aee957112c3b15921516740b6c64ac9",V.callServer,void 0,V.findSourceMapURL,"getProjectDependenciesAction");var ed=t(8325);function ei(e){let{projectUuid:s,onTaskSelect:t,refreshKey:i}=e,l=(0,d.c)(),o=(0,ea.W)(),c=(0,n.useSearchParams)(),[x,m,p]=(0,es.ck)([]),[g,h,f]=(0,es.fM)([]),[b,j]=(0,r.useState)(!0),[v,y]=(0,r.useState)(null),N=(0,r.useMemo)(()=>{let e=c.get("proposalUuids");if(!e)return null;let s=e.split(",").filter(Boolean);return s.length>0?new Set(s):null},[c]),w=(0,r.useCallback)(async()=>{j(!0);let e=await en(s),t=e.nodes,a=e.edges;if(N){let s=new Set((t=e.nodes.filter(e=>null!==e.proposalUuid&&N.has(e.proposalUuid))).map(e=>e.uuid));a=e.edges.filter(e=>s.has(e.from)&&s.has(e.to))}let r=t.map(e=>({id:e.uuid,type:"taskNode",position:{x:0,y:0},data:{title:e.title,status:e.status,priority:e.priority,proposalUuid:e.proposalUuid}})),n=a.map((e,s)=>({id:"e-".concat(s),source:e.to,target:e.from,...er.qK})),{nodes:d,edges:i}=(0,er.nF)(r,n);m(d),h(i),j(!1)},[s,N,m,h]);(0,r.useEffect)(()=>{w()},[w,i]);let F=(0,r.useCallback)(async e=>{if(!e.source||!e.target)return;y(null);let s=e.target,t=e.source,a=await (0,ed.w)(s,t);if(!a.success)return void y(a.error||l("tasks.failedToAddDep"));await w()},[w]),A=(0,r.useCallback)((e,s)=>{t(s.id)},[t]);return b?(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,a.jsx)(et.A,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):0===x.length?(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:l("tasks.noTasksToDisplay")}):(0,a.jsxs)("div",{className:"flex-1 rounded-xl border border-border bg-[#FAFAF8] dark:bg-[#1e1e1c] relative",children:[v&&(0,a.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-10 rounded-lg bg-red-50 dark:bg-[#331619] border border-red-200 dark:border-[#5a2a2e] px-4 py-2 text-xs text-red-700 dark:text-[#F08078] shadow-sm",children:[v,(0,a.jsx)(u.$,{variant:"ghost",size:"icon",className:"ml-2 h-5 w-5 font-medium hover:text-red-900 dark:hover:text-[#F0A0A0]",onClick:()=>y(null),children:(0,a.jsx)(k.A,{className:"h-3 w-3"})})]}),(0,a.jsxs)(es.Gc,{colorMode:o?"dark":"light",nodes:x,edges:g,onNodesChange:p,onEdgesChange:f,onConnect:F,onNodeClick:A,nodeTypes:er.c_,fitView:!0,fitViewOptions:{padding:.2},minZoom:.3,maxZoom:1.5,proOptions:{hideAttribution:!0},zoomOnScroll:!0,zoomOnPinch:!0,panOnDrag:!0,children:[(0,a.jsx)(es.VS,{color:o?"#40392f":"#E5E0D8",gap:20}),(0,a.jsx)(es.H2,{className:"[&>button]:border-border [&>button]:bg-card [&>button]:text-foreground [&>button:hover]:bg-background"})]})]})}let el={open:"bg-[#FFF3E0] dark:bg-[#3a2a12] text-[#E65100] dark:text-[#F0A050]",assigned:"bg-[#E3F2FD] dark:bg-[#13253a] text-[#1976D2] dark:text-[#5AA9F0]",in_progress:"bg-[#E8F5E9] dark:bg-[#14281a] text-[#5A9E6F] dark:text-[#6FD19A]",to_verify:"bg-[#F3E5F5] dark:bg-[#281630] text-[#7B1FA2] dark:text-[#C98FE0]",done:"bg-[#E0F2F1] dark:bg-[#12292a] text-[#00796B] dark:text-[#4FD1C0]",closed:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-[#9A9A9A]"},eo={open:"open",assigned:"assigned",in_progress:"inProgress",to_verify:"toVerify",done:"done",closed:"closed"},ec=[{id:"all",labelKey:"allStatuses",statuses:[]},{id:"todo",labelKey:"todo",statuses:["open","assigned"]},{id:"in_progress",labelKey:"inProgress",statuses:["in_progress"]},{id:"to_verify",labelKey:"toVerify",statuses:["to_verify"]},{id:"done",labelKey:"done",statuses:["done","closed"]}],eu={high:"bg-red-100 text-red-700",medium:"bg-yellow-100 text-yellow-700",low:"bg-blue-100 text-blue-700"};function ex(e){let{projectUuid:s,initialTasks:t,currentUserUuid:h,initialSelectedTaskUuid:f}=e,b=(0,d.c)(),j=(0,p.a)(),k=(0,n.useSearchParams)(),[v,y]=(0,r.useState)("kanban"),N="/projects/".concat(s,"/tasks"),{selectedId:F,openPanel:A,closePanel:C}=(0,g.T)(N,f),E=(0,r.useMemo)(()=>{let e=k.get("proposalUuids");if(!e)return null;let s=e.split(",").filter(Boolean);return s.length>0?new Set(s):null},[k]);(0,r.useEffect)(()=>{j&&"kanban"===v&&y("list")},[j]);let[S,U]=(0,r.useState)(!1),[P,B]=(0,r.useState)(0),[L,z]=(0,r.useState)("all"),M=(0,r.useMemo)(()=>{var e;return F&&null!=(e=t.find(e=>e.uuid===F))?e:null},[F,t]),T=(0,r.useCallback)(()=>{B(e=>e+1)},[]),O=(0,r.useMemo)(()=>E?t.filter(e=>e.proposalUuid&&E.has(e.proposalUuid)):t,[t,E]),K=(0,r.useMemo)(()=>{let e=ec.find(e=>e.id===L);return e&&0!==e.statuses.length?O.filter(s=>e.statuses.includes(s.status)):O},[O,L]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"mb-4 overflow-x-auto",children:(0,a.jsx)(w,{projectUuid:s})}),(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-secondary p-1 w-fit",children:[j&&(0,a.jsxs)(u.$,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 rounded-md px-3 text-xs ".concat("list"===v?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),onClick:()=>y("list"),children:[(0,a.jsx)(i.A,{className:"h-3.5 w-3.5"}),b("tasks.listView")]}),!j&&(0,a.jsxs)(u.$,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 rounded-md px-3 text-xs ".concat("kanban"===v?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),onClick:()=>y("kanban"),children:[(0,a.jsx)(l.A,{className:"h-3.5 w-3.5"}),b("tasks.kanbanView")]}),(0,a.jsxs)(u.$,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 rounded-md px-3 text-xs ".concat("dag"===v?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),onClick:()=>y("dag"),children:[(0,a.jsx)(o.A,{className:"h-3.5 w-3.5"}),b("tasks.dagView")]})]}),(0,a.jsxs)(u.$,{className:"bg-primary hover:bg-[#B56A42] text-white",onClick:()=>{C(),U(!0)},children:[(0,a.jsx)(c.A,{className:"mr-2 h-4 w-4"}),b("tasks.newTask")]})]}),"list"===v?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"mb-4 flex gap-1 overflow-x-auto border-b border-border pb-2",children:ec.map(e=>{let s=0===e.statuses.length?O.length:O.filter(s=>e.statuses.includes(s.status)).length;return(0,a.jsxs)(u.$,{variant:"ghost",size:"sm",className:"h-8 shrink-0 rounded-md px-3 text-xs ".concat(L===e.id?"bg-secondary text-foreground font-medium":"text-muted-foreground hover:text-foreground"),onClick:()=>z(e.id),children:["all"===e.id?b("tasks.".concat(e.labelKey)):b("status.".concat(e.labelKey)),(0,a.jsx)("span",{className:"ml-1.5 rounded-full bg-card px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:s})]},e.id)})}),(0,a.jsx)("div",{className:"flex-1 space-y-2 overflow-y-auto",children:0===K.length?(0,a.jsx)(R.P.div,{initial:{opacity:0,scale:.98},animate:{opacity:1,scale:1},transition:{duration:.2,ease:[0,0,.2,1]},className:"flex h-24 items-center justify-center rounded-lg border-2 border-dashed border-border text-sm text-[#9A9A9A]",children:b("tasks.noTasks")}):K.map(e=>(0,a.jsxs)(m.Zp,{className:"cursor-pointer border-border bg-card p-4 transition-all hover:border-primary hover:shadow-sm",onClick:()=>A(e.uuid),children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("h4",{className:"font-medium text-foreground truncate",children:e.title}),e.description&&(0,a.jsx)("p",{className:"mt-1 line-clamp-1 text-sm text-muted-foreground",children:e.description})]}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[null!=e.storyPoints&&e.storyPoints>0&&(0,a.jsxs)("span",{className:"rounded bg-[#FFF3E0] dark:bg-[#3a2a12] px-2 py-0.5 text-xs font-medium text-[#E65100] dark:text-[#F0A050]",children:[e.storyPoints,"h"]}),(0,a.jsx)(x.E,{className:eu[e.priority]||"",children:b("priority.".concat(e.priority))}),(0,a.jsx)(x.E,{className:el[e.status]||"",children:b("status.".concat(eo[e.status]||e.status))})]})]}),e.assignee&&(0,a.jsxs)("div",{className:"mt-2 flex items-center gap-1.5 text-xs text-[#9A9A9A]",children:[(0,_.bB)(e.assignee)&&(0,a.jsx)(D.AgentAvatar,{name:e.assignee.name,size:16,className:"shrink-0 rounded-full"}),(0,a.jsx)("span",{className:"truncate",children:e.assignee.name})]})]},e.uuid))}),M&&(0,a.jsx)(G.v,{task:M,projectUuid:s,currentUserUuid:h,onClose:C,onDependencyChange:T})]}):"kanban"===v?(0,a.jsx)(ee,{projectUuid:s,initialTasks:O,currentUserUuid:h,selectedTaskUuid:F,onTaskSelect:A,onPanelClose:C,proposalUuidFilter:E}):(0,a.jsxs)("div",{className:"flex flex-1 flex-col",children:[(0,a.jsx)(ei,{projectUuid:s,onTaskSelect:e=>A(e),refreshKey:P}),M&&(0,a.jsx)(G.v,{task:M,projectUuid:s,currentUserUuid:h,onClose:C,onDependencyChange:T})]}),S&&!M&&(0,a.jsx)(G.v,{task:null,projectUuid:s,currentUserUuid:h,onClose:()=>U(!1),onCreated:()=>U(!1)})]})}},18789:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(66206).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},62205:(e,s,t)=>{"use strict";t.d(s,{a:()=>r});var a=t(1856);function r(){let[e,s]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=window.matchMedia("(max-width: 767px)");s(e.matches);let t=e=>s(e.matches);return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),e}},79919:(e,s,t)=>{Promise.resolve().then(t.bind(t,14925))}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[91796],{30423:(e,t,n)=>{n.d(t,{j:()=>a});let r=["#E06C75","#E5C07B","#98C379","#56B6C2","#61AFEF","#C678DD","#D19A66","#BE5046","#7EC8E3","#C3E88D","#F78C6C","#A9DC76"];function a(e){let t=function(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return Math.abs(t)}(e)%r.length;return r[t]}},38106:(e,t,n)=>{function r(e){let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0");return"".concat(n,"-").concat(r,"-").concat(a," ").concat(o,":").concat(l)}function a(e,t){let n="string"==typeof e?new Date(e):e;return isNaN(n.getTime())?"":n.toLocaleDateString(t,{month:"short",day:"numeric"})}n.d(t,{r:()=>r,s:()=>a})},47754:(e,t,n)=>{n.d(t,{fv:()=>h,xQ:()=>x});var r=n(1856),a=n(63964);let o=new Map,l=new Map,i=new Map,s=new Set,c=0;function u(e,t,n,r){return n?r?"".concat(e,":").concat(t,":").concat(n,":").concat(r):"".concat(e,":").concat(t,":").concat(n):"".concat(e,":").concat(t)}function d(){c++,s.forEach(e=>e())}function m(e){var t;let n=e.subEntityType,r=e.subEntityUuid,a=u(e.entityType,e.entityUuid,n,r),s=function(e,t,n,r,a){let o=u(e,t,r,a);return"".concat(o,":").concat(n)}(e.entityType,e.entityUuid,e.agentUuid,n,r),c=l.get(s);if(c&&Date.now()-c<3e3)return;l.set(s,Date.now());let m={agentUuid:e.agentUuid,agentName:e.agentName,action:e.action,timestamp:Date.now()},p=(null!=(t=o.get(a))?t:[]).filter(t=>t.agentUuid!==e.agentUuid);p.push(m),o.set(a,p);let f=i.get(s);f&&clearTimeout(f);let h=setTimeout(()=>{let t=o.get(a);if(t){let n=t.filter(t=>t.agentUuid!==e.agentUuid);0===n.length?o.delete(a):o.set(a,n)}l.delete(s),i.delete(s),d()},3e3);i.set(s,h),d()}function p(){return c}function f(e){return s.add(e),()=>{s.delete(e)}}function h(e){m({type:"presence",companyUuid:"",projectUuid:"",...e,timestamp:Date.now()})}function x(){return(0,r.useSyncExternalStore)(f,p,p),(0,a.S2)(m),{getPresence:(e,t,n,r)=>{if(n){var a;return null!=(a=o.get(u(e,t,n,r)))?a:[]}let l="".concat(e,":").concat(t),i=new Map;for(let[e,t]of o)if(e===l||e.startsWith(l+":"))for(let e of t){let t=i.get(e.agentUuid);(!t||e.timestamp>t.timestamp)&&i.set(e.agentUuid,e)}return[...i.values()]}}}},63964:(e,t,n)=>{n.d(t,{S2:()=>u,eV:()=>c,l9:()=>s,tS:()=>i,w0:()=>d});var r=n(90508),a=n(1856);n(91814);var o=n(95126);let l=(0,a.createContext)(null);function i(e){let{projectUuid:t,children:n}=e,i=(0,o.jj)(),s=null==i?void 0:i.subscribe,c=null==i?void 0:i.openGeneration,u=(0,a.useRef)(new Set),d=(0,a.useRef)(new Set),m=(0,a.useRef)(new Set),p=(0,a.useRef)(new Set),f=(0,a.useCallback)(()=>{u.current.forEach(e=>e())},[]),h=(0,a.useCallback)(e=>{d.current.forEach(t=>t(e))},[]),x=(0,a.useCallback)(()=>{for(let e of(f(),["task","idea","proposal","document","project","project_group"]))h({companyUuid:"",projectUuid:"",entityType:e,entityUuid:"",action:"updated"})},[f,h]);(0,a.useEffect)(()=>{let e,n,r=null,a=!1,o=0,l={};function i(n){if("presence"===n.type){if(t&&n.projectUuid!==t)return;m.current.forEach(e=>e(n));return}if("execution"===n.type)return void p.current.forEach(e=>e(n));if("string"!=typeof n.entityType||"string"!=typeof n.entityUuid||"string"!=typeof n.action||t&&n.projectUuid!==t)return;clearTimeout(e);let r=Date.now(),a=r-o;a>=3e3?(o=r,f()):e=setTimeout(()=>{o=Date.now(),f()},Math.max(1e3,3e3-a));let i=n.entityType;clearTimeout(l[i]),l[i]=setTimeout(()=>{h(n)},300)}function c(){u(),(r=new EventSource(t?"/api/events?projectUuid=".concat(encodeURIComponent(t)):"/api/events")).onopen=()=>{a&&x(),a=!0},r.onmessage=e=>{let t=null;try{t=JSON.parse(e.data)}catch(e){return}t&&i(t)},r.onerror=()=>{}}function u(){r&&(r.close(),r=null)}function d(){"visible"===document.visibilityState&&(r&&r.readyState!==EventSource.CLOSED||c())}return s?n=s(i):(c(),document.addEventListener("visibilitychange",d)),()=>{for(let t in null==n||n(),u(),clearTimeout(e),l)clearTimeout(l[t]);document.removeEventListener("visibilitychange",d)}},[t,s,f,h,x]);let g=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(s&&c){if(null===g.current){g.current=c;return}c>g.current&&(g.current=c,x())}},[s,c,x]);let v=(0,a.useCallback)(e=>(u.current.add(e),()=>{u.current.delete(e)}),[]),w=(0,a.useCallback)(e=>(d.current.add(e),()=>{d.current.delete(e)}),[]),y=(0,a.useCallback)(e=>(m.current.add(e),()=>{m.current.delete(e)}),[]),b=(0,a.useCallback)(e=>(p.current.add(e),()=>{p.current.delete(e)}),[]),C=(0,a.useMemo)(()=>({subscribe:v,subscribeEntity:w,subscribePresence:y,subscribeExecution:b}),[v,w,y,b]);return(0,r.jsx)(l.Provider,{value:C,children:n})}function s(e){let t=(0,a.useContext)(l),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)(()=>{if(!t)return;let e=()=>n.current();return e(),t.subscribe(e)},[t])}function c(e,t){let n=(0,a.useContext)(l),r=(0,a.useRef)(t);r.current=t;let o=(0,a.useRef)(e);o.current=e,(0,a.useEffect)(()=>{if(n)return n.subscribeEntity(e=>{let t=o.current;(Array.isArray(t)?t.includes(e.entityType):e.entityType===t)&&r.current(e)})},[n])}function u(e){let t=(0,a.useContext)(l),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)(()=>{if(t)return t.subscribePresence(e=>n.current(e))},[t])}function d(e,t,n){let r=(0,a.useContext)(l),o=(0,a.useRef)(n);o.current=n,(0,a.useEffect)(()=>{if(r)return r.subscribeEntity(n=>{n.entityType===e&&n.entityUuid===t&&o.current(n)})},[r,e,t])}},66343:(e,t,n)=>{n.d(t,{Hr:()=>f,Ht:()=>d,SQ:()=>c,_2:()=>u,lp:()=>m,mB:()=>p,rI:()=>i,ty:()=>s});var r=n(90508);n(1856);var a=n(97964),o=n(39025),l=n(24377);function i(e){let{...t}=e;return(0,r.jsx)(o.Root,{"data-slot":"dropdown-menu",...t})}function s(e){let{...t}=e;return(0,r.jsx)(o.Trigger,{"data-slot":"dropdown-menu-trigger",...t})}function c(e){let{className:t,sideOffset:n=4,...a}=e;return(0,r.jsx)(o.Portal,{children:(0,r.jsx)(o.Content,{"data-slot":"dropdown-menu-content",sideOffset:n,className:(0,l.cn)("bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-md","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",t),...a})})}function u(e){let{className:t,inset:n,variant:a="default",...i}=e;return(0,r.jsx)(o.Item,{"data-slot":"dropdown-menu-item","data-inset":n,"data-variant":a,className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0","data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive","data-[inset]:pl-8 [&_svg]:size-4",t),...i})}function d(e){let{className:t,children:n,...i}=e;return(0,r.jsxs)(o.RadioItem,{"data-slot":"dropdown-menu-radio-item",className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4",t),...i,children:[(0,r.jsx)("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:(0,r.jsx)(o.ItemIndicator,{children:(0,r.jsx)(a.A,{className:"size-2 fill-current"})})}),n]})}function m(e){let{className:t,inset:n,...a}=e;return(0,r.jsx)(o.Label,{"data-slot":"dropdown-menu-label","data-inset":n,className:(0,l.cn)("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",t),...a})}function p(e){let{className:t,...n}=e;return(0,r.jsx)(o.Separator,{"data-slot":"dropdown-menu-separator",className:(0,l.cn)("bg-border -mx-1 my-1 h-px",t),...n})}function f(e){let{...t}=e;return(0,r.jsx)(o.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...t})}},69561:(e,t,n)=>{n.d(t,{d:()=>a});var r=n(52217);let a=(0,r.createServerReference)("707923f2c18da947955274241135cdf30bc1d9dc03",r.callServer,void 0,r.findSourceMapURL,"getCommentsAction")},91796:(e,t,n)=>{n.d(t,{$m:()=>ea});var r=n(90508),a=n(1856),o=n(39268),l=n(94903),i=n(85226),s=n(95886),c=n(36755),u=n(90031),d=n(41816),m=n(97413),p=n(22922),f=n(73693),h=n(91385),x=n(42242),g=n(85783),v=n(99783),w=n(24377),y=n(67712),b=n(42305);function C(e){var t;if(!e)return{pinnedHost:null,pinnedCwd:null};let n=new URLSearchParams(e),r=n.has("cwd"),a=n.has("host");if(!r&&!a)return{pinnedHost:null,pinnedCwd:null};let o=null!=(t=n.get("cwd"))?t:"",l=n.get("host"),i={pinnedCwd:r&&""!==o?o:null,pinnedHost:a?null!=l?l:"":null};return"1"===n.get("runtime")&&(i.runtimeCwd=!0),i}function j(e,t,n,r,a){let o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return"@[".concat(e,"](").concat(t,":").concat(n).concat(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(null==e&&null==t)return"";let r=e=>encodeURIComponent(e).replace(/\(/g,"%28").replace(/\)/g,"%29"),a=[];return a.push("cwd=".concat(null==t?"":r(t))),null!=e&&a.push("host=".concat(r(e))),n&&a.push("runtime=1"),"?".concat(a.join("&"))}(r,a,o),")")}var N=n(78307),E=n(97438);let k=v.A.extend({addAttributes(){var e;return{...null==(e=this.parent)?void 0:e.call(this),mentionType:{default:"user",parseHTML:e=>e.getAttribute("data-mention-type")||"user",renderHTML:e=>({"data-mention-type":e.mentionType||"user"})},pinnedHost:{default:null,parseHTML:e=>e.getAttribute("data-pinned-host"),renderHTML:e=>null==e.pinnedHost?{}:{"data-pinned-host":String(e.pinnedHost)}},pinnedCwd:{default:null,parseHTML:e=>e.getAttribute("data-pinned-cwd"),renderHTML:e=>null==e.pinnedCwd?{}:{"data-pinned-cwd":String(e.pinnedCwd)}},runtimeCwd:{default:!1,parseHTML:e=>"true"===e.getAttribute("data-runtime-cwd"),renderHTML:e=>e.runtimeCwd?{"data-runtime-cwd":"true"}:{}}}}});function A(e){let t=e.getJSON();return t.content?t.content.map(e=>(function e(t){if("mention"===t.type){let e=t.attrs;if(e){var n,r;return j(e.label||e.id,e.mentionType||"user",e.id,null!=(n=e.pinnedHost)?n:null,null!=(r=e.pinnedCwd)?r:null,!0===e.runtimeCwd)}return""}if("text"===t.type)return t.text||"";if("hardBreak"===t.type)return"\n";let a=t.content;return a?a.map(e).join(""):""})(e)).join("\n"):""}function R(e){if(!e)return{type:"doc",content:[{type:"paragraph"}]};let t=/@\[([^\]]+)\]\((user|agent):([a-f0-9-]+)(?:\?([^)]*))?\)/g;return{type:"doc",content:e.split("\n").map(e=>{let n,r=[],a=0,o=RegExp(t.source,"g");for(;null!==(n=o.exec(e));){n.index>a&&r.push({type:"text",text:e.slice(a,n.index)});let{pinnedHost:t,pinnedCwd:o,runtimeCwd:l}=C(n[4]);r.push({type:"mention",attrs:{id:n[3],label:n[1],mentionType:n[2],pinnedHost:t,pinnedCwd:o,runtimeCwd:!0===l}}),a=n.index+n[0].length}return a<e.length&&r.push({type:"text",text:e.slice(a)}),{type:"paragraph",content:r.length>0?r:void 0}})}}function S(e,t,n,r,a,o,l){if(a.innerHTML="",t){let e=document.createElement("div");e.className="flex items-center justify-center py-3 px-4",e.innerHTML='<div class="h-4 w-4 animate-spin rounded-full border-2 border-[#9A9A9A] border-t-transparent"></div>',a.appendChild(e);return}if(0===e.length){let e=document.createElement("div");e.className="py-2 px-3 text-xs text-muted-foreground",e.textContent="No results",a.appendChild(e);return}let i=document.createElement("div");i.className="py-1";let s=0,c=e=>{if(l)return void l(e,n);n({id:e.uuid,label:e.name,mentionType:e.type})},u=()=>{i.innerHTML="",e.forEach((e,t)=>{let n=document.createElement("button");n.type="button",n.className="flex w-full items-center gap-2.5 px-3 py-1.5 text-left text-sm transition-colors ".concat(t===s?"bg-background text-foreground":"text-muted-foreground hover:bg-background"),n.onclick=()=>c(e);let r=document.createElement("div");if(r.className="relative shrink-0","agent"===e.type){let t="function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,n=(0,h.Pf)(e.name,t?"static":"animated");if(n){let t=document.createElement("div");t.className="h-6 w-6 overflow-hidden rounded-full bg-muted";let a=document.createElement("img");a.src=n,a.alt=e.name,a.draggable=!1,a.className="h-full w-full origin-top scale-[1.5] -translate-y-[10%]",t.appendChild(a),r.appendChild(t)}else{let e=document.createElement("div");e.className="flex h-6 w-6 items-center justify-center rounded-full bg-primary text-white",e.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></svg>',r.appendChild(e)}}else{let e=document.createElement("div");e.className="flex h-6 w-6 items-center justify-center rounded-full bg-border text-muted-foreground",e.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>',r.appendChild(e)}if("agent"===e.type&&e.online){let e=document.createElement("span");e.className="absolute -bottom-0.5 -right-0.5 h-2 w-2 rounded-full bg-[#22C55E] ring-2 ring-white",e.title=o.online,r.appendChild(e)}let a=document.createElement("div");a.className="min-w-0 flex-1";let l=document.createElement("div");if(l.className="truncate text-xs font-medium",l.textContent=e.name,a.appendChild(l),e.email){let t=document.createElement("div");t.className="truncate text-[10px] text-muted-foreground",t.textContent=e.email,a.appendChild(t)}if("agent"===e.type&&e.online){var u;let t=null!=(u=e.activeCount)?u:0,n=document.createElement("div");t>0?(n.className="mt-0.5 truncate text-[10px] font-medium text-[#15803D] dark:text-[#4FD07A]",n.textContent="▶ ".concat(o.activeCount(t))):(n.className="mt-0.5 truncate text-[10px] text-muted-foreground",n.textContent=o.idle),a.appendChild(n)}n.appendChild(r),n.appendChild(a),i.appendChild(n)})};u(),a.appendChild(i),r.current={onKeyDown:t=>{let{event:n}=t;return!(0,b.P)(n)&&("ArrowUp"===n.key?(s=s<=0?e.length-1:s-1,u(),!0):"ArrowDown"===n.key?(s=s>=e.length-1?0:s+1,u(),!0):"Enter"===n.key?(e[s]&&c(e[s]),!0):"Escape"===n.key)}}}function M(e){var t;let{open:n,agentName:l,instances:i,onConfirm:s,onCancel:c}=e,u=(0,o.c)("mentionInstance"),[d,m]=(0,a.useState)(null);(0,a.useEffect)(()=>{var e;n&&m(null!=(e=i[0])?e:null)},[n,i]);let f=new Set(i.map(e=>e.host)).size;return(0,r.jsx)(E.lG,{open:n,onOpenChange:e=>{e||c()},children:(0,r.jsxs)(E.Cf,{className:"z-[110] flex max-h-[85svh] flex-col gap-0 sm:max-w-md",overlayClassName:"z-[110]",children:[(0,r.jsxs)(E.c7,{className:"shrink-0",children:[(0,r.jsx)(E.L3,{children:u("title")}),(0,r.jsx)(E.rr,{children:u("subtitle",{name:l,count:i.length,hosts:f})})]}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto py-3",onKeyDown:e=>{!("Enter"!==e.key||(0,b.P)(e))&&d&&(e.preventDefault(),s(d))},children:(0,r.jsx)(N.O,{instances:i,selectedConnectionUuid:null!=(t=null==d?void 0:d.connectionUuid)?t:null,onSelect:m,ariaLabel:u("title")})}),(0,r.jsxs)(E.Es,{className:"shrink-0",children:[(0,r.jsx)(p.$,{variant:"ghost",onClick:c,children:u("cancel")}),(0,r.jsx)(p.$,{disabled:!d,onClick:()=>{d&&s(d)},children:u("confirm")})]})]})})}let T=(0,a.forwardRef)((e,t)=>{var n,l;let{value:i,onChange:s,placeholder:c,className:u,disabled:d,onSubmit:m,entityType:p,entityUuid:f}=e,h=(0,a.useRef)([]),v=(0,a.useRef)(!1),C=(0,a.useRef)(null),N=(0,a.useRef)(null),E=(0,a.useRef)(null),T=(0,a.useRef)(null),[,D]=(0,a.useState)(0),_=(0,a.useRef)(!1),U=(0,o.c)("mention"),H=(0,a.useRef)({online:"",offline:"",idle:"",activeCount:()=>""});H.current={online:U("online"),offline:U("offline"),idle:U("idle"),activeCount:e=>U("activeCount",{count:e})};let F=(0,a.useCallback)((e,t)=>{let n="/api/mentionables?q=".concat(encodeURIComponent(e),"&limit=").concat(t,"&withInstances=1");return p&&f&&(n+="&entityType=".concat(encodeURIComponent(p),"&entityUuid=").concat(encodeURIComponent(f))),n},[p,f]),L=function(e,t){let n=(0,a.useRef)(null),r=(0,a.useRef)(e);r.current=e;let o=(0,a.useCallback)(e=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>r.current(e),250)},[250]);return(0,a.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]),o}((0,a.useCallback)(async e=>{v.current=!0,D(e=>e+1);try{let t=await fetch(F(e,10));if(t.ok){let e=await t.json();e.success&&(h.current=e.data)}}catch(e){h.current=[]}finally{v.current=!1,D(e=>e+1)}},[F]),250),[z,I]=(0,a.useState)(null),O=(0,a.useCallback)((e,t,n)=>{t({id:e.uuid,label:e.name,mentionType:e.type,pinnedHost:n?n.host:null,pinnedCwd:n?n.cwd:null,runtimeCwd:(null==n?void 0:n.runtimeCwd)===!0})},[]),$=(0,a.useRef)(()=>{});$.current=(e,t)=>{var n;let r=function(e){var t;if("agent"===e.type&&e.projectFixedCwd)return{kind:"insert",pin:{host:e.projectFixedCwd.host,cwd:e.projectFixedCwd.cwd,runtimeCwd:!0}};if(e.isIdeaAssignee&&e.ideaPin)return{kind:"insert",pin:{host:e.ideaPin.host,cwd:e.ideaPin.cwd}};let n="agent"===e.type?(null!=(t=e.instances)?t:[]).filter(e=>"online"===e.effectiveStatus):[];return n.length>=2?{kind:"pick",onlineInstances:n}:1===n.length?{kind:"insert",pin:n[0]}:{kind:"insert",pin:null}}(e);if("pick"===r.kind)return void I({item:e,onlineInstances:r.onlineInstances,command:t});O(e,t,null!=(n=r.pin)?n:void 0)};let B=(0,a.useCallback)((e,t)=>$.current(e,t),[]);(0,a.useEffect)(()=>{E.current&&T.current&&S(h.current,v.current,T.current,C,E.current,H.current,B)});let P=(0,x.hG)({immediatelyRender:!1,extensions:[g.A.configure({heading:!1,blockquote:!1,codeBlock:!1,bulletList:!1,orderedList:!1,listItem:!1,horizontalRule:!1}),k.configure({HTMLAttributes:{class:"text-blue-600 font-medium"},renderText(e){var t;let{node:n}=e;return"@".concat(null!=(t=n.attrs.label)?t:n.attrs.id)},suggestion:{char:"@",allowSpaces:!0,items:e=>{let{query:t}=e;return L(t),h.current},render:()=>({onStart:e=>{var t;let n=document.createElement("div");if(n.className="z-[100] rounded-md border border-border bg-card shadow-md min-w-[200px] max-w-[300px] overflow-hidden",E.current=n,T.current=e.command,e.clientRect){let t="function"==typeof e.clientRect?e.clientRect():e.clientRect;t&&(n.style.position="fixed",n.style.left="".concat(t.left,"px"),window.innerHeight-t.bottom<220?n.style.bottom="".concat(window.innerHeight-t.top+4,"px"):n.style.top="".concat(t.bottom+4,"px"))}(null!=(t=N.current)?t:document.body).appendChild(n),S(h.current,v.current,e.command,C,n,H.current,B)},onUpdate:e=>{if(T.current=e.command,E.current&&e.clientRect){let t="function"==typeof e.clientRect?e.clientRect():e.clientRect;t&&(E.current.style.left="".concat(t.left,"px"),window.innerHeight-t.bottom<220?(E.current.style.top="",E.current.style.bottom="".concat(window.innerHeight-t.top+4,"px")):(E.current.style.bottom="",E.current.style.top="".concat(t.bottom+4,"px")))}E.current&&S(h.current,v.current,e.command,C,E.current,H.current,B)},onKeyDown:e=>!!C.current&&C.current.onKeyDown(e),onExit:()=>{var e;null==(e=E.current)||e.remove(),E.current=null,T.current=null,h.current=[],v.current=!1}})}})],content:R(i),editable:!d,editorProps:{attributes:{class:(0,w.cn)("min-h-[36px] max-h-[120px] overflow-y-auto px-3 py-2 text-sm outline-none","prose prose-sm max-w-none [&_p]:my-0"),"data-placeholder":c||""},handleKeyDown:(e,t)=>!(0,b.P)(t)&&"Enter"===t.key&&!t.shiftKey&&!E.current&&!!m&&(t.preventDefault(),m(),!0)},onUpdate:e=>{let{editor:t}=e;_.current=!0,s(A(t))}});(0,a.useEffect)(()=>{if(!P||_.current){_.current=!1;return}A(P)!==i&&P.commands.setContent(R(i))},[i,P]),(0,a.useEffect)(()=>{P&&P.setEditable(!d)},[d,P]);let q=(0,a.useCallback)(e=>{var t;if(!P)return;let n=null!==e.pinnedHost||null!==e.pinnedCwd?{host:null!=(t=e.pinnedHost)?t:"",cwd:e.pinnedCwd,runtimeCwd:!0===e.runtimeCwd}:null,r=function(e,t){var n,r;let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=t.type.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),l=t.uuid.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(RegExp("@\\[[^\\]]+\\]\\(".concat(o,":").concat(l,"(?:\\?[^)]*)?\\)\\s*$"),"i").test(e))return{value:e,appended:!1};let i=j(t.name,t.type,t.uuid,null!=(n=null==a?void 0:a.host)?n:null,null!=(r=null==a?void 0:a.cwd)?r:null,(null==a?void 0:a.runtimeCwd)===!0),s=e.length>0&&!/\s$/.test(e)?" ":"";return{value:"".concat(e).concat(s).concat(i," "),appended:!0}}(A(P),{type:e.mentionType,uuid:e.id,name:e.label},n);r.appended&&P.commands.setContent(R(r.value)),P.commands.focus("end")},[P]),G=(0,a.useCallback)(async e=>{let t=e;if("agent"===e.type){let n=await fetch(F(e.name,50));if(!n.ok)throw Error("Failed to load Agent mention routing");let r=await n.json();if(!r.success||!Array.isArray(r.data))throw Error("Invalid Agent mention routing response");t=function(e,t){let n=t.find(t=>t.type===e.type&&t.uuid===e.uuid);if(!n)throw Error("Reply author is unavailable for mention routing");return n}(e,r.data)}$.current(t,e=>{q(e)})},[F,q]);return(0,a.useImperativeHandle)(t,()=>({focus:()=>null==P?void 0:P.commands.focus(),clear:()=>{null==P||P.commands.clearContent(),s("")},replyToAuthor:G}),[P,s,G]),(0,r.jsxs)("div",{ref:N,className:(0,w.cn)("relative rounded-md border border-input bg-transparent shadow-xs transition-[color,box-shadow]","focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",d&&"cursor-not-allowed opacity-50",u),children:[(0,r.jsx)(x.$Z,{editor:P}),(0,r.jsx)(M,{open:null!==z,agentName:null!=(n=null==z?void 0:z.item.name)?n:"",instances:null!=(l=null==z?void 0:z.onlineInstances)?l:[],onConfirm:e=>{!function(e,t,n){n.close(),e&&n.defer(()=>{try{n.focusEditor(),n.insert(e,t)}catch(e){n.onError(e)}})}(z,e,{close:()=>I(null),insert:(e,t)=>O(e.item,e.command,t),defer:e=>requestAnimationFrame(e),focusEditor:()=>null==P?void 0:P.commands.focus(),onError:e=>y.q.error("MentionEditor: cwd-pinned mention insert failed",e)})},onCancel:()=>I(null)}),(0,r.jsx)("style",{children:"\n .tiptap p.is-editor-empty:first-child::before {\n content: attr(data-placeholder);\n color: #9A9A9A;\n float: left;\n height: 0;\n pointer-events: none;\n }\n .tiptap .mention {\n color: #2563eb;\n font-weight: 500;\n }\n "})]})});T.displayName="MentionEditor";var D=n(69561),_=n(52217);let U=(0,_.createServerReference)("702d4a97ea05fb3eda02f8cb7a09df5547fbb14b86",_.callServer,void 0,_.findSourceMapURL,"createCommentAction"),H=(0,_.createServerReference)("4016bba32b47c93281eb3d4c3817da22c462afe822",_.callServer,void 0,_.findSourceMapURL,"deleteCommentAction");var F=n(82813);let L=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\?([^)]*))?\)/gi,z=/\u200B\u200BMENTION_(\d+)\u200B\u200B/g,I="chorus-mention";function O(e){let{children:t,renderMention:n}=e;if(!t||"string"!=typeof t)return null;if(!new RegExp(L.source,L.flags.replace("g","")).test(t))return(0,r.jsx)("div",{className:"overflow-hidden [&_pre]:overflow-x-auto",children:(0,r.jsx)(F.MarkdownContent,{children:t})});if(n)return(0,r.jsx)($,{renderMention:n,children:t});let{processed:a,mentions:o}=function(e){let t=[],n=new RegExp(L.source,L.flags);return{processed:e.replace(n,(e,n,r,a,o)=>{let l=t.length,{pinnedHost:i,pinnedCwd:s,runtimeCwd:c}=C(o),u={displayName:n,type:r,uuid:a};return(null!==i||null!==s)&&(u.pinnedHost=i,u.pinnedCwd=s,c&&(u.runtimeCwd=!0)),t.push(u),"".concat("​​MENTION_").concat(l).concat("​​")}),mentions:t}}(t);return(0,r.jsx)(B,{mentions:o,children:(0,r.jsx)(F.MarkdownContent,{children:a})})}function $(e){let{children:t,renderMention:n}=e,{processed:o,mentions:l}=a.useMemo(()=>(function(e){let t=[],n=new RegExp(L.source,L.flags);return{processed:e.replace(n,(e,n,r,a,o)=>{let l=t.length,{pinnedHost:i,pinnedCwd:s,runtimeCwd:c}=C(o),u={type:r.toLowerCase(),uuid:a.toLowerCase(),displayName:n};(null!==i||null!==s)&&(u.pinnedHost=i,u.pinnedCwd=s,c&&(u.runtimeCwd=!0)),t.push(u);let d="@".concat(n).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return"<".concat(I," ").concat("idx",'="').concat(l,'">').concat(d,"</").concat(I,">")}),mentions:t}})(t),[t]),i=a.useMemo(()=>({[I]:e=>{let{idx:t}=e,a=void 0===t?NaN:parseInt(t,10),o=Number.isInteger(a)?l[a]:void 0;return o?(0,r.jsx)(r.Fragment,{children:n({...o,index:a})}):null}}),[l,n]);return(0,r.jsx)("div",{className:"overflow-hidden [&_pre]:overflow-x-auto",children:(0,r.jsx)(F.MarkdownContent,{components:i,allowedTags:{[I]:["idx"]},literalTagContent:[I],children:o})})}function B(e){let{children:t,mentions:n}=e,o=a.useRef(null);return a.useEffect(()=>{let e;if(!o.current||0===n.length)return;let t=document.createTreeWalker(o.current,NodeFilter.SHOW_TEXT,null),r=[];for(;e=t.nextNode();)z.test(e.textContent||"")&&r.push(e),z.lastIndex=0;for(let e of r){var a;let t,r=e.textContent||"",o=document.createDocumentFragment(),l=0,i=RegExp(z.source,"g");for(;null!==(t=i.exec(r));){t.index>l&&o.appendChild(document.createTextNode(r.slice(l,t.index)));let e=n[parseInt(t[1],10)];if(e){let t=document.createElement("span");t.className="text-blue-600 font-medium",t.title="".concat(e.type,": ").concat(e.uuid),t.textContent="@".concat(e.displayName),o.appendChild(t)}else o.appendChild(document.createTextNode(t[0]));l=t.index+t[0].length}l<r.length&&o.appendChild(document.createTextNode(r.slice(l))),null==(a=e.parentNode)||a.replaceChild(o,e)}},[n]),(0,r.jsx)("div",{ref:o,className:"overflow-hidden [&_pre]:overflow-x-auto",children:t})}var P=n(71921),q=n(63964),G=n(96213),K=n(30423),Q=n(38106),W=n(67587),J=n(66343),V=n(68923),Z=n(51817);let X="(max-width: 639px)";function Y(e){var t;if(!window.matchMedia)return()=>{};let n=window.matchMedia(X);return null==(t=n.addEventListener)||t.call(n,"change",e),()=>{var t;return null==(t=n.removeEventListener)?void 0:t.call(n,"change",e)}}function ee(){var e,t;return!!(null==(e=(t=window).matchMedia)?void 0:e.call(t,X).matches)}function et(e){return"agent"===e.type?(0,r.jsx)(P.Gm,{mention:e,displayName:e.displayName},e.index):(0,r.jsxs)("span",{className:"text-blue-600 font-medium",title:"".concat(e.type,": ").concat(e.uuid),children:["@",e.displayName]},e.index)}function en(e,t){let n=new Map;for(let t of e)n.set(t.uuid,t);for(let e of t)n.set(e.uuid,e);return[...n.values()].sort((e,t)=>e.createdAt!==t.createdAt?e.createdAt<t.createdAt?1:-1:e.uuid<t.uuid?1:-1)}async function er(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=new Set(e.map(e=>e.uuid)),a=[],o=null,l=!1,i=0,s=!1,c=null,u=!1;for(let e=0;e<n;e++){let e=await t(o);if(!e)break;if(u=!0,i=e.total,a.push(...e.comments),s=e.hasMore,c=e.nextCursor,e.comments.some(e=>r.has(e.uuid))||!e.hasMore){l=!0;break}o=e.nextCursor}return u?l?{comments:en(e,a),total:i,contiguous:!0,resetOldestCursor:null,resetHasMore:!1}:{comments:en([],a),total:i,contiguous:!1,resetOldestCursor:c,resetHasMore:s}:null}function ea(e){let{targetType:t,targetUuid:n,currentUserUuid:u,onCountChange:d,compact:m=!1}=e,h=(0,o.c)(),[x,g]=(0,a.useState)(""),[v,w]=(0,a.useState)([]),[y,b]=(0,a.useState)(!0),[C,j]=(0,a.useState)(null),[N,E]=(0,a.useState)(!1),[k,A]=(0,a.useState)(!1),[R,S]=(0,a.useState)(null),[M,_]=(0,a.useState)(!1),[F,L]=(0,a.useState)(0),z=(0,a.useRef)(null),I=(0,a.useRef)(null),O=(0,a.useRef)(new Set),$=(0,a.useRef)(new Set),B=(0,a.useRef)(v);B.current=v;let P=(0,a.useRef)(R);P.current=R;let K=(0,a.useRef)(M);K.current=M;let Q=(0,a.useRef)(N);Q.current=N;let J=(0,a.useRef)(y);J.current=y;let V=m?"h-6 w-6":"h-[30px] w-[30px]",Z=m?"gap-2":"gap-2.5";(0,a.useEffect)(()=>{null==d||d(F)},[F,d]);let X=(0,a.useCallback)(async()=>{b(!0),j(null);let e=await (0,D.d)(t,n,{limit:10});e.success?(w(e.comments),S(e.nextCursor),_(e.hasMore),L(e.total)):j(e.error),b(!1)},[t,n]);(0,a.useEffect)(()=>{X()},[X]);let Y=(0,a.useCallback)(async()=>{if(Q.current||J.current||!K.current||!P.current)return;E(!0);let e=await (0,D.d)(t,n,{cursor:P.current,limit:10});e.success&&(w(t=>en(t,e.comments)),S(e.nextCursor),_(e.hasMore),L(e.total)),E(!1)},[t,n]);(0,a.useEffect)(()=>{let e=I.current;if(!e)return;let t=new IntersectionObserver(e=>{var t;(null==(t=e[0])?void 0:t.isIntersecting)&&Y()},{rootMargin:"120px"});return t.observe(e),()=>t.disconnect()},[Y,y]),(0,q.w0)(t,n,e=>{u&&e.actorUuid===u||er(B.current,async e=>{let r=await (0,D.d)(t,n,{cursor:e,limit:10});return r.success?r:null}).then(e=>{e&&(w(e.comments),L(e.total),e.contiguous||(S(e.resetOldestCursor),_(e.resetHasMore)))})});let ee=async()=>{if(!x.trim()||k)return;A(!0);let e=await U(t,n,x);if(A(!1),e.success){var r;let t=!B.current.some(t=>t.uuid===e.comment.uuid);w(t=>en(t,[e.comment])),t&&L(e=>e+1),g(""),null==(r=z.current)||r.clear()}else W.oR.error(e.error)},et=(0,a.useCallback)(e=>{var t;null==(t=z.current)||t.replyToAuthor(e).catch(()=>{W.oR.error(h("comments.replyFailed"))})},[h]),ea=(0,a.useCallback)(async e=>{if($.current.has(e))return!0;if(O.current.has(e))return!1;O.current.add(e);try{if(!(await H(e)).success)return W.oR.error(h("comments.deleteFailed")),!1;if($.current.add(e),B.current.some(t=>t.uuid===e)){let t=B.current.filter(t=>t.uuid!==e);B.current=t,w(t),L(e=>Math.max(0,e-1))}return!0}finally{O.current.delete(e)}},[h]);return(0,r.jsx)(G.D,{entityType:t,entityUuid:n,subEntityType:"comment",children:(0,r.jsxs)("div",{className:"flex flex-col gap-0",children:[(0,r.jsxs)("div",{className:"flex items-center ".concat(Z," pb-3 border-b border-[#F0EDE8] dark:border-[#26241f]"),children:[(0,r.jsx)(f.eu,{className:"".concat(m?"h-6 w-6":"h-7 w-7"," shrink-0"),children:(0,r.jsx)(f.q5,{className:"bg-border text-muted-foreground",children:(0,r.jsx)(l.A,{className:"".concat(m?"h-3 w-3":"h-3.5 w-3.5")})})}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)(T,{ref:z,value:x,onChange:g,onSubmit:ee,placeholder:h("comments.addComment"),className:"border border-border bg-card text-sm rounded-lg",disabled:k,entityType:t,entityUuid:n})}),(0,r.jsx)(p.$,{size:"sm",className:"shrink-0 gap-1 bg-[#E07A5F] text-white hover:bg-[#D06A4F]",disabled:!x.trim()||k,onClick:ee,children:k?(0,r.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(s.A,{className:"h-3.5 w-3.5"})})]}),y?(0,r.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,r.jsx)(i.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}):C?(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-sm text-muted-foreground",children:[(0,r.jsx)(c.A,{className:"h-4 w-4"}),(0,r.jsx)("p",{children:h("comments.loadError")}),(0,r.jsx)(p.$,{variant:"outline",size:"sm",onClick:X,children:h("comments.retry")})]}):0===v.length?(0,r.jsx)("p",{className:"py-8 text-center text-sm text-muted-foreground italic",children:h("comments.noComments")}):(0,r.jsxs)("div",{children:[v.map(e=>(0,r.jsx)(el,{comment:e,compact:m,avatarSize:V,gap:Z,t:h,currentUserUuid:u,onReply:et,onDelete:ea},e.uuid)),(0,r.jsx)("div",{ref:I,"aria-hidden":"true"}),N?(0,r.jsxs)("div",{className:"flex items-center justify-center py-4",children:[(0,r.jsx)(i.A,{className:"h-4 w-4 animate-spin text-muted-foreground"}),(0,r.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:h("comments.loadingMore")})]}):!M&&(0,r.jsx)("p",{className:"py-4 text-center text-xs text-muted-foreground italic",children:h("comments.noMoreComments")})]})]})})}function eo(e){let{author:t,canDelete:n,t:o,onReply:l,onDelete:s}=e,c=(0,a.useSyncExternalStore)(Y,ee,()=>!1),[f,h]=(0,a.useState)(!1),[x,g]=(0,a.useState)(!1),[v,w]=(0,a.useState)(!1),y=(0,a.useRef)(null),b=(0,a.useRef)(!1),C=e=>{if(e.preventDefault(),!b.current){var t;null==(t=y.current)||t.focus()}b.current=!1},j=e=>{b.current=!0,h(!1);let t=()=>e();"function"==typeof window.requestAnimationFrame?window.requestAnimationFrame(t):window.setTimeout(t,0)},N=(0,r.jsx)(p.$,{ref:y,type:"button",variant:"ghost",size:"icon",className:"relative -my-1 size-6 shrink-0 rounded-md text-muted-foreground hover:bg-accent hover:text-foreground before:absolute before:-inset-2.5 before:content-[''] sm:before:hidden","aria-label":o("comments.actionsLabel",{name:t.name}),children:(0,r.jsx)(u.A,{className:"size-4","aria-hidden":!0})}),E=()=>j(l),k=()=>j(()=>g(!0));return(0,r.jsxs)(r.Fragment,{children:[c?(0,r.jsxs)(V.cj,{open:f,onOpenChange:h,children:[(0,r.jsx)(V.CG,{asChild:!0,children:N}),(0,r.jsxs)(V.h,{side:"bottom","data-comment-actions-variant":"mobile",className:"max-h-[min(82svh,32rem)] gap-0 overflow-hidden rounded-t-2xl pb-[max(1rem,env(safe-area-inset-bottom))]",onCloseAutoFocus:C,children:[(0,r.jsx)("div",{className:"mx-auto mt-2 h-1 w-10 shrink-0 rounded-full bg-muted-foreground/25","aria-hidden":!0}),(0,r.jsxs)(V.Fm,{className:"border-b px-4 pt-3 pb-3 text-left",children:[(0,r.jsx)(V.qp,{children:o("comments.actionsTitle")}),(0,r.jsx)(V.Qs,{children:o("comments.actionsDescription",{name:t.name})})]}),(0,r.jsxs)("div",{className:"overflow-y-auto overscroll-contain px-2 py-2",children:[(0,r.jsxs)(p.$,{type:"button",variant:"ghost",className:"min-h-11 w-full justify-start gap-3 rounded-lg px-3 text-sm",onClick:E,children:[(0,r.jsx)(d.A,{className:"size-5","aria-hidden":!0}),o("comments.reply")]}),n&&(0,r.jsx)("div",{className:"mt-1 border-t pt-1",children:(0,r.jsxs)(p.$,{type:"button",variant:"ghost",className:"min-h-11 w-full justify-start gap-3 rounded-lg px-3 text-sm text-destructive hover:bg-destructive/10 hover:text-destructive focus-visible:text-destructive",onClick:k,children:[(0,r.jsx)(m.A,{className:"size-5","aria-hidden":!0}),o("comments.delete")]})})]})]})]}):(0,r.jsxs)(J.rI,{open:f,onOpenChange:h,children:[(0,r.jsx)(J.ty,{asChild:!0,children:N}),(0,r.jsxs)(J.SQ,{align:"end","data-comment-actions-variant":"desktop",className:"z-[100] w-44",onCloseAutoFocus:C,children:[(0,r.jsxs)(J._2,{onSelect:E,children:[(0,r.jsx)(d.A,{"aria-hidden":!0}),o("comments.reply")]}),n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(J.mB,{}),(0,r.jsxs)(J._2,{variant:"destructive",onSelect:k,children:[(0,r.jsx)(m.A,{"aria-hidden":!0}),o("comments.delete")]})]})]})]}),(0,r.jsx)(Z.Lt,{open:x,onOpenChange:e=>{v||g(e)},children:(0,r.jsxs)(Z.EO,{className:"z-[120]",overlayClassName:"z-[120]",onCloseAutoFocus:e=>{var t;e.preventDefault(),null==(t=y.current)||t.focus()},children:[(0,r.jsxs)(Z.wd,{children:[(0,r.jsx)(Z.r7,{children:o("comments.deleteTitle")}),(0,r.jsx)(Z.$v,{children:o("comments.deleteDescription")})]}),(0,r.jsxs)(Z.ck,{children:[(0,r.jsx)(Z.Zr,{disabled:v,children:o("common.cancel")}),(0,r.jsxs)(Z.Rx,{variant:"destructive",disabled:v,onClick:async e=>{e.preventDefault(),w(!0);let t=await s();w(!1),t&&g(!1)},children:[v&&(0,r.jsx)(i.A,{className:"animate-spin","aria-hidden":!0}),o("comments.deleteConfirm")]})]})]})})]})}function el(e){var t;let{comment:n,compact:o,avatarSize:l,gap:i,t:s,currentUserUuid:c,onReply:u,onDelete:d}=e,[m,x]=(0,a.useState)(!1),g="agent"===n.author.type,v=!!c&&("user"===n.author.type&&n.author.uuid===c||"agent"===n.author.type&&(null==(t=n.author.owner)?void 0:t.uuid)===c),w=g?(0,K.j)(n.author.name):null,y=n.content.length>200,b=w?"".concat(w,"18"):void 0;return(0,r.jsxs)("div",{className:"flex ".concat(i," py-3 border-b border-[#F0EDE8] dark:border-[#26241f] last:border-b-0"),children:[g?(0,r.jsx)(h.AgentAvatar,{name:n.author.name,size:o?24:30,className:"shrink-0 rounded-full"}):(0,r.jsx)(f.eu,{className:"".concat(l," shrink-0"),children:(0,r.jsx)(f.q5,{className:"bg-border text-muted-foreground text-[11px] font-medium",children:n.author.name.charAt(0).toUpperCase()})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1.5",children:[(0,r.jsx)("span",{className:"".concat(o?"text-xs":"text-[13px]"," font-semibold text-[#1A1A1A] dark:text-[#CFCFCF]"),children:n.author.name}),(0,r.jsx)("span",{style:g?{backgroundColor:b,color:null!=w?w:void 0}:void 0,className:"inline-flex items-center rounded px-1.5 py-px text-[9px] font-medium ".concat(g?"":"bg-[#F0EDE8] dark:bg-[#1f1e1c] text-muted-foreground"),children:s(g?"comments.roleAgent":"comments.roleHuman")}),(0,r.jsx)("span",{className:"text-[11px] text-muted-foreground",children:function(e,t){let n=new Date(e),r=new Date().getTime()-n.getTime(),a=Math.floor(r/6e4),o=Math.floor(r/36e5),l=Math.floor(r/864e5);return a<1?t("time.justNow"):a<60?t("time.minutesAgo",{minutes:a}):o<24?t("time.hoursAgo",{hours:o}):l<7?t("time.daysAgo",{days:l}):(0,Q.r)(n)}(n.createdAt,s)})]}),(0,r.jsx)(eo,{author:{type:g?"agent":"user",uuid:n.author.uuid,name:n.author.name},canDelete:v,t:s,onReply:()=>u({type:g?"agent":"user",uuid:n.author.uuid,name:n.author.name}),onDelete:()=>d(n.uuid)})]}),g&&n.author.owner&&(0,r.jsx)("div",{className:"flex items-center gap-1 mt-0.5",children:(0,r.jsx)("span",{className:"text-[11px] text-muted-foreground italic",children:s("comments.onBehalfOf",{name:n.author.owner.name})})}),(0,r.jsx)("div",{className:"mt-1 ".concat(o?"text-xs":"text-[13px]"," leading-relaxed text-[#3D3D3D] dark:text-[#d8d2ca] max-w-none [&_h1]:text-sm [&_h1]:font-semibold [&_h1]:mt-2 [&_h1]:mb-1 [&_h2]:text-[13px] [&_h2]:font-semibold [&_h2]:mt-2 [&_h2]:mb-1 [&_h3]:text-[13px] [&_h3]:font-semibold [&_h3]:mt-1.5 [&_h3]:mb-0.5 [&_p]:my-1 [&_ul]:my-1 [&_ol]:my-1 [&_li]:my-0.5 [&_code]:bg-secondary [&_code]:text-foreground [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_a]:text-primary [&_pre]:bg-secondary [&_pre]:text-foreground"),children:y&&!m?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(O,{renderMention:et,children:n.content.slice(0,200)+"..."}),(0,r.jsx)(p.$,{variant:"link",size:"sm",onClick:()=>x(!0),className:"h-auto p-0 text-[#E07A5F] dark:text-[#F0A088] text-xs font-medium mt-1",children:s("comments.showMore")})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(O,{renderMention:et,children:n.content}),y&&(0,r.jsx)(p.$,{variant:"link",size:"sm",onClick:()=>x(!1),className:"h-auto p-0 text-[#E07A5F] dark:text-[#F0A088] text-xs font-medium mt-1",children:s("comments.showLess")})]})})]})]})}},96213:(e,t,n)=>{n.d(t,{D:()=>i});var r=n(90508),a=n(47754),o=n(30423),l=n(91385);function i(e){let{entityType:t,entityUuid:n,subEntityType:l,subEntityUuid:i,children:c,badgeInside:u}=e,{getPresence:d}=(0,a.xQ)(),m=d(t,n,l,i),p=m.length>0,f=p&&m.some(e=>"mutate"===e.action),h=p?f?m.find(e=>"mutate"===e.action):m[m.length-1]:null,x=h?(0,o.j)(h.agentName):"transparent";return(0,r.jsxs)("div",{className:"relative",style:p?{outline:"2px ".concat(f?"solid":"dashed"," ").concat(x),outlineOffset:"-2px",borderRadius:"var(--radius)"}:void 0,children:[p&&(0,r.jsxs)("div",{className:"absolute flex gap-1 z-10 justify-end ".concat(u?"top-0.5 right-1.5 max-w-[70%]":"-top-2.5 right-2 max-w-[80%]"),children:[m.slice(0,3).map(e=>(0,r.jsx)(s,{entry:e},e.agentUuid)),m.length>3&&(0,r.jsxs)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white bg-gray-500 whitespace-nowrap",children:["+",m.length-3]})]}),c]})}function s(e){let{entry:t}=e,n=(0,o.j)(t.agentName);return(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white whitespace-nowrap animate-in fade-in duration-300 ease-out sm:text-[11px] sm:px-2",style:{backgroundColor:n},children:[(0,r.jsx)(l.AgentAvatar,{name:t.agentName,size:14,className:"rounded-full"}),t.agentName]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[99540],{3848:(e,r,t)=>{t.d(r,{L:()=>l});var a=t(90508),s=t(1856),n=t(39268),i=t(92691);function l(e){let{notes:r}=e,t=(0,n.c)(),[l,d]=(0,s.useState)(!1),c=null==r?void 0:r.trim();if(!c)return null;let o=(0,a.jsx)("button",{type:"button",onClick:()=>d(e=>!e),"aria-expanded":l,"aria-label":t("references.toggleNotes"),className:"mt-1 w-full cursor-pointer text-left text-xs leading-relaxed text-muted-foreground ".concat(l?"block":"line-clamp-2"),children:c});return l?o:(0,a.jsx)(i.Bc,{delayDuration:200,children:(0,a.jsxs)(i.m_,{children:[(0,a.jsx)(i.k$,{asChild:!0,children:o}),(0,a.jsx)(i.ZI,{className:"max-w-xs whitespace-pre-wrap break-words",children:c})]})})}},4365:(e,r,t)=>{t.d(r,{G7:()=>d,L$:()=>u,h_:()=>m,oI:()=>c,uB:()=>l,xL:()=>o});var a=t(90508);t(1856);var s=t(64731),n=t(30044),i=t(24377);function l(e){let{className:r,...t}=e;return(0,a.jsx)(s.uB,{"data-slot":"command",className:(0,i.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",r),...t})}function d(e){let{className:r,...t}=e;return(0,a.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,a.jsx)(n.A,{className:"size-4 shrink-0 opacity-50"}),(0,a.jsx)(s.uB.Input,{"data-slot":"command-input",className:(0,i.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",r),...t})]})}function c(e){let{className:r,...t}=e;return(0,a.jsx)(s.uB.List,{"data-slot":"command-list",className:(0,i.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",r),...t})}function o(e){let{...r}=e;return(0,a.jsx)(s.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...r})}function u(e){let{className:r,...t}=e;return(0,a.jsx)(s.uB.Group,{"data-slot":"command-group",className:(0,i.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",r),...t})}function m(e){let{className:r,...t}=e;return(0,a.jsx)(s.uB.Item,{"data-slot":"command-item",className:(0,i.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",r),...t})}},12210:(e,r,t)=>{t.d(r,{d:()=>i});var a=t(90508);t(1856);var s=t(60322),n=t(24377);function i(e){let{className:r,...t}=e;return(0,a.jsx)(s.Root,{"data-slot":"switch",className:(0,n.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:ring-ring/50 inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",r),...t,children:(0,a.jsx)(s.Thumb,{"data-slot":"switch-thumb",className:(0,n.cn)("bg-background pointer-events-none block size-4 rounded-full ring-0 shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})}},13108:(e,r,t)=>{t.d(r,{C:()=>o,K:()=>m});var a=t(90508),s=t(39268),n=t(97413),i=t(5616),l=t(22922),d=t(14554),c=t(12210);function o(e){let{items:r,onChange:t,disabled:o}=e,u=(0,s.c)(),m=(e,a)=>{let s=r.slice();s[e]={...s[e],...a},t(s)};return(0,a.jsxs)("div",{className:"space-y-3",children:[r.length>0&&(0,a.jsx)("div",{className:"space-y-2",children:r.map((e,s)=>(0,a.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-[#E5E2DC] dark:border-[#2a2a2e] bg-background p-2.5",children:[(0,a.jsx)("div",{className:"flex-1 min-w-0",children:(0,a.jsx)(d.p,{value:e.description,onChange:e=>m(s,{description:e.target.value}),placeholder:u("acceptanceCriteria.criterionPlaceholder"),className:"border-[#E5E2DC] dark:border-[#2a2a2e] text-sm focus-visible:ring-primary h-8",disabled:o})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 shrink-0 pt-1",children:[(0,a.jsx)(c.d,{checked:e.required,onCheckedChange:e=>m(s,{required:e}),className:"data-[state=checked]:bg-primary",disabled:o}),(0,a.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground min-w-[52px]",children:e.required?u("acceptanceCriteria.required"):u("acceptanceCriteria.optional")}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",className:"h-7 w-7 p-0 border-[#E5E2DC] dark:border-[#2a2a2e] text-muted-foreground hover:text-[#D32F2F] hover:border-[#D32F2F] hover:bg-[#FFEBEE] dark:hover:bg-[#331619]",onClick:()=>{t(r.filter((e,r)=>r!==s))},disabled:o,type:"button",children:(0,a.jsx)(n.A,{className:"h-3 w-3"})})]})]},s))}),(0,a.jsxs)(l.$,{variant:"outline",size:"sm",className:"h-8 gap-1.5 border-[#E5E2DC] dark:border-[#2a2a2e] text-xs text-muted-foreground hover:text-primary hover:border-primary",onClick:()=>{t([...r,{description:"",required:!0}])},disabled:o,type:"button",children:[(0,a.jsx)(i.A,{className:"h-3 w-3"}),u("acceptanceCriteria.addCriterion")]})]})}function u(e){return{description:e.description.trim(),required:!!e.required}}function m(e,r){if(e.length!==r.length)return!0;for(let t=0;t<e.length;t++){let a=u(e[t]),s=u(r[t]);if(a.description!==s.description||a.required!==s.required)return!0}return!1}},17722:(e,r,t)=>{t.d(r,{AI:()=>l,_8:()=>i});var a=t(90508);t(1856);var s=t(97438),n=t(24377);function i(e){let{open:r,onOpenChange:t,header:i,footer:l,children:d,className:c,bodyClassName:o,zIndexClassName:u="z-[110]",showCloseButton:m=!0}=e;return(0,a.jsx)(s.lG,{open:r,onOpenChange:t,children:(0,a.jsxs)(s.Cf,{className:(0,n.cn)("flex max-h-[85svh] flex-col gap-0 overflow-hidden p-0",u,c),overlayClassName:u,showCloseButton:m,children:[(0,a.jsx)(s.c7,{className:"shrink-0 border-b border-border px-6 py-5 text-left",children:i}),(0,a.jsx)("div",{className:(0,n.cn)("min-h-0 flex-1 overflow-y-auto px-6 py-4",o),children:d}),(0,a.jsx)(s.Es,{className:"shrink-0 border-t border-border px-6 py-5",children:l})]})})}let l=s.L3},29532:(e,r,t)=>{function a(e,r){return!!e&&!!r&&("user"===e.type?"user"===r.type&&e.uuid===r.uuid:"agent"===e.type?"agent"===r.type&&e.uuid===r.uuid:"agent_instance"===e.type&&"agent"===r.type&&!!e.agentUuid&&e.agentUuid===r.uuid)}function s(e){return!!e&&("agent"===e.type||"agent_instance"===e.type)}t.d(r,{RU:()=>a,bB:()=>s})},49151:(e,r,t)=>{t.d(r,{j:()=>s});var a=t(52217);let s=(0,a.createServerReference)("60d404c9e3ab7f308b5178d587ba3a5be4d69c419c",a.callServer,void 0,a.findSourceMapURL,"listReferencesAction")},49914:(e,r,t)=>{t.d(r,{W:()=>s});var a=t(1856);function s(){let[e,r]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=document.documentElement,t=()=>r(e.classList.contains("dark"));t();let a=new MutationObserver(t);return a.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>a.disconnect()},[]),e}},65626:(e,r,t)=>{t.d(r,{K5:()=>d,Rf:()=>l,Yv:()=>a,bK:()=>i,qG:()=>n,tE:()=>s});let a={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]}},s={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:a.normal,ease:a.easeOut}},exit:{opacity:0,y:-4,transition:{duration:a.fast,ease:a.easeOut}}},n={initial:{opacity:0},animate:{opacity:1,transition:{duration:a.normal,ease:a.easeOut}},exit:{opacity:0,transition:{duration:a.fast,ease:a.easeOut}}};a.normal,a.easeOut,a.fast,a.easeOut;let i={initial:{},animate:{transition:{staggerChildren:a.stagger}}},l={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:a.normal,ease:a.easeOut}}},d={initial:{opacity:0,scale:.95,y:-4},animate:{opacity:1,scale:1,y:0,transition:{duration:a.fast,ease:a.easeOut}},exit:{opacity:0,scale:.95,y:-4,transition:{duration:a.fast,ease:a.easeOut}}}},79935:(e,r,t)=>{t.d(r,{ReferencesSection:()=>E});var a=t(90508),s=t(1856),n=t(91814),i=t(39268),l=t(34956),d=t(20578),c=t(57893),o=t(85226),u=t(97413),m=t(5616),p=t(57731),x=t(22922),f=t(14554),h=t(88064),g=t(15972),b=t(97438),v=t(91846),y=t(51817),j=t(49151),N=t(52217);let w=(0,N.createServerReference)("4049fac02f2ddffe55ece21a3122919d8b5853fa85",N.callServer,void 0,N.findSourceMapURL,"updateReferenceAction"),k=(0,N.createServerReference)("4003d6e1e70e2ebe308708ed0fb052ef68022e8978",N.callServer,void 0,N.findSourceMapURL,"createReferenceAction"),C=(0,N.createServerReference)("40bfc1699bee723af3cda4549c5e8ac758d0f4c6fd",N.callServer,void 0,N.findSourceMapURL,"deleteReferenceAction");var R=t(68876),S=t(3848);function E(e){let{targetType:r,targetUuid:t,canWrite:N,initialReferences:E,compact:_=!1}=e,L=(0,i.c)(),F=(0,n.r)(),[q,A]=(0,s.useState)(null!=E?E:[]),[O,B]=(0,s.useState)(void 0!==E),[z,$]=(0,s.useState)(!1),[D,U]=(0,s.useState)(null),[I,G]=(0,s.useState)("docs"),[J,K]=(0,s.useState)(""),[M,P]=(0,s.useState)(""),[Q,T]=(0,s.useState)(""),[Z,V]=(0,s.useState)(null),[W,Y]=(0,s.useState)(!1),[H,X]=(0,s.useState)(null),ee=(0,s.useCallback)(async()=>{let e=await (0,j.j)(r,t);e.success&&A(e.references),B(!0)},[r,t]);(0,s.useEffect)(()=>{void 0===E&&ee()},[E,ee]);let er=async()=>{if(!J.trim())return void V(L("references.urlRequired"));if(!M.trim())return void V(L("references.titleRequired"));Y(!0),V(null);let e=Q.trim()?Q.trim():null,a=D?await w({uuid:D.uuid,type:I,url:J.trim(),title:M.trim(),notes:e}):await k({targetType:r,targetUuid:t,type:I,url:J.trim(),title:M.trim(),notes:e});Y(!1),a.success?($(!1),await ee(),F.refresh()):V(a.error||(D?L("references.updateFailed"):L("references.addFailed")))},et=async e=>{X(e);let r=await C(e);X(null),r.success&&(await ee(),F.refresh())};return(0,a.jsxs)("div",{className:_?"space-y-2":"space-y-2.5",children:[0===q.length?(0,a.jsx)("p",{className:"text-sm italic text-muted-foreground",children:O?L("references.empty"):L("references.loading")}):(0,a.jsx)("div",{className:"space-y-2",children:q.map(e=>{var r,t;let s=(0,R.N2)(e.type)?R.qQ[e.type]:null,n=null!=(r=null==s?void 0:s.icon)?r:l.A;return(0,a.jsx)("div",{className:"group rounded-lg border border-border bg-background p-3",children:(0,a.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"mb-1 flex items-center gap-2",children:(0,a.jsxs)(p.E,{className:"gap-1 border-0 text-[10px] font-medium ".concat(null!=(t=null==s?void 0:s.badgeClass)?t:"bg-secondary text-muted-foreground"),children:[(0,a.jsx)(n,{className:"h-3 w-3"}),s?L(s.labelKey):e.type]})}),(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",title:e.title,className:"flex min-w-0 items-center gap-1 text-sm font-medium text-primary hover:underline",children:[(0,a.jsx)("span",{className:"truncate",children:e.title}),(0,a.jsx)(d.A,{className:"h-3 w-3 shrink-0"})]}),(0,a.jsx)(S.L,{notes:e.notes})]}),N&&(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5 transition-opacity md:opacity-0 md:group-hover:opacity-100 md:focus-within:opacity-100",children:[(0,a.jsx)(x.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>{var r;U(e),G(e.type),K(e.url),P(e.title),T(null!=(r=e.notes)?r:""),V(null),$(!0)},"aria-label":L("references.editReference"),children:(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,a.jsxs)(y.Lt,{children:[(0,a.jsx)(y.tv,{asChild:!0,children:(0,a.jsx)(x.$,{variant:"ghost",size:"icon",className:"h-7 w-7","aria-label":L("references.deleteReference"),children:H===e.uuid?(0,a.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin text-muted-foreground"}):(0,a.jsx)(u.A,{className:"h-3.5 w-3.5 text-destructive"})})}),(0,a.jsxs)(y.EO,{children:[(0,a.jsxs)(y.wd,{children:[(0,a.jsx)(y.r7,{children:L("references.deleteReference")}),(0,a.jsx)(y.$v,{children:L("references.deleteConfirm",{title:e.title})})]}),(0,a.jsxs)(y.ck,{children:[(0,a.jsx)(y.Zr,{children:L("common.cancel")}),(0,a.jsx)(y.Rx,{variant:"destructive",onClick:()=>et(e.uuid),children:L("common.delete")})]})]})]})]})]})},e.uuid)})}),N&&(0,a.jsxs)(x.$,{variant:"outline",size:"sm",className:"h-8 w-full gap-1.5 border-border border-dashed text-xs text-muted-foreground",onClick:()=>{U(null),G("docs"),K(""),P(""),T(""),V(null),$(!0)},children:[(0,a.jsx)(m.A,{className:"h-3.5 w-3.5"}),L("references.addReference")]}),(0,a.jsx)(b.lG,{open:z,onOpenChange:$,children:(0,a.jsxs)(b.Cf,{className:"sm:max-w-[480px]",children:[(0,a.jsx)(b.c7,{children:(0,a.jsx)(b.L3,{children:D?L("references.editReference"):L("references.addReference")})}),(0,a.jsxs)("div",{className:"space-y-4 py-2",children:[Z&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:Z}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(h.J,{htmlFor:"ref-type",className:"text-[13px] font-medium text-foreground",children:L("references.typeLabel")}),(0,a.jsxs)(v.l6,{value:I,onValueChange:G,children:[(0,a.jsx)(v.bq,{id:"ref-type",className:"border-border focus:ring-primary",children:(0,a.jsx)(v.yv,{})}),(0,a.jsx)(v.gC,{children:R.mP.map(e=>(0,a.jsx)(v.eb,{value:e,children:L(R.qQ[e].labelKey)},e))})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)(h.J,{htmlFor:"ref-url",className:"text-[13px] font-medium text-foreground",children:[L("references.urlLabel")," *"]}),(0,a.jsx)(f.p,{id:"ref-url",value:J,onChange:e=>K(e.target.value),placeholder:L("references.urlPlaceholder"),className:"border-border focus-visible:ring-primary",autoFocus:!0})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)(h.J,{htmlFor:"ref-title",className:"text-[13px] font-medium text-foreground",children:[L("references.titleLabel")," *"]}),(0,a.jsx)(f.p,{id:"ref-title",value:M,onChange:e=>P(e.target.value),placeholder:L("references.titlePlaceholder"),className:"border-border focus-visible:ring-primary"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(h.J,{htmlFor:"ref-notes",className:"text-[13px] font-medium text-foreground",children:L("references.notesLabel")}),(0,a.jsx)(g.T,{id:"ref-notes",value:Q,onChange:e=>T(e.target.value),placeholder:L("references.notesPlaceholder"),rows:3,className:"resize-none border-border focus-visible:ring-primary"})]})]}),(0,a.jsxs)(b.Es,{children:[(0,a.jsx)(x.$,{variant:"outline",onClick:()=>$(!1),disabled:W,className:"border-border",children:L("common.cancel")}),(0,a.jsx)(x.$,{onClick:er,disabled:W||!J.trim()||!M.trim(),className:"bg-primary hover:bg-primary/90 text-primary-foreground",children:W?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),L("common.saving")]}):D?L("common.save"):L("references.add")})]})]})})]})}},88064:(e,r,t)=>{t.d(r,{J:()=>i});var a=t(90508);t(1856);var s=t(58057),n=t(24377);function i(e){let{className:r,...t}=e;return(0,a.jsx)(s.Root,{"data-slot":"label",className:(0,n.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",r),...t})}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[69305],{15272:(e,t,a)=>{var r={"./en.json":[99373,99373],"./ja.json":[11595,11595],"./ko.json":[33456,33456],"./zh.json":[4860,4860]};function n(e){if(!a.o(r,e))return Promise.resolve().then(()=>{var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=r[e],n=t[0];return a.e(t[1]).then(()=>a.t(n,19))}n.keys=()=>Object.keys(r),n.id=15272,e.exports=n},25359:(e,t,a)=>{"use strict";a.d(t,{AL:()=>c,IB:()=>r,L$:()=>s,q:()=>n});let r=["en","zh","ko","ja"],n="en",s={en:"English",zh:"中文",ko:"한국어",ja:"日本語"};function c(){if("undefined"==typeof navigator)return n;let e=navigator.language.split("-")[0];return r.includes(e)?e:n}},32277:(e,t,a)=>{"use strict";a.d(t,{LocaleProvider:()=>u,Y:()=>d});var r=a(90508),n=a(1856),s=a(57472),c=a(25359),o=a(67712);let i="chorus-locale",l=(0,n.createContext)(null);function d(){let e=(0,n.useContext)(l);if(!e)throw Error("useLocale must be used within LocaleProvider");return e}function u(e){let{children:t}=e,[d,u]=(0,n.useState)(c.q),[m,x]=(0,n.useState)(null),[p,f]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e,t=localStorage.getItem(i);t&&c.IB.includes(t)?e=t:(e=(0,c.AL)(),localStorage.setItem(i,e)),u(e),document.cookie="chorus-locale=".concat(e,";path=/;max-age=").concat(31536e3,";SameSite=Lax"),f(!0)},[]),(0,n.useEffect)(()=>{p&&a(15272)("./".concat(d,".json")).then(e=>{x(e.default)}).catch(e=>{o.q.error("Failed to load messages for locale ".concat(d,":"),e),a(15272)("./".concat(c.q,".json")).then(e=>{x(e.default)})})},[d,p]);let h=(0,n.useCallback)(e=>{u(e),localStorage.setItem(i,e),document.cookie="chorus-locale=".concat(e,";path=/;max-age=").concat(31536e3,";SameSite=Lax"),document.documentElement.lang=e},[]);return p&&m?(0,r.jsx)(l.Provider,{value:{locale:d,setLocale:h},children:(0,r.jsx)(s.A,{locale:d,messages:m,children:t})}):null}},38280:(e,t,a)=>{"use strict";a.d(t,{Dj:()=>n,gl:()=>s,sB:()=>c});let r=[{bg:"#F5C4B3",text:"#712B13",darkBg:"#4a2a1e",darkText:"#F5C4B3"},{bg:"#FAC775",text:"#633806",darkBg:"#4a3a1a",darkText:"#FAD79B"},{bg:"#CECBF6",text:"#3C3489",darkBg:"#2f2c52",darkText:"#CECBF6"},{bg:"#B5D4F4",text:"#0C447C",darkBg:"#1e3450",darkText:"#B5D4F4"},{bg:"#C0DD97",text:"#27500A",darkBg:"#2c3d1c",darkText:"#C0DD97"},{bg:"#9FE1CB",text:"#085041",darkBg:"#183d34",darkText:"#9FE1CB"},{bg:"#F4C0D1",text:"#72243E",darkBg:"#48242f",darkText:"#F4C0D1"},{bg:"#FADBB5",text:"#6B3A10",darkBg:"#463421",darkText:"#FADBB5"}];function n(e){let t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}function s(e){let t=0;for(let a=0;a<e.length;a++)t=e.charCodeAt(a)+((t<<5)-t);return r[Math.abs(t)%r.length]}function c(e){return{"--icon-bg":e.bg,"--icon-text":e.text,"--icon-bg-dark":e.darkBg,"--icon-text-dark":e.darkText}}},39674:(e,t,a)=>{"use strict";a.d(t,{Xi:()=>i,av:()=>l,j7:()=>o,tU:()=>c});var r=a(90508);a(1856);var n=a(79834),s=a(24377);function c(e){let{className:t,...a}=e;return(0,r.jsx)(n.Root,{"data-slot":"tabs",className:(0,s.cn)("flex flex-col gap-2",t),...a})}function o(e){let{className:t,...a}=e;return(0,r.jsx)(n.List,{"data-slot":"tabs-list",className:(0,s.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",t),...a})}function i(e){let{className:t,...a}=e;return(0,r.jsx)(n.Trigger,{"data-slot":"tabs-trigger",className:(0,s.cn)("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)(n.Content,{"data-slot":"tabs-content",className:(0,s.cn)("flex-1 outline-none",t),...a})}},50320:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>eW});var r=a(90508),n=a(1856),s=a(23675),c=a(91814),o=a(39268),i=a(12790),l=a.n(i),d=a(22922),u=a(32239),m=a(56770),x=a(50609),p=a(23217),f=a(20094),h=a(97645),g=a(94152),j=a(70633),b=a(17730),v=a(52309),y=a(90683),w=a(9111),k=a(62990),N=a(97438),C=a(67712);let A=[{cx:54,cy:135,topY:117},{cx:96,cy:114,topY:96},{cx:120,cy:118,topY:108},{cx:155,cy:115,topY:105},{cx:146,cy:148,topY:130},{cx:95,cy:149,topY:138},{cx:133,cy:168,topY:158}],E=Array.from({length:7},(e,t)=>t).sort((e,t)=>A[e].topY-A[t].topY),S={bulb:2e3,document:1500,stars:2500,flash:400},F=function(){let e={floor:"floor.png"};for(let t=0;t<7;t++)e["char".concat(t,"-frame1")]="char".concat(t,"-frame1.png"),e["char".concat(t,"-frame2")]="char".concat(t,"-frame2.png");return e}();function P(e){let{slots:t,projectName:a,agentCount:s,collapsed:c=!1,effects:o,onEffectsConsumed:i}=e,l=(0,n.useRef)(null),d=(0,n.useRef)({}),u=(0,n.useRef)(!1),m=(0,n.useRef)(0),x=(0,n.useRef)(0),p=(0,n.useRef)(0),f=(0,n.useRef)(Array.from({length:7},()=>({state:"empty",cycleIndex:0,frameTicks:0,ticksPerFrame:1,stateTimer:0}))),h=(0,n.useRef)(t),g=(0,n.useRef)(a),j=(0,n.useRef)(s),b=(0,n.useRef)(c),v=(0,n.useRef)([]);(0,n.useEffect)(()=>{h.current=t;for(let r=0;r<7;r++){var e,a;let n=null!=(a=null==(e=t[r])?void 0:e.state)?a:"empty",s=f.current[r];s.state!==n&&(s.state=n,s.cycleIndex=0,s.frameTicks=0,s.stateTimer=0)}},[t]),(0,n.useEffect)(()=>{g.current=a},[a]),(0,n.useEffect)(()=>{j.current=s},[s]),(0,n.useEffect)(()=>{b.current=c},[c]),(0,n.useEffect)(()=>{o&&0!==o.length&&(o.forEach(e=>{var t;v.current.push({type:e.type,slotIndex:null!=(t=e.slotIndex)?t:0,elapsed:0,duration:S[e.type]})}),null==i||i())},[o,i]);let y=(0,n.useCallback)(e=>{e.fillStyle="#d0d0e0",e.fillRect(0,0,256,16),e.fillStyle="#e4e4f0",e.fillRect(0,0,256,1),e.fillStyle="#9999aa",e.fillRect(0,15,256,1),e.font="bold 7px monospace",e.textBaseline="middle",e.fillStyle="#333",e.textAlign="left";let t=g.current,a=t.length>20?t.slice(0,18)+"..":t;e.fillText(a,6,8),e.textAlign="right",e.fillStyle="#336";let r=j.current;e.fillText("".concat(r," agent").concat(1!==r?"s":""),250,8),e.textAlign="start",e.textBaseline="alphabetic"},[]),w=(0,n.useCallback)((e,t)=>{let a=h.current[t];if(!(null==a?void 0:a.sessionName))return;let r=A[t];e.font="5px monospace",e.textAlign="center",e.textBaseline="bottom";let n=a.sessionName.length>12?a.sessionName.slice(0,10)+"..":a.sessionName,s=e.measureText(n).width,c=r.cx,o=r.topY-4;e.fillStyle="rgba(0,0,0,0.55)",e.fillRect(c-s/2-2,o-6,s+4,7),e.fillStyle="#fff",e.fillText(n,c,o),e.textAlign="start",e.textBaseline="alphabetic"},[]),k=(0,n.useCallback)(e=>{for(let t of v.current){let a=t.elapsed/t.duration,r=A[t.slotIndex]||A[0];switch(t.type){case"bulb":{let t=a<.1?a/.1:a>.8?(1-a)/.2:1,n=r.cx,s=r.topY-14-2*Math.sin(a*Math.PI*4);e.fillStyle="rgba(255, 220, 50, ".concat(.3*t,")"),e.beginPath(),e.arc(n,s,8,0,2*Math.PI),e.fill(),e.fillStyle="rgba(255, 230, 80, ".concat(t,")"),e.beginPath(),e.arc(n,s,4,0,2*Math.PI),e.fill(),e.fillStyle="rgba(255, 255, 200, ".concat(t,")"),e.fillRect(n-1,s-1,2,2),e.fillStyle="rgba(180, 180, 180, ".concat(t,")"),e.fillRect(n-2,s+3,4,2);break}case"document":{let t=256+(r.cx-256)*Math.min(2*a,1),n=r.topY-10+-15*Math.sin(a*Math.PI);e.globalAlpha=a>.8?(1-a)/.2:1,e.fillStyle="#f8f8f0",e.fillRect(t,n,8,10),e.strokeStyle="#aaa",e.lineWidth=.5,e.strokeRect(t,n,8,10),e.fillStyle="#ccc",e.fillRect(t+1.5,n+2,5,1),e.fillRect(t+1.5,n+4,4,1),e.fillRect(t+1.5,n+6,5,1),e.globalAlpha=1;break}case"stars":{let t=a>.7?(1-a)/.3:1,n=r.cx,s=r.cy;for(let r=0;r<8;r++){let c=r/8*Math.PI*2+a*Math.PI*3,o=10+15*a,i=n+Math.cos(c)*o,l=s+Math.sin(c)*o,d=["#FFD700","#FF6B6B","#4ECDC4","#A78BFA"];e.fillStyle=d[r%d.length],e.globalAlpha=t*(.5+.5*Math.sin(a*Math.PI*6+r));let u=1.5+.5*Math.sin(a*Math.PI*4+r);e.fillRect(i-u/2,l-u/2,u,u)}e.globalAlpha=1;break}case"flash":{let t=a<.3?a/.3:(1-a)/.7;e.fillStyle="rgba(255, 255, 255, ".concat(.6*t,")"),e.fillRect(0,16,256,240)}}}},[]),N=(0,n.useCallback)((e,t)=>{e.clearRect(0,0,768,768),e.save(),e.scale(3,3);let a=t.floor;for(let r of((null==a?void 0:a.complete)&&a.naturalWidth&&e.drawImage(a,0,0,256,256),E)){let a=f.current[r];if("empty"===a.state)continue;let n="typing"===a.state&&a.cycleIndex%2==1,s=t["char".concat(r,"-frame").concat(n?2:1)];if((null==s?void 0:s.complete)&&s.naturalWidth){"celebrate"===a.state&&(e.save(),e.globalAlpha=.85+.15*Math.sin(Date.now()/200));let t="looking"===a.state?+Math.sin(Date.now()/300):0;0!==t&&(e.save(),e.translate(0,t)),e.drawImage(s,0,0,256,256),0!==t&&e.restore(),"celebrate"===a.state&&e.restore()}w(e,r)}y(e),k(e),e.restore()},[y,w,k]),P=(0,n.useCallback)(e=>{for(let t=0;t<7;t++){let a=f.current[t];"empty"!==a.state&&(a.stateTimer+=e,"celebrate"===a.state&&a.stateTimer>=3e3&&(a.state="idle",a.cycleIndex=0,a.frameTicks=0,a.stateTimer=0),"looking"===a.state&&a.stateTimer>=1500&&(a.state="idle",a.cycleIndex=0,a.frameTicks=0,a.stateTimer=0),"typing"===a.state&&(a.frameTicks++,a.frameTicks>=a.ticksPerFrame&&(a.frameTicks=0,a.cycleIndex=(a.cycleIndex+1)%2)))}let t=v.current;for(let a=t.length-1;a>=0;a--)t[a].elapsed+=e,t[a].elapsed>=t[a].duration&&t.splice(a,1)},[]),T=(0,n.useCallback)(e=>{if(b.current){m.current=requestAnimationFrame(T),x.current=e;return}let t=e-x.current;x.current=e,p.current+=t;let a=!1;for(;p.current>=10;)p.current-=10,P(10),a=!0;if(a){let e=l.current,t=null==e?void 0:e.getContext("2d");t&&u.current&&N(t,d.current)}m.current=requestAnimationFrame(T)},[P,N]);return(0,n.useEffect)(()=>{let e=!1;return new Promise(e=>{let t={},a=Object.entries(F),r=0,n=a.length;a.forEach(a=>{let[s,c]=a,o=new Image;o.onload=()=>{++r===n&&e(t)},o.onerror=()=>{C.q.warn("Failed to load sprite:",s,c),++r===n&&e(t)},o.src="".concat("/sprites/").concat(c),t[s]=o})}).then(t=>{if(e)return;d.current=t,u.current=!0;let a=l.current,r=null==a?void 0:a.getContext("2d");r&&(r.imageSmoothingEnabled=!1,N(r,t)),x.current=performance.now(),m.current=requestAnimationFrame(T)}),()=>{e=!0,m.current&&cancelAnimationFrame(m.current)}},[N,T]),(0,r.jsx)("canvas",{ref:l,width:768,height:768,className:"w-full",style:{imageRendering:"pixelated",aspectRatio:"1 / 1"}})}var T=a(52217);let R=(0,T.createServerReference)("4017ba8ccca37b12d801e8fd7cb05e67a861f0840e",T.callServer,void 0,T.findSourceMapURL,"getProjectActiveSessionsAction");var _=a(63964);let I=(0,n.createContext)(null);function D(e){let{children:t}=e,[a,s]=(0,n.useState)(!1),[c,o]=(0,n.useState)(!1),i=(0,n.useMemo)(()=>({open:a,setOpen:s,available:c,setAvailable:o}),[a,c]);return(0,r.jsx)(I.Provider,{value:i,children:t})}function U(e){let{projectUuid:t,projectName:a}=e,s=(0,o.c)("pixelCanvas"),{open:c,setOpen:i,setAvailable:l}=function(){let e=(0,n.useContext)(I);if(!e)throw Error("usePixelActivity must be used within a PixelActivityProvider");return e}(),[d,u]=(0,n.useState)(Array.from({length:7},()=>({state:"empty"}))),[m,x]=(0,n.useState)(0),[p,f]=(0,n.useState)([]);(0,n.useEffect)(()=>(l(!0),()=>{l(!1),i(!1)}),[l,i]);let h=(0,n.useCallback)(async()=>{let e=await R(t);if(!e.success||!e.data)return;let a=e.data;u(Array.from({length:7},(e,t)=>{let r=a[t];return r?{state:"typing",sessionName:r.sessionName}:{state:"empty"}})),x(a.length)},[t]);(0,_.l9)(h);let g=(0,n.useCallback)(()=>{f([])},[]);return(0,r.jsx)(N.lG,{open:c,onOpenChange:i,children:(0,r.jsxs)(N.Cf,{className:"sm:max-w-2xl p-4",children:[(0,r.jsxs)(N.L3,{className:"text-sm",children:[a," — ",s("title")]}),(0,r.jsx)(N.rr,{className:"sr-only",children:s("title")}),(0,r.jsx)("div",{className:"overflow-hidden rounded-lg border border-border",children:(0,r.jsx)(P,{slots:d,projectName:a,agentCount:m,collapsed:!c,effects:p,onEffectsConsumed:g})})]})})}var B=a(59208),M=a(16349),O=a(6748),z=a(18789),L=a(17001),q=a(71921),$=a(72530);let Y={online:"border-[#E7E1D7] dark:border-[#2a2a2e] bg-card hover:bg-[#FBF4EF] dark:hover:bg-[#26241f] hover:border-[#E2D6C9] dark:hover:border-[#3a3a40]",idle:"border-[#EAE5DC] dark:border-[#2a2a2e] bg-card hover:bg-[#F6F2EC] dark:hover:bg-[#26241f]",loading:"border-[#EAE5DC] dark:border-[#2a2a2e] bg-card",error:"border-[#EBD9C4] dark:border-[#3a2f1a] bg-[#FFF9F2] dark:bg-[#2a2113] hover:bg-[#FEF3E4] dark:hover:bg-[#332a17]"};function H(){let e,t=(0,o.c)("agentPresence"),{status:a,connections:s,executionsByConnection:c,setModalOpen:i}=(0,B.$d)(),l=(0,n.useContext)(I),u=(0,q.Jk)((0,q.fb)(s,c),c).filter(e=>e.onlineCount>0),m=u.length,x=(0,$.wo)(a,m);if("error"===a)e=(0,r.jsx)("span",{className:"truncate text-[12px] font-medium text-[#B45309] dark:text-[#E0A34E]",children:t("unavailable")});else if("loading"===a)e=(0,r.jsx)("span",{className:"truncate text-[12px] text-muted-foreground/70",children:t("loading")});else{let a=m>0?"text-[#15803D] dark:text-[#4FD07A]":"text-foreground/80";e=(0,r.jsxs)("span",{className:"flex min-w-0 items-baseline gap-1.5 truncate text-[12px]",children:[(0,r.jsx)("span",{className:"text-[15px] font-semibold leading-none tabular-nums ".concat(a),children:m}),(0,r.jsx)("span",{className:"truncate text-muted-foreground",children:t("onlineUnit",{count:m})})]})}return(0,r.jsx)("div",{className:"fixed bottom-4 right-4 md:bottom-6 md:right-6 z-40",children:(0,r.jsxs)(L.AM,{children:[(0,r.jsx)(L.Wv,{asChild:!0,children:(0,r.jsxs)(d.$,{variant:"ghost","aria-label":t("pillAria"),className:"group relative h-auto gap-2 rounded-full border px-4 py-2.5 shadow-lg transition-all hover:shadow-xl ".concat(Y[x]),children:[(0,r.jsx)($.No,{state:x}),(0,r.jsx)(O.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),e]})}),(0,r.jsx)(L.hl,{align:"end",side:"top",sideOffset:8,className:"max-h-[70vh] w-[min(92vw,400px)] overflow-y-auto p-3",children:(0,r.jsx)(G,{groups:u,executionsByConnection:c,onOpenChat:()=>i(!0),extraActions:(null==l?void 0:l.available)?(0,r.jsxs)(d.$,{variant:"ghost",size:"sm",onClick:()=>l.setOpen(!0),className:"w-full justify-center gap-2 text-[12px] font-medium text-muted-foreground hover:text-foreground",children:[(0,r.jsx)(z.A,{className:"h-3.5 w-3.5"}),t("openPixelWorkspace")]}):void 0})})]})})}function G(e){let{groups:t,executionsByConnection:a,onOpenChat:n,extraActions:s}=e,c=(0,o.c)("agentPresence"),i=(0,q.le)();return(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)("div",{className:"flex items-center justify-between",children:(0,r.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-wide text-muted-foreground",children:c("popoverTitle")})}),(0,r.jsxs)(d.$,{size:"sm",onClick:n,className:"w-full justify-center gap-2 text-[12px] font-medium",children:[(0,r.jsx)(O.A,{className:"h-3.5 w-3.5"}),c("openChat")]}),(0,r.jsx)($.HM,{groups:t,executionsByConnection:a,nowMs:i}),s]})}var W=a(62926),K=a(67587),Q=a(11966),V=a(42533),J=a(1861),X=a(43057),Z=a(83553),ee=a(95886),et=a(11080),ea=a(95126);let er=(0,n.createContext)(null),en=new Set(["agent_checkin"]);function es(e){let{children:t}=e;return(0,ea.jj)()?(0,r.jsx)(ec,{children:t}):(0,r.jsx)(ea.Qb,{children:(0,r.jsx)(es,{children:t})})}function ec(e){let{children:t}=e,a=(0,ea.D1)().subscribe,[s,i]=(0,n.useState)(0),l=(0,n.useRef)(new Set),d=(0,c.r)(),u=(0,o.c)("notifications"),m=(0,n.useCallback)(()=>{l.current.forEach(e=>e())},[]),x=(0,n.useCallback)(async()=>{try{let e=await (0,k.tm)("/api/notifications?readFilter=unread&take=0");if(e.ok){let t=await e.json();t.success&&i(t.data.unreadCount)}}catch(e){}},[]),p=(0,n.useCallback)(()=>{x(),m()},[x,m]),f=(0,n.useCallback)(e=>{if(!e.action||en.has(e.action)||!e.entityTitle||!e.actorName)return;let t=u("types.".concat(e.action)),a=e.entityTitle,n="".concat(e.actorName," \xb7 ").concat(t);(0,K.oR)(a,{description:n,icon:function(e){switch(e){case"task_assigned":case"idea_claimed":return(0,r.jsx)(Q.A,{className:"h-4 w-4 text-[#C67A52]"});case"proposal_approved":case"task_verified":return(0,r.jsx)(V.A,{className:"h-4 w-4 text-green-600"});case"proposal_rejected":case"task_reopened":return(0,r.jsx)(J.A,{className:"h-4 w-4 text-red-500"});case"comment_added":return(0,r.jsx)(X.A,{className:"h-4 w-4 text-orange-500"});case"mentioned":return(0,r.jsx)(Z.A,{className:"h-4 w-4 text-blue-600"});case"proposal_submitted":return(0,r.jsx)(ee.A,{className:"h-4 w-4 text-blue-500"});case"task_status_changed":return(0,r.jsx)(et.A,{className:"h-4 w-4 text-blue-500"});default:return(0,r.jsx)(ee.A,{className:"h-4 w-4 text-muted-foreground"})}}(e.action),duration:5e3,action:e.entityType&&e.entityUuid&&e.projectUuid?{label:u("viewDetail"),onClick:()=>d.push(function(e,t,a){let r="/projects/".concat(a);switch(e){case"task":return"".concat(r,"/tasks/").concat(t);case"idea":return"".concat(r,"/dashboard?panel=").concat(t);case"proposal":return"".concat(r,"/proposals/").concat(t);case"document":return"".concat(r,"/documents/").concat(t);default:return r}}(e.entityType,e.entityUuid,e.projectUuid))}:void 0})},[u,d]);(0,n.useEffect)(()=>{let e;function t(){"visible"===document.visibilityState&&x()}let r=a(t=>{("number"==typeof t.unreadCount||"new_notification"===t.type||"count_update"===t.type)&&("number"==typeof t.unreadCount&&i(t.unreadCount),"new_notification"===t.type&&"visible"===document.visibilityState&&f(t),clearTimeout(e),e=setTimeout(m,300))});return x(),document.addEventListener("visibilitychange",t),()=>{r(),clearTimeout(e),document.removeEventListener("visibilitychange",t)}},[a,x,m,f]);let h=(0,n.useMemo)(()=>({unreadCount:s,refreshNotifications:p}),[s,p]);return(0,r.jsx)(er.Provider,{value:h,children:t})}function eo(){let e=(0,n.useContext)(er);return e||{unreadCount:0,refreshNotifications:()=>{}}}var ei=a(75579),el=a(79363),ed=a(90031),eu=a(9160),em=a(78948),ex=a(66343);let ep="chorus_sidebar_quick_access_expanded";var ef=a(38280);function eh(e){let{project:t,pinnedRow:a,mobile:n,onPin:s,onUnpin:c,onRemove:i}=e,u=(0,o.c)(),m=(0,ef.Dj)(t.name),x=(0,ef.gl)(t.name);return(0,r.jsxs)("div",{className:"group relative flex items-center rounded-md transition-colors hover:bg-secondary",children:[(0,r.jsxs)(l(),{href:"/projects/".concat(t.uuid,"/dashboard"),className:"flex min-w-0 flex-1 items-center gap-2 px-2 py-1.5 leading-tight",children:[(0,r.jsx)("span",{className:"project-icon flex shrink-0 items-center justify-center font-bold ".concat(n?"h-6 w-6 rounded-md text-[9px]":"h-5 w-5 rounded text-[8px]"),style:(0,ef.sB)(x),"aria-hidden":"true",children:m}),(0,r.jsxs)("span",{className:"flex min-w-0 flex-col",children:[(0,r.jsx)("span",{className:"truncate text-foreground ".concat(n?"text-[14px]":"text-[13px]"),children:t.name}),t.groupName&&(0,r.jsx)("span",{className:"truncate text-[11px] text-muted-foreground",children:t.groupName})]})]}),a?(0,r.jsx)(d.$,{variant:"ghost",size:"icon",onClick:()=>c(t.uuid),"aria-label":u("quickAccess.unpinProject",{name:t.name}),title:u("quickAccess.unpin"),className:"mr-1 h-6 w-6 shrink-0 text-primary hover:text-primary",children:(0,r.jsx)(el.A,{className:"h-3.5 w-3.5 fill-current"})}):(0,r.jsxs)(ex.rI,{children:[(0,r.jsx)(ex.ty,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon","aria-label":u("quickAccess.moreActions",{name:t.name}),className:"mr-1 h-6 w-6 shrink-0 text-muted-foreground hover:text-primary data-[state=open]:opacity-100 ".concat(n?"":"opacity-0 focus-visible:opacity-100 group-hover:opacity-100 group-focus-within:opacity-100"),children:(0,r.jsx)(ed.A,{className:"h-3.5 w-3.5"})})}),(0,r.jsxs)(ex.SQ,{align:"end",className:"min-w-[10rem]",children:[(0,r.jsxs)(ex._2,{onClick:()=>s(t.uuid),children:[(0,r.jsx)(el.A,{className:"h-4 w-4"}),u("quickAccess.pinToSidebar")]}),(0,r.jsxs)(ex._2,{onClick:()=>i(t.uuid),children:[(0,r.jsx)(eu.A,{className:"h-4 w-4"}),u("quickAccess.removeFromRecent")]})]})]})]})}function eg(e){let{mobile:t=!1,collapsedInProject:a=!1}=e,s=(0,o.c)(),{pinned:c,recent:i,pin:l,unpin:u,remove:m}=(0,ei.E)(),[x,p]=(0,n.useState)(!1);(0,n.useEffect)(()=>{a&&p(function(){try{let e=window.localStorage.getItem(ep);if(null===e)return!1;if("true"===e)return!0;return!1}catch(e){return!1}}())},[a]);let f=i.slice(0,5),h=c.length+f.length>0,g=!a||x;if(!a&&!h)return null;let j=t?"text-[13px]":"text-[11px]";return(0,r.jsxs)("div",{className:"flex flex-col gap-0.5 px-4",children:[a?(0,r.jsxs)(d.$,{variant:"ghost",size:"sm",onClick:()=>{p(e=>{let t=!e;try{window.localStorage.setItem(ep,t?"true":"false")}catch(e){}return t})},"aria-expanded":g,className:"w-full justify-start gap-2 px-2 font-medium uppercase tracking-wider text-muted-foreground hover:text-foreground ".concat(j),children:[g?(0,r.jsx)(b.A,{className:"h-3.5 w-3.5 shrink-0"}):(0,r.jsx)(em.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:s("quickAccess.title")})]}):(0,r.jsx)("div",{className:"px-2 pb-1 font-medium uppercase tracking-wider text-muted-foreground ".concat(j),children:s("quickAccess.title")}),g&&h&&(0,r.jsxs)("div",{className:"flex flex-col gap-0.5",children:[c.map(e=>(0,r.jsx)(eh,{project:e,pinnedRow:!0,mobile:t,onPin:l,onUnpin:u,onRemove:m},e.uuid)),f.map(e=>(0,r.jsx)(eh,{project:e,pinnedRow:!1,mobile:t,onPin:l,onUnpin:u,onRemove:m},e.uuid))]})]})}var ej=a(36557),eb=a(29767),ev=a(30044),ey=a(11426),ew=a(16544),ek=a(65626),eN=a(39674),eC=a(64993),eA=a(57731);let eE=[{bg:"bg-amber-100 dark:bg-amber-900/30",text:"text-amber-800 dark:text-amber-300"},{bg:"bg-blue-100 dark:bg-blue-900/30",text:"text-blue-800 dark:text-blue-300"},{bg:"bg-emerald-100 dark:bg-emerald-900/30",text:"text-emerald-800 dark:text-emerald-300"},{bg:"bg-violet-100 dark:bg-violet-900/30",text:"text-violet-800 dark:text-violet-300"},{bg:"bg-rose-100 dark:bg-rose-900/30",text:"text-rose-800 dark:text-rose-300"},{bg:"bg-cyan-100 dark:bg-cyan-900/30",text:"text-cyan-800 dark:text-cyan-300"},{bg:"bg-orange-100 dark:bg-orange-900/30",text:"text-orange-800 dark:text-orange-300"},{bg:"bg-indigo-100 dark:bg-indigo-900/30",text:"text-indigo-800 dark:text-indigo-300"}],eS=new Set(["agent_checkin"]);function eF(e){let{onClose:t}=e,a=(0,o.c)("notifications"),s=(0,c.r)(),{refreshNotifications:i}=eo(),u=(0,n.useCallback)(e=>{let t=Date.now()-new Date(e).getTime(),r=Math.floor(t/6e4),n=Math.floor(t/36e5),s=Math.floor(t/864e5);return r<1?a("justNow"):r<60?a("minutesAgo",{count:r}):n<24?a("hoursAgo",{count:n}):a("daysAgo",{count:s})},[a]),[m,x]=(0,n.useState)([]),[p,f]=(0,n.useState)([]),[h,g]=(0,n.useState)(0),[j,b]=(0,n.useState)(0),[v,y]=(0,n.useState)(!0),w=(0,n.useCallback)(async(e,t)=>{let a=new URLSearchParams({limit:"20",offset:String(t)});e&&a.set("unreadOnly","true");let r=await (0,k.tm)("/api/notifications?".concat(a));if(!r.ok)return null;let n=await r.json();return n.success?n.data:null},[]);(0,n.useEffect)(()=>{let e=!1;return async function(){y(!0);let[t,a]=await Promise.all([w(!1,0),w(!0,0)]);e||(t&&(x(t.notifications),g(t.notifications.length<20?t.notifications.length:999)),a&&(f(a.notifications),b(a.unreadCount)),y(!1))}(),()=>{e=!0}},[w]);let N=async()=>{await (0,k.tm)("/api/notifications/read-all",{method:"POST"}),f([]),b(0),x(e=>e.map(e=>e.readAt?e:{...e,readAt:new Date().toISOString()})),i()},C=async e=>{e.readAt||((0,k.tm)("/api/notifications/".concat(e.uuid,"/read"),{method:"PATCH"}),f(t=>t.filter(t=>t.uuid!==e.uuid)),x(t=>t.map(t=>t.uuid===e.uuid?{...t,readAt:new Date().toISOString()}:t)),i()),t(),s.push(function(e){let{action:t,entityType:a,entityUuid:r,projectUuid:n}=e,s="/projects/".concat(n);if("report_created"===t)return"".concat(s,"/dashboard?panel=").concat(r,"&tab=overview");switch(a){case"task":return"".concat(s,"/tasks/").concat(r);case"idea":return"".concat(s,"/dashboard?panel=").concat(r);case"proposal":return"".concat(s,"/proposals/").concat(r);case"document":return"".concat(s,"/documents/").concat(r);default:return s}}(e))},A=async e=>{let t=e?p:m,a=await w(e,t.length);a&&(e?f(e=>[...e,...a.notifications]):x(e=>[...e,...a.notifications]))},E=e=>{let{Icon:t,color:n}=function(e){switch(e){case"idea_creation_requested":return{Icon:eb.A,color:"text-primary"};case"research_requested":return{Icon:ev.A,color:"text-primary"};case"task_assigned":case"idea_claimed":return{Icon:Q.A,color:"text-primary"};case"proposal_approved":case"task_verified":return{Icon:V.A,color:"text-green-600"};case"proposal_rejected":case"task_reopened":return{Icon:J.A,color:"text-red-500"};case"comment_added":return{Icon:X.A,color:"text-orange-500"};case"mentioned":return{Icon:Z.A,color:"text-blue-600"};case"proposal_submitted":return{Icon:ee.A,color:"text-blue-500"};case"task_status_changed":return{Icon:et.A,color:"text-blue-500"};case"report_created":return{Icon:ey.A,color:"text-emerald-600"};default:return{Icon:ee.A,color:"text-muted-foreground"}}}(e.action),s=function(e){let t=0;for(let a=0;a<e.length;a++)t=31*t+e.charCodeAt(a)|0;return eE[Math.abs(t)%eE.length]}(e.projectUuid),c=!e.readAt;return(0,r.jsx)(ew.P.div,{variants:ek.Rf,children:(0,r.jsxs)("button",{onClick:()=>C(e),className:"flex w-full gap-3 px-4 py-3 text-left hover:bg-muted/50 transition-colors border-b border-border last:border-b-0",children:[(0,r.jsx)("div",{className:"mt-1.5 flex-shrink-0",children:c?(0,r.jsx)("div",{className:"h-2 w-2 rounded-full bg-primary"}):(0,r.jsx)("div",{className:"h-2 w-2"})}),(0,r.jsx)("div",{className:"mt-0.5 flex-shrink-0",children:(0,r.jsx)(t,{className:"h-4 w-4 ".concat(n)})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)(eA.E,{variant:"secondary",className:"mb-1 block h-auto max-w-full whitespace-normal break-words px-1.5 py-0 text-[10px] font-medium ".concat(s.bg," ").concat(s.text," border-0"),children:e.projectName}),(0,r.jsx)("div",{className:"text-[13px] font-medium text-foreground break-words",children:e.entityTitle}),(0,r.jsx)("div",{className:"text-[12px] text-muted-foreground break-words",children:a("types.".concat(e.action))}),(0,r.jsxs)("div",{className:"mt-0.5 text-[11px] text-muted-foreground break-words",children:[e.actorName," \xb7 ",u(e.createdAt)]})]})]})},e.uuid)},S=(e,t,n)=>{let s=e.filter(e=>!eS.has(e.action));return v?(0,r.jsxs)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:[a("loadMore"),"..."]}):0===s.length?(0,r.jsx)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:t?a("noUnread"):a("noNotifications")}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ew.P.div,{initial:"initial",animate:"animate",transition:{staggerChildren:.04},children:s.map(E)}),s.length<n&&(0,r.jsx)("div",{className:"p-3 text-center",children:(0,r.jsx)(d.$,{variant:"ghost",size:"sm",className:"text-xs",onClick:()=>A(t),children:a("loadMore")})})]})};return(0,r.jsxs)("div",{className:"w-[calc(100vw-2rem)] max-w-[360px]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-3",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:a("title")}),(0,r.jsx)(d.$,{variant:"ghost",size:"sm",className:"h-auto p-0 text-xs text-primary hover:text-primary/80",onClick:N,children:a("markAllRead")})]}),(0,r.jsxs)(eN.tU,{defaultValue:"unread",className:"gap-0",children:[(0,r.jsxs)(eN.j7,{className:"w-full rounded-none border-b border-border bg-transparent px-4 py-0 h-9",children:[(0,r.jsxs)(eN.Xi,{value:"unread",className:"text-xs rounded-none data-[state=active]:shadow-none data-[state=active]:border-b-2 data-[state=active]:border-primary",children:[a("tabUnread")," ",j>0&&"(".concat(j,")")]}),(0,r.jsx)(eN.Xi,{value:"all",className:"text-xs rounded-none data-[state=active]:shadow-none data-[state=active]:border-b-2 data-[state=active]:border-primary",children:a("tabAll")})]}),(0,r.jsx)(eN.av,{value:"all",className:"mt-0",children:(0,r.jsx)(ew.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.15},children:(0,r.jsx)(eC.F,{className:"max-h-[400px] overflow-y-auto [&_[data-slot=scroll-area-viewport]>div]:!block",children:S(m,!1,h)})},"tab-all")}),(0,r.jsx)(eN.av,{value:"unread",className:"mt-0",children:(0,r.jsx)(ew.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.15},children:(0,r.jsx)(eC.F,{className:"max-h-[400px] overflow-y-auto [&_[data-slot=scroll-area-viewport]>div]:!block",children:S(p,!0,j)})},"tab-unread")})]}),(0,r.jsx)("div",{className:"border-t border-border px-4 py-2 text-center",children:(0,r.jsx)(l(),{href:"/settings",onClick:t,className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:a("notificationPreferences")})})]})}function eP(){let{unreadCount:e}=eo(),[t,a]=(0,n.useState)(!1);return(0,r.jsxs)(L.AM,{open:t,onOpenChange:a,children:[(0,r.jsx)(L.Wv,{asChild:!0,children:(0,r.jsxs)(d.$,{variant:"ghost",size:"icon",className:"relative h-8 w-8 text-muted-foreground hover:text-foreground",children:[(0,r.jsx)(ej.A,{className:"h-4 w-4"}),e>0&&(0,r.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 text-[10px] font-medium text-white animate-[pulse-badge_1.5s_ease-in-out_infinite]",children:e>99?"99+":e})]})}),(0,r.jsx)(L.hl,{align:"start",sideOffset:8,className:"w-auto p-0 rounded-lg",children:(0,r.jsx)(eF,{onClose:()=>a(!1)})})]})}var eT=a(68923),eR=a(9225),e_=a(85226),eI=a(67103),eD=a(24377),eU=a(14554),eB=a(91846),eM=a(42305);let eO=["all","task","idea","proposal","document","project"],ez={task:"bg-[#EBF5FF] dark:bg-[#132638] text-[#2563EB] dark:text-[#6AA0F5] border-[#2563EB]/20",idea:"bg-[#FEF9C3] dark:bg-[#332e0f] text-[#A16207] dark:text-[#E0B44E] border-[#A16207]/20",proposal:"bg-[#FFF7ED] dark:bg-[#33270f] text-primary border-primary/20",document:"bg-[#F3E8FF] dark:bg-[#261636] text-[#7C3AED] dark:text-[#B79AF0] border-[#7C3AED]/20",project:"bg-[#ECFDF5] dark:bg-[#122a20] text-[#059669] dark:text-[#4FD1A0] border-[#059669]/20",project_group:"bg-[#F0FDFA] dark:bg-[#122a29] text-[#0D9488] dark:text-[#4FD1C0] border-[#0D9488]/20"},eL={all:"filterAll",task:"filterTasks",idea:"filterIdeas",proposal:"filterProposals",document:"filterDocuments",project:"filterProjects",project_group:"filterProjects"};function eq(e){let{currentProjectUuid:t,currentProjectName:a,currentGroupUuid:s,currentGroupName:i}=e,l=(0,o.c)("search"),u=(0,o.c)("time"),m=(0,c.r)(),[x,p]=(0,n.useState)(""),[f,h]=(0,n.useState)(t?"project":s?"group":"global"),[g,j]=(0,n.useState)([]),[b,v]=(0,n.useState)(!1),[y,w]=(0,n.useState)(!1),[k,A]=(0,n.useState)("all"),[E,S]=(0,n.useState)(0),F=(0,n.useRef)(null),P=(0,n.useRef)([]),T=(0,n.useRef)(void 0);(0,n.useEffect)(()=>{h(t?"project":s?"group":"global")},[t,s]),(0,n.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key&&!e.defaultPrevented&&(e.preventDefault(),w(!0))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,n.useEffect)(()=>{y?setTimeout(()=>{var e;return null==(e=F.current)?void 0:e.focus()},0):(p(""),j([]),A("all"))},[y]);let R=(0,n.useCallback)(async function(e,a){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"all";if(!e.trim()){j([]),v(!1);return}v(!0);try{let n=new URLSearchParams({q:e.trim(),scope:a,limit:"20"});"project"===a&&t?n.set("scopeUuid",t):"group"===a&&s&&n.set("scopeUuid",s),"all"!==r&&n.set("types",r);let c=await fetch("/api/search?".concat(n.toString()),{credentials:"include"});if(!c.ok){C.q.error("Search failed:",c.status),j([]);return}let o=await c.json();o.success?j(o.data.results):j([])}catch(e){C.q.error("Search error:",e),j([])}finally{v(!1)}},[t,s]),_=(0,n.useCallback)(e=>{p(e),T.current&&clearTimeout(T.current),e.trim()?T.current=setTimeout(()=>{R(e,f,k)},300):(j([]),v(!1))},[f,k,R]),I=(0,n.useCallback)(e=>{h(e),x.trim()&&R(x,e,k)},[x,k,R]),D=(0,n.useCallback)(e=>{A(e),S(0),x.trim()&&R(x,f,e)},[x,f,R]);(0,n.useEffect)(()=>{S(0)},[g]);let U=(0,n.useCallback)(e=>{switch(w(!1),e.entityType){case"task":e.projectUuid&&m.push("/projects/".concat(e.projectUuid,"/tasks/").concat(e.uuid));break;case"idea":e.projectUuid&&m.push("/projects/".concat(e.projectUuid,"/dashboard?panel=").concat(e.uuid));break;case"proposal":e.projectUuid&&m.push("/projects/".concat(e.projectUuid,"/proposals/").concat(e.uuid));break;case"document":e.projectUuid&&m.push("/projects/".concat(e.projectUuid,"/documents/").concat(e.uuid));break;case"project":m.push("/projects/".concat(e.uuid,"/dashboard"));break;case"project_group":m.push("/projects")}},[m]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(d.$,{variant:"outline",size:"icon",onClick:()=>w(!0),className:"md:w-full md:justify-start md:gap-3 h-9 md:px-3 text-muted-foreground font-normal",children:[(0,r.jsx)(ev.A,{className:"h-4 w-4 shrink-0"}),(0,r.jsx)("span",{className:"hidden md:inline truncate text-sm",children:l("placeholder")}),(0,r.jsxs)("kbd",{className:"ml-auto pointer-events-none hidden md:flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium",children:[(0,r.jsx)(eR.A,{className:"h-3 w-3"}),(0,r.jsx)("span",{children:"K"})]})]}),(0,r.jsx)(N.lG,{open:y,onOpenChange:w,children:(0,r.jsxs)(N.Cf,{className:"w-[calc(100vw-2rem)] sm:max-w-[600px] p-0 gap-0 overflow-hidden [&>button]:hidden [&>*]:min-w-0 top-4 sm:top-[20%] translate-y-0","aria-describedby":void 0,children:[(0,r.jsx)(N.L3,{className:"sr-only",children:l("placeholder")}),(0,r.jsxs)("div",{className:"flex items-center gap-2 border-b px-3 sm:px-4 py-3",children:[(0,r.jsx)(ev.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,r.jsx)(eU.p,{ref:F,type:"text",placeholder:l("placeholder"),value:x,onChange:e=>_(e.target.value),onKeyDown:e=>{!(0,eM.P)(e)&&("ArrowDown"===e.key?(e.preventDefault(),S(e=>{var t;let a=Math.min(e+1,g.length-1);return null==(t=P.current[a])||t.scrollIntoView({block:"nearest"}),a})):"ArrowUp"===e.key?(e.preventDefault(),S(e=>{var t;let a=Math.max(e-1,0);return null==(t=P.current[a])||t.scrollIntoView({block:"nearest"}),a})):"Enter"===e.key&&g.length>0&&(e.preventDefault(),U(g[E])))},className:"border-0 shadow-none focus-visible:ring-0 h-8 px-0 text-sm min-w-0"}),b&&(0,r.jsx)(e_.A,{className:"h-4 w-4 shrink-0 animate-spin text-muted-foreground"}),(0,r.jsxs)(eB.l6,{value:f,onValueChange:e=>I(e),children:[(0,r.jsx)(eB.bq,{className:"w-auto h-7 text-xs gap-1 border-dashed shrink-0",children:(0,r.jsx)(eB.yv,{})}),(0,r.jsxs)(eB.gC,{children:[(0,r.jsx)(eB.eb,{value:"global",children:l("scopeGlobal")}),s&&(0,r.jsx)(eB.eb,{value:"group",children:i||l("scopeGroup")}),t&&(0,r.jsx)(eB.eb,{value:"project",children:a||l("scopeProject")})]})]})]}),x.trim()&&(0,r.jsx)("div",{className:"flex items-center gap-1 border-b px-4 py-2 overflow-x-auto",children:eO.map(e=>(0,r.jsx)(d.$,{variant:k===e?"default":"ghost",size:"sm",onClick:()=>D(e),className:(0,eD.cn)("h-7 px-3 text-xs rounded-full shrink-0",k===e?"bg-foreground text-background hover:bg-foreground/90":"text-muted-foreground hover:text-foreground"),children:l(eL[e])},e))}),(0,r.jsx)(eC.F,{className:"max-h-[400px]",children:(0,r.jsx)(eI.N,{mode:"wait",children:x.trim()?b?(0,r.jsx)(ew.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:ek.Yv.fast},children:(0,r.jsxs)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:[(0,r.jsx)(e_.A,{className:"h-5 w-5 animate-spin mx-auto mb-2"}),l("placeholder"),"..."]})},"loading"):0===g.length?(0,r.jsx)(ew.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:ek.Yv.fast},children:(0,r.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:l("noResults")})},"no-results"):(0,r.jsx)(ew.P.div,{initial:"initial",animate:"animate",transition:{staggerChildren:ek.Yv.staggerFast},className:"p-2",children:g.map((e,t)=>(0,r.jsx)(ew.P.div,{variants:ek.Rf,children:(0,r.jsxs)("button",{ref:e=>{P.current[t]=e},onClick:()=>U(e),onMouseEnter:()=>S(t),className:(0,eD.cn)("block w-full text-left px-3 py-2.5 rounded-lg transition-colors cursor-pointer overflow-hidden",t===E?"bg-accent":"hover:bg-accent/50"),children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 mb-0.5",children:[(0,r.jsx)(eA.E,{variant:"outline",className:(0,eD.cn)("text-[10px] px-1.5 py-0 shrink-0",ez[e.entityType]||"bg-muted text-muted-foreground"),children:l("entityType.".concat(e.entityType))}),e.status&&(0,r.jsx)(eA.E,{variant:"secondary",className:"text-[10px] px-1.5 py-0 shrink-0",children:e.status}),e.projectName&&(0,r.jsx)("span",{className:"text-[10px] text-muted-foreground line-clamp-1 ml-auto",children:e.projectName})]}),(0,r.jsx)("div",{className:"font-medium text-sm line-clamp-1 break-all",children:e.title}),e.snippet&&(0,r.jsx)("div",{className:"text-xs text-muted-foreground line-clamp-1 mt-0.5 break-all",children:e.snippet}),(0,r.jsx)("div",{className:"text-[10px] text-muted-foreground mt-1",children:(e=>{let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);return t<60?u("justNow"):t<3600?u("minutesAgo",{minutes:Math.floor(t/60)}):t<86400?u("hoursAgo",{hours:Math.floor(t/3600)}):u("daysAgo",{days:Math.floor(t/86400)})})(e.updatedAt)})]})},"".concat(e.entityType,"-").concat(e.uuid)))},"results-".concat(k)):(0,r.jsx)(ew.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:ek.Yv.fast},children:(0,r.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:l("placeholder")})},"empty")})}),(0,r.jsxs)("div",{className:"hidden sm:flex items-center justify-between border-t px-4 py-2 text-[10px] text-muted-foreground",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"↑"}),(0,r.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"↓"}),l("filterAll")]}),(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"⏎"}),"Open"]})]}),(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)("kbd",{className:"rounded border px-1 py-0.5 font-mono",children:"Esc"}),"Close"]})]})]})})]})}function e$(e){let{children:t}=e,a=function(e){let t=e.match(/^(\/projects\/[a-f0-9-]{36}\/(tasks|documents|proposals))\/.+$/);return t?t[1]:e}((0,s.usePathname)());return(0,r.jsx)(ew.P.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:ek.Yv.normal,ease:ek.Yv.easeOut},className:"flex-1 flex flex-col",children:t},a)}var eY=a(73748);let eH=e=>{let{style:t,...a}=e,{resolvedTheme:n}=(0,eY.D)();return(0,r.jsx)(K.l$,{theme:"dark"===n?"dark":"light",className:"toaster group",...a,style:{...t,"--normal-bg":"var(--color-card)","--normal-text":"var(--color-foreground)","--normal-border":"var(--color-border)"}})};function eG(e){let{currentProjectUuid:t}=e,{recordVisit:a}=(0,ei.E)(),r=(0,n.useRef)(null);return(0,n.useEffect)(()=>{t&&r.current!==t&&(r.current=t,a(t))},[t,a]),null}function eW(e){let{children:t}=e,a=(0,c.r)(),i=(0,s.usePathname)(),N=(0,o.c)(),[A,E]=(0,n.useState)(null),[S,F]=(0,n.useState)(null),[P,T]=(0,n.useState)([]),[R,I]=(0,n.useState)(!0),[O,z]=(0,n.useState)(!1),[L,$]=(0,n.useState)(!1),[Y,G]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=window.matchMedia("(max-width: 767px)");G(e.matches);let t=e=>G(e.matches);return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,n.useEffect)(()=>{$(!1)},[i]);let K=function(e){let t=e.match(/^\/projects\/([a-f0-9-]{36})(\/|$)/);return t?t[1]:null}(i),Q=function(e){let t=e.match(/^\/project-groups\/([a-f0-9-]{36})(\/|$)/);return t?t[1]:null}(i),[V,J]=(0,n.useState)(null);(0,n.useEffect)(()=>{if(!Q)return void J(null);(0,k.tm)("/api/project-groups/".concat(Q)).then(e=>e.ok?e.json():null).then(e=>{(null==e?void 0:e.success)&&J(e.data.name)}).catch(()=>J(null))},[Q]);let X="/projects"===i||"/settings"===i||i.startsWith("/project-groups"),Z=K&&!X,ee=i.match(/^\/projects\/[a-f0-9-]{36}\/(tasks|graph)(\/|$)/);(0,n.useEffect)(()=>{et()},[]),(0,n.useEffect)(()=>{if(!K||X){F(null),T([]);return}let e=!1;return async function(){try{var t;let a=await (0,k.tm)("/api/projects/".concat(K));if(!a.ok||e)return;let r=await a.json();if(!r.success||e)return;let n={uuid:r.data.uuid,name:r.data.name,groupUuid:null!=(t=r.data.groupUuid)?t:null};if(F(n),n.groupUuid){let t=await (0,k.tm)("/api/project-groups/".concat(n.groupUuid));if(!t.ok||e)return;let a=await t.json();a.success&&!e&&T((a.data.projects||[]).filter(e=>e.uuid!==K))}else T([])}catch(e){C.q.error("Failed to fetch current project:",e)}}(),()=>{e=!0}},[K,X]);let et=async()=>{try{let e=await (0,k.tm)("/api/session");if(401===e.status&&(e=await (0,k.tm)("/api/session")),401===e.status||!e.ok)return void I(!1);let t=await e.json();t.success&&t.data.user&&E({uuid:t.data.user.uuid,email:t.data.user.email,name:t.data.user.name||t.data.user.email})}catch(e){C.q.error("Session check failed:",e)}I(!1)},er=async()=>{try{await (0,k.ri)()}catch(e){(0,k.w9)()}a.push("/login")};if(R)return(0,r.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-background",children:(0,r.jsx)("div",{className:"text-muted-foreground",children:N("common.loading")})});let en=[{href:"/projects",label:N("nav.projects"),icon:g.A}],ec=e=>e.endsWith("/dashboard")?i===e:"/projects"===e?"/projects"===i:i===e||i.startsWith(e+"/"),eo=e=>{var t;let{mobile:n=!1}=e,s=n?"text-[15px]":"text-[13px]",c=n?"h-5 w-5":"h-4 w-4",o=n?"gap-1.5":"gap-1",i=n?"h-10":"",g=n?"text-[13px]":"text-[11px]",w=n?"text-[15px]":"text-[13px]",k=n?"text-[12px]":"text-[11px]";return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex flex-col gap-8 p-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,r.jsx)("img",{src:"/chorus-icon.png",alt:"Chorus",className:"h-7 w-7"}),(0,r.jsx)("span",{className:"text-base font-semibold text-foreground",children:N("common.appName")})]}),(0,r.jsx)("div",{className:"hidden md:block",children:(0,r.jsx)(eP,{})})]}),!n&&(0,r.jsx)(eq,{currentProjectUuid:K||void 0,currentProjectName:null==S?void 0:S.name,currentGroupUuid:Q||void 0,currentGroupName:V||void 0}),(0,r.jsx)("nav",{className:"flex flex-col ".concat(o),children:Z&&K?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l(),{href:"/projects",children:(0,r.jsxs)(d.$,{variant:"ghost",size:"sm",className:"w-full justify-start gap-2.5 text-muted-foreground hover:text-foreground ".concat(s," ").concat(i),children:[(0,r.jsx)(j.A,{className:n?"h-4 w-4":"h-3 w-3"}),N("nav.backToProjects")]})}),S&&(0,r.jsxs)("div",{className:"relative mt-2",children:[(0,r.jsxs)(d.$,{variant:"ghost",size:"sm",onClick:()=>P.length>0&&z(!O),className:"w-full justify-between px-3 py-1.5 ".concat(0===P.length?"cursor-default":""),children:[(0,r.jsx)("span",{className:"truncate font-semibold uppercase tracking-wider text-foreground ".concat(g),children:S.name}),P.length>0&&(0,r.jsx)(b.A,{className:"h-3 w-3 text-muted-foreground transition-transform ".concat(O?"rotate-180":"")})]}),(0,r.jsx)(eI.N,{children:O&&P.length>0&&(0,r.jsx)(ew.P.div,{variants:ek.K5,initial:"initial",animate:"animate",exit:"exit",className:"absolute left-0 right-0 top-full z-10 mt-1 origin-top rounded-lg border border-border bg-card py-1 shadow-lg",children:P.map(e=>(0,r.jsx)(d.$,{variant:"ghost",size:"sm",onClick:()=>{z(!1),a.push("/projects/".concat(e.uuid,"/dashboard"))},className:"w-full justify-start px-3 py-2 ".concat(s," [&>*]:truncate text-muted-foreground"),children:(0,r.jsx)("span",{className:"truncate",children:e.name})},e.uuid))})})]}),(0,r.jsx)("div",{className:"mt-2 flex flex-col ".concat(o),children:[{href:"/projects/".concat(K,"/dashboard"),label:N("nav.overview"),icon:u.A},{href:"/projects/".concat(K,"/documents"),label:N("nav.documents"),icon:m.A},{href:"/projects/".concat(K,"/proposals"),label:N("nav.proposals"),icon:x.A},{href:"/projects/".concat(K,"/tasks"),label:N("nav.tasks"),icon:p.A},{href:"/projects/".concat(K,"/graph"),label:N("nav.graph"),icon:f.A},{href:"/projects/".concat(K,"/activity"),label:N("nav.activity"),icon:h.A}].map(e=>{let t=ec(e.href),a=e.icon;return(0,r.jsx)(l(),{href:e.href,children:(0,r.jsxs)(d.$,{variant:"ghost",size:"sm",className:"relative w-full justify-start gap-2.5 ".concat(s," ").concat(i," ").concat(t?"font-medium text-foreground":"text-muted-foreground hover:text-foreground"),children:[t&&(0,r.jsx)(ew.P.div,{layoutId:"nav-active",className:"absolute inset-0 rounded-md bg-secondary",transition:{type:"spring",stiffness:500,damping:30}}),(0,r.jsxs)("span",{className:"relative flex items-center gap-2.5",children:[(0,r.jsx)(a,{className:"".concat(c," ").concat(t?"text-primary":"")}),e.label]})]})},e.href)})})]}):(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex flex-col ".concat(o),children:en.map(e=>{let t=ec(e.href),a=e.icon;return(0,r.jsx)(l(),{href:e.href,children:(0,r.jsxs)(d.$,{variant:"ghost",size:"sm",className:"relative w-full justify-start gap-2.5 ".concat(s," ").concat(i," ").concat(t?"font-medium text-foreground":"text-muted-foreground hover:text-foreground"),children:[t&&(0,r.jsx)(ew.P.div,{layoutId:"nav-active",className:"absolute inset-0 rounded-md bg-secondary",transition:{type:"spring",stiffness:500,damping:30}}),(0,r.jsxs)("span",{className:"relative flex items-center gap-2.5",children:[(0,r.jsx)(a,{className:"".concat(c," ").concat(t?"text-primary":"")}),e.label]})]})},e.href)})})})})]}),(0,r.jsx)(eg,{mobile:n,collapsedInProject:!!Z}),(0,r.jsxs)("div",{className:"mt-auto flex flex-col gap-1 px-4 pb-4",children:[(0,r.jsx)(l(),{href:"/settings",children:(0,r.jsxs)(d.$,{variant:"ghost",size:"sm",className:"relative w-full justify-start gap-2.5 ".concat(s," ").concat(i," ").concat(ec("/settings")?"font-medium text-foreground":"text-muted-foreground hover:text-foreground"),children:[ec("/settings")&&(0,r.jsx)(ew.P.div,{layoutId:"nav-active",className:"absolute inset-0 rounded-md bg-secondary",transition:{type:"spring",stiffness:500,damping:30}}),(0,r.jsxs)("span",{className:"relative flex items-center gap-2.5",children:[(0,r.jsx)(v.A,{className:"".concat(c," ").concat(ec("/settings")?"text-primary":"")}),N("nav.settings")]})]})}),(0,r.jsx)(W.H,{mobile:n}),(0,r.jsx)("div",{className:"px-2 pt-1",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"flex items-center justify-center rounded-full bg-primary font-medium text-primary-foreground ".concat(n?"h-10 w-10 text-base":"h-9 w-9 text-sm"),children:(null==A||null==(t=A.name)?void 0:t.charAt(0))||"U"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"truncate font-medium text-foreground ".concat(w),children:null==A?void 0:A.name}),(0,r.jsx)("div",{className:"truncate text-muted-foreground ".concat(k),children:null==A?void 0:A.email})]}),(0,r.jsx)(d.$,{variant:"ghost",size:"icon",onClick:er,title:N("common.signOut"),className:"h-8 w-8 text-muted-foreground hover:text-foreground",children:(0,r.jsx)(y.A,{className:"h-4 w-4"})})]})})]})]})};return(0,r.jsx)(ea.Qb,{children:(0,r.jsxs)(es,{children:[(0,r.jsx)(M.OJ,{children:(0,r.jsxs)(ei.K,{children:[(0,r.jsx)(eG,{currentProjectUuid:K}),(0,r.jsx)(B.Oj,{children:(0,r.jsxs)(D,{children:[(0,r.jsx)(q.MH,{}),(0,r.jsx)(H,{}),(0,r.jsxs)("div",{className:"flex min-h-screen bg-background",children:[(0,r.jsx)("header",{className:"fixed top-0 left-0 right-0 z-30 border-b border-border bg-card md:hidden",children:(0,r.jsxs)("div",{className:"flex h-14 items-center justify-between px-4",children:[(0,r.jsx)("button",{onClick:()=>$(!0),"aria-label":N("nav.openMenu"),children:(0,r.jsx)(w.A,{className:"h-5 w-5 text-muted-foreground"})}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("img",{src:"/chorus-icon.png",alt:"Chorus",className:"h-6 w-6"}),(0,r.jsx)("span",{className:"text-sm font-semibold text-foreground",children:N("common.appName")})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(eq,{currentProjectUuid:K||void 0,currentProjectName:null==S?void 0:S.name,currentGroupUuid:Q||void 0,currentGroupName:V||void 0}),(0,r.jsx)(eP,{})]})]})}),(0,r.jsx)(eT.cj,{open:L,onOpenChange:$,children:(0,r.jsx)(eT.h,{side:"left",className:"w-[280px] p-0",children:(0,r.jsx)("div",{className:"flex h-full flex-col justify-between overflow-y-auto",children:(0,r.jsx)(eo,{mobile:!0})})})}),(0,r.jsx)("aside",{className:"hidden md:sticky md:top-0 md:flex h-screen w-[220px] flex-shrink-0 flex-col justify-between overflow-y-auto border-r border-border bg-card",children:(0,r.jsx)(eo,{})}),Z&&K?(0,r.jsxs)(_.tS,{projectUuid:K,children:[(0,r.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,r.jsx)("div",{className:"mx-auto w-full flex-1 flex flex-col ".concat(ee?"":"max-w-[1200px]"),children:(0,r.jsx)(e$,{children:t})})}),(0,r.jsx)(U,{projectUuid:K,projectName:(null==S?void 0:S.name)||""})]}):"/projects"===i||i.startsWith("/project-groups")?(0,r.jsx)(_.tS,{children:(0,r.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,r.jsx)("div",{className:"mx-auto w-full flex-1 flex flex-col ".concat(ee?"":"max-w-[1200px]"),children:(0,r.jsx)(e$,{children:t})})})}):(0,r.jsx)("main",{className:"flex-1 flex flex-col overflow-auto pt-14 md:pt-0",children:(0,r.jsx)("div",{className:"mx-auto w-full flex-1 flex flex-col ".concat(ee?"":"max-w-[1200px]"),children:(0,r.jsx)(e$,{children:t})})})]})]})})]})}),(0,r.jsx)(eH,{position:Y?"top-center":"top-right",closeButton:!Y})]})})}},50783:(e,t,a)=>{Promise.resolve().then(a.bind(a,50320))},62926:(e,t,a)=>{"use strict";a.d(t,{H:()=>f});var r=a(90508),n=a(1856),s=a(73748),c=a(39268),o=a(57930),i=a(86589),l=a(68842),d=a(81149),u=a(22922),m=a(66343),x=a(32277),p=a(25359);function f(e){let{mobile:t=!1}=e,a=(0,c.c)(),{theme:f,setTheme:h}=(0,s.D)(),{locale:g,setLocale:j}=(0,x.Y)(),[b,v]=(0,n.useState)(!1);(0,n.useEffect)(()=>v(!0),[]);let y=b?f:void 0,w="light"===y?o.A:"dark"===y?i.A:l.A,k=a("light"===y?"theme.light":"dark"===y?"theme.dark":"theme.system"),N=t?"h-8 min-w-8 px-2":"h-7 min-w-7 px-1.5",C=t?"h-4 w-4":"h-3.5 w-3.5";return(0,r.jsxs)("div",{className:"flex items-center gap-1 px-2 pt-0.5",children:[(0,r.jsxs)(m.rI,{children:[(0,r.jsx)(m.ty,{asChild:!0,children:(0,r.jsxs)(u.$,{variant:"ghost",size:"sm",className:"".concat(N," justify-center gap-1.5 text-muted-foreground hover:text-foreground"),"aria-label":a("theme.toggleLabel"),title:a("theme.toggleLabel"),children:[(0,r.jsx)(w,{className:C}),(0,r.jsx)("span",{className:"text-[12px] font-medium",suppressHydrationWarning:!0,children:b?k:a("theme.system")})]})}),(0,r.jsxs)(m.SQ,{align:"start",side:"top",className:"w-40",children:[(0,r.jsx)(m.lp,{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:a("theme.toggleLabel")}),(0,r.jsxs)(m.Hr,{value:null!=y?y:"system",onValueChange:e=>h(e),children:[(0,r.jsxs)(m.Ht,{value:"light",children:[(0,r.jsx)(o.A,{className:"mr-2 h-4 w-4"}),a("theme.light")]}),(0,r.jsxs)(m.Ht,{value:"dark",children:[(0,r.jsx)(i.A,{className:"mr-2 h-4 w-4"}),a("theme.dark")]}),(0,r.jsxs)(m.Ht,{value:"system",children:[(0,r.jsx)(l.A,{className:"mr-2 h-4 w-4"}),a("theme.system")]})]})]})]}),(0,r.jsx)("span",{className:"h-4 w-px bg-border","aria-hidden":!0}),(0,r.jsxs)(m.rI,{children:[(0,r.jsx)(m.ty,{asChild:!0,children:(0,r.jsxs)(u.$,{variant:"ghost",size:"sm",className:"".concat(N," justify-center gap-1.5 text-muted-foreground hover:text-foreground"),"aria-label":a("settings.language"),title:a("settings.language"),children:[(0,r.jsx)(d.A,{className:C}),(0,r.jsx)("span",{className:"text-[12px] font-medium leading-none",children:p.L$[g]})]})}),(0,r.jsxs)(m.SQ,{align:"start",side:"top",className:"w-40",children:[(0,r.jsx)(m.lp,{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:a("settings.language")}),(0,r.jsx)(m.Hr,{value:g,onValueChange:e=>j(e),children:p.IB.map(e=>(0,r.jsx)(m.Ht,{value:e,children:p.L$[e]},e))})]})]})]})}},63964:(e,t,a)=>{"use strict";a.d(t,{S2:()=>d,eV:()=>l,l9:()=>i,tS:()=>o,w0:()=>u});var r=a(90508),n=a(1856);a(91814);var s=a(95126);let c=(0,n.createContext)(null);function o(e){let{projectUuid:t,children:a}=e,o=(0,s.jj)(),i=null==o?void 0:o.subscribe,l=null==o?void 0:o.openGeneration,d=(0,n.useRef)(new Set),u=(0,n.useRef)(new Set),m=(0,n.useRef)(new Set),x=(0,n.useRef)(new Set),p=(0,n.useCallback)(()=>{d.current.forEach(e=>e())},[]),f=(0,n.useCallback)(e=>{u.current.forEach(t=>t(e))},[]),h=(0,n.useCallback)(()=>{for(let e of(p(),["task","idea","proposal","document","project","project_group"]))f({companyUuid:"",projectUuid:"",entityType:e,entityUuid:"",action:"updated"})},[p,f]);(0,n.useEffect)(()=>{let e,a,r=null,n=!1,s=0,c={};function o(a){if("presence"===a.type){if(t&&a.projectUuid!==t)return;m.current.forEach(e=>e(a));return}if("execution"===a.type)return void x.current.forEach(e=>e(a));if("string"!=typeof a.entityType||"string"!=typeof a.entityUuid||"string"!=typeof a.action||t&&a.projectUuid!==t)return;clearTimeout(e);let r=Date.now(),n=r-s;n>=3e3?(s=r,p()):e=setTimeout(()=>{s=Date.now(),p()},Math.max(1e3,3e3-n));let o=a.entityType;clearTimeout(c[o]),c[o]=setTimeout(()=>{f(a)},300)}function l(){d(),(r=new EventSource(t?"/api/events?projectUuid=".concat(encodeURIComponent(t)):"/api/events")).onopen=()=>{n&&h(),n=!0},r.onmessage=e=>{let t=null;try{t=JSON.parse(e.data)}catch(e){return}t&&o(t)},r.onerror=()=>{}}function d(){r&&(r.close(),r=null)}function u(){"visible"===document.visibilityState&&(r&&r.readyState!==EventSource.CLOSED||l())}return i?a=i(o):(l(),document.addEventListener("visibilitychange",u)),()=>{for(let t in null==a||a(),d(),clearTimeout(e),c)clearTimeout(c[t]);document.removeEventListener("visibilitychange",u)}},[t,i,p,f,h]);let g=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(i&&l){if(null===g.current){g.current=l;return}l>g.current&&(g.current=l,h())}},[i,l,h]);let j=(0,n.useCallback)(e=>(d.current.add(e),()=>{d.current.delete(e)}),[]),b=(0,n.useCallback)(e=>(u.current.add(e),()=>{u.current.delete(e)}),[]),v=(0,n.useCallback)(e=>(m.current.add(e),()=>{m.current.delete(e)}),[]),y=(0,n.useCallback)(e=>(x.current.add(e),()=>{x.current.delete(e)}),[]),w=(0,n.useMemo)(()=>({subscribe:j,subscribeEntity:b,subscribePresence:v,subscribeExecution:y}),[j,b,v,y]);return(0,r.jsx)(c.Provider,{value:w,children:a})}function i(e){let t=(0,n.useContext)(c),a=(0,n.useRef)(e);a.current=e,(0,n.useEffect)(()=>{if(!t)return;let e=()=>a.current();return e(),t.subscribe(e)},[t])}function l(e,t){let a=(0,n.useContext)(c),r=(0,n.useRef)(t);r.current=t;let s=(0,n.useRef)(e);s.current=e,(0,n.useEffect)(()=>{if(a)return a.subscribeEntity(e=>{let t=s.current;(Array.isArray(t)?t.includes(e.entityType):e.entityType===t)&&r.current(e)})},[a])}function d(e){let t=(0,n.useContext)(c),a=(0,n.useRef)(e);a.current=e,(0,n.useEffect)(()=>{if(t)return t.subscribePresence(e=>a.current(e))},[t])}function u(e,t,a){let r=(0,n.useContext)(c),s=(0,n.useRef)(a);s.current=a,(0,n.useEffect)(()=>{if(r)return r.subscribeEntity(a=>{a.entityType===e&&a.entityUuid===t&&s.current(a)})},[r,e,t])}},65626:(e,t,a)=>{"use strict";a.d(t,{K5:()=>i,Rf:()=>o,Yv:()=>r,bK:()=>c,qG:()=>s,tE:()=>n});let r={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]}},n={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:r.normal,ease:r.easeOut}},exit:{opacity:0,y:-4,transition:{duration:r.fast,ease:r.easeOut}}},s={initial:{opacity:0},animate:{opacity:1,transition:{duration:r.normal,ease:r.easeOut}},exit:{opacity:0,transition:{duration:r.fast,ease:r.easeOut}}};r.normal,r.easeOut,r.fast,r.easeOut;let c={initial:{},animate:{transition:{staggerChildren:r.stagger}}},o={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:r.normal,ease:r.easeOut}}},i={initial:{opacity:0,scale:.95,y:-4},animate:{opacity:1,scale:1,y:0,transition:{duration:r.fast,ease:r.easeOut}},exit:{opacity:0,scale:.95,y:-4,transition:{duration:r.fast,ease:r.easeOut}}}},66343:(e,t,a)=>{"use strict";a.d(t,{Hr:()=>p,Ht:()=>u,SQ:()=>l,_2:()=>d,lp:()=>m,mB:()=>x,rI:()=>o,ty:()=>i});var r=a(90508);a(1856);var n=a(97964),s=a(39025),c=a(24377);function o(e){let{...t}=e;return(0,r.jsx)(s.Root,{"data-slot":"dropdown-menu",...t})}function i(e){let{...t}=e;return(0,r.jsx)(s.Trigger,{"data-slot":"dropdown-menu-trigger",...t})}function l(e){let{className:t,sideOffset:a=4,...n}=e;return(0,r.jsx)(s.Portal,{children:(0,r.jsx)(s.Content,{"data-slot":"dropdown-menu-content",sideOffset:a,className:(0,c.cn)("bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-md","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",t),...n})})}function d(e){let{className:t,inset:a,variant:n="default",...o}=e;return(0,r.jsx)(s.Item,{"data-slot":"dropdown-menu-item","data-inset":a,"data-variant":n,className:(0,c.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0","data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive","data-[inset]:pl-8 [&_svg]:size-4",t),...o})}function u(e){let{className:t,children:a,...o}=e;return(0,r.jsxs)(s.RadioItem,{"data-slot":"dropdown-menu-radio-item",className:(0,c.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4",t),...o,children:[(0,r.jsx)("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:(0,r.jsx)(s.ItemIndicator,{children:(0,r.jsx)(n.A,{className:"size-2 fill-current"})})}),a]})}function m(e){let{className:t,inset:a,...n}=e;return(0,r.jsx)(s.Label,{"data-slot":"dropdown-menu-label","data-inset":a,className:(0,c.cn)("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",t),...n})}function x(e){let{className:t,...a}=e;return(0,r.jsx)(s.Separator,{"data-slot":"dropdown-menu-separator",className:(0,c.cn)("bg-border -mx-1 my-1 h-px",t),...a})}function p(e){let{...t}=e;return(0,r.jsx)(s.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...t})}},75579:(e,t,a)=>{"use strict";a.d(t,{E:()=>u,K:()=>d});var r=a(90508),n=a(1856),s=a(62990),c=a(63964),o=a(67712);let i={pinned:[],recent:[]},l=(0,n.createContext)(null);function d(e){let{children:t}=e,[a,d]=(0,n.useState)(i),[u,m]=(0,n.useState)(!1),x=(0,n.useCallback)(async()=>{try{let a=await (0,s.tm)("/api/project-visits");if(!a.ok)return;let r=await a.json();if((null==r?void 0:r.success)&&r.data){var e,t;d({pinned:null!=(e=r.data.pinned)?e:[],recent:null!=(t=r.data.recent)?t:[]})}}catch(e){o.q.error("Failed to fetch project quick-access:",e)}finally{m(!0)}},[]);(0,n.useEffect)(()=>{x()},[x]),(0,c.eV)(["project","project_group"],()=>{x()});let p=(0,n.useCallback)(async e=>{try{let r=await (0,s.tm)("/api/project-visits/pin",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectUuid:e})});if(!r.ok)return;let n=await r.json();if((null==n?void 0:n.success)&&n.data){var t,a;d({pinned:null!=(t=n.data.pinned)?t:[],recent:null!=(a=n.data.recent)?a:[]})}}catch(e){o.q.error("Failed to pin project:",e)}},[]),f=(0,n.useCallback)(async e=>{try{let r=await (0,s.tm)("/api/project-visits/pin",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectUuid:e})});if(!r.ok)return;let n=await r.json();if((null==n?void 0:n.success)&&n.data){var t,a;d({pinned:null!=(t=n.data.pinned)?t:[],recent:null!=(a=n.data.recent)?a:[]})}}catch(e){o.q.error("Failed to unpin project:",e)}},[]),h=(0,n.useCallback)(async e=>{try{let r=await (0,s.tm)("/api/project-visits",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectUuid:e})});if(!r.ok)return;let n=await r.json();if((null==n?void 0:n.success)&&n.data){var t,a;d({pinned:null!=(t=n.data.pinned)?t:[],recent:null!=(a=n.data.recent)?a:[]})}}catch(e){o.q.error("Failed to remove project from recent:",e)}},[]),g=(0,n.useCallback)(async e=>{try{(await (0,s.tm)("/api/project-visits/visit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectUuid:e})})).ok&&await x()}catch(e){o.q.error("Failed to record project visit:",e)}},[x]),j=(0,n.useMemo)(()=>new Set(a.pinned.map(e=>e.uuid)),[a.pinned]),b=(0,n.useRef)(j);b.current=j;let v=(0,n.useCallback)(e=>b.current.has(e),[]),y=(0,n.useMemo)(()=>({pinned:a.pinned,recent:a.recent,loaded:u,pin:p,unpin:f,remove:h,recordVisit:g,isPinned:v}),[a.pinned,a.recent,u,p,f,h,g,v]);return(0,r.jsx)(l.Provider,{value:y,children:t})}function u(){let e=(0,n.useContext)(l);if(!e)throw Error("useProjectQuickAccess must be used within a ProjectQuickAccessProvider");return e}}},e=>{e.O(0,[87326,93151,41752,12079,18944,27290,12790,26885,14655,21932,20204,30724,16544,94170,27201,16551,97784,14753,45532,91907,70552,10488,65096,39025,87325,71890,27370,71921,74951,65496,77358],()=>e(e.s=50783)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[14997],{17475:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(66206).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},38106:(e,t,r)=>{"use strict";function a(e){let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let r=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0"),l=String(t.getHours()).padStart(2,"0"),n=String(t.getMinutes()).padStart(2,"0");return"".concat(r,"-").concat(a,"-").concat(s," ").concat(l,":").concat(n)}function s(e,t){let r="string"==typeof e?new Date(e):e;return isNaN(r.getTime())?"":r.toLocaleDateString(t,{month:"short",day:"numeric"})}r.d(t,{r:()=>a,s:()=>s})},52309:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(66206).A)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},77298:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>D});var a=r(90508),s=r(1856),l=r(23675),n=r(91814),o=r(39268),c=r(12790),d=r.n(c),i=r(48416),x=r(22922),p=r(71388),m=r(52309),u=r(5616),h=r(78948),g=r(62990),f=r(97438),j=r(14554),b=r(88064),N=r(97413),v=r(17475);function y(e){let{open:t,onOpenChange:r,groupUuid:l,groupName:c,groupDescription:d,projectCount:i,onUpdated:p}=e,u=(0,o.c)("projectGroups"),h=(0,n.r)(),[y,A]=(0,s.useState)(c),[C,w]=(0,s.useState)(null!=d?d:""),[k,D]=(0,s.useState)(!1),[E,S]=(0,s.useState)(!1),[P,T]=(0,s.useState)(!1),[O,M]=(0,s.useState)(!1),G=async()=>{if(y.trim()){D(!0);try{let e=await (0,g.tm)("/api/project-groups/".concat(l),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:y.trim(),description:C.trim()||null})});(await e.json()).success&&p()}finally{D(!1)}}},_=async()=>{S(!0);try{let e=await (0,g.tm)(O?"/api/project-groups/".concat(l,"?deleteProjects=true"):"/api/project-groups/".concat(l),{method:"DELETE"});(await e.json()).success&&(r(!1),h.push("/projects"))}finally{S(!1)}};return(0,a.jsx)(f.lG,{open:t,onOpenChange:e=>{e&&(A(c),w(null!=d?d:""),T(!1),M(!1)),r(e)},children:(0,a.jsxs)(f.Cf,{className:"max-w-[480px] gap-0 p-0",children:[(0,a.jsx)(f.c7,{className:"border-b border-[#E5E2DC] dark:border-[#2a2a2e] px-6 py-5",children:(0,a.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,a.jsx)(m.A,{className:"h-5 w-5 text-primary"}),(0,a.jsx)(f.L3,{className:"text-[18px] font-semibold tracking-tight text-foreground",children:u("manageGroup")})]})}),(0,a.jsxs)("div",{className:"space-y-5 px-6 py-5",children:[(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(b.J,{className:"text-[13px] font-medium text-foreground",children:u("groupName")}),(0,a.jsx)(j.p,{value:y,onChange:e=>A(e.target.value),className:"h-10 rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e] text-[13px] focus-visible:ring-primary"})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(b.J,{className:"text-[13px] font-medium text-foreground",children:u("descriptionOptional")}),(0,a.jsx)("textarea",{value:C,onChange:e=>w(e.target.value),rows:3,className:"w-full rounded-lg border border-[#E5E2DC] dark:border-[#2a2a2e] px-3 py-2.5 text-[13px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1",placeholder:u("descriptionPlaceholder")})]}),(0,a.jsx)("div",{className:"flex justify-end",children:(0,a.jsx)(x.$,{onClick:G,disabled:k||!y.trim()||y===c&&C===(null!=d?d:""),className:"rounded-lg bg-primary text-[13px] font-medium text-white hover:bg-[#B56A42]",children:u(k?"saving":"saveChanges")})})]}),(0,a.jsx)("div",{className:"border-t border-[#E5E2DC] dark:border-[#2a2a2e] px-6 py-5",children:P?(0,a.jsxs)("div",{className:"space-y-3 rounded-lg border border-red-200 bg-red-50 p-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[13px] font-semibold text-red-700",children:[(0,a.jsx)(v.A,{className:"h-4 w-4"}),u("deleteConfirmTitle")]}),(0,a.jsx)("p",{className:"text-[12px] text-red-600",children:u("deleteConfirmDesc")}),i>0&&(0,a.jsxs)("div",{className:"space-y-2 pt-1",children:[(0,a.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 text-[12px] text-foreground",children:[(0,a.jsx)("input",{type:"radio",name:"deleteOption",checked:!O,onChange:()=>M(!1),className:"accent-primary"}),u("deleteKeepProjects",{count:i})]}),(0,a.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 text-[12px] text-red-600",children:[(0,a.jsx)("input",{type:"radio",name:"deleteOption",checked:O,onChange:()=>M(!0),className:"accent-red-600"}),u("deleteWithProjects",{count:i})]})]}),(0,a.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,a.jsx)(x.$,{variant:"outline",size:"sm",onClick:()=>T(!1),className:"rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e] text-[12px]",children:u("cancel")}),(0,a.jsxs)(x.$,{size:"sm",onClick:_,disabled:E,className:"rounded-lg bg-red-600 text-[12px] text-white hover:bg-red-700",children:[(0,a.jsx)(N.A,{className:"mr-1 h-3 w-3"}),u(E?"deleting":"confirmDelete")]})]})]}):(0,a.jsxs)("button",{onClick:()=>T(!0),className:"flex w-full cursor-pointer items-center gap-2 rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-left text-[13px] font-medium text-red-600 transition-colors hover:border-red-300 hover:bg-red-100",children:[(0,a.jsx)(N.A,{className:"h-4 w-4"}),u("deleteGroup")]})})]})})}var A=r(88738),C=r(38280),w=r(38106);let k={task:"#5A9E6F",idea:"#C67A52",proposal:"#1976D2",document:"#9A9A9A"};function D(){let e=(0,l.useParams)(),t=(0,n.r)(),r=(0,o.c)(),[c,f]=(0,s.useState)(null),[j,b]=(0,s.useState)(!0),[N,v]=(0,s.useState)(null),[D,E]=(0,s.useState)(!1),[S,P]=(0,s.useState)(!1),T=async()=>{try{let a=await (0,g.tm)("/api/project-groups/".concat(e.uuid,"/dashboard"));if(!a.ok){if(404===a.status)return void t.push("/projects");v(r("common.genericError"));return}let s=await a.json();s.success?f(s.data):v(s.error||r("common.genericError"))}catch(e){v(r("common.genericError"))}finally{b(!1)}};if((0,s.useEffect)(()=>{T()},[e.uuid]),j)return(0,a.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,a.jsx)("span",{className:"text-[13px] text-[#9A9A9A]",children:r("common.loading")})});if(N||!c)return(0,a.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,a.jsx)("span",{className:"text-[13px] text-[#9A9A9A]",children:N||r("common.genericError")})});let{group:O,stats:M,projects:G,recentActivity:_}=c,z=[{label:r("groupDashboard.statProjects"),value:M.projectCount,valueColor:"text-foreground"},{label:r("groupDashboard.statTotalTasks"),value:M.totalTasks,valueColor:"text-primary"},{label:r("groupDashboard.statCompletionRate"),value:"".concat(M.completionRate,"%"),valueColor:"text-[#5A9E6F] dark:text-[#6FD19A]"},{label:r("groupDashboard.statOpenIdeas"),value:M.openIdeas,valueColor:"text-foreground"},{label:r("groupDashboard.statActiveProposals"),value:M.activeProposals,valueColor:"text-primary"}];return(0,a.jsxs)("div",{className:"flex h-full flex-col gap-6 bg-background p-4 md:p-6 lg:p-8",children:[(0,a.jsx)("div",{className:"flex items-center justify-between",children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-[12px]",children:[(0,a.jsx)(d(),{href:"/projects",className:"text-primary hover:underline",children:r("nav.projects")}),(0,a.jsx)("span",{className:"text-[#9A9A9A]",children:"/"}),(0,a.jsx)("span",{className:"text-[#9A9A9A]",children:O.name})]})}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3.5",children:[(0,a.jsx)("div",{className:"flex h-11 w-11 items-center justify-center rounded-xl bg-primary",children:(0,a.jsx)(p.A,{className:"h-[22px] w-[22px] text-white"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-[24px] font-semibold tracking-tight text-foreground",children:O.name}),(0,a.jsx)("p",{className:"text-[13px] text-muted-foreground",children:r("groupDashboard.subtitle",{count:M.projectCount})})]})]}),(0,a.jsxs)(x.$,{variant:"outline",size:"sm",onClick:()=>E(!0),className:"gap-2 rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e] bg-card text-[13px] font-medium text-foreground hover:border-primary hover:bg-card",children:[(0,a.jsx)(m.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),r("projectGroups.manageGroup")]})]}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-4 sm:grid-cols-3 lg:grid-cols-5",children:z.map(e=>(0,a.jsxs)(i.Zp,{className:"rounded-2xl border-[#E5E2DC] dark:border-[#2a2a2e] bg-card !gap-1 p-4 !py-4 shadow-none",children:[(0,a.jsx)("p",{className:"text-[12px] font-normal text-[#9A9A9A]",children:e.label}),(0,a.jsx)("p",{className:"mt-1.5 text-[32px] font-semibold leading-none tracking-tight ".concat(e.valueColor),children:e.value})]},e.label))}),(0,a.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-6 lg:flex-row",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-[14px] font-semibold text-foreground",children:r("groupDashboard.projectsInGroup")}),(0,a.jsxs)(x.$,{size:"sm",onClick:()=>P(!0),className:"gap-1.5 rounded-lg bg-primary text-[12px] font-medium text-white hover:bg-[#B56A42]",children:[(0,a.jsx)(u.A,{className:"h-3.5 w-3.5"}),r("groupDashboard.newProject")]})]}),(0,a.jsx)("div",{className:"flex flex-col gap-2",children:G.length>0?G.map(e=>{let t=(0,C.Dj)(e.name),s=(0,C.gl)(e.name);return(0,a.jsx)(d(),{href:"/projects/".concat(e.uuid,"/dashboard"),children:(0,a.jsxs)("div",{className:"flex cursor-pointer items-center justify-between rounded-xl border border-[#E5E2DC] dark:border-[#2a2a2e] bg-card py-3 px-4 transition-all hover:border-primary hover:shadow-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"project-icon flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-[11px] font-bold",style:(0,C.sB)(s),children:t}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-[13px] font-semibold text-foreground",children:e.name}),(0,a.jsx)("p",{className:"text-[11px] text-[#9A9A9A]",children:r("groupDashboard.projectStats",{tasks:e.taskCount,completion:e.completionRate})})]})]}),(0,a.jsx)(h.A,{className:"h-4 w-4 text-[#9A9A9A]"})]})},e.uuid)}):(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed border-[#E5E2DC] dark:border-[#2a2a2e] bg-background px-8 py-12",children:[(0,a.jsx)(p.A,{className:"mb-3 h-8 w-8 text-[#D0CCC4]"}),(0,a.jsx)("p",{className:"text-[13px] font-medium text-[#9A9A9A]",children:r("groupDashboard.noProjects")}),(0,a.jsx)("p",{className:"mt-1 text-[11px] text-[#C0BDB7]",children:r("groupDashboard.noProjectsHint")})]})})]}),(0,a.jsxs)("div",{className:"flex w-full flex-col gap-4 lg:w-[420px] lg:shrink-0",children:[(0,a.jsx)("h2",{className:"text-[14px] font-semibold text-foreground",children:r("dashboard.recentActivity")}),(0,a.jsx)(i.Zp,{className:"flex flex-col overflow-hidden rounded-2xl border-[#E5E2DC] dark:border-[#2a2a2e] bg-card !gap-0 !py-0 shadow-none",children:_.length>0?_.slice(0,5).map((e,t)=>{var s;let l=null!=(s=k[e.targetType])?s:"#9A9A9A";return(0,a.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3.5 ".concat(t<Math.min(_.length,5)-1?"border-b border-[#E5E2DC] dark:border-[#2a2a2e]":""),children:[(0,a.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded",style:{backgroundColor:l}}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"text-[12px] leading-[1.4] text-foreground",children:function(e){var t;let r=null!=(t=({created:"created",updated:"updated",approved:"approved",rejected:"rejected",claimed:"claimed",completed:"completed",verified:"verified",submitted:"submitted",assigned:"assigned",status_changed:"updated"})[e.action])?t:e.action,a=e.targetType;return"".concat(a.charAt(0).toUpperCase()+a.slice(1)," ").concat(r)}(e)}),(0,a.jsxs)("p",{className:"mt-1 text-[11px] text-[#9A9A9A]",children:[e.projectName," \xb7"," ",function(e,t){let r=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(r<1)return t("time.justNow");if(r<60)return t("time.minutesAgo",{minutes:r});let a=Math.floor(r/60);if(a<24)return t("time.hoursAgo",{hours:a});let s=Math.floor(a/24);return s<7?t("time.daysAgo",{days:s}):(0,w.r)(e)}(e.createdAt,r)]})]})]},e.uuid)}):(0,a.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,a.jsx)("p",{className:"text-[13px] text-[#9A9A9A]",children:r("dashboard.noRecentActivity")})})})]})]}),(0,a.jsx)(A.C,{open:S,onOpenChange:P,groupUuid:O.uuid,groupName:O.name,onCreated:()=>{T()}}),(0,a.jsx)(y,{open:D,onOpenChange:E,groupUuid:O.uuid,groupName:O.name,groupDescription:O.description,projectCount:M.projectCount,onUpdated:()=>{E(!1),T()}})]})}},77765:(e,t,r)=>{Promise.resolve().then(r.bind(r,77298))}},e=>{e.O(0,[87326,12079,18944,27290,12790,14655,21932,20204,16544,18609,27370,7777,74951,65496,77358],()=>e(e.s=77765)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[85e3],{784:(e,t,s)=>{"use strict";s.d(t,{ProjectSettingsModal:()=>w});var a=s(90508),r=s(1856),n=s(23675),l=s(91814),d=s(39268),o=s(52309),i=s(85226),c=s(22922),u=s(14554),x=s(88064),m=s(15972),p=s(97438),h=s(84247),g=s(51817),f=s(52217);let j=(0,f.createServerReference)("60a734215a5236244490dbd27f90561ac786f8192a",f.callServer,void 0,f.findSourceMapURL,"updateProjectAction"),b=(0,f.createServerReference)("40ad8a52e6b17e5a8ecfd376e3691d5fa8f1771175",f.callServer,void 0,f.findSourceMapURL,"deleteProjectAction");var v=s(70481);function w(e){let{projectUuid:t,projectName:s,projectDescription:f}=e,w=(0,d.c)(),N=(0,n.useSearchParams)(),y=(0,l.r)(),[k,C]=(0,r.useState)("agent-cwds"===N.get("settings")),[A,E]=(0,r.useState)(s),[S,F]=(0,r.useState)(f||""),[_,D]=(0,r.useState)(!1),[P,z]=(0,r.useState)(!1),U=(0,r.useRef)(null),[M,O]=(0,r.useState)(null),I=async()=>{var e;D(!0),O(null);let s=await (null==(e=U.current)?void 0:e.validate());if(!s)return void D(!1);let a=await j(t,{name:A,description:S||null,agentCwds:{upserts:s.upserts.map(e=>{let{agentUuid:t,validationRequestUuid:s}=e;return{agentUuid:t,validationRequestUuid:s}}),clears:s.clears}});D(!1),a.success?(window.dispatchEvent(new CustomEvent("project-cwd-updated",{detail:{projectUuid:t}})),C(!1),y.refresh()):a.error.agentUuid&&O({agentUuid:a.error.agentUuid,message:a.error.message})},R=async()=>{z(!0);let e=await b(t);e&&!e.success&&z(!1)};return(0,a.jsxs)(p.lG,{open:k,onOpenChange:C,children:[(0,a.jsx)(p.zM,{asChild:!0,children:(0,a.jsxs)(c.$,{variant:"outline",size:"sm",className:"gap-1.5 rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e] bg-card text-[12px] font-normal text-foreground hover:border-primary hover:bg-card",children:[(0,a.jsx)(o.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),w("dashboard.settings")]})}),(0,a.jsxs)(p.Cf,{className:"flex max-h-[90svh] flex-col gap-0 overflow-hidden rounded-2xl border-0 p-0 sm:max-w-[620px]",children:[(0,a.jsx)(p.c7,{className:"px-7 py-6",children:(0,a.jsx)(p.L3,{className:"text-[20px] font-semibold tracking-tight text-foreground",children:w("projectSettings.title")})}),(0,a.jsx)(h.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsx)("div",{className:"min-h-0 overflow-y-auto",children:(0,a.jsxs)("div",{className:"flex flex-col gap-7 p-5 sm:p-7",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,a.jsx)("h3",{className:"text-[14px] font-semibold text-foreground",children:w("projectSettings.basicInfo")}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)(x.J,{className:"text-[12px] font-medium text-muted-foreground",children:w("projectSettings.projectName")}),(0,a.jsx)(u.p,{value:A,onChange:e=>E(e.target.value),className:"h-11 rounded-[10px] border-[#E5E2DC] dark:border-[#2a2a2e] text-[14px] text-foreground focus-visible:ring-primary"})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)(x.J,{className:"text-[12px] font-medium text-muted-foreground",children:w("projectSettings.description")}),(0,a.jsx)(m.T,{value:S,onChange:e=>F(e.target.value),rows:3,className:"resize-none rounded-[10px] border-[#E5E2DC] dark:border-[#2a2a2e] text-[14px] text-foreground focus-visible:ring-primary"})]})]}),(0,a.jsx)(h.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsx)(v.O,{ref:U,projectUuid:t,agentError:M}),(0,a.jsx)(c.$,{onClick:I,disabled:_||!A.trim(),className:"w-fit rounded-[10px] bg-primary px-6 text-[13px] font-semibold text-white hover:bg-[#B56A42]",children:_?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}),w("projectSettings.saving")]}):w("projectSettings.saveChanges")}),(0,a.jsx)(h.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("h3",{className:"text-[14px] font-semibold text-[#C4574C] dark:text-[#F0897E]",children:w("projectSettings.dangerZone")}),(0,a.jsx)("div",{className:"rounded-xl border border-[#C4574C40] bg-[#C4574C08] px-[18px] py-4",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)("span",{className:"text-[13px] font-semibold text-foreground",children:w("projectSettings.deleteTitle")}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:w("projectSettings.deleteDescription")})]}),(0,a.jsxs)(g.Lt,{children:[(0,a.jsx)(g.tv,{asChild:!0,children:(0,a.jsx)(c.$,{variant:"destructive",size:"sm",className:"ml-4 shrink-0 rounded-lg bg-[#C4574C] px-[18px] text-[12px] font-medium hover:bg-[#B3463B]",children:w("common.delete")})}),(0,a.jsxs)(g.EO,{children:[(0,a.jsxs)(g.wd,{children:[(0,a.jsx)(g.r7,{children:w("projectOverview.deleteProject")}),(0,a.jsx)(g.$v,{children:w("projectOverview.deleteProjectConfirm",{name:s})})]}),(0,a.jsxs)(g.ck,{children:[(0,a.jsx)(g.Zr,{children:w("common.cancel")}),(0,a.jsx)(g.Rx,{variant:"destructive",onClick:R,disabled:P,children:P?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}),w("common.delete")]}):w("common.delete")})]})]})]})]})})]})]})})]})]})}},18789:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(66206).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},28479:(e,t,s)=>{Promise.resolve().then(s.bind(s,29622)),Promise.resolve().then(s.bind(s,69525)),Promise.resolve().then(s.bind(s,784)),Promise.resolve().then(s.bind(s,97723))},29622:(e,t,s)=>{"use strict";s.d(t,{IdeaTracker:()=>es});var a=s(90508),r=s(39268),n=s(1856),l=s(83064),d=s(64131);let o=(0,s(66206).A)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var i=s(5616),c=s(22922),u=s(81531),x=s(36755),m=s(29767),p=s(57223),h=s(63964),g=s(17730),f=s(78948),j=s(81750),b=s(96213),v=s(48127),w=s(34956),N=s(38106),y=s(77390),k=s(90612),C=s(59208),A=s(49151),E=s(85226),S=s(20578),F=s(57731),_=s(68876),D=s(3848);function P(e){let{references:t,isLoading:s}=e,n=(0,r.c)();return(0,a.jsx)("div",{className:"space-y-2",children:s?(0,a.jsxs)("p",{className:"flex items-center gap-1.5 text-xs italic text-muted-foreground",children:[(0,a.jsx)(E.A,{className:"h-3 w-3 animate-spin"}),n("references.loading")]}):0===t.length?(0,a.jsx)("p",{className:"text-xs italic text-muted-foreground",children:n("references.empty")}):t.map(e=>{var t,s;let r=(0,_.N2)(e.type)?_.qQ[e.type]:null,l=null!=(t=null==r?void 0:r.icon)?t:w.A;return(0,a.jsxs)("div",{className:"rounded-lg border border-border bg-background p-2.5",children:[(0,a.jsx)("div",{className:"mb-1 flex items-center gap-2",children:(0,a.jsxs)(F.E,{className:"gap-1 border-0 text-[10px] font-medium ".concat(null!=(s=null==r?void 0:r.badgeClass)?s:"bg-secondary text-muted-foreground"),children:[(0,a.jsx)(l,{className:"h-3 w-3"}),r?n(r.labelKey):e.type]})}),(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",title:e.title,className:"flex min-w-0 items-center gap-1 text-sm font-medium text-primary hover:underline",children:[(0,a.jsx)("span",{className:"truncate",children:e.title}),(0,a.jsx)(S.A,{className:"h-3 w-3 shrink-0"})]}),(0,a.jsx)(D.L,{notes:e.notes})]},e.uuid)})})}let z={open:"open",researching:"researching",answer_questions:"answerQuestions",planning:"planning",review_proposal:"reviewProposal",building:"building",verify_work:"verifyWork",done:"done",closed:"closed"},U={open:"text-muted-foreground",researching:"text-[#7F77DD] dark:text-[#A99FF0]",answer_questions:"text-[#C47A20] dark:text-[#E0A050]",planning:"text-[#7F77DD] dark:text-[#A99FF0]",review_proposal:"text-[#C47A20] dark:text-[#E0A050]",building:"text-[#7F77DD] dark:text-[#A99FF0]",verify_work:"text-[#C47A20] dark:text-[#E0A050]",done:"text-[#1D9E75] dark:text-[#4FD1A0]",closed:"text-muted-foreground"};function M(e){var t,s,l;let{idea:o,onClick:i,depth:c=0,showConnector:u=!1}=e,x=(0,r.c)("ideaTracker"),m=(0,r.c)(),p=o.badgeHint?z[o.badgeHint]:null,h=o.badgeHint&&U[o.badgeHint]||"text-muted-foreground",g=null!=(t=o.childCount)?t:0,b=null!=(s=o.referenceCount)?s:0,E=(0,C.kz)(),S=null!=(l=null==E?void 0:E.activeSessionsByIdea.get(o.uuid))?l:[],[F,_]=(0,n.useState)(!1),[D,M]=(0,n.useState)([]),[O,I]=(0,n.useState)(!1),[R,B]=(0,n.useState)(!1),T=!0===o.isContainer;return(0,a.jsxs)(j.Nt,{open:F,onOpenChange:e=>{_(e),!e||R||O||(B(!0),I(!0),(0,A.j)("idea",o.uuid).then(e=>{e.success&&M(e.references),I(!1)}))},children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-3.5 py-3 transition-colors ".concat(i?"cursor-pointer hover:bg-background":""),onClick:i?()=>i(o.uuid):void 0,style:c>0?{paddingLeft:"".concat(14+22*c,"px")}:void 0,children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[u&&(0,a.jsx)(v.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0}),(0,a.jsx)("span",{className:"shrink-0 text-[11px] font-semibold tracking-wide ".concat(T?"text-primary":"font-normal tracking-normal text-muted-foreground"),children:x(T?"lineage.typeTheme":"lineage.typeIdea")}),(0,a.jsx)("span",{className:"truncate text-[13px] text-foreground ".concat(T?"font-medium":""),children:o.title}),p&&(0,a.jsx)("span",{className:"shrink-0 rounded bg-secondary px-1.5 py-0.5 text-[11px] ".concat(h),children:x("badge.".concat(p))}),T&&o.childProgress&&o.childProgress.total>0?(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-1 rounded bg-primary/[0.12] px-1.5 py-0.5 text-[11px] font-medium text-primary",title:x("lineage.childrenDone",{done:o.childProgress.done,total:o.childProgress.total}),children:[(0,a.jsx)(y.C,{done:o.childProgress.done,total:o.childProgress.total,size:12,stroke:2}),o.childProgress.done,"/",o.childProgress.total]}):g>0?(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-1 rounded bg-primary/[0.12] px-1.5 py-0.5 text-[11px] font-medium text-primary",children:[(0,a.jsx)(d.A,{className:"h-2.5 w-2.5","aria-hidden":!0}),x("lineage.derivedCount",{count:g})]}):null,b>0&&(0,a.jsxs)(j.R6,{onClick:e=>e.stopPropagation(),"aria-label":m("references.countLabel",{count:b}),title:m("references.countLabel",{count:b}),className:"group/refs flex shrink-0 items-center gap-1 rounded bg-secondary px-1.5 py-0.5 text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground",children:[(0,a.jsx)(f.A,{className:"h-2.5 w-2.5 transition-transform ".concat(F?"rotate-90":""),"aria-hidden":!0}),(0,a.jsx)(w.A,{className:"h-2.5 w-2.5","aria-hidden":!0}),b]}),S.length>0&&E&&(0,a.jsx)(k.U,{sessions:S,onSelect:E.openChatForActiveSession,surface:"tracker"})]}),(0,a.jsx)("span",{className:"shrink-0 pl-4 text-[12px] text-muted-foreground",children:(0,N.s)(o.createdAt)})]}),b>0&&(0,a.jsx)(j.Ke,{onClick:e=>e.stopPropagation(),children:(0,a.jsx)("div",{className:"px-3.5 pb-3",style:c>0?{paddingLeft:"".concat(14+22*c,"px")}:void 0,children:(0,a.jsx)(P,{references:D,isLoading:O})})})]})}let O={human_conduct_required:{fill:"#7F77DD"},in_progress:{fill:"#378ADD"},todo:{stroke:"#888780"},done:{fill:"#1D9E75"}},I={todo:"todo",in_progress:"inProgress",human_conduct_required:"humanConductRequired",done:"done"};function R(e){let{status:t,ideas:s,defaultOpen:l=!0,onIdeaClick:d}=e,o=(0,r.c)("ideaTracker"),i=s.length>0,[c,u]=(0,n.useState)(!!i&&l),x=I[t]||"todo",m=O[t]||O.todo;return(0,a.jsxs)(j.Nt,{open:c,onOpenChange:u,children:[(0,a.jsxs)(j.R6,{className:"group flex w-full cursor-pointer items-center gap-2 px-0 pb-1.5 pt-0",children:[c?(0,a.jsx)(g.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"}):(0,a.jsx)(f.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"}),(0,a.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:m.fill,border:m.stroke?"1.5px solid ".concat(m.stroke):void 0}}),(0,a.jsx)("span",{className:"text-[13px] font-medium transition-colors group-hover:text-foreground ".concat(i?"text-foreground/80":"text-muted-foreground/60"),children:o("status.".concat(x))}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground transition-colors group-hover:text-foreground",children:s.length})]}),i&&(0,a.jsx)(j.Ke,{children:(0,a.jsx)("div",{className:"overflow-hidden rounded-lg bg-card",children:s.map((e,t)=>(0,a.jsxs)("div",{children:[t>0&&(0,a.jsx)("div",{className:"mx-0 h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"}),(0,a.jsx)(b.D,{entityType:"idea",entityUuid:e.uuid,badgeInside:!0,children:(0,a.jsx)(M,{idea:e,onClick:d})})]},e.uuid))})})]})}function B(e){let{ideas:t,onIdeaClick:s}=e,r=(0,n.useMemo)(()=>(function(e){let t=new Map(e.map(e=>[e.uuid,e])),s=new Map,a=[];for(let l of e){var r,n;let e=null!=(r=l.parentUuid)?r:null;if(e&&t.has(e)){let t=null!=(n=s.get(e))?n:[];t.push(l),s.set(e,t)}else a.push(l)}let l=[],d=new Set,o=(e,t,a)=>{var r;if(!d.has(e.uuid))for(let n of(d.add(e.uuid),a.push({idea:e,depth:t,showConnector:t>0}),null!=(r=s.get(e.uuid))?r:[]))o(n,t+1,a)};for(let e of a){let t=[];o(e,0,t),t.length>0&&l.push(t)}for(let t of e)d.has(t.uuid)||(d.add(t.uuid),l.push([{idea:t,depth:0,showConnector:!1}]));return l})(t),[t]);return(0,a.jsx)("div",{className:"space-y-2.5",children:r.map(e=>(0,a.jsx)("div",{"data-testid":"lineage-tree-group",className:"overflow-hidden rounded-lg bg-card",children:e.map((e,t)=>(0,a.jsxs)("div",{children:[t>0&&(0,a.jsx)("div",{className:"mx-0 h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"}),(0,a.jsx)(b.D,{entityType:"idea",entityUuid:e.idea.uuid,badgeInside:!0,children:(0,a.jsx)(M,{idea:e.idea,onClick:s,depth:e.depth,showConnector:e.showConnector})})]},e.idea.uuid))},e[0].idea.uuid))})}let T=["human_conduct_required","in_progress","todo","done"];function L(e){var t;let{projectUuid:s,initialData:l,viewMode:d,onIdeaClick:o,onNewIdea:u,onEmptyChange:g}=e,f=(0,r.c)("ideaTracker"),[j,b]=(0,n.useState)(null!=(t=null==l?void 0:l.groups)?t:{}),[v,w]=(0,n.useState)(!l),[N,y]=(0,n.useState)(null),k=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/projects/".concat(s,"/ideas/tracker")),t=await e.json();t.success&&t.data?(b(t.data.groups),y(null)):y(t.error||f("error.loadFailed"))}catch(e){y(f("error.loadFailed"))}finally{w(!1)}},[s,f]);(0,h.eV)("idea",k),(0,h.eV)("proposal",k),(0,h.eV)("task",k),(0,n.useEffect)(()=>{l||k()},[k,l]);let C=T.reduce((e,t)=>e+(j[t]||[]).length,0);(0,n.useEffect)(()=>{v||null==g||g(0===C)},[C,v,g]);let A=T.flatMap(e=>j[e]||[]);return v?(0,a.jsx)("div",{className:"space-y-4",children:[1,2,3].map(e=>(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(p.E,{className:"h-5 w-32"}),(0,a.jsx)(p.E,{className:"h-12 w-full rounded-lg"}),(0,a.jsx)(p.E,{className:"h-12 w-full rounded-lg"})]},e))}):N&&0===Object.keys(j).length?(0,a.jsxs)("div",{className:"flex flex-col items-center gap-4 py-16",children:[(0,a.jsx)(x.A,{className:"h-10 w-10 text-[#E65100] dark:text-[#F0A050]"}),(0,a.jsx)("p",{className:"text-[13px] text-muted-foreground",children:N}),(0,a.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>{w(!0),y(null),k()},className:"border-border text-foreground",children:f("actions.retry")})]}):0===C?(0,a.jsxs)("div",{className:"flex min-h-[60vh] flex-col items-center justify-center gap-3",children:[(0,a.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-secondary",children:(0,a.jsx)(m.A,{className:"h-5 w-5 text-muted-foreground"})}),(0,a.jsx)("p",{className:"text-[13px] font-medium text-muted-foreground",children:f("empty.noIdeas")}),(0,a.jsx)("p",{className:"max-w-[260px] text-center text-[12px] leading-relaxed text-muted-foreground",children:f("empty.getStarted")}),u&&(0,a.jsxs)(c.$,{onClick:u,size:"sm",className:"mt-2 gap-1.5 rounded-md bg-primary px-4 py-2 text-white hover:bg-[#B56A42]",children:[(0,a.jsx)(i.A,{className:"h-4 w-4"}),f("actions.newIdea")]})]}):(0,a.jsxs)("div",{className:"space-y-4",children:[N&&Object.keys(j).length>0&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 px-3 py-2 text-[12px] text-destructive",children:N}),"tree"===d?(0,a.jsx)(B,{ideas:A,onIdeaClick:o}):(0,a.jsx)("div",{className:"space-y-4",children:T.map(e=>{let t=j[e]||[];return 0===t.length?null:(0,a.jsx)(R,{status:e,ideas:t,defaultOpen:"done"!==e,onIdeaClick:o},e)})})]})}var $=s(12790),V=s.n($),q=s(48416),H=s(90795),Z=s(18789),K=s(94302),J=s(56770);let Q=[{key:"todo",bg:"#E65100"},{key:"inProgress",bg:"#5A9E6F"},{key:"toVerify",bg:"#7B1FA2"},{key:"done",bg:"#00796B"}],G={idea:"bg-primary",task:"bg-[#5A9E6F]",proposal:"bg-[#1976D2]",document:"bg-[#9A9A9A]"};function W(e){let{projectUuid:t,initialData:s}=e,l=(0,r.c)(),d=(0,r.c)("ideaTracker"),[o,i]=(0,n.useState)(null!=s?s:null),[c,u]=(0,n.useState)(!s),x=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/projects/".concat(t,"/stats"));if(!e.ok)return;let s=await e.json();s.success&&i(s.data)}finally{u(!1)}},[t]);if((0,n.useEffect)(()=>{s||x()},[x,s]),(0,h.eV)(["idea","task","proposal","document"],x),c)return(0,a.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,a.jsx)(E.A,{className:"h-6 w-6 animate-spin text-muted-foreground"})});if(!o)return null;let{stats:p,recentActivities:g}=o,f=[{label:d("stats.totalIdeas"),value:p.ideas.total,badge:p.ideas.open>0?d("stats.openCount",{count:p.ideas.open}):null,badgeStyle:"bg-primary/[0.13] text-primary",href:"/projects/".concat(t,"/dashboard"),iconBg:"bg-[#FFF3E0] dark:bg-[#3a2a12]",icon:(0,a.jsx)(m.A,{className:"h-5 w-5 text-[#E65100] dark:text-[#F0A050]"})},{label:d("stats.totalTasks"),value:p.tasks.total,badge:p.tasks.inProgress>0?d("stats.activeCount",{count:p.tasks.inProgress}):null,badgeStyle:"bg-[#5A9E6F20] text-[#5A9E6F] dark:text-[#6FD19A]",href:"/projects/".concat(t,"/tasks"),iconBg:"bg-[#E3F2FD] dark:bg-[#13253a]",icon:(0,a.jsx)(Z.A,{className:"h-5 w-5 text-[#1976D2] dark:text-[#5AA9F0]"})},{label:d("stats.totalProposals"),value:p.proposals.total,badge:p.proposals.pending>0?d("stats.pendingCount",{count:p.proposals.pending}):null,badgeStyle:"bg-primary/[0.13] text-primary",href:"/projects/".concat(t,"/proposals"),iconBg:"bg-[#F3E5F5] dark:bg-[#281630]",icon:(0,a.jsx)(K.A,{className:"h-5 w-5 text-[#7B1FA2] dark:text-[#C98FE0]"})},{label:d("stats.totalDocuments"),value:p.documents.total,badge:null,badgeStyle:"",href:"/projects/".concat(t,"/documents"),iconBg:"bg-[#E8F5E9] dark:bg-[#14281a]",icon:(0,a.jsx)(J.A,{className:"h-5 w-5 text-[#5A9E6F] dark:text-[#6FD19A]"})}],j=[p.tasks.todo,p.tasks.inProgress,p.tasks.toVerify,p.tasks.done],b=p.tasks.total,v=[{label:d("stats.todoCount",{count:p.tasks.todo}),color:"#E65100"},{label:d("stats.inProgressCount",{count:p.tasks.inProgress}),color:"#5A9E6F"},{label:d("stats.toVerifyCount",{count:p.tasks.toVerify}),color:"#7B1FA2"},{label:d("stats.doneCount",{count:p.tasks.done}),color:"#00796B"}];return(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3 md:gap-4 lg:grid-cols-4",children:f.map(e=>(0,a.jsx)(V(),{href:e.href,children:(0,a.jsxs)(q.Zp,{className:"cursor-pointer rounded-2xl border-0 bg-card p-3 shadow-none transition-all hover:shadow-md md:p-5",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between md:mb-3.5",children:[(0,a.jsx)("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg md:h-10 md:w-10 md:rounded-xl ".concat(e.iconBg),children:e.icon}),e.badge&&(0,a.jsx)("span",{className:"hidden rounded-lg px-2.5 py-1 text-[11px] font-medium sm:inline ".concat(e.badgeStyle),children:e.badge})]}),(0,a.jsx)("div",{className:"text-2xl font-semibold leading-none tracking-tight text-foreground md:text-[32px]",children:e.value}),(0,a.jsx)("div",{className:"mt-0.5 text-[12px] text-muted-foreground md:text-[13px]",children:e.label})]})},e.label))}),(0,a.jsxs)("div",{className:"grid min-h-0 gap-5 lg:grid-cols-2",children:[(0,a.jsxs)(q.Zp,{className:"flex flex-col rounded-2xl border-0 bg-card p-6 shadow-none",children:[(0,a.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-[16px] font-semibold text-foreground",children:d("stats.taskPipeline")}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:d("stats.totalCount",{count:b})})]}),b>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"mb-5 flex h-3 w-full overflow-hidden rounded-md",children:j.map((e,t)=>e>0?(0,a.jsx)("div",{className:"h-full",style:{width:"".concat(e/b*100,"%"),backgroundColor:Q[t].bg}},Q[t].key):null)}),(0,a.jsx)("div",{className:"flex flex-wrap gap-5",children:v.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("div",{className:"h-2.5 w-2.5 rounded-sm",style:{backgroundColor:e.color}}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:e.label})]},e.color))})]}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center py-10 text-[13px] text-muted-foreground",children:d("stats.noTasks")})]}),(0,a.jsxs)(q.Zp,{className:"flex flex-col rounded-2xl border-0 bg-card p-6 shadow-none",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-[16px] font-semibold text-foreground",children:d("stats.recentActivity")}),(0,a.jsx)(V(),{href:"/projects/".concat(t,"/activity"),className:"text-[12px] font-medium text-primary hover:underline",children:d("stats.viewAll")})]}),g.length>0?(0,a.jsx)("div",{className:"flex flex-col",children:g.map((e,t)=>{let s=G[e.targetType]||"bg-[#9A9A9A]";return(0,a.jsxs)("div",{className:"flex items-start gap-3 py-3 ".concat(t<g.length-1?"border-b border-secondary":""),children:[(0,a.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full ".concat(s)}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"text-[13px] text-foreground",children:[e.actorName," ",e.action]}),(0,a.jsx)("span",{className:"text-[11px] text-muted-foreground",children:(0,H.fw)(e.createdAt,l)})]})]},e.uuid)})}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center py-10 text-[13px] text-muted-foreground",children:d("stats.noActivity")})]})]})]})}var X=s(27337),Y=s(875);let ee=["ideas","lineage","stats"],et=e=>"chorus:dashboard-view:".concat(e);function es(e){let{projectUuid:t,projectName:s,currentUserUuid:x,initialTrackerData:m,initialStatsData:p,initialSelectedIdeaUuid:h}=e,g=(0,r.c)("ideaTracker"),[f,j]=(0,n.useState)(()=>{var e;return(e=null==m?void 0:m.groups)&&Object.values(e).some(e=>e.some(e=>{var t;return!!e.parentUuid||(null!=(t=e.childCount)?t:0)>0}))?"lineage":"ideas"}),[b,v]=(0,n.useState)(!1),w=(0,n.useRef)(null),N=(0,n.useRef)(null),y=e=>{w.current=e.currentTarget,v(!0)};(0,n.useEffect)(()=>{let e=function(e){let t=null;try{t=window.localStorage.getItem(et(e))}catch(e){return null}return ee.includes(t)?t:null}(t);e&&j(e)},[t]);let[k,C]=(0,n.useState)(()=>!!m&&0===Object.values(m.groups).reduce((e,t)=>e+t.length,0)),A="/projects/".concat(t,"/dashboard"),{selectedId:E,openPanel:S,closePanel:F}=(0,u.T)(A,h),_=[{id:"ideas",label:g("tabs.ideas"),icon:l.A},{id:"lineage",label:g("tabs.lineage"),icon:d.A},{id:"stats",label:g("tabs.stats"),icon:o}];return(0,a.jsxs)("div",{className:"flex h-full flex-col",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsx)("div",{className:"inline-flex items-center gap-0.5 rounded-lg bg-[#EFEBE3] dark:bg-[#201e1a] p-0.5",children:_.map(e=>{let{id:s,label:r,icon:n}=e;return(0,a.jsxs)("button",{type:"button",onClick:()=>(e=>{j(e);try{window.localStorage.setItem(et(t),e)}catch(e){}})(s),"aria-pressed":f===s,className:"flex cursor-pointer items-center gap-1.5 rounded-md px-3 py-1.5 text-[12px] transition-colors ".concat(f===s?"bg-card font-medium text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,a.jsx)(n,{className:"h-3.5 w-3.5"}),r]},s)})}),"stats"!==f&&!k&&(0,a.jsxs)(c.$,{ref:N,onClick:y,size:"sm",className:"gap-1.5 rounded-md bg-primary px-3.5 py-2 text-white hover:bg-[#B56A42]",children:[(0,a.jsx)(i.A,{className:"h-4 w-4"}),g("actions.newIdea")]})]}),"stats"===f?(0,a.jsx)(W,{projectUuid:t,initialData:p}):(0,a.jsx)(L,{projectUuid:t,initialData:m,viewMode:"lineage"===f?"tree":"flat",onIdeaClick:S,onNewIdea:y,onEmptyChange:C}),(0,a.jsx)(Y.i,{open:b,onOpenChange:v,onCloseAutoFocus:e=>{var t;e.preventDefault();let s=(null==(t=w.current)?void 0:t.isConnected)?w.current:N.current;null==s||s.focus(),w.current=null},projectUuid:t,projectName:s,onCreated:e=>S(e)}),E&&(0,a.jsx)(X.D,{ideaUuid:E,projectUuid:t,currentUserUuid:x,onClose:F,onNavigate:S})]})}},30366:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(66206).A)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]])},69525:(e,t,s)=>{"use strict";s.d(t,{ProjectCwdSummary:()=>x});var a=s(90508),r=s(1856),n=s(39268),l=s(62990),d=s(30423),o=s(59208),i=s(91385),c=s(22922),u=s(92691);function x(e){let{projectUuid:t}=e,s=(0,n.c)("fixedCwdAnchor"),x=(0,o.kz)(),[m,p]=(0,r.useState)([]),h=(0,r.useCallback)(async()=>{var e,s;let a=await (0,l.tm)("/api/projects/".concat(encodeURIComponent(t),"/agent-cwds"));if(!a.ok)return;let r=await a.json();p((null!=(s=null==r||null==(e=r.data)?void 0:e.agents)?s:[]).filter(e=>{var t;return null==(t=e.preference)?void 0:t.cwd}))},[t]);return((0,r.useEffect)(()=>{let e=!1,s=e=>{let s=e.detail;(null==s?void 0:s.projectUuid)===t&&h().catch(()=>p([]))};return h().catch(()=>{e||p([])}),window.addEventListener("project-cwd-updated",s),()=>{e=!0,window.removeEventListener("project-cwd-updated",s)}},[h,t]),0===m.length)?null:(0,a.jsx)(u.Bc,{children:(0,a.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5","aria-label":s("title"),children:m.map(e=>{let{agent:t,preference:r}=e;return(0,a.jsxs)(u.m_,{children:[(0,a.jsx)(u.k$,{asChild:!0,children:(0,a.jsxs)(c.$,{type:"button",variant:"ghost","aria-label":s("openAgentChat",{agent:t.name}),onClick:()=>null==x?void 0:x.openChatForAgent(t.uuid,{host:r.host,cwd:r.cwd}),className:"inline-flex h-auto max-w-full items-center gap-1.5 rounded-md border border-border bg-card px-2 py-1 text-[11px] font-normal text-muted-foreground hover:bg-accent hover:text-accent-foreground",children:[(0,a.jsx)(i.AgentAvatar,{name:t.name,size:16,className:"rounded-full"}),(0,a.jsx)("span",{className:"max-w-[min(12rem,50vw)] truncate font-medium text-foreground",children:t.name}),(0,a.jsx)("span",{"data-testid":"cwd-agent-dot",className:"size-2 shrink-0 rounded-full",style:{backgroundColor:(0,d.j)(t.name)},"aria-hidden":!0})]})}),(0,a.jsxs)(u.ZI,{side:"bottom",className:"flex items-center gap-2",children:[(0,a.jsx)(i.AgentAvatar,{name:t.name,size:"sm",className:"rounded-md"}),(0,a.jsx)("span",{className:"font-mono",children:r.cwd})]})]},t.uuid)})})})}},70481:(e,t,s)=>{"use strict";s.d(t,{O:()=>m});var a=s(90508),r=s(1856),n=s(39268),l=s(85226),d=s(59133),o=s(30366),i=s(97413),c=s(91385),u=s(22922),x=s(41837);let m=(0,r.forwardRef)(function(e,t){let{projectUuid:s,agentError:m,initialDrafts:p,onDraftsChange:h}=e,g=(0,n.c)(),[f,j]=(0,r.useState)([]),[b,v]=(0,r.useState)(()=>null!=p?p:{}),w=(0,r.useRef)(b),[N,y]=(0,r.useState)(new Set),[k,C]=(0,r.useState)(!0),[A,E]=(0,r.useState)(null),[S,F]=(0,r.useState)(!1),[_,D]=(0,r.useState)({}),P=(0,r.useCallback)(async()=>{C(!0),F(!1);try{let e=await fetch(s?"/api/projects/".concat(encodeURIComponent(s),"/agent-cwds"):"/api/projects/agent-cwd-options"),t=await e.json();if(!e.ok||!t.success)throw Error("load failed");j(t.data.agents)}catch(e){F(!0)}finally{C(!1)}},[s]);(0,r.useEffect)(()=>{P()},[P]);let z=(e,t)=>{w.current=e,v(e),y(t),null==h||h(e)};return(0,r.useImperativeHandle)(t,()=>({validate:async e=>{if(null==e?void 0:e.aborted)throw new DOMException("Aborted","AbortError");let t=[];for(let s of Object.values(b))try{let a=await (0,x.q)(s,e);if(null==e?void 0:e.aborted)throw new DOMException("Aborted","AbortError");if(t.push(a),w.current[s.agentUuid]===s){let e={...w.current,[s.agentUuid]:a};w.current=e,v(e),null==h||h(e)}}catch(a){if(null==e?void 0:e.aborted)throw new DOMException("Aborted","AbortError");if((a instanceof DOMException||a instanceof Error)&&"AbortError"===a.name)throw a;let t=a instanceof Error?a.message:"INTERNAL_ERROR";return D(e=>({...e,[s.agentUuid]:g("directoryBrowser.errors.".concat(t))})),E(s.agentUuid),null}return{upserts:t,clears:[...N]}}}),[N,b,h,g]),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-[14px] font-semibold text-foreground",children:g("projectSettings.agentCwds.title")}),(0,a.jsx)("p",{className:"mt-1 text-[12px] text-muted-foreground",children:g("projectSettings.agentCwds.description")})]}),k&&(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(l.A,{className:"size-4 animate-spin"}),g("projectSettings.agentCwds.loading")]}),S&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",role:"alert",children:[(0,a.jsx)("span",{className:"text-xs text-destructive",children:g("projectSettings.agentCwds.loadFailed")}),(0,a.jsxs)(u.$,{type:"button",size:"sm",variant:"outline",onClick:()=>void P(),children:[(0,a.jsx)(d.A,{className:"mr-2 size-3.5"}),g("common.retry")]})]}),!k&&!S&&0===f.length&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:g("projectSettings.agentCwds.emptyOnline")}),f.map(e=>{let t=b[e.agent.uuid],r=N.has(e.agent.uuid)?null:t?{host:t.host,cwd:t.cwd,status:"valid"}:e.preference;return(0,a.jsxs)("div",{className:"min-w-0 rounded-lg border border-border p-4",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start gap-2.5",children:[(0,a.jsx)(c.AgentAvatar,{name:e.agent.name,size:"sm",className:"mt-0.5 rounded-md"}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-semibold",children:e.agent.name}),r?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"mt-1 break-all font-mono text-[11px]",children:r.cwd}),(0,a.jsx)("p",{className:"mt-1 truncate text-[11px] text-muted-foreground",children:r.host}),(0,a.jsx)("p",{className:"valid"===r.status?"mt-1 text-[11px] text-emerald-700 dark:text-emerald-400":"mt-1 text-[11px] text-destructive",children:g("projectSettings.agentCwds.status.".concat(r.status))})]}):(0,a.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:g("projectSettings.agentCwds.notConfigured")})]})]}),(0,a.jsxs)("div",{className:"flex shrink-0 gap-1",children:[(0,a.jsx)(u.$,{type:"button",size:"icon",variant:"ghost",title:g(r?"projectSettings.agentCwds.replace":"projectSettings.agentCwds.configure"),"aria-label":g(r?"projectSettings.agentCwds.replace":"projectSettings.agentCwds.configure"),onClick:()=>E(A===e.agent.uuid?null:e.agent.uuid),children:(0,a.jsx)(o.A,{className:"size-4"})}),r&&(0,a.jsx)(u.$,{type:"button",size:"icon",variant:"ghost",className:"text-destructive",title:g("projectSettings.agentCwds.clear"),"aria-label":g("projectSettings.agentCwds.clear"),onClick:()=>(e=>{let t={...b};delete t[e];let a=new Set(N);s&&a.add(e),z(t,a)})(e.agent.uuid),children:(0,a.jsx)(i.A,{className:"size-4"})})]})]}),A===e.agent.uuid&&(0,a.jsxs)("div",{className:"mt-4 border-t border-border pt-4",children:[(0,a.jsx)(x.e,{agentUuid:e.agent.uuid,instances:e.onlineInstances,showConfirm:!1,onValidated:()=>void 0,onSelectionChange:t=>((e,t)=>{if(!e)return;let s=new Set(N);s.delete(t),z({...b,[t]:e},s),D(e=>{let s={...e};return delete s[t],s})})(t,e.agent.uuid)}),(_[e.agent.uuid]||(null==m?void 0:m.agentUuid)===e.agent.uuid)&&(0,a.jsx)("p",{className:"mt-2 text-xs text-destructive",role:"alert",children:_[e.agent.uuid]||(null==m?void 0:m.message)})]}),A!==e.agent.uuid&&(null==m?void 0:m.agentUuid)===e.agent.uuid&&(0,a.jsx)("p",{className:"mt-2 text-xs text-destructive",role:"alert",children:m.message})]},e.agent.uuid)})]})})},83064:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(66206).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},97723:(e,t,s)=>{"use strict";s.d(t,{CollapsibleMarkdown:()=>o});var a=s(90508),r=s(1856),n=s(39268),l=s(22922),d=s(82813);function o(e){let{content:t,className:s}=e,o=(0,n.c)(),[i,c]=(0,r.useState)(!1),[u,x]=(0,r.useState)(!1),m=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=m.current;if(!e)return;let t=()=>x(e.scrollHeight>81);t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[t]),(0,a.jsxs)("div",{className:s,children:[(0,a.jsx)("div",{ref:m,className:"overflow-hidden [&_h1]:text-sm [&_h1]:font-semibold [&_h1]:mt-2 [&_h1]:mb-1 [&_h2]:text-[13px] [&_h2]:font-semibold [&_h2]:mt-2 [&_h2]:mb-1 [&_h3]:text-[13px] [&_h3]:font-semibold [&_h3]:mt-1.5 [&_h3]:mb-0.5 [&_p]:my-1 [&_ul]:my-1 [&_ol]:my-1 [&_li]:my-0.5 [&_p:first-child]:mt-0 [&_p:last-child]:mb-0",style:i?void 0:{maxHeight:80},children:(0,a.jsx)(d.MarkdownContent,{children:t})}),u&&(0,a.jsx)(l.$,{variant:"link",size:"sm",onClick:()=>c(e=>!e),className:"h-auto p-0 text-[#E07A5F] dark:text-[#F0A088] text-xs font-medium mt-1",children:o(i?"common.showLess":"common.showMore")})]})}}},e=>{e.O(0,[41282,87326,93151,41752,30996,57084,59764,12079,18944,27290,12790,26885,14655,21932,20204,30724,16544,94170,27201,16551,97784,14753,45532,91907,70552,10488,65096,39025,87325,83749,69398,27370,71921,91796,99540,48365,17081,46437,74951,65496,77358],()=>e(e.s=28479)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[61461],{23603:(e,t,r)=>{"use strict";r.d(t,{E:()=>x});var n=r(90508),s=r(1856),o=r(67587),a=r(56770),i=r(66206);let l=(0,i.A)("file-type",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11 18h2",key:"12mj7e"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5",key:"qbrxap"}]]),d=(0,i.A)("file-spreadsheet",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]);var c=r(85226);let m=(0,i.A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);var h=r(39268),u=r(66343),v=r(22922),p=r(67712);function x(e){let{document:t,documentUuid:i,variant:x="default"}=e,b=(0,h.c)(),{exportDocument:f,isExporting:j,exportError:y}=function(){let[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(null);return{exportDocument:(0,s.useCallback)(async(e,n)=>{t(!0),o(null);try{let t,o,i=function(e){let t=e.replace(/[\\/:*?"<>|]/g,"").replace(/\s+/g," ").trim().replace(/\s/g,"-");return t.length>0?t:"document"}(e.title);if("md"===n){let{exportAsMarkdownBlob:n}=await r.e(50681).then(r.bind(r,50681));t=n(e),o="md"}else if("pdf"===n){let{exportAsPdf:n}=await r.e(34966).then(r.bind(r,34966));t=await n(e),o="pdf"}else if("docx"===n){let{exportAsDocx:n}=await r.e(9634).then(r.bind(r,9634));t=await n(e),o="docx"}else throw Error("Unsupported export format: ".concat(String(n)));var s=t,a="".concat(i,".").concat(o);let l=URL.createObjectURL(s),d=document.createElement("a");d.href=l,d.download=a,d.rel="noopener",d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d),setTimeout(()=>URL.revokeObjectURL(l),1e3)}catch(e){o(e instanceof Error?e.message:String(e)),p.q.error("useDocumentExport export failed",e)}finally{t(!1)}},[]),isExporting:e,exportError:n}}(),[g,w]=(0,s.useState)(null);async function P(e){w(e);try{let d=t;if(!d&&i){var r,n,s,a,l;let e=await fetch("/api/documents/".concat(i)),t=await e.json();if(!t.success||!t.data)return void o.oR.error(b("export.exportError"));let c=t.data;d={title:c.title,content:null!=(s=c.content)?s:"",type:c.type,version:c.version,createdAt:c.createdAt,updatedAt:c.updatedAt,createdByName:null!=(a=null==(r=c.createdBy)?void 0:r.name)?a:"",projectName:null!=(l=null==(n=c.project)?void 0:n.name)?l:""}}d&&await f(d,e)}finally{w(null),y&&o.oR.error(y)}}let k=[{format:"md",labelKey:"export.formatMd",icon:a.A},{format:"pdf",labelKey:"export.formatPdf",icon:l},{format:"docx",labelKey:"export.formatDocx",icon:d}],N="compact"===x;return(0,n.jsxs)(u.rI,{children:[(0,n.jsx)(u.ty,{asChild:!0,children:(0,n.jsxs)(v.$,{variant:"ghost"===x?"ghost":"outline",size:N?"sm":"default",className:N?"h-6 text-[11px] text-muted-foreground hover:text-foreground":"border-border text-muted-foreground gap-1.5",disabled:j,children:[j?(0,n.jsx)(c.A,{className:"".concat(N?"h-3 w-3":"h-4 w-4"," animate-spin")}):(0,n.jsx)(m,{className:N?"h-3 w-3":"h-4 w-4"}),!N&&b("export.exportDocument")]})}),(0,n.jsx)(u.SQ,{align:"end",className:"w-48",children:k.map(e=>{let{format:t,labelKey:r,icon:s}=e;return(0,n.jsxs)(u._2,{onClick:e=>{e.stopPropagation(),e.preventDefault(),P(t)},disabled:j,children:[g===t?(0,n.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(s,{className:"h-4 w-4"}),b(r)]},t)})})]})}},30725:(e,t,r)=>{"use strict";r.d(t,{DocumentActions:()=>x});var n=r(90508),s=r(23603),o=r(1856),a=r(91814),i=r(39268),l=r(97413),d=r(85226),c=r(67587),m=r(22922),h=r(51817),u=r(52217);let v=(0,u.createServerReference)("40ba58090e67cce5681ce9bc743e8d9a3142f6c6b5",u.callServer,void 0,u.findSourceMapURL,"deleteDocumentAction");function p(e){let{documentUuid:t,documentTitle:r,projectUuid:s}=e,u=(0,i.c)("documents"),p=(0,i.c)("common"),x=(0,a.r)(),[b,f]=o.useState(!1),[j,y]=o.useState(!1),[g,w]=o.useState(null),P=async()=>{y(!0),w(null);let e=await v(t);if(e.success){c.oR.success(u("deleteSuccess")),f(!1),y(!1),x.replace("/projects/".concat(e.projectUuid,"/documents")),x.refresh();return}let r="not_found"===e.error?u("deleteFailedNotFound"):u("deleteFailed");w(r),c.oR.error(r),y(!1)};return(0,n.jsxs)(h.Lt,{open:b,onOpenChange:e=>{!j&&(f(e),e||w(null))},children:[(0,n.jsx)(h.tv,{asChild:!0,children:(0,n.jsxs)(m.$,{variant:"destructive",size:"sm",children:[(0,n.jsx)(l.A,{className:"mr-2 h-4 w-4"}),p("delete")]})}),(0,n.jsxs)(h.EO,{children:[(0,n.jsxs)(h.wd,{children:[(0,n.jsx)(h.r7,{children:u("deleteDocument")}),(0,n.jsx)(h.$v,{children:u("deleteDocumentDescription",{title:r})})]}),g&&(0,n.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:g}),(0,n.jsxs)(h.ck,{children:[(0,n.jsx)(h.Zr,{disabled:j,children:p("cancel")}),(0,n.jsx)(m.$,{variant:"destructive",disabled:j,onClick:P,children:j?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.A,{className:"mr-2 h-4 w-4 animate-spin"}),p("delete")]}):p("delete")})]})]})]})}function x(e){let{documentUuid:t,projectUuid:r,documentTitle:o,canDelete:a,exportDoc:i}=e;return(0,n.jsxs)("div",{className:"flex gap-2",children:[i?(0,n.jsx)(s.E,{document:i}):(0,n.jsx)(s.E,{documentUuid:t}),a&&(0,n.jsx)(p,{documentUuid:t,documentTitle:o,projectUuid:r})]})}},53206:(e,t,r)=>{Promise.resolve().then(r.bind(r,52053)),Promise.resolve().then(r.bind(r,90299)),Promise.resolve().then(r.bind(r,65514)),Promise.resolve().then(r.bind(r,98861)),Promise.resolve().then(r.bind(r,38476)),Promise.resolve().then(r.bind(r,74542)),Promise.resolve().then(r.bind(r,71350)),Promise.resolve().then(r.bind(r,39025)),Promise.resolve().then(r.bind(r,75368)),Promise.resolve().then(r.bind(r,89684)),Promise.resolve().then(r.bind(r,58057)),Promise.resolve().then(r.bind(r,6512)),Promise.resolve().then(r.bind(r,25051)),Promise.resolve().then(r.bind(r,4374)),Promise.resolve().then(r.bind(r,19345)),Promise.resolve().then(r.bind(r,2300)),Promise.resolve().then(r.bind(r,17533)),Promise.resolve().then(r.bind(r,99545)),Promise.resolve().then(r.bind(r,63197)),Promise.resolve().then(r.bind(r,65326)),Promise.resolve().then(r.bind(r,48218)),Promise.resolve().then(r.bind(r,56260)),Promise.resolve().then(r.bind(r,60322)),Promise.resolve().then(r.bind(r,79834)),Promise.resolve().then(r.bind(r,6947)),Promise.resolve().then(r.bind(r,88878)),Promise.resolve().then(r.bind(r,34857)),Promise.resolve().then(r.bind(r,97006)),Promise.resolve().then(r.bind(r,45841)),Promise.resolve().then(r.t.bind(r,12790,23)),Promise.resolve().then(r.bind(r,30725)),Promise.resolve().then(r.bind(r,89971)),Promise.resolve().then(r.bind(r,69468)),Promise.resolve().then(r.bind(r,76546))},69468:(e,t,r)=>{"use strict";r.d(t,{DocumentContent:()=>h});var n=r(90508),s=r(1856),o=r(91814),a=r(39268),i=r(82813),l=r(48416),d=r(22922),c=r(52217);let m=(0,c.createServerReference)("70dc80621d7ee89d742a0e932aa5b4f1409900dc84",c.callServer,void 0,c.findSourceMapURL,"updateDocumentAction");function h(e){let{documentUuid:t,projectUuid:r,initialContent:c}=e,h=(0,a.c)(),u=(0,o.r)(),[v,p]=(0,s.useState)(!1),[x,b]=(0,s.useState)(c),[f,j]=(0,s.useTransition)();return(0,n.jsxs)(l.Zp,{className:"flex-1 overflow-auto border-border p-6",children:[(0,n.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,n.jsx)("h2",{className:"text-lg font-medium text-foreground",children:h("common.content")}),v?(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(d.$,{variant:"outline",onClick:()=>{b(c),p(!1)},disabled:f,className:"border-border text-muted-foreground",children:h("common.cancel")}),(0,n.jsx)(d.$,{onClick:()=>{j(async()=>{(await m(t,r,x)).success&&(p(!1),u.refresh())})},disabled:f,className:"bg-[#5A9E6F] hover:bg-[#4A8E5F] text-white",children:h(f?"common.processing":"documents.saveChanges")})]}):(0,n.jsxs)(d.$,{onClick:()=>p(!0),className:"bg-primary hover:bg-[#B56A42] text-white",children:[(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"mr-2 h-4 w-4",children:(0,n.jsx)("path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"})}),h("common.edit")]})]}),v?(0,n.jsx)("textarea",{value:x,onChange:e=>b(e.target.value),className:"h-full w-full resize-none rounded-lg border border-border p-4 font-mono text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary",placeholder:h("documents.documentContent")}):(0,n.jsx)("div",{className:"prose prose-sm max-w-none text-foreground",children:c?(0,n.jsx)(i.MarkdownContent,{children:c}):(0,n.jsx)("span",{className:"text-[#9A9A9A] italic",children:h("common.noContent")})})]})}},76546:(e,t,r)=>{"use strict";r.d(t,{FormattedDateTime:()=>o});var n=r(90508),s=r(38106);function o(e){let{date:t}=e;return(0,n.jsx)(n.Fragment,{children:(0,s.r)(t)})}},89971:(e,t,r)=>{"use strict";r.d(t,{DocumentComments:()=>o});var n=r(90508),s=r(91796);function o(e){let{documentUuid:t,currentUserUuid:r}=e;return(0,n.jsx)(s.$m,{targetType:"document",targetUuid:t,currentUserUuid:r,compact:!0})}}},e=>{e.O(0,[87326,93151,41752,30996,57084,12079,18944,27290,12790,26885,14655,21932,20204,30724,94170,27201,16551,97784,14753,45532,91907,70552,10488,65096,39025,87325,83749,51603,27370,71921,91796,74951,65496,77358],()=>e(e.s=53206)),_N_E=e.O()}]);