@chorus-aidlc/chorus 0.21.0 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +213 -213
  3. package/.next/standalone/.next/app-path-routes-manifest.json +38 -38
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +42 -42
  6. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  40. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  44. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  45. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  48. package/.next/standalone/.next/server/app/admin/companies/new.rsc +1 -1
  49. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  51. package/.next/standalone/.next/server/app/admin/companies.rsc +1 -1
  52. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/admin.html +2 -2
  54. package/.next/standalone/.next/server/app/admin.rsc +1 -1
  55. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/access-preview/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/members/[userUuid]/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/members/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/projects/[uuid]/access-preview/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/preview/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/projects/[uuid]/members/[userUuid]/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/projects/[uuid]/members/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/index.html +2 -2
  160. package/.next/standalone/.next/server/app/index.rsc +1 -1
  161. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  163. package/.next/standalone/.next/server/app/login/admin.rsc +1 -1
  164. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  166. package/.next/standalone/.next/server/app/login/callback.rsc +1 -1
  167. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  170. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +1 -1
  171. package/.next/standalone/.next/server/app/login.html +2 -2
  172. package/.next/standalone/.next/server/app/login.rsc +1 -1
  173. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  174. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  177. package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
  178. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/projects.html +2 -2
  180. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  181. package/.next/standalone/.next/server/app/settings.html +2 -2
  182. package/.next/standalone/.next/server/app/settings.rsc +3 -3
  183. package/.next/standalone/.next/server/app-paths-manifest.json +38 -38
  184. package/.next/standalone/.next/server/chunks/1855.js +2 -2
  185. package/.next/standalone/.next/server/chunks/2689.js +2 -2
  186. package/.next/standalone/.next/server/chunks/5212.js +1 -1
  187. package/.next/standalone/.next/server/chunks/5281.js +2 -2
  188. package/.next/standalone/.next/server/chunks/5647.js +1 -1
  189. package/.next/standalone/.next/server/chunks/5764.js +2 -2
  190. package/.next/standalone/.next/server/chunks/6493.js +1 -1
  191. package/.next/standalone/.next/server/chunks/6991.js +2 -2
  192. package/.next/standalone/.next/server/chunks/{9894.js → 7138.js} +1 -1
  193. package/.next/standalone/.next/server/chunks/{9583.js → 7169.js} +3 -3
  194. package/.next/standalone/.next/server/chunks/7425.js +1 -0
  195. package/.next/standalone/.next/server/chunks/7839.js +1 -1
  196. package/.next/standalone/.next/server/chunks/8692.js +1 -0
  197. package/.next/standalone/.next/server/chunks/87.js +1 -0
  198. package/.next/standalone/.next/server/chunks/8849.js +2 -2
  199. package/.next/standalone/.next/server/chunks/911.js +1 -0
  200. package/.next/standalone/.next/server/chunks/9295.js +1 -1
  201. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  202. package/.next/standalone/.next/server/pages/404.html +2 -2
  203. package/.next/standalone/.next/server/pages/500.html +1 -1
  204. package/.next/standalone/.next/server/pages-manifest.json +1 -1
  205. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  207. package/.next/standalone/.next/static/chunks/15638-e8566f8551988a0b.js +1 -0
  208. package/.next/standalone/.next/static/chunks/30187-8406d0b0e7582b4e.js +1 -0
  209. package/.next/standalone/.next/static/chunks/59480-03e05915e0f0f1e4.js +1 -0
  210. package/.next/standalone/.next/static/chunks/65833-d0a8d9023febc1ce.js +1 -0
  211. package/.next/standalone/.next/static/chunks/75844-ab7e24827a4875a0.js +1 -0
  212. package/.next/standalone/.next/static/chunks/88277-9563bd5857edfb08.js +1 -0
  213. package/.next/standalone/.next/static/chunks/91202-a6809360a6c58c9a.js +1 -0
  214. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-9a0a7266bbc1498f.js +1 -0
  215. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/{page-670eeb1a8007a20c.js → page-26aef423473209b6.js} +1 -1
  216. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-deb0615a19598fe6.js +1 -0
  217. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-cb20e73952b1d4ee.js +1 -0
  218. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-ed5fbcae30e875d1.js → page-c8af650e39ff3eac.js} +1 -1
  219. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-6bc33e1fb5e252dc.js +1 -0
  220. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-e622257cf6a2fe0c.js +1 -0
  221. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-49b02e795c5b279c.js → page-2085f55b6cbd4d82.js} +1 -1
  222. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-f26cad3e8406ac07.js → page-2b9e6239037f79d5.js} +1 -1
  223. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-04a3fbabc7542960.js → page-7afc11846cb7aefc.js} +1 -1
  224. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/{page-d0c217c1e9a18433.js → page-406dbd7ae784ec2b.js} +1 -1
  225. package/.next/standalone/.next/static/chunks/app/onboarding/page-bb641e258e90d08b.js +1 -0
  226. package/.next/standalone/package.json +1 -1
  227. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  228. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
  229. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  230. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +1 -1
  231. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
  232. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  233. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  234. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  235. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  236. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +1 -1
  237. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
  238. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  239. package/.next/standalone/public/chorus-plugin/skills/research/SKILL.md +1 -1
  240. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  241. package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +1 -1
  242. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
  243. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
  244. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
  245. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
  246. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  247. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
  248. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
  249. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
  250. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +1 -1
  251. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
  252. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-research/SKILL.md +1 -1
  253. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
  254. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +1 -1
  255. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +1 -1
  256. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
  257. package/README.md +1 -1
  258. package/README.zh.md +1 -1
  259. package/cli/init/contracts.mjs +3 -0
  260. package/cli/init/install-methods.mjs +24 -113
  261. package/cli/init/pi-compatibility.mjs +5 -0
  262. package/cli/init/pi-mcp-backend.mjs +160 -0
  263. package/cli/init/pi-mcp-config.mjs +48 -64
  264. package/cli/init/registry.mjs +3 -2
  265. package/cli/init/run-command.mjs +3 -1
  266. package/cli/init/steps/codex-restart.mjs +95 -0
  267. package/cli/init/steps/credential-seed.mjs +18 -17
  268. package/cli/init.mjs +2 -2
  269. package/cli/upgrade-plugins.mjs +10 -45
  270. package/package.json +1 -1
  271. package/.next/standalone/.next/server/chunks/1443.js +0 -1
  272. package/.next/standalone/.next/server/chunks/2701.js +0 -1
  273. package/.next/standalone/.next/server/chunks/6666.js +0 -1
  274. package/.next/standalone/.next/server/chunks/7329.js +0 -1
  275. package/.next/standalone/.next/static/chunks/14891-8a7485231cdaf105.js +0 -1
  276. package/.next/standalone/.next/static/chunks/30187-12e26e880f7b6da7.js +0 -1
  277. package/.next/standalone/.next/static/chunks/36244-82317cfd58345146.js +0 -1
  278. package/.next/standalone/.next/static/chunks/40309-bedb6f19876265b4.js +0 -1
  279. package/.next/standalone/.next/static/chunks/56161-5d2f255f25dba375.js +0 -1
  280. package/.next/standalone/.next/static/chunks/6497-36958930c3e35070.js +0 -1
  281. package/.next/standalone/.next/static/chunks/70762-18006a86c770d908.js +0 -1
  282. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-2f843ed9eb3944e4.js +0 -1
  283. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-ed4d5692eac763c4.js +0 -1
  284. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-48b79f200d9f086c.js +0 -1
  285. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-91e61264f483701b.js +0 -1
  286. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-cf90d562352224ec.js +0 -1
  287. package/.next/standalone/.next/static/chunks/app/onboarding/page-87d43a00d0a7b209.js +0 -1
  288. /package/.next/standalone/.next/static/{q_ngNQiWgbMewMxZKkQzM → -QBMDLYHMUleR_Nbp3gXV}/_buildManifest.js +0 -0
  289. /package/.next/standalone/.next/static/{q_ngNQiWgbMewMxZKkQzM → -QBMDLYHMUleR_Nbp3gXV}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chorus-aidlc/chorus",
3
- "version": "0.21.0",
3
+ "version": "0.21.1",
4
4
  "description": "The Agent Harness for AI-Human Collaboration — session lifecycle, task state, sub-agent orchestration, observability, and failure recovery",
5
5
  "homepage": "https://github.com/Chorus-AIDLC/Chorus",
6
6
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "chorus",
3
3
  "description": "Chorus AI-DLC collaboration platform plugin for Claude Code. Automates session lifecycle, provides MCP tools for PM/Developer/Admin workflows, and enables multi-agent team observability.",
4
- "version": "0.21.0",
4
+ "version": "0.21.1",
5
5
  "author": {
6
6
  "name": "Chorus-AIDLC"
7
7
  },
@@ -292,7 +292,7 @@ cmd_mcp_tool() {
292
292
  # Step 1: Initialize MCP session
293
293
  local init_payload
294
294
  init_payload=$(cat <<JSONEOF
295
- {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.21.0"}}}
295
+ {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.21.1"}}}
296
296
  JSONEOF
297
297
  )
298
298
 
@@ -4,7 +4,7 @@ description: Optional divergent-then-convergent dialogue for fuzzy ideas. Invoke
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus AI Agent collaboration platform — overview, common tools,
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: How to install, configure, and use the `chorus` CLI — install it,
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Development workflow — claim tasks, report work, manage se
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus documentation router — consult the live Chorus docs site t
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Idea workflow — claim ideas, run elaboration rounds, and p
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: OpenSpec-mode authoring for Chorus PM workflows in Claude Code. The
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Multi-agent orchestration playbook — coordinate OTHER agents and
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Proposal workflow — create proposals with document and tas
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Quick Task workflow — skip Idea→Proposal, create tasks directly
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Bounded factual research for Chorus Idea clarification, Proposal de
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Review workflow — approve/reject proposals, verify tasks,
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Lightweight, Chorus-native local specs for Chorus PM workflows —
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Full-auto AI-DLC pipeline — from prompt to done. Automates the en
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Optional divergent-then-convergent dialogue for fuzzy ideas. Invoke
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: How to install, configure, and use the `chorus` CLI — install it,
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Development workflow — claim tasks, report work, manage se
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus documentation router — consult the live Chorus docs site t
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Idea workflow — claim ideas, run elaboration rounds, and p
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: OpenSpec-mode authoring for Chorus PM workflows in Kiro CLI. The de
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Multi-agent orchestration playbook — coordinate OTHER agents and
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Proposal workflow — create proposals with document and tas
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Quick Task workflow — skip Idea→Proposal, create tasks directly
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Bounded factual research for Chorus Idea clarification, Proposal de
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Review workflow — approve/reject proposals, verify tasks,
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Lightweight, Chorus-native local specs for Chorus PM workflows in K
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Full-auto AI-DLC pipeline — from prompt to done. Automates the en
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.21.0"
7
+ version: "0.21.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -283,7 +283,7 @@ cmd_mcp_tool() {
283
283
  # Step 1: Initialize MCP session
284
284
  local init_payload
285
285
  init_payload=$(cat <<JSONEOF
286
- {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.21.0"}}}
286
+ {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.21.1"}}}
287
287
  JSONEOF
288
288
  )
289
289
 
package/README.md CHANGED
@@ -80,7 +80,7 @@ chorus upgrade --plugins # Also refresh configured agents' Chorus plugins
80
80
 
81
81
  Self-upgrade supports the active **npm global installation** on Linux, macOS and Windows. It checks npm's prefix, resolves the latest stable release, avoids downgrades and verifies the installed version. Source checkouts, links, npx and other package-manager installations must use their own update workflow. CLI discovery, installation or verification failure stops plugin work.
82
82
 
83
- `--plugins` reads `~/.chorus/daemon.json`, including legacy single-agent records. Explicit Claude Code, Codex, Kiro and Pi types are processed even with wake disabled. Each record's home, config directory and PATH are respected; shared destinations update once. Only Chorus and required integration packages are refreshed, with existing credentials and unrelated settings preserved. Host CLIs must already be installed. Kiro templates come from the record's configured Chorus instance (its served version, which may lag npm); conflicting instance URLs for one destination are reported. Pi probes for targeted updates of Chorus and `pi-mcp-adapter`; older hosts without that capability report incomplete work, including partial installs, without updating unrelated extensions. Pinned versions, ranges and non-latest tags are preserved and reported incomplete; remove those constraints to allow latest updates.
83
+ `--plugins` reads `~/.chorus/daemon.json`, including legacy single-agent records. Explicit Claude Code, Codex, Kiro and Pi types are processed even with wake disabled. Each record's home, config directory and PATH are respected; shared destinations update once. Only Chorus and required integration packages are refreshed, with existing credentials and unrelated settings preserved. Host CLIs must already be installed. Kiro templates come from the record's configured Chorus instance (its served version, which may lag npm); conflicting instance URLs for one destination are reported. Stable Pi >=0.99.0 <2.0.0 uses native MCP and targets Chorus only; Pi 0.84.4–0.98.x retains the verified `pi-mcp-adapter@5.0.0` pin. Unknown versions do not trigger adapter changes or an MCP-complete claim; unsupported hosts run no package commands. Updates are targeted, never all-extension; missing capability or incompatible constraints report incomplete work. User pins/ranges are preserved (the verified adapter pin is intentional, not an incomplete latest refresh). Existing native-host adapters and `-builtin:mcp` filters produce scope-specific manual-migration warnings, never automatic removal. See [Pi setup](docs/CONNECT_PI.md).
84
84
 
85
85
  The command is noninteractive and reports each target. Exit **0** means all requested work completed (missing/empty configuration is a successful no-op); exit **1** means failure or incomplete work, including offline/unknown/untyped records, missing hosts or unsupported targeted updates. Later targets still run after a plugin failure; completed changes are not rolled back. Start new agent sessions and restart the daemon when convenient to activate updates—the command does not restart processes or interrupt sessions.
86
86
 
package/README.zh.md CHANGED
@@ -71,7 +71,7 @@ chorus upgrade --plugins # 同时刷新已配置 Agent 的 Chorus 插件
71
71
 
72
72
  自升级支持 Linux、macOS 和 Windows 上当前使用的 **npm 全局安装**:检查 npm prefix、查询最新稳定版本、避免降级,并在安装后验证版本。源码目录、链接、npx 和其他包管理器安装请使用各自的更新方式。CLI 检查、安装或版本验证失败后,不会继续更新插件。
73
73
 
74
- `--plugins` 读取 `~/.chorus/daemon.json`,兼容旧版单 Agent 配置。明确指定 Claude Code、Codex、Kiro、Pi 类型的记录都会处理,不受唤醒开关影响;按每条记录的 home、配置目录和 PATH 定位宿主,共享目标只更新一次。仅刷新 Chorus 及必需的集成依赖,保留已有凭证和无关设置,不安装宿主 CLI。Kiro 模板来自记录配置的 Chorus 实例(以该实例提供的版本为准,可能落后于 npm),共享目录对应不同实例时报告冲突。Pi 会探测是否支持定向更新 Chorus 和 `pi-mcp-adapter`;旧宿主不支持时报告未完成,部分安装也不会误报全部刷新,更不会更新其他扩展。固定版本、版本范围及非 latest 标签会保留并报告未完成;需移除这些约束后才能更新到最新。
74
+ `--plugins` 读取 `~/.chorus/daemon.json`,兼容旧版单 Agent 配置。明确指定 Claude Code、Codex、Kiro、Pi 类型的记录都会处理,不受唤醒开关影响;按每条记录的 home、配置目录和 PATH 定位宿主,共享目标只更新一次。仅刷新 Chorus 及必需的集成依赖,保留已有凭证和无关设置,不安装宿主 CLI。Kiro 模板来自记录配置的 Chorus 实例(以该实例提供的版本为准,可能落后于 npm),共享目录对应不同实例时报告冲突。稳定版 Pi >=0.99.0 <2.0.0 使用原生 MCP,仅定向更新 Chorus;Pi 0.84.4–0.98.x 保留已验证的 `pi-mcp-adapter@5.0.0` 策略固定版本。未知版本不操作 adapter、不宣称 MCP 已完成;不支持的宿主不执行包命令。只做定向更新,绝不更新全部扩展;缺少能力或约束不兼容时报告未完成。保留用户 pins/ranges(验证过的 adapter 固定版本是预期策略,不算刷新未完成)。原生宿主已有 adapter 或 `-builtin:mcp` 时仅按作用域提示手动迁移,不自动卸载或改设置。详见 [Pi 接入](docs/CONNECT_PI.md)。
75
75
 
76
76
  命令非交互执行并逐项汇总。退出码 **0** 表示请求全部完成(配置不存在或为空也算成功);**1** 表示失败或未全部完成,包括 offline、未知或缺少类型的记录、宿主缺失及不支持定向更新。单个插件失败不影响后续目标,已完成的变更不回滚。更新后请开启新的 Agent 会话,并在方便时重启 daemon;命令本身不会重启进程或中断现有会话。
77
77
 
@@ -100,6 +100,8 @@ export const FAILURE_ACTIONS = Object.freeze([OUTCOME_ACTIONS.FAILED]);
100
100
  * @property {string} [agentId] Present for per-agent outcomes.
101
101
  * @property {("installed"|"repaired"|"skipped"|"seeded"|"failed"|"unsupported")} action
102
102
  * @property {string} detail One-line human explanation for the summary.
103
+ * @property {boolean} [codexEnvWritten] Codex credentials persisted in this invocation.
104
+ * @property {boolean} [codexMcpWritten] Codex native MCP configuration write succeeded.
103
105
  */
104
106
 
105
107
  /**
@@ -114,6 +116,7 @@ export const FAILURE_ACTIONS = Object.freeze([OUTCOME_ACTIONS.FAILED]);
114
116
  * @property {(path: string) => (string|null)} backup Copy a file to <path>.chorus-bak
115
117
  * once before overwrite; returns the backup path or null if the source is absent.
116
118
  * @property {NodeJS.ProcessEnv} env
119
+ * @property {StepOutcome[]} priorOutcomes Completed outcomes from this invocation.
117
120
  */
118
121
 
119
122
  /** True when an outcome represents a failure (drives the process exit code). */
@@ -22,6 +22,8 @@ import { OUTCOME_ACTIONS } from "./contracts.mjs";
22
22
  import { CHORUS_PLUGIN_ID, CHORUS_MARKETPLACE_NAME, CHORUS_MARKETPLACE_SOURCE } from "./chorus-plugin-consts.mjs";
23
23
  import { writeCodexMcpServer } from "./codex-mcp-config.mjs";
24
24
  import { resolveCredentials } from "../credentials.mjs";
25
+ import { PI_LEGACY_ADAPTER_SPEC } from "./pi-compatibility.mjs";
26
+ import { PI_CHORUS_SPEC, readPiPackageState, probePiBackend, inspectPiSettings, managePiPackages } from "./pi-mcp-backend.mjs";
25
27
 
26
28
  const STEP_ID = "plugin-install";
27
29
  const { INSTALLED, REPAIRED, SKIPPED, FAILED, UNSUPPORTED } = OUTCOME_ACTIONS;
@@ -146,6 +148,8 @@ export function installCodex(ctx) {
146
148
  // Ensure the native-MCP block is present + normalized to the keyless bearer_token_env_var
147
149
  // form. Idempotent; runs on both fresh install and re-run. Never writes a secret. A missing
148
150
  // URL is a non-fatal skip (the plugin surface is still installed). Returns a note suffix.
151
+ let codexMcpWritten = false;
152
+ const codexOut = (action, detail) => ({ ...out("codex", action, detail), codexMcpWritten });
149
153
  const ensureMcp = () => {
150
154
  if (ctx.flags?.pluginOnly) return ""; // Upgrade preserves existing connection settings.
151
155
  if (!chorusUrl) {
@@ -153,9 +157,10 @@ export function installCodex(ctx) {
153
157
  }
154
158
  try {
155
159
  writeMcp({ configPath, url: chorusUrl });
160
+ codexMcpWritten = true;
156
161
  return ' and wrote [mcp_servers.chorus] (bearer_token_env_var="CHORUS_API_KEY")';
157
- } catch (err) {
158
- return ` (WARNING: could not write [mcp_servers.chorus]: ${errText({ error: err?.message ?? String(err) })})`;
162
+ } catch {
163
+ return " (WARNING: could not write [mcp_servers.chorus]; check config.toml permissions and retry)";
159
164
  }
160
165
  };
161
166
 
@@ -170,13 +175,12 @@ export function installCodex(ctx) {
170
175
  if (!ru.ok) return out("codex", FAILED, `codex plugin marketplace upgrade failed: ${errText(ru)}`);
171
176
  const rp = run("codex", ["plugin", "add", CHORUS_PLUGIN_ID, "--json"], { env });
172
177
  if (!rp.ok) return out("codex", FAILED, `codex plugin add failed: ${errText(rp)}`);
173
- return out(
174
- "codex",
178
+ return codexOut(
175
179
  REPAIRED,
176
180
  `refreshed ${CHORUS_MARKETPLACE_NAME} and reinstalled ${CHORUS_PLUGIN_ID}${ensureMcp()}`,
177
181
  );
178
182
  }
179
- return out("codex", SKIPPED, `already installed (config.toml)${ensureMcp()}`);
183
+ return codexOut(SKIPPED, `already installed (config.toml)${ensureMcp()}`);
180
184
  }
181
185
 
182
186
  ctx.backup?.(configPath); // back up before the CLI edits it
@@ -186,8 +190,7 @@ export function installCodex(ctx) {
186
190
  }
187
191
  const r2 = run("codex", ["plugin", "add", CHORUS_PLUGIN_ID, "--json"], { env });
188
192
  if (!r2.ok) return out("codex", FAILED, `codex plugin add failed: ${errText(r2)}`);
189
- return out(
190
- "codex",
193
+ return codexOut(
191
194
  state.marketplaceRegistered ? REPAIRED : INSTALLED,
192
195
  `installed ${CHORUS_PLUGIN_ID} via codex plugin CLI${ensureMcp()}`,
193
196
  );
@@ -469,118 +472,26 @@ export function installOpenclaw(ctx) {
469
472
  : out("openclaw", INSTALLED, `installed ${OPENCLAW_NPM_SPEC} and enabled ${OPENCLAW_PLUGIN_ID}`);
470
473
  }
471
474
 
472
- // ---------------------------------------------------------------------------
473
- // Pi — VERIFIED against docs/CONNECT_PI.md + packages/chorus-pi/README.md
474
- // (chorus-pi ships to npm as @chorus-aidlc/chorus-pi):
475
- // `pi install npm:pi-mcp-adapter` (the MCP adapter — exposes chorus_* tools)
476
- // `pi install npm:@chorus-aidlc/chorus-pi` (the Chorus skills/agents/extension)
477
- // pi installs extensions straight from an npm source (the `npm:` prefix on the
478
- // spec, like OpenClaw). There is NO marketplace step and NO separate enable
479
- // step (unlike claude / codex / openclaw). pi has no permission system and loads
480
- // TypeScript via jiti, so the package publishes source as-is — nothing to build.
481
- //
482
- // TWO packages: pi reaches the Chorus MCP tools ONLY through `pi-mcp-adapter` (which reads
483
- // the mcp.json `chorus agents add` writes — see credential-seed's pi branch + pi-mcp-config.mjs);
484
- // chorus.ts does NOT register tools itself. So we install the adapter FIRST (the tool surface),
485
- // then chorus-pi (the skills / reviewer agents / session extension). Both are idempotent.
486
- //
487
- // Graceful degradation: if the `pi` binary is absent we surface the exact manual
488
- // commands as UNSUPPORTED guidance (never a hard FAILED — UNSUPPORTED is not a
489
- // FAILURE_ACTION, so `chorus init` does not abort) and run ZERO commands. This
490
- // follows the "no guessed command / no crash" rule the other adapters share.
491
- //
492
- // VERIFIED-gap: `@chorus-aidlc/chorus-pi` is published at the next coordinated
493
- // release (A2), so the npm-install path could not be exercised end-to-end on this
494
- // build host. The command shapes + graceful fallback are implemented; the spec's
495
- // `pi install npm:<pkg>` form is the documented, reviewed command (pi-mcp-adapter is
496
- // published — verified 2.32.1).
497
- // ---------------------------------------------------------------------------
498
- const PI_ADAPTER_SPEC = "npm:pi-mcp-adapter";
499
- const PI_NPM_SPEC = "npm:@chorus-aidlc/chorus-pi";
500
-
501
- /**
502
- * Read pi's install state. `pi install` records each package's source in the
503
- * agent settings file (`<PI_CODING_AGENT_DIR|~/.pi/agent>/settings.json`) under a
504
- * `packages[]` array — entries are either a string source (`npm:@scope/pkg`) or an
505
- * object carrying that source plus filtering. We substring-match the stringified
506
- * entry so detection is robust to either shape. This is the file-read probe the pi
507
- * adapter previously lacked (its descriptor had no `readState`, so the runtime
508
- * defaulted `pluginInstalled:false` and every re-run reported a fresh INSTALL
509
- * instead of the SKIPPED/upgrade messaging the other adapters give).
510
- */
511
- export function readPiInstallState({ env = process.env, readJson = readJsonSafe } = {}) {
512
- const home = env.HOME || homedir();
513
- const agentDir = nonEmpty(env.PI_CODING_AGENT_DIR) || join(home, ".pi", "agent");
514
- const settings = readJson(join(agentDir, "settings.json"));
515
- const pkgs = Array.isArray(settings?.packages) ? settings.packages : [];
516
- const hasPkg = (needle) =>
517
- pkgs.some((p) => (typeof p === "string" ? p : JSON.stringify(p)).includes(needle));
518
- const adapterInstalled = hasPkg("pi-mcp-adapter");
519
- const pluginInstalled = hasPkg("@chorus-aidlc/chorus-pi");
520
- return {
521
- marketplaceRegistered: false, // pi has no marketplace concept
522
- pluginInstalled: pluginInstalled && adapterInstalled,
523
- chorusPiInstalled: pluginInstalled,
524
- adapterInstalled,
525
- };
475
+ export function readPiInstallState(options = {}) {
476
+ return readPiPackageState(options);
526
477
  }
527
478
 
528
479
  export function installPi(ctx) {
529
480
  const run = ctx.run ?? runCommand;
530
481
  const env = ctx.env ?? process.env;
531
-
532
- // `pi` must be on PATH to run the install. Probe via PATH (NOT `run`) so an
533
- // absent pi surfaces the manual commands and executes NOTHING — and, because
534
- // UNSUPPORTED is not a FAILURE_ACTION, never aborts `chorus init`. Injectable
535
- // for unit tests (mirrors installDsh's pnpm precheck).
536
- const hasBinary = ctx.binaryOnPath ?? binaryOnPath;
537
- if (!hasBinary(["pi"], { env })) {
538
- return out(
539
- "pi",
540
- UNSUPPORTED,
541
- `pi CLI not found on PATH — install the Chorus extension manually once pi is available: ` +
542
- `\`pi install ${PI_ADAPTER_SPEC} && pi install ${PI_NPM_SPEC}\``,
543
- );
482
+ if (!(ctx.binaryOnPath ?? binaryOnPath)(["pi"], { env })) {
483
+ return out("pi", UNSUPPORTED, "pi CLI not found on PATH — once available, check pi --version. " +
484
+ `On supported native Pi install only: pi install ${PI_CHORUS_SPEC} --no-approve. ` +
485
+ `On supported legacy Pi first install: pi install ${PI_LEGACY_ADAPTER_SPEC} --no-approve. ` +
486
+ "Unknown/unsupported versions require manual compatibility confirmation; MCP setup is incomplete.");
544
487
  }
545
-
546
- const state = safeState(ctx);
547
- const bothInstalled = state.chorusPiInstalled && state.adapterInstalled;
548
-
549
- // Already fully installed → recognize it (parity with codex/kiro's "already
550
- // installed") and do NOTHING, unless the caller explicitly asked to update.
551
- if (bothInstalled && !ctx.flags?.updateInstalled) {
552
- return out(
553
- "pi",
554
- SKIPPED,
555
- `already installed (${PI_ADAPTER_SPEC} + ${PI_NPM_SPEC} in pi settings) — re-run with --update-installed to upgrade`,
556
- );
557
- }
558
-
559
- // Update requested on an existing install → use pi's OWN updater. `pi install`
560
- // of an already-recorded package only re-writes the settings entry; it does NOT
561
- // pull the newer published version, so it never clears pi's "Package updates
562
- // available — Run pi update --extensions" nag. `pi update --extensions` (exactly
563
- // what that nag tells the user to run) refreshes installed extensions — including
564
- // chorus-pi + pi-mcp-adapter — to their latest published versions.
565
- if (bothInstalled) {
566
- const u = run("pi", ["update", "--extensions"], { env });
567
- if (!u.ok) return out("pi", FAILED, `pi update --extensions failed: ${errText(u)}`);
568
- return out("pi", REPAIRED, `updated installed pi extensions to latest via \`pi update --extensions\` (incl. ${PI_NPM_SPEC})`);
569
- }
570
-
571
- // Fresh or partial install → install what's needed (pi install is idempotent for
572
- // any already-present one). The MCP adapter is the tool surface, so install it
573
- // FIRST; then the chorus-pi package.
574
- const ra = run("pi", ["install", PI_ADAPTER_SPEC], { env });
575
- if (!ra.ok) return out("pi", FAILED, `pi install ${PI_ADAPTER_SPEC} failed: ${errText(ra)}`);
576
- const r = run("pi", ["install", PI_NPM_SPEC], { env });
577
- if (!r.ok) return out("pi", FAILED, `pi install failed: ${errText(r)}`);
578
-
579
- // A partial pre-existing install we just completed → REPAIRED; a clean first
580
- // install → INSTALLED (same distinction the other adapters draw).
581
- return state.chorusPiInstalled || state.adapterInstalled
582
- ? out("pi", REPAIRED, `reinstalled ${PI_ADAPTER_SPEC} + ${PI_NPM_SPEC} via pi install`)
583
- : out("pi", INSTALLED, `installed ${PI_ADAPTER_SPEC} + ${PI_NPM_SPEC} via pi install`);
488
+ const backend = probePiBackend({ run, env, cwd: ctx.cwd });
489
+ const scopes = inspectPiSettings({ env, cwd: ctx.cwd, readJson: ctx.readJson });
490
+ const result = managePiPackages({ backend, scopes, run, env, cwd: ctx.cwd, update: !!ctx.flags?.updateInstalled });
491
+ const existing = scopes[0].chorus.length || scopes[0].adapters.length;
492
+ const action = result.failed ? FAILED : !result.complete ? UNSUPPORTED
493
+ : !result.changed ? SKIPPED : existing ? REPAIRED : INSTALLED;
494
+ return { ...out("pi", action, result.detail), complete: result.complete, backend, warnings: result.warnings };
584
495
  }
585
496
 
586
497
  // ---------------------------------------------------------------------------
@@ -0,0 +1,5 @@
1
+ export const PI_SUPPORTED_RANGE = ">=0.84.4 <2.0.0";
2
+ export const PI_MIN_SUPPORTED_VERSION = [0, 84, 4];
3
+ export const PI_MAX_SUPPORTED_MAJOR = 2;
4
+ export const PI_NATIVE_MCP_MIN_VERSION = [0, 99, 0];
5
+ export const PI_LEGACY_ADAPTER_SPEC = "npm:pi-mcp-adapter@5.0.0";