@chorus-aidlc/chorus 0.16.3 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +445 -445
  3. package/.next/standalone/.next/app-path-routes-manifest.json +54 -54
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +42 -42
  6. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  40. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  44. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  45. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  48. package/.next/standalone/.next/server/app/admin/companies/new.rsc +1 -1
  49. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  51. package/.next/standalone/.next/server/app/admin/companies.rsc +1 -1
  52. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/admin.html +2 -2
  54. package/.next/standalone/.next/server/app/admin.rsc +1 -1
  55. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  84. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/mcp/route.js +3 -3
  106. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  108. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/index.html +2 -2
  157. package/.next/standalone/.next/server/app/index.rsc +1 -1
  158. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  160. package/.next/standalone/.next/server/app/login/admin.rsc +1 -1
  161. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  163. package/.next/standalone/.next/server/app/login/callback.rsc +1 -1
  164. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  167. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +1 -1
  168. package/.next/standalone/.next/server/app/login.html +2 -2
  169. package/.next/standalone/.next/server/app/login.rsc +1 -1
  170. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  171. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  174. package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
  175. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/projects.html +2 -2
  177. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  178. package/.next/standalone/.next/server/app/settings.html +2 -2
  179. package/.next/standalone/.next/server/app/settings.rsc +3 -3
  180. package/.next/standalone/.next/server/app-paths-manifest.json +54 -54
  181. package/.next/standalone/.next/server/chunks/1114.js +1 -1
  182. package/.next/standalone/.next/server/chunks/1318.js +1 -1
  183. package/.next/standalone/.next/server/chunks/1437.js +1 -0
  184. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  185. package/.next/standalone/.next/server/chunks/2572.js +1 -1
  186. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  187. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  188. package/.next/standalone/.next/server/chunks/{9793.js → 3045.js} +1 -1
  189. package/.next/standalone/.next/server/chunks/3831.js +37 -0
  190. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  191. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  192. package/.next/standalone/.next/server/chunks/{4394.js → 5706.js} +1 -1
  193. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  194. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  195. package/.next/standalone/.next/server/chunks/6506.js +2 -2
  196. package/.next/standalone/.next/server/chunks/6515.js +2 -2
  197. package/.next/standalone/.next/server/chunks/679.js +1 -1
  198. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  199. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  200. package/.next/standalone/.next/server/chunks/8454.js +1 -1
  201. package/.next/standalone/.next/server/chunks/920.js +1 -1
  202. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  203. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  204. package/.next/standalone/.next/server/chunks/9449.js +1 -0
  205. package/.next/standalone/.next/server/chunks/9458.js +1 -0
  206. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  207. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  208. package/.next/standalone/.next/server/pages/404.html +2 -2
  209. package/.next/standalone/.next/server/pages/500.html +1 -1
  210. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  212. package/.next/standalone/.next/static/chunks/{11595.97e534422c57aee1.js → 11595.bbe40924d18958bf.js} +1 -1
  213. package/.next/standalone/.next/static/chunks/18139-e6ef4b5869593f8e.js +1 -0
  214. package/.next/standalone/.next/static/chunks/28856-ef2cb58fbd404ef9.js +1 -0
  215. package/.next/standalone/.next/static/chunks/{31308-fda6febfb2882a28.js → 31308-bb4a97b3f39c22dd.js} +1 -1
  216. package/.next/standalone/.next/static/chunks/{33456.6dc44a6aca1a01fd.js → 33456.5499eb8e892b110a.js} +1 -1
  217. package/.next/standalone/.next/static/chunks/{4860.7873ebc9ba435c8c.js → 4860.be77046fb2b3a2bd.js} +1 -1
  218. package/.next/standalone/.next/static/chunks/66873-e3be53f41b3f2255.js +1 -0
  219. package/.next/standalone/.next/static/chunks/70303-aec3d52ad87602a3.js +1 -0
  220. package/.next/standalone/.next/static/chunks/76201-83b26515f85ce37c.js +1 -0
  221. package/.next/standalone/.next/static/chunks/78917-a8a8dff98857c045.js +1 -0
  222. package/.next/standalone/.next/static/chunks/{94643-01be319472d751b3.js → 94643-ffa140f765c73daf.js} +1 -1
  223. package/.next/standalone/.next/static/chunks/97663-9c3ae4fd60b353db.js +1 -0
  224. package/.next/standalone/.next/static/chunks/{99373.d0e808c18408b8da.js → 99373.111493dc260a2a04.js} +1 -1
  225. package/.next/standalone/.next/static/chunks/app/(dashboard)/{layout-b742c51c0a764daf.js → layout-40fe7d026c5a7c6d.js} +1 -1
  226. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-87d4d0fe90fca28c.js +1 -0
  227. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-1206abaee85dc915.js +1 -0
  228. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/{page-425acbe9ade5fa83.js → page-474e494097c8945f.js} +1 -1
  229. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-e902b19328092ccf.js +1 -0
  230. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-f273288c3530aa0f.js +1 -0
  231. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-6568a7b08bf9a54b.js +1 -0
  232. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-fbd3c27b68666234.js +1 -0
  233. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-58b48aa0a11603c3.js → page-15bb6e1696668512.js} +1 -1
  234. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-286faced32c6133f.js → page-2bea97214b1595cc.js} +1 -1
  235. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-2bf7ceee62b574c7.js +1 -0
  236. package/.next/standalone/.next/static/chunks/app/onboarding/{page-5c82cf3abd856301.js → page-540da64d7ba16dc7.js} +1 -1
  237. package/.next/standalone/.next/static/chunks/{webpack-fa066d7ff9ab2b29.js → webpack-7cbb3ba6792f1fb3.js} +1 -1
  238. package/.next/standalone/package.json +1 -1
  239. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  240. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +44 -1
  241. package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +4 -3
  242. package/.next/standalone/public/chorus-plugin/bin/tests/test-mcp-cli-delegation.sh +244 -0
  243. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  244. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +19 -1
  245. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +57 -0
  246. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +2 -2
  247. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  248. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  249. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +85 -42
  250. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +1 -1
  251. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +2 -2
  252. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  253. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  254. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +3 -3
  255. package/.next/standalone/public/dsh-credentials.sh +30 -0
  256. package/.next/standalone/public/install-codex.sh +21 -406
  257. package/.next/standalone/public/install-kiro.sh +20 -344
  258. package/.next/standalone/public/install-opencode.sh +20 -275
  259. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
  260. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +57 -0
  261. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +2 -2
  262. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  263. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
  264. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +85 -42
  265. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
  266. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +2 -2
  267. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
  268. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
  269. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +3 -3
  270. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +44 -1
  271. package/.next/standalone/public/kiro-plugin/bin/on-agent-spawn.sh +6 -4
  272. package/.next/standalone/public/kiro-plugin/manifest.txt +41 -0
  273. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
  274. package/.next/standalone/public/skill/chorus/SKILL.md +19 -1
  275. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +1 -1
  276. package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
  277. package/.next/standalone/public/skill/docs-chorus/SKILL.md +1 -1
  278. package/.next/standalone/public/skill/idea-chorus/SKILL.md +1 -1
  279. package/.next/standalone/public/skill/orchestrate-chorus/SKILL.md +1 -1
  280. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +1 -1
  281. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +1 -1
  282. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  283. package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
  284. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +1 -1
  285. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +1 -1
  286. package/.next/standalone/public/test-dsh-credentials.sh +39 -0
  287. package/.next/standalone/public/test-install-codex.sh +31 -79
  288. package/README.ja.md +5 -3
  289. package/README.ko.md +5 -3
  290. package/README.md +5 -3
  291. package/README.zh.md +5 -3
  292. package/chorus.mjs +35 -1
  293. package/cli/agent-backend-prompt.mjs +94 -0
  294. package/cli/agents.mjs +329 -0
  295. package/cli/chorus-client.mjs +69 -0
  296. package/cli/claude-spawner.mjs +4 -0
  297. package/cli/client-args.mjs +11 -5
  298. package/cli/codex-spawner.mjs +11 -6
  299. package/cli/credentials.mjs +185 -3
  300. package/cli/daemon-agent.mjs +30 -5
  301. package/cli/daemon-banner.mjs +3 -3
  302. package/cli/daemon-config.mjs +27 -2
  303. package/cli/daemon-install-config.mjs +21 -14
  304. package/cli/daemon-rest-client.mjs +31 -8
  305. package/cli/daemon-service.mjs +120 -33
  306. package/cli/daemon.mjs +175 -28
  307. package/cli/dsh-managed-config.mjs +407 -0
  308. package/cli/dsh-spawner.mjs +445 -0
  309. package/cli/init/adapters.mjs +137 -0
  310. package/cli/init/agent-type-map.mjs +60 -0
  311. package/cli/init/chorus-plugin-consts.mjs +16 -0
  312. package/cli/init/codex-mcp-config.mjs +183 -0
  313. package/cli/init/contracts.mjs +120 -0
  314. package/cli/init/detect.mjs +97 -0
  315. package/cli/init/file-template.mjs +248 -0
  316. package/cli/init/install-methods.mjs +508 -0
  317. package/cli/init/registry.mjs +74 -0
  318. package/cli/init/run-command.mjs +30 -0
  319. package/cli/init/select.mjs +111 -0
  320. package/cli/init/steps/credential-seed.mjs +751 -0
  321. package/cli/init/steps/daemon-setup.mjs +246 -0
  322. package/cli/init/steps/plugin-install.mjs +37 -0
  323. package/cli/init-args.mjs +137 -0
  324. package/cli/init.mjs +198 -0
  325. package/cli/kiro-spawner.mjs +4 -0
  326. package/cli/login.mjs +26 -4
  327. package/cli/mcp-args.mjs +280 -0
  328. package/cli/mcp.mjs +164 -0
  329. package/cli/spawner-select.mjs +54 -2
  330. package/cli/turn-reporter.mjs +5 -2
  331. package/cli/upload-hooks.mjs +31 -1
  332. package/cli/waker.mjs +49 -6
  333. package/package.json +1 -1
  334. package/prisma/migrations/20260818024700_add_turn_backend_session_id/migration.sql +1 -0
  335. package/prisma/schema.prisma +3 -0
  336. package/.next/standalone/.next/server/chunks/3594.js +0 -1
  337. package/.next/standalone/.next/server/chunks/5351.js +0 -32
  338. package/.next/standalone/.next/server/chunks/6667.js +0 -1
  339. package/.next/standalone/.next/server/chunks/6995.js +0 -1
  340. package/.next/standalone/.next/static/chunks/19887-c0bb297a78a1c7cd.js +0 -1
  341. package/.next/standalone/.next/static/chunks/29108-5a11eea003f4cc11.js +0 -1
  342. package/.next/standalone/.next/static/chunks/53073-a7ed20af6538a178.js +0 -1
  343. package/.next/standalone/.next/static/chunks/6603-e70ddeab6ad09c50.js +0 -1
  344. package/.next/standalone/.next/static/chunks/78917-1b59cbb806b3ecfc.js +0 -1
  345. package/.next/standalone/.next/static/chunks/82751-3e161e1d8dbda3ac.js +0 -1
  346. package/.next/standalone/.next/static/chunks/99366-425e9ef22e60e3e2.js +0 -1
  347. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-f636e00c28f425ea.js +0 -1
  348. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-c004f1a194af7fa5.js +0 -1
  349. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-fdd617457730a116.js +0 -1
  350. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-6b3fb08d53826d02.js +0 -1
  351. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-d5b222f379b2e8ca.js +0 -1
  352. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-0a6c2d0e1b68e0e4.js +0 -1
  353. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-1507a761e67c2aa9.js +0 -1
  354. /package/.next/standalone/.next/static/{K8qIdwvKoIWbwQ_f01mnM → 0spgxl3lP26Fl1otd1D7R}/_buildManifest.js +0 -0
  355. /package/.next/standalone/.next/static/{K8qIdwvKoIWbwQ_f01mnM → 0spgxl3lP26Fl1otd1D7R}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[87674],{},_=>{_.O(0,[41282,87326,93151,41752,30996,57084,59764,8893,12079,18944,27290,12790,26885,14655,21932,20204,30724,16544,94170,27201,16551,97784,14753,45532,70552,17099,15183,65096,87325,29305,31308,56527,27370,94643,6603,99366,53073,78917,74951,65496,77358],()=>_(_.s=78917)),_N_E=_.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[87674],{},_=>{_.O(0,[41282,87326,93151,41752,30996,57084,59764,8893,12079,18944,27290,12790,26885,14655,21932,20204,30724,16544,94170,27201,16551,97784,14753,45532,70552,17099,15183,65096,87325,29305,31308,56527,27370,94643,28856,66873,76201,78917,74951,65496,77358],()=>_(_.s=78917)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[51670],{12210:(e,t,a)=>{"use strict";a.d(t,{d:()=>i});var s=a(90508);a(1856);var r=a(60322),n=a(24377);function i(e){let{className:t,...a}=e;return(0,s.jsx)(r.Root,{"data-slot":"switch",className:(0,n.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:ring-ring/50 inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...a,children:(0,s.jsx)(r.Thumb,{"data-slot":"switch-thumb",className:(0,n.cn)("bg-background pointer-events-none block size-4 rounded-full ring-0 shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})}},14554:(e,t,a)=>{"use strict";a.d(t,{p:()=>n});var s=a(90508);a(1856);var r=a(24377);function n(e){let{className:t,type:a,...n}=e;return(0,s.jsx)("input",{type:a,"data-slot":"input",className:(0,r.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...n})}},15972:(e,t,a)=>{"use strict";a.d(t,{T:()=>n});var s=a(90508);a(1856);var r=a(24377);function n(e){let{className:t,...a}=e;return(0,s.jsx)("textarea",{"data-slot":"textarea",className:(0,r.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),...a})}},22922:(e,t,a)=>{"use strict";a.d(t,{$:()=>o});var s=a(90508);a(1856);var r=a(49499),n=a(54154),i=a(24377);let l=(0,r.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function o(e){let{className:t,variant:a="default",size:r="default",asChild:o=!1,...d}=e,c=o?n.bL:"button";return(0,s.jsx)(c,{"data-slot":"button","data-variant":a,"data-size":r,className:(0,i.cn)(l({variant:a,size:r,className:t})),...d})}},24377:(e,t,a)=>{"use strict";a.d(t,{cn:()=>n});var s=a(49251),r=a(58849);function n(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return(0,r.QP)((0,s.$)(t))}},38106:(e,t,a)=>{"use strict";function s(e){let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let a=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),n=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return"".concat(a,"-").concat(s,"-").concat(r," ").concat(n,":").concat(i)}function r(e,t){let a="string"==typeof e?new Date(e):e;return isNaN(a.getTime())?"":a.toLocaleDateString(t,{month:"short",day:"numeric"})}a.d(t,{r:()=>s,s:()=>r})},48416:(e,t,a)=>{"use strict";a.d(t,{BT:()=>o,Wu:()=>d,ZB:()=>l,Zp:()=>n,aR:()=>i});var s=a(90508);a(1856);var r=a(24377);function n(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card",className:(0,r.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...a})}function i(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-header",className:(0,r.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...a})}function l(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-title",className:(0,r.cn)("leading-none font-semibold",t),...a})}function o(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-description",className:(0,r.cn)("text-muted-foreground text-sm",t),...a})}function d(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-content",className:(0,r.cn)("px-6",t),...a})}},51817:(e,t,a)=>{"use strict";a.d(t,{$v:()=>x,EO:()=>u,Lt:()=>l,Rx:()=>p,Zr:()=>h,ck:()=>g,r7:()=>f,tv:()=>o,wd:()=>m});var s=a(90508);a(1856);var r=a(90299),n=a(24377),i=a(22922);function l(e){let{...t}=e;return(0,s.jsx)(r.Root,{"data-slot":"alert-dialog",...t})}function o(e){let{...t}=e;return(0,s.jsx)(r.Trigger,{"data-slot":"alert-dialog-trigger",...t})}function d(e){let{...t}=e;return(0,s.jsx)(r.Portal,{"data-slot":"alert-dialog-portal",...t})}function c(e){let{className:t,...a}=e;return(0,s.jsx)(r.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,n.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...a})}function u(e){let{className:t,size:a="default",...i}=e;return(0,s.jsxs)(d,{children:[(0,s.jsx)(c,{}),(0,s.jsx)(r.Content,{"data-slot":"alert-dialog-content","data-size":a,className:(0,n.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",t),...i})]})}function m(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,n.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",t),...a})}function g(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,n.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",t),...a})}function f(e){let{className:t,...a}=e;return(0,s.jsx)(r.Title,{"data-slot":"alert-dialog-title",className:(0,n.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",t),...a})}function x(e){let{className:t,...a}=e;return(0,s.jsx)(r.Description,{"data-slot":"alert-dialog-description",className:(0,n.cn)("text-muted-foreground text-sm",t),...a})}function p(e){let{className:t,variant:a="default",size:l="default",...o}=e;return(0,s.jsx)(i.$,{variant:a,size:l,asChild:!0,children:(0,s.jsx)(r.Action,{"data-slot":"alert-dialog-action",className:(0,n.cn)(t),...o})})}function h(e){let{className:t,variant:a="outline",size:l="default",...o}=e;return(0,s.jsx)(i.$,{variant:a,size:l,asChild:!0,children:(0,s.jsx)(r.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,n.cn)(t),...o})})}},57731:(e,t,a)=>{"use strict";a.d(t,{E:()=>o});var s=a(90508);a(1856);var r=a(49499),n=a(54154),i=a(24377);let l=(0,r.F)("inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline",success:"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100",warning:"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:a="default",asChild:r=!1,...o}=e,d=r?n.bL:"span";return(0,s.jsx)(d,{"data-slot":"badge","data-variant":a,className:(0,i.cn)(l({variant:a}),t),...o})}},67712:(e,t,a)=>{"use strict";a.d(t,{q:()=>l});var s=a(55036);let r={debug:0,info:1,warn:2,error:3},n=s.env.NEXT_PUBLIC_LOG_LEVEL||"warn";function i(e){return r[e]>=r[n]}let l={debug:function(e){for(var t=arguments.length,a=Array(t>1?t-1:0),s=1;s<t;s++)a[s-1]=arguments[s];i("debug")&&console.debug("[Chorus] ".concat(e),...a)},info:function(e){for(var t=arguments.length,a=Array(t>1?t-1:0),s=1;s<t;s++)a[s-1]=arguments[s];i("info")&&console.info("[Chorus] ".concat(e),...a)},warn:function(e){for(var t=arguments.length,a=Array(t>1?t-1:0),s=1;s<t;s++)a[s-1]=arguments[s];i("warn")&&console.warn("[Chorus] ".concat(e),...a)},error:function(e){for(var t=arguments.length,a=Array(t>1?t-1:0),s=1;s<t;s++)a[s-1]=arguments[s];i("error")&&console.error("[Chorus] ".concat(e),...a)}}},73693:(e,t,a)=>{"use strict";a.d(t,{BK:()=>l,eu:()=>i,q5:()=>o});var s=a(90508);a(1856);var r=a(65514),n=a(24377);function i(e){let{className:t,size:a="default",...i}=e;return(0,s.jsx)(r.Root,{"data-slot":"avatar","data-size":a,className:(0,n.cn)("group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",t),...i})}function l(e){let{className:t,...a}=e;return(0,s.jsx)(r.Image,{"data-slot":"avatar-image",className:(0,n.cn)("aspect-square size-full",t),...a})}function o(e){let{className:t,...a}=e;return(0,s.jsx)(r.Fallback,{"data-slot":"avatar-fallback",className:(0,n.cn)("bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs",t),...a})}},81750:(e,t,a)=>{"use strict";a.d(t,{Ke:()=>o,Nt:()=>i,R6:()=>l});var s=a(90508),r=a(38476),n=a(24377);function i(e){let{...t}=e;return(0,s.jsx)(r.Root,{"data-slot":"collapsible",...t})}function l(e){let{...t}=e;return(0,s.jsx)(r.Trigger,{"data-slot":"collapsible-trigger",...t})}function o(e){let{className:t,...a}=e;return(0,s.jsx)(r.Content,{"data-slot":"collapsible-content",className:(0,n.cn)("overflow-hidden data-[state=open]:animate-[collapsible-down_250ms_ease-in-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-in-out]",t),...a})}},82758:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>V});var s=a(90508),r=a(1856),n=a(39268),i=a(22922),l=a(51817),o=a(81149),d=a(84052),c=a(5616),u=a(85619),m=a(57893),g=a(17730),f=a(78948),x=a(97645),p=a(36557),h=a(9160),v=a(12790),b=a.n(v),j=a(37750),y=a(91385),w=a(10465),N=a(75427),k=a(57731),A=a(32277),z=a(52217);let S=(0,z.createServerReference)("000924f58d7a7acf9629b54cdfb67c2c5fab8cff9f",z.callServer,void 0,z.findSourceMapURL,"getApiKeysAction"),C=(0,z.createServerReference)("4066302f0412589d2825969197e651c7b752bf2bf0",z.callServer,void 0,z.findSourceMapURL,"deleteApiKeyAction"),_=(0,z.createServerReference)("40414d2aa9502bc99379eac1cd7fdb2aea8cf42106",z.callServer,void 0,z.findSourceMapURL,"getAgentSessionsAction"),R=(0,z.createServerReference)("401aaaf752ef996275e3c9f3bcf965f789267cee23",z.callServer,void 0,z.findSourceMapURL,"closeSessionAction"),K=(0,z.createServerReference)("40f36d2f389e54fbd0c365f11ecd0a29fee308b3f9",z.callServer,void 0,z.findSourceMapURL,"reopenSessionAction"),U=(0,z.createServerReference)("40ea890e9473d25024ec0d99ca8c89f088f7206e01",z.callServer,void 0,z.findSourceMapURL,"updateAgentAction");var E=a(19964),L=a(25359),T=a(48416),I=a(12210),$=a(88064),q=a(67712);let M={taskAssigned:!0,taskStatusChanged:!0,taskVerified:!0,taskReopened:!0,proposalSubmitted:!0,proposalApproved:!0,proposalRejected:!0,ideaClaimed:!0,commentAdded:!0,elaborationRequested:!0,elaborationAnswered:!0,mentioned:!0},P=[{labelKey:"taskEvents",items:[{key:"taskAssigned",labelKey:"taskAssigned"},{key:"taskStatusChanged",labelKey:"taskStatusChanged"},{key:"taskVerified",labelKey:"taskVerified"},{key:"taskReopened",labelKey:"taskReopened"}]},{labelKey:"proposalEvents",items:[{key:"proposalSubmitted",labelKey:"proposalSubmitted"},{key:"proposalApproved",labelKey:"proposalApproved"},{key:"proposalRejected",labelKey:"proposalRejected"}]},{labelKey:"ideaEvents",items:[{key:"ideaClaimed",labelKey:"ideaClaimed"}]},{labelKey:"elaborationEvents",items:[{key:"elaborationRequested",labelKey:"elaborationRequested"},{key:"elaborationAnswered",labelKey:"elaborationAnswered"}]},{labelKey:"commentEvents",items:[{key:"commentAdded",labelKey:"commentAdded"}]},{labelKey:"mentionEvents",items:[{key:"mentioned",labelKey:"mentioned"}]}];function D(){let e=(0,n.c)("notifications.preferences"),[t,a]=(0,r.useState)(M),[i,l]=(0,r.useState)(!0),o=(0,r.useRef)(null);(0,r.useEffect)(()=>{!async function(){try{let e=await fetch("/api/notifications/preferences");if(e.ok){let t=await e.json();if(t.success&&t.data){let{taskAssigned:e,taskStatusChanged:s,taskVerified:r,taskReopened:n,proposalSubmitted:i,proposalApproved:l,proposalRejected:o,ideaClaimed:d,commentAdded:c,elaborationRequested:u,elaborationAnswered:m,mentioned:g}=t.data;a({taskAssigned:e,taskStatusChanged:s,taskVerified:r,taskReopened:n,proposalSubmitted:i,proposalApproved:l,proposalRejected:o,ideaClaimed:d,commentAdded:c,elaborationRequested:null==u||u,elaborationAnswered:null==m||m,mentioned:null==g||g})}}}catch(e){q.q.error("Failed to fetch notification preferences:",e)}finally{l(!1)}}()},[]);let d=(0,r.useCallback)(e=>{o.current&&clearTimeout(o.current),o.current=setTimeout(async()=>{try{await fetch("/api/notifications/preferences",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}catch(e){q.q.error("Failed to save notification preferences:",e)}},500)},[]);return i?null:(0,s.jsx)("div",{className:"space-y-6",children:P.map(r=>(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("h3",{className:"text-sm font-medium text-foreground",children:e(r.labelKey)}),(0,s.jsx)("div",{className:"space-y-3",children:r.items.map(r=>(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)($.J,{htmlFor:r.key,className:"text-sm text-muted-foreground cursor-pointer",children:e(r.labelKey)}),(0,s.jsx)(I.d,{id:r.key,checked:t[r.key],onCheckedChange:e=>((e,s)=>{let r={...t,[e]:s};a(r),d(r)})(r.key,e)})]},r.key))})]},r.labelKey))})}var F=a(38106),B=a(44775);let O=new Set(a(93810).lp);function V(){let e=(0,n.c)(),{locale:t,setLocale:a}=(0,A.Y)(),[v,z]=(0,r.useState)([]),[I,$]=(0,r.useState)(!0),[M,P]=(0,r.useState)(!1),[V,Z]=(0,r.useState)(!1),[G,W]=(0,r.useState)(null),[Y,H]=(0,r.useState)({}),[J,Q]=(0,r.useState)({}),[X,ee]=(0,r.useState)({}),[et,ea]=(0,r.useState)(!1),[es,er]=(0,r.useState)(null),[en,ei]=(0,r.useState)(""),[el,eo]=(0,r.useState)("custom"),[ed,ec]=(0,r.useState)([]),[eu,em]=(0,r.useState)(""),[eg,ef]=(0,r.useState)(!1);(0,r.useEffect)(()=>{ex()},[]);let ex=async()=>{try{let e=await S();e.success&&e.data&&z(e.data)}catch(e){q.q.error("Failed to fetch API keys:",e)}finally{$(!1)}},ep=async()=>{if(G)try{let e=await C(G);e.success?z(v.filter(e=>e.uuid!==G)):q.q.error("Failed to delete API key:",e.error)}catch(e){q.q.error("Failed to delete API key:",e)}finally{Z(!1),W(null)}},eh=async e=>{let t=Y[e];if(H(a=>({...a,[e]:!t})),!t&&!J[e]){ee(t=>({...t,[e]:!0}));let t=await _(e);t.success&&t.data&&Q(a=>({...a,[e]:t.data})),ee(t=>({...t,[e]:!1}))}},ev=async(e,t)=>{(await R(e)).success&&Q(a=>({...a,[t]:(a[t]||[]).map(t=>t.uuid===e?{...t,status:"closed"}:t)}))},eb=async(e,t)=>{(await K(e)).success&&Q(a=>({...a,[t]:(a[t]||[]).map(t=>t.uuid===e?{...t,status:"active",lastActiveAt:new Date().toISOString()}:t)}))},ej=()=>{ea(!1),er(null),ei(""),eo("custom"),ec([]),em("")},ey=async e=>{if(e.preventDefault(),!es||!en)return;let t="custom"===el?[]:[el],a="custom"===el?ed:[];ef(!0);try{let e=await U({agentUuid:es.agentUuid,name:en,roles:t,permissions:a,persona:eu||null});if(e.success){let e=Array.from(function(e,t){let a=new Set;if(e)for(let t of e){let e=t.endsWith("_agent")?t:"".concat(t,"_agent"),s=B.o[e];if(s)for(let e of s)a.add(e)}if(t)for(let e of t)O.has(e)&&a.add(e);return a}(t,a));z(s=>s.map(s=>s.agentUuid===es.agentUuid?{...s,name:en,roles:t,permissions:a,effectivePermissions:e,persona:eu||null}:s)),ej()}else q.q.error("Failed to update agent:",e.error)}catch(e){q.q.error("Failed to update agent:",e)}finally{ef(!1)}};return I?(0,s.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,s.jsx)("div",{className:"text-muted-foreground",children:e("common.loading")})}):(0,s.jsxs)("div",{className:"p-4 md:p-8",children:[(0,s.jsx)("div",{className:"mb-6 text-xs text-[#9A9A9A]",children:e("settings.breadcrumb")}),(0,s.jsxs)("div",{className:"mb-8 flex flex-wrap items-start justify-between gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e("settings.title")}),(0,s.jsx)("p",{className:"mt-1 text-[13px] text-muted-foreground",children:e("settings.subtitle")})]}),(0,s.jsx)(w.m,{variant:"inline"})]}),(0,s.jsxs)("div",{className:"mb-8 space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(o.A,{className:"h-5 w-5 text-muted-foreground"}),(0,s.jsx)("h2",{className:"text-base font-semibold text-foreground",children:e("settings.language")})]}),(0,s.jsx)("p",{className:"text-[13px] text-muted-foreground",children:e("settings.languageDesc")}),(0,s.jsx)("div",{className:"flex gap-3",children:L.IB.map(e=>(0,s.jsx)(i.$,{variant:t===e?"default":"outline",size:"sm",onClick:()=>a(e),className:"min-w-[100px]",children:L.L$[e]},e))})]}),(0,s.jsxs)(T.Zp,{className:"mb-8",children:[(0,s.jsxs)(T.aR,{children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(d.A,{className:"h-5 w-5 text-muted-foreground"}),(0,s.jsx)(T.ZB,{children:e("settings.setupGuide")})]}),(0,s.jsx)(T.BT,{children:e("settings.setupGuideDesc")})]}),(0,s.jsx)(T.Wu,{children:(0,s.jsx)(b(),{href:"/onboarding",children:(0,s.jsx)(i.$,{variant:"outline",children:e("settings.openSetupGuide")})})})]}),(0,s.jsx)("div",{className:"mb-8 border-t border-border"}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h2",{className:"text-base font-semibold text-foreground",children:e("settings.agents")}),(0,s.jsxs)(i.$,{onClick:()=>P(!0),children:[(0,s.jsx)(c.A,{className:"mr-2 h-4 w-4"}),e("settings.createApiKey")]})]}),(0,s.jsx)("p",{className:"text-[13px] text-muted-foreground",children:e("settings.agentsDesc")}),0===v.length?(0,s.jsxs)("div",{className:"rounded-xl border border-border bg-card p-12 text-center",children:[(0,s.jsx)("div",{className:"mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-secondary",children:(0,s.jsx)(u.A,{className:"h-6 w-6 text-muted-foreground"})}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:e("settings.noApiKeys")})]}):(0,s.jsx)("div",{className:"space-y-3",children:v.map(t=>{var a;return(0,s.jsxs)("div",{className:"rounded-xl border border-border bg-card p-5",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[t.name?(0,s.jsx)(y.AgentAvatar,{name:t.name,size:36,className:"rounded-lg"}):(0,s.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg ".concat(t.roles.includes("developer_agent")?"bg-green-100":"bg-primary/10"),children:(0,s.jsx)(u.A,{className:"h-[18px] w-[18px] ".concat(t.roles.includes("developer_agent")?"text-green-600":"text-primary")})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-sm font-medium text-foreground",children:t.name||t.keyPrefix+"..."}),(0,s.jsxs)("div",{className:"text-xs text-muted-foreground",children:[t.keyPrefix,"... \xb7 ",e("settings.created")," ",(0,F.r)(t.createdAt)]})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)(i.$,{variant:"outline",size:"sm",onClick:()=>(e=>{var t,a;let s=(t=e.roles,a=e.permissions,1===t.length&&t[0]in B.o&&0===a.length?t[0]:"custom"),r=e.effectivePermissions;er(e),ei(e.name||""),eo(s),ec("custom"===s?r:[]),em(e.persona||""),ea(!0)})(t),children:[(0,s.jsx)(m.A,{className:"mr-1.5 h-3.5 w-3.5"}),e("settings.editAgent")]}),(0,s.jsx)(i.$,{variant:"outline",size:"sm",onClick:()=>{W(t.uuid),Z(!0)},className:"text-destructive hover:text-destructive",children:e("common.delete")})]})]}),(0,s.jsxs)("div",{className:"mt-4 border-t border-border pt-3",children:[(0,s.jsxs)("button",{onClick:()=>eh(t.agentUuid),className:"flex w-full items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[Y[t.agentUuid]?(0,s.jsx)(g.A,{className:"h-3.5 w-3.5"}):(0,s.jsx)(f.A,{className:"h-3.5 w-3.5"}),(0,s.jsx)(x.A,{className:"h-3.5 w-3.5"}),(0,s.jsx)("span",{children:e("sessions.title")}),J[t.agentUuid]&&(0,s.jsx)(k.E,{variant:"secondary",className:"ml-1 h-4 px-1.5 text-[10px]",children:J[t.agentUuid].length})]}),Y[t.agentUuid]&&(0,s.jsx)("div",{className:"mt-2 space-y-2",children:X[t.agentUuid]?(0,s.jsx)("div",{className:"text-xs text-muted-foreground py-2",children:e("common.loading")}):(null==(a=J[t.agentUuid])?void 0:a.length)?J[t.agentUuid].map(a=>(0,s.jsxs)("div",{className:"flex items-center justify-between rounded-lg p-2.5 text-xs ".concat("closed"===a.status?"bg-muted/50 text-muted-foreground":"bg-secondary"),children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("div",{className:"h-2 w-2 rounded-full flex-shrink-0 ".concat("active"===a.status?"bg-green-500":"bg-gray-400")}),(0,s.jsx)("span",{className:"font-medium truncate",children:a.name}),(0,s.jsx)(k.E,{variant:"outline",className:"text-[10px] h-4 px-1 ".concat("active"===a.status?"border-green-300 text-green-700":"border-gray-300 text-gray-500"),children:e("sessions.status".concat(a.status.charAt(0).toUpperCase()+a.status.slice(1)))}),(0,s.jsx)("span",{className:"text-muted-foreground",children:e("sessions.checkins",{count:a.checkins.length})})]}),"closed"===a.status?(0,s.jsx)(i.$,{variant:"ghost",size:"sm",className:"h-6 px-2 text-[10px] text-green-600 hover:text-green-700",onClick:()=>eb(a.uuid,t.agentUuid),children:e("sessions.reopen")}):(0,s.jsx)(i.$,{variant:"ghost",size:"sm",className:"h-6 px-2 text-[10px] text-destructive hover:text-destructive",onClick:()=>ev(a.uuid,t.agentUuid),children:e("sessions.close")})]},a.uuid)):(0,s.jsx)("div",{className:"text-xs text-muted-foreground py-2 italic",children:e("sessions.noSessions")})})]})]},t.uuid)})})]}),(0,s.jsx)("div",{className:"mb-8 border-t border-border"}),(0,s.jsxs)(T.Zp,{children:[(0,s.jsxs)(T.aR,{children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(p.A,{className:"h-5 w-5 text-muted-foreground"}),(0,s.jsx)(T.ZB,{children:e("notifications.preferences.title")})]}),(0,s.jsx)(T.BT,{children:e("notifications.preferences.description")})]}),(0,s.jsx)(T.Wu,{children:(0,s.jsx)(D,{})})]}),M&&(0,s.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/25",children:(0,s.jsx)("div",{className:"max-h-[90vh] w-full max-w-2xl overflow-y-auto rounded-2xl bg-card shadow-xl",children:(0,s.jsx)(j.Y,{createAgentAndKey:E.I,onAgentCreated:()=>{ex()},onClose:()=>{P(!1)}})})}),et&&es&&(0,s.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/25",children:(0,s.jsx)("div",{className:"max-h-[90vh] w-full max-w-[520px] overflow-y-auto rounded-2xl bg-card shadow-xl",children:(0,s.jsxs)("form",{onSubmit:ey,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-6 py-5",children:[(0,s.jsx)("h3",{className:"text-lg font-semibold text-foreground",children:e("settings.editAgent")}),(0,s.jsx)(i.$,{type:"button",variant:"ghost",size:"icon",onClick:ej,className:"h-8 w-8",children:(0,s.jsx)(h.A,{className:"h-4 w-4"})})]}),(0,s.jsx)("div",{className:"p-6",children:(0,s.jsx)(N.L,{name:en,onNameChange:ei,preset:el,permissions:ed,onPermissionsChange:e=>{eo(e.preset),ec(e.permissions)},persona:eu,onPersonaChange:em,nameInputId:"editName",personaInputId:"edit-agent-persona"})}),(0,s.jsxs)("div",{className:"flex justify-end gap-3 border-t border-border px-6 py-4",children:[(0,s.jsx)(i.$,{type:"button",variant:"outline",onClick:ej,children:e("common.cancel")}),(0,s.jsx)(i.$,{type:"submit",disabled:!en||"custom"===el&&0===ed.length||eg,children:eg?e("settings.saving"):e("settings.saveChanges")})]})]})})}),(0,s.jsx)(l.Lt,{open:V,onOpenChange:Z,children:(0,s.jsxs)(l.EO,{children:[(0,s.jsxs)(l.wd,{children:[(0,s.jsx)(l.r7,{children:e("settings.confirmDeleteTitle")}),(0,s.jsx)(l.$v,{children:e("settings.confirmDeleteDesc")})]}),(0,s.jsxs)(l.ck,{children:[(0,s.jsx)(l.Zr,{children:e("common.cancel")}),(0,s.jsx)(l.Rx,{onClick:ep,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:e("common.delete")})]})]})})]})}},87386:(e,t,a)=>{Promise.resolve().then(a.bind(a,82758))},91385:(e,t,a)=>{"use strict";a.d(t,{AgentAvatar:()=>x,Pf:()=>g});var s=a(90508),r=a(1856),n=a(5425),i=a(93832),l=a(5985),o=a(14518),d=a(73693),c=a(24377);let u=new i.O(o),m=new Map;function g(e,t){let a,s="".concat(t,"\0").concat(e),r=m.get(s);if(void 0!==r)return r;try{let s="animated"===t?{seed:e,tags:["animation"]}:{seed:e,tags:["!animation"]};a=new l.e(u,s).toDataUri()}catch(e){a=null}return m.set(s,a),a}let f={xs:20,sm:24,md:32,lg:40};function x(e){let{name:t,size:a="md",animate:i=!0,className:l}=e,[o,u]=r.useState(!1);r.useEffect(()=>{var e;if("function"!=typeof window.matchMedia)return;let t=window.matchMedia("(prefers-reduced-motion: reduce)");u(t.matches);let a=e=>u(e.matches);return null==(e=t.addEventListener)||e.call(t,"change",a),()=>{var e;return null==(e=t.removeEventListener)?void 0:e.call(t,"change",a)}},[]);let m=i&&!o?"animated":"static",x=r.useMemo(()=>g(t,m),[t,m]),p="number"==typeof a?a:f[a],h=t.trim().charAt(0).toUpperCase();return(0,s.jsxs)(d.eu,{"data-slot":"agent-avatar","data-motion":m,className:(0,c.cn)("shrink-0 rounded-md bg-muted",l),style:{width:p,height:p},children:[x?(0,s.jsx)(d.BK,{src:x,alt:t,className:(0,c.cn)("rounded-md","origin-top scale-[1.5] -translate-y-[10%]"),draggable:!1}):null,(0,s.jsx)(d.q5,{className:"rounded-md","aria-label":t,children:h?(0,s.jsx)("span",{className:"text-[0.7em] font-medium",children:h}):(0,s.jsx)(n.A,{className:"size-1/2","aria-hidden":!0})})]})}},91846:(e,t,a)=>{"use strict";a.d(t,{bq:()=>u,eb:()=>g,gC:()=>m,l6:()=>d,yv:()=>c});var s=a(90508);a(1856);var r=a(17730),n=a(60532),i=a(89967),l=a(48218),o=a(24377);function d(e){let{...t}=e;return(0,s.jsx)(l.Root,{"data-slot":"select",...t})}function c(e){let{...t}=e;return(0,s.jsx)(l.Value,{"data-slot":"select-value",...t})}function u(e){let{className:t,size:a="default",children:n,...i}=e;return(0,s.jsxs)(l.Trigger,{"data-slot":"select-trigger","data-size":a,className:(0,o.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...i,children:[n,(0,s.jsx)(l.Icon,{asChild:!0,children:(0,s.jsx)(r.A,{className:"size-4 opacity-50"})})]})}function m(e){let{className:t,children:a,position:r="item-aligned",align:n="center",...i}=e;return(0,s.jsx)(l.Portal,{children:(0,s.jsxs)(l.Content,{"data-slot":"select-content",className:(0,o.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:r,align:n,...i,children:[(0,s.jsx)(f,{}),(0,s.jsx)(l.Viewport,{className:(0,o.cn)("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),(0,s.jsx)(x,{})]})})}function g(e){let{className:t,children:a,...r}=e;return(0,s.jsxs)(l.Item,{"data-slot":"select-item",className:(0,o.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...r,children:[(0,s.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,s.jsx)(l.ItemIndicator,{children:(0,s.jsx)(n.A,{className:"size-4"})})}),(0,s.jsx)(l.ItemText,{children:a})]})}function f(e){let{className:t,...a}=e;return(0,s.jsx)(l.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,s.jsx)(i.A,{className:"size-4"})})}function x(e){let{className:t,...a}=e;return(0,s.jsx)(l.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,s.jsx)(r.A,{className:"size-4"})})}},97261:(e,t,a)=>{"use strict";a.d(t,{MarkdownContent:()=>u});var s=a(90508),r=a(1856),n=a(65700),i=a(19169),l=a(26190);let o=i.a,d=(0,i.V)({themes:["github-dark","github-dark"]});i.a,l.a;let c={mermaid:{fullscreen:!0,download:!0,copy:!0,panZoom:!0}};function u(e){let{children:t,components:a,allowedTags:i,literalTagContent:u}=e,m=function(){let[e,t]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=document.documentElement,a=()=>t(e.classList.contains("dark"));a();let s=new MutationObserver(a);return s.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>s.disconnect()},[]),e}(),g=(0,r.useMemo)(()=>({config:{theme:m?"dark":"default"}}),[m]),f=(0,r.useMemo)(()=>({code:m?d:o,mermaid:l.a}),[m]);return(0,s.jsx)(n.jH,{plugins:f,controls:c,mermaid:g,components:a,allowedTags:i,literalTagContent:u,children:t},m?"dark":"light")}}},e=>{e.O(0,[87326,93151,41752,12079,18944,12790,26885,21932,20204,30724,94170,27201,16551,97784,14753,45532,70552,17099,15183,78155,97663,74951,65496,77358],()=>e(e.s=87386)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[69566],{13533:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>q});var n=s(90508),a=s(1856),i=s(91814),l=s(39268),r=s(22922),c=s(67103),o=s(10465),d=s(60532);let x=["welcome","createAgent","copyKey","installGuide","testConnection","completion"];function m(e){let{currentStep:t,totalSteps:s}=e,a=(0,l.c)("onboarding");return(0,n.jsx)("div",{className:"flex items-start",children:Array.from({length:s},(e,i)=>{let l=i<t,r=i===t;return(0,n.jsxs)("div",{className:"flex flex-col items-center",style:{minWidth:56},children:[(0,n.jsxs)("div",{className:"flex w-full items-center",children:[(0,n.jsx)("div",{className:"h-px flex-1 ".concat(0===i?"bg-transparent":l?"bg-primary":"bg-border")}),(0,n.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-xs font-medium transition-colors ".concat(l?"bg-primary text-primary-foreground":r?"border-2 border-primary bg-background text-primary":"border border-border bg-background text-muted-foreground"),children:l?(0,n.jsx)(d.A,{className:"h-4 w-4"}):i+1}),(0,n.jsx)("div",{className:"h-px flex-1 ".concat(i===s-1?"bg-transparent":i<t?"bg-primary":"bg-border")})]}),(0,n.jsx)("span",{className:"mt-1.5 hidden text-[10px] sm:block ".concat(r?"font-medium text-foreground":"text-muted-foreground"),children:a("steps.".concat(x[i]))})]},i)})})}var u=s(48416),f=s(29767),p=s(56770),g=s(23217),h=s(62482),j=s(21104),N=s(24705),y=s(62898),w=s(16544),b=s(65626);let v=[{icon:f.A,key:"idea"},{icon:p.A,key:"proposal"},{icon:g.A,key:"task"},{icon:h.A,key:"execute"},{icon:j.A,key:"verify"},{icon:N.A,key:"done"}];function k(e){let{onNext:t}=e,s=(0,l.c)("onboarding");return(0,n.jsxs)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-lg flex-col items-center gap-8",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,n.jsx)("img",{src:"/chorus-icon.png",alt:"Chorus",className:"h-16 w-16"}),(0,n.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:s("welcome.title")}),(0,n.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:s("welcome.description")})]}),(0,n.jsx)(u.Zp,{className:"w-full",children:(0,n.jsxs)(u.Wu,{className:"p-6",children:[(0,n.jsx)("p",{className:"mb-4 text-center text-xs font-medium uppercase tracking-wider text-muted-foreground",children:s("welcome.pipelineTitle")}),(0,n.jsx)(w.P.div,{variants:b.bK,initial:"initial",animate:"animate",className:"flex flex-wrap items-center justify-center gap-2",children:v.map((e,t)=>{let a=e.icon;return(0,n.jsxs)(w.P.div,{variants:b.Rf,className:"flex items-center gap-2",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-1",children:[(0,n.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-lg bg-secondary",children:(0,n.jsx)(a,{className:"h-5 w-5 text-primary"})}),(0,n.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground",children:s("welcome.pipeline.".concat(e.key))})]}),t<v.length-1&&(0,n.jsx)(y.A,{className:"h-3 w-3 text-muted-foreground"})]},e.key)})})]})}),(0,n.jsx)(r.$,{size:"lg",onClick:t,className:"w-full max-w-xs",children:s("welcome.getStarted")})]})}var C=s(37750),A=s(38700);function E(e){let{onNext:t,onAgentCreated:s}=e,a=(0,l.c)("onboarding.createAgent");return(0,n.jsx)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-2xl flex-col items-center gap-6",children:(0,n.jsxs)(u.Zp,{className:"w-full",children:[(0,n.jsxs)(u.aR,{className:"text-center",children:[(0,n.jsx)(u.ZB,{children:a("title")}),(0,n.jsx)(u.BT,{children:a("description")})]}),(0,n.jsx)(u.Wu,{children:(0,n.jsx)(C.Y,{embedded:!0,createAgentAndKey:A.I,submitLabel:a("submit"),submittingLabel:a("creating"),onAgentCreated:(e,n)=>{s(e,n),t()}})})]})})}var P=s(25373),S=s(17475),_=s(67712);function K(e){let{onNext:t,apiKey:s}=e,i=(0,l.c)("onboarding"),[c,o]=(0,a.useState)(!1),x=(0,a.useCallback)(e=>{e.preventDefault()},[]);(0,a.useEffect)(()=>(window.addEventListener("beforeunload",x),()=>{window.removeEventListener("beforeunload",x)}),[x]);let m=async()=>{if(s)try{await navigator.clipboard.writeText(s),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){_.q.error("Failed to copy to clipboard:",e)}};return(0,n.jsx)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-lg flex-col items-center gap-8",children:(0,n.jsxs)(u.Zp,{className:"w-full",children:[(0,n.jsxs)(u.aR,{className:"text-center",children:[(0,n.jsx)(u.ZB,{children:i("copyKey.title")}),(0,n.jsx)(u.BT,{children:i("copyKey.description")})]}),(0,n.jsxs)(u.Wu,{className:"flex flex-col gap-4",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("code",{className:"flex-1 overflow-x-auto rounded bg-foreground px-3 py-2 font-mono text-sm text-background",children:null!=s?s:""}),(0,n.jsx)(r.$,{variant:"outline",size:"sm",onClick:m,className:"flex-shrink-0",children:c?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.A,{className:"mr-1 h-4 w-4 text-green-500"}),i("copyKey.copied")]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(P.A,{className:"mr-1 h-4 w-4"}),i("copyKey.copy")]})})]}),(0,n.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-yellow-300 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-950",children:[(0,n.jsx)(S.A,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-yellow-600 dark:text-yellow-400"}),(0,n.jsx)("p",{className:"text-sm font-medium text-yellow-700 dark:text-yellow-300",children:i("copyKey.warning")})]}),(0,n.jsx)(r.$,{onClick:t,className:"w-full",children:i("next")})]})]})})}var O=s(83792);function $(e){let{apiKey:t,onNext:s,onBack:a}=e,i=(0,l.c)("onboarding");return(0,n.jsxs)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-2xl flex-col items-center gap-6",children:[(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:i("steps.installGuide")}),(0,n.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:i("install.description")})]}),(0,n.jsx)(O.Z,{apiKey:t}),(0,n.jsxs)("div",{className:"flex gap-2",children:[a&&(0,n.jsx)(r.$,{variant:"outline",onClick:a,children:i("back")}),(0,n.jsx)(r.$,{onClick:s,children:i("next")})]})]})}var Z=s(85226),z=s(42533),B=s(91385),T=s(50006);function W(e){let{onNext:t,onBack:s,agentUuid:i,agentName:c,onConnectionVerified:o}=e,d=(0,l.c)("onboarding"),[x,m]=(0,a.useState)("waiting"),f=(0,a.useRef)(null),p=(0,a.useCallback)(()=>{f.current&&(f.current.close(),f.current=null)},[]),g=(0,a.useCallback)(()=>{p(),m("waiting");let e=new EventSource("/api/events/notifications");f.current=e,e.onmessage=e=>{try{let t=JSON.parse(e.data);"new_notification"===t.type&&"agent_checkin"===t.action&&t.entityUuid===i&&(m("connected"),p(),o())}catch(e){}},e.onerror=()=>{}},[i,p,o]);return(0,a.useEffect)(()=>(g(),p),[g,p]),(0,n.jsx)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-lg flex-col items-center gap-8",children:(0,n.jsx)(u.Zp,{className:"w-full",children:(0,n.jsxs)(u.Wu,{className:"flex flex-col items-center gap-6 p-8",children:[(0,n.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:d("testConnection.title")}),"waiting"===x&&(0,n.jsxs)("div",{className:"flex w-full flex-col items-center gap-4",children:[(0,n.jsxs)("div",{className:"relative flex h-16 w-16 items-center justify-center",children:[(0,n.jsx)("div",{className:"absolute h-16 w-16 animate-ping rounded-full bg-primary/20"}),c?(0,n.jsx)(B.AgentAvatar,{name:c,size:48,className:"rounded-full"}):(0,n.jsx)(Z.A,{className:"h-8 w-8 animate-spin text-primary"})]}),(0,n.jsx)("p",{className:"text-center text-sm text-muted-foreground",children:d("testConnection.waiting")}),c&&(0,n.jsx)("p",{className:"text-center text-xs text-muted-foreground",children:d("testConnection.waitingFor",{name:c})}),(0,n.jsxs)("div",{className:"w-full",children:[(0,n.jsx)("p",{className:"mb-2 text-center text-xs text-muted-foreground",children:d("testConnection.checkinHint")}),(0,n.jsx)(T.N,{code:d("testConnection.checkinPrompt")})]}),s&&(0,n.jsx)(r.$,{variant:"outline",onClick:s,children:d("back")})]}),"connected"===x&&(0,n.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,n.jsx)(w.P.div,{initial:{scale:0},animate:{scale:1},transition:{type:"spring",stiffness:300,damping:20},children:(0,n.jsx)(z.A,{className:"h-16 w-16 text-green-500"})}),(0,n.jsx)("p",{className:"text-center text-sm font-medium text-green-600",children:d("testConnection.connected")}),(0,n.jsx)(r.$,{onClick:t,children:d("next")})]})]})})})}var F=s(94152),R=s(52309),G=s(94643);function I(e){let{createdAgent:t}=e,s=(0,i.r)(),c=(0,l.c)("onboarding"),o=(0,l.c)("agent.permissions");(0,a.useEffect)(()=>{localStorage.setItem("chorus_onboarding_completed","done")},[]);let d=t?o(t.roles.includes("admin_agent")?"presetAdmin":t.roles.includes("pm_agent")?"presetPm":t.roles.includes("developer_agent")?"presetDev":"presetCustom"):null;return(0,n.jsxs)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-lg flex-col items-center gap-8",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,n.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-full bg-primary/10",children:(0,n.jsx)(z.A,{className:"h-10 w-10 text-primary"})}),(0,n.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:c("completion.title")}),(0,n.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:c("completion.description")})]}),t&&(0,n.jsx)(u.Zp,{className:"w-full",children:(0,n.jsxs)(u.Wu,{className:"p-6",children:[(0,n.jsx)("div",{className:"mb-4 flex justify-center",children:(0,n.jsx)(B.AgentAvatar,{name:t.name,size:48,className:"rounded-2xl"})}),(0,n.jsx)("h3",{className:"mb-3 text-sm font-medium text-foreground",children:c("completion.summary")}),(0,n.jsxs)("div",{className:"space-y-2 text-sm text-muted-foreground",children:[(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:c("completion.agentName")}),(0,n.jsx)("span",{className:"font-medium text-foreground",children:t.name})]}),(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:c("completion.agentPreset")}),(0,n.jsx)("span",{className:"font-medium text-foreground",children:d})]}),0===t.roles.length&&t.permissions.length>0&&(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:c("completion.agentPermissions")}),(0,n.jsx)("span",{className:"font-medium text-foreground",children:c("completion.permissionsCount",{count:t.permissions.length})})]})]})]})}),(0,n.jsx)(G.Bs,{variant:"prominent"}),(0,n.jsxs)("div",{className:"flex w-full max-w-xs flex-col gap-3",children:[(0,n.jsxs)(r.$,{size:"lg",onClick:()=>s.push("/projects"),className:"w-full gap-2",children:[(0,n.jsx)(F.A,{className:"h-4 w-4"}),c("completion.goToProjects")]}),(0,n.jsxs)(r.$,{variant:"outline",size:"lg",onClick:()=>s.push("/settings"),className:"w-full gap-2",children:[(0,n.jsx)(R.A,{className:"h-4 w-4"}),c("completion.goToSettings")]})]})]})}function L(){var e,t;let s=(0,i.r)(),d=(0,l.c)("onboarding"),[x,u]=(0,a.useState)(0),[f,p]=(0,a.useState)(null),[g,h]=(0,a.useState)(null),[j,N]=(0,a.useState)(null),[y,w]=(0,a.useState)(!1),b=(0,a.useCallback)(()=>{u(e=>Math.min(e+1,5))},[]),v=(0,a.useCallback)(()=>{u(e=>Math.max(e-1,0))},[]),C=(0,a.useCallback)(()=>{localStorage.setItem("chorus_onboarding_completed","skipped"),s.push("/projects")},[s]),A=(0,a.useCallback)((e,t)=>{p(e),h(t)},[]),P=(0,a.useCallback)(()=>{w(!0),u(5)},[]),S=5===x;return(0,n.jsxs)("div",{className:"flex w-full max-w-2xl flex-col items-center gap-8",children:[(0,n.jsx)(m,{currentStep:x,totalSteps:6}),(0,n.jsxs)(c.N,{mode:"wait",children:[0===x&&(0,n.jsx)(k,{onNext:b},"welcome"),1===x&&(0,n.jsx)(E,{onNext:b,onAgentCreated:A},"createAgent"),2===x&&(0,n.jsx)(K,{onNext:b,apiKey:g},"copyKey"),3===x&&(0,n.jsx)($,{apiKey:g,onNext:b,onBack:v},"installGuide"),4===x&&(0,n.jsx)(W,{onNext:b,onBack:v,agentUuid:null!=(e=null==f?void 0:f.uuid)?e:null,agentName:null!=(t=null==f?void 0:f.name)?t:null,onConnectionVerified:P},"testConnection"),5===x&&(0,n.jsx)(I,{createdAgent:f},"completion")]}),!S&&(0,n.jsx)(r.$,{variant:"link",size:"sm",onClick:C,className:"text-muted-foreground",children:d("skip")}),(0,n.jsx)(o.m,{variant:"footer"})]})}function q(){return(0,n.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-background p-4",children:(0,n.jsx)(L,{})})}},65626:(e,t,s)=>{"use strict";s.d(t,{K5:()=>c,Rf:()=>r,Yv:()=>n,bK:()=>l,qG:()=>i,tE:()=>a});let n={fast:.15,normal:.2,slow:.3,easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1],stagger:.04,staggerFast:.03,spring:{type:"spring",stiffness:500,damping:30},tween:{type:"tween",duration:.2,ease:[0,0,.2,1]}},a={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:n.normal,ease:n.easeOut}},exit:{opacity:0,y:-4,transition:{duration:n.fast,ease:n.easeOut}}},i={initial:{opacity:0},animate:{opacity:1,transition:{duration:n.normal,ease:n.easeOut}},exit:{opacity:0,transition:{duration:n.fast,ease:n.easeOut}}};n.normal,n.easeOut,n.fast,n.easeOut;let l={initial:{},animate:{transition:{staggerChildren:n.stagger}}},r={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:n.normal,ease:n.easeOut}}},c={initial:{opacity:0,scale:.95,y:-4},animate:{opacity:1,scale:1,y:0,transition:{duration:n.fast,ease:n.easeOut}},exit:{opacity:0,scale:.95,y:-4,transition:{duration:n.fast,ease:n.easeOut}}}},99576:(e,t,s)=>{Promise.resolve().then(s.bind(s,13533))}},e=>{e.O(0,[87326,93151,41752,12079,18944,27290,12790,26885,14655,21932,20204,30724,16544,94170,27201,16551,97784,14753,45532,70552,17099,15183,65096,87325,45024,27370,94643,19887,74951,65496,77358],()=>e(e.s=99576)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[69566],{13533:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>q});var n=s(90508),a=s(1856),i=s(91814),l=s(39268),r=s(22922),c=s(67103),o=s(10465),d=s(60532);let x=["welcome","createAgent","copyKey","installGuide","testConnection","completion"];function m(e){let{currentStep:t,totalSteps:s}=e,a=(0,l.c)("onboarding");return(0,n.jsx)("div",{className:"flex items-start",children:Array.from({length:s},(e,i)=>{let l=i<t,r=i===t;return(0,n.jsxs)("div",{className:"flex flex-col items-center",style:{minWidth:56},children:[(0,n.jsxs)("div",{className:"flex w-full items-center",children:[(0,n.jsx)("div",{className:"h-px flex-1 ".concat(0===i?"bg-transparent":l?"bg-primary":"bg-border")}),(0,n.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-xs font-medium transition-colors ".concat(l?"bg-primary text-primary-foreground":r?"border-2 border-primary bg-background text-primary":"border border-border bg-background text-muted-foreground"),children:l?(0,n.jsx)(d.A,{className:"h-4 w-4"}):i+1}),(0,n.jsx)("div",{className:"h-px flex-1 ".concat(i===s-1?"bg-transparent":i<t?"bg-primary":"bg-border")})]}),(0,n.jsx)("span",{className:"mt-1.5 hidden text-[10px] sm:block ".concat(r?"font-medium text-foreground":"text-muted-foreground"),children:a("steps.".concat(x[i]))})]},i)})})}var u=s(48416),f=s(29767),p=s(56770),g=s(23217),h=s(62482),j=s(21104),N=s(24705),y=s(62898),w=s(16544),b=s(65626);let v=[{icon:f.A,key:"idea"},{icon:p.A,key:"proposal"},{icon:g.A,key:"task"},{icon:h.A,key:"execute"},{icon:j.A,key:"verify"},{icon:N.A,key:"done"}];function k(e){let{onNext:t}=e,s=(0,l.c)("onboarding");return(0,n.jsxs)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-lg flex-col items-center gap-8",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,n.jsx)("img",{src:"/chorus-icon.png",alt:"Chorus",className:"h-16 w-16"}),(0,n.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:s("welcome.title")}),(0,n.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:s("welcome.description")})]}),(0,n.jsx)(u.Zp,{className:"w-full",children:(0,n.jsxs)(u.Wu,{className:"p-6",children:[(0,n.jsx)("p",{className:"mb-4 text-center text-xs font-medium uppercase tracking-wider text-muted-foreground",children:s("welcome.pipelineTitle")}),(0,n.jsx)(w.P.div,{variants:b.bK,initial:"initial",animate:"animate",className:"flex flex-wrap items-center justify-center gap-2",children:v.map((e,t)=>{let a=e.icon;return(0,n.jsxs)(w.P.div,{variants:b.Rf,className:"flex items-center gap-2",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-1",children:[(0,n.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-lg bg-secondary",children:(0,n.jsx)(a,{className:"h-5 w-5 text-primary"})}),(0,n.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground",children:s("welcome.pipeline.".concat(e.key))})]}),t<v.length-1&&(0,n.jsx)(y.A,{className:"h-3 w-3 text-muted-foreground"})]},e.key)})})]})}),(0,n.jsx)(r.$,{size:"lg",onClick:t,className:"w-full max-w-xs",children:s("welcome.getStarted")})]})}var C=s(37750),A=s(19964);function E(e){let{onNext:t,onAgentCreated:s}=e,a=(0,l.c)("onboarding.createAgent");return(0,n.jsx)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-2xl flex-col items-center gap-6",children:(0,n.jsxs)(u.Zp,{className:"w-full",children:[(0,n.jsxs)(u.aR,{className:"text-center",children:[(0,n.jsx)(u.ZB,{children:a("title")}),(0,n.jsx)(u.BT,{children:a("description")})]}),(0,n.jsx)(u.Wu,{children:(0,n.jsx)(C.Y,{embedded:!0,createAgentAndKey:A.I,submitLabel:a("submit"),submittingLabel:a("creating"),onAgentCreated:(e,n)=>{s(e,n),t()}})})]})})}var P=s(25373),S=s(17475),_=s(67712);function K(e){let{onNext:t,apiKey:s}=e,i=(0,l.c)("onboarding"),[c,o]=(0,a.useState)(!1),x=(0,a.useCallback)(e=>{e.preventDefault()},[]);(0,a.useEffect)(()=>(window.addEventListener("beforeunload",x),()=>{window.removeEventListener("beforeunload",x)}),[x]);let m=async()=>{if(s)try{await navigator.clipboard.writeText(s),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){_.q.error("Failed to copy to clipboard:",e)}};return(0,n.jsx)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-lg flex-col items-center gap-8",children:(0,n.jsxs)(u.Zp,{className:"w-full",children:[(0,n.jsxs)(u.aR,{className:"text-center",children:[(0,n.jsx)(u.ZB,{children:i("copyKey.title")}),(0,n.jsx)(u.BT,{children:i("copyKey.description")})]}),(0,n.jsxs)(u.Wu,{className:"flex flex-col gap-4",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("code",{className:"flex-1 overflow-x-auto rounded bg-foreground px-3 py-2 font-mono text-sm text-background",children:null!=s?s:""}),(0,n.jsx)(r.$,{variant:"outline",size:"sm",onClick:m,className:"flex-shrink-0",children:c?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.A,{className:"mr-1 h-4 w-4 text-green-500"}),i("copyKey.copied")]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(P.A,{className:"mr-1 h-4 w-4"}),i("copyKey.copy")]})})]}),(0,n.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-yellow-300 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-950",children:[(0,n.jsx)(S.A,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-yellow-600 dark:text-yellow-400"}),(0,n.jsx)("p",{className:"text-sm font-medium text-yellow-700 dark:text-yellow-300",children:i("copyKey.warning")})]}),(0,n.jsx)(r.$,{onClick:t,className:"w-full",children:i("next")})]})]})})}var O=s(83792);function $(e){let{apiKey:t,onNext:s,onBack:a}=e,i=(0,l.c)("onboarding");return(0,n.jsxs)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-2xl flex-col items-center gap-6",children:[(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:i("steps.installGuide")}),(0,n.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:i("install.description")})]}),(0,n.jsx)(O.Z,{apiKey:t}),(0,n.jsxs)("div",{className:"flex gap-2",children:[a&&(0,n.jsx)(r.$,{variant:"outline",onClick:a,children:i("back")}),(0,n.jsx)(r.$,{onClick:s,children:i("next")})]})]})}var Z=s(85226),z=s(42533),B=s(91385),T=s(50006);function W(e){let{onNext:t,onBack:s,agentUuid:i,agentName:c,onConnectionVerified:o}=e,d=(0,l.c)("onboarding"),[x,m]=(0,a.useState)("waiting"),f=(0,a.useRef)(null),p=(0,a.useCallback)(()=>{f.current&&(f.current.close(),f.current=null)},[]),g=(0,a.useCallback)(()=>{p(),m("waiting");let e=new EventSource("/api/events/notifications");f.current=e,e.onmessage=e=>{try{let t=JSON.parse(e.data);"new_notification"===t.type&&"agent_checkin"===t.action&&t.entityUuid===i&&(m("connected"),p(),o())}catch(e){}},e.onerror=()=>{}},[i,p,o]);return(0,a.useEffect)(()=>(g(),p),[g,p]),(0,n.jsx)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-lg flex-col items-center gap-8",children:(0,n.jsx)(u.Zp,{className:"w-full",children:(0,n.jsxs)(u.Wu,{className:"flex flex-col items-center gap-6 p-8",children:[(0,n.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:d("testConnection.title")}),"waiting"===x&&(0,n.jsxs)("div",{className:"flex w-full flex-col items-center gap-4",children:[(0,n.jsxs)("div",{className:"relative flex h-16 w-16 items-center justify-center",children:[(0,n.jsx)("div",{className:"absolute h-16 w-16 animate-ping rounded-full bg-primary/20"}),c?(0,n.jsx)(B.AgentAvatar,{name:c,size:48,className:"rounded-full"}):(0,n.jsx)(Z.A,{className:"h-8 w-8 animate-spin text-primary"})]}),(0,n.jsx)("p",{className:"text-center text-sm text-muted-foreground",children:d("testConnection.waiting")}),c&&(0,n.jsx)("p",{className:"text-center text-xs text-muted-foreground",children:d("testConnection.waitingFor",{name:c})}),(0,n.jsxs)("div",{className:"w-full",children:[(0,n.jsx)("p",{className:"mb-2 text-center text-xs text-muted-foreground",children:d("testConnection.checkinHint")}),(0,n.jsx)(T.N,{code:d("testConnection.checkinPrompt")})]}),s&&(0,n.jsx)(r.$,{variant:"outline",onClick:s,children:d("back")})]}),"connected"===x&&(0,n.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,n.jsx)(w.P.div,{initial:{scale:0},animate:{scale:1},transition:{type:"spring",stiffness:300,damping:20},children:(0,n.jsx)(z.A,{className:"h-16 w-16 text-green-500"})}),(0,n.jsx)("p",{className:"text-center text-sm font-medium text-green-600",children:d("testConnection.connected")}),(0,n.jsx)(r.$,{onClick:t,children:d("next")})]})]})})})}var F=s(94152),R=s(52309),G=s(94643);function I(e){let{createdAgent:t}=e,s=(0,i.r)(),c=(0,l.c)("onboarding"),o=(0,l.c)("agent.permissions");(0,a.useEffect)(()=>{localStorage.setItem("chorus_onboarding_completed","done")},[]);let d=t?o(t.roles.includes("admin_agent")?"presetAdmin":t.roles.includes("pm_agent")?"presetPm":t.roles.includes("developer_agent")?"presetDev":"presetCustom"):null;return(0,n.jsxs)(w.P.div,{variants:b.tE,initial:"initial",animate:"animate",exit:"exit",className:"flex w-full max-w-lg flex-col items-center gap-8",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,n.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-full bg-primary/10",children:(0,n.jsx)(z.A,{className:"h-10 w-10 text-primary"})}),(0,n.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:c("completion.title")}),(0,n.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:c("completion.description")})]}),t&&(0,n.jsx)(u.Zp,{className:"w-full",children:(0,n.jsxs)(u.Wu,{className:"p-6",children:[(0,n.jsx)("div",{className:"mb-4 flex justify-center",children:(0,n.jsx)(B.AgentAvatar,{name:t.name,size:48,className:"rounded-2xl"})}),(0,n.jsx)("h3",{className:"mb-3 text-sm font-medium text-foreground",children:c("completion.summary")}),(0,n.jsxs)("div",{className:"space-y-2 text-sm text-muted-foreground",children:[(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:c("completion.agentName")}),(0,n.jsx)("span",{className:"font-medium text-foreground",children:t.name})]}),(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:c("completion.agentPreset")}),(0,n.jsx)("span",{className:"font-medium text-foreground",children:d})]}),0===t.roles.length&&t.permissions.length>0&&(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:c("completion.agentPermissions")}),(0,n.jsx)("span",{className:"font-medium text-foreground",children:c("completion.permissionsCount",{count:t.permissions.length})})]})]})]})}),(0,n.jsx)(G.Bs,{variant:"prominent"}),(0,n.jsxs)("div",{className:"flex w-full max-w-xs flex-col gap-3",children:[(0,n.jsxs)(r.$,{size:"lg",onClick:()=>s.push("/projects"),className:"w-full gap-2",children:[(0,n.jsx)(F.A,{className:"h-4 w-4"}),c("completion.goToProjects")]}),(0,n.jsxs)(r.$,{variant:"outline",size:"lg",onClick:()=>s.push("/settings"),className:"w-full gap-2",children:[(0,n.jsx)(R.A,{className:"h-4 w-4"}),c("completion.goToSettings")]})]})]})}function L(){var e,t;let s=(0,i.r)(),d=(0,l.c)("onboarding"),[x,u]=(0,a.useState)(0),[f,p]=(0,a.useState)(null),[g,h]=(0,a.useState)(null),[j,N]=(0,a.useState)(null),[y,w]=(0,a.useState)(!1),b=(0,a.useCallback)(()=>{u(e=>Math.min(e+1,5))},[]),v=(0,a.useCallback)(()=>{u(e=>Math.max(e-1,0))},[]),C=(0,a.useCallback)(()=>{localStorage.setItem("chorus_onboarding_completed","skipped"),s.push("/projects")},[s]),A=(0,a.useCallback)((e,t)=>{p(e),h(t)},[]),P=(0,a.useCallback)(()=>{w(!0),u(5)},[]),S=5===x;return(0,n.jsxs)("div",{className:"flex w-full max-w-2xl flex-col items-center gap-8",children:[(0,n.jsx)(m,{currentStep:x,totalSteps:6}),(0,n.jsxs)(c.N,{mode:"wait",children:[0===x&&(0,n.jsx)(k,{onNext:b},"welcome"),1===x&&(0,n.jsx)(E,{onNext:b,onAgentCreated:A},"createAgent"),2===x&&(0,n.jsx)(K,{onNext:b,apiKey:g},"copyKey"),3===x&&(0,n.jsx)($,{apiKey:g,onNext:b,onBack:v},"installGuide"),4===x&&(0,n.jsx)(W,{onNext:b,onBack:v,agentUuid:null!=(e=null==f?void 0:f.uuid)?e:null,agentName:null!=(t=null==f?void 0:f.name)?t:null,onConnectionVerified:P},"testConnection"),5===x&&(0,n.jsx)(I,{createdAgent:f},"completion")]}),!S&&(0,n.jsx)(r.$,{variant:"link",size:"sm",onClick:C,className:"text-muted-foreground",children:d("skip")}),(0,n.jsx)(o.m,{variant:"footer"})]})}function q(){return(0,n.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-background p-4",children:(0,n.jsx)(L,{})})}},65626:(e,t,s)=>{"use strict";s.d(t,{K5:()=>c,Rf:()=>r,Yv:()=>n,bK:()=>l,qG:()=>i,tE:()=>a});let n={fast:.15,normal:.2,slow:.3,easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1],stagger:.04,staggerFast:.03,spring:{type:"spring",stiffness:500,damping:30},tween:{type:"tween",duration:.2,ease:[0,0,.2,1]}},a={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:n.normal,ease:n.easeOut}},exit:{opacity:0,y:-4,transition:{duration:n.fast,ease:n.easeOut}}},i={initial:{opacity:0},animate:{opacity:1,transition:{duration:n.normal,ease:n.easeOut}},exit:{opacity:0,transition:{duration:n.fast,ease:n.easeOut}}};n.normal,n.easeOut,n.fast,n.easeOut;let l={initial:{},animate:{transition:{staggerChildren:n.stagger}}},r={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:n.normal,ease:n.easeOut}}},c={initial:{opacity:0,scale:.95,y:-4},animate:{opacity:1,scale:1,y:0,transition:{duration:n.fast,ease:n.easeOut}},exit:{opacity:0,scale:.95,y:-4,transition:{duration:n.fast,ease:n.easeOut}}}},99576:(e,t,s)=>{Promise.resolve().then(s.bind(s,13533))}},e=>{e.O(0,[87326,93151,41752,12079,18944,27290,12790,26885,14655,21932,20204,30724,16544,94170,27201,16551,97784,14753,45532,70552,17099,15183,65096,87325,45024,27370,94643,97663,74951,65496,77358],()=>e(e.s=99576)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (()=>{"use strict";var e={},a={};function c(d){var f=a[d];if(void 0!==f)return f.exports;var b=a[d]={id:d,loaded:!1,exports:{}},t=!0;try{e[d].call(b.exports,b,b.exports,c),t=!1}finally{t&&delete a[d]}return b.loaded=!0,b.exports}c.m=e,(()=>{var e=[];c.O=(a,d,f,b)=>{if(d){b=b||0;for(var t=e.length;t>0&&e[t-1][2]>b;t--)e[t]=e[t-1];e[t]=[d,f,b];return}for(var r=1/0,t=0;t<e.length;t++){for(var[d,f,b]=e[t],n=!0,o=0;o<d.length;o++)(!1&b||r>=b)&&Object.keys(c.O).every(e=>c.O[e](d[o]))?d.splice(o--,1):(n=!1,b<r&&(r=b));if(n){e.splice(t--,1);var i=f();void 0!==i&&(a=i)}}return a}})(),c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},(()=>{var e,a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;c.t=function(d,f){if(1&f&&(d=this(d)),8&f||"object"==typeof d&&d&&(4&f&&d.__esModule||16&f&&"function"==typeof d.then))return d;var b=Object.create(null);c.r(b);var t={};e=e||[null,a({}),a([]),a(a)];for(var r=2&f&&d;"object"==typeof r&&!~e.indexOf(r);r=a(r))Object.getOwnPropertyNames(r).forEach(e=>t[e]=()=>d[e]);return t.default=()=>d,c.d(b,t),b}})(),c.d=(e,a)=>{for(var d in a)c.o(a,d)&&!c.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((a,d)=>(c.f[d](e,a),a),[])),c.u=e=>70552===e?"static/chunks/"+e+"-0ea3c887937b5b51.js":27201===e?"static/chunks/"+e+"-0228042991534905.js":14753===e?"static/chunks/"+e+"-d911e24624c88fbc.js":26885===e?"static/chunks/"+e+"-00665cb87b9da098.js":45532===e?"static/chunks/"+e+"-12ed13c096e2a88e.js":30724===e?"static/chunks/"+e+"-627b849ed09f9cc5.js":97784===e?"static/chunks/"+e+"-7b90a17294840e32.js":93151===e?"static/chunks/f3524bc3-5c48b74c49ddeca0.js":41752===e?"static/chunks/fcc64ffe-2c36a6b45f81782c.js":16551===e?"static/chunks/"+e+"-d129ae0de4a04d69.js":"static/chunks/"+(({5571:"4e7df547",14749:"5db68f07",15968:"14860d7c",17203:"7a5af761",19019:"1496d684",20341:"cbbc2011",24364:"fbd0dcbb",32217:"1ccec16d",43245:"48c55e57",49954:"a856cf35",58669:"4f8e262c",65543:"685092b2",69136:"5be1c5d8",77008:"fab3cf95",80039:"f4bf7a28",82346:"273acdc0",83086:"8c93d9a0",95402:"f57f1d5e",95792:"f2442412"})[e]||e)+"."+({123:"b47ce56e923e1dc4",283:"4d4eca86c7abbec9",493:"737fdeba759d415a",1236:"ec9ed804634bb6cf",1697:"58e0d7523fdd2d52",1803:"8e2e63f39906fd1e",1847:"90012f795031fd15",2164:"d977bc7d148f1d9e",2351:"a2908f154b03857c",2656:"febbce72896f5701",2829:"ae5196f6cb23aa62",2842:"a5f90cf26f897bfc",3333:"74af47ffa6cb4c0e",3709:"a528fc6526bb2f1d",4123:"bf0bc76b87e0a5d0",4151:"b8833633f487c3d5",4435:"0da86212e371da10",4860:"7873ebc9ba435c8c",5020:"e7e6f35316da8d79",5336:"3fcd63f65fab9362",5559:"34e9e404696c82c0",5571:"fa34ffab38ba73b3",6178:"d88e2b68a2a1e09b",6685:"e23946c2ee579a76",7037:"d00688ceefb9f163",7123:"37f20f0e10894a3c",7140:"099e6f0e9722e08f",7317:"8e3ce1ce083425d8",7387:"f8cf2c36cf9b56dc",8563:"caa84c08a9db867a",8859:"fd4fa52883f05b54",9357:"084ac7f230f031a3",9560:"2e77d2dc6351b105",9634:"14999324d0128b0e",9858:"5eb9e5d689ee1188",9872:"bfcbe3b40e1ba7a3",10171:"8a96856626beb7ab",10667:"c192840fc1b34161",10742:"6cc4d6949065d15a",11160:"058f4a27a4ccab24",11595:"97e534422c57aee1",11688:"8c27089c45c98079",11966:"36fab6445e33609a",12139:"23195d4025c449dd",12850:"a5f6e9e87d0f9abd",12906:"f2105800b7dc9127",12994:"ea3d4eeb1b15ce47",13131:"e73eb283f14ed397",13437:"0de1f2000c75f497",13462:"b710822936d6d995",14438:"153e2ffb65627b56",14749:"5a8891ea355512a8",15666:"fd13db7fdfc4db46",15736:"4a506a1463e65905",15930:"faf0ba15488aa8ff",15968:"67246c65e7776fa2",16271:"298647c24de4c656",16428:"da33ee8ca31c4d8f",16564:"310c443d14c6e84b",16596:"3c557433b77dc606",16669:"c0967e6ad7401c26",17012:"78f2a6b93e37bf95",17045:"cf6dade16b25ffc7",17093:"ec17cca1979a34c5",17203:"84e2df2bf9d6c4a4",17881:"2eba69b477a8c7f7",18024:"360cc54c2f070fa1",18236:"02c13f95242e1147",18276:"4e4950daea1be290",18291:"6c48a745093c472f",19015:"e0d16d65430522c1",19019:"da3969c029230434",19338:"65cfcfafa18f6aee",19656:"ee0407bae11dd49b",20118:"5e7942f9d596e02b",20171:"9c80c2880256be96",20186:"2a00fa806bf383a5",20341:"a1649a45ba0da5ab",20586:"7cd940a582176e37",20587:"d03a7c9ddae70251",20851:"383095475aa0becf",21063:"5cc29b3160a78147",21233:"fbc3473b758427be",21285:"944c1ff822774352",21290:"ef2762694c3c05e5",21343:"eb8e7aeda8b2b933",21546:"8b2a80eefde810c5",21558:"e72df6c050a17223",21785:"19b23ee028f6262f",21789:"ad6ff228e2917e82",22190:"149dd0799cbcba06",22463:"8f0a0111946c5e37",22485:"9f11764648028b9d",23338:"01f537c5dfd51363",23895:"a3ad3684a5b39547",24021:"e608f829b761ed19",24364:"a59ebe9142818688",24562:"f31cdddfe04624d0",24566:"605ccb37c2b09b7f",24976:"aea37ff8444ce6ca",25018:"51cf65637b375c88",25239:"e13f63bff8d7f459",25934:"45b477fc38b233d5",26558:"337afe8cd6c7f7e2",26594:"9cd92c85c51a3621",26604:"c5f0e687052abb59",27004:"7265fd004542a6ae",27261:"3ad525eea1f52dc3",27509:"8f83a84fed1129f3",27571:"33642de22553efae",27783:"70af75ac091e5b31",27929:"e9a99a263c294b0a",27992:"daf28998ef0714a0",28025:"1025ed4465b8b88e",28244:"3a5e72d3a4048558",28247:"e5faa56338e43301",29047:"65b677c7f3e6459f",29708:"0f9c08d7ca8a6036",30285:"7b6b107412564a45",30433:"919c34e206690a26",30550:"a8db081db527730d",30682:"b12a9bef588e7b03",31035:"06568e4accfa4664",31135:"8f2dbe06dab9d206",31204:"a8d94d78458557d5",31467:"9f8adfa602f97fcf",31570:"131868ccedfef522",31618:"663e0a27f529a7b5",31635:"fcbdbf0d1e8271e8",31807:"cf2a0cbbe7eedf32",32092:"f10268018cf52339",32217:"31e64d0e8696d298",32411:"6d37c2b4b2f2efb7",32729:"f7ddbed25cb15da4",32800:"6cee7ff19ca516a7",32900:"57aa606259738bd7",33187:"13c12f5c0821ac57",33316:"6b5f8f344baf7a8a",33456:"6dc44a6aca1a01fd",33665:"804ece4d6c6e4eca",34037:"e8e16348aca40958",34414:"30d095dd419ccded",34500:"58eb096afca7a3d2",34520:"1a6c6a7c421b0ff3",34565:"58e4d12c607709a2",34780:"ddc8d0403f86cd76",34787:"33a6fe2b98db58fd",34966:"dde9356d869e2a0f",35246:"75a72283c3c974e2",35362:"80b6e5545194566a",35733:"cf4ac3f521c0b06d",35901:"aa7ec713edff30e2",35918:"8e970e73c59cd315",36301:"0598cc26dfacc4a8",36531:"4576573d1554d0bc",36622:"2ecd0754a1dd1f10",36884:"6af20de227ae01d6",36989:"9a0a62410bf9ec4e",37697:"9af6ac899a8114c0",37802:"6e3d9ec6ded108e7",38176:"e1818cbc0df1edff",38259:"d83981da5c72c88a",38277:"f24d85bdc720318e",38366:"e6e0132b8ba873d6",38513:"2edbf8332418852a",38542:"1b0e31f1f0e79950",38843:"bfbf5f2c316123fb",39012:"d1e022d895c7700f",40294:"82b8b706bf8526d2",41333:"464f95d32db59d47",41796:"b775772add38f765",42515:"0879489433824ebb",43203:"0a24d8e1e04b23e1",43245:"fd54cc2dd98a53cf",43335:"71662f3469b367dd",43520:"4abb22e9bfdeedab",44980:"c17d605b4685ba2d",44996:"e5fc9af9e1283894",45025:"bdb2a46a29ea6a7f",45300:"bac57dcaf4b1ae63",45939:"d37b9465101a9a32",45966:"ece098ca2637c63f",46366:"d1d9d65b646509b3",46778:"cbd78e2a3b8eb454",46783:"b9ce59941eb5c767",46965:"2ed4c28224e29499",47066:"214cf62dd898ea16",47492:"6b259d6ee0ddf4d8",47613:"946226a67a1e5cd1",47781:"f25170364c271869",47914:"11c71123fcab1d66",47947:"471d5da6bb51de27",48504:"2efb153cab87148c",48782:"4ca261e8e23a8983",49114:"19ce7b83efab6d05",49294:"fb738cc8f6f972c0",49307:"9ac8482ed1916e3d",49312:"b4ee106f6ca8df0d",49406:"f77074487dddb735",49515:"c8964ec6f6c710d1",49812:"9bb0091da44f3fb0",49954:"22ac9c291887443d",50681:"5621dcb316c1dbc0",51094:"83d8278e86159ae3",51159:"cd7d830da0e9a7d2",52644:"999d7bbfb0c77212",52786:"cca2f572d4b83716",53012:"8ea1cc9b669d4071",53323:"19d0c542f89ec743",53854:"80e3b10f38882782",53988:"a7e066e48567fceb",54102:"0057304a9b7c36fd",54176:"1c209b5691615c2d",55034:"91a22d75a4896d26",55156:"70eba4bb5853878e",55683:"c52199afe13b15ed",55973:"c413a5ed34ef941e",57041:"8e2e63f39906fd1e",57660:"e59694e7ee1dda97",58401:"3641b4aeb0a1db04",58633:"6d322b2074b1cd5b",58669:"5239eb8dd5a3486c",58699:"364d357d33fcb52f",59848:"e7330c096662be59",59865:"a0136e48383160ce",59907:"ad1253ca7a3c3cea",59944:"1c8f7a84b714a678",60206:"130abcb08ea9a564",60238:"36a32788f3ca64fe",60289:"cd3b3bd12d5566c1",60442:"b031854728be46ff",61719:"b6f17cb6498eec77",61728:"c943fe98606d2f24",61963:"fd130ba09dd25e2e",62608:"4f3ab017447b17dc",62681:"86ea4a7f1240e2e6",63255:"262cd1e7cd35ffe9",63306:"03cdfc8e5118dd97",64663:"9974d163d89c8e9d",64733:"0790a2c763961b3f",65317:"ab0c5ecb4164b291",65543:"a92297193082467c",65635:"f8007956118a4b5f",65838:"acacc76f9932a395",66109:"2a6ffd90bf3c50be",66166:"5d9b6692f44d4789",66420:"ed3b252047bf2d99",66895:"77a113ea7e9e0e19",66962:"e49d2beb52f4ccd7",67100:"6729ae254487b545",67142:"d2c7895f2f0c0ddb",67458:"930b27b1ef06fd49",67633:"7cfc302383a77925",67676:"7e4d1ac29a054c5a",67966:"9baea607f9d83322",67987:"eb24309f5b6a773f",68067:"b108a5ae88fd156b",68906:"e81b3cb0a0eb3c6e",69083:"a8e8997a24b8507c",69136:"7bc0b66e195430ba",69477:"5b79cd575f93298f",69763:"003df47b4ee38644",70110:"a55f51e24556d059",70488:"dbde26374c2c08a2",70777:"9cde6b69988ac88e",70899:"75cac02cc1311c86",70901:"76003b037a2c2ad2",71547:"6f736dbb3265d938",71587:"942ffd492f15bdd6",71627:"4fa787d284261d08",71762:"0abb31b68e350f6b",72731:"5ac0a9cf8a2a916b",72740:"022c79c58cd39306",72977:"70c698df7ec867d8",73315:"46afbb4c2ae67b44",73354:"5ac4dbd55effe981",73506:"b9c053e2335b6084",73886:"c398daab959c90db",74250:"637853b68a0bb5dc",74312:"8d075f77e65364f2",74522:"ed3762dbb6b389b0",74962:"c0f9177875e7f100",75493:"5c2f7c166c002ee9",75693:"47f44d601521bc1b",75847:"0a83259a1ed4c4db",75958:"d9640c4cd9cdd74f",76399:"bb1a5dff754b7126",77008:"fe96b7655475e404",77768:"d5b6fe554fd62dbb",78425:"ee8445a0943525f2",78453:"3e109458064b76e4",78931:"2d78541331d4cf71",79035:"a682e63d1a6c820f",79422:"8e2e63f39906fd1e",79581:"3d0cbc1897c20b80",79788:"9cb75de83877d3a4",79806:"21f1d23ca273000d",79983:"6a9732776a2b07d1",80039:"b7b8926c9e98f166",80043:"fc4c6fd07c8c702c",80053:"cccea694a8be7b09",80192:"0b53419821781f47",80447:"cbc8dcd0610f9340",80478:"75454fe2622f8d60",80514:"c180393ccbb2f62e",80559:"4d1ea1e2bde6d65b",80653:"ba5596638b5efe48",80934:"cadd9fcd52d99096",81014:"7b65385965b83d33",81078:"d1b12131827159fc",81768:"13a175a018951bc8",82171:"e532a5af5a92acb9",82292:"2fb55f1ea9249601",82346:"d5de461383d78bd3",82666:"805e44c88f89e4f5",83086:"cf3390a953e4e275",83177:"4b3f31d9e183d57a",83561:"8959cb05be5bba5c",83842:"2211d720bd76fa0a",83978:"78a0d317cfb0f7fa",84553:"26f4216de4e92834",85120:"e1418b8e76b49092",85135:"45ba2b68ef521957",85350:"c86c2e91cf3d247e",85947:"c813bf8bc6e1d675",86533:"96712909323ba4fd",86749:"a4033144c9f1db80",86978:"fcbdaf718d4b4cb8",88087:"6ae9d65d22727e7d",88298:"33f9c586ab229ba6",88343:"f95f9ca9ad905248",88439:"528a166b33a003d3",88958:"3f88a829e6ab9f1d",89091:"e6f60560ceac7848",89231:"7bd196023a80ac20",89379:"ccf569c6fdc84136",89486:"ae3ab6537c32a471",90040:"a0d185d54c4405d8",90179:"1fbab23e5d44b4f0",90669:"fea27affbd10509b",90740:"15b9eae85318ce19",91246:"9377a763aead9164",91468:"5a3936bb7fa502b7",91469:"056f34e448b9e3e5",91709:"ed3bfd285c518df1",91848:"089cc7d1be73e1ca",92147:"1340020e2f5cbef2",92924:"d50fc7f02672d2e6",92966:"b84b80410d014b96",93008:"7c404d8dceb67ff3",93722:"8500c1244c0aef9d",93996:"d810c0882af7cbe0",94314:"3bd48a7f7f885bb5",94400:"0d371a4d306a614b",94521:"f712b07f8f7651a9",94568:"2a2be37b4884c8cd",94725:"da1eff47b3e365cc",94867:"0ee353b2db6bf4f7",95305:"440c9cb9053df6bf",95402:"c345ce68aa5052a7",95470:"c594ecf25a203664",95792:"10f4124238152859",95963:"67eefa12cb90855f",96028:"cdbf36dca753e70f",96132:"ab9b9433c7b2fa1c",96230:"bf5cc20b343c438e",96309:"5c0610a0df7eaade",96554:"e768705a9558aa17",96623:"dd689039b85a3f89",96758:"b001e8afcb01a36d",97008:"ccf2a72ddb49895c",97229:"0b004c237f17530f",97543:"f224959967762c0b",97829:"bed98706765262d6",97974:"2157a18e2a93432f",98171:"be964141d5e6052f",98309:"223ad4f3e01558ae",98340:"8d1870938669f76e",99373:"d0e808c18408b8da",99435:"73c4d651008c0493",99501:"c56a4f18b2fdff6a",99801:"9d73f814d33c5a86"})[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={},a="_N_E:";c.l=(d,f,b,t)=>{if(e[d])return void e[d].push(f);if(void 0!==b)for(var r,n,o=document.getElementsByTagName("script"),i=0;i<o.length;i++){var s=o[i];if(s.getAttribute("src")==d||s.getAttribute("data-webpack")==a+b){r=s;break}}r||(n=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,c.nc&&r.setAttribute("nonce",c.nc),r.setAttribute("data-webpack",a+b),r.src=c.tu(d)),e[d]=[f];var u=(a,c)=>{r.onerror=r.onload=null,clearTimeout(l);var f=e[d];if(delete e[d],r.parentNode&&r.parentNode.removeChild(r),f&&f.forEach(e=>e(c)),a)return a(c)},l=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),n&&document.head.appendChild(r)}})(),c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;c.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),c.tu=e=>c.tt().createScriptURL(e),c.p="/_next/",(()=>{var e={78068:0,53169:0,32492:0,41282:0};c.f.j=(a,d)=>{var f=c.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(32492|41282|53169|78068)$/.test(a))e[a]=0;else{var b=new Promise((c,d)=>f=e[a]=[c,d]);d.push(f[2]=b);var t=c.p+c.u(a),r=Error();c.l(t,d=>{if(c.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),t=d&&d.target&&d.target.src;r.message="Loading chunk "+a+" failed.\n("+b+": "+t+")",r.name="ChunkLoadError",r.type=b,r.request=t,f[1](r)}},"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,[t,r,n]=d,o=0;if(t.some(a=>0!==e[a])){for(f in r)c.o(r,f)&&(c.m[f]=r[f]);if(n)var i=n(c)}for(a&&a(d);o<t.length;o++)b=t[o],c.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return c.O(i)},d=self.webpackChunk_N_E=self.webpackChunk_N_E||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})(),c.nc=void 0})();
1
+ (()=>{"use strict";var e={},a={};function c(d){var f=a[d];if(void 0!==f)return f.exports;var b=a[d]={id:d,loaded:!1,exports:{}},t=!0;try{e[d].call(b.exports,b,b.exports,c),t=!1}finally{t&&delete a[d]}return b.loaded=!0,b.exports}c.m=e,(()=>{var e=[];c.O=(a,d,f,b)=>{if(d){b=b||0;for(var t=e.length;t>0&&e[t-1][2]>b;t--)e[t]=e[t-1];e[t]=[d,f,b];return}for(var r=1/0,t=0;t<e.length;t++){for(var[d,f,b]=e[t],n=!0,o=0;o<d.length;o++)(!1&b||r>=b)&&Object.keys(c.O).every(e=>c.O[e](d[o]))?d.splice(o--,1):(n=!1,b<r&&(r=b));if(n){e.splice(t--,1);var i=f();void 0!==i&&(a=i)}}return a}})(),c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},(()=>{var e,a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;c.t=function(d,f){if(1&f&&(d=this(d)),8&f||"object"==typeof d&&d&&(4&f&&d.__esModule||16&f&&"function"==typeof d.then))return d;var b=Object.create(null);c.r(b);var t={};e=e||[null,a({}),a([]),a(a)];for(var r=2&f&&d;"object"==typeof r&&!~e.indexOf(r);r=a(r))Object.getOwnPropertyNames(r).forEach(e=>t[e]=()=>d[e]);return t.default=()=>d,c.d(b,t),b}})(),c.d=(e,a)=>{for(var d in a)c.o(a,d)&&!c.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((a,d)=>(c.f[d](e,a),a),[])),c.u=e=>70552===e?"static/chunks/"+e+"-0ea3c887937b5b51.js":27201===e?"static/chunks/"+e+"-0228042991534905.js":14753===e?"static/chunks/"+e+"-d911e24624c88fbc.js":26885===e?"static/chunks/"+e+"-00665cb87b9da098.js":45532===e?"static/chunks/"+e+"-12ed13c096e2a88e.js":30724===e?"static/chunks/"+e+"-627b849ed09f9cc5.js":97784===e?"static/chunks/"+e+"-7b90a17294840e32.js":93151===e?"static/chunks/f3524bc3-5c48b74c49ddeca0.js":41752===e?"static/chunks/fcc64ffe-2c36a6b45f81782c.js":16551===e?"static/chunks/"+e+"-d129ae0de4a04d69.js":"static/chunks/"+(({5571:"4e7df547",14749:"5db68f07",15968:"14860d7c",17203:"7a5af761",19019:"1496d684",20341:"cbbc2011",24364:"fbd0dcbb",32217:"1ccec16d",43245:"48c55e57",49954:"a856cf35",58669:"4f8e262c",65543:"685092b2",69136:"5be1c5d8",77008:"fab3cf95",80039:"f4bf7a28",82346:"273acdc0",83086:"8c93d9a0",95402:"f57f1d5e",95792:"f2442412"})[e]||e)+"."+({123:"b47ce56e923e1dc4",283:"4d4eca86c7abbec9",493:"737fdeba759d415a",1236:"ec9ed804634bb6cf",1697:"58e0d7523fdd2d52",1803:"8e2e63f39906fd1e",1847:"90012f795031fd15",2164:"d977bc7d148f1d9e",2351:"a2908f154b03857c",2656:"febbce72896f5701",2829:"ae5196f6cb23aa62",2842:"a5f90cf26f897bfc",3333:"74af47ffa6cb4c0e",3709:"a528fc6526bb2f1d",4123:"bf0bc76b87e0a5d0",4151:"b8833633f487c3d5",4435:"0da86212e371da10",4860:"be77046fb2b3a2bd",5020:"e7e6f35316da8d79",5336:"3fcd63f65fab9362",5559:"34e9e404696c82c0",5571:"fa34ffab38ba73b3",6178:"d88e2b68a2a1e09b",6685:"e23946c2ee579a76",7037:"d00688ceefb9f163",7123:"37f20f0e10894a3c",7140:"099e6f0e9722e08f",7317:"8e3ce1ce083425d8",7387:"f8cf2c36cf9b56dc",8563:"caa84c08a9db867a",8859:"fd4fa52883f05b54",9357:"084ac7f230f031a3",9560:"2e77d2dc6351b105",9634:"14999324d0128b0e",9858:"5eb9e5d689ee1188",9872:"bfcbe3b40e1ba7a3",10171:"8a96856626beb7ab",10667:"c192840fc1b34161",10742:"6cc4d6949065d15a",11160:"058f4a27a4ccab24",11595:"bbe40924d18958bf",11688:"8c27089c45c98079",11966:"36fab6445e33609a",12139:"23195d4025c449dd",12850:"a5f6e9e87d0f9abd",12906:"f2105800b7dc9127",12994:"ea3d4eeb1b15ce47",13131:"e73eb283f14ed397",13437:"0de1f2000c75f497",13462:"b710822936d6d995",14438:"153e2ffb65627b56",14749:"5a8891ea355512a8",15666:"fd13db7fdfc4db46",15736:"4a506a1463e65905",15930:"faf0ba15488aa8ff",15968:"67246c65e7776fa2",16271:"298647c24de4c656",16428:"da33ee8ca31c4d8f",16564:"310c443d14c6e84b",16596:"3c557433b77dc606",16669:"c0967e6ad7401c26",17012:"78f2a6b93e37bf95",17045:"cf6dade16b25ffc7",17093:"ec17cca1979a34c5",17203:"84e2df2bf9d6c4a4",17881:"2eba69b477a8c7f7",18024:"360cc54c2f070fa1",18236:"02c13f95242e1147",18276:"4e4950daea1be290",18291:"6c48a745093c472f",19015:"e0d16d65430522c1",19019:"da3969c029230434",19338:"65cfcfafa18f6aee",19656:"ee0407bae11dd49b",20118:"5e7942f9d596e02b",20171:"9c80c2880256be96",20186:"2a00fa806bf383a5",20341:"a1649a45ba0da5ab",20586:"7cd940a582176e37",20587:"d03a7c9ddae70251",20851:"383095475aa0becf",21063:"5cc29b3160a78147",21233:"fbc3473b758427be",21285:"944c1ff822774352",21290:"ef2762694c3c05e5",21343:"eb8e7aeda8b2b933",21546:"8b2a80eefde810c5",21558:"e72df6c050a17223",21785:"19b23ee028f6262f",21789:"ad6ff228e2917e82",22190:"149dd0799cbcba06",22463:"8f0a0111946c5e37",22485:"9f11764648028b9d",23338:"01f537c5dfd51363",23895:"a3ad3684a5b39547",24021:"e608f829b761ed19",24364:"a59ebe9142818688",24562:"f31cdddfe04624d0",24566:"605ccb37c2b09b7f",24976:"aea37ff8444ce6ca",25018:"51cf65637b375c88",25239:"e13f63bff8d7f459",25934:"45b477fc38b233d5",26558:"337afe8cd6c7f7e2",26594:"9cd92c85c51a3621",26604:"c5f0e687052abb59",27004:"7265fd004542a6ae",27261:"3ad525eea1f52dc3",27509:"8f83a84fed1129f3",27571:"33642de22553efae",27783:"70af75ac091e5b31",27929:"e9a99a263c294b0a",27992:"daf28998ef0714a0",28025:"1025ed4465b8b88e",28244:"3a5e72d3a4048558",28247:"e5faa56338e43301",29047:"65b677c7f3e6459f",29708:"0f9c08d7ca8a6036",30285:"7b6b107412564a45",30433:"919c34e206690a26",30550:"a8db081db527730d",30682:"b12a9bef588e7b03",31035:"06568e4accfa4664",31135:"8f2dbe06dab9d206",31204:"a8d94d78458557d5",31467:"9f8adfa602f97fcf",31570:"131868ccedfef522",31618:"663e0a27f529a7b5",31635:"fcbdbf0d1e8271e8",31807:"cf2a0cbbe7eedf32",32092:"f10268018cf52339",32217:"31e64d0e8696d298",32411:"6d37c2b4b2f2efb7",32729:"f7ddbed25cb15da4",32800:"6cee7ff19ca516a7",32900:"57aa606259738bd7",33187:"13c12f5c0821ac57",33316:"6b5f8f344baf7a8a",33456:"5499eb8e892b110a",33665:"804ece4d6c6e4eca",34037:"e8e16348aca40958",34414:"30d095dd419ccded",34500:"58eb096afca7a3d2",34520:"1a6c6a7c421b0ff3",34565:"58e4d12c607709a2",34780:"ddc8d0403f86cd76",34787:"33a6fe2b98db58fd",34966:"dde9356d869e2a0f",35246:"75a72283c3c974e2",35362:"80b6e5545194566a",35733:"cf4ac3f521c0b06d",35901:"aa7ec713edff30e2",35918:"8e970e73c59cd315",36301:"0598cc26dfacc4a8",36531:"4576573d1554d0bc",36622:"2ecd0754a1dd1f10",36884:"6af20de227ae01d6",36989:"9a0a62410bf9ec4e",37697:"9af6ac899a8114c0",37802:"6e3d9ec6ded108e7",38176:"e1818cbc0df1edff",38259:"d83981da5c72c88a",38277:"f24d85bdc720318e",38366:"e6e0132b8ba873d6",38513:"2edbf8332418852a",38542:"1b0e31f1f0e79950",38843:"bfbf5f2c316123fb",39012:"d1e022d895c7700f",40294:"82b8b706bf8526d2",41333:"464f95d32db59d47",41796:"b775772add38f765",42515:"0879489433824ebb",43203:"0a24d8e1e04b23e1",43245:"fd54cc2dd98a53cf",43335:"71662f3469b367dd",43520:"4abb22e9bfdeedab",44980:"c17d605b4685ba2d",44996:"e5fc9af9e1283894",45025:"bdb2a46a29ea6a7f",45300:"bac57dcaf4b1ae63",45939:"d37b9465101a9a32",45966:"ece098ca2637c63f",46366:"d1d9d65b646509b3",46778:"cbd78e2a3b8eb454",46783:"b9ce59941eb5c767",46965:"2ed4c28224e29499",47066:"214cf62dd898ea16",47492:"6b259d6ee0ddf4d8",47613:"946226a67a1e5cd1",47781:"f25170364c271869",47914:"11c71123fcab1d66",47947:"471d5da6bb51de27",48504:"2efb153cab87148c",48782:"4ca261e8e23a8983",49114:"19ce7b83efab6d05",49294:"fb738cc8f6f972c0",49307:"9ac8482ed1916e3d",49312:"b4ee106f6ca8df0d",49406:"f77074487dddb735",49515:"c8964ec6f6c710d1",49812:"9bb0091da44f3fb0",49954:"22ac9c291887443d",50681:"5621dcb316c1dbc0",51094:"83d8278e86159ae3",51159:"cd7d830da0e9a7d2",52644:"999d7bbfb0c77212",52786:"cca2f572d4b83716",53012:"8ea1cc9b669d4071",53323:"19d0c542f89ec743",53854:"80e3b10f38882782",53988:"a7e066e48567fceb",54102:"0057304a9b7c36fd",54176:"1c209b5691615c2d",55034:"91a22d75a4896d26",55156:"70eba4bb5853878e",55683:"c52199afe13b15ed",55973:"c413a5ed34ef941e",57041:"8e2e63f39906fd1e",57660:"e59694e7ee1dda97",58401:"3641b4aeb0a1db04",58633:"6d322b2074b1cd5b",58669:"5239eb8dd5a3486c",58699:"364d357d33fcb52f",59848:"e7330c096662be59",59865:"a0136e48383160ce",59907:"ad1253ca7a3c3cea",59944:"1c8f7a84b714a678",60206:"130abcb08ea9a564",60238:"36a32788f3ca64fe",60289:"cd3b3bd12d5566c1",60442:"b031854728be46ff",61719:"b6f17cb6498eec77",61728:"c943fe98606d2f24",61963:"fd130ba09dd25e2e",62608:"4f3ab017447b17dc",62681:"86ea4a7f1240e2e6",63255:"262cd1e7cd35ffe9",63306:"03cdfc8e5118dd97",64663:"9974d163d89c8e9d",64733:"0790a2c763961b3f",65317:"ab0c5ecb4164b291",65543:"a92297193082467c",65635:"f8007956118a4b5f",65838:"acacc76f9932a395",66109:"2a6ffd90bf3c50be",66166:"5d9b6692f44d4789",66420:"ed3b252047bf2d99",66895:"77a113ea7e9e0e19",66962:"e49d2beb52f4ccd7",67100:"6729ae254487b545",67142:"d2c7895f2f0c0ddb",67458:"930b27b1ef06fd49",67633:"7cfc302383a77925",67676:"7e4d1ac29a054c5a",67966:"9baea607f9d83322",67987:"eb24309f5b6a773f",68067:"b108a5ae88fd156b",68906:"e81b3cb0a0eb3c6e",69083:"a8e8997a24b8507c",69136:"7bc0b66e195430ba",69477:"5b79cd575f93298f",69763:"003df47b4ee38644",70110:"a55f51e24556d059",70488:"dbde26374c2c08a2",70777:"9cde6b69988ac88e",70899:"75cac02cc1311c86",70901:"76003b037a2c2ad2",71547:"6f736dbb3265d938",71587:"942ffd492f15bdd6",71627:"4fa787d284261d08",71762:"0abb31b68e350f6b",72731:"5ac0a9cf8a2a916b",72740:"022c79c58cd39306",72977:"70c698df7ec867d8",73315:"46afbb4c2ae67b44",73354:"5ac4dbd55effe981",73506:"b9c053e2335b6084",73886:"c398daab959c90db",74250:"637853b68a0bb5dc",74312:"8d075f77e65364f2",74522:"ed3762dbb6b389b0",74962:"c0f9177875e7f100",75493:"5c2f7c166c002ee9",75693:"47f44d601521bc1b",75847:"0a83259a1ed4c4db",75958:"d9640c4cd9cdd74f",76399:"bb1a5dff754b7126",77008:"fe96b7655475e404",77768:"d5b6fe554fd62dbb",78425:"ee8445a0943525f2",78453:"3e109458064b76e4",78931:"2d78541331d4cf71",79035:"a682e63d1a6c820f",79422:"8e2e63f39906fd1e",79581:"3d0cbc1897c20b80",79788:"9cb75de83877d3a4",79806:"21f1d23ca273000d",79983:"6a9732776a2b07d1",80039:"b7b8926c9e98f166",80043:"fc4c6fd07c8c702c",80053:"cccea694a8be7b09",80192:"0b53419821781f47",80447:"cbc8dcd0610f9340",80478:"75454fe2622f8d60",80514:"c180393ccbb2f62e",80559:"4d1ea1e2bde6d65b",80653:"ba5596638b5efe48",80934:"cadd9fcd52d99096",81014:"7b65385965b83d33",81078:"d1b12131827159fc",81768:"13a175a018951bc8",82171:"e532a5af5a92acb9",82292:"2fb55f1ea9249601",82346:"d5de461383d78bd3",82666:"805e44c88f89e4f5",83086:"cf3390a953e4e275",83177:"4b3f31d9e183d57a",83561:"8959cb05be5bba5c",83842:"2211d720bd76fa0a",83978:"78a0d317cfb0f7fa",84553:"26f4216de4e92834",85120:"e1418b8e76b49092",85135:"45ba2b68ef521957",85350:"c86c2e91cf3d247e",85947:"c813bf8bc6e1d675",86533:"96712909323ba4fd",86749:"a4033144c9f1db80",86978:"fcbdaf718d4b4cb8",88087:"6ae9d65d22727e7d",88298:"33f9c586ab229ba6",88343:"f95f9ca9ad905248",88439:"528a166b33a003d3",88958:"3f88a829e6ab9f1d",89091:"e6f60560ceac7848",89231:"7bd196023a80ac20",89379:"ccf569c6fdc84136",89486:"ae3ab6537c32a471",90040:"a0d185d54c4405d8",90179:"1fbab23e5d44b4f0",90669:"fea27affbd10509b",90740:"15b9eae85318ce19",91246:"9377a763aead9164",91468:"5a3936bb7fa502b7",91469:"056f34e448b9e3e5",91709:"ed3bfd285c518df1",91848:"089cc7d1be73e1ca",92147:"1340020e2f5cbef2",92924:"d50fc7f02672d2e6",92966:"b84b80410d014b96",93008:"7c404d8dceb67ff3",93722:"8500c1244c0aef9d",93996:"d810c0882af7cbe0",94314:"3bd48a7f7f885bb5",94400:"0d371a4d306a614b",94521:"f712b07f8f7651a9",94568:"2a2be37b4884c8cd",94725:"da1eff47b3e365cc",94867:"0ee353b2db6bf4f7",95305:"440c9cb9053df6bf",95402:"c345ce68aa5052a7",95470:"c594ecf25a203664",95792:"10f4124238152859",95963:"67eefa12cb90855f",96028:"cdbf36dca753e70f",96132:"ab9b9433c7b2fa1c",96230:"bf5cc20b343c438e",96309:"5c0610a0df7eaade",96554:"e768705a9558aa17",96623:"dd689039b85a3f89",96758:"b001e8afcb01a36d",97008:"ccf2a72ddb49895c",97229:"0b004c237f17530f",97543:"f224959967762c0b",97829:"bed98706765262d6",97974:"2157a18e2a93432f",98171:"be964141d5e6052f",98309:"223ad4f3e01558ae",98340:"8d1870938669f76e",99373:"111493dc260a2a04",99435:"73c4d651008c0493",99501:"c56a4f18b2fdff6a",99801:"9d73f814d33c5a86"})[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={},a="_N_E:";c.l=(d,f,b,t)=>{if(e[d])return void e[d].push(f);if(void 0!==b)for(var r,n,o=document.getElementsByTagName("script"),i=0;i<o.length;i++){var s=o[i];if(s.getAttribute("src")==d||s.getAttribute("data-webpack")==a+b){r=s;break}}r||(n=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,c.nc&&r.setAttribute("nonce",c.nc),r.setAttribute("data-webpack",a+b),r.src=c.tu(d)),e[d]=[f];var u=(a,c)=>{r.onerror=r.onload=null,clearTimeout(l);var f=e[d];if(delete e[d],r.parentNode&&r.parentNode.removeChild(r),f&&f.forEach(e=>e(c)),a)return a(c)},l=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),n&&document.head.appendChild(r)}})(),c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;c.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),c.tu=e=>c.tt().createScriptURL(e),c.p="/_next/",(()=>{var e={78068:0,53169:0,32492:0,41282:0};c.f.j=(a,d)=>{var f=c.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(32492|41282|53169|78068)$/.test(a))e[a]=0;else{var b=new Promise((c,d)=>f=e[a]=[c,d]);d.push(f[2]=b);var t=c.p+c.u(a),r=Error();c.l(t,d=>{if(c.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),t=d&&d.target&&d.target.src;r.message="Loading chunk "+a+" failed.\n("+b+": "+t+")",r.name="ChunkLoadError",r.type=b,r.request=t,f[1](r)}},"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,[t,r,n]=d,o=0;if(t.some(a=>0!==e[a])){for(f in r)c.o(r,f)&&(c.m[f]=r[f]);if(n)var i=n(c)}for(a&&a(d);o<t.length;o++)b=t[o],c.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return c.O(i)},d=self.webpackChunk_N_E=self.webpackChunk_N_E||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})(),c.nc=void 0})();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chorus-aidlc/chorus",
3
- "version": "0.16.3",
3
+ "version": "0.17.0",
4
4
  "description": "The Agent Harness for AI-Human Collaboration — session lifecycle, task state, sub-agent orchestration, observability, and failure recovery",
5
5
  "homepage": "https://github.com/Chorus-AIDLC/Chorus",
6
6
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "chorus",
3
3
  "description": "Chorus AI-DLC collaboration platform plugin for Claude Code. Automates session lifecycle, provides MCP tools for PM/Developer/Admin workflows, and enables multi-agent team observability.",
4
- "version": "0.16.3",
4
+ "version": "0.17.0",
5
5
  "author": {
6
6
  "name": "Chorus-AIDLC"
7
7
  },
@@ -234,8 +234,51 @@ cmd_mcp_tool() {
234
234
  local tool_name="${1:-}"
235
235
  local arguments="${2:-{\}}"
236
236
  [ -n "$tool_name" ] || die "Usage: chorus-api.sh mcp-tool <tool_name> [arguments_json]"
237
+
238
+ # Decide ONCE whether we can delegate to the native `chorus` CLI. `chorus mcp`
239
+ # (and profile-by-name/uuid selection) only exists in chorus >= 0.17.0, so
240
+ # version-gate: `chorus --version` prints a bare X.Y.Z; parse the first
241
+ # MAJOR.MINOR and accept major>0 OR (major==0 && minor>=17). Bash 3.2-safe.
242
+ # CHORUS_MCP_NO_CLI forces the curl path.
243
+ local _cli_usable=0 _cli_ver="" _cli_major _cli_minor
244
+ if [ -z "${CHORUS_MCP_NO_CLI:-}" ] && command -v chorus >/dev/null 2>&1; then
245
+ _cli_ver=$(chorus --version 2>/dev/null | head -1 | tr -d '\r' || true)
246
+ _cli_major=$(printf '%s' "$_cli_ver" | sed -n 's/^[^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1/p')
247
+ _cli_minor=$(printf '%s' "$_cli_ver" | sed -n 's/^[^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\2/p')
248
+ if [ -n "$_cli_major" ] && [ -n "$_cli_minor" ] && { [ "$_cli_major" -gt 0 ] || [ "$_cli_minor" -ge 17 ]; }; then
249
+ _cli_usable=1
250
+ fi
251
+ fi
252
+
253
+ # Profile path (PREFERRED): CHORUS_AGENT_PROFILE + a usable CLI -> delegate by
254
+ # profile. The CLI reads this agent's key from ~/.chorus/daemon.json, so
255
+ # CHORUS_URL/CHORUS_API_KEY need NOT be set. When the CLI is absent/old we fall
256
+ # through to the url+key path (the documented fallback).
257
+ if [ -n "${CHORUS_AGENT_PROFILE:-}" ] && [ "$_cli_usable" -eq 1 ]; then
258
+ local cli_status=0
259
+ chorus mcp call "$tool_name" "$arguments" --agent "$CHORUS_AGENT_PROFILE" || cli_status=$?
260
+ return "$cli_status"
261
+ fi
262
+
263
+ # url+key path. This wrapper stays the single credential resolver, so pass
264
+ # CHORUS_URL/CHORUS_API_KEY explicitly. Prefer the CLI when usable (a byte-exact
265
+ # drop-in for this curl path, #505); the fallback never triggers on a call
266
+ # *failure* — a present-but-erroring `chorus mcp call` propagates its stdout,
267
+ # stderr, and exit code verbatim (no curl retry, no double request).
237
268
  require_env
238
269
  ensure_state
270
+ if [ "$_cli_usable" -eq 1 ]; then
271
+ local cli_status=0
272
+ chorus mcp call "$tool_name" "$arguments" \
273
+ --url "$CHORUS_URL" --api-key "$CHORUS_API_KEY" || cli_status=$?
274
+ return "$cli_status"
275
+ fi
276
+ if [ -z "${CHORUS_MCP_NO_CLI:-}" ] && command -v chorus >/dev/null 2>&1; then
277
+ # `chorus` is present but too old for `chorus mcp` -> actionable upgrade error
278
+ # (no silent curl fallback).
279
+ echo "ERROR: chorus CLI version '${_cli_ver:-unknown}' is too old; 'chorus mcp' requires chorus >= 0.17.0. Upgrade with: npm install -g @chorus-aidlc/chorus" >&2
280
+ return 1
281
+ fi
239
282
 
240
283
  local mcp_url="${CHORUS_URL}/api/mcp"
241
284
  local auth_header="Authorization: Bearer ${CHORUS_API_KEY}"
@@ -249,7 +292,7 @@ cmd_mcp_tool() {
249
292
  # Step 1: Initialize MCP session
250
293
  local init_payload
251
294
  init_payload=$(cat <<JSONEOF
252
- {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.1.1"}}}
295
+ {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.17.0"}}}
253
296
  JSONEOF
254
297
  )
255
298
 
@@ -125,11 +125,11 @@ if [ "$CHORUS_OPENSPEC_ACTIVE" = "1" ]; then
125
125
 
126
126
  OpenSpec mode is **active** for this session. When the proposal / develop / yolo skills reach an OpenSpec-aware step, load the openspec-aware skill at \`.claude/skills/openspec-aware/SKILL.md\` and follow §3 (OpenSpec authoring) — do NOT re-run the §1 detection block, the answer is already known.
127
127
 
128
- Critical rule (openspec-aware §2 Rule 1): document mirror calls (\`chorus_pm_add_document_draft\` / \`chorus_pm_update_document_draft\` / \`chorus_pm_update_document\`) MUST go through \`chorus-api.sh mcp-tool\` with \`content\` produced by \`json_encode_file\`. Do NOT invoke these MCP tools directly with hand-typed \`content\` in OpenSpec mode."
128
+ Critical rule (openspec-aware §2 Rule 1): document mirror calls (\`chorus_pm_add_document_draft\` / \`chorus_pm_update_document_draft\` / \`chorus_pm_update_document\`) MUST fill \`content\` from the local file — prefer \`chorus mcp call <tool> '<json>' --arg-file content=<file>\`, falling back to \`chorus-api.sh mcp-tool\` with \`json_encode_file\` when \`chorus\` is not on PATH. Do NOT invoke these MCP tools directly with hand-typed \`content\` in OpenSpec mode."
129
129
  else
130
130
  CONTEXT="${CONTEXT}
131
131
 
132
- OpenSpec mode is **inactive** for this session. The proposal / develop / yolo skills follow their free-form path; do NOT scaffold \`openspec/changes/\`, do NOT add an \`OpenSpec change slug:\` line to proposal descriptions, and do NOT route document mirror calls through \`chorus-api.sh\`."
132
+ OpenSpec mode is **inactive** for this session. The proposal / develop / yolo skills follow their free-form path; do NOT scaffold \`openspec/changes/\`, do NOT add an \`OpenSpec change slug:\` line to proposal descriptions, and do NOT route document mirror calls through the \`chorus\` CLI or \`chorus-api.sh\`."
133
133
  if [ "$OPENSPEC_OPTOUT" = "1" ]; then
134
134
  CONTEXT="${CONTEXT}
135
135
 
@@ -149,7 +149,8 @@ CONTEXT="${CONTEXT}
149
149
 
150
150
  ## Quick Reference
151
151
 
152
- - **Idea Tracker**: Shows up to 10 most recently updated ideas. Use chorus_get_ideas() for full list.
152
+ - **Long-horizon work**: follow AI-DLC via the Chorus skill (idea proposal → task → verify) rather than coding ad hoc, and use chorus_search to locate the specific work the user refers to across ideas/proposals/tasks/docs.
153
+ - **Active Projects**: checkin.activeProjects shows which projects you're advancing ideas in, with an active-idea count per project — it is a location map, not a per-idea to-do list. Use chorus_search to find the specific work the user refers to (across ideas/proposals/tasks/docs), and chorus_get_my_assignments for the full per-idea list.
153
154
  - **Sessions**: Auto-managed by hooks. Do NOT call chorus_create_session/chorus_close_session for sub-agents. See /chorus:develop.
154
155
  - **Notifications**: chorus_get_notifications() fetches and auto-marks read. See /chorus.
155
156
  - **Project Groups**: chorus_get_project_groups() before creating projects. See /chorus."
@@ -0,0 +1,244 @@
1
+ #!/usr/bin/env bash
2
+ # test-mcp-cli-delegation.sh — prove the prefer-CLI / curl-fallback delegation
3
+ # added to every bash MCP wrapper (Decision 1 of the "retire bootstrap + migrate
4
+ # MCP path" tech design). One shared harness covers all four bash surfaces:
5
+ #
6
+ # Claude Code : public/chorus-plugin/bin/chorus-api.sh (mcp-tool)
7
+ # Kiro : public/kiro-plugin/bin/chorus-api.sh (mcp-tool)
8
+ # Codex : plugins/chorus/hooks/chorus-mcp-call.sh
9
+ # Pi : packages/chorus-pi/bin/chorus-mcp-call.sh
10
+ #
11
+ # (The dsh wrapper is a Node script — covered by tests/mcp-call-delegation.test.ts.)
12
+ #
13
+ # Contract asserted per surface:
14
+ # A. `chorus` on PATH (>= 0.17.0) -> delegates `chorus mcp call <tool> <json> --url … --api-key …`,
15
+ # propagating its stdout verbatim and exit 0.
16
+ # B. `chorus` present but FAILING -> propagates its non-zero exit (7) and stderr;
17
+ # NEVER falls back to curl (no double request / masked failure).
18
+ # C. CHORUS_MCP_NO_CLI=1 (escape hatch) -> ignores the CLI, takes the curl path.
19
+ # D. `chorus` absent -> takes the curl path.
20
+ # E. `chorus` present at a higher version (1.2.0, major>0) -> still delegates.
21
+ # F. `chorus` present but TOO OLD (0.16.4) -> version-gate error naming
22
+ # `npm install -g @chorus-aidlc/chorus` + the >= 0.17.0 floor; non-zero exit;
23
+ # NO `chorus mcp call` delegation and NO curl fallback.
24
+ # G. `chorus` present but version UNPARSEABLE -> same upgrade error, no delegation.
25
+ #
26
+ # Bash 3.2 compatible. No `set -e`: several scenarios intentionally run commands
27
+ # that exit non-zero, and we assert on the captured exit code.
28
+
29
+ set -uo pipefail
30
+
31
+ ROOT=$(cd "$(dirname "$0")/../../../.." && pwd)
32
+ TMP=$(mktemp -d)
33
+ trap 'rm -rf "$TMP"' EXIT
34
+
35
+ ORIG_PATH="$PATH"
36
+
37
+ # ---- shared credentials + throwaway state locations -----------------------
38
+ export CHORUS_URL="http://127.0.0.1:1" # guaranteed-unreachable -> curl fails fast
39
+ export CHORUS_API_KEY="cho_testkey"
40
+ export CHORUS_PLUGIN_STATE_ROOT="$TMP/global" # CC state (via chorus-paths.sh)
41
+ export CHORUS_STATE_DIR="$TMP/state" # Kiro state (direct)
42
+ export CLAUDE_PROJECT_DIR="$TMP/proj"
43
+ export CHORUS_SESSION_ID="testsess"
44
+ export CHORUS_FAKE_ARGS="$TMP/fake-args"
45
+ export CHORUS_FAKE_MARKER="$TMP/fake-marker"
46
+ mkdir -p "$CLAUDE_PROJECT_DIR"
47
+
48
+ TOOL="chorus_checkin"
49
+ JSON='{"foo":"bar"}' # no spaces -> deterministic "$*" comparison in the fake
50
+ EXPECTED_ARGS="mcp call $TOOL $JSON --url $CHORUS_URL --api-key $CHORUS_API_KEY"
51
+ # Profile-path (CHORUS_AGENT_PROFILE) expectations. A real agentName with a space
52
+ # proves the wrapper quotes it as a single argv element (the fake joins argv with
53
+ # spaces, so a broken quote would show up as extra tokens here).
54
+ PROFILE="Admin Claude"
55
+ EXPECTED_PROFILE_ARGS="mcp call $TOOL $JSON --agent $PROFILE"
56
+
57
+ # ---- fake `chorus` binary -------------------------------------------------
58
+ # `chorus --version` prints $CHORUS_FAKE_VERSION (a chosen X.Y.Z, or garbage to
59
+ # exercise the unparseable branch) and exits 0 WITHOUT touching the marker/args —
60
+ # so the marker proves a real `chorus mcp call` delegation, never a version probe.
61
+ # For any other argv it records its argv (joined) + a marker proving it ran, then
62
+ # succeeds with a sentinel on stdout or fails (exit 7) with a sentinel on stderr.
63
+ FAKEBIN="$TMP/fakebin"
64
+ mkdir -p "$FAKEBIN"
65
+ cat > "$FAKEBIN/chorus" <<'FAKE'
66
+ #!/usr/bin/env bash
67
+ if [ "$1" = "--version" ]; then
68
+ printf '%s\n' "${CHORUS_FAKE_VERSION:-0.17.0}"
69
+ exit 0
70
+ fi
71
+ printf '%s\n' "$*" > "$CHORUS_FAKE_ARGS"
72
+ : > "$CHORUS_FAKE_MARKER"
73
+ if [ "${CHORUS_FAKE_MODE:-ok}" = "fail" ]; then
74
+ printf 'CHORUS_CLI_SENTINEL_FAIL\n' >&2
75
+ exit 7
76
+ fi
77
+ printf 'CHORUS_CLI_SENTINEL_OK\n'
78
+ exit 0
79
+ FAKE
80
+ chmod +x "$FAKEBIN/chorus"
81
+
82
+ # ---- a sanitized PATH with every real tool EXCEPT `chorus` ----------------
83
+ # Guarantees `command -v chorus` is false for scenario D even if a real chorus
84
+ # happens to be installed on the host, while keeping curl/sed/mkdir/etc. available.
85
+ CLEANBIN="$TMP/cleanbin"
86
+ mkdir -p "$CLEANBIN"
87
+ _oifs="$IFS"; IFS=:
88
+ for _d in $ORIG_PATH; do
89
+ [ -d "$_d" ] || continue
90
+ for _f in "$_d"/*; do
91
+ [ -e "$_f" ] || continue
92
+ _b="${_f##*/}"
93
+ [ "$_b" = "chorus" ] && continue
94
+ [ -e "$CLEANBIN/$_b" ] || ln -s "$_f" "$CLEANBIN/$_b" 2>/dev/null || true
95
+ done
96
+ done
97
+ IFS="$_oifs"
98
+
99
+ # ---- assertion helpers ----------------------------------------------------
100
+ FAILS=0
101
+ ok() { printf ' ok %s\n' "$1"; }
102
+ bad() { printf ' FAIL %s\n' "$1"; FAILS=$((FAILS + 1)); }
103
+ contains() { case "$1" in *"$2"*) return 0 ;; *) return 1 ;; esac; }
104
+
105
+ # run_case <PATHVAL> <hatch:0|1> <fmode:ok|fail> [version] -> stdout on fd1, stderr to $TMP/err
106
+ # [version] is what the fake `chorus --version` prints (default 0.17.0 = delegates).
107
+ run_case() {
108
+ (
109
+ export PATH="$1"
110
+ export CHORUS_FAKE_MODE="$3"
111
+ export CHORUS_FAKE_VERSION="${4:-0.17.0}"
112
+ if [ "$2" = "1" ]; then export CHORUS_MCP_NO_CLI=1; else unset CHORUS_MCP_NO_CLI; fi
113
+ if [ "$MODE" = "mcp-tool" ]; then
114
+ exec bash "$WRAPPER" mcp-tool "$TOOL" "$JSON"
115
+ else
116
+ exec bash "$WRAPPER" "$TOOL" "$JSON"
117
+ fi
118
+ )
119
+ }
120
+
121
+ # run_profile_case <PATHVAL> <unset_urlkey:0|1> -> exercises CHORUS_AGENT_PROFILE
122
+ # with a usable CLI (0.17.0). unset_urlkey=1 proves profile mode needs no url/key;
123
+ # =0 proves the profile is PREFERRED even when url/key are also present.
124
+ run_profile_case() {
125
+ (
126
+ export PATH="$1"
127
+ export CHORUS_FAKE_MODE="ok"
128
+ export CHORUS_FAKE_VERSION="0.17.0"
129
+ unset CHORUS_MCP_NO_CLI
130
+ export CHORUS_AGENT_PROFILE="$PROFILE"
131
+ if [ "$2" = "1" ]; then unset CHORUS_URL CHORUS_API_KEY; fi
132
+ if [ "$MODE" = "mcp-tool" ]; then
133
+ exec bash "$WRAPPER" mcp-tool "$TOOL" "$JSON"
134
+ else
135
+ exec bash "$WRAPPER" "$TOOL" "$JSON"
136
+ fi
137
+ )
138
+ }
139
+
140
+ # ---- per-surface scenarios ------------------------------------------------
141
+ while read -r NAME MODE REL; do
142
+ [ -n "${NAME:-}" ] || continue
143
+ case "$NAME" in \#*) continue ;; esac
144
+ WRAPPER="$ROOT/$REL"
145
+ if [ ! -f "$WRAPPER" ]; then bad "$NAME: wrapper not found: $REL"; continue; fi
146
+ printf ' %s (%s)\n' "$NAME" "$REL"
147
+
148
+ # A. present + ok -> delegates, verbatim stdout, verbatim args, exit 0
149
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
150
+ OUT=$(run_case "$FAKEBIN:$ORIG_PATH" 0 ok 2>"$TMP/err"); RC=$?
151
+ contains "$OUT" "CHORUS_CLI_SENTINEL_OK" && ok "A: delegates stdout verbatim" \
152
+ || bad "A: stdout missing CLI sentinel (got: $OUT)"
153
+ GOTARGS=$(head -1 "$CHORUS_FAKE_ARGS" 2>/dev/null || true)
154
+ [ "$GOTARGS" = "$EXPECTED_ARGS" ] && ok "A: forwards args + explicit creds" \
155
+ || bad "A: arg mismatch (want [$EXPECTED_ARGS] got [$GOTARGS])"
156
+ [ "$RC" = "0" ] && ok "A: exit 0 propagated" || bad "A: exit $RC != 0"
157
+
158
+ # B. present + fail -> propagate exit 7 and stderr, NO curl fallback
159
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
160
+ OUT=$(run_case "$FAKEBIN:$ORIG_PATH" 0 fail 2>"$TMP/err"); RC=$?
161
+ [ "$RC" = "7" ] && ok "B: propagates failing exit 7 (no curl retry)" \
162
+ || bad "B: exit $RC != 7 (fallback masked the failure?)"
163
+ [ -e "$CHORUS_FAKE_MARKER" ] && ok "B: CLI was invoked" || bad "B: CLI not invoked"
164
+ contains "$(cat "$TMP/err" 2>/dev/null)" "CHORUS_CLI_SENTINEL_FAIL" \
165
+ && ok "B: CLI stderr propagated" || bad "B: CLI stderr not propagated"
166
+
167
+ # C. escape hatch -> skip CLI, take curl path
168
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
169
+ OUT=$(run_case "$FAKEBIN:$ORIG_PATH" 1 ok 2>"$TMP/err"); RC=$?
170
+ [ ! -e "$CHORUS_FAKE_MARKER" ] && ok "C: CHORUS_MCP_NO_CLI skips the CLI" \
171
+ || bad "C: CLI invoked despite escape hatch"
172
+ contains "$OUT" "CHORUS_CLI_SENTINEL_OK" && bad "C: delegated despite escape hatch" \
173
+ || ok "C: no delegation (curl path)"
174
+
175
+ # D. absent -> take curl path
176
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
177
+ OUT=$(run_case "$CLEANBIN" 0 ok 2>"$TMP/err"); RC=$?
178
+ [ ! -e "$CHORUS_FAKE_MARKER" ] && ok "D: absent chorus -> no delegation" \
179
+ || bad "D: CLI invoked when absent"
180
+ contains "$OUT" "CHORUS_CLI_SENTINEL_OK" && bad "D: delegated when absent" \
181
+ || ok "D: fell back to curl path"
182
+
183
+ # E. present at a higher version (1.2.0, major>0) -> still delegates
184
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
185
+ OUT=$(run_case "$FAKEBIN:$ORIG_PATH" 0 ok 1.2.0 2>"$TMP/err"); RC=$?
186
+ contains "$OUT" "CHORUS_CLI_SENTINEL_OK" && ok "E: v1.2.0 delegates" \
187
+ || bad "E: v1.2.0 did not delegate (got: $OUT)"
188
+ [ -e "$CHORUS_FAKE_MARKER" ] && ok "E: CLI mcp-call invoked" || bad "E: CLI not invoked"
189
+ [ "$RC" = "0" ] && ok "E: exit 0 propagated" || bad "E: exit $RC != 0"
190
+
191
+ # F. present but too old (0.16.4) -> upgrade error, non-zero, NO delegation, NO curl
192
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
193
+ OUT=$(run_case "$FAKEBIN:$ORIG_PATH" 0 ok 0.16.4 2>"$TMP/err"); RC=$?
194
+ ERR=$(cat "$TMP/err" 2>/dev/null || true)
195
+ [ "$RC" != "0" ] && ok "F: too-old exits non-zero" || bad "F: too-old exited 0"
196
+ [ ! -e "$CHORUS_FAKE_MARKER" ] && ok "F: no mcp-call delegation" || bad "F: delegated to an old CLI"
197
+ contains "$OUT" "CHORUS_CLI_SENTINEL_OK" && bad "F: delegated stdout leaked" \
198
+ || ok "F: no delegated stdout"
199
+ contains "$ERR" "npm install -g @chorus-aidlc/chorus" \
200
+ && ok "F: error names npm upgrade command" || bad "F: error missing npm upgrade command"
201
+ contains "$ERR" "0.17.0" && ok "F: error names >= 0.17.0 floor" || bad "F: error missing floor"
202
+ contains "$ERR" "MCP initialize failed" && bad "F: fell back to curl (gate leaked)" \
203
+ || ok "F: no curl fallback"
204
+
205
+ # G. present but version unparseable -> same upgrade error, non-zero, NO delegation
206
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
207
+ OUT=$(run_case "$FAKEBIN:$ORIG_PATH" 0 ok "not-a-version" 2>"$TMP/err"); RC=$?
208
+ ERR=$(cat "$TMP/err" 2>/dev/null || true)
209
+ [ "$RC" != "0" ] && ok "G: garbage version exits non-zero" || bad "G: garbage version exited 0"
210
+ [ ! -e "$CHORUS_FAKE_MARKER" ] && ok "G: no delegation on garbage version" \
211
+ || bad "G: delegated on garbage version"
212
+ contains "$ERR" "npm install -g @chorus-aidlc/chorus" \
213
+ && ok "G: garbage error names npm upgrade command" || bad "G: garbage error missing npm upgrade"
214
+
215
+ # H. CHORUS_AGENT_PROFILE + usable CLI, NO url/key -> delegates by profile,
216
+ # forwarding `--agent <profile>` (and NOT --url/--api-key), exit 0.
217
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
218
+ OUT=$(run_profile_case "$FAKEBIN:$ORIG_PATH" 1 2>"$TMP/err"); RC=$?
219
+ contains "$OUT" "CHORUS_CLI_SENTINEL_OK" && ok "H: profile-only delegates (no url/key)" \
220
+ || bad "H: profile-only did not delegate (out: $OUT; err: $(cat "$TMP/err" 2>/dev/null))"
221
+ GOTARGS=$(head -1 "$CHORUS_FAKE_ARGS" 2>/dev/null || true)
222
+ [ "$GOTARGS" = "$EXPECTED_PROFILE_ARGS" ] && ok "H: forwards --agent <profile>" \
223
+ || bad "H: profile arg mismatch (want [$EXPECTED_PROFILE_ARGS] got [$GOTARGS])"
224
+ [ "$RC" = "0" ] && ok "H: exit 0 propagated" || bad "H: exit $RC != 0"
225
+
226
+ # I. CHORUS_AGENT_PROFILE is PREFERRED over url+key when both are set.
227
+ rm -f "$CHORUS_FAKE_MARKER" "$CHORUS_FAKE_ARGS"
228
+ OUT=$(run_profile_case "$FAKEBIN:$ORIG_PATH" 0 2>"$TMP/err"); RC=$?
229
+ GOTARGS=$(head -1 "$CHORUS_FAKE_ARGS" 2>/dev/null || true)
230
+ [ "$GOTARGS" = "$EXPECTED_PROFILE_ARGS" ] && ok "I: profile preferred over url+key" \
231
+ || bad "I: expected --agent delegation, got [$GOTARGS]"
232
+ done <<EOF
233
+ CC mcp-tool public/chorus-plugin/bin/chorus-api.sh
234
+ KIRO mcp-tool public/kiro-plugin/bin/chorus-api.sh
235
+ CODEX direct plugins/chorus/hooks/chorus-mcp-call.sh
236
+ PI direct packages/chorus-pi/bin/chorus-mcp-call.sh
237
+ EOF
238
+
239
+ echo ""
240
+ if [ "$FAILS" -gt 0 ]; then
241
+ echo "mcp-cli-delegation: $FAILS check(s) FAILED"
242
+ exit 1
243
+ fi
244
+ echo "mcp-cli-delegation: all bash-wrapper delegation checks PASS"