@chorus-aidlc/chorus 0.19.0 → 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 (528) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +382 -383
  3. package/.next/standalone/.next/app-path-routes-manifest.json +37 -37
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +30 -30
  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 +37 -37
  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/{7400.js → 3420.js} +1 -1
  360. package/.next/standalone/.next/server/chunks/{9848.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/5576.js +1 -0
  365. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  366. package/.next/standalone/.next/server/chunks/{6607.js → 6125.js} +1 -1
  367. package/.next/standalone/.next/server/chunks/6506.js +39 -3
  368. package/.next/standalone/.next/server/chunks/6509.js +1 -0
  369. package/.next/standalone/.next/server/chunks/6515.js +2 -2
  370. package/.next/standalone/.next/server/chunks/657.js +1 -0
  371. package/.next/standalone/.next/server/chunks/{5489.js → 661.js} +44 -8
  372. package/.next/standalone/.next/server/chunks/6654.js +1 -0
  373. package/.next/standalone/.next/server/chunks/6737.js +1 -1
  374. package/.next/standalone/.next/server/chunks/679.js +1 -1
  375. package/.next/standalone/.next/server/chunks/{2516.js → 7258.js} +1 -1
  376. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  377. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  378. package/.next/standalone/.next/server/chunks/7578.js +1 -1
  379. package/.next/standalone/.next/server/chunks/8017.js +1 -0
  380. package/.next/standalone/.next/server/chunks/8437.js +1 -0
  381. package/.next/standalone/.next/server/chunks/{6449.js → 8566.js} +1 -1
  382. package/.next/standalone/.next/server/chunks/920.js +1 -1
  383. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  384. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  385. package/.next/standalone/.next/server/chunks/951.js +88 -1
  386. package/.next/standalone/.next/server/chunks/9670.js +1 -0
  387. package/.next/standalone/.next/server/chunks/9931.js +1 -1
  388. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  389. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  390. package/.next/standalone/.next/server/pages/404.html +2 -2
  391. package/.next/standalone/.next/server/pages/500.html +1 -1
  392. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  393. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  394. package/.next/standalone/.next/static/chunks/{15183-3f43af926186f7ef.js → 10488-d518e8ce8ae45724.js} +6 -6
  395. package/.next/standalone/.next/static/chunks/11595.b2b74d1d1d0ae9d9.js +1 -0
  396. package/.next/standalone/.next/static/chunks/17081-63e2cad8c15da2fb.js +1 -0
  397. package/.next/standalone/.next/static/chunks/2069-68d93343e4ca252e.js +1 -0
  398. package/.next/standalone/.next/static/chunks/27370-f998ed24dd4fa975.js +1 -0
  399. package/.next/standalone/.next/static/chunks/33456.978e5f47d1c8eb93.js +1 -0
  400. package/.next/standalone/.next/static/chunks/46437-88abf056c31c7e4e.js +1 -0
  401. package/.next/standalone/.next/static/chunks/48365-13b8e43016ba16a4.js +1 -0
  402. package/.next/standalone/.next/static/chunks/4860.79d6eefc2861716f.js +1 -0
  403. package/.next/standalone/.next/static/chunks/56863-a2cc92f9ca49f0f8.js +1 -0
  404. package/.next/standalone/.next/static/chunks/69398-c2f73fe154aaee76.js +1 -0
  405. package/.next/standalone/.next/static/chunks/{26020-7b4756ba0aa906cf.js → 71522-de2b2a9d8e5059e1.js} +1 -1
  406. package/.next/standalone/.next/static/chunks/71890-e6c13ce1debd87c2.js +1 -0
  407. package/.next/standalone/.next/static/chunks/71921-f6754331cd35fa5a.js +1 -0
  408. package/.next/standalone/.next/static/chunks/7777-18527b954e3c5557.js +1 -0
  409. package/.next/standalone/.next/static/chunks/79919-d423af700ae83862.js +1 -0
  410. package/.next/standalone/.next/static/chunks/83749-f797272bf30fc2f4.js +10 -0
  411. package/.next/standalone/.next/static/chunks/91796-d235607f577fbaeb.js +1 -0
  412. package/.next/standalone/.next/static/chunks/91907-a4182d1a3c870d0f.js +1 -0
  413. package/.next/standalone/.next/static/chunks/99373.e659954ff5148796.js +1 -0
  414. package/.next/standalone/.next/static/chunks/99540-99af558190f96511.js +1 -0
  415. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-adf9dbdf339e9038.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/{page-82e90e222d6bc547.js → page-cf8ff072a8bc7409.js} +1 -1
  417. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-00d18e26961cee2f.js +1 -0
  418. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-9ed4d7d4f5897de0.js +1 -0
  419. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-9d6d86299f2fadd9.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-487d071317ae5e6d.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-b18a2aba2c4f4f1c.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-32149a823e7abf42.js +1 -0
  423. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-0ac33f9146fc53c5.js +1 -0
  424. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-301f21a3ae52e318.js → page-7cb8a91f6ca34ba8.js} +1 -1
  425. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-dd123990c14e9768.js → page-6466141ca355d9a4.js} +1 -1
  426. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-069c9738e516436b.js → page-793285a6cf214896.js} +1 -1
  427. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-ba19aec7fde5086c.js +1 -0
  428. package/.next/standalone/.next/static/chunks/app/onboarding/{page-5914ff3d878a3c34.js → page-323e1d93218758c5.js} +1 -1
  429. package/.next/standalone/.next/static/chunks/{webpack-de8a36d232a91d6b.js → webpack-ec441a05567c82b0.js} +1 -1
  430. package/.next/standalone/.next/static/css/652fcc1f1ab231c8.css +1 -0
  431. package/.next/standalone/package.json +1 -1
  432. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  433. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
  434. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +5 -1
  435. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +16 -1
  436. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
  437. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  438. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  439. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +13 -1
  440. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  441. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +1 -1
  442. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +9 -1
  443. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  444. package/.next/standalone/public/chorus-plugin/skills/research/SKILL.md +51 -0
  445. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  446. package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +1 -1
  447. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +5 -1
  448. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.json +1 -0
  449. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +5 -1
  450. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
  451. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
  452. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  453. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +13 -1
  454. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
  455. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
  456. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +9 -1
  457. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
  458. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-research/SKILL.md +51 -0
  459. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
  460. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +1 -1
  461. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +5 -1
  462. package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +16 -1
  463. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
  464. package/.next/standalone/public/kiro-plugin/manifest.txt +1 -0
  465. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +4 -0
  466. package/.next/standalone/public/skill/chorus/SKILL.md +20 -2
  467. package/.next/standalone/public/skill/idea-chorus/SKILL.md +12 -0
  468. package/.next/standalone/public/skill/package.json +1 -0
  469. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +8 -0
  470. package/.next/standalone/public/skill/research-chorus/SKILL.md +51 -0
  471. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +4 -0
  472. package/README.ja.md +3 -11
  473. package/README.ko.md +3 -11
  474. package/README.md +3 -11
  475. package/README.zh.md +3 -11
  476. package/cli/control-handler.mjs +20 -0
  477. package/cli/daemon-rest-client.mjs +7 -4
  478. package/cli/event-router.mjs +65 -3
  479. package/cli/operation-contract.mjs +3 -0
  480. package/cli/operation-prompts.mjs +99 -0
  481. package/cli/operation.mjs +46 -0
  482. package/cli/prompts.mjs +7 -0
  483. package/cli/wake-queue.mjs +5 -1
  484. package/cli/waker.mjs +127 -4
  485. package/package.json +1 -1
  486. package/prisma/migrations/20260927073000_add_daemon_operation_payload/migration.sql +1 -0
  487. package/prisma/schema.prisma +3 -2
  488. package/.next/standalone/.next/server/chunks/1318.js +0 -1
  489. package/.next/standalone/.next/server/chunks/1416.js +0 -88
  490. package/.next/standalone/.next/server/chunks/1683.js +0 -1
  491. package/.next/standalone/.next/server/chunks/3341.js +0 -1
  492. package/.next/standalone/.next/server/chunks/457.js +0 -1
  493. package/.next/standalone/.next/server/chunks/5300.js +0 -1
  494. package/.next/standalone/.next/server/chunks/8044.js +0 -1
  495. package/.next/standalone/.next/server/chunks/8185.js +0 -1
  496. package/.next/standalone/.next/server/chunks/8454.js +0 -1
  497. package/.next/standalone/.next/static/chunks/11595.f080a1d100972212.js +0 -1
  498. package/.next/standalone/.next/static/chunks/17099-936da9caf4c119b8.js +0 -1
  499. package/.next/standalone/.next/static/chunks/17562-56f932146e9e6c94.js +0 -10
  500. package/.next/standalone/.next/static/chunks/18751-3616e33050e9611e.js +0 -1
  501. package/.next/standalone/.next/static/chunks/27370-c056dee2016c9124.js +0 -1
  502. package/.next/standalone/.next/static/chunks/31308-bb4a97b3f39c22dd.js +0 -1
  503. package/.next/standalone/.next/static/chunks/33456.20313bd67a5c41cc.js +0 -1
  504. package/.next/standalone/.next/static/chunks/35432-5c245212c7595169.js +0 -1
  505. package/.next/standalone/.next/static/chunks/44437-d13183f50281116f.js +0 -1
  506. package/.next/standalone/.next/static/chunks/45024-eb7c062d13d9fe08.js +0 -1
  507. package/.next/standalone/.next/static/chunks/4860.3b555a398cdffb19.js +0 -1
  508. package/.next/standalone/.next/static/chunks/59713-426f81b6576173d8.js +0 -1
  509. package/.next/standalone/.next/static/chunks/60351-bdef539874e5027e.js +0 -1
  510. package/.next/standalone/.next/static/chunks/67580-8733964ab2c7fc0e.js +0 -1
  511. package/.next/standalone/.next/static/chunks/7777-8b1b6681256e1534.js +0 -1
  512. package/.next/standalone/.next/static/chunks/78155-db70d9684a1e77a2.js +0 -1
  513. package/.next/standalone/.next/static/chunks/79919-1e7e294a06f2c4a0.js +0 -1
  514. package/.next/standalone/.next/static/chunks/94643-e54eff17e941a93b.js +0 -1
  515. package/.next/standalone/.next/static/chunks/99373.b8a95d1bec5ad4e7.js +0 -1
  516. package/.next/standalone/.next/static/chunks/99733-5a2e39f57fbda32d.js +0 -1
  517. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-072a6b8f0a48b1b6.js +0 -1
  518. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-198a3ff89ae871b9.js +0 -1
  519. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-a506de82e8997714.js +0 -1
  520. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-dc54fafa22d21863.js +0 -1
  521. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-6eb5d3cb036a78e0.js +0 -1
  522. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-69c6f0190623e19b.js +0 -1
  523. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-2a52f747e6fac5a7.js +0 -1
  524. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-22cce567a85ea291.js +0 -1
  525. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-548231f8c9856489.js +0 -1
  526. package/.next/standalone/.next/static/css/44f13b43a3de716d.css +0 -1
  527. /package/.next/standalone/.next/static/{Pmji9kEq8T2lM6AKQkZji → AWk31w7ryFKaxOnUlIeo2}/_buildManifest.js +0 -0
  528. /package/.next/standalone/.next/static/{Pmji9kEq8T2lM6AKQkZji → AWk31w7ryFKaxOnUlIeo2}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4860],{4860:e=>{e.exports=JSON.parse('{"common":{"appName":"Chorus","loading":"加载中...","save":"保存","cancel":"取消","delete":"删除","edit":"编辑","create":"创建","search":"搜索","done":"完成","copy":"复制","copied":"已复制!","back":"返回","viewAll":"查看全部","showMore":"展开","showLess":"收起","signOut":"退出登录","optional":"可选","unassigned":"未分配","agent":"智能体","user":"用户","status":"状态","priority":"优先级","type":"类型","created":"创建时间","updated":"更新时间","version":"版本","description":"描述","details":"详情","content":"内容","assignment":"分配","noDescription":"暂无描述","noContent":"暂无内容","creating":"创建中...","processing":"处理中...","saving":"保存中...","claim":"认领","release":"释放","assign":"分配","reassign":"重新分配","verify":"验证","reject":"拒绝","approve":"批准","selectProject":"请先选择一个项目","assignee":"负责人","activity":"动态","noActivity":"暂无动态","source":"来源","currentAssignee":"当前负责人","failedToAssign":"分配失败","actions":"操作","close":"关闭","genericError":"发生错误,请重试。","unknown":"未知","system":"系统","confirmDelete":"确定要删除吗?"},"theme":{"toggleLabel":"主题","light":"浅色","dark":"深色","system":"跟随系统"},"activity":{"taskCreated":"{actor} 创建了此任务","taskAssigned":"{actor} 被分配到此任务","taskClaimed":"{actor} 认领了此任务","taskStarted":"{actor} 开始处理此任务","taskSubmitted":"{actor} 提交了此任务待审核","taskCompleted":"{actor} 完成了此任务","taskReleased":"{actor} 释放了此任务","taskStatusChanged":"{actor} 更改了任务状态","ideaCreated":"{actor} 创建了此想法","ideaAssigned":"{actor} 被分配到此想法","ideaClaimed":"{actor} 认领了此想法","ideaReleased":"{actor} 释放了此想法","ideaStatusChanged":"{actor} 更改了想法状态","ideaEdited":"{actor} 编辑了想法","ideaReparented":"{actor} 更改了想法的父级","elaborationStarted":"{actor} 发起了需求澄清","elaborationAnswered":"{actor} 回答了需求澄清","elaborationSkipped":"{actor} 跳过了需求澄清","elaborationResolved":"{actor} 完成了需求澄清","elaborationFollowup":"{actor} 发起了追加需求澄清","genericAction":"{actor} 执行了 {action}","entityIdea":"想法","entityProposal":"提案","entityTask":"任务","entityDocument":"文档","entityProject":"项目","actionCreated":"创建了","actionUpdated":"更新了","actionApproved":"批准了","actionRejected":"拒绝了","actionClaimed":"认领了","actionCompleted":"完成了","actionRevoked":"已撤回","title":"动态","subtitle":"项目最近活动","noActivity":"暂无动态","noActivityDesc":"当您和智能体在此项目上工作时,动态将在此显示。","loadingActivity":"加载动态中..."},"comments":{"title":"评论","noComments":"暂无评论","addComment":"添加评论...(输入 @ 提及他人)","roleAgent":"Agent","roleHuman":"用户","onBehalfOf":"代表 {name}","showMore":"展开更多","showLess":"收起","loadError":"加载评论失败","retry":"重试","loadingMore":"加载更多...","noMoreComments":"没有更多评论","actionsLabel":"{name} 的评论操作","actionsTitle":"评论操作","actionsDescription":"选择要对 {name} 的评论执行的操作。","reply":"回复","replyFailed":"无法准备回复,请重试。","delete":"删除","deleteTitle":"删除评论?","deleteDescription":"此评论将被永久删除,该操作无法撤销。","deleteConfirm":"删除评论","deleteFailed":"无法删除评论,请重试。"},"mentions":{"noResults":"无结果","searchPlaceholder":"输入名称以提及..."},"assign":{"selectAssignee":"选择如何分配此任务","assignToMyself":"分配给我自己","assignToMyselfDesc":"您的所有开发智能体都可以查看并处理此任务","orAssignToUser":"分配给其他用户","orAssignToAgent":"分配给特定智能体","releaseAssignee":"释放(清除负责人)","releaseAssigneeDesc":"移除当前负责人,使此任务重新可用"},"assignInstance":{"workingDirectory":"工作目录","loadingInstances":"正在加载工作目录…","noInstances":"该智能体没有在线的守护进程。任务已分配并已通知该智能体,它将在下次上线时领取。","pinNote":"自主唤醒会将此任务路由到你在此固定的确切(主机,路径)实例。只能固定在线实例。路径绝不会从项目推断。","ideaPinNote":"想法是固定的根:该智能体的提案、任务和自主唤醒都会继承你在此固定的(主机,路径)。只能固定在线实例。留空则分配给普通智能体。","assignTo":"分配到 {path}","assignToWithHost":"分配到 {path} \xb7 {host}","sendingTo":"发送到 {path}","sendingToWithHost":"发送到 {path} \xb7 {host}","liveSendNote":"立即发送指令。实时发送要求该路径处于在线状态。","offlineCantRun":"离线 — 重新连接前无法运行"},"time":{"justNow":"刚刚","minutesAgo":"{minutes}分钟前","hoursAgo":"{hours}小时前","daysAgo":"{days}天前","today":"今天","yesterday":"昨天"},"nav":{"projects":"项目","settings":"设置","overview":"概览","documents":"文档","proposals":"提案","tasks":"任务","graph":"图谱","activity":"动态","logout":"退出登录","newProject":"新建项目","backToProjects":"项目","openMenu":"打开菜单"},"priority":{"low":"低","medium":"中","high":"高","lowPriority":"低优先级","mediumPriority":"中优先级","highPriority":"高优先级","critical":"紧急","criticalPriority":"紧急优先级"},"status":{"open":"开放","active":"进行中","draft":"草稿","pending":"待审核","pendingReview":"待审核","approved":"已批准","rejected":"已拒绝","done":"已完成","inProgress":"进行中","todo":"待办","toVerify":"待验证","claimed":"已认领","current":"当前","assigned":"已分配","completed":"已完成","closed":"已关闭","elaborating":"需求澄清中","elaborated":"已细化","proposalCreated":"方案已创建","proposal_created":"方案已创建","needHumanInput":"需要人工介入","humanConductRequired":"需要指挥"},"admin":{"title":"超级管理员","dashboard":"仪表盘","welcome":"欢迎使用 Chorus 超级管理后台","email":"邮箱","emailPlaceholder":"you@company.com","password":"密码","passwordPlaceholder":"输入密码","signingIn":"登录中...","signInAsAdmin":"以超级管理员身份登录","backToEmail":"返回邮箱输入","totalCompanies":"公司总数","registeredOrgs":"已注册的组织","registeredOrgsCount":"{count} 个已注册组织","totalUsers":"用户总数","humanUsers":"所有公司的人类用户","totalAgents":"智能体总数","aiAgents":"所有公司的 AI 智能体","quickActions":"快捷操作","commonTasks":"常用管理任务","addCompany":"添加公司","addCompanyDesc":"注册新的组织","manageCompanies":"管理公司","manageCompaniesDesc":"查看和配置组织","companies":"公司","oidcRedirectUri":"OIDC 重定向 URI(回调地址)","oidcRedirectUriDesc":"在您的 OIDC 提供商中配置此 URL 作为允许的重定向 URI","tableName":"名称","tableEmailDomains":"邮箱域名","tableOidcStatus":"OIDC 状态","tableUsers":"用户","tableAgents":"智能体","tableActions":"操作","noCompanies":"暂无公司。","addFirstCompany":"添加您的第一个公司","oidcConfigured":"已配置","oidcNotConfigured":"未配置","deleteCompanyConfirm":"确定要删除「{name}」吗?此操作无法撤销。","deleteCompanyConfirmFull":"确定要删除「{name}」吗?此操作无法撤销,并将删除所有关联数据。","failedToDelete":"删除公司失败","networkError":"网络错误,请重试。","backToCompanies":"返回公司列表","deleteCompany":"删除公司","createdOn":"创建于 {date}","companyNotFound":"公司未找到","failedToLoad":"加载公司失败","failedToUpdate":"更新公司失败","companyUpdated":"公司更新成功","projects":"项目","basicInfo":"基本信息","companyName":"公司名称","emailDomains":"邮箱域名","emailDomainsPlaceholder":"acme.com, acme.org","emailDomainsHelp":"以逗号分隔的邮箱域名列表","oidcConfig":"OIDC 配置","oidcEnabled":"已启用","oidcConfigDesc":"配置 OpenID Connect (PKCE) 以实现单点登录认证。当 Issuer URL 和 Client ID 都填写后,OIDC 将自动启用。","oidcIssuerUrl":"OIDC Issuer URL","oidcIssuerUrlPlaceholder":"https://login.microsoftonline.com/tenant-id/v2.0","oidcIssuerUrlHelp":"OpenID Connect 发现端点 URL","clientId":"Client ID","clientIdPlaceholder":"例如:12345678-abcd-efgh-ijkl-123456789012","clientIdHelp":"OAuth 2.0 Client ID(PKCE 模式,无需密钥)","saveChanges":"保存更改","createCompany":"创建公司","createCompanyDesc":"设置新公司并配置 OIDC 认证","emailDomain":"邮箱域名","emailDomainHelp":"使用此邮箱域名的用户将被路由到此公司","required":"必填","companyNamePlaceholder":"例如:Acme 公司","emailDomainPlaceholder":"例如:acme.com","invalidCredentials":"凭证无效","createCompanyFailed":"创建公司失败"},"dashboard":{"title":"仪表盘","subtitle":"项目活动概览","welcome":"欢迎使用 Chorus","welcomeDesc":"创建您的第一个项目或选择现有项目开始。","viewProjects":"查看项目","createProject":"创建项目","quickActions":"快捷操作","addNewIdea":"新想法","reviewProposals":"审核提案","viewTaskBoard":"任务看板","recentActivity":"最近动态","activityPlaceholder":"动态信息将在此显示","taskPipeline":"任务流水线","totalTasks":"共 {count} 个","todoCount":"待办 ({count})","inProgressCount":"进行中 ({count})","toVerifyCount":"待验证 ({count})","doneCount":"已完成 ({count})","noRecentTasks":"暂无任务","noRecentActivity":"暂无动态","viewAll":"查看全部","settings":"设置"},"projectSettings":{"title":"项目设置","basicInfo":"基本信息","projectName":"项目名称","description":"描述","saveChanges":"保存更改","saving":"保存中...","saveSuccess":"项目已更新","saveFailed":"更新项目失败","dangerZone":"危险区域","deleteTitle":"删除此项目","deleteDescription":"永久删除此项目及其所有数据,此操作无法撤销。","agentCwds":{"title":"Agent 工作目录","description":"为此项目中的每个 Agent 固定主机和目录。","loading":"正在加载工作目录...","loadFailed":"无法加载工作目录。","empty":"暂无可用 Agent。","emptyOnline":"暂无在线 Agent。","notConfigured":"每次操作临时选择目录","configure":"配置工作目录","replace":"替换工作目录","clear":"清除固定工作目录","select":"选择目录","createFailed":"Agent 工作目录保存失败,项目未创建。","status":{"valid":"可用","offline":"主机离线","invalid":"目录不可用"}}},"fixedCwdAnchor":{"title":"固定工作目录","host":"主机","cwd":"目录","status":"状态","unknown":"未知","openAgentChat":"打开 {agent} 的对话","manage":"在项目设置中管理","availability":{"ready":"可用","offline":"主机离线","invalid":"目录不可用"}},"projects":{"title":"项目","subtitle":"管理您的项目并跟踪进度","newProject":"新建项目","noProjects":"暂无项目","noProjectsDesc":"创建您的第一个项目,开始与 AI 智能体协作。","createFirst":"创建第一个项目","onboarding":{"welcomeTitle":"欢迎使用 Chorus","welcomeDesc":"Chorus 通过项目组和项目来组织工作。让我们来设置您的工作空间。","whatIsGroupTitle":"项目组","whatIsGroupDesc":"用于归类相关项目的容器。可以理解为一个团队、产品线或计划 —— 例如「移动应用」或「Q3 发布」。","whatIsProjectTitle":"项目","whatIsProjectDesc":"实际工作发生的地方。每个项目有自己的想法、提案、文档和任务。AI 智能体在项目内协作。","step1Title":"第一步:创建项目组","step1Desc":"先组织您的工作空间。创建一个分组来归类相关项目。","step2Title":"第二步:创建项目","step2Desc":"在分组中添加一个项目。这是您收集想法和分配 AI 智能体工作的地方。","createGroupBtn":"创建项目组","agentTipTitle":"有管理员智能体?让 AI 帮你完成设置","agentTipDesc":"复制以下提示词发送给管理员智能体,自动创建项目组和项目:","agentPrompt":"请帮我设置工作空间。创建一个名为「{groupName}」的项目组,描述为「{groupDesc}」,然后在其中创建一个名为「{projectName}」的项目。","agentPromptDefault":"请帮我设置工作空间。创建一个名为「我的团队」的项目组并添加简要描述,然后在其中创建一个初始项目。","copiedPrompt":"提示词已复制!"},"ideas":"个想法","tasks":"个任务","docs":"个文档","loadingProjects":"加载项目中...","createFailed":"创建项目失败","activeProjects":"活跃项目","totalTasks":"总任务数","openProposals":"待审提案","ideasCaptured":"已收集想法","taskProgress":"任务进度","createNewProject":"创建新项目","createNewProjectDesc":"开始一个新项目并邀请团队","updated":"更新于","listView":"列表","gridView":"网格","empty":"空","complete":"完成","createNew":{"title":"创建新项目","subtitle":"设置项目详情,之后再将想法分配给 产品经理智能体","gettingStartedTitle":"开始使用","gettingStartedDesc":"填写以下基本信息。创建后,您可以添加想法并分配给 产品经理智能体生成提案。","basicInfo":"基本信息","projectName":"项目名称","projectNamePlaceholder":"例如:项目 Alpha","descriptionLabel":"描述","descriptionPlaceholder":"简要描述这个项目是关于什么的...","initialIdeas":"初始想法","initialIdeasDesc":"分享任何初始想法或需求,供 产品经理智能体在生成提案时参考","ideaPlaceholder":"例如:我们需要支持 OAuth 的用户认证...","addAnother":"添加另一个想法","documents":"文档","documentsDesc":"上传 PRD、技术设计或任何参考文档供 产品经理智能体分析","dragDrop":"拖放文件到此处,或点击浏览","fileTypes":"Markdown(.md)文档","createProject":"创建项目"}},"ideas":{"title":"想法","subtitle":"捕捉并跟踪项目想法","newIdea":"新想法","all":"全部","whatIsYourIdea":"您的想法是什么?","addMoreDetails":"添加更多详情...","noIdeas":"暂无想法","noIdeasFiltered":"暂无{status}的想法","startByAdding":"从添加您的第一个想法开始。想法可以被 AI 智能体拾取进行分析。","ideasWithStatus":"此状态的想法将在此显示。","addFirstIdea":"添加第一个想法","loadingIdeas":"加载想法中...","ideaNotFound":"想法未找到","backToIdeas":"返回想法列表","claimIdea":"认领想法","assignIdea":"分配想法","source":"来源:","assignedToMe":"分配给我","usedInProposal":"已用于提案","noIdeasWithStatus":"暂无{status}的想法","selectIdeaAssignee":"选择如何分配此想法","assignToMyselfIdeaDesc":"您的所有 产品经理智能体都可以查看并处理此想法","orAssignToPmAgent":"分配给特定 产品经理智能体","onlySelectedPmAgentCanWork":"只有选中的 产品经理智能体可以处理此想法","selectPmAgent":"选择一个 产品经理智能体","noPmAgentsAvailable":"没有可用的 产品经理智能体","releaseIdeaAssigneeDesc":"移除当前负责人,使此想法重新可用","proposalGenerated":"已生成提案","viewProposal":"查看提案","assignedTo":"分配给","titleLabel":"标题","submit":"提交","editIdea":"编辑想法","saveChanges":"保存更改","titleRequired":"标题不能为空","updateFailed":"更新想法失败","deleteIdea":"删除想法","deleteIdeaConfirm":"确定要删除「{title}」吗?此操作无法撤销。","createFailed":"创建想法失败","noProjectsFound":"未找到项目","moveFailed":"移动想法失败","moving":"移动中...","ungrouped":"未分组","actions":{"move":"移动到项目..."},"moveDialog":{"title":"将 Idea 移动到其他项目","description":"选择目标项目。关联的提案、文档、任务以及活动记录都会随这个 Idea 一起迁移。","targetProjectLabel":"目标项目","targetProjectPlaceholder":"选择一个项目...","searchProjects":"搜索项目...","previewLoading":"正在计算影响范围...","previewSummary":"将一并移动:{ideas} 个 idea(含派生)、{proposals} 个提案、{documents} 个文档、{tasks} 个任务、{activities} 条活动。","previewWarning":"此操作不可撤销。","confirm":"确认移动","cancel":"取消","error":"移动失败:{message}","successToast":"已移动 {ideas} 个 idea — 更新 {proposals} 个提案、{documents} 个文档、{tasks} 个任务、{activities} 条活动。","viewMovedIdea":"查看"}},"tasks":{"title":"任务","subtitle":"任务管理看板","newTask":"新任务","agentHours":"智能体工时总计","noTasks":"暂无任务","loadingTasks":"加载任务中...","taskNotFound":"任务未找到","backToTasks":"返回任务列表","claimTask":"认领任务","assignTask":"分配任务","statusProgress":"状态进度","subtasks":"子任务","parentTask":"父任务","storyPoints":"故事点","acceptanceCriteria":"验收标准","startWork":"开始工作","submitForReview":"提交验证","markAsVerified":"标记为已验证","taskCompleted":"任务已完成","noActionsAvailable":"无可用操作","onlySelectedAgentCanWork":"仅选定的智能体可以处理此任务","selectAgent":"选择智能体","selectUser":"选择用户","noAgentsAvailable":"暂无可用的智能体","noUsersAvailable":"暂无其他用户","editTask":"编辑任务","createTaskTitle":"创建任务","deleteTask":"删除任务","deleteTaskConfirm":"确定要删除「{title}」吗?此操作无法撤销。","titleLabel":"标题","titleRequired":"标题不能为空","descriptionLabel":"描述","priorityLabel":"优先级","storyPointsLabel":"故事点(小时)","acceptanceCriteriaLabel":"验收标准","saveChanges":"保存更改","createFailed":"创建任务失败","updateFailed":"更新任务失败","dependencies":"依赖关系","dependsOn":"依赖于","blockedByThis":"被此任务阻塞","noDependencies":"无依赖","addDependency":"添加依赖","failedToAddDep":"添加依赖失败","failedToRemoveDep":"移除依赖失败","noTasksToDisplay":"暂无任务","kanbanView":"看板","dagView":"DAG","listView":"列表","allStatuses":"全部","dependencyBlocked":"依赖未完成","dependencyBlockedDescription":"此任务有未完成的前置依赖。在依赖未完成时开始工作可能会导致问题。","forceMove":"强制移动","forceMoveConfirm":"确定要将此任务移动到进行中吗?其前置依赖尚未完成。","blockerList":"阻塞任务","blockedTooltip":"被 {count} 个未完成的依赖阻塞","blockedBy":"阻塞于:{tasks}","noActiveSession":"无活跃会话","forceStatusChange":"强制状态变更","proposalFilter":{"label":"提案","allProposals":"所有提案","clear":"清除","search":"搜索提案...","taskCount":"{count} 个任务","filtered":"{filtered} / {total} 个提案","noResults":"未找到提案","filteredSubtitle":"显示 {filtered} / {total} 个任务(已筛选)"}},"proposals":{"pageTitle":"提案","subtitle":"审核和批准 AI 生成的提案","all":"全部","pendingReview":"待审核","noProposals":"暂无提案","noProposalsDesc":"当 产品经理智能体分析想法时会创建提案。它们将在此显示供您审核。","loadingProposals":"加载提案中...","proposalNotFound":"提案未找到","backToProposals":"返回提案列表","sourceIdea":"来源想法","sourceIdeas":"来源想法","noSourceIdeas":"无来源想法","awaitingReview":"等待您的审核","reviewInstructions":"审核内容并批准或拒绝此提案。","basedOn":"基于","documentDrafts":"文档草稿","documents":"文档","taskDrafts":"任务草稿","tasks":"任务","emptyContainer":"此提案容器为空。请添加文档或任务。","inputType":"输入类型","creatorType":"创建者类型","containerSummary":"容器摘要","inputs":"输入","discussion":"讨论","reviewInfo":"审核信息","reviewedBy":"审核人","reviewedAt":"审核时间","reviewNote":"审核备注","requestChanges":"请求修改","approveProposal":"批准提案","approveProposalDesc":"可选填备注给提案创建者(例如给 Agent 的指示)。","approveNotePlaceholder":"添加备注(可选)...","rejectProposal":"拒绝提案","rejectProposalDesc":"请填写拒绝此提案的原因。","rejectReasonPlaceholder":"请输入拒绝原因...","rejectionReason":"拒绝原因","createProposal":"创建提案","basicInfo":"基本信息","title":"标题","titlePlaceholder":"输入提案标题...","descriptionPlaceholder":"描述这个提案是关于什么的...","selectSourceIdeas":"选择来源想法","noAvailableIdeas":"没有可用的想法。您需要先认领一个想法。","titleRequired":"标题是必填的","selectAtLeastOneIdea":"请至少选择一个想法","createFailed":"创建提案失败","createAndEdit":"创建并编辑","addDocumentDraft":"添加文档","addTaskDraft":"添加任务","editDraft":"编辑","deleteDraft":"删除","documentType":"文档类型","documentTitle":"文档标题","documentContent":"内容(Markdown)","taskTitle":"任务标题","taskDescription":"描述","taskPriority":"优先级","taskStoryPoints":"故事点(小时)","taskAcceptanceCriteria":"验收标准","submitForReview":"提交审核","draftNotice":"此提案为草稿状态。添加内容后可提交审核。","draftStatus":"草稿","confirmSubmit":"提交此提案进行审核?","confirmSubmitDesc":"一旦提交,在审核完成前将无法编辑提案内容。","completed":"已完成","typeNewDocument":"新文档","typeDocumentUpdate":"文档更新","typeTaskBreakdown":"任务拆分","typeDocumentAndTasks":"文档 + 任务","tasksCount":"{count} 个任务","closeProposal":"关闭提案","closeProposalDesc":"关闭提案后将无法再编辑。请填写关闭原因。","closeReasonPlaceholder":"请输入关闭原因...","closedNotice":"此提案已被永久关闭。","revokeProposal":"撤回批准","revokeProposalDesc":"此操作将关闭所有由此提案生成的任务,并删除所有生成的文档。提案将回退为草稿状态。","revokeReasonPlaceholder":"请输入撤回原因...","revokeTasksToClose":"将关闭 {count} 个任务","revokeDocsToDelete":"将删除 {count} 个文档","failedToSaveDocDraft":"保存文档草稿失败","failedToSaveTaskDraft":"保存任务草稿失败","docTypePrd":"PRD","docTypeTechDesign":"技术设计","docTypeAdr":"ADR","docTypeSpec":"规格说明","docTypeGuide":"指南","docSubtitlePrd":"产品需求文档","docSubtitleTechDesign":"技术设计文档","docSubtitleAdr":"架构决策记录","docSubtitleSpec":"规格说明书","docSubtitleGuide":"指南","acCount":"{count} AC","depCount":"{count} 依赖","storyPointsPlaceholder":"例如 4","cardsView":"卡片","dependencyExists":"此依赖关系已存在","cyclicDependency":"无法添加依赖:会产生循环","failedToAddDependency":"添加依赖失败","taskDraftDetails":"任务草稿详情","newTaskDraft":"新建任务草稿","editTaskDraft":"编辑","deleteTaskDraft":"删除任务草稿","deleteTaskDraftConfirm":"确定要删除此任务草稿吗?","dependsOn":"依赖任务","noDependencies":"无依赖关系","addDependency":"添加依赖","selectDependency":"选择任务...","removeDependency":"移除","viewMode":"查看","taskDraftSaved":"任务草稿已保存","deleteProposal":"删除提案","deleteProposalDesc":"确定要删除此提案吗?此操作无法撤销。"},"proposalValidation":{"title":"提交检查清单","passed":"所有检查已通过","hasErrors":"请先修复错误再提交","loading":"正在检查...","error":"错误","warning":"警告","info":"提示","errorCount":"{count} 个错误","warningCount":"{count} 个警告","E1":"必须包含至少一个 PRD 文档","E2":"文档「{title}」内容不足(最少 100 个字符)","E3":"必须包含至少一个任务","E4":"必须关联至少一个 Idea","E5":"Idea「{title}」尚未完成需求澄清","W1":"建议添加技术设计文档","W2":"任务「{title}」缺少描述","E-AC":"任务「{title}」缺少验收标准","W4":"存在多个任务但未定义依赖关系","W5":"Proposal 缺少描述","I1":"任务「{title}」未设置优先级","I2":"任务「{title}」未设置故事点"},"documents":{"title":"文档","subtitle":"PRD、规格说明和项目文档","newDocument":"新文档","all":"全部","noDocuments":"暂无文档","noDocumentsDesc":"当提案被批准时会创建文档。您也可以手动创建文档。","createDocument":"创建文档","loadingDocuments":"加载文档中...","documentNotFound":"文档未找到","backToDocuments":"返回文档列表","updated":"更新于 {date}","sourceProposal":"来源提案","viewProposal":"查看提案","versionHistory":"版本历史","previousVersions":"个历史版本","documentContent":"文档内容...","saveChanges":"保存更改","titleLabel":"标题","titleRequired":"标题不能为空","titlePlaceholder":"输入文档标题","typeLabel":"类型","uploadMarkdown":"Markdown 文件(可选)","clickToUpload":"点击上传 Markdown 文件","characters":"个字符","createFailed":"创建文档失败","typePrd":"PRD","typeSpec":"技术规格","typeDesign":"设计文档","typeTechDesign":"技术设计","typeAdr":"ADR","typeGuide":"指南","typeNote":"笔记","typeReport":"总结报告","typeOther":"其他","deleteDocument":"删除文档","deleteDocumentDescription":"此操作将永久删除文档「{title}」,无法恢复。","deleteSuccess":"文档已删除。","deleteFailed":"删除文档失败。","deleteFailedNotFound":"该文档已不存在。"},"references":{"title":"参考资料","empty":"链接官方文档、参考实现或 issue 讨论,为它提供佐证。","loading":"加载参考资料中...","add":"添加","addReference":"添加参考资料","editReference":"编辑参考资料","deleteReference":"删除参考资料","deleteConfirm":"此操作将永久删除参考资料「{title}」,无法恢复。","typeLabel":"类型","typeDocs":"文档","typeRepo":"代码仓库","typeIssuePr":"Issue / PR","typePaperBlog":"论文 / 博客","urlLabel":"链接","urlPlaceholder":"https://example.com/...","urlRequired":"链接不能为空","titleLabel":"标题","titlePlaceholder":"输入简短的标题","titleRequired":"标题不能为空","notesLabel":"备注","notesPlaceholder":"可选的摘要或相关性说明","addFailed":"添加参考资料失败","updateFailed":"更新参考资料失败","deleteFailed":"删除参考资料失败","countLabel":"{count, plural, other {# 条参考资料}}","toggleNotes":"显示完整说明"},"export":{"exportDocument":"导出","exportAs":"导出为 {format}","formatMd":"Markdown (.md)","formatPdf":"PDF (.pdf)","formatDocx":"Word (.docx)","exporting":"导出中...","exportSuccess":"文档导出成功","exportError":"文档导出失败","fetchingContent":"加载文档中..."},"settings":{"title":"设置","subtitle":"管理您的账户和智能体配置","breadcrumb":"Chorus / 设置","language":"语言","languageDesc":"选择您的首选语言","agents":"智能体","agentsDesc":"创建 API 密钥,让您的个人智能体访问 Chorus。每个密钥可以分配不同的角色。","createApiKey":"创建 API 密钥","noApiKeys":"暂无 API 密钥。创建一个开始使用。","roles":"角色:","developerAgent":"开发智能体","developerAgentDesc":"执行任务、编写代码、报告问题、提交代码","pmAgent":"产品经理智能体","pmAgentDesc":"分析需求、撰写提案、管理任务","adminAgent":"管理员智能体","adminAgentDesc":"人类级别权限:审批提案、验证任务、创建项目","created":"创建于","apiKeyCreated":"API 密钥已创建","apiKeyCreatedDesc":"请立即复制此密钥。您将无法再次查看它!","installGuideIntro":"现在就连接你的智能体——在下方选择你的客户端。上方密钥已嵌入到代码片段中,且不会再次显示。","name":"名称","namePlaceholder":"我的智能体密钥","agentAvatarPreview":"头像预览","agentRoles":"智能体角色","agentRolesDesc":"选择此 API 密钥可以访问的角色。","agentPersona":"智能体人设","agentPersonaDesc":"选择预设或编写您自己的人设。这定义了智能体在所有交互中的行为方式。","agentPersonaDescNoRoles":"定义此智能体在所有交互中的行为方式。","personaPlaceholder":"描述此智能体应如何行为。例如:\'您是一个专注于清晰和简洁的助手...\'","personaHint":"人设会在每次 check-in 时自动注入到智能体的上下文。","personaHintNoRoles":"为您的智能体编写自定义人设。","creating":"创建中...","confirmDelete":"确定要删除此 API 密钥吗?","confirmDeleteTitle":"删除 API 密钥","confirmDeleteDesc":"确定要删除此 API 密钥吗?此操作无法撤销。","editAgent":"编辑智能体","saveChanges":"保存更改","saving":"保存中...","editAgentDesc":"更新此智能体的名称、角色和人设。","updateSuccess":"智能体更新成功","updateFailed":"更新智能体失败","setupGuide":"设置向导","setupGuideDesc":"逐步设置您的 AI 智能体连接","openSetupGuide":"打开设置向导","effectivePermissions":"生效的权限","noEffectivePermissions":"尚未授予任何权限","customRole":"自定义"},"login":{"title":"Chorus","subtitle":"AI 与人类协作平台","email":"邮箱","emailPlaceholder":"you@company.com","continue":"继续","checking":"检查中...","helpText":"输入您的邮箱以登录或创建账户","networkError":"网络错误,请重试。","processingLogin":"正在处理登录...","sessionExpired":"会话已过期,请重新登录。","completingAuth":"正在完成认证...","registeringUser":"正在注册用户...","loginSuccess":"登录成功!正在跳转...","authFailed":"认证失败","backToLogin":"返回登录","noOrganizationFound":"未找到该邮箱对应的组织","defaultAuth":{"title":"登录","email":"邮箱","password":"密码","submit":"登录","error":"邮箱或密码错误","ssoLink":"使用 SSO 登录","orDivider":"或"},"pickWorkspace":{"title":"选择一个 workspace","subtitle":"该邮箱关联 {count} 个 workspace,请选择一个登录。","differentEmail":"换个邮箱","loading":"加载 workspace...","noCandidates":"未找到该邮箱对应的 workspace。","errorLoading":"加载 workspace 失败,请重试。"},"rolePicker":{"title":"该邮箱有多种登录方式,请选择如何继续。","superAdmin":"以超级管理员身份登录","regularUser":"使用密码登录","oidcCompany":"使用 {company} 登录","oidcCompanyFallback":"使用 SSO 登录","back":"换个邮箱"}},"projectOverview":{"loadingProject":"加载项目中...","notFoundTitle":"项目未找到","backToProjects":"返回项目列表","settings":"设置","quickActions":"快捷操作","addIdea":"添加想法","viewKanban":"查看看板","browseDocuments":"浏览文档","ideasSubtext":"{open} 待处理, {inProgress} 进行中","tasksSubtext":"{open} 待处理, {toVerify} 待验证","documentsSubtext":"PRD、规格说明、笔记","proposalsSubtext":"{pending} 待审核","deleteProject":"删除项目","deleteProjectConfirm":"确定要删除「{name}」吗?此操作无法撤销,将永久删除所有关联的想法、提案、任务、文档和动态。"},"personas":{"devPm":"开发导向产品经理","devPmDesc":"您是一位优先考虑开发者体验并构建开发者优先产品的产品经理。您理解技术约束,并能与工程团队有效沟通。","fullPm":"全能产品经理","fullPmDesc":"您是一位全面的产品经理,以构建能为目标受众解决实际问题的产品为己任。您平衡业务目标、用户需求和技术可行性。","simplePm":"简约产品经理","simplePmDesc":"您是一位专注的产品经理,优先考虑核心功能,避免过度设计。您相信快速交付、收集反馈、快速迭代。","seniorDev":"高级开发者","seniorDevDesc":"您是一位经验丰富的高级软件开发者,擅长构建可扩展的系统。您编写简洁、可维护的代码并遵循最佳实践。您指导初级开发者并做出架构决策。","fullstackDev":"全栈开发者","fullstackDevDesc":"您是一位多才多艺的全栈开发者,能够在整个技术栈中自如工作。您可以构建 API、设计数据库和创建响应式 UI。您优先考虑用户体验和性能。","pragmaticDev":"务实开发者","pragmaticDevDesc":"您是一位务实的开发者,专注于快速交付可工作的解决方案。您避免过早优化,为关键路径编写测试,并偏好简单解决方案而非复杂抽象。","carefulAdmin":"谨慎管理员","carefulAdminDesc":"您是一位谨慎的管理员,在批准前会仔细审查所有提案和任务。您会验证验收标准是否满足,检查潜在问题,并记录您的推理过程。如有疑问,您更倾向于询问澄清而非盲目批准。","efficientAdmin":"高效管理员","efficientAdminDesc":"您是一位高效的管理员,在保持质量标准的同时简化审批流程。您信任团队的工作,但仍会进行必要的检查。您专注于快速解除阻塞,同时确保满足基本质量要求。"},"sessions":{"title":"会话","activeSessions":"活跃会话","noSessions":"近 1 小时内无活跃会话","close":"关闭","reopen":"重新打开","closeConfirm":"确定要关闭此会话吗?","statusActive":"活跃","statusInactive":"不活跃","statusClosed":"已关闭","activeWorkers":"活跃工作者","workerCount":"{count} 个工作者","checkedInSince":"签入于 {time}","lastActive":"最后活跃 {time}","checkins":"{count} 个任务"},"pixelCanvas":{"title":"工作区"},"notifications":{"title":"通知","markAllRead":"全部标记已读","noNotifications":"暂无通知","noUnread":"没有未读通知","viewAll":"查看全部","tabAll":"全部","tabUnread":"未读","justNow":"刚刚","minutesAgo":"{count} 分钟前","hoursAgo":"{count} 小时前","daysAgo":"{count} 天前","projectBadge":"项目","notificationPreferences":"通知偏好","loadMore":"加载更多","viewDetail":"查看","types":{"proposal_approved":"提案已通过","proposal_rejected":"提案已拒绝","proposal_submitted":"提案已提交","task_assigned":"任务已分配给你","task_status_changed":"任务状态已变更","task_submitted_for_verify":"任务已提交验证","task_verified":"任务已验证","task_reopened":"任务已重新打开","comment_added":"新评论","idea_claimed":"想法已认领","elaboration_requested":"需求澄清已请求","elaboration_answered":"需求澄清已回答","mentioned":"你被提及了","agent_checkin":"Agent 已成功连接","report_created":"新报告"},"preferences":{"title":"通知偏好","description":"配置哪些事件触发通知","taskEvents":"任务事件","proposalEvents":"提案事件","ideaEvents":"想法事件","commentEvents":"评论事件","taskAssigned":"任务分配","taskStatusChanged":"任务状态变更","taskVerified":"任务验证","taskReopened":"任务重新打开","proposalSubmitted":"提案提交","proposalApproved":"提案通过","proposalRejected":"提案拒绝","ideaClaimed":"想法认领","commentAdded":"新增评论","elaborationEvents":"需求澄清事件","elaborationRequested":"需求澄清请求","elaborationAnswered":"需求澄清回答","mentionEvents":"提及事件","mentioned":"在评论或内容中被提及"}},"elaboration":{"title":"需求澄清","answeredCounter":"已回答 {answered} / {total}","roundLabel":"第 {number} 轮","validated":"已验证","pendingAnswers":"待回答","statusAnswered":"已回答","appendedBadge":"后续补充","noAnswer":"未回答","otherOption":"其他","otherPlaceholder":"请说明...","submitAnswers":"提交回答","confirmAnswerAria":"确认回答","submitting":"提交中...","submitFailed":"提交回答失败","navCounter":"{current} / {total}","questionCount":"{count} 个问题","somethingElse":"其他答案","skipButton":"跳过需求澄清","skipConfirmTitle":"跳过需求澄清?","skipConfirmDescription":"这将跳过结构化问答,直接将需求标记为已澄清。仅建议在需求非常明确时跳过。","skipReasonLabel":"跳过原因","skipReasonPlaceholder":"例如:有明确复现步骤的bug修复","skipReasonRequired":"请提供跳过原因","verifyButton":"完成细化","verifying":"确认中...","verifyFailed":"确认细化失败","verifiedQueuedHint":"已确认 — 智能体上线后将撰写方案。","category":{"functional":"功能性","nonFunctional":"非功能性","businessContext":"业务背景","technicalContext":"技术背景","userScenario":"用户场景","scope":"范围"}},"startDevelopment":{"button":"开始开发","starting":"启动中...","startedHint":"开发已启动 —— agent 正在执行剩余任务","offlineHint":"Agent 离线,重连后可用","errorAgentOffline":"该 agent 当前离线,请等它重新连接后再开始开发。","errorInstanceOffline":"该 idea 已固定到一个离线的 daemon 实例,请等该实例重新连接后再开始开发。","errorFixedCwdHostOffline":"该项目固定工作目录所在的主机当前离线,请等该主机重新连接后再开始开发。","errorNoApprovedProposal":"该 idea 还没有已批准的 proposal","errorNoUnfinishedTasks":"所有任务都已完成","errorAssigneeNotAgent":"该 idea 的负责人不是 agent","errorGeneric":"开始开发失败"},"yolo":{"button":"Yolo","cancel":"取消","confirmTitle":"对这个 idea 执行 Yolo?","confirmDescription":"Yolo 会唤醒被分配的 agent,按 yolo skill 全自动把这个 idea 推进到完成 —— 需求澄清、方案、执行、验收。未经你确认不会合并或推送 PR。是否继续?","confirmCta":"执行 Yolo","starting":"启动中...","startedHint":"Yolo 已启动 —— agent 正在推进这个 idea 到完成","completedHint":"该想法已完成","offlineHint":"Agent 离线,重连后可用","errorAgentOffline":"该 agent 当前离线,请等它重新连接后再执行 Yolo。","errorInstanceOffline":"该 idea 已固定到一个离线的 daemon 实例,请等该实例重新连接后再执行 Yolo。","errorFixedCwdHostOffline":"该项目固定工作目录所在的主机当前离线,请等该主机重新连接后再执行 Yolo。","errorAssigneeNotAgent":"该 idea 的负责人不是 agent","errorGeneric":"启动 Yolo 失败"},"projectGroups":{"newProjectGroup":"新建项目组","projectCount":"个项目","complete":"完成","openIdeas":"个待处理想法","viewDashboard":"查看仪表盘","ungrouped":"未分组","noProjectsInGroup":"此组中暂无项目。","newGroupTitle":"新建项目组","groupName":"组名称","groupNamePlaceholder":"例如:移动应用","descriptionOptional":"描述(可选)","descriptionPlaceholder":"简要描述此分组...","createGroup":"创建分组","createFailed":"创建项目组失败","newProjectTitle":"新建项目","creatingIn":"创建到:{groupName}","projectTitle":"项目标题","projectTitlePlaceholder":"例如:项目 Alpha","projectDescriptionPlaceholder":"简要描述此项目...","createProject":"创建项目","moveTitle":"将项目移动到其他分组?","moveDescription":"将「{projectName}」从 {sourceGroupName} 移动到 {targetGroupName} 分组。","confirmMove":"确认移动","moveFailed":"移动项目失败","manageGroup":"管理分组","saveChanges":"保存更改","saving":"保存中...","cancel":"取消","deleteGroup":"删除此分组","deleteConfirmTitle":"确定要删除吗?","deleteConfirmDesc":"此操作不可撤销。请选择如何处理分组内的项目。","deleteKeepProjects":"将 {count, plural, one {# 个项目} other {# 个项目}} 移至未分组","deleteWithProjects":"永久删除 {count, plural, one {# 个项目} other {# 个项目}}","confirmDelete":"删除分组","deleting":"删除中..."},"groupDashboard":{"subtitle":"{count, plural, one {# 个项目} other {# 个项目}} \xb7 聚合仪表盘","editGroup":"编辑分组","manageProjects":"管理项目","statProjects":"项目","statTotalTasks":"总任务数","statCompletionRate":"完成率","statOpenIdeas":"待处理想法","statActiveProposals":"活跃提案","projectsInGroup":"此分组中的项目","newProject":"新建项目","projectStats":"{tasks} 个任务 \xb7 {completion}% 完成","noProjects":"此分组中暂无项目","noProjectsHint":"点击上方「新建项目」添加"},"acceptanceCriteria":{"title":"验收标准","noItems":"暂无结构化验收标准","status":{"pending":"待处理","passed":"通过","failed":"未通过","notStarted":"未开始","inProgress":"进行中"},"acceptanceStatus":{"not_started":"未开始","in_progress":"进行中","passed":"全部通过","failed":"未通过"},"required":"必需","optional":"可选","devSelfCheck":"开发自检","verification":"验证","evidence":"依据","pass":"通过","fail":"不通过","undoVerification":"撤销","devEvidence":"开发依据","verifyEvidence":"验证依据","noEvidence":"暂无依据","dismiss":"知道了","progress":"已验证 {passed}/{total}","requiredProgress":"必需项 {passed}/{required} 已通过","gateBlocked":"无法验证:{count} 项必需标准尚未通过","gateReady":"所有必需标准已通过","addCriterion":"添加标准","removeCriterion":"移除","criterionPlaceholder":"描述验收标准...","atLeastOneRequired":"至少需要一条非空的验收标准。"},"onboarding":{"skip":"暂时跳过","next":"下一步","back":"返回","steps":{"welcome":"欢迎","createAgent":"创建智能体","copyKey":"复制密钥","installGuide":"安装","testConnection":"测试","completion":"完成"},"welcome":{"title":"欢迎使用 Chorus","description":"Chorus 是一个 AI 与人类协作平台。AI 智能体提出方案,人类验证 — 通过结构化的开发生命周期。","getStarted":"开始使用","pipelineTitle":"AI 驱动开发生命周期","pipeline":{"idea":"想法","proposal":"方案","task":"任务","execute":"执行","verify":"验证","done":"完成"}},"completion":{"title":"一切就绪!","description":"您的智能体已配置完成,可以开始协作了。创建一个项目或探索设置来开始使用。","summary":"配置摘要","agentName":"智能体名称","agentRoles":"角色","agentPreset":"预设","agentPermissions":"权限","permissionsCount":"{count} 项权限","goToProjects":"前往项目","goToSettings":"前往设置"},"createAgent":{"title":"创建您的 AI 智能体","description":"设置一个具有匹配您工作流程的权限和人设的 AI 智能体。这将为智能体生成一个 API 密钥。","nameLabel":"智能体名称","namePlaceholder":"例如:my-dev-agent","personaLabel":"人设(可选)","personaPlaceholder":"描述该智能体的行为方式——语气、优先级、约束。","personaHint":"人设会追加到智能体的系统提示词中,用于塑造其行为。","submit":"创建智能体","creating":"正在创建..."},"copyKey":{"title":"复制您的 API 密钥","description":"请将此 API 密钥保存到安全的地方。您需要它来配置 AI 智能体客户端。","warning":"请立即复制此密钥。此后将无法再次查看!","copy":"复制密钥","copied":"已复制!"},"install":{"description":"选择您的 AI 智能体客户端,然后按照以下说明进行设置。","tabs":{"claudeCode":"Claude Code","codex":"Codex","kiro":"Kiro","pi":"Pi","dsh":"DeepSeek Harness","opencode":"OpenCode","openClaw":"OpenClaw","other":"其他智能体"},"profileStep":{"title":"第 3 步(可选):设置 Chorus CLI 的默认 Agent","desc":"chorus agents add 会为每个配置的 agent 打印一行 export CHORUS_AGENT_PROFILE。把其中一行加入 shell,即可设置 chorus CLI 默认以哪个 agent 身份运行;密钥会从 ~/.chorus/daemon.json 解析。"},"claudeCode":{"step1Title":"第 1 步:设置环境变量","step1Tip":"无需持久化——第 2 步的 chorus agents add 会读取它们。","step2Title":"第 2 步:运行 chorus agents add","step2Tip":"chorus agents add 会把 Chorus 插件装进 Claude Code,并把 CHORUS_URL、CHORUS_API_KEY、CHORUS_AGENT_PROFILE 写入 ~/.claude/settings.json——因此交互式 Claude Code 无需手动 export。"},"codex":{"step1Title":"第 1 步:设置环境变量","step1Tip":"无需持久化——第 2 步的 chorus agents add 会将它们写入 ~/.codex/.env。","step2Title":"第 2 步:运行 chorus agents add","step2Tip":"chorus agents add 会安装 Chorus 插件,并将 CHORUS_URL、CHORUS_API_KEY、CHORUS_AGENT_PROFILE 写入 ~/.codex/.env——交互式 Codex 无需手动 export。"},"kiro":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc,Kiro CLI 会在启动时读取这两个变量。","step2Title":"第 2 步:运行 chorus agents add","step2Tip":"chorus agents add 会把 Chorus 的 skills、agents、steering 以及 chorus MCP 服务器全局安装到 ~/.kiro,使 Chorus 在任意目录下均可用。它会从环境变量(第 1 步)读取 CHORUS_URL 和 CHORUS_API_KEY。若想安装到其他目录,运行前先设置 KIRO_DIR。 上面第一条命令会全局安装 Chorus CLI(锁定 0.17.0 版本)。"},"pi":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc,以便 Pi 在运行时读取——chorus agents add 会把一个引用环境变量的 key(而非明文)写入 ~/.pi/agent/mcp.json。","step2Title":"第 2 步:运行 chorus agents add","step2Tip":"chorus agents add --agents pi 会安装 pi-mcp-adapter 和 chorus-pi 插件,把 chorus MCP 服务器写入 ~/.pi/agent/mcp.json(引用环境变量中的 CHORUS_API_KEY,不写明文 key),并把 pi 注册为可被唤醒的 daemon agent。它会从环境变量(第 1 步)读取 CHORUS_URL 和 CHORUS_API_KEY。"},"dsh":{"step1Title":"第 1 步:设置环境变量","step1Tip":"前置条件:PATH 中必须能找到 dsh 0.1.0-rc.7 和 pnpm。凭证仅保留在 shell 环境变量中。","step2Title":"第 2 步:添加 Chorus bundle","step2Tip":"将 {name} 替换为要使用的 dsh profile。必须带 -w,因为 dsh 的 profile 是一个 pnpm workspace 根。profile 包状态由 dsh 管理,并由 dsh 满足 bundle 的 peer 插件。","step3Title":"第 3 步:写入凭证","step3Tip":"chorus agents add 会校验你的 key,并把 CHORUS_URL 和 CHORUS_API_KEY 写入 ~/.chorus/daemon.json(权限 0600),如有需要还会把 Chorus bundle 加入该 profile。用 --dsh-profile {name} 指定与第 2 步一致的 profile;它会从环境变量(第 1 步)读取凭证。 上面第一条命令会全局安装 Chorus CLI(锁定 0.17.0 版本)。","step4Title":"第 4 步:启动并验证","step4Desc":"运行 dsh --profile {name},然后让它执行 \\"check in to chorus\\"。"},"opencode":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc,插件会在 OpenCode 启动时读取这两个变量。","step2Title":"第 2 步:运行 chorus agents add","step2Tip":"chorus agents add 会幂等地把 \\"opencode-chorus\\" 加入 ~/.config/opencode/opencode.json 的 \\"plugin\\" 数组,不会修改你的 shell rc;OpenCode 首次启动时 Bun 会自动安装该插件。它会从环境变量(第 1 步)读取 CHORUS_URL 和 CHORUS_API_KEY。 上面第一条命令会全局安装 Chorus CLI(锁定 0.17.0 版本)。","troubleshootingTitle":"故障排除","issueCache":{"title":"插件未加载","fix":"清空插件缓存:`rm -rf ~/.cache/opencode/packages/opencode-chorus@latest`,然后重启 OpenCode。"},"issueEnv":{"title":"环境变量未生效","fix":"确认启动 OpenCode 的 shell 已 export CHORUS_URL 和 CHORUS_API_KEY。如有需要,先 re-source 一下 shell rc。"},"issueCheckin":{"title":"check-in 无响应","fix":"核对 CHORUS_API_KEY 是否有错字或多余空格。如果插件仍然加载失败,尝试升级 OpenCode。"}},"openClaw":{"step1Title":"第 1 步:安装插件","step2Title":"第 2 步:编辑 ~/.openclaw/openclaw.json","step3Title":"第 3 步:重启 OpenClaw 网关","step3Desc":"重启 OpenClaw 网关进程以加载新的配置。","troubleshootingTitle":"故障排除","troubleshootingError":"\\"Wake agent failed: HTTP 405\\"","troubleshootingFix":"此错误表示 hooks 未启用。请在 openclaw.json 配置中将 \\"hooks.enabled\\" 设置为 true,然后重启网关。"},"other":{"description":"复制以下提示词并发送给您的 AI 智能体以配置 Chorus 连接。"}},"testConnection":{"title":"测试连接","waiting":"等待智能体连接...","waitingFor":"正在监听 {name} 的签到","connected":"智能体连接成功!","checkinHint":"复制以下提示词并发送给你的智能体,以验证连接:","checkinPrompt":"请连接到 Chorus 并执行 chorus_checkin() 验证连接。"},"placeholder":{"createAgent":"此步骤将用于创建 AI 智能体。即将推出。","copyKey":"此步骤将用于复制 API 密钥。即将推出。","installGuide":"此步骤将引导您完成安装。即将推出。","testConnection":"此步骤将测试智能体连接。即将推出。"}},"activeSessions":{"indicatorLabel":"{count} 个 Daemon Session 正在运行——打开或选择会话","statusOnlyIndicatorLabel":"{count} 个 Daemon Session 正在运行——仅显示状态","chooserLabel":"正在运行的 Daemon Session","runningCount":"{count} 个 Session 正在运行","location":"{host} \xb7 {cwd}","unknownHost":"未知主机","unknownCwd":"未知工作目录","agentFallback":"连接详情仍在加载","statusOnly":"仅显示状态 \xb7 由其他用户拥有","statusOnlyEntry":"{agent}——仅显示状态"},"ideaTracker":{"overview":"总览","overviewSubtitle":"追踪想法、提案和任务进展","tabs":{"ideas":"想法","lineage":"血缘","stats":"统计"},"badge":{"open":"待开始","researching":"调研中","answerQuestions":"回答问题","planning":"规划中","reviewProposal":"审批提案","building":"开发中","verifyWork":"验收成果","done":"已完成","closed":"已关闭"},"status":{"todo":"待处理","inProgress":"进行中","humanConductRequired":"需要指挥","done":"已完成"},"lineage":{"derivedCount":"{count} 派生","title":"派生关系","derivedFrom":"派生自","setParent":"挂父","changeParent":"更改父级","derivedIdeas":"派生想法","derive":"派生","deriveIdea":"派生新想法","noParent":"无父级","setParentTitle":"设置父想法","setParentDescription":"为「{title}」选择一个父想法。只能选择同一项目内的想法;想法不能挂在自己或自己的后代之下(会形成环)。","searchPlaceholder":"搜索想法...","detach":"脱钩(变为顶层)","cycleBlocked":"后代 \xb7 会成环","cycleWarning":"灰显的想法是当前想法的后代,选择它们会形成环,因此已被禁用。","noCandidates":"该项目内没有可选的想法","pickerTruncated":"仅显示前 200 个想法。如果没看到想要的父级,请用标题搜索缩小范围。","save":"设为父想法","saveFailed":"设置父级失败","deriveFailed":"派生想法失败","container":"主题","containerDescription":"主题用于归拢一组相关的子想法、确立共同方向。它可以细化,但真正的交付发生在你从它派生的子想法里——主题本身不写提案。","containerBadge":"主题","typeIdea":"想法","typeTheme":"主题","makeContainer":"设为主题","containerHint":"主题通过派生子想法向前推进。","childrenDone":"{done}/{total} 已完成"},"actions":{"newIdea":"新建想法","untitledIdea":"未命名想法","search":"搜索想法...","retry":"重试","assign":"分配","reassign":"重新分配"},"empty":{"noIdeas":"暂无想法","getStarted":"想法会经过需求细化、提案和任务执行——从创建第一个想法开始","noResults":"没有匹配的想法","groupEmpty":"此状态下暂无想法"},"newIdea":{"title":"新建想法","ideaTitle":"标题","titlePlaceholder":"你的想法是什么?","description":"描述","descriptionPlaceholder":"添加背景、目标或其他有助于说明想法的细节...","modeForm":"填写表单","modeConversation":"对智能体描述","modeConversationOfflineHint":"对智能体描述需要一个在线的守护进程。","decompose":"帮我拆解为子想法","decomposeHint":"创建一个主题,并让智能体提出候选子想法供你确认。"},"error":{"loadFailed":"加载想法失败","createFailed":"创建想法失败"},"loading":"加载中...","justNow":"刚刚","minutesAgo":"{minutes}分钟前","hoursAgo":"{hours}小时前","daysAgo":"{days}天前","stats":{"totalIdeas":"想法总数","totalTasks":"任务总数","totalProposals":"提案总数","totalDocuments":"文档总数","openCount":"{count} 个待处理","activeCount":"{count} 个进行中","pendingCount":"{count} 个待审核","taskPipeline":"任务流水线","totalCount":"共 {count} 个","todoCount":"待处理:{count}","inProgressCount":"进行中:{count}","toVerifyCount":"待验证:{count}","doneCount":"已完成:{count}","noTasks":"暂无任务","recentActivity":"最近活动","viewAll":"查看全部","noActivity":"暂无活动"},"panel":{"actions":{"busy":"请等待当前操作完成","loadingStage":"正在等待方案和任务数据。如一直未加载,请重新打开想法重试。","verifyUnavailable":"完成需求澄清后才能确认","editUnavailable":"已完成澄清的想法无法编辑","copyLink":"复制链接","copyUuid":"复制 UUID","linkCopied":"已复制想法链接","uuidCopied":"已复制想法 UUID","copyFailed":"无法复制,请检查剪贴板权限后重试。"},"notFound":"未找到想法","loadFailed":"加载想法失败","verifyingPlaceholder":"验证进行中...","donePlaceholder":"此想法已完成。","elaborationStatus":"细化状态","elaborationRounds":"细化问答","elaborationNotStarted":"尚未开始","elaborationNotStartedDesc":"分配给智能体以开始需求细化。","elaborationWaiting":"等待智能体","elaborationWaitingDesc":"产品经理智能体将很快开始细化。","elaboration":{"pendingAnswers":"待回答","validating":"验证中","resolved":"已完成"},"noProposals":"暂无与此想法关联的提案","viewProposal":"查看完整提案","tabs":{"overview":"概览","elaboration":"需求细化","proposal":"提案","tasks":"任务","activity":"动态"},"timeline":{"ideaCreated":"创建 Idea","elaboration":"需求细化","proposal":"提案","tasksProgress":"任务进度","noElaboration":"未开始","elaborationComplete":"已完成({count} 个问题)","elaborationInProgress":"进行中","elaborationSkipped":"已跳过","noProposal":"尚未创建","proposalApproved":"已批准","proposalsApproved":"{count}/{total} 已批准","proposalPending":"待审核","proposalDraft":"草稿","proposalRejected":"已拒绝","tasksComplete":"{done}/{total} 已完成","noTasks":"暂无任务","createdBy":"由 {name} 创建","documents":"{count} 个文档","tasks":"{count} 个任务","rounds":"{count} 轮问答","moreItems":"+{count} 更多"},"taskList":{"inProgress":"进行中","toVerify":"待验证","open":"待处理","done":"已完成","noTasks":"暂无可用任务","assigned":"已分配","closed":"已关闭","summary":"{done}/{total} 任务完成","acSummary":"{passed}/{total} 验收通过","agentWorking":"{count} 个 Agent 正在工作","workersActive":"{count} 个工作者","viewKanban":"看板"},"activityTab":{"activity":"动态","comments":"评论"}}},"search":{"placeholder":"搜索任务、想法、提案、文档...","scopeGlobal":"全局","scopeGroup":"分组","scopeProject":"当前项目","filterAll":"全部","filterTasks":"任务","filterIdeas":"想法","filterProposals":"提案","filterDocuments":"文档","filterProjects":"项目","noResults":"未找到结果","resultCount":"{count} 个结果","entityType":{"task":"任务","idea":"想法","proposal":"提案","document":"文档","project":"项目","project_group":"分组"}},"agent":{"permissions":{"title":"权限","description":"从预设开始,或直接自定义权限矩阵。","presetLabel":"预设","presetAdmin":"管理员","presetPm":"产品经理","presetDev":"开发者","presetCustom":"自定义","resourceHeader":"资源","resources":{"idea":"想法","proposal":"提案","document":"文档","task":"任务","project":"项目"},"actions":{"read":"读取","write":"写入","admin":"管理"},"help":{"admin":"对所有资源拥有完整权限,包含审批 / 验收 / 重开。推荐用于管理员 Agent。","pm":"推进工作:管理想法、提案、文档、任务、项目。没有审批或验收权限。","dev":"执行工作:可读取想法、提案、文档与项目;可创建与更新任务。无审批或验收权限。","custom":"自由勾选权限位。只有在自定义模式下,才能开启「管理」列的审批 / 验收 / 关闭动作。"}}},"idea":{"reportsList":"总结报告","reportsAcrossProposals":"覆盖所有已审批提案"},"agentConnections":{"title":"智能体连接","subtitle":"在你名下、实时连接到 Chorus 的本地智能体。仅展示你自己的连接。","summary":"{online} / {total} 在线","loading":"正在加载连接...","railHeader":"连接","statusOnline":"在线","statusOffline":"离线","fieldHost":"主机","fieldUptime":"在线时长","fieldLastActive":"最近活跃","fieldStarted":"启动于","hostUnknown":"未知主机","startedUnknown":"未知","versionUnknown":"?","unknownAgent":"未命名智能体","clientClaudeCode":"Claude Code","clientOpenclaw":"OpenClaw","clientCodex":"Codex","clientKiro":"Kiro","clientDsh":"DeepSeek Harness","clientPi":"Pi","clientUnknown":"未知客户端","uptimeMonoDays":"{days}天 {time}","mobileBack":"返回连接列表","selectPrompt":"选择一个连接以查看详情。","execTitle":"执行状态","execRunning":"正在运行","execQueued":"排队中","execInterrupted":"已打断","execInterruptedUser":"已打断","execInterruptedCrash":"已崩溃","execCrashExited":"异常退出","execWaiting":"等待中","execLoading":"正在加载执行状态...","execElapsedLabel":"已运行时长","execSession":"Idea:{idea}","execEmptyTitle":"暂无运行中的任务","execEmptyBody":"该连接当前没有正在处理或排队的工作。派发的工作会在 daemon 接手时显示在这里。","empty":{"title":"暂无智能体连接"},"loadErrorTitle":"无法加载连接","loadErrorBody":"无法连接到连接服务。这是加载失败,并非列表为空——你的智能体可能仍在线。正在自动重试。","execEntityUnknown":"未知资源","execConversation":"对话","entityTask":"任务","entityIdea":"想法","entityProposal":"提案","entityDocument":"文档","entityUnknown":"资源","interrupt":"打断","interrupting":"正在打断…","clearStuckTurnAria":"清理这个卡住的回合","interruptAria":"打断此正在运行的执行","interruptConfirmTitle":"确定打断此执行?","interruptConfirmBody":"这会停止 daemon 中针对「{title}」正在运行的会话。系统会先请求智能体优雅停止,若未停止则强制结束。之后你可以在本页恢复它。","interruptConfirmAction":"打断","interruptSuccess":"已请求打断「{title}」。","interruptError":"请求打断失败,请重试。","interruptStuckConfirmTitle":"确定清理这个卡住的回合?","interruptStuckConfirmBody":"Chorus 仍显示「{title}」有一个正在运行的回合,但 daemon 并未报告任何对应的进程。清理会把该回合标记为已打断,让对话重新可用。不会杀掉任何进程 —— 已经没有进程可杀。之后你可以恢复它。","interruptStuckConfirmAction":"清理回合","interruptStuckRequested":"已请求 daemon 停止「{title}」,daemon 响应后该回合会标记为已打断。","interruptStuckSuccess":"已清理「{title}」卡住的回合。","resume":"恢复","resuming":"正在恢复…","resumeAria":"恢复这个已打断的执行","resumeSuccess":"已请求恢复「{title}」。","resumeError":"请求恢复失败,请重试。","sendInstruction":"发送指令","sendInstructionPlaceholder":"为这个会话输入一条指令…","send":"发送","instructionHint":"按 Cmd/Ctrl + Enter 发送。","instructionCounter":"{count} / {max}","instructionError":"指令发送失败,请重试。","instructionEmpty":"请先输入指令再发送。","instructionTooLong":"指令过长。请精简到 {max} 个字符以内。","originOnlineTag":"源端在线","originOfflineTag":"源端离线","originOffline":"该会话的源端守护进程已离线,因此为只读状态。请改为开启一个新会话。","noOnlineConnection":"该智能体没有可发送的在线连接。请先启动它的守护进程,再发送指令。","targetConversation":"会话","newConversation":"新会话","sessionIdeaLabel":"想法 {id}","sessionAdHocLabel":"会话 {id}","adHocTitle":"开启新会话","adHocBody":"选择一个在线连接并发送第一条指令。新会话会在该连接的启动目录中运行。","pickConnection":"连接","pickConnectionPlaceholder":"选择一个在线连接","startSession":"开启会话","adHocSessionStarted":"会话已开启,智能体稍后会接手。","entityConversation":"对话"},"daemonChat":{"title":"对话","subtitle":"逐回合查看智能体做了什么。可在对话内继续发送或中断。","agentSelectLabel":"智能体","agentSelectPlaceholder":"选择一个智能体","agentSessionCount":"{count, plural, other {# 个对话}}","listHeader":"对话","loadMore":"加载更多","loadingMore":"加载中…","loadEarlier":"加载更早的消息","loadingEarlier":"正在加载更早…","transcriptLoading":"正在加载记录…","mobileBack":"对话","conversationAdHoc":"对话 {id}","conversationIdea":"想法 {id}","badgeIdea":"想法","running":"运行中","runningElapsedLabel":"本次运行已用时","statusActive":"进行中","statusEnded":"已结束","statusInterrupted":"已打断","statusError":"错误","turnStatusPending":"排队中","turnStatusRunning":"运行中","turnStatusInterrupted":"已中断","turnStatusEnded":"已结束","turnStatusMerged":"已合并","triggerTask":"任务","triggerMention":"提及","triggerElaboration":"澄清","triggerInstruction":"指令","triggerResume":"恢复","triggerElaborationVerified":"已验证","triggerStartDevelopment":"开发","triggerYoloRequested":"Yolo","triggerUnknown":"回合","turnLabel":"第 {seq} 回合","usageBadgeLabel":"{total} tok","usageBadgeAria":"Token 消耗:{total} tokens(输入 + 输出)","usageInput":"输入","usageOutput":"输出","usageCacheRead":"缓存读取","usageCacheWrite":"缓存写入","usageModel":"模型","conversationUsageAria":"对话 Token 消耗:{total} tokens(输入 + 输出)","openTask":"打开任务","openIdea":"打开想法","roleYou":"你","roleAgent":"智能体","turnNoMessages":"该回合没有保留对话记录。","turnMergedNote":"已并入一个合并处理的回合。","turnMergedCount":"合并了 {count} 个事件","turnEndedNoReply":"本回合未收到 agent 的回复。","turnRelayFailed":"agent 已回复,但回复未能上传到 Chorus:","privacyNote":"对话记录由智能体的守护进程上报,可能包含本地文件路径。仅保留最近的消息。","noAgents":{"title":"暂无对话","body":"当智能体被唤醒时(因任务、提及、澄清或你发送的指令),它的对话会显示在这里。"},"noSessions":{"title":"该智能体暂无对话","body":"在下方输入框发送一条指令以开启对话。"},"newConversationButton":"新建对话","newConversationTitle":"新建对话","newConversationBody":"向 {agent} 发送第一条指令。它会在你选择的连接上开启一个新会话。","newConversationNoAgent":"先在左侧选择一个智能体,然后发送第一条指令以开启对话。","newConversationNoOnlineTitle":"没有在线连接","newConversationNoOnlineBody":"该智能体当前没有在线的守护进程可对话。请先启动它的守护进程,再在此发送指令。","replyPlaceholder":"在此对话中回复…","selectPrompt":"选择一个对话以查看其记录。","loadErrorTitle":"无法加载该对话","loadErrorBody":"无法连接到记录服务。这是加载问题,而非空对话。重新打开时会自动重试。","originOfflineNote":"该对话的来源守护进程已离线,因此为只读。历史记录仍会显示;如需发送,请在某个在线目录中继续。","originOfflineNoteStuckTurn":"该对话的来源守护进程已离线,因此为只读。历史记录仍会显示;如需发送,请在某个在线目录中继续。卡住的回合仍可在此清理。","continueOnlineAction":"在在线目录中继续","continueOnlineHelp":"保留本对话,并在该智能体的某个在线工作目录中继续。它会在该目录中以全新状态接续(上方历史记录将保留为只读上下文)。","continueOnlineStarted":"正在该在线目录中继续","detailsLabel":"连接详情","detailsHostUnknown":"未知主机","detailUptime":"运行时长","detailHost":"主机","detailStarted":"启动于","copySessionId":"复制 session ID","sessionIdCopied":"已复制!"},"agentPresence":{"online":"在线","onlineUnit":"{count, plural, other {智能体在线}}","loading":"正在检查智能体…","unavailable":"智能体不可用","pillAria":"在线智能体 — 打开详情","popoverTitle":"在线智能体","connectionIdle":"空闲 — 没有正在运行或排队的工作。","openChat":"打开会话","openPixelWorkspace":"打开像素工作区","unknownPath":"未知路径","unknownHost":"未知主机","drilldown":{"instancesCount":"{count, plural, other {# 个实例}}","hostsCount":"{count, plural, other {# 台主机}}","expandAgent":"展开 {agent} 的工作目录","collapseAgent":"收起 {agent} 的工作目录","idle":"空闲","runningFor":"运行中 \xb7 {time}","queuedCount":"{count, plural, other {# 个排队}}","offlineSince":"离线 \xb7 {time}","fieldPath":"工作目录"}},"transcriptHeader":{"cwdAriaLabel":"工作目录","hostAriaLabel":"主机"},"conversationalEntry":{"noOnlineDaemon":"当前没有在线的智能体守护进程。启动一个即可用对话方式描述你的想法:","agentLabel":"智能体","agentPlaceholder":"选择智能体","instanceLabel":"工作目录","pickAgentFirst":"先选择一个智能体,查看它在线的工作目录。","placeholder":"描述你想做什么——接下来交给智能体…","charCounter":"{count} / {max}","connectionWentOffline":"该守护进程刚刚离线了。请换一个实例后重试。","sendError":"无法联系到智能体,请重试。","send":"发送给智能体","retry":"重试"},"daemonConnectCta":{"headline":"下一步:让你的智能体保持在线","body":"运行一个常驻守护进程,让你的智能体保持在线并自动接收派发的工作。","bodyLong":"安装插件只是建立一次性连接,并不能让智能体常驻在线。在终端运行一个常驻守护进程,智能体才会保持连接并自动接收派发的工作。","loginNote":"首次使用?先用 {command} 登录一次。","copy":"复制","copied":"已复制!","learnMore":"了解如何连接智能体"},"mention":{"online":"在线","offline":"离线","activeCount":"进行中 {count}","idle":"空闲","openConversation":"打开对话","host":"主机","workingDirectory":"工作目录","badgeAria":"{name} — {status}"},"mentionInstance":{"title":"选择工作目录?","subtitle":"{name} 在 {hosts, plural, other {# 台主机}}上有 {count, plural, other {# 个在线实例}}。","confirm":"固定实例","cancel":"取消","noInstances":"没有在线实例"},"wakeCwdPicker":{"title":"选择要运行的工作目录","subtitle":"{name} 在 {hosts, plural, other {# 台主机}}上有 {count, plural, other {# 个在线实例}}。请选择要固定并唤醒的实例。","confirm":"固定并继续","cancel":"取消","browseAnother":"浏览其他目录","registeredDirectories":"已注册目录","useOnce":"仅用于本次操作"},"directoryBrowser":{"chooseHost":"选择主机","unknownHost":"未知主机","chooseDirectorySource":"选择工作目录来源","daemonCwd":"Daemon 当前工作目录","configuredCwd":"Daemon 配置目录","customCwd":"此主机上的其他目录","pathPrefix":"目录路径前缀","pathPlaceholder":"/home/user/project","browseRoot":"浏览根目录","loadingRoots":"正在加载允许的根目录…","loadingCandidates":"正在加载目录建议","parent":"返回上一级目录","browse":"浏览目录","noHosts":"此 Agent 暂无在线主机。","empty":"没有匹配的目录。","selection":"已选目录","errors":{"HOST_OFFLINE":"所选主机已离线,请选择其他主机。","TIMEOUT":"主机未响应,请重试。","INVALID_PATH":"请输入有效的绝对路径。","OUTSIDE_ROOT":"该路径不在主机允许浏览的根目录内。","NOT_DIRECTORY":"所选路径不是目录。","ACCESS_DENIED":"Daemon 无法访问该目录。","STALE_TARGET":"选择已失效,请重新浏览并选择。","LIMIT_EXCEEDED":"匹配项过多,请输入更具体的前缀。","INTERNAL_ERROR":"无法加载目录,请重试。"}},"graph":{"title":"图谱","subtitle":"本项目想法、提案、任务与文档的思维导图。","emptyTitle":"暂时没有可绘制的内容","emptyDesc":"当本项目出现想法、提案、任务或文档后,它们将以相互连接的思维导图展现在这里。","loading":"正在加载图谱…","loadFailed":"无法加载项目图谱。","expandAll":"全部展开","collapseAll":"全部收起","filters":{"idea":"想法","proposal":"提案","task":"任务","document":"文档"},"nodeType":{"idea":"想法","proposal":"提案","task":"任务","document":"文档"},"edgeKind":{"derive":"派生","lineage":"脉络","depends":"依赖"},"controls":{"open":"显示图谱控制面板","close":"隐藏图谱控制面板"},"search":{"placeholder":"搜索节点…","clear":"清除搜索","noMatches":"无匹配结果","count":"{current} / {total}","prev":"上一个匹配","next":"下一个匹配"},"tooltip":{"loading":"加载中…"},"zoom":{"in":"放大","out":"缩小","fit":"适应视图"},"status":{"unknown":"未知"}},"quickAccess":{"title":"最近项目","pin":"置顶","unpin":"取消置顶","pinProject":"置顶 {name}","unpinProject":"取消置顶 {name}","pinToSidebar":"置顶到侧边栏","removeFromRecent":"从最近移除","moreActions":"{name} 的更多操作"},"resourceLinks":{"github":"GitHub","docs":"文档","githubAria":"打开 Chorus GitHub 仓库(在新标签页打开)","docsAria":"打开 Chorus 文档站(在新标签页打开)"},"markdown":{"frontmatterLabel":"文档元信息"}}')}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[59713],{30423:(e,t,n)=>{n.d(t,{j:()=>a});let r=["#E06C75","#E5C07B","#98C379","#56B6C2","#61AFEF","#C678DD","#D19A66","#BE5046","#7EC8E3","#C3E88D","#F78C6C","#A9DC76"];function a(e){let t=function(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return Math.abs(t)}(e)%r.length;return r[t]}},38106:(e,t,n)=>{function r(e){let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0");return"".concat(n,"-").concat(r,"-").concat(a," ").concat(o,":").concat(l)}function a(e,t){let n="string"==typeof e?new Date(e):e;return isNaN(n.getTime())?"":n.toLocaleDateString(t,{month:"short",day:"numeric"})}n.d(t,{r:()=>r,s:()=>a})},47754:(e,t,n)=>{n.d(t,{fv:()=>h,xQ:()=>x});var r=n(1856),a=n(63964);let o=new Map,l=new Map,i=new Map,s=new Set,c=0;function u(e,t,n,r){return n?r?"".concat(e,":").concat(t,":").concat(n,":").concat(r):"".concat(e,":").concat(t,":").concat(n):"".concat(e,":").concat(t)}function d(){c++,s.forEach(e=>e())}function m(e){var t;let n=e.subEntityType,r=e.subEntityUuid,a=u(e.entityType,e.entityUuid,n,r),s=function(e,t,n,r,a){let o=u(e,t,r,a);return"".concat(o,":").concat(n)}(e.entityType,e.entityUuid,e.agentUuid,n,r),c=l.get(s);if(c&&Date.now()-c<3e3)return;l.set(s,Date.now());let m={agentUuid:e.agentUuid,agentName:e.agentName,action:e.action,timestamp:Date.now()},p=(null!=(t=o.get(a))?t:[]).filter(t=>t.agentUuid!==e.agentUuid);p.push(m),o.set(a,p);let f=i.get(s);f&&clearTimeout(f);let h=setTimeout(()=>{let t=o.get(a);if(t){let n=t.filter(t=>t.agentUuid!==e.agentUuid);0===n.length?o.delete(a):o.set(a,n)}l.delete(s),i.delete(s),d()},3e3);i.set(s,h),d()}function p(){return c}function f(e){return s.add(e),()=>{s.delete(e)}}function h(e){m({type:"presence",companyUuid:"",projectUuid:"",...e,timestamp:Date.now()})}function x(){return(0,r.useSyncExternalStore)(f,p,p),(0,a.S2)(m),{getPresence:(e,t,n,r)=>{if(n){var a;return null!=(a=o.get(u(e,t,n,r)))?a:[]}let l="".concat(e,":").concat(t),i=new Map;for(let[e,t]of o)if(e===l||e.startsWith(l+":"))for(let e of t){let t=i.get(e.agentUuid);(!t||e.timestamp>t.timestamp)&&i.set(e.agentUuid,e)}return[...i.values()]}}}},59713:(e,t,n)=>{n.d(t,{$m:()=>ea});var r=n(90508),a=n(1856),o=n(39268),l=n(94903),i=n(85226),s=n(95886),c=n(36755),u=n(90031),d=n(41816),m=n(97413),p=n(22922),f=n(73693),h=n(91385),x=n(42242),g=n(85783),v=n(99783),w=n(24377),y=n(67712),b=n(42305);function C(e){var t;if(!e)return{pinnedHost:null,pinnedCwd:null};let n=new URLSearchParams(e),r=n.has("cwd"),a=n.has("host");if(!r&&!a)return{pinnedHost:null,pinnedCwd:null};let o=null!=(t=n.get("cwd"))?t:"",l=n.get("host"),i={pinnedCwd:r&&""!==o?o:null,pinnedHost:a?null!=l?l:"":null};return"1"===n.get("runtime")&&(i.runtimeCwd=!0),i}function j(e,t,n,r,a){let o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return"@[".concat(e,"](").concat(t,":").concat(n).concat(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(null==e&&null==t)return"";let r=e=>encodeURIComponent(e).replace(/\(/g,"%28").replace(/\)/g,"%29"),a=[];return a.push("cwd=".concat(null==t?"":r(t))),null!=e&&a.push("host=".concat(r(e))),n&&a.push("runtime=1"),"?".concat(a.join("&"))}(r,a,o),")")}var N=n(78307),E=n(97438);let k=v.A.extend({addAttributes(){var e;return{...null==(e=this.parent)?void 0:e.call(this),mentionType:{default:"user",parseHTML:e=>e.getAttribute("data-mention-type")||"user",renderHTML:e=>({"data-mention-type":e.mentionType||"user"})},pinnedHost:{default:null,parseHTML:e=>e.getAttribute("data-pinned-host"),renderHTML:e=>null==e.pinnedHost?{}:{"data-pinned-host":String(e.pinnedHost)}},pinnedCwd:{default:null,parseHTML:e=>e.getAttribute("data-pinned-cwd"),renderHTML:e=>null==e.pinnedCwd?{}:{"data-pinned-cwd":String(e.pinnedCwd)}},runtimeCwd:{default:!1,parseHTML:e=>"true"===e.getAttribute("data-runtime-cwd"),renderHTML:e=>e.runtimeCwd?{"data-runtime-cwd":"true"}:{}}}}});function A(e){let t=e.getJSON();return t.content?t.content.map(e=>(function e(t){if("mention"===t.type){let e=t.attrs;if(e){var n,r;return j(e.label||e.id,e.mentionType||"user",e.id,null!=(n=e.pinnedHost)?n:null,null!=(r=e.pinnedCwd)?r:null,!0===e.runtimeCwd)}return""}if("text"===t.type)return t.text||"";if("hardBreak"===t.type)return"\n";let a=t.content;return a?a.map(e).join(""):""})(e)).join("\n"):""}function R(e){if(!e)return{type:"doc",content:[{type:"paragraph"}]};let t=/@\[([^\]]+)\]\((user|agent):([a-f0-9-]+)(?:\?([^)]*))?\)/g;return{type:"doc",content:e.split("\n").map(e=>{let n,r=[],a=0,o=RegExp(t.source,"g");for(;null!==(n=o.exec(e));){n.index>a&&r.push({type:"text",text:e.slice(a,n.index)});let{pinnedHost:t,pinnedCwd:o,runtimeCwd:l}=C(n[4]);r.push({type:"mention",attrs:{id:n[3],label:n[1],mentionType:n[2],pinnedHost:t,pinnedCwd:o,runtimeCwd:!0===l}}),a=n.index+n[0].length}return a<e.length&&r.push({type:"text",text:e.slice(a)}),{type:"paragraph",content:r.length>0?r:void 0}})}}function S(e,t,n,r,a,o,l){if(a.innerHTML="",t){let e=document.createElement("div");e.className="flex items-center justify-center py-3 px-4",e.innerHTML='<div class="h-4 w-4 animate-spin rounded-full border-2 border-[#9A9A9A] border-t-transparent"></div>',a.appendChild(e);return}if(0===e.length){let e=document.createElement("div");e.className="py-2 px-3 text-xs text-muted-foreground",e.textContent="No results",a.appendChild(e);return}let i=document.createElement("div");i.className="py-1";let s=0,c=e=>{if(l)return void l(e,n);n({id:e.uuid,label:e.name,mentionType:e.type})},u=()=>{i.innerHTML="",e.forEach((e,t)=>{let n=document.createElement("button");n.type="button",n.className="flex w-full items-center gap-2.5 px-3 py-1.5 text-left text-sm transition-colors ".concat(t===s?"bg-background text-foreground":"text-muted-foreground hover:bg-background"),n.onclick=()=>c(e);let r=document.createElement("div");if(r.className="relative shrink-0","agent"===e.type){let t="function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,n=(0,h.Pf)(e.name,t?"static":"animated");if(n){let t=document.createElement("div");t.className="h-6 w-6 overflow-hidden rounded-full bg-muted";let a=document.createElement("img");a.src=n,a.alt=e.name,a.draggable=!1,a.className="h-full w-full origin-top scale-[1.5] -translate-y-[10%]",t.appendChild(a),r.appendChild(t)}else{let e=document.createElement("div");e.className="flex h-6 w-6 items-center justify-center rounded-full bg-primary text-white",e.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></svg>',r.appendChild(e)}}else{let e=document.createElement("div");e.className="flex h-6 w-6 items-center justify-center rounded-full bg-border text-muted-foreground",e.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>',r.appendChild(e)}if("agent"===e.type&&e.online){let e=document.createElement("span");e.className="absolute -bottom-0.5 -right-0.5 h-2 w-2 rounded-full bg-[#22C55E] ring-2 ring-white",e.title=o.online,r.appendChild(e)}let a=document.createElement("div");a.className="min-w-0 flex-1";let l=document.createElement("div");if(l.className="truncate text-xs font-medium",l.textContent=e.name,a.appendChild(l),e.email){let t=document.createElement("div");t.className="truncate text-[10px] text-muted-foreground",t.textContent=e.email,a.appendChild(t)}if("agent"===e.type&&e.online){var u;let t=null!=(u=e.activeCount)?u:0,n=document.createElement("div");t>0?(n.className="mt-0.5 truncate text-[10px] font-medium text-[#15803D] dark:text-[#4FD07A]",n.textContent="▶ ".concat(o.activeCount(t))):(n.className="mt-0.5 truncate text-[10px] text-muted-foreground",n.textContent=o.idle),a.appendChild(n)}n.appendChild(r),n.appendChild(a),i.appendChild(n)})};u(),a.appendChild(i),r.current={onKeyDown:t=>{let{event:n}=t;return!(0,b.P)(n)&&("ArrowUp"===n.key?(s=s<=0?e.length-1:s-1,u(),!0):"ArrowDown"===n.key?(s=s>=e.length-1?0:s+1,u(),!0):"Enter"===n.key?(e[s]&&c(e[s]),!0):"Escape"===n.key)}}}function M(e){var t;let{open:n,agentName:l,instances:i,onConfirm:s,onCancel:c}=e,u=(0,o.c)("mentionInstance"),[d,m]=(0,a.useState)(null);(0,a.useEffect)(()=>{var e;n&&m(null!=(e=i[0])?e:null)},[n,i]);let f=new Set(i.map(e=>e.host)).size;return(0,r.jsx)(E.lG,{open:n,onOpenChange:e=>{e||c()},children:(0,r.jsxs)(E.Cf,{className:"z-[110] flex max-h-[85svh] flex-col gap-0 sm:max-w-md",overlayClassName:"z-[110]",children:[(0,r.jsxs)(E.c7,{className:"shrink-0",children:[(0,r.jsx)(E.L3,{children:u("title")}),(0,r.jsx)(E.rr,{children:u("subtitle",{name:l,count:i.length,hosts:f})})]}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto py-3",onKeyDown:e=>{!("Enter"!==e.key||(0,b.P)(e))&&d&&(e.preventDefault(),s(d))},children:(0,r.jsx)(N.O,{instances:i,selectedConnectionUuid:null!=(t=null==d?void 0:d.connectionUuid)?t:null,onSelect:m,ariaLabel:u("title")})}),(0,r.jsxs)(E.Es,{className:"shrink-0",children:[(0,r.jsx)(p.$,{variant:"ghost",onClick:c,children:u("cancel")}),(0,r.jsx)(p.$,{disabled:!d,onClick:()=>{d&&s(d)},children:u("confirm")})]})]})})}let T=(0,a.forwardRef)((e,t)=>{var n,l;let{value:i,onChange:s,placeholder:c,className:u,disabled:d,onSubmit:m,entityType:p,entityUuid:f}=e,h=(0,a.useRef)([]),v=(0,a.useRef)(!1),C=(0,a.useRef)(null),N=(0,a.useRef)(null),E=(0,a.useRef)(null),T=(0,a.useRef)(null),[,D]=(0,a.useState)(0),_=(0,a.useRef)(!1),U=(0,o.c)("mention"),H=(0,a.useRef)({online:"",offline:"",idle:"",activeCount:()=>""});H.current={online:U("online"),offline:U("offline"),idle:U("idle"),activeCount:e=>U("activeCount",{count:e})};let F=(0,a.useCallback)((e,t)=>{let n="/api/mentionables?q=".concat(encodeURIComponent(e),"&limit=").concat(t,"&withInstances=1");return p&&f&&(n+="&entityType=".concat(encodeURIComponent(p),"&entityUuid=").concat(encodeURIComponent(f))),n},[p,f]),L=function(e,t){let n=(0,a.useRef)(null),r=(0,a.useRef)(e);r.current=e;let o=(0,a.useCallback)(e=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>r.current(e),250)},[250]);return(0,a.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]),o}((0,a.useCallback)(async e=>{v.current=!0,D(e=>e+1);try{let t=await fetch(F(e,10));if(t.ok){let e=await t.json();e.success&&(h.current=e.data)}}catch(e){h.current=[]}finally{v.current=!1,D(e=>e+1)}},[F]),250),[z,I]=(0,a.useState)(null),O=(0,a.useCallback)((e,t,n)=>{t({id:e.uuid,label:e.name,mentionType:e.type,pinnedHost:n?n.host:null,pinnedCwd:n?n.cwd:null,runtimeCwd:(null==n?void 0:n.runtimeCwd)===!0})},[]),$=(0,a.useRef)(()=>{});$.current=(e,t)=>{var n;let r=function(e){var t;if("agent"===e.type&&e.projectFixedCwd)return{kind:"insert",pin:{host:e.projectFixedCwd.host,cwd:e.projectFixedCwd.cwd,runtimeCwd:!0}};if(e.isIdeaAssignee&&e.ideaPin)return{kind:"insert",pin:{host:e.ideaPin.host,cwd:e.ideaPin.cwd}};let n="agent"===e.type?(null!=(t=e.instances)?t:[]).filter(e=>"online"===e.effectiveStatus):[];return n.length>=2?{kind:"pick",onlineInstances:n}:1===n.length?{kind:"insert",pin:n[0]}:{kind:"insert",pin:null}}(e);if("pick"===r.kind)return void I({item:e,onlineInstances:r.onlineInstances,command:t});O(e,t,null!=(n=r.pin)?n:void 0)};let B=(0,a.useCallback)((e,t)=>$.current(e,t),[]);(0,a.useEffect)(()=>{E.current&&T.current&&S(h.current,v.current,T.current,C,E.current,H.current,B)});let P=(0,x.hG)({immediatelyRender:!1,extensions:[g.A.configure({heading:!1,blockquote:!1,codeBlock:!1,bulletList:!1,orderedList:!1,listItem:!1,horizontalRule:!1}),k.configure({HTMLAttributes:{class:"text-blue-600 font-medium"},renderText(e){var t;let{node:n}=e;return"@".concat(null!=(t=n.attrs.label)?t:n.attrs.id)},suggestion:{char:"@",allowSpaces:!0,items:e=>{let{query:t}=e;return L(t),h.current},render:()=>({onStart:e=>{var t;let n=document.createElement("div");if(n.className="z-[100] rounded-md border border-border bg-card shadow-md min-w-[200px] max-w-[300px] overflow-hidden",E.current=n,T.current=e.command,e.clientRect){let t="function"==typeof e.clientRect?e.clientRect():e.clientRect;t&&(n.style.position="fixed",n.style.left="".concat(t.left,"px"),window.innerHeight-t.bottom<220?n.style.bottom="".concat(window.innerHeight-t.top+4,"px"):n.style.top="".concat(t.bottom+4,"px"))}(null!=(t=N.current)?t:document.body).appendChild(n),S(h.current,v.current,e.command,C,n,H.current,B)},onUpdate:e=>{if(T.current=e.command,E.current&&e.clientRect){let t="function"==typeof e.clientRect?e.clientRect():e.clientRect;t&&(E.current.style.left="".concat(t.left,"px"),window.innerHeight-t.bottom<220?(E.current.style.top="",E.current.style.bottom="".concat(window.innerHeight-t.top+4,"px")):(E.current.style.bottom="",E.current.style.top="".concat(t.bottom+4,"px")))}E.current&&S(h.current,v.current,e.command,C,E.current,H.current,B)},onKeyDown:e=>!!C.current&&C.current.onKeyDown(e),onExit:()=>{var e;null==(e=E.current)||e.remove(),E.current=null,T.current=null,h.current=[],v.current=!1}})}})],content:R(i),editable:!d,editorProps:{attributes:{class:(0,w.cn)("min-h-[36px] max-h-[120px] overflow-y-auto px-3 py-2 text-sm outline-none","prose prose-sm max-w-none [&_p]:my-0"),"data-placeholder":c||""},handleKeyDown:(e,t)=>!(0,b.P)(t)&&"Enter"===t.key&&!t.shiftKey&&!E.current&&!!m&&(t.preventDefault(),m(),!0)},onUpdate:e=>{let{editor:t}=e;_.current=!0,s(A(t))}});(0,a.useEffect)(()=>{if(!P||_.current){_.current=!1;return}A(P)!==i&&P.commands.setContent(R(i))},[i,P]),(0,a.useEffect)(()=>{P&&P.setEditable(!d)},[d,P]);let q=(0,a.useCallback)(e=>{var t;if(!P)return;let n=null!==e.pinnedHost||null!==e.pinnedCwd?{host:null!=(t=e.pinnedHost)?t:"",cwd:e.pinnedCwd,runtimeCwd:!0===e.runtimeCwd}:null,r=function(e,t){var n,r;let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=t.type.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),l=t.uuid.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(RegExp("@\\[[^\\]]+\\]\\(".concat(o,":").concat(l,"(?:\\?[^)]*)?\\)\\s*$"),"i").test(e))return{value:e,appended:!1};let i=j(t.name,t.type,t.uuid,null!=(n=null==a?void 0:a.host)?n:null,null!=(r=null==a?void 0:a.cwd)?r:null,(null==a?void 0:a.runtimeCwd)===!0),s=e.length>0&&!/\s$/.test(e)?" ":"";return{value:"".concat(e).concat(s).concat(i," "),appended:!0}}(A(P),{type:e.mentionType,uuid:e.id,name:e.label},n);r.appended&&P.commands.setContent(R(r.value)),P.commands.focus("end")},[P]),G=(0,a.useCallback)(async e=>{let t=e;if("agent"===e.type){let n=await fetch(F(e.name,50));if(!n.ok)throw Error("Failed to load Agent mention routing");let r=await n.json();if(!r.success||!Array.isArray(r.data))throw Error("Invalid Agent mention routing response");t=function(e,t){let n=t.find(t=>t.type===e.type&&t.uuid===e.uuid);if(!n)throw Error("Reply author is unavailable for mention routing");return n}(e,r.data)}$.current(t,e=>{q(e)})},[F,q]);return(0,a.useImperativeHandle)(t,()=>({focus:()=>null==P?void 0:P.commands.focus(),clear:()=>{null==P||P.commands.clearContent(),s("")},replyToAuthor:G}),[P,s,G]),(0,r.jsxs)("div",{ref:N,className:(0,w.cn)("relative rounded-md border border-input bg-transparent shadow-xs transition-[color,box-shadow]","focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",d&&"cursor-not-allowed opacity-50",u),children:[(0,r.jsx)(x.$Z,{editor:P}),(0,r.jsx)(M,{open:null!==z,agentName:null!=(n=null==z?void 0:z.item.name)?n:"",instances:null!=(l=null==z?void 0:z.onlineInstances)?l:[],onConfirm:e=>{!function(e,t,n){n.close(),e&&n.defer(()=>{try{n.focusEditor(),n.insert(e,t)}catch(e){n.onError(e)}})}(z,e,{close:()=>I(null),insert:(e,t)=>O(e.item,e.command,t),defer:e=>requestAnimationFrame(e),focusEditor:()=>null==P?void 0:P.commands.focus(),onError:e=>y.q.error("MentionEditor: cwd-pinned mention insert failed",e)})},onCancel:()=>I(null)}),(0,r.jsx)("style",{children:"\n .tiptap p.is-editor-empty:first-child::before {\n content: attr(data-placeholder);\n color: #9A9A9A;\n float: left;\n height: 0;\n pointer-events: none;\n }\n .tiptap .mention {\n color: #2563eb;\n font-weight: 500;\n }\n "})]})});T.displayName="MentionEditor";var D=n(81493),_=n(52217);let U=(0,_.createServerReference)("703f89d250cae0656b09c364a0fb4125eb6d7746a7",_.callServer,void 0,_.findSourceMapURL,"createCommentAction"),H=(0,_.createServerReference)("40d9e6e89c37a22967f1e0317a42682af514b7b628",_.callServer,void 0,_.findSourceMapURL,"deleteCommentAction");var F=n(11227);let L=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\?([^)]*))?\)/gi,z=/\u200B\u200BMENTION_(\d+)\u200B\u200B/g,I="chorus-mention";function O(e){let{children:t,renderMention:n}=e;if(!t||"string"!=typeof t)return null;if(!new RegExp(L.source,L.flags.replace("g","")).test(t))return(0,r.jsx)("div",{className:"overflow-hidden [&_pre]:overflow-x-auto",children:(0,r.jsx)(F.MarkdownContent,{children:t})});if(n)return(0,r.jsx)($,{renderMention:n,children:t});let{processed:a,mentions:o}=function(e){let t=[],n=new RegExp(L.source,L.flags);return{processed:e.replace(n,(e,n,r,a,o)=>{let l=t.length,{pinnedHost:i,pinnedCwd:s,runtimeCwd:c}=C(o),u={displayName:n,type:r,uuid:a};return(null!==i||null!==s)&&(u.pinnedHost=i,u.pinnedCwd=s,c&&(u.runtimeCwd=!0)),t.push(u),"".concat("​​MENTION_").concat(l).concat("​​")}),mentions:t}}(t);return(0,r.jsx)(B,{mentions:o,children:(0,r.jsx)(F.MarkdownContent,{children:a})})}function $(e){let{children:t,renderMention:n}=e,{processed:o,mentions:l}=a.useMemo(()=>(function(e){let t=[],n=new RegExp(L.source,L.flags);return{processed:e.replace(n,(e,n,r,a,o)=>{let l=t.length,{pinnedHost:i,pinnedCwd:s,runtimeCwd:c}=C(o),u={type:r.toLowerCase(),uuid:a.toLowerCase(),displayName:n};(null!==i||null!==s)&&(u.pinnedHost=i,u.pinnedCwd=s,c&&(u.runtimeCwd=!0)),t.push(u);let d="@".concat(n).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return"<".concat(I," ").concat("idx",'="').concat(l,'">').concat(d,"</").concat(I,">")}),mentions:t}})(t),[t]),i=a.useMemo(()=>({[I]:e=>{let{idx:t}=e,a=void 0===t?NaN:parseInt(t,10),o=Number.isInteger(a)?l[a]:void 0;return o?(0,r.jsx)(r.Fragment,{children:n({...o,index:a})}):null}}),[l,n]);return(0,r.jsx)("div",{className:"overflow-hidden [&_pre]:overflow-x-auto",children:(0,r.jsx)(F.MarkdownContent,{components:i,allowedTags:{[I]:["idx"]},literalTagContent:[I],children:o})})}function B(e){let{children:t,mentions:n}=e,o=a.useRef(null);return a.useEffect(()=>{let e;if(!o.current||0===n.length)return;let t=document.createTreeWalker(o.current,NodeFilter.SHOW_TEXT,null),r=[];for(;e=t.nextNode();)z.test(e.textContent||"")&&r.push(e),z.lastIndex=0;for(let e of r){var a;let t,r=e.textContent||"",o=document.createDocumentFragment(),l=0,i=RegExp(z.source,"g");for(;null!==(t=i.exec(r));){t.index>l&&o.appendChild(document.createTextNode(r.slice(l,t.index)));let e=n[parseInt(t[1],10)];if(e){let t=document.createElement("span");t.className="text-blue-600 font-medium",t.title="".concat(e.type,": ").concat(e.uuid),t.textContent="@".concat(e.displayName),o.appendChild(t)}else o.appendChild(document.createTextNode(t[0]));l=t.index+t[0].length}l<r.length&&o.appendChild(document.createTextNode(r.slice(l))),null==(a=e.parentNode)||a.replaceChild(o,e)}},[n]),(0,r.jsx)("div",{ref:o,className:"overflow-hidden [&_pre]:overflow-x-auto",children:t})}var P=n(94643),q=n(63964),G=n(96213),K=n(30423),Q=n(38106),W=n(67587),J=n(66343),V=n(68923),Z=n(51817);let X="(max-width: 639px)";function Y(e){var t;if(!window.matchMedia)return()=>{};let n=window.matchMedia(X);return null==(t=n.addEventListener)||t.call(n,"change",e),()=>{var t;return null==(t=n.removeEventListener)?void 0:t.call(n,"change",e)}}function ee(){var e,t;return!!(null==(e=(t=window).matchMedia)?void 0:e.call(t,X).matches)}function et(e){return"agent"===e.type?(0,r.jsx)(P.Gm,{mention:e,displayName:e.displayName},e.index):(0,r.jsxs)("span",{className:"text-blue-600 font-medium",title:"".concat(e.type,": ").concat(e.uuid),children:["@",e.displayName]},e.index)}function en(e,t){let n=new Map;for(let t of e)n.set(t.uuid,t);for(let e of t)n.set(e.uuid,e);return[...n.values()].sort((e,t)=>e.createdAt!==t.createdAt?e.createdAt<t.createdAt?1:-1:e.uuid<t.uuid?1:-1)}async function er(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=new Set(e.map(e=>e.uuid)),a=[],o=null,l=!1,i=0,s=!1,c=null,u=!1;for(let e=0;e<n;e++){let e=await t(o);if(!e)break;if(u=!0,i=e.total,a.push(...e.comments),s=e.hasMore,c=e.nextCursor,e.comments.some(e=>r.has(e.uuid))||!e.hasMore){l=!0;break}o=e.nextCursor}return u?l?{comments:en(e,a),total:i,contiguous:!0,resetOldestCursor:null,resetHasMore:!1}:{comments:en([],a),total:i,contiguous:!1,resetOldestCursor:c,resetHasMore:s}:null}function ea(e){let{targetType:t,targetUuid:n,currentUserUuid:u,onCountChange:d,compact:m=!1}=e,h=(0,o.c)(),[x,g]=(0,a.useState)(""),[v,w]=(0,a.useState)([]),[y,b]=(0,a.useState)(!0),[C,j]=(0,a.useState)(null),[N,E]=(0,a.useState)(!1),[k,A]=(0,a.useState)(!1),[R,S]=(0,a.useState)(null),[M,_]=(0,a.useState)(!1),[F,L]=(0,a.useState)(0),z=(0,a.useRef)(null),I=(0,a.useRef)(null),O=(0,a.useRef)(new Set),$=(0,a.useRef)(new Set),B=(0,a.useRef)(v);B.current=v;let P=(0,a.useRef)(R);P.current=R;let K=(0,a.useRef)(M);K.current=M;let Q=(0,a.useRef)(N);Q.current=N;let J=(0,a.useRef)(y);J.current=y;let V=m?"h-6 w-6":"h-[30px] w-[30px]",Z=m?"gap-2":"gap-2.5";(0,a.useEffect)(()=>{null==d||d(F)},[F,d]);let X=(0,a.useCallback)(async()=>{b(!0),j(null);let e=await (0,D.d)(t,n,{limit:10});e.success?(w(e.comments),S(e.nextCursor),_(e.hasMore),L(e.total)):j(e.error),b(!1)},[t,n]);(0,a.useEffect)(()=>{X()},[X]);let Y=(0,a.useCallback)(async()=>{if(Q.current||J.current||!K.current||!P.current)return;E(!0);let e=await (0,D.d)(t,n,{cursor:P.current,limit:10});e.success&&(w(t=>en(t,e.comments)),S(e.nextCursor),_(e.hasMore),L(e.total)),E(!1)},[t,n]);(0,a.useEffect)(()=>{let e=I.current;if(!e)return;let t=new IntersectionObserver(e=>{var t;(null==(t=e[0])?void 0:t.isIntersecting)&&Y()},{rootMargin:"120px"});return t.observe(e),()=>t.disconnect()},[Y,y]),(0,q.w0)(t,n,e=>{u&&e.actorUuid===u||er(B.current,async e=>{let r=await (0,D.d)(t,n,{cursor:e,limit:10});return r.success?r:null}).then(e=>{e&&(w(e.comments),L(e.total),e.contiguous||(S(e.resetOldestCursor),_(e.resetHasMore)))})});let ee=async()=>{if(!x.trim()||k)return;A(!0);let e=await U(t,n,x);if(A(!1),e.success){var r;let t=!B.current.some(t=>t.uuid===e.comment.uuid);w(t=>en(t,[e.comment])),t&&L(e=>e+1),g(""),null==(r=z.current)||r.clear()}else W.oR.error(e.error)},et=(0,a.useCallback)(e=>{var t;null==(t=z.current)||t.replyToAuthor(e).catch(()=>{W.oR.error(h("comments.replyFailed"))})},[h]),ea=(0,a.useCallback)(async e=>{if($.current.has(e))return!0;if(O.current.has(e))return!1;O.current.add(e);try{if(!(await H(e)).success)return W.oR.error(h("comments.deleteFailed")),!1;if($.current.add(e),B.current.some(t=>t.uuid===e)){let t=B.current.filter(t=>t.uuid!==e);B.current=t,w(t),L(e=>Math.max(0,e-1))}return!0}finally{O.current.delete(e)}},[h]);return(0,r.jsx)(G.D,{entityType:t,entityUuid:n,subEntityType:"comment",children:(0,r.jsxs)("div",{className:"flex flex-col gap-0",children:[(0,r.jsxs)("div",{className:"flex items-center ".concat(Z," pb-3 border-b border-[#F0EDE8] dark:border-[#26241f]"),children:[(0,r.jsx)(f.eu,{className:"".concat(m?"h-6 w-6":"h-7 w-7"," shrink-0"),children:(0,r.jsx)(f.q5,{className:"bg-border text-muted-foreground",children:(0,r.jsx)(l.A,{className:"".concat(m?"h-3 w-3":"h-3.5 w-3.5")})})}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)(T,{ref:z,value:x,onChange:g,onSubmit:ee,placeholder:h("comments.addComment"),className:"border border-border bg-card text-sm rounded-lg",disabled:k,entityType:t,entityUuid:n})}),(0,r.jsx)(p.$,{size:"sm",className:"shrink-0 gap-1 bg-[#E07A5F] text-white hover:bg-[#D06A4F]",disabled:!x.trim()||k,onClick:ee,children:k?(0,r.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(s.A,{className:"h-3.5 w-3.5"})})]}),y?(0,r.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,r.jsx)(i.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}):C?(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-sm text-muted-foreground",children:[(0,r.jsx)(c.A,{className:"h-4 w-4"}),(0,r.jsx)("p",{children:h("comments.loadError")}),(0,r.jsx)(p.$,{variant:"outline",size:"sm",onClick:X,children:h("comments.retry")})]}):0===v.length?(0,r.jsx)("p",{className:"py-8 text-center text-sm text-muted-foreground italic",children:h("comments.noComments")}):(0,r.jsxs)("div",{children:[v.map(e=>(0,r.jsx)(el,{comment:e,compact:m,avatarSize:V,gap:Z,t:h,currentUserUuid:u,onReply:et,onDelete:ea},e.uuid)),(0,r.jsx)("div",{ref:I,"aria-hidden":"true"}),N?(0,r.jsxs)("div",{className:"flex items-center justify-center py-4",children:[(0,r.jsx)(i.A,{className:"h-4 w-4 animate-spin text-muted-foreground"}),(0,r.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:h("comments.loadingMore")})]}):!M&&(0,r.jsx)("p",{className:"py-4 text-center text-xs text-muted-foreground italic",children:h("comments.noMoreComments")})]})]})})}function eo(e){let{author:t,canDelete:n,t:o,onReply:l,onDelete:s}=e,c=(0,a.useSyncExternalStore)(Y,ee,()=>!1),[f,h]=(0,a.useState)(!1),[x,g]=(0,a.useState)(!1),[v,w]=(0,a.useState)(!1),y=(0,a.useRef)(null),b=(0,a.useRef)(!1),C=e=>{if(e.preventDefault(),!b.current){var t;null==(t=y.current)||t.focus()}b.current=!1},j=e=>{b.current=!0,h(!1);let t=()=>e();"function"==typeof window.requestAnimationFrame?window.requestAnimationFrame(t):window.setTimeout(t,0)},N=(0,r.jsx)(p.$,{ref:y,type:"button",variant:"ghost",size:"icon",className:"relative -my-1 size-6 shrink-0 rounded-md text-muted-foreground hover:bg-accent hover:text-foreground before:absolute before:-inset-2.5 before:content-[''] sm:before:hidden","aria-label":o("comments.actionsLabel",{name:t.name}),children:(0,r.jsx)(u.A,{className:"size-4","aria-hidden":!0})}),E=()=>j(l),k=()=>j(()=>g(!0));return(0,r.jsxs)(r.Fragment,{children:[c?(0,r.jsxs)(V.cj,{open:f,onOpenChange:h,children:[(0,r.jsx)(V.CG,{asChild:!0,children:N}),(0,r.jsxs)(V.h,{side:"bottom","data-comment-actions-variant":"mobile",className:"max-h-[min(82svh,32rem)] gap-0 overflow-hidden rounded-t-2xl pb-[max(1rem,env(safe-area-inset-bottom))]",onCloseAutoFocus:C,children:[(0,r.jsx)("div",{className:"mx-auto mt-2 h-1 w-10 shrink-0 rounded-full bg-muted-foreground/25","aria-hidden":!0}),(0,r.jsxs)(V.Fm,{className:"border-b px-4 pt-3 pb-3 text-left",children:[(0,r.jsx)(V.qp,{children:o("comments.actionsTitle")}),(0,r.jsx)(V.Qs,{children:o("comments.actionsDescription",{name:t.name})})]}),(0,r.jsxs)("div",{className:"overflow-y-auto overscroll-contain px-2 py-2",children:[(0,r.jsxs)(p.$,{type:"button",variant:"ghost",className:"min-h-11 w-full justify-start gap-3 rounded-lg px-3 text-sm",onClick:E,children:[(0,r.jsx)(d.A,{className:"size-5","aria-hidden":!0}),o("comments.reply")]}),n&&(0,r.jsx)("div",{className:"mt-1 border-t pt-1",children:(0,r.jsxs)(p.$,{type:"button",variant:"ghost",className:"min-h-11 w-full justify-start gap-3 rounded-lg px-3 text-sm text-destructive hover:bg-destructive/10 hover:text-destructive focus-visible:text-destructive",onClick:k,children:[(0,r.jsx)(m.A,{className:"size-5","aria-hidden":!0}),o("comments.delete")]})})]})]})]}):(0,r.jsxs)(J.rI,{open:f,onOpenChange:h,children:[(0,r.jsx)(J.ty,{asChild:!0,children:N}),(0,r.jsxs)(J.SQ,{align:"end","data-comment-actions-variant":"desktop",className:"z-[100] w-44",onCloseAutoFocus:C,children:[(0,r.jsxs)(J._2,{onSelect:E,children:[(0,r.jsx)(d.A,{"aria-hidden":!0}),o("comments.reply")]}),n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(J.mB,{}),(0,r.jsxs)(J._2,{variant:"destructive",onSelect:k,children:[(0,r.jsx)(m.A,{"aria-hidden":!0}),o("comments.delete")]})]})]})]}),(0,r.jsx)(Z.Lt,{open:x,onOpenChange:e=>{v||g(e)},children:(0,r.jsxs)(Z.EO,{className:"z-[120]",overlayClassName:"z-[120]",onCloseAutoFocus:e=>{var t;e.preventDefault(),null==(t=y.current)||t.focus()},children:[(0,r.jsxs)(Z.wd,{children:[(0,r.jsx)(Z.r7,{children:o("comments.deleteTitle")}),(0,r.jsx)(Z.$v,{children:o("comments.deleteDescription")})]}),(0,r.jsxs)(Z.ck,{children:[(0,r.jsx)(Z.Zr,{disabled:v,children:o("common.cancel")}),(0,r.jsxs)(Z.Rx,{variant:"destructive",disabled:v,onClick:async e=>{e.preventDefault(),w(!0);let t=await s();w(!1),t&&g(!1)},children:[v&&(0,r.jsx)(i.A,{className:"animate-spin","aria-hidden":!0}),o("comments.deleteConfirm")]})]})]})})]})}function el(e){var t;let{comment:n,compact:o,avatarSize:l,gap:i,t:s,currentUserUuid:c,onReply:u,onDelete:d}=e,[m,x]=(0,a.useState)(!1),g="agent"===n.author.type,v=!!c&&("user"===n.author.type&&n.author.uuid===c||"agent"===n.author.type&&(null==(t=n.author.owner)?void 0:t.uuid)===c),w=g?(0,K.j)(n.author.name):null,y=n.content.length>200,b=w?"".concat(w,"18"):void 0;return(0,r.jsxs)("div",{className:"flex ".concat(i," py-3 border-b border-[#F0EDE8] dark:border-[#26241f] last:border-b-0"),children:[g?(0,r.jsx)(h.AgentAvatar,{name:n.author.name,size:o?24:30,className:"shrink-0 rounded-full"}):(0,r.jsx)(f.eu,{className:"".concat(l," shrink-0"),children:(0,r.jsx)(f.q5,{className:"bg-border text-muted-foreground text-[11px] font-medium",children:n.author.name.charAt(0).toUpperCase()})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1.5",children:[(0,r.jsx)("span",{className:"".concat(o?"text-xs":"text-[13px]"," font-semibold text-[#1A1A1A] dark:text-[#CFCFCF]"),children:n.author.name}),(0,r.jsx)("span",{style:g?{backgroundColor:b,color:null!=w?w:void 0}:void 0,className:"inline-flex items-center rounded px-1.5 py-px text-[9px] font-medium ".concat(g?"":"bg-[#F0EDE8] dark:bg-[#1f1e1c] text-muted-foreground"),children:s(g?"comments.roleAgent":"comments.roleHuman")}),(0,r.jsx)("span",{className:"text-[11px] text-muted-foreground",children:function(e,t){let n=new Date(e),r=new Date().getTime()-n.getTime(),a=Math.floor(r/6e4),o=Math.floor(r/36e5),l=Math.floor(r/864e5);return a<1?t("time.justNow"):a<60?t("time.minutesAgo",{minutes:a}):o<24?t("time.hoursAgo",{hours:o}):l<7?t("time.daysAgo",{days:l}):(0,Q.r)(n)}(n.createdAt,s)})]}),(0,r.jsx)(eo,{author:{type:g?"agent":"user",uuid:n.author.uuid,name:n.author.name},canDelete:v,t:s,onReply:()=>u({type:g?"agent":"user",uuid:n.author.uuid,name:n.author.name}),onDelete:()=>d(n.uuid)})]}),g&&n.author.owner&&(0,r.jsx)("div",{className:"flex items-center gap-1 mt-0.5",children:(0,r.jsx)("span",{className:"text-[11px] text-muted-foreground italic",children:s("comments.onBehalfOf",{name:n.author.owner.name})})}),(0,r.jsx)("div",{className:"mt-1 ".concat(o?"text-xs":"text-[13px]"," leading-relaxed text-[#3D3D3D] dark:text-[#d8d2ca] max-w-none [&_h1]:text-sm [&_h1]:font-semibold [&_h1]:mt-2 [&_h1]:mb-1 [&_h2]:text-[13px] [&_h2]:font-semibold [&_h2]:mt-2 [&_h2]:mb-1 [&_h3]:text-[13px] [&_h3]:font-semibold [&_h3]:mt-1.5 [&_h3]:mb-0.5 [&_p]:my-1 [&_ul]:my-1 [&_ol]:my-1 [&_li]:my-0.5 [&_code]:bg-secondary [&_code]:text-foreground [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_a]:text-primary [&_pre]:bg-secondary [&_pre]:text-foreground"),children:y&&!m?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(O,{renderMention:et,children:n.content.slice(0,200)+"..."}),(0,r.jsx)(p.$,{variant:"link",size:"sm",onClick:()=>x(!0),className:"h-auto p-0 text-[#E07A5F] dark:text-[#F0A088] text-xs font-medium mt-1",children:s("comments.showMore")})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(O,{renderMention:et,children:n.content}),y&&(0,r.jsx)(p.$,{variant:"link",size:"sm",onClick:()=>x(!1),className:"h-auto p-0 text-[#E07A5F] dark:text-[#F0A088] text-xs font-medium mt-1",children:s("comments.showLess")})]})})]})]})}},63964:(e,t,n)=>{n.d(t,{S2:()=>u,eV:()=>c,l9:()=>s,tS:()=>i,w0:()=>d});var r=n(90508),a=n(1856);n(91814);var o=n(95126);let l=(0,a.createContext)(null);function i(e){let{projectUuid:t,children:n}=e,i=(0,o.jj)(),s=null==i?void 0:i.subscribe,c=null==i?void 0:i.openGeneration,u=(0,a.useRef)(new Set),d=(0,a.useRef)(new Set),m=(0,a.useRef)(new Set),p=(0,a.useRef)(new Set),f=(0,a.useCallback)(()=>{u.current.forEach(e=>e())},[]),h=(0,a.useCallback)(e=>{d.current.forEach(t=>t(e))},[]),x=(0,a.useCallback)(()=>{for(let e of(f(),["task","idea","proposal","document","project","project_group"]))h({companyUuid:"",projectUuid:"",entityType:e,entityUuid:"",action:"updated"})},[f,h]);(0,a.useEffect)(()=>{let e,n,r=null,a=!1,o=0,l={};function i(n){if("presence"===n.type){if(t&&n.projectUuid!==t)return;m.current.forEach(e=>e(n));return}if("execution"===n.type)return void p.current.forEach(e=>e(n));if("string"!=typeof n.entityType||"string"!=typeof n.entityUuid||"string"!=typeof n.action||t&&n.projectUuid!==t)return;clearTimeout(e);let r=Date.now(),a=r-o;a>=3e3?(o=r,f()):e=setTimeout(()=>{o=Date.now(),f()},Math.max(1e3,3e3-a));let i=n.entityType;clearTimeout(l[i]),l[i]=setTimeout(()=>{h(n)},300)}function c(){u(),(r=new EventSource(t?"/api/events?projectUuid=".concat(encodeURIComponent(t)):"/api/events")).onopen=()=>{a&&x(),a=!0},r.onmessage=e=>{let t=null;try{t=JSON.parse(e.data)}catch(e){return}t&&i(t)},r.onerror=()=>{}}function u(){r&&(r.close(),r=null)}function d(){"visible"===document.visibilityState&&(r&&r.readyState!==EventSource.CLOSED||c())}return s?n=s(i):(c(),document.addEventListener("visibilitychange",d)),()=>{for(let t in null==n||n(),u(),clearTimeout(e),l)clearTimeout(l[t]);document.removeEventListener("visibilitychange",d)}},[t,s,f,h,x]);let g=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(s&&c){if(null===g.current){g.current=c;return}c>g.current&&(g.current=c,x())}},[s,c,x]);let v=(0,a.useCallback)(e=>(u.current.add(e),()=>{u.current.delete(e)}),[]),w=(0,a.useCallback)(e=>(d.current.add(e),()=>{d.current.delete(e)}),[]),y=(0,a.useCallback)(e=>(m.current.add(e),()=>{m.current.delete(e)}),[]),b=(0,a.useCallback)(e=>(p.current.add(e),()=>{p.current.delete(e)}),[]),C=(0,a.useMemo)(()=>({subscribe:v,subscribeEntity:w,subscribePresence:y,subscribeExecution:b}),[v,w,y,b]);return(0,r.jsx)(l.Provider,{value:C,children:n})}function s(e){let t=(0,a.useContext)(l),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)(()=>{if(!t)return;let e=()=>n.current();return e(),t.subscribe(e)},[t])}function c(e,t){let n=(0,a.useContext)(l),r=(0,a.useRef)(t);r.current=t;let o=(0,a.useRef)(e);o.current=e,(0,a.useEffect)(()=>{if(n)return n.subscribeEntity(e=>{let t=o.current;(Array.isArray(t)?t.includes(e.entityType):e.entityType===t)&&r.current(e)})},[n])}function u(e){let t=(0,a.useContext)(l),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)(()=>{if(t)return t.subscribePresence(e=>n.current(e))},[t])}function d(e,t,n){let r=(0,a.useContext)(l),o=(0,a.useRef)(n);o.current=n,(0,a.useEffect)(()=>{if(r)return r.subscribeEntity(n=>{n.entityType===e&&n.entityUuid===t&&o.current(n)})},[r,e,t])}},66343:(e,t,n)=>{n.d(t,{Hr:()=>f,Ht:()=>d,SQ:()=>c,_2:()=>u,lp:()=>m,mB:()=>p,rI:()=>i,ty:()=>s});var r=n(90508);n(1856);var a=n(97964),o=n(39025),l=n(24377);function i(e){let{...t}=e;return(0,r.jsx)(o.Root,{"data-slot":"dropdown-menu",...t})}function s(e){let{...t}=e;return(0,r.jsx)(o.Trigger,{"data-slot":"dropdown-menu-trigger",...t})}function c(e){let{className:t,sideOffset:n=4,...a}=e;return(0,r.jsx)(o.Portal,{children:(0,r.jsx)(o.Content,{"data-slot":"dropdown-menu-content",sideOffset:n,className:(0,l.cn)("bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...a})})}function u(e){let{className:t,inset:n,variant:a="default",...i}=e;return(0,r.jsx)(o.Item,{"data-slot":"dropdown-menu-item","data-inset":n,"data-variant":a,className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0","data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive","data-[inset]:pl-8 [&_svg]:size-4",t),...i})}function d(e){let{className:t,children:n,...i}=e;return(0,r.jsxs)(o.RadioItem,{"data-slot":"dropdown-menu-radio-item",className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4",t),...i,children:[(0,r.jsx)("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:(0,r.jsx)(o.ItemIndicator,{children:(0,r.jsx)(a.A,{className:"size-2 fill-current"})})}),n]})}function m(e){let{className:t,inset:n,...a}=e;return(0,r.jsx)(o.Label,{"data-slot":"dropdown-menu-label","data-inset":n,className:(0,l.cn)("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",t),...a})}function p(e){let{className:t,...n}=e;return(0,r.jsx)(o.Separator,{"data-slot":"dropdown-menu-separator",className:(0,l.cn)("bg-border -mx-1 my-1 h-px",t),...n})}function f(e){let{...t}=e;return(0,r.jsx)(o.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...t})}},81493:(e,t,n)=>{n.d(t,{d:()=>a});var r=n(52217);let a=(0,r.createServerReference)("7035542b5e5ffdfc0c2de346ac891a63cd941902b3",r.callServer,void 0,r.findSourceMapURL,"getCommentsAction")},96213:(e,t,n)=>{n.d(t,{D:()=>i});var r=n(90508),a=n(47754),o=n(30423),l=n(91385);function i(e){let{entityType:t,entityUuid:n,subEntityType:l,subEntityUuid:i,children:c,badgeInside:u}=e,{getPresence:d}=(0,a.xQ)(),m=d(t,n,l,i),p=m.length>0,f=p&&m.some(e=>"mutate"===e.action),h=p?f?m.find(e=>"mutate"===e.action):m[m.length-1]:null,x=h?(0,o.j)(h.agentName):"transparent";return(0,r.jsxs)("div",{className:"relative",style:p?{outline:"2px ".concat(f?"solid":"dashed"," ").concat(x),outlineOffset:"-2px",borderRadius:"var(--radius)"}:void 0,children:[p&&(0,r.jsxs)("div",{className:"absolute flex gap-1 z-10 justify-end ".concat(u?"top-0.5 right-1.5 max-w-[70%]":"-top-2.5 right-2 max-w-[80%]"),children:[m.slice(0,3).map(e=>(0,r.jsx)(s,{entry:e},e.agentUuid)),m.length>3&&(0,r.jsxs)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white bg-gray-500 whitespace-nowrap",children:["+",m.length-3]})]}),c]})}function s(e){let{entry:t}=e,n=(0,o.j)(t.agentName);return(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white whitespace-nowrap animate-in fade-in duration-300 ease-out sm:text-[11px] sm:px-2",style:{backgroundColor:n},children:[(0,r.jsx)(l.AgentAvatar,{name:t.agentName,size:14,className:"rounded-full"}),t.agentName]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60351],{2201:(e,t,r)=>{r.d(t,{E:()=>i});var n=r(1856),a=r(67712),s=r(78307);async function l(e){try{let t=await fetch("/api/ideas/".concat(encodeURIComponent(e),"/wake-preview"),{headers:{Accept:"application/json"}});if(!t.ok)return null;let r=await t.json();if(!r.success||!r.data)return null;return r.data}catch(e){return a.q.error("wake-target preview fetch failed",e),null}}function i(e){let{fetchPreview:t=l,reassignNoWake:r,previewIdeaUuid:i}=e,[o,c]=(0,n.useState)(null),[d,u]=(0,n.useState)(!1),[m,x]=(0,n.useState)(null),f=(0,n.useRef)("idle"),p=(0,n.useRef)(null),g=(0,n.useCallback)(()=>{f.current="idle",u(!1)},[]);(0,n.useEffect)(()=>{let e=!1;return i?(t(i).then(t=>{var r;e||x((null==t||null==(r=t.resolvedTarget)?void 0:r.source)==="project_fixed"?t.resolvedTarget:null)}),()=>{e=!0}):void x(null)},[t,i]);let h=(0,n.useCallback)(async(e,t,n)=>{try{let s=await r(e,t,n);s.success||a.q.debug("pin-then-wake reassign did not persist (continuing to wake)",s.error)}catch(e){a.q.error("pin-then-wake reassign threw (continuing to wake)",e)}},[r]),v=(0,n.useCallback)(async e=>{let{ideaUuid:r,wake:n}=e;if("idle"===f.current){f.current="running",u(!0);try{var a;let e=await t(r);if(x((null==e||null==(a=e.resolvedTarget)?void 0:a.source)==="project_fixed"?e.resolvedTarget:null),!e||!e.assigneeAgentUuid||"direct"===e.outcome)return void await n();let l=e.assigneeAgentUuid,i=(0,s.C)(e.onlineInstances);if("pick"===e.outcome){if(0===i.length)return void await n();let e={ideaUuid:r,agentUuid:l,instances:i};p.current={state:e,wake:n},f.current="picking",c(e);return}if("auto_pin"===e.outcome){let e=i[0];(null==e?void 0:e.agentInstanceUuid)&&await h(r,l,e.agentInstanceUuid),await n();return}}finally{"picking"!==f.current&&g()}}},[t,h,g]),b=(0,n.useCallback)(async e=>{if("picking"!==f.current||!p.current)return;let{state:t,wake:r}=p.current;f.current="running",p.current=null,c(null);try{e.agentInstanceUuid&&await h(t.ideaUuid,t.agentUuid,e.agentInstanceUuid),await r()}finally{g()}},[h,g]),j=(0,n.useCallback)(()=>{"picking"===f.current&&(p.current=null,c(null),g())},[g]);return{start:v,pickerState:o,confirmPick:b,confirmTemporary:(0,n.useCallback)(async e=>{if("picking"!==f.current||!p.current)return;let{wake:t}=p.current;f.current="running",p.current=null,c(null);try{await t(e)}finally{g()}},[g]),cancelPick:j,isResolving:d,fixedTarget:m}}},5422:(e,t,r)=>{r.d(t,{U:()=>a});var n=r(52217);let a=(0,n.createServerReference)("60f25879da46a78189fbfe01545c0a1556dc23ea0a",n.callServer,void 0,n.findSourceMapURL,"getProposalsForIdeaAction")},8427:(e,t,r)=>{r.d(t,{w:()=>j});var n=r(90508),a=r(1856),s=r(39268),l=r(67587),i=r(85226),o=r(62482),c=r(22922),d=r(92691),u=r(59208);let m=new Set(["done","closed"]);function x(e){let{assignee:t,proposals:r,tasks:n}=e;return!!t&&("agent"===t.type||"agent_instance"===t.type)&&!!r&&!!r.some(e=>"approved"===e.status)&&!!n&&!!n.some(e=>!m.has(e.status))&&!0}var f=r(52217);let p=(0,f.createServerReference)("60e87a37f11a35d6844c04c879b177181630dc6a80",f.callServer,void 0,f.findSourceMapURL,"startDevelopmentAction");var g=r(10623),h=r(2201),v=r(21180);let b={unauthorized:"errorGeneric",not_human:"errorGeneric",idea_not_found:"errorGeneric",assignee_not_agent:"errorAssigneeNotAgent",no_approved_proposal:"errorNoApprovedProposal",no_unfinished_tasks:"errorNoUnfinishedTasks",agent_offline:"errorAgentOffline",instance_offline:"errorInstanceOffline",fixed_cwd_host_offline:"errorFixedCwdHostOffline",unknown:"errorGeneric"};function j(e){var t,r,m,f,j,N;let{ideaUuid:w,assignee:y,assigneeName:A,proposals:k,tasks:S,onStarted:C,renderAction:F,disabledReason:U,onCloseAutoFocus:I}=e,R=(0,s.c)("startDevelopment"),_=null!=(r=null==(t=(0,u.kz)())?void 0:t.connections)?r:[],[E,D]=(0,a.useState)(!1),[T,M]=(0,a.useState)(!1),{start:L,pickerState:q,confirmPick:O,confirmTemporary:B,cancelPick:P,isResolving:$}=(0,h.E)({reassignNoWake:g.U,previewIdeaUuid:w});(0,a.useEffect)(()=>{M(!1)},[w]),(0,a.useEffect)(()=>{if(!T)return;let e=setTimeout(()=>M(!1),3e4);return()=>clearTimeout(e)},[T]);let z=y?"agent"===y.type?y.uuid:"agent_instance"===y.type&&null!=(j=null==(f=y.instance)?void 0:f.agentUuid)?j:null:null,H=null!==z&&_.some(e=>e.agentUuid===z&&"online"===e.effectiveStatus),G=x({assignee:y,proposals:k,tasks:S}),W=x(N={assignee:y,proposals:k,tasks:S,agentOnline:H})&&N.agentOnline;if(!F&&(!G||T))return T?(0,n.jsx)("span",{className:"text-[11px] text-[#00796B] dark:text-[#4FD1C0]",children:R("startedHint")}):null;let J=async e=>{D(!0);try{let r=e?await p(w,e):await p(w);if(r.success)M(!0),l.oR.success(R("startedHint")),null==C||C();else{var t;l.oR.error(R(b[null!=(t=r.errorCode)?t:"unknown"]))}}catch(e){l.oR.error(R("errorGeneric"))}finally{D(!1)}},K=U||(E||$?R("starting"):T?R("startedHint"):z?(null==k?void 0:k.some(e=>"approved"===e.status))?G?W?void 0:R("offlineHint"):R("errorNoUnfinishedTasks"):R("errorNoApprovedProposal"):R("errorAssigneeNotAgent")),V=()=>{K||L({ideaUuid:w,wake:J})},Z=(0,n.jsx)(c.$,{className:"bg-primary hover:bg-[#B56A42] text-white",onClick:V,disabled:!W||E||$,children:E?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}),R("starting")]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.A,{className:"mr-2 h-4 w-4"}),R("button")]})});return F||H?(0,n.jsxs)(n.Fragment,{children:[F?F({label:R("button"),disabledReason:K,busy:E||$||null!==q,onSelect:V}):Z,(0,n.jsx)(v.V,{open:null!==q,onCloseAutoFocus:I,agentName:null!=A?A:"",instances:null!=(m=null==q?void 0:q.instances)?m:[],agentUuid:null==q?void 0:q.agentUuid,onConfirm:O,onTemporaryConfirm:B,onCancel:P})]}):(0,n.jsx)(d.Bc,{delayDuration:300,children:(0,n.jsxs)(d.m_,{children:[(0,n.jsx)(d.k$,{asChild:!0,children:(0,n.jsx)("span",{tabIndex:0,className:"inline-flex",children:Z})}),(0,n.jsx)(d.ZI,{children:R("offlineHint")})]})})}},10623:(e,t,r)=>{r.d(t,{U:()=>a});var n=r(52217);let a=(0,n.createServerReference)("70262c1be35f643dc047b164d59fe186b6437cef14",n.callServer,void 0,n.findSourceMapURL,"reassignIdeaInstanceNoWakeAction")},11166:(e,t,r)=>{r.d(t,{o:()=>n});function n(e){let{ideaStatus:t,elaborationStatus:r,elaboration:n}=e;return!("elaborating"!==t||"resolved"===r||!n||0===n.rounds.length||n.rounds.some(e=>"pending_answers"===e.status))}},12246:(e,t,r)=>{r.d(t,{h:()=>y});var n=r(90508),a=r(1856),s=r(39268),l=r(91814),i=r(67587),o=r(85226),c=r(30825),d=r(60532),u=r(17475),m=r(22922),x=r(88064),f=r(97438),p=r(4365),g=r(17001),h=r(24377),v=r(52217);let b=(0,v.createServerReference)("0092efa04b1eee6d8c069995f603613840ae0d15ff",v.callServer,void 0,v.findSourceMapURL,"getProjectsAndGroupsAction"),j=(0,v.createServerReference)("604802c83720cd435076203096efc49efd92426628",v.callServer,void 0,v.findSourceMapURL,"moveIdeaPreviewAction"),N=(0,v.createServerReference)("60eef2b112794abb572708b0d5fb5a4f8444f282ae",v.callServer,void 0,v.findSourceMapURL,"moveIdeaAction");var w=r(67712);function y(e){let{open:t,onOpenChange:r,onCloseAutoFocus:v,ideaUuid:y,projectUuid:A,onMoved:k}=e,S=(0,s.c)("ideas"),C=(0,s.c)("common"),F=(0,l.r)(),[U,I]=(0,a.useState)([]),[R,_]=(0,a.useState)(!1),[E,D]=(0,a.useState)(null),[T,M]=(0,a.useState)(!1),L=(()=>{if(!E)return null;for(let e of U){let t=e.projects.find(e=>e.uuid===E);if(t)return t.name}return null})(),[q,O]=(0,a.useState)(null),[B,P]=(0,a.useState)(!1),[$,z]=(0,a.useState)(null),[H,G]=(0,a.useState)(!1),[W,J]=(0,a.useState)(null),K=(0,a.useRef)(0),V=(0,a.useCallback)(e=>{e&&e.addEventListener("wheel",e=>e.stopPropagation(),{passive:!0})},[]),Z=(0,a.useCallback)(async()=>{D(null),O(null),z(null),J(null),_(!0);try{let e=await b();if(e.success){let{projects:t,groups:r}=e.data,n=t.filter(e=>e.uuid!==A).map(e=>({uuid:e.uuid,name:e.name,groupUuid:e.groupUuid})),a=new Map;for(let e of r)a.set(e.uuid,e.name);let s=new Map,l=[];for(let e of n)e.groupUuid&&a.has(e.groupUuid)?(s.has(e.groupUuid)||s.set(e.groupUuid,{uuid:e.groupUuid,name:a.get(e.groupUuid),projects:[]}),s.get(e.groupUuid).projects.push({uuid:e.uuid,name:e.name})):l.push({uuid:e.uuid,name:e.name});let i=[...s.values()];l.length>0&&i.push({uuid:"ungrouped",name:S("ungrouped"),projects:l}),I(i)}}catch(e){w.q.error("Failed to load projects for move dialog:",e),I([])}_(!1)},[A,S]);(0,a.useEffect)(()=>{t&&Z()},[t,Z]),(0,a.useEffect)(()=>{if(!E){O(null),z(null);return}let e=++K.current;P(!0),z(null),O(null),j(y,E).then(t=>{e===K.current&&(t.success?O(t.moved):z(t.error||S("moveDialog.error",{message:""})))}).catch(t=>{e===K.current&&(w.q.error("Failed to fetch move preview:",t),z(S("moveDialog.error",{message:t instanceof Error?t.message:String(t)})))}).finally(()=>{e===K.current&&P(!1)})},[E,y,S]);let Q=async()=>{if(E&&q&&!H){G(!0),J(null);try{let e=await N(y,E);if(e.success){let t=e.moved;i.oR.success(S("moveDialog.successToast",{...t}),{action:{label:S("moveDialog.viewMovedIdea"),onClick:()=>{F.push("/projects/".concat(E,"/dashboard?panel=").concat(y,"&tab=overview"))}}}),r(!1),F.refresh(),k(t)}else J(S("moveDialog.error",{message:e.error||S("moveFailed")}))}catch(e){J(S("moveDialog.error",{message:e instanceof Error?e.message:S("moveFailed")}))}G(!1)}};return(0,n.jsx)(f.lG,{open:t,onOpenChange:r,children:(0,n.jsxs)(f.Cf,{onCloseAutoFocus:v,children:[(0,n.jsxs)(f.c7,{children:[(0,n.jsx)(f.L3,{children:S("moveDialog.title")}),(0,n.jsx)(f.rr,{children:S("moveDialog.description")})]}),(0,n.jsxs)("div",{className:"space-y-3 pt-1",children:[(0,n.jsx)(x.J,{htmlFor:"move-target-project",className:"text-[13px] font-medium text-foreground",children:S("moveDialog.targetProjectLabel")}),R?(0,n.jsx)("div",{className:"flex items-center justify-center h-10 border border-border rounded-md",children:(0,n.jsx)(o.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}):(0,n.jsxs)(g.AM,{open:T,onOpenChange:M,children:[(0,n.jsx)(g.Wv,{asChild:!0,children:(0,n.jsxs)(m.$,{id:"move-target-project",variant:"outline",role:"combobox","aria-expanded":T,className:(0,h.cn)("w-full justify-between border-border font-normal",!L&&"text-muted-foreground"),children:[null!=L?L:S("moveDialog.targetProjectPlaceholder"),(0,n.jsx)(c.A,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,n.jsx)(g.hl,{ref:V,className:"w-[--radix-popover-trigger-width] p-0 pointer-events-auto",align:"start",children:(0,n.jsxs)(p.uB,{children:[(0,n.jsx)(p.G7,{placeholder:S("moveDialog.searchProjects")}),(0,n.jsxs)(p.oI,{children:[(0,n.jsx)(p.xL,{children:S("noProjectsFound")}),U.map(e=>(0,n.jsx)(p.L$,{heading:e.name,children:e.projects.map(t=>(0,n.jsxs)(p.h_,{value:"".concat(t.name," ").concat(e.name),onSelect:()=>{D(t.uuid),M(!1)},children:[(0,n.jsx)(d.A,{className:(0,h.cn)("mr-2 h-4 w-4",E===t.uuid?"opacity-100":"opacity-0")}),t.name]},t.uuid))},e.uuid))]})]})})]}),E&&(0,n.jsx)("div",{role:"status","aria-live":"polite",className:"rounded-lg border border-border bg-background p-3 text-[13px] text-foreground",children:B?(0,n.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,n.jsx)("span",{children:S("moveDialog.previewLoading")})]}):$?(0,n.jsxs)("div",{className:"flex items-start gap-2 text-destructive",children:[(0,n.jsx)(u.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,n.jsx)("span",{children:$})]}):q?(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)("p",{children:S("moveDialog.previewSummary",{...q})}),(0,n.jsx)("p",{className:"text-[12px] text-muted-foreground",children:S("moveDialog.previewWarning")})]}):null}),W&&(0,n.jsx)("p",{className:"text-xs text-destructive",role:"alert",children:W})]}),(0,n.jsxs)("div",{className:"flex justify-end gap-3 pt-2",children:[(0,n.jsx)(m.$,{variant:"outline",className:"border-border",onClick:()=>r(!1),disabled:H,children:C("cancel")}),(0,n.jsx)(m.$,{className:"bg-primary hover:bg-[#B56A42] text-white",onClick:Q,disabled:!E||!q||H||B,children:H?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),S("moving")]}):S("moveDialog.confirm")})]})]})})}},14151:(e,t,r)=>{r.d(t,{e:()=>a});var n=r(52217);let a=(0,n.createServerReference)("401b65a53f3db9953e218f1e7e2ba795ff5628440b",n.callServer,void 0,n.findSourceMapURL,"verifyElaborationAction")},19767:(e,t,r)=>{r.d(t,{s:()=>w});var n=r(90508),a=r(1856),s=r(39268),l=r(67587),i=r(84052),o=r(85226),c=r(22922),d=r(51817),u=r(92691),m=r(59208);let x=new Set(["done","closed"]);function f(e){let{assignee:t,proposals:r,tasks:n}=e;return!!t&&("agent"===t.type||"agent_instance"===t.type)&&!(r&&r.some(e=>"approved"===e.status)&&n&&0!==n.length&&n.every(e=>x.has(e.status)))}var p=r(52217);let g=(0,p.createServerReference)("60a90cfe70ecf3dd0968d01b734a6e505229741697",p.callServer,void 0,p.findSourceMapURL,"yoloRequestedAction");var h=r(10623),v=r(2201),b=r(21180);let j={unauthorized:"errorGeneric",not_human:"errorGeneric",idea_not_found:"errorGeneric",assignee_not_agent:"errorAssigneeNotAgent",agent_offline:"errorAgentOffline",instance_offline:"errorInstanceOffline",fixed_cwd_host_offline:"errorFixedCwdHostOffline",unknown:"errorGeneric"},N="bg-[#7F5AF0] hover:bg-[#6D48DE] dark:bg-[#6E56C8] dark:hover:bg-[#7C63D8] text-white";function w(e){var t,r,x,p,w,y;let{ideaUuid:A,assignee:k,assigneeName:S,proposals:C,tasks:F,onStarted:U,renderAction:I,disabledReason:R,onCloseAutoFocus:_}=e,E=(0,s.c)("yolo"),D=null!=(r=null==(t=(0,m.kz)())?void 0:t.connections)?r:[],[T,M]=(0,a.useState)(!1),[L,q]=(0,a.useState)(!1),[O,B]=(0,a.useState)(!1),{start:P,pickerState:$,confirmPick:z,confirmTemporary:H,cancelPick:G,isResolving:W}=(0,v.E)({reassignNoWake:h.U,previewIdeaUuid:A});(0,a.useEffect)(()=>{q(!1)},[A]),(0,a.useEffect)(()=>{if(!L)return;let e=setTimeout(()=>q(!1),3e4);return()=>clearTimeout(e)},[L]);let J=k?"agent"===k.type?k.uuid:"agent_instance"===k.type&&null!=(w=null==(p=k.instance)?void 0:p.agentUuid)?w:null:null,K=null!==J&&D.some(e=>e.agentUuid===J&&"online"===e.effectiveStatus),V=f({assignee:k,proposals:C,tasks:F}),Z=f(y={assignee:k,proposals:C,tasks:F,agentOnline:K})&&y.agentOnline;if(!I&&(!V||L))return L?(0,n.jsx)("span",{className:"text-[11px] text-[#00796B] dark:text-[#4FD1C0]",children:E("startedHint")}):null;let Q=async e=>{M(!0);try{let r=e?await g(A,e):await g(A);if(r.success)q(!0),l.oR.success(E("startedHint")),null==U||U();else{var t;l.oR.error(E(j[null!=(t=r.errorCode)?t:"unknown"]))}}catch(e){l.oR.error(E("errorGeneric"))}finally{M(!1)}},Y=R||(T||W?E("starting"):L?E("startedHint"):J?V?Z?void 0:E("offlineHint"):E("completedHint"):E("errorAssigneeNotAgent"));return I||K?(0,n.jsxs)(n.Fragment,{children:[null==I?void 0:I({label:E("button"),disabledReason:Y,busy:T||W||null!==$||O,onSelect:()=>{Y||B(!0)}}),(0,n.jsxs)(d.Lt,{open:O,onOpenChange:B,children:[!I&&(0,n.jsx)(d.tv,{asChild:!0,children:(0,n.jsxs)(c.$,{className:N,disabled:!Z||T||W,children:[(0,n.jsx)(i.A,{className:"mr-2 h-4 w-4"}),E("button")]})}),(0,n.jsxs)(d.EO,{onCloseAutoFocus:_,children:[(0,n.jsxs)(d.wd,{children:[(0,n.jsx)(d.r7,{children:E("confirmTitle")}),(0,n.jsx)(d.$v,{children:E("confirmDescription")})]}),(0,n.jsxs)(d.ck,{children:[(0,n.jsx)(d.Zr,{disabled:T,children:E("cancel")}),(0,n.jsx)(c.$,{className:N,onClick:()=>{Y||(B(!1),P({ideaUuid:A,wake:Q}))},disabled:!!Y,children:T?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),E("starting")]}):E("confirmCta")})]})]})]}),(0,n.jsx)(b.V,{open:null!==$,onCloseAutoFocus:_,agentName:null!=S?S:"",instances:null!=(x=null==$?void 0:$.instances)?x:[],agentUuid:null==$?void 0:$.agentUuid,onConfirm:z,onTemporaryConfirm:H,onCancel:G})]}):(0,n.jsx)(u.Bc,{delayDuration:300,children:(0,n.jsxs)(u.m_,{children:[(0,n.jsx)(u.k$,{asChild:!0,children:(0,n.jsx)("span",{tabIndex:0,className:"inline-flex",children:(0,n.jsxs)(c.$,{className:N,disabled:!0,children:[(0,n.jsx)(i.A,{className:"mr-2 h-4 w-4"}),E("button")]})})}),(0,n.jsx)(u.ZI,{children:E("offlineHint")})]})})}},22189:(e,t,r)=>{r.d(t,{x:()=>a});var n=r(52217);let a=(0,n.createServerReference)("40ba4f47496370c13027f291dd2e467efddd12773d",n.callServer,void 0,n.findSourceMapURL,"getIdeaActivitiesAction")},29767:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]])},29770:(e,t,r)=>{r.d(t,{J:()=>a});var n=r(52217);let a=(0,n.createServerReference)("40e1cfd0d91bf782a23b355bac4f12f0d24e4cb922",n.callServer,void 0,n.findSourceMapURL,"updateIdeaAction")},31510:(e,t,r)=>{r.d(t,{Z:()=>a});var n=r(52217);let a=(0,n.createServerReference)("60dcb5a02309ba7c14ee7daf9c111ea85cc5196906",n.callServer,void 0,n.findSourceMapURL,"deleteIdeaAction")},34977:(e,t,r)=>{r.d(t,{R:()=>w});var n=r(90508),a=r(1856),s=r(91814),l=r(39268),i=r(17730),o=r(78948),c=r(37915),d=r(62898),u=r(57893),m=r(60532),x=r(85226),f=r(22922),p=r(14554),g=r(81750),h=r(52217);let v=(0,h.createServerReference)("709bef881a7f3663bf3cf4cf417e57b728525a827b",h.callServer,void 0,h.findSourceMapURL,"submitElaborationAnswersAction");var b=r(42305);let j="__other__",N={functional:"functional",non_functional:"nonFunctional",business_context:"businessContext",technical_context:"technicalContext",user_scenario:"userScenario",scope:"scope"};function w(e){let{ideaUuid:t,elaboration:r,onRefresh:a}=e,i=(0,l.c)("elaboration"),o=(0,s.r)();if(!r||0===r.rounds.length)return null;let{summary:c,rounds:d}=r;return(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:i("title")}),(0,n.jsx)("span",{className:"text-xs font-medium text-primary",children:i("answeredCounter",{answered:c.answeredQuestions,total:c.totalQuestions})})]}),(0,n.jsx)("div",{className:"space-y-2.5",children:d.map(e=>(0,n.jsx)(y,{round:e,ideaUuid:t,onAnswered:async()=>{await (null==a?void 0:a()),o.refresh()}},e.uuid))})]})}function y(e){let{round:t,ideaUuid:r,onAnswered:s}=e,c=(0,l.c)("elaboration"),d="pending_answers"===t.status,u="answered"===t.status||"validated"===t.status||"needs_followup"===t.status,[m,x]=(0,a.useState)(d);return(0,n.jsx)(g.Nt,{open:m,onOpenChange:x,children:(0,n.jsxs)("div",{className:"overflow-hidden rounded-xl border border-border bg-card",children:[(0,n.jsx)(g.R6,{asChild:!0,children:(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between px-4 py-3 text-left transition-colors cursor-pointer hover:bg-background ".concat(m?"bg-[#F7F6F3] dark:bg-[#1e1d1b] border-b border-border":""),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[m?(0,n.jsx)(i.A,{className:"h-4 w-4 text-muted-foreground"}):(0,n.jsx)(o.A,{className:"h-4 w-4 text-muted-foreground"}),(0,n.jsx)("span",{className:"flex h-[22px] w-[22px] shrink-0 items-center justify-center rounded-full text-[11px] font-semibold text-white ".concat(d?"bg-primary":"bg-[#888780]"),children:t.roundNumber}),(0,n.jsx)("span",{className:"text-[13px] font-semibold text-foreground",children:c("roundLabel",{number:t.roundNumber})}),t.isAppended&&(0,n.jsx)("span",{className:"rounded bg-[#EDE7F6] dark:bg-[#221833] px-2 py-0.5 text-[10px] font-medium text-[#6A4FB6] dark:text-[#A99FF0]",children:c("appendedBadge")}),!m&&(0,n.jsxs)("span",{className:"text-xs text-muted-foreground",children:["\xb7 ",c("questionCount",{count:t.questions.length})]})]}),u?(0,n.jsx)("span",{className:"rounded bg-[#E8F5E9] dark:bg-[#14281a] px-2 py-0.5 text-[10px] font-medium text-[#2E7D32] dark:text-[#5FD07E]",children:c("statusAnswered")}):(0,n.jsx)("span",{className:"rounded bg-[#FFF3E0] dark:bg-[#3a2a12] px-2 py-0.5 text-[10px] font-medium text-[#E65100] dark:text-[#F0A050]",children:c("pendingAnswers")})]})}),(0,n.jsx)(g.Ke,{children:d?(0,n.jsx)(k,{round:t,ideaUuid:r,onAnswered:s}):(0,n.jsx)(A,{round:t})})]})})}function A(e){let{round:t}=e,r=(0,l.c)("elaboration");return(0,n.jsx)("div",{className:"space-y-4 px-4 py-4",children:t.questions.map((e,a)=>{var s,l;let i=(null==(s=e.answer)?void 0:s.selectedOptionId)?e.options.find(t=>{var r;return t.id===(null==(r=e.answer)?void 0:r.selectedOptionId)}):null,o=(null==(l=e.answer)?void 0:l.customText)||(null==i?void 0:i.label)||r("noAnswer"),c=N[e.category]||e.category;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)("span",{className:"text-xs leading-relaxed text-muted-foreground",children:["Q: ",e.text]}),(0,n.jsx)("span",{className:"shrink-0 text-[11px] italic text-[#B0B0B0]",children:r("category.".concat(c))})]}),(0,n.jsxs)("p",{className:"mt-1 text-xs font-medium leading-relaxed text-foreground",children:["A: ",o]}),a<t.questions.length-1&&(0,n.jsx)("div",{className:"mt-4 h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"})]},e.uuid)})})}function k(e){var t,r,s;let{round:i,ideaUuid:g,onAnswered:h}=e,w=(0,l.c)("elaboration"),[y,A]=(0,a.useState)(0),k=(0,a.useRef)(y),[S,C]=(0,a.useState)("right"),[F,U]=(0,a.useState)({}),[I,R]=(0,a.useState)(!1),[_,E]=(0,a.useState)(null);(0,a.useEffect)(()=>{k.current=y},[y]);let D=(0,a.useCallback)((e,t)=>{C("left"===t?"right":"left"),A(e)},[]),T=i.questions,M=T[y],L=N[M.category]||M.category,q=(0,a.useCallback)((e,t)=>{if(U(r=>{var n;return{...r,[e]:{questionId:e,selectedOptionId:t===j?null:t,customText:t===j?(null==(n=r[e])?void 0:n.customText)||"":null}}}),t!==j){let e=Math.min(T.length-1,k.current+1);e!==k.current&&setTimeout(()=>D(e,"left"),200)}},[T.length,D]),O=(0,a.useCallback)((e,t)=>{U(r=>({...r,[e]:{...r[e],questionId:e,selectedOptionId:null,customText:t}}))},[]),B=T.filter(e=>e.required).every(e=>{let t=F[e.questionId];return!!t&&!!(t.selectedOptionId||t.customText&&t.customText.trim())}),P=async()=>{R(!0),E(null);let e=Object.values(F),t=await v(g,i.uuid,e);t.success?(await h(),R(!1)):(R(!1),E(t.error||w("submitFailed")))},$=(e=>{let t=F[e];return t?null===t.selectedOptionId&&null!==t.customText&&void 0!==t.customText?j:t.selectedOptionId||null:null})(M.questionId),z=$===j,H=y===T.length-1,G=!!(null!=(s=null==(t=F[M.questionId])?void 0:t.customText)?s:"").trim();return(0,n.jsxs)("div",{className:"overflow-hidden p-3.5",children:[(0,n.jsxs)("div",{className:"right"===S?"animate-in slide-in-from-right-4 duration-200":"animate-in slide-in-from-left-4 duration-200",children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsx)("div",{className:"flex-1 text-sm text-muted-foreground",children:M.text}),(0,n.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,n.jsx)(f.$,{variant:"ghost",size:"icon",onClick:()=>D(y-1,"right"),disabled:0===y,className:"h-7 w-7 text-muted-foreground disabled:opacity-30",children:(0,n.jsx)(c.A,{className:"h-4 w-4"})}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:w("navCounter",{current:y+1,total:T.length})}),(0,n.jsx)(f.$,{variant:"ghost",size:"icon",onClick:()=>D(y+1,"left"),disabled:y===T.length-1,className:"h-7 w-7 text-muted-foreground disabled:opacity-30",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]})]}),(0,n.jsxs)("div",{className:"mt-3",children:[M.options.map((e,t)=>{let r=$===e.id;return(0,n.jsxs)("div",{children:[(0,n.jsxs)(f.$,{variant:"ghost",onClick:()=>q(M.questionId,e.id),className:"flex w-full items-start justify-between gap-2.5 px-3.5 py-3 h-auto text-left transition-colors rounded-none ".concat(r?"bg-[#F7F6F3] dark:bg-[#1e1d1b]":"hover:bg-background"),children:[(0,n.jsxs)("span",{className:"flex flex-1 min-w-0 items-start gap-2.5",children:[(0,n.jsx)("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-border text-xs font-medium text-foreground/80",children:t+1}),(0,n.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,n.jsx)("span",{className:"whitespace-normal [overflow-wrap:anywhere] text-[13px] text-foreground",children:e.label}),e.description&&(0,n.jsx)("span",{className:"whitespace-normal [overflow-wrap:anywhere] text-[11px] text-muted-foreground",children:e.description})]})]}),r&&(0,n.jsx)(d.A,{className:"mt-1 h-4 w-4 shrink-0 text-muted-foreground"})]}),t<M.options.length-1&&(0,n.jsx)("div",{className:"h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"})]},e.id)}),(0,n.jsx)("div",{className:"h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"}),(0,n.jsxs)("div",{className:"flex w-full items-center gap-2.5 px-3.5 py-3 transition-colors ".concat(z?"bg-[#F7F6F3] dark:bg-[#1e1d1b]":"hover:bg-background"),children:[(0,n.jsx)("span",{className:"flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center rounded-md bg-border",onClick:()=>q(M.questionId,j),children:(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 text-muted-foreground"})}),z?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p.p,{type:"text",value:(null==(r=F[M.questionId])?void 0:r.customText)||"",onChange:e=>O(M.questionId,e.target.value),onKeyDown:e=>{if((0,b.P)(e)||"Enter"!==e.key||e.shiftKey||e.ctrlKey||e.metaKey||(e.preventDefault(),H||!G))return;let t=k.current+1;setTimeout(()=>D(t,"left"),200)},placeholder:w("somethingElse"),className:"flex-1 border-none bg-transparent text-[13px] text-foreground placeholder:italic placeholder:text-[#B4B2A9] shadow-none focus-visible:ring-0",autoFocus:!0}),!H&&(0,n.jsx)(f.$,{type:"button",variant:"ghost",size:"icon",onClick:()=>{if(H||!G)return;let e=k.current+1;setTimeout(()=>D(e,"left"),200)},disabled:!G,"aria-label":w("confirmAnswerAria"),className:"h-7 w-7 text-muted-foreground disabled:opacity-30",children:(0,n.jsx)(m.A,{className:"h-4 w-4"})})]}):(0,n.jsx)(f.$,{variant:"ghost",onClick:()=>q(M.questionId,j),className:"flex-1 justify-start text-left text-[13px] italic text-muted-foreground h-auto p-0 hover:bg-transparent",children:w("somethingElse")})]})]})]},y),_&&(0,n.jsx)("div",{className:"mt-3 rounded-lg bg-destructive/10 p-2.5 text-[12px] text-destructive",children:_}),(0,n.jsxs)("div",{className:"mt-3 flex items-center justify-between",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] text-[#B0B0B0]",children:[(0,n.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-primary"}),w("category.".concat(L))]}),(0,n.jsx)(f.$,{onClick:P,disabled:!B||I,className:"bg-primary hover:bg-[#B56A42] text-white text-[13px]",children:I?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(x.A,{className:"mr-2 h-3.5 w-3.5 animate-spin"}),w("submitting")]}):w("submitAnswers")})]})]})}},37706:(e,t,r)=>{r.d(t,{c:()=>a});var n=r(52217);let a=(0,n.createServerReference)("600cad89bd571cba117b4fcbef216c3c33a544a235",n.callServer,void 0,n.findSourceMapURL,"getTasksForProposalAction")},60640:(e,t,r)=>{r.d(t,{z:()=>a});var n=r(52217);let a=(0,n.createServerReference)("404bf1b2485c4c48ab8666572031cf0dd48bf7dafc",n.callServer,void 0,n.findSourceMapURL,"getElaborationAction")},78948:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},79015:(e,t,r)=>{r.d(t,{i:()=>S});var n=r(90508),a=r(1856),s=r(91814),l=r(39268),i=r(85226),o=r(30028),c=r(94903),d=r(22922),u=r(91385),m=r(17722),x=r(88064),f=r(41033),p=r(91846),g=r(78307),h=r(24900),v=r(6930),b=r(52217);let j=(0,b.createServerReference)("00b4cd1ca2a9cd8a798d7f569ff6d52c9a1d61ffdc",b.callServer,void 0,b.findSourceMapURL,"getPmAgentsAction"),N=(0,b.createServerReference)("609c30608c7a57c90fc289066cc6691b40d89813e5",b.callServer,void 0,b.findSourceMapURL,"getAgentInstancesAction"),w=(0,b.createServerReference)("4087e0dffcd73d092336134df7d700bef81d61b4e5",b.callServer,void 0,b.findSourceMapURL,"claimIdeaAction"),y=(0,b.createServerReference)("7020d05269c3cb866909186a204ba5a39d97661a6b",b.callServer,void 0,b.findSourceMapURL,"claimIdeaToAgentAction"),A=(0,b.createServerReference)("60e008393420cd5d2fa825641dca56dda1e6298a2f",b.callServer,void 0,b.findSourceMapURL,"claimIdeaToUserAction"),k=(0,b.createServerReference)("40849f5d9c526d87cb3e29e4b96e9524ac629f1975",b.callServer,void 0,b.findSourceMapURL,"releaseIdeaAction");function S(e){var t,r;let{idea:b,projectUuid:S,currentUserUuid:C,onClose:F}=e,U=(0,l.c)(),I=(0,s.r)(),[R,_]=(0,a.useState)(!1),[E,D]=(0,a.useState)("self"),[T,M]=(0,a.useState)(""),[L,q]=(0,a.useState)(""),[O,B]=(0,a.useState)([]),[P,$]=(0,a.useState)([]),[z,H]=(0,a.useState)(!0),[G,W]=(0,a.useState)(null),[J,K]=(0,a.useState)([]),[V,Z]=(0,a.useState)(!1),[Q,Y]=(0,a.useState)(null),[X,ee]=(0,a.useState)(null),et=!!b.assignee;(0,a.useEffect)(()=>{!async function(){H(!0);let e=await j();B(e.agents||[]),$((e.users||[]).filter(e=>e.uuid!==C)),H(!1)}()},[C]),(0,a.useEffect)(()=>{if("agent"!==E||!T){K([]),ee(null),Y(null);return}let e=!1;return Z(!0),ee(null),N(T,S).then(t=>{e||(K((0,g.C)(t.instances)),Y(t.resolvedTarget))}).finally(()=>{e||Z(!1)}),()=>{e=!0}},[S,E,T]);let er=null!=(r=J.find(e=>e.connectionUuid===X))?r:null,en=new Set(J.map(e=>e.host)).size>1,ea=async()=>{let e;if(_(!0),W(null),"self"===E)e=await w(b.uuid);else if("agent"===E&&T){var t;e=await y(b.uuid,T,null!=(t=null==er?void 0:er.agentInstanceUuid)?t:void 0)}else if("user"===E&&L)e=await A(b.uuid,L);else{if("release"!==E)return void _(!1);e=await k(b.uuid)}_(!1),(null==e?void 0:e.success)?(I.refresh(),F()):(null==e?void 0:e.error)&&W(e.error)},es="self"===E||"agent"===E&&T||"user"===E&&L||"release"===E&&et;return(0,n.jsxs)(m._8,{open:!0,onOpenChange:e=>{e||F()},className:"bg-card sm:max-w-[400px]",header:(0,n.jsx)(m.AI,{className:"text-base font-semibold text-foreground",children:U("ideas.assignIdea")}),footer:(0,n.jsxs)("div",{className:"flex w-full items-center justify-end gap-4",children:[(0,n.jsx)(d.$,{variant:"outline",onClick:F,disabled:R,className:"border-border",children:U("common.cancel")}),(0,n.jsx)(d.$,{onClick:ea,disabled:R||!es,className:"bg-primary hover:bg-[#B56A42] text-white",children:R?(0,n.jsx)(i.A,{className:"h-4 w-4 animate-spin"}):"release"===E?U("common.release"):function(){if("agent"!==E||!er)return U("common.assign");let e=(0,h.kn)(er.cwd),t=e.isUnknown?U(e.label):e.label,r=(0,h.g9)(er.host),n=r.isUnknown?U(r.label):r.label;return en?U("assignInstance.assignToWithHost",{path:t,host:n}):U("assignInstance.assignTo",{path:t})}()})]}),bodyClassName:"space-y-4",children:[et&&(0,n.jsx)("div",{className:"rounded-lg bg-[#E3F2FD] dark:bg-[#13253a] p-3",children:(0,n.jsxs)("p",{className:"text-xs text-[#1976D2] dark:text-[#5AA9F0]",children:[U("common.currentAssignee"),": ",(0,n.jsx)("span",{className:"font-medium",children:null==(t=b.assignee)?void 0:t.name})]})}),G&&(0,n.jsx)("div",{className:"rounded-lg bg-[#FEE2E2] dark:bg-[#331619] p-3",children:(0,n.jsx)("p",{className:"text-xs text-[#D32F2F] dark:text-[#F08078]",children:G})}),(0,n.jsx)("p",{className:"text-[13px] text-muted-foreground",children:U("ideas.selectIdeaAssignee")}),z?(0,n.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,n.jsx)(i.A,{className:"h-6 w-6 animate-spin text-[#9A9A9A]"})}):(0,n.jsxs)(f.z,{value:E,onValueChange:e=>D(e),className:"space-y-3",children:[(0,n.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors cursor-pointer ".concat("self"===E?"bg-[#FDF8F6] dark:bg-[#201d1b] border-2 border-primary":"bg-card border border-border hover:border-primary/50"),onClick:()=>D("self"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,n.jsx)(f.C,{value:"self",id:"idea-self",className:"border-primary text-primary"}),(0,n.jsx)(x.J,{htmlFor:"idea-self",className:"text-sm font-medium text-foreground cursor-pointer",children:U("assign.assignToMyself")})]}),(0,n.jsx)("p",{className:"mt-2 ml-6 text-xs text-muted-foreground leading-relaxed",children:U("ideas.assignToMyselfIdeaDesc")})]}),(0,n.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors ".concat("agent"===E?"bg-[#FDF8F6] dark:bg-[#201d1b] border-2 border-primary":"bg-card border border-border"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2.5 cursor-pointer",onClick:()=>D("agent"),children:[(0,n.jsx)(f.C,{value:"agent",id:"idea-agent",className:"border-primary text-primary"}),(0,n.jsx)(x.J,{htmlFor:"idea-agent",className:"text-sm font-medium text-foreground cursor-pointer",children:U("ideas.orAssignToPmAgent")})]}),(0,n.jsx)("p",{className:"mt-2 ml-6 text-xs text-muted-foreground leading-relaxed",children:U("ideas.onlySelectedPmAgentCanWork")}),"agent"===E&&(0,n.jsxs)("div",{className:"mt-3 ml-6 space-y-3",children:[(0,n.jsxs)(p.l6,{value:T,onValueChange:M,children:[(0,n.jsx)(p.bq,{className:"w-full border-border",children:(0,n.jsx)(p.yv,{placeholder:U("ideas.selectPmAgent")})}),(0,n.jsx)(p.gC,{className:"z-[120]",children:O.length>0?O.map(e=>(0,n.jsx)(p.eb,{value:e.uuid,children:(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(u.AgentAvatar,{name:e.name,size:16,className:"rounded-full"}),(0,n.jsx)("span",{children:e.name})]})},e.uuid)):(0,n.jsx)("div",{className:"px-3 py-2 text-xs text-[#9A9A9A]",children:U("ideas.noPmAgentsAvailable")})})]}),T&&(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:U("assignInstance.workingDirectory")}),V?(0,n.jsxs)("div",{className:"flex items-center gap-2 py-2 text-xs text-[#9A9A9A]",children:[(0,n.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}),U("assignInstance.loadingInstances")]}):(null==Q?void 0:Q.source)==="project_fixed"?(0,n.jsx)(v.Y,{target:Q}):0===J.length?(0,n.jsx)("p",{className:"rounded-lg bg-background p-2.5 text-[11px] leading-relaxed text-muted-foreground",children:U("assignInstance.noInstances")}):(0,n.jsx)(g.O,{instances:J,selectedConnectionUuid:X,onSelect:e=>ee(e.connectionUuid),ariaLabel:U("assignInstance.workingDirectory")}),(null==Q?void 0:Q.source)!=="project_fixed"&&(0,n.jsxs)("div",{className:"flex items-start gap-1.5 text-[11px] leading-relaxed text-[#9A8C7E]",children:[(0,n.jsx)(o.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,n.jsx)("span",{children:U("assignInstance.ideaPinNote")})]})]})]})]}),(0,n.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors ".concat("user"===E?"bg-[#FDF8F6] dark:bg-[#201d1b] border-2 border-primary":"bg-card border border-border"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2.5 cursor-pointer",onClick:()=>D("user"),children:[(0,n.jsx)(f.C,{value:"user",id:"idea-user",className:"border-primary text-primary"}),(0,n.jsx)(x.J,{htmlFor:"idea-user",className:"text-sm font-medium text-foreground cursor-pointer",children:U("assign.orAssignToUser")})]}),"user"===E&&(0,n.jsx)("div",{className:"mt-3 ml-6",children:(0,n.jsxs)(p.l6,{value:L,onValueChange:q,children:[(0,n.jsx)(p.bq,{className:"w-full border-border",children:(0,n.jsx)(p.yv,{placeholder:U("tasks.selectUser")})}),(0,n.jsx)(p.gC,{className:"z-[120]",children:P.length>0?P.map(e=>(0,n.jsx)(p.eb,{value:e.uuid,children:(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(c.A,{className:"h-4 w-4 text-muted-foreground"}),(0,n.jsx)("span",{children:e.name||e.email})]})},e.uuid)):(0,n.jsx)("div",{className:"px-3 py-2 text-xs text-[#9A9A9A]",children:U("tasks.noUsersAvailable")})})]})})]}),et&&(0,n.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors cursor-pointer ".concat("release"===E?"bg-[#FDF8F6] dark:bg-[#201d1b] border-2 border-primary":"bg-card border border-border hover:border-primary/50"),onClick:()=>D("release"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,n.jsx)(f.C,{value:"release",id:"idea-release",className:"border-primary text-primary"}),(0,n.jsx)(x.J,{htmlFor:"idea-release",className:"text-sm font-medium text-foreground cursor-pointer",children:U("assign.releaseAssignee")})]}),(0,n.jsx)("p",{className:"mt-2 ml-6 text-xs text-muted-foreground leading-relaxed",children:U("ideas.releaseIdeaAssigneeDesc")})]})]})]})}},84247:(e,t,r)=>{r.d(t,{Separator:()=>l});var n=r(90508);r(1856);var a=r(5725),s=r(24377);function l(e){let{className:t,orientation:r="horizontal",decorative:l=!0,...i}=e;return(0,n.jsx)(a.b,{"data-slot":"separator",decorative:l,orientation:r,className:(0,s.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...i})}},95900:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("arrow-right-left",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]])}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[67580],{5616:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},6493:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("file-spreadsheet",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]])},6841:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("file-type",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11 18h2",key:"12mj7e"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5",key:"qbrxap"}]])},15044:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]])},15584:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]])},45841:(e,t,r)=>{r.r(t),r.d(t,{Arrow:()=>W,Content:()=>U,Portal:()=>Y,Provider:()=>G,Root:()=>X,Tooltip:()=>A,TooltipArrow:()=>q,TooltipContent:()=>S,TooltipPortal:()=>D,TooltipProvider:()=>T,TooltipTrigger:()=>L,Trigger:()=>F,createTooltipScope:()=>k});var n=r(1856),o=r(33328),a=r(34124),l=r(21032),i=r(63569),s=r(40577),c=r(67221),u=r(17533),d=r(19900),p=r(93367),h=r(54154),y=r(66249),f=r(78134),v=r(90508),[x,k]=(0,l.A)("Tooltip",[c.Bk]),g=(0,c.Bk)(),b="TooltipProvider",w="tooltip.open",[m,C]=x(b),T=e=>{let{__scopeTooltip:t,delayDuration:r=700,skipDelayDuration:o=300,disableHoverableContent:a=!1,children:l}=e,i=n.useRef(!0),s=n.useRef(!1),c=n.useRef(0);return n.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,v.jsx)(m,{scope:t,isOpenDelayedRef:i,delayDuration:r,onOpen:n.useCallback(()=>{window.clearTimeout(c.current),i.current=!1},[]),onClose:n.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.current=!0,o)},[o]),isPointerInTransitRef:s,onPointerInTransitChange:n.useCallback(e=>{s.current=e},[]),disableHoverableContent:a,children:l})};T.displayName=b;var M="Tooltip",[j,E]=x(M),A=e=>{let{__scopeTooltip:t,children:r,open:o,defaultOpen:a,onOpenChange:l,disableHoverableContent:i,delayDuration:u}=e,d=C(M,e.__scopeTooltip),p=g(t),[h,f]=n.useState(null),x=(0,s.B)(),k=n.useRef(0),b=null!=i?i:d.disableHoverableContent,m=null!=u?u:d.delayDuration,T=n.useRef(!1),[E,A]=(0,y.i)({prop:o,defaultProp:null!=a&&a,onChange:e=>{e?(d.onOpen(),document.dispatchEvent(new CustomEvent(w))):d.onClose(),null==l||l(e)},caller:M}),R=n.useMemo(()=>E?T.current?"delayed-open":"instant-open":"closed",[E]),L=n.useCallback(()=>{window.clearTimeout(k.current),k.current=0,T.current=!1,A(!0)},[A]),P=n.useCallback(()=>{window.clearTimeout(k.current),k.current=0,A(!1)},[A]),_=n.useCallback(()=>{window.clearTimeout(k.current),k.current=window.setTimeout(()=>{T.current=!0,A(!0),k.current=0},m)},[m,A]);return n.useEffect(()=>()=>{k.current&&(window.clearTimeout(k.current),k.current=0)},[]),(0,v.jsx)(c.bL,{...p,children:(0,v.jsx)(j,{scope:t,contentId:x,open:E,stateAttribute:R,trigger:h,onTriggerChange:f,onTriggerEnter:n.useCallback(()=>{d.isOpenDelayedRef.current?_():L()},[d.isOpenDelayedRef,_,L]),onTriggerLeave:n.useCallback(()=>{b?P():(window.clearTimeout(k.current),k.current=0)},[P,b]),onOpen:L,onClose:P,disableHoverableContent:b,children:r})})};A.displayName=M;var R="TooltipTrigger",L=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...l}=e,i=E(R,r),s=C(R,r),u=g(r),d=n.useRef(null),h=(0,a.s)(t,d,i.onTriggerChange),y=n.useRef(!1),f=n.useRef(!1),x=n.useCallback(()=>y.current=!1,[]);return n.useEffect(()=>()=>document.removeEventListener("pointerup",x),[x]),(0,v.jsx)(c.Mz,{asChild:!0,...u,children:(0,v.jsx)(p.sG.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...l,ref:h,onPointerMove:(0,o.mK)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(f.current||s.isPointerInTransitRef.current||(i.onTriggerEnter(),f.current=!0))}),onPointerLeave:(0,o.mK)(e.onPointerLeave,()=>{i.onTriggerLeave(),f.current=!1}),onPointerDown:(0,o.mK)(e.onPointerDown,()=>{i.open&&i.onClose(),y.current=!0,document.addEventListener("pointerup",x,{once:!0})}),onFocus:(0,o.mK)(e.onFocus,()=>{y.current||i.onOpen()}),onBlur:(0,o.mK)(e.onBlur,i.onClose),onClick:(0,o.mK)(e.onClick,i.onClose)})})});L.displayName=R;var P="TooltipPortal",[_,z]=x(P,{forceMount:void 0}),D=e=>{let{__scopeTooltip:t,forceMount:r,children:n,container:o}=e,a=E(P,t);return(0,v.jsx)(_,{scope:t,forceMount:r,children:(0,v.jsx)(d.C,{present:r||a.open,children:(0,v.jsx)(u.Portal,{asChild:!0,container:o,children:n})})})};D.displayName=P;var N="TooltipContent",S=n.forwardRef((e,t)=>{let r=z(N,e.__scopeTooltip),{forceMount:n=r.forceMount,side:o="top",...a}=e,l=E(N,e.__scopeTooltip);return(0,v.jsx)(d.C,{present:n||l.open,children:l.disableHoverableContent?(0,v.jsx)(K,{side:o,...a,ref:t}):(0,v.jsx)(I,{side:o,...a,ref:t})})}),I=n.forwardRef((e,t)=>{let r=E(N,e.__scopeTooltip),o=C(N,e.__scopeTooltip),l=n.useRef(null),i=(0,a.s)(t,l),[s,c]=n.useState(null),{trigger:u,onClose:d}=r,p=l.current,{onPointerInTransitChange:h}=o,y=n.useCallback(()=>{c(null),h(!1)},[h]),f=n.useCallback((e,t)=>{let r=e.currentTarget,n={x:e.clientX,y:e.clientY},o=function(e,t){let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(r,n,o,a)){case a:return"left";case o:return"right";case r:return"top";case n:return"bottom";default:throw Error("unreachable")}}(n,r.getBoundingClientRect());c(function(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r<e.length;r++){let n=e[r];for(;t.length>=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(n.y-r.y)>=(e.y-r.y)*(n.x-r.x))t.pop();else break}t.push(n)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let n=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(n.y-t.y)>=(e.y-t.y)*(n.x-t.x))r.pop();else break}r.push(n)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(t)}([...function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return n}(n,o),...function(e){let{top:t,right:r,bottom:n,left:o}=e;return[{x:o,y:t},{x:r,y:t},{x:r,y:n},{x:o,y:n}]}(t.getBoundingClientRect())])),h(!0)},[h]);return n.useEffect(()=>()=>y(),[y]),n.useEffect(()=>{if(u&&p){let e=e=>f(e,p),t=e=>f(e,u);return u.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{u.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[u,p,f,y]),n.useEffect(()=>{if(s){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},n=(null==u?void 0:u.contains(t))||(null==p?void 0:p.contains(t)),o=!function(e,t){let{x:r,y:n}=e,o=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let l=t[e],i=t[a],s=l.x,c=l.y,u=i.x,d=i.y;c>n!=d>n&&r<(u-s)*(n-c)/(d-c)+s&&(o=!o)}return o}(r,s);n?y():o&&(y(),d())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[u,p,s,d,y]),(0,v.jsx)(K,{...e,ref:i})}),[O,H]=x(M,{isInside:!1}),B=(0,h.Dc)("TooltipContent"),K=n.forwardRef((e,t)=>{let{__scopeTooltip:r,children:o,"aria-label":a,onEscapeKeyDown:l,onPointerDownOutside:s,...u}=e,d=E(N,r),p=g(r),{onClose:h}=d;return n.useEffect(()=>(document.addEventListener(w,h),()=>document.removeEventListener(w,h)),[h]),n.useEffect(()=>{if(d.trigger){let e=e=>{let t=e.target;(null==t?void 0:t.contains(d.trigger))&&h()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[d.trigger,h]),(0,v.jsx)(i.qW,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:h,children:(0,v.jsxs)(c.UC,{"data-state":d.stateAttribute,...p,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,v.jsx)(B,{children:o}),(0,v.jsx)(O,{scope:r,isInside:!0,children:(0,v.jsx)(f.bL,{id:d.contentId,role:"tooltip",children:a||o})})]})})});S.displayName=N;var V="TooltipArrow",q=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...n}=e,o=g(r);return H(V,r).isInside?null:(0,v.jsx)(c.i3,{...o,...n,ref:t})});q.displayName=V;var G=T,X=A,F=L,Y=D,U=S,W=q},58057:(e,t,r)=>{r.r(t),r.d(t,{Label:()=>l,Root:()=>i});var n=r(1856),o=r(93367),a=r(90508),l=n.forwardRef((e,t)=>(0,a.jsx)(o.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null==(r=e.onMouseDown)||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));l.displayName="Label";var i=l},59551:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]])},60322:(e,t,r)=>{r.r(t),r.d(t,{Root:()=>m,Switch:()=>x,SwitchThumb:()=>g,Thumb:()=>C,createSwitchScope:()=>y});var n=r(1856),o=r(33328),a=r(34124),l=r(21032),i=r(66249),s=r(72009),c=r(3705),u=r(93367),d=r(90508),p="Switch",[h,y]=(0,l.A)(p),[f,v]=h(p),x=n.forwardRef((e,t)=>{let{__scopeSwitch:r,name:l,checked:s,defaultChecked:c,required:h,disabled:y,value:v="on",onCheckedChange:x,form:k,...g}=e,[m,C]=n.useState(null),T=(0,a.s)(t,e=>C(e)),M=n.useRef(!1),j=!m||k||!!m.closest("form"),[E,A]=(0,i.i)({prop:s,defaultProp:null!=c&&c,onChange:x,caller:p});return(0,d.jsxs)(f,{scope:r,checked:E,disabled:y,children:[(0,d.jsx)(u.sG.button,{type:"button",role:"switch","aria-checked":E,"aria-required":h,"data-state":w(E),"data-disabled":y?"":void 0,disabled:y,value:v,...g,ref:T,onClick:(0,o.mK)(e.onClick,e=>{A(e=>!e),j&&(M.current=e.isPropagationStopped(),M.current||e.stopPropagation())})}),j&&(0,d.jsx)(b,{control:m,bubbles:!M.current,name:l,value:v,checked:E,required:h,disabled:y,form:k,style:{transform:"translateX(-100%)"}})]})});x.displayName=p;var k="SwitchThumb",g=n.forwardRef((e,t)=>{let{__scopeSwitch:r,...n}=e,o=v(k,r);return(0,d.jsx)(u.sG.span,{"data-state":w(o.checked),"data-disabled":o.disabled?"":void 0,...n,ref:t})});g.displayName=k;var b=n.forwardRef((e,t)=>{let{__scopeSwitch:r,control:o,checked:l,bubbles:i=!0,...u}=e,p=n.useRef(null),h=(0,a.s)(p,t),y=(0,s.Z)(l),f=(0,c.X)(o);return n.useEffect(()=>{let e=p.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(y!==l&&t){let r=new Event("click",{bubbles:i});t.call(e,l),e.dispatchEvent(r)}},[y,l,i]),(0,d.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:l,...u,tabIndex:-1,ref:h,style:{...u.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function w(e){return e?"checked":"unchecked"}b.displayName="SwitchBubbleInput";var m=x,C=g},71921:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).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"}]])},75320:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).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"}]])},78853:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(66206).A)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]])}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7777],{38280:(e,t,a)=>{a.d(t,{Dj:()=>r,gl:()=>n,sB:()=>l});let s=[{bg:"#F5C4B3",text:"#712B13",darkBg:"#4a2a1e",darkText:"#F5C4B3"},{bg:"#FAC775",text:"#633806",darkBg:"#4a3a1a",darkText:"#FAD79B"},{bg:"#CECBF6",text:"#3C3489",darkBg:"#2f2c52",darkText:"#CECBF6"},{bg:"#B5D4F4",text:"#0C447C",darkBg:"#1e3450",darkText:"#B5D4F4"},{bg:"#C0DD97",text:"#27500A",darkBg:"#2c3d1c",darkText:"#C0DD97"},{bg:"#9FE1CB",text:"#085041",darkBg:"#183d34",darkText:"#9FE1CB"},{bg:"#F4C0D1",text:"#72243E",darkBg:"#48242f",darkText:"#F4C0D1"},{bg:"#FADBB5",text:"#6B3A10",darkBg:"#463421",darkText:"#FADBB5"}];function r(e){let t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}function n(e){let t=0;for(let a=0;a<e.length;a++)t=e.charCodeAt(a)+((t<<5)-t);return s[Math.abs(t)%s.length]}function l(e){return{"--icon-bg":e.bg,"--icon-text":e.text,"--icon-bg-dark":e.darkBg,"--icon-text-dark":e.darkText}}},70481:(e,t,a)=>{a.d(t,{O:()=>p});var s=a(90508),r=a(1856),n=a(39268),l=a(85226),i=a(59133),d=a(30366),o=a(97413),c=a(91385),u=a(22922),x=a(41837);let p=(0,r.forwardRef)(function(e,t){let{projectUuid:a,agentError:p}=e,g=(0,n.c)(),[m,j]=(0,r.useState)([]),[h,f]=(0,r.useState)({}),[b,v]=(0,r.useState)(new Set),[N,C]=(0,r.useState)(!0),[w,k]=(0,r.useState)(null),[y,S]=(0,r.useState)(!1),[B,E]=(0,r.useState)({}),D=(0,r.useCallback)(async()=>{C(!0),S(!1);try{let e=await fetch(a?"/api/projects/".concat(encodeURIComponent(a),"/agent-cwds"):"/api/projects/agent-cwd-options"),t=await e.json();if(!e.ok||!t.success)throw Error("load failed");j(t.data.agents)}catch(e){S(!0)}finally{C(!1)}},[a]);(0,r.useEffect)(()=>{D()},[D]);let T=(e,t)=>{f(e),v(t)};return(0,r.useImperativeHandle)(t,()=>({validate:async()=>{let e=[];for(let t of Object.values(h))try{let a=await (0,x.q)(t);e.push(a),f(e=>({...e,[t.agentUuid]:a}))}catch(a){let e=a instanceof Error?a.message:"INTERNAL_ERROR";return E(a=>({...a,[t.agentUuid]:g("directoryBrowser.errors.".concat(e))})),k(t.agentUuid),null}return{upserts:e,clears:[...b]}}}),[b,h,g]),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-[14px] font-semibold text-foreground",children:g("projectSettings.agentCwds.title")}),(0,s.jsx)("p",{className:"mt-1 text-[12px] text-muted-foreground",children:g("projectSettings.agentCwds.description")})]}),N&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,s.jsx)(l.A,{className:"size-4 animate-spin"}),g("projectSettings.agentCwds.loading")]}),y&&(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",role:"alert",children:[(0,s.jsx)("span",{className:"text-xs text-destructive",children:g("projectSettings.agentCwds.loadFailed")}),(0,s.jsxs)(u.$,{type:"button",size:"sm",variant:"outline",onClick:()=>void D(),children:[(0,s.jsx)(i.A,{className:"mr-2 size-3.5"}),g("common.retry")]})]}),!N&&!y&&0===m.length&&(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:g("projectSettings.agentCwds.emptyOnline")}),m.map(e=>{let t=h[e.agent.uuid],r=b.has(e.agent.uuid)?null:t?{host:t.host,cwd:t.cwd,status:"valid"}:e.preference;return(0,s.jsxs)("div",{className:"min-w-0 rounded-lg border border-border p-4",children:[(0,s.jsxs)("div",{className:"flex min-w-0 items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"flex min-w-0 items-start gap-2.5",children:[(0,s.jsx)(c.AgentAvatar,{name:e.agent.name,size:"sm",className:"mt-0.5 rounded-md"}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"truncate text-[13px] font-semibold",children:e.agent.name}),r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"mt-1 break-all font-mono text-[11px]",children:r.cwd}),(0,s.jsx)("p",{className:"mt-1 truncate text-[11px] text-muted-foreground",children:r.host}),(0,s.jsx)("p",{className:"valid"===r.status?"mt-1 text-[11px] text-emerald-700 dark:text-emerald-400":"mt-1 text-[11px] text-destructive",children:g("projectSettings.agentCwds.status.".concat(r.status))})]}):(0,s.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:g("projectSettings.agentCwds.notConfigured")})]})]}),(0,s.jsxs)("div",{className:"flex shrink-0 gap-1",children:[(0,s.jsx)(u.$,{type:"button",size:"icon",variant:"ghost",title:g(r?"projectSettings.agentCwds.replace":"projectSettings.agentCwds.configure"),"aria-label":g(r?"projectSettings.agentCwds.replace":"projectSettings.agentCwds.configure"),onClick:()=>k(w===e.agent.uuid?null:e.agent.uuid),children:(0,s.jsx)(d.A,{className:"size-4"})}),r&&(0,s.jsx)(u.$,{type:"button",size:"icon",variant:"ghost",className:"text-destructive",title:g("projectSettings.agentCwds.clear"),"aria-label":g("projectSettings.agentCwds.clear"),onClick:()=>(e=>{let t={...h};delete t[e];let s=new Set(b);a&&s.add(e),T(t,s)})(e.agent.uuid),children:(0,s.jsx)(o.A,{className:"size-4"})})]})]}),w===e.agent.uuid&&(0,s.jsxs)("div",{className:"mt-4 border-t border-border pt-4",children:[(0,s.jsx)(x.e,{agentUuid:e.agent.uuid,instances:e.onlineInstances,showConfirm:!1,onValidated:()=>void 0,onSelectionChange:t=>((e,t)=>{if(!e)return;let a=new Set(b);a.delete(t),T({...h,[t]:e},a),E(e=>{let a={...e};return delete a[t],a})})(t,e.agent.uuid)}),(B[e.agent.uuid]||(null==p?void 0:p.agentUuid)===e.agent.uuid)&&(0,s.jsx)("p",{className:"mt-2 text-xs text-destructive",role:"alert",children:B[e.agent.uuid]||(null==p?void 0:p.message)})]}),w!==e.agent.uuid&&(null==p?void 0:p.agentUuid)===e.agent.uuid&&(0,s.jsx)("p",{className:"mt-2 text-xs text-destructive",role:"alert",children:p.message})]},e.agent.uuid)})]})})},88064:(e,t,a)=>{a.d(t,{J:()=>l});var s=a(90508);a(1856);var r=a(58057),n=a(24377);function l(e){let{className:t,...a}=e;return(0,s.jsx)(r.Root,{"data-slot":"label",className:(0,n.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...a})}},88738:(e,t,a)=>{a.d(t,{C:()=>b});var s=a(90508),r=a(1856),n=a(91814),l=a(39268),i=a(67103),d=a(16544),o=a(60532),c=a(85226),u=a(5616),x=a(97438),p=a(22922),g=a(14554),m=a(88064),j=a(15972),h=a(42305),f=a(70481);function b(e){let{open:t,onOpenChange:a,groupUuid:b,groupName:v,onCreated:N}=e,C=(0,l.c)(),w=(0,n.r)(),[k,y]=(0,r.useTransition)(),[S,B]=(0,r.useState)(""),[E,D]=(0,r.useState)(""),[T,A]=(0,r.useState)(null),[F,U]=(0,r.useState)(null),[P,G]=(0,r.useState)(!1),z=(0,r.useRef)(null),O=v||C("projectGroups.ungrouped"),R=async()=>{var e;if(!S.trim())return;A(null),U(null);let t=await (null==(e=z.current)?void 0:e.validate());t&&y(async()=>{try{let s=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:S.trim(),description:E.trim()||void 0,groupUuid:b||void 0,agentCwds:t.upserts.map(e=>{let{agentUuid:t,validationRequestUuid:a}=e;return{agentUuid:t,validationRequestUuid:a}})})}),r=await s.json();if(r.success)G(!0),setTimeout(()=>{B(""),D(""),a(!1),null==N||N(),w.refresh(),G(!1)},600);else{var e;let t="object"==typeof r.error&&r.error?r.error.message:r.error,a="object"==typeof r.error&&r.error&&"string"==typeof(null==(e=r.error.details)?void 0:e.agentUuid)?r.error.details.agentUuid:null;a?U({agentUuid:a,message:t||C("projects.createFailed")}):A(t||C("projects.createFailed"))}}catch(e){A(C("common.genericError"))}})};return(0,s.jsx)(x.lG,{open:t,onOpenChange:a,children:(0,s.jsxs)(x.Cf,{className:"flex max-h-[90svh] flex-col gap-0 overflow-hidden rounded-[16px] p-0 sm:max-w-[620px]",showCloseButton:!1,children:[(0,s.jsx)(x.c7,{className:"flex flex-row items-center justify-between p-[20px_24px] border-b border-[#E5E2DC] dark:border-[#2a2a2e]",children:(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)(x.L3,{className:"text-lg font-semibold tracking-[-0.3px] text-foreground",children:C("projectGroups.newProjectTitle")}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:C("projectGroups.creatingIn",{groupName:O})})]})}),(0,s.jsx)(x.rr,{className:"sr-only",children:C("projectGroups.newProjectTitle")}),(0,s.jsxs)("div",{className:"flex min-h-0 flex-col gap-5 overflow-y-auto p-6",children:[T&&(0,s.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:T}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)(m.J,{className:"text-[13px] font-medium text-foreground",children:C("projectGroups.projectTitle")}),(0,s.jsx)(g.p,{value:S,onChange:e=>B(e.target.value),placeholder:C("projectGroups.projectTitlePlaceholder"),className:"h-10 rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e]",onKeyDown:e=>{!(0,h.P)(e)&&"Enter"===e.key&&S.trim()&&R()}})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)(m.J,{className:"text-[13px] font-medium text-foreground",children:C("common.description")}),(0,s.jsx)(j.T,{value:E,onChange:e=>D(e.target.value),placeholder:C("projectGroups.projectDescriptionPlaceholder"),className:"min-h-[80px] rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e]"})]}),(0,s.jsx)("div",{className:"border-t border-border pt-5",children:(0,s.jsx)(f.O,{ref:z,agentError:F})})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-3 p-[16px_24px] border-t border-[#E5E2DC] dark:border-[#2a2a2e]",children:[(0,s.jsx)(p.$,{variant:"outline",onClick:()=>a(!1),className:"rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e] text-[13px]",children:C("common.cancel")}),(0,s.jsx)(p.$,{onClick:R,disabled:k||P||!S.trim(),className:"rounded-lg bg-primary hover:bg-[#B56A42] text-white text-[13px] gap-1.5",children:(0,s.jsx)(i.N,{mode:"wait",children:P?(0,s.jsx)(d.P.span,{initial:{opacity:0,scale:.5},animate:{opacity:1,scale:1},exit:{opacity:0},transition:{duration:.15},className:"flex items-center gap-2",children:(0,s.jsx)(o.A,{className:"h-3.5 w-3.5"})},"success"):k?(0,s.jsxs)(d.P.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"flex items-center gap-2",children:[(0,s.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}),C("common.creating")]},"loading"):(0,s.jsxs)(d.P.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"flex items-center gap-2",children:[(0,s.jsx)(u.A,{className:"h-3.5 w-3.5"}),C("projectGroups.createProject")]},"idle")})})]})]})})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[78155],{5616:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},9160:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},17730:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},36557:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]])},57472:(e,t,a)=>{a.d(t,{A:()=>o});var r=a(12079),n=a(90508);function o(e){let{locale:t,...a}=e;if(!t)throw Error(void 0);return(0,n.jsx)(r.Dk,{locale:t,...a})}},57893:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},58057:(e,t,a)=>{a.r(t),a.d(t,{Label:()=>l,Root:()=>d});var r=a(1856),n=a(93367),o=a(90508),l=r.forwardRef((e,t)=>(0,o.jsx)(n.sG.label,{...e,ref:t,onMouseDown:t=>{var a;t.target.closest("button, input, select, textarea")||(null==(a=e.onMouseDown)||a.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));l.displayName="Label";var d=l},60322:(e,t,a)=>{a.r(t),a.d(t,{Root:()=>A,Switch:()=>y,SwitchThumb:()=>m,Thumb:()=>g,createSwitchScope:()=>b});var r=a(1856),n=a(33328),o=a(34124),l=a(21032),d=a(66249),i=a(72009),s=a(3705),c=a(93367),u=a(90508),h="Switch",[p,b]=(0,l.A)(h),[f,k]=p(h),y=r.forwardRef((e,t)=>{let{__scopeSwitch:a,name:l,checked:i,defaultChecked:s,required:p,disabled:b,value:k="on",onCheckedChange:y,form:v,...m}=e,[A,g]=r.useState(null),C=(0,o.s)(t,e=>g(e)),j=r.useRef(!1),M=!A||v||!!A.closest("form"),[R,E]=(0,d.i)({prop:i,defaultProp:null!=s&&s,onChange:y,caller:h});return(0,u.jsxs)(f,{scope:a,checked:R,disabled:b,children:[(0,u.jsx)(c.sG.button,{type:"button",role:"switch","aria-checked":R,"aria-required":p,"data-state":w(R),"data-disabled":b?"":void 0,disabled:b,value:k,...m,ref:C,onClick:(0,n.mK)(e.onClick,e=>{E(e=>!e),M&&(j.current=e.isPropagationStopped(),j.current||e.stopPropagation())})}),M&&(0,u.jsx)(x,{control:A,bubbles:!j.current,name:l,value:k,checked:R,required:p,disabled:b,form:v,style:{transform:"translateX(-100%)"}})]})});y.displayName=h;var v="SwitchThumb",m=r.forwardRef((e,t)=>{let{__scopeSwitch:a,...r}=e,n=k(v,a);return(0,u.jsx)(c.sG.span,{"data-state":w(n.checked),"data-disabled":n.disabled?"":void 0,...r,ref:t})});m.displayName=v;var x=r.forwardRef((e,t)=>{let{__scopeSwitch:a,control:n,checked:l,bubbles:d=!0,...c}=e,h=r.useRef(null),p=(0,o.s)(h,t),b=(0,i.Z)(l),f=(0,s.X)(n);return r.useEffect(()=>{let e=h.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(b!==l&&t){let a=new Event("click",{bubbles:d});t.call(e,l),e.dispatchEvent(a)}},[b,l,d]),(0,u.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:l,...c,tabIndex:-1,ref:p,style:{...c.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function w(e){return e?"checked":"unchecked"}x.displayName="SwitchBubbleInput";var A=y,g=m},60532:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},75320:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).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"}]])},78948:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},79834:(e,t,a)=>{a.r(t),a.d(t,{Content:()=>D,List:()=>T,Root:()=>E,Tabs:()=>m,TabsContent:()=>j,TabsList:()=>w,TabsTrigger:()=>g,Trigger:()=>I,createTabsScope:()=>f});var r=a(1856),n=a(33328),o=a(21032),l=a(94782),d=a(19900),i=a(93367),s=a(72599),c=a(66249),u=a(40577),h=a(90508),p="Tabs",[b,f]=(0,o.A)(p,[l.RG]),k=(0,l.RG)(),[y,v]=b(p),m=r.forwardRef((e,t)=>{let{__scopeTabs:a,value:r,onValueChange:n,defaultValue:o,orientation:l="horizontal",dir:d,activationMode:b="automatic",...f}=e,k=(0,s.jH)(d),[v,m]=(0,c.i)({prop:r,onChange:n,defaultProp:null!=o?o:"",caller:p});return(0,h.jsx)(y,{scope:a,baseId:(0,u.B)(),value:v,onValueChange:m,orientation:l,dir:k,activationMode:b,children:(0,h.jsx)(i.sG.div,{dir:k,"data-orientation":l,...f,ref:t})})});m.displayName=p;var x="TabsList",w=r.forwardRef((e,t)=>{let{__scopeTabs:a,loop:r=!0,...n}=e,o=v(x,a),d=k(a);return(0,h.jsx)(l.bL,{asChild:!0,...d,orientation:o.orientation,dir:o.dir,loop:r,children:(0,h.jsx)(i.sG.div,{role:"tablist","aria-orientation":o.orientation,...n,ref:t})})});w.displayName=x;var A="TabsTrigger",g=r.forwardRef((e,t)=>{let{__scopeTabs:a,value:r,disabled:o=!1,...d}=e,s=v(A,a),c=k(a),u=M(s.baseId,r),p=R(s.baseId,r),b=r===s.value;return(0,h.jsx)(l.q7,{asChild:!0,...c,focusable:!o,active:b,children:(0,h.jsx)(i.sG.button,{type:"button",role:"tab","aria-selected":b,"aria-controls":p,"data-state":b?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:u,...d,ref:t,onMouseDown:(0,n.mK)(e.onMouseDown,e=>{o||0!==e.button||!1!==e.ctrlKey?e.preventDefault():s.onValueChange(r)}),onKeyDown:(0,n.mK)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&s.onValueChange(r)}),onFocus:(0,n.mK)(e.onFocus,()=>{let e="manual"!==s.activationMode;b||o||!e||s.onValueChange(r)})})})});g.displayName=A;var C="TabsContent",j=r.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,forceMount:o,children:l,...s}=e,c=v(C,a),u=M(c.baseId,n),p=R(c.baseId,n),b=n===c.value,f=r.useRef(b);return r.useEffect(()=>{let e=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,h.jsx)(d.C,{present:o||b,children:a=>{let{present:r}=a;return(0,h.jsx)(i.sG.div,{"data-state":b?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":u,hidden:!r,id:p,tabIndex:0,...s,ref:t,style:{...e.style,animationDuration:f.current?"0s":void 0},children:r&&l})}})});function M(e,t){return"".concat(e,"-trigger-").concat(t)}function R(e,t){return"".concat(e,"-content-").concat(t)}j.displayName=C;var E=m,T=w,I=g,D=j},81149:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},81235:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).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"}]])},84052:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]])},85619:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]])},89967:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},97645:(e,t,a)=>{a.d(t,{A:()=>r});let r=(0,a(66206).A)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]])},98861:(e,t,a)=>{a.r(t),a.d(t,{Checkbox:()=>w,CheckboxIndicator:()=>g,Indicator:()=>g,Root:()=>w,createCheckboxScope:()=>f,unstable_BubbleInput:()=>j,unstable_CheckboxBubbleInput:()=>j,unstable_CheckboxProvider:()=>v,unstable_CheckboxTrigger:()=>x,unstable_Provider:()=>v,unstable_Trigger:()=>x});var r=a(1856),n=a(34124),o=a(21032),l=a(33328),d=a(66249),i=a(72009),s=a(3705),c=a(19900),u=a(93367),h=a(90508),p="Checkbox",[b,f]=(0,o.A)(p),[k,y]=b(p);function v(e){let{__scopeCheckbox:t,checked:a,children:n,defaultChecked:o,disabled:l,form:i,name:s,onCheckedChange:c,required:u,value:b="on",internal_do_not_use_render:f}=e,[y,v]=(0,d.i)({prop:a,defaultProp:null!=o&&o,onChange:c,caller:p}),[m,x]=r.useState(null),[w,A]=r.useState(null),g=r.useRef(!1),C=!m||!!i||!!m.closest("form"),j={checked:y,disabled:l,setChecked:v,control:m,setControl:x,name:s,form:i,value:b,hasConsumerStoppedPropagationRef:g,required:u,defaultChecked:!M(o)&&o,isFormControl:C,bubbleInput:w,setBubbleInput:A};return(0,h.jsx)(k,{scope:t,...j,children:"function"==typeof f?f(j):n})}var m="CheckboxTrigger",x=r.forwardRef((e,t)=>{let{__scopeCheckbox:a,onKeyDown:o,onClick:d,...i}=e,{control:s,value:c,disabled:p,checked:b,required:f,setControl:k,setChecked:v,hasConsumerStoppedPropagationRef:x,isFormControl:w,bubbleInput:A}=y(m,a),g=(0,n.s)(t,k),C=r.useRef(b);return r.useEffect(()=>{let e=null==s?void 0:s.form;if(e){let t=()=>v(C.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[s,v]),(0,h.jsx)(u.sG.button,{type:"button",role:"checkbox","aria-checked":M(b)?"mixed":b,"aria-required":f,"data-state":R(b),"data-disabled":p?"":void 0,disabled:p,value:c,...i,ref:g,onKeyDown:(0,l.mK)(o,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,l.mK)(d,e=>{v(e=>!!M(e)||!e),A&&w&&(x.current=e.isPropagationStopped(),x.current||e.stopPropagation())})})});x.displayName=m;var w=r.forwardRef((e,t)=>{let{__scopeCheckbox:a,name:r,checked:n,defaultChecked:o,required:l,disabled:d,value:i,onCheckedChange:s,form:c,...u}=e;return(0,h.jsx)(v,{__scopeCheckbox:a,checked:n,defaultChecked:o,disabled:d,required:l,onCheckedChange:s,name:r,form:c,value:i,internal_do_not_use_render:e=>{let{isFormControl:r}=e;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(x,{...u,ref:t,__scopeCheckbox:a}),r&&(0,h.jsx)(j,{__scopeCheckbox:a})]})}})});w.displayName=p;var A="CheckboxIndicator",g=r.forwardRef((e,t)=>{let{__scopeCheckbox:a,forceMount:r,...n}=e,o=y(A,a);return(0,h.jsx)(c.C,{present:r||M(o.checked)||!0===o.checked,children:(0,h.jsx)(u.sG.span,{"data-state":R(o.checked),"data-disabled":o.disabled?"":void 0,...n,ref:t,style:{pointerEvents:"none",...e.style}})})});g.displayName=A;var C="CheckboxBubbleInput",j=r.forwardRef((e,t)=>{let{__scopeCheckbox:a,...o}=e,{control:l,hasConsumerStoppedPropagationRef:d,checked:c,defaultChecked:p,required:b,disabled:f,name:k,value:v,form:m,bubbleInput:x,setBubbleInput:w}=y(C,a),A=(0,n.s)(t,w),g=(0,i.Z)(c),j=(0,s.X)(l);r.useEffect(()=>{if(!x)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!d.current;if(g!==c&&e){let a=new Event("click",{bubbles:t});x.indeterminate=M(c),e.call(x,!M(c)&&c),x.dispatchEvent(a)}},[x,g,c,d]);let R=r.useRef(!M(c)&&c);return(0,h.jsx)(u.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=p?p:R.current,required:b,disabled:f,name:k,value:v,form:m,...o,tabIndex:-1,ref:A,style:{...o.style,...j,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function M(e){return"indeterminate"===e}function R(e){return M(e)?"indeterminate":e?"checked":"unchecked"}j.displayName=C}}]);