@chorus-aidlc/chorus 0.17.3 → 0.18.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 (443) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +327 -325
  3. package/.next/standalone/.next/app-path-routes-manifest.json +37 -37
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +27 -27
  6. package/.next/standalone/.next/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.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +1 -1
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  46. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  50. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  51. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  54. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  55. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  57. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  58. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/admin.html +2 -2
  60. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  61. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  83. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  100. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  103. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  106. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  107. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js.nft.json +1 -1
  111. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  113. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
  116. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  122. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/events/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  139. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  142. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  143. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  145. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  148. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  151. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  154. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
  159. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/mcp/route.js +1 -1
  162. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  165. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  168. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  171. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  174. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  177. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  180. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  183. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  186. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  198. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  203. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  206. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
  212. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  214. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  217. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  220. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  232. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  233. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  236. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  237. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  238. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  239. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  242. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  245. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  248. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  249. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  250. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  251. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  252. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  253. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  254. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  255. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  256. package/.next/standalone/.next/server/app/index.html +2 -2
  257. package/.next/standalone/.next/server/app/index.rsc +2 -2
  258. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  259. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  260. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  261. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  262. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  263. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  264. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  265. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  267. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  268. package/.next/standalone/.next/server/app/login.html +2 -2
  269. package/.next/standalone/.next/server/app/login.rsc +2 -2
  270. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  271. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  274. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  275. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/projects.html +2 -2
  277. package/.next/standalone/.next/server/app/projects.rsc +3 -3
  278. package/.next/standalone/.next/server/app/settings.html +2 -2
  279. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  280. package/.next/standalone/.next/server/app-paths-manifest.json +37 -37
  281. package/.next/standalone/.next/server/chunks/109.js +1 -0
  282. package/.next/standalone/.next/server/chunks/1318.js +1 -1
  283. package/.next/standalone/.next/server/chunks/1496.js +1 -0
  284. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  285. package/.next/standalone/.next/server/chunks/2572.js +1 -1
  286. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  287. package/.next/standalone/.next/server/chunks/3112.js +1 -1
  288. package/.next/standalone/.next/server/chunks/{1201.js → 3619.js} +2 -2
  289. package/.next/standalone/.next/server/chunks/{3630.js → 4810.js} +1 -1
  290. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  291. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  292. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  293. package/.next/standalone/.next/server/chunks/6506.js +2 -2
  294. package/.next/standalone/.next/server/chunks/6737.js +1 -0
  295. package/.next/standalone/.next/server/chunks/6753.js +3 -3
  296. package/.next/standalone/.next/server/chunks/679.js +1 -1
  297. package/.next/standalone/.next/server/chunks/731.js +1 -0
  298. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  299. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  300. package/.next/standalone/.next/server/chunks/7857.js +1 -0
  301. package/.next/standalone/.next/server/chunks/920.js +1 -1
  302. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  303. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  304. package/.next/standalone/.next/server/chunks/9931.js +1 -1
  305. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  306. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  307. package/.next/standalone/.next/server/pages/404.html +2 -2
  308. package/.next/standalone/.next/server/pages/500.html +1 -1
  309. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  310. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  311. package/.next/standalone/.next/static/chunks/11595.0afa1a540f681fb4.js +1 -0
  312. package/.next/standalone/.next/static/chunks/22705-324a191727ae45b7.js +1 -0
  313. package/.next/standalone/.next/static/chunks/33456.4a5f4712a7e78d8f.js +1 -0
  314. package/.next/standalone/.next/static/chunks/44216-3876e84f5b02d355.js +1 -0
  315. package/.next/standalone/.next/static/chunks/4860.5719e32b95be2d93.js +1 -0
  316. package/.next/standalone/.next/static/chunks/6528-a8a562ef7d26bb43.js +1 -0
  317. package/.next/standalone/.next/static/chunks/67439-7b339b28ed0ecfc6.js +1 -0
  318. package/.next/standalone/.next/static/chunks/79919-ae8bd8d8ec1e38ce.js +1 -0
  319. package/.next/standalone/.next/static/chunks/{46021-f5d072b0cbcb7fac.js → 82203-4ce5926624df7ed0.js} +1 -1
  320. package/.next/standalone/.next/static/chunks/94643-37ac7b8ef8ea5e75.js +1 -0
  321. package/.next/standalone/.next/static/chunks/99373.6c1509bfaf599741.js +1 -0
  322. package/.next/standalone/.next/static/chunks/99775-697e82ee04eac6b1.js +1 -0
  323. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-2fda722cdace8147.js +1 -0
  324. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/{page-77b175e52a85f3cb.js → page-b45c42c536eff64b.js} +1 -1
  325. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-792aba7fd6b6daa3.js +1 -0
  326. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-800a979f12b73f27.js +1 -0
  327. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-69d3162667f85677.js → page-34de35f75aa71f6d.js} +1 -1
  328. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-a16002aa2a911619.js +1 -0
  329. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-a3f83031dfbafc81.js → page-e8030824994edf35.js} +1 -1
  330. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-4f7f1ddbaf79be8f.js +1 -0
  331. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-3c7ff3a40a4615ac.js → page-349b0977f3c6209a.js} +1 -1
  332. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-7b8e11fdc5b596d0.js → page-be43cb06112fce12.js} +1 -1
  333. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-6916e1abab42a6e6.js +1 -0
  334. package/.next/standalone/.next/static/chunks/app/onboarding/{page-0ce33b9327fe3d8c.js → page-c0090caae202eae5.js} +1 -1
  335. package/.next/standalone/.next/static/chunks/{webpack-dffb97a4feb8faba.js → webpack-cfb63dd1b416c92e.js} +1 -1
  336. package/.next/standalone/.next/static/css/75c761a5428611fa.css +1 -0
  337. package/.next/standalone/package.json +1 -1
  338. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +2 -2
  339. package/.next/standalone/public/chorus-plugin/agents/code-reviewer.md +1 -0
  340. package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +12 -3
  341. package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +4 -0
  342. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
  343. package/.next/standalone/public/chorus-plugin/bin/on-post-submit-for-verify.sh +3 -3
  344. package/.next/standalone/public/chorus-plugin/bin/on-post-submit-proposal.sh +3 -3
  345. package/.next/standalone/public/chorus-plugin/bin/on-post-verify-task.sh +2 -2
  346. package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +39 -64
  347. package/.next/standalone/public/chorus-plugin/bin/resolve-spec-mode.sh +107 -0
  348. package/.next/standalone/public/chorus-plugin/bin/tests/test-resolver-drift.sh +46 -0
  349. package/.next/standalone/public/chorus-plugin/bin/tests/test-skill-harness-fidelity-negative.sh +328 -0
  350. package/.next/standalone/public/chorus-plugin/bin/tests/test-skill-harness-fidelity.sh +372 -0
  351. package/.next/standalone/public/chorus-plugin/bin/tests/test-spec-mode-resolution.sh +83 -0
  352. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  353. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +11 -6
  354. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
  355. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +14 -9
  356. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  357. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  358. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +27 -31
  359. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +11 -1
  360. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +14 -7
  361. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +6 -4
  362. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +10 -8
  363. package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +147 -0
  364. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +49 -34
  365. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +1 -1
  366. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +2 -1
  367. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +1 -1
  368. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.md +1 -1
  369. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
  370. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
  371. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +9 -7
  372. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  373. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
  374. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +35 -27
  375. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +9 -1
  376. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +14 -7
  377. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +2 -2
  378. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +8 -8
  379. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +147 -0
  380. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +39 -25
  381. package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +11 -6
  382. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
  383. package/.next/standalone/public/kiro-plugin/bin/on-agent-spawn.sh +41 -0
  384. package/.next/standalone/public/kiro-plugin/bin/on-post-submit-for-verify.sh +3 -3
  385. package/.next/standalone/public/kiro-plugin/bin/on-post-submit-proposal.sh +3 -3
  386. package/.next/standalone/public/kiro-plugin/bin/on-post-verify-task.sh +2 -2
  387. package/.next/standalone/public/kiro-plugin/bin/resolve-spec-mode.sh +107 -0
  388. package/.next/standalone/public/kiro-plugin/manifest.txt +2 -0
  389. package/.next/standalone/public/skill/chorus/SKILL.md +11 -1
  390. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +1 -0
  391. package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
  392. package/.next/standalone/public/skill/orchestrate-chorus/SKILL.md +11 -1
  393. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +5 -2
  394. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  395. package/.next/standalone/public/skill/review-chorus/SKILL.md +5 -3
  396. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +4 -0
  397. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +23 -7
  398. package/README.ja.md +3 -3
  399. package/README.ko.md +3 -3
  400. package/README.md +3 -3
  401. package/README.zh.md +3 -3
  402. package/cli/agent-cli-config.mjs +323 -0
  403. package/cli/agent-launcher.mjs +44 -16
  404. package/cli/claude-spawner.mjs +22 -13
  405. package/cli/codex-spawner.mjs +23 -15
  406. package/cli/credentials.mjs +7 -0
  407. package/cli/daemon-config.mjs +14 -0
  408. package/cli/daemon.mjs +32 -6
  409. package/cli/dsh-managed-config.mjs +26 -28
  410. package/cli/dsh-spawner.mjs +23 -15
  411. package/cli/init/steps/credential-seed.mjs +1 -1
  412. package/cli/kiro-spawner.mjs +22 -15
  413. package/cli/launch-diagnostics.mjs +67 -0
  414. package/cli/login.mjs +17 -1
  415. package/cli/pi-spawner.mjs +19 -12
  416. package/cli/prompts.mjs +52 -2
  417. package/cli/spawner-select.mjs +6 -11
  418. package/package.json +1 -1
  419. package/.next/standalone/.next/server/chunks/1114.js +0 -1
  420. package/.next/standalone/.next/server/chunks/1155.js +0 -1
  421. package/.next/standalone/.next/server/chunks/6465.js +0 -1
  422. package/.next/standalone/.next/server/chunks/8105.js +0 -1
  423. package/.next/standalone/.next/server/chunks/8232.js +0 -1
  424. package/.next/standalone/.next/static/chunks/11595.f7c3ef5cd7fc8feb.js +0 -1
  425. package/.next/standalone/.next/static/chunks/33456.c81079032acc2966.js +0 -1
  426. package/.next/standalone/.next/static/chunks/45262-38b332523f00a223.js +0 -1
  427. package/.next/standalone/.next/static/chunks/4860.f0cfb1201191ae88.js +0 -1
  428. package/.next/standalone/.next/static/chunks/66609-64a01d5cb415465b.js +0 -1
  429. package/.next/standalone/.next/static/chunks/79919-c5a2a3fd8f5f9204.js +0 -1
  430. package/.next/standalone/.next/static/chunks/94394-38194b81b489275c.js +0 -1
  431. package/.next/standalone/.next/static/chunks/94643-f1bdf37fb3bb6adb.js +0 -1
  432. package/.next/standalone/.next/static/chunks/95225-96b44da3ebd6ddad.js +0 -1
  433. package/.next/standalone/.next/static/chunks/96482-2b3bdb2544d72e5a.js +0 -1
  434. package/.next/standalone/.next/static/chunks/99373.3c23ac2efbd4db02.js +0 -1
  435. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-66328332f62c7371.js +0 -1
  436. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-87ceae13c4950fc9.js +0 -1
  437. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-45e95154e546460e.js +0 -1
  438. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-b7b2017e5be69564.js +0 -1
  439. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-8b06834ca0f663bb.js +0 -1
  440. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-efe5326c47aca9ca.js +0 -1
  441. package/.next/standalone/.next/static/css/1d9cf83f50b6db00.css +0 -1
  442. /package/.next/standalone/.next/static/{wuqYN129vOIGymh_NEdZe → IxKVu5zkFPTjSKAUR99yH}/_buildManifest.js +0 -0
  443. /package/.next/standalone/.next/static/{wuqYN129vOIGymh_NEdZe → IxKVu5zkFPTjSKAUR99yH}/_ssgManifest.js +0 -0
@@ -0,0 +1,328 @@
1
+ #!/usr/bin/env bash
2
+ # test-skill-harness-fidelity-negative.sh — negative cases for the fidelity guard.
3
+ #
4
+ # A blacklist guard that passes on a tree it never scanned is worse than no guard,
5
+ # so this harness plants each blacklisted literal into a synthetic repo and asserts
6
+ # the guard actually FAILS. Every case runs twice: once under a plain path and once
7
+ # under a path containing a space, because the original guard word-split its scope
8
+ # string and reported "3 PASS" on a repo checked out under e.g.
9
+ # "/Users/me/My Repos/Chorus" while having searched nothing.
10
+ #
11
+ # Bash 3.2 compatible.
12
+ set -u
13
+
14
+ GUARD="$(cd "$(dirname "$0")" && pwd)/test-skill-harness-fidelity.sh"
15
+ if [ ! -x "$GUARD" ]; then
16
+ echo "FATAL: guard not found or not executable at $GUARD" >&2
17
+ exit 1
18
+ fi
19
+
20
+ PASS=0
21
+ FAIL=0
22
+ TMPROOT="$(mktemp -d)"
23
+ trap 'rm -rf "$TMPROOT"' EXIT
24
+
25
+ # scaffold <repo-root> — a minimal tree with every path the guard scans, all clean.
26
+ # Missing paths are themselves a scan error now, so the clean case must be complete.
27
+ scaffold() {
28
+ _r="$1"
29
+ mkdir -p "$_r/public/chorus-plugin/bin/tests" \
30
+ "$_r/public/chorus-plugin/skills/develop" \
31
+ "$_r/public/chorus-plugin/agents" \
32
+ "$_r/public/kiro-plugin/.kiro/skills" \
33
+ "$_r/public/kiro-plugin/.kiro/agents" \
34
+ "$_r/public/kiro-plugin/.kiro/steering" \
35
+ "$_r/public/skill/proposal-reviewer-chorus" \
36
+ "$_r/packages/chorus-dsh/skills" \
37
+ "$_r/packages/chorus-dsh/skills/proposal-reviewer-chorus" \
38
+ "$_r/packages/chorus-pi/agents" \
39
+ "$_r/packages/openclaw-plugin/skills/proposal-reviewer" \
40
+ "$_r/plugins/chorus/skills" \
41
+ "$_r/plugins/chorus/skills/chorus-proposal-reviewer" \
42
+ "$_r/docs"
43
+ printf 'clean skill text, wait using your harness mechanism\n' \
44
+ > "$_r/public/chorus-plugin/skills/develop/SKILL.md"
45
+ printf '# SPEC_LITE\nthe template is inlined here\n' > "$_r/docs/SPEC_LITE.md"
46
+ cp "$GUARD" "$_r/public/chorus-plugin/bin/tests/$(basename "$GUARD")"
47
+
48
+ # ── The seven proposal-reviewer surfaces, all carrying the canonical rule.
49
+ # Checks 4-6 fail on a missing enumerated path, so a clean tree needs all seven
50
+ # present AND compliant. The truthful "Any shell command beyond read-only
51
+ # inspection —" sentence is included deliberately: it must not trip check 4.
52
+ for _pr in "public/chorus-plugin/agents/proposal-reviewer.md" \
53
+ "plugins/chorus/skills/chorus-proposal-reviewer/SKILL.md" \
54
+ "packages/chorus-pi/agents/chorus-proposal-reviewer.md" \
55
+ "packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md" \
56
+ "packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md" \
57
+ "public/skill/proposal-reviewer-chorus/SKILL.md"; do
58
+ printf 'Bash is READ-ONLY inspection only: ls, cat, grep/rg, find.\n' > "$_r/$_pr"
59
+ printf 'No file writes, no git write ops, no installs, no test/build runs.\n' >> "$_r/$_pr"
60
+ printf 'Any shell command beyond read-only inspection — no file writes.\n' >> "$_r/$_pr"
61
+ printf 'Use it to confirm a file or directory exists before flagging it as missing.\n' >> "$_r/$_pr"
62
+ done
63
+ # Claude Code's file additionally needs the frontmatter list check 6 reads.
64
+ cat > "$_r/public/chorus-plugin/agents/proposal-reviewer.md" <<'CCAGENT'
65
+ ---
66
+ disallowedTools:
67
+ - Agent
68
+ - Edit
69
+ - Write
70
+ ---
71
+ Bash is READ-ONLY inspection only: ls, cat, grep/rg, find.
72
+ No file writes, no git write ops, no installs, no test/build runs.
73
+ Any shell command beyond read-only inspection — no file writes.
74
+ Use it to confirm a file or directory exists before flagging it as missing.
75
+ CCAGENT
76
+ # Kiro states the rule inside a JSON prompt string and names its tool `shell`.
77
+ cat > "$_r/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json" <<'KIROAGENT'
78
+ {
79
+ "name": "chorus-proposal-reviewer",
80
+ "tools": [
81
+ "read",
82
+ "shell",
83
+ "@chorus"
84
+ ],
85
+ "prompt": "Shell is READ-ONLY inspection only: ls, cat, grep/rg, find. No file writes, no git write ops, no installs, no test/build runs. Use it to confirm a file or directory exists before flagging it as missing."
86
+ }
87
+ KIROAGENT
88
+ # ── Check 4's extra scope: the Kiro orchestrator prompt and steering doc.
89
+ # Not reviewer definitions (so check 5 never looks at them), but they describe the
90
+ # grant to the agent that spawns the reviewer — a false claim here misleads it.
91
+ printf 'chorus-proposal-reviewer is scoped `tools: ["read", "shell", "@chorus"]`.\n' \
92
+ > "$_r/public/kiro-plugin/.kiro/agents/chorus.md"
93
+ printf 'chorus-proposal-reviewer is scoped `tools: ["read", "shell", "@chorus"]`.\n' \
94
+ > "$_r/public/kiro-plugin/.kiro/steering/chorus.md"
95
+ }
96
+
97
+ # run_guard <repo-root> — echo the guard's exit code, discarding its output.
98
+ run_guard() {
99
+ "$1/public/chorus-plugin/bin/tests/$(basename "$GUARD")" >/dev/null 2>&1
100
+ echo $?
101
+ }
102
+
103
+ # expect <label> <repo-root> <want-rc-zero|want-rc-nonzero>
104
+ expect() {
105
+ _label="$1"; _r="$2"; _want="$3"
106
+ _rc="$(run_guard "$_r")"
107
+ case "$_want" in
108
+ zero) if [ "$_rc" -eq 0 ]; then PASS=$((PASS+1)); echo " PASS $_label (exit 0)"
109
+ else FAIL=$((FAIL+1)); echo " FAIL $_label — wanted exit 0, got $_rc"; fi ;;
110
+ nonzero) if [ "$_rc" -ne 0 ]; then PASS=$((PASS+1)); echo " PASS $_label (exit $_rc)"
111
+ else FAIL=$((FAIL+1)); echo " FAIL $_label — guard reported PASS but the literal is present"; fi ;;
112
+ esac
113
+ }
114
+
115
+ # case_in <dirname> — build a fresh scaffold under TMPROOT/<dirname>, echo its path.
116
+ case_in() {
117
+ _d="$TMPROOT/$1"
118
+ rm -rf "$_d"; mkdir -p "$_d"
119
+ scaffold "$_d"
120
+ echo "$_d"
121
+ }
122
+
123
+ echo "skill/harness fidelity guard — negative cases (plain path AND path with a space):"
124
+ echo ""
125
+
126
+ for dirname in "plain" "with spaces"; do
127
+ echo "--- repo root: .../$dirname"
128
+
129
+ R="$(case_in "$dirname")"
130
+ expect "clean tree passes" "$R" zero
131
+
132
+ R="$(case_in "$dirname")"
133
+ printf 'Use TeamCreate to spawn the team\n' >> "$R/plugins/chorus/skills/note.md"
134
+ expect "check 1 catches TeamCreate" "$R" nonzero
135
+
136
+ R="$(case_in "$dirname")"
137
+ printf 'Run the reviewer synchronously and read the result\n' \
138
+ >> "$R/public/chorus-plugin/skills/develop/SKILL.md"
139
+ expect "check 2 catches 'reviewer synchronously'" "$R" nonzero
140
+
141
+ R="$(case_in "$dirname")"
142
+ printf 'the subagent waits and returns the VERDICT to you\n' \
143
+ >> "$R/public/kiro-plugin/.kiro/skills/SKILL.md"
144
+ expect "check 2 catches 'waits and returns the VERDICT' (kiro)" "$R" nonzero
145
+
146
+ R="$(case_in "$dirname")"
147
+ printf 'spawn it in **foreground** so it blocks\n' >> "$R/packages/chorus-dsh/skills/SKILL.md"
148
+ expect "check 2 catches 'in **foreground**' (dsh)" "$R" nonzero
149
+
150
+ R="$(case_in "$dirname")"
151
+ printf 'the launch returns the VERDICT inline\n' \
152
+ >> "$R/public/chorus-plugin/skills/develop/SKILL.md"
153
+ expect "check 2 catches 'returns the VERDICT inline'" "$R" nonzero
154
+
155
+ # dsh legitimately keeps run_in_background: false, so only this exact
156
+ # parenthesised imperative is blacklisted — not the flag itself.
157
+ R="$(case_in "$dirname")"
158
+ printf 'wait for it (do NOT set run_in_background)\n' \
159
+ >> "$R/packages/chorus-dsh/skills/SKILL.md"
160
+ expect "check 2 catches '(do NOT set run_in_background)' (dsh)" "$R" nonzero
161
+
162
+ R="$(case_in "$dirname")"
163
+ printf 'Copy .chorus/specs/TEMPLATE/spec.md to start\n' >> "$R/docs/SPEC_LITE.md"
164
+ expect "check 3 catches .chorus/specs/TEMPLATE" "$R" nonzero
165
+
166
+ # chorus-pi is excluded from check 2 on purpose: its blocking `subagent` really
167
+ # does return the VERDICT, so the phrase is true there and must NOT trip a FAIL.
168
+ R="$(case_in "$dirname")"
169
+ mkdir -p "$R/packages/chorus-pi/skills"
170
+ printf 'the blocking subagent waits and returns the VERDICT\n' \
171
+ >> "$R/packages/chorus-pi/skills/SKILL.md"
172
+ expect "check 2 still exempts packages/chorus-pi" "$R" zero
173
+
174
+ # dsh's real wording must stay green. If someone later replaces the literal
175
+ # blacklist with a proximity rule pairing run_in_background against
176
+ # "foreground"/"synchronous"/"inline", this case fails a correct tree — which
177
+ # is exactly the regression the guard's header forbids.
178
+ R="$(case_in "$dirname")"
179
+ printf 'Spawn the reviewer with run_in_background: false and read its result.\n' \
180
+ >> "$R/packages/chorus-dsh/skills/SKILL.md"
181
+ expect "check 2 allows dsh's legitimate run_in_background: false" "$R" zero
182
+
183
+ # A scan that cannot run must never look like "no hits".
184
+ R="$(case_in "$dirname")"
185
+ rm -rf "$R/packages/chorus-dsh"
186
+ expect "missing scope path fails instead of passing" "$R" nonzero
187
+
188
+ # ── Check 4 — shell-disabled claims, one fixture per phrasing family ──────
189
+ R="$(case_in "$dirname")"
190
+ printf -- '- **You are READ-ONLY.** Do NOT run Bash.\n' \
191
+ >> "$R/packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md"
192
+ expect "check 4 catches 'Do NOT run Bash' (dsh reviewer)" "$R" nonzero
193
+
194
+ R="$(case_in "$dirname")"
195
+ printf 'You have `read` and `@chorus` tools — no `shell`, no `write`.\n' \
196
+ >> "$R/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json"
197
+ expect "check 4 catches 'no \`shell\`' (kiro reviewer)" "$R" nonzero
198
+
199
+ R="$(case_in "$dirname")"
200
+ printf 'Bash is disabled for this agent.\n' \
201
+ >> "$R/packages/chorus-pi/agents/chorus-proposal-reviewer.md"
202
+ expect "check 4 catches 'Bash is disabled' (pi reviewer)" "$R" nonzero
203
+
204
+ R="$(case_in "$dirname")"
205
+ printf 'Running any shell commands is prohibited.\n' \
206
+ >> "$R/plugins/chorus/skills/chorus-proposal-reviewer/SKILL.md"
207
+ expect "check 4 catches 'Running any shell commands' (codex reviewer)" "$R" nonzero
208
+
209
+ R="$(case_in "$dirname")"
210
+ printf 'You cannot run shell commands.\n' \
211
+ >> "$R/public/skill/proposal-reviewer-chorus/SKILL.md"
212
+ expect "check 4 catches 'cannot run shell' (standalone skill)" "$R" nonzero
213
+
214
+ R="$(case_in "$dirname")"
215
+ printf 'Do not edit files or run Bash commands.\n' \
216
+ >> "$R/packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md"
217
+ expect "check 4 catches 'or run Bash commands' (openclaw reviewer)" "$R" nonzero
218
+
219
+ # Check 4's extra scope: the orchestrator prompt and the steering doc. These two
220
+ # carried the "no `shell`" claim while sitting outside the guard, which is how the
221
+ # false statement survived the fix — so each gets its own fixture.
222
+ R="$(case_in "$dirname")"
223
+ printf 'Each reviewer is scoped `tools: ["read", "@chorus"]`, no `shell`.\n' \
224
+ >> "$R/public/kiro-plugin/.kiro/agents/chorus.md"
225
+ expect "check 4 catches 'no \`shell\`' (kiro orchestrator prompt)" "$R" nonzero
226
+
227
+ R="$(case_in "$dirname")"
228
+ printf 'The reviewer cannot run shell commands.\n' \
229
+ >> "$R/public/kiro-plugin/.kiro/steering/chorus.md"
230
+ expect "check 4 catches 'cannot run shell' (kiro steering doc)" "$R" nonzero
231
+
232
+ R="$(case_in "$dirname")"
233
+ rm -f "$R/public/kiro-plugin/.kiro/agents/chorus.md"
234
+ expect "a deleted check-4-only file fails instead of being skipped" "$R" nonzero
235
+
236
+ # The clean tree passes with neither of those two files carrying the canonical
237
+ # rule markers — that is check 5 correctly ignoring them (they are orchestrator
238
+ # prose, not reviewer definitions). Adding them to PR_FILES would break it.
239
+
240
+ # The truthful sentence every surface keeps must NOT trip check 4. This is the
241
+ # false positive an under-anchored blacklist (a bare "shell"/"Bash") would cause.
242
+ R="$(case_in "$dirname")"
243
+ printf 'Any shell command beyond read-only inspection — no git write ops.\n' \
244
+ >> "$R/public/skill/proposal-reviewer-chorus/SKILL.md"
245
+ expect "check 4 allows the truthful 'beyond read-only inspection' prose" "$R" zero
246
+
247
+ # ── Check 5 — the canonical rule must be present, all three markers ───────
248
+ R="$(case_in "$dirname")"
249
+ grep -v 'READ-ONLY inspection only' \
250
+ "$R/packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md" > "$R/tmp.md"
251
+ mv "$R/tmp.md" "$R/packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md"
252
+ expect "check 5 catches a missing read-only-inspection marker (openclaw)" "$R" nonzero
253
+
254
+ R="$(case_in "$dirname")"
255
+ grep -v 'before flagging it as missing' \
256
+ "$R/packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md" > "$R/tmp.md"
257
+ mv "$R/tmp.md" "$R/packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md"
258
+ expect "check 5 catches a missing existence-check obligation (dsh)" "$R" nonzero
259
+
260
+ R="$(case_in "$dirname")"
261
+ grep -v 'no installs, no test/build runs' \
262
+ "$R/packages/chorus-pi/agents/chorus-proposal-reviewer.md" > "$R/tmp.md"
263
+ mv "$R/tmp.md" "$R/packages/chorus-pi/agents/chorus-proposal-reviewer.md"
264
+ expect "check 5 catches a missing forbidden-command list (pi)" "$R" nonzero
265
+
266
+ # ── Enumerated path deleted — must FAIL, never be silently skipped ────────
267
+ R="$(case_in "$dirname")"
268
+ rm -f "$R/public/skill/proposal-reviewer-chorus/SKILL.md"
269
+ expect "a deleted enumerated surface fails instead of being skipped" "$R" nonzero
270
+
271
+ # ── Check 6 — the tool grants behind the rule ────────────────────────────
272
+ R="$(case_in "$dirname")"
273
+ # awk, not `sed 's/…/…\n…/'` — BSD sed (macOS) does not expand \n in the
274
+ # replacement, so the sed form would silently insert a literal "n" and the
275
+ # fixture would prove nothing.
276
+ awk '{print} /^ - Agent$/{print " - Bash"}' \
277
+ "$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
278
+ mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
279
+ expect "check 6 catches '- Bash' re-added to disallowedTools (claude code)" "$R" nonzero
280
+
281
+ # Two evasions of a whole-line `- Bash` match, both of which YAML accepts and a
282
+ # harness would honour: flow style, and a quoted entry.
283
+ R="$(case_in "$dirname")"
284
+ awk '/^disallowedTools:$/{print "disallowedTools: [Bash, Agent, Edit, Write]"; skip=1; next}
285
+ skip&&/^[[:space:]]*-[[:space:]]/{next} {skip=0; print}' \
286
+ "$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
287
+ mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
288
+ expect "check 6 catches Bash in a YAML flow-style disallowedTools (claude code)" "$R" nonzero
289
+
290
+ R="$(case_in "$dirname")"
291
+ awk '{print} /^ - Agent$/{print " - \"Bash\""}' \
292
+ "$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
293
+ mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
294
+ expect "check 6 catches a quoted '- \"Bash\"' entry (claude code)" "$R" nonzero
295
+
296
+ # Two more evasions YAML accepts inside the list: a `#` comment line and a blank
297
+ # line before `- Bash`. An extractor that treats either as the end of the list
298
+ # reports PASS on a tree whose deny list really does contain Bash.
299
+ R="$(case_in "$dirname")"
300
+ awk '{print} /^ - Agent$/{print " # restrict shell"; print " - Bash"}' \
301
+ "$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
302
+ mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
303
+ expect "check 6 catches '- Bash' after a comment line in the list (claude code)" "$R" nonzero
304
+
305
+ R="$(case_in "$dirname")"
306
+ awk '{print} /^ - Agent$/{print ""; print " - Bash"}' \
307
+ "$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
308
+ mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
309
+ expect "check 6 catches '- Bash' after a blank line in the list (claude code)" "$R" nonzero
310
+
311
+ R="$(case_in "$dirname")"
312
+ grep -v '"shell",' "$R/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json" \
313
+ > "$R/tmp.json"
314
+ mv "$R/tmp.json" "$R/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json"
315
+ expect "check 6 catches \`shell\` dropped from kiro's tools" "$R" nonzero
316
+
317
+ # A `Bash` mention elsewhere in the Claude Code agent body is not a tool denial —
318
+ # only a `- Bash` entry inside the disallowedTools list is.
319
+ R="$(case_in "$dirname")"
320
+ printf 'Bash inspection findings belong in the VERDICT comment.\n' \
321
+ >> "$R/public/chorus-plugin/agents/proposal-reviewer.md"
322
+ expect "check 6 does not fire on 'Bash' outside the disallowedTools list" "$R" zero
323
+
324
+ echo ""
325
+ done
326
+
327
+ echo "Results: $PASS passed, $FAIL failed"
328
+ [ "$FAIL" -eq 0 ]