@chorus-aidlc/chorus 0.14.0 → 0.14.2

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 (592) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +459 -424
  3. package/.next/standalone/.next/app-path-routes-manifest.json +49 -45
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +33 -33
  6. package/.next/standalone/.next/routes-manifest.json +8 -0
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  47. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  51. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  52. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  55. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  56. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  58. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  59. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/admin.html +2 -2
  61. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  62. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  82. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
  91. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  93. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  97. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  99. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
  101. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  103. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  105. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  107. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  110. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  112. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/events/route.js +1 -1
  114. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  117. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  121. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  123. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  127. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js +1 -0
  129. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -0
  130. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -0
  131. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/mcp/route.js +4 -4
  134. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  136. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  138. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  140. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  142. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  144. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  146. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  148. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  150. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/project-visits/pin/route.js +1 -0
  155. package/.next/standalone/.next/server/app/api/project-visits/pin/route.js.nft.json +1 -0
  156. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -0
  157. package/.next/standalone/.next/server/app/api/project-visits/route.js +1 -0
  158. package/.next/standalone/.next/server/app/api/project-visits/route.js.nft.json +1 -0
  159. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -0
  160. package/.next/standalone/.next/server/app/api/project-visits/visit/route.js +1 -0
  161. package/.next/standalone/.next/server/app/api/project-visits/visit/route.js.nft.json +1 -0
  162. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -0
  163. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  165. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  169. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  171. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
  176. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  180. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  182. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  187. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  194. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  196. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  198. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  200. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  202. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  204. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  206. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/index.html +2 -2
  208. package/.next/standalone/.next/server/app/index.rsc +2 -2
  209. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  211. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  212. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  214. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  215. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  217. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  218. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  219. package/.next/standalone/.next/server/app/login.html +2 -2
  220. package/.next/standalone/.next/server/app/login.rsc +2 -2
  221. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  223. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  224. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/projects.html +2 -2
  226. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  227. package/.next/standalone/.next/server/app/settings.html +2 -2
  228. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  229. package/.next/standalone/.next/server/app-paths-manifest.json +49 -45
  230. package/.next/standalone/.next/server/chunks/1114.js +1 -1
  231. package/.next/standalone/.next/server/chunks/1173.js +1 -1
  232. package/.next/standalone/.next/server/chunks/1286.js +3 -2
  233. package/.next/standalone/.next/server/chunks/1318.js +1 -0
  234. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  235. package/.next/standalone/.next/server/chunks/2463.js +1 -0
  236. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  237. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  238. package/.next/standalone/.next/server/chunks/3219.js +1 -1
  239. package/.next/standalone/.next/server/chunks/3407.js +1 -0
  240. package/.next/standalone/.next/server/chunks/3419.js +1 -1
  241. package/.next/standalone/.next/server/chunks/457.js +1 -0
  242. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  243. package/.next/standalone/.next/server/chunks/{1343.js → 5201.js} +2 -2
  244. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  245. package/.next/standalone/.next/server/chunks/595.js +1 -0
  246. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  247. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  248. package/.next/standalone/.next/server/chunks/6449.js +1 -0
  249. package/.next/standalone/.next/server/chunks/{8577.js → 6506.js} +3 -3
  250. package/.next/standalone/.next/server/chunks/6515.js +6 -0
  251. package/.next/standalone/.next/server/chunks/7364.js +1 -1
  252. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  253. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  254. package/.next/standalone/.next/server/chunks/7762.js +1 -1
  255. package/.next/standalone/.next/server/chunks/8454.js +1 -1
  256. package/.next/standalone/.next/server/chunks/920.js +1 -1
  257. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  258. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  259. package/.next/standalone/.next/server/chunks/951.js +1 -0
  260. package/.next/standalone/.next/server/instrumentation.js +1 -1
  261. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  262. package/.next/standalone/.next/server/middleware-manifest.json +1 -1
  263. package/.next/standalone/.next/server/pages/404.html +2 -2
  264. package/.next/standalone/.next/server/pages/500.html +1 -1
  265. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  267. package/.next/standalone/.next/static/XTQkt8fOQEK4mZkZTFQ_E/_buildManifest.js +1 -0
  268. package/.next/standalone/.next/static/chunks/11595.fbbfc784ff9ee566.js +1 -0
  269. package/.next/standalone/.next/static/chunks/13867-a95a4555fcb7b13b.js +1 -0
  270. package/.next/standalone/.next/static/chunks/24537-7d71bf10329d1be1.js +1 -0
  271. package/.next/standalone/.next/static/chunks/27030-19cd50b9d47b3be6.js +1 -0
  272. package/.next/standalone/.next/static/chunks/28680-f9c5e04f67982cb6.js +1 -0
  273. package/.next/standalone/.next/static/chunks/31308-bb4a97b3f39c22dd.js +1 -0
  274. package/.next/standalone/.next/static/chunks/32331-87ae9bc7517c7947.js +1 -0
  275. package/.next/standalone/.next/static/chunks/33277-9926b461045318b3.js +10 -0
  276. package/.next/standalone/.next/static/chunks/33456.b67f1146831e9f2b.js +1 -0
  277. package/.next/standalone/.next/static/chunks/37035-514bbb31cd13bda1.js +1 -0
  278. package/.next/standalone/.next/static/chunks/38526-7ffc4b7351c15bc4.js +1 -0
  279. package/.next/standalone/.next/static/chunks/{42605-029b5426175cdee9.js → 39479-5af3460208d8cc56.js} +1 -1
  280. package/.next/standalone/.next/static/chunks/4860.3491d748fdde968e.js +1 -0
  281. package/.next/standalone/.next/static/chunks/51603-7fa00971493ae223.js +1 -0
  282. package/.next/standalone/.next/static/chunks/73510-c338cef00ca3cfaf.js +1 -0
  283. package/.next/standalone/.next/static/chunks/78917-a297b76c6daa9f5d.js +1 -0
  284. package/.next/standalone/.next/static/chunks/84219-09970ab1b85c61f0.js +1 -0
  285. package/.next/standalone/.next/static/chunks/86155-c9b7c2c08d3fa80e.js +1 -0
  286. package/.next/standalone/.next/static/chunks/99373.827383575665ce2f.js +1 -0
  287. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-12d81eedb519461c.js +1 -0
  288. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-2af5f2f159c8e32b.js +1 -0
  289. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-d1c49cfe592deeb8.js +1 -0
  290. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-996b8a87b4b986f1.js +1 -0
  291. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-77771ef395e19922.js +1 -0
  292. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-c231207c3674aa54.js +1 -0
  293. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-2b13a2224c3b6d6d.js → page-c62c7d7cf9833060.js} +1 -1
  294. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-d098269dcaa06de7.js +1 -0
  295. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-7948aa8db4813091.js +1 -0
  296. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-8eea1e0cea60758f.js +1 -0
  297. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-658f31ac6a28ec82.js +1 -0
  298. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-6df01fa989cca27b.js +1 -0
  299. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-7fbf5bc58d3dd5b0.js +1 -0
  300. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  301. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-d1c49cfe592deeb8.js +1 -0
  302. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-d1c49cfe592deeb8.js +1 -0
  303. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-d1c49cfe592deeb8.js +1 -0
  304. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-d1c49cfe592deeb8.js +1 -0
  305. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  306. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-d1c49cfe592deeb8.js +1 -0
  307. package/.next/standalone/.next/static/chunks/app/api/agents/route-d1c49cfe592deeb8.js +1 -0
  308. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  309. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-d1c49cfe592deeb8.js +1 -0
  310. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-d1c49cfe592deeb8.js +1 -0
  311. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-d1c49cfe592deeb8.js +1 -0
  312. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-d1c49cfe592deeb8.js +1 -0
  313. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-d1c49cfe592deeb8.js +1 -0
  314. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-d1c49cfe592deeb8.js +1 -0
  315. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-d1c49cfe592deeb8.js +1 -0
  316. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-d1c49cfe592deeb8.js +1 -0
  317. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-d1c49cfe592deeb8.js +1 -0
  318. package/.next/standalone/.next/static/chunks/app/api/comments/route-d1c49cfe592deeb8.js +1 -0
  319. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-d1c49cfe592deeb8.js +1 -0
  320. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-d1c49cfe592deeb8.js +1 -0
  321. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-d1c49cfe592deeb8.js +1 -0
  322. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-d1c49cfe592deeb8.js +1 -0
  323. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-d1c49cfe592deeb8.js +1 -0
  324. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-d1c49cfe592deeb8.js +1 -0
  325. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-d1c49cfe592deeb8.js +1 -0
  326. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-d1c49cfe592deeb8.js +1 -0
  327. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-d1c49cfe592deeb8.js +1 -0
  328. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-d1c49cfe592deeb8.js +1 -0
  329. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-d1c49cfe592deeb8.js +1 -0
  330. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-d1c49cfe592deeb8.js +1 -0
  331. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-d1c49cfe592deeb8.js +1 -0
  332. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  333. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-d1c49cfe592deeb8.js +1 -0
  334. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-d1c49cfe592deeb8.js +1 -0
  335. package/.next/standalone/.next/static/chunks/app/api/events/route-d1c49cfe592deeb8.js +1 -0
  336. package/.next/standalone/.next/static/chunks/app/api/health/route-d1c49cfe592deeb8.js +1 -0
  337. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-d1c49cfe592deeb8.js +1 -0
  338. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-d1c49cfe592deeb8.js +1 -0
  339. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-d1c49cfe592deeb8.js +1 -0
  340. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-d1c49cfe592deeb8.js +1 -0
  341. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-d1c49cfe592deeb8.js +1 -0
  342. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  343. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/wake-preview/route-d1c49cfe592deeb8.js +1 -0
  344. package/.next/standalone/.next/static/chunks/app/api/ideas/conversational/route-d1c49cfe592deeb8.js +1 -0
  345. package/.next/standalone/.next/static/chunks/app/api/mcp/route-d1c49cfe592deeb8.js +1 -0
  346. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-d1c49cfe592deeb8.js +1 -0
  347. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-d1c49cfe592deeb8.js +1 -0
  348. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-d1c49cfe592deeb8.js +1 -0
  349. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-d1c49cfe592deeb8.js +1 -0
  350. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-d1c49cfe592deeb8.js +1 -0
  351. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-d1c49cfe592deeb8.js +1 -0
  352. package/.next/standalone/.next/static/chunks/app/api/notifications/route-d1c49cfe592deeb8.js +1 -0
  353. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-d1c49cfe592deeb8.js +1 -0
  354. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-d1c49cfe592deeb8.js +1 -0
  355. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  356. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-d1c49cfe592deeb8.js +1 -0
  357. package/.next/standalone/.next/static/chunks/app/api/project-visits/pin/route-d1c49cfe592deeb8.js +1 -0
  358. package/.next/standalone/.next/static/chunks/app/api/project-visits/route-d1c49cfe592deeb8.js +1 -0
  359. package/.next/standalone/.next/static/chunks/app/api/project-visits/visit/route-d1c49cfe592deeb8.js +1 -0
  360. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-d1c49cfe592deeb8.js +1 -0
  361. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-d1c49cfe592deeb8.js +1 -0
  362. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-d1c49cfe592deeb8.js +1 -0
  363. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-d1c49cfe592deeb8.js +1 -0
  364. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-d1c49cfe592deeb8.js +1 -0
  365. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-d1c49cfe592deeb8.js +1 -0
  366. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-d1c49cfe592deeb8.js +1 -0
  367. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-d1c49cfe592deeb8.js +1 -0
  368. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-d1c49cfe592deeb8.js +1 -0
  369. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/resource-graph/route-d1c49cfe592deeb8.js +1 -0
  370. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  371. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-d1c49cfe592deeb8.js +1 -0
  372. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-d1c49cfe592deeb8.js +1 -0
  373. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-d1c49cfe592deeb8.js +1 -0
  374. package/.next/standalone/.next/static/chunks/app/api/projects/route-d1c49cfe592deeb8.js +1 -0
  375. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-d1c49cfe592deeb8.js +1 -0
  376. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-d1c49cfe592deeb8.js +1 -0
  377. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-d1c49cfe592deeb8.js +1 -0
  378. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-d1c49cfe592deeb8.js +1 -0
  379. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  380. package/.next/standalone/.next/static/chunks/app/api/references/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  381. package/.next/standalone/.next/static/chunks/app/api/references/route-d1c49cfe592deeb8.js +1 -0
  382. package/.next/standalone/.next/static/chunks/app/api/search/route-d1c49cfe592deeb8.js +1 -0
  383. package/.next/standalone/.next/static/chunks/app/api/session/route-d1c49cfe592deeb8.js +1 -0
  384. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  385. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-d1c49cfe592deeb8.js +1 -0
  386. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-d1c49cfe592deeb8.js +1 -0
  387. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-d1c49cfe592deeb8.js +1 -0
  388. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-d1c49cfe592deeb8.js +1 -0
  389. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-d1c49cfe592deeb8.js +1 -0
  390. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-d1c49cfe592deeb8.js +1 -0
  391. package/.next/standalone/.next/static/chunks/app/onboarding/page-b178eb3215360d91.js +1 -0
  392. package/.next/standalone/.next/static/chunks/{webpack-9dda6192665a5c8d.js → webpack-567d9ffe31a0a5ee.js} +1 -1
  393. package/.next/standalone/.next/static/css/617133917710c831.css +1 -0
  394. package/.next/standalone/package.json +1 -1
  395. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  396. package/.next/standalone/public/chorus-plugin/bin/on-post-verify-task.sh +1 -1
  397. package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +29 -5
  398. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  399. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +23 -2
  400. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +2 -2
  401. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +32 -1
  402. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  403. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
  404. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  405. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  406. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +2 -2
  407. package/.next/standalone/public/install-kiro.sh +350 -0
  408. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +10 -0
  409. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +10 -0
  410. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +10 -0
  411. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.json +50 -0
  412. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.md +62 -0
  413. package/.next/standalone/public/kiro-plugin/.kiro/settings/mcp.json +12 -0
  414. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +158 -0
  415. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +421 -0
  416. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +332 -0
  417. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +434 -0
  418. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +386 -0
  419. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +193 -0
  420. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +360 -0
  421. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +547 -0
  422. package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +404 -0
  423. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +392 -0
  424. package/.next/standalone/public/kiro-plugin/bin/on-agent-spawn.sh +81 -0
  425. package/.next/standalone/public/kiro-plugin/bin/on-post-submit-for-verify.sh +68 -0
  426. package/.next/standalone/public/kiro-plugin/bin/on-post-submit-proposal.sh +76 -0
  427. package/.next/standalone/public/kiro-plugin/bin/on-post-verify-task.sh +119 -0
  428. package/.next/standalone/public/kiro-plugin/bin/on-stop.sh +45 -0
  429. package/.next/standalone/public/kiro-plugin/bin/test-syntax.sh +108 -0
  430. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
  431. package/.next/standalone/public/skill/chorus/SKILL.md +8 -2
  432. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +1 -1
  433. package/.next/standalone/public/skill/develop-chorus/SKILL.md +2 -2
  434. package/.next/standalone/public/skill/idea-chorus/SKILL.md +32 -1
  435. package/.next/standalone/public/skill/package.json +1 -1
  436. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +1 -1
  437. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +1 -1
  438. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  439. package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
  440. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +1 -1
  441. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +3 -3
  442. package/README.ja.md +14 -11
  443. package/README.ko.md +14 -11
  444. package/README.md +14 -11
  445. package/README.zh.md +14 -11
  446. package/chorus.mjs +4 -0
  447. package/cli/client-args.mjs +19 -8
  448. package/cli/codex-session-map.mjs +9 -79
  449. package/cli/daemon-agent.mjs +12 -7
  450. package/cli/daemon-config.mjs +2 -2
  451. package/cli/daemon-install-config.mjs +213 -0
  452. package/cli/daemon-service.mjs +12 -7
  453. package/cli/daemon.mjs +68 -9
  454. package/cli/kiro-session-map.mjs +49 -0
  455. package/cli/kiro-spawner.mjs +409 -0
  456. package/cli/kiro-transcript.mjs +262 -0
  457. package/cli/lineage.mjs +20 -0
  458. package/cli/prompts.mjs +19 -2
  459. package/cli/session-map.mjs +126 -0
  460. package/cli/spawner-select.mjs +7 -1
  461. package/cli/waker.mjs +18 -3
  462. package/package.json +1 -1
  463. package/prisma/migrations/20260714091007_add_daemon_execution_direct_idea/migration.sql +2 -0
  464. package/prisma/migrations/20260718062756_add_project_visit/migration.sql +29 -0
  465. package/prisma/schema.prisma +30 -0
  466. package/.next/standalone/.next/server/chunks/1388.js +0 -1
  467. package/.next/standalone/.next/server/chunks/2382.js +0 -1
  468. package/.next/standalone/.next/server/chunks/3373.js +0 -1
  469. package/.next/standalone/.next/server/chunks/4797.js +0 -1
  470. package/.next/standalone/.next/server/chunks/5011.js +0 -1
  471. package/.next/standalone/.next/server/chunks/5891.js +0 -1
  472. package/.next/standalone/.next/server/chunks/7131.js +0 -6
  473. package/.next/standalone/.next/static/chunks/11595.c932231a36943893.js +0 -1
  474. package/.next/standalone/.next/static/chunks/20081-a2bf5c9f24d5d589.js +0 -1
  475. package/.next/standalone/.next/static/chunks/24537-7988a894f20f8dae.js +0 -1
  476. package/.next/standalone/.next/static/chunks/2709-8f25369aeb5701a4.js +0 -1
  477. package/.next/standalone/.next/static/chunks/33456.f1c7b6bd0a6a65e4.js +0 -1
  478. package/.next/standalone/.next/static/chunks/43111-7a4e08dc82bb3022.js +0 -1
  479. package/.next/standalone/.next/static/chunks/4860.9313590c6c8c8f56.js +0 -1
  480. package/.next/standalone/.next/static/chunks/4939-ff22e2b42ad57f7f.js +0 -1
  481. package/.next/standalone/.next/static/chunks/55963-b2804d30cfbbe669.js +0 -1
  482. package/.next/standalone/.next/static/chunks/56608-92ab6704b364eb17.js +0 -1
  483. package/.next/standalone/.next/static/chunks/75252-29e0e25cb5a94f7f.js +0 -10
  484. package/.next/standalone/.next/static/chunks/80350-0d34e756f4aebdfc.js +0 -1
  485. package/.next/standalone/.next/static/chunks/84169-affac07755ace386.js +0 -1
  486. package/.next/standalone/.next/static/chunks/9178-182934f9127eed4e.js +0 -1
  487. package/.next/standalone/.next/static/chunks/93346-1d4cd71b8713a8a6.js +0 -1
  488. package/.next/standalone/.next/static/chunks/96752-ad15cc38599f12e2.js +0 -1
  489. package/.next/standalone/.next/static/chunks/99373.9756d8f45fee79a7.js +0 -1
  490. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-00ff2f6753bb4603.js +0 -1
  491. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-5824e6affe244f83.js +0 -1
  492. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-9cc7c62013897acb.js +0 -1
  493. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-21571e747883b956.js +0 -1
  494. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-f763dec99ba41f1c.js +0 -1
  495. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-f13281a5806b6b4b.js +0 -1
  496. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-6c577e521c61f718.js +0 -1
  497. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-078f21255acdf752.js +0 -1
  498. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-d37d5adabc60a16c.js +0 -1
  499. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-8212e69e806cab35.js +0 -1
  500. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-85665683f67eebc7.js +0 -1
  501. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-2ab18a236a0c7f7b.js +0 -1
  502. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-9cc7c62013897acb.js +0 -1
  503. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-9cc7c62013897acb.js +0 -1
  504. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-9cc7c62013897acb.js +0 -1
  505. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-9cc7c62013897acb.js +0 -1
  506. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-9cc7c62013897acb.js +0 -1
  507. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-9cc7c62013897acb.js +0 -1
  508. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-9cc7c62013897acb.js +0 -1
  509. package/.next/standalone/.next/static/chunks/app/api/agents/route-9cc7c62013897acb.js +0 -1
  510. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-9cc7c62013897acb.js +0 -1
  511. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-9cc7c62013897acb.js +0 -1
  512. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-9cc7c62013897acb.js +0 -1
  513. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-9cc7c62013897acb.js +0 -1
  514. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-9cc7c62013897acb.js +0 -1
  515. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-9cc7c62013897acb.js +0 -1
  516. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-9cc7c62013897acb.js +0 -1
  517. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-9cc7c62013897acb.js +0 -1
  518. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-9cc7c62013897acb.js +0 -1
  519. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-9cc7c62013897acb.js +0 -1
  520. package/.next/standalone/.next/static/chunks/app/api/comments/route-9cc7c62013897acb.js +0 -1
  521. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-9cc7c62013897acb.js +0 -1
  522. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-9cc7c62013897acb.js +0 -1
  523. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-9cc7c62013897acb.js +0 -1
  524. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-9cc7c62013897acb.js +0 -1
  525. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-9cc7c62013897acb.js +0 -1
  526. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-9cc7c62013897acb.js +0 -1
  527. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-9cc7c62013897acb.js +0 -1
  528. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-9cc7c62013897acb.js +0 -1
  529. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-9cc7c62013897acb.js +0 -1
  530. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-9cc7c62013897acb.js +0 -1
  531. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-9cc7c62013897acb.js +0 -1
  532. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-9cc7c62013897acb.js +0 -1
  533. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-9cc7c62013897acb.js +0 -1
  534. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-9cc7c62013897acb.js +0 -1
  535. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-9cc7c62013897acb.js +0 -1
  536. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-9cc7c62013897acb.js +0 -1
  537. package/.next/standalone/.next/static/chunks/app/api/events/route-9cc7c62013897acb.js +0 -1
  538. package/.next/standalone/.next/static/chunks/app/api/health/route-9cc7c62013897acb.js +0 -1
  539. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-9cc7c62013897acb.js +0 -1
  540. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-9cc7c62013897acb.js +0 -1
  541. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-9cc7c62013897acb.js +0 -1
  542. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-9cc7c62013897acb.js +0 -1
  543. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-9cc7c62013897acb.js +0 -1
  544. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-9cc7c62013897acb.js +0 -1
  545. package/.next/standalone/.next/static/chunks/app/api/ideas/conversational/route-9cc7c62013897acb.js +0 -1
  546. package/.next/standalone/.next/static/chunks/app/api/mcp/route-9cc7c62013897acb.js +0 -1
  547. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-9cc7c62013897acb.js +0 -1
  548. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-9cc7c62013897acb.js +0 -1
  549. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-9cc7c62013897acb.js +0 -1
  550. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-9cc7c62013897acb.js +0 -1
  551. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-9cc7c62013897acb.js +0 -1
  552. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-9cc7c62013897acb.js +0 -1
  553. package/.next/standalone/.next/static/chunks/app/api/notifications/route-9cc7c62013897acb.js +0 -1
  554. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-9cc7c62013897acb.js +0 -1
  555. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-9cc7c62013897acb.js +0 -1
  556. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-9cc7c62013897acb.js +0 -1
  557. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-9cc7c62013897acb.js +0 -1
  558. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-9cc7c62013897acb.js +0 -1
  559. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-9cc7c62013897acb.js +0 -1
  560. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-9cc7c62013897acb.js +0 -1
  561. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-9cc7c62013897acb.js +0 -1
  562. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-9cc7c62013897acb.js +0 -1
  563. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-9cc7c62013897acb.js +0 -1
  564. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-9cc7c62013897acb.js +0 -1
  565. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-9cc7c62013897acb.js +0 -1
  566. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-9cc7c62013897acb.js +0 -1
  567. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/resource-graph/route-9cc7c62013897acb.js +0 -1
  568. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-9cc7c62013897acb.js +0 -1
  569. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-9cc7c62013897acb.js +0 -1
  570. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-9cc7c62013897acb.js +0 -1
  571. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-9cc7c62013897acb.js +0 -1
  572. package/.next/standalone/.next/static/chunks/app/api/projects/route-9cc7c62013897acb.js +0 -1
  573. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-9cc7c62013897acb.js +0 -1
  574. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-9cc7c62013897acb.js +0 -1
  575. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-9cc7c62013897acb.js +0 -1
  576. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-9cc7c62013897acb.js +0 -1
  577. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-9cc7c62013897acb.js +0 -1
  578. package/.next/standalone/.next/static/chunks/app/api/references/[uuid]/route-9cc7c62013897acb.js +0 -1
  579. package/.next/standalone/.next/static/chunks/app/api/references/route-9cc7c62013897acb.js +0 -1
  580. package/.next/standalone/.next/static/chunks/app/api/search/route-9cc7c62013897acb.js +0 -1
  581. package/.next/standalone/.next/static/chunks/app/api/session/route-9cc7c62013897acb.js +0 -1
  582. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-9cc7c62013897acb.js +0 -1
  583. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-9cc7c62013897acb.js +0 -1
  584. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-9cc7c62013897acb.js +0 -1
  585. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-9cc7c62013897acb.js +0 -1
  586. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-9cc7c62013897acb.js +0 -1
  587. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-9cc7c62013897acb.js +0 -1
  588. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-9cc7c62013897acb.js +0 -1
  589. package/.next/standalone/.next/static/chunks/app/onboarding/page-455d693daccb65df.js +0 -1
  590. package/.next/standalone/.next/static/css/5f09fa856a63632f.css +0 -1
  591. package/.next/standalone/.next/static/sOwBl2wYTfQ3B0DrB18aB/_buildManifest.js +0 -1
  592. /package/.next/standalone/.next/static/{sOwBl2wYTfQ3B0DrB18aB → XTQkt8fOQEK4mZkZTFQ_E}/_ssgManifest.js +0 -0
@@ -0,0 +1,392 @@
1
+ #!/usr/bin/env bash
2
+ # chorus-api.sh — Lightweight REST API wrapper for Chorus session management
3
+ # Used by hook scripts to communicate with Chorus backend.
4
+ #
5
+ # Environment variables:
6
+ # CHORUS_URL — Chorus base URL (e.g., http://localhost:8637)
7
+ # CHORUS_API_KEY — Agent API key (cho_xxx)
8
+ # CHORUS_STATE_DIR — optional override for the session-state directory
9
+ #
10
+ # State file: $CHORUS_STATE_DIR/state.json (gitignored). Runtime-agnostic:
11
+ # under Kiro CLI (which does not set CLAUDE_PROJECT_DIR) state defaults to a
12
+ # stable per-user location (~/.kiro/.chorus) instead of the launch cwd, so a
13
+ # hook-triggered MCP call never litters a stray .chorus/ dir into whatever
14
+ # directory `kiro` happened to be started from.
15
+
16
+ set -euo pipefail
17
+
18
+ # ===== Configuration =====
19
+
20
+ CHORUS_URL="${CHORUS_URL:-}"
21
+ CHORUS_API_KEY="${CHORUS_API_KEY:-}"
22
+ STATE_DIR="${CHORUS_STATE_DIR:-${CLAUDE_PROJECT_DIR:-$HOME/.kiro}/.chorus}"
23
+ STATE_FILE="${STATE_DIR}/state.json"
24
+
25
+ # ===== Helpers =====
26
+
27
+ die() {
28
+ echo "ERROR: $*" >&2
29
+ exit 1
30
+ }
31
+
32
+ require_env() {
33
+ [ -n "$CHORUS_URL" ] || die "CHORUS_URL is not set"
34
+ [ -n "$CHORUS_API_KEY" ] || die "CHORUS_API_KEY is not set"
35
+ }
36
+
37
+ # Make an authenticated API request to Chorus
38
+ # Usage: api_call METHOD PATH [DATA]
39
+ api_call() {
40
+ local method="$1"
41
+ local path="$2"
42
+ local data="${3:-}"
43
+
44
+ local args=(
45
+ -s -S
46
+ -X "$method"
47
+ -H "Authorization: Bearer ${CHORUS_API_KEY}"
48
+ -H "Content-Type: application/json"
49
+ )
50
+
51
+ if [ -n "$data" ]; then
52
+ args+=(-d "$data")
53
+ fi
54
+
55
+ local response
56
+ response=$(curl "${args[@]}" "${CHORUS_URL}${path}" 2>&1) || {
57
+ echo "CURL_ERROR: Failed to reach ${CHORUS_URL}${path}" >&2
58
+ return 1
59
+ }
60
+
61
+ echo "$response"
62
+ }
63
+
64
+ # Ensure state directory and file exist
65
+ ensure_state() {
66
+ mkdir -p "$STATE_DIR"
67
+ if [ ! -f "$STATE_FILE" ]; then
68
+ echo '{}' > "$STATE_FILE"
69
+ fi
70
+ }
71
+
72
+ # ===== State Management =====
73
+
74
+ state_get() {
75
+ local key="$1"
76
+ ensure_state
77
+ if command -v jq &>/dev/null; then
78
+ jq -r --arg k "$key" '.[$k] // empty' "$STATE_FILE"
79
+ else
80
+ # Fallback: simple grep-based extraction
81
+ grep -o "\"${key}\":\"[^\"]*\"" "$STATE_FILE" 2>/dev/null | cut -d'"' -f4
82
+ fi
83
+ }
84
+
85
+ state_set() {
86
+ local key="$1"
87
+ local value="$2"
88
+ ensure_state
89
+ # Use flock to serialize concurrent state writes (multiple SubagentStart hooks
90
+ # may run in parallel, each calling state-set multiple times).
91
+ (
92
+ flock -w 5 200 || { echo "WARN: state_set flock timeout for key=$key" >&2; return 0; }
93
+ if command -v jq &>/dev/null; then
94
+ local tmp
95
+ tmp=$(mktemp)
96
+ jq --arg k "$key" --arg v "$value" '.[$k] = $v' "$STATE_FILE" > "$tmp" && mv "$tmp" "$STATE_FILE"
97
+ else
98
+ if grep -q "\"${key}\":" "$STATE_FILE" 2>/dev/null; then
99
+ sed -i "s|\"${key}\":\"[^\"]*\"|\"${key}\":\"${value}\"|" "$STATE_FILE"
100
+ else
101
+ local tmp
102
+ tmp=$(mktemp)
103
+ sed "s|}$|,\"${key}\":\"${value}\"}|" "$STATE_FILE" > "$tmp" && mv "$tmp" "$STATE_FILE"
104
+ fi
105
+ fi
106
+ ) 200>"${STATE_FILE}.lock"
107
+ }
108
+
109
+ state_delete() {
110
+ local key="$1"
111
+ ensure_state
112
+ (
113
+ flock -w 5 200 || { echo "WARN: state_delete flock timeout for key=$key" >&2; return 0; }
114
+ if command -v jq &>/dev/null; then
115
+ local tmp
116
+ tmp=$(mktemp)
117
+ jq --arg k "$key" 'del(.[$k])' "$STATE_FILE" > "$tmp" && mv "$tmp" "$STATE_FILE"
118
+ fi
119
+ ) 200>"${STATE_FILE}.lock"
120
+ }
121
+
122
+ # ===== Hook Output =====
123
+ # Produces JSON that Claude Code parses:
124
+ # systemMessage → shown to user as notification
125
+ # hookSpecificOutput.additionalContext → injected into Claude's context (LLM sees this)
126
+ # hookSpecificOutput.hookEventName → identifies which hook event produced this context
127
+ #
128
+ # Usage: hook_output "User-visible message" "Context for Claude LLM" ["HookEventName"]
129
+ hook_output() {
130
+ local system_message="$1"
131
+ local additional_context="${2:-}"
132
+ local hook_event_name="${3:-}"
133
+ local updated_input_json="${4:-}" # Optional: raw JSON object for updatedInput
134
+ if command -v jq &>/dev/null; then
135
+ if [ -n "$updated_input_json" ]; then
136
+ # Build output with updatedInput (for PreToolUse parameter modification)
137
+ jq -n \
138
+ --arg sm "$system_message" \
139
+ --arg ac "$additional_context" \
140
+ --arg hen "$hook_event_name" \
141
+ --argjson ui "$updated_input_json" \
142
+ '{systemMessage: $sm, hookSpecificOutput: {hookEventName: $hen, additionalContext: $ac, updatedInput: $ui}}'
143
+ elif [ -n "$additional_context" ]; then
144
+ jq -n \
145
+ --arg sm "$system_message" \
146
+ --arg ac "$additional_context" \
147
+ --arg hen "$hook_event_name" \
148
+ '{systemMessage: $sm, hookSpecificOutput: {hookEventName: $hen, additionalContext: $ac}}'
149
+ else
150
+ jq -n \
151
+ --arg sm "$system_message" \
152
+ '{systemMessage: $sm}'
153
+ fi
154
+ else
155
+ # Fallback: manual JSON — escape newlines and quotes
156
+ local sm_escaped="${system_message//\\/\\\\}"
157
+ sm_escaped="${sm_escaped//\"/\\\"}"
158
+ sm_escaped="${sm_escaped//$'\n'/\\n}"
159
+ if [ -n "$additional_context" ]; then
160
+ local ac_escaped="${additional_context//\\/\\\\}"
161
+ ac_escaped="${ac_escaped//\"/\\\"}"
162
+ ac_escaped="${ac_escaped//$'\n'/\\n}"
163
+ printf '{"systemMessage":"%s","hookSpecificOutput":{"hookEventName":"%s","additionalContext":"%s"}}\n' "$sm_escaped" "$hook_event_name" "$ac_escaped"
164
+ else
165
+ printf '{"systemMessage":"%s"}\n' "$sm_escaped"
166
+ fi
167
+ fi
168
+ }
169
+
170
+ # ===== Session File Management (Plan A) =====
171
+
172
+ SESSIONS_DIR="${STATE_DIR}/sessions"
173
+
174
+ # Read a session file by agent name
175
+ # Usage: session_file_read <agent_name>
176
+ session_file_read() {
177
+ local name="$1"
178
+ local file="${SESSIONS_DIR}/${name}.json"
179
+ if [ -f "$file" ]; then
180
+ cat "$file"
181
+ else
182
+ echo "" >&2
183
+ return 1
184
+ fi
185
+ }
186
+
187
+ # List all session files
188
+ session_file_list() {
189
+ if [ ! -d "$SESSIONS_DIR" ]; then
190
+ echo "[]"
191
+ return
192
+ fi
193
+ if command -v jq &>/dev/null; then
194
+ local result="["
195
+ local first=true
196
+ for f in "$SESSIONS_DIR"/*.json; do
197
+ [ -f "$f" ] || continue
198
+ if [ "$first" = true ]; then
199
+ first=false
200
+ else
201
+ result="${result},"
202
+ fi
203
+ result="${result}$(cat "$f")"
204
+ done
205
+ result="${result}]"
206
+ echo "$result" | jq '.'
207
+ else
208
+ ls "$SESSIONS_DIR"/*.json 2>/dev/null | while read -r f; do
209
+ basename "$f" .json
210
+ done
211
+ fi
212
+ }
213
+
214
+ # ===== Subcommands =====
215
+
216
+ cmd_checkin() {
217
+ require_env
218
+ api_call GET "/api/health"
219
+ }
220
+
221
+ # Call an MCP tool via JSON-RPC over HTTP Streamable Transport
222
+ # Usage: cmd_mcp_tool <tool_name> [arguments_json]
223
+ # Returns the text content from the tool result
224
+ cmd_mcp_tool() {
225
+ local tool_name="${1:-}"
226
+ local arguments="${2:-{\}}"
227
+ [ -n "$tool_name" ] || die "Usage: chorus-api.sh mcp-tool <tool_name> [arguments_json]"
228
+ require_env
229
+ ensure_state
230
+
231
+ local mcp_url="${CHORUS_URL}/api/mcp"
232
+ local auth_header="Authorization: Bearer ${CHORUS_API_KEY}"
233
+ local max_retries=3
234
+ local retry_count=0
235
+ local session_id=""
236
+ local tool_response=""
237
+
238
+ # Retry loop for auto-reconnection on 404 (session expired)
239
+ while [ $retry_count -le $max_retries ]; do
240
+ # Step 1: Initialize MCP session
241
+ local init_payload
242
+ init_payload=$(cat <<JSONEOF
243
+ {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.14.2"}}}
244
+ JSONEOF
245
+ )
246
+
247
+ # Use a unique temp file for headers to avoid concurrent hooks overwriting each other
248
+ local headers_file
249
+ headers_file=$(mktemp "${STATE_DIR}/.mcp_headers.XXXXXX")
250
+
251
+ local init_response
252
+ init_response=$(curl -s -S -X POST \
253
+ -H "$auth_header" \
254
+ -H "Content-Type: application/json" \
255
+ -H "Accept: application/json, text/event-stream" \
256
+ -D "$headers_file" \
257
+ -d "$init_payload" \
258
+ "$mcp_url" 2>/dev/null) || { rm -f "$headers_file"; die "MCP initialize failed"; }
259
+
260
+ # Extract session ID from response headers (optional — stateless servers don't return one)
261
+ session_id=$(grep -i "^mcp-session-id:" "$headers_file" 2>/dev/null | tr -d '\r' | awk '{print $2}') || true
262
+ rm -f "$headers_file"
263
+
264
+ # Build session header (empty string if stateless server returned no session ID)
265
+ local session_header=""
266
+ if [ -n "$session_id" ]; then
267
+ session_header="mcp-session-id: $session_id"
268
+ fi
269
+
270
+ # Step 2: Send initialized notification
271
+ local notif_payload='{"jsonrpc":"2.0","method":"notifications/initialized"}'
272
+ if [ -n "$session_header" ]; then
273
+ curl -s -S -X POST \
274
+ -H "$auth_header" \
275
+ -H "Content-Type: application/json" \
276
+ -H "Accept: application/json, text/event-stream" \
277
+ -H "$session_header" \
278
+ -d "$notif_payload" \
279
+ "$mcp_url" >/dev/null 2>&1 || true
280
+ else
281
+ curl -s -S -X POST \
282
+ -H "$auth_header" \
283
+ -H "Content-Type: application/json" \
284
+ -H "Accept: application/json, text/event-stream" \
285
+ -d "$notif_payload" \
286
+ "$mcp_url" >/dev/null 2>&1 || true
287
+ fi
288
+
289
+ # Step 3: Call the tool
290
+ local call_payload
291
+ call_payload=$(printf '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"%s","arguments":%s}}' "$tool_name" "$arguments")
292
+
293
+ # Capture HTTP status code and response separately
294
+ local http_code
295
+ local response_file
296
+ response_file=$(mktemp "${STATE_DIR}/.mcp_response.XXXXXX")
297
+
298
+ if [ -n "$session_header" ]; then
299
+ http_code=$(curl -s -S -X POST \
300
+ -H "$auth_header" \
301
+ -H "Content-Type: application/json" \
302
+ -H "Accept: application/json, text/event-stream" \
303
+ -H "$session_header" \
304
+ -d "$call_payload" \
305
+ -w "%{http_code}" \
306
+ -o "$response_file" \
307
+ "$mcp_url" 2>/dev/null) || http_code="000"
308
+ else
309
+ http_code=$(curl -s -S -X POST \
310
+ -H "$auth_header" \
311
+ -H "Content-Type: application/json" \
312
+ -H "Accept: application/json, text/event-stream" \
313
+ -d "$call_payload" \
314
+ -w "%{http_code}" \
315
+ -o "$response_file" \
316
+ "$mcp_url" 2>/dev/null) || http_code="000"
317
+ fi
318
+
319
+ # Check if session expired (404)
320
+ if [ "$http_code" = "404" ]; then
321
+ retry_count=$((retry_count + 1))
322
+ rm -f "$response_file"
323
+
324
+ if [ $retry_count -le $max_retries ]; then
325
+ # Session expired - retry with new session
326
+ continue
327
+ else
328
+ die "MCP session expired after retry. Please reinitialize."
329
+ fi
330
+ fi
331
+
332
+ # Read the response
333
+ tool_response=$(cat "$response_file")
334
+ rm -f "$response_file"
335
+
336
+ # Break the retry loop - request succeeded
337
+ break
338
+ done
339
+
340
+ # Step 4: Close session (best effort, only for stateful servers)
341
+ if [ -n "$session_id" ]; then
342
+ curl -s -S -X DELETE \
343
+ -H "$auth_header" \
344
+ -H "mcp-session-id: $session_id" \
345
+ "$mcp_url" >/dev/null 2>&1 || true
346
+ fi
347
+
348
+ # Response may be SSE format (event: message\ndata: {...}) or plain JSON
349
+ # Strip SSE framing to get the JSON payload
350
+ local json_response
351
+ if echo "$tool_response" | grep -q "^data: "; then
352
+ json_response=$(echo "$tool_response" | grep "^data: " | head -1 | sed 's/^data: //')
353
+ else
354
+ json_response="$tool_response"
355
+ fi
356
+
357
+ # Extract text content from result
358
+ if command -v jq &>/dev/null; then
359
+ echo "$json_response" | jq -r '.result.content[]? | select(.type=="text") | .text // empty' 2>/dev/null || echo "$json_response"
360
+ else
361
+ echo "$json_response"
362
+ fi
363
+ }
364
+
365
+ # ===== Main Dispatch =====
366
+
367
+ cmd="${1:-}"
368
+ shift || true
369
+
370
+ case "$cmd" in
371
+ checkin) cmd_checkin "$@" ;;
372
+ mcp-tool) cmd_mcp_tool "$@" ;;
373
+ state-get) state_get "${1:-}" ;;
374
+ state-set) state_set "${1:-}" "${2:-}" ;;
375
+ state-delete) state_delete "${1:-}" ;;
376
+ session-read) session_file_read "${1:-}" ;;
377
+ session-list) session_file_list ;;
378
+ hook-output) hook_output "${1:-}" "${2:-}" "${3:-}" "${4:-}" ;;
379
+ *)
380
+ echo "Usage: chorus-api.sh <command> [args...]"
381
+ echo ""
382
+ echo "Commands:"
383
+ echo " checkin Check connectivity with Chorus"
384
+ echo " mcp-tool <name> [args_json] Call an MCP tool via JSON-RPC"
385
+ echo " state-get <key> Read from state.json"
386
+ echo " state-set <key> <value> Write to state.json"
387
+ echo " state-delete <key> Delete key from state.json"
388
+ echo " session-read <name> Read session file for an agent"
389
+ echo " session-list List all pre-created session files"
390
+ exit 1
391
+ ;;
392
+ esac
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env bash
2
+ # on-agent-spawn.sh — Kiro `agentSpawn` hook for the `chorus` main agent.
3
+ #
4
+ # Kiro contract (kiro.dev/docs/cli/hooks): the agentSpawn event delivers
5
+ # {hook_event_name, cwd, session_id} on STDIN, and on exit 0 the hook's
6
+ # STDOUT is added to the agent's context as PLAIN TEXT (there is no
7
+ # hookSpecificOutput/additionalContext JSON envelope the way Claude Code
8
+ # uses — that is the load-bearing difference from the CC on-session-start
9
+ # hook this is ported from).
10
+ #
11
+ # Behavior (parity with CC public/chorus-plugin/bin/on-session-start.sh):
12
+ # * If CHORUS_URL / CHORUS_API_KEY are unset -> print a "not configured"
13
+ # notice to STDOUT and exit 0. NEVER abort the spawn.
14
+ # * Otherwise call chorus_checkin over MCP and print the result (agent
15
+ # owner / permissions / idea tracker) as the startup context.
16
+ # * If Chorus is unreachable, print a warning and exit 0 (degrade
17
+ # gracefully — the spawn must not fail).
18
+ #
19
+ # Bash 3.2 compatible (CLAUDE.md pitfall #10): no ${VAR,,}/${VAR^^},
20
+ # no `declare -A`, no `readarray`/`mapfile`, no `&>>`, no `|&`.
21
+
22
+ set -euo pipefail
23
+
24
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
25
+ API="${SCRIPT_DIR}/chorus-api.sh"
26
+
27
+ # Drain the event JSON from STDIN if present (base fields only for
28
+ # agentSpawn; not needed for logic, but consume it so the pipe closes).
29
+ EVENT=""
30
+ if [ ! -t 0 ]; then
31
+ EVENT=$(cat)
32
+ fi
33
+
34
+ # Not configured -> plain-text notice, exit 0 (never abort spawn).
35
+ if [ -z "${CHORUS_URL:-}" ] || [ -z "${CHORUS_API_KEY:-}" ]; then
36
+ printf '%s\n' "Chorus plugin: not configured. Set CHORUS_URL and CHORUS_API_KEY to enable Chorus session automation (checkin, reviewer nudges, checkout)."
37
+ exit 0
38
+ fi
39
+
40
+ # Call chorus_checkin via MCP. On any failure, warn and exit 0.
41
+ CHECKIN_RESULT=$("$API" mcp-tool "chorus_checkin" '{}' 2>/dev/null) || {
42
+ printf '%s\n' "Chorus plugin: unable to reach Chorus at ${CHORUS_URL}. Session lifecycle hooks are inactive for this session."
43
+ exit 0
44
+ }
45
+
46
+ if [ -z "$CHECKIN_RESULT" ]; then
47
+ printf '%s\n' "Chorus plugin: checkin returned no data from ${CHORUS_URL}. Session lifecycle hooks may be degraded."
48
+ exit 0
49
+ fi
50
+
51
+ # Emit the startup context as plain text (Kiro adds STDOUT to context).
52
+ # The checkin payload carries agent owner, effective permissions, and the
53
+ # recent-idea tracker — surfaced verbatim, same as the CC hook.
54
+ CONTEXT="# Chorus Plugin — Active
55
+
56
+ Chorus is connected at ${CHORUS_URL}. Session lifecycle hooks are enabled (checkin on spawn, best-effort heartbeat/checkout on stop, reviewer nudges after workflow MCP calls).
57
+
58
+ ## Checkin
59
+
60
+ ${CHECKIN_RESULT}
61
+
62
+ ## Quick Reference
63
+
64
+ - **Idea Tracker**: the checkin above lists up to 10 most recently updated ideas. Use chorus_get_ideas() for the full list.
65
+ - **Reviewers**: after chorus_pm_submit_proposal / chorus_submit_for_verify / chorus_admin_verify_task, a postToolUse hook will nudge you to spawn the matching read-only reviewer subagent (chorus-proposal-reviewer / chorus-task-reviewer / chorus-code-reviewer). See /chorus-review.
66
+ - **Notifications**: chorus_get_notifications() fetches and auto-marks read. See /chorus-develop.
67
+ - **Project Groups**: chorus_get_project_groups() before creating projects."
68
+
69
+ # Resume: if a Chorus session was cached by a prior swarm-mode flow,
70
+ # send a best-effort heartbeat and note it in context. No session cached
71
+ # in the common single-agent case -> nothing to resume (silent).
72
+ MAIN_SESSION=$("$API" state-get "main_session_uuid" 2>/dev/null) || true
73
+ if [ -n "$MAIN_SESSION" ]; then
74
+ CONTEXT="${CONTEXT}
75
+
76
+ Resuming with existing Chorus session: ${MAIN_SESSION}"
77
+ "$API" mcp-tool "chorus_session_heartbeat" "$(printf '{"sessionUuid":"%s"}' "$MAIN_SESSION")" >/dev/null 2>&1 || true
78
+ fi
79
+
80
+ printf '%s\n' "$CONTEXT"
81
+ exit 0
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env bash
2
+ # on-post-submit-for-verify.sh — Kiro `postToolUse` hook matched to
3
+ # @chorus/chorus_submit_for_verify.
4
+ #
5
+ # Kiro contract: postToolUse delivers {tool_name, tool_input,
6
+ # tool_response, ...} on STDIN; on exit 0 the hook's STDOUT is added to
7
+ # the agent's context as PLAIN TEXT (no additionalContext JSON envelope).
8
+ #
9
+ # Behavior: emit a nudge to spawn the read-only `chorus-task-reviewer`
10
+ # subagent before admin verification. If the event carries no parseable
11
+ # taskUuid -> exit 0 with NO output (no broken nudge).
12
+ #
13
+ # Bash 3.2 compatible (CLAUDE.md pitfall #10).
14
+
15
+ set -euo pipefail
16
+
17
+ # Config toggle — default enabled (Kiro analog of CC's ENABLETASKREVIEWER).
18
+ if [ "${CHORUS_ENABLE_TASK_REVIEWER:-true}" != "true" ]; then
19
+ exit 0
20
+ fi
21
+
22
+ EVENT=""
23
+ if [ ! -t 0 ]; then
24
+ EVENT=$(cat)
25
+ fi
26
+ if [ -z "$EVENT" ]; then
27
+ exit 0
28
+ fi
29
+
30
+ # Extract taskUuid from tool_input; silent exit if missing/unparseable.
31
+ TASK_UUID=""
32
+ if command -v jq >/dev/null 2>&1; then
33
+ TASK_UUID=$(printf '%s' "$EVENT" | jq -r '.tool_input.taskUuid // empty' 2>/dev/null) || true
34
+ fi
35
+ if [ -z "$TASK_UUID" ]; then
36
+ exit 0
37
+ fi
38
+
39
+ # Optional task title from tool_response.
40
+ TITLE_DISPLAY=""
41
+ if command -v jq >/dev/null 2>&1; then
42
+ TASK_TITLE=$(printf '%s' "$EVENT" | jq -r '.tool_response.title // empty' 2>/dev/null) || true
43
+ if [ -n "${TASK_TITLE:-}" ]; then
44
+ TITLE_DISPLAY=" '${TASK_TITLE}'"
45
+ fi
46
+ fi
47
+
48
+ # Max review rounds (0 = unlimited). Kiro analog of CC's
49
+ # CLAUDE_PLUGIN_OPTION_MAXTASKREVIEWROUNDS.
50
+ MAX_ROUNDS="${CHORUS_MAX_TASK_REVIEW_ROUNDS:-3}"
51
+
52
+ printf '%s\n' "[Chorus Plugin — Task Submitted for Verification]
53
+ Task${TITLE_DISPLAY} (UUID: ${TASK_UUID}) has been submitted for verification.
54
+
55
+ Max review rounds: ${MAX_ROUNDS} (0 = unlimited).
56
+
57
+ ACTION REQUIRED: spawn the read-only \`chorus-task-reviewer\` subagent to perform an independent review before admin verification.
58
+
59
+ In Kiro, hand the reviewer this task (auto-selected by its description; also invokable as /chorus-task-reviewer): \"Review task ${TASK_UUID}. Max review rounds: ${MAX_ROUNDS}. First, read existing comments to count previous VERDICTs and determine your round number. If max > 0 and your round exceeds max, skip the review and post a comment saying the limit was reached — human decision needed. Otherwise, proceed with the review and post your VERDICT as a comment on the task.\"
60
+
61
+ The reviewer is read-only (tools: read + @chorus) and posts its VERDICT as a comment on the task. After it completes, read comments and act on the most recent \`VERDICT:\` line:
62
+ - VERDICT: PASS — all AC verified, no issues. Proceed to mark AC and call chorus_admin_verify_task.
63
+ - VERDICT: PASS WITH NOTES — all AC verified, minor non-blocking notes. Still proceed to verify.
64
+ - VERDICT: FAIL — BLOCKERs found. Do NOT verify. Reopen the task (chorus_admin_reopen_task) and fix the BLOCKERs.
65
+
66
+ IMPORTANT: run the reviewer synchronously and wait for its VERDICT before proceeding."
67
+
68
+ exit 0
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env bash
2
+ # on-post-submit-proposal.sh — Kiro `postToolUse` hook matched to
3
+ # @chorus/chorus_pm_submit_proposal.
4
+ #
5
+ # Kiro contract (kiro.dev/docs/cli/hooks): postToolUse delivers
6
+ # {hook_event_name, tool_name, tool_input, tool_response, cwd, session_id}
7
+ # on STDIN, and on exit 0 the hook's STDOUT is added to the agent's
8
+ # context as PLAIN TEXT. (No hookSpecificOutput/additionalContext JSON
9
+ # envelope — that is the difference from the CC on-post-submit-proposal
10
+ # hook this is ported from.)
11
+ #
12
+ # Behavior: emit a nudge to spawn the read-only `chorus-proposal-reviewer`
13
+ # subagent before admin approval. If the event carries no parseable
14
+ # proposalUuid -> exit 0 with NO output (no broken nudge).
15
+ #
16
+ # Bash 3.2 compatible (CLAUDE.md pitfall #10).
17
+
18
+ set -euo pipefail
19
+
20
+ # Config toggle — default enabled. CHORUS_ENABLE_PROPOSAL_REVIEWER is the
21
+ # Kiro analog of CC's CLAUDE_PLUGIN_OPTION_ENABLEPROPOSALREVIEWER (Kiro has
22
+ # no userConfig plumbing, so we read a plain env var).
23
+ if [ "${CHORUS_ENABLE_PROPOSAL_REVIEWER:-true}" != "true" ]; then
24
+ exit 0
25
+ fi
26
+
27
+ # Read the event JSON from STDIN.
28
+ EVENT=""
29
+ if [ ! -t 0 ]; then
30
+ EVENT=$(cat)
31
+ fi
32
+ if [ -z "$EVENT" ]; then
33
+ exit 0
34
+ fi
35
+
36
+ # Extract proposalUuid from tool_input. printf (not echo) preserves
37
+ # multi-line JSON. If jq is unavailable or the field is empty -> silent
38
+ # exit 0 (no broken nudge).
39
+ PROPOSAL_UUID=""
40
+ if command -v jq >/dev/null 2>&1; then
41
+ PROPOSAL_UUID=$(printf '%s' "$EVENT" | jq -r '.tool_input.proposalUuid // empty' 2>/dev/null) || true
42
+ fi
43
+ if [ -z "$PROPOSAL_UUID" ]; then
44
+ exit 0
45
+ fi
46
+
47
+ # Optional proposal title from tool_response for a friendlier nudge.
48
+ TITLE_DISPLAY=""
49
+ if command -v jq >/dev/null 2>&1; then
50
+ PROPOSAL_TITLE=$(printf '%s' "$EVENT" | jq -r '.tool_response.title // empty' 2>/dev/null) || true
51
+ if [ -n "${PROPOSAL_TITLE:-}" ]; then
52
+ TITLE_DISPLAY=" '${PROPOSAL_TITLE}'"
53
+ fi
54
+ fi
55
+
56
+ # Max review rounds (0 = unlimited). Kiro analog of CC's
57
+ # CLAUDE_PLUGIN_OPTION_MAXPROPOSALREVIEWROUNDS.
58
+ MAX_ROUNDS="${CHORUS_MAX_PROPOSAL_REVIEW_ROUNDS:-3}"
59
+
60
+ printf '%s\n' "[Chorus Plugin — Proposal Submitted for Review]
61
+ Proposal${TITLE_DISPLAY} (UUID: ${PROPOSAL_UUID}) has been submitted.
62
+
63
+ Max review rounds: ${MAX_ROUNDS} (0 = unlimited).
64
+
65
+ ACTION REQUIRED: spawn the read-only \`chorus-proposal-reviewer\` subagent to perform an independent quality review before admin approval.
66
+
67
+ In Kiro, hand the reviewer this task (it is auto-selected by its description; you can also invoke it as /chorus-proposal-reviewer): \"Review proposal ${PROPOSAL_UUID}. Max review rounds: ${MAX_ROUNDS}. First, read existing comments to count previous VERDICTs and determine your round number. If max > 0 and your round exceeds max, skip the review and post a comment saying the limit was reached — human decision needed. Otherwise, proceed with the review and post your VERDICT as a comment on the proposal.\"
68
+
69
+ The reviewer is read-only (tools: read + @chorus) and posts its VERDICT as a comment on the proposal. After it completes, read comments and act on the most recent \`VERDICT:\` line:
70
+ - VERDICT: PASS — no issues. Proceed to approve (chorus_admin_approve_proposal).
71
+ - VERDICT: PASS WITH NOTES — minor non-blocking notes. Still proceed to approve.
72
+ - VERDICT: FAIL — BLOCKERs found. Do NOT approve. Reject (chorus_pm_reject_proposal), fix the BLOCKERs, and resubmit.
73
+
74
+ IMPORTANT: run the reviewer synchronously and wait for its VERDICT before proceeding."
75
+
76
+ exit 0