@synapse-research/synapse 0.2.12 → 0.2.14

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 (575) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +524 -502
  3. package/dist/.next/app-path-routes-manifest.json +55 -54
  4. package/dist/.next/build-manifest.json +5 -5
  5. package/dist/.next/prerender-manifest.json +12 -12
  6. package/dist/.next/routes-manifest.json +8 -0
  7. package/dist/.next/server/app/(dashboard)/agents/page.js +2 -2
  8. package/dist/.next/server/app/(dashboard)/agents/page.js.nft.json +1 -1
  9. package/dist/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
  10. package/dist/.next/server/app/(dashboard)/compute/page.js +2 -2
  11. package/dist/.next/server/app/(dashboard)/compute/page.js.nft.json +1 -1
  12. package/dist/.next/server/app/(dashboard)/compute/page_client-reference-manifest.js +1 -1
  13. package/dist/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  14. package/dist/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  15. package/dist/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  16. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/activity/page.js +2 -2
  17. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/activity/page.js.nft.json +1 -1
  18. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  19. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/dashboard/page.js +3 -3
  20. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/dashboard/page.js.nft.json +1 -1
  21. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  22. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page.js +3 -3
  23. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  24. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  25. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/page.js +2 -2
  26. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/page.js.nft.json +1 -1
  27. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  28. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page.js +1 -1
  29. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page.js.nft.json +1 -1
  30. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page_client-reference-manifest.js +1 -1
  31. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/new/page.js +3 -3
  32. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/new/page.js.nft.json +1 -1
  33. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/new/page_client-reference-manifest.js +1 -1
  34. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/page.js +1 -1
  35. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/page.js.nft.json +1 -1
  36. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/page_client-reference-manifest.js +1 -1
  37. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page.js +2 -2
  38. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page.js.nft.json +1 -1
  39. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page_client-reference-manifest.js +1 -1
  40. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/page.js +1 -1
  41. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/page.js.nft.json +1 -1
  42. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/page_client-reference-manifest.js +1 -1
  43. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/new/page.js +1 -1
  44. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/new/page.js.nft.json +1 -1
  45. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/new/page_client-reference-manifest.js +1 -1
  46. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/page.js +2 -2
  47. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/page.js.nft.json +1 -1
  48. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/page_client-reference-manifest.js +1 -1
  49. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/insights/page.js +1 -1
  50. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/insights/page.js.nft.json +1 -1
  51. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/insights/page_client-reference-manifest.js +1 -1
  52. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/lessons/page.js +82 -0
  53. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/lessons/page.js.nft.json +1 -0
  54. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/lessons/page_client-reference-manifest.js +1 -0
  55. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/page.js +1 -1
  56. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/page.js.nft.json +1 -1
  57. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/page_client-reference-manifest.js +1 -1
  58. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/related-works/page.js +1 -1
  59. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/related-works/page.js.nft.json +1 -1
  60. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/related-works/page_client-reference-manifest.js +1 -1
  61. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page.js +1 -1
  62. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page.js.nft.json +1 -1
  63. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page_client-reference-manifest.js +1 -1
  64. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/page.js +1 -1
  65. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/page.js.nft.json +1 -1
  66. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/page_client-reference-manifest.js +1 -1
  67. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/settings/page.js +1 -1
  68. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/settings/page.js.nft.json +1 -1
  69. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/settings/page_client-reference-manifest.js +1 -1
  70. package/dist/.next/server/app/(dashboard)/research-projects/new/page.js +1 -1
  71. package/dist/.next/server/app/(dashboard)/research-projects/new/page.js.nft.json +1 -1
  72. package/dist/.next/server/app/(dashboard)/research-projects/new/page_client-reference-manifest.js +1 -1
  73. package/dist/.next/server/app/(dashboard)/research-projects/page.js +1 -1
  74. package/dist/.next/server/app/(dashboard)/research-projects/page.js.nft.json +1 -1
  75. package/dist/.next/server/app/(dashboard)/research-projects/page_client-reference-manifest.js +1 -1
  76. package/dist/.next/server/app/(dashboard)/settings/page.js +1 -1
  77. package/dist/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  78. package/dist/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  79. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  80. package/dist/.next/server/app/_not-found.html +1 -1
  81. package/dist/.next/server/app/_not-found.rsc +2 -2
  82. package/dist/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  83. package/dist/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  84. package/dist/.next/server/app/admin/companies/new.html +1 -1
  85. package/dist/.next/server/app/admin/companies/new.rsc +4 -4
  86. package/dist/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  87. package/dist/.next/server/app/admin/companies.html +1 -1
  88. package/dist/.next/server/app/admin/companies.rsc +4 -4
  89. package/dist/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  90. package/dist/.next/server/app/admin.html +1 -1
  91. package/dist/.next/server/app/admin.rsc +4 -4
  92. package/dist/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  93. package/dist/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  94. package/dist/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  95. package/dist/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  96. package/dist/.next/server/app/api/admin/stats/route_client-reference-manifest.js +1 -1
  97. package/dist/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  98. package/dist/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  99. package/dist/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  100. package/dist/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  101. package/dist/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  102. package/dist/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  103. package/dist/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  104. package/dist/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  105. package/dist/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  106. package/dist/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  107. package/dist/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  108. package/dist/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  109. package/dist/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  110. package/dist/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  111. package/dist/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  112. package/dist/.next/server/app/api/compute-gpus/[uuid]/release/route_client-reference-manifest.js +1 -1
  113. package/dist/.next/server/app/api/compute-nodes/[uuid]/route_client-reference-manifest.js +1 -1
  114. package/dist/.next/server/app/api/compute-nodes/route_client-reference-manifest.js +1 -1
  115. package/dist/.next/server/app/api/compute-pools/[uuid]/route_client-reference-manifest.js +1 -1
  116. package/dist/.next/server/app/api/compute-pools/route_client-reference-manifest.js +1 -1
  117. package/dist/.next/server/app/api/documents/[uuid]/images/[filename]/route_client-reference-manifest.js +1 -1
  118. package/dist/.next/server/app/api/documents/[uuid]/images/route_client-reference-manifest.js +1 -1
  119. package/dist/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  120. package/dist/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  121. package/dist/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  122. package/dist/.next/server/app/api/experiment-designs/[uuid]/approve/route_client-reference-manifest.js +1 -1
  123. package/dist/.next/server/app/api/experiment-designs/[uuid]/close/route_client-reference-manifest.js +1 -1
  124. package/dist/.next/server/app/api/experiment-designs/[uuid]/reject/route_client-reference-manifest.js +1 -1
  125. package/dist/.next/server/app/api/experiment-designs/[uuid]/route_client-reference-manifest.js +1 -1
  126. package/dist/.next/server/app/api/experiment-runs/[uuid]/claim/route_client-reference-manifest.js +1 -1
  127. package/dist/.next/server/app/api/experiment-runs/[uuid]/dependencies/[dependsOnRunUuid]/route_client-reference-manifest.js +1 -1
  128. package/dist/.next/server/app/api/experiment-runs/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  129. package/dist/.next/server/app/api/experiment-runs/[uuid]/evaluate-criteria/route_client-reference-manifest.js +1 -1
  130. package/dist/.next/server/app/api/experiment-runs/[uuid]/registry/route_client-reference-manifest.js +1 -1
  131. package/dist/.next/server/app/api/experiment-runs/[uuid]/release/route_client-reference-manifest.js +1 -1
  132. package/dist/.next/server/app/api/experiment-runs/[uuid]/route_client-reference-manifest.js +1 -1
  133. package/dist/.next/server/app/api/experiment-runs/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  134. package/dist/.next/server/app/api/experiments/[uuid]/complete/route_client-reference-manifest.js +1 -1
  135. package/dist/.next/server/app/api/experiments/[uuid]/progress/route_client-reference-manifest.js +1 -1
  136. package/dist/.next/server/app/api/experiments/[uuid]/request-plan/route_client-reference-manifest.js +1 -1
  137. package/dist/.next/server/app/api/experiments/[uuid]/reset/route_client-reference-manifest.js +1 -1
  138. package/dist/.next/server/app/api/experiments/[uuid]/review/route_client-reference-manifest.js +1 -1
  139. package/dist/.next/server/app/api/experiments/[uuid]/route_client-reference-manifest.js +1 -1
  140. package/dist/.next/server/app/api/experiments/[uuid]/start/route_client-reference-manifest.js +1 -1
  141. package/dist/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  142. package/dist/.next/server/app/api/mcp/route.js +83 -3
  143. package/dist/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  144. package/dist/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  145. package/dist/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  146. package/dist/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  147. package/dist/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  148. package/dist/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  149. package/dist/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  150. package/dist/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  151. package/dist/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  152. package/dist/.next/server/app/api/onboarding/status/route_client-reference-manifest.js +1 -1
  153. package/dist/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  154. package/dist/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  155. package/dist/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  156. package/dist/.next/server/app/api/research-projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  157. package/dist/.next/server/app/api/research-projects/[uuid]/agent-activity/route_client-reference-manifest.js +1 -1
  158. package/dist/.next/server/app/api/research-projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  159. package/dist/.next/server/app/api/research-projects/[uuid]/baselines/route_client-reference-manifest.js +1 -1
  160. package/dist/.next/server/app/api/research-projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  161. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/[designUuid]/validate/route_client-reference-manifest.js +1 -1
  162. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/route_client-reference-manifest.js +1 -1
  163. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/summary/route_client-reference-manifest.js +1 -1
  164. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-runs/dependencies/route_client-reference-manifest.js +1 -1
  165. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-runs/route_client-reference-manifest.js +1 -1
  166. package/dist/.next/server/app/api/research-projects/[uuid]/experiments/route_client-reference-manifest.js +1 -1
  167. package/dist/.next/server/app/api/research-projects/[uuid]/github/branches/route_client-reference-manifest.js +1 -1
  168. package/dist/.next/server/app/api/research-projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  169. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/[workUuid]/route_client-reference-manifest.js +1 -1
  170. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/auto-search/complete/route_client-reference-manifest.js +1 -1
  171. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/auto-search/route_client-reference-manifest.js +1 -1
  172. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/deep-research/complete/route_client-reference-manifest.js +1 -1
  173. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/deep-research/route_client-reference-manifest.js +1 -1
  174. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/route_client-reference-manifest.js +1 -1
  175. package/dist/.next/server/app/api/research-projects/[uuid]/research-questions/route_client-reference-manifest.js +1 -1
  176. package/dist/.next/server/app/api/research-projects/[uuid]/route_client-reference-manifest.js +1 -1
  177. package/dist/.next/server/app/api/research-projects/[uuid]/synthesis/complete/route_client-reference-manifest.js +1 -1
  178. package/dist/.next/server/app/api/research-projects/[uuid]/synthesis/refresh/route_client-reference-manifest.js +1 -1
  179. package/dist/.next/server/app/api/research-projects/[uuid]/synthesis/trigger/route_client-reference-manifest.js +1 -1
  180. package/dist/.next/server/app/api/research-projects/route_client-reference-manifest.js +1 -1
  181. package/dist/.next/server/app/api/research-questions/[uuid]/claim/route_client-reference-manifest.js +1 -1
  182. package/dist/.next/server/app/api/research-questions/[uuid]/move/route_client-reference-manifest.js +1 -1
  183. package/dist/.next/server/app/api/research-questions/[uuid]/release/route_client-reference-manifest.js +1 -1
  184. package/dist/.next/server/app/api/research-questions/[uuid]/review/route_client-reference-manifest.js +1 -1
  185. package/dist/.next/server/app/api/research-questions/[uuid]/route_client-reference-manifest.js +1 -1
  186. package/dist/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  187. package/dist/.next/server/app/api/settings/integrations/route_client-reference-manifest.js +1 -1
  188. package/dist/.next/server/app/api/ssh-config/route_client-reference-manifest.js +1 -1
  189. package/dist/.next/server/app/index.html +1 -1
  190. package/dist/.next/server/app/index.rsc +2 -2
  191. package/dist/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  192. package/dist/.next/server/app/login/admin.html +1 -1
  193. package/dist/.next/server/app/login/admin.rsc +3 -3
  194. package/dist/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  195. package/dist/.next/server/app/login/callback.html +1 -1
  196. package/dist/.next/server/app/login/callback.rsc +2 -2
  197. package/dist/.next/server/app/login/page_client-reference-manifest.js +1 -1
  198. package/dist/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  199. package/dist/.next/server/app/login/silent-refresh.html +1 -1
  200. package/dist/.next/server/app/login/silent-refresh.rsc +2 -2
  201. package/dist/.next/server/app/login.html +1 -1
  202. package/dist/.next/server/app/login.rsc +3 -3
  203. package/dist/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  204. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  205. package/dist/.next/server/app/research-projects/new.html +1 -1
  206. package/dist/.next/server/app/research-projects/new.rsc +4 -4
  207. package/dist/.next/server/app/research-projects.html +1 -1
  208. package/dist/.next/server/app/research-projects.rsc +4 -4
  209. package/dist/.next/server/app/settings.html +1 -1
  210. package/dist/.next/server/app/settings.rsc +4 -4
  211. package/dist/.next/server/app-paths-manifest.json +55 -54
  212. package/dist/.next/server/chunks/2457.js +1 -0
  213. package/dist/.next/server/chunks/2961.js +1 -1
  214. package/dist/.next/server/chunks/314.js +1 -1
  215. package/dist/.next/server/chunks/3390.js +1 -0
  216. package/dist/.next/server/chunks/3791.js +1 -1
  217. package/dist/.next/server/chunks/38.js +1 -0
  218. package/dist/.next/server/chunks/5562.js +1 -0
  219. package/dist/.next/server/chunks/5731.js +1 -0
  220. package/dist/.next/server/chunks/6113.js +1 -1
  221. package/dist/.next/server/chunks/7368.js +1 -1
  222. package/dist/.next/server/chunks/7422.js +1 -1
  223. package/dist/.next/server/chunks/7950.js +5 -0
  224. package/dist/.next/server/chunks/8283.js +1 -1
  225. package/dist/.next/server/chunks/8499.js +2 -2
  226. package/dist/.next/server/chunks/920.js +1 -1
  227. package/dist/.next/server/middleware-build-manifest.js +1 -1
  228. package/dist/.next/server/middleware-manifest.json +1 -1
  229. package/dist/.next/server/pages/404.html +1 -1
  230. package/dist/.next/server/pages/500.html +1 -1
  231. package/dist/.next/static/chunks/11370-8dbcaac1521218ba.js +1 -0
  232. package/dist/.next/static/chunks/{93093-24ce597a2771d2b4.js → 12790-d3547c5d0ba40341.js} +1 -1
  233. package/dist/.next/static/chunks/{93114-fecdce8b8178aac5.js → 24393-0180ede85b53b481.js} +1 -1
  234. package/dist/.next/static/chunks/2737-f6c323e9c6e8d008.js +1 -0
  235. package/dist/.next/static/chunks/{21139-d60467f21097636a.js → 30102-38e46ac99fdf4b58.js} +1 -1
  236. package/dist/.next/static/chunks/4073-2c91d56c6a35deca.js +1 -0
  237. package/dist/.next/static/chunks/{43721-ae7eb4a95e230f06.js → 43721-35cac435f9f90ebb.js} +1 -1
  238. package/dist/.next/static/chunks/4860.dc4631dc159e353e.js +1 -0
  239. package/dist/.next/static/chunks/52891-ceb6172bf494a95d.js +1 -0
  240. package/dist/.next/static/chunks/53241-ee634986ecd50e43.js +1 -0
  241. package/dist/.next/static/chunks/58229-09f15b58bdfce521.js +5 -0
  242. package/dist/.next/static/chunks/71350-e9acd6eea60c4535.js +1 -0
  243. package/dist/.next/static/chunks/{97844-1df9ddfcc5b2421a.js → 72664-44d48812ccc05bd8.js} +1 -1
  244. package/dist/.next/static/chunks/80382-794293a6415df0b7.js +1 -0
  245. package/dist/.next/static/chunks/99373.14bb226afd207689.js +1 -0
  246. package/dist/.next/static/chunks/app/(dashboard)/agents/loading-94bec255806637fb.js +1 -0
  247. package/dist/.next/static/chunks/app/(dashboard)/agents/{page-f22762510a1aba92.js → page-5c42502d3418fea0.js} +1 -1
  248. package/dist/.next/static/chunks/app/(dashboard)/compute/loading-94bec255806637fb.js +1 -0
  249. package/dist/.next/static/chunks/app/(dashboard)/compute/{page-69bcc7e8611d9a67.js → page-b1e10b06af4a57c3.js} +1 -1
  250. package/dist/.next/static/chunks/app/(dashboard)/layout-d7c0c55fdba0b163.js +1 -0
  251. package/dist/.next/static/chunks/app/(dashboard)/loading-94bec255806637fb.js +1 -0
  252. package/dist/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-0a21af59529a8509.js +1 -0
  253. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/activity/page-94bec255806637fb.js +1 -0
  254. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/dashboard/loading-94bec255806637fb.js +1 -0
  255. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/dashboard/page-b7f19c062b2c8f02.js +1 -0
  256. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page-05f8715faaae4033.js +1 -0
  257. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/documents/loading-94bec255806637fb.js +1 -0
  258. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/documents/page-eaed24baf6186f5b.js +1 -0
  259. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page-59331da86cfbd003.js +1 -0
  260. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-designs/page-94bec255806637fb.js +1 -0
  261. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page-15b1b86e6f55f21e.js +1 -0
  262. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-runs/page-94bec255806637fb.js +1 -0
  263. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiments/loading-94bec255806637fb.js +1 -0
  264. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiments/page-5323a1a768358d47.js +1 -0
  265. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/insights/loading-94bec255806637fb.js +1 -0
  266. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/insights/{page-1c58128ace8f50f2.js → page-ad987324ef5a425d.js} +1 -1
  267. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/lessons/loading-94bec255806637fb.js +1 -0
  268. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/lessons/page-572ec754feeaffec.js +1 -0
  269. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/loading-94bec255806637fb.js +1 -0
  270. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/page-94bec255806637fb.js +1 -0
  271. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/related-works/loading-94bec255806637fb.js +1 -0
  272. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/related-works/page-9b513afaf235e272.js +1 -0
  273. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page-94bec255806637fb.js +1 -0
  274. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/loading-94bec255806637fb.js +1 -0
  275. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/page-032daa6cc9ef5908.js +1 -0
  276. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/settings/loading-94bec255806637fb.js +1 -0
  277. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/settings/page-3321b22cb77f244e.js +1 -0
  278. package/dist/.next/static/chunks/app/(dashboard)/research-projects/new/{page-7b7e9752df9a4343.js → page-ec36a137724ea1c7.js} +1 -1
  279. package/dist/.next/static/chunks/app/(dashboard)/research-projects/{page-e1833dc32e8e5180.js → page-3ce35d315183d0e7.js} +1 -1
  280. package/dist/.next/static/chunks/app/(dashboard)/settings/{page-5c5369e7fe336fbf.js → page-2b9b838ede7154fb.js} +1 -1
  281. package/dist/.next/static/chunks/app/admin/companies/[uuid]/page-1dd55ce3a4bb64a8.js +1 -0
  282. package/dist/.next/static/chunks/app/admin/companies/new/page-7407b0a795cb3bab.js +1 -0
  283. package/dist/.next/static/chunks/app/admin/companies/page-9266b9905f865716.js +1 -0
  284. package/dist/.next/static/chunks/app/admin/layout-e8ba70042af5389f.js +1 -0
  285. package/dist/.next/static/chunks/app/admin/page-c8e46daaf1069303.js +1 -0
  286. package/dist/.next/static/chunks/app/api/admin/companies/[uuid]/route-94bec255806637fb.js +1 -0
  287. package/dist/.next/static/chunks/app/api/admin/companies/route-94bec255806637fb.js +1 -0
  288. package/dist/.next/static/chunks/app/api/admin/login/route-94bec255806637fb.js +1 -0
  289. package/dist/.next/static/chunks/app/api/admin/session/route-94bec255806637fb.js +1 -0
  290. package/dist/.next/static/chunks/app/api/admin/stats/route-94bec255806637fb.js +1 -0
  291. package/dist/.next/static/chunks/app/api/agents/[uuid]/route-94bec255806637fb.js +1 -0
  292. package/dist/.next/static/chunks/app/api/agents/[uuid]/sessions/route-94bec255806637fb.js +1 -0
  293. package/dist/.next/static/chunks/app/api/agents/route-94bec255806637fb.js +1 -0
  294. package/dist/.next/static/chunks/app/api/api-keys/[uuid]/route-94bec255806637fb.js +1 -0
  295. package/dist/.next/static/chunks/app/api/api-keys/route-94bec255806637fb.js +1 -0
  296. package/dist/.next/static/chunks/app/api/auth/callback/route-94bec255806637fb.js +1 -0
  297. package/dist/.next/static/chunks/app/api/auth/check-default/route-94bec255806637fb.js +1 -0
  298. package/dist/.next/static/chunks/app/api/auth/default-login/route-94bec255806637fb.js +1 -0
  299. package/dist/.next/static/chunks/app/api/auth/identify/route-94bec255806637fb.js +1 -0
  300. package/dist/.next/static/chunks/app/api/auth/logout/route-94bec255806637fb.js +1 -0
  301. package/dist/.next/static/chunks/app/api/auth/me/route-94bec255806637fb.js +1 -0
  302. package/dist/.next/static/chunks/app/api/auth/refresh/route-94bec255806637fb.js +1 -0
  303. package/dist/.next/static/chunks/app/api/auth/session/route-94bec255806637fb.js +1 -0
  304. package/dist/.next/static/chunks/app/api/auth/sync-token/route-94bec255806637fb.js +1 -0
  305. package/dist/.next/static/chunks/app/api/comments/route-94bec255806637fb.js +1 -0
  306. package/dist/.next/static/chunks/app/api/compute-gpus/[uuid]/release/route-94bec255806637fb.js +1 -0
  307. package/dist/.next/static/chunks/app/api/compute-nodes/[uuid]/route-94bec255806637fb.js +1 -0
  308. package/dist/.next/static/chunks/app/api/compute-nodes/route-94bec255806637fb.js +1 -0
  309. package/dist/.next/static/chunks/app/api/compute-pools/[uuid]/route-94bec255806637fb.js +1 -0
  310. package/dist/.next/static/chunks/app/api/compute-pools/route-94bec255806637fb.js +1 -0
  311. package/dist/.next/static/chunks/app/api/documents/[uuid]/images/[filename]/route-94bec255806637fb.js +1 -0
  312. package/dist/.next/static/chunks/app/api/documents/[uuid]/images/route-94bec255806637fb.js +1 -0
  313. package/dist/.next/static/chunks/app/api/documents/[uuid]/route-94bec255806637fb.js +1 -0
  314. package/dist/.next/static/chunks/app/api/events/notifications/route-94bec255806637fb.js +1 -0
  315. package/dist/.next/static/chunks/app/api/events/route-94bec255806637fb.js +1 -0
  316. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/approve/route-94bec255806637fb.js +1 -0
  317. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/close/route-94bec255806637fb.js +1 -0
  318. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/reject/route-94bec255806637fb.js +1 -0
  319. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/route-94bec255806637fb.js +1 -0
  320. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/claim/route-94bec255806637fb.js +1 -0
  321. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/dependencies/[dependsOnRunUuid]/route-94bec255806637fb.js +1 -0
  322. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/dependencies/route-94bec255806637fb.js +1 -0
  323. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/evaluate-criteria/route-94bec255806637fb.js +1 -0
  324. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/registry/route-94bec255806637fb.js +1 -0
  325. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/release/route-94bec255806637fb.js +1 -0
  326. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/route-94bec255806637fb.js +1 -0
  327. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/sessions/route-94bec255806637fb.js +1 -0
  328. package/dist/.next/static/chunks/app/api/experiments/[uuid]/complete/route-94bec255806637fb.js +1 -0
  329. package/dist/.next/static/chunks/app/api/experiments/[uuid]/progress/route-94bec255806637fb.js +1 -0
  330. package/dist/.next/static/chunks/app/api/experiments/[uuid]/request-plan/route-94bec255806637fb.js +1 -0
  331. package/dist/.next/static/chunks/app/api/experiments/[uuid]/reset/route-94bec255806637fb.js +1 -0
  332. package/dist/.next/static/chunks/app/api/experiments/[uuid]/review/route-94bec255806637fb.js +1 -0
  333. package/dist/.next/static/chunks/app/api/experiments/[uuid]/route-94bec255806637fb.js +1 -0
  334. package/dist/.next/static/chunks/app/api/experiments/[uuid]/start/route-94bec255806637fb.js +1 -0
  335. package/dist/.next/static/chunks/app/api/health/route-94bec255806637fb.js +1 -0
  336. package/dist/.next/static/chunks/app/api/mcp/route-94bec255806637fb.js +1 -0
  337. package/dist/.next/static/chunks/app/api/me/assignments/route-94bec255806637fb.js +1 -0
  338. package/dist/.next/static/chunks/app/api/mentionables/route-94bec255806637fb.js +1 -0
  339. package/dist/.next/static/chunks/app/api/notifications/[uuid]/archive/route-94bec255806637fb.js +1 -0
  340. package/dist/.next/static/chunks/app/api/notifications/[uuid]/read/route-94bec255806637fb.js +1 -0
  341. package/dist/.next/static/chunks/app/api/notifications/preferences/route-94bec255806637fb.js +1 -0
  342. package/dist/.next/static/chunks/app/api/notifications/read-all/route-94bec255806637fb.js +1 -0
  343. package/dist/.next/static/chunks/app/api/notifications/route-94bec255806637fb.js +1 -0
  344. package/dist/.next/static/chunks/app/api/notifications/unread-count/route-94bec255806637fb.js +1 -0
  345. package/dist/.next/static/chunks/app/api/onboarding/status/route-94bec255806637fb.js +1 -0
  346. package/dist/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-94bec255806637fb.js +1 -0
  347. package/dist/.next/static/chunks/app/api/project-groups/[uuid]/route-94bec255806637fb.js +1 -0
  348. package/dist/.next/static/chunks/app/api/project-groups/route-94bec255806637fb.js +1 -0
  349. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/activity/route-94bec255806637fb.js +1 -0
  350. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/agent-activity/route-94bec255806637fb.js +1 -0
  351. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/available/route-94bec255806637fb.js +1 -0
  352. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/baselines/route-94bec255806637fb.js +1 -0
  353. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/documents/route-94bec255806637fb.js +1 -0
  354. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/[designUuid]/validate/route-94bec255806637fb.js +1 -0
  355. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/route-94bec255806637fb.js +1 -0
  356. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/summary/route-94bec255806637fb.js +1 -0
  357. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-runs/dependencies/route-94bec255806637fb.js +1 -0
  358. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-runs/route-94bec255806637fb.js +1 -0
  359. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiments/route-94bec255806637fb.js +1 -0
  360. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/github/branches/route-94bec255806637fb.js +1 -0
  361. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/group/route-94bec255806637fb.js +1 -0
  362. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/[workUuid]/route-94bec255806637fb.js +1 -0
  363. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/auto-search/complete/route-94bec255806637fb.js +1 -0
  364. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/auto-search/route-94bec255806637fb.js +1 -0
  365. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/deep-research/complete/route-94bec255806637fb.js +1 -0
  366. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/deep-research/route-94bec255806637fb.js +1 -0
  367. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/route-94bec255806637fb.js +1 -0
  368. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/research-questions/route-94bec255806637fb.js +1 -0
  369. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/route-94bec255806637fb.js +1 -0
  370. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/synthesis/complete/route-94bec255806637fb.js +1 -0
  371. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/synthesis/refresh/route-94bec255806637fb.js +1 -0
  372. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/synthesis/trigger/route-94bec255806637fb.js +1 -0
  373. package/dist/.next/static/chunks/app/api/research-projects/route-94bec255806637fb.js +1 -0
  374. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/claim/route-94bec255806637fb.js +1 -0
  375. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/move/route-94bec255806637fb.js +1 -0
  376. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/release/route-94bec255806637fb.js +1 -0
  377. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/review/route-94bec255806637fb.js +1 -0
  378. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/route-94bec255806637fb.js +1 -0
  379. package/dist/.next/static/chunks/app/api/sessions/[uuid]/route-94bec255806637fb.js +1 -0
  380. package/dist/.next/static/chunks/app/api/settings/integrations/route-94bec255806637fb.js +1 -0
  381. package/dist/.next/static/chunks/app/api/ssh-config/route-94bec255806637fb.js +1 -0
  382. package/dist/.next/static/chunks/app/login/admin/page-78ff162d0a473389.js +1 -0
  383. package/dist/.next/static/chunks/app/login/{page-d3862c6ba55e15f6.js → page-7f563c406447e242.js} +1 -1
  384. package/dist/.next/static/chunks/app/onboarding/{page-ee736550d4f970e2.js → page-b0e345a7959b1576.js} +1 -1
  385. package/dist/.next/static/chunks/{webpack-a5770aaad373187a.js → webpack-22f5eba5b76c577a.js} +1 -1
  386. package/dist/.next/static/css/a10581cad102651e.css +1 -0
  387. package/dist/prisma/migrations/20260514192000_add_experiment_incident_lessons/migration.sql +59 -0
  388. package/dist/prisma/schema.prisma +36 -0
  389. package/package.json +4 -2
  390. package/dist/.next/server/chunks/1216.js +0 -1
  391. package/dist/.next/server/chunks/5826.js +0 -5
  392. package/dist/.next/server/chunks/6088.js +0 -1
  393. package/dist/.next/server/chunks/658.js +0 -1
  394. package/dist/.next/server/chunks/907.js +0 -1
  395. package/dist/.next/static/chunks/1156-c099265b7c7de8ea.js +0 -1
  396. package/dist/.next/static/chunks/18148-29dd083467122773.js +0 -1
  397. package/dist/.next/static/chunks/30895-8fe158fae80e0ac2.js +0 -1
  398. package/dist/.next/static/chunks/32825-46542f8813e05868.js +0 -1
  399. package/dist/.next/static/chunks/41320-4cbf34803a25b1ad.js +0 -1
  400. package/dist/.next/static/chunks/4860.267547168b346b58.js +0 -1
  401. package/dist/.next/static/chunks/52559-356f88ebc2bb1714.js +0 -5
  402. package/dist/.next/static/chunks/6322-9e58509119d6db0b.js +0 -1
  403. package/dist/.next/static/chunks/67620-3b37bef40b49d08b.js +0 -1
  404. package/dist/.next/static/chunks/99373.3c4a4c4eccf26a3b.js +0 -1
  405. package/dist/.next/static/chunks/app/(dashboard)/agents/loading-6b2a05f797e2c4a9.js +0 -1
  406. package/dist/.next/static/chunks/app/(dashboard)/compute/loading-6b2a05f797e2c4a9.js +0 -1
  407. package/dist/.next/static/chunks/app/(dashboard)/layout-ea19529c2ac3ff78.js +0 -1
  408. package/dist/.next/static/chunks/app/(dashboard)/loading-6b2a05f797e2c4a9.js +0 -1
  409. package/dist/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-4253047e033c8fb4.js +0 -1
  410. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/activity/page-6b2a05f797e2c4a9.js +0 -1
  411. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/dashboard/loading-6b2a05f797e2c4a9.js +0 -1
  412. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/dashboard/page-ec1b0b839044995f.js +0 -1
  413. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page-568a065a6fe9562f.js +0 -1
  414. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/documents/loading-6b2a05f797e2c4a9.js +0 -1
  415. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/documents/page-e878d5cfbf44770c.js +0 -1
  416. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page-5be7b5428cfa9953.js +0 -1
  417. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-designs/page-6b2a05f797e2c4a9.js +0 -1
  418. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page-9eaecee406d4cccc.js +0 -1
  419. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-runs/page-6b2a05f797e2c4a9.js +0 -1
  420. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiments/loading-6b2a05f797e2c4a9.js +0 -1
  421. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiments/page-e25f36eeb9b68948.js +0 -1
  422. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/insights/loading-6b2a05f797e2c4a9.js +0 -1
  423. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/loading-6b2a05f797e2c4a9.js +0 -1
  424. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/page-6b2a05f797e2c4a9.js +0 -1
  425. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/related-works/loading-6b2a05f797e2c4a9.js +0 -1
  426. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/related-works/page-e8591798d8d793b0.js +0 -1
  427. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page-6b2a05f797e2c4a9.js +0 -1
  428. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/loading-6b2a05f797e2c4a9.js +0 -1
  429. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/page-ec1db775ef5d5e4e.js +0 -1
  430. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/settings/loading-6b2a05f797e2c4a9.js +0 -1
  431. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/settings/page-de1cf685bb18e7a2.js +0 -1
  432. package/dist/.next/static/chunks/app/admin/companies/[uuid]/page-66ee6875a58dfcc9.js +0 -1
  433. package/dist/.next/static/chunks/app/admin/companies/new/page-acf33900c54cbf61.js +0 -1
  434. package/dist/.next/static/chunks/app/admin/companies/page-44f47c5fe9f01931.js +0 -1
  435. package/dist/.next/static/chunks/app/admin/layout-bcbd13b1b30f7c39.js +0 -1
  436. package/dist/.next/static/chunks/app/admin/page-4b50b1de904861bf.js +0 -1
  437. package/dist/.next/static/chunks/app/api/admin/companies/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  438. package/dist/.next/static/chunks/app/api/admin/companies/route-6b2a05f797e2c4a9.js +0 -1
  439. package/dist/.next/static/chunks/app/api/admin/login/route-6b2a05f797e2c4a9.js +0 -1
  440. package/dist/.next/static/chunks/app/api/admin/session/route-6b2a05f797e2c4a9.js +0 -1
  441. package/dist/.next/static/chunks/app/api/admin/stats/route-6b2a05f797e2c4a9.js +0 -1
  442. package/dist/.next/static/chunks/app/api/agents/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  443. package/dist/.next/static/chunks/app/api/agents/[uuid]/sessions/route-6b2a05f797e2c4a9.js +0 -1
  444. package/dist/.next/static/chunks/app/api/agents/route-6b2a05f797e2c4a9.js +0 -1
  445. package/dist/.next/static/chunks/app/api/api-keys/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  446. package/dist/.next/static/chunks/app/api/api-keys/route-6b2a05f797e2c4a9.js +0 -1
  447. package/dist/.next/static/chunks/app/api/auth/callback/route-6b2a05f797e2c4a9.js +0 -1
  448. package/dist/.next/static/chunks/app/api/auth/check-default/route-6b2a05f797e2c4a9.js +0 -1
  449. package/dist/.next/static/chunks/app/api/auth/default-login/route-6b2a05f797e2c4a9.js +0 -1
  450. package/dist/.next/static/chunks/app/api/auth/identify/route-6b2a05f797e2c4a9.js +0 -1
  451. package/dist/.next/static/chunks/app/api/auth/logout/route-6b2a05f797e2c4a9.js +0 -1
  452. package/dist/.next/static/chunks/app/api/auth/me/route-6b2a05f797e2c4a9.js +0 -1
  453. package/dist/.next/static/chunks/app/api/auth/refresh/route-6b2a05f797e2c4a9.js +0 -1
  454. package/dist/.next/static/chunks/app/api/auth/session/route-6b2a05f797e2c4a9.js +0 -1
  455. package/dist/.next/static/chunks/app/api/auth/sync-token/route-6b2a05f797e2c4a9.js +0 -1
  456. package/dist/.next/static/chunks/app/api/comments/route-6b2a05f797e2c4a9.js +0 -1
  457. package/dist/.next/static/chunks/app/api/compute-gpus/[uuid]/release/route-6b2a05f797e2c4a9.js +0 -1
  458. package/dist/.next/static/chunks/app/api/compute-nodes/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  459. package/dist/.next/static/chunks/app/api/compute-nodes/route-6b2a05f797e2c4a9.js +0 -1
  460. package/dist/.next/static/chunks/app/api/compute-pools/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  461. package/dist/.next/static/chunks/app/api/compute-pools/route-6b2a05f797e2c4a9.js +0 -1
  462. package/dist/.next/static/chunks/app/api/documents/[uuid]/images/[filename]/route-6b2a05f797e2c4a9.js +0 -1
  463. package/dist/.next/static/chunks/app/api/documents/[uuid]/images/route-6b2a05f797e2c4a9.js +0 -1
  464. package/dist/.next/static/chunks/app/api/documents/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  465. package/dist/.next/static/chunks/app/api/events/notifications/route-6b2a05f797e2c4a9.js +0 -1
  466. package/dist/.next/static/chunks/app/api/events/route-6b2a05f797e2c4a9.js +0 -1
  467. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/approve/route-6b2a05f797e2c4a9.js +0 -1
  468. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/close/route-6b2a05f797e2c4a9.js +0 -1
  469. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/reject/route-6b2a05f797e2c4a9.js +0 -1
  470. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  471. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/claim/route-6b2a05f797e2c4a9.js +0 -1
  472. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/dependencies/[dependsOnRunUuid]/route-6b2a05f797e2c4a9.js +0 -1
  473. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/dependencies/route-6b2a05f797e2c4a9.js +0 -1
  474. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/evaluate-criteria/route-6b2a05f797e2c4a9.js +0 -1
  475. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/registry/route-6b2a05f797e2c4a9.js +0 -1
  476. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/release/route-6b2a05f797e2c4a9.js +0 -1
  477. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  478. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/sessions/route-6b2a05f797e2c4a9.js +0 -1
  479. package/dist/.next/static/chunks/app/api/experiments/[uuid]/complete/route-6b2a05f797e2c4a9.js +0 -1
  480. package/dist/.next/static/chunks/app/api/experiments/[uuid]/progress/route-6b2a05f797e2c4a9.js +0 -1
  481. package/dist/.next/static/chunks/app/api/experiments/[uuid]/request-plan/route-6b2a05f797e2c4a9.js +0 -1
  482. package/dist/.next/static/chunks/app/api/experiments/[uuid]/reset/route-6b2a05f797e2c4a9.js +0 -1
  483. package/dist/.next/static/chunks/app/api/experiments/[uuid]/review/route-6b2a05f797e2c4a9.js +0 -1
  484. package/dist/.next/static/chunks/app/api/experiments/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  485. package/dist/.next/static/chunks/app/api/experiments/[uuid]/start/route-6b2a05f797e2c4a9.js +0 -1
  486. package/dist/.next/static/chunks/app/api/health/route-6b2a05f797e2c4a9.js +0 -1
  487. package/dist/.next/static/chunks/app/api/mcp/route-6b2a05f797e2c4a9.js +0 -1
  488. package/dist/.next/static/chunks/app/api/me/assignments/route-6b2a05f797e2c4a9.js +0 -1
  489. package/dist/.next/static/chunks/app/api/mentionables/route-6b2a05f797e2c4a9.js +0 -1
  490. package/dist/.next/static/chunks/app/api/notifications/[uuid]/archive/route-6b2a05f797e2c4a9.js +0 -1
  491. package/dist/.next/static/chunks/app/api/notifications/[uuid]/read/route-6b2a05f797e2c4a9.js +0 -1
  492. package/dist/.next/static/chunks/app/api/notifications/preferences/route-6b2a05f797e2c4a9.js +0 -1
  493. package/dist/.next/static/chunks/app/api/notifications/read-all/route-6b2a05f797e2c4a9.js +0 -1
  494. package/dist/.next/static/chunks/app/api/notifications/route-6b2a05f797e2c4a9.js +0 -1
  495. package/dist/.next/static/chunks/app/api/notifications/unread-count/route-6b2a05f797e2c4a9.js +0 -1
  496. package/dist/.next/static/chunks/app/api/onboarding/status/route-6b2a05f797e2c4a9.js +0 -1
  497. package/dist/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-6b2a05f797e2c4a9.js +0 -1
  498. package/dist/.next/static/chunks/app/api/project-groups/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  499. package/dist/.next/static/chunks/app/api/project-groups/route-6b2a05f797e2c4a9.js +0 -1
  500. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/activity/route-6b2a05f797e2c4a9.js +0 -1
  501. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/agent-activity/route-6b2a05f797e2c4a9.js +0 -1
  502. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/available/route-6b2a05f797e2c4a9.js +0 -1
  503. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/baselines/route-6b2a05f797e2c4a9.js +0 -1
  504. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/documents/route-6b2a05f797e2c4a9.js +0 -1
  505. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/[designUuid]/validate/route-6b2a05f797e2c4a9.js +0 -1
  506. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/route-6b2a05f797e2c4a9.js +0 -1
  507. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/summary/route-6b2a05f797e2c4a9.js +0 -1
  508. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-runs/dependencies/route-6b2a05f797e2c4a9.js +0 -1
  509. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-runs/route-6b2a05f797e2c4a9.js +0 -1
  510. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiments/route-6b2a05f797e2c4a9.js +0 -1
  511. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/github/branches/route-6b2a05f797e2c4a9.js +0 -1
  512. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/group/route-6b2a05f797e2c4a9.js +0 -1
  513. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/[workUuid]/route-6b2a05f797e2c4a9.js +0 -1
  514. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/auto-search/complete/route-6b2a05f797e2c4a9.js +0 -1
  515. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/auto-search/route-6b2a05f797e2c4a9.js +0 -1
  516. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/deep-research/complete/route-6b2a05f797e2c4a9.js +0 -1
  517. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/deep-research/route-6b2a05f797e2c4a9.js +0 -1
  518. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/route-6b2a05f797e2c4a9.js +0 -1
  519. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/research-questions/route-6b2a05f797e2c4a9.js +0 -1
  520. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  521. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/synthesis/complete/route-6b2a05f797e2c4a9.js +0 -1
  522. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/synthesis/refresh/route-6b2a05f797e2c4a9.js +0 -1
  523. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/synthesis/trigger/route-6b2a05f797e2c4a9.js +0 -1
  524. package/dist/.next/static/chunks/app/api/research-projects/route-6b2a05f797e2c4a9.js +0 -1
  525. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/claim/route-6b2a05f797e2c4a9.js +0 -1
  526. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/move/route-6b2a05f797e2c4a9.js +0 -1
  527. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/release/route-6b2a05f797e2c4a9.js +0 -1
  528. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/review/route-6b2a05f797e2c4a9.js +0 -1
  529. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  530. package/dist/.next/static/chunks/app/api/sessions/[uuid]/route-6b2a05f797e2c4a9.js +0 -1
  531. package/dist/.next/static/chunks/app/api/settings/integrations/route-6b2a05f797e2c4a9.js +0 -1
  532. package/dist/.next/static/chunks/app/api/ssh-config/route-6b2a05f797e2c4a9.js +0 -1
  533. package/dist/.next/static/chunks/app/login/admin/page-8dda79e82c76ba88.js +0 -1
  534. package/dist/.next/static/css/81cb96eb0c1ad534.css +0 -1
  535. package/dist/public/skill/SKILL.md +0 -200
  536. package/dist/public/skill/aris-synapse-sync/SKILL.md +0 -368
  537. package/dist/public/skill/package.json +0 -79
  538. package/dist/public/skill/references/00-common-tools.md +0 -253
  539. package/dist/public/skill/references/01-setup.md +0 -251
  540. package/dist/public/skill/references/02-pm-workflow.md +0 -584
  541. package/dist/public/skill/references/03-developer-workflow.md +0 -325
  542. package/dist/public/skill/references/04-admin-workflow.md +0 -328
  543. package/dist/public/skill/references/06-claude-code-agent-teams.md +0 -233
  544. package/dist/public/synapse-plugin/.claude-plugin/plugin.json +0 -20
  545. package/dist/public/synapse-plugin/.mcp.json +0 -11
  546. package/dist/public/synapse-plugin/bin/on-post-create-experiment.sh +0 -61
  547. package/dist/public/synapse-plugin/bin/on-post-submit-results.sh +0 -56
  548. package/dist/public/synapse-plugin/bin/on-pre-enter-plan.sh +0 -26
  549. package/dist/public/synapse-plugin/bin/on-pre-exit-plan.sh +0 -22
  550. package/dist/public/synapse-plugin/bin/on-pre-spawn-agent.sh +0 -64
  551. package/dist/public/synapse-plugin/bin/on-session-end.sh +0 -39
  552. package/dist/public/synapse-plugin/bin/on-session-start.sh +0 -284
  553. package/dist/public/synapse-plugin/bin/on-subagent-start.sh +0 -233
  554. package/dist/public/synapse-plugin/bin/on-subagent-stop.sh +0 -80
  555. package/dist/public/synapse-plugin/bin/on-task-completed.sh +0 -66
  556. package/dist/public/synapse-plugin/bin/on-teammate-idle.sh +0 -47
  557. package/dist/public/synapse-plugin/bin/on-user-prompt.sh +0 -57
  558. package/dist/public/synapse-plugin/bin/synapse-api.sh +0 -387
  559. package/dist/public/synapse-plugin/bin/test-syntax.sh +0 -85
  560. package/dist/public/synapse-plugin/hooks/hooks.json +0 -125
  561. package/dist/public/synapse-plugin/skills/autonomy/SKILL.md +0 -177
  562. package/dist/public/synapse-plugin/skills/experiments/SKILL.md +0 -135
  563. package/dist/public/synapse-plugin/skills/research/SKILL.md +0 -58
  564. package/dist/public/synapse-plugin/skills/sessions/SKILL.md +0 -176
  565. package/dist/public/synapse-plugin/skills/setup/SKILL.md +0 -108
  566. package/dist/public/synapse-plugin/skills/synapse/SKILL.md +0 -145
  567. package/dist/public/synapse-plugin/skills/synapse/package.json +0 -49
  568. package/dist/public/synapse-plugin/skills/synapse/references/00-common-tools.md +0 -144
  569. package/dist/public/synapse-plugin/skills/synapse/references/01-setup.md +0 -130
  570. package/dist/public/synapse-plugin/skills/synapse/references/02-research-workflow.md +0 -145
  571. package/dist/public/synapse-plugin/skills/synapse/references/03-experiment-workflow.md +0 -319
  572. package/dist/public/synapse-plugin/skills/synapse/references/04-autonomous-loop.md +0 -223
  573. package/dist/public/synapse-plugin/skills/synapse/references/05-session-sub-agent.md +0 -253
  574. /package/dist/.next/static/{CTg26EE4IkxbdY0E6xEiL → pDqWpKlO0UvhYF_M3n6bG}/_buildManifest.js +0 -0
  575. /package/dist/.next/static/{CTg26EE4IkxbdY0E6xEiL → pDqWpKlO0UvhYF_M3n6bG}/_ssgManifest.js +0 -0
@@ -1,284 +0,0 @@
1
- #!/usr/bin/env bash
2
- # on-session-start.sh — SessionStart hook
3
- # Triggered on Claude Code session startup/resume.
4
- # Calls synapse_checkin via MCP to inject agent context.
5
- # Also scans for existing session files (metadata for hook state lookup).
6
- #
7
- # Output: JSON with systemMessage (user) + additionalContext (Claude)
8
-
9
- set -euo pipefail
10
-
11
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
12
- API="${SCRIPT_DIR}/synapse-api.sh"
13
-
14
- # Read event JSON from stdin (if available)
15
- EVENT=""
16
- if [ ! -t 0 ]; then
17
- EVENT=$(cat)
18
- fi
19
-
20
- # Check if Synapse environment is configured
21
- if [ -z "${SYNAPSE_URL:-}" ] || [ -z "${SYNAPSE_API_KEY:-}" ]; then
22
- "$API" hook-output \
23
- "Synapse plugin: not configured (set SYNAPSE_URL and SYNAPSE_API_KEY)" \
24
- "Synapse environment not configured. Set SYNAPSE_URL and SYNAPSE_API_KEY to enable Synapse integration." \
25
- "SessionStart"
26
- exit 0
27
- fi
28
-
29
- # Call synapse_checkin via MCP
30
- CHECKIN_RESULT=$("$API" mcp-tool "synapse_checkin" '{}' 2>/dev/null) || {
31
- "$API" hook-output \
32
- "Synapse plugin: connection failed (${SYNAPSE_URL})" \
33
- "WARNING: Unable to reach Synapse at ${SYNAPSE_URL}. Session lifecycle hooks will not function." \
34
- "SessionStart"
35
- exit 0
36
- }
37
-
38
- # Store owner info from checkin for SubagentStart hook to inject into sub-agent context
39
- if command -v jq >/dev/null 2>&1; then
40
- _OWNER_NAME=$(echo "$CHECKIN_RESULT" | jq -r '.agent.owner.name // empty' 2>/dev/null) || true
41
- _OWNER_EMAIL=$(echo "$CHECKIN_RESULT" | jq -r '.agent.owner.email // empty' 2>/dev/null) || true
42
- _OWNER_UUID=$(echo "$CHECKIN_RESULT" | jq -r '.agent.owner.uuid // empty' 2>/dev/null) || true
43
- if [ -n "$_OWNER_UUID" ]; then
44
- "$API" state-set "owner_name" "$_OWNER_NAME"
45
- "$API" state-set "owner_email" "$_OWNER_EMAIL"
46
- "$API" state-set "owner_uuid" "$_OWNER_UUID"
47
- fi
48
-
49
- # Cache agent roles for other hooks.
50
- _ROLES=$(echo "$CHECKIN_RESULT" | jq -r '.agent.roles | join(",") // empty' 2>/dev/null) || true
51
- if [ -n "$_ROLES" ]; then
52
- "$API" state-set "agent_roles" "$_ROLES"
53
- fi
54
-
55
- # Cache the first visible project UUID for convenience in follow-up hooks.
56
- _PROJECT_UUID=$(echo "$CHECKIN_RESULT" | jq -r '
57
- (.assignments.experiments[0].projectUuid // .assignments.researchQuestions[0].project.uuid) // empty
58
- ' 2>/dev/null) || true
59
- if [ -n "$_PROJECT_UUID" ]; then
60
- "$API" state-set "project_uuid" "$_PROJECT_UUID"
61
- fi
62
- fi
63
-
64
- # Parse pending assignments for Claude context
65
- ASSIGNMENTS_BLOCK=""
66
- if command -v jq >/dev/null 2>&1; then
67
- EXP_COUNT=$(echo "$CHECKIN_RESULT" | jq -r '.assignments.experiments | length // 0' 2>/dev/null) || EXP_COUNT=0
68
- QUESTION_COUNT=$(echo "$CHECKIN_RESULT" | jq -r '.assignments.researchQuestions | length // 0' 2>/dev/null) || QUESTION_COUNT=0
69
- TOTAL_ASSIGNMENTS=$((EXP_COUNT + QUESTION_COUNT))
70
-
71
- if [ "$TOTAL_ASSIGNMENTS" -gt 0 ]; then
72
- ASSIGNMENTS_BLOCK="
73
- ## Pending Assignments
74
-
75
- You have ${TOTAL_ASSIGNMENTS} pending assignment(s) from Synapse. **Ask the user before starting any of them.**
76
- "
77
- if [ "$EXP_COUNT" -gt 0 ]; then
78
- EXP_LIST=$(echo "$CHECKIN_RESULT" | jq -r '.assignments.experiments[] | "- [Experiment] \"\(.title)\" (uuid: `\(.uuid)`) — status: \(.status), project: \"\(.projectName)\""' 2>/dev/null) || true
79
- if [ -n "$EXP_LIST" ]; then
80
- ASSIGNMENTS_BLOCK="${ASSIGNMENTS_BLOCK}
81
- ${EXP_LIST}"
82
- fi
83
- fi
84
-
85
- if [ "$QUESTION_COUNT" -gt 0 ]; then
86
- QUESTION_LIST=$(echo "$CHECKIN_RESULT" | jq -r '.assignments.researchQuestions[] | "- [Research Question] \"\(.title)\" (uuid: `\(.uuid)`) — status: \(.status), project: \"\(.project.name // "unknown")\""' 2>/dev/null) || true
87
- if [ -n "$QUESTION_LIST" ]; then
88
- ASSIGNMENTS_BLOCK="${ASSIGNMENTS_BLOCK}
89
- ${QUESTION_LIST}"
90
- fi
91
- fi
92
- fi
93
- fi
94
-
95
- # Parse research projects for Claude context
96
- PROJECTS_BLOCK=""
97
- if command -v jq >/dev/null 2>&1; then
98
- PROJECT_COUNT=$(echo "$CHECKIN_RESULT" | jq -r '.projects | length // 0' 2>/dev/null) || PROJECT_COUNT=0
99
-
100
- if [ "$PROJECT_COUNT" -gt 0 ]; then
101
- PROJECTS_BLOCK="
102
- ## Research Projects
103
-
104
- Ask the user which project to work on:
105
- "
106
- PROJECT_LIST=$(echo "$CHECKIN_RESULT" | jq -r '
107
- .projects | to_entries[] |
108
- "\(.key + 1). \"\(.value.name)\" (uuid: `\(.value.uuid)`)\n \(.value.relatedWorksCount) papers | deep research: \(if .value.deepResearchExists then "yes" else "no" end) | \(.value.researchQuestions | length) questions | experiments: \([.value.experimentCounts | to_entries[] | "\(.key)=\(.value)"] | join(", ") | if . == "" then "none" else . end)"
109
- ' 2>/dev/null) || true
110
- if [ -n "$PROJECT_LIST" ]; then
111
- PROJECTS_BLOCK="${PROJECTS_BLOCK}
112
- ${PROJECT_LIST}"
113
- fi
114
- else
115
- PROJECTS_BLOCK="
116
- ## Research Projects
117
-
118
- No research projects found. The user can create one on the Synapse web UI."
119
- fi
120
- fi
121
-
122
- # Static workflow guide for Research Copilot
123
- WORKFLOW_GUIDE="
124
- ## Research Copilot — Workflow Guide
125
-
126
- When the user selects a project:
127
-
128
- 1. Call \`synapse_get_project_full_context({ researchProjectUuid })\` to load full context.
129
- 2. Present the project's current state to the user:
130
- - Collected papers (count + highlights if any)
131
- - Deep research status
132
- - Research questions (list titles)
133
- - Experiments (count by status, key results if completed)
134
- 3. Explain the full research lifecycle:
135
- a. **Paper Search** — find and collect relevant papers
136
- b. **Deep Research** — synthesize papers into a literature review
137
- c. **Research Questions** — formulate specific research questions
138
- d. **Experiments** — design, execute, and submit results
139
- e. **Analysis & Iteration** — analyze results, identify gaps, loop back
140
- 4. Based on current state, suggest the most natural next step:
141
- - relatedWorksCount = 0 → suggest starting with Paper Search
142
- - relatedWorksCount > 0 but deepResearchExists = false → suggest Deep Research
143
- - no research questions → suggest formulating Research Questions
144
- - no experiments → suggest proposing Experiments
145
- - some experiments completed → suggest analyzing results and planning next iteration
146
- 5. Tell the user they can jump to any stage — the suggestion is a guide, not a constraint.
147
-
148
- ### Tool Reference by Stage
149
-
150
- Tool availability depends on the agent's Synapse roles. Public read/comment/notification/session tools are broadly available, while literature tools usually require \`pre_research\`, experiment execution tools require \`experiment\`, and project / question mutation tools depend on \`research\` or \`admin\`.
151
-
152
- **Paper Search:**
153
- - \`synapse_search_papers({ query })\` — search for papers
154
- - \`synapse_read_paper_brief({ arxivId })\` — quick summary (~500 tokens)
155
- - \`synapse_read_paper_head({ arxivId })\` — section structure (~1-2k tokens)
156
- - \`synapse_read_paper_section({ arxivId, sectionName })\` — full section
157
- - \`synapse_add_related_work({ researchProjectUuid, ... })\` — add paper to project
158
- - \`synapse_get_related_works({ researchProjectUuid })\` — list collected papers
159
-
160
- **Deep Research:**
161
- - \`synapse_get_related_works\` — review collected papers
162
- - \`synapse_get_deep_research_report({ researchProjectUuid })\` — get existing report
163
- - \`synapse_save_deep_research_report({ researchProjectUuid, title, content })\` — create/update report
164
- - \`synapse_complete_task({ researchProjectUuid, taskType: \"deep_research\" })\` — clear the active task when you are fulfilling a Synapse-triggered deep research request
165
-
166
- **Research Questions:**
167
- - \`synapse_get_research_project({ researchProjectUuid })\` — project context
168
- - \`synapse_get_research_questions({ researchProjectUuid })\` — inspect the current question set
169
- - Claim / status-update tools are available only when the agent has the matching research-oriented role
170
-
171
- **Experiment Planning / Revision:**
172
- - \`synapse_create_experiment({ researchProjectUuid, title, description, researchQuestionUuid?, priority?, status? })\` — create a brand-new experiment outside autonomous loop (defaults to \`draft\`; spawn a self-review sub-agent and revise before pushing to \`pending_review\`)
173
- - \`synapse_review_experiment({ experimentUuid, decision, reviewNote?, assignedAgentUuid? })\` — PI/admin agents can approve into \`pending_start\` or reject back to \`draft\` from the terminal flow
174
- - \`synapse_get_experiment({ experimentUuid })\` — inspect the current experiment
175
- - \`synapse_get_comments({ targetType: \"experiment\", targetUuid })\` — read review feedback or @mention threads
176
- - \`synapse_update_experiment_status({ experimentUuid, status: \"draft\", liveStatus: \"writing\", liveMessage })\` — mark that you are drafting or revising the plan
177
- - \`synapse_update_experiment_plan({ experimentUuid, title?, description?, researchQuestionUuid?, priority? })\` — save the fleshed-out plan
178
- - \`synapse_update_experiment_status({ experimentUuid, status: \"pending_review\" })\` — hand the revised plan back for review
179
-
180
- **Experiment Execution:**
181
- - \`synapse_list_compute_nodes({ onlyAvailable: true, researchProjectUuid? })\` — inspect available compute
182
- - \`synapse_reserve_gpus({ experimentUuid, gpuUuids })\` — reserve GPUs before running
183
- - \`synapse_start_experiment({ experimentUuid })\` — begin execution
184
- - \`synapse_report_experiment_progress({ experimentUuid, message, phase?, liveStatus? })\` — report progress or queueing state
185
- - \`synapse_get_node_access_bundle({ experimentUuid, nodeUuid })\` — fetch managed SSH credentials
186
- - \`synapse_submit_experiment_results({ experimentUuid, outcome?, experimentResults, experimentBranch?, commitSha? })\` — submit results and finish execution
187
- - \`synapse_save_experiment_report({ experimentUuid, title?, content })\` — save the dedicated experiment report document when requested
188
-
189
- **Analysis:**
190
- - \`synapse_get_project_full_context({ researchProjectUuid })\` — reload full state
191
- - Review experiment outcomes, compute availability, and synthesis state before proposing next steps
192
-
193
- ### Language
194
-
195
- Respond in the same language the user uses. If the user writes in Chinese, respond in Chinese. If in English, respond in English."
196
-
197
- # Build context for Claude (additionalContext)
198
- CONTEXT="# Synapse Plugin — Active
199
-
200
- Synapse is connected at ${SYNAPSE_URL}.
201
- Session lifecycle hooks are enabled: SubagentStart, SubagentStop, TeammateIdle, TaskCompleted.
202
-
203
- ## Checkin Result
204
-
205
- ${CHECKIN_RESULT}
206
- ${ASSIGNMENTS_BLOCK}
207
- ${PROJECTS_BLOCK}
208
- ${WORKFLOW_GUIDE}
209
-
210
- ## Session Management — IMPORTANT
211
-
212
- The Synapse Plugin **fully automates** Synapse session lifecycle:
213
- - Sub-agent spawn → Synapse session auto-created (or reused) + session UUID and workflow auto-injected into sub-agent context
214
- - Teammate idle → Synapse session heartbeat (automatic)
215
- - Sub-agent stop → Synapse session closed
216
-
217
- **Do NOT call synapse_create_session or synapse_close_session for sub-agents.** The plugin handles this.
218
- When spawning sub-agents, pass Synapse EXPERIMENT UUIDs in the prompt. Session UUID + Experiment workflow are auto-injected by SubagentStart hook.
219
-
220
- For your own session (if you are working directly, not via sub-agents):
221
- call synapse_list_sessions() first, then reopen or create as needed.
222
-
223
- To link a Claude Code work item to a Synapse experiment, include \`synapse:experiment:<uuid>\` in the description.
224
-
225
- ## Notifications
226
-
227
- When you or your sub-agents receive @mentions or other notifications:
228
- - \`synapse_get_notifications()\` — fetches unread notifications and **auto-marks them as read**
229
- - \`synapse_get_notifications({ autoMarkRead: false })\` — peek without marking read
230
- - No need to call \`synapse_mark_notification_read\` separately after reading
231
-
232
- ## Project Groups
233
-
234
- Projects are organized into Project Groups. If your agent has admin capabilities and needs to create a project, call \`synapse_get_project_groups()\` first so the new project lands in the correct group."
235
-
236
- # Check for existing state (resumed session)
237
- MAIN_SESSION=$("$API" state-get "main_session_uuid" 2>/dev/null) || true
238
- if [ -n "$MAIN_SESSION" ]; then
239
- CONTEXT="${CONTEXT}
240
-
241
- Resuming with existing Synapse session: ${MAIN_SESSION}"
242
- "$API" mcp-tool "synapse_session_heartbeat" "$(printf '{"sessionUuid":"%s"}' "$MAIN_SESSION")" >/dev/null 2>&1 || true
243
- fi
244
-
245
- # Plan A: Session discovery for sub-agents
246
- SESSIONS_DIR="${CLAUDE_PROJECT_DIR:-.}/.synapse/sessions"
247
- if [ -d "$SESSIONS_DIR" ]; then
248
- SESSION_FILES=$(ls "$SESSIONS_DIR"/*.json 2>/dev/null) || true
249
- if [ -n "$SESSION_FILES" ]; then
250
- SESSION_LIST="
251
-
252
- ## Pre-assigned Synapse Sessions
253
-
254
- The following Synapse sessions were auto-created by the plugin for sub-agents.
255
- If you are a sub-agent, find your session by matching your agent name:
256
- "
257
- for f in $SESSION_FILES; do
258
- BASENAME=$(basename "$f" .json)
259
- if command -v jq &>/dev/null; then
260
- S_UUID=$(jq -r '.sessionUuid // empty' "$f" 2>/dev/null) || true
261
- S_NAME=$(jq -r '.agentName // empty' "$f" 2>/dev/null) || true
262
- else
263
- S_UUID=$(grep -o '"sessionUuid":"[^"]*"' "$f" 2>/dev/null | cut -d'"' -f4) || true
264
- S_NAME="$BASENAME"
265
- fi
266
- if [ -n "$S_UUID" ]; then
267
- SESSION_LIST="${SESSION_LIST}
268
- - **${S_NAME:-$BASENAME}**: sessionUuid = \`${S_UUID}\`"
269
- fi
270
- done
271
- SESSION_LIST="${SESSION_LIST}
272
-
273
- Use your session UUID for session observability only. Execute assigned work with \`synapse_get_experiment\`, \`synapse_start_experiment\`, \`synapse_report_experiment_progress\`, and \`synapse_submit_experiment_results\`."
274
- CONTEXT="${CONTEXT}${SESSION_LIST}"
275
- fi
276
- fi
277
-
278
- # Build user-visible message
279
- USER_MSG="Synapse connected at ${SYNAPSE_URL}"
280
- if [ -n "$MAIN_SESSION" ]; then
281
- USER_MSG="${USER_MSG} (resumed session)"
282
- fi
283
-
284
- "$API" hook-output "$USER_MSG" "$CONTEXT" "SessionStart"
@@ -1,233 +0,0 @@
1
- #!/usr/bin/env bash
2
- # on-subagent-start.sh — SubagentStart hook
3
- # Triggered SYNCHRONOUSLY when a sub-agent (teammate) is spawned.
4
- #
5
- # Name resolution: Claims a per-agent pending file written by PreToolUse:Task
6
- # using atomic mv (only one process can successfully mv a given file).
7
- #
8
- # Session reuse logic:
9
- # 1. List existing sessions via MCP
10
- # 2. If a session with the same name exists and is active → reuse
11
- # 3. If it exists but is closed → reopen
12
- # 4. If not found → create new
13
- #
14
- # Writes minimal session metadata file for other hooks (TeammateIdle, SubagentStop).
15
- # Injects session UUID + workflow directly into sub-agent context via additionalContext.
16
- # Output: JSON with systemMessage (user) + additionalContext (sub-agent)
17
-
18
- set -euo pipefail
19
-
20
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
21
- API="${SCRIPT_DIR}/synapse-api.sh"
22
-
23
- # Check environment
24
- if [ -z "${SYNAPSE_URL:-}" ] || [ -z "${SYNAPSE_API_KEY:-}" ]; then
25
- exit 0
26
- fi
27
-
28
- # Read event JSON from stdin
29
- EVENT=""
30
- if [ ! -t 0 ]; then
31
- EVENT=$(cat)
32
- fi
33
-
34
- if [ -z "$EVENT" ]; then
35
- exit 0
36
- fi
37
-
38
- # Extract agent info from event
39
- # Note: SubagentStart only provides agent_id and agent_type — NOT the name
40
- # from the Task tool call. The name is captured by on-pre-spawn-agent.sh
41
- # (PreToolUse:Task) and stored as a per-agent file in .synapse/pending/.
42
- AGENT_ID=$(echo "$EVENT" | jq -r '.agent_id // .agentId // empty' 2>/dev/null) || true
43
- AGENT_TYPE=$(echo "$EVENT" | jq -r '.agent_type // .agentType // empty' 2>/dev/null) || true
44
-
45
- # Skip non-worker agent types (read-only agents don't need sessions)
46
- case "$(printf '%s' "$AGENT_TYPE" | tr '[:upper:]' '[:lower:]')" in
47
- explore|plan|haiku|claude-code-guide|statusline-setup)
48
- exit 0
49
- ;;
50
- esac
51
-
52
- if [ -z "$AGENT_ID" ]; then
53
- exit 0
54
- fi
55
-
56
- # Claim a pending file written by PreToolUse:Task (on-pre-spawn-agent.sh).
57
- # Each pending file represents one expected sub-agent spawn.
58
- #
59
- # Claim strategy (atomic mv — only one process can succeed per file):
60
- # 1. Try exact match: mv .synapse/pending/{agent_type} → claimed/{agent_id}
61
- # (CC often sets agent_type to the name from the Task tool call)
62
- # 2. Fallback: claim the oldest pending file (FIFO by modification time)
63
- #
64
- # If no pending file exists, this is an internal/cleanup agent → skip.
65
- AGENT_NAME=""
66
- PENDING_DIR="${CLAUDE_PROJECT_DIR:-.}/.synapse/pending"
67
- CLAIMED_DIR="${CLAUDE_PROJECT_DIR:-.}/.synapse/claimed"
68
- mkdir -p "$CLAIMED_DIR"
69
-
70
- CLAIMED_FILE=""
71
-
72
- # Strategy 1: exact match by agent_type (CC uses name as agent_type)
73
- if [ -f "${PENDING_DIR}/${AGENT_TYPE}" ]; then
74
- if mv "${PENDING_DIR}/${AGENT_TYPE}" "${CLAIMED_DIR}/${AGENT_ID}" 2>/dev/null; then
75
- CLAIMED_FILE="${CLAIMED_DIR}/${AGENT_ID}"
76
- AGENT_NAME="$AGENT_TYPE"
77
- fi
78
- fi
79
-
80
- # Strategy 2: FIFO — claim oldest pending file
81
- if [ -z "$CLAIMED_FILE" ] && [ -d "$PENDING_DIR" ]; then
82
- for candidate in $(ls -tr "$PENDING_DIR" 2>/dev/null); do
83
- if mv "${PENDING_DIR}/${candidate}" "${CLAIMED_DIR}/${AGENT_ID}" 2>/dev/null; then
84
- CLAIMED_FILE="${CLAIMED_DIR}/${AGENT_ID}"
85
- # Read name from file content if available
86
- FILE_NAME=$(jq -r '.name // empty' "$CLAIMED_FILE" 2>/dev/null) || true
87
- AGENT_NAME="${FILE_NAME:-$candidate}"
88
- break
89
- fi
90
- # mv failed → another process claimed it first, try next
91
- done
92
- fi
93
-
94
- # No pending file claimed → internal/cleanup agent → skip session creation
95
- if [ -z "$CLAIMED_FILE" ]; then
96
- exit 0
97
- fi
98
-
99
- # Fallback: use agent_type + short ID if no name was captured
100
- SESSION_NAME="${AGENT_NAME:-${AGENT_TYPE:-worker}-${AGENT_ID:0:8}}"
101
-
102
- # === Session reuse: list existing sessions, find by name ===
103
- SESSION_UUID=""
104
- SESSION_ACTION="" # "reused" | "reopened" | "created"
105
-
106
- SESSIONS_LIST=$("$API" mcp-tool "synapse_list_sessions" '{}' 2>/dev/null) || true
107
-
108
- if [ -n "$SESSIONS_LIST" ]; then
109
- # Find a session with matching name
110
- # The list may be an array or an object with a sessions array
111
- MATCH=$(echo "$SESSIONS_LIST" | jq -r --arg name "$SESSION_NAME" '
112
- (if type == "array" then . else (.sessions // []) end)
113
- | map(select(.name == $name))
114
- | sort_by(.updatedAt // .createdAt)
115
- | last
116
- // empty
117
- ' 2>/dev/null) || true
118
-
119
- if [ -n "$MATCH" ] && [ "$MATCH" != "null" ]; then
120
- MATCH_UUID=$(echo "$MATCH" | jq -r '.uuid // empty' 2>/dev/null) || true
121
- MATCH_STATUS=$(echo "$MATCH" | jq -r '.status // empty' 2>/dev/null) || true
122
-
123
- if [ -n "$MATCH_UUID" ]; then
124
- if [ "$MATCH_STATUS" = "active" ]; then
125
- # Active session found — reuse directly
126
- SESSION_UUID="$MATCH_UUID"
127
- SESSION_ACTION="reused"
128
- # Send heartbeat to refresh lastActiveAt
129
- "$API" mcp-tool "synapse_session_heartbeat" \
130
- "$(printf '{"sessionUuid":"%s"}' "$SESSION_UUID")" >/dev/null 2>&1 || true
131
- elif [ "$MATCH_STATUS" = "closed" ] || [ "$MATCH_STATUS" = "inactive" ]; then
132
- # Closed/inactive session — reopen
133
- REOPEN_RESPONSE=$("$API" mcp-tool "synapse_reopen_session" \
134
- "$(printf '{"sessionUuid":"%s"}' "$MATCH_UUID")" 2>/dev/null) || true
135
- REOPEN_UUID=$(echo "$REOPEN_RESPONSE" | jq -r '.uuid // empty' 2>/dev/null) || true
136
- if [ -n "$REOPEN_UUID" ]; then
137
- SESSION_UUID="$REOPEN_UUID"
138
- SESSION_ACTION="reopened"
139
- fi
140
- fi
141
- fi
142
- fi
143
- fi
144
-
145
- # === No existing session found — create new ===
146
- if [ -z "$SESSION_UUID" ]; then
147
- RESPONSE=$("$API" mcp-tool "synapse_create_session" \
148
- "$(printf '{"name":"%s","description":"Auto-created by Synapse plugin for sub-agent %s (type: %s)"}' \
149
- "$SESSION_NAME" "$AGENT_ID" "${AGENT_TYPE:-unknown}")" 2>/dev/null) || {
150
- "$API" hook-output \
151
- "Synapse: failed to create session for '${SESSION_NAME}'" \
152
- "WARNING: Failed to create Synapse session for sub-agent '${SESSION_NAME}'. Session lifecycle will not be tracked." \
153
- "SubagentStart"
154
- exit 0
155
- }
156
-
157
- SESSION_UUID=$(echo "$RESPONSE" | jq -r '.uuid // empty' 2>/dev/null) || true
158
-
159
- if [ -z "$SESSION_UUID" ]; then
160
- SESSION_UUID=$(echo "$RESPONSE" | grep -oP '"uuid"\s*:\s*"([0-9a-f-]{36})"' | head -1 | grep -oP '[0-9a-f-]{36}') || true
161
- fi
162
-
163
- if [ -z "$SESSION_UUID" ]; then
164
- "$API" hook-output \
165
- "Synapse: session for '${SESSION_NAME}' — UUID not found in response" \
166
- "WARNING: Could not extract session UUID from response for sub-agent '${SESSION_NAME}'." \
167
- "SubagentStart"
168
- exit 0
169
- fi
170
-
171
- SESSION_ACTION="created"
172
- fi
173
-
174
- # === State: store mapping for other hooks (TeammateIdle, SubagentStop) ===
175
- "$API" state-set "session_${AGENT_ID}" "$SESSION_UUID"
176
- "$API" state-set "agent_for_session_${SESSION_UUID}" "$AGENT_ID"
177
- "$API" state-set "session_${SESSION_NAME}" "$SESSION_UUID"
178
- "$API" state-set "name_for_agent_${AGENT_ID}" "$SESSION_NAME"
179
-
180
- # === Session file: minimal metadata for other hooks (TeammateIdle, SubagentStop) ===
181
- SESSIONS_DIR="${CLAUDE_PROJECT_DIR:-.}/.synapse/sessions"
182
- mkdir -p "$SESSIONS_DIR"
183
-
184
- cat > "${SESSIONS_DIR}/${SESSION_NAME}.json" <<SESSIONEOF
185
- {
186
- "sessionUuid": "${SESSION_UUID}",
187
- "agentId": "${AGENT_ID}",
188
- "agentName": "${SESSION_NAME}",
189
- "agentType": "${AGENT_TYPE:-unknown}",
190
- "sessionAction": "${SESSION_ACTION}",
191
- "createdAt": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
192
- }
193
- SESSIONEOF
194
-
195
- # === Owner info: read from state (stored by on-session-start.sh from checkin response) ===
196
- OWNER_SECTION=""
197
- OWNER_UUID=$("$API" state-get "owner_uuid" 2>/dev/null) || true
198
- if [ -n "$OWNER_UUID" ]; then
199
- OWNER_NAME=$("$API" state-get "owner_name" 2>/dev/null) || true
200
- OWNER_EMAIL=$("$API" state-get "owner_email" 2>/dev/null) || true
201
- OWNER_SECTION="
202
- ## Owner Info
203
-
204
- Your owner (the human who created your API key): ${OWNER_NAME} (${OWNER_EMAIL}), UUID: ${OWNER_UUID}
205
- Use this info when you need to @mention your owner in comments."
206
- fi
207
-
208
- # === Output: inject workflow directly into sub-agent context via additionalContext ===
209
- WORKFLOW="## Synapse Session (Auto-injected by plugin)
210
-
211
- Your Synapse session UUID is: ${SESSION_UUID}
212
- Your session name is: ${SESSION_NAME}
213
- The plugin manages session lifecycle (heartbeat, close). Do NOT call synapse_create_session or synapse_close_session.
214
-
215
- ### Workflow — follow these steps for each assigned experiment:
216
-
217
- **Before starting:**
218
- 1. Read the experiment: synapse_get_experiment({ experimentUuid: \"<EXPERIMENT_UUID>\" })
219
- 2. If the experiment is ready to execute, start it: synapse_start_experiment({ experimentUuid: \"<EXPERIMENT_UUID>\" })
220
-
221
- **While working:**
222
- 3. Report major milestones with synapse_report_experiment_progress({ experimentUuid: \"<EXPERIMENT_UUID>\", message: \"...\", phase: \"setup|training|evaluation|analysis\" })
223
- 4. Add comments for durable decisions or findings with synapse_add_comment({ targetType: \"experiment\", targetUuid: \"<EXPERIMENT_UUID>\", content: \"...\" })
224
-
225
- **After completing:**
226
- 5. Submit the outcome with synapse_submit_experiment_results({ experimentUuid: \"<EXPERIMENT_UUID>\", outcome: \"success|failure|inconclusive\", experimentResults: \"...\" })
227
-
228
- Replace <EXPERIMENT_UUID> with the actual Synapse experiment UUID from your prompt.${OWNER_SECTION}"
229
-
230
- "$API" hook-output \
231
- "Synapse session ${SESSION_ACTION}: '${SESSION_NAME}' (${SESSION_UUID:0:8}...)" \
232
- "$WORKFLOW" \
233
- "SubagentStart"
@@ -1,80 +0,0 @@
1
- #!/usr/bin/env bash
2
- # on-subagent-stop.sh — SubagentStop hook
3
- # Triggered when a sub-agent (teammate) exits.
4
- # Closes the Synapse session and cleans up local plugin state.
5
- #
6
- # Output: JSON with systemMessage (user) + additionalContext (Claude)
7
-
8
- set -euo pipefail
9
-
10
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
11
- API="${SCRIPT_DIR}/synapse-api.sh"
12
-
13
- # Check environment
14
- if [ -z "${SYNAPSE_URL:-}" ] || [ -z "${SYNAPSE_API_KEY:-}" ]; then
15
- exit 0
16
- fi
17
-
18
- # Read event JSON from stdin
19
- EVENT=""
20
- if [ ! -t 0 ]; then
21
- EVENT=$(cat)
22
- fi
23
-
24
- if [ -z "$EVENT" ]; then
25
- exit 0
26
- fi
27
-
28
- # Extract agent ID from event
29
- # Note: SubagentStop only provides agent_id and agent_type — NOT the name.
30
- # We look up the name from state (stored by SubagentStart).
31
- AGENT_ID=$(echo "$EVENT" | jq -r '.agent_id // .agentId // empty' 2>/dev/null) || true
32
-
33
- if [ -z "$AGENT_ID" ]; then
34
- exit 0
35
- fi
36
-
37
- # Lookup session UUID and agent name from state
38
- SESSION_UUID=$("$API" state-get "session_${AGENT_ID}" 2>/dev/null) || true
39
- AGENT_NAME=$("$API" state-get "name_for_agent_${AGENT_ID}" 2>/dev/null) || true
40
-
41
- if [ -z "$SESSION_UUID" ]; then
42
- exit 0
43
- fi
44
-
45
- # Close the Synapse session via MCP
46
- CLOSE_OK=true
47
- "$API" mcp-tool "synapse_close_session" "$(printf '{"sessionUuid":"%s"}' "$SESSION_UUID")" >/dev/null 2>&1 || CLOSE_OK=false
48
-
49
- # Clean up state
50
- "$API" state-delete "session_${AGENT_ID}" 2>/dev/null || true
51
- "$API" state-delete "agent_for_session_${SESSION_UUID}" 2>/dev/null || true
52
- "$API" state-delete "name_for_agent_${AGENT_ID}" 2>/dev/null || true
53
- if [ -n "$AGENT_NAME" ]; then
54
- "$API" state-delete "session_${AGENT_NAME}" 2>/dev/null || true
55
- fi
56
-
57
- # Clean up session file
58
- SESSIONS_DIR="${CLAUDE_PROJECT_DIR:-.}/.synapse/sessions"
59
- if [ -n "$AGENT_NAME" ] && [ -f "${SESSIONS_DIR}/${AGENT_NAME}.json" ]; then
60
- rm -f "${SESSIONS_DIR}/${AGENT_NAME}.json"
61
- fi
62
-
63
- # Clean up claimed file (written by SubagentStart)
64
- CLAIMED_DIR="${CLAUDE_PROJECT_DIR:-.}/.synapse/claimed"
65
- if [ -n "$AGENT_ID" ] && [ -f "${CLAIMED_DIR}/${AGENT_ID}" ]; then
66
- rm -f "${CLAIMED_DIR}/${AGENT_ID}"
67
- fi
68
-
69
- # === Output ===
70
- DISPLAY_NAME="${AGENT_NAME:-${AGENT_ID:0:8}}"
71
- if [ "$CLOSE_OK" = true ]; then
72
- USER_MSG="Synapse session closed: '${DISPLAY_NAME}'"
73
- CONTEXT_MSG="Synapse session ${SESSION_UUID} for sub-agent '${DISPLAY_NAME}' closed. Local state and session file cleaned up."
74
- "$API" hook-output "$USER_MSG" "$CONTEXT_MSG" "SubagentStop"
75
- else
76
- "$API" hook-output \
77
- "Synapse: failed to close session for '${DISPLAY_NAME}'" \
78
- "WARNING: Failed to close Synapse session ${SESSION_UUID} for sub-agent '${DISPLAY_NAME}'. State cleaned up locally." \
79
- "SubagentStop"
80
- fi
@@ -1,66 +0,0 @@
1
- #!/usr/bin/env bash
2
- # on-task-completed.sh — TaskCompleted lifecycle hook
3
- # Triggered when a Claude Code work item is marked completed.
4
- # Checks for a Synapse experiment UUID marker in the metadata/description and
5
- # reminds the agent to finish the corresponding Experiment lifecycle in Synapse.
6
- #
7
- # Output: JSON with systemMessage (user) when a checkout happens
8
-
9
- set -euo pipefail
10
-
11
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
12
- API="${SCRIPT_DIR}/synapse-api.sh"
13
-
14
- # Check environment
15
- if [ -z "${SYNAPSE_URL:-}" ] || [ -z "${SYNAPSE_API_KEY:-}" ]; then
16
- exit 0
17
- fi
18
-
19
- # Read event JSON from stdin
20
- EVENT=""
21
- if [ ! -t 0 ]; then
22
- EVENT=$(cat)
23
- fi
24
-
25
- if [ -z "$EVENT" ]; then
26
- exit 0
27
- fi
28
-
29
- # Extract work-item info
30
- TASK_DESCRIPTION=$(echo "$EVENT" | jq -r '.task_description // .taskDescription // .description // empty' 2>/dev/null) || true
31
- TASK_SUBJECT=$(echo "$EVENT" | jq -r '.task_subject // .taskSubject // .subject // empty' 2>/dev/null) || true
32
- AGENT_ID=$(echo "$EVENT" | jq -r '.agent_id // .agentId // empty' 2>/dev/null) || true
33
-
34
- # Look for synapse:experiment:<uuid> (preferred) with quiet fallback support
35
- # for older metadata bridges.
36
- SYNAPSE_EXPERIMENT_UUID=""
37
- MATCH_PREFIX=""
38
-
39
- for text in "$TASK_DESCRIPTION" "$TASK_SUBJECT"; do
40
- if [ -n "$text" ]; then
41
- MATCH=$(echo "$text" | grep -oP 'synapse:(?:experiment|experiment_run|task):([0-9a-f-]{36})' | head -1) || true
42
- if [ -n "$MATCH" ]; then
43
- MATCH_PREFIX=$(echo "$MATCH" | cut -d: -f2)
44
- SYNAPSE_EXPERIMENT_UUID=$(echo "$MATCH" | sed -E 's/synapse:(experiment|experiment_run|task)://')
45
- break
46
- fi
47
- fi
48
- done
49
-
50
- if [ -z "$SYNAPSE_EXPERIMENT_UUID" ]; then
51
- exit 0
52
- fi
53
-
54
- if [ "$MATCH_PREFIX" = "experiment" ]; then
55
- CONTEXT="Claude Code work item references Synapse experiment ${SYNAPSE_EXPERIMENT_UUID}.
56
- If the experiment is complete, call synapse_submit_experiment_results.
57
- If work is still ongoing, call synapse_report_experiment_progress and keep the Experiment status current."
58
- else
59
- CONTEXT="Legacy Synapse metadata marker detected for ${SYNAPSE_EXPERIMENT_UUID}.
60
- Translate this work item back to the current Experiment workflow and finish with synapse_report_experiment_progress or synapse_submit_experiment_results."
61
- fi
62
-
63
- "$API" hook-output \
64
- "Synapse: work item linked to experiment ${SYNAPSE_EXPERIMENT_UUID:0:8}..." \
65
- "$CONTEXT" \
66
- "TaskCompleted"