@chorus-aidlc/chorus 0.16.4 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +511 -511
  3. package/.next/standalone/.next/app-path-routes-manifest.json +47 -47
  4. package/.next/standalone/.next/build-manifest.json +6 -6
  5. package/.next/standalone/.next/prerender-manifest.json +42 -42
  6. package/.next/standalone/.next/react-loadable-manifest.json +1 -1
  7. package/.next/standalone/.next/required-server-files.json +4 -4
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +2 -2
  9. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +2 -2
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +2 -2
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +3 -3
  45. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  48. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  51. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  53. package/.next/standalone/.next/server/app/_not-found.rsc +5 -5
  54. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page.js +2 -2
  55. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/admin/companies/new/page.js +2 -2
  58. package/.next/standalone/.next/server/app/admin/companies/new/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  61. package/.next/standalone/.next/server/app/admin/companies/new.rsc +7 -7
  62. package/.next/standalone/.next/server/app/admin/companies/page.js +2 -2
  63. package/.next/standalone/.next/server/app/admin/companies/page.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  66. package/.next/standalone/.next/server/app/admin/companies.rsc +7 -7
  67. package/.next/standalone/.next/server/app/admin/page.js +2 -2
  68. package/.next/standalone/.next/server/app/admin/page.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/admin.html +2 -2
  71. package/.next/standalone/.next/server/app/admin.rsc +7 -7
  72. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/admin/companies/route.js +1 -1
  75. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/admin/login/route.js +1 -1
  77. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/admin/session/route.js +1 -1
  79. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/agent-connections/route.js +1 -1
  81. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  84. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  86. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  89. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js +1 -1
  91. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/api-keys/route.js +1 -1
  93. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/auth/callback/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/auth/check-default/route.js +1 -1
  97. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/auth/company-oidc/route.js +1 -1
  99. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/auth/default-login/route.js +1 -1
  101. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/auth/identify/route.js +1 -1
  103. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/auth/logout/route.js +1 -1
  105. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/auth/me/route.js +1 -1
  107. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/auth/sync-token/route.js +1 -1
  109. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  111. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js +1 -1
  114. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -1
  117. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -1
  122. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  128. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
  131. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  132. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  134. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  137. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  140. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js +1 -1
  143. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js +1 -1
  146. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js.nft.json +1 -1
  147. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  149. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
  152. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  155. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  158. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  161. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  164. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  166. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  169. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/events/route.js +9 -3
  172. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/health/route.js +1 -1
  175. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  177. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  180. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  183. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  186. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  189. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  192. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js +1 -1
  195. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
  198. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/mcp/route.js +5 -5
  201. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  204. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  207. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  210. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  213. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  216. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  217. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  219. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  220. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  221. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  222. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  225. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  226. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
  228. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
  230. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  232. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  233. package/.next/standalone/.next/server/app/api/project-visits/pin/route.js +1 -1
  234. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/api/project-visits/route.js +1 -1
  236. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/api/project-visits/visit/route.js +1 -1
  238. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  239. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  240. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js +1 -1
  242. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  245. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  248. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  250. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  252. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  253. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  255. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  256. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  258. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  259. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  260. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  261. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  262. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  263. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
  264. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
  265. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  267. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  268. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  269. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  271. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  274. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js +1 -1
  277. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  280. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  283. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  284. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  285. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  286. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  287. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  289. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  290. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  291. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  292. package/.next/standalone/.next/server/app/api/references/[uuid]/route.js +1 -1
  293. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  294. package/.next/standalone/.next/server/app/api/references/route.js +1 -1
  295. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  296. package/.next/standalone/.next/server/app/api/search/route.js +1 -1
  297. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  298. package/.next/standalone/.next/server/app/api/session/route.js +1 -1
  299. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  300. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  301. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  302. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  303. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  304. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  305. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  306. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  307. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  308. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  310. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  311. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  312. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  313. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  314. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  315. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  316. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  317. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  318. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  319. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  320. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  321. package/.next/standalone/.next/server/app/favicon.ico/route.js +1 -1
  322. package/.next/standalone/.next/server/app/index.html +2 -2
  323. package/.next/standalone/.next/server/app/index.rsc +6 -6
  324. package/.next/standalone/.next/server/app/login/admin/page.js +2 -2
  325. package/.next/standalone/.next/server/app/login/admin/page.js.nft.json +1 -1
  326. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  327. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  328. package/.next/standalone/.next/server/app/login/admin.rsc +6 -6
  329. package/.next/standalone/.next/server/app/login/callback/page.js +2 -2
  330. package/.next/standalone/.next/server/app/login/callback/page.js.nft.json +1 -1
  331. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  332. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  333. package/.next/standalone/.next/server/app/login/callback.rsc +6 -6
  334. package/.next/standalone/.next/server/app/login/page.js +2 -2
  335. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  336. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  337. package/.next/standalone/.next/server/app/login/pick-workspace/page.js +2 -2
  338. package/.next/standalone/.next/server/app/login/pick-workspace/page.js.nft.json +1 -1
  339. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  340. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  341. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +6 -6
  342. package/.next/standalone/.next/server/app/login.html +2 -2
  343. package/.next/standalone/.next/server/app/login.rsc +6 -6
  344. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  345. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  346. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  347. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  348. package/.next/standalone/.next/server/app/onboarding.rsc +6 -6
  349. package/.next/standalone/.next/server/app/page.js +2 -2
  350. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  351. package/.next/standalone/.next/server/app/projects.html +2 -2
  352. package/.next/standalone/.next/server/app/projects.rsc +7 -7
  353. package/.next/standalone/.next/server/app/settings.html +2 -2
  354. package/.next/standalone/.next/server/app/settings.rsc +7 -7
  355. package/.next/standalone/.next/server/app-paths-manifest.json +47 -47
  356. package/.next/standalone/.next/server/chunks/1073.js +1 -0
  357. package/.next/standalone/.next/server/chunks/1114.js +1 -0
  358. package/.next/standalone/.next/server/chunks/1267.js +1 -0
  359. package/.next/standalone/.next/server/chunks/1318.js +1 -1
  360. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  361. package/.next/standalone/.next/server/chunks/2570.js +2 -2
  362. package/.next/standalone/.next/server/chunks/2572.js +1 -1
  363. package/.next/standalone/.next/server/chunks/2940.js +1 -1
  364. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  365. package/.next/standalone/.next/server/chunks/3197.js +1 -1
  366. package/.next/standalone/.next/server/chunks/378.js +4 -4
  367. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  368. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  369. package/.next/standalone/.next/server/chunks/{5351.js → 5737.js} +13 -9
  370. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  371. package/.next/standalone/.next/server/chunks/6145.js +1 -0
  372. package/.next/standalone/.next/server/chunks/6487.js +1 -0
  373. package/.next/standalone/.next/server/chunks/6506.js +1 -1
  374. package/.next/standalone/.next/server/chunks/6515.js +2 -2
  375. package/.next/standalone/.next/server/chunks/6753.js +3 -3
  376. package/.next/standalone/.next/server/chunks/679.js +1 -1
  377. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  378. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  379. package/.next/standalone/.next/server/chunks/7770.js +1 -0
  380. package/.next/standalone/.next/server/chunks/{4394.js → 7822.js} +1 -1
  381. package/.next/standalone/.next/server/chunks/8454.js +1 -1
  382. package/.next/standalone/.next/server/chunks/8586.js +1 -0
  383. package/.next/standalone/.next/server/chunks/920.js +1 -1
  384. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  385. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  386. package/.next/standalone/.next/server/chunks/9931.js +1 -0
  387. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  388. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  389. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  390. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  391. package/.next/standalone/.next/server/next-font-manifest.json +1 -1
  392. package/.next/standalone/.next/server/pages/404.html +2 -2
  393. package/.next/standalone/.next/server/pages/500.html +1 -1
  394. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  395. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  396. package/.next/standalone/.next/server/src/middleware.js +2 -2
  397. package/.next/standalone/.next/static/chunks/{11595.a6268c75ca8a2163.js → 11595.32f7dedc4fd7e3e1.js} +1 -1
  398. package/.next/standalone/.next/static/chunks/11998-27dcf858173fc015.js +1 -0
  399. package/.next/standalone/.next/static/chunks/12070-426bb88f5179812b.js +1 -0
  400. package/.next/standalone/.next/static/chunks/17409-67dbc0a3f4cbc207.js +1 -0
  401. package/.next/standalone/.next/static/chunks/26494-5a04e150431b0233.js +1 -0
  402. package/.next/standalone/.next/static/chunks/{31308-fda6febfb2882a28.js → 31308-bb4a97b3f39c22dd.js} +1 -1
  403. package/.next/standalone/.next/static/chunks/{33456.16ff7edf00137539.js → 33456.87f86ce6041405e0.js} +1 -1
  404. package/.next/standalone/.next/static/chunks/38366.fb931fab9c756890.js +1 -0
  405. package/.next/standalone/.next/static/chunks/4166-85352630c29e2c2b.js +1 -0
  406. package/.next/standalone/.next/static/chunks/{4860.9e06848eb531e667.js → 4860.9457e021394e9399.js} +1 -1
  407. package/.next/standalone/.next/static/chunks/{65096-f756aac39efad7a3.js → 65096-8295f53f97c40d47.js} +1 -1
  408. package/.next/standalone/.next/static/chunks/65807-086d83649f593a5a.js +1 -0
  409. package/.next/standalone/.next/static/chunks/79919-56796c262f51fa82.js +1 -0
  410. package/.next/standalone/.next/static/chunks/94643-87ee1ede6d955937.js +1 -0
  411. package/.next/standalone/.next/static/chunks/{99373.81b79c91858f9099.js → 99373.aed267aa48c5bdd0.js} +1 -1
  412. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-9219c4de1012f0fb.js +1 -0
  413. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/{page-974781e4886529f8.js → page-82e90e222d6bc547.js} +1 -1
  414. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/activity/page-f1eccb50d38d8982.js +1 -0
  415. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-f4810f1b9f39d1ae.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-721d2152f1a28c88.js +1 -0
  417. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-9bcff40805f39b25.js +1 -0
  418. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-fdd617457730a116.js → page-f31ad2eebe257628.js} +1 -1
  419. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-a4fb04068539c4ce.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-b1d2af10e9bc7e09.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-2cb245b0602a3c85.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-58b48aa0a11603c3.js → page-53ce4468844cc84f.js} +1 -1
  423. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-286faced32c6133f.js → page-1c374d19e8046d9a.js} +1 -1
  424. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-31d6f8e82c7f5366.js +1 -0
  425. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-32bff791b19a0a58.js +1 -0
  426. package/.next/standalone/.next/static/chunks/app/_not-found/{page-166b410da84336d4.js → page-b9d672df79b35e87.js} +1 -1
  427. package/.next/standalone/.next/static/chunks/app/admin/companies/[uuid]/{page-b2458ed001dc8177.js → page-56118c51122ad639.js} +1 -1
  428. package/.next/standalone/.next/static/chunks/app/admin/companies/new/page-4e20deb41357171c.js +1 -0
  429. package/.next/standalone/.next/static/chunks/app/admin/companies/page-0632f245bf9c1c27.js +1 -0
  430. package/.next/standalone/.next/static/chunks/app/admin/layout-725ab2331c642f36.js +1 -0
  431. package/.next/standalone/.next/static/chunks/app/admin/{page-0cc8cf246db43e5d.js → page-5a0271dd2b8b36fd.js} +1 -1
  432. package/.next/standalone/.next/static/chunks/app/{layout-985054e973f66999.js → layout-098288cec4490c5d.js} +1 -1
  433. package/.next/standalone/.next/static/chunks/app/login/admin/page-c8e40259e5d3d9e0.js +1 -0
  434. package/.next/standalone/.next/static/chunks/app/login/callback/page-527652f6c1a39274.js +1 -0
  435. package/.next/standalone/.next/static/chunks/app/login/{page-9b34375d1b5579d7.js → page-0a16a64855b771ef.js} +1 -1
  436. package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-47375a86e2375202.js +1 -0
  437. package/.next/standalone/.next/static/chunks/app/onboarding/{page-5c82cf3abd856301.js → page-d082f9b60ad03057.js} +1 -1
  438. package/.next/standalone/.next/static/chunks/app/{page-79e2d32e69788bd2.js → page-91dbf7dfd85f805f.js} +1 -1
  439. package/.next/standalone/.next/static/chunks/main-app-1a7cacecc8900a4d.js +1 -0
  440. package/.next/standalone/.next/static/chunks/{webpack-4d1cc14b13e247b6.js → webpack-e2e0ef50652d5791.js} +1 -1
  441. package/.next/standalone/.next/static/css/1d9cf83f50b6db00.css +1 -0
  442. package/.next/standalone/package.json +2 -1
  443. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  444. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +44 -1
  445. package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +4 -3
  446. package/.next/standalone/public/chorus-plugin/bin/tests/test-mcp-cli-delegation.sh +244 -0
  447. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  448. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +19 -1
  449. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +57 -0
  450. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +2 -2
  451. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  452. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +2 -2
  453. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +85 -42
  454. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +1 -1
  455. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +2 -2
  456. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  457. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  458. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +3 -3
  459. package/.next/standalone/public/dsh-credentials.sh +20 -127
  460. package/.next/standalone/public/install-codex.sh +21 -406
  461. package/.next/standalone/public/install-kiro.sh +20 -344
  462. package/.next/standalone/public/install-opencode.sh +20 -275
  463. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
  464. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +57 -0
  465. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +2 -2
  466. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  467. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +2 -2
  468. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +85 -42
  469. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
  470. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +2 -2
  471. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
  472. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
  473. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +3 -3
  474. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +44 -1
  475. package/.next/standalone/public/kiro-plugin/bin/on-agent-spawn.sh +6 -4
  476. package/.next/standalone/public/kiro-plugin/manifest.txt +42 -0
  477. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
  478. package/.next/standalone/public/skill/chorus/SKILL.md +19 -1
  479. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +1 -1
  480. package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
  481. package/.next/standalone/public/skill/docs-chorus/SKILL.md +1 -1
  482. package/.next/standalone/public/skill/idea-chorus/SKILL.md +2 -2
  483. package/.next/standalone/public/skill/orchestrate-chorus/SKILL.md +1 -1
  484. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +1 -1
  485. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +1 -1
  486. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  487. package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
  488. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +1 -1
  489. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +1 -1
  490. package/.next/standalone/public/test-dsh-credentials.sh +22 -38
  491. package/.next/standalone/public/test-install-codex.sh +31 -79
  492. package/.next/standalone/server.js +1 -1
  493. package/README.ja.md +4 -2
  494. package/README.ko.md +4 -2
  495. package/README.md +4 -2
  496. package/README.zh.md +4 -2
  497. package/chorus.mjs +35 -1
  498. package/cli/agent-backend-prompt.mjs +3 -2
  499. package/cli/agents.mjs +329 -0
  500. package/cli/chorus-client.mjs +69 -0
  501. package/cli/claude-spawner.mjs +56 -15
  502. package/cli/codex-spawner.mjs +11 -6
  503. package/cli/credentials.mjs +190 -4
  504. package/cli/daemon-agent.mjs +26 -2
  505. package/cli/daemon-config.mjs +27 -2
  506. package/cli/daemon-service.mjs +120 -33
  507. package/cli/daemon.mjs +128 -22
  508. package/cli/dsh-spawner.mjs +7 -0
  509. package/cli/init/adapters.mjs +137 -0
  510. package/cli/init/agent-type-map.mjs +60 -0
  511. package/cli/init/chorus-plugin-consts.mjs +16 -0
  512. package/cli/init/codex-mcp-config.mjs +183 -0
  513. package/cli/init/contracts.mjs +122 -0
  514. package/cli/init/detect.mjs +97 -0
  515. package/cli/init/file-template.mjs +248 -0
  516. package/cli/init/install-methods.mjs +569 -0
  517. package/cli/init/registry.mjs +74 -0
  518. package/cli/init/run-command.mjs +30 -0
  519. package/cli/init/select.mjs +111 -0
  520. package/cli/init/steps/credential-seed.mjs +751 -0
  521. package/cli/init/steps/daemon-setup.mjs +246 -0
  522. package/cli/init/steps/plugin-install.mjs +37 -0
  523. package/cli/init-args.mjs +140 -0
  524. package/cli/init.mjs +243 -0
  525. package/cli/kiro-spawner.mjs +5 -0
  526. package/cli/mcp-args.mjs +280 -0
  527. package/cli/mcp.mjs +164 -0
  528. package/cli/spawner-select.mjs +45 -2
  529. package/cli/waker.mjs +89 -38
  530. package/package.json +2 -1
  531. package/.next/standalone/.env +0 -18
  532. package/.next/standalone/.next/server/chunks/3594.js +0 -1
  533. package/.next/standalone/.next/server/chunks/4545.js +0 -1
  534. package/.next/standalone/.next/server/chunks/5205.js +0 -1
  535. package/.next/standalone/.next/server/chunks/6207.js +0 -1
  536. package/.next/standalone/.next/server/chunks/6667.js +0 -1
  537. package/.next/standalone/.next/server/chunks/6995.js +0 -1
  538. package/.next/standalone/.next/server/chunks/7091.js +0 -1
  539. package/.next/standalone/.next/server/chunks/9793.js +0 -1
  540. package/.next/standalone/.next/static/chunks/19887-b805e1dcee8c367b.js +0 -1
  541. package/.next/standalone/.next/static/chunks/29108-5a11eea003f4cc11.js +0 -1
  542. package/.next/standalone/.next/static/chunks/38366.e6e0132b8ba873d6.js +0 -1
  543. package/.next/standalone/.next/static/chunks/53073-a7ed20af6538a178.js +0 -1
  544. package/.next/standalone/.next/static/chunks/6603-e70ddeab6ad09c50.js +0 -1
  545. package/.next/standalone/.next/static/chunks/78917-1b59cbb806b3ecfc.js +0 -1
  546. package/.next/standalone/.next/static/chunks/82751-3e161e1d8dbda3ac.js +0 -1
  547. package/.next/standalone/.next/static/chunks/94643-ffa140f765c73daf.js +0 -1
  548. package/.next/standalone/.next/static/chunks/99366-425e9ef22e60e3e2.js +0 -1
  549. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-b742c51c0a764daf.js +0 -1
  550. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/activity/page-20632dbec5a6dbc0.js +0 -1
  551. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-f636e00c28f425ea.js +0 -1
  552. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-c004f1a194af7fa5.js +0 -1
  553. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-425acbe9ade5fa83.js +0 -1
  554. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-b9eb4e0692996657.js +0 -1
  555. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-d5b222f379b2e8ca.js +0 -1
  556. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-0a6c2d0e1b68e0e4.js +0 -1
  557. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-9d79e285b6fd2f8d.js +0 -1
  558. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-1507a761e67c2aa9.js +0 -1
  559. package/.next/standalone/.next/static/chunks/app/admin/companies/new/page-e35dce890d6dfd8d.js +0 -1
  560. package/.next/standalone/.next/static/chunks/app/admin/companies/page-ef720c2b0856166c.js +0 -1
  561. package/.next/standalone/.next/static/chunks/app/admin/layout-c66ce38cbd88982a.js +0 -1
  562. package/.next/standalone/.next/static/chunks/app/login/admin/page-f032b6db3bd20a2c.js +0 -1
  563. package/.next/standalone/.next/static/chunks/app/login/callback/page-ec23211506e688ee.js +0 -1
  564. package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-7e4664af2c787d08.js +0 -1
  565. package/.next/standalone/.next/static/chunks/main-app-ec87f2c9ef083ff1.js +0 -1
  566. package/.next/standalone/.next/static/css/5f52bd39b284ccdf.css +0 -1
  567. /package/.next/standalone/.next/static/{6sHDgeKioa0SJR1MAbcYG → _s4RZW3efB1g0lrKgLiZ7}/_buildManifest.js +0 -0
  568. /package/.next/standalone/.next/static/{6sHDgeKioa0SJR1MAbcYG → _s4RZW3efB1g0lrKgLiZ7}/_ssgManifest.js +0 -0
@@ -4,7 +4,7 @@ description: Chorus Idea workflow — claim ideas, run elaboration rounds, and p
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.16.4"
7
+ version: "0.17.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -39,7 +39,7 @@ All post-elaboration progress (planning, building, verifying, done) is **derived
39
39
  | `chorus_edit_idea` | Edit an existing idea's title, description, and/or lineage parent. `parentUuid`: another same-project idea to reparent under, `null` to detach to top-level, omit to leave unchanged (cycle-checked + same-project). Single-parent **weak** lineage — a parent shows a read-only `+N derived` rollup but never blocks either idea's flow. Records an "edited" activity and signals presence. |
40
40
  | `chorus_claim_idea` | Claim an open idea (open -> elaborating) |
41
41
  | `chorus_release_idea` | Release a claimed idea (elaborating -> open) |
42
- | `chorus_pm_assign_idea` | Assign an idea to an agent (must hold `idea:write`) or a user, on a human's behalf — the counterpart to `chorus_claim_idea` (self-claim). Silently takes over any existing assignee; an `open` idea moves to `elaborating`, any other status is preserved. Optional `instanceUuid` pins an **agent** assignment to a specific AgentInstance (agent-only). Assigning to an agent wakes it best-effort (offline still persists the assignment); assigning to a user notifies them with no daemon wake. Requires `idea:admin`. |
42
+ | `chorus_pm_assign_idea` | Assign an idea to an agent (must hold `idea:write`) or a user, on a human's behalf — the counterpart to `chorus_claim_idea` (self-claim). Silently takes over any existing assignee; an `open` idea moves to `elaborating`, any other status is preserved. Optional `instanceUuid` pins an **agent** assignment to a specific AgentInstance (agent-only) — but a project-fixed cwd target configured for the owner takes precedence and supplies the instance automatically, overriding `instanceUuid`. Assigning a **new** owner wakes it best-effort (offline still persists the assignment); re-assigning the same owner may update its pin/cwd but is wake-deduplicated. Assigning to a user notifies them with no daemon wake. Requires `idea:admin`. |
43
43
  | `chorus_move_idea` | Move an Idea to a different Project. Cascade-migrates the Idea **and its full lineage subtree** (all descendant Ideas; the moved root is detached from any parent left behind), all linked Proposals (any status), all materialized Documents and Tasks, and all related Activities atomically. Comments, TaskDependency, AcceptanceCriterion, AgentSession, SessionTaskCheckin, Notification history, and Task assignees are NOT modified. Returns `moved: { ideas, proposals, documents, tasks, activities }` counts. Requires `idea:write` only — no project-level checks. |
44
44
 
45
45
  **Requirements Elaboration:**
@@ -4,7 +4,7 @@ description: Multi-agent orchestration playbook — coordinate OTHER agents and
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.16.4"
7
+ version: "0.17.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Proposal workflow — create proposals with document and tas
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.16.4"
7
+ version: "0.17.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Read-only adversarial Chorus proposal reviewer — audits PRD/task
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.16.4"
7
+ version: "0.17.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Quick Task workflow — skip Idea→Proposal, create tasks directly
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.16.4"
7
+ version: "0.17.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Review workflow — approve/reject proposals, verify tasks,
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.16.4"
7
+ version: "0.17.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Read-only adversarial Chorus task reviewer — independently verifi
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.16.4"
7
+ version: "0.17.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Full-auto AI-DLC pipeline — drive a single prompt from Idea throu
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.16.4"
7
+ version: "0.17.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env bash
2
- # Tests for public/dsh-credentials.sh — write/merge/mode/idempotency/validation.
3
- # Runs the real script against disposable $DSH_HOME dirs. Bash 3.2 compatible.
2
+ # Tests for public/dsh-credentials.sh — now a DEPRECATION STUB that redirects to
3
+ # `chorus agents add`. Verifies the stub shape: a non-interactive run names the
4
+ # replacement command, prints a deprecation notice, exits non-zero, and writes
5
+ # NO $DSH_HOME/.env (installs/writes nothing). Bash 3.2 compatible.
4
6
  set -uo pipefail
5
7
 
6
8
  HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -10,46 +12,28 @@ fail=0
10
12
  ok() { printf 'ok %s\n' "$1"; }
11
13
  no() { printf 'FAIL %s\n' "$1"; fail=1; }
12
14
 
13
- # run the script with a clean env (no ambient CHORUS_*), stdin from /dev/null.
14
- run() {
15
- local home="$1"; shift
16
- env -u CHORUS_URL -u CHORUS_API_KEY DSH_HOME="$home" "$@" bash "$SCRIPT" </dev/null >/dev/null 2>&1
17
- }
18
-
19
- # 1. writes both keys, preserves unrelated lines, mode 0600, normalizes URL
20
- T="$(mktemp -d)"; printf 'DEEPSEEK_API_KEY=sk-keep\nOTHER=1\n' > "$T/.env"
21
- run "$T" CHORUS_URL="https://c.example/api/mcp/" CHORUS_API_KEY="cho_test123"
22
- grep -qx 'CHORUS_URL=https://c.example' "$T/.env" && ok "writes+normalizes CHORUS_URL" || no "writes+normalizes CHORUS_URL"
23
- grep -qx 'CHORUS_API_KEY=cho_test123' "$T/.env" && ok "writes CHORUS_API_KEY" || no "writes CHORUS_API_KEY"
24
- grep -qx 'DEEPSEEK_API_KEY=sk-keep' "$T/.env" && ok "preserves DEEPSEEK line" || no "preserves DEEPSEEK line"
25
- grep -qx 'OTHER=1' "$T/.env" && ok "preserves OTHER line" || no "preserves OTHER line"
26
- [ "$(stat -c '%a' "$T/.env" 2>/dev/null || stat -f '%A' "$T/.env")" = "600" ] && ok "mode 0600" || no "mode 0600"
27
-
28
- # 2. idempotent: re-run replaces, no duplicate lines
29
- run "$T" CHORUS_URL="https://c.example" CHORUS_API_KEY="cho_new"
30
- [ "$(grep -c '^CHORUS_URL=' "$T/.env")" = "1" ] && ok "no duplicate CHORUS_URL" || no "no duplicate CHORUS_URL"
31
- [ "$(grep -c '^CHORUS_API_KEY=' "$T/.env")" = "1" ] && ok "no duplicate CHORUS_API_KEY" || no "no duplicate CHORUS_API_KEY"
32
- grep -qx 'CHORUS_API_KEY=cho_new' "$T/.env" && ok "replaced key value" || no "replaced key value"
33
- rm -rf "$T"
34
-
35
- # 3. drops a prior `export CHORUS_*` form too, keeps others
36
- T="$(mktemp -d)"; printf 'export CHORUS_URL=https://old\nexport CHORUS_API_KEY=cho_old\nKEEP=2\n' > "$T/.env"
37
- run "$T" CHORUS_URL="https://c.example" CHORUS_API_KEY="cho_fresh"
38
- grep -q 'export CHORUS_URL' "$T/.env" && no "drops export CHORUS_URL" || ok "drops export CHORUS_URL"
39
- grep -q 'export CHORUS_API_KEY' "$T/.env" && no "drops export CHORUS_API_KEY" || ok "drops export CHORUS_API_KEY"
40
- grep -qx 'KEEP=2' "$T/.env" && ok "KEEP preserved" || no "KEEP preserved"
15
+ # 1. Non-interactive (no TTY): prints the chorus agents add command + deprecation
16
+ # notice, exits non-zero, and writes no .env. stdin from /dev/null and stdout
17
+ # captured (command substitution) → neither is a TTY → print-and-fail path.
18
+ T="$(mktemp -d)"
19
+ out="$(env -u CHORUS_URL -u CHORUS_API_KEY DSH_HOME="$T" bash "$SCRIPT" </dev/null 2>&1)"
20
+ rc=$?
21
+ [ "$rc" -ne 0 ] && ok "exits non-zero when non-interactive" || no "exits non-zero when non-interactive"
22
+ printf '%s\n' "$out" | grep -q 'npm install -g @chorus-aidlc/chorus' && ok "names npm install -g @chorus-aidlc/chorus" || no "names npm install -g @chorus-aidlc/chorus"
23
+ printf '%s\n' "$out" | grep -q 'chorus agents add' && ok "names chorus agents add" || no "names chorus agents add"
24
+ printf '%s\n' "$out" | grep -qi 'deprecat' && ok "prints a deprecation notice" || no "prints a deprecation notice"
25
+ [ ! -f "$T/.env" ] && ok "writes no .env" || no "writes no .env"
41
26
  rm -rf "$T"
42
27
 
43
- # 4. validation: missing creds (no TTY) / bad URL / bad key all exit non-zero, write nothing
28
+ # 2. Even with CHORUS_URL/CHORUS_API_KEY set, the stub installs nothing: it still
29
+ # exits non-zero (no TTY) and writes no .env. This proves the old inline
30
+ # credential-writing logic is gone.
44
31
  T="$(mktemp -d)"
45
- run "$T" && no "missing creds exits non-zero" || ok "missing creds exits non-zero"
46
- [ ! -f "$T/.env" ] && ok "no .env written on failure" || no "no .env written on failure"
47
- run "$T" CHORUS_URL="ftp://x" CHORUS_API_KEY="cho_x" && no "bad URL exits non-zero" || ok "bad URL exits non-zero"
48
- run "$T" CHORUS_URL="https://x" CHORUS_API_KEY="nope" && no "bad key exits non-zero" || ok "bad key exits non-zero"
32
+ env DSH_HOME="$T" CHORUS_URL="https://c.example" CHORUS_API_KEY="cho_x" bash "$SCRIPT" </dev/null >/dev/null 2>&1
33
+ rc=$?
34
+ [ "$rc" -ne 0 ] && ok "non-zero even with creds set (installs nothing)" || no "non-zero even with creds set"
35
+ [ ! -f "$T/.env" ] && ok "writes no .env even with creds set" || no "writes no .env even with creds set"
49
36
  rm -rf "$T"
50
37
 
51
- # 5. --help exits 0
52
- bash "$SCRIPT" --help >/dev/null 2>&1 && ok "--help exits 0" || no "--help exits 0"
53
-
54
38
  if [ "$fail" -eq 0 ]; then printf '\nALL PASS\n'; else printf '\nFAILURES\n'; fi
55
39
  exit "$fail"
@@ -1,5 +1,10 @@
1
1
  #!/usr/bin/env bash
2
- # Test public/install-codex.sh for macOS bash 3.2 compatibility.
2
+ # Test public/install-codex.sh now a DEPRECATION STUB that redirects to
3
+ # `chorus agents add`. Verifies bash 3.2 compatibility + the stub shape:
4
+ # - names the replacement `npm install -g @chorus-aidlc/chorus@0.17.0` + `chorus agents add`
5
+ # - prints a deprecation notice
6
+ # - run non-interactively (no TTY, e.g. curl | bash in CI) it exits non-zero
7
+ # - installs nothing (writes no config.toml)
3
8
  #
4
9
  # Usage:
5
10
  # bash public/test-install-codex.sh
@@ -24,7 +29,7 @@ else
24
29
  TEST_BASH="$(command -v bash)"
25
30
  fi
26
31
 
27
- BOLD=$'\033[1m'; GREEN=$'\033[32m'; RED=$'\033[31m'; DIM=$'\033[2m'; RESET=$'\033[0m'
32
+ BOLD=$'\033[1m'; GREEN=$'\033[32m'; RED=$'\033[31m'; RESET=$'\033[0m'
28
33
 
29
34
  PASS=0; FAIL=0; FAIL_NOTES=""
30
35
 
@@ -36,8 +41,8 @@ echo "${BOLD}Testing:${RESET} $SCRIPT"
36
41
  echo "${BOLD}Using:${RESET} $TEST_BASH ($("$TEST_BASH" --version | head -1))"
37
42
  echo ""
38
43
 
39
- # [1/4] Static scan — reject bash 4+ constructs
40
- echo "${BOLD}[1/4]${RESET} Static scan for bash 4+ constructs"
44
+ # [1/3] Static scan — reject bash 4+ constructs
45
+ echo "${BOLD}[1/3]${RESET} Static scan for bash 4+ constructs"
41
46
  scan() {
42
47
  local label="$1"; local pattern="$2"
43
48
  if grep -nE "$pattern" "$SCRIPT" >/tmp/install-codex-scan.$$ 2>/dev/null; then
@@ -55,9 +60,9 @@ scan 'no "&>" redirection' '[^|]&>[^>]'
55
60
  scan 'no "|&" redirection' '\|&'
56
61
  scan 'no ";;&" case fallthrough' ';;&'
57
62
 
58
- # [2/4] Parse
63
+ # [2/3] Parse
59
64
  echo ""
60
- echo "${BOLD}[2/4]${RESET} Parse with $TEST_BASH -n"
65
+ echo "${BOLD}[2/3]${RESET} Parse with $TEST_BASH -n"
61
66
  if "$TEST_BASH" -n "$SCRIPT" 2>/tmp/install-codex-parse.$$; then
62
67
  pass "parses without syntax errors"
63
68
  else
@@ -66,99 +71,46 @@ else
66
71
  fi
67
72
  rm -f /tmp/install-codex-parse.$$
68
73
 
69
- # [3/4] End-to-end dry run with an isolated CODEX_HOME
74
+ # [3/3] Non-interactive stub behavior: redirect to `chorus agents add`, exit non-zero,
75
+ # install nothing. Stdin from /dev/null + stdout redirected to a file → neither
76
+ # is a TTY, so the stub must take the print-and-fail path (never exec).
70
77
  echo ""
71
- echo "${BOLD}[3/4]${RESET} End-to-end dry run (isolated CODEX_HOME)"
78
+ echo "${BOLD}[3/3]${RESET} Non-interactive stub behavior (no TTY → print + non-zero)"
72
79
 
73
80
  TMP_HOME="$(mktemp -d -t chorus-install-test.XXXXXX)"
74
81
  trap 'rm -rf "$TMP_HOME"' EXIT
75
82
 
76
- FAKE_BIN="$TMP_HOME/bin"
77
- mkdir -p "$FAKE_BIN"
78
- cat > "$FAKE_BIN/codex" <<'FAKE'
79
- #!/usr/bin/env bash
80
- case "${1:-}" in
81
- --version) echo "codex 0.125.0-test" ;;
82
- plugin)
83
- if [ "${2:-}" = "marketplace" ] && [ "${3:-}" = "list" ]; then
84
- echo ""
85
- exit 0
86
- fi
87
- exit 0
88
- ;;
89
- *) exit 0 ;;
90
- esac
91
- FAKE
92
- chmod +x "$FAKE_BIN/codex"
93
-
94
83
  run_out="$TMP_HOME/run.log"
95
84
  set +e
96
85
  env \
97
- PATH="$FAKE_BIN:$PATH" \
98
86
  HOME="$TMP_HOME" \
99
87
  CODEX_HOME="$TMP_HOME/.codex" \
100
- CHORUS_URL="https://chorus.test/api/mcp" \
101
- CHORUS_API_KEY="cho_test_key_abc123" \
102
- CHORUS_MARKETPLACE_SOURCE="https://github.com/Chorus-AIDLC/Chorus" \
103
- "$TEST_BASH" "$SCRIPT" >"$run_out" 2>&1
88
+ "$TEST_BASH" "$SCRIPT" </dev/null >"$run_out" 2>&1
104
89
  rc=$?
105
90
  set -e
106
91
 
107
92
  if [ "$rc" -ne 0 ]; then
108
- fail "installer exited non-zero ($rc)"
109
- sed 's/^/ /' "$run_out"
93
+ pass "exits non-zero when non-interactive (rc=$rc)"
110
94
  else
111
- pass "installer exited 0"
95
+ fail "exited 0 (expected non-zero for a no-TTY deprecation stub)"
96
+ sed 's/^/ /' "$run_out"
112
97
  fi
113
98
 
114
- cfg="$TMP_HOME/.codex/config.toml"
115
- if [ ! -f "$cfg" ]; then
116
- fail "config.toml not created at $cfg"
117
- else
118
- pass "config.toml created"
119
- grep -q '^\[mcp_servers\.chorus\]' "$cfg" && pass "[mcp_servers.chorus] block present" || fail "[mcp_servers.chorus] missing"
120
- grep -q 'url = "https://chorus.test/api/mcp"' "$cfg" && pass "url written literally" || fail "url not literal"
121
- grep -q 'Authorization = "Bearer cho_test_key_abc123"' "$cfg" && pass "Authorization header literal" || fail "Authorization not literal"
122
- grep -q '^hooks = true' "$cfg" && pass "hooks feature enabled" || fail "hooks feature not enabled"
123
- grep -q '^codex_hooks =' "$cfg" && fail "deprecated codex_hooks key written" || pass "deprecated codex_hooks key not written"
124
- [ ! -f "$TMP_HOME/.codex/hooks.json" ] && pass "installer does not write user hooks.json" || fail "installer wrote user hooks.json"
125
- [ ! -e "$TMP_HOME/.codex/hooks/chorus/run-hook.sh" ] && pass "installer does not write hook wrapper" || fail "installer wrote hook wrapper"
126
- if command -v stat >/dev/null 2>&1; then
127
- mode="$(stat -c '%a' "$cfg" 2>/dev/null || stat -f '%OLp' "$cfg" 2>/dev/null || echo "")"
128
- if [ "$mode" = "600" ]; then
129
- pass "config.toml mode=600"
130
- elif [ -n "$mode" ]; then
131
- fail "config.toml mode=$mode (expected 600)"
132
- fi
133
- fi
134
- fi
99
+ grep -q 'npm install -g @chorus-aidlc/chorus' "$run_out" \
100
+ && pass "names 'npm install -g @chorus-aidlc/chorus'" \
101
+ || { fail "did not print the npm install guidance"; sed 's/^/ /' "$run_out"; }
135
102
 
136
- # [4/4] Idempotent re-run with a rotated key
137
- echo ""
138
- echo "${BOLD}[4/4]${RESET} Idempotent re-run with a rotated key"
139
- set +e
140
- env \
141
- PATH="$FAKE_BIN:$PATH" \
142
- HOME="$TMP_HOME" \
143
- CODEX_HOME="$TMP_HOME/.codex" \
144
- CHORUS_URL="https://chorus.test/api/mcp" \
145
- CHORUS_API_KEY="cho_rotated_key_xyz789" \
146
- "$TEST_BASH" "$SCRIPT" >"$run_out" 2>&1
147
- rc=$?
148
- set -e
149
- [ "$rc" -eq 0 ] && pass "rerun exited 0" || { fail "rerun exited non-zero ($rc)"; sed 's/^/ /' "$run_out"; }
150
-
151
- blocks="$(grep -c '^\[mcp_servers\.chorus\]' "$cfg" 2>/dev/null || echo 0)"
152
- [ "$blocks" = "1" ] && pass "exactly one [mcp_servers.chorus] block" || fail "found $blocks [mcp_servers.chorus] blocks"
103
+ grep -q 'chorus agents add' "$run_out" \
104
+ && pass "names 'chorus agents add'" \
105
+ || { fail "did not print the chorus agents add command"; sed 's/^/ /' "$run_out"; }
153
106
 
154
- hdr_blocks="$(grep -c '^\[mcp_servers\.chorus\.http_headers\]' "$cfg" 2>/dev/null || echo 0)"
155
- [ "$hdr_blocks" = "1" ] && pass "exactly one [mcp_servers.chorus.http_headers] block" || fail "found $hdr_blocks http_headers blocks"
107
+ grep -qi 'deprecat' "$run_out" \
108
+ && pass "prints a deprecation notice" \
109
+ || { fail "no deprecation notice printed"; sed 's/^/ /' "$run_out"; }
156
110
 
157
- if grep -q 'Authorization = "Bearer cho_rotated_key_xyz789"' "$cfg" && ! grep -q 'cho_test_key_abc123' "$cfg"; then
158
- pass "rotated key replaced the previous key"
159
- else
160
- fail "rotated key not applied cleanly"
161
- fi
111
+ [ ! -f "$TMP_HOME/.codex/config.toml" ] \
112
+ && pass "installs nothing (no config.toml written)" \
113
+ || fail "wrote config.toml (stub must install nothing)"
162
114
 
163
115
  echo ""
164
116
  echo "${BOLD}Summary:${RESET} $PASS passed, $FAIL failed"
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"maximumResponseBody":50000000,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","remotePatterns":[],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/ubuntu/dev/ai-pm","experimental":{"useSkewCookie":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":4294967294}},"cacheHandlers":{},"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientSegmentCache":false,"clientParamParsing":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":15,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"routerBFCache":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"cacheComponents":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"devtoolSegmentExplorer":true,"browserDebugInfoInTerminal":false,"optimizeRouterScrolling":false,"middlewareClientMaxBodySize":10485760,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","serverExternalPackages":["pino"],"turbopack":{"resolveAlias":{"fs":{"browser":"./src/lib/empty.ts"}},"root":"/home/ubuntu/dev/ai-pm"}}
12
+ const nextConfig = {"env":{},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"maximumResponseBody":50000000,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","remotePatterns":[],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/Chorus/Chorus","experimental":{"useSkewCookie":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":4294967294}},"cacheHandlers":{},"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientSegmentCache":false,"clientParamParsing":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"routerBFCache":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"cacheComponents":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"devtoolSegmentExplorer":true,"browserDebugInfoInTerminal":false,"optimizeRouterScrolling":false,"middlewareClientMaxBodySize":10485760,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","serverExternalPackages":["pino"],"turbopack":{"resolveAlias":{"fs":{"browser":"./src/lib/empty.ts"}},"root":"/home/runner/work/Chorus/Chorus"}}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
package/README.ja.md CHANGED
@@ -38,6 +38,8 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
38
38
 
39
39
  ## 最近の更新
40
40
 
41
+ **[v0.17.0–0.17.1](https://github.com/Chorus-AIDLC/Chorus/releases/tag/v0.17.1)** — 1 つの CLI で各コーディングエージェントに Chorus を導入・更新できるようになりました。Tracker、Graph、Idea 詳細ではデーモンの活動をリアルタイムに確認できます。
42
+
41
43
  **[v0.16.4](https://chorus-ai.dev/blog/chorus-v0.16.4-release/)** — DeepSeek Harness(dsh)が 6 つ目の接続方法に。`@chorus-aidlc/chorus-dsh` バンドルが Chorus のスキル・ペルソナ・MCP 設定を任意の dsh プロファイルに追加します。現時点は対話的な利用のみ、デーモンウェイクは後日対応。
42
44
 
43
45
  **[v0.16.1](https://chorus-ai.dev/blog/chorus-v0.16.1-release/)** — 1 つの `chorus daemon` が、互いに独立した複数のエージェントを同時に扱えるようになりました。各エージェントは `agents[]` 配列で自分のキー・作業ディレクトリ・バックエンド・権限を持ちます。エージェント同士は @メンションで作業を渡し合え、各ウェイクはそのエージェント自身のプロジェクトディレクトリに届きます。
@@ -46,7 +48,7 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
46
48
 
47
49
  **[v0.15.0](https://chorus-ai.dev/blog/chorus-v0.15.0-release/)** — プロジェクト単位の Agent 作業ディレクトリ:各ユーザーがプロジェクト内の Agent ごとにホストと cwd を設定し、デーモンが許可したルートだけを参照できます。割り当て、ウェイク、再開、後続ターンで同じ実行先を使い、進行中のセッションは移動しません。Codex は再開可能なバックエンド thread ID を別に保存し、不要になった Chorus の session 管理手順を削除しました。
48
50
 
49
- **[v0.14.1](https://chorus-ai.dev/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI が 4 つ目の接続方法になりました(Kiro CLI v2):ワンコマンドの `install-kiro.sh` プラグインと `--agent kiro` デーモンバックエンド、加えていくつかのデーモン修正。
51
+ **[v0.14.1](https://chorus-ai.dev/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI が 4 つ目の接続方法になりました(Kiro CLI v2):`chorus agents add` によるワンコマンドの Kiro プラグイン導入と `--agent kiro` デーモンバックエンド、加えていくつかのデーモン修正。
50
52
 
51
53
  **[v0.14.0](https://chorus-ai.dev/blog/chorus-v0.14.0-release/)** — アプリ全体のダークモード(ライト / ダーク / システム)。参考資料をあらゆる着想・提案・課題に添付でき、インラインでも MCP 経由でも読み取れます。韓国語と日本語を追加(韓国語はコミュニティによる貢献)。グループ化のための**テーマ**着想、デーモンの「開発を開始」/「Yolo」ボタン、対話式の着想入力、クラッシュからの再開、`chorus daemon install`。
52
54
 
@@ -59,7 +61,7 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
59
61
  2 つのコマンドだけです — データベースも Docker も設定ファイルも不要です。
60
62
 
61
63
  ```bash
62
- npm install -g @chorus-aidlc/chorus
64
+ npm install -g @chorus-aidlc/chorus@0.17.1
63
65
  chorus
64
66
  ```
65
67
 
package/README.ko.md CHANGED
@@ -38,6 +38,8 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
38
38
 
39
39
  ## 최근 업데이트
40
40
 
41
+ **[v0.17.0–0.17.1](https://github.com/Chorus-AIDLC/Chorus/releases/tag/v0.17.1)** — 하나의 CLI로 여러 코딩 에이전트에 Chorus를 설치하고 업데이트할 수 있습니다. 이제 Tracker, Graph, Idea 상세 화면에서 데몬 활동도 실시간으로 확인할 수 있습니다.
42
+
41
43
  **[v0.16.4](https://chorus-ai.dev/blog/chorus-v0.16.4-release/)** — DeepSeek Harness(dsh)가 여섯 번째 연결 방식으로 추가됩니다: `@chorus-aidlc/chorus-dsh` 번들이 Chorus의 스킬·페르소나·MCP 설정을 임의의 dsh 프로파일에 추가합니다. 현재는 대화식 사용만, 데몬 웨이크는 추후 지원.
42
44
 
43
45
  **[v0.16.1](https://chorus-ai.dev/blog/chorus-v0.16.1-release/)** — 이제 하나의 `chorus daemon`이 서로 독립적인 여러 에이전트를 동시에 서비스합니다. 각 에이전트는 `agents[]` 배열로 자신의 키·작업 디렉터리·백엔드·권한을 가집니다. 에이전트끼리 @멘션으로 작업을 넘길 수 있고, 각 웨이크는 해당 에이전트 자신의 프로젝트 디렉터리에 도착합니다.
@@ -46,7 +48,7 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
46
48
 
47
49
  **[v0.15.0](https://chorus-ai.dev/blog/chorus-v0.15.0-release/)** — 프로젝트별 Agent 작업 디렉터리: 각 사용자가 프로젝트의 Agent마다 호스트와 cwd를 지정하고, 데몬이 허용한 루트만 탐색할 수 있습니다. 배정, 웨이크, 재개, 후속 턴에서 같은 실행 위치를 사용하며 진행 중인 세션은 이동하지 않습니다. Codex는 재개 가능한 백엔드 thread ID를 별도로 저장하고, 더 이상 필요하지 않은 Chorus session 관리 단계를 제거했습니다.
48
50
 
49
- **[v0.14.1](https://chorus-ai.dev/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI가 네 번째 연결 방식이 되었습니다(Kiro CLI v2): 명령 한 줄로 설치하는 `install-kiro.sh` 플러그인과 `--agent kiro` 데몬 백엔드, 여기에 몇 가지 데몬 수정.
51
+ **[v0.14.1](https://chorus-ai.dev/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI가 네 번째 연결 방식이 되었습니다(Kiro CLI v2): `chorus agents add` 명령 한 줄로 설치하는 Kiro 플러그인과 `--agent kiro` 데몬 백엔드, 여기에 몇 가지 데몬 수정.
50
52
 
51
53
  **[v0.14.0](https://chorus-ai.dev/blog/chorus-v0.14.0-release/)** — 앱 전체 다크 모드(라이트 / 다크 / 시스템). 참고 자료를 어떤 아이디어·제안·작업에도 첨부할 수 있고, 인라인으로도 MCP를 통해서도 읽을 수 있습니다. 한국어와 일본어 추가(한국어는 커뮤니티 기여). 그룹화를 위한 **테마** 아이디어, 그리고 데몬의 개발 시작 / Yolo 버튼, 대화식 아이디어 입력, 크래시 복구, `chorus daemon install`.
52
54
 
@@ -59,7 +61,7 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
59
61
  두 개의 명령이면 됩니다. 데이터베이스도, Docker도, 설정 파일도 필요 없습니다.
60
62
 
61
63
  ```bash
62
- npm install -g @chorus-aidlc/chorus
64
+ npm install -g @chorus-aidlc/chorus@0.17.1
63
65
  chorus
64
66
  ```
65
67
 
package/README.md CHANGED
@@ -38,6 +38,8 @@ The labels under each stage are the **permissions** an actor needs there — gra
38
38
 
39
39
  ## What's New
40
40
 
41
+ **[v0.17.0–0.17.1](https://github.com/Chorus-AIDLC/Chorus/releases/tag/v0.17.1)** — One CLI now installs and refreshes Chorus across your coding agents. Live daemon activity is visible directly on Ideas in Tracker, Graph, and detail views.
42
+
41
43
  **[v0.16.4](https://chorus-ai.dev/blog/chorus-v0.16.4-release/)** — DeepSeek Harness (dsh) is the sixth way to connect: the `@chorus-aidlc/chorus-dsh` bundle drops Chorus's skills, persona, and MCP config into any dsh profile. Interactive for now; daemon wake comes later.
42
44
 
43
45
  **[v0.16.1](https://chorus-ai.dev/blog/chorus-v0.16.1-release/)** — One `chorus daemon` now serves many independent agents at once — each with its own key, working directories, backend, and permissions via an `agents[]` array — and agents can hand work to each other by @-mention, with each wake landing in that agent's own project directory.
@@ -46,7 +48,7 @@ The labels under each stage are the **permissions** an actor needs there — gra
46
48
 
47
49
  **[v0.15.0](https://chorus-ai.dev/blog/chorus-v0.15.0-release/)** — Project-level Agent working directories: each user can bind every Agent in a project to a host and cwd, browse only daemon-approved roots, and use the same target across assignment, wake, resume, and later turns without moving active sessions. Codex now persists its resumable backend thread ID separately and drops obsolete Chorus session-management steps.
48
50
 
49
- **[v0.14.1](https://chorus-ai.dev/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI is the fourth way to connect (Kiro CLI v2): a one-command `install-kiro.sh` plugin and a `--agent kiro` daemon backend, plus daemon fixes.
51
+ **[v0.14.1](https://chorus-ai.dev/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI is the fourth way to connect (Kiro CLI v2): a one-command Kiro plugin via `chorus agents add` and a `--agent kiro` daemon backend, plus daemon fixes.
50
52
 
51
53
  **[v0.14.0](https://chorus-ai.dev/blog/chorus-v0.14.0-release/)** — Dark mode across the app (light / dark / system). Reference artifacts: attach docs, repos, issues, and articles to any idea, proposal, or task, readable inline and over MCP. Korean and Japanese locales (Korean contributed by the community). **Theme** ideas for grouping, plus daemon Start Development / Yolo buttons, conversational idea entry, crash-resume, and `chorus daemon install`.
52
54
 
@@ -59,7 +61,7 @@ The labels under each stage are the **permissions** an actor needs there — gra
59
61
  Two commands. No database, no Docker, no config files.
60
62
 
61
63
  ```bash
62
- npm install -g @chorus-aidlc/chorus
64
+ npm install -g @chorus-aidlc/chorus@0.17.1
63
65
  chorus
64
66
  ```
65
67
 
package/README.zh.md CHANGED
@@ -29,6 +29,8 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
29
29
 
30
30
  ## 最近更新
31
31
 
32
+ **[v0.17.0–0.17.1](https://github.com/Chorus-AIDLC/Chorus/releases/tag/v0.17.1)** — 一个 CLI 即可为各类编程 Agent 安装和更新 Chorus。现在还能在 Tracker、Graph 和 Idea 详情中直接看到 daemon 的实时活动。
33
+
32
34
  **[v0.16.4](https://chorus-ai.dev/zh/blog/chorus-v0.16.4-release/)** — DeepSeek Harness(dsh)成为第六种接入方式:`@chorus-aidlc/chorus-dsh` bundle 把 Chorus 的 skill、persona 和 MCP 配置装进任意 dsh profile。目前仅交互式使用,daemon 唤醒稍后支持。
33
35
 
34
36
  **[v0.16.1](https://chorus-ai.dev/zh/blog/chorus-v0.16.1-release/)** — 一个 `chorus daemon` 现在可以同时服务多个互相独立的 agent,每个都有自己的密钥、工作目录、后端和权限(通过 `agents[]` 配置);agent 之间还能通过 @ 把活递给对方,每次唤醒都落在该 agent 自己的项目目录里。
@@ -37,7 +39,7 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
37
39
 
38
40
  **[v0.15.0](https://chorus-ai.dev/zh/blog/chorus-v0.15.0-release/)** — 项目级 Agent 工作目录:每位用户可以为项目中的每个 Agent 绑定主机和 cwd,只浏览 daemon 允许的目录,并让任务分配、唤醒、恢复和后续对话使用同一个执行位置,且不迁移进行中的会话。Codex 现在会单独保存可恢复的后端 thread ID,并移除不再需要的 Chorus session 管理步骤。
39
41
 
40
- **[v0.14.1](https://chorus-ai.dev/zh/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI 成为第四种接入方式(Kiro CLI v2):一条命令的 `install-kiro.sh` 插件,以及 `--agent kiro` 的 daemon 后端,另有若干 daemon 修复。
42
+ **[v0.14.1](https://chorus-ai.dev/zh/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI 成为第四种接入方式(Kiro CLI v2):通过 `chorus agents add` 一条命令安装的 Kiro 插件,以及 `--agent kiro` 的 daemon 后端,另有若干 daemon 修复。
41
43
 
42
44
  **[v0.14.0](https://chorus-ai.dev/zh/blog/chorus-v0.14.0-release/)** — 全应用深色模式(浅色 / 深色 / 跟随系统)。参考资料可挂到任意想法、提案或任务上,行内可读,也能通过 MCP 读写。新增韩语和日语(韩语由社区贡献)。用于归类的**主题**想法,以及 daemon 的「开始开发」/「Yolo」按钮、对话式建想法、崩溃恢复与 `chorus daemon install`。
43
45
 
@@ -50,7 +52,7 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
50
52
  两条命令即可,无需数据库、无需 Docker、无需配置文件。
51
53
 
52
54
  ```bash
53
- npm install -g @chorus-aidlc/chorus
55
+ npm install -g @chorus-aidlc/chorus@0.17.1
54
56
  chorus
55
57
  ```
56
58
 
package/chorus.mjs CHANGED
@@ -24,7 +24,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
24
24
  // client commands that connect OUT to a remote Chorus server. Their modules are
25
25
  // lazy-imported so the server-launch path pays no startup cost.
26
26
 
27
- const SUBCOMMANDS = new Set(["daemon", "login"]);
27
+ const SUBCOMMANDS = new Set(["daemon", "login", "mcp", "agents"]);
28
28
 
29
29
  // Client-subcommand arg parsing + help text live in cli/client-args.mjs so they
30
30
  // are pure and unit-testable (this entry module runs side effects at import).
@@ -54,6 +54,19 @@ function pkgVersion() {
54
54
  }
55
55
 
56
56
  async function runSubcommand(name, rest) {
57
+ // `agents` and `mcp` own their arg parsing + help (they handle `--help`
58
+ // themselves), so they are dispatched before the shared client-flag/help
59
+ // block below. (`chorus init` was renamed to `chorus agents add` — the bare
60
+ // `chorus init` word is intercepted with a rename hint before server boot.)
61
+ if (name === "mcp") {
62
+ const { runMcp } = await import("./cli/mcp.mjs");
63
+ return runMcp(rest, { version: pkgVersion() });
64
+ }
65
+ if (name === "agents") {
66
+ const { runAgents } = await import("./cli/agents.mjs");
67
+ return runAgents(rest, { version: pkgVersion() });
68
+ }
69
+
57
70
  const flags = parseClientFlags(rest);
58
71
 
59
72
  // Per-subcommand --help / -h fast-path: print subcommand-specific help and
@@ -82,6 +95,18 @@ async function runSubcommand(name, rest) {
82
95
 
83
96
  {
84
97
  const sub = process.argv[2];
98
+ // `chorus init` was renamed to `chorus agents add`. Intercept the old word
99
+ // with an actionable hint and exit — never fall through to the server-launch
100
+ // path below (a muscle-memory `chorus init` must not silently boot Postgres).
101
+ if (sub === "init") {
102
+ process.stderr.write(
103
+ "`chorus init` has been renamed to `chorus agents add`.\n" +
104
+ " • configure agents: chorus agents add (same flags as before)\n" +
105
+ " • list configured: chorus agents\n" +
106
+ " • remove one: chorus agents remove <name|uuid>\n",
107
+ );
108
+ process.exit(1);
109
+ }
85
110
  if (sub && SUBCOMMANDS.has(sub)) {
86
111
  runSubcommand(sub, process.argv.slice(3))
87
112
  .then((code) => process.exit(typeof code === "number" ? code : 0))
@@ -146,10 +171,16 @@ Chorus v${pkg.version} — AI Agent & Human collaboration platform
146
171
 
147
172
  USAGE
148
173
  chorus [options] Start the Chorus server (default)
174
+ chorus agents [list|add|remove] Manage this machine's configured agents:
175
+ list (default), add (detect + install plugin + seed
176
+ creds; formerly 'chorus init'), remove <name|uuid>
177
+ (see 'chorus agents --help')
149
178
  chorus login [--url --api-key] Authenticate as an agent; saves ~/.chorus/daemon.json
150
179
  chorus daemon [--url --api-key] Connect to a remote Chorus server, subscribe to the
151
180
  agent notification stream, and wake a local headless
152
181
  Claude Code on task dispatch
182
+ chorus mcp <call|whoami|list> Native MCP client — call any tool, print this agent's
183
+ UUID, or list callable tools (see 'chorus mcp --help')
153
184
 
154
185
  SERVER OPTIONS
155
186
  -p, --port <port> HTTP server port (default: 8637, env: PORT)
@@ -203,6 +234,9 @@ EXAMPLES
203
234
  chorus daemon # Connect & wake local Claude Code (full autonomy by default)
204
235
  chorus daemon --chorus-only # Restrict the woken Claude to Chorus MCP tools only
205
236
  CHORUS_URL=https://... CHORUS_API_KEY=cho_... chorus daemon
237
+ chorus mcp whoami # Print this agent's own UUID
238
+ chorus mcp call chorus_get_task '{"taskUuid":"..."}' # Call a tool with JSON args
239
+ chorus mcp call chorus_pm_add_document_draft --arg proposalUuid=P1 --arg type=prd --arg-file content=doc.md
206
240
  `);
207
241
  process.exit(0);
208
242
  }
@@ -84,8 +84,9 @@ export async function promptAgentBackend({ ask, log = () => {}, isTTY = false }
84
84
  if (Number.isInteger(n) && n >= 1 && n <= AGENT_MENU.length) {
85
85
  return AGENT_MENU[n - 1].value;
86
86
  }
87
- // A backend typed by name (muscle memory). KNOWN_AGENTS includes de-advertised
88
- // backends (dsh), so a by-name pick can still reach them.
87
+ // A backend typed by name (muscle memory). KNOWN_AGENTS includes the
88
+ // de-advertised `dsh` backend AND the non-wakeable `offline` classification, so a
89
+ // by-name pick can still reach either even though neither is in the numbered menu.
89
90
  if (KNOWN_AGENTS.includes(answer)) return answer;
90
91
 
91
92
  // Out-of-range / garbage → no explicit choice; the caller inherits the default.