@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,213 @@
1
+ // cli/daemon-install-config.mjs
2
+ // The `chorus daemon install` pre-install config phase (fix-daemon-install-config,
3
+ // idea d7592c96). Two pure, dependency-injected helpers that run BEFORE the
4
+ // service unit is written, so a boot-time daemon in systemd/launchd's CLEAN
5
+ // environment can always authenticate and knows which working directories to
6
+ // serve:
7
+ //
8
+ // resolveInstallCredentials — resolve (flags>env>daemon.json>plugin) → persist
9
+ // into ~/.chorus/daemon.json → validate against the server → abort (write
10
+ // nothing) if creds cannot be obtained or the key is invalid. This is the
11
+ // crux of the fix: a systemd --user unit does NOT inherit the operator's
12
+ // shell-exported CHORUS_URL/CHORUS_API_KEY, so the creds must live in the
13
+ // 0600 login file the clean boot env reads.
14
+ //
15
+ // resolveInstallCwds — determine the served working-directory set and persist
16
+ // it to daemon.json `cwds` (the single source of truth; the unit carries no
17
+ // --cwd — see cli/daemon-service.mjs buildServiceArgs). Prompts an interactive
18
+ // add-loop only when nothing is configured and stdin is a TTY.
19
+ //
20
+ // All IO (resolve / validate / persist / prompt / readJson / env / cwd) is
21
+ // injected so the helpers unit-test without real disk, network, or TTY — matching
22
+ // the style of cli/credentials.mjs and cli/daemon-config.mjs.
23
+
24
+ import { homedir } from "node:os";
25
+ import { resolveCredentials, loginFilePath } from "./credentials.mjs";
26
+ import { updateDaemonConfig, prompt as defaultPrompt } from "./login.mjs";
27
+ import { validateAndFetchIdentity } from "./chorus-client.mjs";
28
+ import { normalizeCwd, cleanCwdList } from "./daemon-config.mjs";
29
+ import { readFileSync } from "node:fs";
30
+
31
+ /** A non-empty trimmed string, or undefined. */
32
+ function nonEmpty(value) {
33
+ if (typeof value !== "string") return undefined;
34
+ const t = value.trim();
35
+ return t.length > 0 ? t : undefined;
36
+ }
37
+
38
+ /** Read a JSON file, returning null on any error. Mirrors credentials.mjs. */
39
+ function readJsonSafe(path) {
40
+ try {
41
+ const parsed = JSON.parse(readFileSync(path, "utf8"));
42
+ return parsed && typeof parsed === "object" ? parsed : null;
43
+ } catch {
44
+ return null;
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Credential preflight for `chorus daemon install`. Resolves credentials, persists
50
+ * them (with the fetched identity) into ~/.chorus/daemon.json, and validates the
51
+ * key against the server — all BEFORE the caller writes any service unit.
52
+ *
53
+ * Returns `{ ok: true, creds, identity }` on success, or `{ ok: false }` when the
54
+ * install must abort (no unit should be written). Never throws.
55
+ *
56
+ * Behavior (elaboration Q1/Q2/Q8/Q9):
57
+ * - Resolve via resolveCredentials (flags > env > daemon.json > plugin).
58
+ * - Unresolved + TTY + !skip → prompt login-style (masked key).
59
+ * - Unresolved + (skip || !TTY) → abort with the multi-source hint (no prompt).
60
+ * - ALWAYS validate the resolved/entered key; abort on failure.
61
+ * - On success persist { url, apiKey, agentUuid, agentName } via the 0600
62
+ * field-merge writer (preserves cwds / yoloAckAt / sigintTimeoutMs).
63
+ *
64
+ * @param {{ url?: string, apiKey?: string }} flags
65
+ * @param {Record<string,string|undefined>} env
66
+ * @param {{
67
+ * isTTY?: boolean, skip?: boolean,
68
+ * resolve?: typeof resolveCredentials,
69
+ * validate?: typeof validateAndFetchIdentity,
70
+ * writeConfig?: (partial: Record<string, unknown>) => string,
71
+ * prompt?: typeof defaultPrompt,
72
+ * log?: (m: string) => void,
73
+ * errLog?: (m: string) => void,
74
+ * }} [opts]
75
+ * @returns {Promise<{ ok: true, creds: {url:string,apiKey:string}, identity: {uuid:string,name:string} } | { ok: false }>}
76
+ */
77
+ export async function resolveInstallCredentials(flags = {}, env = {}, opts = {}) {
78
+ const isTTY = opts.isTTY ?? false;
79
+ const skip = opts.skip ?? false;
80
+ const resolve = opts.resolve ?? resolveCredentials;
81
+ const validate = opts.validate ?? validateAndFetchIdentity;
82
+ const writeConfig = opts.writeConfig ?? updateDaemonConfig;
83
+ const ask = opts.prompt ?? defaultPrompt;
84
+ const log = opts.log ?? (() => {});
85
+ const errLog = opts.errLog ?? (() => {});
86
+
87
+ let url;
88
+ let apiKey;
89
+
90
+ // 1. Try the layered resolver. It THROWS (does not return null) when no source
91
+ // yields a complete pair — catch it and decide prompt vs abort.
92
+ try {
93
+ const resolved = resolve(flags, { env });
94
+ url = resolved.url;
95
+ apiKey = resolved.apiKey;
96
+ log(`[Chorus] credentials resolved from: ${resolved.source}`);
97
+ } catch (err) {
98
+ const hint = err instanceof Error ? err.message : String(err);
99
+ if (!isTTY || skip) {
100
+ // No way (or no permission) to prompt — abort with the actionable hint
101
+ // rather than writing a unit that would crash-loop at boot.
102
+ errLog(hint);
103
+ return { ok: false };
104
+ }
105
+ // TTY + interactive: complete credentials login-style (masked key).
106
+ log("[Chorus] no credentials found — configuring them now (saved for the boot service).");
107
+ url = nonEmpty(await ask("Chorus URL: "));
108
+ apiKey = nonEmpty(await ask("Chorus API key (cho_...): ", { mask: true }));
109
+ if (!url || !apiKey) {
110
+ errLog("[Chorus] both a URL and an API key are required — aborting install.");
111
+ return { ok: false };
112
+ }
113
+ }
114
+
115
+ // 2. ALWAYS validate against the server before writing anything (Q2/Q9) — even
116
+ // in skip mode. A bad/expired key fails the install instead of at boot.
117
+ let identity;
118
+ try {
119
+ identity = await validate({ url, apiKey });
120
+ } catch (err) {
121
+ errLog(`[Chorus] credential validation failed: ${err instanceof Error ? err.message : String(err)}`);
122
+ errLog("[Chorus] credentials were NOT saved and no service was installed.");
123
+ return { ok: false };
124
+ }
125
+
126
+ // 3. Persist into the 0600 login file so the clean boot env can read it. The
127
+ // field-merge writer preserves cwds / yoloAckAt / sigintTimeoutMs.
128
+ writeConfig({ url, apiKey, agentUuid: identity.uuid, agentName: identity.name });
129
+ log(`[Chorus] credentials saved for ${identity.name} (${identity.uuid}).`);
130
+ return { ok: true, creds: { url, apiKey }, identity };
131
+ }
132
+
133
+ /**
134
+ * Determine the set of working directories the daemon serves and persist it to
135
+ * ~/.chorus/daemon.json `cwds` (the single source of truth — the unit carries no
136
+ * --cwd). Prompts an interactive add-loop only when nothing is configured and
137
+ * stdin is a TTY (and skip is false).
138
+ *
139
+ * "Configured" ⇔ a `--cwd` flag was passed OR daemon.json already has a non-empty
140
+ * `cwds` array. Configured, or skip/non-TTY, uses that set (or the process cwd
141
+ * default) with no prompt.
142
+ *
143
+ * Returns `{ cwds: string[] }` — the normalized, de-duplicated set that was
144
+ * persisted. Never throws.
145
+ *
146
+ * @param {{ cwd?: string[] }} flags
147
+ * @param {{
148
+ * isTTY?: boolean, skip?: boolean,
149
+ * readJson?: (path: string) => (Record<string, unknown>|null),
150
+ * loginPath?: string,
151
+ * writeConfig?: (partial: Record<string, unknown>) => string,
152
+ * prompt?: typeof defaultPrompt,
153
+ * home?: string,
154
+ * processCwd?: string,
155
+ * log?: (m: string) => void,
156
+ * }} [opts]
157
+ * @returns {Promise<{ cwds: string[] }>}
158
+ */
159
+ export async function resolveInstallCwds(flags = {}, opts = {}) {
160
+ const isTTY = opts.isTTY ?? false;
161
+ const skip = opts.skip ?? false;
162
+ const readJson = opts.readJson ?? readJsonSafe;
163
+ const loginPath = opts.loginPath ?? loginFilePath();
164
+ const writeConfig = opts.writeConfig ?? updateDaemonConfig;
165
+ const ask = opts.prompt ?? defaultPrompt;
166
+ const home = opts.home ?? homedir();
167
+ const processCwd = opts.processCwd ?? process.cwd();
168
+ const log = opts.log ?? (() => {});
169
+
170
+ // 1. Explicit --cwd flag(s) → configured; normalize + dedup, no prompt.
171
+ const flagList = Array.isArray(flags.cwd) ? flags.cwd : typeof flags.cwd === "string" ? [flags.cwd] : [];
172
+ const fromFlags = cleanCwdList(flagList, home);
173
+ if (fromFlags.length > 0) {
174
+ writeConfig({ cwds: fromFlags });
175
+ return { cwds: fromFlags };
176
+ }
177
+
178
+ // 2. Existing daemon.json `cwds` → configured; use as-is (re-persist is a no-op
179
+ // merge, so we skip the write and just return them).
180
+ const file = readJson(loginPath);
181
+ const fromFile = file && Array.isArray(file.cwds) ? cleanCwdList(file.cwds, home) : [];
182
+ if (fromFile.length > 0) {
183
+ return { cwds: fromFile };
184
+ }
185
+
186
+ // 3. Unconfigured. On a non-TTY or in skip mode, fall back to the process cwd
187
+ // default with no prompt.
188
+ const defaultCwd = normalizeCwd(processCwd, home);
189
+ if (!isTTY || skip) {
190
+ const cwds = defaultCwd ? [defaultCwd] : [];
191
+ if (cwds.length > 0) writeConfig({ cwds });
192
+ return { cwds };
193
+ }
194
+
195
+ // 4. Unconfigured + TTY + !skip → interactive add-loop. Pre-seed the current
196
+ // directory as the suggested first entry (Enter accepts it), then keep
197
+ // prompting until a blank line ends the loop.
198
+ const collected = [];
199
+ log(`[Chorus] Configure the working directories this daemon serves.`);
200
+ const first = nonEmpty(await ask(`Working directory [${defaultCwd}] (Enter to accept the default): `));
201
+ collected.push(first ?? defaultCwd);
202
+ // subsequent adds
203
+ // eslint-disable-next-line no-constant-condition
204
+ while (true) {
205
+ const next = nonEmpty(await ask("Add another working directory (blank to finish): "));
206
+ if (!next) break;
207
+ collected.push(next);
208
+ }
209
+ const cwds = cleanCwdList(collected, home);
210
+ const finalCwds = cwds.length > 0 ? cwds : defaultCwd ? [defaultCwd] : [];
211
+ if (finalCwds.length > 0) writeConfig({ cwds: finalCwds });
212
+ return { cwds: finalCwds };
213
+ }
@@ -70,17 +70,22 @@ export function resolveScriptPath() {
70
70
 
71
71
  /**
72
72
  * Build the argv the SUPERVISED daemon runs — the normal long-lived daemon
73
- * (NO `-d`: the supervisor owns the foreground process). Reflects the flags the
74
- * operator passed to `install` so the boot-time daemon serves the same paths /
75
- * agent / permission posture. Pure.
73
+ * (NO `-d`: the supervisor owns the foreground process). Reflects the `--agent`
74
+ * / `--chorus-only` posture the operator passed to `install`. The served cwd set
75
+ * is NOT embedded here — it lives in ~/.chorus/daemon.json `cwds` (single source
76
+ * of truth) and is read by the daemon via resolveDaemonCwds. Pure.
76
77
  * @param {{ cwds?: string[], agent?: string, chorusOnly?: boolean, scriptPath: string }} spec
77
- * @returns {string[]} e.g. ["/x/chorus.mjs","daemon","--cwd","/a","--cwd","/b"]
78
+ * @returns {string[]} e.g. ["/x/chorus.mjs","daemon","--agent","codex"]
78
79
  */
79
80
  export function buildServiceArgs(spec) {
80
81
  const args = [spec.scriptPath, "daemon"];
81
- for (const cwd of spec.cwds ?? []) {
82
- if (typeof cwd === "string" && cwd) args.push("--cwd", cwd);
83
- }
82
+ // NOTE: --cwd is deliberately NOT emitted. The set of working directories the
83
+ // daemon serves is persisted to ~/.chorus/daemon.json `cwds` at install time
84
+ // (the single source of truth) and read back by the daemon via
85
+ // resolveDaemonCwds. Baking --cwd into the unit too would let the two sources
86
+ // drift and would hide the paths from a plain `chorus daemon` run
87
+ // (fix-daemon-install-config, elaboration Q5-A). `spec.cwds` is still accepted
88
+ // for signature compatibility but ignored here.
84
89
  if (spec.agent) args.push("--agent", spec.agent);
85
90
  if (spec.chorusOnly) args.push("--chorus-only");
86
91
  return args;
package/cli/daemon.mjs CHANGED
@@ -13,7 +13,11 @@
13
13
  // observability idea.
14
14
 
15
15
  import { resolveCredentials, loginFilePath } from "./credentials.mjs";
16
- import { prompt, writeLoginFile } from "./login.mjs";
16
+ import { prompt, writeLoginFile, updateDaemonConfig } from "./login.mjs";
17
+ import {
18
+ resolveInstallCredentials,
19
+ resolveInstallCwds,
20
+ } from "./daemon-install-config.mjs";
17
21
  import {
18
22
  resolvePermissionMode,
19
23
  yoloWarningLine,
@@ -29,6 +33,7 @@ import { Waker } from "./waker.mjs";
29
33
  import { LineageResolver } from "./lineage.mjs";
30
34
  import { resolveClaudePath } from "./claude-spawner.mjs";
31
35
  import { resolveCodexPath } from "./codex-spawner.mjs";
36
+ import { resolveKiroPath } from "./kiro-spawner.mjs";
32
37
  import { selectSpawner } from "./spawner-select.mjs";
33
38
  import {
34
39
  createExecutionUploadHooks,
@@ -484,6 +489,7 @@ export async function runDaemon(flags = {}, deps = {}) {
484
489
  // banner shows the right binary instead of always probing for `claude`.
485
490
  const findClaude = deps.resolveClaudePath ?? resolveClaudePath;
486
491
  const findCodex = deps.resolveCodexPath ?? resolveCodexPath;
492
+ const findKiro = deps.resolveKiroPath ?? resolveKiroPath;
487
493
  const verbose = flags.verbose === true || env.CHORUS_VERBOSE === "1";
488
494
 
489
495
  // Resolve the agent backend (default claude-code). An unknown --agent /
@@ -520,7 +526,14 @@ export async function runDaemon(flags = {}, deps = {}) {
520
526
  // The preflight dep bundle — built from the same seams runDaemon resolved, so
521
527
  // the detach/restart paths run the SAME (injectable) preflight, not the real
522
528
  // implementations. Threaded into startDetached so tests can drive it offline.
523
- const pfDeps = { flags, env, isTTY, resolve, validate, writeCreds, askPrompt, log, errLog };
529
+ // writeConfig / readJson / loginPath are optional injectable IO used by the
530
+ // `install` config phase — default (undefined) means the real 0600 login file.
531
+ const pfDeps = {
532
+ flags, env, isTTY, resolve, validate, writeCreds, askPrompt, log, errLog,
533
+ writeConfig: deps.writeConfig,
534
+ readJson: deps.readJson,
535
+ loginPath: deps.loginPath,
536
+ };
524
537
 
525
538
  const action = flags.action ?? "run";
526
539
  if (action !== "run") {
@@ -557,10 +570,12 @@ export async function runDaemon(flags = {}, deps = {}) {
557
570
 
558
571
  // Detect the SELECTED backend's executable (non-fatal): the daemon still
559
572
  // subscribes when it's missing; a wake surfaces the error visibly when one
560
- // arrives. The resolved path (or absence) is shown in the banner below. codex
561
- // resolveCodexPath, otherwise resolveClaudePathso a `--agent codex` run
562
- // probes (and the banner reports) `codex`, not `claude`.
563
- const cliPath = agentType === "codex" ? findCodex() : findClaude();
573
+ // arrives. The resolved path (or absence) is shown in the banner below. Each
574
+ // backend probes its own binary codex resolveCodexPath, kiro
575
+ // resolveKiroPath, otherwise resolveClaudePath so a `--agent kiro` run probes
576
+ // (and the banner reports) `kiro-cli`, not `claude`.
577
+ const cliPath =
578
+ agentType === "codex" ? findCodex() : agentType === "kiro" ? findKiro() : findClaude();
564
579
 
565
580
  // The daemon.json the layered config readers (credentials, sigint timeout, cwds)
566
581
  // consult. Surfacing its absolute path + presence in the banner makes it obvious
@@ -742,11 +757,55 @@ export async function handleLifecycleAction(action, { log, errLog, lifecycle, se
742
757
  const svc = service ?? { detectSupervisor: () => ({ kind: "none" }) };
743
758
 
744
759
  if (action === "install") {
760
+ // Pre-install config phase (fix-daemon-install-config): BEFORE writing any
761
+ // unit, guarantee the clean-env boot service can authenticate and knows which
762
+ // cwds to serve. --yes/-y OR a non-TTY suppress prompts; neither suppresses
763
+ // the resolve/persist/validate/abort guarantee.
764
+ const flags = pfDeps?.flags ?? {};
765
+ const env = pfDeps?.env ?? {};
766
+ const isTTY = pfDeps?.isTTY ?? false;
767
+ const skip = flags.yes === true || !isTTY;
768
+ const installCfg = svc.installConfig ?? {
769
+ resolveInstallCredentials,
770
+ resolveInstallCwds,
771
+ };
772
+
773
+ const credResult = await installCfg.resolveInstallCredentials(flags, env, {
774
+ isTTY,
775
+ skip,
776
+ resolve: pfDeps?.resolve,
777
+ validate: pfDeps?.validate,
778
+ writeConfig: pfDeps?.writeConfig ?? updateDaemonConfig,
779
+ prompt: pfDeps?.askPrompt,
780
+ log,
781
+ errLog,
782
+ });
783
+ if (!credResult.ok) {
784
+ // Credentials could not be obtained / validated — never install a service
785
+ // that would fail to authenticate and crash-loop at boot.
786
+ errLog("[Chorus] install aborted — no service was written.");
787
+ return 1;
788
+ }
789
+
790
+ // Configure + persist the served cwd set (single source of truth in
791
+ // daemon.json; the unit carries no --cwd). Never blocks on a non-TTY.
792
+ // readJson / loginPath are optional injectable seams (default to the real
793
+ // login file) so the config phase can be exercised hermetically in tests.
794
+ await installCfg.resolveInstallCwds(flags, {
795
+ isTTY,
796
+ skip,
797
+ writeConfig: pfDeps?.writeConfig ?? updateDaemonConfig,
798
+ readJson: pfDeps?.readJson,
799
+ loginPath: pfDeps?.loginPath,
800
+ prompt: pfDeps?.askPrompt,
801
+ log,
802
+ });
803
+
745
804
  const spec = {
746
805
  ...svc.resolveServicePaths(),
747
- cwds: pfDeps?.flags?.cwd ?? [],
748
- agent: pfDeps?.flags?.agent,
749
- chorusOnly: pfDeps?.flags?.chorusOnly === true,
806
+ cwds: flags.cwd ?? [],
807
+ agent: flags.agent,
808
+ chorusOnly: flags.chorusOnly === true,
750
809
  workingDir: process.cwd(),
751
810
  };
752
811
  const r = svc.installService(spec);
@@ -0,0 +1,49 @@
1
+ // cli/kiro-session-map.mjs
2
+ // Daemon-local persistence of the Kiro `anchor → sessionId` map. Kiro GENERATES
3
+ // its own per-cwd conversation sessionId (unlike Claude, which accepts a
4
+ // client-supplied --session-id), and the daemon works one repo cwd shared by many
5
+ // ideas — so Kiro's native "resume most recent conversation from this directory"
6
+ // would cross-contaminate ideas. Instead we record the generated sessionId keyed
7
+ // by the Chorus session anchor (direct idea uuid, or the entity uuid for an ad-hoc
8
+ // session) and `kiro-cli chat --no-interactive --resume-id <sessionId>` on the
9
+ // next wake for that anchor.
10
+ //
11
+ // Thin wrapper over the generic `createSessionMap` factory (shared with the Codex
12
+ // backend); the store is ~/.chorus/kiro-sessions.json. See session-map.mjs for the
13
+ // best-effort / never-throw contract and the injectable-IO deps.
14
+
15
+ import { createSessionMap } from "./session-map.mjs";
16
+
17
+ const map = createSessionMap({ filename: "kiro-sessions.json", logPrefix: "kiro-session-map" });
18
+
19
+ /** Absolute path to the Kiro session-id map, alongside ~/.chorus/daemon.json. */
20
+ export function kiroSessionMapPath() {
21
+ return map.mapPath();
22
+ }
23
+
24
+ /**
25
+ * Look up the Kiro sessionId recorded for `anchor`, or null when there is none
26
+ * (no file, no entry, or a non-string entry). Never throws.
27
+ * @param {string} anchor
28
+ * @param {{ path?: string, read?: (p: string) => string, logger?: any }} [deps]
29
+ * @returns {string | null}
30
+ */
31
+ export function getSessionId(anchor, deps = {}) {
32
+ return map.get(anchor, deps);
33
+ }
34
+
35
+ /**
36
+ * Record `anchor → sessionId`, preserving every other entry. Atomic (temp file +
37
+ * rename). Best-effort: a blank anchor/sessionId is ignored (no write), and any
38
+ * IO failure is logged and swallowed — it never throws into the wake path.
39
+ * @param {string} anchor
40
+ * @param {string} sessionId
41
+ * @param {{ path?: string, read?: (p: string) => string,
42
+ * write?: (p: string, c: string, o?: object) => void,
43
+ * mkdir?: (p: string, o?: object) => void,
44
+ * rename?: (from: string, to: string) => void, logger?: any }} [deps]
45
+ * @returns {void}
46
+ */
47
+ export function setSessionId(anchor, sessionId, deps = {}) {
48
+ map.set(anchor, sessionId, deps);
49
+ }