@chorus-aidlc/chorus 0.11.1 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +405 -391
  3. package/.next/standalone/.next/app-path-routes-manifest.json +33 -31
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +27 -27
  6. package/.next/standalone/.next/react-loadable-manifest.json +3 -3
  7. package/.next/standalone/.next/routes-manifest.json +8 -0
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  45. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  49. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  50. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  53. package/.next/standalone/.next/server/app/admin/companies/new.rsc +3 -3
  54. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies.rsc +3 -3
  57. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/admin.html +1 -1
  59. package/.next/standalone/.next/server/app/admin.rsc +3 -3
  60. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js +1 -1
  61. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js.nft.json +1 -1
  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.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/companies/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/login/route.js +1 -1
  67. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/admin/session/route.js +1 -1
  69. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/agent-connections/route.js +1 -1
  71. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  74. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  77. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  80. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js +1 -1
  83. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/api-keys/route.js +1 -1
  86. package/.next/standalone/.next/server/app/api/api-keys/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/auth/callback/route.js +1 -1
  89. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/auth/check-default/route.js +1 -1
  91. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/auth/default-login/route.js +1 -1
  94. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/auth/identify/route.js +1 -1
  96. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/auth/logout/route.js +1 -1
  98. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/auth/refresh/route.js +1 -1
  101. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/auth/session/route.js +1 -1
  103. package/.next/standalone/.next/server/app/api/auth/session/route.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/auth/sync-token/route.js +1 -1
  106. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  108. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -1
  111. package/.next/standalone/.next/server/app/api/daemon/control/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -1
  114. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -1
  117. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  120. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
  123. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  126. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -0
  138. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -0
  139. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -0
  140. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  141. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  144. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  147. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  150. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/events/notifications/route.js +6 -4
  156. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/events/route.js +7 -5
  159. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  163. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  166. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  169. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  172. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  175. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  178. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/keepalive/route.js +1 -0
  181. package/.next/standalone/.next/server/app/api/keepalive/route.js.nft.json +1 -0
  182. package/.next/standalone/.next/server/app/api/keepalive/route_client-reference-manifest.js +1 -0
  183. package/.next/standalone/.next/server/app/api/mcp/route.js +5 -5
  184. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  187. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  190. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  193. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  196. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  199. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  202. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  205. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  208. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
  211. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js.nft.json +1 -1
  212. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
  214. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  217. package/.next/standalone/.next/server/app/api/project-groups/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  220. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  223. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  224. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  226. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  229. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  232. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  235. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  236. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  238. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js.nft.json +1 -1
  239. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  241. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  244. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  246. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  247. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js.nft.json +1 -1
  248. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  250. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js.nft.json +1 -1
  251. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  253. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  254. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  256. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  257. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  259. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  260. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  261. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  262. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js.nft.json +1 -1
  263. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  264. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  265. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js.nft.json +1 -1
  266. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  267. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  268. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js.nft.json +1 -1
  269. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  271. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  274. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/api/search/route.js +1 -1
  277. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  280. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  283. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  284. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  285. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  286. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  289. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  290. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  291. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  292. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  294. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  295. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  296. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  298. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  300. package/.next/standalone/.next/server/app/index.html +1 -1
  301. package/.next/standalone/.next/server/app/index.rsc +4 -4
  302. package/.next/standalone/.next/server/app/login/admin/page.js +2 -2
  303. package/.next/standalone/.next/server/app/login/admin/page.js.nft.json +1 -1
  304. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  305. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  306. package/.next/standalone/.next/server/app/login/admin.rsc +3 -3
  307. package/.next/standalone/.next/server/app/login/callback/page.js +2 -2
  308. package/.next/standalone/.next/server/app/login/callback/page.js.nft.json +1 -1
  309. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  310. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  311. package/.next/standalone/.next/server/app/login/callback.rsc +4 -4
  312. package/.next/standalone/.next/server/app/login/page.js +2 -2
  313. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  314. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  315. package/.next/standalone/.next/server/app/login/pick-workspace/page.js +1 -1
  316. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  317. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  318. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +4 -4
  319. package/.next/standalone/.next/server/app/login/silent-refresh/page.js +1 -1
  320. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  321. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  322. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +4 -4
  323. package/.next/standalone/.next/server/app/login.html +1 -1
  324. package/.next/standalone/.next/server/app/login.rsc +4 -4
  325. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  326. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  327. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  328. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  329. package/.next/standalone/.next/server/app/onboarding.rsc +4 -4
  330. package/.next/standalone/.next/server/app/page.js +2 -2
  331. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  332. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  333. package/.next/standalone/.next/server/app/projects.html +1 -1
  334. package/.next/standalone/.next/server/app/projects.rsc +5 -5
  335. package/.next/standalone/.next/server/app/settings.html +1 -1
  336. package/.next/standalone/.next/server/app/settings.rsc +5 -5
  337. package/.next/standalone/.next/server/app-paths-manifest.json +33 -31
  338. package/.next/standalone/.next/server/chunks/{5201.js → 1343.js} +2 -2
  339. package/.next/standalone/.next/server/chunks/1463.js +1 -0
  340. package/.next/standalone/.next/server/chunks/1596.js +2 -2
  341. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  342. package/.next/standalone/.next/server/chunks/2622.js +1 -0
  343. package/.next/standalone/.next/server/chunks/2779.js +31 -0
  344. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  345. package/.next/standalone/.next/server/chunks/3219.js +1 -1
  346. package/.next/standalone/.next/server/chunks/3419.js +1 -1
  347. package/.next/standalone/.next/server/chunks/4292.js +1 -0
  348. package/.next/standalone/.next/server/chunks/4872.js +1 -0
  349. package/.next/standalone/.next/server/chunks/5300.js +1 -1
  350. package/.next/standalone/.next/server/chunks/5538.js +1 -0
  351. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  352. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  353. package/.next/standalone/.next/server/chunks/7063.js +2 -2
  354. package/.next/standalone/.next/server/chunks/7064.js +1 -0
  355. package/.next/standalone/.next/server/chunks/7160.js +1 -0
  356. package/.next/standalone/.next/server/chunks/7364.js +1 -0
  357. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  358. package/.next/standalone/.next/server/chunks/7427.js +1 -0
  359. package/.next/standalone/.next/server/chunks/7515.js +1 -0
  360. package/.next/standalone/.next/server/chunks/7578.js +2 -2
  361. package/.next/standalone/.next/server/chunks/{4711.js → 796.js} +6 -6
  362. package/.next/standalone/.next/server/chunks/8732.js +1 -0
  363. package/.next/standalone/.next/server/chunks/9161.js +1 -0
  364. package/.next/standalone/.next/server/chunks/920.js +1 -1
  365. package/.next/standalone/.next/server/chunks/9273.js +1 -0
  366. package/.next/standalone/.next/server/chunks/937.js +3 -3
  367. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  368. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  369. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  370. package/.next/standalone/.next/server/pages/404.html +1 -1
  371. package/.next/standalone/.next/server/pages/500.html +1 -1
  372. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  373. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  374. package/.next/standalone/.next/server/src/middleware.js +1 -1
  375. package/.next/standalone/.next/static/GmBblfxcDziUENBiEap4B/_buildManifest.js +1 -0
  376. package/.next/standalone/.next/static/chunks/10344-2e9a9d767e2e8ed1.js +1 -0
  377. package/.next/standalone/.next/static/chunks/16467-dd4f928e725306c1.js +1 -0
  378. package/.next/standalone/.next/static/chunks/20081-a2bf5c9f24d5d589.js +1 -0
  379. package/.next/standalone/.next/static/chunks/2280-f48bf99ea9d88ece.js +1 -0
  380. package/.next/standalone/.next/static/chunks/26394-4af487a51dd62832.js +1 -0
  381. package/.next/standalone/.next/static/chunks/27378-9328bcc96ae9872e.js +1 -0
  382. package/.next/standalone/.next/static/chunks/{33187.13c12f5c0821ac57.js → 33187.1328c15b9dab78a8.js} +1 -1
  383. package/.next/standalone/.next/static/chunks/37784-95dee37276b1067b.js +1 -0
  384. package/.next/standalone/.next/static/chunks/46983-8bf90f1ffeb55957.js +1 -0
  385. package/.next/standalone/.next/static/chunks/46999-f53da8f53fe1b8a9.js +1 -0
  386. package/.next/standalone/.next/static/chunks/4860.e3d0dd79a4d37626.js +1 -0
  387. package/.next/standalone/.next/static/chunks/54637-71d281d649ea3a17.js +1 -0
  388. package/.next/standalone/.next/static/chunks/64187-cff8a4b5e96fa8f9.js +10 -0
  389. package/.next/standalone/.next/static/chunks/78917-aa5bbff9248799a4.js +1 -0
  390. package/.next/standalone/.next/static/chunks/80904-973284d1fe916c38.js +1 -0
  391. package/.next/standalone/.next/static/chunks/85573-fb4d2cbd67612d47.js +1 -0
  392. package/.next/standalone/.next/static/chunks/88561-0b14e1564419f215.js +1 -0
  393. package/.next/standalone/.next/static/chunks/89035-faf398b7bbc7d2ed.js +1 -0
  394. package/.next/standalone/.next/static/chunks/89644-2fee0373b890e8e3.js +1 -0
  395. package/.next/standalone/.next/static/chunks/{93346-5489d90bc2d57190.js → 93346-b3e1ebe948fc623f.js} +1 -1
  396. package/.next/standalone/.next/static/chunks/{97784-7b90a17294840e32.js → 97784-42081b75f8cc6da8.js} +1 -1
  397. package/.next/standalone/.next/static/chunks/97868-55f18a05fe483d85.js +1 -0
  398. package/.next/standalone/.next/static/chunks/99373.cc6319fa4cf36081.js +1 -0
  399. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-b3a497ba5eb08036.js +1 -0
  400. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-2944c6c9bc48a7d6.js +1 -0
  401. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-f1b0daea9f947caf.js +1 -0
  402. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-d786f0c18a9c4f06.js +1 -0
  403. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-c68f1eda3779b448.js +1 -0
  404. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-e0935445535c28cb.js +1 -0
  405. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-f824632ff61a9fa7.js +1 -0
  406. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-dbcb6e50fc4816c6.js +1 -0
  407. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-1295bc505e727383.js +1 -0
  408. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-ceeec49af0396432.js +1 -0
  409. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-1286afe43c086d6a.js +1 -0
  410. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-583e58d4d689d38b.js → page-fec019d974ef8d4e.js} +1 -1
  411. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-0fb1d51016f6bd56.js +1 -0
  412. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-f1b0daea9f947caf.js +1 -0
  413. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-f1b0daea9f947caf.js +1 -0
  414. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-f1b0daea9f947caf.js +1 -0
  415. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-f1b0daea9f947caf.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-f1b0daea9f947caf.js +1 -0
  417. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-f1b0daea9f947caf.js +1 -0
  418. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-f1b0daea9f947caf.js +1 -0
  419. package/.next/standalone/.next/static/chunks/app/api/agents/route-f1b0daea9f947caf.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-f1b0daea9f947caf.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-f1b0daea9f947caf.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-f1b0daea9f947caf.js +1 -0
  423. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-f1b0daea9f947caf.js +1 -0
  424. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-f1b0daea9f947caf.js +1 -0
  425. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-f1b0daea9f947caf.js +1 -0
  426. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-f1b0daea9f947caf.js +1 -0
  427. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-f1b0daea9f947caf.js +1 -0
  428. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-f1b0daea9f947caf.js +1 -0
  429. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-f1b0daea9f947caf.js +1 -0
  430. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-f1b0daea9f947caf.js +1 -0
  431. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-f1b0daea9f947caf.js +1 -0
  432. package/.next/standalone/.next/static/chunks/app/api/comments/route-f1b0daea9f947caf.js +1 -0
  433. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-f1b0daea9f947caf.js +1 -0
  434. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-f1b0daea9f947caf.js +1 -0
  435. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-f1b0daea9f947caf.js +1 -0
  436. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-f1b0daea9f947caf.js +1 -0
  437. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-f1b0daea9f947caf.js +1 -0
  438. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-f1b0daea9f947caf.js +1 -0
  439. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-f1b0daea9f947caf.js +1 -0
  440. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-f1b0daea9f947caf.js +1 -0
  441. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-f1b0daea9f947caf.js +1 -0
  442. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-f1b0daea9f947caf.js +1 -0
  443. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-f1b0daea9f947caf.js +1 -0
  444. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-f1b0daea9f947caf.js +1 -0
  445. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-f1b0daea9f947caf.js +1 -0
  446. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-f1b0daea9f947caf.js +1 -0
  447. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-f1b0daea9f947caf.js +1 -0
  448. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-f1b0daea9f947caf.js +1 -0
  449. package/.next/standalone/.next/static/chunks/app/api/events/route-f1b0daea9f947caf.js +1 -0
  450. package/.next/standalone/.next/static/chunks/app/api/health/route-f1b0daea9f947caf.js +1 -0
  451. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-f1b0daea9f947caf.js +1 -0
  452. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-f1b0daea9f947caf.js +1 -0
  453. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-f1b0daea9f947caf.js +1 -0
  454. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-f1b0daea9f947caf.js +1 -0
  455. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-f1b0daea9f947caf.js +1 -0
  456. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-f1b0daea9f947caf.js +1 -0
  457. package/.next/standalone/.next/static/chunks/app/api/keepalive/route-f1b0daea9f947caf.js +1 -0
  458. package/.next/standalone/.next/static/chunks/app/api/mcp/route-f1b0daea9f947caf.js +1 -0
  459. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-f1b0daea9f947caf.js +1 -0
  460. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-f1b0daea9f947caf.js +1 -0
  461. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-f1b0daea9f947caf.js +1 -0
  462. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-f1b0daea9f947caf.js +1 -0
  463. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-f1b0daea9f947caf.js +1 -0
  464. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-f1b0daea9f947caf.js +1 -0
  465. package/.next/standalone/.next/static/chunks/app/api/notifications/route-f1b0daea9f947caf.js +1 -0
  466. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-f1b0daea9f947caf.js +1 -0
  467. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-f1b0daea9f947caf.js +1 -0
  468. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-f1b0daea9f947caf.js +1 -0
  469. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-f1b0daea9f947caf.js +1 -0
  470. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-f1b0daea9f947caf.js +1 -0
  471. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-f1b0daea9f947caf.js +1 -0
  472. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-f1b0daea9f947caf.js +1 -0
  473. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-f1b0daea9f947caf.js +1 -0
  474. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-f1b0daea9f947caf.js +1 -0
  475. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-f1b0daea9f947caf.js +1 -0
  476. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-f1b0daea9f947caf.js +1 -0
  477. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-f1b0daea9f947caf.js +1 -0
  478. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-f1b0daea9f947caf.js +1 -0
  479. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-f1b0daea9f947caf.js +1 -0
  480. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-f1b0daea9f947caf.js +1 -0
  481. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-f1b0daea9f947caf.js +1 -0
  482. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-f1b0daea9f947caf.js +1 -0
  483. package/.next/standalone/.next/static/chunks/app/api/projects/route-f1b0daea9f947caf.js +1 -0
  484. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-f1b0daea9f947caf.js +1 -0
  485. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-f1b0daea9f947caf.js +1 -0
  486. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-f1b0daea9f947caf.js +1 -0
  487. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-f1b0daea9f947caf.js +1 -0
  488. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-f1b0daea9f947caf.js +1 -0
  489. package/.next/standalone/.next/static/chunks/app/api/search/route-f1b0daea9f947caf.js +1 -0
  490. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-f1b0daea9f947caf.js +1 -0
  491. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-f1b0daea9f947caf.js +1 -0
  492. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-f1b0daea9f947caf.js +1 -0
  493. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-f1b0daea9f947caf.js +1 -0
  494. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-f1b0daea9f947caf.js +1 -0
  495. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-f1b0daea9f947caf.js +1 -0
  496. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-f1b0daea9f947caf.js +1 -0
  497. package/.next/standalone/.next/static/chunks/app/layout-e3a49e06950a057f.js +1 -0
  498. package/.next/standalone/.next/static/chunks/app/login/callback/{page-0edd93f50cb4f6ea.js → page-6cad93f5c610b047.js} +1 -1
  499. package/.next/standalone/.next/static/chunks/app/login/page-d2513f477211dd6f.js +1 -0
  500. package/.next/standalone/.next/static/chunks/app/login/pick-workspace/{page-e0444ad8b50121f5.js → page-597e0f3377f18d29.js} +1 -1
  501. package/.next/standalone/.next/static/chunks/app/login/silent-refresh/{page-a9960ea858db6752.js → page-a26d1af61578c96e.js} +1 -1
  502. package/.next/standalone/.next/static/chunks/app/onboarding/page-2936274fb252329e.js +1 -0
  503. package/.next/standalone/.next/static/chunks/app/page-075afd218994d377.js +1 -0
  504. package/.next/standalone/.next/static/chunks/{webpack-039590181c63871d.js → webpack-ed3555ea61243391.js} +1 -1
  505. package/.next/standalone/.next/static/css/6e8fd46b062fd4fc.css +1 -0
  506. package/.next/standalone/package.json +1 -1
  507. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +4 -0
  508. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +4 -0
  509. package/README.md +49 -15
  510. package/README.zh.md +49 -15
  511. package/chorus.mjs +30 -14
  512. package/cli/client-args.mjs +18 -2
  513. package/cli/codex-session-map.mjs +117 -0
  514. package/cli/codex-spawner.mjs +312 -0
  515. package/cli/daemon-agent.mjs +32 -6
  516. package/cli/daemon-banner.mjs +54 -6
  517. package/cli/daemon-config.mjs +118 -0
  518. package/cli/daemon.mjs +348 -167
  519. package/cli/event-router.mjs +273 -12
  520. package/cli/login.mjs +77 -34
  521. package/cli/server-signal-handlers.mjs +41 -0
  522. package/cli/spawner-select.mjs +30 -0
  523. package/cli/sse-listener.mjs +56 -6
  524. package/cli/upload-hooks.mjs +73 -8
  525. package/cli/waker.mjs +36 -8
  526. package/package.json +1 -1
  527. package/prisma/migrations/20260622115159_add_daemon_connection_cwd/migration.sql +9 -0
  528. package/prisma/migrations/20260623020208_task_pinned_target_instance/migration.sql +3 -0
  529. package/prisma/migrations/20260624142248_add_agent_instance/migration.sql +31 -0
  530. package/prisma/migrations/20260624165025_drop_task_target_host_cwd/migration.sql +10 -0
  531. package/prisma/schema.prisma +69 -3
  532. package/.next/standalone/.next/server/chunks/1064.js +0 -1
  533. package/.next/standalone/.next/server/chunks/2213.js +0 -1
  534. package/.next/standalone/.next/server/chunks/3371.js +0 -1
  535. package/.next/standalone/.next/server/chunks/369.js +0 -1
  536. package/.next/standalone/.next/server/chunks/4958.js +0 -1
  537. package/.next/standalone/.next/server/chunks/5039.js +0 -1
  538. package/.next/standalone/.next/server/chunks/5631.js +0 -1
  539. package/.next/standalone/.next/server/chunks/6461.js +0 -1
  540. package/.next/standalone/.next/server/chunks/6712.js +0 -1
  541. package/.next/standalone/.next/server/chunks/7867.js +0 -1
  542. package/.next/standalone/.next/server/chunks/7897.js +0 -1
  543. package/.next/standalone/.next/server/chunks/8012.js +0 -1
  544. package/.next/standalone/.next/server/chunks/8245.js +0 -31
  545. package/.next/standalone/.next/server/chunks/9629.js +0 -1
  546. package/.next/standalone/.next/server/chunks/9725.js +0 -1
  547. package/.next/standalone/.next/static/GQvpOux3M9CaxkMjL9GAI/_buildManifest.js +0 -1
  548. package/.next/standalone/.next/static/chunks/1217-323cc20b73ebfde9.js +0 -1
  549. package/.next/standalone/.next/static/chunks/16984-8ab5580b8e63a200.js +0 -1
  550. package/.next/standalone/.next/static/chunks/1879-7a8b283283218df2.js +0 -1
  551. package/.next/standalone/.next/static/chunks/19276-50b367d7b93d5f34.js +0 -1
  552. package/.next/standalone/.next/static/chunks/23466-e1176a6d814f4897.js +0 -1
  553. package/.next/standalone/.next/static/chunks/38040-a8687f86dd8e9d67.js +0 -1
  554. package/.next/standalone/.next/static/chunks/4860.8bdb37c964f92e48.js +0 -1
  555. package/.next/standalone/.next/static/chunks/59296-783831c43aa0162e.js +0 -1
  556. package/.next/standalone/.next/static/chunks/60648-36ccbee4ce232d52.js +0 -1
  557. package/.next/standalone/.next/static/chunks/60694-68232120903209df.js +0 -1
  558. package/.next/standalone/.next/static/chunks/64648-ece4e2a59672cf63.js +0 -1
  559. package/.next/standalone/.next/static/chunks/66205-8d7eae6a0f0a032d.js +0 -1
  560. package/.next/standalone/.next/static/chunks/66969-12f0b22c51f5a410.js +0 -1
  561. package/.next/standalone/.next/static/chunks/70536-b8bf71098ae11f07.js +0 -1
  562. package/.next/standalone/.next/static/chunks/76803-7ac4024b2ae89843.js +0 -1
  563. package/.next/standalone/.next/static/chunks/78389-b32edc6bd5c570a9.js +0 -1
  564. package/.next/standalone/.next/static/chunks/78584-eb2fa8cf2f266329.js +0 -1
  565. package/.next/standalone/.next/static/chunks/78917-150ed14a99844aab.js +0 -1
  566. package/.next/standalone/.next/static/chunks/84541-1f4c2a40f7722667.js +0 -10
  567. package/.next/standalone/.next/static/chunks/8574-b9739eb8d054c793.js +0 -1
  568. package/.next/standalone/.next/static/chunks/99373.12370329b9ab6beb.js +0 -1
  569. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-0a28456fea4ce95a.js +0 -1
  570. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-a79969c5c9aadacd.js +0 -1
  571. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-4bc556c2fc8f3d24.js +0 -1
  572. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-a28f0eaa6f4ac94a.js +0 -1
  573. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-ef82b871895245ea.js +0 -1
  574. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-2c9bcbd11ddb8661.js +0 -1
  575. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-630b168598513ce8.js +0 -1
  576. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-99639479cc98965f.js +0 -1
  577. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-335f2450e44a0fba.js +0 -1
  578. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-4a191d69b2b6e880.js +0 -1
  579. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-0faebb478be4c85d.js +0 -1
  580. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-2e8fcb72687100df.js +0 -1
  581. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  582. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-4bc556c2fc8f3d24.js +0 -1
  583. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-4bc556c2fc8f3d24.js +0 -1
  584. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-4bc556c2fc8f3d24.js +0 -1
  585. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-4bc556c2fc8f3d24.js +0 -1
  586. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  587. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-4bc556c2fc8f3d24.js +0 -1
  588. package/.next/standalone/.next/static/chunks/app/api/agents/route-4bc556c2fc8f3d24.js +0 -1
  589. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  590. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-4bc556c2fc8f3d24.js +0 -1
  591. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-4bc556c2fc8f3d24.js +0 -1
  592. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-4bc556c2fc8f3d24.js +0 -1
  593. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-4bc556c2fc8f3d24.js +0 -1
  594. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-4bc556c2fc8f3d24.js +0 -1
  595. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-4bc556c2fc8f3d24.js +0 -1
  596. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-4bc556c2fc8f3d24.js +0 -1
  597. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-4bc556c2fc8f3d24.js +0 -1
  598. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-4bc556c2fc8f3d24.js +0 -1
  599. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-4bc556c2fc8f3d24.js +0 -1
  600. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-4bc556c2fc8f3d24.js +0 -1
  601. package/.next/standalone/.next/static/chunks/app/api/comments/route-4bc556c2fc8f3d24.js +0 -1
  602. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-4bc556c2fc8f3d24.js +0 -1
  603. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-4bc556c2fc8f3d24.js +0 -1
  604. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-4bc556c2fc8f3d24.js +0 -1
  605. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-4bc556c2fc8f3d24.js +0 -1
  606. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-4bc556c2fc8f3d24.js +0 -1
  607. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-4bc556c2fc8f3d24.js +0 -1
  608. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-4bc556c2fc8f3d24.js +0 -1
  609. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-4bc556c2fc8f3d24.js +0 -1
  610. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-4bc556c2fc8f3d24.js +0 -1
  611. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-4bc556c2fc8f3d24.js +0 -1
  612. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-4bc556c2fc8f3d24.js +0 -1
  613. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-4bc556c2fc8f3d24.js +0 -1
  614. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  615. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-4bc556c2fc8f3d24.js +0 -1
  616. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-4bc556c2fc8f3d24.js +0 -1
  617. package/.next/standalone/.next/static/chunks/app/api/events/route-4bc556c2fc8f3d24.js +0 -1
  618. package/.next/standalone/.next/static/chunks/app/api/health/route-4bc556c2fc8f3d24.js +0 -1
  619. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-4bc556c2fc8f3d24.js +0 -1
  620. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-4bc556c2fc8f3d24.js +0 -1
  621. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-4bc556c2fc8f3d24.js +0 -1
  622. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-4bc556c2fc8f3d24.js +0 -1
  623. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-4bc556c2fc8f3d24.js +0 -1
  624. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  625. package/.next/standalone/.next/static/chunks/app/api/mcp/route-4bc556c2fc8f3d24.js +0 -1
  626. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-4bc556c2fc8f3d24.js +0 -1
  627. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-4bc556c2fc8f3d24.js +0 -1
  628. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-4bc556c2fc8f3d24.js +0 -1
  629. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-4bc556c2fc8f3d24.js +0 -1
  630. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-4bc556c2fc8f3d24.js +0 -1
  631. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-4bc556c2fc8f3d24.js +0 -1
  632. package/.next/standalone/.next/static/chunks/app/api/notifications/route-4bc556c2fc8f3d24.js +0 -1
  633. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-4bc556c2fc8f3d24.js +0 -1
  634. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-4bc556c2fc8f3d24.js +0 -1
  635. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  636. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-4bc556c2fc8f3d24.js +0 -1
  637. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-4bc556c2fc8f3d24.js +0 -1
  638. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-4bc556c2fc8f3d24.js +0 -1
  639. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-4bc556c2fc8f3d24.js +0 -1
  640. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-4bc556c2fc8f3d24.js +0 -1
  641. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-4bc556c2fc8f3d24.js +0 -1
  642. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-4bc556c2fc8f3d24.js +0 -1
  643. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-4bc556c2fc8f3d24.js +0 -1
  644. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-4bc556c2fc8f3d24.js +0 -1
  645. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-4bc556c2fc8f3d24.js +0 -1
  646. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  647. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-4bc556c2fc8f3d24.js +0 -1
  648. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-4bc556c2fc8f3d24.js +0 -1
  649. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-4bc556c2fc8f3d24.js +0 -1
  650. package/.next/standalone/.next/static/chunks/app/api/projects/route-4bc556c2fc8f3d24.js +0 -1
  651. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-4bc556c2fc8f3d24.js +0 -1
  652. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-4bc556c2fc8f3d24.js +0 -1
  653. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-4bc556c2fc8f3d24.js +0 -1
  654. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-4bc556c2fc8f3d24.js +0 -1
  655. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  656. package/.next/standalone/.next/static/chunks/app/api/search/route-4bc556c2fc8f3d24.js +0 -1
  657. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  658. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-4bc556c2fc8f3d24.js +0 -1
  659. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-4bc556c2fc8f3d24.js +0 -1
  660. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-4bc556c2fc8f3d24.js +0 -1
  661. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-4bc556c2fc8f3d24.js +0 -1
  662. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
  663. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-4bc556c2fc8f3d24.js +0 -1
  664. package/.next/standalone/.next/static/chunks/app/layout-9963339572e2e64e.js +0 -1
  665. package/.next/standalone/.next/static/chunks/app/login/page-c64b8d40a0781b4c.js +0 -1
  666. package/.next/standalone/.next/static/chunks/app/onboarding/page-e9a69a0c537c704f.js +0 -1
  667. package/.next/standalone/.next/static/chunks/app/page-8b4baa950c78ffe7.js +0 -1
  668. package/.next/standalone/.next/static/css/1d9aaac01758b297.css +0 -1
  669. /package/.next/standalone/.next/static/{GQvpOux3M9CaxkMjL9GAI → GmBblfxcDziUENBiEap4B}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -36,6 +36,8 @@ The labels under each stage are the **permissions** an actor needs at that stage
36
36
 
37
37
  ## What's New
38
38
 
39
+ **[v0.12.0](https://chorus-ai.dev/blog/chorus-v0.12.0-release/)** — Addressable daemon instances: one `chorus daemon` can serve multiple working directories (`--cwd`), and each `(agent, host, cwd)` becomes an individually visible, individually targetable instance across presence, @-mention, and assignment. Pin an instance once on an idea and its proposals, tasks, and wakes inherit it; pinned wakes are delivered to exactly that instance instead of broadcast. Comment @-mentions render as live online-status badges, and comments switch to cursor-based infinite scroll.
40
+
39
41
  **[v0.11.0](https://chorus-ai.dev/blog/chorus-v0.11.0-release/)** — The Chorus Daemon: `chorus daemon` turns your machine into a resident agent runtime that wakes a local Claude Code on each dispatch. An Agent Connections surface gives live observability and control — streaming transcripts, instruction injection, and interrupt / resume — and a "Verify Elaborate" button wakes the assigned agent to write the proposal.
40
42
 
41
43
  **[v0.10.0](https://chorus-ai.dev/blog/chorus-v0.10.0-release/)** — Single-parent idea lineage: an idea may derive a child or be attached under another, forming a forest. The relation is intentionally weak — a parent surfaces a read-only "+N derived" rollup and does not constrain any child's elaboration, proposal, or task flow. Idea browsing consolidates onto the Dashboard (a three-way Ideas / Lineage / Stats view switch with an adaptive default); the standalone Idea List page is retired and its URLs 308-redirect to the Dashboard.
@@ -46,18 +48,6 @@ The labels under each stage are the **permissions** an actor needs at that stage
46
48
 
47
49
  **[v0.8.0](https://chorus-ai.dev/blog/chorus-v0.8.0-release/)** — OpenSpec-aware mode (Claude Code): auto-activates when an `openspec/` directory and the `openspec` CLI are both present, adds `/opsx/{explore,propose,apply,archive}` and a post-verify archive-trigger hook.
48
50
 
49
- **[v0.7.0](https://chorus-ai.dev/blog/chorus-v0.7.0-release/)** — Fine-grained agent permissions: 5 resources × 3 actions grid replaces the PM/Developer/Admin three-way choice, with presets + a Custom option for free combination.
50
-
51
- **[v0.6.7](https://chorus-ai.dev/blog/chorus-v0.6.7-release/)** — Chorus plugin for Codex CLI (one-command installer), workspace picker when one email belongs to multiple Companies, per-client connect guides.
52
-
53
- **[v0.6.6](https://chorus-ai.dev/blog/chorus-v0.6.6-release/)** — npm one-click install (`npx @chorus-aidlc/chorus`), document export (MD/PDF/Word), proposal revoke, faster agent checkin with work status at a glance.
54
-
55
- **[v0.6.2](https://chorus-ai.dev/blog/chorus-v0.6.2-release/)** — Embedded PGlite mode (zero-dependency deployment), structured logging with Pino, stateless MCP for horizontal scaling, default port changed to 8637.
56
-
57
- **[v0.6.1](https://chorus-ai.dev/blog/chorus-v0.6.1-release/)** — `/yolo` skill: full-auto AI-DLC pipeline (Idea → Proposal → Execute → Verify) with Agent Team parallel execution.
58
-
59
- **[v0.6.0](https://chorus-ai.dev/blog/chorus-v0.6.0-release/)** — IdeaTracker dashboard, independent review agents (proposal-reviewer + task-reviewer), real-time agent presence indicators, cross-column Kanban animation.
60
-
61
51
  > Full changelog: [CHANGELOG.md](CHANGELOG.md)
62
52
 
63
53
  ---
@@ -106,7 +96,7 @@ DATABASE_URL=postgresql://user:pass@host:5432/chorus chorus
106
96
 
107
97
  The `chorus daemon` connects your local machine to a remote Chorus server as an agent runtime and executes tasks assigned by Chorus.
108
98
 
109
- > **Current version:** Only **Claude Code** is supported. Support for other agent CLIs (Codex, Copilot, etc.) is planned for future releases.
99
+ > **Agent backends:** **Claude Code** (default) and **Codex** are supported — select with `--agent codex` (or `CHORUS_AGENT=codex`). Support for other agent CLIs (Copilot, etc.) is planned for future releases.
110
100
 
111
101
  ```bash
112
102
  chorus login # Authenticate (opens browser)
@@ -120,17 +110,61 @@ chorus daemon logs # View daemon logs
120
110
 
121
111
  **Key features:**
122
112
 
123
- - **Claude Code integration** — Auto-detects `claude` CLI on your PATH
113
+ - **Claude Code & Codex backends** — Auto-detects the `claude` (or `codex`) CLI on your PATH; pick with `--agent codex`
124
114
  - **Background mode** — Run with `-d` flag; manage with `stop/restart/logs`
125
115
  - **Permission modes** — Default is full access (yolo); use `--chorus-only` to restrict to Chorus MCP tools only
116
+ - **Multi-path** — Serve several working directories from one daemon with repeatable `--cwd` (see below)
126
117
  - **Interactive setup** — Prompts for credentials on first start if not already configured
127
118
 
128
119
  The daemon requires authentication. Run `chorus login` first, or it will prompt for credentials interactively on first start (if running in a terminal).
129
120
 
121
+ #### Serve multiple working directories
122
+
123
+ One daemon can serve several local working directories at once — each declared path registers as an independent connection (its own session + wake loop) under the same agent. A path is **just** a directory the daemon serves; it carries no project binding.
124
+
125
+ ```bash
126
+ chorus daemon --cwd ~/work/repo-a --cwd ~/work/repo-b # repeatable flag
127
+ CHORUS_DAEMON_CWDS="~/work/repo-a:~/work/repo-b" chorus daemon # or env (`:`- or `,`-separated)
128
+ ```
129
+
130
+ With no `--cwd`, the daemon serves the single directory it was launched from.
131
+
132
+ #### Configuration file — `~/.chorus/daemon.json`
133
+
134
+ `chorus login` writes credentials here (mode `0600`). You can also add daemon tunables to the **same** file. Every field is optional; flags and environment variables always take precedence over the file.
135
+
136
+ ```json
137
+ {
138
+ "url": "https://chorus.example.com",
139
+ "apiKey": "cho_xxxxxxxxxxxxxxxxxxxxxxxx",
140
+ "agentUuid": "00000000-0000-0000-0000-000000000000",
141
+ "agentName": "My Daemon Agent",
142
+ "cwds": ["~/work/repo-a", "~/work/repo-b"],
143
+ "sigintTimeoutMs": 10000
144
+ }
145
+ ```
146
+
147
+ | Field | Type | Written by / used for | Precedence (highest first) |
148
+ |-------|------|-----------------------|----------------------------|
149
+ | `url` | string | Remote Chorus server URL | `--url` flag → `CHORUS_URL` → file |
150
+ | `apiKey` | string | Agent API key (`cho_…`) | `--api-key` flag → `CHORUS_API_KEY` → file |
151
+ | `agentUuid` / `agentName` | string | Authenticated identity (recorded at login) | written by `chorus login` |
152
+ | `cwds` | string[] | Working directories the daemon serves (multi-path) | `--cwd` flag(s) → `CHORUS_DAEMON_CWDS` → file → launch dir |
153
+ | `sigintTimeoutMs` | number | Grace window (ms) after SIGINT before a forceful kill (default `10000`) | `--sigint-timeout` flag → `CHORUS_DAEMON_SIGINT_TIMEOUT` → file → `10000` |
154
+ | `yoloAckAt` | string | Internal — timestamp of a TTY yolo confirmation (managed automatically) | — |
155
+
156
+ On startup the daemon banner prints the **exact `daemon.json` path it read** (and whether the file exists), so you always know which file to edit.
157
+
130
158
  ---
131
159
 
132
160
  ## Screenshots
133
161
 
162
+ ### Remote Agent Wake — Dispatch to a Directory, Watch It Run
163
+
164
+ ![Remote Agent Wake](docs/images/agent-daemon-wake.gif)
165
+
166
+ Assign an idea to a specific directory on a remote agent, then open the conversation and watch the local Claude Code pick up the work and run in real time — no terminal, no manual resume.
167
+
134
168
  ### Proposal — AI Agent Generates Plans in Real Time
135
169
 
136
170
  ![Proposal Presence](docs/images/proposal-presence.gif)
@@ -257,7 +291,7 @@ A Cmd+K command palette for searching across all 6 entity types (Tasks, Ideas, P
257
291
  | Agent Integration | MCP SDK 1.26 (HTTP Streamable Transport) |
258
292
  | Auth | OIDC + PKCE / API Key / SuperAdmin |
259
293
  | i18n | next-intl (en, zh) |
260
- | Deployment | [Docker Hub](https://hub.docker.com/repository/docker/chorusaidlc/chorus-app/general) / Docker Compose / AWS CDK |
294
+ | Deployment | [Docker Hub](https://hub.docker.com/r/chorusaidlc/chorus-app) / Docker Compose / AWS CDK |
261
295
 
262
296
  ---
263
297
 
package/README.zh.md CHANGED
@@ -27,6 +27,8 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
27
27
 
28
28
  ## 最近更新
29
29
 
30
+ **[v0.12.0](https://chorus-ai.dev/zh/blog/chorus-v0.12.0-release/)** — 可寻址的 daemon 实例:一个 `chorus daemon` 可同时守多个工作目录(`--cwd`),每一个 `(agent, 主机, 目录)` 都成为一个能单独看见、单独点名的实例,贯穿 presence、@-mention 与任务指派。在想法上钉一次实例,其下的提案、任务与唤醒都会继承;带钉的唤醒被精确投递到那个实例,而非全员广播。评论区的 Agent @-mention 渲染为实时在线状态徽章,评论列表改为游标式无限滚动。
31
+
30
32
  **[v0.11.0](https://chorus-ai.dev/zh/blog/chorus-v0.11.0-release/)** — Chorus Daemon:`chorus daemon` 将本机变为常驻 Agent 运行时,在每次派发时唤起本地 Claude Code。Agent Connections 界面提供实时可观测与控制:流式 transcript、指令注入、打断 / 恢复;新增"完成细化"按钮,唤起被指派的 Agent 撰写提案。
31
33
 
32
34
  **[v0.10.0](https://chorus-ai.dev/zh/blog/chorus-v0.10.0-release/)** — 单父想法血缘:一条想法可派生子想法或挂靠至另一条之下,构成森林结构。该关联为弱关联,父想法仅呈现只读的 "+N derived" 汇总,不约束子想法的细化、提案与任务流程。想法浏览统一收敛至 Dashboard(Ideas / Lineage / Stats 三档视图切换,支持自适应默认);独立的 Idea List 页面下线,原 URL 经 308 重定向至 Dashboard。
@@ -37,18 +39,6 @@ Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Veri
37
39
 
38
40
  **[v0.8.0](https://chorus-ai.dev/zh/blog/chorus-v0.8.0-release/)** — OpenSpec-aware 模式(仅 Claude Code):当仓库下同时存在 `openspec/` 目录和 `openspec` CLI 时自动启用,新增 `/opsx/{explore,propose,apply,archive}` 与 task verify 后的 archive-trigger 钩子。
39
41
 
40
- **[v0.7.0](https://chorus-ai.dev/zh/blog/chorus-v0.7.0-release/)** — 细粒度 Agent 权限:5 类资源 × 3 个动作组成的网格,取代 PM / Developer / Admin 三选一。保留原有预设,新增 Custom 选项自由组合。
41
-
42
- **[v0.6.7](https://chorus-ai.dev/zh/blog/chorus-v0.6.7-release/)** — Codex CLI 版 Chorus 插件(一条命令装完)、同一邮箱属于多个 Company 时的工作区选择器、每种客户端的接入文档。
43
-
44
- **[v0.6.6](https://chorus-ai.dev/zh/blog/chorus-v0.6.6-release/)** — npm 一键安装(`npx @chorus-aidlc/chorus`)、文档导出(MD/PDF/Word)、Proposal 撤回、优化 Agent Checkin 快速获取工作状态。
45
-
46
- **[v0.6.2](https://chorus-ai.dev/zh/blog/chorus-v0.6.2-release/)** — 嵌入式 PGlite 模式(零依赖部署)、Pino 结构化日志、无状态 MCP 支持水平扩展、默认端口改为 8637。
47
-
48
- **[v0.6.1](https://chorus-ai.dev/zh/blog/chorus-v0.6.1-release/)** — `/yolo` 技能:全自动 AI-DLC 流水线(Idea → Proposal → Execute → Verify),支持 Agent Team 并行执行。
49
-
50
- **[v0.6.0](https://chorus-ai.dev/zh/blog/chorus-v0.6.0-release/)** — IdeaTracker 面板、独立审阅 Agent(proposal-reviewer + task-reviewer)、实时 Agent Presence 指示器、跨列 Kanban 动画。
51
-
52
42
  > 完整更新日志:[CHANGELOG.md](CHANGELOG.md)
53
43
 
54
44
  ---
@@ -97,7 +87,7 @@ DATABASE_URL=postgresql://user:pass@host:5432/chorus chorus
97
87
 
98
88
  `chorus daemon` 将你的本地机器作为 Agent 运行时连接到远程 Chorus 服务器并执行 Chorus 分配的任务。
99
89
 
100
- > **当前版本:** 仅支持 **Claude Code**。对其他 Agent CLI(Codex、Copilot 等)的支持计划在未来版本中实现。
90
+ > **Agent 后端:** 支持 **Claude Code**(默认)和 **Codex**,用 `--agent codex`(或 `CHORUS_AGENT=codex`)切换。对其他 Agent CLI(Copilot 等)的支持计划在未来版本中实现。
101
91
 
102
92
  ```bash
103
93
  chorus login # 认证(打开浏览器)
@@ -111,17 +101,61 @@ chorus daemon logs # 查看 daemon 日志
111
101
 
112
102
  **主要特性:**
113
103
 
114
- - **Claude Code 集成** — 自动检测 PATH 中的 `claude` CLI
104
+ - **Claude Code Codex 后端** — 自动检测 PATH 中的 `claude`(或 `codex`)CLI;用 `--agent codex` 选择
115
105
  - **后台模式** — 使用 `-d` 标志后台运行;用 `stop/restart/logs` 管理
116
106
  - **权限模式** — 默认完全访问(yolo);使用 `--chorus-only` 限制为仅 Chorus MCP 工具
107
+ - **多路径** — 用可重复的 `--cwd` 让单个 daemon 同时服务多个工作目录(见下文)
117
108
  - **交互式设置** — 首次启动时如未配置凭证会提示输入
118
109
 
119
110
  daemon 需要先认证。首次使用请先运行 `chorus login`,或者 daemon 会在首次启动时交互式提示输入凭证(如果在终端中运行)。
120
111
 
112
+ #### 服务多个工作目录
113
+
114
+ 一个 daemon 可以同时服务多个本地工作目录——每个声明的路径会注册为一条独立连接(各自拥有会话与唤起循环),归属同一个 Agent。路径**仅仅**是 daemon 服务的目录,不携带任何项目绑定。
115
+
116
+ ```bash
117
+ chorus daemon --cwd ~/work/repo-a --cwd ~/work/repo-b # 可重复传入
118
+ CHORUS_DAEMON_CWDS="~/work/repo-a:~/work/repo-b" chorus daemon # 或用环境变量(`:` 或 `,` 分隔)
119
+ ```
120
+
121
+ 不传 `--cwd` 时,daemon 只服务它的启动目录这一个路径。
122
+
123
+ #### 配置文件 —— `~/.chorus/daemon.json`
124
+
125
+ `chorus login` 会把凭证写入此文件(权限 `0600`)。你也可以把 daemon 的调优项写进**同一个**文件。所有字段都是可选的;命令行参数和环境变量的优先级始终高于文件。
126
+
127
+ ```json
128
+ {
129
+ "url": "https://chorus.example.com",
130
+ "apiKey": "cho_xxxxxxxxxxxxxxxxxxxxxxxx",
131
+ "agentUuid": "00000000-0000-0000-0000-000000000000",
132
+ "agentName": "My Daemon Agent",
133
+ "cwds": ["~/work/repo-a", "~/work/repo-b"],
134
+ "sigintTimeoutMs": 10000
135
+ }
136
+ ```
137
+
138
+ | 字段 | 类型 | 写入方 / 用途 | 优先级(从高到低) |
139
+ |------|------|---------------|--------------------|
140
+ | `url` | string | 远程 Chorus 服务器 URL | `--url` 参数 → `CHORUS_URL` → 文件 |
141
+ | `apiKey` | string | Agent API Key(`cho_…`) | `--api-key` 参数 → `CHORUS_API_KEY` → 文件 |
142
+ | `agentUuid` / `agentName` | string | 认证身份(登录时记录) | 由 `chorus login` 写入 |
143
+ | `cwds` | string[] | daemon 服务的工作目录(多路径) | `--cwd` 参数 → `CHORUS_DAEMON_CWDS` → 文件 → 启动目录 |
144
+ | `sigintTimeoutMs` | number | SIGINT 后强制结束前的宽限窗口(毫秒,默认 `10000`) | `--sigint-timeout` 参数 → `CHORUS_DAEMON_SIGINT_TIMEOUT` → 文件 → `10000` |
145
+ | `yoloAckAt` | string | 内部字段——TTY 下 yolo 确认的时间戳(自动管理) | — |
146
+
147
+ daemon 启动时的横幅会打印它**实际读取的 `daemon.json` 路径**(以及该文件是否存在),让你随时清楚该编辑哪个文件。
148
+
121
149
  ---
122
150
 
123
151
  ## 界面预览
124
152
 
153
+ ### 远程唤醒 Agent——派活到指定目录,实时看它跑
154
+
155
+ ![远程唤醒 Agent](docs/images/agent-daemon-wake.gif)
156
+
157
+ 把一条想法派给远程 Agent 的某个目录,打开对话窗口,就能实时看到本地的 Claude Code 接活、开跑,全程不用碰终端,也不用手动 resume。
158
+
125
159
  ### Proposal——AI Agent 实时生成计划
126
160
 
127
161
  ![Proposal Presence](docs/images/proposal-presence.gif)
@@ -248,7 +282,7 @@ Cmd+K 命令面板,支持跨 6 种实体类型搜索。支持范围筛选(
248
282
  | Agent 集成 | MCP SDK 1.26 (HTTP Streamable Transport) |
249
283
  | 认证 | OIDC + PKCE / API Key / SuperAdmin |
250
284
  | i18n | next-intl (en, zh) |
251
- | 部署 | [Docker Hub](https://hub.docker.com/repository/docker/chorusaidlc/chorus-app/general) / Docker Compose / AWS CDK |
285
+ | 部署 | [Docker Hub](https://hub.docker.com/r/chorusaidlc/chorus-app) / Docker Compose / AWS CDK |
252
286
 
253
287
  ---
254
288
 
package/chorus.mjs CHANGED
@@ -34,6 +34,10 @@ import {
34
34
  daemonHelpText,
35
35
  loginHelpText,
36
36
  } from "./cli/client-args.mjs";
37
+ // Server-only signal-handler installer, guarded so a client subcommand
38
+ // (`chorus daemon` / `chorus login`) never registers the server's handlers.
39
+ // Pure module → unit-testable without this entry's import-time side effects.
40
+ import { installServerSignalHandlers } from "./cli/server-signal-handlers.mjs";
37
41
 
38
42
  /** Read the package version once for help/version output. */
39
43
  function pkgVersion() {
@@ -159,10 +163,13 @@ ENVIRONMENT VARIABLES
159
163
  DAEMON / LOGIN (client mode)
160
164
  --url <url> Remote Chorus server URL (env: CHORUS_URL)
161
165
  --api-key <cho_...> Agent API key (env: CHORUS_API_KEY)
162
- --yolo Give the woken Claude FULL permissions (env: CHORUS_YOLO=1)
166
+ --chorus-only Restrict the woken Claude to Chorus MCP tools only (env: CHORUS_CHORUS_ONLY=1)
167
+ (comment/claim/report/status — no Bash / file edits).
168
+ Opt out of the default full-autonomy posture.
169
+ --yolo Full autonomy for the woken Claude — the DEFAULT (env: CHORUS_YOLO=1)
163
170
  (--dangerously-skip-permissions: Bash, file writes,
164
- any command). Default is Chorus-MCP-tools-only.
165
- --sigint-timeout <ms> Grace window after SIGINT before a forceful kill (env: CHORUS_DAEMON_SIGINT_TIMEOUT)
171
+ any command). Already on unless --chorus-only is set.
172
+ --sigint-timeout <ms> Grace window after SIGINT before a forceful kill (env: CHORUS_DAEMON_SIGINT_TIMEOUT)
166
173
  when an interrupt is received (default: 10000).
167
174
  Also configurable via ~/.chorus/daemon.json sigintTimeoutMs.
168
175
 
@@ -170,9 +177,9 @@ DAEMON / LOGIN (client mode)
170
177
  ~/.chorus/daemon.json (from 'chorus login') > Claude Code plugin config.
171
178
 
172
179
  The daemon spawns the local 'claude' CLI headlessly per task dispatch; it must
173
- be on PATH. Override with CHORUS_CLAUDE_PATH. By default the woken Claude may
174
- use only Chorus MCP tools (comment/claim/report/status) pass --yolo for full
175
- autonomy (real code-writing AI-DLC), which is dangerous: run it sandboxed.
180
+ be on PATH. Override with CHORUS_CLAUDE_PATH. By default the woken Claude runs
181
+ with FULL autonomy (real code-writing AI-DLC), which is dangerous: run it
182
+ sandboxed, or pass --chorus-only to restrict it to Chorus MCP tools.
176
183
 
177
184
  EXAMPLES
178
185
  chorus # Embedded PGlite (default)
@@ -180,8 +187,8 @@ EXAMPLES
180
187
  chorus --data-dir /var/lib/chorus # Custom data directory
181
188
  DATABASE_URL=postgres://... chorus --use-pglite=false # External PostgreSQL
182
189
  chorus login # Interactive: validate key, save credentials
183
- chorus daemon # Connect & wake local Claude Code (Chorus tools only)
184
- chorus daemon --yolo # Full autonomy: woken Claude can run Bash / edit files
190
+ chorus daemon # Connect & wake local Claude Code (full autonomy by default)
191
+ chorus daemon --chorus-only # Restrict the woken Claude to Chorus MCP tools only
185
192
  CHORUS_URL=https://... CHORUS_API_KEY=cho_... chorus daemon
186
193
  `);
187
194
  process.exit(0);
@@ -451,12 +458,21 @@ function shutdown() {
451
458
  }
452
459
  }
453
460
 
454
- process.on("SIGINT", shutdown);
455
- process.on("SIGTERM", shutdown);
456
- process.on("exit", () => {
457
- if (pgliteProcess && !pgliteProcess.killed) {
458
- pgliteProcess.kill("SIGKILL");
459
- }
461
+ // Install the server's SIGINT/SIGTERM/exit handlers ONLY on the server launch
462
+ // path. On a client subcommand (`chorus daemon` / `chorus login`) this installs
463
+ // nothing, so the daemon's OWN graceful shutdown handler is the sole signal
464
+ // disposition — otherwise the server's handler (registered first) would pre-empt
465
+ // it with a synchronous `process.exit(0)`, leaving the daemon to disconnect
466
+ // non-gracefully (stale presence) and printing a misleading bare "Shutting down...".
467
+ installServerSignalHandlers({
468
+ isSubcommand,
469
+ processRef: process,
470
+ shutdown,
471
+ cleanupExit: () => {
472
+ if (pgliteProcess && !pgliteProcess.killed) {
473
+ pgliteProcess.kill("SIGKILL");
474
+ }
475
+ },
460
476
  });
461
477
 
462
478
  // ---------------------------------------------------------------------------
@@ -28,10 +28,16 @@ export const KNOWN_AGENTS = new Set(["claude-code"]);
28
28
  * "false" (important for layered env/flag precedence downstream).
29
29
  *
30
30
  * @param {string[]} argv
31
+ * The new repeatable `--cwd <path>` (space + `=`) declares a working directory the
32
+ * daemon serves; repeating it (`--cwd a --cwd b`) declares the SET of paths for the
33
+ * single-daemon multi-path engine (T3). It is collected into a `cwd: string[]` array
34
+ * preserving order; absent ⇒ `cwd` is unset (the layered resolver then falls back to
35
+ * env / config / the process cwd). It is JUST a path list — no project binding.
36
+ *
31
37
  * @returns {{
32
38
  * url?: string, apiKey?: string, yolo?: boolean, sigintTimeout?: string,
33
39
  * agent?: string, chorusOnly?: boolean, verbose?: boolean, detach?: boolean,
34
- * help?: boolean,
40
+ * cwd?: string[], help?: boolean,
35
41
  * }}
36
42
  */
37
43
  export function parseClientFlags(argv) {
@@ -47,6 +53,11 @@ export function parseClientFlags(argv) {
47
53
  else if (a.startsWith("--sigint-timeout=")) out.sigintTimeout = a.slice("--sigint-timeout=".length);
48
54
  else if (a === "--agent") out.agent = argv[i + 1];
49
55
  else if (a.startsWith("--agent=")) out.agent = a.slice("--agent=".length);
56
+ else if (a === "--cwd" || a.startsWith("--cwd=")) {
57
+ // Repeatable: collect every --cwd into an ordered array (the cwd SET).
58
+ const value = a === "--cwd" ? argv[i + 1] : a.slice("--cwd=".length);
59
+ if (typeof value === "string") (out.cwd ??= []).push(value);
60
+ }
50
61
  else if (a === "--chorus-only") out.chorusOnly = true;
51
62
  else if (a === "--verbose") out.verbose = true;
52
63
  else if (a === "-d" || a === "--detach") out.detach = true;
@@ -96,13 +107,18 @@ OPTIONS
96
107
  --url <url> Remote Chorus server URL (env: CHORUS_URL)
97
108
  --api-key <cho_...> Agent API key (env: CHORUS_API_KEY)
98
109
  --agent <type> Local agent backend to wake (env: CHORUS_AGENT)
99
- (default: claude-code; only claude-code is implemented)
110
+ (claude-code | codex; default: claude-code)
100
111
  --yolo Full autonomy for the woken agent (env: CHORUS_YOLO=1)
101
112
  (--dangerously-skip-permissions: Bash, file writes, any
102
113
  command). This is the DEFAULT permission mode.
103
114
  --chorus-only Restrict the woken agent to Chorus (env: CHORUS_CHORUS_ONLY=1)
104
115
  MCP tools only (no Bash / file edits) — reclaims the
105
116
  safe posture from the default yolo.
117
+ --cwd <path> A working directory the daemon serves. Repeatable —
118
+ (env: CHORUS_DAEMON_CWDS) each --cwd registers an independent
119
+ connection for that path, so one daemon can serve several
120
+ local paths at once. Default: the directory it was launched
121
+ from. (Also configurable as "cwds":[…] in ~/.chorus/daemon.json.)
106
122
  -d, --detach Run detached in the background (pidfile + logfile)
107
123
  --verbose More detailed per-wake logging
108
124
  --sigint-timeout <ms> Grace window after SIGINT before a forceful kill
@@ -0,0 +1,117 @@
1
+ // cli/codex-session-map.mjs
2
+ // Daemon-local persistence of the Codex `anchor → thread_id` map. Codex GENERATES
3
+ // its own thread id (unlike Claude, which accepts a client-supplied --session-id),
4
+ // so to make a wake resumable across daemon restarts we record the generated id
5
+ // keyed by the Chorus session anchor (direct idea uuid, or the entity uuid for an
6
+ // ad-hoc session) and `codex exec resume <thread_id>` on the next wake.
7
+ //
8
+ // The store is a single JSON object `{ "<anchor>": "<thread_id>" }` at
9
+ // ~/.chorus/codex-sessions.json (same dir family as daemon.json). The anchor is a
10
+ // globally-unique Chorus uuid, so one flat file is safe across the daemon's
11
+ // multiple path-connections.
12
+ //
13
+ // CONTRACT: this is best-effort and MUST NEVER throw into the wake path. Any
14
+ // read/parse/write/rename failure degrades to "no mapping → next wake starts
15
+ // fresh" with a visible log (no-silent-errors). IO is injectable for tests.
16
+
17
+ import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
18
+ import { homedir } from "node:os";
19
+ import { dirname, join } from "node:path";
20
+
21
+ const NOOP_LOGGER = { info() {}, warn() {}, error() {} };
22
+
23
+ /** Absolute path to the Codex session-id map, alongside ~/.chorus/daemon.json. */
24
+ export function codexSessionMapPath() {
25
+ return join(homedir(), ".chorus", "codex-sessions.json");
26
+ }
27
+
28
+ /** A non-empty trimmed string, or null. */
29
+ function nonEmpty(value) {
30
+ return typeof value === "string" && value.trim().length > 0 ? value : null;
31
+ }
32
+
33
+ /**
34
+ * Read the whole map as a plain object. Missing / unreadable / malformed file →
35
+ * `{}` (never throws). A non-object JSON value (array / scalar) is also treated
36
+ * as empty.
37
+ * @param {string} path
38
+ * @param {(p: string) => string} read
39
+ * @param {{warn(m:string):void}} logger
40
+ * @returns {Record<string, unknown>}
41
+ */
42
+ function readMap(path, read, logger) {
43
+ let raw;
44
+ try {
45
+ raw = read(path);
46
+ } catch (err) {
47
+ // ENOENT is the normal "no map yet" case — silent. Other read errors warn.
48
+ if (!(err && err.code === "ENOENT")) {
49
+ logger.warn(`[Chorus] codex-session-map: read failed (${err}) — treating as empty`);
50
+ }
51
+ return {};
52
+ }
53
+ try {
54
+ const parsed = JSON.parse(raw);
55
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
56
+ logger.warn("[Chorus] codex-session-map: file is not a JSON object — treating as empty");
57
+ return {};
58
+ } catch (err) {
59
+ logger.warn(`[Chorus] codex-session-map: corrupt JSON (${err}) — treating as empty`);
60
+ return {};
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Look up the Codex thread id recorded for `anchor`, or null when there is none
66
+ * (no file, no entry, or a non-string entry). Never throws.
67
+ * @param {string} anchor
68
+ * @param {{ path?: string, read?: (p: string) => string, logger?: any }} [deps]
69
+ * @returns {string | null}
70
+ */
71
+ export function getThreadId(anchor, deps = {}) {
72
+ const a = nonEmpty(anchor);
73
+ if (!a) return null;
74
+ const path = deps.path ?? codexSessionMapPath();
75
+ const read = deps.read ?? ((p) => readFileSync(p, "utf8"));
76
+ const logger = deps.logger ?? NOOP_LOGGER;
77
+ const map = readMap(path, read, logger);
78
+ return nonEmpty(map[a]);
79
+ }
80
+
81
+ /**
82
+ * Record `anchor → threadId`, preserving every other entry. Atomic (temp file +
83
+ * rename). Best-effort: a blank anchor/threadId is ignored (no write), and any
84
+ * IO failure is logged and swallowed — it never throws into the wake path.
85
+ * @param {string} anchor
86
+ * @param {string} threadId
87
+ * @param {{ path?: string, read?: (p: string) => string,
88
+ * write?: (p: string, c: string, o?: object) => void,
89
+ * mkdir?: (p: string, o?: object) => void,
90
+ * rename?: (from: string, to: string) => void, logger?: any }} [deps]
91
+ * @returns {void}
92
+ */
93
+ export function setThreadId(anchor, threadId, deps = {}) {
94
+ const a = nonEmpty(anchor);
95
+ const t = nonEmpty(threadId);
96
+ if (!a || !t) return; // nothing meaningful to persist
97
+ const path = deps.path ?? codexSessionMapPath();
98
+ const read = deps.read ?? ((p) => readFileSync(p, "utf8"));
99
+ const write = deps.write ?? writeFileSync;
100
+ const mkdir = deps.mkdir ?? mkdirSync;
101
+ const rename = deps.rename ?? renameSync;
102
+ const logger = deps.logger ?? NOOP_LOGGER;
103
+
104
+ try {
105
+ const map = readMap(path, read, logger);
106
+ map[a] = t;
107
+ mkdir(dirname(path), { recursive: true });
108
+ // Atomic write: temp file (0600) in the same dir, then rename over target,
109
+ // so a crash mid-write never truncates the live map.
110
+ const tmp = `${path}.tmp`;
111
+ write(tmp, JSON.stringify(map, null, 2) + "\n", { mode: 0o600 });
112
+ rename(tmp, path);
113
+ } catch (err) {
114
+ // Best-effort: a failed persist just means the next wake starts fresh.
115
+ logger.warn(`[Chorus] codex-session-map: failed to persist ${a}→${t} (${err}) — wake will start fresh next time`);
116
+ }
117
+ }