@chorus-aidlc/chorus 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +443 -430
  3. package/.next/standalone/.next/app-path-routes-manifest.json +44 -42
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +43 -43
  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 +2 -2
  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 +2 -2
  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]/proposals/[proposalUuid]/page.js +2 -2
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  48. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  49. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies/new.rsc +3 -3
  53. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  55. package/.next/standalone/.next/server/app/admin/companies.rsc +3 -3
  56. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/admin.html +1 -1
  58. package/.next/standalone/.next/server/app/admin.rsc +3 -3
  59. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js +1 -1
  60. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/admin/companies/route.js +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/companies/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/login/route.js +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/admin/session/route.js +1 -1
  68. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agent-connections/route.js +1 -1
  70. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  76. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  79. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js +1 -1
  82. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/api-keys/route.js +1 -1
  85. package/.next/standalone/.next/server/app/api/api-keys/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/auth/callback/route.js +1 -1
  88. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/auth/check-default/route.js +1 -1
  90. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/auth/default-login/route.js +1 -1
  93. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/auth/identify/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/auth/logout/route.js +1 -1
  97. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/auth/refresh/route.js +1 -1
  100. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/auth/session/route.js +1 -1
  102. package/.next/standalone/.next/server/app/api/auth/session/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/auth/sync-token/route.js +1 -1
  105. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  107. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -1
  110. package/.next/standalone/.next/server/app/api/daemon/control/route.js.nft.json +1 -1
  111. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -1
  113. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -1
  116. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
  122. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  128. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  131. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  132. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  134. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -0
  137. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -0
  138. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -0
  139. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  140. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  143. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  146. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  147. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  149. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  152. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  155. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/events/route.js +1 -1
  158. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  162. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  165. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  168. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  171. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  174. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  177. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/keepalive/route.js +1 -0
  180. package/.next/standalone/.next/server/app/api/keepalive/route.js.nft.json +1 -0
  181. package/.next/standalone/.next/server/app/api/keepalive/route_client-reference-manifest.js +1 -0
  182. package/.next/standalone/.next/server/app/api/mcp/route.js +5 -5
  183. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  186. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  189. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  192. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  195. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  198. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  201. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  204. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  207. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
  210. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
  213. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  216. package/.next/standalone/.next/server/app/api/project-groups/route.js.nft.json +1 -1
  217. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  219. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js.nft.json +1 -1
  220. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  221. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  222. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  225. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js.nft.json +1 -1
  226. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  228. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js.nft.json +1 -1
  229. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  231. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  233. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  234. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  235. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  236. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  237. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js.nft.json +1 -1
  238. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  239. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  240. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js.nft.json +1 -1
  241. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  242. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  243. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js.nft.json +1 -1
  244. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  245. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  246. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js.nft.json +1 -1
  247. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  248. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  249. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js.nft.json +1 -1
  250. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  252. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  253. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  255. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  256. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  258. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  259. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  260. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  261. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js.nft.json +1 -1
  262. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  263. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  264. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js.nft.json +1 -1
  265. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  267. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  269. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  270. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js.nft.json +1 -1
  271. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  272. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  273. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/api/search/route.js +1 -1
  276. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  277. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  278. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  279. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  280. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  281. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  282. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  283. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  284. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  285. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  286. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  287. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  288. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  289. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  290. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  291. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  292. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  293. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  294. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  295. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  296. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  297. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  298. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  299. package/.next/standalone/.next/server/app/index.html +1 -1
  300. package/.next/standalone/.next/server/app/index.rsc +3 -3
  301. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  302. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  303. package/.next/standalone/.next/server/app/login/admin.rsc +3 -3
  304. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  305. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  306. package/.next/standalone/.next/server/app/login/callback.rsc +4 -4
  307. package/.next/standalone/.next/server/app/login/page.js +1 -1
  308. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/login/pick-workspace/page.js +1 -1
  310. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  311. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  312. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +4 -4
  313. package/.next/standalone/.next/server/app/login/silent-refresh/page.js +1 -1
  314. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  315. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  316. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +4 -4
  317. package/.next/standalone/.next/server/app/login.html +1 -1
  318. package/.next/standalone/.next/server/app/login.rsc +4 -4
  319. package/.next/standalone/.next/server/app/onboarding/page.js +1 -1
  320. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  321. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  322. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  323. package/.next/standalone/.next/server/app/onboarding.rsc +4 -4
  324. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  325. package/.next/standalone/.next/server/app/projects.html +1 -1
  326. package/.next/standalone/.next/server/app/projects.rsc +5 -5
  327. package/.next/standalone/.next/server/app/settings.html +1 -1
  328. package/.next/standalone/.next/server/app/settings.rsc +5 -5
  329. package/.next/standalone/.next/server/app-paths-manifest.json +44 -42
  330. package/.next/standalone/.next/server/chunks/{5201.js → 1343.js} +2 -2
  331. package/.next/standalone/.next/server/chunks/1463.js +1 -0
  332. package/.next/standalone/.next/server/chunks/1596.js +2 -2
  333. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  334. package/.next/standalone/.next/server/chunks/2622.js +1 -0
  335. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  336. package/.next/standalone/.next/server/chunks/3219.js +1 -1
  337. package/.next/standalone/.next/server/chunks/3371.js +1 -1
  338. package/.next/standalone/.next/server/chunks/3419.js +1 -1
  339. package/.next/standalone/.next/server/chunks/345.js +1 -0
  340. package/.next/standalone/.next/server/chunks/4872.js +1 -0
  341. package/.next/standalone/.next/server/chunks/5300.js +1 -1
  342. package/.next/standalone/.next/server/chunks/5581.js +1 -0
  343. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  344. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  345. package/.next/standalone/.next/server/chunks/7063.js +2 -2
  346. package/.next/standalone/.next/server/chunks/7064.js +1 -0
  347. package/.next/standalone/.next/server/chunks/7160.js +1 -0
  348. package/.next/standalone/.next/server/chunks/7364.js +1 -0
  349. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  350. package/.next/standalone/.next/server/chunks/7427.js +1 -0
  351. package/.next/standalone/.next/server/chunks/7515.js +1 -0
  352. package/.next/standalone/.next/server/chunks/7578.js +2 -2
  353. package/.next/standalone/.next/server/chunks/7897.js +1 -1
  354. package/.next/standalone/.next/server/chunks/{4711.js → 796.js} +6 -6
  355. package/.next/standalone/.next/server/chunks/9161.js +1 -0
  356. package/.next/standalone/.next/server/chunks/920.js +1 -1
  357. package/.next/standalone/.next/server/chunks/937.js +3 -3
  358. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  359. package/.next/standalone/.next/server/middleware-manifest.json +1 -1
  360. package/.next/standalone/.next/server/pages/404.html +1 -1
  361. package/.next/standalone/.next/server/pages/500.html +1 -1
  362. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  363. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  364. package/.next/standalone/.next/server/src/middleware.js +1 -1
  365. package/.next/standalone/.next/static/chunks/16467-dd4f928e725306c1.js +1 -0
  366. package/.next/standalone/.next/static/chunks/20081-a2bf5c9f24d5d589.js +1 -0
  367. package/.next/standalone/.next/static/chunks/2280-f48bf99ea9d88ece.js +1 -0
  368. package/.next/standalone/.next/static/chunks/26394-4af487a51dd62832.js +1 -0
  369. package/.next/standalone/.next/static/chunks/27378-9328bcc96ae9872e.js +1 -0
  370. package/.next/standalone/.next/static/chunks/32497-886aa4d3d7bf4967.js +1 -0
  371. package/.next/standalone/.next/static/chunks/37784-95dee37276b1067b.js +1 -0
  372. package/.next/standalone/.next/static/chunks/40867-04cc0d00205eaf9b.js +1 -0
  373. package/.next/standalone/.next/static/chunks/42111-1935df3b0dab2095.js +1 -0
  374. package/.next/standalone/.next/static/chunks/4860.f4242c493fcf182d.js +1 -0
  375. package/.next/standalone/.next/static/chunks/54637-71d281d649ea3a17.js +1 -0
  376. package/.next/standalone/.next/static/chunks/6239-d78e6f830ce0a7f8.js +1 -0
  377. package/.next/standalone/.next/static/chunks/64187-cff8a4b5e96fa8f9.js +10 -0
  378. package/.next/standalone/.next/static/chunks/78917-2b959ab0a7f610b4.js +1 -0
  379. package/.next/standalone/.next/static/chunks/80904-973284d1fe916c38.js +1 -0
  380. package/.next/standalone/.next/static/chunks/88561-0b14e1564419f215.js +1 -0
  381. package/.next/standalone/.next/static/chunks/89035-faf398b7bbc7d2ed.js +1 -0
  382. package/.next/standalone/.next/static/chunks/89644-2fee0373b890e8e3.js +1 -0
  383. package/.next/standalone/.next/static/chunks/{93346-5489d90bc2d57190.js → 93346-b3e1ebe948fc623f.js} +1 -1
  384. package/.next/standalone/.next/static/chunks/97868-9406a4014b667c2d.js +1 -0
  385. package/.next/standalone/.next/static/chunks/99373.880b43de1fa6411f.js +1 -0
  386. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-f04d5fa070f15acd.js +1 -0
  387. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-2944c6c9bc48a7d6.js +1 -0
  388. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-f1b0daea9f947caf.js +1 -0
  389. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-c4271886ef004611.js +1 -0
  390. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-7a8b60de97bfbd29.js +1 -0
  391. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-6620b9d7a2cc766f.js +1 -0
  392. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-0a55289b2bc510c2.js +1 -0
  393. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-5d09141beb5d6aee.js +1 -0
  394. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-d5c3dde34d6291a8.js +1 -0
  395. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-0da08d8b425acb6a.js +1 -0
  396. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-583e58d4d689d38b.js → page-fec019d974ef8d4e.js} +1 -1
  397. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-44014947a679f91c.js +1 -0
  398. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-f1b0daea9f947caf.js +1 -0
  399. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-f1b0daea9f947caf.js +1 -0
  400. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-f1b0daea9f947caf.js +1 -0
  401. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-f1b0daea9f947caf.js +1 -0
  402. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-f1b0daea9f947caf.js +1 -0
  403. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-f1b0daea9f947caf.js +1 -0
  404. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-f1b0daea9f947caf.js +1 -0
  405. package/.next/standalone/.next/static/chunks/app/api/agents/route-f1b0daea9f947caf.js +1 -0
  406. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-f1b0daea9f947caf.js +1 -0
  407. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-f1b0daea9f947caf.js +1 -0
  408. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-f1b0daea9f947caf.js +1 -0
  409. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-f1b0daea9f947caf.js +1 -0
  410. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-f1b0daea9f947caf.js +1 -0
  411. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-f1b0daea9f947caf.js +1 -0
  412. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-f1b0daea9f947caf.js +1 -0
  413. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-f1b0daea9f947caf.js +1 -0
  414. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-f1b0daea9f947caf.js +1 -0
  415. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-f1b0daea9f947caf.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-f1b0daea9f947caf.js +1 -0
  417. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-f1b0daea9f947caf.js +1 -0
  418. package/.next/standalone/.next/static/chunks/app/api/comments/route-f1b0daea9f947caf.js +1 -0
  419. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-f1b0daea9f947caf.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-f1b0daea9f947caf.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-f1b0daea9f947caf.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-f1b0daea9f947caf.js +1 -0
  423. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-f1b0daea9f947caf.js +1 -0
  424. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-f1b0daea9f947caf.js +1 -0
  425. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-f1b0daea9f947caf.js +1 -0
  426. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-f1b0daea9f947caf.js +1 -0
  427. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-f1b0daea9f947caf.js +1 -0
  428. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-f1b0daea9f947caf.js +1 -0
  429. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-f1b0daea9f947caf.js +1 -0
  430. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-f1b0daea9f947caf.js +1 -0
  431. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-f1b0daea9f947caf.js +1 -0
  432. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-f1b0daea9f947caf.js +1 -0
  433. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-f1b0daea9f947caf.js +1 -0
  434. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-f1b0daea9f947caf.js +1 -0
  435. package/.next/standalone/.next/static/chunks/app/api/events/route-f1b0daea9f947caf.js +1 -0
  436. package/.next/standalone/.next/static/chunks/app/api/health/route-f1b0daea9f947caf.js +1 -0
  437. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-f1b0daea9f947caf.js +1 -0
  438. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-f1b0daea9f947caf.js +1 -0
  439. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-f1b0daea9f947caf.js +1 -0
  440. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-f1b0daea9f947caf.js +1 -0
  441. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-f1b0daea9f947caf.js +1 -0
  442. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-f1b0daea9f947caf.js +1 -0
  443. package/.next/standalone/.next/static/chunks/app/api/keepalive/route-f1b0daea9f947caf.js +1 -0
  444. package/.next/standalone/.next/static/chunks/app/api/mcp/route-f1b0daea9f947caf.js +1 -0
  445. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-f1b0daea9f947caf.js +1 -0
  446. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-f1b0daea9f947caf.js +1 -0
  447. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-f1b0daea9f947caf.js +1 -0
  448. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-f1b0daea9f947caf.js +1 -0
  449. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-f1b0daea9f947caf.js +1 -0
  450. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-f1b0daea9f947caf.js +1 -0
  451. package/.next/standalone/.next/static/chunks/app/api/notifications/route-f1b0daea9f947caf.js +1 -0
  452. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-f1b0daea9f947caf.js +1 -0
  453. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-f1b0daea9f947caf.js +1 -0
  454. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-f1b0daea9f947caf.js +1 -0
  455. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-f1b0daea9f947caf.js +1 -0
  456. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-f1b0daea9f947caf.js +1 -0
  457. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-f1b0daea9f947caf.js +1 -0
  458. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-f1b0daea9f947caf.js +1 -0
  459. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-f1b0daea9f947caf.js +1 -0
  460. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-f1b0daea9f947caf.js +1 -0
  461. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-f1b0daea9f947caf.js +1 -0
  462. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-f1b0daea9f947caf.js +1 -0
  463. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-f1b0daea9f947caf.js +1 -0
  464. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-f1b0daea9f947caf.js +1 -0
  465. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-f1b0daea9f947caf.js +1 -0
  466. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-f1b0daea9f947caf.js +1 -0
  467. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-f1b0daea9f947caf.js +1 -0
  468. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-f1b0daea9f947caf.js +1 -0
  469. package/.next/standalone/.next/static/chunks/app/api/projects/route-f1b0daea9f947caf.js +1 -0
  470. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-f1b0daea9f947caf.js +1 -0
  471. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-f1b0daea9f947caf.js +1 -0
  472. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-f1b0daea9f947caf.js +1 -0
  473. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-f1b0daea9f947caf.js +1 -0
  474. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-f1b0daea9f947caf.js +1 -0
  475. package/.next/standalone/.next/static/chunks/app/api/search/route-f1b0daea9f947caf.js +1 -0
  476. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-f1b0daea9f947caf.js +1 -0
  477. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-f1b0daea9f947caf.js +1 -0
  478. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-f1b0daea9f947caf.js +1 -0
  479. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-f1b0daea9f947caf.js +1 -0
  480. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-f1b0daea9f947caf.js +1 -0
  481. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-f1b0daea9f947caf.js +1 -0
  482. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-f1b0daea9f947caf.js +1 -0
  483. package/.next/standalone/.next/static/chunks/app/layout-e3a49e06950a057f.js +1 -0
  484. package/.next/standalone/.next/static/chunks/app/login/callback/{page-0edd93f50cb4f6ea.js → page-6cad93f5c610b047.js} +1 -1
  485. package/.next/standalone/.next/static/chunks/app/login/{page-c64b8d40a0781b4c.js → page-e7493d55573a52f1.js} +1 -1
  486. package/.next/standalone/.next/static/chunks/app/login/pick-workspace/{page-e0444ad8b50121f5.js → page-597e0f3377f18d29.js} +1 -1
  487. package/.next/standalone/.next/static/chunks/app/login/silent-refresh/{page-a9960ea858db6752.js → page-a26d1af61578c96e.js} +1 -1
  488. package/.next/standalone/.next/static/chunks/app/onboarding/page-9a41067d4c5d29d7.js +1 -0
  489. package/.next/standalone/.next/static/chunks/{webpack-87284a4533d77eaf.js → webpack-1556cfd11f7e90d1.js} +1 -1
  490. package/.next/standalone/.next/static/css/6e8fd46b062fd4fc.css +1 -0
  491. package/.next/standalone/.next/static/v1yRpXkt1wNBkZMTE3tiz/_buildManifest.js +1 -0
  492. package/.next/standalone/package.json +1 -1
  493. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +13 -1
  494. package/.next/standalone/public/chorus-plugin/agents/code-reviewer.md +167 -0
  495. package/.next/standalone/public/chorus-plugin/bin/on-post-verify-task.sh +97 -17
  496. package/.next/standalone/public/chorus-plugin/bin/tests/test-on-post-verify-task.sh +191 -1
  497. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  498. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +7 -4
  499. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +3 -1
  500. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  501. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  502. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +5 -1
  503. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  504. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +12 -3
  505. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +40 -1
  506. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
  507. package/.next/standalone/public/skill/chorus/SKILL.md +16 -11
  508. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +225 -0
  509. package/.next/standalone/public/skill/develop-chorus/SKILL.md +3 -1
  510. package/.next/standalone/public/skill/idea-chorus/SKILL.md +1 -1
  511. package/.next/standalone/public/skill/package.json +2 -0
  512. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +5 -1
  513. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +1 -1
  514. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  515. package/.next/standalone/public/skill/review-chorus/SKILL.md +12 -1
  516. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +1 -1
  517. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +35 -1
  518. package/README.md +49 -13
  519. package/README.zh.md +49 -13
  520. package/chorus.mjs +30 -14
  521. package/cli/client-args.mjs +17 -1
  522. package/cli/daemon-banner.mjs +11 -1
  523. package/cli/daemon-config.mjs +118 -0
  524. package/cli/daemon.mjs +216 -154
  525. package/cli/event-router.mjs +273 -12
  526. package/cli/server-signal-handlers.mjs +41 -0
  527. package/cli/sse-listener.mjs +27 -5
  528. package/cli/waker.mjs +36 -8
  529. package/package.json +1 -1
  530. package/prisma/migrations/20260622115159_add_daemon_connection_cwd/migration.sql +9 -0
  531. package/prisma/migrations/20260623020208_task_pinned_target_instance/migration.sql +3 -0
  532. package/prisma/migrations/20260624142248_add_agent_instance/migration.sql +31 -0
  533. package/prisma/migrations/20260624165025_drop_task_target_host_cwd/migration.sql +10 -0
  534. package/prisma/schema.prisma +69 -3
  535. package/.next/standalone/.next/server/chunks/1064.js +0 -1
  536. package/.next/standalone/.next/server/chunks/2213.js +0 -1
  537. package/.next/standalone/.next/server/chunks/369.js +0 -1
  538. package/.next/standalone/.next/server/chunks/5039.js +0 -1
  539. package/.next/standalone/.next/server/chunks/5631.js +0 -1
  540. package/.next/standalone/.next/server/chunks/6461.js +0 -1
  541. package/.next/standalone/.next/server/chunks/6712.js +0 -1
  542. package/.next/standalone/.next/server/chunks/7867.js +0 -1
  543. package/.next/standalone/.next/server/chunks/8012.js +0 -1
  544. package/.next/standalone/.next/server/chunks/9629.js +0 -1
  545. package/.next/standalone/.next/server/chunks/9725.js +0 -1
  546. package/.next/standalone/.next/static/519aK55QLHaVN7b1TVDkB/_buildManifest.js +0 -1
  547. package/.next/standalone/.next/static/chunks/1217-323cc20b73ebfde9.js +0 -1
  548. package/.next/standalone/.next/static/chunks/16984-8ab5580b8e63a200.js +0 -1
  549. package/.next/standalone/.next/static/chunks/1879-7a8b283283218df2.js +0 -1
  550. package/.next/standalone/.next/static/chunks/19276-50b367d7b93d5f34.js +0 -1
  551. package/.next/standalone/.next/static/chunks/23466-e1176a6d814f4897.js +0 -1
  552. package/.next/standalone/.next/static/chunks/38040-a8687f86dd8e9d67.js +0 -1
  553. package/.next/standalone/.next/static/chunks/4860.43f5ad8a3aaed0e8.js +0 -1
  554. package/.next/standalone/.next/static/chunks/59296-783831c43aa0162e.js +0 -1
  555. package/.next/standalone/.next/static/chunks/60648-36ccbee4ce232d52.js +0 -1
  556. package/.next/standalone/.next/static/chunks/60694-68232120903209df.js +0 -1
  557. package/.next/standalone/.next/static/chunks/64648-81f03be6f9793ab9.js +0 -1
  558. package/.next/standalone/.next/static/chunks/66205-8d7eae6a0f0a032d.js +0 -1
  559. package/.next/standalone/.next/static/chunks/66969-12f0b22c51f5a410.js +0 -1
  560. package/.next/standalone/.next/static/chunks/70536-b8bf71098ae11f07.js +0 -1
  561. package/.next/standalone/.next/static/chunks/76803-7ac4024b2ae89843.js +0 -1
  562. package/.next/standalone/.next/static/chunks/78389-b32edc6bd5c570a9.js +0 -1
  563. package/.next/standalone/.next/static/chunks/78584-eb2fa8cf2f266329.js +0 -1
  564. package/.next/standalone/.next/static/chunks/78917-150ed14a99844aab.js +0 -1
  565. package/.next/standalone/.next/static/chunks/84541-1f4c2a40f7722667.js +0 -10
  566. package/.next/standalone/.next/static/chunks/8574-b9739eb8d054c793.js +0 -1
  567. package/.next/standalone/.next/static/chunks/99373.0768feb3a08c7da3.js +0 -1
  568. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-0a28456fea4ce95a.js +0 -1
  569. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-a79969c5c9aadacd.js +0 -1
  570. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-4bc556c2fc8f3d24.js +0 -1
  571. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-e00752a72c31663f.js +0 -1
  572. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-ef82b871895245ea.js +0 -1
  573. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-2c9bcbd11ddb8661.js +0 -1
  574. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-630b168598513ce8.js +0 -1
  575. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-335f2450e44a0fba.js +0 -1
  576. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-4a191d69b2b6e880.js +0 -1
  577. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-0faebb478be4c85d.js +0 -1
  578. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-2e8fcb72687100df.js +0 -1
  579. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  580. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-4bc556c2fc8f3d24.js +0 -1
  581. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-4bc556c2fc8f3d24.js +0 -1
  582. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-4bc556c2fc8f3d24.js +0 -1
  583. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-4bc556c2fc8f3d24.js +0 -1
  584. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  585. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-4bc556c2fc8f3d24.js +0 -1
  586. package/.next/standalone/.next/static/chunks/app/api/agents/route-4bc556c2fc8f3d24.js +0 -1
  587. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  588. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-4bc556c2fc8f3d24.js +0 -1
  589. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-4bc556c2fc8f3d24.js +0 -1
  590. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-4bc556c2fc8f3d24.js +0 -1
  591. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-4bc556c2fc8f3d24.js +0 -1
  592. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-4bc556c2fc8f3d24.js +0 -1
  593. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-4bc556c2fc8f3d24.js +0 -1
  594. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-4bc556c2fc8f3d24.js +0 -1
  595. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-4bc556c2fc8f3d24.js +0 -1
  596. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-4bc556c2fc8f3d24.js +0 -1
  597. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-4bc556c2fc8f3d24.js +0 -1
  598. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-4bc556c2fc8f3d24.js +0 -1
  599. package/.next/standalone/.next/static/chunks/app/api/comments/route-4bc556c2fc8f3d24.js +0 -1
  600. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-4bc556c2fc8f3d24.js +0 -1
  601. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-4bc556c2fc8f3d24.js +0 -1
  602. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-4bc556c2fc8f3d24.js +0 -1
  603. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-4bc556c2fc8f3d24.js +0 -1
  604. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-4bc556c2fc8f3d24.js +0 -1
  605. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-4bc556c2fc8f3d24.js +0 -1
  606. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-4bc556c2fc8f3d24.js +0 -1
  607. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-4bc556c2fc8f3d24.js +0 -1
  608. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-4bc556c2fc8f3d24.js +0 -1
  609. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-4bc556c2fc8f3d24.js +0 -1
  610. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-4bc556c2fc8f3d24.js +0 -1
  611. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-4bc556c2fc8f3d24.js +0 -1
  612. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  613. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-4bc556c2fc8f3d24.js +0 -1
  614. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-4bc556c2fc8f3d24.js +0 -1
  615. package/.next/standalone/.next/static/chunks/app/api/events/route-4bc556c2fc8f3d24.js +0 -1
  616. package/.next/standalone/.next/static/chunks/app/api/health/route-4bc556c2fc8f3d24.js +0 -1
  617. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-4bc556c2fc8f3d24.js +0 -1
  618. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-4bc556c2fc8f3d24.js +0 -1
  619. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-4bc556c2fc8f3d24.js +0 -1
  620. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-4bc556c2fc8f3d24.js +0 -1
  621. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-4bc556c2fc8f3d24.js +0 -1
  622. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  623. package/.next/standalone/.next/static/chunks/app/api/mcp/route-4bc556c2fc8f3d24.js +0 -1
  624. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-4bc556c2fc8f3d24.js +0 -1
  625. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-4bc556c2fc8f3d24.js +0 -1
  626. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-4bc556c2fc8f3d24.js +0 -1
  627. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-4bc556c2fc8f3d24.js +0 -1
  628. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-4bc556c2fc8f3d24.js +0 -1
  629. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-4bc556c2fc8f3d24.js +0 -1
  630. package/.next/standalone/.next/static/chunks/app/api/notifications/route-4bc556c2fc8f3d24.js +0 -1
  631. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-4bc556c2fc8f3d24.js +0 -1
  632. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-4bc556c2fc8f3d24.js +0 -1
  633. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  634. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-4bc556c2fc8f3d24.js +0 -1
  635. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-4bc556c2fc8f3d24.js +0 -1
  636. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-4bc556c2fc8f3d24.js +0 -1
  637. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-4bc556c2fc8f3d24.js +0 -1
  638. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-4bc556c2fc8f3d24.js +0 -1
  639. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-4bc556c2fc8f3d24.js +0 -1
  640. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-4bc556c2fc8f3d24.js +0 -1
  641. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-4bc556c2fc8f3d24.js +0 -1
  642. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-4bc556c2fc8f3d24.js +0 -1
  643. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-4bc556c2fc8f3d24.js +0 -1
  644. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  645. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-4bc556c2fc8f3d24.js +0 -1
  646. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-4bc556c2fc8f3d24.js +0 -1
  647. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-4bc556c2fc8f3d24.js +0 -1
  648. package/.next/standalone/.next/static/chunks/app/api/projects/route-4bc556c2fc8f3d24.js +0 -1
  649. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-4bc556c2fc8f3d24.js +0 -1
  650. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-4bc556c2fc8f3d24.js +0 -1
  651. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-4bc556c2fc8f3d24.js +0 -1
  652. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-4bc556c2fc8f3d24.js +0 -1
  653. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  654. package/.next/standalone/.next/static/chunks/app/api/search/route-4bc556c2fc8f3d24.js +0 -1
  655. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  656. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-4bc556c2fc8f3d24.js +0 -1
  657. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-4bc556c2fc8f3d24.js +0 -1
  658. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-4bc556c2fc8f3d24.js +0 -1
  659. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-4bc556c2fc8f3d24.js +0 -1
  660. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  661. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-4bc556c2fc8f3d24.js +0 -1
  662. package/.next/standalone/.next/static/chunks/app/layout-9963339572e2e64e.js +0 -1
  663. package/.next/standalone/.next/static/chunks/app/onboarding/page-e9a69a0c537c704f.js +0 -1
  664. package/.next/standalone/.next/static/css/e78b3c856420a09f.css +0 -1
  665. /package/.next/standalone/.next/static/{519aK55QLHaVN7b1TVDkB → v1yRpXkt1wNBkZMTE3tiz}/_ssgManifest.js +0 -0
package/cli/daemon.mjs CHANGED
@@ -12,7 +12,7 @@
12
12
  // NOT done here — the no-op UploadHooks reserve those seams for the derived
13
13
  // observability idea.
14
14
 
15
- import { resolveCredentials } from "./credentials.mjs";
15
+ import { resolveCredentials, loginFilePath } from "./credentials.mjs";
16
16
  import { prompt, writeLoginFile } from "./login.mjs";
17
17
  import {
18
18
  resolvePermissionMode,
@@ -37,14 +37,14 @@ import { WAKE_ACTIONS } from "./prompts.mjs";
37
37
  import { createInterruptReporter } from "./interrupt-reporter.mjs";
38
38
  import { createTurnReporter } from "./turn-reporter.mjs";
39
39
  import { createControlHandler } from "./control-handler.mjs";
40
- import { resolveSigintTimeoutMs } from "./daemon-config.mjs";
40
+ import { resolveSigintTimeoutMs, resolveDaemonCwds } from "./daemon-config.mjs";
41
41
  import {
42
42
  startBackground,
43
43
  stopDaemon,
44
44
  isRunning,
45
45
  readLog,
46
46
  } from "./daemon-lifecycle.mjs";
47
- import { readFileSync } from "node:fs";
47
+ import { readFileSync, existsSync } from "node:fs";
48
48
  import { dirname, join } from "node:path";
49
49
  import { fileURLToPath } from "node:url";
50
50
 
@@ -81,7 +81,8 @@ function defaultLogger() {
81
81
  * fetchImpl?: typeof fetch,
82
82
  * sseListener?: any,
83
83
  * spawner?: any,
84
- * cwd?: string,
84
+ * cwd?: string, Single served path (back-compat); maps to a one-element cwd set.
85
+ * cwds?: Array<string|undefined>, The SET of paths this daemon serves (T3 多路径). Each entry registers one independent connection bound to that cwd; `undefined` ⇒ process cwd. Takes precedence over `cwd`.
85
86
  * hooks?: any,
86
87
  * makeSseListener?: (opts: any) => any,
87
88
  * maxConcurrency?: number,
@@ -102,37 +103,8 @@ export function buildDaemon(creds, deps = {}) {
102
103
  // the layered resolver; falls back to the resolver's default here when not given,
103
104
  // so a daemon built directly (integration tests) still gets a sane value.
104
105
  const sigintTimeoutMs = deps.sigintTimeoutMs ?? resolveSigintTimeoutMs();
105
- // Interrupt reporter (子3): REST POST with the daemon's Bearer key (zero new deps),
106
- // injectable for tests. The waker calls it on an interrupted/crashed exit.
107
- // connectionState holds the connection uuid learned from the SSE handshake;
108
- // declared here so the reporter (which needs it to address the execution row)
109
- // can read it lazily. It is assigned by onConnectionId below.
110
- /** @type {{ connectionUuid: string|null }} */
111
- const connectionState = { connectionUuid: null };
112
- const reportInterrupt =
113
- deps.reportInterrupt ??
114
- createInterruptReporter({
115
- url: creds.url,
116
- apiKey: creds.apiKey,
117
- getConnectionUuid: () => connectionState.connectionUuid,
118
- logger,
119
- fetchImpl: deps.fetchImpl,
120
- });
121
- // Turn-lifecycle reporter (子1 — daemon-session-conversation): REST POST with the
122
- // daemon's Bearer key (zero new deps), injectable for tests. The waker calls it on a
123
- // wake's spawn (→ running) and exit (→ ended) to advance the server-side
124
- // DaemonSessionTurn the notification chokepoint created. Reads the connectionUuid
125
- // lazily from the same box the SSE handshake fills.
126
- const advanceTurn =
127
- deps.advanceTurn ??
128
- createTurnReporter({
129
- url: creds.url,
130
- apiKey: creds.apiKey,
131
- getConnectionUuid: () => connectionState.connectionUuid,
132
- logger,
133
- fetchImpl: deps.fetchImpl,
134
- });
135
-
106
+ // ===== Shared deps (one set per daemon process) =====
107
+ // These are process-wide independent of how many paths (cwds) the daemon serves.
136
108
  const mcpClient =
137
109
  deps.mcpClient ?? new ChorusClient({ url: creds.url, apiKey: creds.apiKey, logger });
138
110
  // Lineage resolution is a plain REST call (Bearer agent key) per notification —
@@ -141,150 +113,215 @@ export function buildDaemon(creds, deps = {}) {
141
113
  deps.lineage ??
142
114
  new LineageResolver({ url: creds.url, apiKey: creds.apiKey, logger, fetchImpl: deps.fetchImpl });
143
115
  const spawner = deps.spawner ?? new ClaudeSpawner({ logger, permissionMode });
116
+ // The WakeQueue serializes per DIRECT idea (keyFor's key). It is shared across all
117
+ // path-connections: serialization-per-idea still holds, and maxConcurrency caps the
118
+ // whole process's in-flight wakes rather than per-cwd — the right global budget.
144
119
  const queue = new WakeQueue({ maxConcurrency: deps.maxConcurrency ?? 4, logger });
145
120
 
146
- // `connectionState` (declared above, next to the reporter) is the mutable box the
147
- // SSE handshake fills with this daemon's `connection_registered` uuid; the upload
148
- // hooks, the reporter, and the control handler all read it lazily so construction
149
- // order doesn't matter. `waker` is assigned just below; the snapshot closure reads
150
- // it lazily so the hooks can predate it.
151
- /** @type {Waker|undefined} */
152
- let waker;
153
-
154
- // Execution-state upload hooks: POST the WakeQueue/waker-derived snapshot to
155
- // the server on each lifecycle transition. `getSnapshot` reads the waker's
156
- // per-task registry (which reuses the already-resolved root-idea lineage).
157
- // Fire-and-forget; failures logged + non-fatal (see upload-hooks.mjs). The
158
- // hooks share the daemon's existing creds + zero new deps (global fetch).
159
- // Transcript upload hooks (子1 — daemon-session-conversation): the waker's
160
- // stream-json consumer (onMessage) and pre-spawn (onSessionStart) feed these,
161
- // which keep only user/assistant text and batch-POST it to /api/daemon/transcript
162
- // for the current turn (resolved server-side by the session business key the waker
163
- // already anchors on). Same zero-dep, fire-and-forget, warn-not-throw contract as
164
- // the execution hooks; no connectionUuid needed (the agent key + sessionId suffice).
165
- // The two hook sets are MERGED into the single object the waker takes:
166
- // onSessionStart/onTranscriptMessage fan out to the transcript hooks,
167
- // onExecutionChange to the execution hooks.
168
- const hooks =
169
- deps.hooks ??
170
- mergeUploadHooks(
171
- createExecutionUploadHooks({
121
+ // ===== Multi-path: the SET of cwds this daemon serves (T3 FR-5) =====
122
+ // Each declared path becomes one INDEPENDENT connection (own SSE self-report + own
123
+ // Waker bound to that cwd + own router/backfill/control). The daemon process's OWN
124
+ // cwd never changes (NFR-3). `undefined` "serve the process default cwd" (single-
125
+ // path / HARD-1 default). `deps.cwds` (a list) takes precedence; `deps.cwd` (a single
126
+ // value, still injected by integration tests) maps to a one-element set; otherwise a
127
+ // single `[undefined]` connection at the process cwd — exactly today's behavior. This
128
+ // is JUST a list of paths; it carries NO path↔project binding (DEC-5: cwd ⟂ project).
129
+ const cwdSet =
130
+ Array.isArray(deps.cwds) && deps.cwds.length > 0
131
+ ? deps.cwds
132
+ : [deps.cwd];
133
+
134
+ /**
135
+ * Build ONE independent path-connection bound to `cwd` (one SSE stream one
136
+ * DaemonConnection row, keyed by that cwd server-side). All per-connection state —
137
+ * its connectionUuid box, reporters, hooks, Waker(cwd), router, backfill, control
138
+ * handler, and SseListener(cwd) lives in this closure so two connections never
139
+ * share a connectionUuid or a dedup set. `index` selects the per-connection injected
140
+ * test dep (sseListener/makeSseListener) when an array was supplied (a single value
141
+ * is reused for connection 0, mirroring the historical single-connection injection).
142
+ * @param {string|undefined} cwd
143
+ * @param {number} index
144
+ */
145
+ function buildConnection(cwd, index) {
146
+ // connectionState holds the connectionUuid learned from THIS stream's SSE handshake;
147
+ // the reporters, hooks, and control handler read it lazily so construction order
148
+ // doesn't matter. Per-connection so each path's wakes report against the right row.
149
+ /** @type {{ connectionUuid: string|null }} */
150
+ const connectionState = { connectionUuid: null };
151
+
152
+ // Interrupt reporter (子3): REST POST with the daemon's Bearer key. Injectable for
153
+ // tests (shared across connections when injected — tests use a single connection).
154
+ const reportInterrupt =
155
+ deps.reportInterrupt ??
156
+ createInterruptReporter({
172
157
  url: creds.url,
173
158
  apiKey: creds.apiKey,
174
159
  getConnectionUuid: () => connectionState.connectionUuid,
175
- getSnapshot: () => waker?.buildExecutionSnapshot() ?? [],
176
160
  logger,
177
161
  fetchImpl: deps.fetchImpl,
178
- }),
179
- createTranscriptUploadHooks({
162
+ });
163
+ // Turn-lifecycle reporter (子1): advances the server-side DaemonSessionTurn on
164
+ // spawn (→ running) and exit (→ ended), reading the connectionUuid lazily.
165
+ const advanceTurn =
166
+ deps.advanceTurn ??
167
+ createTurnReporter({
180
168
  url: creds.url,
181
169
  apiKey: creds.apiKey,
170
+ getConnectionUuid: () => connectionState.connectionUuid,
182
171
  logger,
183
172
  fetchImpl: deps.fetchImpl,
184
- }),
185
- { logger }
186
- );
187
-
188
- // One dedup set shared by the router (live SSE path) and the reconnect
189
- // backfill, so a notification handled live is never re-woken on reconnect.
190
- const seen = new Set();
191
- // cwd: the daemon spawns all wakes in one working directory; the waker uses it
192
- // BOTH to probe the transcript (new-vs-resume) and to spawn, so they never diverge.
193
- waker = new Waker({ creds, lineage, spawner, cwd: deps.cwd ?? process.cwd(), hooks, logger, reportInterrupt, advanceTurn, verbose });
194
- const router = new EventRouter({ mcpClient, waker, queue, wakeActions: WAKE_ACTIONS, seen, logger });
195
-
196
- // Reverse control channel (子3): the control handler verifies a control event
197
- // against this daemon's own connectionUuid + the running child for the target
198
- // entity (q1=a double-check), then interrupts the subprocess. It reads the
199
- // connectionUuid lazily from the same mutable box the SSE handshake fills, so it
200
- // works regardless of construction order.
201
- // Resume re-dispatch (子3): a `command:"resume"` control event re-runs the wake
202
- // for the target entity. It reuses the SAME router/queue path as a normal wake,
203
- // so serialization-per-direct-idea holds and the spawner's on-disk transcript
204
- // probe naturally selects `claude --resume` (the session already exists). The
205
- // synthetic event mirrors the `new_notification` shape the router expects; we
206
- // fetch the real notification detail lazily inside the router via MCP, so a
207
- // minimal `{ action: "resource_resumed", entityType, entityUuid }` is enough to
208
- // re-key and re-spawn. Because resume rides the control channel (not a persisted
209
- // notification), there is no notificationUuid — the router tolerates a synthetic
210
- // resume dispatch via the dedicated entrypoint below.
211
- const redispatchResume = (entityType, entityUuid) => {
212
- router.dispatchResume?.({ entityType, entityUuid });
213
- };
214
- // Origin-only live delivery (子2 daemon-instruction-injection): a `deliver_turn`
215
- // control event means the server pinged THIS connection that a SPECIFIC new pending
216
- // `human_instruction` turn (`turnUuid`) awaits. The control handler forwards that uuid
217
- // to the connection-scoped pending-turns sweep (exposed as `backfill.pendingTurnsOnly`)
218
- // so ONLY that one turn is dispatched never a connection-wide sweep that would also
219
- // run every other still-pending turn. It shares the same `seen` set as reconnect
220
- // backfill (a turn runs at most once). Read lazily so it tolerates the construction
221
- // order (backfill is assigned just after).
222
- const deliverTurn = (turnUuid) => backfill?.pendingTurnsOnly?.(turnUuid);
223
- const onControl = createControlHandler({
224
- waker,
225
- getConnectionUuid: () => connectionState.connectionUuid,
226
- sigintTimeoutMs,
227
- redispatchResume,
228
- deliverTurn,
229
- logger,
230
- });
173
+ });
174
+
175
+ /** @type {Waker|undefined} */
176
+ let waker;
177
+
178
+ // Execution + transcript upload hooks (子1), merged. Bound to THIS connection's
179
+ // connectionState + waker so snapshots attribute to the right connection row.
180
+ const hooks =
181
+ deps.hooks ??
182
+ mergeUploadHooks(
183
+ createExecutionUploadHooks({
184
+ url: creds.url,
185
+ apiKey: creds.apiKey,
186
+ getConnectionUuid: () => connectionState.connectionUuid,
187
+ getSnapshot: () => waker?.buildExecutionSnapshot() ?? [],
188
+ logger,
189
+ fetchImpl: deps.fetchImpl,
190
+ }),
191
+ createTranscriptUploadHooks({
192
+ url: creds.url,
193
+ apiKey: creds.apiKey,
194
+ logger,
195
+ fetchImpl: deps.fetchImpl,
196
+ }),
197
+ { logger }
198
+ );
199
+
200
+ // One dedup set per connection, shared by its router (live SSE) and its reconnect
201
+ // backfill, so a notification handled live is never re-woken on reconnect.
202
+ const seen = new Set();
203
+ // The Waker is bound to THIS connection's cwd: it uses cwd BOTH to probe the
204
+ // transcript (new-vs-resume) and to spawn, so they never diverge (Module Contract
205
+ // 1 — resolveCwd is the single source). `cwd` is `undefined` for the single-path /
206
+ // old-daemon default, which the Waker degrades to process.cwd() (HARD-1).
207
+ waker = new Waker({ creds, lineage, spawner, cwd, hooks, logger, reportInterrupt, advanceTurn, verbose });
208
+ // The router reads THIS connection's own uuid lazily (same source the control handler
209
+ // uses) to suppress a DIRECTED (pinned) wake stamped for a different connection
210
+ // (fix-pinned-wake-directed-delivery, T2). Null until the SSE handshake assigns it — a
211
+ // targeted wake arriving in that window is treated as "not mine" → suppressed (delivery
212
+ // covered by the deliver_turn ping to the actual target + the reconnect pending backfill).
213
+ const router = new EventRouter({
214
+ mcpClient,
215
+ waker,
216
+ queue,
217
+ wakeActions: WAKE_ACTIONS,
218
+ seen,
219
+ getConnectionUuid: () => connectionState.connectionUuid,
220
+ logger,
221
+ });
231
222
 
232
- // Reconnect backfill re-dispatches notifications missed during a gap, through
233
- // the SAME router/queue (so serialization holds) and the SAME seen set (so
234
- // already-handled notifications are skipped). The router marks seen at
235
- // dispatch; backfill's own pre-check is a cheap early-out.
236
- // `deliverTurn` (defined above) closes over `backfill` but only invokes it lazily,
237
- // so a `const` initialized here is safe despite the earlier lexical reference.
238
- const backfill = createBackfill({
239
- mcpClient,
240
- dispatch: (event) => router.dispatch(event),
241
- seen,
242
- logger,
243
- // 子1 — pending-turn backfill: re-derive unstarted turns from the turn table (NOT
244
- // notifications) for this connection's origin-pinned sessions, so a lost delivery
245
- // ping never loses an instruction. Shares the same router (dispatchPendingTurn) +
246
- // seen set so a turn handled live (or by an earlier backfill) is not re-run. Reads
247
- // the connectionUuid lazily from the SSE-handshake box.
248
- url: creds.url,
249
- apiKey: creds.apiKey,
250
- getConnectionUuid: () => connectionState.connectionUuid,
251
- dispatchPendingTurn: (turn) => router.dispatchPendingTurn?.(turn),
252
- fetchImpl: deps.fetchImpl,
253
- });
223
+ // Reverse control channel (子3) + resume re-dispatch + origin-only deliver_turn
224
+ // all scoped to THIS connection's uuid/router/backfill (see the original wiring
225
+ // comments retained on the shared helpers). The control handler verifies a control
226
+ // event against this connection's own connectionUuid before acting.
227
+ const redispatchResume = (entityType, entityUuid) => {
228
+ router.dispatchResume?.({ entityType, entityUuid });
229
+ };
230
+ const deliverTurn = (turnUuid) => backfill?.pendingTurnsOnly?.(turnUuid);
231
+ const onControl = createControlHandler({
232
+ waker,
233
+ getConnectionUuid: () => connectionState.connectionUuid,
234
+ sigintTimeoutMs,
235
+ redispatchResume,
236
+ deliverTurn,
237
+ logger,
238
+ });
254
239
 
255
- const sseListener =
256
- deps.sseListener ??
257
- (deps.makeSseListener ?? ((o) => new SseListener(o)))({
240
+ // Reconnect + pending-turn backfill, pinned to THIS connection's sessions (the
241
+ // server scopes getPendingTurnsForConnection by originConnectionUuid — i.e. the
242
+ // cwd this connection serves — so a multi-path daemon's backfill never re-runs
243
+ // another cwd's turns).
244
+ const backfill = createBackfill({
245
+ mcpClient,
246
+ dispatch: (event) => router.dispatch(event),
247
+ seen,
248
+ logger,
258
249
  url: creds.url,
259
250
  apiKey: creds.apiKey,
260
- onEvent: (event) => router.dispatch(event),
261
- // Capture the connectionUuid the server reports for this stream so the
262
- // execution-state upload hooks can attribute snapshots to it.
263
- onConnectionId: (connectionUuid) => {
264
- connectionState.connectionUuid = connectionUuid;
265
- logger.info(`[Chorus] registered as connection ${connectionUuid}`);
266
- },
267
- // Reverse control channel: a `type:"control"` event is forked here, NEVER to
268
- // onEvent/router/queue — so it can never spawn a wake (子3).
269
- onControl,
270
- onReconnect: backfill,
271
- logger,
251
+ getConnectionUuid: () => connectionState.connectionUuid,
252
+ dispatchPendingTurn: (turn) => router.dispatchPendingTurn?.(turn),
253
+ fetchImpl: deps.fetchImpl,
272
254
  });
273
255
 
256
+ // Per-connection SSE listener, self-reporting THIS connection's cwd so the server
257
+ // registers it as a distinct (agent, clientType, host, cwd) row. Test injection:
258
+ // - `deps.sseListener` is a CONCRETE instance — there is only one, so it stands in
259
+ // for connection 0 only (a single-path daemon, the historical injection shape).
260
+ // - `deps.makeSseListener` is a FACTORY — it is invoked PER connection (so a
261
+ // multi-path test gets one mock listener per cwd). An array form also works:
262
+ // one factory/instance per connection by index.
263
+ const injectedListener = Array.isArray(deps.sseListener)
264
+ ? deps.sseListener[index]
265
+ : index === 0
266
+ ? deps.sseListener
267
+ : undefined;
268
+ const makeSse =
269
+ (Array.isArray(deps.makeSseListener) ? deps.makeSseListener[index] : deps.makeSseListener) ??
270
+ ((o) => new SseListener(o));
271
+ const sseListener =
272
+ injectedListener ??
273
+ makeSse({
274
+ url: creds.url,
275
+ apiKey: creds.apiKey,
276
+ // The working directory THIS connection serves (T3). `undefined` ⇒ the listener
277
+ // reports its process cwd (single-path / HARD-1). It is just the served path.
278
+ cwd,
279
+ onEvent: (event) => router.dispatch(event),
280
+ onConnectionId: (connectionUuid) => {
281
+ connectionState.connectionUuid = connectionUuid;
282
+ logger.info(
283
+ `[Chorus] registered as connection ${connectionUuid}` +
284
+ (cwd ? ` (cwd=${cwd})` : "")
285
+ );
286
+ },
287
+ onControl,
288
+ onReconnect: backfill,
289
+ logger,
290
+ });
291
+
292
+ return { cwd, connectionState, waker, router, backfill, sseListener, hooks };
293
+ }
294
+
295
+ // Build one connection per declared cwd. The order is the declaration order; the
296
+ // FIRST connection's pieces are aliased onto the returned object for backward
297
+ // compatibility (existing tests/inspection read daemon.waker / .router / .sseListener).
298
+ const connections = cwdSet.map((cwd, i) => buildConnection(cwd, i));
299
+ const primary = connections[0];
300
+
274
301
  return {
275
302
  mcpClient,
276
303
  lineage,
277
304
  spawner,
278
305
  queue,
279
- waker,
280
- router,
281
- sseListener,
306
+ // Back-compat single-connection aliases (the common single-path case). The full
307
+ // set is exposed as `connections` for multi-path inspection/tests.
308
+ waker: primary.waker,
309
+ router: primary.router,
310
+ sseListener: primary.sseListener,
311
+ connections,
282
312
  async start() {
283
- await hooks.onConnect?.({ host: creds.url });
284
- await sseListener.connect();
313
+ // Connect every path-connection. Each fires its own onConnect hook + SSE connect;
314
+ // the daemon process cwd is untouched (NFR-3).
315
+ for (const c of connections) {
316
+ await c.hooks.onConnect?.({ host: creds.url });
317
+ await c.sseListener.connect();
318
+ }
285
319
  },
286
320
  async stop() {
287
- sseListener.disconnect?.();
321
+ for (const c of connections) {
322
+ c.sseListener.disconnect?.();
323
+ }
324
+ // The MCP client is process-wide (shared) — disconnect it once.
288
325
  await mcpClient.disconnect?.();
289
326
  },
290
327
  };
@@ -358,6 +395,13 @@ export async function runDaemon(flags = {}, deps = {}) {
358
395
  // --sigint-timeout flag > CHORUS_DAEMON_SIGINT_TIMEOUT env > ~/.chorus/daemon.json > 10000.
359
396
  const sigintTimeoutMs = resolveSigintTimeoutMs({ sigintTimeout: flags.sigintTimeout }, { env });
360
397
 
398
+ // The SET of working directories this daemon serves (T3 — 单 daemon 多路径引擎).
399
+ // Layered: --cwd flag(s) > CHORUS_DAEMON_CWDS env > ~/.chorus/daemon.json `cwds`
400
+ // > [undefined] (single connection at the process cwd). A single `[undefined]`
401
+ // is exactly today's single-path behavior. JUST a list of paths — no project
402
+ // binding (DEC-5: cwd ⟂ project). The daemon process's own cwd never changes.
403
+ const cwds = resolveDaemonCwds({ cwd: flags.cwd }, { env });
404
+
361
405
  // Foreground preflight: resolve/complete credentials + resolve the permission
362
406
  // posture (confirming yolo on a TTY). Reuses the same pfDeps bundle the detach
363
407
  // path uses. Returns a numeric exit code on failure, or
@@ -371,6 +415,12 @@ export async function runDaemon(flags = {}, deps = {}) {
371
415
  // resolved path (or absence) is shown in the banner below.
372
416
  const claudePath = findClaude();
373
417
 
418
+ // The daemon.json the layered config readers (credentials, sigint timeout, cwds)
419
+ // consult. Surfacing its absolute path + presence in the banner makes it obvious
420
+ // which file to edit for `cwds` / `sigintTimeoutMs` and whether one exists at all.
421
+ const configPath = loginFilePath();
422
+ const configExists = existsSync(configPath);
423
+
374
424
  // Boxed startup banner — one screen replacing the scattered [Chorus] lines.
375
425
  log(
376
426
  formatBanner(
@@ -384,6 +434,8 @@ export async function runDaemon(flags = {}, deps = {}) {
384
434
  agentType,
385
435
  claudePath,
386
436
  connection: "connecting…",
437
+ configPath,
438
+ configExists,
387
439
  },
388
440
  { isTTY: isTTY && Boolean(process.stdout.isTTY) }
389
441
  )
@@ -394,12 +446,22 @@ export async function runDaemon(flags = {}, deps = {}) {
394
446
  errLog(`[Chorus] ${yoloWarningLine()}`);
395
447
  }
396
448
 
449
+ // Surface the served paths so an operator sees a multi-path daemon at a glance.
450
+ // A single `[undefined]` (the default) prints the process cwd it falls back to.
451
+ const servedPaths = cwds.map((c) => c ?? process.cwd());
452
+ if (servedPaths.length > 1) {
453
+ log(`[Chorus] serving ${servedPaths.length} paths: ${servedPaths.join(", ")}`);
454
+ } else {
455
+ log(`[Chorus] serving path: ${servedPaths[0]}`);
456
+ }
457
+
397
458
  const daemon = build(creds, {
398
459
  logger: { info: log, warn: errLog, error: errLog },
399
460
  permissionMode,
400
461
  agentType,
401
462
  verbose,
402
463
  sigintTimeoutMs,
464
+ cwds,
403
465
  });
404
466
 
405
467
  // Graceful shutdown on signals.