@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
package/README.ko.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="docs/images/chorus-slug.png" alt="Chorus" width="240" />
2
+ <img src="packages/landing/public/images/chorus-slug.png" alt="Chorus" width="240" />
3
3
  </p>
4
4
 
5
5
  <p align="center"><strong>AI-인간 협업을 위한 Agent Harness</strong></p>
@@ -36,6 +36,8 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
36
36
 
37
37
  ## 최근 업데이트
38
38
 
39
+ **[v0.14.1](https://chorus-ai.dev/blog/chorus-v0.14.1-release/)** — Amazon Kiro CLI가 네 번째 연결 방식이 되었습니다(Kiro CLI v2): 명령 한 줄로 설치하는 `install-kiro.sh` 플러그인과 `--agent kiro` 데몬 백엔드, 여기에 몇 가지 데몬 수정.
40
+
39
41
  **[v0.14.0](https://chorus-ai.dev/blog/chorus-v0.14.0-release/)** — 앱 전체 다크 모드(라이트 / 다크 / 시스템). 참고 자료를 어떤 아이디어·제안·작업에도 첨부할 수 있고, 인라인으로도 MCP를 통해서도 읽을 수 있습니다. 한국어와 일본어 추가(한국어는 커뮤니티 기여). 그룹화를 위한 **테마** 아이디어, 그리고 데몬의 개발 시작 / Yolo 버튼, 대화식 아이디어 입력, 크래시 복구, `chorus daemon install`.
40
42
 
41
43
  **[v0.13.0](https://chorus-ai.dev/blog/chorus-v0.13.0-release/)** — 프로젝트별 리소스 마인드맵: 새로운 Graph 뷰가 각 프로젝트의 아이디어·제안·문서·작업을 프로젝트 자체 구조에서 생성한 하나의 접을 수 있는 트리로 엮습니다. 모든 카드에 현재 상태가 표시되며(아이디어는 아이디어 트래커가 사용하는 파생 파이프라인 상태를 보여줍니다), 제목 검색은 모든 일치 항목까지의 경로를 자동으로 펼쳐 하이라이트/디밍하고 이전/다음 탐색을 제공합니다. 동일한 줌/팬 캔버스가 데스크톱과 모바일 모두에서 렌더링됩니다(핀치 + 더블탭).
@@ -178,7 +180,7 @@ CHORUS_DAEMON_CWDS="~/work/repo-a:~/work/repo-b" chorus daemon # 또는 환경
178
180
 
179
181
  ### 원격 에이전트 웨이크 — 디렉터리로 디스패치하고 실행을 지켜보기
180
182
 
181
- ![Remote Agent Wake](docs/images/agent-daemon-wake.gif)
183
+ ![Remote Agent Wake](packages/landing/public/images/agent-daemon-wake.gif)
182
184
 
183
185
  아이디어를 원격 에이전트의 특정 디렉터리에 배정한 다음 대화를 열면, 로컬 Claude Code가 작업을 이어받아 실시간으로 실행하는 모습을 볼 수 있습니다 — 터미널도, 수동 재개도 필요 없습니다.
184
186
 
@@ -190,7 +192,7 @@ Chorus는 프로젝트 전체를 마인드맵으로 자동 정리합니다 —
190
192
 
191
193
  ### 제안 — AI 에이전트가 실시간으로 계획을 생성
192
194
 
193
- ![Proposal Presence](docs/images/proposal-presence.gif)
195
+ ![Proposal Presence](packages/landing/public/images/proposal-presence.gif)
194
196
 
195
197
  PM 에이전트가 요구사항을 분석하고 PRD와 작업 DAG를 포함한 제안을 생성하는 모습을 볼 수 있습니다 — 에이전트 활동을 보여주는 실시간 프레즌스 인디케이터와 함께 말이죠.
196
198
 
@@ -202,37 +204,37 @@ PM 에이전트가 요구사항을 분석하고 PRD와 작업 DAG를 포함한
202
204
 
203
205
  ### 칸반 — 실시간 작업 흐름
204
206
 
205
- ![Kanban Presence](docs/images/kanban-presence.gif)
207
+ ![Kanban Presence](packages/landing/public/images/kanban-presence.gif)
206
208
 
207
209
  칸반 보드는 에이전트의 작업에 맞춰 자동으로 업데이트되며, 작업 카드가 To Do → In Progress → To Verify 사이를 실시간으로 이동합니다. 에이전트 프레즌스 인디케이터가 어떤 리소스가 작업 중인지 하이라이트합니다.
208
210
 
209
211
  ### 칸반 & 작업 DAG
210
212
 
211
- ![Kanban & Task DAG](docs/images/kanan-dag.png)
213
+ ![Kanban & Task DAG](packages/landing/public/images/kanban-dag.png)
212
214
 
213
215
  작업 상태를 추적하는 칸반 보드와, 실행 순서 및 병렬 경로를 보여주는 의존성 DAG를 나란히 표시합니다.
214
216
 
215
217
  ### 아이디어 & 요구사항 구체화
216
218
 
217
- ![Idea & Elaboration](docs/images/idea-elaborate.png)
219
+ ![Idea & Elaboration](packages/landing/public/images/idea-elaborate.png)
218
220
 
219
221
  PM 에이전트는 제안을 만들기 전에 구조화된 Q&A 라운드를 통해 요구사항을 명확히 합니다. 패널에는 아이디어 상세 정보와 함께, 답변 및 카테고리 태그가 달린 완료된 구체화 라운드가 나란히 표시됩니다.
220
222
 
221
223
  ### 제안 검토
222
224
 
223
- ![Proposal Review](docs/images/proposal.png)
225
+ ![Proposal Review](packages/landing/public/images/proposal.png)
224
226
 
225
227
  PM 에이전트가 생성한 제안에는 문서 초안과 작업 DAG 초안이 담깁니다. 관리자는 이 패널에서 검토하여 승인하거나 거부합니다.
226
228
 
227
229
  ### 수락 기준 — 이중 경로 검증
228
230
 
229
- ![Acceptance Criteria](docs/images/task-ac.png)
231
+ ![Acceptance Criteria](packages/landing/public/images/task-ac.png)
230
232
 
231
233
  개발자 에이전트의 자체 점검과 관리자의 검토가 각 수락 기준을 독립적으로 검증하며, 모든 항목마다 구조화된 통과/실패 증빙을 남깁니다.
232
234
 
233
235
  ### 유니버설 검색 — Cmd+K 커맨드 팔레트
234
236
 
235
- ![Universal Search](docs/images/universal-search.png)
237
+ ![Universal Search](packages/landing/public/images/universal-search.png)
236
238
 
237
239
  6가지 엔티티 유형(작업·아이디어·제안·문서·프로젝트·프로젝트 그룹)을 아우르는 검색을 위한 Cmd+K 커맨드 팔레트입니다. 범위 필터링(Global / Group / Project), 엔티티 유형별 필터 탭, 키보드 내비게이션을 지원합니다. Web UI와 AI 에이전트(`chorus_search` MCP 도구를 통해)는 동일한 검색 백엔드를 공유합니다.
238
240
 
@@ -384,7 +386,7 @@ PGlite는 포트 5433에서 내장 PostgreSQL을 실행합니다. 데이터는 `
384
386
 
385
387
  ### AI 에이전트 연결하기
386
388
 
387
- 가장 빠른 방법은 앱 내 설정 마법사입니다: Web UI를 열고 **Settings → Setup Guide → Open setup guide**로 이동한 뒤, 사용하는 클라이언트(Claude Code, Codex, OpenCode, OpenClaw, 또는 그 밖의 에이전트)에 맞는 단계별 안내를 따르세요. 마법사가 API 키를 만들어 주고, 정확한 명령을 보여주며, 연결 확인까지 안내합니다.
389
+ 가장 빠른 방법은 앱 내 설정 마법사입니다: Web UI를 열고 **Settings → Setup Guide → Open setup guide**로 이동한 뒤, 사용하는 클라이언트(Claude Code, Codex, Kiro, OpenCode, OpenClaw, 또는 그 밖의 에이전트)에 맞는 단계별 안내를 따르세요. 마법사가 API 키를 만들어 주고, 정확한 명령을 보여주며, 연결 확인까지 안내합니다.
388
390
 
389
391
  전체 문서를 읽고 싶다면:
390
392
 
@@ -392,6 +394,7 @@ PGlite는 포트 5433에서 내장 PostgreSQL을 실행합니다. 데이터는 `
392
394
  |--------|-------|
393
395
  | Claude Code | [CONNECT_CLAUDE_CODE.md](docs/CONNECT_CLAUDE_CODE.md) |
394
396
  | Codex CLI | [CONNECT_CODEX.md](docs/CONNECT_CODEX.md) |
397
+ | Kiro CLI | [CONNECT_KIRO.md](docs/CONNECT_KIRO.md) |
395
398
  | OpenCode † | [CONNECT_OPENCODE.md](docs/CONNECT_OPENCODE.md) |
396
399
  | 그 밖의 MCP 에이전트(Cursor, Continue, 커스텀 등) | [CONNECT_OTHER_AGENTS.md](docs/CONNECT_OTHER_AGENTS.md) |
397
400
 
@@ -399,7 +402,7 @@ PGlite는 포트 5433에서 내장 PostgreSQL을 실행합니다. 데이터는 `
399
402
 
400
403
  API 키는 Web UI의 **Settings → Agents → Create API Key**에서 만듭니다. 키는 `cho_`로 시작하며 한 번만 표시됩니다.
401
404
 
402
- ![Create API Key](docs/images/create-key.png)
405
+ ![Create API Key](packages/landing/public/images/create-key.png)
403
406
 
404
407
  ---
405
408
 
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="docs/images/chorus-slug.png" alt="Chorus" width="240" />
2
+ <img src="packages/landing/public/images/chorus-slug.png" alt="Chorus" width="240" />
3
3
  </p>
4
4
 
5
5
  <p align="center"><strong>The Agent Harness for AI-Human Collaboration</strong></p>
@@ -36,6 +36,8 @@ The labels under each stage are the **permissions** an actor needs at that stage
36
36
 
37
37
  ## What's New
38
38
 
39
+ **[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.
40
+
39
41
  **[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`.
40
42
 
41
43
  **[v0.13.0](https://chorus-ai.dev/blog/chorus-v0.13.0-release/)** — Per-project resource mind-map: a new Graph view wires each project's Ideas, Proposals, Documents, and Tasks into one collapsible tree, generated from the project's own structure. Every card carries its current status (ideas show the derived pipeline status the idea tracker uses), a title search auto-expands the path to every match with highlight/dim and prev/next navigation, and the same zoom/pan canvas renders on desktop and mobile (pinch + double-tap).
@@ -178,7 +180,7 @@ On startup the daemon banner prints the **exact `daemon.json` path it read** (an
178
180
 
179
181
  ### Remote Agent Wake — Dispatch to a Directory, Watch It Run
180
182
 
181
- ![Remote Agent Wake](docs/images/agent-daemon-wake.gif)
183
+ ![Remote Agent Wake](packages/landing/public/images/agent-daemon-wake.gif)
182
184
 
183
185
  Assign an idea to a specific directory on a remote agent, then open the conversation and watch the local Claude Code pick up the work and run in real time — no terminal, no manual resume.
184
186
 
@@ -190,7 +192,7 @@ Chorus auto-organizes the entire project into a mind-map — Ideas, Proposals, D
190
192
 
191
193
  ### Proposal — AI Agent Generates Plans in Real Time
192
194
 
193
- ![Proposal Presence](docs/images/proposal-presence.gif)
195
+ ![Proposal Presence](packages/landing/public/images/proposal-presence.gif)
194
196
 
195
197
  Watch a PM Agent analyze requirements and generate a proposal with PRD and task DAG — with real-time presence indicators showing agent activity.
196
198
 
@@ -202,37 +204,37 @@ The left panel is a pixel workspace where pixel characters represent each Agent'
202
204
 
203
205
  ### Kanban — Real-time Task Flow
204
206
 
205
- ![Kanban Presence](docs/images/kanban-presence.gif)
207
+ ![Kanban Presence](packages/landing/public/images/kanban-presence.gif)
206
208
 
207
209
  The Kanban board updates automatically as Agents work, with task cards flowing between To Do → In Progress → To Verify in real time. Agent presence indicators highlight which resources are being worked on.
208
210
 
209
211
  ### Kanban & Task DAG
210
212
 
211
- ![Kanban & Task DAG](docs/images/kanan-dag.png)
213
+ ![Kanban & Task DAG](packages/landing/public/images/kanban-dag.png)
212
214
 
213
215
  Kanban board for task status tracking alongside a dependency DAG showing execution order and parallel paths.
214
216
 
215
217
  ### Idea & Requirements Elaboration
216
218
 
217
- ![Idea & Elaboration](docs/images/idea-elaborate.png)
219
+ ![Idea & Elaboration](packages/landing/public/images/idea-elaborate.png)
218
220
 
219
221
  PM Agents clarify requirements through structured Q&A rounds before creating Proposals. The panel shows idea details alongside completed elaboration rounds with answers and category tags.
220
222
 
221
223
  ### Proposal Review
222
224
 
223
- ![Proposal Review](docs/images/proposal.png)
225
+ ![Proposal Review](packages/landing/public/images/proposal.png)
224
226
 
225
227
  Proposals generated by the PM Agent contain document drafts and task DAG drafts. Admins review and approve or reject on this panel.
226
228
 
227
229
  ### Acceptance Criteria — Dual-Path Verification
228
230
 
229
- ![Acceptance Criteria](docs/images/task-ac.png)
231
+ ![Acceptance Criteria](packages/landing/public/images/task-ac.png)
230
232
 
231
233
  Dev Agent self-checks and Admin reviews each acceptance criterion independently, with structured pass/fail evidence for every item.
232
234
 
233
235
  ### Universal Search — Cmd+K Command Palette
234
236
 
235
- ![Universal Search](docs/images/universal-search.png)
237
+ ![Universal Search](packages/landing/public/images/universal-search.png)
236
238
 
237
239
  A Cmd+K command palette for searching across all 6 entity types (Tasks, Ideas, Proposals, Documents, Projects, Project Groups). Supports scope filtering (Global / Group / Project), filter tabs per entity type, and keyboard navigation. Both the Web UI and AI agents (via `chorus_search` MCP tool) share the same search backend.
238
240
 
@@ -384,7 +386,7 @@ The interactive installer provisions VPC, Aurora Serverless v2, ElastiCache Serv
384
386
 
385
387
  ### Connect AI Agents
386
388
 
387
- The fastest path is the in-app setup wizard: open the Web UI, go to **Settings → Setup Guide → Open setup guide**, and follow the step-by-step instructions for your client (Claude Code, Codex, OpenCode, OpenClaw, or other agents). The wizard creates the API key for you, shows the exact commands, and walks through verifying the connection.
389
+ The fastest path is the in-app setup wizard: open the Web UI, go to **Settings → Setup Guide → Open setup guide**, and follow the step-by-step instructions for your client (Claude Code, Codex, Kiro, OpenCode, OpenClaw, or other agents). The wizard creates the API key for you, shows the exact commands, and walks through verifying the connection.
388
390
 
389
391
  If you'd rather read the full docs:
390
392
 
@@ -392,6 +394,7 @@ If you'd rather read the full docs:
392
394
  |--------|-------|
393
395
  | Claude Code | [CONNECT_CLAUDE_CODE.md](docs/CONNECT_CLAUDE_CODE.md) |
394
396
  | Codex CLI | [CONNECT_CODEX.md](docs/CONNECT_CODEX.md) |
397
+ | Kiro CLI | [CONNECT_KIRO.md](docs/CONNECT_KIRO.md) |
395
398
  | OpenCode † | [CONNECT_OPENCODE.md](docs/CONNECT_OPENCODE.md) |
396
399
  | Other MCP agents (Cursor, Continue, custom, …) | [CONNECT_OTHER_AGENTS.md](docs/CONNECT_OTHER_AGENTS.md) |
397
400
 
@@ -399,7 +402,7 @@ If you'd rather read the full docs:
399
402
 
400
403
  Create API Keys in the Web UI under **Settings → Agents → Create API Key**. Keys start with `cho_` and are shown only once.
401
404
 
402
- ![Create API Key](docs/images/create-key.png)
405
+ ![Create API Key](packages/landing/public/images/create-key.png)
403
406
 
404
407
  ---
405
408
 
package/README.zh.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="docs/images/chorus-slug.png" alt="Chorus" width="240" />
2
+ <img src="packages/landing/public/images/chorus-slug.png" alt="Chorus" width="240" />
3
3
  </p>
4
4
 
5
5
  <p align="center"><strong>面向 AI 与人类协作的 Agent Harness</strong></p>
@@ -27,6 +27,8 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
27
27
 
28
28
  ## 最近更新
29
29
 
30
+ **[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 修复。
31
+
30
32
  **[v0.14.0](https://chorus-ai.dev/zh/blog/chorus-v0.14.0-release/)** — 全应用深色模式(浅色 / 深色 / 跟随系统)。参考资料可挂到任意想法、提案或任务上,行内可读,也能通过 MCP 读写。新增韩语和日语(韩语由社区贡献)。用于归类的**主题**想法,以及 daemon 的「开始开发」/「Yolo」按钮、对话式建想法、崩溃恢复与 `chorus daemon install`。
31
33
 
32
34
  **[v0.13.0](https://chorus-ai.dev/zh/blog/chorus-v0.13.0-release/)** — 项目资源思维导图:新增 Graph 视图,把每个项目的想法、提案、文档、任务连成一棵可折叠的树,从项目自身结构自动生成。每张卡片都标着当前状态(想法用想法列表那套派生状态),标题搜索会自动展开命中节点的上游并高亮/调暗、配上下切换定位,同一张可缩放可拖动的图在桌面与手机上通用(捏合 + 双击缩放)。
@@ -169,7 +171,7 @@ daemon 启动时的横幅会打印它**实际读取的 `daemon.json` 路径**(
169
171
 
170
172
  ### 远程唤醒 Agent——派活到指定目录,实时看它跑
171
173
 
172
- ![远程唤醒 Agent](docs/images/agent-daemon-wake.gif)
174
+ ![远程唤醒 Agent](packages/landing/public/images/agent-daemon-wake.gif)
173
175
 
174
176
  把一条想法派给远程 Agent 的某个目录,打开对话窗口,就能实时看到本地的 Claude Code 接活、开跑,全程不用碰终端,也不用手动 resume。
175
177
 
@@ -181,7 +183,7 @@ Chorus 自动把整个项目整理成一张思维导图——想法、提案、
181
183
 
182
184
  ### Proposal——AI Agent 实时生成计划
183
185
 
184
- ![Proposal Presence](docs/images/proposal-presence.gif)
186
+ ![Proposal Presence](packages/landing/public/images/proposal-presence.gif)
185
187
 
186
188
  PM Agent 分析需求并实时生成包含 PRD 和任务 DAG 的提案,Presence 指示器实时显示 Agent 活动状态。
187
189
 
@@ -193,37 +195,37 @@ PM Agent 分析需求并实时生成包含 PRD 和任务 DAG 的提案,Presenc
193
195
 
194
196
  ### Kanban——任务状态实时流转
195
197
 
196
- ![Kanban Presence](docs/images/kanban-presence.gif)
198
+ ![Kanban Presence](packages/landing/public/images/kanban-presence.gif)
197
199
 
198
200
  Kanban 看板随 Agent 工作进度自动更新,任务卡片在 To Do → In Progress → To Verify 之间实时流转。Presence 指示器高亮显示正在被操作的资源。
199
201
 
200
202
  ### 看板 & 任务 DAG
201
203
 
202
- ![Kanban & Task DAG](docs/images/kanan-dag.png)
204
+ ![Kanban & Task DAG](packages/landing/public/images/kanban-dag.png)
203
205
 
204
206
  看板追踪任务状态,DAG 展示依赖关系和并行路径,一目了然。
205
207
 
206
208
  ### Idea & 需求细化
207
209
 
208
- ![Idea & Elaboration](docs/images/idea-elaborate.png)
210
+ ![Idea & Elaboration](packages/landing/public/images/idea-elaborate.png)
209
211
 
210
212
  PM Agent 在创建 Proposal 前,通过结构化问答轮次澄清需求。面板展示 Idea 详情及已完成的细化轮次。
211
213
 
212
214
  ### 提案审阅
213
215
 
214
- ![Proposal Review](docs/images/proposal.png)
216
+ ![Proposal Review](packages/landing/public/images/proposal.png)
215
217
 
216
218
  PM Agent 生成的 Proposal 包含文档草稿和任务 DAG 草稿,Admin 在此面板审阅并决定批准或驳回。
217
219
 
218
220
  ### 验收标准——双路验证
219
221
 
220
- ![Acceptance Criteria](docs/images/task-ac.png)
222
+ ![Acceptance Criteria](packages/landing/public/images/task-ac.png)
221
223
 
222
224
  Dev Agent 自检 + Admin 独立审核,每条验收标准都有结构化的通过/失败证据。
223
225
 
224
226
  ### Universal Search——Cmd+K 全局搜索
225
227
 
226
- ![Universal Search](docs/images/universal-search.png)
228
+ ![Universal Search](packages/landing/public/images/universal-search.png)
227
229
 
228
230
  Cmd+K 命令面板,支持跨 6 种实体类型搜索。支持范围筛选(全局/项目组/单项目)、按类型切换 Tab、键盘导航。Web UI 和 AI Agent(通过 `chorus_search` MCP 工具)共享同一搜索后端。
229
231
 
@@ -375,7 +377,7 @@ PGlite 在端口 5433 运行嵌入式 PostgreSQL。数据存储在 `.pglite/`,
375
377
 
376
378
  ### 连接 AI Agent
377
379
 
378
- 最快的方式是用应用内的 setup 向导:打开 Web UI,进入 **Settings → Setup Guide → 打开设置向导**,按照向导给出的分步指引接入自己的客户端(Claude Code、Codex、OpenCode、OpenClaw 或其他 agent)。向导会帮你创建 API Key、展示完整命令,并引导你验证连接。
380
+ 最快的方式是用应用内的 setup 向导:打开 Web UI,进入 **Settings → Setup Guide → 打开设置向导**,按照向导给出的分步指引接入自己的客户端(Claude Code、Codex、Kiro、OpenCode、OpenClaw 或其他 agent)。向导会帮你创建 API Key、展示完整命令,并引导你验证连接。
379
381
 
380
382
  如果偏好文档:
381
383
 
@@ -383,6 +385,7 @@ PGlite 在端口 5433 运行嵌入式 PostgreSQL。数据存储在 `.pglite/`,
383
385
  |--------|---------|
384
386
  | Claude Code | [CONNECT_CLAUDE_CODE.zh.md](docs/CONNECT_CLAUDE_CODE.zh.md) |
385
387
  | Codex CLI | [CONNECT_CODEX.zh.md](docs/CONNECT_CODEX.zh.md) |
388
+ | Kiro CLI | [CONNECT_KIRO.md](docs/CONNECT_KIRO.md) |
386
389
  | OpenCode † | [CONNECT_OPENCODE.zh.md](docs/CONNECT_OPENCODE.zh.md) |
387
390
  | 其他 MCP agent(Cursor / Continue / 自研等) | [CONNECT_OTHER_AGENTS.zh.md](docs/CONNECT_OTHER_AGENTS.zh.md) |
388
391
 
@@ -390,7 +393,7 @@ PGlite 在端口 5433 运行嵌入式 PostgreSQL。数据存储在 `.pglite/`,
390
393
 
391
394
  在 Web UI 的 **Settings → Agents → Create API Key** 创建 API Key。Key 以 `cho_` 开头,仅在创建时显示一次。
392
395
 
393
- ![Create API Key](docs/images/create-key.png)
396
+ ![Create API Key](packages/landing/public/images/create-key.png)
394
397
 
395
398
  ---
396
399
 
package/chorus.mjs CHANGED
@@ -181,6 +181,10 @@ DAEMON / LOGIN (client mode)
181
181
  --sigint-timeout <ms> Grace window after SIGINT before a forceful kill (env: CHORUS_DAEMON_SIGINT_TIMEOUT)
182
182
  when an interrupt is received (default: 10000).
183
183
  Also configurable via ~/.chorus/daemon.json sigintTimeoutMs.
184
+ -y, --yes Non-interactive 'chorus daemon install': skip all install
185
+ prompts (credentials are still resolved, persisted, and
186
+ validated; install aborts if none resolve). A non-TTY
187
+ install behaves as if --yes were passed.
184
188
 
185
189
  Credential resolution order: flags > CHORUS_URL/CHORUS_API_KEY env >
186
190
  ~/.chorus/daemon.json (from 'chorus login') > Claude Code plugin config.
@@ -13,10 +13,11 @@
13
13
  */
14
14
  export const DAEMON_ACTIONS = new Set(["stop", "status", "restart", "logs", "install", "uninstall"]);
15
15
 
16
- /** Known agent backends. Only `claude-code` is implemented; the rest reserve
17
- * the extension point (see daemon-agent-selection). Exported for the resolver
18
- * the --agent task wires in; parsing here does not validate the value. */
19
- export const KNOWN_AGENTS = new Set(["claude-code"]);
16
+ /** Known agent backends, kept in sync with the authoritative list in
17
+ * daemon-agent.mjs (`claude-code`, `codex`, `kiro` — all implemented). This copy
18
+ * is informational only: parsing here does not validate the value (the resolver
19
+ * in daemon-agent.mjs is the single source of truth for validation). */
20
+ export const KNOWN_AGENTS = new Set(["claude-code", "codex", "kiro"]);
20
21
 
21
22
  /**
22
23
  * Parse the client-subcommand flags out of an arg list. Recognizes the
@@ -38,7 +39,7 @@ export const KNOWN_AGENTS = new Set(["claude-code"]);
38
39
  * @returns {{
39
40
  * url?: string, apiKey?: string, yolo?: boolean, sigintTimeout?: string,
40
41
  * agent?: string, chorusOnly?: boolean, verbose?: boolean, detach?: boolean,
41
- * cwd?: string[], force?: boolean, help?: boolean,
42
+ * cwd?: string[], force?: boolean, yes?: boolean, help?: boolean,
42
43
  * }}
43
44
  */
44
45
  export function parseClientFlags(argv) {
@@ -63,6 +64,7 @@ export function parseClientFlags(argv) {
63
64
  else if (a === "--verbose") out.verbose = true;
64
65
  else if (a === "-d" || a === "--detach") out.detach = true;
65
66
  else if (a === "--force") out.force = true;
67
+ else if (a === "--yes" || a === "-y") out.yes = true;
66
68
  else if (a === "--help" || a === "-h") out.help = true;
67
69
  }
68
70
  return out;
@@ -117,7 +119,7 @@ OPTIONS
117
119
  --url <url> Remote Chorus server URL (env: CHORUS_URL)
118
120
  --api-key <cho_...> Agent API key (env: CHORUS_API_KEY)
119
121
  --agent <type> Local agent backend to wake (env: CHORUS_AGENT)
120
- (claude-code | codex; default: claude-code)
122
+ (claude-code | codex | kiro; default: claude-code)
121
123
  --yolo Full autonomy for the woken agent (env: CHORUS_YOLO=1)
122
124
  (--dangerously-skip-permissions: Bash, file writes, any
123
125
  command). This is the DEFAULT permission mode.
@@ -130,6 +132,10 @@ OPTIONS
130
132
  local paths at once. Default: the directory it was launched
131
133
  from. (Also configurable as "cwds":[…] in ~/.chorus/daemon.json.)
132
134
  -d, --detach Run detached in the background (pidfile + logfile)
135
+ -y, --yes Non-interactive install: skip all 'chorus daemon
136
+ install' prompts (credentials still resolved, persisted,
137
+ and validated; install aborts if none resolve). A non-TTY
138
+ install behaves as if --yes were passed.
133
139
  --verbose More detailed per-wake logging
134
140
  --sigint-timeout <ms> Grace window after SIGINT before a forceful kill
135
141
  (env: CHORUS_DAEMON_SIGINT_TIMEOUT; default 10000)
@@ -147,8 +153,13 @@ SERVICE (install)
147
153
  starts at login, restarts on failure, and 'systemctl --user stop' shuts it
148
154
  down gracefully. Do NOT hand-write a Type=forking unit around 'chorus daemon
149
155
  -d' — the daemon self-daemonizes, which systemd cannot track and which loops
150
- on restart. The install captures the --cwd / --agent / --chorus-only flags you
151
- pass. On macOS/Windows install prints a correct template you install manually.
156
+ on restart. Before writing the unit, install resolves + persists + validates
157
+ your credentials into ~/.chorus/daemon.json (so the clean boot environment can
158
+ authenticate) and configures the served working directories there too (prompting
159
+ interactively for one or more when none are set — pass -y/--yes or run non-TTY to
160
+ skip prompts). The unit captures --agent / --chorus-only but NOT --cwd (cwds live
161
+ in daemon.json). On macOS/Windows install prints a correct template you install
162
+ manually.
152
163
 
153
164
  EXAMPLES
154
165
  chorus daemon # Foreground, default yolo (TTY confirms once)
@@ -5,60 +5,18 @@
5
5
  // keyed by the Chorus session anchor (direct idea uuid, or the entity uuid for an
6
6
  // ad-hoc session) and `codex exec resume <thread_id>` on the next wake.
7
7
  //
8
- // The store is a single JSON object `{ "<anchor>": "<thread_id>" }` at
9
- // ~/.chorus/codex-sessions.json (same dir family as daemon.json). The anchor is a
10
- // globally-unique Chorus uuid, so one flat file is safe across the daemon's
11
- // multiple path-connections.
12
- //
13
- // CONTRACT: this is best-effort and MUST NEVER throw into the wake path. Any
14
- // read/parse/write/rename failure degrades to "no mapping → next wake starts
15
- // fresh" with a visible log (no-silent-errors). IO is injectable for tests.
8
+ // Thin wrapper over the generic `createSessionMap` factory (shared with the Kiro
9
+ // backend); the store is ~/.chorus/codex-sessions.json. The public API
10
+ // (getThreadId / setThreadId / codexSessionMapPath) and its injectable-IO deps are
11
+ // unchanged — see session-map.mjs for the best-effort / never-throw contract.
16
12
 
17
- import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
18
- import { homedir } from "node:os";
19
- import { dirname, join } from "node:path";
13
+ import { createSessionMap } from "./session-map.mjs";
20
14
 
21
- const NOOP_LOGGER = { info() {}, warn() {}, error() {} };
15
+ const map = createSessionMap({ filename: "codex-sessions.json", logPrefix: "codex-session-map" });
22
16
 
23
17
  /** Absolute path to the Codex session-id map, alongside ~/.chorus/daemon.json. */
24
18
  export function codexSessionMapPath() {
25
- return join(homedir(), ".chorus", "codex-sessions.json");
26
- }
27
-
28
- /** A non-empty trimmed string, or null. */
29
- function nonEmpty(value) {
30
- return typeof value === "string" && value.trim().length > 0 ? value : null;
31
- }
32
-
33
- /**
34
- * Read the whole map as a plain object. Missing / unreadable / malformed file →
35
- * `{}` (never throws). A non-object JSON value (array / scalar) is also treated
36
- * as empty.
37
- * @param {string} path
38
- * @param {(p: string) => string} read
39
- * @param {{warn(m:string):void}} logger
40
- * @returns {Record<string, unknown>}
41
- */
42
- function readMap(path, read, logger) {
43
- let raw;
44
- try {
45
- raw = read(path);
46
- } catch (err) {
47
- // ENOENT is the normal "no map yet" case — silent. Other read errors warn.
48
- if (!(err && err.code === "ENOENT")) {
49
- logger.warn(`[Chorus] codex-session-map: read failed (${err}) — treating as empty`);
50
- }
51
- return {};
52
- }
53
- try {
54
- const parsed = JSON.parse(raw);
55
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
56
- logger.warn("[Chorus] codex-session-map: file is not a JSON object — treating as empty");
57
- return {};
58
- } catch (err) {
59
- logger.warn(`[Chorus] codex-session-map: corrupt JSON (${err}) — treating as empty`);
60
- return {};
61
- }
19
+ return map.mapPath();
62
20
  }
63
21
 
64
22
  /**
@@ -69,13 +27,7 @@ function readMap(path, read, logger) {
69
27
  * @returns {string | null}
70
28
  */
71
29
  export function getThreadId(anchor, deps = {}) {
72
- const a = nonEmpty(anchor);
73
- if (!a) return null;
74
- const path = deps.path ?? codexSessionMapPath();
75
- const read = deps.read ?? ((p) => readFileSync(p, "utf8"));
76
- const logger = deps.logger ?? NOOP_LOGGER;
77
- const map = readMap(path, read, logger);
78
- return nonEmpty(map[a]);
30
+ return map.get(anchor, deps);
79
31
  }
80
32
 
81
33
  /**
@@ -91,27 +43,5 @@ export function getThreadId(anchor, deps = {}) {
91
43
  * @returns {void}
92
44
  */
93
45
  export function setThreadId(anchor, threadId, deps = {}) {
94
- const a = nonEmpty(anchor);
95
- const t = nonEmpty(threadId);
96
- if (!a || !t) return; // nothing meaningful to persist
97
- const path = deps.path ?? codexSessionMapPath();
98
- const read = deps.read ?? ((p) => readFileSync(p, "utf8"));
99
- const write = deps.write ?? writeFileSync;
100
- const mkdir = deps.mkdir ?? mkdirSync;
101
- const rename = deps.rename ?? renameSync;
102
- const logger = deps.logger ?? NOOP_LOGGER;
103
-
104
- try {
105
- const map = readMap(path, read, logger);
106
- map[a] = t;
107
- mkdir(dirname(path), { recursive: true });
108
- // Atomic write: temp file (0600) in the same dir, then rename over target,
109
- // so a crash mid-write never truncates the live map.
110
- const tmp = `${path}.tmp`;
111
- write(tmp, JSON.stringify(map, null, 2) + "\n", { mode: 0o600 });
112
- rename(tmp, path);
113
- } catch (err) {
114
- // Best-effort: a failed persist just means the next wake starts fresh.
115
- logger.warn(`[Chorus] codex-session-map: failed to persist ${a}→${t} (${err}) — wake will start fresh next time`);
116
- }
46
+ map.set(anchor, threadId, deps);
117
47
  }
@@ -1,12 +1,14 @@
1
1
  // cli/daemon-agent.mjs
2
2
  // Pure resolution + validation of the daemon's `--agent <type>` selection.
3
- // `claude-code` (the default) and `codex` are both implemented backends
4
- // (add-daemon-codex-backend cashed in the reserved `codex` slot). Resolving an
5
- // unknown value is a hard error (no silent fallback). Zero dependencies.
3
+ // `claude-code` (the default), `codex`, and `kiro` are all implemented backends
4
+ // (add-daemon-codex-backend cashed in the reserved `codex` slot;
5
+ // add-daemon-kiro-backend adds `kiro`). Resolving an unknown value is a hard
6
+ // error (no silent fallback). Zero dependencies.
6
7
 
7
- /** The agent backends the daemon recognizes. Both are implemented (claude-code
8
- * via ClaudeSpawner, codex via CodexSpawner — see spawner-select.mjs). */
9
- export const KNOWN_AGENTS = ["claude-code", "codex"];
8
+ /** The agent backends the daemon recognizes. All are implemented (claude-code
9
+ * via ClaudeSpawner, codex via CodexSpawner, kiro via KiroSpawner — see
10
+ * spawner-select.mjs). */
11
+ export const KNOWN_AGENTS = ["claude-code", "codex", "kiro"];
10
12
 
11
13
  /** The default agent backend when neither --agent nor CHORUS_AGENT is set. */
12
14
  export const DEFAULT_AGENT = "claude-code";
@@ -21,6 +23,7 @@ export const DEFAULT_AGENT = "claude-code";
21
23
  */
22
24
  export function backendCli(agentType) {
23
25
  if (agentType === "codex") return { name: "codex", envVar: "CHORUS_CODEX_PATH" };
26
+ if (agentType === "kiro") return { name: "kiro-cli", envVar: "CHORUS_KIRO_PATH" };
24
27
  return { name: "claude", envVar: "CHORUS_CLAUDE_PATH" };
25
28
  }
26
29
 
@@ -33,7 +36,9 @@ export function backendCli(agentType) {
33
36
  * @returns {string}
34
37
  */
35
38
  export function backendClientType(agentType) {
36
- return agentType === "codex" ? "codex" : "claude_code";
39
+ if (agentType === "codex") return "codex";
40
+ if (agentType === "kiro") return "kiro";
41
+ return "claude_code";
37
42
  }
38
43
 
39
44
  /**
@@ -107,7 +107,7 @@ export function resolveSigintTimeoutMs(flags = {}, deps = {}) {
107
107
  // The Waker/SseListener treat an `undefined` entry as "use process.cwd()".
108
108
 
109
109
  /** Expand a leading `~` to the home dir and resolve to an absolute path. */
110
- function normalizeCwd(value, home) {
110
+ export function normalizeCwd(value, home) {
111
111
  if (typeof value !== "string") return undefined;
112
112
  const trimmed = value.trim();
113
113
  if (!trimmed) return undefined;
@@ -125,7 +125,7 @@ function normalizeCwd(value, home) {
125
125
  * @param {Array<unknown>} list @param {string} home
126
126
  * @returns {string[]}
127
127
  */
128
- function cleanCwdList(list, home) {
128
+ export function cleanCwdList(list, home) {
129
129
  const seen = new Set();
130
130
  const out = [];
131
131
  for (const raw of Array.isArray(list) ? list : []) {