@chorus-aidlc/chorus 0.9.4 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (695) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +481 -430
  3. package/.next/standalone/.next/app-path-routes-manifest.json +57 -44
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +33 -33
  6. package/.next/standalone/.next/routes-manifest.json +33 -17
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +2 -2
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +2 -2
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +2 -2
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +3 -3
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -8
  44. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  48. package/.next/standalone/.next/server/app/_not-found.rsc +5 -5
  49. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies/new.rsc +6 -6
  53. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/admin/companies.html +1 -1
  55. package/.next/standalone/.next/server/app/admin/companies.rsc +6 -6
  56. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/admin.html +1 -1
  58. package/.next/standalone/.next/server/app/admin.rsc +6 -6
  59. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js +1 -1
  60. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/admin/companies/route.js +1 -1
  62. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/login/route.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/session/route.js +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/agent-connections/route.js +1 -0
  68. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -0
  69. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -0
  70. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  71. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  76. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js +1 -1
  78. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/api-keys/route.js +1 -1
  80. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/callback/route.js +1 -1
  82. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/auth/check-default/route.js +1 -1
  84. package/.next/standalone/.next/server/app/api/auth/check-default/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/auth/company-oidc/route.js +1 -1
  87. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/auth/default-login/route.js +1 -1
  89. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/auth/identify/route.js +1 -1
  91. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/auth/me/route.js +1 -1
  94. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/auth/refresh/route.js +1 -1
  96. package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/auth/session/route.js +1 -1
  98. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/auth/sync-token/route.js +1 -1
  100. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  102. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -0
  105. package/.next/standalone/.next/server/app/api/daemon/control/route.js.nft.json +1 -0
  106. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -0
  107. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -0
  108. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -0
  109. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -0
  110. package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -0
  111. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -0
  112. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -0
  113. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -0
  114. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -0
  115. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -0
  116. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -0
  117. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -0
  118. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -0
  119. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -0
  120. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -0
  121. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -0
  122. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -0
  123. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -0
  124. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -0
  125. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -0
  126. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -0
  127. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -0
  128. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -0
  129. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -0
  130. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -0
  131. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -0
  132. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -0
  133. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -0
  134. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -0
  135. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -0
  136. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -0
  137. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -0
  138. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -0
  139. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -0
  140. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  141. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -0
  143. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -0
  144. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -0
  145. package/.next/standalone/.next/server/app/api/events/notifications/route.js +6 -2
  146. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  147. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/events/route.js +7 -3
  149. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/health/route.js +1 -1
  152. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  154. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  157. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  160. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -0
  163. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -0
  164. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -0
  165. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  166. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  169. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/mcp/route.js +6 -42
  172. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  175. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  178. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  181. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  184. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  187. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  190. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  193. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  196. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
  199. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
  201. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  203. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  205. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  207. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  210. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  212. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  214. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  217. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  220. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  221. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  222. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  224. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  226. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  228. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  230. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  231. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  232. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  233. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  234. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  236. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  238. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  239. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  240. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  242. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  244. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  245. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  246. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/app/api/search/route.js +1 -1
  248. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  250. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  251. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  253. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  254. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  256. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  257. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  259. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  260. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  261. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  262. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  263. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  264. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  265. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  266. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  267. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  268. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  269. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/index.html +1 -1
  271. package/.next/standalone/.next/server/app/index.rsc +5 -5
  272. package/.next/standalone/.next/server/app/login/admin/page.js +1 -1
  273. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  274. package/.next/standalone/.next/server/app/login/admin.html +1 -1
  275. package/.next/standalone/.next/server/app/login/admin.rsc +6 -6
  276. package/.next/standalone/.next/server/app/login/callback/page.js +2 -2
  277. package/.next/standalone/.next/server/app/login/callback/page.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/login/callback.html +1 -1
  280. package/.next/standalone/.next/server/app/login/callback.rsc +6 -6
  281. package/.next/standalone/.next/server/app/login/page.js +2 -2
  282. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  283. package/.next/standalone/.next/server/app/login/pick-workspace/page.js +1 -1
  284. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  285. package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
  286. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +6 -6
  287. package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
  289. package/.next/standalone/.next/server/app/login/silent-refresh.rsc +5 -5
  290. package/.next/standalone/.next/server/app/login.html +1 -1
  291. package/.next/standalone/.next/server/app/login.rsc +6 -6
  292. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  293. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  294. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  295. package/.next/standalone/.next/server/app/onboarding.html +1 -1
  296. package/.next/standalone/.next/server/app/onboarding.rsc +6 -6
  297. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  298. package/.next/standalone/.next/server/app/projects.html +1 -1
  299. package/.next/standalone/.next/server/app/projects.rsc +7 -7
  300. package/.next/standalone/.next/server/app/settings.html +1 -1
  301. package/.next/standalone/.next/server/app/settings.rsc +7 -7
  302. package/.next/standalone/.next/server/app-paths-manifest.json +57 -44
  303. package/.next/standalone/.next/server/chunks/1064.js +1 -0
  304. package/.next/standalone/.next/server/chunks/1596.js +13 -0
  305. package/.next/standalone/.next/server/chunks/2213.js +1 -0
  306. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  307. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  308. package/.next/standalone/.next/server/chunks/3219.js +2 -0
  309. package/.next/standalone/.next/server/chunks/3371.js +1 -0
  310. package/.next/standalone/.next/server/chunks/3419.js +1 -0
  311. package/.next/standalone/.next/server/chunks/369.js +1 -0
  312. package/.next/standalone/.next/server/chunks/4638.js +1 -0
  313. package/.next/standalone/.next/server/chunks/4711.js +530 -0
  314. package/.next/standalone/.next/server/chunks/4958.js +1 -1
  315. package/.next/standalone/.next/server/chunks/5039.js +1 -0
  316. package/.next/standalone/.next/server/chunks/5300.js +1 -1
  317. package/.next/standalone/.next/server/chunks/5631.js +1 -0
  318. package/.next/standalone/.next/server/chunks/6044.js +1 -1
  319. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  320. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  321. package/.next/standalone/.next/server/chunks/6461.js +1 -0
  322. package/.next/standalone/.next/server/chunks/6712.js +1 -0
  323. package/.next/standalone/.next/server/chunks/7002.js +1 -1
  324. package/.next/standalone/.next/server/chunks/7063.js +2 -2
  325. package/.next/standalone/.next/server/chunks/7258.js +37 -0
  326. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  327. package/.next/standalone/.next/server/chunks/7578.js +2 -2
  328. package/.next/standalone/.next/server/chunks/7867.js +1 -0
  329. package/.next/standalone/.next/server/chunks/7897.js +1 -0
  330. package/.next/standalone/.next/server/chunks/8012.js +1 -0
  331. package/.next/standalone/.next/server/chunks/8245.js +31 -0
  332. package/.next/standalone/.next/server/chunks/8322.js +1 -1
  333. package/.next/standalone/.next/server/chunks/8551.js +1 -1
  334. package/.next/standalone/.next/server/chunks/9015.js +1 -1
  335. package/.next/standalone/.next/server/chunks/920.js +1 -1
  336. package/.next/standalone/.next/server/chunks/937.js +16 -2
  337. package/.next/standalone/.next/server/chunks/9629.js +1 -0
  338. package/.next/standalone/.next/server/chunks/9725.js +1 -0
  339. package/.next/standalone/.next/server/instrumentation.js +1 -1
  340. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  341. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  342. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  343. package/.next/standalone/.next/server/next-font-manifest.json +1 -1
  344. package/.next/standalone/.next/server/pages/404.html +1 -1
  345. package/.next/standalone/.next/server/pages/500.html +1 -1
  346. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  347. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  348. package/.next/standalone/.next/server/src/middleware.js +2 -2
  349. package/.next/standalone/.next/static/519aK55QLHaVN7b1TVDkB/_buildManifest.js +1 -0
  350. package/.next/standalone/.next/static/chunks/1217-323cc20b73ebfde9.js +1 -0
  351. package/.next/standalone/.next/static/chunks/{11207-8f4b154804f5a66f.js → 15183-5734d279b26e9414.js} +2 -2
  352. package/.next/standalone/.next/static/chunks/1879-7a8b283283218df2.js +1 -0
  353. package/.next/standalone/.next/static/chunks/19276-50b367d7b93d5f34.js +1 -0
  354. package/.next/standalone/.next/static/chunks/23466-e1176a6d814f4897.js +1 -0
  355. package/.next/standalone/.next/static/chunks/38040-a8687f86dd8e9d67.js +1 -0
  356. package/.next/standalone/.next/static/chunks/4860.43f5ad8a3aaed0e8.js +1 -0
  357. package/.next/standalone/.next/static/chunks/58245-b2ea112ace9624d2.js +1 -0
  358. package/.next/standalone/.next/static/chunks/59296-783831c43aa0162e.js +1 -0
  359. package/.next/standalone/.next/static/chunks/60648-36ccbee4ce232d52.js +1 -0
  360. package/.next/standalone/.next/static/chunks/60694-68232120903209df.js +1 -0
  361. package/.next/standalone/.next/static/chunks/64648-81f03be6f9793ab9.js +1 -0
  362. package/.next/standalone/.next/static/chunks/{94655-1c75e0590a66215e.js → 66969-12f0b22c51f5a410.js} +1 -1
  363. package/.next/standalone/.next/static/chunks/70536-b8bf71098ae11f07.js +1 -0
  364. package/.next/standalone/.next/static/chunks/71350-88c2649fc693c1e8.js +1 -0
  365. package/.next/standalone/.next/static/chunks/78389-b32edc6bd5c570a9.js +1 -0
  366. package/.next/standalone/.next/static/chunks/78584-eb2fa8cf2f266329.js +1 -0
  367. package/.next/standalone/.next/static/chunks/78917-150ed14a99844aab.js +1 -0
  368. package/.next/standalone/.next/static/chunks/8574-b9739eb8d054c793.js +1 -0
  369. package/.next/standalone/.next/static/chunks/93346-5489d90bc2d57190.js +1 -0
  370. package/.next/standalone/.next/static/chunks/99373.0768feb3a08c7da3.js +1 -0
  371. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-0a28456fea4ce95a.js +1 -0
  372. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/{page-63a6a5b6cf9ecf87.js → page-a79969c5c9aadacd.js} +1 -1
  373. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-4bc556c2fc8f3d24.js +1 -0
  374. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-e00752a72c31663f.js +1 -0
  375. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-ef82b871895245ea.js +1 -0
  376. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-2c9bcbd11ddb8661.js +1 -0
  377. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-630b168598513ce8.js +1 -0
  378. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-99639479cc98965f.js +1 -0
  379. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-335f2450e44a0fba.js +1 -0
  380. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-4a191d69b2b6e880.js +1 -0
  381. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-0faebb478be4c85d.js +1 -0
  382. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-c36345b80cc5bf5c.js → page-583e58d4d689d38b.js} +1 -1
  383. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-2e8fcb72687100df.js +1 -0
  384. package/.next/standalone/.next/static/chunks/app/admin/companies/[uuid]/page-cc2fe0c5b749cd2f.js +1 -0
  385. package/.next/standalone/.next/static/chunks/app/admin/companies/new/{page-55fb2107f955c9ed.js → page-4f3b3c449c61f6d2.js} +1 -1
  386. package/.next/standalone/.next/static/chunks/app/admin/companies/page-ef720c2b0856166c.js +1 -0
  387. package/.next/standalone/.next/static/chunks/app/admin/page-0cc8cf246db43e5d.js +1 -0
  388. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  389. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-4bc556c2fc8f3d24.js +1 -0
  390. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-4bc556c2fc8f3d24.js +1 -0
  391. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-4bc556c2fc8f3d24.js +1 -0
  392. package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-4bc556c2fc8f3d24.js +1 -0
  393. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  394. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-4bc556c2fc8f3d24.js +1 -0
  395. package/.next/standalone/.next/static/chunks/app/api/agents/route-4bc556c2fc8f3d24.js +1 -0
  396. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  397. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-4bc556c2fc8f3d24.js +1 -0
  398. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-4bc556c2fc8f3d24.js +1 -0
  399. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-4bc556c2fc8f3d24.js +1 -0
  400. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-4bc556c2fc8f3d24.js +1 -0
  401. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-4bc556c2fc8f3d24.js +1 -0
  402. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-4bc556c2fc8f3d24.js +1 -0
  403. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-4bc556c2fc8f3d24.js +1 -0
  404. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-4bc556c2fc8f3d24.js +1 -0
  405. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-4bc556c2fc8f3d24.js +1 -0
  406. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-4bc556c2fc8f3d24.js +1 -0
  407. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-4bc556c2fc8f3d24.js +1 -0
  408. package/.next/standalone/.next/static/chunks/app/api/comments/route-4bc556c2fc8f3d24.js +1 -0
  409. package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-4bc556c2fc8f3d24.js +1 -0
  410. package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-4bc556c2fc8f3d24.js +1 -0
  411. package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-4bc556c2fc8f3d24.js +1 -0
  412. package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-4bc556c2fc8f3d24.js +1 -0
  413. package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-4bc556c2fc8f3d24.js +1 -0
  414. package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-4bc556c2fc8f3d24.js +1 -0
  415. package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-4bc556c2fc8f3d24.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-4bc556c2fc8f3d24.js +1 -0
  417. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-4bc556c2fc8f3d24.js +1 -0
  418. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-4bc556c2fc8f3d24.js +1 -0
  419. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-4bc556c2fc8f3d24.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-4bc556c2fc8f3d24.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-4bc556c2fc8f3d24.js +1 -0
  423. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-4bc556c2fc8f3d24.js +1 -0
  424. package/.next/standalone/.next/static/chunks/app/api/events/route-4bc556c2fc8f3d24.js +1 -0
  425. package/.next/standalone/.next/static/chunks/app/api/health/route-4bc556c2fc8f3d24.js +1 -0
  426. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-4bc556c2fc8f3d24.js +1 -0
  427. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-4bc556c2fc8f3d24.js +1 -0
  428. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-4bc556c2fc8f3d24.js +1 -0
  429. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-4bc556c2fc8f3d24.js +1 -0
  430. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-4bc556c2fc8f3d24.js +1 -0
  431. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  432. package/.next/standalone/.next/static/chunks/app/api/mcp/route-4bc556c2fc8f3d24.js +1 -0
  433. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-4bc556c2fc8f3d24.js +1 -0
  434. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-4bc556c2fc8f3d24.js +1 -0
  435. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-4bc556c2fc8f3d24.js +1 -0
  436. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-4bc556c2fc8f3d24.js +1 -0
  437. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-4bc556c2fc8f3d24.js +1 -0
  438. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-4bc556c2fc8f3d24.js +1 -0
  439. package/.next/standalone/.next/static/chunks/app/api/notifications/route-4bc556c2fc8f3d24.js +1 -0
  440. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-4bc556c2fc8f3d24.js +1 -0
  441. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-4bc556c2fc8f3d24.js +1 -0
  442. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  443. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-4bc556c2fc8f3d24.js +1 -0
  444. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-4bc556c2fc8f3d24.js +1 -0
  445. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-4bc556c2fc8f3d24.js +1 -0
  446. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-4bc556c2fc8f3d24.js +1 -0
  447. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-4bc556c2fc8f3d24.js +1 -0
  448. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-4bc556c2fc8f3d24.js +1 -0
  449. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-4bc556c2fc8f3d24.js +1 -0
  450. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-4bc556c2fc8f3d24.js +1 -0
  451. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-4bc556c2fc8f3d24.js +1 -0
  452. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-4bc556c2fc8f3d24.js +1 -0
  453. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  454. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-4bc556c2fc8f3d24.js +1 -0
  455. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-4bc556c2fc8f3d24.js +1 -0
  456. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-4bc556c2fc8f3d24.js +1 -0
  457. package/.next/standalone/.next/static/chunks/app/api/projects/route-4bc556c2fc8f3d24.js +1 -0
  458. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-4bc556c2fc8f3d24.js +1 -0
  459. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-4bc556c2fc8f3d24.js +1 -0
  460. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-4bc556c2fc8f3d24.js +1 -0
  461. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-4bc556c2fc8f3d24.js +1 -0
  462. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  463. package/.next/standalone/.next/static/chunks/app/api/search/route-4bc556c2fc8f3d24.js +1 -0
  464. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  465. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-4bc556c2fc8f3d24.js +1 -0
  466. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-4bc556c2fc8f3d24.js +1 -0
  467. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-4bc556c2fc8f3d24.js +1 -0
  468. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-4bc556c2fc8f3d24.js +1 -0
  469. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-4bc556c2fc8f3d24.js +1 -0
  470. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-4bc556c2fc8f3d24.js +1 -0
  471. package/.next/standalone/.next/static/chunks/app/layout-9963339572e2e64e.js +1 -0
  472. package/.next/standalone/.next/static/chunks/app/login/admin/page-d470135f7aab6c5e.js +1 -0
  473. package/.next/standalone/.next/static/chunks/app/login/callback/{page-48a34c31a0f8e58c.js → page-0edd93f50cb4f6ea.js} +1 -1
  474. package/.next/standalone/.next/static/chunks/app/login/page-c64b8d40a0781b4c.js +1 -0
  475. package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-e0444ad8b50121f5.js +1 -0
  476. package/.next/standalone/.next/static/chunks/app/onboarding/page-e9a69a0c537c704f.js +1 -0
  477. package/.next/standalone/.next/static/chunks/{webpack-4a8c75a0d40c2106.js → webpack-87284a4533d77eaf.js} +1 -1
  478. package/.next/standalone/.next/static/css/{84edd78de243cde6.css → b496025c9cd768cc.css} +1 -1
  479. package/.next/standalone/.next/static/css/e78b3c856420a09f.css +1 -0
  480. package/.next/standalone/.next/static/media/013b72fa676f92e0-s.woff2 +0 -0
  481. package/.next/standalone/.next/static/media/2b5b02fc7e511755-s.woff2 +0 -0
  482. package/.next/standalone/.next/static/media/65f03d54ccadf4a8-s.woff2 +0 -0
  483. package/.next/standalone/.next/static/media/7d4881bb7e1bf84d-s.p.woff2 +0 -0
  484. package/.next/standalone/.next/static/media/b9408752a0c24fb9-s.woff2 +0 -0
  485. package/.next/standalone/.next/static/media/e038a29029a234f2-s.woff2 +0 -0
  486. package/.next/standalone/package.json +3 -1
  487. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  488. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  489. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +2 -2
  490. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  491. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +19 -3
  492. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  493. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
  494. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  495. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  496. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
  497. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
  498. package/.next/standalone/public/skill/chorus/SKILL.md +2 -2
  499. package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
  500. package/.next/standalone/public/skill/idea-chorus/SKILL.md +19 -3
  501. package/.next/standalone/public/skill/package.json +1 -1
  502. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +1 -1
  503. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +1 -1
  504. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  505. package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
  506. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +1 -1
  507. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +1 -1
  508. package/README.md +29 -0
  509. package/README.zh.md +29 -0
  510. package/chorus.mjs +120 -16
  511. package/cli/backfill.mjs +190 -0
  512. package/cli/chorus-client.mjs +154 -0
  513. package/cli/claude-spawner.mjs +415 -0
  514. package/cli/client-args.mjs +146 -0
  515. package/cli/control-handler.mjs +180 -0
  516. package/cli/credentials.mjs +155 -0
  517. package/cli/daemon-agent.mjs +38 -0
  518. package/cli/daemon-banner.mjs +80 -0
  519. package/cli/daemon-config.mjs +84 -0
  520. package/cli/daemon-lifecycle.mjs +191 -0
  521. package/cli/daemon-permission-mode.mjs +68 -0
  522. package/cli/daemon-rest-client.mjs +272 -0
  523. package/cli/daemon.mjs +572 -0
  524. package/cli/event-router.mjs +248 -0
  525. package/cli/interrupt-reporter.mjs +87 -0
  526. package/cli/lineage.mjs +155 -0
  527. package/cli/login.mjs +151 -0
  528. package/cli/mcp-config.mjs +58 -0
  529. package/cli/process-killer.mjs +205 -0
  530. package/cli/prompts.mjs +273 -0
  531. package/cli/sse-listener.mjs +258 -0
  532. package/cli/turn-reporter.mjs +75 -0
  533. package/cli/upload-hooks.mjs +400 -0
  534. package/cli/wake-queue.mjs +121 -0
  535. package/cli/waker.mjs +475 -0
  536. package/package.json +3 -1
  537. package/prisma/migrations/20260611101056_add_idea_lineage/migration.sql +5 -0
  538. package/prisma/migrations/20260615082309_add_daemon_connection/migration.sql +37 -0
  539. package/prisma/migrations/20260616152622_add_daemon_task_execution/migration.sql +28 -0
  540. package/prisma/migrations/20260617013334_generalize_daemon_execution_to_any_resource/migration.sql +38 -0
  541. package/prisma/migrations/20260618022828_add_daemon_execution_interrupted/migration.sql +2 -0
  542. package/prisma/migrations/20260619055322_daemon_session_conversation/migration.sql +77 -0
  543. package/prisma/schema.prisma +368 -185
  544. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js +0 -2
  545. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js.nft.json +0 -1
  546. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page_client-reference-manifest.js +0 -1
  547. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js +0 -2
  548. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js.nft.json +0 -1
  549. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page_client-reference-manifest.js +0 -1
  550. package/.next/standalone/.next/server/chunks/1059.js +0 -1
  551. package/.next/standalone/.next/server/chunks/1165.js +0 -1
  552. package/.next/standalone/.next/server/chunks/1615.js +0 -31
  553. package/.next/standalone/.next/server/chunks/162.js +0 -16
  554. package/.next/standalone/.next/server/chunks/1871.js +0 -1
  555. package/.next/standalone/.next/server/chunks/2909.js +0 -98
  556. package/.next/standalone/.next/server/chunks/2990.js +0 -1
  557. package/.next/standalone/.next/server/chunks/3139.js +0 -1
  558. package/.next/standalone/.next/server/chunks/324.js +0 -1
  559. package/.next/standalone/.next/server/chunks/3555.js +0 -1
  560. package/.next/standalone/.next/server/chunks/3576.js +0 -1
  561. package/.next/standalone/.next/server/chunks/3611.js +0 -158
  562. package/.next/standalone/.next/server/chunks/4090.js +0 -13
  563. package/.next/standalone/.next/server/chunks/4343.js +0 -1
  564. package/.next/standalone/.next/server/chunks/4974.js +0 -1
  565. package/.next/standalone/.next/server/chunks/5491.js +0 -1
  566. package/.next/standalone/.next/server/chunks/5541.js +0 -1
  567. package/.next/standalone/.next/server/chunks/5561.js +0 -7
  568. package/.next/standalone/.next/server/chunks/6643.js +0 -1
  569. package/.next/standalone/.next/server/chunks/6767.js +0 -1
  570. package/.next/standalone/.next/server/chunks/7228.js +0 -2
  571. package/.next/standalone/.next/server/chunks/7462.js +0 -255
  572. package/.next/standalone/.next/server/chunks/7621.js +0 -1
  573. package/.next/standalone/.next/server/chunks/8144.js +0 -1
  574. package/.next/standalone/.next/server/chunks/8637.js +0 -1
  575. package/.next/standalone/.next/server/chunks/896.js +0 -1
  576. package/.next/standalone/.next/server/chunks/9508.js +0 -2
  577. package/.next/standalone/.next/server/chunks/9615.js +0 -1
  578. package/.next/standalone/.next/static/YJZurE1onX9K-RDNIplc5/_buildManifest.js +0 -1
  579. package/.next/standalone/.next/static/chunks/19126-12ce8ade288ce1dc.js +0 -1
  580. package/.next/standalone/.next/static/chunks/19898-2a3d83a3996794cd.js +0 -1
  581. package/.next/standalone/.next/static/chunks/20051-d9233fd4578d66cc.js +0 -1
  582. package/.next/standalone/.next/static/chunks/21932-bce5ba937d1603e1.js +0 -1
  583. package/.next/standalone/.next/static/chunks/23466-842c126491b753bc.js +0 -1
  584. package/.next/standalone/.next/static/chunks/35486-592daa5c9fdf701d.js +0 -1
  585. package/.next/standalone/.next/static/chunks/37880-4395be5cee4112fa.js +0 -1
  586. package/.next/standalone/.next/static/chunks/3853-f94afe2f83089c0d.js +0 -1
  587. package/.next/standalone/.next/static/chunks/4842-95cf4b7efd540e89.js +0 -1
  588. package/.next/standalone/.next/static/chunks/4860.1bebb2a898b170f6.js +0 -1
  589. package/.next/standalone/.next/static/chunks/51841-0e4e0e63b437dcfd.js +0 -1
  590. package/.next/standalone/.next/static/chunks/52206-6048525f57a21502.js +0 -1
  591. package/.next/standalone/.next/static/chunks/55469-ed5ff019ff71ef59.js +0 -1
  592. package/.next/standalone/.next/static/chunks/59296-4fa84fe82e2c7789.js +0 -1
  593. package/.next/standalone/.next/static/chunks/60011-b602fea2afba6992.js +0 -1
  594. package/.next/standalone/.next/static/chunks/70093-0ff6fd59445b5cb9.js +0 -1
  595. package/.next/standalone/.next/static/chunks/93346-c4468893138daac7.js +0 -1
  596. package/.next/standalone/.next/static/chunks/95627-8d9f6d2d88f7a641.js +0 -1
  597. package/.next/standalone/.next/static/chunks/95750-3d0d1d48995d1088.js +0 -1
  598. package/.next/standalone/.next/static/chunks/99373.13c8ac5da1ddabe9.js +0 -1
  599. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-b55a8d6d9bd27276.js +0 -1
  600. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-99297f77cce24151.js +0 -1
  601. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-fd10bca891f0f73a.js +0 -1
  602. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-2e000a7010d1e9ea.js +0 -1
  603. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-75e42d130404ca2b.js +0 -1
  604. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page-6a38c21b164cdc07.js +0 -1
  605. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/page-48c840cb3011bf97.js +0 -1
  606. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-7ec535fac7bbc75d.js +0 -1
  607. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-414b398806324ad1.js +0 -1
  608. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-8f91ed174c14d5f0.js +0 -1
  609. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-f6814f25bbacdbea.js +0 -1
  610. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-92e8980da0d98d48.js +0 -1
  611. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-ab87cbb18d0ee538.js +0 -1
  612. package/.next/standalone/.next/static/chunks/app/admin/companies/[uuid]/page-81682b4aa6859615.js +0 -1
  613. package/.next/standalone/.next/static/chunks/app/admin/companies/page-bbd92a7b214ddbf5.js +0 -1
  614. package/.next/standalone/.next/static/chunks/app/admin/page-c4167418611b4a6b.js +0 -1
  615. package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-99297f77cce24151.js +0 -1
  616. package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-99297f77cce24151.js +0 -1
  617. package/.next/standalone/.next/static/chunks/app/api/admin/login/route-99297f77cce24151.js +0 -1
  618. package/.next/standalone/.next/static/chunks/app/api/admin/session/route-99297f77cce24151.js +0 -1
  619. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-99297f77cce24151.js +0 -1
  620. package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-99297f77cce24151.js +0 -1
  621. package/.next/standalone/.next/static/chunks/app/api/agents/route-99297f77cce24151.js +0 -1
  622. package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-99297f77cce24151.js +0 -1
  623. package/.next/standalone/.next/static/chunks/app/api/api-keys/route-99297f77cce24151.js +0 -1
  624. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-99297f77cce24151.js +0 -1
  625. package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-99297f77cce24151.js +0 -1
  626. package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-99297f77cce24151.js +0 -1
  627. package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-99297f77cce24151.js +0 -1
  628. package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-99297f77cce24151.js +0 -1
  629. package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-99297f77cce24151.js +0 -1
  630. package/.next/standalone/.next/static/chunks/app/api/auth/me/route-99297f77cce24151.js +0 -1
  631. package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-99297f77cce24151.js +0 -1
  632. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-99297f77cce24151.js +0 -1
  633. package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-99297f77cce24151.js +0 -1
  634. package/.next/standalone/.next/static/chunks/app/api/comments/route-99297f77cce24151.js +0 -1
  635. package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-99297f77cce24151.js +0 -1
  636. package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-99297f77cce24151.js +0 -1
  637. package/.next/standalone/.next/static/chunks/app/api/events/route-99297f77cce24151.js +0 -1
  638. package/.next/standalone/.next/static/chunks/app/api/health/route-99297f77cce24151.js +0 -1
  639. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-99297f77cce24151.js +0 -1
  640. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-99297f77cce24151.js +0 -1
  641. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-99297f77cce24151.js +0 -1
  642. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-99297f77cce24151.js +0 -1
  643. package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-99297f77cce24151.js +0 -1
  644. package/.next/standalone/.next/static/chunks/app/api/mcp/route-99297f77cce24151.js +0 -1
  645. package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-99297f77cce24151.js +0 -1
  646. package/.next/standalone/.next/static/chunks/app/api/mentionables/route-99297f77cce24151.js +0 -1
  647. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-99297f77cce24151.js +0 -1
  648. package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-99297f77cce24151.js +0 -1
  649. package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-99297f77cce24151.js +0 -1
  650. package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-99297f77cce24151.js +0 -1
  651. package/.next/standalone/.next/static/chunks/app/api/notifications/route-99297f77cce24151.js +0 -1
  652. package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-99297f77cce24151.js +0 -1
  653. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-99297f77cce24151.js +0 -1
  654. package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-99297f77cce24151.js +0 -1
  655. package/.next/standalone/.next/static/chunks/app/api/project-groups/route-99297f77cce24151.js +0 -1
  656. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-99297f77cce24151.js +0 -1
  657. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-99297f77cce24151.js +0 -1
  658. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-99297f77cce24151.js +0 -1
  659. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-99297f77cce24151.js +0 -1
  660. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-99297f77cce24151.js +0 -1
  661. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-99297f77cce24151.js +0 -1
  662. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-99297f77cce24151.js +0 -1
  663. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-99297f77cce24151.js +0 -1
  664. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-99297f77cce24151.js +0 -1
  665. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-99297f77cce24151.js +0 -1
  666. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-99297f77cce24151.js +0 -1
  667. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-99297f77cce24151.js +0 -1
  668. package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-99297f77cce24151.js +0 -1
  669. package/.next/standalone/.next/static/chunks/app/api/projects/route-99297f77cce24151.js +0 -1
  670. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-99297f77cce24151.js +0 -1
  671. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-99297f77cce24151.js +0 -1
  672. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-99297f77cce24151.js +0 -1
  673. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-99297f77cce24151.js +0 -1
  674. package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-99297f77cce24151.js +0 -1
  675. package/.next/standalone/.next/static/chunks/app/api/search/route-99297f77cce24151.js +0 -1
  676. package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-99297f77cce24151.js +0 -1
  677. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-99297f77cce24151.js +0 -1
  678. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-99297f77cce24151.js +0 -1
  679. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-99297f77cce24151.js +0 -1
  680. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-99297f77cce24151.js +0 -1
  681. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-99297f77cce24151.js +0 -1
  682. package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-99297f77cce24151.js +0 -1
  683. package/.next/standalone/.next/static/chunks/app/layout-482dee7dace72c88.js +0 -1
  684. package/.next/standalone/.next/static/chunks/app/login/admin/page-4e72e6e4327ee7cd.js +0 -1
  685. package/.next/standalone/.next/static/chunks/app/login/page-dcb689dfe6e69879.js +0 -1
  686. package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-ee9bda8bfc4e0697.js +0 -1
  687. package/.next/standalone/.next/static/chunks/app/onboarding/page-922a196db6eb2385.js +0 -1
  688. package/.next/standalone/.next/static/css/bfe962487ee66da7.css +0 -1
  689. package/.next/standalone/.next/static/media/0f1bdadaf30e2d5f-s.woff2 +0 -0
  690. package/.next/standalone/.next/static/media/2c34d62a75506231-s.woff2 +0 -0
  691. package/.next/standalone/.next/static/media/601f5c280d60caca-s.woff2 +0 -0
  692. package/.next/standalone/.next/static/media/a115172161b307bb-s.woff2 +0 -0
  693. package/.next/standalone/.next/static/media/d100b2a099e34044-s.woff2 +0 -0
  694. package/.next/standalone/.next/static/media/f5271587012faf78-s.p.woff2 +0 -0
  695. /package/.next/standalone/.next/static/{YJZurE1onX9K-RDNIplc5 → 519aK55QLHaVN7b1TVDkB}/_ssgManifest.js +0 -0
@@ -0,0 +1,58 @@
1
+ // cli/mcp-config.mjs
2
+ // Writes the --mcp-config JSON that wires the spawned headless Claude to THIS
3
+ // daemon's Chorus server (url + cho_ key), into the OS temp dir (never a
4
+ // hardcoded /tmp), and cleans it up. Plain ESM, zero deps.
5
+
6
+ import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
7
+ import { tmpdir } from "node:os";
8
+ import { join } from "node:path";
9
+
10
+ /**
11
+ * Build the MCP config object that exposes the Chorus server to the spawned
12
+ * Claude as a `chorus` MCP server over Streamable HTTP (mirrors the entry the
13
+ * OpenClaw plugin writes — see mcp-registration.ts).
14
+ * @param {{ url: string, apiKey: string }} creds
15
+ */
16
+ export function buildMcpConfig({ url, apiKey }) {
17
+ return {
18
+ mcpServers: {
19
+ chorus: {
20
+ type: "http",
21
+ url: `${url.replace(/\/$/, "")}/api/mcp`,
22
+ headers: { Authorization: `Bearer ${apiKey}` },
23
+ },
24
+ },
25
+ };
26
+ }
27
+
28
+ /**
29
+ * Write the MCP config to a fresh temp file under os.tmpdir() and return its
30
+ * path plus a cleanup function. The caller MUST call cleanup() when the wake
31
+ * completes (or register it for process exit).
32
+ *
33
+ * @param {{ url: string, apiKey: string }} creds
34
+ * @param {{ tmp?: string, mkdtemp?: typeof mkdtempSync, write?: typeof writeFileSync, rm?: typeof rmSync }} [deps]
35
+ * @returns {{ path: string, cleanup: () => void }}
36
+ */
37
+ export function writeMcpConfig(creds, deps = {}) {
38
+ const tmp = deps.tmp ?? tmpdir();
39
+ const mkdtemp = deps.mkdtemp ?? mkdtempSync;
40
+ const write = deps.write ?? writeFileSync;
41
+ const rm = deps.rm ?? rmSync;
42
+
43
+ const dir = mkdtemp(join(tmp, "chorus-mcp-"));
44
+ const path = join(dir, "mcp.json");
45
+ write(path, JSON.stringify(buildMcpConfig(creds), null, 2), { mode: 0o600 });
46
+
47
+ let cleaned = false;
48
+ const cleanup = () => {
49
+ if (cleaned) return;
50
+ cleaned = true;
51
+ try {
52
+ rm(dir, { recursive: true, force: true });
53
+ } catch {
54
+ // best-effort; temp dir is reclaimed by the OS regardless
55
+ }
56
+ };
57
+ return { path, cleanup };
58
+ }
@@ -0,0 +1,205 @@
1
+ // cli/process-killer.mjs
2
+ // Two-stage, cross-platform process-tree killer for the daemon's reverse control
3
+ // channel (子3 — daemon-interrupt-resume, Tech Design "Killer contract"). When an
4
+ // authorized interrupt is verified, the daemon must STOP a running headless-Claude
5
+ // subprocess — first gracefully (SIGINT, so the model can flush in-progress work),
6
+ // then forcefully if it does not exit within a configurable window. Plain ESM, ZERO
7
+ // new npm deps (CLAUDE.md pitfall #9) and Bash-3.2-safe (no shell touched).
8
+ //
9
+ // Why a process TREE, not just the direct child:
10
+ // • POSIX: Claude may itself spawn children. Linux does NOT cascade a signal to a
11
+ // parent's children (Node docs: "On Linux, child processes of child processes
12
+ // will not be terminated when attempting to kill their parent"). So the daemon
13
+ // spawns the child `detached: true` — which makes it a PROCESS GROUP LEADER
14
+ // (its pgid === its pid) — and we signal the whole GROUP via the negative-pid
15
+ // form `process.kill(-pid, sig)`. That reaches every descendant in the group.
16
+ // • Windows: there is no per-tree signal. We escalate with the platform
17
+ // `taskkill /PID <pid> /T /F` command — `/T` ends the process AND its child
18
+ // processes (the tree), `/F` forces termination. Verified against Microsoft
19
+ // Learn's taskkill reference. The graceful stage is best-effort `child.kill()`
20
+ // on the direct process only (Node delivers SIGINT to the child on Windows; the
21
+ // signal cannot reach a tree there). The Windows path is NOT runtime-verifiable
22
+ // in this (POSIX) environment — re-verify on a real Windows host before claiming
23
+ // Windows support.
24
+ //
25
+ // Contract (Tech Design): killProcessTree(child, { sigintTimeoutMs, platform,
26
+ // logger, spawnImpl, nowKill }) → Promise<{ killed, escalated, signaled }>. It is
27
+ // pure-ish (platform + spawn injectable for tests), NEVER throws into the wake path
28
+ // (every signal/spawn is try/caught), and LOGS visibly (memory: no-silent-errors).
29
+
30
+ import { spawn as nodeSpawn } from "node:child_process";
31
+
32
+ const NOOP_LOGGER = { info() {}, warn() {}, error() {} };
33
+
34
+ /** Default escalation window before a forceful kill (Tech Design / spec: 10s). */
35
+ export const DEFAULT_SIGINT_TIMEOUT_MS = 10_000;
36
+
37
+ /**
38
+ * Send SIGINT to a POSIX child's PROCESS GROUP (negative pid). The child must have
39
+ * been spawned `detached: true` so it leads its own group and the group kill reaches
40
+ * grandchildren. Returns true iff the signal was delivered without throwing.
41
+ * @param {number} pid
42
+ * @param {string} signal "SIGINT" | "SIGKILL"
43
+ * @param {(pid: number, signal: string) => void} killImpl injectable process.kill
44
+ * @param {{warn(m:string):void}} logger
45
+ * @returns {boolean}
46
+ */
47
+ function signalGroup(pid, signal, killImpl, logger) {
48
+ try {
49
+ // Negative pid → signal the entire process group led by `pid`. This is the
50
+ // POSIX semantics process.kill(2) implements; Node forwards it verbatim.
51
+ killImpl(-pid, signal);
52
+ return true;
53
+ } catch (err) {
54
+ // ESRCH (already gone) is the common, benign case after a graceful exit; any
55
+ // other error (e.g. EPERM) is logged but never thrown — the wake path must not
56
+ // crash because a stop signal failed.
57
+ logger.warn(`[Chorus] kill(-${pid}, ${signal}) failed: ${err}`);
58
+ return false;
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Two-stage stop of a running subprocess TREE. Never throws.
64
+ *
65
+ * Stage 1 (graceful): SIGINT.
66
+ * • POSIX: `process.kill(-pid, "SIGINT")` — the whole group.
67
+ * • Windows: best-effort `child.kill("SIGINT")` on the direct process (no tree
68
+ * signal exists; taskkill below is the tree-reaching escalation).
69
+ * Then wait up to `sigintTimeoutMs` for the child to exit (resolved via the child's
70
+ * own 'exit'/'close' — the caller observes that and aborts our timer by resolving
71
+ * early through `child.exitObserved`). If the child has not exited when the timer
72
+ * fires:
73
+ * Stage 2 (forceful):
74
+ * • POSIX: `process.kill(-pid, "SIGKILL")` — the whole group.
75
+ * • Windows: spawn `taskkill /PID <pid> /T /F`.
76
+ *
77
+ * @param {{ pid?: number, killed?: boolean, kill?: Function, once?: Function, on?: Function }} child
78
+ * The live ChildProcess (or a test double). `pid` MUST be present to target a tree.
79
+ * @param {{
80
+ * sigintTimeoutMs?: number,
81
+ * platform?: NodeJS.Platform,
82
+ * logger?: { info(m:string):void, warn(m:string):void, error(m:string):void },
83
+ * killImpl?: (pid: number, signal: string) => void, Injectable process.kill (POSIX group signal).
84
+ * spawnImpl?: typeof nodeSpawn, Injectable spawn (Windows taskkill).
85
+ * hasExited?: () => boolean, Probe: has the child already exited?
86
+ * waitForExit?: (ms: number) => Promise<boolean>, Resolve true if child exits within ms, else false.
87
+ * }} [opts]
88
+ * @returns {Promise<{ signaled: boolean, killed: boolean, escalated: boolean }>}
89
+ * signaled: the graceful SIGINT was delivered.
90
+ * escalated: a forceful kill was issued (child did not exit within the window).
91
+ * killed: a stop action (graceful or forceful) was issued at all.
92
+ */
93
+ export async function killProcessTree(child, opts = {}) {
94
+ const platform = opts.platform ?? process.platform;
95
+ const logger = opts.logger ?? NOOP_LOGGER;
96
+ const killImpl = opts.killImpl ?? ((pid, signal) => process.kill(pid, signal));
97
+ const spawnImpl = opts.spawnImpl ?? nodeSpawn;
98
+ const sigintTimeoutMs = opts.sigintTimeoutMs ?? DEFAULT_SIGINT_TIMEOUT_MS;
99
+ const isWin = platform === "win32";
100
+
101
+ if (!child || typeof child.pid !== "number") {
102
+ // No live process to target — log and no-op (never throw into the wake path).
103
+ logger.warn("[Chorus] killProcessTree: no child pid to target; ignoring");
104
+ return { signaled: false, killed: false, escalated: false };
105
+ }
106
+ const pid = child.pid;
107
+
108
+ // --- Stage 1: graceful SIGINT ---
109
+ let signaled;
110
+ if (isWin) {
111
+ // Windows: deliver SIGINT to the direct child only (best-effort). Node maps
112
+ // SIGINT to a console-stop on Windows; it cannot reach a tree there.
113
+ try {
114
+ signaled = child.kill?.("SIGINT") ?? false;
115
+ } catch (err) {
116
+ logger.warn(`[Chorus] child.kill("SIGINT") failed: ${err}`);
117
+ signaled = false;
118
+ }
119
+ logger.info(`[Chorus] interrupt: sent SIGINT to pid ${pid} (windows, direct child)`);
120
+ } else {
121
+ signaled = signalGroup(pid, "SIGINT", killImpl, logger);
122
+ logger.info(`[Chorus] interrupt: sent SIGINT to process group -${pid} (posix)`);
123
+ }
124
+
125
+ // --- Wait for graceful exit within the window ---
126
+ const exitedGracefully = await waitForChildExit(child, sigintTimeoutMs, opts, logger);
127
+ if (exitedGracefully) {
128
+ logger.info(`[Chorus] interrupt: pid ${pid} exited gracefully within ${sigintTimeoutMs}ms`);
129
+ return { signaled, killed: true, escalated: false };
130
+ }
131
+
132
+ // --- Stage 2: forceful tree kill ---
133
+ if (isWin) {
134
+ // taskkill /PID <pid> /T /F — /T ends the tree (child processes), /F forces it.
135
+ try {
136
+ const tk = spawnImpl("taskkill", ["/PID", String(pid), "/T", "/F"], {
137
+ stdio: "ignore",
138
+ windowsHide: true,
139
+ });
140
+ // taskkill failures are logged, never thrown.
141
+ tk?.on?.("error", (err) => logger.warn(`[Chorus] taskkill spawn error: ${err}`));
142
+ logger.info(`[Chorus] interrupt: escalated — taskkill /PID ${pid} /T /F (windows)`);
143
+ } catch (err) {
144
+ logger.warn(`[Chorus] taskkill escalation failed for pid ${pid}: ${err}`);
145
+ }
146
+ } else {
147
+ signalGroup(pid, "SIGKILL", killImpl, logger);
148
+ logger.info(`[Chorus] interrupt: escalated — SIGKILL to process group -${pid} (posix)`);
149
+ }
150
+ return { signaled, killed: true, escalated: true };
151
+ }
152
+
153
+ /**
154
+ * Resolve true if the child exits within `ms`, else false (timeout). Prefers an
155
+ * injected `waitForExit` (tests); otherwise races the child's own 'exit' event
156
+ * against a timer, with an immediate short-circuit if it has already exited.
157
+ * Never throws.
158
+ */
159
+ async function waitForChildExit(child, ms, opts, logger) {
160
+ if (typeof opts.waitForExit === "function") {
161
+ try {
162
+ return await opts.waitForExit(ms);
163
+ } catch (err) {
164
+ logger.warn(`[Chorus] waitForExit probe failed: ${err}`);
165
+ return false;
166
+ }
167
+ }
168
+ // Already exited? (Node sets child.killed after a delivered signal, but exitCode/
169
+ // signalCode is the authoritative "has terminated" probe.)
170
+ const hasExited =
171
+ typeof opts.hasExited === "function"
172
+ ? safeBool(opts.hasExited, logger)
173
+ : child.exitCode !== null && child.exitCode !== undefined;
174
+ if (hasExited) return true;
175
+
176
+ return await new Promise((resolve) => {
177
+ let settled = false;
178
+ const finish = (value) => {
179
+ if (settled) return;
180
+ settled = true;
181
+ clearTimeout(timer);
182
+ resolve(value);
183
+ };
184
+ const timer = setTimeout(() => finish(false), ms);
185
+ // unref so a pending timer never keeps the daemon process alive on shutdown.
186
+ timer?.unref?.();
187
+ try {
188
+ child.once?.("exit", () => finish(true));
189
+ child.once?.("close", () => finish(true));
190
+ } catch (err) {
191
+ logger.warn(`[Chorus] failed to attach exit listener: ${err}`);
192
+ finish(false);
193
+ }
194
+ });
195
+ }
196
+
197
+ /** Run a boolean probe, treating a throw as false (never propagate). */
198
+ function safeBool(fn, logger) {
199
+ try {
200
+ return Boolean(fn());
201
+ } catch (err) {
202
+ logger.warn(`[Chorus] hasExited probe threw: ${err}`);
203
+ return false;
204
+ }
205
+ }
@@ -0,0 +1,273 @@
1
+ // cli/prompts.mjs
2
+ // Per-notification-action prompt builders. Ported from the OpenClaw plugin's
3
+ // event-router wake messages. The spawned Claude is headless and acts only
4
+ // through the chorus_* MCP tools — these prompts tell it what happened and
5
+ // which tools to use.
6
+ //
7
+ // HEADLESS GUARD (add-daemon-headless-interaction-guard): a daemon-woken session
8
+ // has NO human at the terminal, so it must never call AskUserQuestion or any
9
+ // blocking terminal prompt — that would hang or be silently dropped. buildPrompt
10
+ // prepends HEADLESS_PREAMBLE (below) to EVERY non-null wake body so the rule rides
11
+ // every turn, new or --resume (the daemon rebuilds the prompt on each wake, so a
12
+ // per-turn prefix persists across resumes without touching the spawn argv — there
13
+ // is deliberately no --append-system-prompt; see claude-spawner.mjs). The preamble
14
+ // also names the CHORUS_DAEMON_HEADLESS=1 env signal the spawner sets.
15
+
16
+ /**
17
+ * @typedef {Object} NotificationDetail
18
+ * @property {string} uuid
19
+ * @property {string} projectUuid
20
+ * @property {string} entityType
21
+ * @property {string} entityUuid
22
+ * @property {string} entityTitle
23
+ * @property {string} action
24
+ * @property {string} message
25
+ * @property {string} actorType
26
+ * @property {string} actorUuid
27
+ * @property {string} actorName
28
+ * @property {string} [instructionText] Free-text body of a `human_instruction` wake
29
+ * (子1 — daemon-session-conversation). The server denormalizes the canonical turn
30
+ * promptText onto the wake notification so the daemon reads it in the
31
+ * `chorus_get_notifications` call it already makes (zero extra fetch); the
32
+ * event-router threads it here. Present only for the `human_instruction` action.
33
+ */
34
+
35
+ /** @param {NotificationDetail} n @param {string} entityType */
36
+ function mentionGuidance(n, entityType) {
37
+ return (
38
+ `After completing your work, post a comment on this ${entityType} using ` +
39
+ `chorus_add_comment with @mention: @[${n.actorName}](${n.actorType}:${n.actorUuid})`
40
+ );
41
+ }
42
+
43
+ /**
44
+ * Shared headless preamble prepended to EVERY wake prompt (add-daemon-headless-
45
+ * interaction-guard). A daemon-woken session is a headless `claude -p` run with no
46
+ * human at the terminal, so AskUserQuestion (and any blocking terminal prompt) reaches
47
+ * no one — it hangs or is dropped, stalling the agent or forcing a unilateral decision.
48
+ * This block tells the agent that fact and routes every human-decision point through
49
+ * Chorus's async channels instead.
50
+ *
51
+ * Wording note: the re-routing guidance names `chorus_add_comment` and describes the
52
+ * elaboration panel in prose ON PURPOSE — it must NOT embed the literal
53
+ * `chorus_pm_start_elaboration` / `chorus_pm_validate_elaboration` tool names, because
54
+ * this preamble rides EVERY wake including `elaboration_verified` (write-the-proposal),
55
+ * whose contract is that it never mentions the answer-questions tools. Keep it that way.
56
+ *
57
+ * Kept compact: it is paid on every wake, so each line costs tokens per wake.
58
+ */
59
+ export const HEADLESS_PREAMBLE = [
60
+ "[Headless daemon session] You are a headless `claude -p` session woken by the Chorus",
61
+ "daemon. There is NO human at the terminal, and the environment variable",
62
+ "CHORUS_DAEMON_HEADLESS=1 is set.",
63
+ "",
64
+ "Do NOT call AskUserQuestion or any interactive / blocking terminal prompt — it reaches",
65
+ "no one and will hang or be silently dropped. Whenever you would ask the human something,",
66
+ "route it through Chorus instead: post a comment with chorus_add_comment and @mention the",
67
+ "requester, and/or open an elaboration round the human answers in the Chorus UI panel.",
68
+ "",
69
+ "A few examples (not exhaustive): when a skill says to present elaboration questions via",
70
+ "AskUserQuestion, open an elaboration round and @mention the requester in a comment so they",
71
+ "answer in the UI; when a skill says to ask permission before skipping a step, do not skip",
72
+ "silently — record the reason in a Chorus comment; when a skill offers to write a report,",
73
+ "create it directly or skip it, never prompt for it.",
74
+ "",
75
+ "After you post something that needs a human decision, END THE TURN and leave the work",
76
+ "pending — do not poll or wait for a synchronous reply. The human's later comment or",
77
+ "elaboration answer wakes a fresh turn that continues the work.",
78
+ ].join("\n");
79
+
80
+ /**
81
+ * Build the wake prompt for a notification, or null if the action has no
82
+ * wake (caller ignores those). Prepends HEADLESS_PREAMBLE to every non-null body
83
+ * (a null body — unknown action / empty human_instruction — stays null so the router
84
+ * still skips it and no contentless subprocess is spawned). The per-action body is
85
+ * produced by buildPromptBody below.
86
+ * @param {NotificationDetail} n
87
+ * @returns {string | null}
88
+ */
89
+ export function buildPrompt(n) {
90
+ const body = buildPromptBody(n);
91
+ if (body == null) return null;
92
+ return `${HEADLESS_PREAMBLE}\n\n${body}`;
93
+ }
94
+
95
+ /**
96
+ * The per-action wake body (without the headless preamble). Mirrors the OpenClaw
97
+ * event-router handlers; returns null for actions that have no wake.
98
+ * @param {NotificationDetail} n
99
+ * @returns {string | null}
100
+ */
101
+ function buildPromptBody(n) {
102
+ switch (n.action) {
103
+ case "task_assigned":
104
+ return (
105
+ `[Chorus] Task assigned: ${n.entityTitle}. Task UUID: ${n.entityUuid}, ` +
106
+ `Project UUID: ${n.projectUuid}. Use chorus_get_task to review the task, ` +
107
+ `then chorus_claim_task to start work.\n${mentionGuidance(n, "task")}`
108
+ );
109
+ case "mentioned":
110
+ return (
111
+ `[Chorus] You were @mentioned in ${n.entityType} '${n.entityTitle}' ` +
112
+ `(entityType: ${n.entityType}, entityUuid: ${n.entityUuid}, projectUuid: ${n.projectUuid}): ${n.message}\n` +
113
+ `Review the ${n.entityType} and use chorus_get_comments (targetType: "${n.entityType}", ` +
114
+ `targetUuid: "${n.entityUuid}") to see the conversation, then respond.\n${mentionGuidance(n, n.entityType)}`
115
+ );
116
+ case "elaboration_requested":
117
+ return (
118
+ `[Chorus] Elaboration requested for idea '${n.entityTitle}' ` +
119
+ `(ideaUuid: ${n.entityUuid}, projectUuid: ${n.projectUuid}). ` +
120
+ `Use chorus_get_elaboration to review the questions.`
121
+ );
122
+ case "elaboration_answered":
123
+ return (
124
+ `[Chorus] Elaboration answers were submitted for idea '${n.entityTitle}' ` +
125
+ `(ideaUuid: ${n.entityUuid}, projectUuid: ${n.projectUuid}). Use chorus_get_elaboration to review the ` +
126
+ `answers, then either resolve the elaboration (chorus_pm_validate_elaboration) and proceed to a proposal, ` +
127
+ `or open another round (chorus_pm_start_elaboration) if gaps remain.\n${mentionGuidance(n, "idea")}`
128
+ );
129
+ case "elaboration_verified":
130
+ // A human clicked "Verify Elaborate" (add-elaboration-verify-wake). This is NOT a
131
+ // request to answer questions — the elaboration is DONE and the idea is now
132
+ // `elaborated`. The agent's job on this wake is to WRITE THE PROPOSAL via the
133
+ // existing proposal flow, anchored to the idea's same session that ran elaboration.
134
+ return (
135
+ `[Chorus] Elaboration for idea '${n.entityTitle}' was VERIFIED by a human ` +
136
+ `(ideaUuid: ${n.entityUuid}, projectUuid: ${n.projectUuid}). The idea is now elaborated — do NOT ` +
137
+ `answer elaboration questions. Proceed to WRITE THE PROPOSAL: gather context with chorus_get_idea and ` +
138
+ `chorus_get_elaboration, then author the proposal via the existing proposal flow ` +
139
+ `(chorus_pm_create_proposal / the proposal skill).\n${mentionGuidance(n, "idea")}`
140
+ );
141
+ case "proposal_rejected":
142
+ return (
143
+ `[Chorus] Proposal '${n.entityTitle}' was REJECTED (proposalUuid: ${n.entityUuid}, ` +
144
+ `projectUuid: ${n.projectUuid}). Review note: "${n.message}". Use chorus_get_proposal to review, ` +
145
+ `fix issues with chorus_pm_update_task_draft / chorus_pm_update_document_draft, then ` +
146
+ `chorus_pm_validate_proposal and chorus_pm_submit_proposal to resubmit.\n${mentionGuidance(n, "proposal")}`
147
+ );
148
+ case "proposal_approved":
149
+ return (
150
+ `[Chorus] Proposal '${n.entityTitle}' was APPROVED (proposalUuid: ${n.entityUuid}, ` +
151
+ `projectUuid: ${n.projectUuid}). Its documents and tasks have been created. Use ` +
152
+ `chorus_get_unblocked_tasks (projectUuid: "${n.projectUuid}") to find tasks ready to start.\n${mentionGuidance(n, "proposal")}`
153
+ );
154
+ case "idea_claimed":
155
+ return (
156
+ `[Chorus] Idea '${n.entityTitle}' was assigned to you (ideaUuid: ${n.entityUuid}, ` +
157
+ `projectUuid: ${n.projectUuid}). Use chorus_get_idea to review it, then claim it ` +
158
+ `(chorus_claim_idea) to begin elaboration.\n${mentionGuidance(n, "idea")}`
159
+ );
160
+ case "task_reopened":
161
+ return (
162
+ `[Chorus] Task '${n.entityTitle}' was reopened and needs rework (taskUuid: ${n.entityUuid}, ` +
163
+ `projectUuid: ${n.projectUuid}). Use chorus_get_task and chorus_get_comments to see the ` +
164
+ `verification feedback, then fix the issues.\n${mentionGuidance(n, "task")}`
165
+ );
166
+ case "resource_resumed":
167
+ // A user resumed a previously-interrupted wake (子3 — daemon-interrupt-resume).
168
+ // Resume is entity-generic (task / idea / proposal / document) and arrives as a
169
+ // synthetic dispatch off the reverse CONTROL channel — NOT a persisted
170
+ // notification — so it carries only entityType + entityUuid (no actor / title /
171
+ // project). Because the direct-idea transcript already exists on disk, the
172
+ // daemon's isNewSession probe selects `claude --resume <directIdeaUuid>`
173
+ // automatically, so the woken Claude continues the SAME session where it left
174
+ // off. It intentionally has no @mention (a self-resume has no actor to address).
175
+ return (
176
+ `[Chorus] Your work on this ${n.entityType} was RESUMED after an interrupt ` +
177
+ `(${n.entityType}Uuid: ${n.entityUuid}). Continue where you left off — re-check the ` +
178
+ `current state with the appropriate chorus_get_* tool (e.g. chorus_get_task / ` +
179
+ `chorus_get_idea) plus chorus_get_comments for any new feedback, then resume the work ` +
180
+ `you had started.`
181
+ );
182
+ case "task_verified":
183
+ return (
184
+ `[Chorus] Task '${n.entityTitle}' was verified and is now done (taskUuid: ${n.entityUuid}, ` +
185
+ `projectUuid: ${n.projectUuid}). Use chorus_get_unblocked_tasks (projectUuid: "${n.projectUuid}") ` +
186
+ `to see whether this unblocked any tasks that are now ready to start.`
187
+ );
188
+ case "human_instruction": {
189
+ // A human typed a free-text instruction for this daemon's session (子1 — the 子2
190
+ // UI send box, or a backfilled pending instruction). The canonical text lives on
191
+ // the server-side turn's promptText and is denormalized onto the wake
192
+ // notification as `instructionText`, so the daemon reads it WITHOUT an extra
193
+ // fetch and the event-router threads it here. The instruction is delivered on the
194
+ // session the daemon is already running (idea-anchored or the entity itself), so
195
+ // continuation is naturally `claude --resume` of that session. If the body is
196
+ // empty/missing there is nothing to act on — skip (no prompt) rather than spawn a
197
+ // contentless wake.
198
+ const instruction =
199
+ typeof n.instructionText === "string" ? n.instructionText.trim() : "";
200
+ if (!instruction) return null;
201
+ // Optional entity context: a human_instruction may be attached to an entity
202
+ // (task/idea/proposal/document) or be a bare session instruction. Include the
203
+ // entity hint only when present so the agent knows what it relates to.
204
+ const entityHint =
205
+ n.entityType && n.entityUuid
206
+ ? ` (regarding ${n.entityType} ${n.entityUuid}` +
207
+ (n.projectUuid ? `, projectUuid: ${n.projectUuid}` : "") +
208
+ `)`
209
+ : "";
210
+ const actorHint =
211
+ n.actorName && n.actorType && n.actorUuid
212
+ ? `\nWhen you have addressed it, reply with a comment @mentioning the requester: ` +
213
+ `@[${n.actorName}](${n.actorType}:${n.actorUuid})`
214
+ : "";
215
+ return (
216
+ `[Chorus] New instruction from a human${entityHint}:\n\n` +
217
+ `${instruction}\n\n` +
218
+ `Continue this session and act on the instruction above using the appropriate ` +
219
+ `chorus_* tools. Re-check the current state first (e.g. chorus_get_task / ` +
220
+ `chorus_get_idea / chorus_get_comments) if you need context.${actorHint}`
221
+ );
222
+ }
223
+ default:
224
+ return null;
225
+ }
226
+ }
227
+
228
+ /**
229
+ * Actions that produce a wake. Used by the router to decide whether to enqueue.
230
+ *
231
+ * Covers the notifications that imply the agent should act — an explicit
232
+ * @mention, assignment, lifecycle transitions it owns, and unblock signals.
233
+ * Deliberately NOT woken:
234
+ * - comment_added (fires for EVERY comment to the task's
235
+ * assignee+creator, not just ones directed at the
236
+ * agent — too noisy; an @mention is the real
237
+ * "I need you" signal and arrives as `mentioned`)
238
+ * - task_status_changed (high-frequency, usually a side effect of own work)
239
+ * - task_submitted_for_verify (reviewer/owner channel; verification is its own flow)
240
+ * - report_created (informational summary)
241
+ * The switch in buildPrompt is the source of truth — keep them in sync (a test
242
+ * asserts every WAKE_ACTIONS entry yields a non-null prompt).
243
+ */
244
+ export const WAKE_ACTIONS = new Set([
245
+ "task_assigned",
246
+ "mentioned",
247
+ "elaboration_requested",
248
+ "elaboration_answered",
249
+ // add-elaboration-verify-wake: a human clicked "Verify Elaborate" — the elaboration is
250
+ // resolved and the idea is `elaborated`. This wakes the assigned daemon PM agent to WRITE
251
+ // THE PROPOSAL (distinct from elaboration_requested/answered, which mean "answer
252
+ // questions"). Arrives as a persisted notification (recipient = the idea's assigned agent),
253
+ // idea-rooted like the other elaboration wakes, so the session anchor/resume contract is
254
+ // unchanged. See buildPrompt's `elaboration_verified` case for the write-proposal prompt.
255
+ "elaboration_verified",
256
+ "proposal_rejected",
257
+ "proposal_approved",
258
+ "idea_claimed",
259
+ "task_reopened",
260
+ "task_verified",
261
+ // 子3 — daemon-interrupt-resume: a user-resumed wake re-dispatches through the
262
+ // wake path so the daemon continues the session via `--resume`. Entity-generic
263
+ // (task / idea / proposal / document); arrives via the reverse CONTROL channel as
264
+ // a synthetic dispatch, NOT a persisted notification.
265
+ "resource_resumed",
266
+ // 子1 — daemon-session-conversation: a human-typed instruction for the daemon's
267
+ // session. Arrives as a persisted notification (recipient = the daemon agent)
268
+ // carrying the free-text body in `instructionText`; the event-router threads that
269
+ // body into buildPrompt. NOTE: buildPrompt's human_instruction branch returns null
270
+ // when the body is empty/missing (nothing to act on) — so this action is a wake
271
+ // action only when it actually carries instruction text.
272
+ "human_instruction",
273
+ ]);