@chorus-aidlc/chorus 0.18.1 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +372 -373
  3. package/.next/standalone/.next/app-path-routes-manifest.json +35 -35
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +21 -21
  6. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  46. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  50. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  51. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  54. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  55. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  57. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  58. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/admin.html +2 -2
  60. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  61. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js +1 -1
  62. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/companies/route.js +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/companies/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agent-connections/route.js +1 -1
  70. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  76. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  79. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js +1 -1
  82. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/api-keys/route.js +1 -1
  85. package/.next/standalone/.next/server/app/api/api-keys/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  96. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js +1 -1
  99. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -1
  102. package/.next/standalone/.next/server/app/api/daemon/control/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js +1 -1
  105. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js.nft.json +1 -1
  106. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -1
  108. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -1
  111. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  114. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
  117. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  120. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  123. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  126. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
  138. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
  139. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  141. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  144. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  147. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  150. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/events/route.js +2 -2
  159. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  163. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  166. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  169. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  172. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  175. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  178. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js +1 -1
  181. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
  184. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/mcp/route.js +1 -1
  187. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  190. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  193. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  196. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  199. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  202. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  205. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  208. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  211. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  212. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
  214. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
  217. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  220. package/.next/standalone/.next/server/app/api/project-groups/route.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/api/project-visits/pin/route.js +1 -1
  223. package/.next/standalone/.next/server/app/api/project-visits/pin/route.js.nft.json +1 -1
  224. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/api/project-visits/route.js +1 -1
  226. package/.next/standalone/.next/server/app/api/project-visits/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/api/project-visits/visit/route.js +1 -1
  229. package/.next/standalone/.next/server/app/api/project-visits/visit/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  232. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js +1 -1
  235. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js.nft.json +1 -1
  236. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  238. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  239. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  241. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  244. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  246. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  247. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  248. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  250. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  251. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  253. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js.nft.json +1 -1
  254. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  256. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js.nft.json +1 -1
  257. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  259. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js.nft.json +1 -1
  260. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  261. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
  262. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
  263. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  264. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  265. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js.nft.json +1 -1
  266. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  267. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  268. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js.nft.json +1 -1
  269. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  271. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  274. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js +1 -1
  277. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  280. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  283. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js.nft.json +1 -1
  284. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  285. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  286. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  289. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js.nft.json +1 -1
  290. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  291. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  292. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  294. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  295. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js.nft.json +1 -1
  296. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/api/references/[uuid]/route.js +1 -1
  298. package/.next/standalone/.next/server/app/api/references/[uuid]/route.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  300. package/.next/standalone/.next/server/app/api/references/route.js +1 -1
  301. package/.next/standalone/.next/server/app/api/references/route.js.nft.json +1 -1
  302. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  303. package/.next/standalone/.next/server/app/api/search/route.js +1 -1
  304. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  305. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  306. package/.next/standalone/.next/server/app/api/session/route.js +1 -1
  307. package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  308. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  310. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  311. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  312. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  313. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  314. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  315. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  316. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  317. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  318. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  319. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  320. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  321. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  322. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  323. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  324. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  325. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  326. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  327. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  328. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  329. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  330. package/.next/standalone/.next/server/app/index.html +2 -2
  331. package/.next/standalone/.next/server/app/index.rsc +2 -2
  332. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  333. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  334. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  335. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  336. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  337. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  338. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  339. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  340. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  341. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  342. package/.next/standalone/.next/server/app/login.html +2 -2
  343. package/.next/standalone/.next/server/app/login.rsc +2 -2
  344. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  345. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  346. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  347. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  348. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  349. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  350. package/.next/standalone/.next/server/app/projects.html +2 -2
  351. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  352. package/.next/standalone/.next/server/app/settings.html +2 -2
  353. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  354. package/.next/standalone/.next/server/app-paths-manifest.json +35 -35
  355. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  356. package/.next/standalone/.next/server/chunks/2572.js +2 -2
  357. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  358. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  359. package/.next/standalone/.next/server/chunks/{2460.js → 3420.js} +1 -1
  360. package/.next/standalone/.next/server/chunks/{8030.js → 38.js} +3 -3
  361. package/.next/standalone/.next/server/chunks/4672.js +6 -0
  362. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  363. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  364. package/.next/standalone/.next/server/chunks/5453.js +1 -1
  365. package/.next/standalone/.next/server/chunks/5576.js +1 -0
  366. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  367. package/.next/standalone/.next/server/chunks/6125.js +1 -0
  368. package/.next/standalone/.next/server/chunks/6506.js +39 -3
  369. package/.next/standalone/.next/server/chunks/6509.js +1 -0
  370. package/.next/standalone/.next/server/chunks/6515.js +2 -2
  371. package/.next/standalone/.next/server/chunks/657.js +1 -0
  372. package/.next/standalone/.next/server/chunks/{5489.js → 661.js} +44 -8
  373. package/.next/standalone/.next/server/chunks/6654.js +1 -0
  374. package/.next/standalone/.next/server/chunks/6737.js +1 -1
  375. package/.next/standalone/.next/server/chunks/679.js +1 -1
  376. package/.next/standalone/.next/server/chunks/{2516.js → 7258.js} +1 -1
  377. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  378. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  379. package/.next/standalone/.next/server/chunks/7578.js +1 -1
  380. package/.next/standalone/.next/server/chunks/8017.js +1 -0
  381. package/.next/standalone/.next/server/chunks/8437.js +1 -0
  382. package/.next/standalone/.next/server/chunks/{6449.js → 8566.js} +1 -1
  383. package/.next/standalone/.next/server/chunks/920.js +1 -1
  384. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  385. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  386. package/.next/standalone/.next/server/chunks/951.js +88 -1
  387. package/.next/standalone/.next/server/chunks/9670.js +1 -0
  388. package/.next/standalone/.next/server/chunks/9931.js +1 -1
  389. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  390. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  391. package/.next/standalone/.next/server/pages/404.html +2 -2
  392. package/.next/standalone/.next/server/pages/500.html +1 -1
  393. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  394. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  395. package/.next/standalone/.next/static/chunks/{15183-3f43af926186f7ef.js → 10488-d518e8ce8ae45724.js} +6 -6
  396. package/.next/standalone/.next/static/chunks/11595.b2b74d1d1d0ae9d9.js +1 -0
  397. package/.next/standalone/.next/static/chunks/17081-63e2cad8c15da2fb.js +1 -0
  398. package/.next/standalone/.next/static/chunks/2069-68d93343e4ca252e.js +1 -0
  399. package/.next/standalone/.next/static/chunks/27370-f998ed24dd4fa975.js +1 -0
  400. package/.next/standalone/.next/static/chunks/33456.978e5f47d1c8eb93.js +1 -0
  401. package/.next/standalone/.next/static/chunks/46437-88abf056c31c7e4e.js +1 -0
  402. package/.next/standalone/.next/static/chunks/48365-13b8e43016ba16a4.js +1 -0
  403. package/.next/standalone/.next/static/chunks/4860.79d6eefc2861716f.js +1 -0
  404. package/.next/standalone/.next/static/chunks/56863-a2cc92f9ca49f0f8.js +1 -0
  405. package/.next/standalone/.next/static/chunks/69398-c2f73fe154aaee76.js +1 -0
  406. package/.next/standalone/.next/static/chunks/71522-de2b2a9d8e5059e1.js +1 -0
  407. package/.next/standalone/.next/static/chunks/71890-e6c13ce1debd87c2.js +1 -0
  408. package/.next/standalone/.next/static/chunks/71921-f6754331cd35fa5a.js +1 -0
  409. package/.next/standalone/.next/static/chunks/7777-18527b954e3c5557.js +1 -0
  410. package/.next/standalone/.next/static/chunks/79919-d423af700ae83862.js +1 -0
  411. package/.next/standalone/.next/static/chunks/83749-f797272bf30fc2f4.js +10 -0
  412. package/.next/standalone/.next/static/chunks/91796-d235607f577fbaeb.js +1 -0
  413. package/.next/standalone/.next/static/chunks/91907-a4182d1a3c870d0f.js +1 -0
  414. package/.next/standalone/.next/static/chunks/99373.e659954ff5148796.js +1 -0
  415. package/.next/standalone/.next/static/chunks/99540-99af558190f96511.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-adf9dbdf339e9038.js +1 -0
  417. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/{page-82e90e222d6bc547.js → page-cf8ff072a8bc7409.js} +1 -1
  418. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-00d18e26961cee2f.js +1 -0
  419. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-9ed4d7d4f5897de0.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-9d6d86299f2fadd9.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-487d071317ae5e6d.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-b18a2aba2c4f4f1c.js +1 -0
  423. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-f032ee8a80d1f56a.js → page-32149a823e7abf42.js} +1 -1
  424. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-0ac33f9146fc53c5.js +1 -0
  425. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-3a83748ce0ae1c4f.js → page-7cb8a91f6ca34ba8.js} +1 -1
  426. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-8af9bb9f96ab0258.js → page-6466141ca355d9a4.js} +1 -1
  427. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-069c9738e516436b.js → page-793285a6cf214896.js} +1 -1
  428. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-ba19aec7fde5086c.js +1 -0
  429. package/.next/standalone/.next/static/chunks/app/onboarding/page-323e1d93218758c5.js +1 -0
  430. package/.next/standalone/.next/static/chunks/{webpack-de8a36d232a91d6b.js → webpack-ec441a05567c82b0.js} +1 -1
  431. package/.next/standalone/.next/static/css/652fcc1f1ab231c8.css +1 -0
  432. package/.next/standalone/package.json +1 -1
  433. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  434. package/.next/standalone/public/chorus-plugin/agents/code-reviewer.md +63 -6
  435. package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +60 -6
  436. package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +75 -8
  437. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
  438. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +5 -1
  439. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +16 -1
  440. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
  441. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  442. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  443. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +13 -1
  444. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  445. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +1 -1
  446. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +9 -1
  447. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  448. package/.next/standalone/public/chorus-plugin/skills/research/SKILL.md +51 -0
  449. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  450. package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +1 -1
  451. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +5 -1
  452. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +56 -1
  453. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +79 -1
  454. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +56 -1
  455. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.json +1 -0
  456. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +5 -1
  457. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
  458. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
  459. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  460. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +13 -1
  461. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
  462. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
  463. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +9 -1
  464. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
  465. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-research/SKILL.md +51 -0
  466. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
  467. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +1 -1
  468. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +5 -1
  469. package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +16 -1
  470. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
  471. package/.next/standalone/public/kiro-plugin/manifest.txt +1 -0
  472. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +4 -0
  473. package/.next/standalone/public/skill/chorus/SKILL.md +20 -2
  474. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +60 -4
  475. package/.next/standalone/public/skill/idea-chorus/SKILL.md +12 -0
  476. package/.next/standalone/public/skill/package.json +1 -0
  477. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +8 -0
  478. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +58 -5
  479. package/.next/standalone/public/skill/research-chorus/SKILL.md +51 -0
  480. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +72 -6
  481. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +4 -0
  482. package/README.ja.md +5 -11
  483. package/README.ko.md +5 -11
  484. package/README.md +5 -11
  485. package/README.zh.md +5 -11
  486. package/cli/control-handler.mjs +20 -0
  487. package/cli/daemon-rest-client.mjs +7 -4
  488. package/cli/event-router.mjs +65 -3
  489. package/cli/operation-contract.mjs +3 -0
  490. package/cli/operation-prompts.mjs +99 -0
  491. package/cli/operation.mjs +46 -0
  492. package/cli/prompts.mjs +7 -0
  493. package/cli/wake-queue.mjs +5 -1
  494. package/cli/waker.mjs +127 -4
  495. package/package.json +1 -1
  496. package/prisma/migrations/20260927073000_add_daemon_operation_payload/migration.sql +1 -0
  497. package/prisma/schema.prisma +3 -2
  498. package/.next/standalone/.next/server/chunks/1318.js +0 -1
  499. package/.next/standalone/.next/server/chunks/1416.js +0 -88
  500. package/.next/standalone/.next/server/chunks/2195.js +0 -1
  501. package/.next/standalone/.next/server/chunks/2758.js +0 -1
  502. package/.next/standalone/.next/server/chunks/4066.js +0 -1
  503. package/.next/standalone/.next/server/chunks/457.js +0 -1
  504. package/.next/standalone/.next/server/chunks/5300.js +0 -1
  505. package/.next/standalone/.next/server/chunks/7675.js +0 -1
  506. package/.next/standalone/.next/server/chunks/8044.js +0 -1
  507. package/.next/standalone/.next/server/chunks/8454.js +0 -1
  508. package/.next/standalone/.next/static/chunks/11595.f080a1d100972212.js +0 -1
  509. package/.next/standalone/.next/static/chunks/14628-283d3983d1fb36c9.js +0 -1
  510. package/.next/standalone/.next/static/chunks/17099-936da9caf4c119b8.js +0 -1
  511. package/.next/standalone/.next/static/chunks/17562-56f932146e9e6c94.js +0 -10
  512. package/.next/standalone/.next/static/chunks/25080-25ad29e64c855338.js +0 -1
  513. package/.next/standalone/.next/static/chunks/27370-c056dee2016c9124.js +0 -1
  514. package/.next/standalone/.next/static/chunks/28698-7fb271ffc6e63a26.js +0 -1
  515. package/.next/standalone/.next/static/chunks/31308-bb4a97b3f39c22dd.js +0 -1
  516. package/.next/standalone/.next/static/chunks/32736-aeaaa1e4c4d5529b.js +0 -1
  517. package/.next/standalone/.next/static/chunks/33456.20313bd67a5c41cc.js +0 -1
  518. package/.next/standalone/.next/static/chunks/35432-5c245212c7595169.js +0 -1
  519. package/.next/standalone/.next/static/chunks/45024-eb7c062d13d9fe08.js +0 -1
  520. package/.next/standalone/.next/static/chunks/4860.3b555a398cdffb19.js +0 -1
  521. package/.next/standalone/.next/static/chunks/67580-8733964ab2c7fc0e.js +0 -1
  522. package/.next/standalone/.next/static/chunks/75257-99c0ce24b436847b.js +0 -1
  523. package/.next/standalone/.next/static/chunks/7777-8b1b6681256e1534.js +0 -1
  524. package/.next/standalone/.next/static/chunks/78155-db70d9684a1e77a2.js +0 -1
  525. package/.next/standalone/.next/static/chunks/79919-0c6dcda1dd8646f0.js +0 -1
  526. package/.next/standalone/.next/static/chunks/91328-f501e3c3ca519a92.js +0 -1
  527. package/.next/standalone/.next/static/chunks/94643-e54eff17e941a93b.js +0 -1
  528. package/.next/standalone/.next/static/chunks/99373.b8a95d1bec5ad4e7.js +0 -1
  529. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-f3c6431432d42c7c.js +0 -1
  530. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-5d723f974bdad33b.js +0 -1
  531. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-8d3b1f4d8b76d66c.js +0 -1
  532. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-57c698dea2fa6e29.js +0 -1
  533. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-d2bb622855e746f1.js +0 -1
  534. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-fc255dc3612032b9.js +0 -1
  535. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-46a0ddfd0421b0a8.js +0 -1
  536. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-b02939820affdae5.js +0 -1
  537. package/.next/standalone/.next/static/chunks/app/onboarding/page-d2c0c7951114e763.js +0 -1
  538. package/.next/standalone/.next/static/css/44f13b43a3de716d.css +0 -1
  539. /package/.next/standalone/.next/static/{dot63ILT878Tloqi7Czj_ → AWk31w7ryFKaxOnUlIeo2}/_buildManifest.js +0 -0
  540. /package/.next/standalone/.next/static/{dot63ILT878Tloqi7Czj_ → AWk31w7ryFKaxOnUlIeo2}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=2460,exports.ids=[2460],exports.modules={2852:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(10837);c(21968);var e=c(13277),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}},7086:(a,b,c)=>{function d(a,b){return!!a&&!!b&&("user"===a.type?"user"===b.type&&a.uuid===b.uuid:"agent"===a.type?"agent"===b.type&&a.uuid===b.uuid:"agent_instance"===a.type&&"agent"===b.type&&!!a.agentUuid&&a.agentUuid===b.uuid)}function e(a){return!!a&&("agent"===a.type||"agent_instance"===a.type)}c.d(b,{RU:()=>d,bB:()=>e})},10297:(a,b,c)=>{c.d(b,{G7:()=>i,L$:()=>l,h_:()=>m,oI:()=>j,uB:()=>h,xL:()=>k});var d=c(10837);c(21968);var e=c(28918),f=c(75888),g=c(96307);function h({className:a,...b}){return(0,d.jsx)(e.uB,{"data-slot":"command",className:(0,g.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...b})}function i({className:a,...b}){return(0,d.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,d.jsx)(f.A,{className:"size-4 shrink-0 opacity-50"}),(0,d.jsx)(e.uB.Input,{"data-slot":"command-input",className:(0,g.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...b})]})}function j({className:a,...b}){return(0,d.jsx)(e.uB.List,{"data-slot":"command-list",className:(0,g.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",a),...b})}function k({...a}){return(0,d.jsx)(e.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...a})}function l({className:a,...b}){return(0,d.jsx)(e.uB.Group,{"data-slot":"command-group",className:(0,g.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...b})}function m({className:a,...b}){return(0,d.jsx)(e.uB.Item,{"data-slot":"command-item",className:(0,g.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...b})}},21160:(a,b,c)=>{c.d(b,{ReferencesSection:()=>C});var d=c(10837),e=c(21968),f=c(68884),g=c(9222),h=c(59876),i=c(35312),j=c(87461),k=c(86460),l=c(79543),m=c(92900),n=c(49599),o=c(42424),p=c(9994),q=c(2852),r=c(20170),s=c(11568),t=c(55732),u=c(6019),v=c(47942),w=c(42377);let x=(0,w.createServerReference)("408f49d7b75bc6d695feed5481c80c285436eb157b",w.callServer,void 0,w.findSourceMapURL,"updateReferenceAction"),y=(0,w.createServerReference)("406d48d483b2d2eaaa1ce39bd2e153cd6beec4adbb",w.callServer,void 0,w.findSourceMapURL,"createReferenceAction"),z=(0,w.createServerReference)("40a0ad4d6ac02ff7c915fb2e162d50c1480a5a3e5f",w.callServer,void 0,w.findSourceMapURL,"deleteReferenceAction");var A=c(46398),B=c(61206);function C({targetType:a,targetUuid:b,canWrite:c,initialReferences:w,compact:C=!1}){let D=(0,g.c)(),E=(0,f.r)(),[F,G]=(0,e.useState)(w??[]),[H,I]=(0,e.useState)(void 0!==w),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(null),[N,O]=(0,e.useState)("docs"),[P,Q]=(0,e.useState)(""),[R,S]=(0,e.useState)(""),[T,U]=(0,e.useState)(""),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(!1),[Z,$]=(0,e.useState)(null),_=(0,e.useCallback)(async()=>{let c=await (0,v.j)(a,b);c.success&&G(c.references),I(!0)},[a,b]),aa=async()=>{if(!P.trim())return void W(D("references.urlRequired"));if(!R.trim())return void W(D("references.titleRequired"));Y(!0),W(null);let c=T.trim()?T.trim():null,d=L?await x({uuid:L.uuid,type:N,url:P.trim(),title:R.trim(),notes:c}):await y({targetType:a,targetUuid:b,type:N,url:P.trim(),title:R.trim(),notes:c});Y(!1),d.success?(K(!1),await _(),E.refresh()):W(d.error||(L?D("references.updateFailed"):D("references.addFailed")))},ab=async a=>{$(a);let b=await z(a);$(null),b.success&&(await _(),E.refresh())};return(0,d.jsxs)("div",{className:C?"space-y-2":"space-y-2.5",children:[0===F.length?(0,d.jsx)("p",{className:"text-sm italic text-muted-foreground",children:H?D("references.empty"):D("references.loading")}):(0,d.jsx)("div",{className:"space-y-2",children:F.map(a=>{let b=(0,A.N2)(a.type)?A.qQ[a.type]:null,e=b?.icon??h.A;return(0,d.jsx)("div",{className:"group rounded-lg border border-border bg-background p-3",children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"mb-1 flex items-center gap-2",children:(0,d.jsxs)(n.E,{className:`gap-1 border-0 text-[10px] font-medium ${b?.badgeClass??"bg-secondary text-muted-foreground"}`,children:[(0,d.jsx)(e,{className:"h-3 w-3"}),b?D(b.labelKey):a.type]})}),(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",title:a.title,className:"flex min-w-0 items-center gap-1 text-sm font-medium text-primary hover:underline",children:[(0,d.jsx)("span",{className:"truncate",children:a.title}),(0,d.jsx)(i.A,{className:"h-3 w-3 shrink-0"})]}),(0,d.jsx)(B.L,{notes:a.notes})]}),c&&(0,d.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,d.jsx)(o.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>{M(a),O(a.type),Q(a.url),S(a.title),U(a.notes??""),W(null),K(!0)},"aria-label":D("references.editReference"),children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,d.jsxs)(u.Lt,{children:[(0,d.jsx)(u.tv,{asChild:!0,children:(0,d.jsx)(o.$,{variant:"ghost",size:"icon",className:"h-7 w-7","aria-label":D("references.deleteReference"),children:Z===a.uuid?(0,d.jsx)(k.A,{className:"h-3.5 w-3.5 animate-spin text-muted-foreground"}):(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 text-destructive"})})}),(0,d.jsxs)(u.EO,{children:[(0,d.jsxs)(u.wd,{children:[(0,d.jsx)(u.r7,{children:D("references.deleteReference")}),(0,d.jsx)(u.$v,{children:D("references.deleteConfirm",{title:a.title})})]}),(0,d.jsxs)(u.ck,{children:[(0,d.jsx)(u.Zr,{children:D("common.cancel")}),(0,d.jsx)(u.Rx,{variant:"destructive",onClick:()=>ab(a.uuid),children:D("common.delete")})]})]})]})]})]})},a.uuid)})}),c&&(0,d.jsxs)(o.$,{variant:"outline",size:"sm",className:"h-8 w-full gap-1.5 border-border border-dashed text-xs text-muted-foreground",onClick:()=>{M(null),O("docs"),Q(""),S(""),U(""),W(null),K(!0)},children:[(0,d.jsx)(m.A,{className:"h-3.5 w-3.5"}),D("references.addReference")]}),(0,d.jsx)(s.lG,{open:J,onOpenChange:K,children:(0,d.jsxs)(s.Cf,{className:"sm:max-w-[480px]",children:[(0,d.jsx)(s.c7,{children:(0,d.jsx)(s.L3,{children:L?D("references.editReference"):D("references.addReference")})}),(0,d.jsxs)("div",{className:"space-y-4 py-2",children:[V&&(0,d.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:V}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"ref-type",className:"text-[13px] font-medium text-foreground",children:D("references.typeLabel")}),(0,d.jsxs)(t.l6,{value:N,onValueChange:O,children:[(0,d.jsx)(t.bq,{id:"ref-type",className:"border-border focus:ring-primary",children:(0,d.jsx)(t.yv,{})}),(0,d.jsx)(t.gC,{children:A.mP.map(a=>(0,d.jsx)(t.eb,{value:a,children:D(A.qQ[a].labelKey)},a))})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)(q.J,{htmlFor:"ref-url",className:"text-[13px] font-medium text-foreground",children:[D("references.urlLabel")," *"]}),(0,d.jsx)(p.p,{id:"ref-url",value:P,onChange:a=>Q(a.target.value),placeholder:D("references.urlPlaceholder"),className:"border-border focus-visible:ring-primary",autoFocus:!0})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)(q.J,{htmlFor:"ref-title",className:"text-[13px] font-medium text-foreground",children:[D("references.titleLabel")," *"]}),(0,d.jsx)(p.p,{id:"ref-title",value:R,onChange:a=>S(a.target.value),placeholder:D("references.titlePlaceholder"),className:"border-border focus-visible:ring-primary"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"ref-notes",className:"text-[13px] font-medium text-foreground",children:D("references.notesLabel")}),(0,d.jsx)(r.T,{id:"ref-notes",value:T,onChange:a=>U(a.target.value),placeholder:D("references.notesPlaceholder"),rows:3,className:"resize-none border-border focus-visible:ring-primary"})]})]}),(0,d.jsxs)(s.Es,{children:[(0,d.jsx)(o.$,{variant:"outline",onClick:()=>K(!1),disabled:X,className:"border-border",children:D("common.cancel")}),(0,d.jsx)(o.$,{onClick:aa,disabled:X||!P.trim()||!R.trim(),className:"bg-primary hover:bg-primary/90 text-primary-foreground",children:X?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(k.A,{className:"mr-2 h-4 w-4 animate-spin"}),D("common.saving")]}):L?D("common.save"):D("references.add")})]})]})})]})}},26078:(a,b,c)=>{c.d(b,{RU:()=>h,s8:()=>g});let d={developer_agent:["idea:read","proposal:read","document:read","project:read","task:read","task:write"],pm_agent:["idea:read","idea:write","proposal:read","proposal:write","document:read","document:write","task:read","task:write","project:read","project:write"],admin_agent:["idea:read","idea:write","idea:admin","proposal:read","proposal:write","proposal:admin","document:read","document:write","document:admin","task:read","task:write","task:admin","project:read","project:write","project:admin"]},e=["read","write","admin"],f=new Set(["idea","proposal","document","task","project"].flatMap(a=>e.map(b=>`${a}:${b}`)));function g(a){return f.has(a)}function h(a,b){let c=new Set;if(a)for(let b of a){let a=d[b.endsWith("_agent")?b:`${b}_agent`];if(a)for(let b of a)c.add(b)}if(b)for(let a of b)g(a)&&c.add(a);return c}},28774:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A8:()=>q,CG:()=>o,Iq:()=>n,RB:()=>l,Sn:()=>i,d5:()=>m,ic:()=>p,tN:()=>k,x4:()=>j});var e=c(71255),f=c(77219),g=c(26078),h=a([e,f]);async function i({companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,permissions:h}){return e.z.agent.create({data:{companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,...void 0!==h&&{permissions:h}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,createdAt:!0}})}async function j(a,b,c){if(c&&!await e.z.agent.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0}}))throw Error("Agent not found");return e.z.agent.update({where:{uuid:a},data:b,select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,lastActiveAt:!0,createdAt:!0}})}async function k(a,b){return e.z.apiKey.updateMany({where:{agentUuid:a,revokedAt:null},data:{name:b}})}async function l(a){return e.z.agent.delete({where:{uuid:a}})}async function m(a,b,c,d){let f={companyUuid:a,revokedAt:null,...d&&{agent:{ownerUuid:d}}},[g,h]=await Promise.all([e.z.apiKey.findMany({where:f,skip:b,take:c,orderBy:{createdAt:"desc"},include:{agent:{select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0}}}}),e.z.apiKey.count({where:f})]);return{apiKeys:g,total:h}}async function n({companyUuid:a,agentUuid:b,name:c,expiresAt:d}){let{key:g,hash:h,prefix:i}=(0,f.XH)();return{...await e.z.apiKey.create({data:{companyUuid:a,agentUuid:b,keyHash:h,keyPrefix:i,name:c,expiresAt:d},select:{uuid:!0,keyPrefix:!0,name:!0,expiresAt:!0,createdAt:!0}}),key:g}}async function o(a,b,c){return e.z.apiKey.findFirst({where:{uuid:b,companyUuid:a,...c&&{agent:{ownerUuid:c}}},select:{uuid:!0,agentUuid:!0,revokedAt:!0}})}async function p(a,b,c){return(await e.z.agent.findMany({where:{companyUuid:a,...c&&{ownerUuid:c}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,ownerUuid:!0},orderBy:{name:"asc"}})).filter(a=>(0,g.RU)(a.roles,a.permissions).has(b)).map(({uuid:a,name:b,roles:c,ownerUuid:d})=>({uuid:a,name:b,roles:c,ownerUuid:d}))}async function q(a){return e.z.user.findMany({where:{companyUuid:a},select:{uuid:!0,name:!0,email:!0},orderBy:{name:"asc"}})}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},30387:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Sy:()=>u,Xo:()=>o,Xp:()=>q,bA:()=>r,kA:()=>p});var e=c(71255),f=c(92633),g=c(62729),h=c(67738),i=c(97307),j=a([e,f,h]);[e,f,h]=j.then?(await j)():j;let s=i.default.child({module:"reference-artifact.service"}),t=["docs","repo","issue_pr","paper_blog"],u=["proposal","task","idea"],v={uuid:!0,targetType:!0,targetUuid:!0,type:!0,url:!0,title:!0,notes:!0,createdByType:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0};async function k(a){let b=await (0,f.LS)(a.createdByUuid,"user"===a.createdByType||"agent"===a.createdByType?a.createdByType:void 0);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,type:a.type,url:a.url,title:a.title,notes:a.notes??null,createdBy:b,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}function l(a){if(!t.includes(a))throw Error(`Invalid reference type: ${a}`)}function m(a){let b="string"==typeof a?a.trim():"";if(!b||!/^https?:\/\//i.test(b))throw Error(`Invalid reference url: ${a}`)}async function n(a,b,c){switch(b){case"proposal":{let b=await e.z.proposal.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target proposal with UUID ${c} not found`);return b.projectUuid}case"task":{let b=await e.z.task.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target task with UUID ${c} not found`);return b.projectUuid}case"idea":{let b=await e.z.idea.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target idea with UUID ${c} not found`);return b.projectUuid}default:throw Error(`Unsupported reference targetType: ${b}`)}}async function o({companyUuid:a,targetType:b,targetUuid:c}){let d=await e.z.referenceArtifact.findMany({where:{companyUuid:a,targetType:b,targetUuid:c},orderBy:{createdAt:"asc"},select:v});return Promise.all(d.map(a=>k(a)))}async function p(a){let{companyUuid:b,targetType:c,targetUuid:d,type:f,url:i,title:j,notes:o}=a;l(f),m(i);let p=await n(b,c,d),q=await e.z.referenceArtifact.create({data:{companyUuid:b,targetType:c,targetUuid:d,type:f,url:i,title:j,notes:o??null,createdByType:a.createdByType,createdByUuid:a.createdByUuid},select:v});try{g.B.emitChange({companyUuid:b,projectUuid:p,entityType:c,entityUuid:d,action:"updated",actorUuid:a.createdByUuid})}catch(a){s.warn({err:a,referenceUuid:q.uuid,targetType:c,targetUuid:d},"Failed to emit change event for reference artifact")}try{await h.createActivity({companyUuid:b,projectUuid:p,targetType:c,targetUuid:d,actorType:a.createdByType,actorUuid:a.createdByUuid,action:"reference_added",value:{referenceUuid:q.uuid,type:q.type,url:q.url,title:q.title}})}catch(a){s.warn({err:a,referenceUuid:q.uuid,targetType:c,targetUuid:d},"Failed to record reference_added Activity")}return k(q)}async function q(a,b,{type:c,url:d,title:f,notes:g}){if(void 0!==c&&l(c),void 0!==d&&m(d),!await e.z.referenceArtifact.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}}))throw Error(`Reference with UUID ${b} not found`);let h={};void 0!==c&&(h.type=c),void 0!==d&&(h.url=d),void 0!==f&&(h.title=f),void 0!==g&&(h.notes=g);let i=await e.z.referenceArtifact.update({where:{uuid:b},data:h,select:v});return k(i)}async function r(a,b){if(!await e.z.referenceArtifact.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}}))throw Error(`Reference with UUID ${b} not found`);await e.z.referenceArtifact.delete({where:{uuid:b}})}d()}catch(a){d(a)}})},46398:(a,b,c)=>{c.d(b,{N2:()=>j,mP:()=>h,qQ:()=>i});var d=c(84797),e=c(97731),f=c(40260),g=c(96101);let h=["docs","repo","issue_pr","paper_blog"],i={docs:{labelKey:"references.typeDocs",badgeClass:"bg-blue-50 text-blue-700 dark:bg-[#13253a] dark:text-[#5AA9F0]",icon:d.A},repo:{labelKey:"references.typeRepo",badgeClass:"bg-green-50 text-green-700 dark:bg-[#14281a] dark:text-[#6FD19A]",icon:e.A},issue_pr:{labelKey:"references.typeIssuePr",badgeClass:"bg-purple-50 text-purple-700 dark:bg-[#281630] dark:text-[#C98FE0]",icon:f.A},paper_blog:{labelKey:"references.typePaperBlog",badgeClass:"bg-amber-50 text-amber-700 dark:bg-[#332a12] dark:text-[#E0B44E]",icon:g.A}};function j(a){return h.includes(a)}},47942:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(42377);let e=(0,d.createServerReference)("60769de53c8f3bc1d6c176d061de65bd81a177ea99",d.callServer,void 0,d.findSourceMapURL,"listReferencesAction")},52178:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Y9:()=>l,bv:()=>n,jD:()=>k,t1:()=>m});var e=c(2613);c(50785);var f=c(9259),g=c(30387),h=c(97307),i=c(12217),j=a([f,g]);[f,g]=j.then?(await j)():j;let o=g.Sy;async function k(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"unauthorized"};if(!o.includes(a))return{success:!1,error:`Invalid target type: ${a}`};try{let d=await (0,g.Xo)({companyUuid:c.companyUuid,targetType:a,targetUuid:b});return{success:!0,references:d}}catch(c){return h.default.error({err:c,targetType:a,targetUuid:b},"Failed to list references"),{success:!1,error:"Failed to load references"}}}async function l(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};if(!o.includes(a.targetType))return{success:!1,error:`Invalid target type: ${a.targetType}`};try{let c=await (0,g.kA)({companyUuid:b.companyUuid,targetType:a.targetType,targetUuid:a.targetUuid,type:a.type,url:a.url,title:a.title,notes:a.notes??null,createdByType:"user",createdByUuid:b.actorUuid});return{success:!0,reference:c}}catch(b){h.default.error({err:b},"Failed to create reference");let a=b instanceof Error?b.message:"Failed to add reference";return{success:!1,error:a}}}async function m(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};try{let c=await (0,g.Xp)(b.companyUuid,a.uuid,{...void 0!==a.type?{type:a.type}:{},...void 0!==a.url?{url:a.url}:{},...void 0!==a.title?{title:a.title}:{},...void 0!==a.notes?{notes:a.notes}:{}});return{success:!0,reference:c}}catch(c){h.default.error({err:c,uuid:a.uuid},"Failed to update reference");let b=c instanceof Error?c.message:"Failed to update reference";return{success:!1,error:b}}}async function n(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};try{return await (0,g.bA)(b.companyUuid,a),{success:!0}}catch(c){h.default.error({err:c,uuid:a},"Failed to delete reference");let b=c instanceof Error?c.message:"Failed to delete reference";return{success:!1,error:b}}}(0,i.D)([k,l,m,n]),(0,e.A)(k,"60769de53c8f3bc1d6c176d061de65bd81a177ea99",null),(0,e.A)(l,"406d48d483b2d2eaaa1ce39bd2e153cd6beec4adbb",null),(0,e.A)(m,"408f49d7b75bc6d695feed5481c80c285436eb157b",null),(0,e.A)(n,"40a0ad4d6ac02ff7c915fb2e162d50c1480a5a3e5f",null),d()}catch(a){d(a)}})},61206:(a,b,c)=>{c.d(b,{L:()=>h});var d=c(10837),e=c(21968),f=c(9222),g=c(99127);function h({notes:a}){let b=(0,f.c)(),[c,h]=(0,e.useState)(!1),i=a?.trim();if(!i)return null;let j=(0,d.jsx)("button",{type:"button",onClick:()=>h(a=>!a),"aria-expanded":c,"aria-label":b("references.toggleNotes"),className:`mt-1 w-full cursor-pointer text-left text-xs leading-relaxed text-muted-foreground ${c?"block":"line-clamp-2"}`,children:i});return c?j:(0,d.jsx)(g.Bc,{delayDuration:200,children:(0,d.jsxs)(g.m_,{children:[(0,d.jsx)(g.k$,{asChild:!0,children:j}),(0,d.jsx)(g.ZI,{className:"max-w-xs whitespace-pre-wrap break-words",children:i})]})})}},73908:(a,b,c)=>{c.d(b,{C:()=>k,K:()=>m});var d=c(10837),e=c(9222),f=c(79543),g=c(92900),h=c(42424),i=c(9994),j=c(88536);function k({items:a,onChange:b,disabled:c}){let k=(0,e.c)(),l=(c,d)=>{let e=a.slice();e[c]={...e[c],...d},b(e)};return(0,d.jsxs)("div",{className:"space-y-3",children:[a.length>0&&(0,d.jsx)("div",{className:"space-y-2",children:a.map((e,g)=>(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-[#E5E2DC] dark:border-[#2a2a2e] bg-background p-2.5",children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:(0,d.jsx)(i.p,{value:e.description,onChange:a=>l(g,{description:a.target.value}),placeholder:k("acceptanceCriteria.criterionPlaceholder"),className:"border-[#E5E2DC] dark:border-[#2a2a2e] text-sm focus-visible:ring-primary h-8",disabled:c})}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0 pt-1",children:[(0,d.jsx)(j.d,{checked:e.required,onCheckedChange:a=>l(g,{required:a}),className:"data-[state=checked]:bg-primary",disabled:c}),(0,d.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground min-w-[52px]",children:e.required?k("acceptanceCriteria.required"):k("acceptanceCriteria.optional")}),(0,d.jsx)(h.$,{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:()=>{b(a.filter((a,b)=>b!==g))},disabled:c,type:"button",children:(0,d.jsx)(f.A,{className:"h-3 w-3"})})]})]},g))}),(0,d.jsxs)(h.$,{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:()=>{b([...a,{description:"",required:!0}])},disabled:c,type:"button",children:[(0,d.jsx)(g.A,{className:"h-3 w-3"}),k("acceptanceCriteria.addCriterion")]})]})}function l(a){return{description:a.description.trim(),required:!!a.required}}function m(a,b){if(a.length!==b.length)return!0;for(let c=0;c<a.length;c++){let d=l(a[c]),e=l(b[c]);if(d.description!==e.description||d.required!==e.required)return!0}return!1}},74798:(a,b,c)=>{c.d(b,{W:()=>e});var d=c(21968);function e(){let[a,b]=(0,d.useState)(!1);return a}},77219:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{XH:()=>h});var e=c(55511),f=c(71255);c(97307);var g=a([f]);f=(g.then?(await g)():g)[0];let i="cho_";function h(){var a;let b=(0,e.randomBytes)(32).toString("base64url"),c=`${i}${b}`,d=(a=c,(0,e.createHash)("sha256").update(a).digest("hex")),f=`${i}${b.slice(0,4)}...${b.slice(-4)}`;return{key:c,hash:d,prefix:f}}d()}catch(a){d(a)}})},88536:(a,b,c)=>{c.d(b,{d:()=>g});var d=c(10837);c(21968);var e=c(15644),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"switch",className:(0,f.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",a),...b,children:(0,d.jsx)(e.Thumb,{"data-slot":"switch-thumb",className:(0,f.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")})})}},94214:(a,b,c)=>{c.d(b,{AI:()=>h,_8:()=>g});var d=c(10837);c(21968);var e=c(11568),f=c(96307);function g({open:a,onOpenChange:b,header:c,footer:g,children:h,className:i,bodyClassName:j,zIndexClassName:k="z-[110]",showCloseButton:l=!0}){return(0,d.jsx)(e.lG,{open:a,onOpenChange:b,children:(0,d.jsxs)(e.Cf,{className:(0,f.cn)("flex max-h-[85svh] flex-col gap-0 overflow-hidden p-0",k,i),overlayClassName:k,showCloseButton:l,children:[(0,d.jsx)(e.c7,{className:"shrink-0 border-b border-border px-6 py-5 text-left",children:c}),(0,d.jsx)("div",{className:(0,f.cn)("min-h-0 flex-1 overflow-y-auto px-6 py-4",j),children:h}),(0,d.jsx)(e.Es,{className:"shrink-0 border-t border-border px-6 py-5",children:g})]})})}let h=e.L3},99127:(a,b,c)=>{c.d(b,{Bc:()=>g,ZI:()=>j,k$:()=>i,m_:()=>h});var d=c(10837);c(21968);var e=c(80501),f=c(96307);function g({delayDuration:a=0,...b}){return(0,d.jsx)(e.Provider,{"data-slot":"tooltip-provider",delayDuration:a,...b})}function h({...a}){return(0,d.jsx)(e.Root,{"data-slot":"tooltip",...a})}function i({...a}){return(0,d.jsx)(e.Trigger,{"data-slot":"tooltip-trigger",...a})}function j({className:a,sideOffset:b=0,children:c,...g}){return(0,d.jsx)(e.Portal,{children:(0,d.jsxs)(e.Content,{"data-slot":"tooltip-content",sideOffset:b,className:(0,f.cn)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",a),...g,children:[c,(0,d.jsx)(e.Arrow,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}}};
1
+ "use strict";exports.id=3420,exports.ids=[3420],exports.modules={2852:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(10837);c(21968);var e=c(13277),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}},7086:(a,b,c)=>{function d(a,b){return!!a&&!!b&&("user"===a.type?"user"===b.type&&a.uuid===b.uuid:"agent"===a.type?"agent"===b.type&&a.uuid===b.uuid:"agent_instance"===a.type&&"agent"===b.type&&!!a.agentUuid&&a.agentUuid===b.uuid)}function e(a){return!!a&&("agent"===a.type||"agent_instance"===a.type)}c.d(b,{RU:()=>d,bB:()=>e})},10297:(a,b,c)=>{c.d(b,{G7:()=>i,L$:()=>l,h_:()=>m,oI:()=>j,uB:()=>h,xL:()=>k});var d=c(10837);c(21968);var e=c(28918),f=c(75888),g=c(96307);function h({className:a,...b}){return(0,d.jsx)(e.uB,{"data-slot":"command",className:(0,g.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...b})}function i({className:a,...b}){return(0,d.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,d.jsx)(f.A,{className:"size-4 shrink-0 opacity-50"}),(0,d.jsx)(e.uB.Input,{"data-slot":"command-input",className:(0,g.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...b})]})}function j({className:a,...b}){return(0,d.jsx)(e.uB.List,{"data-slot":"command-list",className:(0,g.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",a),...b})}function k({...a}){return(0,d.jsx)(e.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...a})}function l({className:a,...b}){return(0,d.jsx)(e.uB.Group,{"data-slot":"command-group",className:(0,g.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...b})}function m({className:a,...b}){return(0,d.jsx)(e.uB.Item,{"data-slot":"command-item",className:(0,g.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...b})}},19672:(a,b,c)=>{c.d(b,{ReferencesSection:()=>C});var d=c(10837),e=c(21968),f=c(68884),g=c(9222),h=c(59876),i=c(35312),j=c(87461),k=c(86460),l=c(79543),m=c(92900),n=c(49599),o=c(42424),p=c(9994),q=c(2852),r=c(20170),s=c(11568),t=c(55732),u=c(6019),v=c(86486),w=c(42377);let x=(0,w.createServerReference)("4049fac02f2ddffe55ece21a3122919d8b5853fa85",w.callServer,void 0,w.findSourceMapURL,"updateReferenceAction"),y=(0,w.createServerReference)("4003d6e1e70e2ebe308708ed0fb052ef68022e8978",w.callServer,void 0,w.findSourceMapURL,"createReferenceAction"),z=(0,w.createServerReference)("40bfc1699bee723af3cda4549c5e8ac758d0f4c6fd",w.callServer,void 0,w.findSourceMapURL,"deleteReferenceAction");var A=c(46398),B=c(61206);function C({targetType:a,targetUuid:b,canWrite:c,initialReferences:w,compact:C=!1}){let D=(0,g.c)(),E=(0,f.r)(),[F,G]=(0,e.useState)(w??[]),[H,I]=(0,e.useState)(void 0!==w),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(null),[N,O]=(0,e.useState)("docs"),[P,Q]=(0,e.useState)(""),[R,S]=(0,e.useState)(""),[T,U]=(0,e.useState)(""),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(!1),[Z,$]=(0,e.useState)(null),_=(0,e.useCallback)(async()=>{let c=await (0,v.j)(a,b);c.success&&G(c.references),I(!0)},[a,b]),aa=async()=>{if(!P.trim())return void W(D("references.urlRequired"));if(!R.trim())return void W(D("references.titleRequired"));Y(!0),W(null);let c=T.trim()?T.trim():null,d=L?await x({uuid:L.uuid,type:N,url:P.trim(),title:R.trim(),notes:c}):await y({targetType:a,targetUuid:b,type:N,url:P.trim(),title:R.trim(),notes:c});Y(!1),d.success?(K(!1),await _(),E.refresh()):W(d.error||(L?D("references.updateFailed"):D("references.addFailed")))},ab=async a=>{$(a);let b=await z(a);$(null),b.success&&(await _(),E.refresh())};return(0,d.jsxs)("div",{className:C?"space-y-2":"space-y-2.5",children:[0===F.length?(0,d.jsx)("p",{className:"text-sm italic text-muted-foreground",children:H?D("references.empty"):D("references.loading")}):(0,d.jsx)("div",{className:"space-y-2",children:F.map(a=>{let b=(0,A.N2)(a.type)?A.qQ[a.type]:null,e=b?.icon??h.A;return(0,d.jsx)("div",{className:"group rounded-lg border border-border bg-background p-3",children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"mb-1 flex items-center gap-2",children:(0,d.jsxs)(n.E,{className:`gap-1 border-0 text-[10px] font-medium ${b?.badgeClass??"bg-secondary text-muted-foreground"}`,children:[(0,d.jsx)(e,{className:"h-3 w-3"}),b?D(b.labelKey):a.type]})}),(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",title:a.title,className:"flex min-w-0 items-center gap-1 text-sm font-medium text-primary hover:underline",children:[(0,d.jsx)("span",{className:"truncate",children:a.title}),(0,d.jsx)(i.A,{className:"h-3 w-3 shrink-0"})]}),(0,d.jsx)(B.L,{notes:a.notes})]}),c&&(0,d.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,d.jsx)(o.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>{M(a),O(a.type),Q(a.url),S(a.title),U(a.notes??""),W(null),K(!0)},"aria-label":D("references.editReference"),children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,d.jsxs)(u.Lt,{children:[(0,d.jsx)(u.tv,{asChild:!0,children:(0,d.jsx)(o.$,{variant:"ghost",size:"icon",className:"h-7 w-7","aria-label":D("references.deleteReference"),children:Z===a.uuid?(0,d.jsx)(k.A,{className:"h-3.5 w-3.5 animate-spin text-muted-foreground"}):(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 text-destructive"})})}),(0,d.jsxs)(u.EO,{children:[(0,d.jsxs)(u.wd,{children:[(0,d.jsx)(u.r7,{children:D("references.deleteReference")}),(0,d.jsx)(u.$v,{children:D("references.deleteConfirm",{title:a.title})})]}),(0,d.jsxs)(u.ck,{children:[(0,d.jsx)(u.Zr,{children:D("common.cancel")}),(0,d.jsx)(u.Rx,{variant:"destructive",onClick:()=>ab(a.uuid),children:D("common.delete")})]})]})]})]})]})},a.uuid)})}),c&&(0,d.jsxs)(o.$,{variant:"outline",size:"sm",className:"h-8 w-full gap-1.5 border-border border-dashed text-xs text-muted-foreground",onClick:()=>{M(null),O("docs"),Q(""),S(""),U(""),W(null),K(!0)},children:[(0,d.jsx)(m.A,{className:"h-3.5 w-3.5"}),D("references.addReference")]}),(0,d.jsx)(s.lG,{open:J,onOpenChange:K,children:(0,d.jsxs)(s.Cf,{className:"sm:max-w-[480px]",children:[(0,d.jsx)(s.c7,{children:(0,d.jsx)(s.L3,{children:L?D("references.editReference"):D("references.addReference")})}),(0,d.jsxs)("div",{className:"space-y-4 py-2",children:[V&&(0,d.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:V}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"ref-type",className:"text-[13px] font-medium text-foreground",children:D("references.typeLabel")}),(0,d.jsxs)(t.l6,{value:N,onValueChange:O,children:[(0,d.jsx)(t.bq,{id:"ref-type",className:"border-border focus:ring-primary",children:(0,d.jsx)(t.yv,{})}),(0,d.jsx)(t.gC,{children:A.mP.map(a=>(0,d.jsx)(t.eb,{value:a,children:D(A.qQ[a].labelKey)},a))})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)(q.J,{htmlFor:"ref-url",className:"text-[13px] font-medium text-foreground",children:[D("references.urlLabel")," *"]}),(0,d.jsx)(p.p,{id:"ref-url",value:P,onChange:a=>Q(a.target.value),placeholder:D("references.urlPlaceholder"),className:"border-border focus-visible:ring-primary",autoFocus:!0})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)(q.J,{htmlFor:"ref-title",className:"text-[13px] font-medium text-foreground",children:[D("references.titleLabel")," *"]}),(0,d.jsx)(p.p,{id:"ref-title",value:R,onChange:a=>S(a.target.value),placeholder:D("references.titlePlaceholder"),className:"border-border focus-visible:ring-primary"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(q.J,{htmlFor:"ref-notes",className:"text-[13px] font-medium text-foreground",children:D("references.notesLabel")}),(0,d.jsx)(r.T,{id:"ref-notes",value:T,onChange:a=>U(a.target.value),placeholder:D("references.notesPlaceholder"),rows:3,className:"resize-none border-border focus-visible:ring-primary"})]})]}),(0,d.jsxs)(s.Es,{children:[(0,d.jsx)(o.$,{variant:"outline",onClick:()=>K(!1),disabled:X,className:"border-border",children:D("common.cancel")}),(0,d.jsx)(o.$,{onClick:aa,disabled:X||!P.trim()||!R.trim(),className:"bg-primary hover:bg-primary/90 text-primary-foreground",children:X?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(k.A,{className:"mr-2 h-4 w-4 animate-spin"}),D("common.saving")]}):L?D("common.save"):D("references.add")})]})]})})]})}},26078:(a,b,c)=>{c.d(b,{RU:()=>h,s8:()=>g});let d={developer_agent:["idea:read","proposal:read","document:read","project:read","task:read","task:write"],pm_agent:["idea:read","idea:write","proposal:read","proposal:write","document:read","document:write","task:read","task:write","project:read","project:write"],admin_agent:["idea:read","idea:write","idea:admin","proposal:read","proposal:write","proposal:admin","document:read","document:write","document:admin","task:read","task:write","task:admin","project:read","project:write","project:admin"]},e=["read","write","admin"],f=new Set(["idea","proposal","document","task","project"].flatMap(a=>e.map(b=>`${a}:${b}`)));function g(a){return f.has(a)}function h(a,b){let c=new Set;if(a)for(let b of a){let a=d[b.endsWith("_agent")?b:`${b}_agent`];if(a)for(let b of a)c.add(b)}if(b)for(let a of b)g(a)&&c.add(a);return c}},28774:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A8:()=>q,CG:()=>o,Iq:()=>n,RB:()=>l,Sn:()=>i,d5:()=>m,ic:()=>p,tN:()=>k,x4:()=>j});var e=c(71255),f=c(77219),g=c(26078),h=a([e,f]);async function i({companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,permissions:h}){return e.z.agent.create({data:{companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,...void 0!==h&&{permissions:h}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,createdAt:!0}})}async function j(a,b,c){if(c&&!await e.z.agent.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0}}))throw Error("Agent not found");return e.z.agent.update({where:{uuid:a},data:b,select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,lastActiveAt:!0,createdAt:!0}})}async function k(a,b){return e.z.apiKey.updateMany({where:{agentUuid:a,revokedAt:null},data:{name:b}})}async function l(a){return e.z.agent.delete({where:{uuid:a}})}async function m(a,b,c,d){let f={companyUuid:a,revokedAt:null,...d&&{agent:{ownerUuid:d}}},[g,h]=await Promise.all([e.z.apiKey.findMany({where:f,skip:b,take:c,orderBy:{createdAt:"desc"},include:{agent:{select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0}}}}),e.z.apiKey.count({where:f})]);return{apiKeys:g,total:h}}async function n({companyUuid:a,agentUuid:b,name:c,expiresAt:d}){let{key:g,hash:h,prefix:i}=(0,f.XH)();return{...await e.z.apiKey.create({data:{companyUuid:a,agentUuid:b,keyHash:h,keyPrefix:i,name:c,expiresAt:d},select:{uuid:!0,keyPrefix:!0,name:!0,expiresAt:!0,createdAt:!0}}),key:g}}async function o(a,b,c){return e.z.apiKey.findFirst({where:{uuid:b,companyUuid:a,...c&&{agent:{ownerUuid:c}}},select:{uuid:!0,agentUuid:!0,revokedAt:!0}})}async function p(a,b,c){return(await e.z.agent.findMany({where:{companyUuid:a,...c&&{ownerUuid:c}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,ownerUuid:!0},orderBy:{name:"asc"}})).filter(a=>(0,g.RU)(a.roles,a.permissions).has(b)).map(({uuid:a,name:b,roles:c,ownerUuid:d})=>({uuid:a,name:b,roles:c,ownerUuid:d}))}async function q(a){return e.z.user.findMany({where:{companyUuid:a},select:{uuid:!0,name:!0,email:!0},orderBy:{name:"asc"}})}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},30387:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Sy:()=>u,Xo:()=>o,Xp:()=>q,bA:()=>r,kA:()=>p});var e=c(71255),f=c(92633),g=c(62729),h=c(67738),i=c(97307),j=a([e,f,h]);[e,f,h]=j.then?(await j)():j;let s=i.default.child({module:"reference-artifact.service"}),t=["docs","repo","issue_pr","paper_blog"],u=["proposal","task","idea"],v={uuid:!0,targetType:!0,targetUuid:!0,type:!0,url:!0,title:!0,notes:!0,createdByType:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0};async function k(a){let b=await (0,f.LS)(a.createdByUuid,"user"===a.createdByType||"agent"===a.createdByType?a.createdByType:void 0);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,type:a.type,url:a.url,title:a.title,notes:a.notes??null,createdBy:b,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}function l(a){if(!t.includes(a))throw Error(`Invalid reference type: ${a}`)}function m(a){let b="string"==typeof a?a.trim():"";if(!b||!/^https?:\/\//i.test(b))throw Error(`Invalid reference url: ${a}`)}async function n(a,b,c){switch(b){case"proposal":{let b=await e.z.proposal.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target proposal with UUID ${c} not found`);return b.projectUuid}case"task":{let b=await e.z.task.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target task with UUID ${c} not found`);return b.projectUuid}case"idea":{let b=await e.z.idea.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}});if(!b)throw Error(`Target idea with UUID ${c} not found`);return b.projectUuid}default:throw Error(`Unsupported reference targetType: ${b}`)}}async function o({companyUuid:a,targetType:b,targetUuid:c}){let d=await e.z.referenceArtifact.findMany({where:{companyUuid:a,targetType:b,targetUuid:c},orderBy:{createdAt:"asc"},select:v});return Promise.all(d.map(a=>k(a)))}async function p(a){let{companyUuid:b,targetType:c,targetUuid:d,type:f,url:i,title:j,notes:o}=a;l(f),m(i);let p=await n(b,c,d),q=await e.z.referenceArtifact.create({data:{companyUuid:b,targetType:c,targetUuid:d,type:f,url:i,title:j,notes:o??null,createdByType:a.createdByType,createdByUuid:a.createdByUuid},select:v});try{g.B.emitChange({companyUuid:b,projectUuid:p,entityType:c,entityUuid:d,action:"updated",actorUuid:a.createdByUuid})}catch(a){s.warn({err:a,referenceUuid:q.uuid,targetType:c,targetUuid:d},"Failed to emit change event for reference artifact")}try{await h.createActivity({companyUuid:b,projectUuid:p,targetType:c,targetUuid:d,actorType:a.createdByType,actorUuid:a.createdByUuid,action:"reference_added",value:{referenceUuid:q.uuid,type:q.type,url:q.url,title:q.title}})}catch(a){s.warn({err:a,referenceUuid:q.uuid,targetType:c,targetUuid:d},"Failed to record reference_added Activity")}return k(q)}async function q(a,b,{type:c,url:d,title:f,notes:g}){if(void 0!==c&&l(c),void 0!==d&&m(d),!await e.z.referenceArtifact.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}}))throw Error(`Reference with UUID ${b} not found`);let h={};void 0!==c&&(h.type=c),void 0!==d&&(h.url=d),void 0!==f&&(h.title=f),void 0!==g&&(h.notes=g);let i=await e.z.referenceArtifact.update({where:{uuid:b},data:h,select:v});return k(i)}async function r(a,b){if(!await e.z.referenceArtifact.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}}))throw Error(`Reference with UUID ${b} not found`);await e.z.referenceArtifact.delete({where:{uuid:b}})}d()}catch(a){d(a)}})},52178:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Y9:()=>l,bv:()=>n,jD:()=>k,t1:()=>m});var e=c(2613);c(50785);var f=c(9259),g=c(30387),h=c(97307),i=c(12217),j=a([f,g]);[f,g]=j.then?(await j)():j;let o=g.Sy;async function k(a,b){let c=await (0,f.d)();if(!c)return{success:!1,error:"unauthorized"};if(!o.includes(a))return{success:!1,error:`Invalid target type: ${a}`};try{let d=await (0,g.Xo)({companyUuid:c.companyUuid,targetType:a,targetUuid:b});return{success:!0,references:d}}catch(c){return h.default.error({err:c,targetType:a,targetUuid:b},"Failed to list references"),{success:!1,error:"Failed to load references"}}}async function l(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};if(!o.includes(a.targetType))return{success:!1,error:`Invalid target type: ${a.targetType}`};try{let c=await (0,g.kA)({companyUuid:b.companyUuid,targetType:a.targetType,targetUuid:a.targetUuid,type:a.type,url:a.url,title:a.title,notes:a.notes??null,createdByType:"user",createdByUuid:b.actorUuid});return{success:!0,reference:c}}catch(b){h.default.error({err:b},"Failed to create reference");let a=b instanceof Error?b.message:"Failed to add reference";return{success:!1,error:a}}}async function m(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};try{let c=await (0,g.Xp)(b.companyUuid,a.uuid,{...void 0!==a.type?{type:a.type}:{},...void 0!==a.url?{url:a.url}:{},...void 0!==a.title?{title:a.title}:{},...void 0!==a.notes?{notes:a.notes}:{}});return{success:!0,reference:c}}catch(c){h.default.error({err:c,uuid:a.uuid},"Failed to update reference");let b=c instanceof Error?c.message:"Failed to update reference";return{success:!1,error:b}}}async function n(a){let b=await (0,f.d)();if(!b)return{success:!1,error:"unauthorized"};try{return await (0,g.bA)(b.companyUuid,a),{success:!0}}catch(c){h.default.error({err:c,uuid:a},"Failed to delete reference");let b=c instanceof Error?c.message:"Failed to delete reference";return{success:!1,error:b}}}(0,i.D)([k,l,m,n]),(0,e.A)(k,"60d404c9e3ab7f308b5178d587ba3a5be4d69c419c",null),(0,e.A)(l,"4003d6e1e70e2ebe308708ed0fb052ef68022e8978",null),(0,e.A)(m,"4049fac02f2ddffe55ece21a3122919d8b5853fa85",null),(0,e.A)(n,"40bfc1699bee723af3cda4549c5e8ac758d0f4c6fd",null),d()}catch(a){d(a)}})},61206:(a,b,c)=>{c.d(b,{L:()=>h});var d=c(10837),e=c(21968),f=c(9222),g=c(99127);function h({notes:a}){let b=(0,f.c)(),[c,h]=(0,e.useState)(!1),i=a?.trim();if(!i)return null;let j=(0,d.jsx)("button",{type:"button",onClick:()=>h(a=>!a),"aria-expanded":c,"aria-label":b("references.toggleNotes"),className:`mt-1 w-full cursor-pointer text-left text-xs leading-relaxed text-muted-foreground ${c?"block":"line-clamp-2"}`,children:i});return c?j:(0,d.jsx)(g.Bc,{delayDuration:200,children:(0,d.jsxs)(g.m_,{children:[(0,d.jsx)(g.k$,{asChild:!0,children:j}),(0,d.jsx)(g.ZI,{className:"max-w-xs whitespace-pre-wrap break-words",children:i})]})})}},73908:(a,b,c)=>{c.d(b,{C:()=>k,K:()=>m});var d=c(10837),e=c(9222),f=c(79543),g=c(92900),h=c(42424),i=c(9994),j=c(88536);function k({items:a,onChange:b,disabled:c}){let k=(0,e.c)(),l=(c,d)=>{let e=a.slice();e[c]={...e[c],...d},b(e)};return(0,d.jsxs)("div",{className:"space-y-3",children:[a.length>0&&(0,d.jsx)("div",{className:"space-y-2",children:a.map((e,g)=>(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-[#E5E2DC] dark:border-[#2a2a2e] bg-background p-2.5",children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:(0,d.jsx)(i.p,{value:e.description,onChange:a=>l(g,{description:a.target.value}),placeholder:k("acceptanceCriteria.criterionPlaceholder"),className:"border-[#E5E2DC] dark:border-[#2a2a2e] text-sm focus-visible:ring-primary h-8",disabled:c})}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0 pt-1",children:[(0,d.jsx)(j.d,{checked:e.required,onCheckedChange:a=>l(g,{required:a}),className:"data-[state=checked]:bg-primary",disabled:c}),(0,d.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground min-w-[52px]",children:e.required?k("acceptanceCriteria.required"):k("acceptanceCriteria.optional")}),(0,d.jsx)(h.$,{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:()=>{b(a.filter((a,b)=>b!==g))},disabled:c,type:"button",children:(0,d.jsx)(f.A,{className:"h-3 w-3"})})]})]},g))}),(0,d.jsxs)(h.$,{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:()=>{b([...a,{description:"",required:!0}])},disabled:c,type:"button",children:[(0,d.jsx)(g.A,{className:"h-3 w-3"}),k("acceptanceCriteria.addCriterion")]})]})}function l(a){return{description:a.description.trim(),required:!!a.required}}function m(a,b){if(a.length!==b.length)return!0;for(let c=0;c<a.length;c++){let d=l(a[c]),e=l(b[c]);if(d.description!==e.description||d.required!==e.required)return!0}return!1}},74798:(a,b,c)=>{c.d(b,{W:()=>e});var d=c(21968);function e(){let[a,b]=(0,d.useState)(!1);return a}},77219:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{XH:()=>h});var e=c(55511),f=c(71255);c(97307);var g=a([f]);f=(g.then?(await g)():g)[0];let i="cho_";function h(){var a;let b=(0,e.randomBytes)(32).toString("base64url"),c=`${i}${b}`,d=(a=c,(0,e.createHash)("sha256").update(a).digest("hex")),f=`${i}${b.slice(0,4)}...${b.slice(-4)}`;return{key:c,hash:d,prefix:f}}d()}catch(a){d(a)}})},86486:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(42377);let e=(0,d.createServerReference)("60d404c9e3ab7f308b5178d587ba3a5be4d69c419c",d.callServer,void 0,d.findSourceMapURL,"listReferencesAction")},88536:(a,b,c)=>{c.d(b,{d:()=>g});var d=c(10837);c(21968);var e=c(15644),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"switch",className:(0,f.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",a),...b,children:(0,d.jsx)(e.Thumb,{"data-slot":"switch-thumb",className:(0,f.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")})})}},94214:(a,b,c)=>{c.d(b,{AI:()=>h,_8:()=>g});var d=c(10837);c(21968);var e=c(11568),f=c(96307);function g({open:a,onOpenChange:b,header:c,footer:g,children:h,className:i,bodyClassName:j,zIndexClassName:k="z-[110]",showCloseButton:l=!0}){return(0,d.jsx)(e.lG,{open:a,onOpenChange:b,children:(0,d.jsxs)(e.Cf,{className:(0,f.cn)("flex max-h-[85svh] flex-col gap-0 overflow-hidden p-0",k,i),overlayClassName:k,showCloseButton:l,children:[(0,d.jsx)(e.c7,{className:"shrink-0 border-b border-border px-6 py-5 text-left",children:c}),(0,d.jsx)("div",{className:(0,f.cn)("min-h-0 flex-1 overflow-y-auto px-6 py-4",j),children:h}),(0,d.jsx)(e.Es,{className:"shrink-0 border-t border-border px-6 py-5",children:g})]})})}let h=e.L3}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=8030,exports.ids=[8030],exports.modules={2852:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(10837);c(21968);var e=c(13277),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}},6008:(a,b,c)=>{c.d(b,{eZ:()=>d,kl:()=>e,lp:()=>f});let d=["idea","proposal","document","task","project"],e=["read","write","admin"],f=d.flatMap(a=>e.map(b=>`${a}:${b}`))},8495:(a,b,c)=>{c.d(b,{S:()=>h});var d=c(10837);c(21968);var e=c(9810),f=c(25711),g=c(96307);function h({className:a,...b}){return(0,d.jsx)(f.Root,{"data-slot":"checkbox",className:(0,g.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(f.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:(0,d.jsx)(e.A,{className:"size-3.5"})})})}},13277:(a,b,c)=>{c.r(b),c.d(b,{Label:()=>g,Root:()=>h});var d=c(21968),e=c(16551),f=c(10837),g=d.forwardRef((a,b)=>(0,f.jsx)(e.sG.label,{...a,ref:b,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));g.displayName="Label";var h=g},25711:(a,b,c)=>{c.r(b),c.d(b,{Checkbox:()=>v,CheckboxIndicator:()=>x,Indicator:()=>x,Root:()=>v,createCheckboxScope:()=>p,unstable_BubbleInput:()=>z,unstable_CheckboxBubbleInput:()=>z,unstable_CheckboxProvider:()=>s,unstable_CheckboxTrigger:()=>u,unstable_Provider:()=>s,unstable_Trigger:()=>u});var d=c(21968),e=c(96090),f=c(42990),g=c(22546),h=c(15035),i=c(29851),j=c(7579),k=c(5030),l=c(16551),m=c(10837),n="Checkbox",[o,p]=(0,f.A)(n),[q,r]=o(n);function s(a){let{__scopeCheckbox:b,checked:c,children:e,defaultChecked:f,disabled:g,form:i,name:j,onCheckedChange:k,required:l,value:o="on",internal_do_not_use_render:p}=a,[r,s]=(0,h.i)({prop:c,defaultProp:f??!1,onChange:k,caller:n}),[t,u]=d.useState(null),[v,w]=d.useState(null),x=d.useRef(!1),y=!t||!!i||!!t.closest("form"),z={checked:r,disabled:g,setChecked:s,control:t,setControl:u,name:j,form:i,value:o,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:!A(f)&&f,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,m.jsx)(q,{scope:b,...z,children:"function"==typeof p?p(z):e})}var t="CheckboxTrigger",u=d.forwardRef(({__scopeCheckbox:a,onKeyDown:b,onClick:c,...f},h)=>{let{control:i,value:j,disabled:k,checked:n,required:o,setControl:p,setChecked:q,hasConsumerStoppedPropagationRef:s,isFormControl:u,bubbleInput:v}=r(t,a),w=(0,e.s)(h,p),x=d.useRef(n);return d.useEffect(()=>{let a=i?.form;if(a){let b=()=>q(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[i,q]),(0,m.jsx)(l.sG.button,{type:"button",role:"checkbox","aria-checked":A(n)?"mixed":n,"aria-required":o,"data-state":B(n),"data-disabled":k?"":void 0,disabled:k,value:j,...f,ref:w,onKeyDown:(0,g.mK)(b,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,g.mK)(c,a=>{q(a=>!!A(a)||!a),v&&u&&(s.current=a.isPropagationStopped(),s.current||a.stopPropagation())})})});u.displayName=t;var v=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i,onCheckedChange:j,form:k,...l}=a;return(0,m.jsx)(s,{__scopeCheckbox:c,checked:e,defaultChecked:f,disabled:h,required:g,onCheckedChange:j,name:d,form:k,value:i,internal_do_not_use_render:({isFormControl:a})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u,{...l,ref:b,__scopeCheckbox:c}),a&&(0,m.jsx)(z,{__scopeCheckbox:c})]})})});v.displayName=n;var w="CheckboxIndicator",x=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,forceMount:d,...e}=a,f=r(w,c);return(0,m.jsx)(k.C,{present:d||A(f.checked)||!0===f.checked,children:(0,m.jsx)(l.sG.span,{"data-state":B(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:b,style:{pointerEvents:"none",...a.style}})})});x.displayName=w;var y="CheckboxBubbleInput",z=d.forwardRef(({__scopeCheckbox:a,...b},c)=>{let{control:f,hasConsumerStoppedPropagationRef:g,checked:h,defaultChecked:k,required:n,disabled:o,name:p,value:q,form:s,bubbleInput:t,setBubbleInput:u}=r(y,a),v=(0,e.s)(c,u),w=(0,i.Z)(h),x=(0,j.X)(f);d.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!g.current;if(w!==h&&a){let c=new Event("click",{bubbles:b});t.indeterminate=A(h),a.call(t,!A(h)&&h),t.dispatchEvent(c)}},[t,w,h,g]);let z=d.useRef(!A(h)&&h);return(0,m.jsx)(l.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:k??z.current,required:n,disabled:o,name:p,value:q,form:s,...b,tabIndex:-1,ref:v,style:{...b.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function A(a){return"indeterminate"===a}function B(a){return A(a)?"indeterminate":a?"checked":"unchecked"}z.displayName=y},26078:(a,b,c)=>{c.d(b,{RU:()=>h,s8:()=>g});let d={developer_agent:["idea:read","proposal:read","document:read","project:read","task:read","task:write"],pm_agent:["idea:read","idea:write","proposal:read","proposal:write","document:read","document:write","task:read","task:write","project:read","project:write"],admin_agent:["idea:read","idea:write","idea:admin","proposal:read","proposal:write","proposal:admin","document:read","document:write","document:admin","task:read","task:write","task:admin","project:read","project:write","project:admin"]},e=["read","write","admin"],f=new Set(["idea","proposal","document","task","project"].flatMap(a=>e.map(b=>`${a}:${b}`)));function g(a){return f.has(a)}function h(a,b){let c=new Set;if(a)for(let b of a){let a=d[b.endsWith("_agent")?b:`${b}_agent`];if(a)for(let b of a)c.add(b)}if(b)for(let a of b)g(a)&&c.add(a);return c}},26346:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},27882:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Z:()=>m});var e=c(10837),f=c(9222),g=c(35198),h=c(94372),i=c(82658),j=c(21790),k=c(86700),l=a([k]);function m({apiKey:a}){let b=(0,f.c)("onboarding"),c=a||"<YOUR_API_KEY>",d=(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{className:"mb-2 text-sm font-medium text-foreground",children:b("install.profileStep.title")}),(0,e.jsx)(k.N,{language:"bash",code:'export CHORUS_AGENT_PROFILE="<agent-uuid>"'}),(0,e.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:b("install.profileStep.desc")})]});return(0,e.jsx)(g.Zp,{className:"w-full",children:(0,e.jsx)(g.Wu,{className:"p-6",children:(0,e.jsxs)(h.tU,{defaultValue:"claude-code",className:"w-full",children:[(0,e.jsxs)(h.j7,{className:"w-full justify-start overflow-x-auto",children:[(0,e.jsx)(h.Xi,{value:"claude-code",className:"shrink-0",children:b("install.tabs.claudeCode")}),(0,e.jsx)(h.Xi,{value:"codex",className:"shrink-0",children:b("install.tabs.codex")}),(0,e.jsx)(h.Xi,{value:"kiro",className:"shrink-0",children:b("install.tabs.kiro")}),(0,e.jsx)(h.Xi,{value:"pi",className:"shrink-0",children:b("install.tabs.pi")}),(0,e.jsx)(h.Xi,{value:"dsh",className:"shrink-0",children:b("install.tabs.dsh")}),(0,e.jsx)(h.Xi,{value:"opencode",className:"shrink-0",children:b("install.tabs.opencode")}),(0,e.jsx)(h.Xi,{value:"openclaw",className:"shrink-0",children:b("install.tabs.openClaw")}),(0,e.jsx)(h.Xi,{value:"other",className:"shrink-0",children:b("install.tabs.other")})]}),(0,e.jsxs)(h.av,{value:"claude-code",className:"mt-4 space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{className:"mb-2 text-sm font-medium text-foreground",children:b("install.claudeCode.step1Title")}),(0,e.jsx)(k.N,{language:"bash",code:`export CHORUS_URL=""
1
+ "use strict";exports.id=38,exports.ids=[38],exports.modules={2852:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(10837);c(21968);var e=c(13277),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}},6008:(a,b,c)=>{c.d(b,{eZ:()=>d,kl:()=>e,lp:()=>f});let d=["idea","proposal","document","task","project"],e=["read","write","admin"],f=d.flatMap(a=>e.map(b=>`${a}:${b}`))},8495:(a,b,c)=>{c.d(b,{S:()=>h});var d=c(10837);c(21968);var e=c(9810),f=c(25711),g=c(96307);function h({className:a,...b}){return(0,d.jsx)(f.Root,{"data-slot":"checkbox",className:(0,g.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(f.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:(0,d.jsx)(e.A,{className:"size-3.5"})})})}},13277:(a,b,c)=>{c.r(b),c.d(b,{Label:()=>g,Root:()=>h});var d=c(21968),e=c(16551),f=c(10837),g=d.forwardRef((a,b)=>(0,f.jsx)(e.sG.label,{...a,ref:b,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));g.displayName="Label";var h=g},25711:(a,b,c)=>{c.r(b),c.d(b,{Checkbox:()=>v,CheckboxIndicator:()=>x,Indicator:()=>x,Root:()=>v,createCheckboxScope:()=>p,unstable_BubbleInput:()=>z,unstable_CheckboxBubbleInput:()=>z,unstable_CheckboxProvider:()=>s,unstable_CheckboxTrigger:()=>u,unstable_Provider:()=>s,unstable_Trigger:()=>u});var d=c(21968),e=c(96090),f=c(42990),g=c(22546),h=c(15035),i=c(29851),j=c(7579),k=c(5030),l=c(16551),m=c(10837),n="Checkbox",[o,p]=(0,f.A)(n),[q,r]=o(n);function s(a){let{__scopeCheckbox:b,checked:c,children:e,defaultChecked:f,disabled:g,form:i,name:j,onCheckedChange:k,required:l,value:o="on",internal_do_not_use_render:p}=a,[r,s]=(0,h.i)({prop:c,defaultProp:f??!1,onChange:k,caller:n}),[t,u]=d.useState(null),[v,w]=d.useState(null),x=d.useRef(!1),y=!t||!!i||!!t.closest("form"),z={checked:r,disabled:g,setChecked:s,control:t,setControl:u,name:j,form:i,value:o,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:!A(f)&&f,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,m.jsx)(q,{scope:b,...z,children:"function"==typeof p?p(z):e})}var t="CheckboxTrigger",u=d.forwardRef(({__scopeCheckbox:a,onKeyDown:b,onClick:c,...f},h)=>{let{control:i,value:j,disabled:k,checked:n,required:o,setControl:p,setChecked:q,hasConsumerStoppedPropagationRef:s,isFormControl:u,bubbleInput:v}=r(t,a),w=(0,e.s)(h,p),x=d.useRef(n);return d.useEffect(()=>{let a=i?.form;if(a){let b=()=>q(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[i,q]),(0,m.jsx)(l.sG.button,{type:"button",role:"checkbox","aria-checked":A(n)?"mixed":n,"aria-required":o,"data-state":B(n),"data-disabled":k?"":void 0,disabled:k,value:j,...f,ref:w,onKeyDown:(0,g.mK)(b,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,g.mK)(c,a=>{q(a=>!!A(a)||!a),v&&u&&(s.current=a.isPropagationStopped(),s.current||a.stopPropagation())})})});u.displayName=t;var v=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i,onCheckedChange:j,form:k,...l}=a;return(0,m.jsx)(s,{__scopeCheckbox:c,checked:e,defaultChecked:f,disabled:h,required:g,onCheckedChange:j,name:d,form:k,value:i,internal_do_not_use_render:({isFormControl:a})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u,{...l,ref:b,__scopeCheckbox:c}),a&&(0,m.jsx)(z,{__scopeCheckbox:c})]})})});v.displayName=n;var w="CheckboxIndicator",x=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,forceMount:d,...e}=a,f=r(w,c);return(0,m.jsx)(k.C,{present:d||A(f.checked)||!0===f.checked,children:(0,m.jsx)(l.sG.span,{"data-state":B(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:b,style:{pointerEvents:"none",...a.style}})})});x.displayName=w;var y="CheckboxBubbleInput",z=d.forwardRef(({__scopeCheckbox:a,...b},c)=>{let{control:f,hasConsumerStoppedPropagationRef:g,checked:h,defaultChecked:k,required:n,disabled:o,name:p,value:q,form:s,bubbleInput:t,setBubbleInput:u}=r(y,a),v=(0,e.s)(c,u),w=(0,i.Z)(h),x=(0,j.X)(f);d.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!g.current;if(w!==h&&a){let c=new Event("click",{bubbles:b});t.indeterminate=A(h),a.call(t,!A(h)&&h),t.dispatchEvent(c)}},[t,w,h,g]);let z=d.useRef(!A(h)&&h);return(0,m.jsx)(l.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:k??z.current,required:n,disabled:o,name:p,value:q,form:s,...b,tabIndex:-1,ref:v,style:{...b.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function A(a){return"indeterminate"===a}function B(a){return A(a)?"indeterminate":a?"checked":"unchecked"}z.displayName=y},26078:(a,b,c)=>{c.d(b,{RU:()=>h,s8:()=>g});let d={developer_agent:["idea:read","proposal:read","document:read","project:read","task:read","task:write"],pm_agent:["idea:read","idea:write","proposal:read","proposal:write","document:read","document:write","task:read","task:write","project:read","project:write"],admin_agent:["idea:read","idea:write","idea:admin","proposal:read","proposal:write","proposal:admin","document:read","document:write","document:admin","task:read","task:write","task:admin","project:read","project:write","project:admin"]},e=["read","write","admin"],f=new Set(["idea","proposal","document","task","project"].flatMap(a=>e.map(b=>`${a}:${b}`)));function g(a){return f.has(a)}function h(a,b){let c=new Set;if(a)for(let b of a){let a=d[b.endsWith("_agent")?b:`${b}_agent`];if(a)for(let b of a)c.add(b)}if(b)for(let a of b)g(a)&&c.add(a);return c}},26346:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},27882:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Z:()=>m});var e=c(10837),f=c(9222),g=c(35198),h=c(94372),i=c(82658),j=c(21790),k=c(86700),l=a([k]);function m({apiKey:a}){let b=(0,f.c)("onboarding"),c=a||"<YOUR_API_KEY>",d=(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{className:"mb-2 text-sm font-medium text-foreground",children:b("install.profileStep.title")}),(0,e.jsx)(k.N,{language:"bash",code:'export CHORUS_AGENT_PROFILE="<agent-uuid>"'}),(0,e.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:b("install.profileStep.desc")})]});return(0,e.jsx)(g.Zp,{className:"w-full",children:(0,e.jsx)(g.Wu,{className:"p-6",children:(0,e.jsxs)(h.tU,{defaultValue:"claude-code",className:"w-full",children:[(0,e.jsxs)(h.j7,{className:"w-full justify-start overflow-x-auto",children:[(0,e.jsx)(h.Xi,{value:"claude-code",className:"shrink-0",children:b("install.tabs.claudeCode")}),(0,e.jsx)(h.Xi,{value:"codex",className:"shrink-0",children:b("install.tabs.codex")}),(0,e.jsx)(h.Xi,{value:"kiro",className:"shrink-0",children:b("install.tabs.kiro")}),(0,e.jsx)(h.Xi,{value:"pi",className:"shrink-0",children:b("install.tabs.pi")}),(0,e.jsx)(h.Xi,{value:"dsh",className:"shrink-0",children:b("install.tabs.dsh")}),(0,e.jsx)(h.Xi,{value:"opencode",className:"shrink-0",children:b("install.tabs.opencode")}),(0,e.jsx)(h.Xi,{value:"openclaw",className:"shrink-0",children:b("install.tabs.openClaw")}),(0,e.jsx)(h.Xi,{value:"other",className:"shrink-0",children:b("install.tabs.other")})]}),(0,e.jsxs)(h.av,{value:"claude-code",className:"mt-4 space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{className:"mb-2 text-sm font-medium text-foreground",children:b("install.claudeCode.step1Title")}),(0,e.jsx)(k.N,{language:"bash",code:`export CHORUS_URL=""
2
2
  export CHORUS_API_KEY="${c}"`}),(0,e.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:b("install.claudeCode.step1Tip")})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{className:"mb-2 text-sm font-medium text-foreground",children:b("install.claudeCode.step2Title")}),(0,e.jsx)(k.N,{language:"bash",code:`npm install -g @chorus-aidlc/chorus@0.17.0
3
3
  chorus agents add --agents claude`}),(0,e.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:b("install.claudeCode.step2Tip")})]})]}),(0,e.jsxs)(h.av,{value:"codex",className:"mt-4 space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{className:"mb-2 text-sm font-medium text-foreground",children:b("install.codex.step1Title")}),(0,e.jsx)(k.N,{language:"bash",code:`export CHORUS_URL=""
4
4
  export CHORUS_API_KEY="${c}"`}),(0,e.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:b("install.codex.step1Tip")})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{className:"mb-2 text-sm font-medium text-foreground",children:b("install.codex.step2Title")}),(0,e.jsx)(k.N,{language:"bash",code:`npm install -g @chorus-aidlc/chorus@0.17.0
@@ -34,6 +34,6 @@ Read the setup instructions from:
34
34
  /skill/chorus/SKILL.md
35
35
 
36
36
  Follow the "Setup" section to configure the MCP server,
37
- then call chorus_checkin() to verify the connection.`})]})]})})})}k=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})},28774:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A8:()=>q,CG:()=>o,Iq:()=>n,RB:()=>l,Sn:()=>i,d5:()=>m,ic:()=>p,tN:()=>k,x4:()=>j});var e=c(71255),f=c(77219),g=c(26078),h=a([e,f]);async function i({companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,permissions:h}){return e.z.agent.create({data:{companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,...void 0!==h&&{permissions:h}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,createdAt:!0}})}async function j(a,b,c){if(c&&!await e.z.agent.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0}}))throw Error("Agent not found");return e.z.agent.update({where:{uuid:a},data:b,select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,lastActiveAt:!0,createdAt:!0}})}async function k(a,b){return e.z.apiKey.updateMany({where:{agentUuid:a,revokedAt:null},data:{name:b}})}async function l(a){return e.z.agent.delete({where:{uuid:a}})}async function m(a,b,c,d){let f={companyUuid:a,revokedAt:null,...d&&{agent:{ownerUuid:d}}},[g,h]=await Promise.all([e.z.apiKey.findMany({where:f,skip:b,take:c,orderBy:{createdAt:"desc"},include:{agent:{select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0}}}}),e.z.apiKey.count({where:f})]);return{apiKeys:g,total:h}}async function n({companyUuid:a,agentUuid:b,name:c,expiresAt:d}){let{key:g,hash:h,prefix:i}=(0,f.XH)();return{...await e.z.apiKey.create({data:{companyUuid:a,agentUuid:b,keyHash:h,keyPrefix:i,name:c,expiresAt:d},select:{uuid:!0,keyPrefix:!0,name:!0,expiresAt:!0,createdAt:!0}}),key:g}}async function o(a,b,c){return e.z.apiKey.findFirst({where:{uuid:b,companyUuid:a,...c&&{agent:{ownerUuid:c}}},select:{uuid:!0,agentUuid:!0,revokedAt:!0}})}async function p(a,b,c){return(await e.z.agent.findMany({where:{companyUuid:a,...c&&{ownerUuid:c}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,ownerUuid:!0},orderBy:{name:"asc"}})).filter(a=>(0,g.RU)(a.roles,a.permissions).has(b)).map(({uuid:a,name:b,roles:c,ownerUuid:d})=>({uuid:a,name:b,roles:c,ownerUuid:d}))}async function q(a){return e.z.user.findMany({where:{companyUuid:a},select:{uuid:!0,name:!0,email:!0},orderBy:{name:"asc"}})}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},30356:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$y:()=>r,Fv:()=>p,IF:()=>o,KT:()=>s,Zh:()=>n,fG:()=>t,p3:()=>q});var e=c(2613);c(50785);var f=c(4687),g=c(9259),h=c(28774),i=c(30457),j=c(97307),k=c(26078),l=c(12217),m=a([g,h,i]);async function n(){let a=await (0,g.d)();a||(0,f.redirect)("/login");try{let{apiKeys:b}=await (0,h.d5)(a.companyUuid,0,100,a.actorUuid),c=b.map(a=>{let b=a.agent?.roles||[],c=a.agent?.permissions||[];return{uuid:a.uuid,keyPrefix:a.keyPrefix,name:a.agent?.name||a.name,lastUsed:null,expiresAt:a.expiresAt?.toISOString()||null,createdAt:a.createdAt.toISOString(),roles:b,permissions:c,effectivePermissions:Array.from((0,k.RU)(b,c)),agentUuid:a.agent?.uuid||"",persona:a.agent?.persona||null}});return{success:!0,data:c}}catch(a){return j.default.error({err:a},"Failed to fetch API keys"),{success:!1,error:"Failed to fetch API keys"}}}async function o(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{if(a.permissions){for(let b of a.permissions)if(!(0,k.s8)(b))return{success:!1,error:`Invalid permission: ${b}`}}let c=await (0,h.Sn)({companyUuid:b.companyUuid,name:a.name,roles:a.roles,ownerUuid:b.actorUuid,persona:a.persona,permissions:a.permissions}),d=await (0,h.Iq)({companyUuid:b.companyUuid,agentUuid:c.uuid,name:a.name});return{success:!0,key:d.key,agentUuid:c.uuid}}catch(a){return j.default.error({err:a},"Failed to create agent and API key"),{success:!1,error:"Failed to create API key"}}}async function p(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{let c=await (0,h.CG)(b.companyUuid,a,b.actorUuid);if(!c)return{success:!1,error:"API key not found"};return await (0,h.RB)(c.agentUuid),{success:!0}}catch(a){return j.default.error({err:a},"Failed to delete API key"),{success:!1,error:"Failed to delete API key"}}}async function q(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{let c=await (0,i.u0)(b.companyUuid,a);return{success:!0,data:c}}catch(a){return j.default.error({err:a},"Failed to fetch agent sessions"),{success:!1,error:"Failed to fetch agent sessions"}}}async function r(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{return await (0,i.Vu)(b.companyUuid,a),{success:!0}}catch(a){return j.default.error({err:a},"Failed to close session"),{success:!1,error:"Failed to close session"}}}async function s(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{return await (0,i.aQ)(b.companyUuid,a),{success:!0}}catch(a){return j.default.error({err:a},"Failed to reopen session"),{success:!1,error:"Failed to reopen session"}}}async function t(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{if(a.permissions){for(let b of a.permissions)if(!(0,k.s8)(b))return{success:!1,error:`Invalid permission: ${b}`}}let c={};return void 0!==a.name&&(c.name=a.name),void 0!==a.roles&&(c.roles=a.roles),void 0!==a.persona&&(c.persona=a.persona),void 0!==a.permissions&&(c.permissions=a.permissions),await (0,h.x4)(a.agentUuid,c,b.companyUuid),void 0!==a.name&&await (0,h.tN)(a.agentUuid,a.name),{success:!0}}catch(a){return j.default.error({err:a},"Failed to update agent"),{success:!1,error:"Failed to update agent"}}}[g,h,i]=m.then?(await m)():m,(0,l.D)([n,o,p,q,r,s,t]),(0,e.A)(n,"0062d513c0013a80e42ff2afd4d1af05583dbbac54",null),(0,e.A)(o,"40f942231432fab310cf8637cacb8ba355a7dc081f",null),(0,e.A)(p,"407bfb46d5238d37f414ae8d243caf007a66078bca",null),(0,e.A)(q,"40f0c96dbc69c2a4a7188a4e83f72458880aa8da97",null),(0,e.A)(r,"40697fd88ef8950eec0fc292bfd7c9f8ca501857d4",null),(0,e.A)(s,"409accd70be1339076632bcaaa8495ed49d5732b45",null),(0,e.A)(t,"40dbc187c2c47846211f5b41754940371c736b09a6",null),d()}catch(a){d(a)}})},33321:(a,b,c)=>{c.d(b,{m:()=>l});var d=c(10837),e=c(97731),f=c(26346),g=c(9222),h=c(42424),i=c(58857),j=c(96307);let k="https://doc.chorus-ai.dev";function l({variant:a="inline",className:b}){let c=(0,g.c)("resourceLinks"),{locale:l}=(0,i.Y)(),m="en"===l?k:`${k}/${l}`;return(0,d.jsxs)("div",{className:(0,j.cn)("flex flex-wrap items-center gap-2","footer"===a&&"justify-center gap-3",b),children:[(0,d.jsx)(h.$,{variant:"outline",size:"sm",asChild:!0,children:(0,d.jsxs)("a",{href:"https://github.com/Chorus-AIDLC/Chorus",target:"_blank",rel:"noopener noreferrer","aria-label":c("githubAria"),children:[(0,d.jsx)(e.A,{className:"h-4 w-4"}),c("github")]})}),(0,d.jsx)(h.$,{variant:"outline",size:"sm",asChild:!0,children:(0,d.jsxs)("a",{href:m,target:"_blank",rel:"noopener noreferrer","aria-label":c("docsAria"),children:[(0,d.jsx)(f.A,{className:"h-4 w-4"}),c("docs")]})})]})}},54005:(a,b,c)=>{c.d(b,{o:()=>d});let d={developer_agent:["idea:read","proposal:read","document:read","project:read","task:read","task:write"],pm_agent:["idea:read","idea:write","proposal:read","proposal:write","document:read","document:write","task:read","task:write","project:read","project:write"],admin_agent:["idea:read","idea:write","idea:admin","proposal:read","proposal:write","proposal:admin","document:read","document:write","document:admin","task:read","task:write","task:admin","project:read","project:write","project:admin"]}},67328:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Y:()=>o});var e=c(10837),f=c(21968),g=c(9222),h=c(42424),i=c(9810),j=c(10694),k=c(54722),l=c(98632),m=c(27882),n=a([m]);function o({onAgentCreated:a,createAgentAndKey:b,onClose:c,embedded:d=!1,submitLabel:n,submittingLabel:o}){let p=(0,g.c)(),[q,r]=(0,f.useState)(""),[s,t]=(0,f.useState)("admin_agent"),[u,v]=(0,f.useState)(["admin_agent"]),[w,x]=(0,f.useState)([]),[y,z]=(0,f.useState)(""),[A,B]=(0,f.useState)(!1),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(!1),G=async c=>{if((c.preventDefault(),q)&&("custom"!==s||0!==w.length)){B(!0);try{let c=await b({name:q,roles:u,permissions:"custom"===s?w:[],persona:y||null});c.success&&c.key?(d||D(c.key),a({uuid:c.agentUuid||"",name:q,roles:u,permissions:"custom"===s?w:[]},c.key)):k.q.error("Failed to create API key:",c.error)}catch(a){k.q.error("Failed to create API key:",a)}finally{B(!1)}}},H=async a=>{try{await navigator.clipboard.writeText(a),F(!0),setTimeout(()=>F(!1),2e3)}catch(a){k.q.error("Failed to copy to clipboard:",a)}},I=()=>{r(""),t("admin_agent"),v(["admin_agent"]),x([]),z(""),D(null),c?.()};return C&&!d?(0,e.jsxs)("div",{className:"p-6",children:[(0,e.jsxs)("div",{className:"mb-4 flex items-center gap-2 text-green-600",children:[(0,e.jsx)(i.A,{className:"h-5 w-5"}),(0,e.jsx)("span",{className:"font-medium",children:p("settings.apiKeyCreated")})]}),(0,e.jsx)("p",{className:"mb-4 text-sm text-muted-foreground",children:p("settings.apiKeyCreatedDesc")}),(0,e.jsxs)("div",{className:"mb-4 flex items-center gap-2",children:[(0,e.jsx)("code",{className:"flex-1 rounded bg-foreground px-3 py-2 font-mono text-sm text-background",children:C}),(0,e.jsx)(h.$,{variant:"outline",size:"sm",onClick:()=>H(C),children:p(E?"common.copied":"common.copy")})]}),(0,e.jsx)("p",{className:"mb-3 text-sm text-muted-foreground",children:p("settings.installGuideIntro")}),(0,e.jsx)("div",{className:"mb-4",children:(0,e.jsx)(m.Z,{apiKey:C})}),(0,e.jsx)(h.$,{onClick:I,className:"w-full",children:p("common.done")})]}):(0,e.jsxs)("form",{onSubmit:G,children:[!d&&(0,e.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-6 py-5",children:[(0,e.jsx)("h3",{className:"text-lg font-semibold text-foreground",children:p("settings.createApiKey")}),c&&(0,e.jsx)(h.$,{type:"button",variant:"ghost",size:"icon",onClick:I,className:"h-8 w-8",children:(0,e.jsx)(j.A,{className:"h-4 w-4"})})]}),(0,e.jsx)("div",{className:d?void 0:"p-6",children:(0,e.jsx)(l.L,{name:q,onNameChange:r,preset:s,permissions:w,onPermissionsChange:function(a){t(a.preset),v(a.roles),x(a.permissions)},persona:y,onPersonaChange:z,nameInputId:"keyName",personaInputId:"create-agent-persona"})}),(0,e.jsxs)("div",{className:d?"flex justify-end gap-3 pt-2":"flex justify-end gap-3 border-t border-border px-6 py-4",children:[!d&&c&&(0,e.jsx)(h.$,{type:"button",variant:"outline",onClick:I,children:p("common.cancel")}),(0,e.jsx)(h.$,{type:"submit",disabled:!q||"custom"===s&&0===w.length||A,className:d?"w-full":void 0,size:d?"lg":"default",children:A?o??p("settings.creating"):n??p("settings.createApiKey")})]})]})}m=(n.then?(await n)():n)[0],d()}catch(a){d(a)}})},77219:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{XH:()=>h});var e=c(55511),f=c(71255);c(97307);var g=a([f]);f=(g.then?(await g)():g)[0];let i="cho_";function h(){var a;let b=(0,e.randomBytes)(32).toString("base64url"),c=`${i}${b}`,d=(a=c,(0,e.createHash)("sha256").update(a).digest("hex")),f=`${i}${b.slice(0,4)}...${b.slice(-4)}`;return{key:c,hash:d,prefix:f}}d()}catch(a){d(a)}})},86376:(a,b,c)=>{c.d(b,{I:()=>e});var d=c(42377);let e=(0,d.createServerReference)("40f942231432fab310cf8637cacb8ba355a7dc081f",d.callServer,void 0,d.findSourceMapURL,"createAgentAndKeyAction")},86700:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{N:()=>h});var e=c(10837),f=c(97450),g=a([f]);function h({code:a,language:b}){let c=`\`\`\`${b||""}
37
+ then call chorus_checkin() to verify the connection.`})]})]})})})}k=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})},28774:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A8:()=>q,CG:()=>o,Iq:()=>n,RB:()=>l,Sn:()=>i,d5:()=>m,ic:()=>p,tN:()=>k,x4:()=>j});var e=c(71255),f=c(77219),g=c(26078),h=a([e,f]);async function i({companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,permissions:h}){return e.z.agent.create({data:{companyUuid:a,name:b,roles:c,ownerUuid:d,persona:f,systemPrompt:g,...void 0!==h&&{permissions:h}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,createdAt:!0}})}async function j(a,b,c){if(c&&!await e.z.agent.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0}}))throw Error("Agent not found");return e.z.agent.update({where:{uuid:a},data:b,select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,lastActiveAt:!0,createdAt:!0}})}async function k(a,b){return e.z.apiKey.updateMany({where:{agentUuid:a,revokedAt:null},data:{name:b}})}async function l(a){return e.z.agent.delete({where:{uuid:a}})}async function m(a,b,c,d){let f={companyUuid:a,revokedAt:null,...d&&{agent:{ownerUuid:d}}},[g,h]=await Promise.all([e.z.apiKey.findMany({where:f,skip:b,take:c,orderBy:{createdAt:"desc"},include:{agent:{select:{uuid:!0,name:!0,roles:!0,permissions:!0,persona:!0}}}}),e.z.apiKey.count({where:f})]);return{apiKeys:g,total:h}}async function n({companyUuid:a,agentUuid:b,name:c,expiresAt:d}){let{key:g,hash:h,prefix:i}=(0,f.XH)();return{...await e.z.apiKey.create({data:{companyUuid:a,agentUuid:b,keyHash:h,keyPrefix:i,name:c,expiresAt:d},select:{uuid:!0,keyPrefix:!0,name:!0,expiresAt:!0,createdAt:!0}}),key:g}}async function o(a,b,c){return e.z.apiKey.findFirst({where:{uuid:b,companyUuid:a,...c&&{agent:{ownerUuid:c}}},select:{uuid:!0,agentUuid:!0,revokedAt:!0}})}async function p(a,b,c){return(await e.z.agent.findMany({where:{companyUuid:a,...c&&{ownerUuid:c}},select:{uuid:!0,name:!0,roles:!0,permissions:!0,ownerUuid:!0},orderBy:{name:"asc"}})).filter(a=>(0,g.RU)(a.roles,a.permissions).has(b)).map(({uuid:a,name:b,roles:c,ownerUuid:d})=>({uuid:a,name:b,roles:c,ownerUuid:d}))}async function q(a){return e.z.user.findMany({where:{companyUuid:a},select:{uuid:!0,name:!0,email:!0},orderBy:{name:"asc"}})}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},30356:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$y:()=>r,Fv:()=>p,IF:()=>o,KT:()=>s,Zh:()=>n,fG:()=>t,p3:()=>q});var e=c(2613);c(50785);var f=c(4687),g=c(9259),h=c(28774),i=c(30457),j=c(97307),k=c(26078),l=c(12217),m=a([g,h,i]);async function n(){let a=await (0,g.d)();a||(0,f.redirect)("/login");try{let{apiKeys:b}=await (0,h.d5)(a.companyUuid,0,100,a.actorUuid),c=b.map(a=>{let b=a.agent?.roles||[],c=a.agent?.permissions||[];return{uuid:a.uuid,keyPrefix:a.keyPrefix,name:a.agent?.name||a.name,lastUsed:null,expiresAt:a.expiresAt?.toISOString()||null,createdAt:a.createdAt.toISOString(),roles:b,permissions:c,effectivePermissions:Array.from((0,k.RU)(b,c)),agentUuid:a.agent?.uuid||"",persona:a.agent?.persona||null}});return{success:!0,data:c}}catch(a){return j.default.error({err:a},"Failed to fetch API keys"),{success:!1,error:"Failed to fetch API keys"}}}async function o(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{if(a.permissions){for(let b of a.permissions)if(!(0,k.s8)(b))return{success:!1,error:`Invalid permission: ${b}`}}let c=await (0,h.Sn)({companyUuid:b.companyUuid,name:a.name,roles:a.roles,ownerUuid:b.actorUuid,persona:a.persona,permissions:a.permissions}),d=await (0,h.Iq)({companyUuid:b.companyUuid,agentUuid:c.uuid,name:a.name});return{success:!0,key:d.key,agentUuid:c.uuid}}catch(a){return j.default.error({err:a},"Failed to create agent and API key"),{success:!1,error:"Failed to create API key"}}}async function p(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{let c=await (0,h.CG)(b.companyUuid,a,b.actorUuid);if(!c)return{success:!1,error:"API key not found"};return await (0,h.RB)(c.agentUuid),{success:!0}}catch(a){return j.default.error({err:a},"Failed to delete API key"),{success:!1,error:"Failed to delete API key"}}}async function q(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{let c=await (0,i.u0)(b.companyUuid,a);return{success:!0,data:c}}catch(a){return j.default.error({err:a},"Failed to fetch agent sessions"),{success:!1,error:"Failed to fetch agent sessions"}}}async function r(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{return await (0,i.Vu)(b.companyUuid,a),{success:!0}}catch(a){return j.default.error({err:a},"Failed to close session"),{success:!1,error:"Failed to close session"}}}async function s(a){let b=await (0,g.d)();b||(0,f.redirect)("/login");try{return await (0,i.aQ)(b.companyUuid,a),{success:!0}}catch(a){return j.default.error({err:a},"Failed to reopen session"),{success:!1,error:"Failed to reopen session"}}}async function t(a){let b=await (0,g.d)();if(!b)return{success:!1,error:"Unauthorized"};try{if(a.permissions){for(let b of a.permissions)if(!(0,k.s8)(b))return{success:!1,error:`Invalid permission: ${b}`}}let c={};return void 0!==a.name&&(c.name=a.name),void 0!==a.roles&&(c.roles=a.roles),void 0!==a.persona&&(c.persona=a.persona),void 0!==a.permissions&&(c.permissions=a.permissions),await (0,h.x4)(a.agentUuid,c,b.companyUuid),void 0!==a.name&&await (0,h.tN)(a.agentUuid,a.name),{success:!0}}catch(a){return j.default.error({err:a},"Failed to update agent"),{success:!1,error:"Failed to update agent"}}}[g,h,i]=m.then?(await m)():m,(0,l.D)([n,o,p,q,r,s,t]),(0,e.A)(n,"00c02a82e83a22e215f5babdbc8df300d6f055aeb4",null),(0,e.A)(o,"4070f7519b54546522dce8a90b61c9311b9cb4960f",null),(0,e.A)(p,"4025e53232fddb2b1072fcf926d3271e725f64ec82",null),(0,e.A)(q,"40208032a37a74d29f387d30e97e5b1e6155a2320d",null),(0,e.A)(r,"40c97f58f19ec8e9a9048c92c8e8a83c068ae6a184",null),(0,e.A)(s,"40e09318ce70b2ac04112813b2d228dc463cf7c987",null),(0,e.A)(t,"4090890e18f2b7d53ff17874a27e5c826c08bcf883",null),d()}catch(a){d(a)}})},33321:(a,b,c)=>{c.d(b,{m:()=>l});var d=c(10837),e=c(97731),f=c(26346),g=c(9222),h=c(42424),i=c(58857),j=c(96307);let k="https://doc.chorus-ai.dev";function l({variant:a="inline",className:b}){let c=(0,g.c)("resourceLinks"),{locale:l}=(0,i.Y)(),m="en"===l?k:`${k}/${l}`;return(0,d.jsxs)("div",{className:(0,j.cn)("flex flex-wrap items-center gap-2","footer"===a&&"justify-center gap-3",b),children:[(0,d.jsx)(h.$,{variant:"outline",size:"sm",asChild:!0,children:(0,d.jsxs)("a",{href:"https://github.com/Chorus-AIDLC/Chorus",target:"_blank",rel:"noopener noreferrer","aria-label":c("githubAria"),children:[(0,d.jsx)(e.A,{className:"h-4 w-4"}),c("github")]})}),(0,d.jsx)(h.$,{variant:"outline",size:"sm",asChild:!0,children:(0,d.jsxs)("a",{href:m,target:"_blank",rel:"noopener noreferrer","aria-label":c("docsAria"),children:[(0,d.jsx)(f.A,{className:"h-4 w-4"}),c("docs")]})})]})}},54005:(a,b,c)=>{c.d(b,{o:()=>d});let d={developer_agent:["idea:read","proposal:read","document:read","project:read","task:read","task:write"],pm_agent:["idea:read","idea:write","proposal:read","proposal:write","document:read","document:write","task:read","task:write","project:read","project:write"],admin_agent:["idea:read","idea:write","idea:admin","proposal:read","proposal:write","proposal:admin","document:read","document:write","document:admin","task:read","task:write","task:admin","project:read","project:write","project:admin"]}},67328:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Y:()=>o});var e=c(10837),f=c(21968),g=c(9222),h=c(42424),i=c(9810),j=c(10694),k=c(54722),l=c(98632),m=c(27882),n=a([m]);function o({onAgentCreated:a,createAgentAndKey:b,onClose:c,embedded:d=!1,submitLabel:n,submittingLabel:o}){let p=(0,g.c)(),[q,r]=(0,f.useState)(""),[s,t]=(0,f.useState)("admin_agent"),[u,v]=(0,f.useState)(["admin_agent"]),[w,x]=(0,f.useState)([]),[y,z]=(0,f.useState)(""),[A,B]=(0,f.useState)(!1),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(!1),G=async c=>{if((c.preventDefault(),q)&&("custom"!==s||0!==w.length)){B(!0);try{let c=await b({name:q,roles:u,permissions:"custom"===s?w:[],persona:y||null});c.success&&c.key?(d||D(c.key),a({uuid:c.agentUuid||"",name:q,roles:u,permissions:"custom"===s?w:[]},c.key)):k.q.error("Failed to create API key:",c.error)}catch(a){k.q.error("Failed to create API key:",a)}finally{B(!1)}}},H=async a=>{try{await navigator.clipboard.writeText(a),F(!0),setTimeout(()=>F(!1),2e3)}catch(a){k.q.error("Failed to copy to clipboard:",a)}},I=()=>{r(""),t("admin_agent"),v(["admin_agent"]),x([]),z(""),D(null),c?.()};return C&&!d?(0,e.jsxs)("div",{className:"p-6",children:[(0,e.jsxs)("div",{className:"mb-4 flex items-center gap-2 text-green-600",children:[(0,e.jsx)(i.A,{className:"h-5 w-5"}),(0,e.jsx)("span",{className:"font-medium",children:p("settings.apiKeyCreated")})]}),(0,e.jsx)("p",{className:"mb-4 text-sm text-muted-foreground",children:p("settings.apiKeyCreatedDesc")}),(0,e.jsxs)("div",{className:"mb-4 flex items-center gap-2",children:[(0,e.jsx)("code",{className:"flex-1 rounded bg-foreground px-3 py-2 font-mono text-sm text-background",children:C}),(0,e.jsx)(h.$,{variant:"outline",size:"sm",onClick:()=>H(C),children:p(E?"common.copied":"common.copy")})]}),(0,e.jsx)("p",{className:"mb-3 text-sm text-muted-foreground",children:p("settings.installGuideIntro")}),(0,e.jsx)("div",{className:"mb-4",children:(0,e.jsx)(m.Z,{apiKey:C})}),(0,e.jsx)(h.$,{onClick:I,className:"w-full",children:p("common.done")})]}):(0,e.jsxs)("form",{onSubmit:G,children:[!d&&(0,e.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-6 py-5",children:[(0,e.jsx)("h3",{className:"text-lg font-semibold text-foreground",children:p("settings.createApiKey")}),c&&(0,e.jsx)(h.$,{type:"button",variant:"ghost",size:"icon",onClick:I,className:"h-8 w-8",children:(0,e.jsx)(j.A,{className:"h-4 w-4"})})]}),(0,e.jsx)("div",{className:d?void 0:"p-6",children:(0,e.jsx)(l.L,{name:q,onNameChange:r,preset:s,permissions:w,onPermissionsChange:function(a){t(a.preset),v(a.roles),x(a.permissions)},persona:y,onPersonaChange:z,nameInputId:"keyName",personaInputId:"create-agent-persona"})}),(0,e.jsxs)("div",{className:d?"flex justify-end gap-3 pt-2":"flex justify-end gap-3 border-t border-border px-6 py-4",children:[!d&&c&&(0,e.jsx)(h.$,{type:"button",variant:"outline",onClick:I,children:p("common.cancel")}),(0,e.jsx)(h.$,{type:"submit",disabled:!q||"custom"===s&&0===w.length||A,className:d?"w-full":void 0,size:d?"lg":"default",children:A?o??p("settings.creating"):n??p("settings.createApiKey")})]})]})}m=(n.then?(await n)():n)[0],d()}catch(a){d(a)}})},77219:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{XH:()=>h});var e=c(55511),f=c(71255);c(97307);var g=a([f]);f=(g.then?(await g)():g)[0];let i="cho_";function h(){var a;let b=(0,e.randomBytes)(32).toString("base64url"),c=`${i}${b}`,d=(a=c,(0,e.createHash)("sha256").update(a).digest("hex")),f=`${i}${b.slice(0,4)}...${b.slice(-4)}`;return{key:c,hash:d,prefix:f}}d()}catch(a){d(a)}})},86700:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{N:()=>h});var e=c(10837),f=c(97450),g=a([f]);function h({code:a,language:b}){let c=`\`\`\`${b||""}
38
38
  ${a}
39
- \`\`\``;return(0,e.jsx)(f.MarkdownContent,{children:c})}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},97731:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]])},98632:(a,b,c)=>{c.d(b,{L:()=>t});var d=c(10837),e=c(21968),f=c(9222),g=c(16235),h=c(6871),i=c(9994),j=c(2852),k=c(20170),l=c(8495),m=c(55732),n=c(54005),o=c(6008);let p={admin_agent:"agent.permissions.presetAdmin",pm_agent:"agent.permissions.presetPm",developer_agent:"agent.permissions.presetDev",custom:"agent.permissions.presetCustom"},q={admin_agent:"agent.permissions.help.admin",pm_agent:"agent.permissions.help.pm",developer_agent:"agent.permissions.help.dev",custom:"agent.permissions.help.custom"},r=["admin_agent","pm_agent","developer_agent","custom"];function s({preset:a,permissions:b,onChange:c,readOnly:e=!1}){let g=(0,f.c)(),h=a??"custom",i=new Set("custom"===h?b:n.o[h]);return(0,d.jsxs)("div",{"data-testid":"agent-permission-picker",className:"space-y-4",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(j.J,{className:"text-[13px] font-medium",children:g("agent.permissions.title")}),(0,d.jsx)("p",{className:"text-muted-foreground text-xs",children:g("agent.permissions.description")})]}),(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.J,{htmlFor:"agent-permission-preset",children:g("agent.permissions.presetLabel")}),(0,d.jsxs)(m.l6,{value:h,onValueChange:function(a){if("custom"===a)return void c({preset:"custom",roles:[],permissions:Array.from(i)});a in n.o&&c({preset:a,roles:[a],permissions:[]})},disabled:e,children:[(0,d.jsx)(m.bq,{id:"agent-permission-preset",className:"w-full","aria-label":g("agent.permissions.presetLabel"),children:(0,d.jsx)(m.yv,{placeholder:g(p[h]),children:g(p[h])})}),(0,d.jsx)(m.gC,{children:r.map(a=>(0,d.jsx)(m.eb,{value:a,textValue:g(p[a]),children:(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 py-0.5",children:[(0,d.jsx)("span",{className:"text-sm font-semibold",children:g(p[a])}),(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:g(q[a])})]})},a))})]})]}),(0,d.jsxs)("div",{role:"grid","aria-label":g("agent.permissions.title"),className:"overflow-hidden rounded-md border",children:[(0,d.jsxs)("div",{role:"row",className:"bg-muted/50 text-muted-foreground grid grid-cols-[1.5fr_repeat(3,1fr)] items-center gap-2 px-4 py-2 text-xs font-medium",children:[(0,d.jsx)("div",{role:"columnheader",children:g("agent.permissions.resourceHeader")}),o.kl.map(a=>(0,d.jsx)("div",{role:"columnheader",className:"text-center",children:g(`agent.permissions.actions.${a}`)},a))]}),o.eZ.map(a=>(0,d.jsxs)("div",{role:"row",className:"border-t grid grid-cols-[1.5fr_repeat(3,1fr)] items-center gap-2 px-4 py-2 text-sm",children:[(0,d.jsx)("div",{role:"rowheader",className:"font-medium",children:g(`agent.permissions.resources.${a}`)}),o.kl.map(b=>{let f=`${a}:${b}`,h=`perm-${a}-${b}`;return(0,d.jsx)("div",{role:"gridcell",className:"flex items-center justify-center",children:(0,d.jsx)(l.S,{id:h,checked:i.has(f),disabled:e,"aria-label":`${g(`agent.permissions.resources.${a}`)} ${g(`agent.permissions.actions.${b}`)}`,onCheckedChange:a=>{if(!e){let b=new Set(i);!0===a?b.add(f):b.delete(f),c({preset:"custom",roles:[],permissions:Array.from(b)})}}})},b)})]},a))]})]})]})}function t({name:a,onNameChange:b,preset:c,permissions:l,onPermissionsChange:m,persona:o,onPersonaChange:p,nameInputId:q="agent-form-name",personaInputId:r="agent-form-persona",readOnly:t=!1}){let u=(0,f.c)(),v=(0,e.useMemo)(()=>"custom"===c?l:[...n.o[c]],[c,l]);return(0,d.jsxs)("div",{className:"space-y-5",children:[(0,d.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[a.trim()?(0,d.jsx)(h.AgentAvatar,{name:a,size:56,className:"rounded-2xl"}):(0,d.jsx)("div",{"aria-hidden":!0,className:"flex size-14 items-center justify-center rounded-2xl bg-muted text-muted-foreground",children:(0,d.jsx)(g.A,{className:"size-7"})}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:u("settings.agentAvatarPreview")})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.J,{htmlFor:q,className:"text-[13px]",children:u("settings.name")}),(0,d.jsx)(i.p,{id:q,value:a,onChange:a=>b(a.target.value),placeholder:u("settings.namePlaceholder"),className:"border-border",required:!0,disabled:t})]}),(0,d.jsx)(s,{preset:c,permissions:v,onChange:m,readOnly:t}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.J,{htmlFor:r,className:"text-[13px]",children:u("settings.agentPersona")}),(0,d.jsx)(k.T,{id:r,value:o,onChange:a=>p(a.target.value),placeholder:u("settings.personaPlaceholder"),rows:4,disabled:t}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:u("settings.personaHint")})]})]})}}};
39
+ \`\`\``;return(0,e.jsx)(f.MarkdownContent,{children:c})}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},93444:(a,b,c)=>{c.d(b,{I:()=>e});var d=c(42377);let e=(0,d.createServerReference)("4070f7519b54546522dce8a90b61c9311b9cb4960f",d.callServer,void 0,d.findSourceMapURL,"createAgentAndKeyAction")},98632:(a,b,c)=>{c.d(b,{L:()=>t});var d=c(10837),e=c(21968),f=c(9222),g=c(16235),h=c(6871),i=c(9994),j=c(2852),k=c(20170),l=c(8495),m=c(55732),n=c(54005),o=c(6008);let p={admin_agent:"agent.permissions.presetAdmin",pm_agent:"agent.permissions.presetPm",developer_agent:"agent.permissions.presetDev",custom:"agent.permissions.presetCustom"},q={admin_agent:"agent.permissions.help.admin",pm_agent:"agent.permissions.help.pm",developer_agent:"agent.permissions.help.dev",custom:"agent.permissions.help.custom"},r=["admin_agent","pm_agent","developer_agent","custom"];function s({preset:a,permissions:b,onChange:c,readOnly:e=!1}){let g=(0,f.c)(),h=a??"custom",i=new Set("custom"===h?b:n.o[h]);return(0,d.jsxs)("div",{"data-testid":"agent-permission-picker",className:"space-y-4",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(j.J,{className:"text-[13px] font-medium",children:g("agent.permissions.title")}),(0,d.jsx)("p",{className:"text-muted-foreground text-xs",children:g("agent.permissions.description")})]}),(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.J,{htmlFor:"agent-permission-preset",children:g("agent.permissions.presetLabel")}),(0,d.jsxs)(m.l6,{value:h,onValueChange:function(a){if("custom"===a)return void c({preset:"custom",roles:[],permissions:Array.from(i)});a in n.o&&c({preset:a,roles:[a],permissions:[]})},disabled:e,children:[(0,d.jsx)(m.bq,{id:"agent-permission-preset",className:"w-full","aria-label":g("agent.permissions.presetLabel"),children:(0,d.jsx)(m.yv,{placeholder:g(p[h]),children:g(p[h])})}),(0,d.jsx)(m.gC,{children:r.map(a=>(0,d.jsx)(m.eb,{value:a,textValue:g(p[a]),children:(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 py-0.5",children:[(0,d.jsx)("span",{className:"text-sm font-semibold",children:g(p[a])}),(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:g(q[a])})]})},a))})]})]}),(0,d.jsxs)("div",{role:"grid","aria-label":g("agent.permissions.title"),className:"overflow-hidden rounded-md border",children:[(0,d.jsxs)("div",{role:"row",className:"bg-muted/50 text-muted-foreground grid grid-cols-[1.5fr_repeat(3,1fr)] items-center gap-2 px-4 py-2 text-xs font-medium",children:[(0,d.jsx)("div",{role:"columnheader",children:g("agent.permissions.resourceHeader")}),o.kl.map(a=>(0,d.jsx)("div",{role:"columnheader",className:"text-center",children:g(`agent.permissions.actions.${a}`)},a))]}),o.eZ.map(a=>(0,d.jsxs)("div",{role:"row",className:"border-t grid grid-cols-[1.5fr_repeat(3,1fr)] items-center gap-2 px-4 py-2 text-sm",children:[(0,d.jsx)("div",{role:"rowheader",className:"font-medium",children:g(`agent.permissions.resources.${a}`)}),o.kl.map(b=>{let f=`${a}:${b}`,h=`perm-${a}-${b}`;return(0,d.jsx)("div",{role:"gridcell",className:"flex items-center justify-center",children:(0,d.jsx)(l.S,{id:h,checked:i.has(f),disabled:e,"aria-label":`${g(`agent.permissions.resources.${a}`)} ${g(`agent.permissions.actions.${b}`)}`,onCheckedChange:a=>{if(!e){let b=new Set(i);!0===a?b.add(f):b.delete(f),c({preset:"custom",roles:[],permissions:Array.from(b)})}}})},b)})]},a))]})]})]})}function t({name:a,onNameChange:b,preset:c,permissions:l,onPermissionsChange:m,persona:o,onPersonaChange:p,nameInputId:q="agent-form-name",personaInputId:r="agent-form-persona",readOnly:t=!1}){let u=(0,f.c)(),v=(0,e.useMemo)(()=>"custom"===c?l:[...n.o[c]],[c,l]);return(0,d.jsxs)("div",{className:"space-y-5",children:[(0,d.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[a.trim()?(0,d.jsx)(h.AgentAvatar,{name:a,size:56,className:"rounded-2xl"}):(0,d.jsx)("div",{"aria-hidden":!0,className:"flex size-14 items-center justify-center rounded-2xl bg-muted text-muted-foreground",children:(0,d.jsx)(g.A,{className:"size-7"})}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:u("settings.agentAvatarPreview")})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.J,{htmlFor:q,className:"text-[13px]",children:u("settings.name")}),(0,d.jsx)(i.p,{id:q,value:a,onChange:a=>b(a.target.value),placeholder:u("settings.namePlaceholder"),className:"border-border",required:!0,disabled:t})]}),(0,d.jsx)(s,{preset:c,permissions:v,onChange:m,readOnly:t}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.J,{htmlFor:r,className:"text-[13px]",children:u("settings.agentPersona")}),(0,d.jsx)(k.T,{id:r,value:o,onChange:a=>p(a.target.value),placeholder:u("settings.personaPlaceholder"),rows:4,disabled:t}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:u("settings.personaHint")})]})]})}}};
@@ -0,0 +1,6 @@
1
+ "use strict";exports.id=4672,exports.ids=[4672],exports.modules={1110:(a,b,c)=>{c.d(b,{M:()=>S});var d=c(10837),e=c(21968),f=c(9222),g=c(76549),h=c(75888),i=c(98893),j=c(58270),k=c(77840),l=c(33291),m=c(53109),n=c(24364),o=c(87461),p=c(59876),q=c(14973),r=c(79543),s=c(21790),t=c(42424),u=c(33863),v=c(94143),w=c(99127),x=c(17339),y=c(50042),z=c(42377);z.callServer,z.findSourceMapURL;let A=(0,z.createServerReference)("705b81805be42afce15daf8abbb8433279c955a395",z.callServer,void 0,z.findSourceMapURL,"researchIdeaAction");var B=c(76799),C=c(77078),D=c(11568),E=c(2852),F=c(55732),G=c(23871),H=c(27876);function I({projectUuid:a,onConfirm:b,onCancel:c,onCloseAutoFocus:g}){let h=(0,f.c)("research"),i=(0,f.c)("common"),j=(0,e.useId)(),[k,l]=(0,e.useState)([]),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)([]),[q,r]=(0,e.useState)(null),[s,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(!0),[x,y]=(0,e.useState)(null),z=s?.source==="project_fixed",A=!!m&&!v&&(z?"ready"===s.availability:!!q?.agentInstanceUuid);return(0,d.jsx)(D.lG,{open:!0,onOpenChange:a=>{a||c()},children:(0,d.jsxs)(D.Cf,{overlayClassName:"z-[105]",className:"z-[110] max-h-[85svh] overflow-y-auto",onCloseAutoFocus:g,children:[(0,d.jsxs)(D.c7,{children:[(0,d.jsx)(D.L3,{children:h("selectAgent")}),(0,d.jsx)(D.rr,{children:h("selectionHint")})]}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(E.J,{htmlFor:j,children:h("agentLabel")}),(0,d.jsxs)(F.l6,{value:m,onValueChange:n,children:[(0,d.jsx)(F.bq,{id:j,className:"w-full",children:(0,d.jsx)(F.yv,{placeholder:h("selectAgent")})}),(0,d.jsx)(F.gC,{className:"z-[120]",children:k.map(a=>(0,d.jsx)(F.eb,{value:a.uuid,children:a.name},a.uuid))})]}),v&&(0,d.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:h("loading")}),!v&&0===k.length&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:h("noAgents")}),z&&(0,d.jsx)(H.Y,{target:s}),!z&&!v&&m&&(0,d.jsx)(G.O,{instances:o,selectedConnectionUuid:q?.connectionUuid??"",onSelect:r}),!v&&m&&(z&&"ready"!==s.availability||!z&&0===o.length)&&(0,d.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:h("agent_offline")}),x&&(0,d.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:h(x)})]}),(0,d.jsxs)(D.Es,{children:[(0,d.jsx)(t.$,{variant:"outline",onClick:c,children:i("cancel")}),(0,d.jsx)(t.$,{disabled:!A,onClick:()=>b({agentUuid:m,...!z&&q?.agentInstanceUuid?{instanceUuid:q.agentInstanceUuid}:{}}),children:h("requestButton")})]})]})})}function J({ideaUuid:a,projectUuid:b,assignee:c,disabledReason:h,refreshKey:i,onStarted:j,renderAction:k,onCloseAutoFocus:l}){let m=(0,f.c)("research"),[n,o]=(0,e.useState)("loading"),[p,q]=(0,e.useState)(!1),r=(0,e.useRef)(!1),[s,t]=(0,e.useState)(0),[u,v]=(0,e.useState)(!1),w=(0,e.useRef)(void 0),x=(0,e.useCallback)(async(a,b,c)=>(w.current={agentUuid:b,instanceUuid:c},{success:!0}),[]),{start:z,pickerState:D,confirmPick:E,confirmTemporary:F,cancelPick:G,isResolving:H}=(0,B.E)({reassignNoWake:x,previewIdeaUuid:a}),J=async(b,d=!0)=>{if(!r.current){r.current=!0,q(!0);try{let e=b||w.current?await A(a,b,w.current):await A(a);e.success?(o(void 0),g.oR.success(m("dispatched")),w.current=void 0,j()):(d&&"assignment_required"===e.errorCode&&(0,y.Q9)(c)?(r.current=!1,z({ideaUuid:a,wake:a=>J(a,!1)})):(g.oR.error(m(e.errorCode)),"assignment_required"!==e.errorCode||(0,y.Q9)(c)||v(!0)),t(a=>a+1))}catch{g.oR.error(m("unknown"))}finally{r.current=!1,q(!1)}}};return(0,d.jsxs)(d.Fragment,{children:[k({label:m("button"),busy:p||H||u,disabledReason:h||(p||H||u?m("dispatching"):n?m(n):void 0),onSelect:()=>{h||n||r.current||H||(w.current=void 0,(0,y.Q9)(c)?J():v(!0))}}),(0,d.jsx)(C.V,{open:null!==D,onCloseAutoFocus:l,agentName:"",instances:D?.instances??[],agentUuid:D?.agentUuid,onConfirm:E,onTemporaryConfirm:F,onCancel:G}),u&&(0,d.jsx)(I,{projectUuid:b,onCloseAutoFocus:l,onCancel:()=>v(!1),onConfirm:a=>{w.current=a,v(!1),J(void 0,!1)}})]})}c(404),c(25696);var K=c(18883),L=c(42087),M=c(96307);let N={default:"",research:"text-[#9A6700] focus:text-[#7A5100] focus:bg-[#FFF4CE] dark:text-[#F2C45D] dark:focus:text-[#F7D990] dark:focus:bg-[#3B2D12]",verify:"text-[#1976D2] focus:text-[#155FA0] focus:bg-[#E3F2FD] dark:text-[#64B5F6] dark:focus:text-[#90CAF9] dark:focus:bg-[#102A43]",develop:"text-[#2E7D32] focus:text-[#256628] focus:bg-[#E8F5E9] dark:text-[#72D572] dark:focus:text-[#9AE69A] dark:focus:bg-[#17351D]",yolo:"text-[#6A4FB6] focus:text-[#584098] focus:bg-[#F1ECFA] dark:text-[#B39DDB] dark:focus:text-[#D1C4E9] dark:focus:bg-[#2A2040]",destructive:"text-destructive focus:text-destructive focus:bg-destructive/10"};function O(a){return()=>{}}function P(){return!1}function Q({label:a,icon:b,reason:c,onSelect:f,onTooltipEscape:g,tone:h="default"}){let i=(0,e.useId)(),j=(0,d.jsxs)(u._2,{"aria-label":a,"aria-disabled":!!c,"aria-describedby":c?i:void 0,variant:"destructive"===h?"destructive":"default",className:(0,M.cn)(N[h],c&&"cursor-default text-muted-foreground focus:bg-accent focus:text-muted-foreground dark:focus:bg-accent dark:text-muted-foreground dark:focus:text-muted-foreground"),onKeyDown:a=>{"Enter"===a.key&&(0,L.P)(a)&&a.preventDefault()},onSelect:a=>{c?a.preventDefault():f()},children:[b,(0,d.jsx)("span",{children:a}),c&&(0,d.jsx)("span",{id:i,className:"sr-only",children:c})]});return c?(0,d.jsxs)(w.m_,{children:[(0,d.jsx)(w.k$,{asChild:!0,children:j}),(0,d.jsx)(w.ZI,{side:"left",className:"z-[120] max-w-64",onEscapeKeyDown:g,children:c})]}):j}function R({label:a,icon:b,reason:c,onSelect:f,tone:g="default"}){let h=(0,e.useId)();return(0,d.jsxs)(t.$,{type:"button",variant:"ghost","aria-label":a,"aria-disabled":!!c,"aria-describedby":c?h:void 0,className:(0,M.cn)("focus-visible:ring-ring flex h-auto min-h-12 w-full items-center gap-3 whitespace-normal rounded-lg px-3 py-2 text-left text-sm outline-none transition-colors","hover:bg-accent focus-visible:ring-2 [&_svg]:size-5 [&_svg]:shrink-0",N[g],c&&"cursor-default text-muted-foreground hover:bg-transparent focus:bg-accent focus:text-muted-foreground dark:focus:bg-accent dark:text-muted-foreground dark:focus:text-muted-foreground"),onKeyDown:a=>{"Enter"===a.key&&(0,L.P)(a)&&a.preventDefault()},onClick:()=>{c||f()},children:[b,(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block font-medium",children:a}),c&&(0,d.jsx)("span",{id:h,className:"mt-0.5 block break-words whitespace-normal text-xs leading-4 text-muted-foreground",children:c})]})]})}function S(a){let b=(0,f.c)(),c=(0,f.c)("ideaTracker.panel.actions"),[y,z]=(0,e.useState)(!1),A=(0,e.useSyncExternalStore)(O,P,()=>!1),B=a.busy?c("busy"):void 0,C=B||a.stageReason||a.stageDataReason,D=async b=>{try{let d=b?new URL(`/projects/${a.projectUuid}/dashboard?panel=${a.ideaUuid}`,window.location.origin).href:a.ideaUuid;await navigator.clipboard.writeText(d),g.oR.success(c(b?"linkCopied":"uuidCopied"))}catch{g.oR.error(c("copyFailed"))}},E={ideaUuid:a.ideaUuid,assignee:a.assignee,assigneeName:a.assigneeName,proposals:a.proposals,tasks:a.tasks,onStarted:a.onStarted,disabledReason:C,onCloseAutoFocus:a.onCloseAutoFocus};return(0,d.jsx)(J,{ideaUuid:a.ideaUuid,projectUuid:a.projectUuid,assignee:a.assignee,disabledReason:B,onCloseAutoFocus:a.onCloseAutoFocus,refreshKey:JSON.stringify([a.proposals,a.tasks]),onStarted:a.onStarted,renderAction:f=>(0,d.jsx)(x.w,{...E,disabledReason:C||(f.busy?c("busy"):void 0),renderAction:g=>(0,d.jsx)(K.s,{...E,disabledReason:C||(g.busy?c("busy"):void 0),renderAction:x=>{let C=B||(g.busy||x.busy||f.busy?c("busy"):void 0),E=[[{label:f.label,icon:(0,d.jsx)(h.A,{}),reason:C||f.disabledReason,onSelect:f.onSelect,tone:"research"},{label:b("elaboration.verifyButton"),icon:(0,d.jsx)(i.A,{}),reason:C||a.stageReason||a.verifyReason,onSelect:a.onVerify,tone:"verify"},{label:g.label,icon:(0,d.jsx)(j.A,{}),reason:C||g.disabledReason,onSelect:g.onSelect,tone:"develop"},{label:x.label,icon:(0,d.jsx)(k.A,{}),reason:C||x.disabledReason,onSelect:x.onSelect,tone:"yolo"}],[{label:b("ideaTracker.lineage.deriveIdea"),icon:(0,d.jsx)(l.A,{}),reason:C,onSelect:a.onDerive,tone:"default"},{label:b("ideaTracker.lineage.setParentTitle"),icon:(0,d.jsx)(m.A,{}),reason:C,onSelect:a.onSetParent,tone:"default"},{label:b("ideas.actions.move"),icon:(0,d.jsx)(n.A,{}),reason:C,onSelect:a.onMove,tone:"default"},{label:b("ideas.editIdea"),icon:(0,d.jsx)(o.A,{}),reason:C||a.editReason,onSelect:a.onEdit,tone:"default"}],[{label:c("copyLink"),icon:(0,d.jsx)(p.A,{}),onSelect:()=>{D(!0)},tone:"default"},{label:c("copyUuid"),icon:(0,d.jsx)(q.A,{}),onSelect:()=>{D(!1)},tone:"default"}],[{label:b("ideas.deleteIdea"),icon:(0,d.jsx)(r.A,{}),reason:C,onSelect:a.onDelete,tone:"destructive"}]];return A?(0,d.jsxs)(v.cj,{open:y,onOpenChange:z,children:[(0,d.jsx)(v.CG,{asChild:!0,children:(0,d.jsxs)(t.$,{ref:a.triggerRef,variant:"outline",size:"sm",className:"h-11 gap-1.5 border-border px-3",children:[b("common.actions"),(0,d.jsx)(s.A,{className:"size-4","aria-hidden":!0})]})}),(0,d.jsxs)(v.h,{side:"bottom",className:"max-h-[min(82svh,44rem)] gap-0 overflow-hidden rounded-t-2xl pb-[max(1rem,env(safe-area-inset-bottom))]",onCloseAutoFocus:a.onCloseAutoFocus,children:[(0,d.jsx)("div",{className:"mx-auto mt-2 h-1 w-10 shrink-0 rounded-full bg-muted-foreground/25","aria-hidden":!0}),(0,d.jsxs)(v.Fm,{className:"border-b px-4 pt-3 pb-3 text-left",children:[(0,d.jsx)(v.qp,{children:b("common.actions")}),(0,d.jsx)(v.Qs,{className:"sr-only",children:b("common.actions")})]}),(0,d.jsx)("div",{className:"overflow-y-auto overscroll-contain px-2 py-2",children:E.map((a,b)=>(0,d.jsx)("div",{className:(0,M.cn)(b>0&&"mt-1 border-t pt-1"),children:a.map(a=>(0,d.jsx)(R,{...a,onSelect:()=>{z(!1),a.onSelect()}},a.label))},b))})]})]}):(0,d.jsx)(w.Bc,{delayDuration:300,children:(0,d.jsxs)(u.rI,{open:y,onOpenChange:z,children:[(0,d.jsx)(u.ty,{asChild:!0,children:(0,d.jsxs)(t.$,{ref:a.triggerRef,variant:"outline",size:"sm",className:"h-8 gap-1.5 border-border px-2.5",children:[b("common.actions"),(0,d.jsx)(s.A,{className:"h-3.5 w-3.5","aria-hidden":!0})]})}),(0,d.jsx)(u.SQ,{align:"end",className:"z-[100] w-64 max-w-[calc(100vw-1rem)] max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto",children:E.map((a,b)=>(0,d.jsxs)(e.Fragment,{children:[b>0&&(0,d.jsx)(u.mB,{}),a.map(a=>(0,d.jsx)(Q,{...a,onTooltipEscape:()=>z(!1)},a.label))]},b))})]})})}})})})}},8495:(a,b,c)=>{c.d(b,{S:()=>h});var d=c(10837);c(21968);var e=c(9810),f=c(25711),g=c(96307);function h({className:a,...b}){return(0,d.jsx)(f.Root,{"data-slot":"checkbox",className:(0,g.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(f.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:(0,d.jsx)(e.A,{className:"size-3.5"})})})}},9190:(a,b,c)=>{c.d(b,{n:()=>v});var d=c(10837),e=c(21968),f=c(9222),g=c(51592),h=c(49102),i=c(21790),j=c(20447),k=c(9810),l=c(97443),m=c(81512),n=c.n(m),o=c(76172),p=c(35926),q=c(22727),r=c(6871),s=c(7086),t=c(77521);let u=["in_progress","to_verify","open","assigned","done","closed"];function v({tasks:a,projectUuid:b,proposalUuids:c,onSelectTask:m}){let v=(0,f.c)("ideaTracker"),[w,x]=(0,e.useState)({}),y=(0,e.useMemo)(()=>a.map(a=>a.uuid),[a]),z=(0,e.useCallback)(async()=>{if(0===y.length)return;let a=await (0,p.h)(y);a.success&&a.data&&x(a.data)},[y]);(0,o.eV)("task",z);let A=(0,e.useMemo)(()=>{let b=[];for(let c of u){let d=a.filter(a=>a.status===c);d.length>0&&b.push({status:c,tasks:d})}let c=new Set(u),d=a.filter(a=>!c.has(a.status));return d.length>0&&b.push({status:"other",tasks:d}),b},[a]),[B,C]=(0,e.useState)(new Set),D=(0,e.useMemo)(()=>{let b=a.length,c=a.filter(a=>"done"===a.status||"closed"===a.status).length,d=0,e=0,f=0,g=0;for(let b of a)b.acceptanceSummary&&(d+=b.acceptanceSummary.total,e+=b.acceptanceSummary.passed,f+=b.acceptanceSummary.required,g+=b.acceptanceSummary.requiredPassed);return{total:b,done:c,acTotal:d,acPassed:e,acRequired:f,acRequiredPassed:g}},[a]);return 0===a.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-12 text-center",children:[(0,d.jsx)(g.A,{className:"h-8 w-8 text-muted-foreground"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:v("panel.taskList.noTasks")})]}):(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-lg bg-[#FAFAF7] dark:bg-[#1e1e1c] px-3 py-2",children:[(0,d.jsx)("span",{className:"text-[12px] text-muted-foreground",children:v("panel.taskList.summary",{done:D.done,total:D.total})}),D.acTotal>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"text-[12px] text-muted-foreground",children:"\xb7"}),(0,d.jsx)("span",{className:"text-[12px] text-muted-foreground",children:v("panel.taskList.acSummary",{passed:D.acRequiredPassed,total:D.acRequired})})]}),c.length>0&&(0,d.jsxs)(n(),{href:`/projects/${b}/tasks?proposalUuids=${c.join(",")}`,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-primary shrink-0",children:[v("panel.taskList.viewKanban"),(0,d.jsx)(h.A,{className:"h-3.5 w-3.5"})]})]}),A.map(a=>{let b=B.has(a.status);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{onClick:()=>{var b;return b=a.status,void C(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:"flex items-center gap-2 w-full text-left py-1.5 group cursor-pointer",children:[b?(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:`h-2 w-2 rounded-full shrink-0 ${(0,t.eT)(a.status)}`}),(0,d.jsx)("span",{className:"text-[13px] font-medium text-foreground",children:function(a,b){switch(a){case"in_progress":return b("panel.taskList.inProgress");case"to_verify":return b("panel.taskList.toVerify");case"open":return b("panel.taskList.open");case"assigned":return b("panel.taskList.assigned");case"done":return b("panel.taskList.done");case"closed":return b("panel.taskList.closed");default:return a}}(a.status,v)}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground ml-auto",children:a.tasks.length})]}),!b&&(0,d.jsx)("div",{className:"ml-3 space-y-0.5",children:a.tasks.map(a=>{let b=w[a.uuid]||0,c=a.acceptanceSummary;return(0,d.jsx)(q.D,{entityType:"task",entityUuid:a.uuid,badgeInside:!0,children:(0,d.jsxs)("button",{onClick:()=>m(a.uuid),className:"flex items-center gap-2 w-full text-left rounded-md px-2.5 py-2 hover:bg-secondary transition-colors group cursor-pointer",children:[(0,d.jsx)(j.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0 group-hover:text-primary"}),(0,d.jsx)("span",{className:`h-1.5 w-1.5 rounded-full shrink-0 ${(0,t.eT)(a.status)}`}),(0,d.jsx)("span",{className:"flex-1 text-[13px] text-foreground truncate group-hover:text-primary",children:a.title}),c&&c.total>0&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-0.5 shrink-0 rounded-full bg-[#F0EDE8] dark:bg-[#1f1e1c] px-1.5 py-0.5 text-[10px] text-muted-foreground",children:[(0,d.jsx)(k.A,{className:"h-2.5 w-2.5"}),c.requiredPassed,"/",c.required]}),a.assignee&&(0,d.jsxs)("span",{className:"shrink-0 inline-flex items-center gap-1 text-[10px] text-muted-foreground max-w-[72px] truncate",title:a.assignee.name,children:[(0,s.bB)(a.assignee)?(0,d.jsx)(r.AgentAvatar,{name:a.assignee.name,size:14,className:"shrink-0 rounded-full"}):(0,d.jsx)(l.A,{className:"h-2.5 w-2.5 shrink-0"}),a.assignee.name.split(/[@\s]/)[0]]}),b>0&&(0,d.jsx)("span",{className:"inline-flex items-center justify-center h-4 min-w-[16px] rounded-full bg-[#E8F5E9] dark:bg-[#14281a] text-[#2E7D32] dark:text-[#5FD07E] text-[9px] font-semibold shrink-0",title:v("panel.taskList.workersActive",{count:b}),children:b})]})},a.uuid)})})]},a.status)})]})}},10123:(a,b,c)=>{c.d(b,{i:()=>e});var d=c(25104);function e(a){return`${d.W} Explicit, one-time research request for ideaUuid: ${a}.
2
+ This is the existing Idea's root conversation. Before research and again before saving, re-read the Idea, ALL related proposals/tasks and execution history including theme descendants. If development has begun, report that the stage changed and STOP without research or edits.
3
+ Invoke the shared research skill for ONE bounded pass (approximately 2–5 minutes, at most 5 deeply read sources). Reuse existing evidence. An explicit user instruction to skip research takes precedence. Tools unavailable, empty results, or exhausted budget: record the limitation and stop.
4
+ Attach useful sources through existing references and obtain real UUIDs. Read the latest Idea content immediately before saving and MERGE concise findings, source citations using ref:UUID, implications, unknowns, and the stopping reason; preserve user text and existing evidence.
5
+ Preserve all elaboration rounds, questions, answers and resolved state. Do not create or claim an Idea, start elaboration, submit or modify a Proposal, change task status, or start development. If findings affect an approved proposal, only record the impact and revision needs in the Idea.
6
+ Report the findings and END this turn. This menu invocation does not resume the Idea or Proposal workflow. A later explicit Research request may run another bounded pass.`}},13108:(a,b,c)=>{c.d(b,{Q:()=>e});var d=c(42377);let e=(0,d.createServerReference)("4018c133cab464c751b091e477234f766d43acc054",d.callServer,void 0,d.findSourceMapURL,"getTaskAction")},17026:(a,b,c)=>{c.d(b,{p:()=>s});var d=c(10837),e=c(21968),f=c(9222),g=c(5797);let h=(0,c(56556).A)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);var i=c(21289),j=c(51592),k=c(65956),l=c(20447),m=c(9810),n=c(90856),o=c(21790),p=c(49102),q=c(42377);q.callServer,q.findSourceMapURL;var r=c(77521);function s({idea:a,proposals:b,tasks:c,onSelectTask:q}){let s=(0,f.c)("ideaTracker"),t=(0,f.c)(),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(new Set),y=(0,e.useMemo)(()=>"open"===a.status?"idea_created":"elaborating"===a.status||0===b.length?"elaboration":b.some(a=>"approved"===a.status)&&c.length>0?"tasks":"proposal",[a.status,b,c]),z=(0,e.useMemo)(()=>{let a=["idea_created","elaboration","proposal","tasks"],b=a.indexOf(y);return a.map((a,c)=>({id:a,labelKey:({idea_created:"panel.timeline.ideaCreated",elaboration:"panel.timeline.elaboration",proposal:"panel.timeline.proposal",tasks:"panel.timeline.tasksProgress"})[a],status:c<b?"completed":c===b?"active":"upcoming",icon:({idea_created:(0,d.jsx)(g.A,{className:"h-3.5 w-3.5"}),elaboration:(0,d.jsx)(h,{className:"h-3.5 w-3.5"}),proposal:(0,d.jsx)(i.A,{className:"h-3.5 w-3.5"}),tasks:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5"})})[a]}))},[y]),A=(0,e.useCallback)(a=>{x(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),B=(0,e.useMemo)(()=>"open"===a.status?s("panel.timeline.noElaboration"):"skipped"===a.elaborationStatus?s("panel.timeline.elaborationSkipped"):"resolved"===a.elaborationStatus&&u?s("panel.timeline.elaborationComplete",{count:u.summary.totalQuestions}):"elaborating"===a.status?s("panel.timeline.elaborationInProgress"):u&&u.summary.totalQuestions>0?s("panel.timeline.elaborationComplete",{count:u.summary.totalQuestions}):s("panel.timeline.noElaboration"),[a.status,a.elaborationStatus,u,s]),C=(0,e.useMemo)(()=>{if(0===b.length)return s("panel.timeline.noProposal");let a=b.filter(a=>"approved"===a.status).length,c=b.filter(a=>"pending"===a.status).length;if(a>0&&1===b.length)return s("panel.timeline.proposalApproved");if(a>0)return s("panel.timeline.proposalsApproved",{count:a,total:b.length});if(c>0)return s("panel.timeline.proposalPending");switch(b[0].status){case"draft":default:return s("panel.timeline.proposalDraft");case"rejected":return s("panel.timeline.proposalRejected")}},[b,s]),D=(0,e.useMemo)(()=>{let a=0,c=0;for(let d of b)a+=d.documentDrafts?.length??0,c+=d.taskDrafts?.length??0;return{docCount:a,taskDraftCount:c}},[b]),E=(0,e.useMemo)(()=>{let a=c.filter(a=>"done"===a.status||"closed"===a.status).length,b=c.filter(a=>"in_progress"===a.status).length;return{done:a,inProgress:b,toVerify:c.filter(a=>"to_verify"===a.status).length,open:c.filter(a=>"open"===a.status||"assigned"===a.status).length,total:c.length}},[c]);return(0,d.jsx)("div",{className:"space-y-0",children:z.map((e,f)=>{let g=w.has(e.id),h=f===z.length-1;return(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsxs)("div",{className:"flex flex-col items-center w-5 shrink-0",children:[(0,d.jsx)("div",{className:"mt-1",children:"completed"===e.status?(0,d.jsx)("div",{className:"h-5 w-5 rounded-full bg-[#E0F2F1] dark:bg-[#12292a] flex items-center justify-center",children:(0,d.jsx)(m.A,{className:"h-3 w-3 text-[#00796B] dark:text-[#4FD1C0]"})}):"active"===e.status?(0,d.jsx)("div",{className:"h-5 w-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(n.A,{className:"h-2 w-2 fill-white text-white"})}):(0,d.jsx)("div",{className:"h-5 w-5 rounded-full border-2 border-dashed border-[#D9D9D9] dark:border-[#3a3a40] flex items-center justify-center",children:(0,d.jsx)(n.A,{className:"h-2 w-2 text-muted-foreground"})})}),!h&&(0,d.jsx)("div",{className:"flex-1 w-px bg-border mt-1 min-h-[8px]"})]}),(0,d.jsxs)("div",{className:`flex-1 min-w-0 ${h?"pb-0":"pb-4"}`,children:[(0,d.jsxs)("button",{onClick:()=>A(e.id),className:"flex items-center gap-1.5 w-full text-left group cursor-pointer",children:[g?(0,d.jsx)(o.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}):(0,d.jsx)(p.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:`text-[13px] font-medium ${"active"===e.status?"text-primary":"completed"===e.status?"text-foreground":"text-muted-foreground"}`,children:s(e.labelKey)}),!g&&(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate ml-1",children:(b=>{switch(b.id){case"idea_created":return a.createdBy?a.createdBy.name:"";case"elaboration":return B;case"proposal":return C;case"tasks":return c.length>0?s("panel.timeline.tasksComplete",{done:E.done,total:E.total}):s("panel.timeline.noTasks");default:return""}})(e)})]}),(e=>{let f=w.has(e.id);switch(e.id){case"idea_created":return f?(0,d.jsxs)("div",{className:"mt-2 space-y-1.5",children:[a.createdBy&&(0,d.jsx)("p",{className:"text-[12px] text-muted-foreground",children:s("panel.timeline.createdBy",{name:a.createdBy.name})}),(0,d.jsx)("p",{className:"text-[12px] text-muted-foreground",children:(0,r.fw)(a.createdAt,t)}),a.content&&(0,d.jsxs)("p",{className:"text-[12px] text-muted-foreground line-clamp-2",children:[a.content.slice(0,120),a.content.length>120?"...":""]})]}):null;case"elaboration":return f?(0,d.jsxs)("div",{className:"mt-2 space-y-1.5",children:[(0,d.jsx)("p",{className:"text-[12px] text-muted-foreground",children:B}),u&&u.rounds.length>0&&(0,d.jsx)("p",{className:"text-[12px] text-muted-foreground",children:s("panel.timeline.rounds",{count:u.rounds.length})})]}):null;case"proposal":return f?(0,d.jsxs)("div",{className:"mt-2 space-y-1.5",children:[(0,d.jsx)("p",{className:"text-[12px] text-muted-foreground",children:C}),b.length>0&&(0,d.jsxs)("div",{className:"space-y-1",children:[D.docCount>0&&(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-[12px] text-muted-foreground",children:[(0,d.jsx)(k.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{children:s("panel.timeline.documents",{count:D.docCount})})]}),D.taskDraftCount>0&&(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-[12px] text-muted-foreground",children:[(0,d.jsx)(j.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{children:s("panel.timeline.tasks",{count:D.taskDraftCount})})]})]})]}):null;case"tasks":return f?(0,d.jsx)("div",{className:"mt-2 space-y-2",children:0===c.length?(0,d.jsx)("p",{className:"text-[12px] text-muted-foreground",children:s("panel.timeline.noTasks")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("div",{className:"flex-1 h-1.5 rounded-full bg-[#F0EDE8] dark:bg-[#1f1e1c] overflow-hidden flex",children:[E.done>0&&(0,d.jsx)("div",{className:"h-full bg-[#00796B]",style:{width:`${E.done/E.total*100}%`}}),E.inProgress>0&&(0,d.jsx)("div",{className:"h-full bg-[#1976D2]",style:{width:`${E.inProgress/E.total*100}%`}}),E.toVerify>0&&(0,d.jsx)("div",{className:"h-full bg-[#7B1FA2]",style:{width:`${E.toVerify/E.total*100}%`}})]}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground shrink-0",children:s("panel.timeline.tasksComplete",{done:E.done,total:E.total})})]}),(0,d.jsxs)("div",{className:"space-y-1",children:[c.slice(0,5).map(a=>(0,d.jsxs)("button",{onClick:()=>q(a.uuid),className:"flex items-center gap-2 w-full text-left rounded-md px-2 py-1.5 hover:bg-secondary transition-colors group cursor-pointer",children:[(0,d.jsx)(l.A,{className:"h-3 w-3 text-muted-foreground shrink-0 group-hover:text-primary"}),(0,d.jsx)("span",{className:`h-2 w-2 rounded-full shrink-0 ${(0,r.eT)(a.status)}`}),(0,d.jsx)("span",{className:"flex-1 text-[12px] text-foreground truncate group-hover:text-primary",children:a.title})]},a.uuid)),c.length>5&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground px-2",children:s("panel.timeline.moreItems",{count:c.length-5})})]})]})}):null;default:return null}})(e)]})]},e.id)})})}},17068:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{x:()=>k});var e=c(10837),f=c(21968),g=c(9222),h=c(40467),i=c(56828),j=a([i]);function k({ideaUuid:a,currentUserUuid:b,commentCount:c,onCommentCountChange:d}){let j=(0,g.c)("ideaTracker"),[k,l]=(0,f.useState)("comments");return(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{className:"flex gap-1 rounded-lg bg-secondary p-0.5",children:[(0,e.jsxs)("button",{onClick:()=>l("comments"),className:`flex-1 rounded-md px-3 py-1.5 text-[13px] font-medium transition-colors flex items-center justify-center gap-1.5 cursor-pointer ${"comments"===k?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-muted-foreground"}`,children:[j("panel.activityTab.comments"),c>0&&(0,e.jsx)("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-secondary text-muted-foreground text-[10px] font-semibold leading-none",children:c})]}),(0,e.jsx)("button",{onClick:()=>l("activity"),className:`flex-1 rounded-md px-3 py-1.5 text-[13px] font-medium transition-colors cursor-pointer ${"activity"===k?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-muted-foreground"}`,children:j("panel.activityTab.activity")})]}),(0,e.jsx)("div",{children:"activity"===k?(0,e.jsx)(h.v,{ideaUuid:a}):(0,e.jsx)(i.$m,{targetType:"idea",targetUuid:a,currentUserUuid:b,onCountChange:d,compact:!0})})]})}i=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},21289:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]])},25711:(a,b,c)=>{c.r(b),c.d(b,{Checkbox:()=>v,CheckboxIndicator:()=>x,Indicator:()=>x,Root:()=>v,createCheckboxScope:()=>p,unstable_BubbleInput:()=>z,unstable_CheckboxBubbleInput:()=>z,unstable_CheckboxProvider:()=>s,unstable_CheckboxTrigger:()=>u,unstable_Provider:()=>s,unstable_Trigger:()=>u});var d=c(21968),e=c(96090),f=c(42990),g=c(22546),h=c(15035),i=c(29851),j=c(7579),k=c(5030),l=c(16551),m=c(10837),n="Checkbox",[o,p]=(0,f.A)(n),[q,r]=o(n);function s(a){let{__scopeCheckbox:b,checked:c,children:e,defaultChecked:f,disabled:g,form:i,name:j,onCheckedChange:k,required:l,value:o="on",internal_do_not_use_render:p}=a,[r,s]=(0,h.i)({prop:c,defaultProp:f??!1,onChange:k,caller:n}),[t,u]=d.useState(null),[v,w]=d.useState(null),x=d.useRef(!1),y=!t||!!i||!!t.closest("form"),z={checked:r,disabled:g,setChecked:s,control:t,setControl:u,name:j,form:i,value:o,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:!A(f)&&f,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,m.jsx)(q,{scope:b,...z,children:"function"==typeof p?p(z):e})}var t="CheckboxTrigger",u=d.forwardRef(({__scopeCheckbox:a,onKeyDown:b,onClick:c,...f},h)=>{let{control:i,value:j,disabled:k,checked:n,required:o,setControl:p,setChecked:q,hasConsumerStoppedPropagationRef:s,isFormControl:u,bubbleInput:v}=r(t,a),w=(0,e.s)(h,p),x=d.useRef(n);return d.useEffect(()=>{let a=i?.form;if(a){let b=()=>q(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[i,q]),(0,m.jsx)(l.sG.button,{type:"button",role:"checkbox","aria-checked":A(n)?"mixed":n,"aria-required":o,"data-state":B(n),"data-disabled":k?"":void 0,disabled:k,value:j,...f,ref:w,onKeyDown:(0,g.mK)(b,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,g.mK)(c,a=>{q(a=>!!A(a)||!a),v&&u&&(s.current=a.isPropagationStopped(),s.current||a.stopPropagation())})})});u.displayName=t;var v=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i,onCheckedChange:j,form:k,...l}=a;return(0,m.jsx)(s,{__scopeCheckbox:c,checked:e,defaultChecked:f,disabled:h,required:g,onCheckedChange:j,name:d,form:k,value:i,internal_do_not_use_render:({isFormControl:a})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u,{...l,ref:b,__scopeCheckbox:c}),a&&(0,m.jsx)(z,{__scopeCheckbox:c})]})})});v.displayName=n;var w="CheckboxIndicator",x=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,forceMount:d,...e}=a,f=r(w,c);return(0,m.jsx)(k.C,{present:d||A(f.checked)||!0===f.checked,children:(0,m.jsx)(l.sG.span,{"data-state":B(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:b,style:{pointerEvents:"none",...a.style}})})});x.displayName=w;var y="CheckboxBubbleInput",z=d.forwardRef(({__scopeCheckbox:a,...b},c)=>{let{control:f,hasConsumerStoppedPropagationRef:g,checked:h,defaultChecked:k,required:n,disabled:o,name:p,value:q,form:s,bubbleInput:t,setBubbleInput:u}=r(y,a),v=(0,e.s)(c,u),w=(0,i.Z)(h),x=(0,j.X)(f);d.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!g.current;if(w!==h&&a){let c=new Event("click",{bubbles:b});t.indeterminate=A(h),a.call(t,!A(h)&&h),t.dispatchEvent(c)}},[t,w,h,g]);let z=d.useRef(!A(h)&&h);return(0,m.jsx)(l.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:k??z.current,required:n,disabled:o,name:p,value:q,form:s,...b,tabIndex:-1,ref:v,style:{...b.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function A(a){return"indeterminate"===a}function B(a){return A(a)?"indeterminate":a?"checked":"unchecked"}z.displayName=y},31370:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{CZ:()=>r,Di:()=>q});var e=c(10123),f=c(38402),g=c(71255),h=c(62729),i=c(26078),j=c(92633),k=c(25383),l=c(68938),m=c(61382),n=c(66366),o=a([g,j,k,l,m,n]);[g,j,k,l,m,n]=o.then?(await o)():o;class r extends Error{constructor(a){super(a),this.code=a}}async function p(a){for(let b=0;;b++)try{return await a()}catch(a){if(b>=2||"object"!=typeof a||!a||!("code"in a)||"P2002"!==a.code)throw a;await new Promise(a=>setTimeout(a,10*(b+1)))}}async function q(a){if(!["user","super_admin"].includes(a.actorType))throw new r("unauthorized");let{companyUuid:b,ideaUuid:c,actorUuid:d}=a,o=await g.z.idea.findFirst({where:{companyUuid:b,uuid:c}});if(!o)throw new r("idea_not_found");let q=await (0,j.wo)(b,o.assigneeType,o.assigneeUuid),s=a.selection?.agentUuid??q;if(!s)throw new r("assignment_required");if(q&&s!==q||a.temporaryCwd&&a.temporaryAgentUuid!==s)throw new r("target_changed");let t=await g.z.agent.findFirst({where:{companyUuid:b,uuid:s}});if(!t||"super_admin"!==a.actorType&&t.ownerUuid!==d)throw new r("permission_denied");let u=(0,i.RU)(t.roles,t.permissions),v=["idea:read","idea:write","proposal:read","task:read","document:read","document:write"];if(!v.every(a=>u.has(a)))throw new r("permission_denied");let w={companyUuid:b,actorUserUuid:d,projectUuid:o.projectUuid,agentUuid:s,registeredInstanceUuid:q===s&&"agent_instance"===o.assigneeType?o.assigneeUuid:null,registeredSource:q===s&&"project_fixed"===o.cwdSource?"project_fixed":null,registeredHost:q===s?o.cwdHost:null,registeredRuntimeCwd:q===s?o.runtimeCwd:null,temporaryTarget:a.temporaryCwd},x=await (0,k.gt)(w),y=a.selection?.instanceUuid&&"project_fixed"!==x.source?await (0,k.gt)({...w,registeredInstanceUuid:a.selection.instanceUuid,registeredSource:null,registeredHost:null,registeredRuntimeCwd:null}):x,z=await g.z.daemonSession.findFirst({where:{companyUuid:b,agentUuid:s,sessionId:c}});if(!z&&"unconfigured"===y.source&&await g.z.daemonConnection.count({where:{companyUuid:b,agentUuid:s,status:"online",lastSeenAt:{gte:new Date(Date.now()-l.STALE_THRESHOLD_MS)}}})>1)throw new r("assignment_required");let A=z?.originConnectionUuid??y.connectionUuid;if(!A)throw new r("agent_offline");if("unconfigured"!==y.source&&("ready"!==y.availability||z&&(y.connectionUuid!==z.originConnectionUuid||z.runtimeCwd&&y.cwd!==z.runtimeCwd)))throw new r("ready"!==y.availability?"agent_offline":"origin_conflict");let B=(0,e.i)(c),C=(0,f.DE)(),D=await p(()=>g.z.$transaction(async e=>{await (0,n.KG)(e,b,o.projectUuid),await e.$queryRaw`SELECT uuid FROM "Idea" WHERE uuid = ${c} AND "companyUuid" = ${b} FOR UPDATE`;let f=await e.idea.findFirst({where:{companyUuid:b,uuid:c}});if(!f)throw new r("idea_not_found");if(["projectUuid","assigneeType","assigneeUuid","cwdSource","cwdHost","runtimeCwd"].some(a=>f[a]!==o[a]))throw new r("target_changed");let g=await e.agent.findFirst({where:{companyUuid:b,uuid:s}});if(!g||"super_admin"!==a.actorType&&g.ownerUuid!==d||!v.every(a=>(0,i.RU)(g.roles,g.permissions).has(a)))throw new r("permission_denied");let h=await (0,n.Rf)(b,c,e);if(!h.eligible)throw new r(h.reason);let j=await e.daemonConnection.findFirst({where:{companyUuid:b,uuid:A,agentUuid:s,status:"online",lastSeenAt:{gte:new Date(Date.now()-l.STALE_THRESHOLD_MS)}}});if(!j)throw new r("agent_offline");if("unconfigured"!==y.source&&(j.host!==y.host||"registered_instance"===y.source&&!o.runtimeCwd&&j.cwd!==y.cwd))throw new r("target_changed");let k=await e.daemonSession.findFirst({where:{companyUuid:b,agentUuid:s,sessionId:c}});if(k&&(k.originConnectionUuid!==A||k.directIdeaUuid!==c||"unconfigured"!==y.source&&k.runtimeCwd&&k.runtimeCwd!==y.cwd))throw new r("origin_conflict");let m=await (0,l.resolveOrCreateSession)({companyUuid:b,agentUuid:s,sessionId:c,directIdeaUuid:c,originConnectionUuid:A,runtimeCwd:k?.runtimeCwd??y.cwd??j.cwd},e);if(m.originConnectionUuid!==A||m.directIdeaUuid!==c)throw new r("origin_conflict");await e.$queryRaw`SELECT uuid FROM "DaemonSession" WHERE uuid = ${m.uuid} FOR UPDATE`;let p=await (0,l.createPendingTurn)({sessionUuid:m.uuid,trigger:C?"research_requested":"human_instruction",promptText:B,...C?{operationPayload:{version:1,kind:"research",ideaUuid:c}}:{}},e);if(a.selection){let a=y.agentInstanceUuid??j.agentInstanceUuid;await e.idea.update({where:{uuid:c,companyUuid:b},data:{assigneeType:a?"agent_instance":"agent",assigneeUuid:a??s,assignedByType:"user",assignedByUuid:d,assignedAt:new Date,cwdSource:"project_fixed"===y.source?"project_fixed":null,cwdHost:y.host??j.host,runtimeCwd:m.runtimeCwd}})}let q=await e.notification.create({data:{companyUuid:b,projectUuid:o.projectUuid,projectName:"",recipientType:"agent",recipientUuid:s,entityType:"idea",entityUuid:c,entityTitle:o.title,action:C?"research_requested":"human_instruction",message:"Research requested",actorType:"user",actorUuid:d,actorName:"",instructionText:B}});return{session:m,turn:p,notification:q}}));return(0,l.publishTranscriptEvent)({companyUuid:b,sessionUuid:D.session.uuid,trigger:"turn_created",turn:D.turn,messages:[]}),(0,m.N_)({companyUuid:b,originConnectionUuid:A,turnUuid:D.turn.uuid,runtimeCwd:D.session.runtimeCwd}),h.B.emitChange({companyUuid:b,projectUuid:o.projectUuid,entityType:"idea",entityUuid:c,action:"updated"}),{session:D.session,sessionUuid:D.session.uuid,turnUuid:D.turn.uuid,agentUuid:s}}d()}catch(a){d(a)}})},32382:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{D:()=>ad});var e=c(10837),f=c(21968),g=c(9222),h=c(68884),i=c(76549),j=c(10694),k=c(86460),l=c(33291),m=c(53109),n=c(74733),o=c(59876),p=c(42424),q=c(74645),r=c(49599),s=c(9994),t=c(20170),u=c(2852),v=c(88536),w=c(6019),x=c(76172),y=c(84722),z=c(64370),A=c(17026),B=c(47082),C=c(9190),D=c(17068),E=c(86104),F=c(98310),G=c(91530),H=c(69086),I=c(44963),J=c(10790),K=c(45178),L=c(84855),M=c(26702),N=c(20802),O=c(13108),P=c(62045),Q=c(80302),R=c(58947),S=c(26402),T=c(1110),U=c(19672),V=c(43756),W=c(70028),X=c(76799),Y=c(77078),Z=c(77287),$=c(54722),_=c(76664),aa=c(77521),ab=c(79030),ac=a([y,z,D,E,F,I]);function ad(a){return(0,e.jsx)(ae,{...a},a.ideaUuid)}function ae({ideaUuid:a,projectUuid:b,currentUserUuid:c,onClose:d,onNavigate:ac}){let ad=(0,g.c)(),ae=(0,g.c)("ideaTracker"),af=(0,g.c)("status"),ag=(0,g.c)("ideaTracker.lineage"),ah=(0,h.r)(),ai=(0,W.kz)(),aj=ai?.activeSessionsByIdea.get(a)??[],[ak,al]=(0,f.useState)(null),[am,an]=(0,f.useState)(!0),[ao,ap]=(0,f.useState)(null),[aq,ar]=(0,f.useState)([]),[as,at]=(0,f.useState)([]),[au,av]=(0,f.useState)(null),[aw,ax]=(0,f.useState)(null),ay=(0,f.useRef)(0),az=(0,f.useRef)(0),[aA,aB]=(0,f.useState)("overview"),[aC,aD]=(0,f.useState)(new Set(["overview"])),[aE,aF]=(0,f.useState)(!1),[aG,aH]=(0,f.useState)(0),[aI,aJ]=(0,f.useState)(!1),[aK,aL]=(0,f.useState)(!1),[aM,aN]=(0,f.useState)(!1),aO=(0,f.useRef)(null),aP=(0,f.useCallback)(a=>{a.preventDefault(),aO.current?.focus()},[]),[aQ,aR]=(0,f.useState)(null),[aS,aT]=(0,f.useState)(!0),[aU,aV]=(0,f.useState)(!1),[aW,aX]=(0,f.useState)(null),[aY,aZ]=(0,f.useState)(!1),{start:a$,pickerState:a_,confirmPick:a0,cancelPick:a1,isResolving:a2}=(0,X.E)({reassignNoWake:Z.U,previewIdeaUuid:ak?.uuid}),[a3,a4]=(0,f.useState)(!1),[a5,a6]=(0,f.useState)(""),[a7,a8]=(0,f.useState)(""),[a9,ba]=(0,f.useState)(!1),[bb,bc]=(0,f.useState)(null),[bd,be]=(0,f.useState)(!1),[bf,bg]=(0,f.useState)(!1),[bh,bi]=(0,f.useState)(!1),[bj,bk]=(0,f.useState)(!1),[bl,bm]=(0,f.useState)(null),[bn,bo]=(0,f.useState)(null),[bp,bq]=(0,f.useState)(null),br=(0,f.useCallback)(a=>{bq(null),bm(a)},[]),bs=(0,f.useCallback)(a=>{bm(null),bo(null),bq(a)},[]),[bt,bu]=(0,f.useState)(!1),[bv,bw]=(0,f.useState)(!1),bx=(0,f.useCallback)(a=>{let b=new URLSearchParams(window.location.search);b.set("tab",a),window.history.replaceState(null,"",`${window.location.pathname}?${b.toString()}`)},[]),by=(0,f.useCallback)(async()=>{try{let b=await (0,L.c)(a);b.success?(al(b.data),ap(null)):ap(ae("Not found"===b.error?"panel.notFound":"panel.loadFailed"))}catch{ap(ae("panel.loadFailed"))}finally{an(!1)}},[a,ae]);(0,x.eV)("idea",by),(0,x.eV)("proposal",by),(0,x.eV)("task",by);let bz=ak?.uuid,bA=ak?.status,bB=`${bz}:${bA}`,bC=(0,f.useCallback)(async()=>{let a=++ay.current;if(av(null),bz){if("open"===bA){ar([]),av(bB);return}try{let c=await (0,M.U)(b,bz);a===ay.current&&c.success&&(ar(c.data),av(bB))}catch(a){$.q.error("Failed to fetch proposals:",a)}}},[b,bz,bA,bB]);(0,x.eV)("proposal",bC);let bD=(0,f.useCallback)(async()=>{let a=++az.current;ax(null);let c=aq.filter(a=>"approved"===a.status);if(0===c.length){at([]),ax(aq);return}try{let d=await Promise.all(c.map(a=>(0,N.c)(b,a.uuid)));if(a!==az.current||d.some(a=>!a.success))return;let e=d.flatMap(a=>a.success&&a.data?a.data.map(a=>({uuid:a.uuid,title:a.title,status:a.status,commentCount:a.commentCount??0,assignee:a.assignee??null,acceptanceSummary:a.acceptanceSummary??null})):[]);at(e),ax(aq)}catch(a){$.q.error("Failed to fetch tasks:",a)}},[b,aq]);(0,x.eV)("task",bD);let bE=(0,f.useCallback)(async()=>{if(!bz)return;let a=await (0,P.z)(bz);a.success&&a.data&&aR(a.data),aT(!1)},[bz]);(0,x.eV)("idea",bE);let bF=(0,f.useMemo)(()=>ak?function(a,b,c){let d=["overview"];return d.push("elaboration"),b.length>0&&d.push("proposal"),c.length>0&&d.push("tasks"),d.push("activity"),d}(0,aq,as):["overview","activity"],[ak,aq,as]);(0,f.useRef)(null),ak&&ak.badgeHint;let bG=(0,f.useMemo)(()=>as.filter(a=>"in_progress"===a.status||"assigned"===a.status||"to_verify"===a.status).length,[as]),bH=(0,f.useCallback)(()=>{if(!bl)return void bo(null);(0,O.Q)(bl).then(a=>{a.success&&bo(a.data)}).catch(a=>$.q.error("Failed to load task details:",a))},[bl]);(0,x.eV)("task",bH);let bI=()=>{a4(!1),a6(ak?.title||""),a8(ak?.content||""),bc(null)},bJ=async()=>{if(!ak||!a5.trim())return void bc(ad("ideas.titleRequired"));ba(!0),bc(null);let a=await (0,J.J)({ideaUuid:ak.uuid,projectUuid:b,title:a5.trim(),content:a7.trim()||null});ba(!1),a.success?(a4(!1),await by(),ah.refresh()):bc(a.error||ad("ideas.updateFailed"))},bK=async()=>{if(!ak||aK)return;aL(!0);let a=await (0,K.Z)(ak.uuid,b);aL(!1),a.success&&(d(),ah.refresh())},bL=async()=>{if(!ak)return;aV(!0),aX(null);let a=await (0,Q.e)(ak.uuid);aV(!1),a.success?(aZ(!0),await by(),ah.refresh()):aX(a.error||ad("elaboration.verifyFailed"))},bM=async a=>{if(!ak)return;be(!0),al({...ak,isContainer:a});let c=await (0,J.J)({ideaUuid:ak.uuid,projectUuid:b,title:ak.title,content:ak.content??null,isContainer:a});be(!1),c.success?(await by(),ah.refresh()):(al({...ak,isContainer:!a}),i.oR.error(c.error||ad("ideas.updateFailed")))},bN=ak?.derivedStatus||"todo",bO=ak?.isContainer===!0,bP=null!==ak,bQ=(0,S.o)({ideaStatus:ak?.status,elaborationStatus:ak?.elaborationStatus,elaboration:aQ});return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:d}),(0,e.jsxs)("div",{className:`fixed right-0 top-14 md:top-0 z-50 flex h-[calc(100%-3.5rem)] md:h-full w-full md:w-[480px] flex-col border-l border-border bg-card shadow-xl ${bv?"":"animate-in slide-in-from-right duration-300"}`,children:[(0,e.jsxs)("div",{className:"flex items-center justify-between border-b border-secondary px-6 py-5",children:[(0,e.jsx)("div",{className:"flex-1 min-w-0",children:am?(0,e.jsx)("div",{className:"h-5 w-40 animate-pulse rounded bg-secondary"}):ak?a3?(0,e.jsx)("h2",{className:"text-base font-semibold text-foreground",children:ad("ideas.editIdea")}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{className:`text-[11px] font-semibold uppercase tracking-wider ${bO?"text-primary":"text-muted-foreground"}`,children:bO?ag("typeTheme"):ag("typeIdea")}),(0,e.jsx)("h2",{className:"text-base font-semibold text-foreground truncate",children:ak.title}),(0,e.jsxs)("div",{className:"mt-1.5 flex min-w-0 items-center gap-2",children:[(0,e.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2 overflow-hidden",children:[(0,e.jsx)(r.E,{className:aa._5[bN]||aa._5.todo,children:ak.badgeHint?ae(`badge.${aa.Wl[ak.badgeHint]||"open"}`):af(aa.Bj[bN]||"todo")}),bO&&ak.childProgress&&ak.childProgress.total>0&&(0,e.jsxs)("span",{className:"flex shrink-0 items-center gap-1 text-xs font-medium text-primary",title:ag("childrenDone",{done:ak.childProgress.done,total:ak.childProgress.total}),children:[(0,e.jsx)(ab.C,{done:ak.childProgress.done,total:ak.childProgress.total,size:13,stroke:2}),ak.childProgress.done,"/",ak.childProgress.total]}),(0,e.jsx)("span",{className:"min-w-0 truncate whitespace-nowrap text-xs text-muted-foreground",title:(0,_.r)(ak.createdAt),children:(0,_.r)(ak.createdAt)})]}),aj.length>0&&ai&&(0,e.jsx)(V.U,{sessions:aj,onSelect:ai.openChatForActiveSession,surface:"sidebar",className:"shrink-0"})]})]}):(0,e.jsx)("h2",{className:"text-base font-semibold text-foreground",children:ae("panel.notFound")})}),(0,e.jsxs)("div",{className:"flex shrink-0 items-center gap-2 ml-3",children:[ak&&!am&&!a3&&(0,e.jsx)(T.M,{ideaUuid:ak.uuid,projectUuid:b,assignee:ak.assignee,assigneeName:ak.assignee?.name,proposals:aq,tasks:as,triggerRef:aO,busy:aK||aU||a2||a9||bd||null!==a_,stageReason:bO?ag("containerHint"):void 0,stageDataReason:au!==bB||aw!==aq?ae("panel.actions.loadingStage"):void 0,verifyReason:aS?ae("loading"):aY?ad("elaboration.verifiedQueuedHint"):bQ?void 0:ae("panel.actions.verifyUnavailable"),editReason:"elaborated"===ak.status?ae("panel.actions.editUnavailable"):void 0,onVerify:()=>{!ak||ak.isContainer||!bQ||aY||aS||aU||a2||bd||a$({ideaUuid:ak.uuid,wake:bL})},onDerive:()=>bk(!0),onSetParent:()=>bi(!0),onMove:()=>bg(!0),onEdit:()=>{ak&&"elaborated"!==ak.status&&(a6(ak.title),a8(ak.content||""),bc(null),a4(!0))},onDelete:()=>aN(!0),onStarted:by,onCloseAutoFocus:aP},ak.uuid),(0,e.jsx)(p.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-border",onClick:a3?bI:d,"aria-label":ad("common.close"),children:(0,e.jsx)(j.A,{className:"h-4 w-4 text-muted-foreground"})})]})]}),ak&&!am&&!a3&&(0,e.jsx)("div",{className:"border-b border-secondary px-6",children:(0,e.jsx)("div",{className:"flex gap-0 -mb-px",children:bF.map(a=>(0,e.jsxs)("button",{onClick:()=>{aB(a),aF(!0),aD(b=>new Set([...b,a])),bx(a)},className:`relative flex items-center gap-1.5 px-3 py-2.5 text-[13px] font-medium transition-colors cursor-pointer ${aA===a?"text-primary border-b-2 border-primary":"text-muted-foreground hover:text-muted-foreground"}`,children:[ae(`panel.tabs.${a}`),"tasks"===a&&bG>0&&(0,e.jsx)("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-[#E3F2FD] dark:bg-[#13253a] text-[#1976D2] dark:text-[#5AA9F0] text-[10px] font-semibold leading-none",children:bG}),"activity"===a&&aG>0&&(0,e.jsx)("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-secondary text-muted-foreground text-[10px] font-semibold leading-none",children:aG})]},a))})}),(0,e.jsx)(q.F,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:(0,e.jsx)("div",{className:"flex min-h-full flex-col px-6 py-5",children:am?(0,e.jsxs)("div",{className:"flex flex-1 items-center justify-center py-12",children:[(0,e.jsx)(k.A,{className:"h-6 w-6 animate-spin text-primary"}),(0,e.jsx)("span",{className:"ml-2 text-sm text-muted-foreground",children:ae("loading")})]}):ao?(0,e.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:ao})}):ak?a3?(0,e.jsxs)("div",{className:"space-y-5",children:[bb&&(0,e.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:bb}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(u.J,{htmlFor:"edit-title",className:"text-[13px] font-medium text-foreground",children:ad("ideas.titleLabel")}),(0,e.jsx)(s.p,{id:"edit-title",value:a5,onChange:a=>a6(a.target.value),className:"border-border text-sm focus-visible:ring-primary",autoFocus:!0})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(u.J,{htmlFor:"edit-content",className:"text-[13px] font-medium text-foreground",children:ad("common.content")}),(0,e.jsx)(t.T,{id:"edit-content",value:a7,onChange:a=>a8(a.target.value),rows:8,className:"border-border text-sm resize-none focus-visible:ring-primary"})]}),(0,e.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[(0,e.jsx)(p.$,{variant:"outline",onClick:bI,disabled:a9,children:ad("common.cancel")}),(0,e.jsxs)(p.$,{onClick:bJ,disabled:a9||!a5.trim(),children:[a9&&(0,e.jsx)(k.A,{className:"mr-2 h-4 w-4 animate-spin"}),ad("common.save")]})]})]}):(0,e.jsxs)(e.Fragment,{children:[aY&&(0,e.jsx)("p",{role:"status",className:"mb-4 text-xs text-muted-foreground",children:ad("elaboration.verifiedQueuedHint")}),aW&&(0,e.jsx)("p",{role:"alert",className:"mb-4 text-xs text-destructive",children:aW}),bO&&(0,e.jsx)("p",{className:"mb-4 text-xs text-muted-foreground",children:ag("containerHint")}),aC.has("overview")&&(0,e.jsxs)("div",{style:{display:"overview"===aA?"block":"none"},children:[(0,e.jsxs)("div",{className:"mb-5 flex items-start justify-between gap-3 rounded-lg border border-[#EFEBE3] dark:border-[#2a2a2e] bg-background px-3.5 py-3",children:[(0,e.jsxs)("div",{className:"min-w-0 space-y-0.5",children:[(0,e.jsxs)(u.J,{htmlFor:"container-toggle",className:"flex items-center gap-1.5 text-[13px] font-medium text-foreground",children:[(0,e.jsx)(l.A,{className:"h-3.5 w-3.5 text-primary","aria-hidden":!0}),ag("container")]}),(0,e.jsx)("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:ag("containerDescription")})]}),(0,e.jsx)(v.d,{id:"container-toggle",checked:bO,disabled:bd,onCheckedChange:bM,"aria-label":ag("makeContainer")})]}),(0,e.jsx)(A.p,{idea:ak,proposals:aq,tasks:as,onSelectTask:br}),(0,e.jsxs)("div",{className:"mt-5 space-y-2",children:[(0,e.jsx)("div",{className:"flex items-center",children:(0,e.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,e.jsx)(l.A,{className:"h-3.5 w-3.5 text-primary"}),(0,e.jsx)("span",{className:"text-[12px] font-semibold text-foreground/80",children:ag("title")})]})}),ak.parent?(0,e.jsxs)("button",{type:"button",onClick:()=>ac?.(ak.parent.uuid),className:"flex w-full items-center gap-2 rounded-lg bg-background px-3 py-2.5 text-left transition-colors hover:bg-secondary",children:[(0,e.jsx)(m.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,e.jsx)("span",{className:"shrink-0 text-[12px] text-muted-foreground",children:ag("derivedFrom")}),(0,e.jsx)("span",{className:"min-w-0 flex-1 truncate text-[12px] font-medium text-foreground/80",children:ak.parent.title})]}):(0,e.jsx)("p",{className:"px-1 text-[12px] text-muted-foreground",children:ag("noParent")}),ak.children&&ak.children.length>0&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"flex items-center justify-between px-1 pt-1",children:[(0,e.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,e.jsx)("span",{className:"text-[12px] font-medium text-foreground/80",children:ag("derivedIdeas")}),(0,e.jsx)("span",{className:"text-[11px] text-muted-foreground",children:ak.children.length})]}),(()=>{let a=ak.children.filter(a=>"done"===a.derivedStatus).length,b=ak.children.length;return(0,e.jsxs)("span",{className:"flex items-center gap-1.5 text-[12px] text-muted-foreground",title:ag("childrenDone",{done:a,total:b}),children:[(0,e.jsx)(ab.C,{done:a,total:b,size:14,stroke:2}),a,"/",b]})})()]}),(0,e.jsx)("div",{className:"overflow-hidden rounded-lg border border-[#EFEBE3] dark:border-[#2a2a2e]",children:ak.children.map((a,b)=>(0,e.jsxs)("div",{children:[b>0&&(0,e.jsx)("div",{className:"h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"}),(0,e.jsxs)("button",{type:"button",onClick:()=>ac?.(a.uuid),className:"flex w-full items-center justify-between gap-2 px-3 py-2.5 text-left transition-colors hover:bg-background",children:[(0,e.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,e.jsx)(n.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,e.jsx)("span",{className:"truncate text-[12px] text-foreground",children:a.title})]}),(0,e.jsx)(r.E,{className:`shrink-0 border-0 text-[10px] ${aa._5[a.derivedStatus]||aa._5.todo}`,children:af(aa.Bj[a.derivedStatus]||"todo")})]})]},a.uuid))})]})]}),(0,e.jsx)(B.U,{projectUuid:b,ideaUuid:ak.uuid,proposals:aq,onDocClick:bs}),(0,e.jsxs)("div",{className:"mt-5 space-y-2",children:[(0,e.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,e.jsx)(o.A,{className:"h-3.5 w-3.5 text-primary"}),(0,e.jsx)("span",{className:"text-[12px] font-semibold text-foreground/80",children:ad("references.title")})]}),(0,e.jsx)(U.ReferencesSection,{targetType:"idea",targetUuid:ak.uuid,canWrite:!0,compact:!0})]})]}),bF.includes("elaboration")&&aC.has("elaboration")&&(0,e.jsx)("div",{style:{display:"elaboration"===aA?"block":"none"},children:(0,e.jsx)(y.G,{idea:ak,elaboration:aQ,isLoading:aS,onRefresh:async()=>{await bE(),await by()},onReassign:()=>aJ(!0),canReassign:bP})}),bF.includes("proposal")&&aC.has("proposal")&&(0,e.jsx)("div",{style:{display:"proposal"===aA?"block":"none"},children:(0,e.jsx)(z.k,{idea:ak,projectUuid:b,onTaskClick:br,onDocClick:bs,initialProposals:aq})}),bF.includes("tasks")&&aC.has("tasks")&&(0,e.jsx)("div",{style:{display:"tasks"===aA?"block":"none"},children:(0,e.jsx)(C.n,{tasks:as,projectUuid:b,proposalUuids:aq.filter(a=>"approved"===a.status).map(a=>a.uuid),onSelectTask:br})}),aC.has("activity")&&(0,e.jsx)("div",{style:{display:"activity"===aA?"block":"none"},children:(0,e.jsx)(D.x,{ideaUuid:ak.uuid,currentUserUuid:c,commentCount:aG,onCommentCountChange:aH})})]}):null})}),ak&&(0,e.jsx)(w.Lt,{open:aM,onOpenChange:aN,children:(0,e.jsxs)(w.EO,{onCloseAutoFocus:aP,children:[(0,e.jsxs)(w.wd,{children:[(0,e.jsx)(w.r7,{children:ad("ideas.deleteIdea")}),(0,e.jsx)(w.$v,{children:ad("ideas.deleteIdeaConfirm",{title:ak.title})})]}),(0,e.jsxs)(w.ck,{children:[(0,e.jsx)(w.Zr,{children:ad("common.cancel")}),(0,e.jsx)(w.Rx,{variant:"destructive",onClick:bK,disabled:aK,children:ad("common.delete")})]})]})})]}),(0,e.jsx)(G.h,{open:bf,onOpenChange:bg,onCloseAutoFocus:aP,ideaUuid:a,projectUuid:b,onMoved:()=>d()}),ak&&(0,e.jsx)(H.d,{open:bh,onOpenChange:bi,ideaUuid:ak.uuid,ideaTitle:ak.title,projectUuid:b,currentParentUuid:ak.parentUuid??null,descendantUuids:ak.descendantUuids??[],onChanged:by,onCloseAutoFocus:aP}),ak&&(0,e.jsx)(I.i,{open:bj,onOpenChange:bk,onCloseAutoFocus:aP,projectUuid:b,parentUuid:ak.uuid,parentTitle:ak.title,onCreated:a=>{i.oR.success(ag("deriveIdea")),ah.refresh(),ac?.(a)}}),aI&&ak&&(0,e.jsx)(R.i,{idea:{uuid:ak.uuid,title:ak.title,content:ak.content,status:ak.status,assignee:ak.assignee?{type:ak.assignee.type,uuid:ak.assignee.uuid,name:ak.assignee.name}:null},projectUuid:b,currentUserUuid:c,onClose:()=>{aJ(!1),by()}}),(0,e.jsx)(Y.V,{open:null!==a_,onCloseAutoFocus:aP,agentName:ak?.assignee?.name??"",instances:a_?.instances??[],onConfirm:a0,onCancel:a1}),bl&&bn&&(0,e.jsx)(E.v,{task:bn,projectUuid:b,currentUserUuid:c,mode:bt?"sidebyside":"overlay",onClose:()=>{bm(null),bo(null)},onBack:()=>{bm(null),bo(null)}}),bp&&(0,e.jsx)(F.K,{title:bp.title,type:bp.type,content:bp.content,mode:bt?"sidebyside":"overlay",onClose:()=>bq(null),onBack:()=>bq(null)})]})}[y,z,D,E,F,I]=ac.then?(await ac)():ac,d()}catch(a){d(a)}})},33291:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]])},40467:(a,b,c)=>{c.d(b,{v:()=>k});var d=c(10837),e=c(21968),f=c(9222),g=c(86460),h=c(2852),i=c(82056),j=c(77521);function k({ideaUuid:a}){let b=(0,f.c)(),[c,k]=(0,e.useState)([]),[l,m]=(0,e.useState)(!0);return(0,e.useCallback)(async()=>{m(!0),k((await (0,i.x)(a)).activities),m(!1)},[a]),(0,d.jsxs)("div",{className:"mt-5",children:[(0,d.jsx)(h.J,{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:b("common.activity")}),(0,d.jsx)("div",{className:"mt-2",children:l?(0,d.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,d.jsx)(g.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}):0===c.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground italic",children:b("common.noActivity")}):c.map((a,e)=>(0,d.jsxs)("div",{className:"flex items-stretch gap-2.5",children:[(0,d.jsxs)("div",{className:"flex flex-col items-center w-2 shrink-0",children:[(0,d.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full border-[1.5px] border-[#D9D9D9] dark:border-[#3a3a40] bg-card"}),e<c.length-1&&(0,d.jsx)("div",{className:"flex-1 w-px bg-border mt-1"})]}),(0,d.jsxs)("div",{className:"flex-1 pb-3",children:[(0,d.jsx)("p",{className:"text-[13px] text-foreground",children:function(a,b){let{action:c,actorName:d}=a;switch(c){case"created":case"idea_created":return b("activity.ideaCreated",{actor:d});case"assigned":case"idea_assigned":return b("activity.ideaAssigned",{actor:d});case"claimed":case"idea_claimed":return b("activity.ideaClaimed",{actor:d});case"released":case"idea_released":return b("activity.ideaReleased",{actor:d});case"status_changed":case"idea_status_changed":return b("activity.ideaStatusChanged",{actor:d});case"edited":case"idea_edited":return b("activity.ideaEdited",{actor:d});case"reparented":case"idea_reparented":return b("activity.ideaReparented",{actor:d});case"elaboration_started":return b("activity.elaborationStarted",{actor:d});case"elaboration_answered":return b("activity.elaborationAnswered",{actor:d});case"elaboration_skipped":return b("activity.elaborationSkipped",{actor:d});case"elaboration_resolved":return b("activity.elaborationResolved",{actor:d});case"elaboration_followup":return b("activity.elaborationFollowup",{actor:d});default:return b("activity.genericAction",{actor:d,action:c})}}(a,b)}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground",children:(0,j.fw)(a.createdAt,b)})]})]},a.uuid))})]})}},43756:(a,b,c)=>{c.d(b,{U:()=>l});var d=c(10837),e=c(21968),f=c(9222),g=c(6871),h=c(42424),i=c(74113),j=c(96307);function k(a){return a.agentName??a.agentUuid}function l({sessions:a,onSelect:b,surface:c,className:l}){let m=(0,f.c)("activeSessions"),[n,o]=(0,e.useState)(!1),p=(0,e.useRef)(null);if(0===a.length)return null;let q=a.some(a=>a.canOpen),r=1===a.length&&a[0].canOpen,s=a[0],t=()=>{null!==p.current&&(clearTimeout(p.current),p.current=null)},u=()=>{t(),p.current=setTimeout(()=>o(!1),120)},v=a=>{a.canOpen&&(o(!1),b(a))},w=(0,d.jsxs)(h.$,{type:"button",variant:"outline",size:"tracker"===c?"xs":"icon-sm","data-testid":`${c}-active-session-indicator`,"aria-label":m(q?"indicatorLabel":"statusOnlyIndicatorLabel",{count:a.length}),"aria-disabled":!q,"aria-haspopup":a.length>1?"dialog":void 0,onPointerDown:a=>a.stopPropagation(),onPointerEnter:r?void 0:a=>{"touch"!==a.pointerType&&(t(),o(!0))},onPointerLeave:r?void 0:a=>{"touch"!==a.pointerType&&u()},onFocus:r?void 0:()=>o(!0),onClick:a=>{if(a.stopPropagation(),t(),r)return void v(s);n&&a.preventDefault()},onKeyDown:a=>a.stopPropagation(),className:(0,j.cn)("group/active relative gap-1.5 overflow-visible border-emerald-500/35 bg-emerald-500/10 font-semibold text-emerald-700 shadow-none transition-[background-color,border-color,box-shadow] hover:border-emerald-500/60 hover:bg-emerald-500/15 hover:text-emerald-700 hover:shadow-[0_3px_10px_-5px_rgba(16,185,129,0.8)] focus-visible:border-emerald-500 focus-visible:ring-emerald-500/50 dark:border-emerald-500/35 dark:bg-emerald-500/10 dark:text-emerald-300 dark:hover:border-emerald-500/60 dark:hover:bg-emerald-500/15 dark:hover:text-emerald-300","tracker"===c?"h-7 min-w-7 px-1 text-[11px]":"sidebar"===c?"h-8 min-w-8 px-1 text-[11px]":"h-9 min-w-9 px-1 text-[11px] shadow-sm",l),children:[(0,d.jsxs)("span",{className:"relative shrink-0","aria-hidden":!0,children:[(0,d.jsx)(g.AgentAvatar,{name:k(s),size:"graph"===c?22:20,className:"rounded-full ring-1 ring-emerald-600/25"}),(0,d.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 size-2 rounded-full border-2 border-card bg-emerald-500"}),(0,d.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 size-2 rounded-full bg-emerald-400/75 motion-safe:animate-ping motion-reduce:animate-none"})]}),a.length>1&&(0,d.jsx)("span",{children:a.length})]});return r?w:(0,d.jsxs)(i.AM,{open:n,onOpenChange:o,children:[(0,d.jsx)(i.Wv,{asChild:!0,children:w}),(0,d.jsxs)(i.hl,{align:"start",sideOffset:6,onCloseAutoFocus:a=>a.preventDefault(),onPointerDown:a=>a.stopPropagation(),onPointerEnter:t,onPointerLeave:u,onClick:a=>a.stopPropagation(),className:"w-[min(22rem,calc(100vw-2rem))] p-1.5","aria-label":m("chooserLabel"),children:[(0,d.jsx)("p",{className:"px-2 pb-1.5 pt-1 text-xs font-medium text-muted-foreground",children:m("runningCount",{count:a.length})}),(0,d.jsx)("div",{className:"max-h-64 overflow-y-auto",children:a.map(a=>(0,d.jsxs)(h.$,{type:"button",variant:"ghost",disabled:!a.canOpen,"aria-label":a.canOpen?k(a):m("statusOnlyEntry",{agent:k(a)}),onClick:()=>v(a),className:"group/session h-auto w-full min-w-0 items-start justify-start gap-2.5 whitespace-normal px-2 py-2 text-left disabled:cursor-not-allowed disabled:opacity-65",children:[(0,d.jsxs)("span",{className:"relative mt-0.5 shrink-0","aria-hidden":!0,children:[(0,d.jsx)(g.AgentAvatar,{name:k(a),size:30,className:"rounded-lg ring-1 ring-border transition-shadow group-hover/session:ring-emerald-500/45"}),(0,d.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 size-2.5 rounded-full border-2 border-card bg-emerald-500"})]}),(0,d.jsxs)("span",{className:"min-w-0",children:[(0,d.jsx)("span",{className:"block truncate text-xs font-medium text-foreground",children:k(a)}),(0,d.jsx)("span",{className:"block truncate text-[11px] text-muted-foreground",children:a.connectionAvailable?m("location",{host:a.host??m("unknownHost"),cwd:a.cwd??m("unknownCwd")}):m("agentFallback")}),!a.canOpen&&(0,d.jsx)("span",{className:"block text-[11px] font-medium text-muted-foreground",children:m("statusOnly")})]})]},a.sessionUuid))})]})]})}},44963:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{i:()=>v});var e=c(10837),f=c(21968),g=c(9222),h=c(86460),i=c(76549),j=c(42424),k=c(11568),l=c(9994),m=c(20170),n=c(2852),o=c(8495),p=c(94372),q=c(42087),r=c(93524),s=c(70028),t=c(68797),u=a([t]);function v({open:a,onOpenChange:b,onCloseAutoFocus:c,projectUuid:d,onCreated:u,parentUuid:v,parentTitle:w}){let x=(0,g.c)("ideaTracker"),y=(0,g.c)("ideaTracker.lineage"),z=!!v,A=(0,g.c)("common"),[B,C]=(0,f.useState)(""),[D,E]=(0,f.useState)(""),[F,G]=(0,f.useState)(!1),[H,I]=(0,f.useState)(!1),[J,K]=(0,f.useState)(null),[L,M]=(0,f.useState)(!1),[N,O]=(0,f.useState)(!1),[P,Q]=(0,f.useState)(!1),[R,S]=(0,f.useState)(!1),T=(0,s.kz)(),U=(T?.connections??[]).some(a=>"online"===a.effectiveStatus),[V,W]=(0,f.useState)("form"),X=z?"form":V,Y=async()=>{let a=B.trim();if(a){I(!0),K(null);try{let c=await fetch(`/api/projects/${d}/ideas`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a,content:D.trim()||void 0,...v?{parentUuid:v}:{},...F?{isContainer:!0}:{}})}),e=await c.json();e.success&&e.data?.uuid?(C(""),E(""),G(!1),b(!1),u?.(e.data.uuid)):K(e.error||x("error.createFailed"))}catch{K(x("error.createFailed"))}finally{I(!1)}}},Z=(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"space-y-4 py-2",children:[(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(n.J,{htmlFor:"idea-title",children:x("newIdea.ideaTitle")}),(0,e.jsx)(l.p,{id:"idea-title",value:B,onChange:a=>C(a.target.value),placeholder:x("newIdea.titlePlaceholder"),autoFocus:!0,onKeyDown:a=>{!(0,q.P)(a)&&"Enter"===a.key&&!a.shiftKey&&B.trim()&&(a.preventDefault(),Y())}})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsxs)(n.J,{htmlFor:"idea-content",children:[x("newIdea.description"),(0,e.jsxs)("span",{className:"ml-1 text-xs font-normal text-muted-foreground",children:["(",A("optional"),")"]})]}),(0,e.jsx)(m.T,{id:"idea-content",value:D,onChange:a=>E(a.target.value),placeholder:x("newIdea.descriptionPlaceholder"),rows:4,className:"resize-none"})]}),(0,e.jsxs)("div",{className:"flex items-start gap-2",children:[(0,e.jsx)(o.S,{id:"idea-is-container",checked:F,onCheckedChange:a=>G(!0===a),className:"mt-0.5"}),(0,e.jsxs)("div",{className:"grid gap-1 leading-none",children:[(0,e.jsx)(n.J,{htmlFor:"idea-is-container",className:"cursor-pointer",children:y("makeContainer")}),(0,e.jsx)("p",{className:"text-xs font-normal text-muted-foreground",children:y("containerHint")})]})]}),J&&(0,e.jsx)("div",{className:"rounded-lg bg-destructive/10 px-3 py-2 text-[12px] text-destructive",children:J})]}),(0,e.jsxs)(k.Es,{children:[(0,e.jsx)(j.$,{variant:"outline",onClick:()=>b(!1),disabled:H,children:A("cancel")}),(0,e.jsxs)(j.$,{onClick:Y,disabled:H||!B.trim(),className:"bg-primary hover:bg-[#B56A42] text-white",children:[H?(0,e.jsx)(h.A,{className:"mr-2 h-4 w-4 animate-spin"}):null,A("create")]})]})]}),$=async a=>{Q(!0);try{let b=await (0,r.tm)("/api/ideas/conversational",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectUuid:d,agentUuid:a.agentUuid,connectionUuid:a.connectionUuid,descriptionText:a.userText,researchFirst:N,...L?{decompose:!0}:{}})});if(!b.ok){let a=null;try{let c=await b.json();"string"==typeof c?.error&&c.error&&(a=c.error)}catch{}throw new t.fF(b.status,a)}let c=null;try{let a=await b.json();a?.success&&a.data?.session&&(c=a.data.session)}catch{}if(!c)throw new t.fF(b.status,null);return c}finally{Q(!1)}},_=(0,e.jsxs)("div",{className:"space-y-3 py-2",children:[(0,e.jsxs)("div",{className:"flex items-start gap-2",children:[(0,e.jsx)(o.S,{id:"idea-research-first",checked:N,onCheckedChange:a=>O(!0===a),disabled:P,"aria-describedby":"idea-research-first-hint",className:"mt-0.5"}),(0,e.jsxs)("div",{className:"grid gap-1",children:[(0,e.jsx)(n.J,{htmlFor:"idea-research-first",className:"cursor-pointer",children:x("newIdea.researchFirst")}),(0,e.jsx)("p",{id:"idea-research-first-hint",className:"text-xs leading-4 text-muted-foreground",children:x("newIdea.researchFirstHint")})]})]}),(0,e.jsxs)("div",{className:"flex items-start gap-2",children:[(0,e.jsx)(o.S,{id:"idea-decompose",checked:L,disabled:P,onCheckedChange:a=>M(!0===a),className:"mt-0.5"}),(0,e.jsxs)("div",{className:"grid gap-1 leading-none",children:[(0,e.jsx)(n.J,{htmlFor:"idea-decompose",className:"cursor-pointer",children:x("newIdea.decompose")}),(0,e.jsx)("p",{className:"text-xs font-normal text-muted-foreground",children:x("newIdea.decomposeHint")})]})]}),(0,e.jsx)(t.jH,{projectUuid:d,dispatch:$,onStarted:()=>{b(!1),i.oR.success(x("newIdea.submitted"))}})]});return(0,e.jsx)(k.lG,{open:a,onOpenChange:b,children:(0,e.jsxs)(k.Cf,{className:"sm:max-w-[480px]",onCloseAutoFocus:c,children:[(0,e.jsxs)(k.c7,{children:[(0,e.jsx)(k.L3,{children:z?y("deriveIdea"):x("newIdea.title")}),z&&w&&(0,e.jsxs)("p",{className:"text-[13px] text-muted-foreground",children:[y("derivedFrom")," \xb7 ",w]})]}),!z&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(p.tU,{value:X,onValueChange:a=>W(a),children:(0,e.jsxs)(p.j7,{className:"grid w-full grid-cols-2",children:[(0,e.jsx)(p.Xi,{value:"form",children:x("newIdea.modeForm")}),(0,e.jsx)(p.Xi,{value:"conversation",disabled:!U&&!R,children:x("newIdea.modeConversation")})]})}),!U&&(0,e.jsxs)("div",{className:"rounded-xl border border-[#EFEBE4] dark:border-[#2a2a2e] bg-[#FCFBF8] dark:bg-[#1e1d1b] px-3 py-2",children:[(0,e.jsx)("p",{className:"px-1 pt-1 text-[12px] font-medium text-muted-foreground",children:x("newIdea.modeConversationOfflineHint")}),(0,e.jsx)(t.Bs,{variant:"compact"})]})]}),"form"===X?Z:_]})})}t=(u.then?(await u)():u)[0],d()}catch(a){d(a)}})},47082:(a,b,c)=>{c.d(b,{U:()=>p});var d=c(10837),e=c(21968),f=c(9222),g=c(86460),h=c(20447),i=c(49599),j=c(42424),k=c(76172),l=c(54722),m=c(55183),n=c(42377);let o=(0,n.createServerReference)("60ea8831a008ac0590ed35ea1f176ffee299002ef1",n.callServer,void 0,n.findSourceMapURL,"getReportsForIdeaAction");function p({projectUuid:a,ideaUuid:b,proposals:c,onDocClick:n}){let p=(0,f.c)("idea"),q=(0,f.c)("documents"),[r,s]=(0,e.useState)([]),[t,u]=(0,e.useState)(!0),v=c.some(a=>"approved"===a.status),w=(0,e.useCallback)(async()=>{if(!v){s([]),u(!1);return}try{let c=await o(a,b);if(c.success){let a=[...c.data].sort((a,b)=>new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime());s(a.map(a=>({uuid:a.uuid,title:a.title,type:a.type,content:a.content??null,createdAt:a.createdAt})))}}catch(a){l.q.error("Failed to fetch reports for idea:",a)}finally{u(!1)}},[a,b,v]);return((0,k.eV)("document",w),t)?v?(0,d.jsx)("div",{className:"flex items-center justify-center py-3",children:(0,d.jsx)(g.A,{className:"h-4 w-4 animate-spin text-primary"})}):null:0===r.length?null:(0,d.jsxs)("div",{className:"mt-6 space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[1px] text-muted-foreground",children:p("reportsList")}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground",children:r.length}),(0,d.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:["\xb7 ",p("reportsAcrossProposals")]})]}),(0,d.jsx)("div",{className:"space-y-0",children:r.map(a=>(0,d.jsxs)(j.$,{variant:"ghost",className:"w-full justify-start h-auto text-left flex items-center gap-2.5 py-3.5 hover:bg-background transition-colors cursor-pointer -mx-1 px-1 rounded-lg",onClick:()=>n({title:a.title,type:"report",content:a.content??""}),children:[(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,d.jsx)(i.E,{variant:"outline",className:"shrink-0 text-[10px] font-medium border-border text-muted-foreground bg-secondary px-2 py-0.5 font-mono",children:q(m.y[a.type]||"typeOther")}),(0,d.jsx)("span",{className:"flex-1 min-w-0 text-left text-[13px] text-foreground truncate",children:a.title})]},a.uuid))})]})}},53109:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("corner-left-up",[["path",{d:"M14 9 9 4 4 9",key:"1af5af"}],["path",{d:"M20 20h-7a4 4 0 0 1-4-4V4",key:"1blwi3"}]])},55183:(a,b,c)=>{function d(a){return a.replace(/\\n/g,"\n")}c.d(b,{j:()=>d,y:()=>e});let e={prd:"typePrd",tech_design:"typeTechDesign",adr:"typeAdr",spec:"typeSpec",guide:"typeGuide",design:"typeDesign",note:"typeNote",report:"typeReport",other:"typeOther"}},64370:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{k:()=>A});var e=c(10837),f=c(21968),g=c(9222),h=c(81512),i=c.n(h),j=c(86460),k=c(21289),l=c(49102),m=c(20447),n=c(21790),o=c(51592),p=c(49599),q=c(42424),r=c(22727),s=c(90061),t=c(76172),u=c(97450),v=c(60265),w=c(55183),x=c(26702);c(20802);var y=c(54722),z=a([u]);function A({idea:a,projectUuid:b,onTaskClick:c,onDocClick:d,initialProposals:h}){let i=(0,g.c)("ideaTracker"),[l,m]=(0,f.useState)(h??[]),[n,o]=(0,f.useState)(!h),p=(0,f.useCallback)(async()=>{try{let c=await (0,x.U)(b,a.uuid);if(c.success)return m(c.data),c.data}catch(a){y.q.error("Failed to fetch proposals:",a)}finally{o(!1)}return[]},[b,a.uuid]),q=(0,f.useRef)(l);q.current=l;let{getPresence:r}=(0,s.xQ)();return((0,t.eV)("proposal",async()=>{let a=q.current;for(let b of(await p())){let c=a.find(a=>a.uuid===b.uuid);if(!c)continue;let d=new Set((c.documentDrafts??[]).map(a=>a.uuid)),e=new Set((c.taskDrafts??[]).map(a=>a.uuid)),f=(b.documentDrafts??[]).filter(a=>a.uuid&&!d.has(a.uuid)),g=(b.taskDrafts??[]).filter(a=>a.uuid&&!e.has(a.uuid)),h=[...f.map(a=>a.uuid),...g.map(a=>a.uuid)];if(h.length>0){let a=r("proposal",b.uuid)[0];if(a)for(let c of h)(0,s.fv)({entityType:"proposal",entityUuid:b.uuid,subEntityType:"draft",subEntityUuid:c,agentUuid:a.agentUuid,agentName:a.agentName,action:"mutate"})}}}),n)?(0,e.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,e.jsx)(j.A,{className:"h-5 w-5 animate-spin text-primary"})}):0===l.length?(0,e.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-12 text-center",children:[(0,e.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-[#F3E5F5] dark:bg-[#281630]",children:(0,e.jsx)(k.A,{className:"h-5 w-5 text-[#7B1FA2] dark:text-[#C98FE0]"})}),(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:i("panel.noProposals")})]}):(0,e.jsx)("div",{className:"space-y-5",children:l.map(a=>(0,e.jsx)(B,{proposal:a,projectUuid:b,onTaskClick:c,onDocClick:d},a.uuid))})}u=(z.then?(await z)():z)[0];let D={draft:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-muted-foreground",pending:"bg-[#FFF3E0] dark:bg-[#3a2a12] text-[#E65100] dark:text-[#F0A050]",approved:"bg-[#E8F5E9] dark:bg-[#14281a] text-[#5A9E6F] dark:text-[#6FD19A]",rejected:"bg-[#FFEBEE] dark:bg-[#331619] text-[#C4574C] dark:text-[#F0897E]",revised:"bg-[#E3F2FD] dark:bg-[#13253a] text-[#1976D2] dark:text-[#5AA9F0]",closed:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-muted-foreground"};function B({proposal:a,projectUuid:b,onTaskClick:c,onDocClick:d}){let h=(0,g.c)("ideaTracker"),j=(0,g.c)(),k=(0,g.c)("proposals"),n=(0,g.c)("tasks"),o=(0,g.c)("documents"),s=a.documentDrafts||[],t=a.taskDrafts||[],[x,y]=(0,f.useState)(new Set),[z,A]=(0,f.useState)("cards"),[B,E]=(0,f.useState)([]),F="approved"===a.status,G=(0,f.useMemo)(()=>{let a=new Map;for(let b of B)a.set(b.title,b);return a},[B]),{dagTasks:H,dagEdges:I,dagHeight:J}=(0,f.useMemo)(()=>{let a=t.map(a=>{let b=G.get(a.title);return{uuid:b?.uuid||a.uuid,title:a.title,status:b?.status||"open",priority:a.priority||"medium"}}),b=[],c=new Map(t.map(a=>[a.uuid,a]));for(let a of t)if(a.dependsOnDraftUuids)for(let d of a.dependsOnDraftUuids){let e=G.get(a.title),f=c.get(d),g=f?G.get(f.title):void 0;b.push({from:e?.uuid||a.uuid,to:g?.uuid||d})}return{dagTasks:a,dagEdges:b,dagHeight:Math.max(350,90*a.length)}},[t,G]),K=F?B.filter(a=>"done"===a.status||"closed"===a.status).length:0;return(0,e.jsxs)("div",{className:"space-y-5",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("h3",{className:"text-[14px] font-semibold text-foreground truncate flex-1",children:a.title}),(0,e.jsx)(p.E,{className:`text-[11px] font-semibold border-0 shrink-0 ${D[a.status]||""}`,children:j(`status.${a.status}`)})]}),a.description&&(0,e.jsx)("div",{className:"max-h-[120px] overflow-y-auto text-[13px] leading-relaxed text-foreground/80 prose prose-sm max-w-none [&_h1]:text-sm [&_h2]:text-[13px] [&_h3]:text-xs [&_p]:text-[13px] [&_p]:text-foreground/80 [&_p]:my-1.5 [&_li]:text-[13px] [&_li]:text-foreground/80 [&_ul]:my-1 [&_ol]:my-1 [&_strong]:text-foreground [&_code]:bg-secondary [&_code]:text-foreground [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_a]:text-primary",children:(0,e.jsx)(u.MarkdownContent,{children:(0,w.j)(a.description)})}),(0,e.jsxs)(i(),{href:`/projects/${b}/proposals/${a.uuid}`,className:"flex items-center gap-1 text-[13px] font-medium text-primary hover:underline",children:[h("panel.viewProposal"),(0,e.jsx)(l.A,{className:"h-3.5 w-3.5"})]}),s.length>0&&(0,e.jsxs)("div",{className:"space-y-3",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[1px] text-muted-foreground",children:k(F?"documents":"documentDrafts")}),(0,e.jsx)("span",{className:"text-[11px] text-muted-foreground",children:s.length})]}),(0,e.jsx)("div",{className:"space-y-0",children:s.map((b,c)=>(0,e.jsx)(r.D,{entityType:"proposal",entityUuid:a.uuid,subEntityType:"draft",subEntityUuid:b.uuid||`draft-${c}`,badgeInside:!0,children:(0,e.jsxs)(q.$,{variant:"ghost",className:"w-full justify-start h-auto text-left flex items-center gap-2.5 py-3.5 hover:bg-background transition-colors cursor-pointer -mx-1 px-1 rounded-lg",onClick:()=>b.content&&d?.({title:b.title,type:b.type,content:b.content}),children:[(0,e.jsx)(m.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,e.jsx)(p.E,{variant:"outline",className:"shrink-0 text-[10px] font-medium border-border text-muted-foreground bg-secondary px-2 py-0.5 font-mono",children:o(w.y[b.type]||"typeOther")}),(0,e.jsx)("span",{className:"flex-1 min-w-0 text-left text-[13px] text-foreground truncate",children:b.title})]})},b.uuid||c))})]}),(t.length>0||B.length>0)&&(0,e.jsxs)("div",{children:[(0,e.jsxs)("div",{className:"flex items-center justify-between pb-2",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[1px] text-muted-foreground",children:k(F?"tasks":"taskDrafts")}),(0,e.jsx)("span",{className:"text-[11px] text-muted-foreground",children:F&&B.length>0?B.length:t.length})]}),(0,e.jsxs)("span",{className:"text-[12px] text-muted-foreground",children:[K,"/",F&&B.length>0?B.length:t.length]})]}),(0,e.jsx)("div",{className:"-mx-6 border-t border-border"}),I.length>0&&(0,e.jsxs)("div",{className:"flex gap-0.5 rounded-lg border border-border bg-[#F7F6F3] dark:bg-[#1e1d1b] p-0.5 mt-3 w-fit",children:[(0,e.jsx)(q.$,{variant:"ghost",size:"sm",onClick:()=>A("cards"),className:`rounded-md px-2.5 py-1 h-auto text-[11px] font-medium transition-colors ${"cards"===z?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-muted-foreground"}`,children:k("cardsView")}),(0,e.jsx)(q.$,{variant:"ghost",size:"sm",onClick:()=>A("dag"),className:`rounded-md px-2.5 py-1 h-auto text-[11px] font-medium transition-colors ${"dag"===z?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-muted-foreground"}`,children:n("dagView")})]}),"cards"===z&&(0,e.jsx)("div",{className:"space-y-0",children:F&&B.length>0?B.map(a=>(0,e.jsx)(r.D,{entityType:"task",entityUuid:a.uuid,badgeInside:!0,children:(0,e.jsx)(C,{task:{uuid:a.uuid,title:a.title},expanded:!1,onToggle:()=>{},onNavigate:c?()=>c(a.uuid):void 0,taskStatus:a.status})},a.uuid)):t.map((b,c)=>(0,e.jsx)(r.D,{entityType:"proposal",entityUuid:a.uuid,subEntityType:"draft",subEntityUuid:b.uuid,badgeInside:!0,children:(0,e.jsx)(C,{task:b,expanded:x.has(c),onToggle:()=>{y(a=>{let b=new Set(a);return b.has(c)?b.delete(c):b.add(c),b})}})},b.uuid))}),"dag"===z&&(0,e.jsx)("div",{className:"mt-3",children:(0,e.jsx)(v._u,{tasks:H,edges:I,readonly:!0,height:J,onNodeClick:c})})]}),0===s.length&&0===t.length&&0===B.length&&(0,e.jsx)("p",{className:"text-xs text-muted-foreground italic",children:k("emptyContainer")})]})}let E={open:"border-[#D9D9D9] dark:border-[#3a3a40] bg-card",assigned:"border-[#1976D2] bg-[#1976D2]",in_progress:"border-[#5A9E6F] bg-[#5A9E6F]",to_verify:"border-[#7B1FA2] bg-[#7B1FA2]",done:"border-[#00796B] bg-[#00796B]",closed:"border-[#9A9A9A] bg-[#9A9A9A] dark:border-[#6b6862] dark:bg-[#6b6862]"},F={open:null,assigned:null,in_progress:{className:"bg-[#E8F5E9] dark:bg-[#14281a] text-[#5A9E6F] dark:text-[#6FD19A]",key:"inProgress"},to_verify:{className:"bg-[#F3E5F5] dark:bg-[#281630] text-[#7B1FA2] dark:text-[#C98FE0]",key:"toVerify"},done:{className:"bg-[#E0F2F1] dark:bg-[#12292a] text-[#00796B] dark:text-[#4FD1C0]",key:"done"},closed:{className:"bg-[#F5F5F5] dark:bg-[#1e1e20] text-muted-foreground",key:"done"}};function C({task:a,expanded:b,onToggle:c,onNavigate:d,taskStatus:f}){let h=(0,g.c)("proposals"),i=(0,g.c)("acceptanceCriteria"),j=(0,g.c)("status"),k=a.acceptanceCriteriaItems||[],p=!!(a.description||k.length>0),r=f?E[f]||E.open:"border-[#D9D9D9] dark:border-[#3a3a40] bg-card",s=f?F[f]:null,t=(0,e.jsx)("span",{className:`shrink-0 h-2 w-2 rounded-full border-[1.5px] ${r} transition-colors`}),u=(0,e.jsx)("span",{className:"flex-1 min-w-0 text-[13px] leading-snug truncate text-muted-foreground",children:a.title}),v=s?(0,e.jsx)("span",{className:`shrink-0 rounded px-1.5 py-0.5 text-[10px] font-medium ${s.className}`,children:j(s.key)}):null;return d?(0,e.jsxs)(q.$,{variant:"ghost",onClick:d,className:"w-full justify-start h-auto text-left flex items-center gap-2.5 py-4 cursor-pointer hover:bg-background -mx-1 px-1 rounded-lg transition-colors",children:[(0,e.jsx)(m.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),t,u,v]}):(0,e.jsxs)("div",{children:[(0,e.jsxs)(q.$,{variant:"ghost",onClick:p?c:void 0,className:`w-full justify-start h-auto text-left flex items-center gap-2.5 py-4 ${p?"cursor-pointer hover:bg-background -mx-1 px-1 rounded-lg":""} transition-colors`,children:[b?(0,e.jsx)(n.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,e.jsx)(l.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),t,u,v]}),b&&p&&(0,e.jsxs)("div",{className:"pb-3 pl-5 space-y-3",children:[a.description&&(0,e.jsx)("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:a.description}),k.length>0&&(0,e.jsxs)("div",{className:"rounded-lg bg-background p-3 space-y-2",children:[(0,e.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,e.jsx)(o.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,e.jsx)("span",{className:"text-[11px] font-semibold text-foreground",children:h("taskAcceptanceCriteria")})]}),(0,e.jsx)("div",{className:"space-y-1.5",children:k.map((a,b)=>(0,e.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,e.jsx)("p",{className:"text-[11px] leading-snug text-foreground/80 flex-1",children:a.description}),!1!==a.required&&(0,e.jsx)("span",{className:"shrink-0 text-[10px] font-medium text-[#E65100] dark:text-[#F0A050]",children:i("required")})]},b))})]})]})]})}d()}catch(a){d(a)}})},69086:(a,b,c)=>{c.d(b,{d:()=>t});var d=c(10837),e=c(21968),f=c(9222),g=c(68884),h=c(76549),i=c(86460);let j=(0,c(56556).A)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var k=c(21692),l=c(42424),m=c(11568),n=c(10297),o=c(96307),p=c(42377);let q=(0,p.createServerReference)("40006abc666729415df0257abe5ccc404eec04cf0e",p.callServer,void 0,p.findSourceMapURL,"getProjectIdeasForPickerAction"),r=(0,p.createServerReference)("60c53a9b61a15dbc8aad08aecf05338d08571240aa",p.callServer,void 0,p.findSourceMapURL,"setIdeaParentAction");var s=c(54722);function t({open:a,onOpenChange:b,ideaUuid:c,ideaTitle:p,projectUuid:t,currentParentUuid:u,descendantUuids:v,onChanged:w,onCloseAutoFocus:x}){let y=(0,f.c)("ideaTracker.lineage"),z=(0,f.c)("common"),A=(0,g.r)(),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(null),L=new Set([c,...v]);(0,e.useCallback)(async()=>{G(!0),K(null);try{let a=await q(t);a.success?(C(a.data),E(a.hasMore)):K(a.error)}catch(a){s.q.error("Failed to load parent candidates:",a),K(y("saveFailed"))}G(!1)},[t,y]);let M=async a=>{if(!H){I(!0),K(null);try{let d=await r(c,a);d.success?(h.oR.success(a?y("save"):y("detach")),b(!1),A.refresh(),w()):K(d.error||y("saveFailed"))}catch(a){K(a instanceof Error?a.message:y("saveFailed"))}I(!1)}};return(0,d.jsx)(m.lG,{open:a,onOpenChange:b,children:(0,d.jsxs)(m.Cf,{onCloseAutoFocus:x,children:[(0,d.jsxs)(m.c7,{children:[(0,d.jsx)(m.L3,{children:y("setParentTitle")}),(0,d.jsx)(m.rr,{children:y("setParentDescription",{title:p})})]}),(0,d.jsxs)("div",{className:"min-w-0 space-y-3 pt-1",children:[F?(0,d.jsx)("div",{className:"flex h-40 items-center justify-center",children:(0,d.jsx)(i.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):(0,d.jsx)("div",{className:"rounded-md border border-border",children:(0,d.jsxs)(n.uB,{children:[(0,d.jsx)(n.G7,{placeholder:y("searchPlaceholder")}),(0,d.jsxs)(n.oI,{children:[(0,d.jsx)(n.xL,{children:y("noCandidates")}),(0,d.jsx)(n.L$,{children:B.map(a=>{let b=L.has(a.uuid),c=a.uuid===u;return(0,d.jsxs)(n.h_,{value:a.title,disabled:b,onSelect:()=>{b||M(a.uuid)},className:(0,o.cn)("flex min-w-0 items-center justify-between gap-2",b&&"opacity-55",c&&"bg-primary/10"),children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13px] text-foreground",children:a.title}),b&&(0,d.jsxs)("span",{className:"flex shrink-0 items-center gap-1 text-[11px] font-medium text-[#B0654A] dark:text-[#EBA890]",children:[(0,d.jsx)(j,{className:"h-3 w-3"}),y("cycleBlocked")]})]},a.uuid)})})]})]})}),(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-md bg-[#FBF0EB] dark:bg-[#221e1b] px-3 py-2.5",children:[(0,d.jsx)(k.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[#B0654A] dark:text-[#EBA890]"}),(0,d.jsx)("p",{className:"text-[12px] leading-relaxed text-[#9A5238] dark:text-[#E9A088]",children:y("cycleWarning")})]}),D&&(0,d.jsx)("p",{className:"px-1 text-[12px] text-muted-foreground",role:"status",children:y("pickerTruncated")}),J&&(0,d.jsx)("p",{className:"text-xs text-destructive",role:"alert",children:J})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 pt-2",children:[u?(0,d.jsx)(l.$,{variant:"outline",className:"border-border",onClick:()=>M(null),disabled:H,children:y("detach")}):(0,d.jsx)("span",{}),(0,d.jsx)(l.$,{variant:"outline",className:"border-border",onClick:()=>b(!1),disabled:H,children:z("cancel")})]})]})})}},69815:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{p:()=>n});var e=c(10837),f=c(9222),g=c(80251),h=c(6871),i=c(2852),j=c(99127),k=c(68797),l=c(7086),m=a([k]);function n({assignee:a,onReassign:b,editable:c}){let d=(0,f.c)("common"),m=!0===c&&"function"==typeof b,n=d(a?"reassign":"assign"),o=a?(0,e.jsxs)(e.Fragment,{children:[(0,l.bB)(a)?(0,e.jsx)(h.AgentAvatar,{name:a.name,size:28,className:"rounded-full"}):(0,e.jsx)(g.eu,{className:"h-7 w-7",children:(0,e.jsx)(g.q5,{className:"bg-border text-muted-foreground",children:a.name.charAt(0).toUpperCase()})}),(0,e.jsxs)("div",{className:"min-w-0",children:[(0,e.jsx)("div",{className:"text-sm font-medium text-foreground",children:a.name}),(0,e.jsx)("div",{className:"text-xs text-muted-foreground",children:d((0,l.bB)(a)?"agent":"user")}),"agent_instance"===a.type&&a.instance&&(0,e.jsx)("div",{className:"mt-1",children:(0,e.jsx)(k.jQ,{cwd:a.instance.cwd,host:a.instance.host})})]})]}):(0,e.jsx)("span",{className:"text-sm text-muted-foreground",children:d("unassigned")}),p="mt-2 flex items-center gap-2.5 rounded-lg bg-background p-3";return(0,e.jsxs)("div",{children:[(0,e.jsx)(i.J,{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:d("assignee")}),m?(0,e.jsx)(j.Bc,{delayDuration:300,children:(0,e.jsxs)(j.m_,{children:[(0,e.jsx)(j.k$,{asChild:!0,children:(0,e.jsx)("button",{type:"button",onClick:b,"aria-label":n,className:`${p} w-full cursor-pointer text-left`,children:o})}),(0,e.jsx)(j.ZI,{children:n})]})}):(0,e.jsx)("div",{className:p,children:o})]})}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},72229:(a,b,c)=>{c.d(b,{b:()=>j});var d=c(21968),e=c(16551),f=c(10837),g="horizontal",h=["horizontal","vertical"],i=d.forwardRef((a,b)=>{var c;let{decorative:d,orientation:i=g,...j}=a,k=(c=i,h.includes(c))?i:g;return(0,f.jsx)(e.sG.div,{"data-orientation":k,...d?{role:"none"}:{"aria-orientation":"vertical"===k?k:void 0,role:"separator"},...j,ref:b})});i.displayName="Separator";var j=i},72913:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{N:()=>n,d:()=>m});var e=c(2613);c(50785);var f=c(9259),g=c(97307),h=c(66366),i=c(31370),j=c(25383),k=c(12217),l=a([f,h,i,j]);async function m(a){let b=await (0,f.d)();return b&&["user","super_admin"].includes(b.type)?(0,h.Rf)(b.companyUuid,a):{eligible:!1,reason:"unauthorized"}}async function n(a,b,c){let d=await (0,f.d)();if(!d||!["user","super_admin"].includes(d.type))return{success:!1,errorCode:"unauthorized"};try{let e=b?await (0,j.e2)({companyUuid:d.companyUuid,userUuid:d.actorUuid,...b}):null,f=await (0,i.Di)({companyUuid:d.companyUuid,actorUuid:d.actorUuid,actorType:d.type,ideaUuid:a,temporaryCwd:e,...b?{temporaryAgentUuid:b.agentUuid}:{},...c?{selection:c}:{}});return{success:!0,...f}}catch(b){if(b instanceof i.CZ)return{success:!1,errorCode:b.code};return g.default.error({err:b,ideaUuid:a},"Research dispatch failed"),{success:!1,errorCode:"unknown"}}}[f,h,i,j]=l.then?(await l)():l,(0,k.D)([m,n]),(0,e.A)(m,"403bb332296b383d02ad4a7d35b3dae24960a05176",null),(0,e.A)(n,"705b81805be42afce15daf8abbb8433279c955a395",null),d()}catch(a){d(a)}})},74733:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("corner-down-right",[["path",{d:"m15 10 5 5-5 5",key:"qqa56n"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]])},79030:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(10837),e=c(96307);function f({done:a,total:b,size:c=14,stroke:f=2,className:g,color:h="#B26B3D",trackColor:i="#EAD9C8"}){let j=(c-f)/2,k=2*Math.PI*j,l=b>0?Math.min(1,Math.max(0,a/b)):0;return(0,d.jsxs)("svg",{width:c,height:c,viewBox:`0 0 ${c} ${c}`,className:(0,e.cn)("shrink-0",g),role:"img","aria-label":`${a}/${b}`,children:[(0,d.jsx)("circle",{cx:c/2,cy:c/2,r:j,fill:"none",stroke:i,strokeWidth:f}),l>0&&(0,d.jsx)("circle",{cx:c/2,cy:c/2,r:j,fill:"none",stroke:b>0&&a>=b?"#1D9E75":h,strokeWidth:f,strokeDasharray:k,strokeDashoffset:k*(1-l),strokeLinecap:"round",transform:`rotate(-90 ${c/2} ${c/2})`})]})}},84722:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{G:()=>q});var e=c(10837),f=c(9222),g=c(86460),h=c(16235),i=c(2852),j=c(84819),k=c(78714),l=c(97450),m=c(31009),n=c(45148),o=c(69815),p=a([l,o]);function q({idea:a,elaboration:b,isLoading:c,onRefresh:d,onReassign:p,canReassign:q}){let r=(0,f.c)("ideaTracker"),s=(0,f.c)("common");return c?(0,e.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,e.jsx)(g.A,{className:"h-5 w-5 animate-spin text-primary"})}):(0,e.jsxs)(m.P.div,{variants:n.qG,initial:"initial",animate:"animate",children:[(0,e.jsx)(o.p,{assignee:a.assignee,onReassign:p,editable:q}),(0,e.jsx)(j.Separator,{className:"my-5 bg-secondary"}),b&&b.rounds.length>0?(0,e.jsx)("div",{children:(0,e.jsx)(k.R,{ideaUuid:a.uuid,elaboration:b,onRefresh:d})}):"open"===a.status?(0,e.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-8 text-center",children:[(0,e.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-[#FFF3E0] dark:bg-[#3a2a12]",children:(0,e.jsx)(h.A,{className:"h-5 w-5 text-[#E65100] dark:text-[#F0A050]"})}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium text-foreground",children:r("panel.elaborationNotStarted")}),(0,e.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:r("panel.elaborationNotStartedDesc")})]})]}):(0,e.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-8 text-center",children:[(0,e.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-[#E3F2FD] dark:bg-[#13253a]",children:(0,e.jsx)(h.A,{className:"h-5 w-5 text-[#1976D2] dark:text-[#5AA9F0]"})}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium text-foreground",children:r("panel.elaborationWaiting")}),(0,e.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:r("panel.elaborationWaitingDesc")})]})]}),a.content&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(j.Separator,{className:"my-5 bg-secondary"}),(0,e.jsxs)("div",{children:[(0,e.jsx)(i.J,{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:s("content")}),(0,e.jsx)("div",{className:"mt-2",children:(0,e.jsx)("div",{className:"prose prose-sm max-w-none text-[13px] leading-relaxed text-foreground",children:(0,e.jsx)(l.MarkdownContent,{children:a.content})})})]})]})]})}[l,o]=p.then?(await p)():p,d()}catch(a){d(a)}})},84855:(a,b,c)=>{c.d(b,{c:()=>e});var d=c(42377);let e=(0,d.createServerReference)("4074ae748fd50b92b411ca059967546a201f39b1b8",d.callServer,void 0,d.findSourceMapURL,"getIdeaAction")},98310:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K:()=>q});var e=c(10837),f=c(21968),g=c(9222),h=c(35209),i=c(10694),j=c(42424),k=c(49599),l=c(74645),m=c(97450),n=c(55183),o=c(77521),p=a([m]);function q({title:a,type:b,content:c,mode:d="overlay",onClose:p,onBack:q}){let r=(0,g.c)("documents"),[s,t]=(0,f.useState)(!1),u="sidebyside"===d;return(0,e.jsxs)(e.Fragment,{children:[!u&&(0,e.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:p}),(0,e.jsxs)("div",{className:`fixed top-14 md:top-0 flex h-[calc(100%-3.5rem)] md:h-full w-full md:w-[480px] flex-col bg-card shadow-xl border-l border-border ${u?`z-40 ${s?"":"animate-in slide-in-from-right duration-300"}`:`z-50 right-0 ${s?"":"animate-in slide-in-from-right duration-300"}`}`,style:u?{right:`${o.L8}px`}:void 0,children:[(0,e.jsxs)("div",{className:"flex items-center justify-between border-b border-secondary px-6 py-5",children:[q&&(0,e.jsx)(j.$,{variant:"ghost",size:"icon",className:"mr-2 h-8 w-8 shrink-0",onClick:q,children:(0,e.jsx)(h.A,{className:"h-4 w-4 text-muted-foreground"})}),(0,e.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,e.jsx)("h2",{className:"text-base font-semibold text-foreground truncate",children:a}),(0,e.jsx)("div",{className:"mt-1.5",children:(0,e.jsx)(k.E,{variant:"outline",className:"text-[10px] font-medium border-border text-muted-foreground bg-secondary px-2 py-0.5 font-mono",children:r(n.y[b]||"typeOther")})})]}),(0,e.jsx)(j.$,{variant:"outline",size:"icon",className:"ml-4 h-8 w-8 shrink-0 border-border",onClick:p,children:(0,e.jsx)(i.A,{className:"h-4 w-4 text-muted-foreground"})})]}),(0,e.jsx)(l.F,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:(0,e.jsx)("div",{className:"px-6 py-5 text-[13px] leading-relaxed text-foreground prose prose-sm max-w-none [&_h1]:text-lg [&_h1]:font-semibold [&_h1]:mt-4 [&_h1]:mb-2 [&_h2]:text-base [&_h2]:font-semibold [&_h2]:mt-3 [&_h2]:mb-1.5 [&_h3]:text-sm [&_h3]:font-medium [&_h3]:mt-2 [&_h3]:mb-1 [&_p]:text-[13px] [&_p]:text-foreground/80 [&_p]:my-1.5 [&_li]:text-[13px] [&_li]:text-foreground/80 [&_ul]:my-1 [&_ol]:my-1 [&_strong]:text-foreground [&_code]:text-[12px] [&_code]:bg-secondary [&_code]:text-foreground [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_pre]:bg-secondary [&_pre]:text-foreground [&_pre]:p-3 [&_pre]:rounded-lg [&_pre]:my-2 [&_a]:text-primary",children:(0,e.jsx)(m.MarkdownContent,{children:(0,n.j)(c)})})})]})]})}m=(p.then?(await p)():p)[0],d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=4827,exports.ids=[4827],exports.modules={27473:(a,b,c)=>{c.d(b,{hD:()=>h,OG:()=>k,YB:()=>m,mA:()=>l,FB:()=>j});var d=c(70936),e=c(7046),f=c(65582);let g=new(c(16698)).AsyncLocalStorage;class h extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}let i={P2002:"Unique constraint violation",P2025:"Record not found",P2003:"Foreign key constraint violation"};function j(a){return async(b,c)=>{let j=crypto.randomUUID(),k=(0,f.q)({requestId:j});return g.run({requestId:j,logger:k},async()=>{try{return await a(b,c)}catch(a){if((g.getStore()?.logger??f.default).error({err:a},"API error"),a instanceof h)return d.NextResponse.json({success:!1,error:{code:a.code,message:a.message,details:a.details}},{status:a.status});if(a&&"object"==typeof a&&"code"in a){let b=i[a.code];if(b){if("P2025"===a.code)return e.sO.notFound();if("P2002"===a.code)return e.sO.conflict(b);return e.sO.database(b)}}if(a instanceof Error)return e.sO.internal("Internal server error");return e.sO.internal()}})}}async function k(a){try{return await a.json()}catch{throw new h("BAD_REQUEST","Invalid JSON body",400)}}function l(a){let b=new URL(a.url),c={};return b.searchParams.forEach((a,b)=>{c[b]=a}),c}function m(a){let b=l(a),c=Math.max(1,parseInt(b.page||"1",10)),d=Math.min(100,Math.max(1,parseInt(b.pageSize||"20",10)));return{page:c,pageSize:d,skip:(c-1)*d,take:d}}},97515:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BP:()=>x,IH:()=>r,Mx:()=>t,_R:()=>v,hx:()=>s,qU:()=>o,vA:()=>h,y8:()=>u});var e=c(52618),f=c(65582),g=a([e]);e=(g.then?(await g)():g)[0];let w=["claude_code","openclaw","codex","kiro","dsh","pi"],x=9e4;function h(a){return null!==a&&"conflict"in a}function i(a,b,c=Date.now()){return"online"===a&&c-b.getTime()<=x}function j(a){let b=i(a.status,a.lastSeenAt)?"online":"offline";return{uuid:a.uuid,agentUuid:a.agentUuid,agentName:a.agent?.name??null,ownerUuid:a.agent?.ownerUuid??null,clientType:a.clientType,clientVersion:a.clientVersion,host:a.host,cwd:a.cwd,startedAt:a.startedAt?a.startedAt.toISOString():null,status:a.status,effectiveStatus:b,connectedAt:a.connectedAt.toISOString(),lastSeenAt:a.lastSeenAt.toISOString(),disconnectedAt:a.disconnectedAt?a.disconnectedAt.toISOString():null,agentInstanceUuid:a.agentInstanceUuid??null}}function k(a){let b=a?.trim();return b?b.toLocaleLowerCase("en-US"):"￿"}function l(a){return null===a?"￿":a}function m(a,b){return a<b?-1:+(a>b)}function n(a){return[...a].sort((a,b)=>a.effectiveStatus!==b.effectiveStatus?"online"===a.effectiveStatus?-1:1:m(k(a.agentName),k(b.agentName))||m(a.agentUuid,b.agentUuid)||m(l(a.cwd),l(b.cwd))||m(a.host,b.host)||m(a.clientType,b.clientType)||m(a.uuid,b.uuid))}function o(a){let b=a.get("clientType")??"",c=a.get("livenessAck"),d=a.get("clientVersion"),e=a.get("host"),f=a.get("cwd"),g=null,h=a.get("startedAt");if(h){let a=new Date(h);Number.isNaN(a.getTime())||(g=a)}return{clientType:b,livenessAck:c??null,clientVersion:d??null,host:e??null,cwd:f??null,startedAt:g}}async function p(a,b,c,d){let g={companyUuid:a,agentUuid:b,host:c,cwd:d};try{if(null===d){let d=await e.z.agentInstance.findFirst({where:{companyUuid:a,agentUuid:b,host:c,cwd:null},select:{uuid:!0}});if(d)return(await e.z.agentInstance.update({where:{uuid:d.uuid},data:{updatedAt:new Date},select:{uuid:!0}})).uuid;return(await e.z.agentInstance.create({data:g,select:{uuid:!0}})).uuid}return(await e.z.agentInstance.upsert({where:{companyUuid_agentUuid_host_cwd:{companyUuid:a,agentUuid:b,host:c,cwd:d}},create:g,update:{updatedAt:new Date},select:{uuid:!0}})).uuid}catch(e){return f.default.error({err:e,companyUuid:a,agentUuid:b,host:c,cwd:d},"Failed to upsert AgentInstance; connection will register with a null instance link"),null}}async function q(a,b,c,d,f){for(let g of(await e.z.daemonConnection.findMany({where:{agentUuid:a,host:b,cwd:c},select:{status:!0,lastSeenAt:!0,startedAt:!0,clientType:!0}}))){if(!i(g.status,g.lastSeenAt,f))continue;let a=null!==d&&null!==g.startedAt&&g.startedAt.getTime()===d.getTime(),b=null===d&&null===g.startedAt;if(!a&&!b)return{incumbentStartedAt:g.startedAt,incumbentClientType:g.clientType}}return null}async function r(a,b,d){var g;if(g=d.clientType,!w.includes(g))return null;let h=d.host??"",i=d.cwd??null,j=new Date;try{if(null!==i){let c=await q(b,h,i,d.startedAt??null,j.getTime());if(c)return f.default.warn({companyUuid:a,agentUuid:b,host:h,cwd:i,incumbentStartedAt:c.incumbentStartedAt,incomingStartedAt:d.startedAt??null,incumbentClientType:c.incumbentClientType,incomingClientType:d.clientType},"Skipping daemon connection registration: a live daemon already holds this (agent, host, cwd)"),{conflict:!0,host:h,cwd:i}}let g=await p(a,b,h,i),k={companyUuid:a,agentUuid:b,clientType:d.clientType,clientVersion:d.clientVersion??null,host:h,cwd:i,startedAt:d.startedAt??null,status:"online",connectedAt:j,lastSeenAt:j,disconnectedAt:null,agentInstanceUuid:g},l={companyUuid:a,clientVersion:d.clientVersion??null,startedAt:d.startedAt??null,status:"online",connectedAt:j,lastSeenAt:j,disconnectedAt:null,agentInstanceUuid:g};if(null===i){let a=await e.z.daemonConnection.findFirst({where:{agentUuid:b,clientType:d.clientType,host:h,cwd:null},select:{uuid:!0}});if(a){let b=await e.z.daemonConnection.update({where:{uuid:a.uuid},data:l,select:{uuid:!0,connectedAt:!0}});return{uuid:b.uuid,connectedAt:b.connectedAt}}let c=await e.z.daemonConnection.create({data:k,select:{uuid:!0,connectedAt:!0}});return{uuid:c.uuid,connectedAt:c.connectedAt}}let m=await e.z.daemonConnection.findFirst({where:{agentUuid:b,clientType:d.clientType,host:h,cwd:i},select:{uuid:!0,startedAt:!0}}),n=await e.z.daemonConnection.upsert({where:{agentUuid_clientType_host_cwd:{agentUuid:b,clientType:d.clientType,host:h,cwd:i}},create:k,update:l,select:{uuid:!0,connectedAt:!0}}),o=d.startedAt??null,r=m?.startedAt instanceof Date?m.startedAt:null;return m&&null!==r&&null!==o&&r.getTime()!==o.getTime()&&Promise.all([c.e(8481),c.e(7578),c.e(1722),c.e(3419),c.e(6737)]).then(c.bind(c,34853)).then(({reconcileOrphanTurns:b})=>b(a,n.uuid,{force:!0})).catch(b=>{f.default.error({err:b,companyUuid:a,connectionUuid:n.uuid},"New-generation orphan-turn reconcile failed to dispatch")}),{uuid:n.uuid,connectedAt:n.connectedAt}}catch(c){return f.default.error({err:c,companyUuid:a,agentUuid:b,clientType:d.clientType},"Failed to register daemon connection"),null}}async function s(a,b){try{await e.z.daemonConnection.updateMany({where:{uuid:b.uuid,companyUuid:a,connectedAt:b.connectedAt},data:{status:"offline",disconnectedAt:new Date}})}catch(c){f.default.error({err:c,companyUuid:a,connectionUuid:b.uuid},"Failed to mark daemon connection disconnected")}}async function t(a,b,c){try{return(await e.z.daemonConnection.updateMany({where:{uuid:b.uuid,companyUuid:a,connectedAt:b.connectedAt,...c?{agentUuid:c}:{}},data:{status:"online",lastSeenAt:new Date}})).count>0}catch(c){return f.default.error({err:c,companyUuid:a,connectionUuid:b.uuid},"Failed to touch daemon connection"),!1}}async function u(a,b){let c=await e.z.daemonConnection.findMany({where:{companyUuid:a,agent:{ownerUuid:b}},include:{agent:{select:{name:!0,ownerUuid:!0}}}});return n(c.map(j))}async function v(a,b){let c=await e.z.daemonConnection.findMany({where:{companyUuid:a,agentUuid:b},include:{agent:{select:{name:!0,ownerUuid:!0}}}});return n(c.map(j))}d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=4827,exports.ids=[4827],exports.modules={27473:(a,b,c)=>{c.d(b,{hD:()=>h,OG:()=>k,YB:()=>m,mA:()=>l,FB:()=>j});var d=c(70936),e=c(7046),f=c(65582);let g=new(c(16698)).AsyncLocalStorage;class h extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}let i={P2002:"Unique constraint violation",P2025:"Record not found",P2003:"Foreign key constraint violation"};function j(a){return async(b,c)=>{let j=crypto.randomUUID(),k=(0,f.q)({requestId:j});return g.run({requestId:j,logger:k},async()=>{try{return await a(b,c)}catch(a){if((g.getStore()?.logger??f.default).error({err:a},"API error"),a instanceof h)return d.NextResponse.json({success:!1,error:{code:a.code,message:a.message,details:a.details}},{status:a.status});if(a&&"object"==typeof a&&"code"in a){let b=i[a.code];if(b){if("P2025"===a.code)return e.sO.notFound();if("P2002"===a.code)return e.sO.conflict(b);return e.sO.database(b)}}if(a instanceof Error)return e.sO.internal("Internal server error");return e.sO.internal()}})}}async function k(a){try{return await a.json()}catch{throw new h("BAD_REQUEST","Invalid JSON body",400)}}function l(a){let b=new URL(a.url),c={};return b.searchParams.forEach((a,b)=>{c[b]=a}),c}function m(a){let b=l(a),c=Math.max(1,parseInt(b.page||"1",10)),d=Math.min(100,Math.max(1,parseInt(b.pageSize||"20",10)));return{page:c,pageSize:d,skip:(c-1)*d,take:d}}},97515:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BP:()=>x,IH:()=>r,Mx:()=>t,_R:()=>v,hx:()=>s,qU:()=>o,vA:()=>h,y8:()=>u});var e=c(52618),f=c(65582),g=a([e]);e=(g.then?(await g)():g)[0];let w=["claude_code","openclaw","codex","kiro","dsh","pi"],x=9e4;function h(a){return null!==a&&"conflict"in a}function i(a,b,c=Date.now()){return"online"===a&&c-b.getTime()<=x}function j(a){let b=i(a.status,a.lastSeenAt)?"online":"offline";return{uuid:a.uuid,agentUuid:a.agentUuid,agentName:a.agent?.name??null,ownerUuid:a.agent?.ownerUuid??null,clientType:a.clientType,clientVersion:a.clientVersion,host:a.host,cwd:a.cwd,startedAt:a.startedAt?a.startedAt.toISOString():null,status:a.status,effectiveStatus:b,connectedAt:a.connectedAt.toISOString(),lastSeenAt:a.lastSeenAt.toISOString(),disconnectedAt:a.disconnectedAt?a.disconnectedAt.toISOString():null,agentInstanceUuid:a.agentInstanceUuid??null}}function k(a){let b=a?.trim();return b?b.toLocaleLowerCase("en-US"):"￿"}function l(a){return null===a?"￿":a}function m(a,b){return a<b?-1:+(a>b)}function n(a){return[...a].sort((a,b)=>a.effectiveStatus!==b.effectiveStatus?"online"===a.effectiveStatus?-1:1:m(k(a.agentName),k(b.agentName))||m(a.agentUuid,b.agentUuid)||m(l(a.cwd),l(b.cwd))||m(a.host,b.host)||m(a.clientType,b.clientType)||m(a.uuid,b.uuid))}function o(a){let b=a.get("clientType")??"",c=a.get("livenessAck"),d=a.get("clientVersion"),e=a.get("host"),f=a.get("cwd"),g=null,h=a.get("startedAt");if(h){let a=new Date(h);Number.isNaN(a.getTime())||(g=a)}return{clientType:b,livenessAck:c??null,clientVersion:d??null,host:e??null,cwd:f??null,startedAt:g}}async function p(a,b,c,d){let g={companyUuid:a,agentUuid:b,host:c,cwd:d};try{if(null===d){let d=await e.z.agentInstance.findFirst({where:{companyUuid:a,agentUuid:b,host:c,cwd:null},select:{uuid:!0}});if(d)return(await e.z.agentInstance.update({where:{uuid:d.uuid},data:{updatedAt:new Date},select:{uuid:!0}})).uuid;return(await e.z.agentInstance.create({data:g,select:{uuid:!0}})).uuid}return(await e.z.agentInstance.upsert({where:{companyUuid_agentUuid_host_cwd:{companyUuid:a,agentUuid:b,host:c,cwd:d}},create:g,update:{updatedAt:new Date},select:{uuid:!0}})).uuid}catch(e){return f.default.error({err:e,companyUuid:a,agentUuid:b,host:c,cwd:d},"Failed to upsert AgentInstance; connection will register with a null instance link"),null}}async function q(a,b,c,d,f){for(let g of(await e.z.daemonConnection.findMany({where:{agentUuid:a,host:b,cwd:c},select:{status:!0,lastSeenAt:!0,startedAt:!0,clientType:!0}}))){if(!i(g.status,g.lastSeenAt,f))continue;let a=null!==d&&null!==g.startedAt&&g.startedAt.getTime()===d.getTime(),b=null===d&&null===g.startedAt;if(!a&&!b)return{incumbentStartedAt:g.startedAt,incumbentClientType:g.clientType}}return null}async function r(a,b,d){var g;if(g=d.clientType,!w.includes(g))return null;let h=d.host??"",i=d.cwd??null,j=new Date;try{if(null!==i){let c=await q(b,h,i,d.startedAt??null,j.getTime());if(c)return f.default.warn({companyUuid:a,agentUuid:b,host:h,cwd:i,incumbentStartedAt:c.incumbentStartedAt,incomingStartedAt:d.startedAt??null,incumbentClientType:c.incumbentClientType,incomingClientType:d.clientType},"Skipping daemon connection registration: a live daemon already holds this (agent, host, cwd)"),{conflict:!0,host:h,cwd:i}}let g=await p(a,b,h,i),k={companyUuid:a,agentUuid:b,clientType:d.clientType,clientVersion:d.clientVersion??null,host:h,cwd:i,startedAt:d.startedAt??null,status:"online",connectedAt:j,lastSeenAt:j,disconnectedAt:null,agentInstanceUuid:g},l={companyUuid:a,clientVersion:d.clientVersion??null,startedAt:d.startedAt??null,status:"online",connectedAt:j,lastSeenAt:j,disconnectedAt:null,agentInstanceUuid:g};if(null===i){let a=await e.z.daemonConnection.findFirst({where:{agentUuid:b,clientType:d.clientType,host:h,cwd:null},select:{uuid:!0}});if(a){let b=await e.z.daemonConnection.update({where:{uuid:a.uuid},data:l,select:{uuid:!0,connectedAt:!0}});return{uuid:b.uuid,connectedAt:b.connectedAt}}let c=await e.z.daemonConnection.create({data:k,select:{uuid:!0,connectedAt:!0}});return{uuid:c.uuid,connectedAt:c.connectedAt}}let m=await e.z.daemonConnection.findFirst({where:{agentUuid:b,clientType:d.clientType,host:h,cwd:i},select:{uuid:!0,startedAt:!0}}),n=await e.z.daemonConnection.upsert({where:{agentUuid_clientType_host_cwd:{agentUuid:b,clientType:d.clientType,host:h,cwd:i}},create:k,update:l,select:{uuid:!0,connectedAt:!0}}),o=d.startedAt??null,r=m?.startedAt instanceof Date?m.startedAt:null;return m&&null!==r&&null!==o&&r.getTime()!==o.getTime()&&Promise.all([c.e(8481),c.e(7258),c.e(8437),c.e(7578),c.e(1722),c.e(3419),c.e(6737)]).then(c.bind(c,34853)).then(({reconcileOrphanTurns:b})=>b(a,n.uuid,{force:!0})).catch(b=>{f.default.error({err:b,companyUuid:a,connectionUuid:n.uuid},"New-generation orphan-turn reconcile failed to dispatch")}),{uuid:n.uuid,connectedAt:n.connectedAt}}catch(c){return f.default.error({err:c,companyUuid:a,agentUuid:b,clientType:d.clientType},"Failed to register daemon connection"),null}}async function s(a,b){try{await e.z.daemonConnection.updateMany({where:{uuid:b.uuid,companyUuid:a,connectedAt:b.connectedAt},data:{status:"offline",disconnectedAt:new Date}})}catch(c){f.default.error({err:c,companyUuid:a,connectionUuid:b.uuid},"Failed to mark daemon connection disconnected")}}async function t(a,b,c){try{return(await e.z.daemonConnection.updateMany({where:{uuid:b.uuid,companyUuid:a,connectedAt:b.connectedAt,...c?{agentUuid:c}:{}},data:{status:"online",lastSeenAt:new Date}})).count>0}catch(c){return f.default.error({err:c,companyUuid:a,connectionUuid:b.uuid},"Failed to touch daemon connection"),!1}}async function u(a,b){let c=await e.z.daemonConnection.findMany({where:{companyUuid:a,agent:{ownerUuid:b}},include:{agent:{select:{name:!0,ownerUuid:!0}}}});return n(c.map(j))}async function v(a,b){let c=await e.z.daemonConnection.findMany({where:{companyUuid:a,agentUuid:b},include:{agent:{select:{name:!0,ownerUuid:!0}}}});return n(c.map(j))}d()}catch(a){d(a)}})}};