@synapse-research/synapse 0.2.1 → 0.2.3

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 (434) hide show
  1. package/bin/synapse.mjs +10 -0
  2. package/dist/.next/BUILD_ID +1 -1
  3. package/dist/.next/app-build-manifest.json +199 -192
  4. package/dist/.next/app-path-routes-manifest.json +32 -31
  5. package/dist/.next/build-manifest.json +2 -2
  6. package/dist/.next/prerender-manifest.json +12 -12
  7. package/dist/.next/routes-manifest.json +8 -0
  8. package/dist/.next/server/app/(dashboard)/agents/page.js +2 -2
  9. package/dist/.next/server/app/(dashboard)/agents/page.js.nft.json +1 -1
  10. package/dist/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
  11. package/dist/.next/server/app/(dashboard)/compute/page_client-reference-manifest.js +1 -1
  12. package/dist/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  13. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/activity/page.js +1 -1
  14. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  15. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/dashboard/page.js +1 -1
  16. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  17. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page.js +1 -1
  18. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  19. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  20. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/page.js +2 -2
  21. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/page.js.nft.json +1 -1
  22. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  23. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page.js +2 -2
  24. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page.js.nft.json +1 -1
  25. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page_client-reference-manifest.js +1 -1
  26. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/new/page.js +3 -3
  27. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/new/page.js.nft.json +1 -1
  28. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/new/page_client-reference-manifest.js +1 -1
  29. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/page_client-reference-manifest.js +1 -1
  30. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page.js +2 -2
  31. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page.js.nft.json +1 -1
  32. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page_client-reference-manifest.js +1 -1
  33. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/page_client-reference-manifest.js +1 -1
  34. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/new/page.js +1 -1
  35. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/new/page_client-reference-manifest.js +1 -1
  36. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/page.js +2 -8
  37. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/page.js.nft.json +1 -1
  38. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/page_client-reference-manifest.js +1 -1
  39. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/insights/page.js +1 -1
  40. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/insights/page_client-reference-manifest.js +1 -1
  41. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/related-works/page.js +2 -2
  42. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/related-works/page.js.nft.json +1 -1
  43. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/related-works/page_client-reference-manifest.js +1 -1
  44. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page_client-reference-manifest.js +1 -1
  45. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/page.js +2 -8
  46. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/page.js.nft.json +1 -1
  47. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/page_client-reference-manifest.js +1 -1
  48. package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/settings/page_client-reference-manifest.js +1 -1
  49. package/dist/.next/server/app/(dashboard)/research-projects/new/page.js +2 -2
  50. package/dist/.next/server/app/(dashboard)/research-projects/new/page.js.nft.json +1 -1
  51. package/dist/.next/server/app/(dashboard)/research-projects/new/page_client-reference-manifest.js +1 -1
  52. package/dist/.next/server/app/(dashboard)/research-projects/page_client-reference-manifest.js +1 -1
  53. package/dist/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  54. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  55. package/dist/.next/server/app/_not-found.html +1 -1
  56. package/dist/.next/server/app/_not-found.rsc +1 -1
  57. package/dist/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  58. package/dist/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  59. package/dist/.next/server/app/admin/companies/new.html +1 -1
  60. package/dist/.next/server/app/admin/companies/new.rsc +1 -1
  61. package/dist/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  62. package/dist/.next/server/app/admin/companies.html +1 -1
  63. package/dist/.next/server/app/admin/companies.rsc +1 -1
  64. package/dist/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  65. package/dist/.next/server/app/admin.html +1 -1
  66. package/dist/.next/server/app/admin.rsc +1 -1
  67. package/dist/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  68. package/dist/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  69. package/dist/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  70. package/dist/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  71. package/dist/.next/server/app/api/admin/stats/route_client-reference-manifest.js +1 -1
  72. package/dist/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  73. package/dist/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  74. package/dist/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  75. package/dist/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  76. package/dist/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  77. package/dist/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  78. package/dist/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  79. package/dist/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  80. package/dist/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  81. package/dist/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  82. package/dist/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  83. package/dist/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  84. package/dist/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  85. package/dist/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  86. package/dist/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  87. package/dist/.next/server/app/api/compute-nodes/[uuid]/route_client-reference-manifest.js +1 -1
  88. package/dist/.next/server/app/api/compute-nodes/route_client-reference-manifest.js +1 -1
  89. package/dist/.next/server/app/api/compute-pools/[uuid]/route_client-reference-manifest.js +1 -1
  90. package/dist/.next/server/app/api/compute-pools/route_client-reference-manifest.js +1 -1
  91. package/dist/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  92. package/dist/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  93. package/dist/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  94. package/dist/.next/server/app/api/experiment-designs/[uuid]/approve/route_client-reference-manifest.js +1 -1
  95. package/dist/.next/server/app/api/experiment-designs/[uuid]/close/route_client-reference-manifest.js +1 -1
  96. package/dist/.next/server/app/api/experiment-designs/[uuid]/reject/route_client-reference-manifest.js +1 -1
  97. package/dist/.next/server/app/api/experiment-designs/[uuid]/route_client-reference-manifest.js +1 -1
  98. package/dist/.next/server/app/api/experiment-runs/[uuid]/claim/route_client-reference-manifest.js +1 -1
  99. package/dist/.next/server/app/api/experiment-runs/[uuid]/dependencies/[dependsOnRunUuid]/route_client-reference-manifest.js +1 -1
  100. package/dist/.next/server/app/api/experiment-runs/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  101. package/dist/.next/server/app/api/experiment-runs/[uuid]/evaluate-criteria/route_client-reference-manifest.js +1 -1
  102. package/dist/.next/server/app/api/experiment-runs/[uuid]/registry/route_client-reference-manifest.js +1 -1
  103. package/dist/.next/server/app/api/experiment-runs/[uuid]/release/route_client-reference-manifest.js +1 -1
  104. package/dist/.next/server/app/api/experiment-runs/[uuid]/route_client-reference-manifest.js +1 -1
  105. package/dist/.next/server/app/api/experiment-runs/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  106. package/dist/.next/server/app/api/experiments/[uuid]/complete/route_client-reference-manifest.js +1 -1
  107. package/dist/.next/server/app/api/experiments/[uuid]/progress/route_client-reference-manifest.js +1 -1
  108. package/dist/.next/server/app/api/experiments/[uuid]/request-plan/route_client-reference-manifest.js +1 -1
  109. package/dist/.next/server/app/api/experiments/[uuid]/reset/route_client-reference-manifest.js +1 -1
  110. package/dist/.next/server/app/api/experiments/[uuid]/review/route_client-reference-manifest.js +1 -1
  111. package/dist/.next/server/app/api/experiments/[uuid]/route_client-reference-manifest.js +1 -1
  112. package/dist/.next/server/app/api/experiments/[uuid]/start/route_client-reference-manifest.js +1 -1
  113. package/dist/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  114. package/dist/.next/server/app/api/mcp/route.js +3 -3
  115. package/dist/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  116. package/dist/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  117. package/dist/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  118. package/dist/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  119. package/dist/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  120. package/dist/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  121. package/dist/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  122. package/dist/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  123. package/dist/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  124. package/dist/.next/server/app/api/onboarding/status/route_client-reference-manifest.js +1 -1
  125. package/dist/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  126. package/dist/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  127. package/dist/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  128. package/dist/.next/server/app/api/research-projects/[uuid]/activity/route.js +1 -1
  129. package/dist/.next/server/app/api/research-projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  130. package/dist/.next/server/app/api/research-projects/[uuid]/agent-activity/route_client-reference-manifest.js +1 -1
  131. package/dist/.next/server/app/api/research-projects/[uuid]/available/route.js +1 -1
  132. package/dist/.next/server/app/api/research-projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  133. package/dist/.next/server/app/api/research-projects/[uuid]/baselines/route_client-reference-manifest.js +1 -1
  134. package/dist/.next/server/app/api/research-projects/[uuid]/documents/route.js +1 -1
  135. package/dist/.next/server/app/api/research-projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  136. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/[designUuid]/validate/route_client-reference-manifest.js +1 -1
  137. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/route.js +1 -1
  138. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/route_client-reference-manifest.js +1 -1
  139. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/summary/route.js +1 -1
  140. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/summary/route_client-reference-manifest.js +1 -1
  141. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-runs/dependencies/route.js +1 -1
  142. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-runs/dependencies/route_client-reference-manifest.js +1 -1
  143. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-runs/route.js +1 -1
  144. package/dist/.next/server/app/api/research-projects/[uuid]/experiment-runs/route_client-reference-manifest.js +1 -1
  145. package/dist/.next/server/app/api/research-projects/[uuid]/experiments/route.js +1 -1
  146. package/dist/.next/server/app/api/research-projects/[uuid]/experiments/route_client-reference-manifest.js +1 -1
  147. package/dist/.next/server/app/api/research-projects/[uuid]/github/branches/route_client-reference-manifest.js +1 -1
  148. package/dist/.next/server/app/api/research-projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  149. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/[workUuid]/route_client-reference-manifest.js +1 -1
  150. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/auto-search/complete/route_client-reference-manifest.js +1 -1
  151. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/auto-search/route_client-reference-manifest.js +1 -1
  152. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/deep-research/complete/route_client-reference-manifest.js +1 -1
  153. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/deep-research/route_client-reference-manifest.js +1 -1
  154. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/route.js +1 -1
  155. package/dist/.next/server/app/api/research-projects/[uuid]/related-works/route_client-reference-manifest.js +1 -1
  156. package/dist/.next/server/app/api/research-projects/[uuid]/research-questions/route.js +1 -1
  157. package/dist/.next/server/app/api/research-projects/[uuid]/research-questions/route_client-reference-manifest.js +1 -1
  158. package/dist/.next/server/app/api/research-projects/[uuid]/route.js +1 -1
  159. package/dist/.next/server/app/api/research-projects/[uuid]/route_client-reference-manifest.js +1 -1
  160. package/dist/.next/server/app/api/research-projects/route.js +1 -1
  161. package/dist/.next/server/app/api/research-projects/route_client-reference-manifest.js +1 -1
  162. package/dist/.next/server/app/api/research-questions/[uuid]/claim/route_client-reference-manifest.js +1 -1
  163. package/dist/.next/server/app/api/research-questions/[uuid]/move/route_client-reference-manifest.js +1 -1
  164. package/dist/.next/server/app/api/research-questions/[uuid]/release/route_client-reference-manifest.js +1 -1
  165. package/dist/.next/server/app/api/research-questions/[uuid]/review/route.js +1 -0
  166. package/dist/.next/server/app/api/research-questions/[uuid]/review/route.js.nft.json +1 -0
  167. package/dist/.next/server/app/api/research-questions/[uuid]/review/route_client-reference-manifest.js +1 -0
  168. package/dist/.next/server/app/api/research-questions/[uuid]/route_client-reference-manifest.js +1 -1
  169. package/dist/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  170. package/dist/.next/server/app/api/settings/integrations/route_client-reference-manifest.js +1 -1
  171. package/dist/.next/server/app/api/ssh-config/route_client-reference-manifest.js +1 -1
  172. package/dist/.next/server/app/index.html +1 -1
  173. package/dist/.next/server/app/index.rsc +1 -1
  174. package/dist/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  175. package/dist/.next/server/app/login/admin.html +1 -1
  176. package/dist/.next/server/app/login/admin.rsc +1 -1
  177. package/dist/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  178. package/dist/.next/server/app/login/callback.html +1 -1
  179. package/dist/.next/server/app/login/callback.rsc +1 -1
  180. package/dist/.next/server/app/login/page_client-reference-manifest.js +1 -1
  181. package/dist/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
  182. package/dist/.next/server/app/login/silent-refresh.html +1 -1
  183. package/dist/.next/server/app/login/silent-refresh.rsc +1 -1
  184. package/dist/.next/server/app/login.html +1 -1
  185. package/dist/.next/server/app/login.rsc +1 -1
  186. package/dist/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  187. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  188. package/dist/.next/server/app/research-projects/new.html +1 -1
  189. package/dist/.next/server/app/research-projects/new.rsc +1 -1
  190. package/dist/.next/server/app/research-projects.html +1 -1
  191. package/dist/.next/server/app/research-projects.rsc +1 -1
  192. package/dist/.next/server/app/settings.html +1 -1
  193. package/dist/.next/server/app/settings.rsc +1 -1
  194. package/dist/.next/server/app-paths-manifest.json +32 -31
  195. package/dist/.next/server/chunks/1512.js +1 -1
  196. package/dist/.next/server/chunks/2653.js +1 -1
  197. package/dist/.next/server/chunks/691.js +1 -0
  198. package/dist/.next/server/chunks/7018.js +1 -0
  199. package/dist/.next/server/chunks/759.js +1 -1
  200. package/dist/.next/server/chunks/7878.js +1 -1
  201. package/dist/.next/server/chunks/8322.js +4 -4
  202. package/dist/.next/server/chunks/8481.js +2 -2
  203. package/dist/.next/server/chunks/8858.js +7 -0
  204. package/dist/.next/server/chunks/9993.js +1 -0
  205. package/dist/.next/server/middleware-manifest.json +1 -1
  206. package/dist/.next/server/pages/404.html +1 -1
  207. package/dist/.next/server/pages/500.html +1 -1
  208. package/dist/.next/server/pages-manifest.json +1 -1
  209. package/dist/.next/server/server-reference-manifest.js +1 -1
  210. package/dist/.next/server/server-reference-manifest.json +1 -1
  211. package/dist/.next/static/chunks/{1148-353990d9346d10d6.js → 7940-a2c0482f78fd6c5f.js} +2 -2
  212. package/dist/.next/static/chunks/8769-5d4452c6a3f6c876.js +1 -0
  213. package/dist/.next/static/chunks/app/(dashboard)/agents/loading-3378f6ebe832c47f.js +1 -0
  214. package/dist/.next/static/chunks/app/(dashboard)/compute/loading-3378f6ebe832c47f.js +1 -0
  215. package/dist/.next/static/chunks/app/(dashboard)/loading-3378f6ebe832c47f.js +1 -0
  216. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/activity/page-3378f6ebe832c47f.js +1 -0
  217. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/dashboard/loading-3378f6ebe832c47f.js +1 -0
  218. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/documents/loading-3378f6ebe832c47f.js +1 -0
  219. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page-d6b2ed0ef745b114.js +1 -0
  220. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-designs/page-3378f6ebe832c47f.js +1 -0
  221. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/{page-f8e511d8f04a686a.js → page-17cd83ad0d3ff96c.js} +1 -1
  222. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-runs/page-3378f6ebe832c47f.js +1 -0
  223. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiments/loading-3378f6ebe832c47f.js +1 -0
  224. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/insights/loading-3378f6ebe832c47f.js +1 -0
  225. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/loading-3378f6ebe832c47f.js +1 -0
  226. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/related-works/loading-3378f6ebe832c47f.js +1 -0
  227. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page-3378f6ebe832c47f.js +1 -0
  228. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/loading-3378f6ebe832c47f.js +1 -0
  229. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/page-95f56a6f1698bfeb.js +1 -0
  230. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/settings/loading-3378f6ebe832c47f.js +1 -0
  231. package/dist/.next/static/chunks/app/api/admin/companies/[uuid]/route-3378f6ebe832c47f.js +1 -0
  232. package/dist/.next/static/chunks/app/api/admin/companies/route-3378f6ebe832c47f.js +1 -0
  233. package/dist/.next/static/chunks/app/api/admin/login/route-3378f6ebe832c47f.js +1 -0
  234. package/dist/.next/static/chunks/app/api/admin/session/route-3378f6ebe832c47f.js +1 -0
  235. package/dist/.next/static/chunks/app/api/admin/stats/route-3378f6ebe832c47f.js +1 -0
  236. package/dist/.next/static/chunks/app/api/agents/[uuid]/route-3378f6ebe832c47f.js +1 -0
  237. package/dist/.next/static/chunks/app/api/agents/[uuid]/sessions/route-3378f6ebe832c47f.js +1 -0
  238. package/dist/.next/static/chunks/app/api/agents/route-3378f6ebe832c47f.js +1 -0
  239. package/dist/.next/static/chunks/app/api/api-keys/[uuid]/route-3378f6ebe832c47f.js +1 -0
  240. package/dist/.next/static/chunks/app/api/api-keys/route-3378f6ebe832c47f.js +1 -0
  241. package/dist/.next/static/chunks/app/api/auth/callback/route-3378f6ebe832c47f.js +1 -0
  242. package/dist/.next/static/chunks/app/api/auth/check-default/route-3378f6ebe832c47f.js +1 -0
  243. package/dist/.next/static/chunks/app/api/auth/default-login/route-3378f6ebe832c47f.js +1 -0
  244. package/dist/.next/static/chunks/app/api/auth/identify/route-3378f6ebe832c47f.js +1 -0
  245. package/dist/.next/static/chunks/app/api/auth/logout/route-3378f6ebe832c47f.js +1 -0
  246. package/dist/.next/static/chunks/app/api/auth/me/route-3378f6ebe832c47f.js +1 -0
  247. package/dist/.next/static/chunks/app/api/auth/refresh/route-3378f6ebe832c47f.js +1 -0
  248. package/dist/.next/static/chunks/app/api/auth/session/route-3378f6ebe832c47f.js +1 -0
  249. package/dist/.next/static/chunks/app/api/auth/sync-token/route-3378f6ebe832c47f.js +1 -0
  250. package/dist/.next/static/chunks/app/api/comments/route-3378f6ebe832c47f.js +1 -0
  251. package/dist/.next/static/chunks/app/api/compute-nodes/[uuid]/route-3378f6ebe832c47f.js +1 -0
  252. package/dist/.next/static/chunks/app/api/compute-nodes/route-3378f6ebe832c47f.js +1 -0
  253. package/dist/.next/static/chunks/app/api/compute-pools/[uuid]/route-3378f6ebe832c47f.js +1 -0
  254. package/dist/.next/static/chunks/app/api/compute-pools/route-3378f6ebe832c47f.js +1 -0
  255. package/dist/.next/static/chunks/app/api/documents/[uuid]/route-3378f6ebe832c47f.js +1 -0
  256. package/dist/.next/static/chunks/app/api/events/notifications/route-3378f6ebe832c47f.js +1 -0
  257. package/dist/.next/static/chunks/app/api/events/route-3378f6ebe832c47f.js +1 -0
  258. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/approve/route-3378f6ebe832c47f.js +1 -0
  259. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/close/route-3378f6ebe832c47f.js +1 -0
  260. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/reject/route-3378f6ebe832c47f.js +1 -0
  261. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/route-3378f6ebe832c47f.js +1 -0
  262. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/claim/route-3378f6ebe832c47f.js +1 -0
  263. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/dependencies/[dependsOnRunUuid]/route-3378f6ebe832c47f.js +1 -0
  264. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/dependencies/route-3378f6ebe832c47f.js +1 -0
  265. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/evaluate-criteria/route-3378f6ebe832c47f.js +1 -0
  266. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/registry/route-3378f6ebe832c47f.js +1 -0
  267. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/release/route-3378f6ebe832c47f.js +1 -0
  268. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/route-3378f6ebe832c47f.js +1 -0
  269. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/sessions/route-3378f6ebe832c47f.js +1 -0
  270. package/dist/.next/static/chunks/app/api/experiments/[uuid]/complete/route-3378f6ebe832c47f.js +1 -0
  271. package/dist/.next/static/chunks/app/api/experiments/[uuid]/progress/route-3378f6ebe832c47f.js +1 -0
  272. package/dist/.next/static/chunks/app/api/experiments/[uuid]/request-plan/route-3378f6ebe832c47f.js +1 -0
  273. package/dist/.next/static/chunks/app/api/experiments/[uuid]/reset/route-3378f6ebe832c47f.js +1 -0
  274. package/dist/.next/static/chunks/app/api/experiments/[uuid]/review/route-3378f6ebe832c47f.js +1 -0
  275. package/dist/.next/static/chunks/app/api/experiments/[uuid]/route-3378f6ebe832c47f.js +1 -0
  276. package/dist/.next/static/chunks/app/api/experiments/[uuid]/start/route-3378f6ebe832c47f.js +1 -0
  277. package/dist/.next/static/chunks/app/api/health/route-3378f6ebe832c47f.js +1 -0
  278. package/dist/.next/static/chunks/app/api/mcp/route-3378f6ebe832c47f.js +1 -0
  279. package/dist/.next/static/chunks/app/api/me/assignments/route-3378f6ebe832c47f.js +1 -0
  280. package/dist/.next/static/chunks/app/api/mentionables/route-3378f6ebe832c47f.js +1 -0
  281. package/dist/.next/static/chunks/app/api/notifications/[uuid]/archive/route-3378f6ebe832c47f.js +1 -0
  282. package/dist/.next/static/chunks/app/api/notifications/[uuid]/read/route-3378f6ebe832c47f.js +1 -0
  283. package/dist/.next/static/chunks/app/api/notifications/preferences/route-3378f6ebe832c47f.js +1 -0
  284. package/dist/.next/static/chunks/app/api/notifications/read-all/route-3378f6ebe832c47f.js +1 -0
  285. package/dist/.next/static/chunks/app/api/notifications/route-3378f6ebe832c47f.js +1 -0
  286. package/dist/.next/static/chunks/app/api/notifications/unread-count/route-3378f6ebe832c47f.js +1 -0
  287. package/dist/.next/static/chunks/app/api/onboarding/status/route-3378f6ebe832c47f.js +1 -0
  288. package/dist/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-3378f6ebe832c47f.js +1 -0
  289. package/dist/.next/static/chunks/app/api/project-groups/[uuid]/route-3378f6ebe832c47f.js +1 -0
  290. package/dist/.next/static/chunks/app/api/project-groups/route-3378f6ebe832c47f.js +1 -0
  291. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/activity/route-3378f6ebe832c47f.js +1 -0
  292. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/agent-activity/route-3378f6ebe832c47f.js +1 -0
  293. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/available/route-3378f6ebe832c47f.js +1 -0
  294. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/baselines/route-3378f6ebe832c47f.js +1 -0
  295. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/documents/route-3378f6ebe832c47f.js +1 -0
  296. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/[designUuid]/validate/route-3378f6ebe832c47f.js +1 -0
  297. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/route-3378f6ebe832c47f.js +1 -0
  298. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/summary/route-3378f6ebe832c47f.js +1 -0
  299. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-runs/dependencies/route-3378f6ebe832c47f.js +1 -0
  300. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-runs/route-3378f6ebe832c47f.js +1 -0
  301. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiments/route-3378f6ebe832c47f.js +1 -0
  302. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/github/branches/route-3378f6ebe832c47f.js +1 -0
  303. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/group/route-3378f6ebe832c47f.js +1 -0
  304. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/[workUuid]/route-3378f6ebe832c47f.js +1 -0
  305. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/auto-search/complete/route-3378f6ebe832c47f.js +1 -0
  306. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/auto-search/route-3378f6ebe832c47f.js +1 -0
  307. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/deep-research/complete/route-3378f6ebe832c47f.js +1 -0
  308. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/deep-research/route-3378f6ebe832c47f.js +1 -0
  309. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/route-3378f6ebe832c47f.js +1 -0
  310. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/research-questions/route-3378f6ebe832c47f.js +1 -0
  311. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/route-3378f6ebe832c47f.js +1 -0
  312. package/dist/.next/static/chunks/app/api/research-projects/route-3378f6ebe832c47f.js +1 -0
  313. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/claim/route-3378f6ebe832c47f.js +1 -0
  314. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/move/route-3378f6ebe832c47f.js +1 -0
  315. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/release/route-3378f6ebe832c47f.js +1 -0
  316. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/review/route-3378f6ebe832c47f.js +1 -0
  317. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/route-3378f6ebe832c47f.js +1 -0
  318. package/dist/.next/static/chunks/app/api/sessions/[uuid]/route-3378f6ebe832c47f.js +1 -0
  319. package/dist/.next/static/chunks/app/api/settings/integrations/route-3378f6ebe832c47f.js +1 -0
  320. package/dist/.next/static/chunks/app/api/ssh-config/route-3378f6ebe832c47f.js +1 -0
  321. package/package.json +1 -1
  322. package/dist/.next/server/chunks/1397.js +0 -1
  323. package/dist/.next/server/chunks/5958.js +0 -1
  324. package/dist/.next/server/chunks/7678.js +0 -1
  325. package/dist/.next/server/chunks/8042.js +0 -1
  326. package/dist/.next/static/chunks/8825-4088b6b44db8f360.js +0 -1
  327. package/dist/.next/static/chunks/app/(dashboard)/agents/loading-ba707ca9adc234af.js +0 -1
  328. package/dist/.next/static/chunks/app/(dashboard)/compute/loading-ba707ca9adc234af.js +0 -1
  329. package/dist/.next/static/chunks/app/(dashboard)/loading-ba707ca9adc234af.js +0 -1
  330. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/activity/page-ba707ca9adc234af.js +0 -1
  331. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/dashboard/loading-ba707ca9adc234af.js +0 -1
  332. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/documents/loading-ba707ca9adc234af.js +0 -1
  333. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page-68c412f9174907e4.js +0 -1
  334. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-designs/page-ba707ca9adc234af.js +0 -1
  335. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiment-runs/page-ba707ca9adc234af.js +0 -1
  336. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/experiments/loading-ba707ca9adc234af.js +0 -1
  337. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/insights/loading-ba707ca9adc234af.js +0 -1
  338. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/loading-ba707ca9adc234af.js +0 -1
  339. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/related-works/loading-ba707ca9adc234af.js +0 -1
  340. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page-ba707ca9adc234af.js +0 -1
  341. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/loading-ba707ca9adc234af.js +0 -1
  342. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/research-questions/page-47e84eca6b6a7aaa.js +0 -1
  343. package/dist/.next/static/chunks/app/(dashboard)/research-projects/[uuid]/settings/loading-ba707ca9adc234af.js +0 -1
  344. package/dist/.next/static/chunks/app/api/admin/companies/[uuid]/route-ba707ca9adc234af.js +0 -1
  345. package/dist/.next/static/chunks/app/api/admin/companies/route-ba707ca9adc234af.js +0 -1
  346. package/dist/.next/static/chunks/app/api/admin/login/route-ba707ca9adc234af.js +0 -1
  347. package/dist/.next/static/chunks/app/api/admin/session/route-ba707ca9adc234af.js +0 -1
  348. package/dist/.next/static/chunks/app/api/admin/stats/route-ba707ca9adc234af.js +0 -1
  349. package/dist/.next/static/chunks/app/api/agents/[uuid]/route-ba707ca9adc234af.js +0 -1
  350. package/dist/.next/static/chunks/app/api/agents/[uuid]/sessions/route-ba707ca9adc234af.js +0 -1
  351. package/dist/.next/static/chunks/app/api/agents/route-ba707ca9adc234af.js +0 -1
  352. package/dist/.next/static/chunks/app/api/api-keys/[uuid]/route-ba707ca9adc234af.js +0 -1
  353. package/dist/.next/static/chunks/app/api/api-keys/route-ba707ca9adc234af.js +0 -1
  354. package/dist/.next/static/chunks/app/api/auth/callback/route-ba707ca9adc234af.js +0 -1
  355. package/dist/.next/static/chunks/app/api/auth/check-default/route-ba707ca9adc234af.js +0 -1
  356. package/dist/.next/static/chunks/app/api/auth/default-login/route-ba707ca9adc234af.js +0 -1
  357. package/dist/.next/static/chunks/app/api/auth/identify/route-ba707ca9adc234af.js +0 -1
  358. package/dist/.next/static/chunks/app/api/auth/logout/route-ba707ca9adc234af.js +0 -1
  359. package/dist/.next/static/chunks/app/api/auth/me/route-ba707ca9adc234af.js +0 -1
  360. package/dist/.next/static/chunks/app/api/auth/refresh/route-ba707ca9adc234af.js +0 -1
  361. package/dist/.next/static/chunks/app/api/auth/session/route-ba707ca9adc234af.js +0 -1
  362. package/dist/.next/static/chunks/app/api/auth/sync-token/route-ba707ca9adc234af.js +0 -1
  363. package/dist/.next/static/chunks/app/api/comments/route-ba707ca9adc234af.js +0 -1
  364. package/dist/.next/static/chunks/app/api/compute-nodes/[uuid]/route-ba707ca9adc234af.js +0 -1
  365. package/dist/.next/static/chunks/app/api/compute-nodes/route-ba707ca9adc234af.js +0 -1
  366. package/dist/.next/static/chunks/app/api/compute-pools/[uuid]/route-ba707ca9adc234af.js +0 -1
  367. package/dist/.next/static/chunks/app/api/compute-pools/route-ba707ca9adc234af.js +0 -1
  368. package/dist/.next/static/chunks/app/api/documents/[uuid]/route-ba707ca9adc234af.js +0 -1
  369. package/dist/.next/static/chunks/app/api/events/notifications/route-ba707ca9adc234af.js +0 -1
  370. package/dist/.next/static/chunks/app/api/events/route-ba707ca9adc234af.js +0 -1
  371. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/approve/route-ba707ca9adc234af.js +0 -1
  372. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/close/route-ba707ca9adc234af.js +0 -1
  373. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/reject/route-ba707ca9adc234af.js +0 -1
  374. package/dist/.next/static/chunks/app/api/experiment-designs/[uuid]/route-ba707ca9adc234af.js +0 -1
  375. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/claim/route-ba707ca9adc234af.js +0 -1
  376. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/dependencies/[dependsOnRunUuid]/route-ba707ca9adc234af.js +0 -1
  377. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/dependencies/route-ba707ca9adc234af.js +0 -1
  378. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/evaluate-criteria/route-ba707ca9adc234af.js +0 -1
  379. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/registry/route-ba707ca9adc234af.js +0 -1
  380. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/release/route-ba707ca9adc234af.js +0 -1
  381. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/route-ba707ca9adc234af.js +0 -1
  382. package/dist/.next/static/chunks/app/api/experiment-runs/[uuid]/sessions/route-ba707ca9adc234af.js +0 -1
  383. package/dist/.next/static/chunks/app/api/experiments/[uuid]/complete/route-ba707ca9adc234af.js +0 -1
  384. package/dist/.next/static/chunks/app/api/experiments/[uuid]/progress/route-ba707ca9adc234af.js +0 -1
  385. package/dist/.next/static/chunks/app/api/experiments/[uuid]/request-plan/route-ba707ca9adc234af.js +0 -1
  386. package/dist/.next/static/chunks/app/api/experiments/[uuid]/reset/route-ba707ca9adc234af.js +0 -1
  387. package/dist/.next/static/chunks/app/api/experiments/[uuid]/review/route-ba707ca9adc234af.js +0 -1
  388. package/dist/.next/static/chunks/app/api/experiments/[uuid]/route-ba707ca9adc234af.js +0 -1
  389. package/dist/.next/static/chunks/app/api/experiments/[uuid]/start/route-ba707ca9adc234af.js +0 -1
  390. package/dist/.next/static/chunks/app/api/health/route-ba707ca9adc234af.js +0 -1
  391. package/dist/.next/static/chunks/app/api/mcp/route-ba707ca9adc234af.js +0 -1
  392. package/dist/.next/static/chunks/app/api/me/assignments/route-ba707ca9adc234af.js +0 -1
  393. package/dist/.next/static/chunks/app/api/mentionables/route-ba707ca9adc234af.js +0 -1
  394. package/dist/.next/static/chunks/app/api/notifications/[uuid]/archive/route-ba707ca9adc234af.js +0 -1
  395. package/dist/.next/static/chunks/app/api/notifications/[uuid]/read/route-ba707ca9adc234af.js +0 -1
  396. package/dist/.next/static/chunks/app/api/notifications/preferences/route-ba707ca9adc234af.js +0 -1
  397. package/dist/.next/static/chunks/app/api/notifications/read-all/route-ba707ca9adc234af.js +0 -1
  398. package/dist/.next/static/chunks/app/api/notifications/route-ba707ca9adc234af.js +0 -1
  399. package/dist/.next/static/chunks/app/api/notifications/unread-count/route-ba707ca9adc234af.js +0 -1
  400. package/dist/.next/static/chunks/app/api/onboarding/status/route-ba707ca9adc234af.js +0 -1
  401. package/dist/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-ba707ca9adc234af.js +0 -1
  402. package/dist/.next/static/chunks/app/api/project-groups/[uuid]/route-ba707ca9adc234af.js +0 -1
  403. package/dist/.next/static/chunks/app/api/project-groups/route-ba707ca9adc234af.js +0 -1
  404. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/activity/route-ba707ca9adc234af.js +0 -1
  405. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/agent-activity/route-ba707ca9adc234af.js +0 -1
  406. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/available/route-ba707ca9adc234af.js +0 -1
  407. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/baselines/route-ba707ca9adc234af.js +0 -1
  408. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/documents/route-ba707ca9adc234af.js +0 -1
  409. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/[designUuid]/validate/route-ba707ca9adc234af.js +0 -1
  410. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/route-ba707ca9adc234af.js +0 -1
  411. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-designs/summary/route-ba707ca9adc234af.js +0 -1
  412. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-runs/dependencies/route-ba707ca9adc234af.js +0 -1
  413. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiment-runs/route-ba707ca9adc234af.js +0 -1
  414. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/experiments/route-ba707ca9adc234af.js +0 -1
  415. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/github/branches/route-ba707ca9adc234af.js +0 -1
  416. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/group/route-ba707ca9adc234af.js +0 -1
  417. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/[workUuid]/route-ba707ca9adc234af.js +0 -1
  418. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/auto-search/complete/route-ba707ca9adc234af.js +0 -1
  419. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/auto-search/route-ba707ca9adc234af.js +0 -1
  420. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/deep-research/complete/route-ba707ca9adc234af.js +0 -1
  421. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/deep-research/route-ba707ca9adc234af.js +0 -1
  422. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/related-works/route-ba707ca9adc234af.js +0 -1
  423. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/research-questions/route-ba707ca9adc234af.js +0 -1
  424. package/dist/.next/static/chunks/app/api/research-projects/[uuid]/route-ba707ca9adc234af.js +0 -1
  425. package/dist/.next/static/chunks/app/api/research-projects/route-ba707ca9adc234af.js +0 -1
  426. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/claim/route-ba707ca9adc234af.js +0 -1
  427. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/move/route-ba707ca9adc234af.js +0 -1
  428. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/release/route-ba707ca9adc234af.js +0 -1
  429. package/dist/.next/static/chunks/app/api/research-questions/[uuid]/route-ba707ca9adc234af.js +0 -1
  430. package/dist/.next/static/chunks/app/api/sessions/[uuid]/route-ba707ca9adc234af.js +0 -1
  431. package/dist/.next/static/chunks/app/api/settings/integrations/route-ba707ca9adc234af.js +0 -1
  432. package/dist/.next/static/chunks/app/api/ssh-config/route-ba707ca9adc234af.js +0 -1
  433. /package/dist/.next/static/{_Xj9BQgDF0XFubwsfL_6V → JSDpzmO29w6Ket-Y2K6Nw}/_buildManifest.js +0 -0
  434. /package/dist/.next/static/{_Xj9BQgDF0XFubwsfL_6V → JSDpzmO29w6Ket-Y2K6Nw}/_ssgManifest.js +0 -0
@@ -2,7 +2,7 @@
2
2
  ]))`;continue}else if("$"===d[a]){e+=`($|(?=[\r
3
3
  ]))`;continue}}if(c.s&&"."===d[a]){e+=g?`${d[a]}\r
4
4
  `:`[${d[a]}\r
5
- ]`;continue}e+=d[a],"\\"===d[a]?f=!0:g&&"]"===d[a]?g=!1:g||"["!==d[a]||(g=!0)}try{new RegExp(e)}catch{return console.warn(`Could not convert regex pattern at ${b.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),a.source}return e}function a4(a,b){if("openAi"===b.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===b.target&&a.keyType?._def.typeName===aA.ZodEnum)return{type:"object",required:a.keyType._def.values,properties:a.keyType._def.values.reduce((c,d)=>({...c,[d]:a7(a.valueType._def,{...b,currentPath:[...b.currentPath,"properties",d]})??aV(b)}),{}),additionalProperties:b.rejectedAdditionalProperties};let c={type:"object",additionalProperties:a7(a.valueType._def,{...b,currentPath:[...b.currentPath,"additionalProperties"]})??b.allowedAdditionalProperties};if("openApi3"===b.target)return c;if(a.keyType?._def.typeName===aA.ZodString&&a.keyType._def.checks?.length){let{type:d,...e}=a$(a.keyType._def,b);return{...c,propertyNames:e}}if(a.keyType?._def.typeName===aA.ZodEnum)return{...c,propertyNames:{enum:a.keyType._def.values}};if(a.keyType?._def.typeName===aA.ZodBranded&&a.keyType._def.type._def.typeName===aA.ZodString&&a.keyType._def.type._def.checks?.length){let{type:d,...e}=aY(a.keyType._def,b);return{...c,propertyNames:e}}return c}let a5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"},a6=(a,b)=>{let c=(a.options instanceof Map?Array.from(a.options.values()):a.options).map((a,c)=>a7(a._def,{...b,currentPath:[...b.currentPath,"anyOf",`${c}`]})).filter(a=>!!a&&(!b.strictUnions||"object"==typeof a&&Object.keys(a).length>0));return c.length?{anyOf:c}:void 0};function a7(a,b,c=!1){let d=b.seen.get(a);if(b.override){let e=b.override?.(a,b,d,c);if(e!==aS)return e}if(d&&!c){let a=a8(d,b);if(void 0!==a)return a}let e={def:a,path:b.currentPath,jsonSchema:void 0};b.seen.set(a,e);let f=((a,b,c)=>{switch(b){case aA.ZodString:return a$(a,c);case aA.ZodNumber:var d,e,f,g,h,i,j,k,l,m=a,n=c;let o={type:"number"};if(!m.checks)return o;for(let a of m.checks)switch(a.kind){case"int":o.type="integer",aW(o,"type",a.message,n);break;case"min":"jsonSchema7"===n.target?a.inclusive?aX(o,"minimum",a.value,a.message,n):aX(o,"exclusiveMinimum",a.value,a.message,n):(a.inclusive||(o.exclusiveMinimum=!0),aX(o,"minimum",a.value,a.message,n));break;case"max":"jsonSchema7"===n.target?a.inclusive?aX(o,"maximum",a.value,a.message,n):aX(o,"exclusiveMaximum",a.value,a.message,n):(a.inclusive||(o.exclusiveMaximum=!0),aX(o,"maximum",a.value,a.message,n));break;case"multipleOf":aX(o,"multipleOf",a.value,a.message,n)}return o;case aA.ZodObject:return function(a,b){let c="openAi"===b.target,d={type:"object",properties:{}},e=[],f=a.shape();for(let a in f){let g=f[a];if(void 0===g||void 0===g._def)continue;let h=function(a){try{return a.isOptional()}catch{return!0}}(g);h&&c&&("ZodOptional"===g._def.typeName&&(g=g._def.innerType),g.isNullable()||(g=g.nullable()),h=!1);let i=a7(g._def,{...b,currentPath:[...b.currentPath,"properties",a],propertyPath:[...b.currentPath,"properties",a]});void 0!==i&&(d.properties[a]=i,h||e.push(a))}e.length&&(d.required=e);let g=function(a,b){if("ZodNever"!==a.catchall._def.typeName)return a7(a.catchall._def,{...b,currentPath:[...b.currentPath,"additionalProperties"]});switch(a.unknownKeys){case"passthrough":return b.allowedAdditionalProperties;case"strict":return b.rejectedAdditionalProperties;case"strip":return"strict"===b.removeAdditionalStrategy?b.allowedAdditionalProperties:b.rejectedAdditionalProperties}}(a,b);return void 0!==g&&(d.additionalProperties=g),d}(a,c);case aA.ZodBigInt:var p=a,q=c;let r={type:"integer",format:"int64"};if(!p.checks)return r;for(let a of p.checks)switch(a.kind){case"min":"jsonSchema7"===q.target?a.inclusive?aX(r,"minimum",a.value,a.message,q):aX(r,"exclusiveMinimum",a.value,a.message,q):(a.inclusive||(r.exclusiveMinimum=!0),aX(r,"minimum",a.value,a.message,q));break;case"max":"jsonSchema7"===q.target?a.inclusive?aX(r,"maximum",a.value,a.message,q):aX(r,"exclusiveMaximum",a.value,a.message,q):(a.inclusive||(r.exclusiveMaximum=!0),aX(r,"maximum",a.value,a.message,q));break;case"multipleOf":aX(r,"multipleOf",a.value,a.message,q)}return r;case aA.ZodBoolean:return{type:"boolean"};case aA.ZodDate:return function a(b,c,d){let e=d??c.dateStrategy;if(Array.isArray(e))return{anyOf:e.map((d,e)=>a(b,c,d))};switch(e){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":var f=b,g=c;let h={type:"integer",format:"unix-time"};if("openApi3"===g.target)return h;for(let a of f.checks)switch(a.kind){case"min":aX(h,"minimum",a.value,a.message,g);break;case"max":aX(h,"maximum",a.value,a.message,g)}return h}}(a,c);case aA.ZodUndefined:return{not:aV(c)};case aA.ZodNull:return"openApi3"===c.target?{enum:["null"],nullable:!0}:{type:"null"};case aA.ZodArray:var s=a,t=c;let u={type:"array"};return s.type?._def&&s.type?._def?.typeName!==aA.ZodAny&&(u.items=a7(s.type._def,{...t,currentPath:[...t.currentPath,"items"]})),s.minLength&&aX(u,"minItems",s.minLength.value,s.minLength.message,t),s.maxLength&&aX(u,"maxItems",s.maxLength.value,s.maxLength.message,t),s.exactLength&&(aX(u,"minItems",s.exactLength.value,s.exactLength.message,t),aX(u,"maxItems",s.exactLength.value,s.exactLength.message,t)),u;case aA.ZodUnion:case aA.ZodDiscriminatedUnion:var v=a,w=c;if("openApi3"===w.target)return a6(v,w);let x=v.options instanceof Map?Array.from(v.options.values()):v.options;if(x.every(a=>a._def.typeName in a5&&(!a._def.checks||!a._def.checks.length))){let a=x.reduce((a,b)=>{let c=a5[b._def.typeName];return c&&!a.includes(c)?[...a,c]:a},[]);return{type:a.length>1?a:a[0]}}if(x.every(a=>"ZodLiteral"===a._def.typeName&&!a.description)){let a=x.reduce((a,b)=>{let c=typeof b._def.value;switch(c){case"string":case"number":case"boolean":return[...a,c];case"bigint":return[...a,"integer"];case"object":if(null===b._def.value)return[...a,"null"];default:return a}},[]);if(a.length===x.length){let b=a.filter((a,b,c)=>c.indexOf(a)===b);return{type:b.length>1?b:b[0],enum:x.reduce((a,b)=>a.includes(b._def.value)?a:[...a,b._def.value],[])}}}else if(x.every(a=>"ZodEnum"===a._def.typeName))return{type:"string",enum:x.reduce((a,b)=>[...a,...b._def.values.filter(b=>!a.includes(b))],[])};return a6(v,w);case aA.ZodIntersection:var y=a,z=c;let A=[a7(y.left._def,{...z,currentPath:[...z.currentPath,"allOf","0"]}),a7(y.right._def,{...z,currentPath:[...z.currentPath,"allOf","1"]})].filter(a=>!!a),B="jsonSchema2019-09"===z.target?{unevaluatedProperties:!1}:void 0,C=[];return A.forEach(a=>{if((!("type"in a)||"string"!==a.type)&&"allOf"in a)C.push(...a.allOf),void 0===a.unevaluatedProperties&&(B=void 0);else{let b=a;if("additionalProperties"in a&&!1===a.additionalProperties){let{additionalProperties:c,...d}=a;b=d}else B=void 0;C.push(b)}}),C.length?{allOf:C,...B}:void 0;case aA.ZodTuple:return d=a,e=c,d.rest?{type:"array",minItems:d.items.length,items:d.items.map((a,b)=>a7(a._def,{...e,currentPath:[...e.currentPath,"items",`${b}`]})).reduce((a,b)=>void 0===b?a:[...a,b],[]),additionalItems:a7(d.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:d.items.length,maxItems:d.items.length,items:d.items.map((a,b)=>a7(a._def,{...e,currentPath:[...e.currentPath,"items",`${b}`]})).reduce((a,b)=>void 0===b?a:[...a,b],[])};case aA.ZodRecord:return a4(a,c);case aA.ZodLiteral:var D=a,E=c;let F=typeof D.value;return"bigint"!==F&&"number"!==F&&"boolean"!==F&&"string"!==F?{type:Array.isArray(D.value)?"array":"object"}:"openApi3"===E.target?{type:"bigint"===F?"integer":F,enum:[D.value]}:{type:"bigint"===F?"integer":F,const:D.value};case aA.ZodEnum:return{type:"string",enum:Array.from(a.values)};case aA.ZodNativeEnum:var G=a;let H=G.values,I=Object.keys(G.values).filter(a=>"number"!=typeof H[H[a]]).map(a=>H[a]),J=Array.from(new Set(I.map(a=>typeof a)));return{type:1===J.length?"string"===J[0]?"string":"number":["string","number"],enum:I};case aA.ZodNullable:var K=a,L=c;if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(K.innerType._def.typeName)&&(!K.innerType._def.checks||!K.innerType._def.checks.length))return"openApi3"===L.target?{type:a5[K.innerType._def.typeName],nullable:!0}:{type:[a5[K.innerType._def.typeName],"null"]};if("openApi3"===L.target){let a=a7(K.innerType._def,{...L,currentPath:[...L.currentPath]});return a&&"$ref"in a?{allOf:[a],nullable:!0}:a&&{...a,nullable:!0}}let M=a7(K.innerType._def,{...L,currentPath:[...L.currentPath,"anyOf","0"]});return M&&{anyOf:[M,{type:"null"}]};case aA.ZodOptional:var N=a,O=c;if(O.currentPath.toString()===O.propertyPath?.toString())return a7(N.innerType._def,O);let P=a7(N.innerType._def,{...O,currentPath:[...O.currentPath,"anyOf","1"]});return P?{anyOf:[{not:aV(O)},P]}:aV(O);case aA.ZodMap:return f=a,"record"===(g=c).mapStrategy?a4(f,g):{type:"array",maxItems:125,items:{type:"array",items:[a7(f.keyType._def,{...g,currentPath:[...g.currentPath,"items","items","0"]})||aV(g),a7(f.valueType._def,{...g,currentPath:[...g.currentPath,"items","items","1"]})||aV(g)],minItems:2,maxItems:2}};case aA.ZodSet:var Q=a,R=c;let S={type:"array",uniqueItems:!0,items:a7(Q.valueType._def,{...R,currentPath:[...R.currentPath,"items"]})};return Q.minSize&&aX(S,"minItems",Q.minSize.value,Q.minSize.message,R),Q.maxSize&&aX(S,"maxItems",Q.maxSize.value,Q.maxSize.message,R),S;case aA.ZodLazy:return()=>a.getter()._def;case aA.ZodPromise:return a7(a.type._def,c);case aA.ZodNaN:case aA.ZodNever:return"openAi"===(h=c).target?void 0:{not:aV({...h,currentPath:[...h.currentPath,"not"]})};case aA.ZodEffects:return i=a,"input"===(j=c).effectStrategy?a7(i.schema._def,j):aV(j);case aA.ZodAny:case aA.ZodUnknown:return aV(c);case aA.ZodDefault:return k=a,l=c,{...a7(k.innerType._def,l),default:k.defaultValue()};case aA.ZodBranded:return aY(a,c);case aA.ZodReadonly:case aA.ZodCatch:return a7(a.innerType._def,c);case aA.ZodPipeline:var T=a,U=c;if("input"===U.pipeStrategy)return a7(T.in._def,U);if("output"===U.pipeStrategy)return a7(T.out._def,U);let V=a7(T.in._def,{...U,currentPath:[...U.currentPath,"allOf","0"]}),W=a7(T.out._def,{...U,currentPath:[...U.currentPath,"allOf",V?"1":"0"]});return{allOf:[V,W].filter(a=>void 0!==a)};case aA.ZodFunction:case aA.ZodVoid:case aA.ZodSymbol:default:return}})(a,a.typeName,b),g="function"==typeof f?a7(f(),b):f;if(g&&a9(a,b,g),b.postProcess){let c=b.postProcess(g,a,b);return e.jsonSchema=g,c}return e.jsonSchema=g,g}let a8=(a,b)=>{switch(b.$refStrategy){case"root":return{$ref:a.path.join("/")};case"relative":return{$ref:aU(b.currentPath,a.path)};case"none":case"seen":if(a.path.length<b.currentPath.length&&a.path.every((a,c)=>b.currentPath[c]===a))return console.warn(`Recursive reference detected at ${b.currentPath.join("/")}! Defaulting to any`),aV(b);return"seen"===b.$refStrategy?aV(b):void 0}},a9=(a,b,c)=>(a.description&&(c.description=a.description,b.markdownDescription&&(c.markdownDescription=a.description)),c);function ba(a,b){if(aI(a)){var c;return aH.bl(a,{target:(c=b?.target)&&"jsonSchema7"!==c&&"draft-7"!==c&&("jsonSchema2019-09"===c||"draft-2020-12"===c)?"draft-2020-12":"draft-7",io:b?.pipeStrategy??"input"})}return((a,b)=>{let c=(a=>{let b,c="string"==typeof(b=a)?{...aT,name:b}:{...aT,...b},d=void 0!==c.name?[...c.basePath,c.definitionPath,c.name]:c.basePath;return{...c,flags:{hasReferencedOpenAiAnyType:!1},currentPath:d,propertyPath:void 0,seen:new Map(Object.entries(c.definitions).map(([a,b])=>[b._def,{def:b._def,path:[...c.basePath,c.definitionPath,a],jsonSchema:void 0}]))}})(b),d="object"==typeof b&&b.definitions?Object.entries(b.definitions).reduce((a,[b,d])=>({...a,[b]:a7(d._def,{...c,currentPath:[...c.basePath,c.definitionPath,b]},!0)??aV(c)}),{}):void 0,e="string"==typeof b?b:b?.nameStrategy==="title"?void 0:b?.name,f=a7(a._def,void 0===e?c:{...c,currentPath:[...c.basePath,c.definitionPath,e]},!1)??aV(c),g="object"==typeof b&&void 0!==b.name&&"title"===b.nameStrategy?b.name:void 0;void 0!==g&&(f.title=g),c.flags.hasReferencedOpenAiAnyType&&(d||(d={}),d[c.openAiAnyTypeName]||(d[c.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===c.$refStrategy?"1":[...c.basePath,c.definitionPath,c.openAiAnyTypeName].join("/")}}));let h=void 0===e?d?{...f,[c.definitionPath]:d}:f:{$ref:[..."relative"===c.$refStrategy?[]:c.basePath,c.definitionPath,e].join("/"),[c.definitionPath]:{...d,[e]:f}};return"jsonSchema7"===c.target?h.$schema="http://json-schema.org/draft-07/schema#":("jsonSchema2019-09"===c.target||"openAi"===c.target)&&(h.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===c.target&&("anyOf"in h||"oneOf"in h||"allOf"in h||"type"in h&&Array.isArray(h.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),h})(a,{strictUnions:b?.strictUnions??!0,pipeStrategy:b?.pipeStrategy??"input"})}function bb(a){let b=aM(a),c=b?.method;if(!c)throw Error("Schema is missing a method literal");let d=aP(c);if("string"!=typeof d)throw Error("Schema method literal must be a string");return d}function bc(a,b){let c=aK(a,b);if(!c.success)throw c.error;return c.data}class bd{constructor(a){this._options=a,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(aQ.Sq,a=>{this._oncancel(a)}),this.setNotificationHandler(aQ._r,a=>{this._onprogress(a)}),this.setRequestHandler(aQ.tC,a=>({})),this._taskStore=a?.taskStore,this._taskMessageQueue=a?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(aQ.Ql,async(a,b)=>{let c=await this._taskStore.getTask(a.params.taskId,b.sessionId);if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,"Failed to retrieve task: Task not found");return{...c}}),this.setRequestHandler(aQ.oQ,async(a,b)=>{let c=async()=>{let d=a.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(d,b.sessionId);){if("response"===a.type||"error"===a.type){let b=a.message,c=b.id,d=this._requestResolvers.get(c);if(d)this._requestResolvers.delete(c),d("response"===a.type?b:new aQ.Nh(b.error.code,b.error.message,b.error.data));else{let b="response"===a.type?"Response":"Error";this._onerror(Error(`${b} handler missing for request ${c}`))}continue}await this._transport?.send(a.message,{relatedRequestId:b.requestId})}}let e=await this._taskStore.getTask(d,b.sessionId);if(!e)throw new aQ.Nh(aQ.O4.InvalidParams,`Task not found: ${d}`);if(!aR(e.status))return await this._waitForTaskUpdate(d,b.signal),await c();if(aR(e.status)){let a=await this._taskStore.getTaskResult(d,b.sessionId);return this._clearTaskQueue(d),{...a,_meta:{...a._meta,[aQ.EV]:{taskId:d}}}}return await c()};return await c()}),this.setRequestHandler(aQ.zR,async(a,b)=>{try{let{tasks:c,nextCursor:d}=await this._taskStore.listTasks(a.params?.cursor,b.sessionId);return{tasks:c,nextCursor:d,_meta:{}}}catch(a){throw new aQ.Nh(aQ.O4.InvalidParams,`Failed to list tasks: ${a instanceof Error?a.message:String(a)}`)}}),this.setRequestHandler(aQ.gd,async(a,b)=>{try{let c=await this._taskStore.getTask(a.params.taskId,b.sessionId);if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,`Task not found: ${a.params.taskId}`);if(aR(c.status))throw new aQ.Nh(aQ.O4.InvalidParams,`Cannot cancel task in terminal status: ${c.status}`);await this._taskStore.updateTaskStatus(a.params.taskId,"cancelled","Client cancelled task execution.",b.sessionId),this._clearTaskQueue(a.params.taskId);let d=await this._taskStore.getTask(a.params.taskId,b.sessionId);if(!d)throw new aQ.Nh(aQ.O4.InvalidParams,`Task not found after cancellation: ${a.params.taskId}`);return{_meta:{},...d}}catch(a){if(a instanceof aQ.Nh)throw a;throw new aQ.Nh(aQ.O4.InvalidRequest,`Failed to cancel task: ${a instanceof Error?a.message:String(a)}`)}}))}async _oncancel(a){if(!a.params.requestId)return;let b=this._requestHandlerAbortControllers.get(a.params.requestId);b?.abort(a.params.reason)}_setupTimeout(a,b,c,d,e=!1){this._timeoutInfo.set(a,{timeoutId:setTimeout(d,b),startTime:Date.now(),timeout:b,maxTotalTimeout:c,resetTimeoutOnProgress:e,onTimeout:d})}_resetTimeout(a){let b=this._timeoutInfo.get(a);if(!b)return!1;let c=Date.now()-b.startTime;if(b.maxTotalTimeout&&c>=b.maxTotalTimeout)throw this._timeoutInfo.delete(a),aQ.Nh.fromError(aQ.O4.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:b.maxTotalTimeout,totalElapsed:c});return clearTimeout(b.timeoutId),b.timeoutId=setTimeout(b.onTimeout,b.timeout),!0}_cleanupTimeout(a){let b=this._timeoutInfo.get(a);b&&(clearTimeout(b.timeoutId),this._timeoutInfo.delete(a))}async connect(a){if(this._transport)throw Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=a;let b=this.transport?.onclose;this._transport.onclose=()=>{b?.(),this._onclose()};let c=this.transport?.onerror;this._transport.onerror=a=>{c?.(a),this._onerror(a)};let d=this._transport?.onmessage;this._transport.onmessage=(a,b)=>{d?.(a,b),(0,aQ.ig)(a)||(0,aQ.LW)(a)?this._onresponse(a):(0,aQ.vo)(a)?this._onrequest(a,b):(0,aQ.lg)(a)?this._onnotification(a):this._onerror(Error(`Unknown message type: ${JSON.stringify(a)}`))},await this._transport.start()}_onclose(){let a=this._responseHandlers;for(let a of(this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear(),this._requestHandlerAbortControllers.values()))a.abort();this._requestHandlerAbortControllers.clear();let b=aQ.Nh.fromError(aQ.O4.ConnectionClosed,"Connection closed");for(let c of(this._transport=void 0,this.onclose?.(),a.values()))c(b)}_onerror(a){this.onerror?.(a)}_onnotification(a){let b=this._notificationHandlers.get(a.method)??this.fallbackNotificationHandler;void 0!==b&&Promise.resolve().then(()=>b(a)).catch(a=>this._onerror(Error(`Uncaught error in notification handler: ${a}`)))}_onrequest(a,b){let c=this._requestHandlers.get(a.method)??this.fallbackRequestHandler,d=this._transport,e=a.params?._meta?.[aQ.EV]?.taskId;if(void 0===c){let b={jsonrpc:"2.0",id:a.id,error:{code:aQ.O4.MethodNotFound,message:"Method not found"}};e&&this._taskMessageQueue?this._enqueueTaskMessage(e,{type:"error",message:b,timestamp:Date.now()},d?.sessionId).catch(a=>this._onerror(Error(`Failed to enqueue error response: ${a}`))):d?.send(b).catch(a=>this._onerror(Error(`Failed to send an error response: ${a}`)));return}let f=new AbortController;this._requestHandlerAbortControllers.set(a.id,f);let g=(0,aQ.bZ)(a.params)?a.params.task:void 0,h=this._taskStore?this.requestTaskStore(a,d?.sessionId):void 0,i={signal:f.signal,sessionId:d?.sessionId,_meta:a.params?._meta,sendNotification:async b=>{if(f.signal.aborted)return;let c={relatedRequestId:a.id};e&&(c.relatedTask={taskId:e}),await this.notification(b,c)},sendRequest:async(b,c,d)=>{if(f.signal.aborted)throw new aQ.Nh(aQ.O4.ConnectionClosed,"Request was cancelled");let g={...d,relatedRequestId:a.id};e&&!g.relatedTask&&(g.relatedTask={taskId:e});let i=g.relatedTask?.taskId??e;return i&&h&&await h.updateTaskStatus(i,"input_required"),await this.request(b,c,g)},authInfo:b?.authInfo,requestId:a.id,requestInfo:b?.requestInfo,taskId:e,taskStore:h,taskRequestedTtl:g?.ttl,closeSSEStream:b?.closeSSEStream,closeStandaloneSSEStream:b?.closeStandaloneSSEStream};Promise.resolve().then(()=>{g&&this.assertTaskHandlerCapability(a.method)}).then(()=>c(a,i)).then(async b=>{if(f.signal.aborted)return;let c={result:b,jsonrpc:"2.0",id:a.id};e&&this._taskMessageQueue?await this._enqueueTaskMessage(e,{type:"response",message:c,timestamp:Date.now()},d?.sessionId):await d?.send(c)},async b=>{if(f.signal.aborted)return;let c={jsonrpc:"2.0",id:a.id,error:{code:Number.isSafeInteger(b.code)?b.code:aQ.O4.InternalError,message:b.message??"Internal error",...void 0!==b.data&&{data:b.data}}};e&&this._taskMessageQueue?await this._enqueueTaskMessage(e,{type:"error",message:c,timestamp:Date.now()},d?.sessionId):await d?.send(c)}).catch(a=>this._onerror(Error(`Failed to send response: ${a}`))).finally(()=>{this._requestHandlerAbortControllers.delete(a.id)})}_onprogress(a){let{progressToken:b,...c}=a.params,d=Number(b),e=this._progressHandlers.get(d);if(!e)return void this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(a)}`));let f=this._responseHandlers.get(d),g=this._timeoutInfo.get(d);if(g&&f&&g.resetTimeoutOnProgress)try{this._resetTimeout(d)}catch(a){this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),f(a);return}e(c)}_onresponse(a){let b=Number(a.id),c=this._requestResolvers.get(b);if(c){this._requestResolvers.delete(b),c((0,aQ.ig)(a)?a:new aQ.Nh(a.error.code,a.error.message,a.error.data));return}let d=this._responseHandlers.get(b);if(void 0===d)return void this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(a)}`));this._responseHandlers.delete(b),this._cleanupTimeout(b);let e=!1;if((0,aQ.ig)(a)&&a.result&&"object"==typeof a.result){let c=a.result;if(c.task&&"object"==typeof c.task){let a=c.task;"string"==typeof a.taskId&&(e=!0,this._taskProgressTokens.set(a.taskId,b))}}e||this._progressHandlers.delete(b),d((0,aQ.ig)(a)?a:aQ.Nh.fromError(a.error.code,a.error.message,a.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}async *requestStream(a,b,c){let d,{task:e}=c??{};if(!e){try{let d=await this.request(a,b,c);yield{type:"result",result:d}}catch(a){yield{type:"error",error:a instanceof aQ.Nh?a:new aQ.Nh(aQ.O4.InternalError,String(a))}}return}try{let e=await this.request(a,aQ.Mg,c);if(e.task)d=e.task.taskId,yield{type:"taskCreated",task:e.task};else throw new aQ.Nh(aQ.O4.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:d},c);if(yield{type:"taskStatus",task:a},aR(a.status)){if("completed"===a.status){let a=await this.getTaskResult({taskId:d},b,c);yield{type:"result",result:a}}else"failed"===a.status?yield{type:"error",error:new aQ.Nh(aQ.O4.InternalError,`Task ${d} failed`)}:"cancelled"===a.status&&(yield{type:"error",error:new aQ.Nh(aQ.O4.InternalError,`Task ${d} was cancelled`)});return}if("input_required"===a.status){let a=await this.getTaskResult({taskId:d},b,c);yield{type:"result",result:a};return}let e=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(a=>setTimeout(a,e)),c?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof aQ.Nh?a:new aQ.Nh(aQ.O4.InternalError,String(a))}}}request(a,b,c){let{relatedRequestId:d,resumptionToken:e,onresumptiontoken:f,task:g,relatedTask:h}=c??{};return new Promise((i,j)=>{let k=a=>{j(a)};if(!this._transport)return void k(Error("Not connected"));if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(a.method),g&&this.assertTaskCapability(a.method)}catch(a){k(a);return}c?.signal?.throwIfAborted();let l=this._requestMessageId++,m={...a,jsonrpc:"2.0",id:l};c?.onprogress&&(this._progressHandlers.set(l,c.onprogress),m.params={...a.params,_meta:{...a.params?._meta||{},progressToken:l}}),g&&(m.params={...m.params,task:g}),h&&(m.params={...m.params,_meta:{...m.params?._meta||{},[aQ.EV]:h}});let n=a=>{this._responseHandlers.delete(l),this._progressHandlers.delete(l),this._cleanupTimeout(l),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:l,reason:String(a)}},{relatedRequestId:d,resumptionToken:e,onresumptiontoken:f}).catch(a=>this._onerror(Error(`Failed to send cancellation: ${a}`))),j(a instanceof aQ.Nh?a:new aQ.Nh(aQ.O4.RequestTimeout,String(a)))};this._responseHandlers.set(l,a=>{if(!c?.signal?.aborted){if(a instanceof Error)return j(a);try{let c=aK(b,a.result);c.success?i(c.data):j(c.error)}catch(a){j(a)}}}),c?.signal?.addEventListener("abort",()=>{n(c?.signal?.reason)});let o=c?.timeout??6e4;this._setupTimeout(l,o,c?.maxTotalTimeout,()=>n(aQ.Nh.fromError(aQ.O4.RequestTimeout,"Request timed out",{timeout:o})),c?.resetTimeoutOnProgress??!1);let p=h?.taskId;if(p){let a=a=>{let b=this._responseHandlers.get(l);b?b(a):this._onerror(Error(`Response handler missing for side-channeled request ${l}`))};this._requestResolvers.set(l,a),this._enqueueTaskMessage(p,{type:"request",message:m,timestamp:Date.now()}).catch(a=>{this._cleanupTimeout(l),j(a)})}else this._transport.send(m,{relatedRequestId:d,resumptionToken:e,onresumptiontoken:f}).catch(a=>{this._cleanupTimeout(l),j(a)})})}async getTask(a,b){return this.request({method:"tasks/get",params:a},aQ.Sc,b)}async getTaskResult(a,b,c){return this.request({method:"tasks/result",params:a},b,c)}async listTasks(a,b){return this.request({method:"tasks/list",params:a},aQ.a5,b)}async cancelTask(a,b){return this.request({method:"tasks/cancel",params:a},aQ.gH,b)}async notification(a,b){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability(a.method);let c=b?.relatedTask?.taskId;if(c){let d={...a,jsonrpc:"2.0",params:{...a.params,_meta:{...a.params?._meta||{},[aQ.EV]:b.relatedTask}}};await this._enqueueTaskMessage(c,{type:"notification",message:d,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(a.method)&&!a.params&&!b?.relatedRequestId&&!b?.relatedTask){if(this._pendingDebouncedNotifications.has(a.method))return;this._pendingDebouncedNotifications.add(a.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(a.method),!this._transport)return;let c={...a,jsonrpc:"2.0"};b?.relatedTask&&(c={...c,params:{...c.params,_meta:{...c.params?._meta||{},[aQ.EV]:b.relatedTask}}}),this._transport?.send(c,b).catch(a=>this._onerror(a))});return}let d={...a,jsonrpc:"2.0"};b?.relatedTask&&(d={...d,params:{...d.params,_meta:{...d.params?._meta||{},[aQ.EV]:b.relatedTask}}}),await this._transport.send(d,b)}setRequestHandler(a,b){let c=bb(a);this.assertRequestHandlerCapability(c),this._requestHandlers.set(c,(c,d)=>Promise.resolve(b(bc(a,c),d)))}removeRequestHandler(a){this._requestHandlers.delete(a)}assertCanSetRequestHandler(a){if(this._requestHandlers.has(a))throw Error(`A request handler for ${a} already exists, which would be overridden`)}setNotificationHandler(a,b){let c=bb(a);this._notificationHandlers.set(c,c=>Promise.resolve(b(bc(a,c))))}removeNotificationHandler(a){this._notificationHandlers.delete(a)}_cleanupTaskProgressHandler(a){let b=this._taskProgressTokens.get(a);void 0!==b&&(this._progressHandlers.delete(b),this._taskProgressTokens.delete(a))}async _enqueueTaskMessage(a,b,c){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let d=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(a,b,c,d)}async _clearTaskQueue(a,b){if(this._taskMessageQueue){for(let c of(await this._taskMessageQueue.dequeueAll(a,b)))if("request"===c.type&&(0,aQ.vo)(c.message)){let b=c.message.id,d=this._requestResolvers.get(b);d?(d(new aQ.Nh(aQ.O4.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(b)):this._onerror(Error(`Resolver missing for request ${b} during task ${a} cleanup`))}}}async _waitForTaskUpdate(a,b){let c=this._options?.defaultTaskPollInterval??1e3;try{let b=await this._taskStore?.getTask(a);b?.pollInterval&&(c=b.pollInterval)}catch{}return new Promise((a,d)=>{if(b.aborted)return void d(new aQ.Nh(aQ.O4.InvalidRequest,"Request cancelled"));let e=setTimeout(a,c);b.addEventListener("abort",()=>{clearTimeout(e),d(new aQ.Nh(aQ.O4.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(a,b){let c=this._taskStore;if(!c)throw Error("No task store configured");return{createTask:async d=>{if(!a)throw Error("No request provided");return await c.createTask(d,a.id,{method:a.method,params:a.params},b)},getTask:async a=>{let d=await c.getTask(a,b);if(!d)throw new aQ.Nh(aQ.O4.InvalidParams,"Failed to retrieve task: Task not found");return d},storeTaskResult:async(a,d,e)=>{await c.storeTaskResult(a,d,e,b);let f=await c.getTask(a,b);if(f){let b=aQ.ki.parse({method:"notifications/tasks/status",params:f});await this.notification(b),aR(f.status)&&this._cleanupTaskProgressHandler(a)}},getTaskResult:a=>c.getTaskResult(a,b),updateTaskStatus:async(a,d,e)=>{let f=await c.getTask(a,b);if(!f)throw new aQ.Nh(aQ.O4.InvalidParams,`Task "${a}" not found - it may have been cleaned up`);if(aR(f.status))throw new aQ.Nh(aQ.O4.InvalidParams,`Cannot update task "${a}" from terminal status "${f.status}" to "${d}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await c.updateTaskStatus(a,d,e,b);let g=await c.getTask(a,b);if(g){let b=aQ.ki.parse({method:"notifications/tasks/status",params:g});await this.notification(b),aR(g.status)&&this._cleanupTaskProgressHandler(a)}},listTasks:a=>c.listTasks(a,b)}}}function be(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}var bf=c(13370),bg=c(3395);class bh{constructor(a){this._ajv=a??function(){let a=new bf({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return bg(a),a}()}getValidator(a){let b="$id"in a&&"string"==typeof a.$id?this._ajv.getSchema(a.$id)??this._ajv.compile(a):this._ajv.compile(a);return a=>b(a)?{valid:!0,data:a,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(b.errors)}}}class bi{constructor(a){this._server=a}requestStream(a,b,c){return this._server.requestStream(a,b,c)}async getTask(a,b){return this._server.getTask({taskId:a},b)}async getTaskResult(a,b,c){return this._server.getTaskResult({taskId:a},b,c)}async listTasks(a,b){return this._server.listTasks(a?{cursor:a}:void 0,b)}async cancelTask(a,b){return this._server.cancelTask({taskId:a},b)}}class bj extends bd{constructor(a,b){super(b),this._serverInfo=a,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(aQ.FP.options.map((a,b)=>[a,b])),this.isMessageIgnored=(a,b)=>{let c=this._loggingLevels.get(b);return!!c&&this.LOG_LEVEL_SEVERITY.get(a)<this.LOG_LEVEL_SEVERITY.get(c)},this._capabilities=b?.capabilities??{},this._instructions=b?.instructions,this._jsonSchemaValidator=b?.jsonSchemaValidator??new bh,this.setRequestHandler(aQ.rk,a=>this._oninitialize(a)),this.setNotificationHandler(aQ.ZC,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(aQ.b_,async(a,b)=>{let c=b.sessionId||b.requestInfo?.headers["mcp-session-id"]||void 0,{level:d}=a.params,e=aQ.FP.safeParse(d);return e.success&&this._loggingLevels.set(c,e.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new bi(this)}),this._experimental}registerCapabilities(a){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=function(a,b){let c={...a};for(let a in b){let d=b[a];if(void 0===d)continue;let e=c[a];be(e)&&be(d)?c[a]={...e,...d}:c[a]=d}return c}(this._capabilities,a)}setRequestHandler(a,b){let c,d=aM(a),e=d?.method;if(!e)throw Error("Schema is missing a method literal");if(aI(e)){let a=e._zod?.def;c=a?.value??e.value}else{let a=e._def;c=a?.value??e.value}if("string"!=typeof c)throw Error("Schema method literal must be a string");if("tools/call"===c){let c=async(a,c)=>{let d=aK(aQ.FT,a);if(!d.success){let a=d.error instanceof Error?d.error.message:String(d.error);throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid tools/call request: ${a}`)}let{params:e}=d.data,f=await Promise.resolve(b(a,c));if(e.task){let a=aK(aQ.Mg,f);if(!a.success){let b=a.error instanceof Error?a.error.message:String(a.error);throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid task creation result: ${b}`)}return a.data}let g=aK(aQ.TF,f);if(!g.success){let a=g.error instanceof Error?g.error.message:String(g.error);throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid tools/call result: ${a}`)}return g.data};return super.setRequestHandler(a,c)}return super.setRequestHandler(a,b)}assertCapabilityForMethod(a){switch(a){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${a})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${a})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${a})`)}}assertNotificationCapability(a){switch(a){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${a})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${a})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${a})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${a})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${a})`)}}assertRequestHandlerCapability(a){if(this._capabilities)switch(a){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${a})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${a})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${a})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${a})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${a})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${a})`)}}assertTaskCapability(a){var b=this._clientCapabilities?.tasks?.requests,c="Client";if(!b)throw Error(`${c} does not support task creation (required for ${a})`);switch(a){case"sampling/createMessage":if(!b.sampling?.createMessage)throw Error(`${c} does not support task creation for sampling/createMessage (required for ${a})`);break;case"elicitation/create":if(!b.elicitation?.create)throw Error(`${c} does not support task creation for elicitation/create (required for ${a})`)}}assertTaskHandlerCapability(a){if(this._capabilities){var b=this._capabilities.tasks?.requests,c="Server";if(!b)throw Error(`${c} does not support task creation (required for ${a})`);if("tools/call"===a&&!b.tools?.call)throw Error(`${c} does not support task creation for tools/call (required for ${a})`)}}async _oninitialize(a){let b=a.params.protocolVersion;return this._clientCapabilities=a.params.capabilities,this._clientVersion=a.params.clientInfo,{protocolVersion:aQ.Iu.includes(b)?b:aQ.aE,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},aQ.wR)}async createMessage(a,b){if((a.tools||a.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.");if(a.messages.length>0){let b=a.messages[a.messages.length-1],c=Array.isArray(b.content)?b.content:[b.content],d=c.some(a=>"tool_result"===a.type),e=a.messages.length>1?a.messages[a.messages.length-2]:void 0,f=e?Array.isArray(e.content)?e.content:[e.content]:[],g=f.some(a=>"tool_use"===a.type);if(d){if(c.some(a=>"tool_result"!==a.type))throw Error("The last message must contain only tool_result content if any is present");if(!g)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(g){let a=new Set(f.filter(a=>"tool_use"===a.type).map(a=>a.id)),b=new Set(c.filter(a=>"tool_result"===a.type).map(a=>a.toolUseId));if(a.size!==b.size||![...a].every(a=>b.has(a)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return a.tools?this.request({method:"sampling/createMessage",params:a},aQ.TI,b):this.request({method:"sampling/createMessage",params:a},aQ.K1,b)}async elicitInput(a,b){switch(a.mode??"form"){case"url":if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");return this.request({method:"elicitation/create",params:a},aQ.n_,b);case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let c="form"===a.mode?a:{...a,mode:"form"},d=await this.request({method:"elicitation/create",params:c},aQ.n_,b);if("accept"===d.action&&d.content&&c.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(c.requestedSchema)(d.content);if(!a.valid)throw new aQ.Nh(aQ.O4.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(a){if(a instanceof aQ.Nh)throw a;throw new aQ.Nh(aQ.O4.InternalError,`Error validating elicitation response: ${a instanceof Error?a.message:String(a)}`)}return d}}}createElicitationCompletionNotifier(a,b){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:a}},b)}async listRoots(a,b){return this.request({method:"roots/list",params:a},aQ.Cs,b)}async sendLoggingMessage(a,b){if(this._capabilities.logging&&!this.isMessageIgnored(a.level,b))return this.notification({method:"notifications/message",params:a})}async sendResourceUpdated(a){return this.notification({method:"notifications/resources/updated",params:a})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}let bk=Symbol.for("mcp.completable");function bl(a){return!!a&&"object"==typeof a&&bk in a}(aB||(aB={})).Completable="McpCompletable";let bm=/^[A-Za-z0-9._-]{1,128}$/;function bn(a){let b=function(a){let b=[];if(0===a.length)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(a.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${a.length})`]};if(a.includes(" ")&&b.push("Tool name contains spaces, which may cause parsing issues"),a.includes(",")&&b.push("Tool name contains commas, which may cause parsing issues"),(a.startsWith("-")||a.endsWith("-"))&&b.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(a.startsWith(".")||a.endsWith("."))&&b.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!bm.test(a)){let c=a.split("").filter(a=>!/[A-Za-z0-9._-]/.test(a)).filter((a,b,c)=>c.indexOf(a)===b);return b.push(`Tool name contains invalid characters: ${c.map(a=>`"${a}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:b}}return{isValid:!0,warnings:b}}(a);var c=b.warnings;if(c.length>0){for(let b of(console.warn(`Tool name validation warning for "${a}":`),c))console.warn(` - ${b}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}return b.isValid}class bo{constructor(a){this._mcpServer=a}registerToolTask(a,b,c){let d={taskSupport:"required",...b.execution};if("forbidden"===d.taskSupport)throw Error(`Cannot register task-based tool '${a}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(a,b.title,b.description,b.inputSchema,b.outputSchema,b.annotations,d,b._meta,c)}}var bp=c(77258);class bq{constructor(a,b){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new bj(a,b)}get experimental(){return this._experimental||(this._experimental={tasks:new bo(this)}),this._experimental}async connect(a){return await this.server.connect(a)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(bv(aQ.gW)),this.server.assertCanSetRequestHandler(bv(aQ.FT)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(aQ.gW,()=>({tools:Object.entries(this._registeredTools).filter(([,a])=>a.enabled).map(([a,b])=>{let c={name:a,title:b.title,description:b.description,inputSchema:(()=>{let a=aN(b.inputSchema);return a?ba(a,{strictUnions:!0,pipeStrategy:"input"}):br})(),annotations:b.annotations,execution:b.execution,_meta:b._meta};if(b.outputSchema){let a=aN(b.outputSchema);a&&(c.outputSchema=ba(a,{strictUnions:!0,pipeStrategy:"output"}))}return c})})),this.server.setRequestHandler(aQ.FT,async(a,b)=>{try{let c=this._registeredTools[a.params.name];if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,`Tool ${a.params.name} not found`);if(!c.enabled)throw new aQ.Nh(aQ.O4.InvalidParams,`Tool ${a.params.name} disabled`);let d=!!a.params.task,e=c.execution?.taskSupport,f="createTask"in c.handler;if(("required"===e||"optional"===e)&&!f)throw new aQ.Nh(aQ.O4.InternalError,`Tool ${a.params.name} has taskSupport '${e}' but was not registered with registerToolTask`);if("required"===e&&!d)throw new aQ.Nh(aQ.O4.MethodNotFound,`Tool ${a.params.name} requires task augmentation (taskSupport: 'required')`);if("optional"===e&&!d&&f)return await this.handleAutomaticTaskPolling(c,a,b);let g=await this.validateToolInput(c,a.params.arguments,a.params.name),h=await this.executeToolHandler(c,g,b);if(d)return h;return await this.validateToolOutput(c,h,a.params.name),h}catch(a){if(a instanceof aQ.Nh&&a.code===aQ.O4.UrlElicitationRequired)throw a;return this.createToolError(a instanceof Error?a.message:String(a))}}),this._toolHandlersInitialized=!0)}createToolError(a){return{content:[{type:"text",text:a}],isError:!0}}async validateToolInput(a,b,c){if(!a.inputSchema)return;let d=aN(a.inputSchema)??a.inputSchema,e=await aL(d,b);if(!e.success){let a=aO("error"in e?e.error:"Unknown error");throw new aQ.Nh(aQ.O4.InvalidParams,`Input validation error: Invalid arguments for tool ${c}: ${a}`)}return e.data}async validateToolOutput(a,b,c){if(!a.outputSchema||!("content"in b)||b.isError)return;if(!b.structuredContent)throw new aQ.Nh(aQ.O4.InvalidParams,`Output validation error: Tool ${c} has an output schema but no structured content was provided`);let d=aN(a.outputSchema),e=await aL(d,b.structuredContent);if(!e.success){let a=aO("error"in e?e.error:"Unknown error");throw new aQ.Nh(aQ.O4.InvalidParams,`Output validation error: Invalid structured content for tool ${c}: ${a}`)}}async executeToolHandler(a,b,c){let d=a.handler;if("createTask"in d){if(!c.taskStore)throw Error("No task store provided.");let e={...c,taskStore:c.taskStore};return a.inputSchema?await Promise.resolve(d.createTask(b,e)):await Promise.resolve(d.createTask(e))}return a.inputSchema?await Promise.resolve(d(b,c)):await Promise.resolve(d(c))}async handleAutomaticTaskPolling(a,b,c){if(!c.taskStore)throw Error("No task store provided for task-capable tool.");let d=await this.validateToolInput(a,b.params.arguments,b.params.name),e=a.handler,f={...c,taskStore:c.taskStore},g=d?await Promise.resolve(e.createTask(d,f)):await Promise.resolve(e.createTask(f)),h=g.task.taskId,i=g.task,j=i.pollInterval??5e3;for(;"completed"!==i.status&&"failed"!==i.status&&"cancelled"!==i.status;){await new Promise(a=>setTimeout(a,j));let a=await c.taskStore.getTask(h);if(!a)throw new aQ.Nh(aQ.O4.InternalError,`Task ${h} not found during polling`);i=a}return await c.taskStore.getTaskResult(h)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(bv(aQ.iK)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(aQ.iK,async a=>{switch(a.params.ref.type){case"ref/prompt":return(0,aQ.uv)(a),this.handlePromptCompletion(a,a.params.ref);case"ref/resource":return(0,aQ.X6)(a),this.handleResourceCompletion(a,a.params.ref);default:throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid completion reference: ${a.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(a,b){let c=this._registeredPrompts[b.name];if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,`Prompt ${b.name} not found`);if(!c.enabled)throw new aQ.Nh(aQ.O4.InvalidParams,`Prompt ${b.name} disabled`);if(!c.argsSchema)return bx;let d=aM(c.argsSchema),e=d?.[a.params.argument.name];if(!bl(e))return bx;let f=function(a){let b=a[bk];return b?.complete}(e);return f?bw(await f(a.params.argument.value,a.params.context)):bx}async handleResourceCompletion(a,b){let c=Object.values(this._registeredResourceTemplates).find(a=>a.resourceTemplate.uriTemplate.toString()===b.uri);if(!c){if(this._registeredResources[b.uri])return bx;throw new aQ.Nh(aQ.O4.InvalidParams,`Resource template ${a.params.ref.uri} not found`)}let d=c.resourceTemplate.completeCallback(a.params.argument.name);return d?bw(await d(a.params.argument.value,a.params.context)):bx}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(bv(aQ.OI)),this.server.assertCanSetRequestHandler(bv(aQ.s)),this.server.assertCanSetRequestHandler(bv(aQ.R6)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(aQ.OI,async(a,b)=>{let c=Object.entries(this._registeredResources).filter(([a,b])=>b.enabled).map(([a,b])=>({uri:a,name:b.name,...b.metadata})),d=[];for(let a of Object.values(this._registeredResourceTemplates))if(a.resourceTemplate.listCallback)for(let c of(await a.resourceTemplate.listCallback(b)).resources)d.push({...a.metadata,...c});return{resources:[...c,...d]}}),this.server.setRequestHandler(aQ.s,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([a,b])=>({name:a,uriTemplate:b.resourceTemplate.uriTemplate.toString(),...b.metadata}))})),this.server.setRequestHandler(aQ.R6,async(a,b)=>{let c=new URL(a.params.uri),d=this._registeredResources[c.toString()];if(d){if(!d.enabled)throw new aQ.Nh(aQ.O4.InvalidParams,`Resource ${c} disabled`);return d.readCallback(c,b)}for(let a of Object.values(this._registeredResourceTemplates)){let d=a.resourceTemplate.uriTemplate.match(c.toString());if(d)return a.readCallback(c,d,b)}throw new aQ.Nh(aQ.O4.InvalidParams,`Resource ${c} not found`)}),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(bv(aQ.Qq)),this.server.assertCanSetRequestHandler(bv(aQ.$p)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(aQ.Qq,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,a])=>a.enabled).map(([a,b])=>({name:a,title:b.title,description:b.description,arguments:b.argsSchema?function(a){let b=aM(a);return b?Object.entries(b).map(([a,b])=>({name:a,description:b.description,required:!(aI(b)?b._zod?.def?.type==="optional":"function"==typeof b.isOptional?b.isOptional():b._def?.typeName==="ZodOptional")})):[]}(b.argsSchema):void 0}))})),this.server.setRequestHandler(aQ.$p,async(a,b)=>{let c=this._registeredPrompts[a.params.name];if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,`Prompt ${a.params.name} not found`);if(!c.enabled)throw new aQ.Nh(aQ.O4.InvalidParams,`Prompt ${a.params.name} disabled`);if(c.argsSchema){let d=aN(c.argsSchema),e=await aL(d,a.params.arguments);if(!e.success){let b=aO("error"in e?e.error:"Unknown error");throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid arguments for prompt ${a.params.name}: ${b}`)}let f=e.data,g=c.callback;return await Promise.resolve(g(f,b))}{let a=c.callback;return await Promise.resolve(a(b))}}),this._promptHandlersInitialized=!0)}resource(a,b,...c){let d;"object"==typeof c[0]&&(d=c.shift());let e=c[0];if("string"==typeof b){if(this._registeredResources[b])throw Error(`Resource ${b} is already registered`);let c=this._createRegisteredResource(a,void 0,b,d,e);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),c}{if(this._registeredResourceTemplates[a])throw Error(`Resource template ${a} is already registered`);let c=this._createRegisteredResourceTemplate(a,void 0,b,d,e);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),c}}registerResource(a,b,c,d){if("string"==typeof b){if(this._registeredResources[b])throw Error(`Resource ${b} is already registered`);let e=this._createRegisteredResource(a,c.title,b,c,d);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),e}{if(this._registeredResourceTemplates[a])throw Error(`Resource template ${a} is already registered`);let e=this._createRegisteredResourceTemplate(a,c.title,b,c,d);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),e}}_createRegisteredResource(a,b,c,d,e){let f={name:a,title:b,metadata:d,readCallback:e,enabled:!0,disable:()=>f.update({enabled:!1}),enable:()=>f.update({enabled:!0}),remove:()=>f.update({uri:null}),update:a=>{void 0!==a.uri&&a.uri!==c&&(delete this._registeredResources[c],a.uri&&(this._registeredResources[a.uri]=f)),void 0!==a.name&&(f.name=a.name),void 0!==a.title&&(f.title=a.title),void 0!==a.metadata&&(f.metadata=a.metadata),void 0!==a.callback&&(f.readCallback=a.callback),void 0!==a.enabled&&(f.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResources[c]=f,f}_createRegisteredResourceTemplate(a,b,c,d,e){let f={resourceTemplate:c,title:b,metadata:d,readCallback:e,enabled:!0,disable:()=>f.update({enabled:!1}),enable:()=>f.update({enabled:!0}),remove:()=>f.update({name:null}),update:b=>{void 0!==b.name&&b.name!==a&&(delete this._registeredResourceTemplates[a],b.name&&(this._registeredResourceTemplates[b.name]=f)),void 0!==b.title&&(f.title=b.title),void 0!==b.template&&(f.resourceTemplate=b.template),void 0!==b.metadata&&(f.metadata=b.metadata),void 0!==b.callback&&(f.readCallback=b.callback),void 0!==b.enabled&&(f.enabled=b.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[a]=f;let g=c.uriTemplate.variableNames;return Array.isArray(g)&&g.some(a=>!!c.completeCallback(a))&&this.setCompletionRequestHandler(),f}_createRegisteredPrompt(a,b,c,d,e){let f={title:b,description:c,argsSchema:void 0===d?void 0:aJ(d),callback:e,enabled:!0,disable:()=>f.update({enabled:!1}),enable:()=>f.update({enabled:!0}),remove:()=>f.update({name:null}),update:b=>{void 0!==b.name&&b.name!==a&&(delete this._registeredPrompts[a],b.name&&(this._registeredPrompts[b.name]=f)),void 0!==b.title&&(f.title=b.title),void 0!==b.description&&(f.description=b.description),void 0!==b.argsSchema&&(f.argsSchema=aJ(b.argsSchema)),void 0!==b.callback&&(f.callback=b.callback),void 0!==b.enabled&&(f.enabled=b.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[a]=f,d&&Object.values(d).some(a=>bl(a instanceof bp.IiU?a._def?.innerType:a))&&this.setCompletionRequestHandler(),f}_createRegisteredTool(a,b,c,d,e,f,g,h,i){bn(a);let j={title:b,description:c,inputSchema:bu(d),outputSchema:bu(e),annotations:f,execution:g,_meta:h,handler:i,enabled:!0,disable:()=>j.update({enabled:!1}),enable:()=>j.update({enabled:!0}),remove:()=>j.update({name:null}),update:b=>{void 0!==b.name&&b.name!==a&&("string"==typeof b.name&&bn(b.name),delete this._registeredTools[a],b.name&&(this._registeredTools[b.name]=j)),void 0!==b.title&&(j.title=b.title),void 0!==b.description&&(j.description=b.description),void 0!==b.paramsSchema&&(j.inputSchema=aJ(b.paramsSchema)),void 0!==b.outputSchema&&(j.outputSchema=aJ(b.outputSchema)),void 0!==b.callback&&(j.handler=b.callback),void 0!==b.annotations&&(j.annotations=b.annotations),void 0!==b._meta&&(j._meta=b._meta),void 0!==b.enabled&&(j.enabled=b.enabled),this.sendToolListChanged()}};return this._registeredTools[a]=j,this.setToolRequestHandlers(),this.sendToolListChanged(),j}tool(a,...b){let c,d,e,f;if(this._registeredTools[a])throw Error(`Tool ${a} is already registered`);if("string"==typeof b[0]&&(c=b.shift()),b.length>1){let a=b[0];bt(a)?(d=b.shift(),b.length>1&&"object"==typeof b[0]&&null!==b[0]&&!bt(b[0])&&(f=b.shift())):"object"==typeof a&&null!==a&&(f=b.shift())}let g=b[0];return this._createRegisteredTool(a,void 0,c,d,e,f,{taskSupport:"forbidden"},void 0,g)}registerTool(a,b,c){if(this._registeredTools[a])throw Error(`Tool ${a} is already registered`);let{title:d,description:e,inputSchema:f,outputSchema:g,annotations:h,_meta:i}=b;return this._createRegisteredTool(a,d,e,f,g,h,{taskSupport:"forbidden"},i,c)}prompt(a,...b){let c,d;if(this._registeredPrompts[a])throw Error(`Prompt ${a} is already registered`);"string"==typeof b[0]&&(c=b.shift()),b.length>1&&(d=b.shift());let e=b[0],f=this._createRegisteredPrompt(a,void 0,c,d,e);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),f}registerPrompt(a,b,c){if(this._registeredPrompts[a])throw Error(`Prompt ${a} is already registered`);let{title:d,description:e,argsSchema:f}=b,g=this._createRegisteredPrompt(a,d,e,f,c);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),g}isConnected(){return void 0!==this.server.transport}async sendLoggingMessage(a,b){return this.server.sendLoggingMessage(a,b)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}}let br={type:"object",properties:{}};function bs(a){return null!==a&&"object"==typeof a&&"parse"in a&&"function"==typeof a.parse&&"safeParse"in a&&"function"==typeof a.safeParse}function bt(a){return"object"==typeof a&&null!==a&&!("_def"in a||"_zod"in a||bs(a))&&(0===Object.keys(a).length||Object.values(a).some(bs))}function bu(a){if(a)return bt(a)?aJ(a):a}function bv(a){let b=aM(a),c=b?.method;if(!c)throw Error("Schema is missing a method literal");let d=aP(c);if("string"==typeof d)return d;throw Error("Schema method literal must be a string")}function bw(a){return{completion:{values:a.slice(0,100),total:a.length,hasMore:a.length>100}}}let bx={completion:{values:[],hasMore:!1}}},29020:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(20636),e=c(41016),f=c(16674),g=c(352),h=c(37085);b.default=[d.default,e.default,(0,f.default)(),g.default,h.metadataVocabulary,h.contentVocabulary]},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29563:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235),f=c(34481);b.default={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,d.str)`must NOT have ${"maxLength"===a?"more":"fewer"} than ${b} characters`,params:({schemaCode:a})=>(0,d._)`{limit: ${a}}`},code(a){let{keyword:b,data:c,schemaCode:g,it:h}=a,i="maxLength"===b?d.operators.GT:d.operators.LT,j=!1===h.opts.unicode?(0,d._)`${c}.length`:(0,d._)`${(0,e.useFunc)(a.gen,f.default)}(${c})`;a.fail$data((0,d._)`${j} ${i} ${g}`)}}},29799:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(1171);class e extends Error{constructor(a,b,c,e){super(e||`can't resolve reference ${c} from id ${b}`),this.missingRef=(0,d.resolveUrl)(a,b,c),this.missingSchema=(0,d.normalizeId)((0,d.getFullPath)(a,this.missingRef))}}b.default=e},30144:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getRules=b.isJSONType=void 0;let c=new Set(["string","number","integer","boolean","null","object","array"]);b.isJSONType=function(a){return"string"==typeof a&&c.has(a)},b.getRules=function(){let a={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...a,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},a.number,a.string,a.array,a.object],post:{rules:[]},all:{},keywords:{}}}},31079:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={data:new d.Name("data"),valCxt:new d.Name("valCxt"),instancePath:new d.Name("instancePath"),parentData:new d.Name("parentData"),parentDataProperty:new d.Name("parentDataProperty"),rootData:new d.Name("rootData"),dynamicAnchors:new d.Name("dynamicAnchors"),vErrors:new d.Name("vErrors"),errors:new d.Name("errors"),this:new d.Name("this"),self:new d.Name("self"),scope:new d.Name("scope"),json:new d.Name("json"),jsonPos:new d.Name("jsonPos"),jsonLen:new d.Name("jsonLen"),jsonPart:new d.Name("jsonPart")}},31270:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{q:()=>r});var e=c(77258),f=c(85034),g=c(90136),h=c(8777),i=c(88437),j=c(54349),k=c(63089),l=c(37943),m=c(53235),n=c(90494),o=c(52618),p=c(911),q=a([f,g,h,i,j,k,l,m,n,o]);function r(a,b){a.registerTool("synapse_get_research_project",{description:"Get research project details and context",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID")})},async({researchProjectUuid:a})=>{let c=await f.j5(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify(c,null,2)}]}:{content:[{type:"text",text:"Research Project not found"}],isError:!0}}),a.registerTool("synapse_list_research_projects",{description:"List all research projects for the current company. Returns projects with counts of research questions, documents, experiment runs, and experiment designs.",inputSchema:e.Ikc({page:e.aig().default(1).describe("Page number"),pageSize:e.aig().default(20).describe("Items per page")})},async({page:a,pageSize:c})=>{let d=await f.AM({companyUuid:b.companyUuid,skip:(a-1)*c,take:c});return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}),a.registerTool("synapse_get_research_questions",{description:"Get the list of Research Questions for a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),status:e.YjP().optional().describe("Filter by status: open, elaborating, proposal_created, completed, closed"),page:e.aig().optional().default(1).describe("Page number"),pageSize:e.aig().optional().default(20).describe("Items per page")})},async({researchProjectUuid:a,status:c,page:d=1,pageSize:e=20})=>{if(!await f.j5(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let{researchQuestions:h,total:i}=await g.vp({companyUuid:b.companyUuid,researchProjectUuid:a,skip:(d-1)*e,take:e,status:c});return{content:[{type:"text",text:JSON.stringify({researchQuestions:h,total:i,page:d,pageSize:e},null,2)}]}}),a.registerTool("synapse_get_documents",{description:"Get the list of Documents for a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),type:e.YjP().optional().describe("Filter by type: prd, tech_design, adr, etc."),page:e.aig().optional().default(1),pageSize:e.aig().optional().default(20)})},async({researchProjectUuid:a,type:c,page:d=1,pageSize:e=20})=>{if(!await f.j5(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let{documents:g,total:i}=await h.lC({companyUuid:b.companyUuid,researchProjectUuid:a,skip:(d-1)*e,take:e,type:c});return{content:[{type:"text",text:JSON.stringify({documents:g,total:i,page:d,pageSize:e},null,2)}]}}),a.registerTool("synapse_get_document",{description:"Get the detailed content of a single Document",inputSchema:e.Ikc({documentUuid:e.YjP().describe("Document UUID")})},async({documentUuid:a})=>{let c=await h.YE(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify(c,null,2)}]}:{content:[{type:"text",text:"Document not found"}],isError:!0}}),a.registerTool("synapse_get_activity",{description:"Get the activity stream for a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),page:e.aig().optional().default(1),pageSize:e.aig().optional().default(50)})},async({researchProjectUuid:a,page:c=1,pageSize:d=50})=>{if(!await f.j5(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let{activities:e,total:g}=await i.s3({companyUuid:b.companyUuid,researchProjectUuid:a,skip:(c-1)*d,take:d});return{content:[{type:"text",text:JSON.stringify({activities:e,total:g,page:c,pageSize:d},null,2)}]}}),a.registerTool("synapse_add_comment",{description:"Add a comment to a Research Question/Experiment/Experiment Design/Experiment Run/Document",inputSchema:e.Ikc({targetType:e.k5n(["research_question","experiment","experiment_design","experiment_run","document"]).describe("Target type"),targetUuid:e.YjP().describe("Target UUID"),content:e.YjP().describe("Comment content")})},async({targetType:a,targetUuid:c,content:d})=>{try{let e=await j.eT({companyUuid:b.companyUuid,targetType:a,targetUuid:c,content:d,authorType:"agent",authorUuid:b.actorUuid}),f=await j.Hu(a,c);return f&&await i.E1({companyUuid:b.companyUuid,researchProjectUuid:f,targetType:a,targetUuid:c,actorType:"agent",actorUuid:b.actorUuid,action:"comment_added"}),{content:[{type:"text",text:JSON.stringify({uuid:e.uuid,targetType:a,targetUuid:c},null,2)}]}}catch(b){if(b instanceof Error&&b.message.includes("not found"))return{content:[{type:"text",text:`${a} not found`}],isError:!0};throw b}}),a.registerTool("synapse_checkin",{description:"Agent check-in. Returns agent identity (including owner/master info), roles, assigned work, and pending counts. Recommended at session start.",inputSchema:e.Ikc({})},async()=>{let a=await o.prisma.agent.update({where:{uuid:b.actorUuid},data:{lastActiveAt:new Date},select:{uuid:!0,name:!0,roles:!0,type:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,owner:{select:{uuid:!0,name:!0,email:!0}}}});p.B.emitChange({companyUuid:b.companyUuid,researchProjectUuid:"",entityType:"agent_session",entityUuid:a.uuid,action:"updated",actorUuid:b.actorUuid});let{researchQuestions:c,experimentRuns:d}=await k.j(b,b.researchProjectUuids),e=await o.prisma.experiment.findMany({where:{companyUuid:b.companyUuid,assigneeUuid:b.actorUuid,status:{in:["pending_start","in_progress"]},...b.researchProjectUuids&&b.researchProjectUuids.length>0?{researchProjectUuid:{in:b.researchProjectUuids}}:{}},select:{uuid:!0,title:!0,status:!0,researchProject:{select:{uuid:!0,name:!0}}},orderBy:{createdAt:"asc"}}),f=await o.prisma.researchProject.findMany({where:{companyUuid:b.companyUuid},select:{uuid:!0,name:!0,description:!0,deepResearchDocUuid:!0,researchQuestions:{select:{uuid:!0,title:!0,status:!0},orderBy:{createdAt:"asc"}},_count:{select:{relatedWorks:!0}}},orderBy:{updatedAt:"desc"}}),g={};if(f.length>0){let a=f.map(a=>a.uuid);for(let c of(await o.prisma.experiment.groupBy({by:["researchProjectUuid","status"],where:{companyUuid:b.companyUuid,researchProjectUuid:{in:a}},_count:!0})))g[c.researchProjectUuid]||(g[c.researchProjectUuid]={}),g[c.researchProjectUuid][c.status]=c._count}let h=await l.$M(b.companyUuid,b.type,b.actorUuid),i={research_lead:`You are an experienced Research Lead Agent. Your responsibilities are:
5
+ ]`;continue}e+=d[a],"\\"===d[a]?f=!0:g&&"]"===d[a]?g=!1:g||"["!==d[a]||(g=!0)}try{new RegExp(e)}catch{return console.warn(`Could not convert regex pattern at ${b.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),a.source}return e}function a4(a,b){if("openAi"===b.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===b.target&&a.keyType?._def.typeName===aA.ZodEnum)return{type:"object",required:a.keyType._def.values,properties:a.keyType._def.values.reduce((c,d)=>({...c,[d]:a7(a.valueType._def,{...b,currentPath:[...b.currentPath,"properties",d]})??aV(b)}),{}),additionalProperties:b.rejectedAdditionalProperties};let c={type:"object",additionalProperties:a7(a.valueType._def,{...b,currentPath:[...b.currentPath,"additionalProperties"]})??b.allowedAdditionalProperties};if("openApi3"===b.target)return c;if(a.keyType?._def.typeName===aA.ZodString&&a.keyType._def.checks?.length){let{type:d,...e}=a$(a.keyType._def,b);return{...c,propertyNames:e}}if(a.keyType?._def.typeName===aA.ZodEnum)return{...c,propertyNames:{enum:a.keyType._def.values}};if(a.keyType?._def.typeName===aA.ZodBranded&&a.keyType._def.type._def.typeName===aA.ZodString&&a.keyType._def.type._def.checks?.length){let{type:d,...e}=aY(a.keyType._def,b);return{...c,propertyNames:e}}return c}let a5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"},a6=(a,b)=>{let c=(a.options instanceof Map?Array.from(a.options.values()):a.options).map((a,c)=>a7(a._def,{...b,currentPath:[...b.currentPath,"anyOf",`${c}`]})).filter(a=>!!a&&(!b.strictUnions||"object"==typeof a&&Object.keys(a).length>0));return c.length?{anyOf:c}:void 0};function a7(a,b,c=!1){let d=b.seen.get(a);if(b.override){let e=b.override?.(a,b,d,c);if(e!==aS)return e}if(d&&!c){let a=a8(d,b);if(void 0!==a)return a}let e={def:a,path:b.currentPath,jsonSchema:void 0};b.seen.set(a,e);let f=((a,b,c)=>{switch(b){case aA.ZodString:return a$(a,c);case aA.ZodNumber:var d,e,f,g,h,i,j,k,l,m=a,n=c;let o={type:"number"};if(!m.checks)return o;for(let a of m.checks)switch(a.kind){case"int":o.type="integer",aW(o,"type",a.message,n);break;case"min":"jsonSchema7"===n.target?a.inclusive?aX(o,"minimum",a.value,a.message,n):aX(o,"exclusiveMinimum",a.value,a.message,n):(a.inclusive||(o.exclusiveMinimum=!0),aX(o,"minimum",a.value,a.message,n));break;case"max":"jsonSchema7"===n.target?a.inclusive?aX(o,"maximum",a.value,a.message,n):aX(o,"exclusiveMaximum",a.value,a.message,n):(a.inclusive||(o.exclusiveMaximum=!0),aX(o,"maximum",a.value,a.message,n));break;case"multipleOf":aX(o,"multipleOf",a.value,a.message,n)}return o;case aA.ZodObject:return function(a,b){let c="openAi"===b.target,d={type:"object",properties:{}},e=[],f=a.shape();for(let a in f){let g=f[a];if(void 0===g||void 0===g._def)continue;let h=function(a){try{return a.isOptional()}catch{return!0}}(g);h&&c&&("ZodOptional"===g._def.typeName&&(g=g._def.innerType),g.isNullable()||(g=g.nullable()),h=!1);let i=a7(g._def,{...b,currentPath:[...b.currentPath,"properties",a],propertyPath:[...b.currentPath,"properties",a]});void 0!==i&&(d.properties[a]=i,h||e.push(a))}e.length&&(d.required=e);let g=function(a,b){if("ZodNever"!==a.catchall._def.typeName)return a7(a.catchall._def,{...b,currentPath:[...b.currentPath,"additionalProperties"]});switch(a.unknownKeys){case"passthrough":return b.allowedAdditionalProperties;case"strict":return b.rejectedAdditionalProperties;case"strip":return"strict"===b.removeAdditionalStrategy?b.allowedAdditionalProperties:b.rejectedAdditionalProperties}}(a,b);return void 0!==g&&(d.additionalProperties=g),d}(a,c);case aA.ZodBigInt:var p=a,q=c;let r={type:"integer",format:"int64"};if(!p.checks)return r;for(let a of p.checks)switch(a.kind){case"min":"jsonSchema7"===q.target?a.inclusive?aX(r,"minimum",a.value,a.message,q):aX(r,"exclusiveMinimum",a.value,a.message,q):(a.inclusive||(r.exclusiveMinimum=!0),aX(r,"minimum",a.value,a.message,q));break;case"max":"jsonSchema7"===q.target?a.inclusive?aX(r,"maximum",a.value,a.message,q):aX(r,"exclusiveMaximum",a.value,a.message,q):(a.inclusive||(r.exclusiveMaximum=!0),aX(r,"maximum",a.value,a.message,q));break;case"multipleOf":aX(r,"multipleOf",a.value,a.message,q)}return r;case aA.ZodBoolean:return{type:"boolean"};case aA.ZodDate:return function a(b,c,d){let e=d??c.dateStrategy;if(Array.isArray(e))return{anyOf:e.map((d,e)=>a(b,c,d))};switch(e){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":var f=b,g=c;let h={type:"integer",format:"unix-time"};if("openApi3"===g.target)return h;for(let a of f.checks)switch(a.kind){case"min":aX(h,"minimum",a.value,a.message,g);break;case"max":aX(h,"maximum",a.value,a.message,g)}return h}}(a,c);case aA.ZodUndefined:return{not:aV(c)};case aA.ZodNull:return"openApi3"===c.target?{enum:["null"],nullable:!0}:{type:"null"};case aA.ZodArray:var s=a,t=c;let u={type:"array"};return s.type?._def&&s.type?._def?.typeName!==aA.ZodAny&&(u.items=a7(s.type._def,{...t,currentPath:[...t.currentPath,"items"]})),s.minLength&&aX(u,"minItems",s.minLength.value,s.minLength.message,t),s.maxLength&&aX(u,"maxItems",s.maxLength.value,s.maxLength.message,t),s.exactLength&&(aX(u,"minItems",s.exactLength.value,s.exactLength.message,t),aX(u,"maxItems",s.exactLength.value,s.exactLength.message,t)),u;case aA.ZodUnion:case aA.ZodDiscriminatedUnion:var v=a,w=c;if("openApi3"===w.target)return a6(v,w);let x=v.options instanceof Map?Array.from(v.options.values()):v.options;if(x.every(a=>a._def.typeName in a5&&(!a._def.checks||!a._def.checks.length))){let a=x.reduce((a,b)=>{let c=a5[b._def.typeName];return c&&!a.includes(c)?[...a,c]:a},[]);return{type:a.length>1?a:a[0]}}if(x.every(a=>"ZodLiteral"===a._def.typeName&&!a.description)){let a=x.reduce((a,b)=>{let c=typeof b._def.value;switch(c){case"string":case"number":case"boolean":return[...a,c];case"bigint":return[...a,"integer"];case"object":if(null===b._def.value)return[...a,"null"];default:return a}},[]);if(a.length===x.length){let b=a.filter((a,b,c)=>c.indexOf(a)===b);return{type:b.length>1?b:b[0],enum:x.reduce((a,b)=>a.includes(b._def.value)?a:[...a,b._def.value],[])}}}else if(x.every(a=>"ZodEnum"===a._def.typeName))return{type:"string",enum:x.reduce((a,b)=>[...a,...b._def.values.filter(b=>!a.includes(b))],[])};return a6(v,w);case aA.ZodIntersection:var y=a,z=c;let A=[a7(y.left._def,{...z,currentPath:[...z.currentPath,"allOf","0"]}),a7(y.right._def,{...z,currentPath:[...z.currentPath,"allOf","1"]})].filter(a=>!!a),B="jsonSchema2019-09"===z.target?{unevaluatedProperties:!1}:void 0,C=[];return A.forEach(a=>{if((!("type"in a)||"string"!==a.type)&&"allOf"in a)C.push(...a.allOf),void 0===a.unevaluatedProperties&&(B=void 0);else{let b=a;if("additionalProperties"in a&&!1===a.additionalProperties){let{additionalProperties:c,...d}=a;b=d}else B=void 0;C.push(b)}}),C.length?{allOf:C,...B}:void 0;case aA.ZodTuple:return d=a,e=c,d.rest?{type:"array",minItems:d.items.length,items:d.items.map((a,b)=>a7(a._def,{...e,currentPath:[...e.currentPath,"items",`${b}`]})).reduce((a,b)=>void 0===b?a:[...a,b],[]),additionalItems:a7(d.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:d.items.length,maxItems:d.items.length,items:d.items.map((a,b)=>a7(a._def,{...e,currentPath:[...e.currentPath,"items",`${b}`]})).reduce((a,b)=>void 0===b?a:[...a,b],[])};case aA.ZodRecord:return a4(a,c);case aA.ZodLiteral:var D=a,E=c;let F=typeof D.value;return"bigint"!==F&&"number"!==F&&"boolean"!==F&&"string"!==F?{type:Array.isArray(D.value)?"array":"object"}:"openApi3"===E.target?{type:"bigint"===F?"integer":F,enum:[D.value]}:{type:"bigint"===F?"integer":F,const:D.value};case aA.ZodEnum:return{type:"string",enum:Array.from(a.values)};case aA.ZodNativeEnum:var G=a;let H=G.values,I=Object.keys(G.values).filter(a=>"number"!=typeof H[H[a]]).map(a=>H[a]),J=Array.from(new Set(I.map(a=>typeof a)));return{type:1===J.length?"string"===J[0]?"string":"number":["string","number"],enum:I};case aA.ZodNullable:var K=a,L=c;if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(K.innerType._def.typeName)&&(!K.innerType._def.checks||!K.innerType._def.checks.length))return"openApi3"===L.target?{type:a5[K.innerType._def.typeName],nullable:!0}:{type:[a5[K.innerType._def.typeName],"null"]};if("openApi3"===L.target){let a=a7(K.innerType._def,{...L,currentPath:[...L.currentPath]});return a&&"$ref"in a?{allOf:[a],nullable:!0}:a&&{...a,nullable:!0}}let M=a7(K.innerType._def,{...L,currentPath:[...L.currentPath,"anyOf","0"]});return M&&{anyOf:[M,{type:"null"}]};case aA.ZodOptional:var N=a,O=c;if(O.currentPath.toString()===O.propertyPath?.toString())return a7(N.innerType._def,O);let P=a7(N.innerType._def,{...O,currentPath:[...O.currentPath,"anyOf","1"]});return P?{anyOf:[{not:aV(O)},P]}:aV(O);case aA.ZodMap:return f=a,"record"===(g=c).mapStrategy?a4(f,g):{type:"array",maxItems:125,items:{type:"array",items:[a7(f.keyType._def,{...g,currentPath:[...g.currentPath,"items","items","0"]})||aV(g),a7(f.valueType._def,{...g,currentPath:[...g.currentPath,"items","items","1"]})||aV(g)],minItems:2,maxItems:2}};case aA.ZodSet:var Q=a,R=c;let S={type:"array",uniqueItems:!0,items:a7(Q.valueType._def,{...R,currentPath:[...R.currentPath,"items"]})};return Q.minSize&&aX(S,"minItems",Q.minSize.value,Q.minSize.message,R),Q.maxSize&&aX(S,"maxItems",Q.maxSize.value,Q.maxSize.message,R),S;case aA.ZodLazy:return()=>a.getter()._def;case aA.ZodPromise:return a7(a.type._def,c);case aA.ZodNaN:case aA.ZodNever:return"openAi"===(h=c).target?void 0:{not:aV({...h,currentPath:[...h.currentPath,"not"]})};case aA.ZodEffects:return i=a,"input"===(j=c).effectStrategy?a7(i.schema._def,j):aV(j);case aA.ZodAny:case aA.ZodUnknown:return aV(c);case aA.ZodDefault:return k=a,l=c,{...a7(k.innerType._def,l),default:k.defaultValue()};case aA.ZodBranded:return aY(a,c);case aA.ZodReadonly:case aA.ZodCatch:return a7(a.innerType._def,c);case aA.ZodPipeline:var T=a,U=c;if("input"===U.pipeStrategy)return a7(T.in._def,U);if("output"===U.pipeStrategy)return a7(T.out._def,U);let V=a7(T.in._def,{...U,currentPath:[...U.currentPath,"allOf","0"]}),W=a7(T.out._def,{...U,currentPath:[...U.currentPath,"allOf",V?"1":"0"]});return{allOf:[V,W].filter(a=>void 0!==a)};case aA.ZodFunction:case aA.ZodVoid:case aA.ZodSymbol:default:return}})(a,a.typeName,b),g="function"==typeof f?a7(f(),b):f;if(g&&a9(a,b,g),b.postProcess){let c=b.postProcess(g,a,b);return e.jsonSchema=g,c}return e.jsonSchema=g,g}let a8=(a,b)=>{switch(b.$refStrategy){case"root":return{$ref:a.path.join("/")};case"relative":return{$ref:aU(b.currentPath,a.path)};case"none":case"seen":if(a.path.length<b.currentPath.length&&a.path.every((a,c)=>b.currentPath[c]===a))return console.warn(`Recursive reference detected at ${b.currentPath.join("/")}! Defaulting to any`),aV(b);return"seen"===b.$refStrategy?aV(b):void 0}},a9=(a,b,c)=>(a.description&&(c.description=a.description,b.markdownDescription&&(c.markdownDescription=a.description)),c);function ba(a,b){if(aI(a)){var c;return aH.bl(a,{target:(c=b?.target)&&"jsonSchema7"!==c&&"draft-7"!==c&&("jsonSchema2019-09"===c||"draft-2020-12"===c)?"draft-2020-12":"draft-7",io:b?.pipeStrategy??"input"})}return((a,b)=>{let c=(a=>{let b,c="string"==typeof(b=a)?{...aT,name:b}:{...aT,...b},d=void 0!==c.name?[...c.basePath,c.definitionPath,c.name]:c.basePath;return{...c,flags:{hasReferencedOpenAiAnyType:!1},currentPath:d,propertyPath:void 0,seen:new Map(Object.entries(c.definitions).map(([a,b])=>[b._def,{def:b._def,path:[...c.basePath,c.definitionPath,a],jsonSchema:void 0}]))}})(b),d="object"==typeof b&&b.definitions?Object.entries(b.definitions).reduce((a,[b,d])=>({...a,[b]:a7(d._def,{...c,currentPath:[...c.basePath,c.definitionPath,b]},!0)??aV(c)}),{}):void 0,e="string"==typeof b?b:b?.nameStrategy==="title"?void 0:b?.name,f=a7(a._def,void 0===e?c:{...c,currentPath:[...c.basePath,c.definitionPath,e]},!1)??aV(c),g="object"==typeof b&&void 0!==b.name&&"title"===b.nameStrategy?b.name:void 0;void 0!==g&&(f.title=g),c.flags.hasReferencedOpenAiAnyType&&(d||(d={}),d[c.openAiAnyTypeName]||(d[c.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===c.$refStrategy?"1":[...c.basePath,c.definitionPath,c.openAiAnyTypeName].join("/")}}));let h=void 0===e?d?{...f,[c.definitionPath]:d}:f:{$ref:[..."relative"===c.$refStrategy?[]:c.basePath,c.definitionPath,e].join("/"),[c.definitionPath]:{...d,[e]:f}};return"jsonSchema7"===c.target?h.$schema="http://json-schema.org/draft-07/schema#":("jsonSchema2019-09"===c.target||"openAi"===c.target)&&(h.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===c.target&&("anyOf"in h||"oneOf"in h||"allOf"in h||"type"in h&&Array.isArray(h.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),h})(a,{strictUnions:b?.strictUnions??!0,pipeStrategy:b?.pipeStrategy??"input"})}function bb(a){let b=aM(a),c=b?.method;if(!c)throw Error("Schema is missing a method literal");let d=aP(c);if("string"!=typeof d)throw Error("Schema method literal must be a string");return d}function bc(a,b){let c=aK(a,b);if(!c.success)throw c.error;return c.data}class bd{constructor(a){this._options=a,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(aQ.Sq,a=>{this._oncancel(a)}),this.setNotificationHandler(aQ._r,a=>{this._onprogress(a)}),this.setRequestHandler(aQ.tC,a=>({})),this._taskStore=a?.taskStore,this._taskMessageQueue=a?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(aQ.Ql,async(a,b)=>{let c=await this._taskStore.getTask(a.params.taskId,b.sessionId);if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,"Failed to retrieve task: Task not found");return{...c}}),this.setRequestHandler(aQ.oQ,async(a,b)=>{let c=async()=>{let d=a.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(d,b.sessionId);){if("response"===a.type||"error"===a.type){let b=a.message,c=b.id,d=this._requestResolvers.get(c);if(d)this._requestResolvers.delete(c),d("response"===a.type?b:new aQ.Nh(b.error.code,b.error.message,b.error.data));else{let b="response"===a.type?"Response":"Error";this._onerror(Error(`${b} handler missing for request ${c}`))}continue}await this._transport?.send(a.message,{relatedRequestId:b.requestId})}}let e=await this._taskStore.getTask(d,b.sessionId);if(!e)throw new aQ.Nh(aQ.O4.InvalidParams,`Task not found: ${d}`);if(!aR(e.status))return await this._waitForTaskUpdate(d,b.signal),await c();if(aR(e.status)){let a=await this._taskStore.getTaskResult(d,b.sessionId);return this._clearTaskQueue(d),{...a,_meta:{...a._meta,[aQ.EV]:{taskId:d}}}}return await c()};return await c()}),this.setRequestHandler(aQ.zR,async(a,b)=>{try{let{tasks:c,nextCursor:d}=await this._taskStore.listTasks(a.params?.cursor,b.sessionId);return{tasks:c,nextCursor:d,_meta:{}}}catch(a){throw new aQ.Nh(aQ.O4.InvalidParams,`Failed to list tasks: ${a instanceof Error?a.message:String(a)}`)}}),this.setRequestHandler(aQ.gd,async(a,b)=>{try{let c=await this._taskStore.getTask(a.params.taskId,b.sessionId);if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,`Task not found: ${a.params.taskId}`);if(aR(c.status))throw new aQ.Nh(aQ.O4.InvalidParams,`Cannot cancel task in terminal status: ${c.status}`);await this._taskStore.updateTaskStatus(a.params.taskId,"cancelled","Client cancelled task execution.",b.sessionId),this._clearTaskQueue(a.params.taskId);let d=await this._taskStore.getTask(a.params.taskId,b.sessionId);if(!d)throw new aQ.Nh(aQ.O4.InvalidParams,`Task not found after cancellation: ${a.params.taskId}`);return{_meta:{},...d}}catch(a){if(a instanceof aQ.Nh)throw a;throw new aQ.Nh(aQ.O4.InvalidRequest,`Failed to cancel task: ${a instanceof Error?a.message:String(a)}`)}}))}async _oncancel(a){if(!a.params.requestId)return;let b=this._requestHandlerAbortControllers.get(a.params.requestId);b?.abort(a.params.reason)}_setupTimeout(a,b,c,d,e=!1){this._timeoutInfo.set(a,{timeoutId:setTimeout(d,b),startTime:Date.now(),timeout:b,maxTotalTimeout:c,resetTimeoutOnProgress:e,onTimeout:d})}_resetTimeout(a){let b=this._timeoutInfo.get(a);if(!b)return!1;let c=Date.now()-b.startTime;if(b.maxTotalTimeout&&c>=b.maxTotalTimeout)throw this._timeoutInfo.delete(a),aQ.Nh.fromError(aQ.O4.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:b.maxTotalTimeout,totalElapsed:c});return clearTimeout(b.timeoutId),b.timeoutId=setTimeout(b.onTimeout,b.timeout),!0}_cleanupTimeout(a){let b=this._timeoutInfo.get(a);b&&(clearTimeout(b.timeoutId),this._timeoutInfo.delete(a))}async connect(a){if(this._transport)throw Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=a;let b=this.transport?.onclose;this._transport.onclose=()=>{b?.(),this._onclose()};let c=this.transport?.onerror;this._transport.onerror=a=>{c?.(a),this._onerror(a)};let d=this._transport?.onmessage;this._transport.onmessage=(a,b)=>{d?.(a,b),(0,aQ.ig)(a)||(0,aQ.LW)(a)?this._onresponse(a):(0,aQ.vo)(a)?this._onrequest(a,b):(0,aQ.lg)(a)?this._onnotification(a):this._onerror(Error(`Unknown message type: ${JSON.stringify(a)}`))},await this._transport.start()}_onclose(){let a=this._responseHandlers;for(let a of(this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear(),this._requestHandlerAbortControllers.values()))a.abort();this._requestHandlerAbortControllers.clear();let b=aQ.Nh.fromError(aQ.O4.ConnectionClosed,"Connection closed");for(let c of(this._transport=void 0,this.onclose?.(),a.values()))c(b)}_onerror(a){this.onerror?.(a)}_onnotification(a){let b=this._notificationHandlers.get(a.method)??this.fallbackNotificationHandler;void 0!==b&&Promise.resolve().then(()=>b(a)).catch(a=>this._onerror(Error(`Uncaught error in notification handler: ${a}`)))}_onrequest(a,b){let c=this._requestHandlers.get(a.method)??this.fallbackRequestHandler,d=this._transport,e=a.params?._meta?.[aQ.EV]?.taskId;if(void 0===c){let b={jsonrpc:"2.0",id:a.id,error:{code:aQ.O4.MethodNotFound,message:"Method not found"}};e&&this._taskMessageQueue?this._enqueueTaskMessage(e,{type:"error",message:b,timestamp:Date.now()},d?.sessionId).catch(a=>this._onerror(Error(`Failed to enqueue error response: ${a}`))):d?.send(b).catch(a=>this._onerror(Error(`Failed to send an error response: ${a}`)));return}let f=new AbortController;this._requestHandlerAbortControllers.set(a.id,f);let g=(0,aQ.bZ)(a.params)?a.params.task:void 0,h=this._taskStore?this.requestTaskStore(a,d?.sessionId):void 0,i={signal:f.signal,sessionId:d?.sessionId,_meta:a.params?._meta,sendNotification:async b=>{if(f.signal.aborted)return;let c={relatedRequestId:a.id};e&&(c.relatedTask={taskId:e}),await this.notification(b,c)},sendRequest:async(b,c,d)=>{if(f.signal.aborted)throw new aQ.Nh(aQ.O4.ConnectionClosed,"Request was cancelled");let g={...d,relatedRequestId:a.id};e&&!g.relatedTask&&(g.relatedTask={taskId:e});let i=g.relatedTask?.taskId??e;return i&&h&&await h.updateTaskStatus(i,"input_required"),await this.request(b,c,g)},authInfo:b?.authInfo,requestId:a.id,requestInfo:b?.requestInfo,taskId:e,taskStore:h,taskRequestedTtl:g?.ttl,closeSSEStream:b?.closeSSEStream,closeStandaloneSSEStream:b?.closeStandaloneSSEStream};Promise.resolve().then(()=>{g&&this.assertTaskHandlerCapability(a.method)}).then(()=>c(a,i)).then(async b=>{if(f.signal.aborted)return;let c={result:b,jsonrpc:"2.0",id:a.id};e&&this._taskMessageQueue?await this._enqueueTaskMessage(e,{type:"response",message:c,timestamp:Date.now()},d?.sessionId):await d?.send(c)},async b=>{if(f.signal.aborted)return;let c={jsonrpc:"2.0",id:a.id,error:{code:Number.isSafeInteger(b.code)?b.code:aQ.O4.InternalError,message:b.message??"Internal error",...void 0!==b.data&&{data:b.data}}};e&&this._taskMessageQueue?await this._enqueueTaskMessage(e,{type:"error",message:c,timestamp:Date.now()},d?.sessionId):await d?.send(c)}).catch(a=>this._onerror(Error(`Failed to send response: ${a}`))).finally(()=>{this._requestHandlerAbortControllers.delete(a.id)})}_onprogress(a){let{progressToken:b,...c}=a.params,d=Number(b),e=this._progressHandlers.get(d);if(!e)return void this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(a)}`));let f=this._responseHandlers.get(d),g=this._timeoutInfo.get(d);if(g&&f&&g.resetTimeoutOnProgress)try{this._resetTimeout(d)}catch(a){this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),f(a);return}e(c)}_onresponse(a){let b=Number(a.id),c=this._requestResolvers.get(b);if(c){this._requestResolvers.delete(b),c((0,aQ.ig)(a)?a:new aQ.Nh(a.error.code,a.error.message,a.error.data));return}let d=this._responseHandlers.get(b);if(void 0===d)return void this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(a)}`));this._responseHandlers.delete(b),this._cleanupTimeout(b);let e=!1;if((0,aQ.ig)(a)&&a.result&&"object"==typeof a.result){let c=a.result;if(c.task&&"object"==typeof c.task){let a=c.task;"string"==typeof a.taskId&&(e=!0,this._taskProgressTokens.set(a.taskId,b))}}e||this._progressHandlers.delete(b),d((0,aQ.ig)(a)?a:aQ.Nh.fromError(a.error.code,a.error.message,a.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}async *requestStream(a,b,c){let d,{task:e}=c??{};if(!e){try{let d=await this.request(a,b,c);yield{type:"result",result:d}}catch(a){yield{type:"error",error:a instanceof aQ.Nh?a:new aQ.Nh(aQ.O4.InternalError,String(a))}}return}try{let e=await this.request(a,aQ.Mg,c);if(e.task)d=e.task.taskId,yield{type:"taskCreated",task:e.task};else throw new aQ.Nh(aQ.O4.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:d},c);if(yield{type:"taskStatus",task:a},aR(a.status)){if("completed"===a.status){let a=await this.getTaskResult({taskId:d},b,c);yield{type:"result",result:a}}else"failed"===a.status?yield{type:"error",error:new aQ.Nh(aQ.O4.InternalError,`Task ${d} failed`)}:"cancelled"===a.status&&(yield{type:"error",error:new aQ.Nh(aQ.O4.InternalError,`Task ${d} was cancelled`)});return}if("input_required"===a.status){let a=await this.getTaskResult({taskId:d},b,c);yield{type:"result",result:a};return}let e=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(a=>setTimeout(a,e)),c?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof aQ.Nh?a:new aQ.Nh(aQ.O4.InternalError,String(a))}}}request(a,b,c){let{relatedRequestId:d,resumptionToken:e,onresumptiontoken:f,task:g,relatedTask:h}=c??{};return new Promise((i,j)=>{let k=a=>{j(a)};if(!this._transport)return void k(Error("Not connected"));if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(a.method),g&&this.assertTaskCapability(a.method)}catch(a){k(a);return}c?.signal?.throwIfAborted();let l=this._requestMessageId++,m={...a,jsonrpc:"2.0",id:l};c?.onprogress&&(this._progressHandlers.set(l,c.onprogress),m.params={...a.params,_meta:{...a.params?._meta||{},progressToken:l}}),g&&(m.params={...m.params,task:g}),h&&(m.params={...m.params,_meta:{...m.params?._meta||{},[aQ.EV]:h}});let n=a=>{this._responseHandlers.delete(l),this._progressHandlers.delete(l),this._cleanupTimeout(l),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:l,reason:String(a)}},{relatedRequestId:d,resumptionToken:e,onresumptiontoken:f}).catch(a=>this._onerror(Error(`Failed to send cancellation: ${a}`))),j(a instanceof aQ.Nh?a:new aQ.Nh(aQ.O4.RequestTimeout,String(a)))};this._responseHandlers.set(l,a=>{if(!c?.signal?.aborted){if(a instanceof Error)return j(a);try{let c=aK(b,a.result);c.success?i(c.data):j(c.error)}catch(a){j(a)}}}),c?.signal?.addEventListener("abort",()=>{n(c?.signal?.reason)});let o=c?.timeout??6e4;this._setupTimeout(l,o,c?.maxTotalTimeout,()=>n(aQ.Nh.fromError(aQ.O4.RequestTimeout,"Request timed out",{timeout:o})),c?.resetTimeoutOnProgress??!1);let p=h?.taskId;if(p){let a=a=>{let b=this._responseHandlers.get(l);b?b(a):this._onerror(Error(`Response handler missing for side-channeled request ${l}`))};this._requestResolvers.set(l,a),this._enqueueTaskMessage(p,{type:"request",message:m,timestamp:Date.now()}).catch(a=>{this._cleanupTimeout(l),j(a)})}else this._transport.send(m,{relatedRequestId:d,resumptionToken:e,onresumptiontoken:f}).catch(a=>{this._cleanupTimeout(l),j(a)})})}async getTask(a,b){return this.request({method:"tasks/get",params:a},aQ.Sc,b)}async getTaskResult(a,b,c){return this.request({method:"tasks/result",params:a},b,c)}async listTasks(a,b){return this.request({method:"tasks/list",params:a},aQ.a5,b)}async cancelTask(a,b){return this.request({method:"tasks/cancel",params:a},aQ.gH,b)}async notification(a,b){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability(a.method);let c=b?.relatedTask?.taskId;if(c){let d={...a,jsonrpc:"2.0",params:{...a.params,_meta:{...a.params?._meta||{},[aQ.EV]:b.relatedTask}}};await this._enqueueTaskMessage(c,{type:"notification",message:d,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(a.method)&&!a.params&&!b?.relatedRequestId&&!b?.relatedTask){if(this._pendingDebouncedNotifications.has(a.method))return;this._pendingDebouncedNotifications.add(a.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(a.method),!this._transport)return;let c={...a,jsonrpc:"2.0"};b?.relatedTask&&(c={...c,params:{...c.params,_meta:{...c.params?._meta||{},[aQ.EV]:b.relatedTask}}}),this._transport?.send(c,b).catch(a=>this._onerror(a))});return}let d={...a,jsonrpc:"2.0"};b?.relatedTask&&(d={...d,params:{...d.params,_meta:{...d.params?._meta||{},[aQ.EV]:b.relatedTask}}}),await this._transport.send(d,b)}setRequestHandler(a,b){let c=bb(a);this.assertRequestHandlerCapability(c),this._requestHandlers.set(c,(c,d)=>Promise.resolve(b(bc(a,c),d)))}removeRequestHandler(a){this._requestHandlers.delete(a)}assertCanSetRequestHandler(a){if(this._requestHandlers.has(a))throw Error(`A request handler for ${a} already exists, which would be overridden`)}setNotificationHandler(a,b){let c=bb(a);this._notificationHandlers.set(c,c=>Promise.resolve(b(bc(a,c))))}removeNotificationHandler(a){this._notificationHandlers.delete(a)}_cleanupTaskProgressHandler(a){let b=this._taskProgressTokens.get(a);void 0!==b&&(this._progressHandlers.delete(b),this._taskProgressTokens.delete(a))}async _enqueueTaskMessage(a,b,c){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let d=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(a,b,c,d)}async _clearTaskQueue(a,b){if(this._taskMessageQueue){for(let c of(await this._taskMessageQueue.dequeueAll(a,b)))if("request"===c.type&&(0,aQ.vo)(c.message)){let b=c.message.id,d=this._requestResolvers.get(b);d?(d(new aQ.Nh(aQ.O4.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(b)):this._onerror(Error(`Resolver missing for request ${b} during task ${a} cleanup`))}}}async _waitForTaskUpdate(a,b){let c=this._options?.defaultTaskPollInterval??1e3;try{let b=await this._taskStore?.getTask(a);b?.pollInterval&&(c=b.pollInterval)}catch{}return new Promise((a,d)=>{if(b.aborted)return void d(new aQ.Nh(aQ.O4.InvalidRequest,"Request cancelled"));let e=setTimeout(a,c);b.addEventListener("abort",()=>{clearTimeout(e),d(new aQ.Nh(aQ.O4.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(a,b){let c=this._taskStore;if(!c)throw Error("No task store configured");return{createTask:async d=>{if(!a)throw Error("No request provided");return await c.createTask(d,a.id,{method:a.method,params:a.params},b)},getTask:async a=>{let d=await c.getTask(a,b);if(!d)throw new aQ.Nh(aQ.O4.InvalidParams,"Failed to retrieve task: Task not found");return d},storeTaskResult:async(a,d,e)=>{await c.storeTaskResult(a,d,e,b);let f=await c.getTask(a,b);if(f){let b=aQ.ki.parse({method:"notifications/tasks/status",params:f});await this.notification(b),aR(f.status)&&this._cleanupTaskProgressHandler(a)}},getTaskResult:a=>c.getTaskResult(a,b),updateTaskStatus:async(a,d,e)=>{let f=await c.getTask(a,b);if(!f)throw new aQ.Nh(aQ.O4.InvalidParams,`Task "${a}" not found - it may have been cleaned up`);if(aR(f.status))throw new aQ.Nh(aQ.O4.InvalidParams,`Cannot update task "${a}" from terminal status "${f.status}" to "${d}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await c.updateTaskStatus(a,d,e,b);let g=await c.getTask(a,b);if(g){let b=aQ.ki.parse({method:"notifications/tasks/status",params:g});await this.notification(b),aR(g.status)&&this._cleanupTaskProgressHandler(a)}},listTasks:a=>c.listTasks(a,b)}}}function be(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}var bf=c(13370),bg=c(3395);class bh{constructor(a){this._ajv=a??function(){let a=new bf({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return bg(a),a}()}getValidator(a){let b="$id"in a&&"string"==typeof a.$id?this._ajv.getSchema(a.$id)??this._ajv.compile(a):this._ajv.compile(a);return a=>b(a)?{valid:!0,data:a,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(b.errors)}}}class bi{constructor(a){this._server=a}requestStream(a,b,c){return this._server.requestStream(a,b,c)}async getTask(a,b){return this._server.getTask({taskId:a},b)}async getTaskResult(a,b,c){return this._server.getTaskResult({taskId:a},b,c)}async listTasks(a,b){return this._server.listTasks(a?{cursor:a}:void 0,b)}async cancelTask(a,b){return this._server.cancelTask({taskId:a},b)}}class bj extends bd{constructor(a,b){super(b),this._serverInfo=a,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(aQ.FP.options.map((a,b)=>[a,b])),this.isMessageIgnored=(a,b)=>{let c=this._loggingLevels.get(b);return!!c&&this.LOG_LEVEL_SEVERITY.get(a)<this.LOG_LEVEL_SEVERITY.get(c)},this._capabilities=b?.capabilities??{},this._instructions=b?.instructions,this._jsonSchemaValidator=b?.jsonSchemaValidator??new bh,this.setRequestHandler(aQ.rk,a=>this._oninitialize(a)),this.setNotificationHandler(aQ.ZC,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(aQ.b_,async(a,b)=>{let c=b.sessionId||b.requestInfo?.headers["mcp-session-id"]||void 0,{level:d}=a.params,e=aQ.FP.safeParse(d);return e.success&&this._loggingLevels.set(c,e.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new bi(this)}),this._experimental}registerCapabilities(a){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=function(a,b){let c={...a};for(let a in b){let d=b[a];if(void 0===d)continue;let e=c[a];be(e)&&be(d)?c[a]={...e,...d}:c[a]=d}return c}(this._capabilities,a)}setRequestHandler(a,b){let c,d=aM(a),e=d?.method;if(!e)throw Error("Schema is missing a method literal");if(aI(e)){let a=e._zod?.def;c=a?.value??e.value}else{let a=e._def;c=a?.value??e.value}if("string"!=typeof c)throw Error("Schema method literal must be a string");if("tools/call"===c){let c=async(a,c)=>{let d=aK(aQ.FT,a);if(!d.success){let a=d.error instanceof Error?d.error.message:String(d.error);throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid tools/call request: ${a}`)}let{params:e}=d.data,f=await Promise.resolve(b(a,c));if(e.task){let a=aK(aQ.Mg,f);if(!a.success){let b=a.error instanceof Error?a.error.message:String(a.error);throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid task creation result: ${b}`)}return a.data}let g=aK(aQ.TF,f);if(!g.success){let a=g.error instanceof Error?g.error.message:String(g.error);throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid tools/call result: ${a}`)}return g.data};return super.setRequestHandler(a,c)}return super.setRequestHandler(a,b)}assertCapabilityForMethod(a){switch(a){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${a})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${a})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${a})`)}}assertNotificationCapability(a){switch(a){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${a})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${a})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${a})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${a})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${a})`)}}assertRequestHandlerCapability(a){if(this._capabilities)switch(a){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${a})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${a})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${a})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${a})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${a})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${a})`)}}assertTaskCapability(a){var b=this._clientCapabilities?.tasks?.requests,c="Client";if(!b)throw Error(`${c} does not support task creation (required for ${a})`);switch(a){case"sampling/createMessage":if(!b.sampling?.createMessage)throw Error(`${c} does not support task creation for sampling/createMessage (required for ${a})`);break;case"elicitation/create":if(!b.elicitation?.create)throw Error(`${c} does not support task creation for elicitation/create (required for ${a})`)}}assertTaskHandlerCapability(a){if(this._capabilities){var b=this._capabilities.tasks?.requests,c="Server";if(!b)throw Error(`${c} does not support task creation (required for ${a})`);if("tools/call"===a&&!b.tools?.call)throw Error(`${c} does not support task creation for tools/call (required for ${a})`)}}async _oninitialize(a){let b=a.params.protocolVersion;return this._clientCapabilities=a.params.capabilities,this._clientVersion=a.params.clientInfo,{protocolVersion:aQ.Iu.includes(b)?b:aQ.aE,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},aQ.wR)}async createMessage(a,b){if((a.tools||a.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.");if(a.messages.length>0){let b=a.messages[a.messages.length-1],c=Array.isArray(b.content)?b.content:[b.content],d=c.some(a=>"tool_result"===a.type),e=a.messages.length>1?a.messages[a.messages.length-2]:void 0,f=e?Array.isArray(e.content)?e.content:[e.content]:[],g=f.some(a=>"tool_use"===a.type);if(d){if(c.some(a=>"tool_result"!==a.type))throw Error("The last message must contain only tool_result content if any is present");if(!g)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(g){let a=new Set(f.filter(a=>"tool_use"===a.type).map(a=>a.id)),b=new Set(c.filter(a=>"tool_result"===a.type).map(a=>a.toolUseId));if(a.size!==b.size||![...a].every(a=>b.has(a)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return a.tools?this.request({method:"sampling/createMessage",params:a},aQ.TI,b):this.request({method:"sampling/createMessage",params:a},aQ.K1,b)}async elicitInput(a,b){switch(a.mode??"form"){case"url":if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");return this.request({method:"elicitation/create",params:a},aQ.n_,b);case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let c="form"===a.mode?a:{...a,mode:"form"},d=await this.request({method:"elicitation/create",params:c},aQ.n_,b);if("accept"===d.action&&d.content&&c.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(c.requestedSchema)(d.content);if(!a.valid)throw new aQ.Nh(aQ.O4.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(a){if(a instanceof aQ.Nh)throw a;throw new aQ.Nh(aQ.O4.InternalError,`Error validating elicitation response: ${a instanceof Error?a.message:String(a)}`)}return d}}}createElicitationCompletionNotifier(a,b){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:a}},b)}async listRoots(a,b){return this.request({method:"roots/list",params:a},aQ.Cs,b)}async sendLoggingMessage(a,b){if(this._capabilities.logging&&!this.isMessageIgnored(a.level,b))return this.notification({method:"notifications/message",params:a})}async sendResourceUpdated(a){return this.notification({method:"notifications/resources/updated",params:a})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}let bk=Symbol.for("mcp.completable");function bl(a){return!!a&&"object"==typeof a&&bk in a}(aB||(aB={})).Completable="McpCompletable";let bm=/^[A-Za-z0-9._-]{1,128}$/;function bn(a){let b=function(a){let b=[];if(0===a.length)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(a.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${a.length})`]};if(a.includes(" ")&&b.push("Tool name contains spaces, which may cause parsing issues"),a.includes(",")&&b.push("Tool name contains commas, which may cause parsing issues"),(a.startsWith("-")||a.endsWith("-"))&&b.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(a.startsWith(".")||a.endsWith("."))&&b.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!bm.test(a)){let c=a.split("").filter(a=>!/[A-Za-z0-9._-]/.test(a)).filter((a,b,c)=>c.indexOf(a)===b);return b.push(`Tool name contains invalid characters: ${c.map(a=>`"${a}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:b}}return{isValid:!0,warnings:b}}(a);var c=b.warnings;if(c.length>0){for(let b of(console.warn(`Tool name validation warning for "${a}":`),c))console.warn(` - ${b}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}return b.isValid}class bo{constructor(a){this._mcpServer=a}registerToolTask(a,b,c){let d={taskSupport:"required",...b.execution};if("forbidden"===d.taskSupport)throw Error(`Cannot register task-based tool '${a}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(a,b.title,b.description,b.inputSchema,b.outputSchema,b.annotations,d,b._meta,c)}}var bp=c(77258);class bq{constructor(a,b){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new bj(a,b)}get experimental(){return this._experimental||(this._experimental={tasks:new bo(this)}),this._experimental}async connect(a){return await this.server.connect(a)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(bv(aQ.gW)),this.server.assertCanSetRequestHandler(bv(aQ.FT)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(aQ.gW,()=>({tools:Object.entries(this._registeredTools).filter(([,a])=>a.enabled).map(([a,b])=>{let c={name:a,title:b.title,description:b.description,inputSchema:(()=>{let a=aN(b.inputSchema);return a?ba(a,{strictUnions:!0,pipeStrategy:"input"}):br})(),annotations:b.annotations,execution:b.execution,_meta:b._meta};if(b.outputSchema){let a=aN(b.outputSchema);a&&(c.outputSchema=ba(a,{strictUnions:!0,pipeStrategy:"output"}))}return c})})),this.server.setRequestHandler(aQ.FT,async(a,b)=>{try{let c=this._registeredTools[a.params.name];if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,`Tool ${a.params.name} not found`);if(!c.enabled)throw new aQ.Nh(aQ.O4.InvalidParams,`Tool ${a.params.name} disabled`);let d=!!a.params.task,e=c.execution?.taskSupport,f="createTask"in c.handler;if(("required"===e||"optional"===e)&&!f)throw new aQ.Nh(aQ.O4.InternalError,`Tool ${a.params.name} has taskSupport '${e}' but was not registered with registerToolTask`);if("required"===e&&!d)throw new aQ.Nh(aQ.O4.MethodNotFound,`Tool ${a.params.name} requires task augmentation (taskSupport: 'required')`);if("optional"===e&&!d&&f)return await this.handleAutomaticTaskPolling(c,a,b);let g=await this.validateToolInput(c,a.params.arguments,a.params.name),h=await this.executeToolHandler(c,g,b);if(d)return h;return await this.validateToolOutput(c,h,a.params.name),h}catch(a){if(a instanceof aQ.Nh&&a.code===aQ.O4.UrlElicitationRequired)throw a;return this.createToolError(a instanceof Error?a.message:String(a))}}),this._toolHandlersInitialized=!0)}createToolError(a){return{content:[{type:"text",text:a}],isError:!0}}async validateToolInput(a,b,c){if(!a.inputSchema)return;let d=aN(a.inputSchema)??a.inputSchema,e=await aL(d,b);if(!e.success){let a=aO("error"in e?e.error:"Unknown error");throw new aQ.Nh(aQ.O4.InvalidParams,`Input validation error: Invalid arguments for tool ${c}: ${a}`)}return e.data}async validateToolOutput(a,b,c){if(!a.outputSchema||!("content"in b)||b.isError)return;if(!b.structuredContent)throw new aQ.Nh(aQ.O4.InvalidParams,`Output validation error: Tool ${c} has an output schema but no structured content was provided`);let d=aN(a.outputSchema),e=await aL(d,b.structuredContent);if(!e.success){let a=aO("error"in e?e.error:"Unknown error");throw new aQ.Nh(aQ.O4.InvalidParams,`Output validation error: Invalid structured content for tool ${c}: ${a}`)}}async executeToolHandler(a,b,c){let d=a.handler;if("createTask"in d){if(!c.taskStore)throw Error("No task store provided.");let e={...c,taskStore:c.taskStore};return a.inputSchema?await Promise.resolve(d.createTask(b,e)):await Promise.resolve(d.createTask(e))}return a.inputSchema?await Promise.resolve(d(b,c)):await Promise.resolve(d(c))}async handleAutomaticTaskPolling(a,b,c){if(!c.taskStore)throw Error("No task store provided for task-capable tool.");let d=await this.validateToolInput(a,b.params.arguments,b.params.name),e=a.handler,f={...c,taskStore:c.taskStore},g=d?await Promise.resolve(e.createTask(d,f)):await Promise.resolve(e.createTask(f)),h=g.task.taskId,i=g.task,j=i.pollInterval??5e3;for(;"completed"!==i.status&&"failed"!==i.status&&"cancelled"!==i.status;){await new Promise(a=>setTimeout(a,j));let a=await c.taskStore.getTask(h);if(!a)throw new aQ.Nh(aQ.O4.InternalError,`Task ${h} not found during polling`);i=a}return await c.taskStore.getTaskResult(h)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(bv(aQ.iK)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(aQ.iK,async a=>{switch(a.params.ref.type){case"ref/prompt":return(0,aQ.uv)(a),this.handlePromptCompletion(a,a.params.ref);case"ref/resource":return(0,aQ.X6)(a),this.handleResourceCompletion(a,a.params.ref);default:throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid completion reference: ${a.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(a,b){let c=this._registeredPrompts[b.name];if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,`Prompt ${b.name} not found`);if(!c.enabled)throw new aQ.Nh(aQ.O4.InvalidParams,`Prompt ${b.name} disabled`);if(!c.argsSchema)return bx;let d=aM(c.argsSchema),e=d?.[a.params.argument.name];if(!bl(e))return bx;let f=function(a){let b=a[bk];return b?.complete}(e);return f?bw(await f(a.params.argument.value,a.params.context)):bx}async handleResourceCompletion(a,b){let c=Object.values(this._registeredResourceTemplates).find(a=>a.resourceTemplate.uriTemplate.toString()===b.uri);if(!c){if(this._registeredResources[b.uri])return bx;throw new aQ.Nh(aQ.O4.InvalidParams,`Resource template ${a.params.ref.uri} not found`)}let d=c.resourceTemplate.completeCallback(a.params.argument.name);return d?bw(await d(a.params.argument.value,a.params.context)):bx}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(bv(aQ.OI)),this.server.assertCanSetRequestHandler(bv(aQ.s)),this.server.assertCanSetRequestHandler(bv(aQ.R6)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(aQ.OI,async(a,b)=>{let c=Object.entries(this._registeredResources).filter(([a,b])=>b.enabled).map(([a,b])=>({uri:a,name:b.name,...b.metadata})),d=[];for(let a of Object.values(this._registeredResourceTemplates))if(a.resourceTemplate.listCallback)for(let c of(await a.resourceTemplate.listCallback(b)).resources)d.push({...a.metadata,...c});return{resources:[...c,...d]}}),this.server.setRequestHandler(aQ.s,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([a,b])=>({name:a,uriTemplate:b.resourceTemplate.uriTemplate.toString(),...b.metadata}))})),this.server.setRequestHandler(aQ.R6,async(a,b)=>{let c=new URL(a.params.uri),d=this._registeredResources[c.toString()];if(d){if(!d.enabled)throw new aQ.Nh(aQ.O4.InvalidParams,`Resource ${c} disabled`);return d.readCallback(c,b)}for(let a of Object.values(this._registeredResourceTemplates)){let d=a.resourceTemplate.uriTemplate.match(c.toString());if(d)return a.readCallback(c,d,b)}throw new aQ.Nh(aQ.O4.InvalidParams,`Resource ${c} not found`)}),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(bv(aQ.Qq)),this.server.assertCanSetRequestHandler(bv(aQ.$p)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(aQ.Qq,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,a])=>a.enabled).map(([a,b])=>({name:a,title:b.title,description:b.description,arguments:b.argsSchema?function(a){let b=aM(a);return b?Object.entries(b).map(([a,b])=>({name:a,description:b.description,required:!(aI(b)?b._zod?.def?.type==="optional":"function"==typeof b.isOptional?b.isOptional():b._def?.typeName==="ZodOptional")})):[]}(b.argsSchema):void 0}))})),this.server.setRequestHandler(aQ.$p,async(a,b)=>{let c=this._registeredPrompts[a.params.name];if(!c)throw new aQ.Nh(aQ.O4.InvalidParams,`Prompt ${a.params.name} not found`);if(!c.enabled)throw new aQ.Nh(aQ.O4.InvalidParams,`Prompt ${a.params.name} disabled`);if(c.argsSchema){let d=aN(c.argsSchema),e=await aL(d,a.params.arguments);if(!e.success){let b=aO("error"in e?e.error:"Unknown error");throw new aQ.Nh(aQ.O4.InvalidParams,`Invalid arguments for prompt ${a.params.name}: ${b}`)}let f=e.data,g=c.callback;return await Promise.resolve(g(f,b))}{let a=c.callback;return await Promise.resolve(a(b))}}),this._promptHandlersInitialized=!0)}resource(a,b,...c){let d;"object"==typeof c[0]&&(d=c.shift());let e=c[0];if("string"==typeof b){if(this._registeredResources[b])throw Error(`Resource ${b} is already registered`);let c=this._createRegisteredResource(a,void 0,b,d,e);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),c}{if(this._registeredResourceTemplates[a])throw Error(`Resource template ${a} is already registered`);let c=this._createRegisteredResourceTemplate(a,void 0,b,d,e);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),c}}registerResource(a,b,c,d){if("string"==typeof b){if(this._registeredResources[b])throw Error(`Resource ${b} is already registered`);let e=this._createRegisteredResource(a,c.title,b,c,d);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),e}{if(this._registeredResourceTemplates[a])throw Error(`Resource template ${a} is already registered`);let e=this._createRegisteredResourceTemplate(a,c.title,b,c,d);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),e}}_createRegisteredResource(a,b,c,d,e){let f={name:a,title:b,metadata:d,readCallback:e,enabled:!0,disable:()=>f.update({enabled:!1}),enable:()=>f.update({enabled:!0}),remove:()=>f.update({uri:null}),update:a=>{void 0!==a.uri&&a.uri!==c&&(delete this._registeredResources[c],a.uri&&(this._registeredResources[a.uri]=f)),void 0!==a.name&&(f.name=a.name),void 0!==a.title&&(f.title=a.title),void 0!==a.metadata&&(f.metadata=a.metadata),void 0!==a.callback&&(f.readCallback=a.callback),void 0!==a.enabled&&(f.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResources[c]=f,f}_createRegisteredResourceTemplate(a,b,c,d,e){let f={resourceTemplate:c,title:b,metadata:d,readCallback:e,enabled:!0,disable:()=>f.update({enabled:!1}),enable:()=>f.update({enabled:!0}),remove:()=>f.update({name:null}),update:b=>{void 0!==b.name&&b.name!==a&&(delete this._registeredResourceTemplates[a],b.name&&(this._registeredResourceTemplates[b.name]=f)),void 0!==b.title&&(f.title=b.title),void 0!==b.template&&(f.resourceTemplate=b.template),void 0!==b.metadata&&(f.metadata=b.metadata),void 0!==b.callback&&(f.readCallback=b.callback),void 0!==b.enabled&&(f.enabled=b.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[a]=f;let g=c.uriTemplate.variableNames;return Array.isArray(g)&&g.some(a=>!!c.completeCallback(a))&&this.setCompletionRequestHandler(),f}_createRegisteredPrompt(a,b,c,d,e){let f={title:b,description:c,argsSchema:void 0===d?void 0:aJ(d),callback:e,enabled:!0,disable:()=>f.update({enabled:!1}),enable:()=>f.update({enabled:!0}),remove:()=>f.update({name:null}),update:b=>{void 0!==b.name&&b.name!==a&&(delete this._registeredPrompts[a],b.name&&(this._registeredPrompts[b.name]=f)),void 0!==b.title&&(f.title=b.title),void 0!==b.description&&(f.description=b.description),void 0!==b.argsSchema&&(f.argsSchema=aJ(b.argsSchema)),void 0!==b.callback&&(f.callback=b.callback),void 0!==b.enabled&&(f.enabled=b.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[a]=f,d&&Object.values(d).some(a=>bl(a instanceof bp.IiU?a._def?.innerType:a))&&this.setCompletionRequestHandler(),f}_createRegisteredTool(a,b,c,d,e,f,g,h,i){bn(a);let j={title:b,description:c,inputSchema:bu(d),outputSchema:bu(e),annotations:f,execution:g,_meta:h,handler:i,enabled:!0,disable:()=>j.update({enabled:!1}),enable:()=>j.update({enabled:!0}),remove:()=>j.update({name:null}),update:b=>{void 0!==b.name&&b.name!==a&&("string"==typeof b.name&&bn(b.name),delete this._registeredTools[a],b.name&&(this._registeredTools[b.name]=j)),void 0!==b.title&&(j.title=b.title),void 0!==b.description&&(j.description=b.description),void 0!==b.paramsSchema&&(j.inputSchema=aJ(b.paramsSchema)),void 0!==b.outputSchema&&(j.outputSchema=aJ(b.outputSchema)),void 0!==b.callback&&(j.handler=b.callback),void 0!==b.annotations&&(j.annotations=b.annotations),void 0!==b._meta&&(j._meta=b._meta),void 0!==b.enabled&&(j.enabled=b.enabled),this.sendToolListChanged()}};return this._registeredTools[a]=j,this.setToolRequestHandlers(),this.sendToolListChanged(),j}tool(a,...b){let c,d,e,f;if(this._registeredTools[a])throw Error(`Tool ${a} is already registered`);if("string"==typeof b[0]&&(c=b.shift()),b.length>1){let a=b[0];bt(a)?(d=b.shift(),b.length>1&&"object"==typeof b[0]&&null!==b[0]&&!bt(b[0])&&(f=b.shift())):"object"==typeof a&&null!==a&&(f=b.shift())}let g=b[0];return this._createRegisteredTool(a,void 0,c,d,e,f,{taskSupport:"forbidden"},void 0,g)}registerTool(a,b,c){if(this._registeredTools[a])throw Error(`Tool ${a} is already registered`);let{title:d,description:e,inputSchema:f,outputSchema:g,annotations:h,_meta:i}=b;return this._createRegisteredTool(a,d,e,f,g,h,{taskSupport:"forbidden"},i,c)}prompt(a,...b){let c,d;if(this._registeredPrompts[a])throw Error(`Prompt ${a} is already registered`);"string"==typeof b[0]&&(c=b.shift()),b.length>1&&(d=b.shift());let e=b[0],f=this._createRegisteredPrompt(a,void 0,c,d,e);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),f}registerPrompt(a,b,c){if(this._registeredPrompts[a])throw Error(`Prompt ${a} is already registered`);let{title:d,description:e,argsSchema:f}=b,g=this._createRegisteredPrompt(a,d,e,f,c);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),g}isConnected(){return void 0!==this.server.transport}async sendLoggingMessage(a,b){return this.server.sendLoggingMessage(a,b)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}}let br={type:"object",properties:{}};function bs(a){return null!==a&&"object"==typeof a&&"parse"in a&&"function"==typeof a.parse&&"safeParse"in a&&"function"==typeof a.safeParse}function bt(a){return"object"==typeof a&&null!==a&&!("_def"in a||"_zod"in a||bs(a))&&(0===Object.keys(a).length||Object.values(a).some(bs))}function bu(a){if(a)return bt(a)?aJ(a):a}function bv(a){let b=aM(a),c=b?.method;if(!c)throw Error("Schema is missing a method literal");let d=aP(c);if("string"==typeof d)return d;throw Error("Schema method literal must be a string")}function bw(a){return{completion:{values:a.slice(0,100),total:a.length,hasMore:a.length>100}}}let bx={completion:{values:[],hasMore:!1}}},29020:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(20636),e=c(41016),f=c(16674),g=c(352),h=c(37085);b.default=[d.default,e.default,(0,f.default)(),g.default,h.metadataVocabulary,h.contentVocabulary]},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29563:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235),f=c(34481);b.default={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,d.str)`must NOT have ${"maxLength"===a?"more":"fewer"} than ${b} characters`,params:({schemaCode:a})=>(0,d._)`{limit: ${a}}`},code(a){let{keyword:b,data:c,schemaCode:g,it:h}=a,i="maxLength"===b?d.operators.GT:d.operators.LT,j=!1===h.opts.unicode?(0,d._)`${c}.length`:(0,d._)`${(0,e.useFunc)(a.gen,f.default)}(${c})`;a.fail$data((0,d._)`${j} ${i} ${g}`)}}},29799:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(1171);class e extends Error{constructor(a,b,c,e){super(e||`can't resolve reference ${c} from id ${b}`),this.missingRef=(0,d.resolveUrl)(a,b,c),this.missingSchema=(0,d.normalizeId)((0,d.getFullPath)(a,this.missingRef))}}b.default=e},30144:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getRules=b.isJSONType=void 0;let c=new Set(["string","number","integer","boolean","null","object","array"]);b.isJSONType=function(a){return"string"==typeof a&&c.has(a)},b.getRules=function(){let a={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...a,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},a.number,a.string,a.array,a.object],post:{rules:[]},all:{},keywords:{}}}},31079:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={data:new d.Name("data"),valCxt:new d.Name("valCxt"),instancePath:new d.Name("instancePath"),parentData:new d.Name("parentData"),parentDataProperty:new d.Name("parentDataProperty"),rootData:new d.Name("rootData"),dynamicAnchors:new d.Name("dynamicAnchors"),vErrors:new d.Name("vErrors"),errors:new d.Name("errors"),this:new d.Name("this"),self:new d.Name("self"),scope:new d.Name("scope"),json:new d.Name("json"),jsonPos:new d.Name("jsonPos"),jsonLen:new d.Name("jsonLen"),jsonPart:new d.Name("jsonPart")}},31270:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{q:()=>r});var e=c(77258),f=c(62653),g=c(90136),h=c(8777),i=c(88437),j=c(54349),k=c(63089),l=c(37943),m=c(53235),n=c(90494),o=c(52618),p=c(911),q=a([f,g,h,i,j,k,l,m,n,o]);function r(a,b){a.registerTool("synapse_get_research_project",{description:"Get research project details and context",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID")})},async({researchProjectUuid:a})=>{let c=await f.j5(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify(c,null,2)}]}:{content:[{type:"text",text:"Research Project not found"}],isError:!0}}),a.registerTool("synapse_list_research_projects",{description:"List all research projects for the current company. Returns projects with counts of research questions, documents, experiment runs, and experiment designs.",inputSchema:e.Ikc({page:e.aig().default(1).describe("Page number"),pageSize:e.aig().default(20).describe("Items per page")})},async({page:a,pageSize:c})=>{let d=await f.AM({companyUuid:b.companyUuid,skip:(a-1)*c,take:c});return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}),a.registerTool("synapse_get_research_questions",{description:"Get the list of Research Questions for a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),status:e.YjP().optional().describe("Filter by status: open, elaborating, proposal_created, completed, closed"),page:e.aig().optional().default(1).describe("Page number"),pageSize:e.aig().optional().default(20).describe("Items per page")})},async({researchProjectUuid:a,status:c,page:d=1,pageSize:e=20})=>{if(!await f.j5(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let{researchQuestions:h,total:i}=await g.vp({companyUuid:b.companyUuid,researchProjectUuid:a,skip:(d-1)*e,take:e,status:c});return{content:[{type:"text",text:JSON.stringify({researchQuestions:h,total:i,page:d,pageSize:e},null,2)}]}}),a.registerTool("synapse_get_documents",{description:"Get the list of Documents for a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),type:e.YjP().optional().describe("Filter by type: prd, tech_design, adr, etc."),page:e.aig().optional().default(1),pageSize:e.aig().optional().default(20)})},async({researchProjectUuid:a,type:c,page:d=1,pageSize:e=20})=>{if(!await f.j5(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let{documents:g,total:i}=await h.lC({companyUuid:b.companyUuid,researchProjectUuid:a,skip:(d-1)*e,take:e,type:c});return{content:[{type:"text",text:JSON.stringify({documents:g,total:i,page:d,pageSize:e},null,2)}]}}),a.registerTool("synapse_get_document",{description:"Get the detailed content of a single Document",inputSchema:e.Ikc({documentUuid:e.YjP().describe("Document UUID")})},async({documentUuid:a})=>{let c=await h.YE(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify(c,null,2)}]}:{content:[{type:"text",text:"Document not found"}],isError:!0}}),a.registerTool("synapse_get_activity",{description:"Get the activity stream for a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),page:e.aig().optional().default(1),pageSize:e.aig().optional().default(50)})},async({researchProjectUuid:a,page:c=1,pageSize:d=50})=>{if(!await f.j5(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let{activities:e,total:g}=await i.s3({companyUuid:b.companyUuid,researchProjectUuid:a,skip:(c-1)*d,take:d});return{content:[{type:"text",text:JSON.stringify({activities:e,total:g,page:c,pageSize:d},null,2)}]}}),a.registerTool("synapse_add_comment",{description:"Add a comment to a Research Question/Experiment/Experiment Design/Experiment Run/Document",inputSchema:e.Ikc({targetType:e.k5n(["research_question","experiment","experiment_design","experiment_run","document"]).describe("Target type"),targetUuid:e.YjP().describe("Target UUID"),content:e.YjP().describe("Comment content")})},async({targetType:a,targetUuid:c,content:d})=>{try{let e=await j.eT({companyUuid:b.companyUuid,targetType:a,targetUuid:c,content:d,authorType:"agent",authorUuid:b.actorUuid}),f=await j.Hu(a,c);return f&&await i.E1({companyUuid:b.companyUuid,researchProjectUuid:f,targetType:a,targetUuid:c,actorType:"agent",actorUuid:b.actorUuid,action:"comment_added"}),{content:[{type:"text",text:JSON.stringify({uuid:e.uuid,targetType:a,targetUuid:c},null,2)}]}}catch(b){if(b instanceof Error&&b.message.includes("not found"))return{content:[{type:"text",text:`${a} not found`}],isError:!0};throw b}}),a.registerTool("synapse_checkin",{description:"Agent check-in. Returns agent identity (including owner/master info), roles, assigned work, and pending counts. Recommended at session start.",inputSchema:e.Ikc({})},async()=>{let a=await o.prisma.agent.update({where:{uuid:b.actorUuid},data:{lastActiveAt:new Date},select:{uuid:!0,name:!0,roles:!0,type:!0,persona:!0,systemPrompt:!0,ownerUuid:!0,owner:{select:{uuid:!0,name:!0,email:!0}}}});p.B.emitChange({companyUuid:b.companyUuid,researchProjectUuid:"",entityType:"agent_session",entityUuid:a.uuid,action:"updated",actorUuid:b.actorUuid});let{researchQuestions:c,experimentRuns:d}=await k.j(b,b.researchProjectUuids),e=await o.prisma.experiment.findMany({where:{companyUuid:b.companyUuid,assigneeUuid:b.actorUuid,status:{in:["pending_start","in_progress"]},...b.researchProjectUuids&&b.researchProjectUuids.length>0?{researchProjectUuid:{in:b.researchProjectUuids}}:{}},select:{uuid:!0,title:!0,status:!0,researchProject:{select:{uuid:!0,name:!0}}},orderBy:{createdAt:"asc"}}),f=await o.prisma.researchProject.findMany({where:{companyUuid:b.companyUuid},select:{uuid:!0,name:!0,description:!0,deepResearchDocUuid:!0,researchQuestions:{select:{uuid:!0,title:!0,status:!0},orderBy:{createdAt:"asc"}},_count:{select:{relatedWorks:!0}}},orderBy:{updatedAt:"desc"}}),g={};if(f.length>0){let a=f.map(a=>a.uuid);for(let c of(await o.prisma.experiment.groupBy({by:["researchProjectUuid","status"],where:{companyUuid:b.companyUuid,researchProjectUuid:{in:a}},_count:!0})))g[c.researchProjectUuid]||(g[c.researchProjectUuid]={}),g[c.researchProjectUuid][c.status]=c._count}let h=await l.$M(b.companyUuid,b.type,b.actorUuid),i={research_lead:`You are an experienced Research Lead Agent. Your responsibilities are:
6
6
  - Analyze user requirements, distill core research questions
7
7
  - Transform vague ideas into clear experiment designs
8
8
  - Break down experiment runs appropriately, estimate compute budget (in agent hours)
@@ -18,7 +18,7 @@ Work style: pragmatic, detail-oriented, strong communicator`,researcher:`You are
18
18
  Work style: rigorous, efficient, quality-focused`},j=a.persona;!j&&a.roles.length>0&&(j=i[a.roles[0]]||null);let m={checkinTime:new Date().toISOString(),agent:{uuid:a.uuid,name:a.name,roles:a.roles,type:a.type,persona:j,systemPrompt:a.systemPrompt,owner:a.owner?{uuid:a.owner.uuid,name:a.owner.name,email:a.owner.email}:null},assignments:{experiments:e.map(a=>({uuid:a.uuid,title:a.title,status:a.status,projectUuid:a.researchProject.uuid,projectName:a.researchProject.name})),researchQuestions:c.filter(a=>["assigned","in_progress"].includes(a.status)),experimentRuns:d.filter(a=>["assigned","in_progress"].includes(a.status))},pending:{researchQuestionsCount:c.length,experimentRunsCount:d.length},notifications:{unreadCount:h},projects:f.map(a=>({uuid:a.uuid,name:a.name,description:a.description,relatedWorksCount:a._count.relatedWorks,deepResearchExists:!!a.deepResearchDocUuid,researchQuestions:a.researchQuestions.map(a=>({uuid:a.uuid,title:a.title,status:a.status})),experimentCounts:g[a.uuid]||{}}))};return{content:[{type:"text",text:JSON.stringify(m,null,2)}]}}),a.registerTool("synapse_get_available_research_questions",{description:"Get Research Questions available to claim in a research project (status=open)",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID")})},async({researchProjectUuid:a})=>{if(!await f.j5(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let{researchQuestions:c}=await k.m(b.companyUuid,a,!0,!1);return{content:[{type:"text",text:JSON.stringify({researchQuestions:c},null,2)}]}}),a.registerTool("synapse_get_research_question",{description:"Get detailed information for a single Research Question",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>{let c=await g.ok(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify(c,null,2)}]}:{content:[{type:"text",text:"Research Question not found"}],isError:!0}}),a.registerTool("synapse_get_comments",{description:"Get the list of comments for a Research Question/Experiment/Experiment Design/Experiment Run/Document",inputSchema:e.Ikc({targetType:e.k5n(["research_question","experiment","experiment_design","experiment_run","document"]).describe("Target type"),targetUuid:e.YjP().describe("Target UUID"),page:e.aig().optional().default(1).describe("Page number"),pageSize:e.aig().optional().default(20).describe("Items per page")})},async({targetType:a,targetUuid:c,page:d=1,pageSize:e=20})=>{let{comments:f,total:g}=await j.fg({companyUuid:b.companyUuid,targetType:a,targetUuid:c,skip:(d-1)*e,take:e});return{content:[{type:"text",text:JSON.stringify({comments:f,total:g,page:d,pageSize:e},null,2)}]}}),a.registerTool("synapse_get_notifications",{description:"Get the list of notifications for the current Agent. By default, fetching unread notifications automatically marks them as read. Set autoMarkRead=false to keep them unread.",inputSchema:e.Ikc({status:e.k5n(["unread","read","all"]).default("unread").optional().describe("Filter by status"),limit:e.aig().default(20).optional().describe("Items per page"),offset:e.aig().default(0).optional().describe("Offset"),autoMarkRead:e.zMY().default(!0).optional().describe("Automatically mark fetched unread notifications as read (default: true)")})},async a=>{let c=a.status??"unread",d=await l.p_({companyUuid:b.companyUuid,recipientType:b.type,recipientUuid:b.actorUuid,readFilter:"unread"===c?"unread":"read"===c?"read":"all",skip:a.offset??0,take:a.limit??20});if((a.autoMarkRead??!0)&&"unread"===c&&d.notifications?.length>0){let a=d.notifications.filter(a=>!a.readAt).map(a=>a.uuid);a.length>0&&await Promise.all(a.map(a=>l.Ip(a,b.companyUuid,b.type,b.actorUuid).catch(()=>{})))}return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}),a.registerTool("synapse_mark_notification_read",{description:"Mark notification(s) as read (single or all)",inputSchema:e.Ikc({notificationUuid:e.YjP().optional().describe("Single notification UUID"),all:e.zMY().default(!1).optional().describe("Whether to mark all as read")})},async a=>a.all?(await l.NL(b.companyUuid,b.type,b.actorUuid),{content:[{type:"text",text:JSON.stringify({success:!0},null,2)}]}):a.notificationUuid?(await l.Ip(a.notificationUuid,b.companyUuid,b.type,b.actorUuid),{content:[{type:"text",text:JSON.stringify({success:!0},null,2)}]}):{content:[{type:"text",text:JSON.stringify({error:"notificationUuid or all=true required"})}],isError:!0}),a.registerTool("synapse_get_project_groups",{description:"List all project groups for the current company. Returns groups with project counts.",inputSchema:e.Ikc({})},async()=>{let a=await m.a1(b.companyUuid);return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}),a.registerTool("synapse_get_project_group",{description:"Get a single project group by UUID with its projects list.",inputSchema:e.Ikc({groupUuid:e.YjP().describe("Project Group UUID")})},async({groupUuid:a})=>{let c=await m.xv(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify(c,null,2)}]}:{content:[{type:"text",text:"Project group not found"}],isError:!0}}),a.registerTool("synapse_get_group_dashboard",{description:"Get aggregated dashboard stats for a project group (project count, experiment runs, completion rate, research questions, experiment designs, activity stream).",inputSchema:e.Ikc({groupUuid:e.YjP().describe("Project Group UUID")})},async({groupUuid:a})=>{let c=await m.Im(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify(c,null,2)}]}:{content:[{type:"text",text:"Project group not found"}],isError:!0}}),a.registerTool("synapse_search_mentionables",{description:"Search for users and agents that can be @mentioned. Returns name, type, and UUID. Use the UUID to write mentions as @[Name](type:uuid) in comment/description text.",inputSchema:e.Ikc({query:e.YjP().describe("Name or keyword to search"),limit:e.aig().optional().default(10).describe("Max results to return (default 10)")})},async({query:a,limit:c})=>{let d=await n._L({companyUuid:b.companyUuid,query:a,actorType:b.type,actorUuid:b.actorUuid,ownerUuid:b.ownerUuid,limit:c});return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}})}[f,g,h,i,j,k,l,m,n,o]=q.then?(await q)():q,d()}catch(a){d(a)}})},31421:a=>{a.exports=require("node:child_process")},31657:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(15746),e=c(41033),f=c(23235),g=c(71296);b.default={keyword:"properties",type:"object",schemaType:"object",code(a){let{gen:b,schema:c,parentSchema:h,data:i,it:j}=a;"all"===j.opts.removeAdditional&&void 0===h.additionalProperties&&g.default.code(new d.KeywordCxt(j,g.default,"additionalProperties"));let k=(0,e.allSchemaProperties)(c);for(let a of k)j.definedProperties.add(a);j.opts.unevaluated&&k.length&&!0!==j.props&&(j.props=f.mergeEvaluated.props(b,(0,f.toHash)(k),j.props));let l=k.filter(a=>!(0,f.alwaysValidSchema)(j,c[a]));if(0===l.length)return;let m=b.name("valid");for(let d of l){var n;(n=d,j.opts.useDefaults&&!j.compositeRule&&void 0!==c[n].default)?o(d):(b.if((0,e.propertyInData)(b,i,d,j.opts.ownProperties)),o(d),j.allErrors||b.else().var(m,!0),b.endIf()),a.it.definedProperties.add(d),a.ok(m)}function o(b){a.subschema({keyword:"properties",schemaProp:b,dataProp:b},m)}}}},32739:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,d.str)`must NOT have ${"maxItems"===a?"more":"fewer"} than ${b} items`,params:({schemaCode:a})=>(0,d._)`{limit: ${a}}`},code(a){let{keyword:b,data:c,schemaCode:e}=a,f="maxItems"===b?d.operators.GT:d.operators.LT;a.fail$data((0,d._)`${c}.length ${f} ${e}`)}}},33006:(a,b,c)=>{c.d(b,{FT:()=>a4,TF:()=>a2,gd:()=>an,gH:()=>ao,Sq:()=>I,iK:()=>bI,K1:()=>bk,TI:()=>bl,Mg:()=>af,PC:()=>g,n_:()=>bE,wR:()=>G,O4:()=>d,$p:()=>aO,oQ:()=>ak,Ql:()=>ai,Sc:()=>aj,rk:()=>T,ZC:()=>X,OR:()=>F,aE:()=>f,Qq:()=>aL,s:()=>az,OI:()=>ax,Cs:()=>bO,zR:()=>al,a5:()=>am,gW:()=>a0,FP:()=>a6,Nh:()=>bQ,tC:()=>Y,_r:()=>_,EV:()=>i,R6:()=>aC,Iu:()=>h,b_:()=>a8,ki:()=>ah,uv:()=>bJ,X6:()=>bK,eK:()=>U,LW:()=>E,lg:()=>A,vo:()=>y,ig:()=>C,bZ:()=>r});var d,e=c(77258);let f="2025-11-25",g="2025-03-26",h=[f,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],i="io.modelcontextprotocol/related-task",j=e.IeY(a=>null!==a&&("object"==typeof a||"function"==typeof a)),k=e.KCZ([e.YjP(),e.aig().int()]),l=e.YjP();e._H3({ttl:e.KCZ([e.aig(),e.chJ()]).optional(),pollInterval:e.aig().optional()});let m=e.Ikc({ttl:e.aig().optional()}),n=e.Ikc({taskId:e.YjP()}),o=e._H3({progressToken:k.optional(),[i]:n.optional()}),p=e.Ikc({_meta:o.optional()}),q=p.extend({task:m.optional()}),r=a=>q.safeParse(a).success,s=e.Ikc({method:e.YjP(),params:p.loose().optional()}),t=e.Ikc({_meta:o.optional()}),u=e.Ikc({method:e.YjP(),params:t.loose().optional()}),v=e._H3({_meta:o.optional()}),w=e.KCZ([e.YjP(),e.aig().int()]),x=e.Ikc({jsonrpc:e.euz("2.0"),id:w,...s.shape}).strict(),y=a=>x.safeParse(a).success,z=e.Ikc({jsonrpc:e.euz("2.0"),...u.shape}).strict(),A=a=>z.safeParse(a).success,B=e.Ikc({jsonrpc:e.euz("2.0"),id:w,result:v}).strict(),C=a=>B.safeParse(a).success;!function(a){a[a.ConnectionClosed=-32e3]="ConnectionClosed",a[a.RequestTimeout=-32001]="RequestTimeout",a[a.ParseError=-32700]="ParseError",a[a.InvalidRequest=-32600]="InvalidRequest",a[a.MethodNotFound=-32601]="MethodNotFound",a[a.InvalidParams=-32602]="InvalidParams",a[a.InternalError=-32603]="InternalError",a[a.UrlElicitationRequired=-32042]="UrlElicitationRequired"}(d||(d={}));let D=e.Ikc({jsonrpc:e.euz("2.0"),id:w.optional(),error:e.Ikc({code:e.aig().int(),message:e.YjP(),data:e.L5J().optional()})}).strict(),E=a=>D.safeParse(a).success,F=e.KCZ([x,z,B,D]);e.KCZ([B,D]);let G=v.strict(),H=t.extend({requestId:w.optional(),reason:e.YjP().optional()}),I=u.extend({method:e.euz("notifications/cancelled"),params:H}),J=e.Ikc({src:e.YjP(),mimeType:e.YjP().optional(),sizes:e.YOg(e.YjP()).optional(),theme:e.k5n(["light","dark"]).optional()}),K=e.Ikc({icons:e.YOg(J).optional()}),L=e.Ikc({name:e.YjP(),title:e.YjP().optional()}),M=L.extend({...L.shape,...K.shape,version:e.YjP(),websiteUrl:e.YjP().optional(),description:e.YjP().optional()}),N=e.E$q(e.Ikc({applyDefaults:e.zMY().optional()}),e.g1P(e.YjP(),e.L5J())),O=e.vkY(a=>a&&"object"==typeof a&&!Array.isArray(a)&&0===Object.keys(a).length?{form:{}}:a,e.E$q(e.Ikc({form:N.optional(),url:j.optional()}),e.g1P(e.YjP(),e.L5J()).optional())),P=e._H3({list:j.optional(),cancel:j.optional(),requests:e._H3({sampling:e._H3({createMessage:j.optional()}).optional(),elicitation:e._H3({create:j.optional()}).optional()}).optional()}),Q=e._H3({list:j.optional(),cancel:j.optional(),requests:e._H3({tools:e._H3({call:j.optional()}).optional()}).optional()}),R=e.Ikc({experimental:e.g1P(e.YjP(),j).optional(),sampling:e.Ikc({context:j.optional(),tools:j.optional()}).optional(),elicitation:O.optional(),roots:e.Ikc({listChanged:e.zMY().optional()}).optional(),tasks:P.optional()}),S=p.extend({protocolVersion:e.YjP(),capabilities:R,clientInfo:M}),T=s.extend({method:e.euz("initialize"),params:S}),U=a=>T.safeParse(a).success,V=e.Ikc({experimental:e.g1P(e.YjP(),j).optional(),logging:j.optional(),completions:j.optional(),prompts:e.Ikc({listChanged:e.zMY().optional()}).optional(),resources:e.Ikc({subscribe:e.zMY().optional(),listChanged:e.zMY().optional()}).optional(),tools:e.Ikc({listChanged:e.zMY().optional()}).optional(),tasks:Q.optional()}),W=v.extend({protocolVersion:e.YjP(),capabilities:V,serverInfo:M,instructions:e.YjP().optional()}),X=u.extend({method:e.euz("notifications/initialized"),params:t.optional()}),Y=s.extend({method:e.euz("ping"),params:p.optional()}),Z=e.Ikc({progress:e.aig(),total:e.lqM(e.aig()),message:e.lqM(e.YjP())}),$=e.Ikc({...t.shape,...Z.shape,progressToken:k}),_=u.extend({method:e.euz("notifications/progress"),params:$}),aa=p.extend({cursor:l.optional()}),ab=s.extend({params:aa.optional()}),ac=v.extend({nextCursor:l.optional()}),ad=e.k5n(["working","input_required","completed","failed","cancelled"]),ae=e.Ikc({taskId:e.YjP(),status:ad,ttl:e.KCZ([e.aig(),e.chJ()]),createdAt:e.YjP(),lastUpdatedAt:e.YjP(),pollInterval:e.lqM(e.aig()),statusMessage:e.lqM(e.YjP())}),af=v.extend({task:ae}),ag=t.merge(ae),ah=u.extend({method:e.euz("notifications/tasks/status"),params:ag}),ai=s.extend({method:e.euz("tasks/get"),params:p.extend({taskId:e.YjP()})}),aj=v.merge(ae),ak=s.extend({method:e.euz("tasks/result"),params:p.extend({taskId:e.YjP()})});v.loose();let al=ab.extend({method:e.euz("tasks/list")}),am=ac.extend({tasks:e.YOg(ae)}),an=s.extend({method:e.euz("tasks/cancel"),params:p.extend({taskId:e.YjP()})}),ao=v.merge(ae),ap=e.Ikc({uri:e.YjP(),mimeType:e.lqM(e.YjP()),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),aq=ap.extend({text:e.YjP()}),ar=e.YjP().refine(a=>{try{return atob(a),!0}catch{return!1}},{message:"Invalid Base64 string"}),as=ap.extend({blob:ar}),at=e.k5n(["user","assistant"]),au=e.Ikc({audience:e.YOg(at).optional(),priority:e.aig().min(0).max(1).optional(),lastModified:e.KH5.datetime({offset:!0}).optional()}),av=e.Ikc({...L.shape,...K.shape,uri:e.YjP(),description:e.lqM(e.YjP()),mimeType:e.lqM(e.YjP()),annotations:au.optional(),_meta:e.lqM(e._H3({}))}),aw=e.Ikc({...L.shape,...K.shape,uriTemplate:e.YjP(),description:e.lqM(e.YjP()),mimeType:e.lqM(e.YjP()),annotations:au.optional(),_meta:e.lqM(e._H3({}))}),ax=ab.extend({method:e.euz("resources/list")}),ay=ac.extend({resources:e.YOg(av)}),az=ab.extend({method:e.euz("resources/templates/list")}),aA=ac.extend({resourceTemplates:e.YOg(aw)}),aB=p.extend({uri:e.YjP()}),aC=s.extend({method:e.euz("resources/read"),params:aB}),aD=v.extend({contents:e.YOg(e.KCZ([aq,as]))}),aE=u.extend({method:e.euz("notifications/resources/list_changed"),params:t.optional()}),aF=s.extend({method:e.euz("resources/subscribe"),params:aB}),aG=s.extend({method:e.euz("resources/unsubscribe"),params:aB}),aH=t.extend({uri:e.YjP()}),aI=u.extend({method:e.euz("notifications/resources/updated"),params:aH}),aJ=e.Ikc({name:e.YjP(),description:e.lqM(e.YjP()),required:e.lqM(e.zMY())}),aK=e.Ikc({...L.shape,...K.shape,description:e.lqM(e.YjP()),arguments:e.lqM(e.YOg(aJ)),_meta:e.lqM(e._H3({}))}),aL=ab.extend({method:e.euz("prompts/list")}),aM=ac.extend({prompts:e.YOg(aK)}),aN=p.extend({name:e.YjP(),arguments:e.g1P(e.YjP(),e.YjP()).optional()}),aO=s.extend({method:e.euz("prompts/get"),params:aN}),aP=e.Ikc({type:e.euz("text"),text:e.YjP(),annotations:au.optional(),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),aQ=e.Ikc({type:e.euz("image"),data:ar,mimeType:e.YjP(),annotations:au.optional(),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),aR=e.Ikc({type:e.euz("audio"),data:ar,mimeType:e.YjP(),annotations:au.optional(),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),aS=e.Ikc({type:e.euz("tool_use"),name:e.YjP(),id:e.YjP(),input:e.g1P(e.YjP(),e.L5J()),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),aT=e.Ikc({type:e.euz("resource"),resource:e.KCZ([aq,as]),annotations:au.optional(),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),aU=av.extend({type:e.euz("resource_link")}),aV=e.KCZ([aP,aQ,aR,aU,aT]),aW=e.Ikc({role:at,content:aV}),aX=v.extend({description:e.YjP().optional(),messages:e.YOg(aW)}),aY=u.extend({method:e.euz("notifications/prompts/list_changed"),params:t.optional()}),aZ=e.Ikc({title:e.YjP().optional(),readOnlyHint:e.zMY().optional(),destructiveHint:e.zMY().optional(),idempotentHint:e.zMY().optional(),openWorldHint:e.zMY().optional()}),a$=e.Ikc({taskSupport:e.k5n(["required","optional","forbidden"]).optional()}),a_=e.Ikc({...L.shape,...K.shape,description:e.YjP().optional(),inputSchema:e.Ikc({type:e.euz("object"),properties:e.g1P(e.YjP(),j).optional(),required:e.YOg(e.YjP()).optional()}).catchall(e.L5J()),outputSchema:e.Ikc({type:e.euz("object"),properties:e.g1P(e.YjP(),j).optional(),required:e.YOg(e.YjP()).optional()}).catchall(e.L5J()).optional(),annotations:aZ.optional(),execution:a$.optional(),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),a0=ab.extend({method:e.euz("tools/list")}),a1=ac.extend({tools:e.YOg(a_)}),a2=v.extend({content:e.YOg(aV).default([]),structuredContent:e.g1P(e.YjP(),e.L5J()).optional(),isError:e.zMY().optional()});a2.or(v.extend({toolResult:e.L5J()}));let a3=q.extend({name:e.YjP(),arguments:e.g1P(e.YjP(),e.L5J()).optional()}),a4=s.extend({method:e.euz("tools/call"),params:a3}),a5=u.extend({method:e.euz("notifications/tools/list_changed"),params:t.optional()});e.Ikc({autoRefresh:e.zMY().default(!0),debounceMs:e.aig().int().nonnegative().default(300)});let a6=e.k5n(["debug","info","notice","warning","error","critical","alert","emergency"]),a7=p.extend({level:a6}),a8=s.extend({method:e.euz("logging/setLevel"),params:a7}),a9=t.extend({level:a6,logger:e.YjP().optional(),data:e.L5J()}),ba=u.extend({method:e.euz("notifications/message"),params:a9}),bb=e.Ikc({name:e.YjP().optional()}),bc=e.Ikc({hints:e.YOg(bb).optional(),costPriority:e.aig().min(0).max(1).optional(),speedPriority:e.aig().min(0).max(1).optional(),intelligencePriority:e.aig().min(0).max(1).optional()}),bd=e.Ikc({mode:e.k5n(["auto","required","none"]).optional()}),be=e.Ikc({type:e.euz("tool_result"),toolUseId:e.YjP().describe("The unique identifier for the corresponding tool call."),content:e.YOg(aV).default([]),structuredContent:e.Ikc({}).loose().optional(),isError:e.zMY().optional(),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),bf=e.gMt("type",[aP,aQ,aR]),bg=e.gMt("type",[aP,aQ,aR,aS,be]),bh=e.Ikc({role:at,content:e.KCZ([bg,e.YOg(bg)]),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),bi=q.extend({messages:e.YOg(bh),modelPreferences:bc.optional(),systemPrompt:e.YjP().optional(),includeContext:e.k5n(["none","thisServer","allServers"]).optional(),temperature:e.aig().optional(),maxTokens:e.aig().int(),stopSequences:e.YOg(e.YjP()).optional(),metadata:j.optional(),tools:e.YOg(a_).optional(),toolChoice:bd.optional()}),bj=s.extend({method:e.euz("sampling/createMessage"),params:bi}),bk=v.extend({model:e.YjP(),stopReason:e.lqM(e.k5n(["endTurn","stopSequence","maxTokens"]).or(e.YjP())),role:at,content:bf}),bl=v.extend({model:e.YjP(),stopReason:e.lqM(e.k5n(["endTurn","stopSequence","maxTokens","toolUse"]).or(e.YjP())),role:at,content:e.KCZ([bg,e.YOg(bg)])}),bm=e.Ikc({type:e.euz("boolean"),title:e.YjP().optional(),description:e.YjP().optional(),default:e.zMY().optional()}),bn=e.Ikc({type:e.euz("string"),title:e.YjP().optional(),description:e.YjP().optional(),minLength:e.aig().optional(),maxLength:e.aig().optional(),format:e.k5n(["email","uri","date","date-time"]).optional(),default:e.YjP().optional()}),bo=e.Ikc({type:e.k5n(["number","integer"]),title:e.YjP().optional(),description:e.YjP().optional(),minimum:e.aig().optional(),maximum:e.aig().optional(),default:e.aig().optional()}),bp=e.Ikc({type:e.euz("string"),title:e.YjP().optional(),description:e.YjP().optional(),enum:e.YOg(e.YjP()),default:e.YjP().optional()}),bq=e.Ikc({type:e.euz("string"),title:e.YjP().optional(),description:e.YjP().optional(),oneOf:e.YOg(e.Ikc({const:e.YjP(),title:e.YjP()})),default:e.YjP().optional()}),br=e.Ikc({type:e.euz("string"),title:e.YjP().optional(),description:e.YjP().optional(),enum:e.YOg(e.YjP()),enumNames:e.YOg(e.YjP()).optional(),default:e.YjP().optional()}),bs=e.KCZ([bp,bq]),bt=e.Ikc({type:e.euz("array"),title:e.YjP().optional(),description:e.YjP().optional(),minItems:e.aig().optional(),maxItems:e.aig().optional(),items:e.Ikc({type:e.euz("string"),enum:e.YOg(e.YjP())}),default:e.YOg(e.YjP()).optional()}),bu=e.Ikc({type:e.euz("array"),title:e.YjP().optional(),description:e.YjP().optional(),minItems:e.aig().optional(),maxItems:e.aig().optional(),items:e.Ikc({anyOf:e.YOg(e.Ikc({const:e.YjP(),title:e.YjP()}))}),default:e.YOg(e.YjP()).optional()}),bv=e.KCZ([bt,bu]),bw=e.KCZ([br,bs,bv]),bx=e.KCZ([bw,bm,bn,bo]),by=q.extend({mode:e.euz("form").optional(),message:e.YjP(),requestedSchema:e.Ikc({type:e.euz("object"),properties:e.g1P(e.YjP(),bx),required:e.YOg(e.YjP()).optional()})}),bz=q.extend({mode:e.euz("url"),message:e.YjP(),elicitationId:e.YjP(),url:e.YjP().url()}),bA=e.KCZ([by,bz]),bB=s.extend({method:e.euz("elicitation/create"),params:bA}),bC=t.extend({elicitationId:e.YjP()}),bD=u.extend({method:e.euz("notifications/elicitation/complete"),params:bC}),bE=v.extend({action:e.k5n(["accept","decline","cancel"]),content:e.vkY(a=>null===a?void 0:a,e.g1P(e.YjP(),e.KCZ([e.YjP(),e.aig(),e.zMY(),e.YOg(e.YjP())])).optional())}),bF=e.Ikc({type:e.euz("ref/resource"),uri:e.YjP()}),bG=e.Ikc({type:e.euz("ref/prompt"),name:e.YjP()}),bH=p.extend({ref:e.KCZ([bG,bF]),argument:e.Ikc({name:e.YjP(),value:e.YjP()}),context:e.Ikc({arguments:e.g1P(e.YjP(),e.YjP()).optional()}).optional()}),bI=s.extend({method:e.euz("completion/complete"),params:bH});function bJ(a){if("ref/prompt"!==a.params.ref.type)throw TypeError(`Expected CompleteRequestPrompt, but got ${a.params.ref.type}`)}function bK(a){if("ref/resource"!==a.params.ref.type)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${a.params.ref.type}`)}let bL=v.extend({completion:e._H3({values:e.YOg(e.YjP()).max(100),total:e.lqM(e.aig().int()),hasMore:e.lqM(e.zMY())})}),bM=e.Ikc({uri:e.YjP().startsWith("file://"),name:e.YjP().optional(),_meta:e.g1P(e.YjP(),e.L5J()).optional()}),bN=s.extend({method:e.euz("roots/list"),params:p.optional()}),bO=v.extend({roots:e.YOg(bM)}),bP=u.extend({method:e.euz("notifications/roots/list_changed"),params:t.optional()});e.KCZ([Y,T,bI,a8,aO,aL,ax,az,aC,aF,aG,a4,a0,ai,ak,al,an]),e.KCZ([I,_,X,bP,ah]),e.KCZ([G,bk,bl,bE,bO,aj,am,af]),e.KCZ([Y,bj,bB,bN,ai,ak,al,an]),e.KCZ([I,_,ba,aI,aE,a5,aY,ah,bD]),e.KCZ([G,W,bL,aX,aM,ay,aA,aD,a2,a1,aj,am,af]);class bQ extends Error{constructor(a,b,c){super(`MCP error ${a}: ${b}`),this.code=a,this.data=c,this.name="McpError"}static fromError(a,b,c){return a===d.UrlElicitationRequired&&c&&c.elicitations?new bR(c.elicitations,b):new bQ(a,b,c)}}class bR extends bQ{constructor(a,b=`URL elicitation${a.length>1?"s":""} required`){super(d.UrlElicitationRequired,b,{elicitations:a})}get elicitations(){return this.data?.elicitations??[]}}},33283:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(23235);b.default={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(a){let{gen:b,schema:c,it:e}=a;if((0,d.alwaysValidSchema)(e,c))return void a.fail();let f=b.name("valid");a.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},f),a.failResult(f,()=>a.reset(),()=>a.error())},error:{message:"must NOT be valid"}}},33873:a=>{a.exports=require("path")},34481:(a,b)=>{function c(a){let b,c=a.length,d=0,e=0;for(;e<c;)d++,(b=a.charCodeAt(e++))>=55296&&b<=56319&&e<c&&(64512&(b=a.charCodeAt(e)))==56320&&e++;return d}Object.defineProperty(b,"__esModule",{value:!0}),b.default=c,c.code='require("ajv/dist/runtime/ucs2length").default'},34631:a=>{a.exports=require("tls")},35684:(a,b,c)=>{var d;Object.defineProperty(b,"__esModule",{value:!0}),b.reportTypeError=b.checkDataTypes=b.checkDataType=b.coerceAndCheckDataType=b.getJSONTypes=b.getSchemaTypes=b.DataType=void 0;let e=c(30144),f=c(18423),g=c(66984),h=c(74489),i=c(23235);function j(a){let b=Array.isArray(a)?a:a?[a]:[];if(b.every(e.isJSONType))return b;throw Error("type must be JSONType or JSONType[]: "+b.join(","))}!function(a){a[a.Correct=0]="Correct",a[a.Wrong=1]="Wrong"}(d||(b.DataType=d={})),b.getSchemaTypes=function(a){let b=j(a.type);if(b.includes("null")){if(!1===a.nullable)throw Error("type: null contradicts nullable: false")}else{if(!b.length&&void 0!==a.nullable)throw Error('"nullable" cannot be used without "type"');!0===a.nullable&&b.push("null")}return b},b.getJSONTypes=j,b.coerceAndCheckDataType=function(a,b){var c,e;let{gen:g,data:i,opts:j}=a,l=(c=b,(e=j.coerceTypes)?c.filter(a=>k.has(a)||"array"===e&&"array"===a):[]),n=b.length>0&&!(0===l.length&&1===b.length&&(0,f.schemaHasRulesForType)(a,b[0]));if(n){let c=m(b,i,j.strictNumbers,d.Wrong);g.if(c,()=>{l.length?function(a,b,c){let{gen:d,data:e,opts:f}=a,g=d.let("dataType",(0,h._)`typeof ${e}`),i=d.let("coerced",(0,h._)`undefined`);for(let a of("array"===f.coerceTypes&&d.if((0,h._)`${g} == 'object' && Array.isArray(${e}) && ${e}.length == 1`,()=>d.assign(e,(0,h._)`${e}[0]`).assign(g,(0,h._)`typeof ${e}`).if(m(b,e,f.strictNumbers),()=>d.assign(i,e))),d.if((0,h._)`${i} !== undefined`),c))(k.has(a)||"array"===a&&"array"===f.coerceTypes)&&function(a){switch(a){case"string":d.elseIf((0,h._)`${g} == "number" || ${g} == "boolean"`).assign(i,(0,h._)`"" + ${e}`).elseIf((0,h._)`${e} === null`).assign(i,(0,h._)`""`);return;case"number":d.elseIf((0,h._)`${g} == "boolean" || ${e} === null
19
19
  || (${g} == "string" && ${e} && ${e} == +${e})`).assign(i,(0,h._)`+${e}`);return;case"integer":d.elseIf((0,h._)`${g} === "boolean" || ${e} === null
20
20
  || (${g} === "string" && ${e} && ${e} == +${e} && !(${e} % 1))`).assign(i,(0,h._)`+${e}`);return;case"boolean":d.elseIf((0,h._)`${e} === "false" || ${e} === 0 || ${e} === null`).assign(i,!1).elseIf((0,h._)`${e} === "true" || ${e} === 1`).assign(i,!0);return;case"null":d.elseIf((0,h._)`${e} === "" || ${e} === 0 || ${e} === false`),d.assign(i,null);return;case"array":d.elseIf((0,h._)`${g} === "string" || ${g} === "number"
21
- || ${g} === "boolean" || ${e} === null`).assign(i,(0,h._)`[${e}]`)}}(a);d.else(),o(a),d.endIf(),d.if((0,h._)`${i} !== undefined`,()=>{d.assign(e,i),function({gen:a,parentData:b,parentDataProperty:c},d){a.if((0,h._)`${b} !== undefined`,()=>a.assign((0,h._)`${b}[${c}]`,d))}(a,i)})}(a,b,l):o(a)})}return n};let k=new Set(["string","number","integer","boolean","null"]);function l(a,b,c,e=d.Correct){let f,g=e===d.Correct?h.operators.EQ:h.operators.NEQ;switch(a){case"null":return(0,h._)`${b} ${g} null`;case"array":f=(0,h._)`Array.isArray(${b})`;break;case"object":f=(0,h._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":f=i((0,h._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":f=i();break;default:return(0,h._)`typeof ${b} ${g} ${a}`}return e===d.Correct?f:(0,h.not)(f);function i(a=h.nil){return(0,h.and)((0,h._)`typeof ${b} == "number"`,a,c?(0,h._)`isFinite(${b})`:h.nil)}}function m(a,b,c,d){let e;if(1===a.length)return l(a[0],b,c,d);let f=(0,i.toHash)(a);if(f.array&&f.object){let a=(0,h._)`typeof ${b} != "object"`;e=f.null?a:(0,h._)`!${b} || ${a}`,delete f.null,delete f.array,delete f.object}else e=h.nil;for(let a in f.number&&delete f.integer,f)e=(0,h.and)(e,l(a,b,c,d));return e}b.checkDataType=l,b.checkDataTypes=m;let n={message:({schema:a})=>`must be ${a}`,params:({schema:a,schemaValue:b})=>"string"==typeof a?(0,h._)`{type: ${a}}`:(0,h._)`{type: ${b}}`};function o(a){let b=function(a){let{gen:b,data:c,schema:d}=a,e=(0,i.schemaRefOrVal)(a,d,"type");return{gen:b,keyword:"type",data:c,schema:d.type,schemaCode:e,schemaValue:e,parentSchema:d,params:{},it:a}}(a);(0,g.reportError)(b,n)}b.reportTypeError=o},37085:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.contentVocabulary=b.metadataVocabulary=void 0,b.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],b.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},38404:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{W:()=>m});var e=c(77258),f=c(57335),g=c(52618),h=c(8777),i=c(37943),j=c(85034),k=c(911),l=a([f,g,h,i,j]);[f,g,h,i,j]=l.then?(await l)():l;let n={auto_search:{activeField:"autoSearchActiveAgentUuid",notificationAction:"auto_search_completed"},deep_research:{activeField:"deepResearchActiveAgentUuid",notificationAction:"deep_research_completed"}},o={auto_search:"Auto-search for related papers has completed.",deep_research:"Deep research literature review has completed."};function m(a,b){a.registerTool("synapse_search_papers",{description:"Search for academic papers. Uses DeepXiv hybrid search (BM25 + vector) over arXiv, with arXiv API as fallback. Returns titles, abstracts, authors, and URLs.",inputSchema:e.Ikc({query:e.YjP().describe("Search query, e.g. 'speech recognition Chinese accent'"),limit:e.aig().int().min(1).max(20).default(10)})},async({query:a,limit:b})=>{try{let{searchPapers:d}=await c.e(4273).then(c.bind(c,64273)),e=await d(a,b);return{content:[{type:"text",text:JSON.stringify({papers:e},null,2)}]}}catch(a){return{content:[{type:"text",text:`Paper search failed: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_read_paper_brief",{description:"Get a brief summary of an arXiv paper: TLDR, keywords, citation count, GitHub URL. ~500 tokens.",inputSchema:e.Ikc({arxivId:e.YjP().describe("arXiv paper ID, e.g. '2301.07041'")})},async({arxivId:a})=>{try{let{readPaperBrief:b}=await c.e(4273).then(c.bind(c,64273)),d=await b(a);if(!d)return{content:[{type:"text",text:`Paper not found: ${a}`}],isError:!0};return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}catch(a){return{content:[{type:"text",text:`Error: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_read_paper_head",{description:"Get paper structure with section names, per-section TLDRs, and token counts. Use to plan which sections to read. ~1-2k tokens.",inputSchema:e.Ikc({arxivId:e.YjP().describe("arXiv paper ID, e.g. '2301.07041'")})},async({arxivId:a})=>{try{let{readPaperHead:b}=await c.e(4273).then(c.bind(c,64273)),d=await b(a);if(!d)return{content:[{type:"text",text:`Paper not found: ${a}`}],isError:!0};return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}catch(a){return{content:[{type:"text",text:`Error: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_read_paper_section",{description:"Read the full text of a specific section from an arXiv paper. Use synapse_read_paper_head first to discover section names. ~1-5k tokens.",inputSchema:e.Ikc({arxivId:e.YjP().describe("arXiv paper ID, e.g. '2301.07041'"),sectionName:e.YjP().describe("Exact section name from the paper head")})},async({arxivId:a,sectionName:b})=>{try{let{readPaperSection:d}=await c.e(4273).then(c.bind(c,64273)),e=await d(a,b);if(!e)return{content:[{type:"text",text:`Section not found: "${b}" in paper ${a}`}],isError:!0};return{content:[{type:"text",text:e.content}]}}catch(a){return{content:[{type:"text",text:`Error: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_read_paper_full",{description:"Get the complete paper as raw Markdown. ~10-50k tokens, CAUTION: High token cost. Prefer synapse_read_paper_section for targeted reading.",inputSchema:e.Ikc({arxivId:e.YjP().describe("arXiv paper ID, e.g. '2301.07041'")})},async({arxivId:a})=>{try{let{readPaperFull:b}=await c.e(4273).then(c.bind(c,64273)),d=await b(a);if(!d)return{content:[{type:"text",text:`Paper not found: ${a}`}],isError:!0};return{content:[{type:"text",text:d}]}}catch(a){return{content:[{type:"text",text:`Error: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_add_related_work",{description:"Add a paper to a research project's Related Works collection. Returns isNew=true if newly added, isNew=false if already exists (duplicate by URL or arXiv ID).",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),title:e.YjP(),url:e.YjP(),authors:e.YjP().optional(),abstract:e.YjP().optional(),arxivId:e.YjP().optional(),year:e.aig().int().optional().describe("Publication year"),source:e.k5n(["arxiv","deepxiv","semantic_scholar","openalex"]).default("deepxiv")})},async({researchProjectUuid:a,title:c,url:d,authors:e,abstract:h,arxivId:j,year:k,source:l})=>{let m=await (0,f.Xj)({companyUuid:b.companyUuid,researchProjectUuid:a,title:c,url:d,authors:e,abstract:h,arxivId:j,source:l,addedBy:"auto",addedByAgentUuid:b.actorUuid,publishedYear:k});if(m.isNew)try{let[c,d,e]=await Promise.all([g.prisma.relatedWork.count({where:{companyUuid:b.companyUuid,researchProjectUuid:a}}),g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{name:!0}}),g.prisma.agent.findUnique({where:{uuid:b.actorUuid},select:{ownerUuid:!0,name:!0}})]);e?.ownerUuid&&d&&await i.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"user",recipientUuid:e.ownerUuid,entityType:"related_work",entityUuid:m.uuid,entityTitle:m.title,projectName:d.name,action:"related_work_added",message:`New paper collected: "${m.title}" (${c} total)`,actorType:"agent",actorUuid:b.actorUuid,actorName:e.name??"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({relatedWork:m})}]}}),a.registerTool("synapse_get_related_works",{description:"Get all related works (papers) collected for a research project.",inputSchema:e.Ikc({researchProjectUuid:e.YjP()})},async({researchProjectUuid:a})=>{let c=await (0,f.KD)(b.companyUuid,a);return{content:[{type:"text",text:JSON.stringify({relatedWorks:c},null,2)}]}}),a.registerTool("synapse_get_deep_research_report",{description:"Get the deep research literature review document for a project. Returns null if none exists yet.",inputSchema:e.Ikc({researchProjectUuid:e.YjP()})},async({researchProjectUuid:a})=>{let c=await g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{deepResearchDocUuid:!0}});if(!c?.deepResearchDocUuid)return{content:[{type:"text",text:JSON.stringify({document:null})}]};let d=await h.YE(b.companyUuid,c.deepResearchDocUuid);return{content:[{type:"text",text:JSON.stringify({document:d},null,2)}]}}),a.registerTool("synapse_save_deep_research_report",{description:"Create or update the deep research literature review for a project. If a report already exists, updates it and increments the version (v1 → v2 → v3...). If none exists, creates a new one.",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),title:e.YjP().describe("Report title"),content:e.YjP().describe("Full report content (Markdown)")})},async({researchProjectUuid:a,title:c,content:d})=>{let e,f=await g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{uuid:!0,deepResearchDocUuid:!0}});if(!f)return{content:[{type:"text",text:"Research Project not found"}],isError:!0};f.deepResearchDocUuid?e=await h.lU(f.deepResearchDocUuid,{title:c,content:d,incrementVersion:!0}):(e=await h.ui({companyUuid:b.companyUuid,researchProjectUuid:a,type:"literature_review",title:c,content:d,experimentDesignUuid:null,createdByUuid:b.actorUuid}),await (0,j.Wr)(f.uuid,{deepResearchDocUuid:e.uuid}));try{let d=await g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{name:!0}}),f=await g.prisma.agent.findUnique({where:{uuid:b.actorUuid},select:{ownerUuid:!0,name:!0}});f?.ownerUuid&&d&&await i.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"user",recipientUuid:f.ownerUuid,entityType:"research_project",entityUuid:a,entityTitle:d.name,projectName:d.name,action:"deep_research_completed",message:`Deep research literature review "${c}" (v${e.version}) is ready.`,actorType:"agent",actorUuid:b.actorUuid,actorName:f.name??"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({document:{uuid:e.uuid,title:e.title,version:e.version}},null,2)}]}}),a.registerTool("synapse_complete_task",{description:"Signal that an agent task (auto_search or deep_research) has finished. Clears the active indicator on the project and notifies the owner.",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),taskType:e.k5n(["auto_search","deep_research"])})},async({researchProjectUuid:a,taskType:c})=>{let d=n[c],e=await g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{uuid:!0,name:!0,autoSearchActiveAgentUuid:!0,deepResearchActiveAgentUuid:!0}});if(!e)return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let f="auto_search"===c?e.autoSearchActiveAgentUuid:e.deepResearchActiveAgentUuid;if(!f)return{content:[{type:"text",text:JSON.stringify({cleared:!1,reason:"no active task"})}]};await g.prisma.researchProject.update({where:{uuid:a},data:{[d.activeField]:null}}),k.B.emitChange({companyUuid:b.companyUuid,researchProjectUuid:a,entityType:"research_project",entityUuid:a,action:"updated"});try{let h=await g.prisma.agent.findUnique({where:{uuid:f},select:{ownerUuid:!0,name:!0}});h?.ownerUuid&&await i.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"user",recipientUuid:h.ownerUuid,entityType:"research_project",entityUuid:a,entityTitle:e.name,projectName:e.name,action:d.notificationAction,message:o[c],actorType:"agent",actorUuid:f,actorName:h.name??"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({cleared:!0})}]}})}d()}catch(a){d(a)}})},40001:(a,b,c)=>{var d;Object.defineProperty(b,"__esModule",{value:!0}),b.ValueScope=b.ValueScopeName=b.Scope=b.varKinds=b.UsedValueState=void 0;let e=c(86684);class f extends Error{constructor(a){super(`CodeGen: "code" for ${a} not defined`),this.value=a.value}}!function(a){a[a.Started=0]="Started",a[a.Completed=1]="Completed"}(d||(b.UsedValueState=d={})),b.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class g{constructor({prefixes:a,parent:b}={}){this._names={},this._prefixes=a,this._parent=b}toName(a){return a instanceof e.Name?a:this.name(a)}name(a){return new e.Name(this._newName(a))}_newName(a){let b=this._names[a]||this._nameGroup(a);return`${a}${b.index++}`}_nameGroup(a){var b,c;if((null==(c=null==(b=this._parent)?void 0:b._prefixes)?void 0:c.has(a))||this._prefixes&&!this._prefixes.has(a))throw Error(`CodeGen: prefix "${a}" is not allowed in this scope`);return this._names[a]={prefix:a,index:0}}}b.Scope=g;class h extends e.Name{constructor(a,b){super(b),this.prefix=a}setValue(a,{property:b,itemIndex:c}){this.value=a,this.scopePath=(0,e._)`.${new e.Name(b)}[${c}]`}}b.ValueScopeName=h;let i=(0,e._)`\n`;class j extends g{constructor(a){super(a),this._values={},this._scope=a.scope,this.opts={...a,_n:a.lines?i:e.nil}}get(){return this._scope}name(a){return new h(a,this._newName(a))}value(a,b){var c;if(void 0===b.ref)throw Error("CodeGen: ref must be passed in value");let d=this.toName(a),{prefix:e}=d,f=null!=(c=b.key)?c:b.ref,g=this._values[e];if(g){let a=g.get(f);if(a)return a}else g=this._values[e]=new Map;g.set(f,d);let h=this._scope[e]||(this._scope[e]=[]),i=h.length;return h[i]=b.ref,d.setValue(b,{property:e,itemIndex:i}),d}getValue(a,b){let c=this._values[a];if(c)return c.get(b)}scopeRefs(a,b=this._values){return this._reduceValues(b,b=>{if(void 0===b.scopePath)throw Error(`CodeGen: name "${b}" has no value`);return(0,e._)`${a}${b.scopePath}`})}scopeCode(a=this._values,b,c){return this._reduceValues(a,a=>{if(void 0===a.value)throw Error(`CodeGen: name "${a}" has no value`);return a.value.code},b,c)}_reduceValues(a,c,g={},h){let i=e.nil;for(let j in a){let k=a[j];if(!k)continue;let l=g[j]=g[j]||new Map;k.forEach(a=>{if(l.has(a))return;l.set(a,d.Started);let g=c(a);if(g){let c=this.opts.es5?b.varKinds.var:b.varKinds.const;i=(0,e._)`${i}${c} ${a} = ${g};${this.opts._n}`}else if(g=null==h?void 0:h(a))i=(0,e._)`${i}${g}${this.opts._n}`;else throw new f(a);l.set(a,d.Completed)})}return i}}b.ValueScope=j},41016:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(91114),e=c(70511),f=c(29563),g=c(52310),h=c(92782),i=c(58219),j=c(32739),k=c(84221),l=c(70959),m=c(71339);b.default=[d.default,e.default,f.default,g.default,h.default,i.default,j.default,k.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},l.default,m.default]},41026:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.CodeGen=b.Name=b.nil=b.stringify=b.str=b._=b.KeywordCxt=void 0;var d=c(15746);Object.defineProperty(b,"KeywordCxt",{enumerable:!0,get:function(){return d.KeywordCxt}});var e=c(74489);Object.defineProperty(b,"_",{enumerable:!0,get:function(){return e._}}),Object.defineProperty(b,"str",{enumerable:!0,get:function(){return e.str}}),Object.defineProperty(b,"stringify",{enumerable:!0,get:function(){return e.stringify}}),Object.defineProperty(b,"nil",{enumerable:!0,get:function(){return e.nil}}),Object.defineProperty(b,"Name",{enumerable:!0,get:function(){return e.Name}}),Object.defineProperty(b,"CodeGen",{enumerable:!0,get:function(){return e.CodeGen}});let f=c(87294),g=c(29799),h=c(30144),i=c(50435),j=c(74489),k=c(1171),l=c(35684),m=c(23235),n=c(25915),o=c(77548),p=(a,b)=>new RegExp(a,b);p.code="new RegExp";let q=["removeAdditional","useDefaults","coerceTypes"],r=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),s={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},t={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};class u{constructor(a={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,a=this.opts={...a,...function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,q,r,s,t,u,v,w,x,y,z,A,B;let C=a.strict,D=null==(b=a.code)?void 0:b.optimize,E=!0===D||void 0===D?1:D||0,F=null!=(d=null==(c=a.code)?void 0:c.regExp)?d:p,G=null!=(e=a.uriResolver)?e:o.default;return{strictSchema:null==(g=null!=(f=a.strictSchema)?f:C)||g,strictNumbers:null==(i=null!=(h=a.strictNumbers)?h:C)||i,strictTypes:null!=(k=null!=(j=a.strictTypes)?j:C)?k:"log",strictTuples:null!=(m=null!=(l=a.strictTuples)?l:C)?m:"log",strictRequired:null!=(q=null!=(n=a.strictRequired)?n:C)&&q,code:a.code?{...a.code,optimize:E,regExp:F}:{optimize:E,regExp:F},loopRequired:null!=(r=a.loopRequired)?r:200,loopEnum:null!=(s=a.loopEnum)?s:200,meta:null==(t=a.meta)||t,messages:null==(u=a.messages)||u,inlineRefs:null==(v=a.inlineRefs)||v,schemaId:null!=(w=a.schemaId)?w:"$id",addUsedSchema:null==(x=a.addUsedSchema)||x,validateSchema:null==(y=a.validateSchema)||y,validateFormats:null==(z=a.validateFormats)||z,unicodeRegExp:null==(A=a.unicodeRegExp)||A,int32range:null==(B=a.int32range)||B,uriResolver:G}}(a)};let{es5:b,lines:c}=this.opts.code;this.scope=new j.ValueScope({scope:{},prefixes:r,es5:b,lines:c}),this.logger=function(a){if(!1===a)return B;if(void 0===a)return console;if(a.log&&a.warn&&a.error)return a;throw Error("logger must implement log, warn and error methods")}(a.logger);let d=a.validateFormats;a.validateFormats=!1,this.RULES=(0,h.getRules)(),v.call(this,s,a,"NOT SUPPORTED"),v.call(this,t,a,"DEPRECATED","warn"),this._metaOpts=A.call(this),a.formats&&y.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),a.keywords&&z.call(this,a.keywords),"object"==typeof a.meta&&this.addMetaSchema(a.meta),x.call(this),a.validateFormats=d}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:a,meta:b,schemaId:c}=this.opts,d=n;"id"===c&&((d={...n}).id=d.$id,delete d.$id),b&&a&&this.addMetaSchema(d,d[c],!1)}defaultMeta(){let{meta:a,schemaId:b}=this.opts;return this.opts.defaultMeta="object"==typeof a?a[b]||a:void 0}validate(a,b){let c;if("string"==typeof a){if(!(c=this.getSchema(a)))throw Error(`no schema with key or ref "${a}"`)}else c=this.compile(a);let d=c(b);return"$async"in c||(this.errors=c.errors),d}compile(a,b){let c=this._addSchema(a,b);return c.validate||this._compileSchemaEnv(c)}compileAsync(a,b){if("function"!=typeof this.opts.loadSchema)throw Error("options.loadSchema should be a function");let{loadSchema:c}=this.opts;return d.call(this,a,b);async function d(a,b){await e.call(this,a.$schema);let c=this._addSchema(a,b);return c.validate||f.call(this,c)}async function e(a){a&&!this.getSchema(a)&&await d.call(this,{$ref:a},!0)}async function f(a){try{return this._compileSchemaEnv(a)}catch(b){if(!(b instanceof g.default))throw b;return h.call(this,b),await i.call(this,b.missingSchema),f.call(this,a)}}function h({missingSchema:a,missingRef:b}){if(this.refs[a])throw Error(`AnySchema ${a} is loaded but ${b} cannot be resolved`)}async function i(a){let c=await j.call(this,a);this.refs[a]||await e.call(this,c.$schema),this.refs[a]||this.addSchema(c,a,b)}async function j(a){let b=this._loading[a];if(b)return b;try{return await (this._loading[a]=c(a))}finally{delete this._loading[a]}}}addSchema(a,b,c,d=this.opts.validateSchema){let e;if(Array.isArray(a)){for(let b of a)this.addSchema(b,void 0,c,d);return this}if("object"==typeof a){let{schemaId:b}=this.opts;if(void 0!==(e=a[b])&&"string"!=typeof e)throw Error(`schema ${b} must be string`)}return b=(0,k.normalizeId)(b||e),this._checkUnique(b),this.schemas[b]=this._addSchema(a,c,b,d,!0),this}addMetaSchema(a,b,c=this.opts.validateSchema){return this.addSchema(a,b,!0,c),this}validateSchema(a,b){let c;if("boolean"==typeof a)return!0;if(void 0!==(c=a.$schema)&&"string"!=typeof c)throw Error("$schema must be a string");if(!(c=c||this.opts.defaultMeta||this.defaultMeta()))return this.logger.warn("meta-schema not available"),this.errors=null,!0;let d=this.validate(c,a);if(!d&&b){let a="schema is invalid: "+this.errorsText();if("log"===this.opts.validateSchema)this.logger.error(a);else throw Error(a)}return d}getSchema(a){let b;for(;"string"==typeof(b=w.call(this,a));)a=b;if(void 0===b){let{schemaId:c}=this.opts,d=new i.SchemaEnv({schema:{},schemaId:c});if(!(b=i.resolveSchema.call(this,d,a)))return;this.refs[a]=b}return b.validate||this._compileSchemaEnv(b)}removeSchema(a){if(a instanceof RegExp)return this._removeAllSchemas(this.schemas,a),this._removeAllSchemas(this.refs,a),this;switch(typeof a){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let b=w.call(this,a);return"object"==typeof b&&this._cache.delete(b.schema),delete this.schemas[a],delete this.refs[a],this}case"object":{this._cache.delete(a);let b=a[this.opts.schemaId];return b&&(b=(0,k.normalizeId)(b),delete this.schemas[b],delete this.refs[b]),this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary(a){for(let b of a)this.addKeyword(b);return this}addKeyword(a,b){let c;if("string"==typeof a)c=a,"object"==typeof b&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),b.keyword=c);else if("object"==typeof a&&void 0===b){if(Array.isArray(c=(b=a).keyword)&&!c.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(D.call(this,c,b),!b)return(0,m.eachItem)(c,a=>E.call(this,a)),this;G.call(this,b);let d={...b,type:(0,l.getJSONTypes)(b.type),schemaType:(0,l.getJSONTypes)(b.schemaType)};return(0,m.eachItem)(c,0===d.type.length?a=>E.call(this,a,d):a=>d.type.forEach(b=>E.call(this,a,d,b))),this}getKeyword(a){let b=this.RULES.all[a];return"object"==typeof b?b.definition:!!b}removeKeyword(a){let{RULES:b}=this;for(let c of(delete b.keywords[a],delete b.all[a],b.rules)){let b=c.rules.findIndex(b=>b.keyword===a);b>=0&&c.rules.splice(b,1)}return this}addFormat(a,b){return"string"==typeof b&&(b=new RegExp(b)),this.formats[a]=b,this}errorsText(a=this.errors,{separator:b=", ",dataVar:c="data"}={}){return a&&0!==a.length?a.map(a=>`${c}${a.instancePath} ${a.message}`).reduce((a,c)=>a+b+c):"No errors"}$dataMetaSchema(a,b){let c=this.RULES.all;for(let d of(a=JSON.parse(JSON.stringify(a)),b)){let b=d.split("/").slice(1),e=a;for(let a of b)e=e[a];for(let a in c){let b=c[a];if("object"!=typeof b)continue;let{$data:d}=b.definition,f=e[a];d&&f&&(e[a]=I(f))}}return a}_removeAllSchemas(a,b){for(let c in a){let d=a[c];(!b||b.test(c))&&("string"==typeof d?delete a[c]:d&&!d.meta&&(this._cache.delete(d.schema),delete a[c]))}}_addSchema(a,b,c,d=this.opts.validateSchema,e=this.opts.addUsedSchema){let f,{schemaId:g}=this.opts;if("object"==typeof a)f=a[g];else if(this.opts.jtd)throw Error("schema must be object");else if("boolean"!=typeof a)throw Error("schema must be object or boolean");let h=this._cache.get(a);if(void 0!==h)return h;c=(0,k.normalizeId)(f||c);let j=k.getSchemaRefs.call(this,a,c);return h=new i.SchemaEnv({schema:a,schemaId:g,meta:b,baseId:c,localRefs:j}),this._cache.set(h.schema,h),e&&!c.startsWith("#")&&(c&&this._checkUnique(c),this.refs[c]=h),d&&this.validateSchema(a,!0),h}_checkUnique(a){if(this.schemas[a]||this.refs[a])throw Error(`schema with key or id "${a}" already exists`)}_compileSchemaEnv(a){if(a.meta?this._compileMetaSchema(a):i.compileSchema.call(this,a),!a.validate)throw Error("ajv implementation error");return a.validate}_compileMetaSchema(a){let b=this.opts;this.opts=this._metaOpts;try{i.compileSchema.call(this,a)}finally{this.opts=b}}}function v(a,b,c,d="error"){for(let e in a)e in b&&this.logger[d](`${c}: option ${e}. ${a[e]}`)}function w(a){return a=(0,k.normalizeId)(a),this.schemas[a]||this.refs[a]}function x(){let a=this.opts.schemas;if(a)if(Array.isArray(a))this.addSchema(a);else for(let b in a)this.addSchema(a[b],b)}function y(){for(let a in this.opts.formats){let b=this.opts.formats[a];b&&this.addFormat(a,b)}}function z(a){if(Array.isArray(a))return void this.addVocabulary(a);for(let b in this.logger.warn("keywords option as map is deprecated, pass array"),a){let c=a[b];c.keyword||(c.keyword=b),this.addKeyword(c)}}function A(){let a={...this.opts};for(let b of q)delete a[b];return a}u.ValidationError=f.default,u.MissingRefError=g.default,b.default=u;let B={log(){},warn(){},error(){}},C=/^[a-z_$][a-z0-9_$:-]*$/i;function D(a,b){let{RULES:c}=this;if((0,m.eachItem)(a,a=>{if(c.keywords[a])throw Error(`Keyword ${a} is already defined`);if(!C.test(a))throw Error(`Keyword ${a} has invalid name`)}),b&&b.$data&&!("code"in b||"validate"in b))throw Error('$data keyword must have "code" or "validate" function')}function E(a,b,c){var d;let e=null==b?void 0:b.post;if(c&&e)throw Error('keyword with "post" flag cannot have "type"');let{RULES:f}=this,g=e?f.post:f.rules.find(({type:a})=>a===c);if(g||(g={type:c,rules:[]},f.rules.push(g)),f.keywords[a]=!0,!b)return;let h={keyword:a,definition:{...b,type:(0,l.getJSONTypes)(b.type),schemaType:(0,l.getJSONTypes)(b.schemaType)}};b.before?F.call(this,g,h,b.before):g.rules.push(h),f.all[a]=h,null==(d=b.implements)||d.forEach(a=>this.addKeyword(a))}function F(a,b,c){let d=a.rules.findIndex(a=>a.keyword===c);d>=0?a.rules.splice(d,0,b):(a.rules.push(b),this.logger.warn(`rule ${c} is not defined`))}function G(a){let{metaSchema:b}=a;void 0!==b&&(a.$data&&this.opts.$data&&(b=I(b)),a.validateSchema=this.compile(b,!0))}let H={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function I(a){return{anyOf:[a,H]}}},41033:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateUnion=b.validateArray=b.usePattern=b.callValidateCode=b.schemaProperties=b.allSchemaProperties=b.noPropertyInData=b.propertyInData=b.isOwnProperty=b.hasPropFunc=b.reportMissingProp=b.checkMissingProp=b.checkReportMissingProp=void 0;let d=c(74489),e=c(23235),f=c(31079),g=c(23235);function h(a){return a.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,d._)`Object.prototype.hasOwnProperty`})}function i(a,b,c){return(0,d._)`${h(a)}.call(${b}, ${c})`}function j(a,b,c,e){let f=(0,d._)`${b}${(0,d.getProperty)(c)} === undefined`;return e?(0,d.or)(f,(0,d.not)(i(a,b,c))):f}function k(a){return a?Object.keys(a).filter(a=>"__proto__"!==a):[]}b.checkReportMissingProp=function(a,b){let{gen:c,data:e,it:f}=a;c.if(j(c,e,b,f.opts.ownProperties),()=>{a.setParams({missingProperty:(0,d._)`${b}`},!0),a.error()})},b.checkMissingProp=function({gen:a,data:b,it:{opts:c}},e,f){return(0,d.or)(...e.map(e=>(0,d.and)(j(a,b,e,c.ownProperties),(0,d._)`${f} = ${e}`)))},b.reportMissingProp=function(a,b){a.setParams({missingProperty:b},!0),a.error()},b.hasPropFunc=h,b.isOwnProperty=i,b.propertyInData=function(a,b,c,e){let f=(0,d._)`${b}${(0,d.getProperty)(c)} !== undefined`;return e?(0,d._)`${f} && ${i(a,b,c)}`:f},b.noPropertyInData=j,b.allSchemaProperties=k,b.schemaProperties=function(a,b){return k(b).filter(c=>!(0,e.alwaysValidSchema)(a,b[c]))},b.callValidateCode=function({schemaCode:a,data:b,it:{gen:c,topSchemaRef:e,schemaPath:g,errorPath:h},it:i},j,k,l){let m=l?(0,d._)`${a}, ${b}, ${e}${g}`:b,n=[[f.default.instancePath,(0,d.strConcat)(f.default.instancePath,h)],[f.default.parentData,i.parentData],[f.default.parentDataProperty,i.parentDataProperty],[f.default.rootData,f.default.rootData]];i.opts.dynamicRef&&n.push([f.default.dynamicAnchors,f.default.dynamicAnchors]);let o=(0,d._)`${m}, ${c.object(...n)}`;return k!==d.nil?(0,d._)`${j}.call(${k}, ${o})`:(0,d._)`${j}(${o})`};let l=(0,d._)`new RegExp`;b.usePattern=function({gen:a,it:{opts:b}},c){let e=b.unicodeRegExp?"u":"",{regExp:f}=b.code,h=f(c,e);return a.scopeValue("pattern",{key:h.toString(),ref:h,code:(0,d._)`${"new RegExp"===f.code?l:(0,g.useFunc)(a,f)}(${c}, ${e})`})},b.validateArray=function(a){let{gen:b,data:c,keyword:f,it:g}=a,h=b.name("valid");if(g.allErrors){let a=b.let("valid",!0);return i(()=>b.assign(a,!1)),a}return b.var(h,!0),i(()=>b.break()),h;function i(g){let i=b.const("len",(0,d._)`${c}.length`);b.forRange("i",0,i,c=>{a.subschema({keyword:f,dataProp:c,dataPropType:e.Type.Num},h),b.if((0,d.not)(h),g)})}},b.validateUnion=function(a){let{gen:b,schema:c,keyword:f,it:g}=a;if(!Array.isArray(c))throw Error("ajv implementation error");if(c.some(a=>(0,e.alwaysValidSchema)(g,a))&&!g.opts.unevaluated)return;let h=b.let("valid",!1),i=b.name("_valid");b.block(()=>c.forEach((c,e)=>{let g=a.subschema({keyword:f,schemaProp:e,compositeRule:!0},i);b.assign(h,(0,d._)`${h} || ${i}`),a.mergeValidEvaluated(g,i)||b.if((0,d.not)(h))})),a.result(h,()=>a.reset(),()=>a.error(!0))}},41204:a=>{a.exports=require("string_decoder")},41500:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.formatLimitDefinition=void 0;let d=c(13370),e=c(74489),f=e.operators,g={formatMaximum:{okStr:"<=",ok:f.LTE,fail:f.GT},formatMinimum:{okStr:">=",ok:f.GTE,fail:f.LT},formatExclusiveMaximum:{okStr:"<",ok:f.LT,fail:f.GTE},formatExclusiveMinimum:{okStr:">",ok:f.GT,fail:f.LTE}};b.formatLimitDefinition={keyword:Object.keys(g),type:"string",schemaType:"string",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,e.str)`should be ${g[a].okStr} ${b}`,params:({keyword:a,schemaCode:b})=>(0,e._)`{comparison: ${g[a].okStr}, limit: ${b}}`},code(a){let{gen:b,data:c,schemaCode:f,keyword:h,it:i}=a,{opts:j,self:k}=i;if(!j.validateFormats)return;let l=new d.KeywordCxt(i,k.RULES.all.format.definition,"format");function m(a){return(0,e._)`${a}.compare(${c}, ${f}) ${g[h].fail} 0`}l.$data?function(){let c=b.scopeValue("formats",{ref:k.formats,code:j.code.formats}),d=b.const("fmt",(0,e._)`${c}[${l.schemaCode}]`);a.fail$data((0,e.or)((0,e._)`typeof ${d} != "object"`,(0,e._)`${d} instanceof RegExp`,(0,e._)`typeof ${d}.compare != "function"`,m(d)))}():function(){let c=l.schema,d=k.formats[c];if(!d||!0===d)return;if("object"!=typeof d||d instanceof RegExp||"function"!=typeof d.compare)throw Error(`"${h}": format "${c}" does not define "compare" function`);let f=b.scopeValue("formats",{key:c,ref:d,code:j.code.formats?(0,e._)`${j.code.formats}${(0,e.getProperty)(c)}`:void 0});a.fail$data(m(f))}()},dependencies:["format"]},b.default=a=>(a.addKeyword(b.formatLimitDefinition),a)},41733:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.default={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:c(41033).validateUnion,error:{message:"must match a schema in anyOf"}}},44865:a=>{a.exports=import("@prisma/client/runtime/query_compiler_fast_bg.postgresql.wasm-base64.mjs")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46313:(a,b,c)=>{c.d(b,{a:()=>e});var d=c(33006);class e{constructor(a={}){this._started=!1,this._hasHandledRequest=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this.sessionIdGenerator=a.sessionIdGenerator,this._enableJsonResponse=a.enableJsonResponse??!1,this._eventStore=a.eventStore,this._onsessioninitialized=a.onsessioninitialized,this._onsessionclosed=a.onsessionclosed,this._allowedHosts=a.allowedHosts,this._allowedOrigins=a.allowedOrigins,this._enableDnsRebindingProtection=a.enableDnsRebindingProtection??!1,this._retryInterval=a.retryInterval}async start(){if(this._started)throw Error("Transport already started");this._started=!0}createJsonErrorResponse(a,b,c,d){let e={code:b,message:c};return d?.data!==void 0&&(e.data=d.data),new Response(JSON.stringify({jsonrpc:"2.0",error:e,id:null}),{status:a,headers:{"Content-Type":"application/json",...d?.headers}})}validateRequestHeaders(a){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let b=a.headers.get("host");if(!b||!this._allowedHosts.includes(b)){let a=`Invalid Host header: ${b}`;return this.onerror?.(Error(a)),this.createJsonErrorResponse(403,-32e3,a)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let b=a.headers.get("origin");if(b&&!this._allowedOrigins.includes(b)){let a=`Invalid Origin header: ${b}`;return this.onerror?.(Error(a)),this.createJsonErrorResponse(403,-32e3,a)}}}}async handleRequest(a,b){if(!this.sessionIdGenerator&&this._hasHandledRequest)throw Error("Stateless transport cannot be reused across requests. Create a new transport per request.");this._hasHandledRequest=!0;let c=this.validateRequestHeaders(a);if(c)return c;switch(a.method){case"POST":return this.handlePostRequest(a,b);case"GET":return this.handleGetRequest(a);case"DELETE":return this.handleDeleteRequest(a);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(a,b,c,d){if(!this._eventStore||d<"2025-11-25")return;let e=await this._eventStore.storeEvent(c,{}),f=`id: ${e}
21
+ || ${g} === "boolean" || ${e} === null`).assign(i,(0,h._)`[${e}]`)}}(a);d.else(),o(a),d.endIf(),d.if((0,h._)`${i} !== undefined`,()=>{d.assign(e,i),function({gen:a,parentData:b,parentDataProperty:c},d){a.if((0,h._)`${b} !== undefined`,()=>a.assign((0,h._)`${b}[${c}]`,d))}(a,i)})}(a,b,l):o(a)})}return n};let k=new Set(["string","number","integer","boolean","null"]);function l(a,b,c,e=d.Correct){let f,g=e===d.Correct?h.operators.EQ:h.operators.NEQ;switch(a){case"null":return(0,h._)`${b} ${g} null`;case"array":f=(0,h._)`Array.isArray(${b})`;break;case"object":f=(0,h._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":f=i((0,h._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":f=i();break;default:return(0,h._)`typeof ${b} ${g} ${a}`}return e===d.Correct?f:(0,h.not)(f);function i(a=h.nil){return(0,h.and)((0,h._)`typeof ${b} == "number"`,a,c?(0,h._)`isFinite(${b})`:h.nil)}}function m(a,b,c,d){let e;if(1===a.length)return l(a[0],b,c,d);let f=(0,i.toHash)(a);if(f.array&&f.object){let a=(0,h._)`typeof ${b} != "object"`;e=f.null?a:(0,h._)`!${b} || ${a}`,delete f.null,delete f.array,delete f.object}else e=h.nil;for(let a in f.number&&delete f.integer,f)e=(0,h.and)(e,l(a,b,c,d));return e}b.checkDataType=l,b.checkDataTypes=m;let n={message:({schema:a})=>`must be ${a}`,params:({schema:a,schemaValue:b})=>"string"==typeof a?(0,h._)`{type: ${a}}`:(0,h._)`{type: ${b}}`};function o(a){let b=function(a){let{gen:b,data:c,schema:d}=a,e=(0,i.schemaRefOrVal)(a,d,"type");return{gen:b,keyword:"type",data:c,schema:d.type,schemaCode:e,schemaValue:e,parentSchema:d,params:{},it:a}}(a);(0,g.reportError)(b,n)}b.reportTypeError=o},37085:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.contentVocabulary=b.metadataVocabulary=void 0,b.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],b.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},38404:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{W:()=>m});var e=c(77258),f=c(57335),g=c(52618),h=c(8777),i=c(37943),j=c(62653),k=c(911),l=a([f,g,h,i,j]);[f,g,h,i,j]=l.then?(await l)():l;let n={auto_search:{activeField:"autoSearchActiveAgentUuid",notificationAction:"auto_search_completed"},deep_research:{activeField:"deepResearchActiveAgentUuid",notificationAction:"deep_research_completed"}},o={auto_search:"Auto-search for related papers has completed.",deep_research:"Deep research literature review has completed."};function m(a,b){a.registerTool("synapse_search_papers",{description:"Search for academic papers. Uses DeepXiv hybrid search (BM25 + vector) over arXiv, with arXiv API as fallback. Returns titles, abstracts, authors, and URLs.",inputSchema:e.Ikc({query:e.YjP().describe("Search query, e.g. 'speech recognition Chinese accent'"),limit:e.aig().int().min(1).max(20).default(10)})},async({query:a,limit:b})=>{try{let{searchPapers:d}=await c.e(4273).then(c.bind(c,64273)),e=await d(a,b);return{content:[{type:"text",text:JSON.stringify({papers:e},null,2)}]}}catch(a){return{content:[{type:"text",text:`Paper search failed: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_read_paper_brief",{description:"Get a brief summary of an arXiv paper: TLDR, keywords, citation count, GitHub URL. ~500 tokens.",inputSchema:e.Ikc({arxivId:e.YjP().describe("arXiv paper ID, e.g. '2301.07041'")})},async({arxivId:a})=>{try{let{readPaperBrief:b}=await c.e(4273).then(c.bind(c,64273)),d=await b(a);if(!d)return{content:[{type:"text",text:`Paper not found: ${a}`}],isError:!0};return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}catch(a){return{content:[{type:"text",text:`Error: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_read_paper_head",{description:"Get paper structure with section names, per-section TLDRs, and token counts. Use to plan which sections to read. ~1-2k tokens.",inputSchema:e.Ikc({arxivId:e.YjP().describe("arXiv paper ID, e.g. '2301.07041'")})},async({arxivId:a})=>{try{let{readPaperHead:b}=await c.e(4273).then(c.bind(c,64273)),d=await b(a);if(!d)return{content:[{type:"text",text:`Paper not found: ${a}`}],isError:!0};return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}catch(a){return{content:[{type:"text",text:`Error: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_read_paper_section",{description:"Read the full text of a specific section from an arXiv paper. Use synapse_read_paper_head first to discover section names. ~1-5k tokens.",inputSchema:e.Ikc({arxivId:e.YjP().describe("arXiv paper ID, e.g. '2301.07041'"),sectionName:e.YjP().describe("Exact section name from the paper head")})},async({arxivId:a,sectionName:b})=>{try{let{readPaperSection:d}=await c.e(4273).then(c.bind(c,64273)),e=await d(a,b);if(!e)return{content:[{type:"text",text:`Section not found: "${b}" in paper ${a}`}],isError:!0};return{content:[{type:"text",text:e.content}]}}catch(a){return{content:[{type:"text",text:`Error: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_read_paper_full",{description:"Get the complete paper as raw Markdown. ~10-50k tokens, CAUTION: High token cost. Prefer synapse_read_paper_section for targeted reading.",inputSchema:e.Ikc({arxivId:e.YjP().describe("arXiv paper ID, e.g. '2301.07041'")})},async({arxivId:a})=>{try{let{readPaperFull:b}=await c.e(4273).then(c.bind(c,64273)),d=await b(a);if(!d)return{content:[{type:"text",text:`Paper not found: ${a}`}],isError:!0};return{content:[{type:"text",text:d}]}}catch(a){return{content:[{type:"text",text:`Error: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_add_related_work",{description:"Add a paper to a research project's Related Works collection. Returns isNew=true if newly added, isNew=false if already exists (duplicate by URL or arXiv ID).",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),title:e.YjP(),url:e.YjP(),authors:e.YjP().optional(),abstract:e.YjP().optional(),arxivId:e.YjP().optional(),year:e.aig().int().optional().describe("Publication year"),source:e.k5n(["arxiv","deepxiv","semantic_scholar","openalex"]).default("deepxiv")})},async({researchProjectUuid:a,title:c,url:d,authors:e,abstract:h,arxivId:j,year:k,source:l})=>{let m=await (0,f.Xj)({companyUuid:b.companyUuid,researchProjectUuid:a,title:c,url:d,authors:e,abstract:h,arxivId:j,source:l,addedBy:"auto",addedByAgentUuid:b.actorUuid,publishedYear:k});if(m.isNew)try{let[c,d,e]=await Promise.all([g.prisma.relatedWork.count({where:{companyUuid:b.companyUuid,researchProjectUuid:a}}),g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{name:!0}}),g.prisma.agent.findUnique({where:{uuid:b.actorUuid},select:{ownerUuid:!0,name:!0}})]);e?.ownerUuid&&d&&await i.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"user",recipientUuid:e.ownerUuid,entityType:"related_work",entityUuid:m.uuid,entityTitle:m.title,projectName:d.name,action:"related_work_added",message:`New paper collected: "${m.title}" (${c} total)`,actorType:"agent",actorUuid:b.actorUuid,actorName:e.name??"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({relatedWork:m})}]}}),a.registerTool("synapse_get_related_works",{description:"Get all related works (papers) collected for a research project.",inputSchema:e.Ikc({researchProjectUuid:e.YjP()})},async({researchProjectUuid:a})=>{let c=await (0,f.KD)(b.companyUuid,a);return{content:[{type:"text",text:JSON.stringify({relatedWorks:c},null,2)}]}}),a.registerTool("synapse_get_deep_research_report",{description:"Get the deep research literature review document for a project. Returns null if none exists yet.",inputSchema:e.Ikc({researchProjectUuid:e.YjP()})},async({researchProjectUuid:a})=>{let c=await g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{deepResearchDocUuid:!0}});if(!c?.deepResearchDocUuid)return{content:[{type:"text",text:JSON.stringify({document:null})}]};let d=await h.YE(b.companyUuid,c.deepResearchDocUuid);return{content:[{type:"text",text:JSON.stringify({document:d},null,2)}]}}),a.registerTool("synapse_save_deep_research_report",{description:"Create or update the deep research literature review for a project. If a report already exists, updates it and increments the version (v1 → v2 → v3...). If none exists, creates a new one.",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),title:e.YjP().describe("Report title"),content:e.YjP().describe("Full report content (Markdown)")})},async({researchProjectUuid:a,title:c,content:d})=>{let e,f=await g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{uuid:!0,deepResearchDocUuid:!0}});if(!f)return{content:[{type:"text",text:"Research Project not found"}],isError:!0};f.deepResearchDocUuid?e=await h.lU(f.deepResearchDocUuid,{title:c,content:d,incrementVersion:!0}):(e=await h.ui({companyUuid:b.companyUuid,researchProjectUuid:a,type:"literature_review",title:c,content:d,experimentDesignUuid:null,createdByUuid:b.actorUuid}),await (0,j.Wr)(f.uuid,{deepResearchDocUuid:e.uuid}));try{let d=await g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{name:!0}}),f=await g.prisma.agent.findUnique({where:{uuid:b.actorUuid},select:{ownerUuid:!0,name:!0}});f?.ownerUuid&&d&&await i.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"user",recipientUuid:f.ownerUuid,entityType:"research_project",entityUuid:a,entityTitle:d.name,projectName:d.name,action:"deep_research_completed",message:`Deep research literature review "${c}" (v${e.version}) is ready.`,actorType:"agent",actorUuid:b.actorUuid,actorName:f.name??"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({document:{uuid:e.uuid,title:e.title,version:e.version}},null,2)}]}}),a.registerTool("synapse_complete_task",{description:"Signal that an agent task (auto_search or deep_research) has finished. Clears the active indicator on the project and notifies the owner.",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),taskType:e.k5n(["auto_search","deep_research"])})},async({researchProjectUuid:a,taskType:c})=>{let d=n[c],e=await g.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{uuid:!0,name:!0,autoSearchActiveAgentUuid:!0,deepResearchActiveAgentUuid:!0}});if(!e)return{content:[{type:"text",text:"Research Project not found"}],isError:!0};let f="auto_search"===c?e.autoSearchActiveAgentUuid:e.deepResearchActiveAgentUuid;if(!f)return{content:[{type:"text",text:JSON.stringify({cleared:!1,reason:"no active task"})}]};await g.prisma.researchProject.update({where:{uuid:a},data:{[d.activeField]:null}}),k.B.emitChange({companyUuid:b.companyUuid,researchProjectUuid:a,entityType:"research_project",entityUuid:a,action:"updated"});try{let h=await g.prisma.agent.findUnique({where:{uuid:f},select:{ownerUuid:!0,name:!0}});h?.ownerUuid&&await i.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"user",recipientUuid:h.ownerUuid,entityType:"research_project",entityUuid:a,entityTitle:e.name,projectName:e.name,action:d.notificationAction,message:o[c],actorType:"agent",actorUuid:f,actorName:h.name??"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({cleared:!0})}]}})}d()}catch(a){d(a)}})},40001:(a,b,c)=>{var d;Object.defineProperty(b,"__esModule",{value:!0}),b.ValueScope=b.ValueScopeName=b.Scope=b.varKinds=b.UsedValueState=void 0;let e=c(86684);class f extends Error{constructor(a){super(`CodeGen: "code" for ${a} not defined`),this.value=a.value}}!function(a){a[a.Started=0]="Started",a[a.Completed=1]="Completed"}(d||(b.UsedValueState=d={})),b.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class g{constructor({prefixes:a,parent:b}={}){this._names={},this._prefixes=a,this._parent=b}toName(a){return a instanceof e.Name?a:this.name(a)}name(a){return new e.Name(this._newName(a))}_newName(a){let b=this._names[a]||this._nameGroup(a);return`${a}${b.index++}`}_nameGroup(a){var b,c;if((null==(c=null==(b=this._parent)?void 0:b._prefixes)?void 0:c.has(a))||this._prefixes&&!this._prefixes.has(a))throw Error(`CodeGen: prefix "${a}" is not allowed in this scope`);return this._names[a]={prefix:a,index:0}}}b.Scope=g;class h extends e.Name{constructor(a,b){super(b),this.prefix=a}setValue(a,{property:b,itemIndex:c}){this.value=a,this.scopePath=(0,e._)`.${new e.Name(b)}[${c}]`}}b.ValueScopeName=h;let i=(0,e._)`\n`;class j extends g{constructor(a){super(a),this._values={},this._scope=a.scope,this.opts={...a,_n:a.lines?i:e.nil}}get(){return this._scope}name(a){return new h(a,this._newName(a))}value(a,b){var c;if(void 0===b.ref)throw Error("CodeGen: ref must be passed in value");let d=this.toName(a),{prefix:e}=d,f=null!=(c=b.key)?c:b.ref,g=this._values[e];if(g){let a=g.get(f);if(a)return a}else g=this._values[e]=new Map;g.set(f,d);let h=this._scope[e]||(this._scope[e]=[]),i=h.length;return h[i]=b.ref,d.setValue(b,{property:e,itemIndex:i}),d}getValue(a,b){let c=this._values[a];if(c)return c.get(b)}scopeRefs(a,b=this._values){return this._reduceValues(b,b=>{if(void 0===b.scopePath)throw Error(`CodeGen: name "${b}" has no value`);return(0,e._)`${a}${b.scopePath}`})}scopeCode(a=this._values,b,c){return this._reduceValues(a,a=>{if(void 0===a.value)throw Error(`CodeGen: name "${a}" has no value`);return a.value.code},b,c)}_reduceValues(a,c,g={},h){let i=e.nil;for(let j in a){let k=a[j];if(!k)continue;let l=g[j]=g[j]||new Map;k.forEach(a=>{if(l.has(a))return;l.set(a,d.Started);let g=c(a);if(g){let c=this.opts.es5?b.varKinds.var:b.varKinds.const;i=(0,e._)`${i}${c} ${a} = ${g};${this.opts._n}`}else if(g=null==h?void 0:h(a))i=(0,e._)`${i}${g}${this.opts._n}`;else throw new f(a);l.set(a,d.Completed)})}return i}}b.ValueScope=j},41016:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(91114),e=c(70511),f=c(29563),g=c(52310),h=c(92782),i=c(58219),j=c(32739),k=c(84221),l=c(70959),m=c(71339);b.default=[d.default,e.default,f.default,g.default,h.default,i.default,j.default,k.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},l.default,m.default]},41026:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.CodeGen=b.Name=b.nil=b.stringify=b.str=b._=b.KeywordCxt=void 0;var d=c(15746);Object.defineProperty(b,"KeywordCxt",{enumerable:!0,get:function(){return d.KeywordCxt}});var e=c(74489);Object.defineProperty(b,"_",{enumerable:!0,get:function(){return e._}}),Object.defineProperty(b,"str",{enumerable:!0,get:function(){return e.str}}),Object.defineProperty(b,"stringify",{enumerable:!0,get:function(){return e.stringify}}),Object.defineProperty(b,"nil",{enumerable:!0,get:function(){return e.nil}}),Object.defineProperty(b,"Name",{enumerable:!0,get:function(){return e.Name}}),Object.defineProperty(b,"CodeGen",{enumerable:!0,get:function(){return e.CodeGen}});let f=c(87294),g=c(29799),h=c(30144),i=c(50435),j=c(74489),k=c(1171),l=c(35684),m=c(23235),n=c(25915),o=c(77548),p=(a,b)=>new RegExp(a,b);p.code="new RegExp";let q=["removeAdditional","useDefaults","coerceTypes"],r=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),s={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},t={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};class u{constructor(a={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,a=this.opts={...a,...function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,q,r,s,t,u,v,w,x,y,z,A,B;let C=a.strict,D=null==(b=a.code)?void 0:b.optimize,E=!0===D||void 0===D?1:D||0,F=null!=(d=null==(c=a.code)?void 0:c.regExp)?d:p,G=null!=(e=a.uriResolver)?e:o.default;return{strictSchema:null==(g=null!=(f=a.strictSchema)?f:C)||g,strictNumbers:null==(i=null!=(h=a.strictNumbers)?h:C)||i,strictTypes:null!=(k=null!=(j=a.strictTypes)?j:C)?k:"log",strictTuples:null!=(m=null!=(l=a.strictTuples)?l:C)?m:"log",strictRequired:null!=(q=null!=(n=a.strictRequired)?n:C)&&q,code:a.code?{...a.code,optimize:E,regExp:F}:{optimize:E,regExp:F},loopRequired:null!=(r=a.loopRequired)?r:200,loopEnum:null!=(s=a.loopEnum)?s:200,meta:null==(t=a.meta)||t,messages:null==(u=a.messages)||u,inlineRefs:null==(v=a.inlineRefs)||v,schemaId:null!=(w=a.schemaId)?w:"$id",addUsedSchema:null==(x=a.addUsedSchema)||x,validateSchema:null==(y=a.validateSchema)||y,validateFormats:null==(z=a.validateFormats)||z,unicodeRegExp:null==(A=a.unicodeRegExp)||A,int32range:null==(B=a.int32range)||B,uriResolver:G}}(a)};let{es5:b,lines:c}=this.opts.code;this.scope=new j.ValueScope({scope:{},prefixes:r,es5:b,lines:c}),this.logger=function(a){if(!1===a)return B;if(void 0===a)return console;if(a.log&&a.warn&&a.error)return a;throw Error("logger must implement log, warn and error methods")}(a.logger);let d=a.validateFormats;a.validateFormats=!1,this.RULES=(0,h.getRules)(),v.call(this,s,a,"NOT SUPPORTED"),v.call(this,t,a,"DEPRECATED","warn"),this._metaOpts=A.call(this),a.formats&&y.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),a.keywords&&z.call(this,a.keywords),"object"==typeof a.meta&&this.addMetaSchema(a.meta),x.call(this),a.validateFormats=d}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:a,meta:b,schemaId:c}=this.opts,d=n;"id"===c&&((d={...n}).id=d.$id,delete d.$id),b&&a&&this.addMetaSchema(d,d[c],!1)}defaultMeta(){let{meta:a,schemaId:b}=this.opts;return this.opts.defaultMeta="object"==typeof a?a[b]||a:void 0}validate(a,b){let c;if("string"==typeof a){if(!(c=this.getSchema(a)))throw Error(`no schema with key or ref "${a}"`)}else c=this.compile(a);let d=c(b);return"$async"in c||(this.errors=c.errors),d}compile(a,b){let c=this._addSchema(a,b);return c.validate||this._compileSchemaEnv(c)}compileAsync(a,b){if("function"!=typeof this.opts.loadSchema)throw Error("options.loadSchema should be a function");let{loadSchema:c}=this.opts;return d.call(this,a,b);async function d(a,b){await e.call(this,a.$schema);let c=this._addSchema(a,b);return c.validate||f.call(this,c)}async function e(a){a&&!this.getSchema(a)&&await d.call(this,{$ref:a},!0)}async function f(a){try{return this._compileSchemaEnv(a)}catch(b){if(!(b instanceof g.default))throw b;return h.call(this,b),await i.call(this,b.missingSchema),f.call(this,a)}}function h({missingSchema:a,missingRef:b}){if(this.refs[a])throw Error(`AnySchema ${a} is loaded but ${b} cannot be resolved`)}async function i(a){let c=await j.call(this,a);this.refs[a]||await e.call(this,c.$schema),this.refs[a]||this.addSchema(c,a,b)}async function j(a){let b=this._loading[a];if(b)return b;try{return await (this._loading[a]=c(a))}finally{delete this._loading[a]}}}addSchema(a,b,c,d=this.opts.validateSchema){let e;if(Array.isArray(a)){for(let b of a)this.addSchema(b,void 0,c,d);return this}if("object"==typeof a){let{schemaId:b}=this.opts;if(void 0!==(e=a[b])&&"string"!=typeof e)throw Error(`schema ${b} must be string`)}return b=(0,k.normalizeId)(b||e),this._checkUnique(b),this.schemas[b]=this._addSchema(a,c,b,d,!0),this}addMetaSchema(a,b,c=this.opts.validateSchema){return this.addSchema(a,b,!0,c),this}validateSchema(a,b){let c;if("boolean"==typeof a)return!0;if(void 0!==(c=a.$schema)&&"string"!=typeof c)throw Error("$schema must be a string");if(!(c=c||this.opts.defaultMeta||this.defaultMeta()))return this.logger.warn("meta-schema not available"),this.errors=null,!0;let d=this.validate(c,a);if(!d&&b){let a="schema is invalid: "+this.errorsText();if("log"===this.opts.validateSchema)this.logger.error(a);else throw Error(a)}return d}getSchema(a){let b;for(;"string"==typeof(b=w.call(this,a));)a=b;if(void 0===b){let{schemaId:c}=this.opts,d=new i.SchemaEnv({schema:{},schemaId:c});if(!(b=i.resolveSchema.call(this,d,a)))return;this.refs[a]=b}return b.validate||this._compileSchemaEnv(b)}removeSchema(a){if(a instanceof RegExp)return this._removeAllSchemas(this.schemas,a),this._removeAllSchemas(this.refs,a),this;switch(typeof a){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let b=w.call(this,a);return"object"==typeof b&&this._cache.delete(b.schema),delete this.schemas[a],delete this.refs[a],this}case"object":{this._cache.delete(a);let b=a[this.opts.schemaId];return b&&(b=(0,k.normalizeId)(b),delete this.schemas[b],delete this.refs[b]),this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary(a){for(let b of a)this.addKeyword(b);return this}addKeyword(a,b){let c;if("string"==typeof a)c=a,"object"==typeof b&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),b.keyword=c);else if("object"==typeof a&&void 0===b){if(Array.isArray(c=(b=a).keyword)&&!c.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(D.call(this,c,b),!b)return(0,m.eachItem)(c,a=>E.call(this,a)),this;G.call(this,b);let d={...b,type:(0,l.getJSONTypes)(b.type),schemaType:(0,l.getJSONTypes)(b.schemaType)};return(0,m.eachItem)(c,0===d.type.length?a=>E.call(this,a,d):a=>d.type.forEach(b=>E.call(this,a,d,b))),this}getKeyword(a){let b=this.RULES.all[a];return"object"==typeof b?b.definition:!!b}removeKeyword(a){let{RULES:b}=this;for(let c of(delete b.keywords[a],delete b.all[a],b.rules)){let b=c.rules.findIndex(b=>b.keyword===a);b>=0&&c.rules.splice(b,1)}return this}addFormat(a,b){return"string"==typeof b&&(b=new RegExp(b)),this.formats[a]=b,this}errorsText(a=this.errors,{separator:b=", ",dataVar:c="data"}={}){return a&&0!==a.length?a.map(a=>`${c}${a.instancePath} ${a.message}`).reduce((a,c)=>a+b+c):"No errors"}$dataMetaSchema(a,b){let c=this.RULES.all;for(let d of(a=JSON.parse(JSON.stringify(a)),b)){let b=d.split("/").slice(1),e=a;for(let a of b)e=e[a];for(let a in c){let b=c[a];if("object"!=typeof b)continue;let{$data:d}=b.definition,f=e[a];d&&f&&(e[a]=I(f))}}return a}_removeAllSchemas(a,b){for(let c in a){let d=a[c];(!b||b.test(c))&&("string"==typeof d?delete a[c]:d&&!d.meta&&(this._cache.delete(d.schema),delete a[c]))}}_addSchema(a,b,c,d=this.opts.validateSchema,e=this.opts.addUsedSchema){let f,{schemaId:g}=this.opts;if("object"==typeof a)f=a[g];else if(this.opts.jtd)throw Error("schema must be object");else if("boolean"!=typeof a)throw Error("schema must be object or boolean");let h=this._cache.get(a);if(void 0!==h)return h;c=(0,k.normalizeId)(f||c);let j=k.getSchemaRefs.call(this,a,c);return h=new i.SchemaEnv({schema:a,schemaId:g,meta:b,baseId:c,localRefs:j}),this._cache.set(h.schema,h),e&&!c.startsWith("#")&&(c&&this._checkUnique(c),this.refs[c]=h),d&&this.validateSchema(a,!0),h}_checkUnique(a){if(this.schemas[a]||this.refs[a])throw Error(`schema with key or id "${a}" already exists`)}_compileSchemaEnv(a){if(a.meta?this._compileMetaSchema(a):i.compileSchema.call(this,a),!a.validate)throw Error("ajv implementation error");return a.validate}_compileMetaSchema(a){let b=this.opts;this.opts=this._metaOpts;try{i.compileSchema.call(this,a)}finally{this.opts=b}}}function v(a,b,c,d="error"){for(let e in a)e in b&&this.logger[d](`${c}: option ${e}. ${a[e]}`)}function w(a){return a=(0,k.normalizeId)(a),this.schemas[a]||this.refs[a]}function x(){let a=this.opts.schemas;if(a)if(Array.isArray(a))this.addSchema(a);else for(let b in a)this.addSchema(a[b],b)}function y(){for(let a in this.opts.formats){let b=this.opts.formats[a];b&&this.addFormat(a,b)}}function z(a){if(Array.isArray(a))return void this.addVocabulary(a);for(let b in this.logger.warn("keywords option as map is deprecated, pass array"),a){let c=a[b];c.keyword||(c.keyword=b),this.addKeyword(c)}}function A(){let a={...this.opts};for(let b of q)delete a[b];return a}u.ValidationError=f.default,u.MissingRefError=g.default,b.default=u;let B={log(){},warn(){},error(){}},C=/^[a-z_$][a-z0-9_$:-]*$/i;function D(a,b){let{RULES:c}=this;if((0,m.eachItem)(a,a=>{if(c.keywords[a])throw Error(`Keyword ${a} is already defined`);if(!C.test(a))throw Error(`Keyword ${a} has invalid name`)}),b&&b.$data&&!("code"in b||"validate"in b))throw Error('$data keyword must have "code" or "validate" function')}function E(a,b,c){var d;let e=null==b?void 0:b.post;if(c&&e)throw Error('keyword with "post" flag cannot have "type"');let{RULES:f}=this,g=e?f.post:f.rules.find(({type:a})=>a===c);if(g||(g={type:c,rules:[]},f.rules.push(g)),f.keywords[a]=!0,!b)return;let h={keyword:a,definition:{...b,type:(0,l.getJSONTypes)(b.type),schemaType:(0,l.getJSONTypes)(b.schemaType)}};b.before?F.call(this,g,h,b.before):g.rules.push(h),f.all[a]=h,null==(d=b.implements)||d.forEach(a=>this.addKeyword(a))}function F(a,b,c){let d=a.rules.findIndex(a=>a.keyword===c);d>=0?a.rules.splice(d,0,b):(a.rules.push(b),this.logger.warn(`rule ${c} is not defined`))}function G(a){let{metaSchema:b}=a;void 0!==b&&(a.$data&&this.opts.$data&&(b=I(b)),a.validateSchema=this.compile(b,!0))}let H={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function I(a){return{anyOf:[a,H]}}},41033:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateUnion=b.validateArray=b.usePattern=b.callValidateCode=b.schemaProperties=b.allSchemaProperties=b.noPropertyInData=b.propertyInData=b.isOwnProperty=b.hasPropFunc=b.reportMissingProp=b.checkMissingProp=b.checkReportMissingProp=void 0;let d=c(74489),e=c(23235),f=c(31079),g=c(23235);function h(a){return a.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,d._)`Object.prototype.hasOwnProperty`})}function i(a,b,c){return(0,d._)`${h(a)}.call(${b}, ${c})`}function j(a,b,c,e){let f=(0,d._)`${b}${(0,d.getProperty)(c)} === undefined`;return e?(0,d.or)(f,(0,d.not)(i(a,b,c))):f}function k(a){return a?Object.keys(a).filter(a=>"__proto__"!==a):[]}b.checkReportMissingProp=function(a,b){let{gen:c,data:e,it:f}=a;c.if(j(c,e,b,f.opts.ownProperties),()=>{a.setParams({missingProperty:(0,d._)`${b}`},!0),a.error()})},b.checkMissingProp=function({gen:a,data:b,it:{opts:c}},e,f){return(0,d.or)(...e.map(e=>(0,d.and)(j(a,b,e,c.ownProperties),(0,d._)`${f} = ${e}`)))},b.reportMissingProp=function(a,b){a.setParams({missingProperty:b},!0),a.error()},b.hasPropFunc=h,b.isOwnProperty=i,b.propertyInData=function(a,b,c,e){let f=(0,d._)`${b}${(0,d.getProperty)(c)} !== undefined`;return e?(0,d._)`${f} && ${i(a,b,c)}`:f},b.noPropertyInData=j,b.allSchemaProperties=k,b.schemaProperties=function(a,b){return k(b).filter(c=>!(0,e.alwaysValidSchema)(a,b[c]))},b.callValidateCode=function({schemaCode:a,data:b,it:{gen:c,topSchemaRef:e,schemaPath:g,errorPath:h},it:i},j,k,l){let m=l?(0,d._)`${a}, ${b}, ${e}${g}`:b,n=[[f.default.instancePath,(0,d.strConcat)(f.default.instancePath,h)],[f.default.parentData,i.parentData],[f.default.parentDataProperty,i.parentDataProperty],[f.default.rootData,f.default.rootData]];i.opts.dynamicRef&&n.push([f.default.dynamicAnchors,f.default.dynamicAnchors]);let o=(0,d._)`${m}, ${c.object(...n)}`;return k!==d.nil?(0,d._)`${j}.call(${k}, ${o})`:(0,d._)`${j}(${o})`};let l=(0,d._)`new RegExp`;b.usePattern=function({gen:a,it:{opts:b}},c){let e=b.unicodeRegExp?"u":"",{regExp:f}=b.code,h=f(c,e);return a.scopeValue("pattern",{key:h.toString(),ref:h,code:(0,d._)`${"new RegExp"===f.code?l:(0,g.useFunc)(a,f)}(${c}, ${e})`})},b.validateArray=function(a){let{gen:b,data:c,keyword:f,it:g}=a,h=b.name("valid");if(g.allErrors){let a=b.let("valid",!0);return i(()=>b.assign(a,!1)),a}return b.var(h,!0),i(()=>b.break()),h;function i(g){let i=b.const("len",(0,d._)`${c}.length`);b.forRange("i",0,i,c=>{a.subschema({keyword:f,dataProp:c,dataPropType:e.Type.Num},h),b.if((0,d.not)(h),g)})}},b.validateUnion=function(a){let{gen:b,schema:c,keyword:f,it:g}=a;if(!Array.isArray(c))throw Error("ajv implementation error");if(c.some(a=>(0,e.alwaysValidSchema)(g,a))&&!g.opts.unevaluated)return;let h=b.let("valid",!1),i=b.name("_valid");b.block(()=>c.forEach((c,e)=>{let g=a.subschema({keyword:f,schemaProp:e,compositeRule:!0},i);b.assign(h,(0,d._)`${h} || ${i}`),a.mergeValidEvaluated(g,i)||b.if((0,d.not)(h))})),a.result(h,()=>a.reset(),()=>a.error(!0))}},41204:a=>{a.exports=require("string_decoder")},41500:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.formatLimitDefinition=void 0;let d=c(13370),e=c(74489),f=e.operators,g={formatMaximum:{okStr:"<=",ok:f.LTE,fail:f.GT},formatMinimum:{okStr:">=",ok:f.GTE,fail:f.LT},formatExclusiveMaximum:{okStr:"<",ok:f.LT,fail:f.GTE},formatExclusiveMinimum:{okStr:">",ok:f.GT,fail:f.LTE}};b.formatLimitDefinition={keyword:Object.keys(g),type:"string",schemaType:"string",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,e.str)`should be ${g[a].okStr} ${b}`,params:({keyword:a,schemaCode:b})=>(0,e._)`{comparison: ${g[a].okStr}, limit: ${b}}`},code(a){let{gen:b,data:c,schemaCode:f,keyword:h,it:i}=a,{opts:j,self:k}=i;if(!j.validateFormats)return;let l=new d.KeywordCxt(i,k.RULES.all.format.definition,"format");function m(a){return(0,e._)`${a}.compare(${c}, ${f}) ${g[h].fail} 0`}l.$data?function(){let c=b.scopeValue("formats",{ref:k.formats,code:j.code.formats}),d=b.const("fmt",(0,e._)`${c}[${l.schemaCode}]`);a.fail$data((0,e.or)((0,e._)`typeof ${d} != "object"`,(0,e._)`${d} instanceof RegExp`,(0,e._)`typeof ${d}.compare != "function"`,m(d)))}():function(){let c=l.schema,d=k.formats[c];if(!d||!0===d)return;if("object"!=typeof d||d instanceof RegExp||"function"!=typeof d.compare)throw Error(`"${h}": format "${c}" does not define "compare" function`);let f=b.scopeValue("formats",{key:c,ref:d,code:j.code.formats?(0,e._)`${j.code.formats}${(0,e.getProperty)(c)}`:void 0});a.fail$data(m(f))}()},dependencies:["format"]},b.default=a=>(a.addKeyword(b.formatLimitDefinition),a)},41733:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.default={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:c(41033).validateUnion,error:{message:"must match a schema in anyOf"}}},44865:a=>{a.exports=import("@prisma/client/runtime/query_compiler_fast_bg.postgresql.wasm-base64.mjs")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46313:(a,b,c)=>{c.d(b,{a:()=>e});var d=c(33006);class e{constructor(a={}){this._started=!1,this._hasHandledRequest=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this.sessionIdGenerator=a.sessionIdGenerator,this._enableJsonResponse=a.enableJsonResponse??!1,this._eventStore=a.eventStore,this._onsessioninitialized=a.onsessioninitialized,this._onsessionclosed=a.onsessionclosed,this._allowedHosts=a.allowedHosts,this._allowedOrigins=a.allowedOrigins,this._enableDnsRebindingProtection=a.enableDnsRebindingProtection??!1,this._retryInterval=a.retryInterval}async start(){if(this._started)throw Error("Transport already started");this._started=!0}createJsonErrorResponse(a,b,c,d){let e={code:b,message:c};return d?.data!==void 0&&(e.data=d.data),new Response(JSON.stringify({jsonrpc:"2.0",error:e,id:null}),{status:a,headers:{"Content-Type":"application/json",...d?.headers}})}validateRequestHeaders(a){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let b=a.headers.get("host");if(!b||!this._allowedHosts.includes(b)){let a=`Invalid Host header: ${b}`;return this.onerror?.(Error(a)),this.createJsonErrorResponse(403,-32e3,a)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let b=a.headers.get("origin");if(b&&!this._allowedOrigins.includes(b)){let a=`Invalid Origin header: ${b}`;return this.onerror?.(Error(a)),this.createJsonErrorResponse(403,-32e3,a)}}}}async handleRequest(a,b){if(!this.sessionIdGenerator&&this._hasHandledRequest)throw Error("Stateless transport cannot be reused across requests. Create a new transport per request.");this._hasHandledRequest=!0;let c=this.validateRequestHeaders(a);if(c)return c;switch(a.method){case"POST":return this.handlePostRequest(a,b);case"GET":return this.handleGetRequest(a);case"DELETE":return this.handleDeleteRequest(a);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(a,b,c,d){if(!this._eventStore||d<"2025-11-25")return;let e=await this._eventStore.storeEvent(c,{}),f=`id: ${e}
22
22
  data:
23
23
 
24
24
  `;void 0!==this._retryInterval&&(f=`id: ${e}
@@ -29,7 +29,7 @@ data:
29
29
  `;return d&&(e+=`id: ${d}
30
30
  `),e+=`data: ${JSON.stringify(c)}
31
31
 
32
- `,a.enqueue(b.encode(e)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(a,b){try{let c,e,f,g=a.headers.get("accept");if(!g?.includes("application/json")||!g.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");let h=a.headers.get("content-type");if(!h||!h.includes("application/json"))return this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");let i={headers:Object.fromEntries(a.headers.entries())};if(b?.parsedBody!==void 0)c=b.parsedBody;else try{c=await a.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}try{e=Array.isArray(c)?c.map(a=>d.OR.parse(a)):[d.OR.parse(c)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let j=e.some(d.eK);if(j){if(this._initialized&&void 0!==this.sessionId)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(e.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!j){let b=this.validateSession(a);if(b)return b;let c=this.validateProtocolVersion(a);if(c)return c}if(!e.some(d.vo)){for(let a of e)this.onmessage?.(a,{authInfo:b?.authInfo,requestInfo:i});return new Response(null,{status:202})}let k=crypto.randomUUID(),l=e.find(a=>(0,d.eK)(a)),m=l?l.params.protocolVersion:a.headers.get("mcp-protocol-version")??d.PC;if(this._enableJsonResponse)return new Promise(a=>{for(let b of(this._streamMapping.set(k,{resolveJson:a,cleanup:()=>{this._streamMapping.delete(k)}}),e))(0,d.vo)(b)&&this._requestToStreamMapping.set(b.id,k);for(let a of e)this.onmessage?.(a,{authInfo:b?.authInfo,requestInfo:i})});let n=new TextEncoder,o=new ReadableStream({start:a=>{f=a},cancel:()=>{this._streamMapping.delete(k)}}),p={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};for(let a of(void 0!==this.sessionId&&(p["mcp-session-id"]=this.sessionId),e))(0,d.vo)(a)&&(this._streamMapping.set(k,{controller:f,encoder:n,cleanup:()=>{this._streamMapping.delete(k);try{f.close()}catch{}}}),this._requestToStreamMapping.set(a.id,k));for(let a of(await this.writePrimingEvent(f,n,k,m),e)){let c,e;(0,d.vo)(a)&&this._eventStore&&m>="2025-11-25"&&(c=()=>{this.closeSSEStream(a.id)},e=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(a,{authInfo:b?.authInfo,requestInfo:i,closeSSEStream:c,closeStandaloneSSEStream:e})}return new Response(o,{status:200,headers:p})}catch(a){return this.onerror?.(a),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(a)})}}async handleDeleteRequest(a){let b=this.validateSession(a);if(b)return b;let c=this.validateProtocolVersion(a);return c||(await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(a){if(void 0===this.sessionIdGenerator)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let b=a.headers.get("mcp-session-id");return b?b!==this.sessionId?this.createJsonErrorResponse(404,-32001,"Session not found"):void 0:this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required")}validateProtocolVersion(a){let b=a.headers.get("mcp-protocol-version");if(null!==b&&!d.Iu.includes(b))return this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${b} (supported versions: ${d.Iu.join(", ")})`)}async close(){this._streamMapping.forEach(({cleanup:a})=>{a()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(a){let b=this._requestToStreamMapping.get(a);if(!b)return;let c=this._streamMapping.get(b);c&&c.cleanup()}closeStandaloneSSEStream(){let a=this._streamMapping.get(this._standaloneSseStreamId);a&&a.cleanup()}async send(a,b){let c=b?.relatedRequestId;if(((0,d.ig)(a)||(0,d.LW)(a))&&(c=a.id),void 0===c){let b;if((0,d.ig)(a)||(0,d.LW)(a))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");this._eventStore&&(b=await this._eventStore.storeEvent(this._standaloneSseStreamId,a));let c=this._streamMapping.get(this._standaloneSseStreamId);if(void 0===c)return;c.controller&&c.encoder&&this.writeSSEEvent(c.controller,c.encoder,a,b);return}let e=this._requestToStreamMapping.get(c);if(!e)throw Error(`No connection established for request ID: ${String(c)}`);let f=this._streamMapping.get(e);if(!this._enableJsonResponse&&f?.controller&&f?.encoder){let b;this._eventStore&&(b=await this._eventStore.storeEvent(e,a)),this.writeSSEEvent(f.controller,f.encoder,a,b)}if((0,d.ig)(a)||(0,d.LW)(a)){this._requestResponseMap.set(c,a);let b=Array.from(this._requestToStreamMapping.entries()).filter(([a,b])=>b===e).map(([a])=>a);if(b.every(a=>this._requestResponseMap.has(a))){if(!f)throw Error(`No connection established for request ID: ${String(c)}`);if(this._enableJsonResponse&&f.resolveJson){let a={"Content-Type":"application/json"};void 0!==this.sessionId&&(a["mcp-session-id"]=this.sessionId);let c=b.map(a=>this._requestResponseMap.get(a));1===c.length?f.resolveJson(new Response(JSON.stringify(c[0]),{status:200,headers:a})):f.resolveJson(new Response(JSON.stringify(c),{status:200,headers:a}))}else f.cleanup();for(let a of b)this._requestResponseMap.delete(a),this._requestToStreamMapping.delete(a)}}}}},48161:a=>{a.exports=require("node:os")},50435:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.resolveSchema=b.getCompilingSchema=b.resolveRef=b.compileSchema=b.SchemaEnv=void 0;let d=c(74489),e=c(87294),f=c(31079),g=c(1171),h=c(23235),i=c(15746);class j{constructor(a){var b;let c;this.refs={},this.dynamicAnchors={},"object"==typeof a.schema&&(c=a.schema),this.schema=a.schema,this.schemaId=a.schemaId,this.root=a.root||this,this.baseId=null!=(b=a.baseId)?b:(0,g.normalizeId)(null==c?void 0:c[a.schemaId||"$id"]),this.schemaPath=a.schemaPath,this.localRefs=a.localRefs,this.meta=a.meta,this.$async=null==c?void 0:c.$async,this.refs={}}}function k(a){let b,c,h=m.call(this,a);if(h)return h;let j=(0,g.getFullPath)(this.opts.uriResolver,a.root.baseId),{es5:k,lines:l}=this.opts.code,{ownProperties:n}=this.opts,o=new d.CodeGen(this.scope,{es5:k,lines:l,ownProperties:n});a.$async&&(b=o.scopeValue("Error",{ref:e.default,code:(0,d._)`require("ajv/dist/runtime/validation_error").default`}));let p=o.scopeName("validate");a.validateName=p;let q={gen:o,allErrors:this.opts.allErrors,data:f.default.data,parentData:f.default.parentData,parentDataProperty:f.default.parentDataProperty,dataNames:[f.default.data],dataPathArr:[d.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",!0===this.opts.code.source?{ref:a.schema,code:(0,d.stringify)(a.schema)}:{ref:a.schema}),validateName:p,ValidationError:b,schema:a.schema,schemaEnv:a,rootId:j,baseId:a.baseId||j,schemaPath:d.nil,errSchemaPath:a.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,d._)`""`,opts:this.opts,self:this};try{this._compilations.add(a),(0,i.validateFunctionCode)(q),o.optimize(this.opts.code.optimize);let b=o.toString();c=`${o.scopeRefs(f.default.scope)}return ${b}`,this.opts.code.process&&(c=this.opts.code.process(c,a));let e=Function(`${f.default.self}`,`${f.default.scope}`,c)(this,this.scope.get());if(this.scope.value(p,{ref:e}),e.errors=null,e.schema=a.schema,e.schemaEnv=a,a.$async&&(e.$async=!0),!0===this.opts.code.source&&(e.source={validateName:p,validateCode:b,scopeValues:o._values}),this.opts.unevaluated){let{props:a,items:b}=q;e.evaluated={props:a instanceof d.Name?void 0:a,items:b instanceof d.Name?void 0:b,dynamicProps:a instanceof d.Name,dynamicItems:b instanceof d.Name},e.source&&(e.source.evaluated=(0,d.stringify)(e.evaluated))}return a.validate=e,a}catch(b){throw delete a.validate,delete a.validateName,c&&this.logger.error("Error compiling schema, function code:",c),b}finally{this._compilations.delete(a)}}function l(a){return(0,g.inlineRef)(a.schema,this.opts.inlineRefs)?a.schema:a.validate?a:k.call(this,a)}function m(a){for(let d of this._compilations){var b,c;if(b=d,c=a,b.schema===c.schema&&b.root===c.root&&b.baseId===c.baseId)return d}}function n(a,b){let c;for(;"string"==typeof(c=this.refs[b]);)b=c;return c||this.schemas[b]||o.call(this,a,b)}function o(a,b){let c=this.opts.uriResolver.parse(b),d=(0,g._getFullPath)(this.opts.uriResolver,c),e=(0,g.getFullPath)(this.opts.uriResolver,a.baseId,void 0);if(Object.keys(a.schema).length>0&&d===e)return q.call(this,c,a);let f=(0,g.normalizeId)(d),h=this.refs[f]||this.schemas[f];if("string"==typeof h){let b=o.call(this,a,h);if("object"!=typeof(null==b?void 0:b.schema))return;return q.call(this,c,b)}if("object"==typeof(null==h?void 0:h.schema)){if(h.validate||k.call(this,h),f===(0,g.normalizeId)(b)){let{schema:b}=h,{schemaId:c}=this.opts,d=b[c];return d&&(e=(0,g.resolveUrl)(this.opts.uriResolver,e,d)),new j({schema:b,schemaId:c,root:a,baseId:e})}return q.call(this,c,h)}}b.SchemaEnv=j,b.compileSchema=k,b.resolveRef=function(a,b,c){var d;c=(0,g.resolveUrl)(this.opts.uriResolver,b,c);let e=a.refs[c];if(e)return e;let f=n.call(this,a,c);if(void 0===f){let e=null==(d=a.localRefs)?void 0:d[c],{schemaId:g}=this.opts;e&&(f=new j({schema:e,schemaId:g,root:a,baseId:b}))}if(void 0!==f)return a.refs[c]=l.call(this,f)},b.getCompilingSchema=m,b.resolveSchema=o;let p=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function q(a,{baseId:b,schema:c,root:d}){var e;let f;if((null==(e=a.fragment)?void 0:e[0])!=="/")return;for(let d of a.fragment.slice(1).split("/")){if("boolean"==typeof c)return;let a=c[(0,h.unescapeFragment)(d)];if(void 0===a)return;let e="object"==typeof(c=a)&&c[this.opts.schemaId];!p.has(d)&&e&&(b=(0,g.resolveUrl)(this.opts.uriResolver,b,e))}if("boolean"!=typeof c&&c.$ref&&!(0,h.schemaHasRulesButRef)(c,this.RULES)){let a=(0,g.resolveUrl)(this.opts.uriResolver,b,c.$ref);f=o.call(this,d,a)}let{schemaId:i}=this.opts;if((f=f||new j({schema:c,schemaId:i,root:d,baseId:b})).schema!==f.root.schema)return f}},51455:a=>{a.exports=require("node:fs/promises")},52310:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(41033),e=c(74489);b.default={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:a})=>(0,e.str)`must match pattern "${a}"`,params:({schemaCode:a})=>(0,e._)`{pattern: ${a}}`},code(a){let{data:b,$data:c,schema:f,schemaCode:g,it:h}=a,i=h.opts.unicodeRegExp?"u":"",j=c?(0,e._)`(new RegExp(${g}, ${i}))`:(0,d.usePattern)(a,f);a.fail$data((0,e._)`!${j}.test(${b})`)}}},52597:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>m,OPTIONS:()=>n,POST:()=>l});var e=c(70936),f=c(46313),g=c(62936),h=c(63478),i=c(85034),j=c(65582),k=a([g,h,i]);[g,h,i]=k.then?(await k)():k;let o=j.vF.child({module:"mcp"}),p=new Map;async function l(a){try{let b,c,d=a.headers.get("authorization"),j=(0,h.Tr)(d);if(!j)return e.NextResponse.json({error:"Missing or invalid API key"},{status:401});let k=await (0,h.ek)(j);if(!k.valid||!k.agent)return e.NextResponse.json({error:k.error||"Invalid API key"},{status:401});let l=a.headers.get("x-synapse-project-group"),m=a.headers.get("x-synapse-project");l?b=await (0,i.T0)(k.agent.companyUuid,l):m&&(b=m.split(",").map(a=>a.trim()).filter(Boolean));let n={type:"agent",companyUuid:k.agent.companyUuid,actorUuid:k.agent.uuid,roles:k.agent.roles,ownerUuid:k.agent.ownerUuid??void 0,agentName:k.agent.name,researchProjectUuids:b},o=a.headers.get("mcp-session-id");if(o&&p.has(o)){c=p.get(o).transport;let a=p.get(o);a&&(a.lastActivity=Date.now())}else{if(o&&!p.has(o))return e.NextResponse.json({jsonrpc:"2.0",error:{code:-32001,message:"Session not found. Please reinitialize."},id:null},{status:404});let a=crypto.randomUUID();c=new f.a({sessionIdGenerator:()=>a});let b=(0,g.c)(n);await b.connect(c),p.set(a,{transport:c,lastActivity:Date.now()})}return await c.handleRequest(a)}catch(a){return o.error({err:a},"MCP endpoint error"),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function m(a){try{let b=a.headers.get("mcp-session-id");if(!b)return e.NextResponse.json({error:"Missing session ID"},{status:400});let c=p.get(b);return c&&(await c.transport.close(),p.delete(b)),new Response(null,{status:204})}catch(a){return o.error({err:a},"MCP session close error"),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function n(){return new Response(null,{status:204,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, mcp-session-id, mcp-protocol-version"}})}setInterval(function(){let a=Date.now();for(let[b,c]of p.entries())a-c.lastActivity>18e5&&(o.debug({sessionId:b},"cleaning up expired session"),c.transport.close().catch(a=>o.error({err:a},"session close error during cleanup")),p.delete(b))},3e5),d()}catch(a){d(a)}})},53053:a=>{a.exports=require("node:diagnostics_channel")},53235:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{H$:()=>i,Im:()=>p,XO:()=>o,Yz:()=>m,a1:()=>n,ed:()=>k,ie:()=>j,xv:()=>l});var e=c(52618),f=c(911),g=c(91997),h=a([e,g]);async function i(a){let b=await e.prisma.projectGroup.create({data:{companyUuid:a.companyUuid,name:a.name,description:a.description??""}});return{uuid:b.uuid,name:b.name,description:b.description,projectCount:0,createdAt:b.createdAt.toISOString(),updatedAt:b.updatedAt.toISOString()}}async function j(a){if(!await e.prisma.projectGroup.findFirst({where:{uuid:a.groupUuid,companyUuid:a.companyUuid}}))return null;let b=await e.prisma.projectGroup.update({where:{uuid:a.groupUuid},data:{...void 0!==a.name&&{name:a.name},...void 0!==a.description&&{description:a.description}}}),c=await e.prisma.researchProject.count({where:{groupUuid:a.groupUuid,companyUuid:a.companyUuid}});return{uuid:b.uuid,name:b.name,description:b.description,projectCount:c,createdAt:b.createdAt.toISOString(),updatedAt:b.updatedAt.toISOString()}}async function k(a,b){return!!await e.prisma.projectGroup.findFirst({where:{uuid:b,companyUuid:a}})&&(await e.prisma.researchProject.updateMany({where:{groupUuid:b,companyUuid:a},data:{groupUuid:null}}),await e.prisma.projectGroup.delete({where:{uuid:b}}),!0)}async function l(a,b){let c=await e.prisma.projectGroup.findFirst({where:{uuid:b,companyUuid:a}});if(!c)return null;let d=await e.prisma.researchProject.findMany({where:{groupUuid:b,companyUuid:a},select:{uuid:!0,name:!0,description:!0},orderBy:{updatedAt:"desc"}});return{uuid:c.uuid,name:c.name,description:c.description,projectCount:d.length,projects:d,createdAt:c.createdAt.toISOString(),updatedAt:c.updatedAt.toISOString()}}async function m(a,b){return e.prisma.projectGroup.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}})}async function n(a){let b=await e.prisma.projectGroup.findMany({where:{companyUuid:a},orderBy:{createdAt:"asc"}}),c=b.map(a=>a.uuid),d=c.length>0?await e.prisma.researchProject.groupBy({by:["groupUuid"],where:{companyUuid:a,groupUuid:{in:c}},_count:{_all:!0}}):[],f=new Map(d.map(a=>[a.groupUuid,a._count._all])),g=b.map(a=>({uuid:a.uuid,name:a.name,description:a.description,projectCount:f.get(a.uuid)??0,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()})),h=await e.prisma.researchProject.count({where:{companyUuid:a,groupUuid:null}});return{groups:g,total:b.length,ungroupedCount:h}}async function o(a,b,c){if(!await e.prisma.researchProject.findFirst({where:{uuid:b,companyUuid:a}})||c&&!await e.prisma.projectGroup.findFirst({where:{uuid:c,companyUuid:a}}))return null;let d=await e.prisma.researchProject.update({where:{uuid:b},data:{groupUuid:c}});return f.B.emitChange({companyUuid:a,researchProjectUuid:b,entityType:"research_project",entityUuid:b,action:"updated"}),{uuid:d.uuid,name:d.name,groupUuid:d.groupUuid}}async function p(a,b){let c=await e.prisma.projectGroup.findFirst({where:{uuid:b,companyUuid:a}});if(!c)return null;let d=await e.prisma.researchProject.findMany({where:{groupUuid:b,companyUuid:a},select:{uuid:!0,name:!0}}),f=d.map(a=>a.uuid);if(0===f.length)return{group:{uuid:c.uuid,name:c.name,description:c.description},stats:{projectCount:0,totalExperimentRuns:0,completedExperimentRuns:0,completionRate:0,openResearchQuestions:0,activeExperimentDesigns:0,totalTasks:0,completedTasks:0,openIdeas:0,activeProposals:0},projects:[],recentActivity:[]};let h=await (0,g.c8)(a,f),i=d.map(a=>{let b=h.get(a.uuid),c=b?.experimentRuns.total??0,d=b?.experimentRuns.completed??0;return{uuid:a.uuid,name:a.name,experimentRunCount:c,taskCount:c,completionRate:c>0?Math.round(d/c*100):0}}),j=Array.from(h.values()).reduce((a,b)=>(a.totalExperimentRuns+=b.experimentRuns.total,a.completedExperimentRuns+=b.experimentRuns.completed,a.openResearchQuestions+=b.researchQuestions.open+b.researchQuestions.elaborating,a.activeExperimentDesigns+=b.experimentDesigns.active,a),{totalExperimentRuns:0,completedExperimentRuns:0,openResearchQuestions:0,activeExperimentDesigns:0}),k=await e.prisma.activity.findMany({where:{researchProjectUuid:{in:f},companyUuid:a},orderBy:{createdAt:"desc"},take:20}),l=new Map(d.map(a=>[a.uuid,a.name]));return{group:{uuid:c.uuid,name:c.name,description:c.description},stats:{projectCount:d.length,totalExperimentRuns:j.totalExperimentRuns,completedExperimentRuns:j.completedExperimentRuns,completionRate:j.totalExperimentRuns>0?Math.round(j.completedExperimentRuns/j.totalExperimentRuns*100):0,openResearchQuestions:j.openResearchQuestions,activeExperimentDesigns:j.activeExperimentDesigns,totalTasks:j.totalExperimentRuns,completedTasks:j.completedExperimentRuns,openIdeas:j.openResearchQuestions,activeProposals:j.activeExperimentDesigns},projects:i,recentActivity:k.map(a=>({uuid:a.uuid,researchProjectUuid:a.researchProjectUuid,projectUuid:a.researchProjectUuid,projectName:l.get(a.researchProjectUuid)??"Unknown",targetType:a.targetType,targetUuid:a.targetUuid,action:a.action,value:a.value,actorType:a.actorType,actorUuid:a.actorUuid,createdAt:a.createdAt.toISOString()}))}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},55511:a=>{a.exports=require("crypto")},57335:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{CY:()=>k,KD:()=>i,SP:()=>l,Xj:()=>j});var e=c(52618),f=c(911),g=a([e]);function h(a){return{uuid:a.uuid,title:a.title,authors:a.authors,abstract:a.abstract,url:a.url,arxivId:a.arxivId,source:a.source,addedBy:a.addedBy,addedByAgentUuid:a.addedByAgentUuid,publishedYear:a.publishedYear,createdAt:a.createdAt.toISOString()}}async function i(a,b){return(await e.prisma.relatedWork.findMany({where:{companyUuid:a,researchProjectUuid:b},orderBy:{createdAt:"desc"}})).map(h)}async function j(a){let b=[{url:a.url}];a.arxivId&&b.push({arxivId:a.arxivId});let c=await e.prisma.relatedWork.findFirst({where:{companyUuid:a.companyUuid,researchProjectUuid:a.researchProjectUuid,OR:b},select:{uuid:!0}});if(c){let a=await e.prisma.relatedWork.findFirst({where:{uuid:c.uuid}});return{...h(a),isNew:!1}}let d=await e.prisma.relatedWork.create({data:{companyUuid:a.companyUuid,researchProjectUuid:a.researchProjectUuid,title:a.title,authors:a.authors??null,abstract:a.abstract??null,url:a.url,arxivId:a.arxivId??null,source:a.source,addedBy:a.addedBy,addedByAgentUuid:a.addedByAgentUuid??null,publishedYear:a.publishedYear??null}});return f.B.emitChange({companyUuid:a.companyUuid,researchProjectUuid:a.researchProjectUuid,entityType:"related_work",entityUuid:d.uuid,action:"created"}),{...h(d),isNew:!0}}async function k(a,b){await e.prisma.relatedWork.deleteMany({where:{uuid:b,companyUuid:a}})}async function l(a){let b=a.match(/arxiv\.org\/(?:abs|pdf|html)\/([0-9]+\.[0-9]+)/);if(!b)return null;let d=b[1];try{let a=await fetch(`https://api.semanticscholar.org/graph/v1/paper/ArXiv:${d}?fields=title,abstract,authors`,{signal:AbortSignal.timeout(1e4)});if(a.ok){let b=await a.json();if(b.title)return{title:b.title,authors:(b.authors??[]).map(a=>a.name).join(", "),abstract:b.abstract??"",arxivId:d}}}catch{}try{let{execFile:a}=await Promise.resolve().then(c.t.bind(c,31421,23)),{promisify:b}=await Promise.resolve().then(c.t.bind(c,57975,23)),e=b(a),{stdout:f}=await e("curl",["-sL","--max-time","15",`https://export.arxiv.org/api/query?id_list=${d}`],{timeout:2e4,maxBuffer:1048576}),g=f.split("<entry>");if(g.length<2)return null;let h=g[1],i=h.match(/<title>([\s\S]*?)<\/title>/),j=h.match(/<summary>([\s\S]*?)<\/summary>/),k=[...h.matchAll(/<name>(.*?)<\/name>/g)],l=i?.[1]?.replace(/\s+/g," ").trim()??"",m=j?.[1]?.replace(/\s+/g," ").trim()??"",n=k.map(a=>a[1]).join(", ");if(!l)return null;return{title:l,authors:n,abstract:m,arxivId:d}}catch{return null}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},57975:a=>{a.exports=require("node:util")},58030:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235),f=c(41033),g=c(74909);b.default={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:a}})=>(0,d.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,d._)`{limit: ${a}}`},code(a){let{schema:b,parentSchema:c,it:d}=a,{prefixItems:h}=c;d.items=!0,(0,e.alwaysValidSchema)(d,b)||(h?(0,g.validateAdditionalItems)(a,h):a.ok((0,f.validateArray)(a)))}}},58219:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(41033),e=c(74489),f=c(23235);b.default={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:a}})=>(0,e.str)`must have required property '${a}'`,params:({params:{missingProperty:a}})=>(0,e._)`{missingProperty: ${a}}`},code(a){let{gen:b,schema:c,schemaCode:g,data:h,$data:i,it:j}=a,{opts:k}=j;if(!i&&0===c.length)return;let l=c.length>=k.loopRequired;if(j.allErrors?function(){if(l||i)a.block$data(e.nil,m);else for(let b of c)(0,d.checkReportMissingProp)(a,b)}():function(){let f=b.let("missing");if(l||i){let c=b.let("valid",!0);a.block$data(c,()=>{var i,j;return i=f,j=c,void(a.setParams({missingProperty:i}),b.forOf(i,g,()=>{b.assign(j,(0,d.propertyInData)(b,h,i,k.ownProperties)),b.if((0,e.not)(j),()=>{a.error(),b.break()})},e.nil))}),a.ok(c)}else b.if((0,d.checkMissingProp)(a,c,f)),(0,d.reportMissingProp)(a,f),b.else()}(),k.strictRequired){let b=a.parentSchema.properties,{definedProperties:d}=a.it;for(let a of c)if((null==b?void 0:b[a])===void 0&&!d.has(a)){let b=j.schemaEnv.baseId+j.errSchemaPath,c=`required property "${a}" is not defined at "${b}" (strictRequired)`;(0,f.checkStrictMode)(j,c,j.opts.strictRequired)}}function m(){b.forOf("prop",g,c=>{a.setParams({missingProperty:c}),b.if((0,d.noPropertyInData)(b,h,c,k.ownProperties),()=>a.error())})}}}},58362:a=>{a.exports=function a(b,c){if(b===c)return!0;if(b&&c&&"object"==typeof b&&"object"==typeof c){if(b.constructor!==c.constructor)return!1;if(Array.isArray(b)){if((d=b.length)!=c.length)return!1;for(e=d;0!=e--;)if(!a(b[e],c[e]))return!1;return!0}if(b.constructor===RegExp)return b.source===c.source&&b.flags===c.flags;if(b.valueOf!==Object.prototype.valueOf)return b.valueOf()===c.valueOf();if(b.toString!==Object.prototype.toString)return b.toString()===c.toString();if((d=(f=Object.keys(b)).length)!==Object.keys(c).length)return!1;for(e=d;0!=e--;)if(!Object.prototype.hasOwnProperty.call(c,f[e]))return!1;for(e=d;0!=e--;){var d,e,f,g=f[e];if(!a(b[g],c[g]))return!1}return!0}return b!=b&&c!=c}},61437:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateKeywordUsage=b.validSchemaType=b.funcKeywordCode=b.macroKeywordCode=void 0;let d=c(74489),e=c(31079),f=c(41033),g=c(66984);function h(a){let{gen:b,data:c,it:e}=a;b.if(e.parentData,()=>b.assign(c,(0,d._)`${e.parentData}[${e.parentDataProperty}]`))}function i(a,b,c){if(void 0===c)throw Error(`keyword "${b}" failed to compile`);return a.scopeValue("keyword","function"==typeof c?{ref:c}:{ref:c,code:(0,d.stringify)(c)})}b.macroKeywordCode=function(a,b){let{gen:c,keyword:e,schema:f,parentSchema:g,it:h}=a,j=b.macro.call(h.self,f,g,h),k=i(c,e,j);!1!==h.opts.validateSchema&&h.self.validateSchema(j,!0);let l=c.name("valid");a.subschema({schema:j,schemaPath:d.nil,errSchemaPath:`${h.errSchemaPath}/${e}`,topSchemaRef:k,compositeRule:!0},l),a.pass(l,()=>a.error(!0))},b.funcKeywordCode=function(a,b){var c;let{gen:j,keyword:k,schema:l,parentSchema:m,$data:n,it:o}=a;!function({schemaEnv:a},b){if(b.async&&!a.$async)throw Error("async keyword in sync schema")}(o,b);let p=i(j,k,!n&&b.compile?b.compile.call(o.self,l,m,o):b.validate),q=j.let("valid");function r(c=b.async?(0,d._)`await `:d.nil){let g=o.opts.passContext?e.default.this:e.default.self,h=!("compile"in b&&!n||!1===b.schema);j.assign(q,(0,d._)`${c}${(0,f.callValidateCode)(a,p,g,h)}`,b.modifying)}function s(a){var c;j.if((0,d.not)(null!=(c=b.valid)?c:q),a)}a.block$data(q,function(){if(!1===b.errors)r(),b.modifying&&h(a),s(()=>a.error());else{let c=b.async?function(){let a=j.let("ruleErrs",null);return j.try(()=>r((0,d._)`await `),b=>j.assign(q,!1).if((0,d._)`${b} instanceof ${o.ValidationError}`,()=>j.assign(a,(0,d._)`${b}.errors`),()=>j.throw(b))),a}():function(){let a=(0,d._)`${p}.errors`;return j.assign(a,null),r(d.nil),a}();b.modifying&&h(a),s(()=>(function(a,b){let{gen:c}=a;c.if((0,d._)`Array.isArray(${b})`,()=>{c.assign(e.default.vErrors,(0,d._)`${e.default.vErrors} === null ? ${b} : ${e.default.vErrors}.concat(${b})`).assign(e.default.errors,(0,d._)`${e.default.vErrors}.length`),(0,g.extendErrors)(a)},()=>a.error())})(a,c))}}),a.ok(null!=(c=b.valid)?c:q)},b.validSchemaType=function(a,b,c=!1){return!b.length||b.some(b=>"array"===b?Array.isArray(a):"object"===b?a&&"object"==typeof a&&!Array.isArray(a):typeof a==b||c&&void 0===a)},b.validateKeywordUsage=function({schema:a,opts:b,self:c,errSchemaPath:d},e,f){if(Array.isArray(e.keyword)?!e.keyword.includes(f):e.keyword!==f)throw Error("ajv implementation error");let g=e.dependencies;if(null==g?void 0:g.some(b=>!Object.prototype.hasOwnProperty.call(a,b)))throw Error(`parent schema must have dependencies of ${f}: ${g.join(",")}`);if(e.validateSchema&&!e.validateSchema(a[f])){let a=`keyword "${f}" value is invalid at path "${d}": `+c.errorsText(e.validateSchema.errors);if("log"===b.validateSchema)c.logger.error(a);else throw Error(a)}}},62936:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{c:()=>n});var e=c(28708),f=c(31270),g=c(16083),h=c(73994),i=c(38404),j=c(92093),k=c(71084),l=c(70858),m=a([f,g,h,i,j,k,l]);function n(a){let b=new e._({name:"synapse",version:"1.0.0"}),c=a.roles||[],d=(...a)=>c.some(b=>a.includes(b));return(0,l.ji)(b,a),(0,f.q)(b,a),(0,g.r)(b,a),d("pre_research")&&(0,i.W)(b,a),d("research","report","research_lead","research_lead_agent")&&(0,j.W)(b,a),d("experiment","researcher","researcher_agent")&&(0,h.w)(b,a),d("admin","pi","pi_agent")&&(0,k.C)(b,a),b}[f,g,h,i,j,k,l]=m.then?(await m)():m,d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63089:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j:()=>m,m:()=>n});var e=c(52618),f=c(75700),g=c(76872),h=a([e,f,g]);async function i(a){let b=await (0,g.Z_)(a.assigneeType,a.assigneeUuid);return{uuid:a.uuid,title:a.title,content:a.content,status:a.status,assignee:b,assignedAt:a.assignedAt?.toISOString()??null,project:a.researchProject,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function j(a){let b=await (0,g.Z_)(a.assigneeType,a.assigneeUuid);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,assignee:b,assignedAt:a.assignedAt?.toISOString()??null,project:a.researchProject,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function k(a){let b=await (0,g.LS)(a.createdByUuid);return{uuid:a.uuid,title:a.title,content:a.content,status:a.status,createdBy:b,createdAt:a.createdAt.toISOString()}}async function l(a){let b=await (0,g.LS)(a.createdByUuid);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,createdBy:b,createdAt:a.createdAt.toISOString()}}async function m(a,b){let c=function(a){let b=[];return(0,f.yh)(a)?(b.push({assigneeType:"agent",assigneeUuid:a.actorUuid}),a.ownerUuid&&b.push({assigneeType:"user",assigneeUuid:a.ownerUuid})):b.push({assigneeType:"user",assigneeUuid:a.actorUuid}),b}(a),[d,g]=await Promise.all([e.prisma.researchQuestion.findMany({where:{companyUuid:a.companyUuid,...b&&b.length>0&&{researchProjectUuid:{in:b}},OR:c,status:{notIn:["completed","closed"]}},select:{uuid:!0,title:!0,content:!0,status:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,researchProject:{select:{uuid:!0,name:!0}},createdAt:!0,updatedAt:!0},orderBy:{assignedAt:"desc"}}),e.prisma.experimentRun.findMany({where:{companyUuid:a.companyUuid,...b&&b.length>0&&{researchProjectUuid:{in:b}},OR:c,status:{notIn:["done","closed"]}},select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,researchProject:{select:{uuid:!0,name:!0}},createdAt:!0,updatedAt:!0},orderBy:[{priority:"desc"},{assignedAt:"desc"}]})]),[h,k]=await Promise.all([Promise.all(d.map(i)),Promise.all(g.map(j))]);return{researchQuestions:h,experimentRuns:k}}async function n(a,b,c,d,f){let g={researchProjectUuid:b,companyUuid:a,status:"open"},h={...g,...f&&f.length>0&&{experimentDesignUuid:{in:f}}},[i,j]=await Promise.all([c?e.prisma.researchQuestion.findMany({where:g,select:{uuid:!0,title:!0,content:!0,status:!0,createdByUuid:!0,createdAt:!0},orderBy:{createdAt:"desc"},take:50}):[],d?e.prisma.experimentRun.findMany({where:h,select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,createdByUuid:!0,createdAt:!0},orderBy:[{priority:"desc"},{createdAt:"desc"}],take:50}):[]]),[m,n]=await Promise.all([Promise.all(i.map(k)),Promise.all(j.map(l))]);return{researchQuestions:m,experimentRuns:n}}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},63861:(a,b,c)=>{function d(a){return{name:a.name,description:a.description,inputSchema:a.inputSchema,execute:b=>a.execute(b)}}function e(a){return a}function f(a,b){b.forEach(b=>{a.registerTool(b.name,{description:b.description,inputSchema:b.inputSchema},b.execute)})}function g(a,b){return{content:[{type:"text",text:a}],...b?{isError:!0}:{}}}function h(a,b){return g(JSON.stringify(a,null,2),b)}c.d(b,{D8:()=>f,Ht:()=>e,V4:()=>d,XP:()=>h,xv:()=>g})},64939:a=>{a.exports=import("pg")},66984:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.extendErrors=b.resetErrorsCount=b.reportExtraError=b.reportError=b.keyword$DataError=b.keywordError=void 0;let d=c(74489),e=c(23235),f=c(31079);function g(a,b){let c=a.const("err",b);a.if((0,d._)`${f.default.vErrors} === null`,()=>a.assign(f.default.vErrors,(0,d._)`[${c}]`),(0,d._)`${f.default.vErrors}.push(${c})`),a.code((0,d._)`${f.default.errors}++`)}function h(a,b){let{gen:c,validateName:e,schemaEnv:f}=a;f.$async?c.throw((0,d._)`new ${a.ValidationError}(${b})`):(c.assign((0,d._)`${e}.errors`,b),c.return(!1))}b.keywordError={message:({keyword:a})=>(0,d.str)`must pass "${a}" keyword validation`},b.keyword$DataError={message:({keyword:a,schemaType:b})=>b?(0,d.str)`"${a}" keyword must be ${b} ($data)`:(0,d.str)`"${a}" keyword is invalid ($data)`},b.reportError=function(a,c=b.keywordError,e,f){let{it:i}=a,{gen:k,compositeRule:l,allErrors:m}=i,n=j(a,c,e);(null!=f?f:l||m)?g(k,n):h(i,(0,d._)`[${n}]`)},b.reportExtraError=function(a,c=b.keywordError,d){let{it:e}=a,{gen:i,compositeRule:k,allErrors:l}=e;g(i,j(a,c,d)),k||l||h(e,f.default.vErrors)},b.resetErrorsCount=function(a,b){a.assign(f.default.errors,b),a.if((0,d._)`${f.default.vErrors} !== null`,()=>a.if(b,()=>a.assign((0,d._)`${f.default.vErrors}.length`,b),()=>a.assign(f.default.vErrors,null)))},b.extendErrors=function({gen:a,keyword:b,schemaValue:c,data:e,errsCount:g,it:h}){if(void 0===g)throw Error("ajv implementation error");let i=a.name("err");a.forRange("i",g,f.default.errors,g=>{a.const(i,(0,d._)`${f.default.vErrors}[${g}]`),a.if((0,d._)`${i}.instancePath === undefined`,()=>a.assign((0,d._)`${i}.instancePath`,(0,d.strConcat)(f.default.instancePath,h.errorPath))),a.assign((0,d._)`${i}.schemaPath`,(0,d.str)`${h.errSchemaPath}/${b}`),h.opts.verbose&&(a.assign((0,d._)`${i}.schema`,c),a.assign((0,d._)`${i}.data`,e))})};let i={keyword:new d.Name("keyword"),schemaPath:new d.Name("schemaPath"),params:new d.Name("params"),propertyName:new d.Name("propertyName"),message:new d.Name("message"),schema:new d.Name("schema"),parentSchema:new d.Name("parentSchema")};function j(a,b,c){let{createErrors:g}=a.it;return!1===g?(0,d._)`{}`:function(a,b,c={}){let{gen:g,it:h}=a,j=[function({errorPath:a},{instancePath:b}){let c=b?(0,d.str)`${a}${(0,e.getErrorPath)(b,e.Type.Str)}`:a;return[f.default.instancePath,(0,d.strConcat)(f.default.instancePath,c)]}(h,c),function({keyword:a,it:{errSchemaPath:b}},{schemaPath:c,parentSchema:f}){let g=f?b:(0,d.str)`${b}/${a}`;return c&&(g=(0,d.str)`${g}${(0,e.getErrorPath)(c,e.Type.Str)}`),[i.schemaPath,g]}(a,c)];return function(a,{params:b,message:c},e){let{keyword:g,data:h,schemaValue:j,it:k}=a,{opts:l,propertyName:m,topSchemaRef:n,schemaPath:o}=k;e.push([i.keyword,g],[i.params,"function"==typeof b?b(a):b||(0,d._)`{}`]),l.messages&&e.push([i.message,"function"==typeof c?c(a):c]),l.verbose&&e.push([i.schema,j],[i.parentSchema,(0,d._)`${n}${o}`],[f.default.data,h]),m&&e.push([i.propertyName,m])}(a,b,j),g.object(...j)}(a,b,c)}},70511:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:a})=>(0,d.str)`must be multiple of ${a}`,params:({schemaCode:a})=>(0,d._)`{multipleOf: ${a}}`},code(a){let{gen:b,data:c,schemaCode:e,it:f}=a,g=f.opts.multipleOfPrecision,h=b.let("res"),i=g?(0,d._)`Math.abs(Math.round(${h}) - ${h}) > 1e-${g}`:(0,d._)`${h} !== parseInt(${h})`;a.fail$data((0,d._)`(${e} === 0 || (${h} = ${c}/${e}, ${i}))`)}}},70858:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{ji:()=>k});var e=c(911),f=c(52618),g=c(65582),h=a([f]);f=(h.then?(await h)():h)[0];let l=g.vF.child({module:"mcp"}),m={experimentUuid:"experiment",researchQuestionUuid:"research_question",documentUuid:"document"},n={experiment:"experiment",research_question:"research_question",document:"document"},o=["synapse_get_","synapse_list_","synapse_search"];async function i(a,b,c){let d=`${a}:${b}`,e=c.get(d);if(e)return e;try{let e=null;switch(a){case"experiment":{let a=await f.prisma.experiment.findFirst({where:{uuid:b},select:{researchProject:{select:{uuid:!0}}}});e=a?.researchProject?.uuid??null;break}case"research_question":{let a=await f.prisma.researchQuestion.findFirst({where:{uuid:b},select:{researchProject:{select:{uuid:!0}}}});e=a?.researchProject?.uuid??null;break}case"document":{let a=await f.prisma.document.findFirst({where:{uuid:b},select:{researchProject:{select:{uuid:!0}}}});e=a?.researchProject?.uuid??null}}return e&&c.set(d,e),e}catch(a){return l.warn({err:a},"failed to resolve projectUuid"),null}}async function j(a,b,c,d){try{let f=a.researchProjectUuid;if(f||(f=await i(a.entityType,a.entityUuid,d)??void 0),f){let d={type:"presence",companyUuid:c.companyUuid,researchProjectUuid:f,entityType:a.entityType,entityUuid:a.entityUuid,agentUuid:c.actorUuid,agentName:c.agentName,action:o.some(a=>b.startsWith(a))?"view":"mutate",timestamp:Date.now()};e.B.emitPresence(d)}}catch(a){l.warn({err:a},"failed to emit presence event")}}function k(a,b){let c=new Map,d=a.registerTool.bind(a);a.registerTool=function(a,e,f){let g=async(d,e)=>{let g=function(a){for(let[b,c]of Object.entries(m))if("string"==typeof a[b])return{entityType:c,entityUuid:a[b],researchProjectUuid:"string"==typeof a.researchProjectUuid?a.researchProjectUuid:void 0};if("string"==typeof a.targetUuid&&"string"==typeof a.targetType){let b=n[a.targetType];if(b)return{entityType:b,entityUuid:a.targetUuid,researchProjectUuid:"string"==typeof a.researchProjectUuid?a.researchProjectUuid:void 0}}return null}(d);return g&&j(g,a,b,c),f(d,e)};return d(a,e,g)}}d()}catch(a){d(a)}})},70959:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235),f=c(91442);b.default={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:a})=>(0,d._)`{allowedValue: ${a}}`},code(a){let{gen:b,data:c,$data:g,schemaCode:h,schema:i}=a;g||i&&"object"==typeof i?a.fail$data((0,d._)`!${(0,e.useFunc)(b,f.default)}(${c}, ${h})`):a.fail((0,d._)`${i} !== ${c}`)}}},71084:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C:()=>n});var e=c(77258),f=c(85034),g=c(90136),h=c(8777),i=c(88437),j=c(53235),k=c(22425),l=c(25191),m=a([f,g,h,i,j,k,l]);function n(a,b){a.registerTool("synapse_create_research_project",{description:"Create a new research project (PI exclusive, acts on behalf of humans). To assign to a project group, first call synapse_get_project_groups to list available groups, then pass the groupUuid.",inputSchema:e.Ikc({name:e.YjP().describe("Research Project name"),description:e.YjP().optional().describe("Research Project description"),groupUuid:e.YjP().optional().describe("Optional project group UUID to assign this project to. Use synapse_get_project_groups to list available groups.")})},async({name:a,description:c,groupUuid:d})=>{let e=await f.l({companyUuid:b.companyUuid,name:a,description:c||null,groupUuid:d||null});return{content:[{type:"text",text:JSON.stringify({uuid:e.uuid,name:e.name,groupUuid:e.groupUuid})}]}}),a.registerTool("synapse_review_research_question",{description:"Review a research idea and either accept it into the execution pipeline or reject it back out of scope.",inputSchema:e.Ikc({researchQuestionUuid:e.YjP(),decision:e.k5n(["accepted","rejected"]),reviewNote:e.YjP().optional()})},async({researchQuestionUuid:a,decision:c,reviewNote:d})=>{let e=await g._W(b.companyUuid,a);if(!e)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};let f=await g.e0(b.companyUuid,a,c,b.actorUuid,d||null);return await i.E1({companyUuid:b.companyUuid,researchProjectUuid:e.researchProjectUuid,targetType:"research_question",targetUuid:a,actorType:"agent",actorUuid:b.actorUuid,action:"accepted"===c?"approved":"rejected",value:d?{reviewNote:d}:void 0}),{content:[{type:"text",text:JSON.stringify(f,null,2)}]}}),a.registerTool("synapse_delete_research_question",{description:"Delete a Research Question (PI exclusive, can delete any Research Question)",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>await g._W(b.companyUuid,a)?(await g.ph(a),{content:[{type:"text",text:`Research Question ${a} deleted`}]}):{content:[{type:"text",text:"Research Question not found"}],isError:!0}),a.registerTool("synapse_delete_document",{description:"Delete a Document (PI exclusive, can delete any Document)",inputSchema:e.Ikc({documentUuid:e.YjP().describe("Document UUID")})},async({documentUuid:a})=>await h.YE(b.companyUuid,a)?(await h.Nn(a),{content:[{type:"text",text:`Document ${a} deleted`}]}):{content:[{type:"text",text:"Document not found"}],isError:!0}),a.registerTool("synapse_close_research_question",{description:"Close a Research Question (any status -> closed, PI exclusive)",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>{let c=await g._W(b.companyUuid,a);if(!c)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};if("closed"===c.status)return{content:[{type:"text",text:"Research Question is already in closed status"}],isError:!0};let d=await g.pg(a,b.companyUuid,{status:"closed"});return await i.E1({companyUuid:b.companyUuid,researchProjectUuid:c.researchProjectUuid,targetType:"research_question",targetUuid:a,actorType:"agent",actorUuid:b.actorUuid,action:"closed"}),{content:[{type:"text",text:JSON.stringify({uuid:d.uuid,status:d.status})}]}}),a.registerTool("synapse_create_project_group",{description:"Create a new project group (PI exclusive)",inputSchema:e.Ikc({name:e.YjP().describe("Project group name"),description:e.YjP().optional().describe("Project group description")})},async({name:a,description:c})=>{let d=await j.H$({companyUuid:b.companyUuid,name:a,description:c||null});return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}),a.registerTool("synapse_update_project_group",{description:"Update a project group (PI exclusive)",inputSchema:e.Ikc({groupUuid:e.YjP().describe("Project Group UUID"),name:e.YjP().optional().describe("New group name"),description:e.YjP().optional().describe("New group description")})},async({groupUuid:a,name:c,description:d})=>{let e=await j.ie({companyUuid:b.companyUuid,groupUuid:a,name:c,description:d});return e?{content:[{type:"text",text:JSON.stringify(e,null,2)}]}:{content:[{type:"text",text:"Project group not found"}],isError:!0}}),a.registerTool("synapse_delete_project_group",{description:"Delete a project group (PI exclusive). Projects in the group become ungrouped.",inputSchema:e.Ikc({groupUuid:e.YjP().describe("Project Group UUID")})},async({groupUuid:a})=>await j.ed(b.companyUuid,a)?{content:[{type:"text",text:`Project group ${a} deleted`}]}:{content:[{type:"text",text:"Project group not found"}],isError:!0}),a.registerTool("synapse_move_research_project_to_group",{description:"Move a research project to a different group or ungroup it (PI exclusive). Set groupUuid to null to ungroup.",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),groupUuid:e.YjP().nullable().describe("Target Project Group UUID (null to ungroup)")})},async({researchProjectUuid:a,groupUuid:c})=>{let d=await j.XO(b.companyUuid,a,c);return d?{content:[{type:"text",text:JSON.stringify(d,null,2)}]}:{content:[{type:"text",text:"Research Project or project group not found"}],isError:!0}}),a.registerTool("synapse_verify_reproducibility",{description:"Mark an experiment as verified for reproducibility",inputSchema:e.Ikc({registryUuid:e.YjP()})},async a=>{let c=await k.Mv(b.companyUuid,a.registryUuid);return{content:[{type:"text",text:JSON.stringify(c,null,2)}]}}),a.registerTool("synapse_set_active_baseline",{description:"Set the active baseline for a research project (deactivates all others)",inputSchema:e.Ikc({baselineUuid:e.YjP()})},async a=>{let c=await l.Or(b.companyUuid,a.baselineUuid);return{content:[{type:"text",text:JSON.stringify(c,null,2)}]}})}[f,g,h,i,j,k,l]=m.then?(await m)():m,d()}catch(a){d(a)}})},71296:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(41033),e=c(74489),f=c(31079),g=c(23235);b.default={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:a})=>(0,e._)`{additionalProperty: ${a.additionalProperty}}`},code(a){let{gen:b,schema:c,parentSchema:h,data:i,errsCount:j,it:k}=a;if(!j)throw Error("ajv implementation error");let{allErrors:l,opts:m}=k;if(k.props=!0,"all"!==m.removeAdditional&&(0,g.alwaysValidSchema)(k,c))return;let n=(0,d.allSchemaProperties)(h.properties),o=(0,d.allSchemaProperties)(h.patternProperties);function p(a){b.code((0,e._)`delete ${i}[${a}]`)}function q(d){if("all"===m.removeAdditional||m.removeAdditional&&!1===c)return void p(d);if(!1===c){a.setParams({additionalProperty:d}),a.error(),l||b.break();return}if("object"==typeof c&&!(0,g.alwaysValidSchema)(k,c)){let c=b.name("valid");"failing"===m.removeAdditional?(r(d,c,!1),b.if((0,e.not)(c),()=>{a.reset(),p(d)})):(r(d,c),l||b.if((0,e.not)(c),()=>b.break()))}}function r(b,c,d){let e={keyword:"additionalProperties",dataProp:b,dataPropType:g.Type.Str};!1===d&&Object.assign(e,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema(e,c)}b.forIn("key",i,c=>{n.length||o.length?b.if(function(c){let f;if(n.length>8){let a=(0,g.schemaRefOrVal)(k,h.properties,"properties");f=(0,d.isOwnProperty)(b,a,c)}else f=n.length?(0,e.or)(...n.map(a=>(0,e._)`${c} === ${a}`)):e.nil;return o.length&&(f=(0,e.or)(f,...o.map(b=>(0,e._)`${(0,d.usePattern)(a,b)}.test(${c})`))),(0,e.not)(f)}(c),()=>q(c)):q(c)}),a.ok((0,e._)`${j} === ${f.default.errors}`)}}},71339:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235),f=c(91442);b.default={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:a})=>(0,d._)`{allowedValues: ${a}}`},code(a){let b,c,{gen:g,data:h,$data:i,schema:j,schemaCode:k,it:l}=a;if(!i&&0===j.length)throw Error("enum must have non-empty array");let m=j.length>=l.opts.loopEnum,n=()=>null!=b?b:b=(0,e.useFunc)(g,f.default);if(m||i)c=g.let("valid"),a.block$data(c,function(){g.assign(c,!1),g.forOf("v",k,a=>g.if((0,d._)`${n()}(${h}, ${a})`,()=>g.assign(c,!0).break()))});else{if(!Array.isArray(j))throw Error("ajv implementation error");let a=g.const("vSchema",k);c=(0,d.or)(...j.map((b,c)=>(function(a,b){let c=j[b];return"object"==typeof c&&null!==c?(0,d._)`${n()}(${h}, ${a}[${b}])`:(0,d._)`${h} === ${c}`})(a,c)))}a.pass(c)}}},71360:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.DiscrError=void 0,function(a){a.Tag="tag",a.Mapping="mapping"}(c||(b.DiscrError=c={}))},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73566:a=>{a.exports=require("worker_threads")},73652:a=>{let b=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),c=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function d(a){let b="",c=0,d=0;for(d=0;d<a.length;d++)if(48!==(c=a[d].charCodeAt(0))){if(!(c>=48&&c<=57||c>=65&&c<=70||c>=97&&c<=102))return"";b+=a[d];break}for(d+=1;d<a.length;d++){if(!((c=a[d].charCodeAt(0))>=48&&c<=57||c>=65&&c<=70||c>=97&&c<=102))return"";b+=a[d]}return b}function e(a){return a.length=0,!0}function f(a,b,c){if(a.length){let e=d(a);if(""===e)return c.error=!0,!1;b.push(e),a.length=0}return!0}function g(a){if(2>function(a,b){let c=0;for(let b=0;b<a.length;b++)":"===a[b]&&c++;return c}(a,":"))return{host:a,isIPV6:!1};let b=function(a){let b=0,c={error:!1,address:"",zone:""},g=[],h=[],i=!1,j=!1,k=f;for(let d=0;d<a.length;d++){let f=a[d];if("["!==f&&"]"!==f)if(":"===f){if(!0===i&&(j=!0),!k(h,g,c))break;if(++b>7){c.error=!0;break}d>0&&":"===a[d-1]&&(i=!0),g.push(":");continue}else if("%"===f){if(!k(h,g,c))break;k=e}else{h.push(f);continue}}return h.length&&(k===e?c.zone=h.join(""):j?g.push(h.join("")):g.push(d(h))),c.address=g.join(""),c}(a);if(b.error)return{host:a,isIPV6:!1};{let a=b.address,c=b.address;return b.zone&&(a+="%"+b.zone,c+="%25"+b.zone),{host:a,isIPV6:!0,escapedHost:c}}}a.exports={nonSimpleDomain:RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u),recomposeAuthority:function(a){let b=[];if(void 0!==a.userinfo&&(b.push(a.userinfo),b.push("@")),void 0!==a.host){let d=unescape(a.host);if(!c(d)){let b=g(d);d=!0===b.isIPV6?`[${b.escapedHost}]`:a.host}b.push(d)}return("number"==typeof a.port||"string"==typeof a.port)&&(b.push(":"),b.push(String(a.port))),b.length?b.join(""):void 0},normalizeComponentEncoding:function(a,b){let c=!0!==b?escape:unescape;return void 0!==a.scheme&&(a.scheme=c(a.scheme)),void 0!==a.userinfo&&(a.userinfo=c(a.userinfo)),void 0!==a.host&&(a.host=c(a.host)),void 0!==a.path&&(a.path=c(a.path)),void 0!==a.query&&(a.query=c(a.query)),void 0!==a.fragment&&(a.fragment=c(a.fragment)),a},removeDotSegments:function(a){let b=a,c=[],d=-1,e=0;for(;e=b.length;){if(1===e)if("."===b)break;else if("/"===b){c.push("/");break}else{c.push(b);break}if(2===e){if("."===b[0]){if("."===b[1])break;else if("/"===b[1]){b=b.slice(2);continue}}else if("/"===b[0]&&("."===b[1]||"/"===b[1])){c.push("/");break}}else if(3===e&&"/.."===b){0!==c.length&&c.pop(),c.push("/");break}if("."===b[0]){if("."===b[1]){if("/"===b[2]){b=b.slice(3);continue}}else if("/"===b[1]){b=b.slice(2);continue}}else if("/"===b[0]&&"."===b[1]){if("/"===b[2]){b=b.slice(2);continue}else if("."===b[2]&&"/"===b[3]){b=b.slice(3),0!==c.length&&c.pop();continue}}if(-1===(d=b.indexOf("/",1))){c.push(b);break}c.push(b.slice(0,d)),b=b.slice(d)}return c.join("")},isIPv4:c,isUUID:b,normalizeIPv6:g,stringArrayToHexStripped:d}},73994:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>q});var e=c(77258),f=c(52618),g=c(88437),h=c(33073),i=c(48499),j=c(46499),k=c(87797),l=c(77064),m=c(37943),n=a([f,g,h,i,j,k,l,m]);function o(a){return{ssh:a.sshHost||a.sshUser||a.sshPort?{host:a.sshHost,user:a.sshUser,port:a.sshPort??22,keyName:a.sshKeyName??null,managedKeyAvailable:a.managedKeyAvailable??!1,accessBundleTool:"synapse_get_node_access_bundle"}:null,ssmTarget:a.ssmTarget}}function p(a,b){return!a||"agent"===a.type&&a.uuid===b.actorUuid||"user"===a.type&&a.uuid===b.ownerUuid}function q(a,b){a.registerTool("synapse_list_compute_nodes",{description:"List compute pools, nodes, SSH/SSM access details, and the status of every GPU.",inputSchema:e.Ikc({onlyAvailable:e.zMY().default(!1),researchProjectUuid:e.YjP().optional()})},async({onlyAvailable:a,researchProjectUuid:c})=>{let d=await h.XH(b.companyUuid);if(c){let a=await f.prisma.researchProject.findFirst({where:{uuid:c,companyUuid:b.companyUuid},select:{computePoolUuid:!0}});a?.computePoolUuid&&(d=d.filter(b=>b.uuid===a.computePoolUuid))}let e=d.map(b=>({uuid:b.uuid,name:b.name,description:b.description,nodes:b.nodes.map(b=>({uuid:b.uuid,label:b.label,lifecycle:b.lifecycle,ec2InstanceId:b.ec2InstanceId,instanceType:b.instanceType,region:b.region,inventoryPending:b.inventoryPending,access:o(b),lastReportedAt:b.lastReportedAt,gpus:b.gpus.filter(b=>!a||"available"===b.computedStatus).map(a=>({uuid:a.uuid,slotIndex:a.slotIndex,model:a.model,memoryGb:a.memoryGb,status:a.activeReservation?`occupied:${a.activeReservation.itemTitle}`:a.computedStatus,utilizationPercent:a.utilizationPercent,memoryUsedGb:a.memoryUsedGb,temperatureC:a.temperatureC,activeReservation:a.activeReservation,lastReportedAt:a.lastReportedAt}))}))})),g=e.flatMap(a=>a.nodes.map(b=>({...b,pool:{uuid:a.uuid,name:a.name}})));return{content:[{type:"text",text:JSON.stringify({pools:e,nodes:g},null,2)}]}}),a.registerTool("synapse_get_node_access_bundle",{description:"Return a managed SSH access bundle for a node assigned to your current experiment. Use this instead of any server-local key path.",inputSchema:e.Ikc({experimentUuid:e.YjP(),nodeUuid:e.YjP()})},async({experimentUuid:a,nodeUuid:c})=>{let d=await h.DB({companyUuid:b.companyUuid,experimentUuid:a,nodeUuid:c,agentUuid:b.actorUuid});return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}),a.registerTool("synapse_get_assigned_experiments",{description:"List experiments currently assigned to you, sorted by priority and assignment order.",inputSchema:e.Ikc({researchProjectUuid:e.YjP().optional(),statuses:e.YOg(e.k5n(["draft","pending_review","pending_start","in_progress","completed"])).optional()})},async({researchProjectUuid:a,statuses:c})=>{let d=await i.XA({companyUuid:b.companyUuid,assigneeType:"agent",assigneeUuid:b.actorUuid,researchProjectUuid:a,statuses:c});for(let a of d)"sent"===a.liveStatus&&await i.tp(a.uuid,"ack");return{content:[{type:"text",text:JSON.stringify({experiments:d},null,2)}]}}),a.registerTool("synapse_get_experiment",{description:"Get full details for a single experiment, including any inherited parent-question context.",inputSchema:e.Ikc({experimentUuid:e.YjP()})},async({experimentUuid:a})=>{let c=await i._m(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify({experiment:c},null,2)}]}:{content:[{type:"text",text:"Experiment not found"}],isError:!0}}),a.registerTool("synapse_start_experiment",{description:"Move an assigned experiment from pending_start to in_progress. Pass gpuUuids only when start_experiment should also reserve them; if you already called synapse_reserve_gpus, start without gpuUuids.",inputSchema:e.Ikc({experimentUuid:e.YjP(),gpuUuids:e.YOg(e.YjP()).default([]),workingNotes:e.YjP().optional()})},async({experimentUuid:a,gpuUuids:c,workingNotes:d})=>{let e=await i._m(b.companyUuid,a);if(!e)return{content:[{type:"text",text:"Experiment not found"}],isError:!0};if(!p(e.assignee,b))return{content:[{type:"text",text:"Experiment is assigned to another actor"}],isError:!0};if("pending_start"!==e.status&&"in_progress"!==e.status)return{content:[{type:"text",text:`Experiment must be pending_start or in_progress, current status: ${e.status}`}],isError:!0};if(d?.trim()){let c=await i._m(b.companyUuid,a),e=c?.description??"";await i.t3(b.companyUuid,a,{description:e+(e?"\n\n---\n\n":"")+d.trim()},{actorType:"agent",actorUuid:b.actorUuid})}await i.tp(a,"checking_resources");let f="in_progress"===e.status?await i._m(b.companyUuid,a):await i.sd({companyUuid:b.companyUuid,experimentUuid:a,actorType:"agent",actorUuid:b.actorUuid,ownerUuid:b.ownerUuid});c.length>0&&await h.cx({companyUuid:b.companyUuid,experimentUuid:a,gpuUuids:c}),await i.tp(a,"running");let g=(await h.XH(b.companyUuid)).flatMap(a=>a.nodes).filter(a=>a.gpus.some(a=>c.includes(a.uuid))).map(a=>({uuid:a.uuid,label:a.label,access:o(a),gpus:a.gpus.filter(a=>c.includes(a.uuid))}));return{content:[{type:"text",text:JSON.stringify({experiment:f,nodes:g},null,2)}]}}),a.registerTool("synapse_sync_node_inventory",{description:"After logging into a machine, sync its instance metadata and GPU inventory back into Synapse.",inputSchema:e.Ikc({nodeUuid:e.YjP(),ec2InstanceId:e.YjP().optional(),instanceType:e.YjP().optional(),region:e.YjP().optional(),gpus:e.YOg(e.Ikc({slotIndex:e.aig().int().min(0),model:e.YjP(),memoryGb:e.aig().int().positive().optional()}))})},async({nodeUuid:a,ec2InstanceId:c,instanceType:d,region:e,gpus:f})=>{let g=await h.ut({companyUuid:b.companyUuid,nodeUuid:a,ec2InstanceId:c,instanceType:d,region:e,gpus:f});return{content:[{type:"text",text:JSON.stringify({uuid:g.uuid,ec2InstanceId:g.ec2InstanceId,instanceType:g.instanceType,region:g.region,gpus:g.gpus.map(a=>({uuid:a.uuid,slotIndex:a.slotIndex,model:a.model,memoryGb:a.memoryGb}))},null,2)}]}}),a.registerTool("synapse_reserve_gpus",{description:"Reserve one or more GPUs for an experiment. Reserved GPUs show as 'busy' and cannot be reserved by other experiments. GPUs are automatically released when the experiment is completed via synapse_submit_experiment_results.",inputSchema:e.Ikc({experimentUuid:e.YjP().describe("Experiment UUID"),gpuUuids:e.YOg(e.YjP()).min(1).describe("List of GPU UUIDs to reserve")})},async({experimentUuid:a,gpuUuids:c})=>{try{let d=await h.cx({companyUuid:b.companyUuid,experimentUuid:a,gpuUuids:c});return{content:[{type:"text",text:JSON.stringify({success:!0,...d})}]}}catch(a){return{content:[{type:"text",text:`GPU reservation failed: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_report_gpu_status",{description:"Report the latest GPU lifecycle or telemetry after running a workload.",inputSchema:e.Ikc({nodeUuid:e.YjP(),gpus:e.YOg(e.Ikc({gpuUuid:e.YjP(),lifecycle:e.k5n(["available","offline","maintenance","unhealthy"]).optional(),utilizationPercent:e.aig().int().min(0).max(100).optional(),memoryUsedGb:e.aig().min(0).optional(),temperatureC:e.aig().int().min(0).optional(),notes:e.YjP().optional()}))})},async({nodeUuid:a,gpus:b})=>(await h.SU({nodeUuid:a,gpus:b}),{content:[{type:"text",text:JSON.stringify({success:!0,nodeUuid:a,updatedGpuCount:b.length},null,2)}]})),a.registerTool("synapse_submit_experiment_results",{description:"Submit experiment outcomes. Supports both legacy experiment runs and the new unified Experiment workflow.",inputSchema:e.Ikc({runUuid:e.YjP().optional(),experimentUuid:e.YjP().optional(),outcome:e.YjP().optional(),experimentResults:e.L5J().optional(),sessionUuid:e.YjP().optional(),experimentBranch:e.YjP().optional().describe("Git branch name where experiment code was pushed"),commitSha:e.YjP().optional().describe("Git commit SHA of the final experiment code")})},async({runUuid:a,experimentUuid:c,outcome:d,experimentResults:e,sessionUuid:k,experimentBranch:n,commitSha:o})=>{if(c){let a=await i._m(b.companyUuid,c);if(!a)return{content:[{type:"text",text:"Experiment not found"}],isError:!0};if(!p(a.assignee,b))return{content:[{type:"text",text:"Only the assigned agent can submit results"}],isError:!0};await h.LD(b.companyUuid,c);let g=await i.zX({companyUuid:b.companyUuid,experimentUuid:c,actorType:"agent",actorUuid:b.actorUuid,ownerUuid:b.ownerUuid,outcome:d,results:e,experimentBranch:n,commitSha:o});await i.tp(c,null,null);let j=await f.prisma.experiment.findMany({where:{companyUuid:b.companyUuid,liveStatus:"queuing",assigneeUuid:{not:null},assigneeType:{not:null}},select:{uuid:!0,title:!0,assigneeType:!0,assigneeUuid:!0,assignedByUuid:!0,researchProjectUuid:!0,researchProject:{select:{name:!0}},priority:!0,assignedAt:!0},orderBy:[{assignedAt:"asc"}]}),k={immediate:0,high:1,medium:2,low:3};for(let a of(j.sort((a,b)=>(k[a.priority]??3)-(k[b.priority]??3)),j))a.assigneeUuid&&a.assigneeType&&await m.vt({companyUuid:b.companyUuid,researchProjectUuid:a.researchProjectUuid,recipientType:a.assigneeType,recipientUuid:a.assigneeUuid,entityType:"experiment",entityUuid:a.uuid,entityTitle:a.title,projectName:a.researchProject.name,action:"task_assigned",message:`GPUs released. Retrying: ${a.title}`,actorType:"agent",actorUuid:b.actorUuid,actorName:"Synapse"});return{content:[{type:"text",text:JSON.stringify({experiment:g,released:!0},null,2)}]}}if(!a)return{content:[{type:"text",text:"Either experimentUuid or runUuid is required"}],isError:!0};let q=await j.fo(b.companyUuid,a);if(!q)return{content:[{type:"text",text:"Experiment Run not found"}],isError:!0};if(q.assigneeUuid!==b.actorUuid)return{content:[{type:"text",text:"Only the assigned agent can submit results"}],isError:!0};let r=await j.ry(b.companyUuid,a,{outcome:d,experimentResults:e},{actorType:"agent",actorUuid:b.actorUuid});return await g.E1({companyUuid:b.companyUuid,researchProjectUuid:q.researchProjectUuid,targetType:"experiment_run",targetUuid:a,actorType:"agent",actorUuid:b.actorUuid,action:"submitted",value:{outcome:d??null},sessionUuid:k}),k&&await l.uE(b.companyUuid,k,a),{content:[{type:"text",text:JSON.stringify({run:r,released:!0},null,2)}]}}),a.registerTool("synapse_report_experiment_progress",{description:"Report a progress update for an in-progress experiment. The message appears on the experiment card in real-time and is logged in the progress timeline.",inputSchema:e.Ikc({experimentUuid:e.YjP(),message:e.YjP().describe("Short status message, e.g. 'Training epoch 3/10, loss=0.42'"),phase:e.YjP().optional().describe("Optional phase label, e.g. 'data_download', 'training', 'evaluation'"),liveStatus:e.k5n(["queuing","checking_resources","running"]).optional().describe("Live status badge shown on the experiment card. Default: 'running'. Use 'queuing' when waiting for GPU resources.")})},async({experimentUuid:a,message:c,phase:d,liveStatus:e})=>{let g=await (0,k.e)({companyUuid:b.companyUuid,experimentUuid:a,message:c,phase:d,liveStatus:e,actorUuid:b.actorUuid});try{let d=await f.prisma.experiment.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{uuid:!0,title:!0,createdByUuid:!0,researchProjectUuid:!0,researchProject:{select:{name:!0}}}});d&&await m.vt({companyUuid:b.companyUuid,researchProjectUuid:d.researchProjectUuid,recipientType:"user",recipientUuid:d.createdByUuid,entityType:"experiment",entityUuid:d.uuid,entityTitle:d.title,projectName:d.researchProject.name,action:"experiment_progress",message:c,actorType:b.type,actorUuid:b.actorUuid,actorName:"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({success:!0,logUuid:g.uuid})}]}}),a.registerTool("synapse_get_project_full_context",{description:"Get full research context for a project: brief, datasets, evaluation methods, all research questions, all experiments with outcomes, and related works count. Use for autonomous research analysis.",inputSchema:e.Ikc({researchProjectUuid:e.YjP()})},async({researchProjectUuid:a})=>{let c=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{uuid:!0,name:!0,description:!0,goal:!0,datasets:!0,evaluationMethods:!0,researchQuestions:{select:{uuid:!0,title:!0,content:!0,status:!0,reviewStatus:!0},orderBy:{createdAt:"asc"}},experiments:{select:{uuid:!0,title:!0,status:!0,priority:!0,outcome:!0,completedAt:!0,description:!0,results:!0},orderBy:{createdAt:"asc"}},_count:{select:{relatedWorks:!0}}}});if(!c)return{content:[{type:"text",text:"Project not found"}],isError:!0};let d=c.experiments.map(a=>({uuid:a.uuid,title:a.title,status:a.status,priority:a.priority,outcome:a.outcome,completedAt:a.completedAt,description:a.description?a.description.length>120?a.description.slice(0,120)+"...":a.description:null,resultSummary:a.results?String(a.results).length>150?String(a.results).slice(0,150)+"...":String(a.results):null})),e=await f.prisma.document.findFirst({where:{researchProjectUuid:a,companyUuid:b.companyUuid,type:"experiment_results_log"},select:{uuid:!0,title:!0,content:!0,updatedAt:!0}}),g=null;try{let c=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{computePoolUuid:!0}}),d=await h.XH(b.companyUuid);c?.computePoolUuid&&(d=d.filter(a=>a.uuid===c.computePoolUuid));let e=d.flatMap(a=>a.nodes.flatMap(a=>a.gpus)),i=e.filter(a=>"available"===a.computedStatus&&!a.activeReservation),j=[...new Set(e.map(a=>a.model).filter(Boolean))];g={totalGpus:e.length,availableGpus:i.length,occupiedGpus:e.length-i.length,gpuModels:j}}catch{}let i=d.filter(a=>"in_progress"===a.status).length,j=d.filter(a=>"pending_start"===a.status).length;return{content:[{type:"text",text:JSON.stringify({project:{...c,experiments:d},resultsLog:e?{uuid:e.uuid,content:e.content,updatedAt:e.updatedAt}:null,computeAvailability:g,experimentQueue:{inProgress:i,pendingStart:j},_hint:"Use synapse_get_experiment for full details of a specific experiment. When proposing experiments, consider available compute resources — propose at most as many experiments as there are available GPUs, minus already queued/running experiments."},null,2)}]}}),a.registerTool("synapse_propose_experiment",{description:"Propose a new experiment. In Human Review mode, created as 'pending_review' for human approval. In Full Auto mode, created as 'pending_start' and assigned to you for immediate execution. Only usable when autonomous loop is active and you are the assigned agent.",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),title:e.YjP(),description:e.YjP(),researchQuestionUuid:e.YjP().optional(),priority:e.k5n(["low","medium","high","immediate"]).default("medium")})},async({researchProjectUuid:a,title:c,description:d,researchQuestionUuid:e,priority:g})=>{let h=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid,autonomousLoopEnabled:!0,autonomousLoopAgentUuid:b.actorUuid},select:{uuid:!0,autonomousLoopMode:!0}});if(!h)return{content:[{type:"text",text:"Autonomous loop is not enabled for this project or you are not the assigned agent"}],isError:!0};let j="full_auto"===h.autonomousLoopMode,k=await i.Cl({companyUuid:b.companyUuid,researchProjectUuid:a,title:c,description:d,researchQuestionUuid:e||null,priority:g,createdByUuid:b.actorUuid,createdByType:"agent",...j?{status:"pending_start",assigneeUuid:b.actorUuid,assigneeType:"agent"}:{}});try{let d=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{name:!0}}),e=await f.prisma.agent.findUnique({where:{uuid:b.actorUuid},select:{ownerUuid:!0,name:!0}});e?.ownerUuid&&d&&await m.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"user",recipientUuid:e.ownerUuid,entityType:"experiment",entityUuid:k.uuid,entityTitle:k.title,projectName:d.name,action:"experiment_auto_proposed",message:j?`Agent auto-proposed experiment "${c}" for immediate execution.`:`Agent proposed experiment "${c}" for review.`,actorType:"agent",actorUuid:b.actorUuid,actorName:e.name??"Agent"}),j&&d&&await m.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"agent",recipientUuid:b.actorUuid,entityType:"experiment",entityUuid:k.uuid,entityTitle:k.title,projectName:d.name,action:"task_assigned",message:`Experiment "${c}" auto-assigned for immediate execution.`,actorType:"agent",actorUuid:b.actorUuid,actorName:e?.name??"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({experiment:k,note:j?"Experiment created in pending_start (Full Auto mode). Ready for immediate execution.":"Experiment created in pending_review. Human review required before execution."},null,2)}]}}),a.registerTool("synapse_update_experiment_plan",{description:"Update an experiment's plan/details. Use this when asked to flesh out an experiment plan from a brief description. You can update title, description, research question link, and priority.",inputSchema:e.Ikc({experimentUuid:e.YjP(),title:e.YjP().optional(),description:e.YjP().optional().describe("Detailed experiment plan/methodology"),researchQuestionUuid:e.YjP().optional().describe("Link to a research question"),priority:e.k5n(["low","medium","high","immediate"]).optional()})},async({experimentUuid:a,title:c,description:d,researchQuestionUuid:e,priority:f})=>{if(!await i._m(b.companyUuid,a))return{content:[{type:"text",text:"Experiment not found"}],isError:!0};let g={};if(void 0!==c&&(g.title=c),void 0!==d&&(g.description=d),void 0!==e&&(g.researchQuestionUuid=e||null),void 0!==f&&(g.priority=f),0===Object.keys(g).length)return{content:[{type:"text",text:"No fields to update"}],isError:!0};let h=await i.t3(b.companyUuid,a,g,{actorType:"agent",actorUuid:b.actorUuid});return{content:[{type:"text",text:JSON.stringify({experiment:h},null,2)}]}}),a.registerTool("synapse_get_repo_access",{description:"Get GitHub repository credentials for a research project. Returns repoUrl, username, token, and the experiment's base branch. Token is for cloning/pushing.",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),experimentUuid:e.YjP().optional().describe("If provided, returns the experiment's baseBranch")})},async({researchProjectUuid:a,experimentUuid:c})=>{let d=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{repoUrl:!0,githubUsername:!0,githubToken:!0}});if(!d?.repoUrl||!d?.githubToken)return{content:[{type:"text",text:JSON.stringify({configured:!1})}]};let e=null;if(c){let a=await f.prisma.experiment.findFirst({where:{uuid:c,companyUuid:b.companyUuid},select:{baseBranch:!0}});e=a?.baseBranch??null}return{content:[{type:"text",text:JSON.stringify({configured:!0,repoUrl:d.repoUrl,githubUsername:d.githubUsername,githubToken:d.githubToken,baseBranch:e})}]}})}[f,g,h,i,j,k,l,m]=n.then?(await n)():n,d()}catch(a){d(a)}})},74489:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.or=b.and=b.not=b.CodeGen=b.operators=b.varKinds=b.ValueScopeName=b.ValueScope=b.Scope=b.Name=b.regexpCode=b.stringify=b.getProperty=b.nil=b.strConcat=b.str=b._=void 0;let d=c(86684),e=c(40001);var f=c(86684);Object.defineProperty(b,"_",{enumerable:!0,get:function(){return f._}}),Object.defineProperty(b,"str",{enumerable:!0,get:function(){return f.str}}),Object.defineProperty(b,"strConcat",{enumerable:!0,get:function(){return f.strConcat}}),Object.defineProperty(b,"nil",{enumerable:!0,get:function(){return f.nil}}),Object.defineProperty(b,"getProperty",{enumerable:!0,get:function(){return f.getProperty}}),Object.defineProperty(b,"stringify",{enumerable:!0,get:function(){return f.stringify}}),Object.defineProperty(b,"regexpCode",{enumerable:!0,get:function(){return f.regexpCode}}),Object.defineProperty(b,"Name",{enumerable:!0,get:function(){return f.Name}});var g=c(40001);Object.defineProperty(b,"Scope",{enumerable:!0,get:function(){return g.Scope}}),Object.defineProperty(b,"ValueScope",{enumerable:!0,get:function(){return g.ValueScope}}),Object.defineProperty(b,"ValueScopeName",{enumerable:!0,get:function(){return g.ValueScopeName}}),Object.defineProperty(b,"varKinds",{enumerable:!0,get:function(){return g.varKinds}}),b.operators={GT:new d._Code(">"),GTE:new d._Code(">="),LT:new d._Code("<"),LTE:new d._Code("<="),EQ:new d._Code("==="),NEQ:new d._Code("!=="),NOT:new d._Code("!"),OR:new d._Code("||"),AND:new d._Code("&&"),ADD:new d._Code("+")};class h{optimizeNodes(){return this}optimizeNames(a,b){return this}}class i extends h{constructor(a,b,c){super(),this.varKind=a,this.name=b,this.rhs=c}render({es5:a,_n:b}){let c=a?e.varKinds.var:this.varKind,d=void 0===this.rhs?"":` = ${this.rhs}`;return`${c} ${this.name}${d};`+b}optimizeNames(a,b){if(a[this.name.str])return this.rhs&&(this.rhs=G(this.rhs,a,b)),this}get names(){return this.rhs instanceof d._CodeOrName?this.rhs.names:{}}}class j extends h{constructor(a,b,c){super(),this.lhs=a,this.rhs=b,this.sideEffects=c}render({_n:a}){return`${this.lhs} = ${this.rhs};`+a}optimizeNames(a,b){if(!(this.lhs instanceof d.Name)||a[this.lhs.str]||this.sideEffects)return this.rhs=G(this.rhs,a,b),this}get names(){return F(this.lhs instanceof d.Name?{}:{...this.lhs.names},this.rhs)}}class k extends j{constructor(a,b,c,d){super(a,c,d),this.op=b}render({_n:a}){return`${this.lhs} ${this.op}= ${this.rhs};`+a}}class l extends h{constructor(a){super(),this.label=a,this.names={}}render({_n:a}){return`${this.label}:`+a}}class m extends h{constructor(a){super(),this.label=a,this.names={}}render({_n:a}){let b=this.label?` ${this.label}`:"";return`break${b};`+a}}class n extends h{constructor(a){super(),this.error=a}render({_n:a}){return`throw ${this.error};`+a}get names(){return this.error.names}}class o extends h{constructor(a){super(),this.code=a}render({_n:a}){return`${this.code};`+a}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(a,b){return this.code=G(this.code,a,b),this}get names(){return this.code instanceof d._CodeOrName?this.code.names:{}}}class p extends h{constructor(a=[]){super(),this.nodes=a}render(a){return this.nodes.reduce((b,c)=>b+c.render(a),"")}optimizeNodes(){let{nodes:a}=this,b=a.length;for(;b--;){let c=a[b].optimizeNodes();Array.isArray(c)?a.splice(b,1,...c):c?a[b]=c:a.splice(b,1)}return a.length>0?this:void 0}optimizeNames(a,b){let{nodes:c}=this,d=c.length;for(;d--;){let e=c[d];e.optimizeNames(a,b)||(function(a,b){for(let c in b)a[c]=(a[c]||0)-(b[c]||0)}(a,e.names),c.splice(d,1))}return c.length>0?this:void 0}get names(){return this.nodes.reduce((a,b)=>E(a,b.names),{})}}class q extends p{render(a){return"{"+a._n+super.render(a)+"}"+a._n}}class r extends p{}class s extends q{}s.kind="else";class t extends q{constructor(a,b){super(b),this.condition=a}render(a){let b=`if(${this.condition})`+super.render(a);return this.else&&(b+="else "+this.else.render(a)),b}optimizeNodes(){super.optimizeNodes();let a=this.condition;if(!0===a)return this.nodes;let b=this.else;if(b){let a=b.optimizeNodes();b=this.else=Array.isArray(a)?new s(a):a}return b?!1===a?b instanceof t?b:b.nodes:this.nodes.length?this:new t(H(a),b instanceof t?[b]:b.nodes):!1!==a&&this.nodes.length?this:void 0}optimizeNames(a,b){var c;if(this.else=null==(c=this.else)?void 0:c.optimizeNames(a,b),super.optimizeNames(a,b)||this.else)return this.condition=G(this.condition,a,b),this}get names(){let a=super.names;return F(a,this.condition),this.else&&E(a,this.else.names),a}}t.kind="if";class u extends q{}u.kind="for";class v extends u{constructor(a){super(),this.iteration=a}render(a){return`for(${this.iteration})`+super.render(a)}optimizeNames(a,b){if(super.optimizeNames(a,b))return this.iteration=G(this.iteration,a,b),this}get names(){return E(super.names,this.iteration.names)}}class w extends u{constructor(a,b,c,d){super(),this.varKind=a,this.name=b,this.from=c,this.to=d}render(a){let b=a.es5?e.varKinds.var:this.varKind,{name:c,from:d,to:f}=this;return`for(${b} ${c}=${d}; ${c}<${f}; ${c}++)`+super.render(a)}get names(){let a=F(super.names,this.from);return F(a,this.to)}}class x extends u{constructor(a,b,c,d){super(),this.loop=a,this.varKind=b,this.name=c,this.iterable=d}render(a){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(a)}optimizeNames(a,b){if(super.optimizeNames(a,b))return this.iterable=G(this.iterable,a,b),this}get names(){return E(super.names,this.iterable.names)}}class y extends q{constructor(a,b,c){super(),this.name=a,this.args=b,this.async=c}render(a){let b=this.async?"async ":"";return`${b}function ${this.name}(${this.args})`+super.render(a)}}y.kind="func";class z extends p{render(a){return"return "+super.render(a)}}z.kind="return";class A extends q{render(a){let b="try"+super.render(a);return this.catch&&(b+=this.catch.render(a)),this.finally&&(b+=this.finally.render(a)),b}optimizeNodes(){var a,b;return super.optimizeNodes(),null==(a=this.catch)||a.optimizeNodes(),null==(b=this.finally)||b.optimizeNodes(),this}optimizeNames(a,b){var c,d;return super.optimizeNames(a,b),null==(c=this.catch)||c.optimizeNames(a,b),null==(d=this.finally)||d.optimizeNames(a,b),this}get names(){let a=super.names;return this.catch&&E(a,this.catch.names),this.finally&&E(a,this.finally.names),a}}class B extends q{constructor(a){super(),this.error=a}render(a){return`catch(${this.error})`+super.render(a)}}B.kind="catch";class C extends q{render(a){return"finally"+super.render(a)}}C.kind="finally";class D{constructor(a,b={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...b,_n:b.lines?"\n":""},this._extScope=a,this._scope=new e.Scope({parent:a}),this._nodes=[new r]}toString(){return this._root.render(this.opts)}name(a){return this._scope.name(a)}scopeName(a){return this._extScope.name(a)}scopeValue(a,b){let c=this._extScope.value(a,b);return(this._values[c.prefix]||(this._values[c.prefix]=new Set)).add(c),c}getScopeValue(a,b){return this._extScope.getValue(a,b)}scopeRefs(a){return this._extScope.scopeRefs(a,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(a,b,c,d){let e=this._scope.toName(b);return void 0!==c&&d&&(this._constants[e.str]=c),this._leafNode(new i(a,e,c)),e}const(a,b,c){return this._def(e.varKinds.const,a,b,c)}let(a,b,c){return this._def(e.varKinds.let,a,b,c)}var(a,b,c){return this._def(e.varKinds.var,a,b,c)}assign(a,b,c){return this._leafNode(new j(a,b,c))}add(a,c){return this._leafNode(new k(a,b.operators.ADD,c))}code(a){return"function"==typeof a?a():a!==d.nil&&this._leafNode(new o(a)),this}object(...a){let b=["{"];for(let[c,e]of a)b.length>1&&b.push(","),b.push(c),(c!==e||this.opts.es5)&&(b.push(":"),(0,d.addCodeArg)(b,e));return b.push("}"),new d._Code(b)}if(a,b,c){if(this._blockNode(new t(a)),b&&c)this.code(b).else().code(c).endIf();else if(b)this.code(b).endIf();else if(c)throw Error('CodeGen: "else" body without "then" body');return this}elseIf(a){return this._elseNode(new t(a))}else(){return this._elseNode(new s)}endIf(){return this._endBlockNode(t,s)}_for(a,b){return this._blockNode(a),b&&this.code(b).endFor(),this}for(a,b){return this._for(new v(a),b)}forRange(a,b,c,d,f=this.opts.es5?e.varKinds.var:e.varKinds.let){let g=this._scope.toName(a);return this._for(new w(f,g,b,c),()=>d(g))}forOf(a,b,c,f=e.varKinds.const){let g=this._scope.toName(a);if(this.opts.es5){let a=b instanceof d.Name?b:this.var("_arr",b);return this.forRange("_i",0,(0,d._)`${a}.length`,b=>{this.var(g,(0,d._)`${a}[${b}]`),c(g)})}return this._for(new x("of",f,g,b),()=>c(g))}forIn(a,b,c,f=this.opts.es5?e.varKinds.var:e.varKinds.const){if(this.opts.ownProperties)return this.forOf(a,(0,d._)`Object.keys(${b})`,c);let g=this._scope.toName(a);return this._for(new x("in",f,g,b),()=>c(g))}endFor(){return this._endBlockNode(u)}label(a){return this._leafNode(new l(a))}break(a){return this._leafNode(new m(a))}return(a){let b=new z;if(this._blockNode(b),this.code(a),1!==b.nodes.length)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(z)}try(a,b,c){if(!b&&!c)throw Error('CodeGen: "try" without "catch" and "finally"');let d=new A;if(this._blockNode(d),this.code(a),b){let a=this.name("e");this._currNode=d.catch=new B(a),b(a)}return c&&(this._currNode=d.finally=new C,this.code(c)),this._endBlockNode(B,C)}throw(a){return this._leafNode(new n(a))}block(a,b){return this._blockStarts.push(this._nodes.length),a&&this.code(a).endBlock(b),this}endBlock(a){let b=this._blockStarts.pop();if(void 0===b)throw Error("CodeGen: not in self-balancing block");let c=this._nodes.length-b;if(c<0||void 0!==a&&c!==a)throw Error(`CodeGen: wrong number of nodes: ${c} vs ${a} expected`);return this._nodes.length=b,this}func(a,b=d.nil,c,e){return this._blockNode(new y(a,b,c)),e&&this.code(e).endFunc(),this}endFunc(){return this._endBlockNode(y)}optimize(a=1){for(;a-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(a){return this._currNode.nodes.push(a),this}_blockNode(a){this._currNode.nodes.push(a),this._nodes.push(a)}_endBlockNode(a,b){let c=this._currNode;if(c instanceof a||b&&c instanceof b)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${b?`${a.kind}/${b.kind}`:a.kind}"`)}_elseNode(a){let b=this._currNode;if(!(b instanceof t))throw Error('CodeGen: "else" without "if"');return this._currNode=b.else=a,this}get _root(){return this._nodes[0]}get _currNode(){let a=this._nodes;return a[a.length-1]}set _currNode(a){let b=this._nodes;b[b.length-1]=a}}function E(a,b){for(let c in b)a[c]=(a[c]||0)+(b[c]||0);return a}function F(a,b){return b instanceof d._CodeOrName?E(a,b.names):a}function G(a,b,c){var e;if(a instanceof d.Name)return f(a);if(!((e=a)instanceof d._Code&&e._items.some(a=>a instanceof d.Name&&1===b[a.str]&&void 0!==c[a.str])))return a;return new d._Code(a._items.reduce((a,b)=>(b instanceof d.Name&&(b=f(b)),b instanceof d._Code?a.push(...b._items):a.push(b),a),[]));function f(a){let d=c[a.str];return void 0===d||1!==b[a.str]?a:(delete b[a.str],d)}}function H(a){return"boolean"==typeof a||"number"==typeof a||null===a?!a:(0,d._)`!${L(a)}`}b.CodeGen=D,b.not=H;let I=K(b.operators.AND);b.and=function(...a){return a.reduce(I)};let J=K(b.operators.OR);function K(a){return(b,c)=>b===d.nil?c:c===d.nil?b:(0,d._)`${L(b)} ${a} ${L(c)}`}function L(a){return a instanceof d.Name?a:(0,d._)`(${a})`}b.or=function(...a){return a.reduce(J)}},74909:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateAdditionalItems=void 0;let d=c(74489),e=c(23235);function f(a,b){let{gen:c,schema:f,data:g,keyword:h,it:i}=a;i.items=!0;let j=c.const("len",(0,d._)`${g}.length`);if(!1===f)a.setParams({len:b.length}),a.pass((0,d._)`${j} <= ${b.length}`);else if("object"==typeof f&&!(0,e.alwaysValidSchema)(i,f)){let f=c.var("valid",(0,d._)`${j} <= ${b.length}`);c.if((0,d.not)(f),()=>{var g;return g=f,void c.forRange("i",b.length,j,b=>{a.subschema({keyword:h,dataProp:b,dataPropType:e.Type.Num},g),i.allErrors||c.if((0,d.not)(g),()=>c.break())})}),a.ok(f)}}b.validateAdditionalItems=f,b.default={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:a}})=>(0,d.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,d._)`{limit: ${a}}`},code(a){let{parentSchema:b,it:c}=a,{items:d}=b;if(!Array.isArray(d))return void(0,e.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');f(a,d)}}},75811:a=>{a.exports=import("@prisma/client/runtime/query_compiler_fast_bg.postgresql.mjs")},75925:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:a})=>(0,d.str)`must match format "${a}"`,params:({schemaCode:a})=>(0,d._)`{format: ${a}}`},code(a,b){let{gen:c,data:e,$data:f,schema:g,schemaCode:h,it:i}=a,{opts:j,errSchemaPath:k,schemaEnv:l,self:m}=i;j.validateFormats&&(f?function(){let f=c.scopeValue("formats",{ref:m.formats,code:j.code.formats}),g=c.const("fDef",(0,d._)`${f}[${h}]`),i=c.let("fType"),k=c.let("format");c.if((0,d._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>c.assign(i,(0,d._)`${g}.type || "string"`).assign(k,(0,d._)`${g}.validate`),()=>c.assign(i,(0,d._)`"string"`).assign(k,g)),a.fail$data((0,d.or)(!1===j.strictSchema?d.nil:(0,d._)`${h} && !${k}`,function(){let a=l.$async?(0,d._)`(${g}.async ? await ${k}(${e}) : ${k}(${e}))`:(0,d._)`${k}(${e})`,c=(0,d._)`(typeof ${k} == "function" ? ${a} : ${k}.test(${e}))`;return(0,d._)`${k} && ${k} !== true && ${i} === ${b} && !${c}`}()))}():function(){let f=m.formats[g];if(!f){if(!1===j.strictSchema)return m.logger.warn(h());throw Error(h());function h(){return`unknown format "${g}" ignored in schema at path "${k}"`}}if(!0===f)return;let[i,n,o]=function(a){let b=a instanceof RegExp?(0,d.regexpCode)(a):j.code.formats?(0,d._)`${j.code.formats}${(0,d.getProperty)(g)}`:void 0,e=c.scopeValue("formats",{key:g,ref:a,code:b});return"object"!=typeof a||a instanceof RegExp?["string",a,e]:[a.type||"string",a.validate,(0,d._)`${e}.validate`]}(f);i===b&&a.pass(function(){if("object"==typeof f&&!(f instanceof RegExp)&&f.async){if(!l.$async)throw Error("async format in sync schema");return(0,d._)`await ${o}(${e})`}return"function"==typeof n?(0,d._)`${o}(${e})`:(0,d._)`${o}.test(${e})`}())}())}}},76760:a=>{a.exports=require("node:path")},77064:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ht:()=>k,Vu:()=>m,Xo:()=>l,Zi:()=>p,aQ:()=>q,jw:()=>j,kk:()=>o,uE:()=>n});var e=c(52618),f=c(911),g=c(46499),h=a([e,g]);function i(a){return{uuid:a.uuid,agentUuid:a.agentUuid,name:a.name,description:a.description,status:a.status,lastActiveAt:a.lastActiveAt.toISOString(),expiresAt:a.expiresAt?.toISOString()??null,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString(),checkins:(a.runCheckins||[]).map(a=>({runUuid:a.runUuid,checkinAt:a.checkinAt.toISOString(),checkoutAt:a.checkoutAt?.toISOString()??null}))}}async function j(a){let b=await e.prisma.agentSession.create({data:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,name:a.name,description:a.description??null,status:"active",expiresAt:a.expiresAt??null}});return f.B.emitChange({companyUuid:a.companyUuid,researchProjectUuid:"",entityType:"agent_session",entityUuid:b.uuid,action:"created",actorUuid:a.agentUuid}),i(b)}async function k(a,b){let c=await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a},include:{runCheckins:{where:{checkoutAt:null},select:{runUuid:!0,checkinAt:!0,checkoutAt:!0}}}});return c?i(c):null}async function l(a,b,c){return(await e.prisma.agentSession.findMany({where:{companyUuid:a,agentUuid:b,...c&&{status:c}},include:{runCheckins:{where:{checkoutAt:null},select:{runUuid:!0,checkinAt:!0,checkoutAt:!0}}},orderBy:{createdAt:"desc"}})).map(i)}async function m(a,b){let c=await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Session not found");let d=await e.prisma.sessionRunCheckin.findMany({where:{sessionUuid:b,checkoutAt:null},select:{run:{select:{uuid:!0,researchProjectUuid:!0}}}});await e.prisma.sessionRunCheckin.updateMany({where:{sessionUuid:b,checkoutAt:null},data:{checkoutAt:new Date}});let g=await e.prisma.agentSession.update({where:{uuid:b},data:{status:"closed"},include:{runCheckins:{select:{runUuid:!0,checkinAt:!0,checkoutAt:!0}}}});for(let a of d)f.B.emitChange({companyUuid:c.companyUuid,researchProjectUuid:a.run.researchProjectUuid,entityType:"experiment_run",entityUuid:a.run.uuid,action:"updated"});return i(g)}async function n(a,b,c){if(!await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Session not found");let d=await e.prisma.experimentRun.findFirst({where:{uuid:c,companyUuid:a},select:{researchProjectUuid:!0}});await e.prisma.sessionRunCheckin.updateMany({where:{sessionUuid:b,runUuid:c,checkoutAt:null},data:{checkoutAt:new Date}}),d&&f.B.emitChange({companyUuid:a,researchProjectUuid:d.researchProjectUuid,entityType:"experiment_run",entityUuid:c,action:"updated"})}async function o(a,b){return(await e.prisma.sessionRunCheckin.findMany({where:{runUuid:b,checkoutAt:null,session:{companyUuid:a,status:{in:["active","inactive"]}}},include:{session:{select:{uuid:!0,name:!0,agentUuid:!0,agent:{select:{name:!0}}}}}})).map(a=>({sessionUuid:a.session.uuid,sessionName:a.session.name,agentUuid:a.session.agentUuid,agentName:a.session.agent.name,checkinAt:a.checkinAt.toISOString()}))}async function p(a,b){let c=await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Session not found");await e.prisma.agentSession.update({where:{uuid:b},data:{lastActiveAt:new Date,..."inactive"===c.status&&{status:"active"}}})}async function q(a,b){let c=await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Session not found");if("closed"!==c.status)throw Error("Only closed sessions can be reopened");let d=await e.prisma.agentSession.update({where:{uuid:b},data:{status:"active",lastActiveAt:new Date},include:{runCheckins:{where:{checkoutAt:null},select:{runUuid:!0,checkinAt:!0,checkoutAt:!0}}}});return i(d)}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},77201:(a,b,c)=>{let{normalizeIPv6:d,removeDotSegments:e,recomposeAuthority:f,normalizeComponentEncoding:g,isIPv4:h,nonSimpleDomain:i}=c(73652),{SCHEMES:j,getSchemeHandler:k}=c(2633);function l(a,b,c,d){let f={};return d||(a=o(m(a,c),c),b=o(m(b,c),c)),!(c=c||{}).tolerant&&b.scheme?(f.scheme=b.scheme,f.userinfo=b.userinfo,f.host=b.host,f.port=b.port,f.path=e(b.path||""),f.query=b.query):(void 0!==b.userinfo||void 0!==b.host||void 0!==b.port?(f.userinfo=b.userinfo,f.host=b.host,f.port=b.port,f.path=e(b.path||""),f.query=b.query):(b.path?("/"===b.path[0]?f.path=e(b.path):(void 0===a.userinfo&&void 0===a.host&&void 0===a.port||a.path?a.path?f.path=a.path.slice(0,a.path.lastIndexOf("/")+1)+b.path:f.path=b.path:f.path="/"+b.path,f.path=e(f.path)),f.query=b.query):(f.path=a.path,void 0!==b.query?f.query=b.query:f.query=a.query),f.userinfo=a.userinfo,f.host=a.host,f.port=a.port),f.scheme=a.scheme),f.fragment=b.fragment,f}function m(a,b){let c={host:a.host,scheme:a.scheme,userinfo:a.userinfo,port:a.port,path:a.path,query:a.query,nid:a.nid,nss:a.nss,uuid:a.uuid,fragment:a.fragment,reference:a.reference,resourceName:a.resourceName,secure:a.secure,error:""},d=Object.assign({},b),g=[],h=k(d.scheme||c.scheme);h&&h.serialize&&h.serialize(c,d),void 0!==c.path&&(d.skipEscape?c.path=unescape(c.path):(c.path=escape(c.path),void 0!==c.scheme&&(c.path=c.path.split("%3A").join(":")))),"suffix"!==d.reference&&c.scheme&&g.push(c.scheme,":");let i=f(c);if(void 0!==i&&("suffix"!==d.reference&&g.push("//"),g.push(i),c.path&&"/"!==c.path[0]&&g.push("/")),void 0!==c.path){let a=c.path;d.absolutePath||h&&h.absolutePath||(a=e(a)),void 0===i&&"/"===a[0]&&"/"===a[1]&&(a="/%2F"+a.slice(2)),g.push(a)}return void 0!==c.query&&g.push("?",c.query),void 0!==c.fragment&&g.push("#",c.fragment),g.join("")}let n=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function o(a,b){let c=Object.assign({},b),e={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},f=!1;"suffix"===c.reference&&(a=c.scheme?c.scheme+":"+a:"//"+a);let g=a.match(n);if(g){if(e.scheme=g[1],e.userinfo=g[3],e.host=g[4],e.port=parseInt(g[5],10),e.path=g[6]||"",e.query=g[7],e.fragment=g[8],isNaN(e.port)&&(e.port=g[5]),e.host)if(!1===h(e.host)){let a=d(e.host);e.host=a.host.toLowerCase(),f=a.isIPV6}else f=!0;void 0!==e.scheme||void 0!==e.userinfo||void 0!==e.host||void 0!==e.port||void 0!==e.query||e.path?void 0===e.scheme?e.reference="relative":void 0===e.fragment?e.reference="absolute":e.reference="uri":e.reference="same-document",c.reference&&"suffix"!==c.reference&&c.reference!==e.reference&&(e.error=e.error||"URI is not a "+c.reference+" reference.");let b=k(c.scheme||e.scheme);if(!c.unicodeSupport&&(!b||!b.unicodeSupport)&&e.host&&(c.domainHost||b&&b.domainHost)&&!1===f&&i(e.host))try{e.host=URL.domainToASCII(e.host.toLowerCase())}catch(a){e.error=e.error||"Host's domain name can not be converted to ASCII: "+a}(!b||b&&!b.skipNormalize)&&(-1!==a.indexOf("%")&&(void 0!==e.scheme&&(e.scheme=unescape(e.scheme)),void 0!==e.host&&(e.host=unescape(e.host))),e.path&&(e.path=escape(unescape(e.path))),e.fragment&&(e.fragment=encodeURI(decodeURIComponent(e.fragment)))),b&&b.parse&&b.parse(e,c)}else e.error=e.error||"URI can not be parsed.";return e}let p={SCHEMES:j,normalize:function(a,b){return"string"==typeof a?a=m(o(a,b),b):"object"==typeof a&&(a=o(m(a,b),b)),a},resolve:function(a,b,c){let d=c?Object.assign({scheme:"null"},c):{scheme:"null"},e=l(o(a,d),o(b,d),d,!0);return d.skipEscape=!0,m(e,d)},resolveComponent:l,equal:function(a,b,c){return"string"==typeof a?a=m(g(o(a=unescape(a),c),!0),{...c,skipEscape:!0}):"object"==typeof a&&(a=m(g(a,!0),{...c,skipEscape:!0})),"string"==typeof b?b=m(g(o(b=unescape(b),c),!0),{...c,skipEscape:!0}):"object"==typeof b&&(b=m(g(b,!0),{...c,skipEscape:!0})),a.toLowerCase()===b.toLowerCase()},serialize:m,parse:o};a.exports=p,a.exports.default=p,a.exports.fastUri=p},77548:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(77201);d.code='require("ajv/dist/runtime/uri").default',b.default=d},78226:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(80142);b.default={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:a=>(0,d.validateTuple)(a,"items")}},78474:a=>{a.exports=require("node:events")},79428:a=>{a.exports=require("buffer")},79551:a=>{a.exports=require("url")},80142:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateTuple=void 0;let d=c(74489),e=c(23235),f=c(41033);function g(a,b,c=a.schema){let{gen:f,parentSchema:h,data:i,keyword:j,it:k}=a;(function(a){let{opts:d,errSchemaPath:f}=k,g=c.length,h=g===a.minItems&&(g===a.maxItems||!1===a[b]);if(d.strictTuples&&!h){let a=`"${j}" is ${g}-tuple, but minItems or maxItems/${b} are not specified or different at path "${f}"`;(0,e.checkStrictMode)(k,a,d.strictTuples)}})(h),k.opts.unevaluated&&c.length&&!0!==k.items&&(k.items=e.mergeEvaluated.items(f,c.length,k.items));let l=f.name("valid"),m=f.const("len",(0,d._)`${i}.length`);c.forEach((b,c)=>{(0,e.alwaysValidSchema)(k,b)||(f.if((0,d._)`${m} > ${c}`,()=>a.subschema({keyword:j,schemaProp:c,dataProp:c},l)),a.ok(l))})}b.validateTuple=g,b.default={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(a){let{schema:b,it:c}=a;if(Array.isArray(b))return g(a,"additionalItems",b);c.items=!0,(0,e.alwaysValidSchema)(c,b)||a.ok((0,f.validateArray)(a))}}},83997:a=>{a.exports=require("tty")},84221:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(35684),e=c(74489),f=c(23235),g=c(91442);b.default={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:a,j:b}})=>(0,e.str)`must NOT have duplicate items (items ## ${b} and ${a} are identical)`,params:({params:{i:a,j:b}})=>(0,e._)`{i: ${a}, j: ${b}}`},code(a){let{gen:b,data:c,$data:h,schema:i,parentSchema:j,schemaCode:k,it:l}=a;if(!h&&!i)return;let m=b.let("valid"),n=j.items?(0,d.getSchemaTypes)(j.items):[];a.block$data(m,function(){let h=b.let("i",(0,e._)`${c}.length`),i=b.let("j");a.setParams({i:h,j:i}),b.assign(m,!0),b.if((0,e._)`${h} > 1`,()=>(n.length>0&&!n.some(a=>"object"===a||"array"===a)?function(f,g){let h=b.name("item"),i=(0,d.checkDataTypes)(n,h,l.opts.strictNumbers,d.DataType.Wrong),j=b.const("indices",(0,e._)`{}`);b.for((0,e._)`;${f}--;`,()=>{b.let(h,(0,e._)`${c}[${f}]`),b.if(i,(0,e._)`continue`),n.length>1&&b.if((0,e._)`typeof ${h} == "string"`,(0,e._)`${h} += "_"`),b.if((0,e._)`typeof ${j}[${h}] == "number"`,()=>{b.assign(g,(0,e._)`${j}[${h}]`),a.error(),b.assign(m,!1).break()}).code((0,e._)`${j}[${h}] = ${f}`)})}:function(d,h){let i=(0,f.useFunc)(b,g.default),j=b.name("outer");b.label(j).for((0,e._)`;${d}--;`,()=>b.for((0,e._)`${h} = ${d}; ${h}--;`,()=>b.if((0,e._)`${i}(${c}[${d}], ${c}[${h}])`,()=>{a.error(),b.assign(m,!1).break(j)})))})(h,i))},(0,e._)`${k} === false`),a.ok(m)}}},84297:a=>{a.exports=require("async_hooks")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86684:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.regexpCode=b.getEsmExportName=b.getProperty=b.safeStringify=b.stringify=b.strConcat=b.addCodeArg=b.str=b._=b.nil=b._Code=b.Name=b.IDENTIFIER=b._CodeOrName=void 0;class c{}b._CodeOrName=c,b.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class d extends c{constructor(a){if(super(),!b.IDENTIFIER.test(a))throw Error("CodeGen: name must be a valid identifier");this.str=a}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}b.Name=d;class e extends c{constructor(a){super(),this._items="string"==typeof a?[a]:a}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let a=this._items[0];return""===a||'""'===a}get str(){var a;return null!=(a=this._str)?a:this._str=this._items.reduce((a,b)=>`${a}${b}`,"")}get names(){var a;return null!=(a=this._names)?a:this._names=this._items.reduce((a,b)=>(b instanceof d&&(a[b.str]=(a[b.str]||0)+1),a),{})}}function f(a,...b){let c=[a[0]],d=0;for(;d<b.length;)i(c,b[d]),c.push(a[++d]);return new e(c)}b._Code=e,b.nil=new e(""),b._=f;let g=new e("+");function h(a,...b){let c=[j(a[0])],f=0;for(;f<b.length;)c.push(g),i(c,b[f]),c.push(g,j(a[++f]));return function(a){let b=1;for(;b<a.length-1;){if(a[b]===g){var c,e;let f=(c=a[b-1],'""'===(e=a[b+1])?c:'""'===c?e:"string"==typeof c?e instanceof d||'"'!==c[c.length-1]?void 0:"string"!=typeof e?`${c.slice(0,-1)}${e}"`:'"'===e[0]?c.slice(0,-1)+e.slice(1):void 0:"string"!=typeof e||'"'!==e[0]||c instanceof d?void 0:`"${c}${e.slice(1)}`);if(void 0!==f){a.splice(b-1,3,f);continue}a[b++]="+"}b++}}(c),new e(c)}function i(a,b){var c;b instanceof e?a.push(...b._items):b instanceof d?a.push(b):a.push("number"==typeof(c=b)||"boolean"==typeof c||null===c?c:j(Array.isArray(c)?c.join(","):c))}function j(a){return JSON.stringify(a).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}b.str=h,b.addCodeArg=i,b.strConcat=function(a,b){return b.emptyStr()?a:a.emptyStr()?b:h`${a}${b}`},b.stringify=function(a){return new e(j(a))},b.safeStringify=j,b.getProperty=function(a){return"string"==typeof a&&b.IDENTIFIER.test(a)?new e(`.${a}`):f`[${a}]`},b.getEsmExportName=function(a){if("string"==typeof a&&b.IDENTIFIER.test(a))return new e(`${a}`);throw Error(`CodeGen: invalid export name: ${a}, use explicit $id name mapping`)},b.regexpCode=function(a){return new e(a.toString())}},87294:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0});class c extends Error{constructor(a){super("validation failed"),this.errors=a,this.ajv=this.validation=!0}}b.default=c},87797:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{e:()=>h,r:()=>i});var e=c(52618),f=c(911),g=a([e]);async function h(a){let b=new Date,[c,d]=await e.prisma.$transaction([e.prisma.experimentProgressLog.create({data:{companyUuid:a.companyUuid,experimentUuid:a.experimentUuid,message:a.message,phase:a.phase??null,actorUuid:a.actorUuid,createdAt:b}}),e.prisma.experiment.update({where:{uuid:a.experimentUuid},data:{liveStatus:a.liveStatus??"running",liveMessage:a.message,liveUpdatedAt:b},select:{researchProjectUuid:!0,companyUuid:!0}})]);return f.B.emitChange({companyUuid:d.companyUuid,researchProjectUuid:d.researchProjectUuid,entityType:"experiment",entityUuid:a.experimentUuid,action:"updated",actorUuid:a.actorUuid}),c}async function i(a,b){return e.prisma.experimentProgressLog.findMany({where:{companyUuid:a,experimentUuid:b},orderBy:{createdAt:"desc"},take:100,select:{uuid:!0,message:!0,phase:!0,actorUuid:!0,createdAt:!0}})}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},90617:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235);b.default={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:a,max:b}})=>void 0===b?(0,d.str)`must contain at least ${a} valid item(s)`:(0,d.str)`must contain at least ${a} and no more than ${b} valid item(s)`,params:({params:{min:a,max:b}})=>void 0===b?(0,d._)`{minContains: ${a}}`:(0,d._)`{minContains: ${a}, maxContains: ${b}}`},code(a){let b,c,{gen:f,schema:g,parentSchema:h,data:i,it:j}=a,{minContains:k,maxContains:l}=h;j.opts.next?(b=void 0===k?1:k,c=l):b=1;let m=f.const("len",(0,d._)`${i}.length`);if(a.setParams({min:b,max:c}),void 0===c&&0===b)return void(0,e.checkStrictMode)(j,'"minContains" == 0 without "maxContains": "contains" keyword ignored');if(void 0!==c&&b>c){(0,e.checkStrictMode)(j,'"minContains" > "maxContains" is always invalid'),a.fail();return}if((0,e.alwaysValidSchema)(j,g)){let e=(0,d._)`${m} >= ${b}`;void 0!==c&&(e=(0,d._)`${e} && ${m} <= ${c}`),a.pass(e);return}j.items=!0;let n=f.name("valid");function o(){let a=f.name("_valid"),e=f.let("count",0);p(a,()=>f.if(a,()=>{var a;return a=e,void(f.code((0,d._)`${a}++`),void 0===c?f.if((0,d._)`${a} >= ${b}`,()=>f.assign(n,!0).break()):(f.if((0,d._)`${a} > ${c}`,()=>f.assign(n,!1).break()),1===b?f.assign(n,!0):f.if((0,d._)`${a} >= ${b}`,()=>f.assign(n,!0))))}))}function p(b,c){f.forRange("i",0,m,d=>{a.subschema({keyword:"contains",dataProp:d,dataPropType:e.Type.Num,compositeRule:!0},b),c()})}void 0===c&&1===b?p(n,()=>f.if(n,()=>f.break())):0===b?(f.let(n,!0),void 0!==c&&f.if((0,d._)`${i}.length > 0`,o)):(f.let(n,!1),o()),a.result(n,()=>a.reset())}}},91114:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=d.operators,f={maximum:{okStr:"<=",ok:e.LTE,fail:e.GT},minimum:{okStr:">=",ok:e.GTE,fail:e.LT},exclusiveMaximum:{okStr:"<",ok:e.LT,fail:e.GTE},exclusiveMinimum:{okStr:">",ok:e.GT,fail:e.LTE}};b.default={keyword:Object.keys(f),type:"number",schemaType:"number",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,d.str)`must be ${f[a].okStr} ${b}`,params:({keyword:a,schemaCode:b})=>(0,d._)`{comparison: ${f[a].okStr}, limit: ${b}}`},code(a){let{keyword:b,data:c,schemaCode:e}=a;a.fail$data((0,d._)`${c} ${f[b].fail} ${e} || isNaN(${c})`)}}},91442:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(58362);d.code='require("ajv/dist/runtime/equal").default',b.default=d},91645:a=>{a.exports=require("net")},91875:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235);b.default={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:a})=>(0,d._)`{passingSchemas: ${a.passing}}`},code(a){let{gen:b,schema:c,parentSchema:f,it:g}=a;if(!Array.isArray(c))throw Error("ajv implementation error");if(g.opts.discriminator&&f.discriminator)return;let h=b.let("valid",!1),i=b.let("passing",null),j=b.name("_valid");a.setParams({passing:i}),b.block(function(){c.forEach((c,f)=>{let k;(0,e.alwaysValidSchema)(g,c)?b.var(j,!0):k=a.subschema({keyword:"oneOf",schemaProp:f,compositeRule:!0},j),f>0&&b.if((0,d._)`${j} && ${h}`).assign(h,!1).assign(i,(0,d._)`[${i}, ${f}]`).else(),b.if(j,()=>{b.assign(h,!0),b.assign(i,f),k&&a.mergeEvaluated(k,d.Name)})})}),a.result(h,()=>a.reset(),()=>a.error(!0))}}},92093:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{W:()=>o});var e=c(77258),f=c(85034),g=c(90136),h=c(78112),i=c(8777),j=c(88437),k=c(25191),l=c(48873),m=c(63861),n=a([f,g,h,i,j,k]);function o(a,b){a.registerTool("synapse_claim_research_question",{description:"Claim a Research Question (open -> elaborating). Claiming automatically transitions the Research Question to 'elaborating' status.",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>{let c=await g._W(b.companyUuid,a);if(!c)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};try{let a=await g.Ae({researchQuestionUuid:c.uuid,companyUuid:b.companyUuid,assigneeType:"agent",assigneeUuid:b.actorUuid});return await j.E1({companyUuid:b.companyUuid,researchProjectUuid:c.researchProjectUuid,targetType:"research_question",targetUuid:c.uuid,actorType:"agent",actorUuid:b.actorUuid,action:"assigned",value:{assigneeType:"agent",assigneeUuid:b.actorUuid}}),{content:[{type:"text",text:JSON.stringify({uuid:a.uuid,status:a.status},null,2)}]}}catch(a){if(a instanceof l.Yy)return{content:[{type:"text",text:"Can only claim Research Questions with open status"}],isError:!0};throw a}}),a.registerTool("synapse_release_research_question",{description:"Release a claimed Research Question (assigned -> open)",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>{let c=await g._W(b.companyUuid,a);if(!c)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};if(!("agent"===c.assigneeType&&c.assigneeUuid===b.actorUuid||"user"===c.assigneeType&&b.ownerUuid&&c.assigneeUuid===b.ownerUuid))return{content:[{type:"text",text:"Only the assignee can release a claimed Research Question"}],isError:!0};try{let a=await g.Rd(c.uuid);return await j.E1({companyUuid:b.companyUuid,researchProjectUuid:c.researchProjectUuid,targetType:"research_question",targetUuid:c.uuid,actorType:"agent",actorUuid:b.actorUuid,action:"released"}),{content:[{type:"text",text:JSON.stringify({uuid:a.uuid,status:a.status},null,2)}]}}catch(a){if(a instanceof l.nm)return{content:[{type:"text",text:"Can only release Research Questions with assigned status"}],isError:!0};throw a}}),a.registerTool("synapse_update_research_question_status",{description:"Update Research Question status (only assignee can operate). Valid statuses: open, elaborating, proposal_created, completed, closed. Claiming auto-transitions to elaborating; use this tool for proposal_created (after Experiment Design submission) or completed (after approval).",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID"),status:e.k5n(["elaborating","proposal_created","completed","in_progress","pending_review"]).describe("New status")})},async({researchQuestionUuid:a,status:c})=>{let d=await g._W(b.companyUuid,a);if(!d)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};if(!("agent"===d.assigneeType&&d.assigneeUuid===b.actorUuid||"user"===d.assigneeType&&b.ownerUuid&&d.assigneeUuid===b.ownerUuid))return{content:[{type:"text",text:"Only the assignee can update the status"}],isError:!0};let e="in_progress"===c?"elaborating":"pending_review"===c?"proposal_created":c;if(!g.$V(d.status,e))return{content:[{type:"text",text:`Invalid status transition: ${d.status} -> ${e}`}],isError:!0};let f=await g.pg(d.uuid,b.companyUuid,{status:e});return await j.E1({companyUuid:b.companyUuid,researchProjectUuid:d.researchProjectUuid,targetType:"research_question",targetUuid:d.uuid,actorType:"agent",actorUuid:b.actorUuid,action:"status_changed",value:{status:e}}),{content:[{type:"text",text:JSON.stringify({uuid:f.uuid,status:f.status},null,2)}]}}),a.registerTool("synapse_create_document",{description:"Create a document (PRD, tech design, ADR, spec, guide, etc.)",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),type:e.k5n(["experiment_result","literature_review","analysis","methodology","rdr","results_report","other"]).describe("Document type"),title:e.YjP().describe("Document title"),content:e.YjP().optional().describe("Document content (Markdown)"),experimentDesignUuid:e.YjP().optional().describe("Associated Experiment Design UUID (optional)")})},async({researchProjectUuid:a,type:c,title:d,content:e,experimentDesignUuid:g})=>{if(!await (0,f.vP)(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};if(g&&!await h.Qr(b.companyUuid,g))return{content:[{type:"text",text:"Experiment Design not found"}],isError:!0};let j=await i.ui({companyUuid:b.companyUuid,researchProjectUuid:a,type:c,title:d,content:e||null,experimentDesignUuid:g||null,createdByUuid:b.actorUuid});return{content:[{type:"text",text:JSON.stringify({uuid:j.uuid,title:j.title,type:j.type},null,2)}]}}),a.registerTool("synapse_update_document",{description:"Update document content (increments version number)",inputSchema:e.Ikc({documentUuid:e.YjP().describe("Document UUID"),title:e.YjP().optional().describe("New title"),content:e.YjP().optional().describe("New content (Markdown)")})},async({documentUuid:a,title:c,content:d})=>{if(!await i.YE(b.companyUuid,a))return{content:[{type:"text",text:"Document not found"}],isError:!0};let e=await i.lU(a,{title:c,content:d,incrementVersion:!0});return{content:[{type:"text",text:JSON.stringify({uuid:e.uuid,version:e.version},null,2)}]}}),a.registerTool("synapse_add_document_draft",{description:"Add a document draft to a pending Experiment Design container",inputSchema:e.Ikc({experimentDesignUuid:e.YjP().describe("Experiment Design UUID"),type:e.YjP().describe("Document type (prd, tech_design, adr, spec, guide)"),title:e.YjP().describe("Document title"),content:e.YjP().describe("Document content (Markdown)")})},async({experimentDesignUuid:a,type:c,title:d,content:e})=>{try{let f=await h.M9(a,b.companyUuid,{type:c,title:d,content:e}),g=f.documentDrafts,i=g?.[g.length-1];return{content:[{type:"text",text:JSON.stringify({experimentDesignUuid:f.uuid,action:"document_draft_added",draftUuid:i?.uuid,draftTitle:i?.title},null,2)}]}}catch(a){return{content:[{type:"text",text:`Failed to add document draft: ${a instanceof Error?a.message:"Unknown error"}`}],isError:!0}}}),a.registerTool("synapse_update_document_draft",{description:"Update a document draft in an Experiment Design",inputSchema:e.Ikc({experimentDesignUuid:e.YjP().describe("Experiment Design UUID"),draftUuid:e.YjP().describe("Document draft UUID"),type:e.YjP().optional().describe("Document type"),title:e.YjP().optional().describe("Document title"),content:e.YjP().optional().describe("Document content (Markdown)")})},async({experimentDesignUuid:a,draftUuid:c,type:d,title:e,content:f})=>{try{let g={};void 0!==d&&(g.type=d),void 0!==e&&(g.title=e),void 0!==f&&(g.content=f);let i=await h.gT(a,b.companyUuid,c,g);return{content:[{type:"text",text:JSON.stringify({experimentDesignUuid:i.uuid,draftUuid:c,action:"document_draft_updated"},null,2)}]}}catch(a){return{content:[{type:"text",text:`Failed to update document draft: ${a instanceof Error?a.message:"Unknown error"}`}],isError:!0}}}),a.registerTool("synapse_remove_document_draft",{description:"Remove a document draft from an Experiment Design",inputSchema:e.Ikc({experimentDesignUuid:e.YjP().describe("Experiment Design UUID"),draftUuid:e.YjP().describe("Document draft UUID")})},async({experimentDesignUuid:a,draftUuid:c})=>{try{let d=await h.nW(a,b.companyUuid,c);return{content:[{type:"text",text:JSON.stringify({experimentDesignUuid:d.uuid,draftUuid:c,action:"document_draft_removed"},null,2)}]}}catch(a){return{content:[{type:"text",text:`Failed to remove document draft: ${a instanceof Error?a.message:"Unknown error"}`}],isError:!0}}});let c=(0,m.Ht)([(0,m.V4)({name:"synapse_move_research_question",description:"Move a Research Question to a different research project within the same company. Also moves linked draft/pending Experiment Designs.",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID"),targetResearchProjectUuid:e.YjP().describe("Target Research Project UUID")}),async execute({researchQuestionUuid:a,targetResearchProjectUuid:c}){try{let d=await g.Be(b.companyUuid,a,c,b.actorUuid,b.type);return(0,m.XP)({uuid:d.uuid,project:d.project})}catch(a){return(0,m.xv)(`Failed to move Research Question: ${a instanceof Error?a.message:"Unknown error"}`,!0)}}}),(0,m.V4)({name:"synapse_create_research_question",description:"Create a Research Question (submits requirements on behalf of humans)",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),title:e.YjP().describe("Research Question title"),content:e.YjP().optional().describe("Research Question detailed description")}),async execute({researchProjectUuid:a,title:c,content:d}){if(!await (0,f.vP)(b.companyUuid,a))return(0,m.xv)("Research Project not found",!0);let e=await g.q0({companyUuid:b.companyUuid,researchProjectUuid:a,title:c,content:d||null,createdByUuid:b.actorUuid});return(0,m.XP)({uuid:e.uuid,title:e.title})}}),(0,m.V4)({name:"synapse_generate_project_ideas",description:"Create one or more agent-generated research ideas from a project brief so they enter the human review board.",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),ideas:e.YOg(e.Ikc({title:e.YjP().describe("Research idea title"),content:e.YjP().optional().describe("Supporting rationale, approach, or ablation details")})).min(1).max(12)}),async execute({researchProjectUuid:a,ideas:c}){if(!await (0,f.j5)(b.companyUuid,a))return(0,m.xv)("Research Project not found",!0);let d=await Promise.all(c.map(c=>g.q0({companyUuid:b.companyUuid,researchProjectUuid:a,title:c.title,content:c.content||null,createdByUuid:b.actorUuid,sourceType:"agent",sourceLabel:`Generated by ${b.agentName||"agent"} from project brief`,generatedByAgentUuid:b.actorUuid})));return(0,m.XP)({researchProjectUuid:a,createdCount:d.length,ideas:d.map(a=>({uuid:a.uuid,title:a.title,reviewStatus:a.reviewStatus,sourceType:a.sourceType}))})}}),(0,m.V4)({name:"synapse_create_baseline",description:"Register a baseline result for comparison in a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),name:e.YjP(),metrics:e.g1P(e.YjP(),e.aig()),experimentUuid:e.YjP().optional()}),async execute(a){let c=await k.wu(b.companyUuid,a);return(0,m.XP)(c)}}),(0,m.V4)({name:"synapse_list_baselines",description:"List all baselines for a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP()}),async execute({researchProjectUuid:a}){let c=await k.$W(b.companyUuid,a);return(0,m.XP)(c)}}),(0,m.V4)({name:"synapse_compare_results",description:"Compare experiment run results against the active baseline",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),experimentResults:e.g1P(e.YjP(),e.aig())}),async execute({researchProjectUuid:a,experimentResults:c}){let d=await k.aJ(b.companyUuid,a);if(!d)return(0,m.XP)({error:"No active baseline found"});let e={},f=d.metrics;for(let[a,b]of Object.entries(c))if(a in f){let c=f[a];e[a]={baseline:c,experiment:b,delta:b-c,improved:b>c}}return(0,m.XP)({baseline:d.name,comparison:e})}}),(0,m.V4)({name:"synapse_create_rdr",description:"Create a Research Decision Record documenting why a particular approach was chosen",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),title:e.YjP(),content:e.YjP()}),async execute({researchProjectUuid:a,title:c,content:d}){let e=await i.ui({researchProjectUuid:a,type:"rdr",title:c,content:d,createdByUuid:b.actorUuid,companyUuid:b.companyUuid});return(0,m.XP)(e)}})]);(0,m.D8)(a,c)}[f,g,h,i,j,k]=n.then?(await n)():n,d()}catch(a){d(a)}})},92782:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,d.str)`must NOT have ${"maxProperties"===a?"more":"fewer"} than ${b} properties`,params:({schemaCode:a})=>(0,d._)`{limit: ${a}}`},code(a){let{keyword:b,data:c,schemaCode:e}=a,f="maxProperties"===b?d.operators.GT:d.operators.LT;a.fail$data((0,d._)`Object.keys(${c}).length ${f} ${e}`)}}},93629:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateSchemaDeps=b.validatePropertyDeps=b.error=void 0;let d=c(74489),e=c(23235),f=c(41033);b.error={message:({params:{property:a,depsCount:b,deps:c}})=>(0,d.str)`must have ${1===b?"property":"properties"} ${c} when property ${a} is present`,params:({params:{property:a,depsCount:b,deps:c,missingProperty:e}})=>(0,d._)`{property: ${a},
32
+ `,a.enqueue(b.encode(e)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(a,b){try{let c,e,f,g=a.headers.get("accept");if(!g?.includes("application/json")||!g.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");let h=a.headers.get("content-type");if(!h||!h.includes("application/json"))return this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");let i={headers:Object.fromEntries(a.headers.entries())};if(b?.parsedBody!==void 0)c=b.parsedBody;else try{c=await a.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}try{e=Array.isArray(c)?c.map(a=>d.OR.parse(a)):[d.OR.parse(c)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let j=e.some(d.eK);if(j){if(this._initialized&&void 0!==this.sessionId)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(e.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!j){let b=this.validateSession(a);if(b)return b;let c=this.validateProtocolVersion(a);if(c)return c}if(!e.some(d.vo)){for(let a of e)this.onmessage?.(a,{authInfo:b?.authInfo,requestInfo:i});return new Response(null,{status:202})}let k=crypto.randomUUID(),l=e.find(a=>(0,d.eK)(a)),m=l?l.params.protocolVersion:a.headers.get("mcp-protocol-version")??d.PC;if(this._enableJsonResponse)return new Promise(a=>{for(let b of(this._streamMapping.set(k,{resolveJson:a,cleanup:()=>{this._streamMapping.delete(k)}}),e))(0,d.vo)(b)&&this._requestToStreamMapping.set(b.id,k);for(let a of e)this.onmessage?.(a,{authInfo:b?.authInfo,requestInfo:i})});let n=new TextEncoder,o=new ReadableStream({start:a=>{f=a},cancel:()=>{this._streamMapping.delete(k)}}),p={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};for(let a of(void 0!==this.sessionId&&(p["mcp-session-id"]=this.sessionId),e))(0,d.vo)(a)&&(this._streamMapping.set(k,{controller:f,encoder:n,cleanup:()=>{this._streamMapping.delete(k);try{f.close()}catch{}}}),this._requestToStreamMapping.set(a.id,k));for(let a of(await this.writePrimingEvent(f,n,k,m),e)){let c,e;(0,d.vo)(a)&&this._eventStore&&m>="2025-11-25"&&(c=()=>{this.closeSSEStream(a.id)},e=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(a,{authInfo:b?.authInfo,requestInfo:i,closeSSEStream:c,closeStandaloneSSEStream:e})}return new Response(o,{status:200,headers:p})}catch(a){return this.onerror?.(a),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(a)})}}async handleDeleteRequest(a){let b=this.validateSession(a);if(b)return b;let c=this.validateProtocolVersion(a);return c||(await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(a){if(void 0===this.sessionIdGenerator)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let b=a.headers.get("mcp-session-id");return b?b!==this.sessionId?this.createJsonErrorResponse(404,-32001,"Session not found"):void 0:this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required")}validateProtocolVersion(a){let b=a.headers.get("mcp-protocol-version");if(null!==b&&!d.Iu.includes(b))return this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${b} (supported versions: ${d.Iu.join(", ")})`)}async close(){this._streamMapping.forEach(({cleanup:a})=>{a()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(a){let b=this._requestToStreamMapping.get(a);if(!b)return;let c=this._streamMapping.get(b);c&&c.cleanup()}closeStandaloneSSEStream(){let a=this._streamMapping.get(this._standaloneSseStreamId);a&&a.cleanup()}async send(a,b){let c=b?.relatedRequestId;if(((0,d.ig)(a)||(0,d.LW)(a))&&(c=a.id),void 0===c){let b;if((0,d.ig)(a)||(0,d.LW)(a))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");this._eventStore&&(b=await this._eventStore.storeEvent(this._standaloneSseStreamId,a));let c=this._streamMapping.get(this._standaloneSseStreamId);if(void 0===c)return;c.controller&&c.encoder&&this.writeSSEEvent(c.controller,c.encoder,a,b);return}let e=this._requestToStreamMapping.get(c);if(!e)throw Error(`No connection established for request ID: ${String(c)}`);let f=this._streamMapping.get(e);if(!this._enableJsonResponse&&f?.controller&&f?.encoder){let b;this._eventStore&&(b=await this._eventStore.storeEvent(e,a)),this.writeSSEEvent(f.controller,f.encoder,a,b)}if((0,d.ig)(a)||(0,d.LW)(a)){this._requestResponseMap.set(c,a);let b=Array.from(this._requestToStreamMapping.entries()).filter(([a,b])=>b===e).map(([a])=>a);if(b.every(a=>this._requestResponseMap.has(a))){if(!f)throw Error(`No connection established for request ID: ${String(c)}`);if(this._enableJsonResponse&&f.resolveJson){let a={"Content-Type":"application/json"};void 0!==this.sessionId&&(a["mcp-session-id"]=this.sessionId);let c=b.map(a=>this._requestResponseMap.get(a));1===c.length?f.resolveJson(new Response(JSON.stringify(c[0]),{status:200,headers:a})):f.resolveJson(new Response(JSON.stringify(c),{status:200,headers:a}))}else f.cleanup();for(let a of b)this._requestResponseMap.delete(a),this._requestToStreamMapping.delete(a)}}}}},48161:a=>{a.exports=require("node:os")},50435:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.resolveSchema=b.getCompilingSchema=b.resolveRef=b.compileSchema=b.SchemaEnv=void 0;let d=c(74489),e=c(87294),f=c(31079),g=c(1171),h=c(23235),i=c(15746);class j{constructor(a){var b;let c;this.refs={},this.dynamicAnchors={},"object"==typeof a.schema&&(c=a.schema),this.schema=a.schema,this.schemaId=a.schemaId,this.root=a.root||this,this.baseId=null!=(b=a.baseId)?b:(0,g.normalizeId)(null==c?void 0:c[a.schemaId||"$id"]),this.schemaPath=a.schemaPath,this.localRefs=a.localRefs,this.meta=a.meta,this.$async=null==c?void 0:c.$async,this.refs={}}}function k(a){let b,c,h=m.call(this,a);if(h)return h;let j=(0,g.getFullPath)(this.opts.uriResolver,a.root.baseId),{es5:k,lines:l}=this.opts.code,{ownProperties:n}=this.opts,o=new d.CodeGen(this.scope,{es5:k,lines:l,ownProperties:n});a.$async&&(b=o.scopeValue("Error",{ref:e.default,code:(0,d._)`require("ajv/dist/runtime/validation_error").default`}));let p=o.scopeName("validate");a.validateName=p;let q={gen:o,allErrors:this.opts.allErrors,data:f.default.data,parentData:f.default.parentData,parentDataProperty:f.default.parentDataProperty,dataNames:[f.default.data],dataPathArr:[d.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",!0===this.opts.code.source?{ref:a.schema,code:(0,d.stringify)(a.schema)}:{ref:a.schema}),validateName:p,ValidationError:b,schema:a.schema,schemaEnv:a,rootId:j,baseId:a.baseId||j,schemaPath:d.nil,errSchemaPath:a.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,d._)`""`,opts:this.opts,self:this};try{this._compilations.add(a),(0,i.validateFunctionCode)(q),o.optimize(this.opts.code.optimize);let b=o.toString();c=`${o.scopeRefs(f.default.scope)}return ${b}`,this.opts.code.process&&(c=this.opts.code.process(c,a));let e=Function(`${f.default.self}`,`${f.default.scope}`,c)(this,this.scope.get());if(this.scope.value(p,{ref:e}),e.errors=null,e.schema=a.schema,e.schemaEnv=a,a.$async&&(e.$async=!0),!0===this.opts.code.source&&(e.source={validateName:p,validateCode:b,scopeValues:o._values}),this.opts.unevaluated){let{props:a,items:b}=q;e.evaluated={props:a instanceof d.Name?void 0:a,items:b instanceof d.Name?void 0:b,dynamicProps:a instanceof d.Name,dynamicItems:b instanceof d.Name},e.source&&(e.source.evaluated=(0,d.stringify)(e.evaluated))}return a.validate=e,a}catch(b){throw delete a.validate,delete a.validateName,c&&this.logger.error("Error compiling schema, function code:",c),b}finally{this._compilations.delete(a)}}function l(a){return(0,g.inlineRef)(a.schema,this.opts.inlineRefs)?a.schema:a.validate?a:k.call(this,a)}function m(a){for(let d of this._compilations){var b,c;if(b=d,c=a,b.schema===c.schema&&b.root===c.root&&b.baseId===c.baseId)return d}}function n(a,b){let c;for(;"string"==typeof(c=this.refs[b]);)b=c;return c||this.schemas[b]||o.call(this,a,b)}function o(a,b){let c=this.opts.uriResolver.parse(b),d=(0,g._getFullPath)(this.opts.uriResolver,c),e=(0,g.getFullPath)(this.opts.uriResolver,a.baseId,void 0);if(Object.keys(a.schema).length>0&&d===e)return q.call(this,c,a);let f=(0,g.normalizeId)(d),h=this.refs[f]||this.schemas[f];if("string"==typeof h){let b=o.call(this,a,h);if("object"!=typeof(null==b?void 0:b.schema))return;return q.call(this,c,b)}if("object"==typeof(null==h?void 0:h.schema)){if(h.validate||k.call(this,h),f===(0,g.normalizeId)(b)){let{schema:b}=h,{schemaId:c}=this.opts,d=b[c];return d&&(e=(0,g.resolveUrl)(this.opts.uriResolver,e,d)),new j({schema:b,schemaId:c,root:a,baseId:e})}return q.call(this,c,h)}}b.SchemaEnv=j,b.compileSchema=k,b.resolveRef=function(a,b,c){var d;c=(0,g.resolveUrl)(this.opts.uriResolver,b,c);let e=a.refs[c];if(e)return e;let f=n.call(this,a,c);if(void 0===f){let e=null==(d=a.localRefs)?void 0:d[c],{schemaId:g}=this.opts;e&&(f=new j({schema:e,schemaId:g,root:a,baseId:b}))}if(void 0!==f)return a.refs[c]=l.call(this,f)},b.getCompilingSchema=m,b.resolveSchema=o;let p=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function q(a,{baseId:b,schema:c,root:d}){var e;let f;if((null==(e=a.fragment)?void 0:e[0])!=="/")return;for(let d of a.fragment.slice(1).split("/")){if("boolean"==typeof c)return;let a=c[(0,h.unescapeFragment)(d)];if(void 0===a)return;let e="object"==typeof(c=a)&&c[this.opts.schemaId];!p.has(d)&&e&&(b=(0,g.resolveUrl)(this.opts.uriResolver,b,e))}if("boolean"!=typeof c&&c.$ref&&!(0,h.schemaHasRulesButRef)(c,this.RULES)){let a=(0,g.resolveUrl)(this.opts.uriResolver,b,c.$ref);f=o.call(this,d,a)}let{schemaId:i}=this.opts;if((f=f||new j({schema:c,schemaId:i,root:d,baseId:b})).schema!==f.root.schema)return f}},51455:a=>{a.exports=require("node:fs/promises")},52310:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(41033),e=c(74489);b.default={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:a})=>(0,e.str)`must match pattern "${a}"`,params:({schemaCode:a})=>(0,e._)`{pattern: ${a}}`},code(a){let{data:b,$data:c,schema:f,schemaCode:g,it:h}=a,i=h.opts.unicodeRegExp?"u":"",j=c?(0,e._)`(new RegExp(${g}, ${i}))`:(0,d.usePattern)(a,f);a.fail$data((0,e._)`!${j}.test(${b})`)}}},52597:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>m,OPTIONS:()=>n,POST:()=>l});var e=c(70936),f=c(46313),g=c(62936),h=c(63478),i=c(62653),j=c(65582),k=a([g,h,i]);[g,h,i]=k.then?(await k)():k;let o=j.vF.child({module:"mcp"}),p=new Map;async function l(a){try{let b,c,d=a.headers.get("authorization"),j=(0,h.Tr)(d);if(!j)return e.NextResponse.json({error:"Missing or invalid API key"},{status:401});let k=await (0,h.ek)(j);if(!k.valid||!k.agent)return e.NextResponse.json({error:k.error||"Invalid API key"},{status:401});let l=a.headers.get("x-synapse-project-group"),m=a.headers.get("x-synapse-project");l?b=await (0,i.T0)(k.agent.companyUuid,l):m&&(b=m.split(",").map(a=>a.trim()).filter(Boolean));let n={type:"agent",companyUuid:k.agent.companyUuid,actorUuid:k.agent.uuid,roles:k.agent.roles,ownerUuid:k.agent.ownerUuid??void 0,agentName:k.agent.name,researchProjectUuids:b},o=a.headers.get("mcp-session-id");if(o&&p.has(o)){c=p.get(o).transport;let a=p.get(o);a&&(a.lastActivity=Date.now())}else{if(o&&!p.has(o))return e.NextResponse.json({jsonrpc:"2.0",error:{code:-32001,message:"Session not found. Please reinitialize."},id:null},{status:404});let a=crypto.randomUUID();c=new f.a({sessionIdGenerator:()=>a});let b=(0,g.c)(n);await b.connect(c),p.set(a,{transport:c,lastActivity:Date.now()})}return await c.handleRequest(a)}catch(a){return o.error({err:a},"MCP endpoint error"),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function m(a){try{let b=a.headers.get("mcp-session-id");if(!b)return e.NextResponse.json({error:"Missing session ID"},{status:400});let c=p.get(b);return c&&(await c.transport.close(),p.delete(b)),new Response(null,{status:204})}catch(a){return o.error({err:a},"MCP session close error"),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function n(){return new Response(null,{status:204,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, mcp-session-id, mcp-protocol-version"}})}setInterval(function(){let a=Date.now();for(let[b,c]of p.entries())a-c.lastActivity>18e5&&(o.debug({sessionId:b},"cleaning up expired session"),c.transport.close().catch(a=>o.error({err:a},"session close error during cleanup")),p.delete(b))},3e5),d()}catch(a){d(a)}})},53053:a=>{a.exports=require("node:diagnostics_channel")},53235:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{H$:()=>i,Im:()=>p,XO:()=>o,Yz:()=>m,a1:()=>n,ed:()=>k,ie:()=>j,xv:()=>l});var e=c(52618),f=c(911),g=c(91997),h=a([e,g]);async function i(a){let b=await e.prisma.projectGroup.create({data:{companyUuid:a.companyUuid,name:a.name,description:a.description??""}});return{uuid:b.uuid,name:b.name,description:b.description,projectCount:0,createdAt:b.createdAt.toISOString(),updatedAt:b.updatedAt.toISOString()}}async function j(a){if(!await e.prisma.projectGroup.findFirst({where:{uuid:a.groupUuid,companyUuid:a.companyUuid}}))return null;let b=await e.prisma.projectGroup.update({where:{uuid:a.groupUuid},data:{...void 0!==a.name&&{name:a.name},...void 0!==a.description&&{description:a.description}}}),c=await e.prisma.researchProject.count({where:{groupUuid:a.groupUuid,companyUuid:a.companyUuid}});return{uuid:b.uuid,name:b.name,description:b.description,projectCount:c,createdAt:b.createdAt.toISOString(),updatedAt:b.updatedAt.toISOString()}}async function k(a,b){return!!await e.prisma.projectGroup.findFirst({where:{uuid:b,companyUuid:a}})&&(await e.prisma.researchProject.updateMany({where:{groupUuid:b,companyUuid:a},data:{groupUuid:null}}),await e.prisma.projectGroup.delete({where:{uuid:b}}),!0)}async function l(a,b){let c=await e.prisma.projectGroup.findFirst({where:{uuid:b,companyUuid:a}});if(!c)return null;let d=await e.prisma.researchProject.findMany({where:{groupUuid:b,companyUuid:a},select:{uuid:!0,name:!0,description:!0},orderBy:{updatedAt:"desc"}});return{uuid:c.uuid,name:c.name,description:c.description,projectCount:d.length,projects:d,createdAt:c.createdAt.toISOString(),updatedAt:c.updatedAt.toISOString()}}async function m(a,b){return e.prisma.projectGroup.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0}})}async function n(a){let b=await e.prisma.projectGroup.findMany({where:{companyUuid:a},orderBy:{createdAt:"asc"}}),c=b.map(a=>a.uuid),d=c.length>0?await e.prisma.researchProject.groupBy({by:["groupUuid"],where:{companyUuid:a,groupUuid:{in:c}},_count:{_all:!0}}):[],f=new Map(d.map(a=>[a.groupUuid,a._count._all])),g=b.map(a=>({uuid:a.uuid,name:a.name,description:a.description,projectCount:f.get(a.uuid)??0,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()})),h=await e.prisma.researchProject.count({where:{companyUuid:a,groupUuid:null}});return{groups:g,total:b.length,ungroupedCount:h}}async function o(a,b,c){if(!await e.prisma.researchProject.findFirst({where:{uuid:b,companyUuid:a}})||c&&!await e.prisma.projectGroup.findFirst({where:{uuid:c,companyUuid:a}}))return null;let d=await e.prisma.researchProject.update({where:{uuid:b},data:{groupUuid:c}});return f.B.emitChange({companyUuid:a,researchProjectUuid:b,entityType:"research_project",entityUuid:b,action:"updated"}),{uuid:d.uuid,name:d.name,groupUuid:d.groupUuid}}async function p(a,b){let c=await e.prisma.projectGroup.findFirst({where:{uuid:b,companyUuid:a}});if(!c)return null;let d=await e.prisma.researchProject.findMany({where:{groupUuid:b,companyUuid:a},select:{uuid:!0,name:!0}}),f=d.map(a=>a.uuid);if(0===f.length)return{group:{uuid:c.uuid,name:c.name,description:c.description},stats:{projectCount:0,totalExperimentRuns:0,completedExperimentRuns:0,completionRate:0,openResearchQuestions:0,activeExperimentDesigns:0,totalTasks:0,completedTasks:0,openIdeas:0,activeProposals:0},projects:[],recentActivity:[]};let h=await (0,g.c8)(a,f),i=d.map(a=>{let b=h.get(a.uuid),c=b?.experimentRuns.total??0,d=b?.experimentRuns.completed??0;return{uuid:a.uuid,name:a.name,experimentRunCount:c,taskCount:c,completionRate:c>0?Math.round(d/c*100):0}}),j=Array.from(h.values()).reduce((a,b)=>(a.totalExperimentRuns+=b.experimentRuns.total,a.completedExperimentRuns+=b.experimentRuns.completed,a.openResearchQuestions+=b.researchQuestions.open+b.researchQuestions.elaborating,a.activeExperimentDesigns+=b.experimentDesigns.active,a),{totalExperimentRuns:0,completedExperimentRuns:0,openResearchQuestions:0,activeExperimentDesigns:0}),k=await e.prisma.activity.findMany({where:{researchProjectUuid:{in:f},companyUuid:a},orderBy:{createdAt:"desc"},take:20}),l=new Map(d.map(a=>[a.uuid,a.name]));return{group:{uuid:c.uuid,name:c.name,description:c.description},stats:{projectCount:d.length,totalExperimentRuns:j.totalExperimentRuns,completedExperimentRuns:j.completedExperimentRuns,completionRate:j.totalExperimentRuns>0?Math.round(j.completedExperimentRuns/j.totalExperimentRuns*100):0,openResearchQuestions:j.openResearchQuestions,activeExperimentDesigns:j.activeExperimentDesigns,totalTasks:j.totalExperimentRuns,completedTasks:j.completedExperimentRuns,openIdeas:j.openResearchQuestions,activeProposals:j.activeExperimentDesigns},projects:i,recentActivity:k.map(a=>({uuid:a.uuid,researchProjectUuid:a.researchProjectUuid,projectUuid:a.researchProjectUuid,projectName:l.get(a.researchProjectUuid)??"Unknown",targetType:a.targetType,targetUuid:a.targetUuid,action:a.action,value:a.value,actorType:a.actorType,actorUuid:a.actorUuid,createdAt:a.createdAt.toISOString()}))}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},55511:a=>{a.exports=require("crypto")},57335:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{CY:()=>k,KD:()=>i,SP:()=>l,Xj:()=>j});var e=c(52618),f=c(911),g=a([e]);function h(a){return{uuid:a.uuid,title:a.title,authors:a.authors,abstract:a.abstract,url:a.url,arxivId:a.arxivId,source:a.source,addedBy:a.addedBy,addedByAgentUuid:a.addedByAgentUuid,publishedYear:a.publishedYear,createdAt:a.createdAt.toISOString()}}async function i(a,b){return(await e.prisma.relatedWork.findMany({where:{companyUuid:a,researchProjectUuid:b},orderBy:{createdAt:"desc"}})).map(h)}async function j(a){let b=[{url:a.url}];a.arxivId&&b.push({arxivId:a.arxivId});let c=await e.prisma.relatedWork.findFirst({where:{companyUuid:a.companyUuid,researchProjectUuid:a.researchProjectUuid,OR:b},select:{uuid:!0}});if(c){let a=await e.prisma.relatedWork.findFirst({where:{uuid:c.uuid}});return{...h(a),isNew:!1}}let d=await e.prisma.relatedWork.create({data:{companyUuid:a.companyUuid,researchProjectUuid:a.researchProjectUuid,title:a.title,authors:a.authors??null,abstract:a.abstract??null,url:a.url,arxivId:a.arxivId??null,source:a.source,addedBy:a.addedBy,addedByAgentUuid:a.addedByAgentUuid??null,publishedYear:a.publishedYear??null}});return f.B.emitChange({companyUuid:a.companyUuid,researchProjectUuid:a.researchProjectUuid,entityType:"related_work",entityUuid:d.uuid,action:"created"}),{...h(d),isNew:!0}}async function k(a,b){await e.prisma.relatedWork.deleteMany({where:{uuid:b,companyUuid:a}})}async function l(a){let b=a.match(/arxiv\.org\/(?:abs|pdf|html)\/([0-9]+\.[0-9]+)/);if(!b)return null;let d=b[1];try{let a=await fetch(`https://api.semanticscholar.org/graph/v1/paper/ArXiv:${d}?fields=title,abstract,authors`,{signal:AbortSignal.timeout(1e4)});if(a.ok){let b=await a.json();if(b.title)return{title:b.title,authors:(b.authors??[]).map(a=>a.name).join(", "),abstract:b.abstract??"",arxivId:d}}}catch{}try{let{execFile:a}=await Promise.resolve().then(c.t.bind(c,31421,23)),{promisify:b}=await Promise.resolve().then(c.t.bind(c,57975,23)),e=b(a),{stdout:f}=await e("curl",["-sL","--max-time","15",`https://export.arxiv.org/api/query?id_list=${d}`],{timeout:2e4,maxBuffer:1048576}),g=f.split("<entry>");if(g.length<2)return null;let h=g[1],i=h.match(/<title>([\s\S]*?)<\/title>/),j=h.match(/<summary>([\s\S]*?)<\/summary>/),k=[...h.matchAll(/<name>(.*?)<\/name>/g)],l=i?.[1]?.replace(/\s+/g," ").trim()??"",m=j?.[1]?.replace(/\s+/g," ").trim()??"",n=k.map(a=>a[1]).join(", ");if(!l)return null;return{title:l,authors:n,abstract:m,arxivId:d}}catch{return null}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},57975:a=>{a.exports=require("node:util")},58030:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235),f=c(41033),g=c(74909);b.default={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:a}})=>(0,d.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,d._)`{limit: ${a}}`},code(a){let{schema:b,parentSchema:c,it:d}=a,{prefixItems:h}=c;d.items=!0,(0,e.alwaysValidSchema)(d,b)||(h?(0,g.validateAdditionalItems)(a,h):a.ok((0,f.validateArray)(a)))}}},58219:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(41033),e=c(74489),f=c(23235);b.default={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:a}})=>(0,e.str)`must have required property '${a}'`,params:({params:{missingProperty:a}})=>(0,e._)`{missingProperty: ${a}}`},code(a){let{gen:b,schema:c,schemaCode:g,data:h,$data:i,it:j}=a,{opts:k}=j;if(!i&&0===c.length)return;let l=c.length>=k.loopRequired;if(j.allErrors?function(){if(l||i)a.block$data(e.nil,m);else for(let b of c)(0,d.checkReportMissingProp)(a,b)}():function(){let f=b.let("missing");if(l||i){let c=b.let("valid",!0);a.block$data(c,()=>{var i,j;return i=f,j=c,void(a.setParams({missingProperty:i}),b.forOf(i,g,()=>{b.assign(j,(0,d.propertyInData)(b,h,i,k.ownProperties)),b.if((0,e.not)(j),()=>{a.error(),b.break()})},e.nil))}),a.ok(c)}else b.if((0,d.checkMissingProp)(a,c,f)),(0,d.reportMissingProp)(a,f),b.else()}(),k.strictRequired){let b=a.parentSchema.properties,{definedProperties:d}=a.it;for(let a of c)if((null==b?void 0:b[a])===void 0&&!d.has(a)){let b=j.schemaEnv.baseId+j.errSchemaPath,c=`required property "${a}" is not defined at "${b}" (strictRequired)`;(0,f.checkStrictMode)(j,c,j.opts.strictRequired)}}function m(){b.forOf("prop",g,c=>{a.setParams({missingProperty:c}),b.if((0,d.noPropertyInData)(b,h,c,k.ownProperties),()=>a.error())})}}}},58362:a=>{a.exports=function a(b,c){if(b===c)return!0;if(b&&c&&"object"==typeof b&&"object"==typeof c){if(b.constructor!==c.constructor)return!1;if(Array.isArray(b)){if((d=b.length)!=c.length)return!1;for(e=d;0!=e--;)if(!a(b[e],c[e]))return!1;return!0}if(b.constructor===RegExp)return b.source===c.source&&b.flags===c.flags;if(b.valueOf!==Object.prototype.valueOf)return b.valueOf()===c.valueOf();if(b.toString!==Object.prototype.toString)return b.toString()===c.toString();if((d=(f=Object.keys(b)).length)!==Object.keys(c).length)return!1;for(e=d;0!=e--;)if(!Object.prototype.hasOwnProperty.call(c,f[e]))return!1;for(e=d;0!=e--;){var d,e,f,g=f[e];if(!a(b[g],c[g]))return!1}return!0}return b!=b&&c!=c}},61437:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateKeywordUsage=b.validSchemaType=b.funcKeywordCode=b.macroKeywordCode=void 0;let d=c(74489),e=c(31079),f=c(41033),g=c(66984);function h(a){let{gen:b,data:c,it:e}=a;b.if(e.parentData,()=>b.assign(c,(0,d._)`${e.parentData}[${e.parentDataProperty}]`))}function i(a,b,c){if(void 0===c)throw Error(`keyword "${b}" failed to compile`);return a.scopeValue("keyword","function"==typeof c?{ref:c}:{ref:c,code:(0,d.stringify)(c)})}b.macroKeywordCode=function(a,b){let{gen:c,keyword:e,schema:f,parentSchema:g,it:h}=a,j=b.macro.call(h.self,f,g,h),k=i(c,e,j);!1!==h.opts.validateSchema&&h.self.validateSchema(j,!0);let l=c.name("valid");a.subschema({schema:j,schemaPath:d.nil,errSchemaPath:`${h.errSchemaPath}/${e}`,topSchemaRef:k,compositeRule:!0},l),a.pass(l,()=>a.error(!0))},b.funcKeywordCode=function(a,b){var c;let{gen:j,keyword:k,schema:l,parentSchema:m,$data:n,it:o}=a;!function({schemaEnv:a},b){if(b.async&&!a.$async)throw Error("async keyword in sync schema")}(o,b);let p=i(j,k,!n&&b.compile?b.compile.call(o.self,l,m,o):b.validate),q=j.let("valid");function r(c=b.async?(0,d._)`await `:d.nil){let g=o.opts.passContext?e.default.this:e.default.self,h=!("compile"in b&&!n||!1===b.schema);j.assign(q,(0,d._)`${c}${(0,f.callValidateCode)(a,p,g,h)}`,b.modifying)}function s(a){var c;j.if((0,d.not)(null!=(c=b.valid)?c:q),a)}a.block$data(q,function(){if(!1===b.errors)r(),b.modifying&&h(a),s(()=>a.error());else{let c=b.async?function(){let a=j.let("ruleErrs",null);return j.try(()=>r((0,d._)`await `),b=>j.assign(q,!1).if((0,d._)`${b} instanceof ${o.ValidationError}`,()=>j.assign(a,(0,d._)`${b}.errors`),()=>j.throw(b))),a}():function(){let a=(0,d._)`${p}.errors`;return j.assign(a,null),r(d.nil),a}();b.modifying&&h(a),s(()=>(function(a,b){let{gen:c}=a;c.if((0,d._)`Array.isArray(${b})`,()=>{c.assign(e.default.vErrors,(0,d._)`${e.default.vErrors} === null ? ${b} : ${e.default.vErrors}.concat(${b})`).assign(e.default.errors,(0,d._)`${e.default.vErrors}.length`),(0,g.extendErrors)(a)},()=>a.error())})(a,c))}}),a.ok(null!=(c=b.valid)?c:q)},b.validSchemaType=function(a,b,c=!1){return!b.length||b.some(b=>"array"===b?Array.isArray(a):"object"===b?a&&"object"==typeof a&&!Array.isArray(a):typeof a==b||c&&void 0===a)},b.validateKeywordUsage=function({schema:a,opts:b,self:c,errSchemaPath:d},e,f){if(Array.isArray(e.keyword)?!e.keyword.includes(f):e.keyword!==f)throw Error("ajv implementation error");let g=e.dependencies;if(null==g?void 0:g.some(b=>!Object.prototype.hasOwnProperty.call(a,b)))throw Error(`parent schema must have dependencies of ${f}: ${g.join(",")}`);if(e.validateSchema&&!e.validateSchema(a[f])){let a=`keyword "${f}" value is invalid at path "${d}": `+c.errorsText(e.validateSchema.errors);if("log"===b.validateSchema)c.logger.error(a);else throw Error(a)}}},62936:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{c:()=>n});var e=c(28708),f=c(31270),g=c(16083),h=c(73994),i=c(38404),j=c(92093),k=c(71084),l=c(70858),m=a([f,g,h,i,j,k,l]);function n(a){let b=new e._({name:"synapse",version:"1.0.0"}),c=a.roles||[],d=(...a)=>c.some(b=>a.includes(b));return(0,l.ji)(b,a),(0,f.q)(b,a),(0,g.r)(b,a),d("pre_research")&&(0,i.W)(b,a),d("research","report","research_lead","research_lead_agent")&&(0,j.W)(b,a),d("experiment","researcher","researcher_agent")&&(0,h.w)(b,a),d("admin","pi","pi_agent")&&(0,k.C)(b,a),b}[f,g,h,i,j,k,l]=m.then?(await m)():m,d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63089:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j:()=>m,m:()=>n});var e=c(52618),f=c(75700),g=c(76872),h=a([e,f,g]);async function i(a){let b=await (0,g.Z_)(a.assigneeType,a.assigneeUuid);return{uuid:a.uuid,title:a.title,content:a.content,status:a.status,assignee:b,assignedAt:a.assignedAt?.toISOString()??null,project:a.researchProject,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function j(a){let b=await (0,g.Z_)(a.assigneeType,a.assigneeUuid);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,assignee:b,assignedAt:a.assignedAt?.toISOString()??null,project:a.researchProject,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function k(a){let b=await (0,g.LS)(a.createdByUuid);return{uuid:a.uuid,title:a.title,content:a.content,status:a.status,createdBy:b,createdAt:a.createdAt.toISOString()}}async function l(a){let b=await (0,g.LS)(a.createdByUuid);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,createdBy:b,createdAt:a.createdAt.toISOString()}}async function m(a,b){let c=function(a){let b=[];return(0,f.yh)(a)?(b.push({assigneeType:"agent",assigneeUuid:a.actorUuid}),a.ownerUuid&&b.push({assigneeType:"user",assigneeUuid:a.ownerUuid})):b.push({assigneeType:"user",assigneeUuid:a.actorUuid}),b}(a),[d,g]=await Promise.all([e.prisma.researchQuestion.findMany({where:{companyUuid:a.companyUuid,...b&&b.length>0&&{researchProjectUuid:{in:b}},OR:c,status:{notIn:["completed","closed"]}},select:{uuid:!0,title:!0,content:!0,status:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,researchProject:{select:{uuid:!0,name:!0}},createdAt:!0,updatedAt:!0},orderBy:{assignedAt:"desc"}}),e.prisma.experimentRun.findMany({where:{companyUuid:a.companyUuid,...b&&b.length>0&&{researchProjectUuid:{in:b}},OR:c,status:{notIn:["done","closed"]}},select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,researchProject:{select:{uuid:!0,name:!0}},createdAt:!0,updatedAt:!0},orderBy:[{priority:"desc"},{assignedAt:"desc"}]})]),[h,k]=await Promise.all([Promise.all(d.map(i)),Promise.all(g.map(j))]);return{researchQuestions:h,experimentRuns:k}}async function n(a,b,c,d,f){let g={researchProjectUuid:b,companyUuid:a,status:"open"},h={...g,...f&&f.length>0&&{experimentDesignUuid:{in:f}}},[i,j]=await Promise.all([c?e.prisma.researchQuestion.findMany({where:g,select:{uuid:!0,title:!0,content:!0,status:!0,createdByUuid:!0,createdAt:!0},orderBy:{createdAt:"desc"},take:50}):[],d?e.prisma.experimentRun.findMany({where:h,select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,createdByUuid:!0,createdAt:!0},orderBy:[{priority:"desc"},{createdAt:"desc"}],take:50}):[]]),[m,n]=await Promise.all([Promise.all(i.map(k)),Promise.all(j.map(l))]);return{researchQuestions:m,experimentRuns:n}}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},63861:(a,b,c)=>{function d(a){return{name:a.name,description:a.description,inputSchema:a.inputSchema,execute:b=>a.execute(b)}}function e(a){return a}function f(a,b){b.forEach(b=>{a.registerTool(b.name,{description:b.description,inputSchema:b.inputSchema},b.execute)})}function g(a,b){return{content:[{type:"text",text:a}],...b?{isError:!0}:{}}}function h(a,b){return g(JSON.stringify(a,null,2),b)}c.d(b,{D8:()=>f,Ht:()=>e,V4:()=>d,XP:()=>h,xv:()=>g})},64939:a=>{a.exports=import("pg")},66984:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.extendErrors=b.resetErrorsCount=b.reportExtraError=b.reportError=b.keyword$DataError=b.keywordError=void 0;let d=c(74489),e=c(23235),f=c(31079);function g(a,b){let c=a.const("err",b);a.if((0,d._)`${f.default.vErrors} === null`,()=>a.assign(f.default.vErrors,(0,d._)`[${c}]`),(0,d._)`${f.default.vErrors}.push(${c})`),a.code((0,d._)`${f.default.errors}++`)}function h(a,b){let{gen:c,validateName:e,schemaEnv:f}=a;f.$async?c.throw((0,d._)`new ${a.ValidationError}(${b})`):(c.assign((0,d._)`${e}.errors`,b),c.return(!1))}b.keywordError={message:({keyword:a})=>(0,d.str)`must pass "${a}" keyword validation`},b.keyword$DataError={message:({keyword:a,schemaType:b})=>b?(0,d.str)`"${a}" keyword must be ${b} ($data)`:(0,d.str)`"${a}" keyword is invalid ($data)`},b.reportError=function(a,c=b.keywordError,e,f){let{it:i}=a,{gen:k,compositeRule:l,allErrors:m}=i,n=j(a,c,e);(null!=f?f:l||m)?g(k,n):h(i,(0,d._)`[${n}]`)},b.reportExtraError=function(a,c=b.keywordError,d){let{it:e}=a,{gen:i,compositeRule:k,allErrors:l}=e;g(i,j(a,c,d)),k||l||h(e,f.default.vErrors)},b.resetErrorsCount=function(a,b){a.assign(f.default.errors,b),a.if((0,d._)`${f.default.vErrors} !== null`,()=>a.if(b,()=>a.assign((0,d._)`${f.default.vErrors}.length`,b),()=>a.assign(f.default.vErrors,null)))},b.extendErrors=function({gen:a,keyword:b,schemaValue:c,data:e,errsCount:g,it:h}){if(void 0===g)throw Error("ajv implementation error");let i=a.name("err");a.forRange("i",g,f.default.errors,g=>{a.const(i,(0,d._)`${f.default.vErrors}[${g}]`),a.if((0,d._)`${i}.instancePath === undefined`,()=>a.assign((0,d._)`${i}.instancePath`,(0,d.strConcat)(f.default.instancePath,h.errorPath))),a.assign((0,d._)`${i}.schemaPath`,(0,d.str)`${h.errSchemaPath}/${b}`),h.opts.verbose&&(a.assign((0,d._)`${i}.schema`,c),a.assign((0,d._)`${i}.data`,e))})};let i={keyword:new d.Name("keyword"),schemaPath:new d.Name("schemaPath"),params:new d.Name("params"),propertyName:new d.Name("propertyName"),message:new d.Name("message"),schema:new d.Name("schema"),parentSchema:new d.Name("parentSchema")};function j(a,b,c){let{createErrors:g}=a.it;return!1===g?(0,d._)`{}`:function(a,b,c={}){let{gen:g,it:h}=a,j=[function({errorPath:a},{instancePath:b}){let c=b?(0,d.str)`${a}${(0,e.getErrorPath)(b,e.Type.Str)}`:a;return[f.default.instancePath,(0,d.strConcat)(f.default.instancePath,c)]}(h,c),function({keyword:a,it:{errSchemaPath:b}},{schemaPath:c,parentSchema:f}){let g=f?b:(0,d.str)`${b}/${a}`;return c&&(g=(0,d.str)`${g}${(0,e.getErrorPath)(c,e.Type.Str)}`),[i.schemaPath,g]}(a,c)];return function(a,{params:b,message:c},e){let{keyword:g,data:h,schemaValue:j,it:k}=a,{opts:l,propertyName:m,topSchemaRef:n,schemaPath:o}=k;e.push([i.keyword,g],[i.params,"function"==typeof b?b(a):b||(0,d._)`{}`]),l.messages&&e.push([i.message,"function"==typeof c?c(a):c]),l.verbose&&e.push([i.schema,j],[i.parentSchema,(0,d._)`${n}${o}`],[f.default.data,h]),m&&e.push([i.propertyName,m])}(a,b,j),g.object(...j)}(a,b,c)}},70511:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:a})=>(0,d.str)`must be multiple of ${a}`,params:({schemaCode:a})=>(0,d._)`{multipleOf: ${a}}`},code(a){let{gen:b,data:c,schemaCode:e,it:f}=a,g=f.opts.multipleOfPrecision,h=b.let("res"),i=g?(0,d._)`Math.abs(Math.round(${h}) - ${h}) > 1e-${g}`:(0,d._)`${h} !== parseInt(${h})`;a.fail$data((0,d._)`(${e} === 0 || (${h} = ${c}/${e}, ${i}))`)}}},70858:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{ji:()=>k});var e=c(911),f=c(52618),g=c(65582),h=a([f]);f=(h.then?(await h)():h)[0];let l=g.vF.child({module:"mcp"}),m={experimentUuid:"experiment",researchQuestionUuid:"research_question",documentUuid:"document"},n={experiment:"experiment",research_question:"research_question",document:"document"},o=["synapse_get_","synapse_list_","synapse_search"];async function i(a,b,c){let d=`${a}:${b}`,e=c.get(d);if(e)return e;try{let e=null;switch(a){case"experiment":{let a=await f.prisma.experiment.findFirst({where:{uuid:b},select:{researchProject:{select:{uuid:!0}}}});e=a?.researchProject?.uuid??null;break}case"research_question":{let a=await f.prisma.researchQuestion.findFirst({where:{uuid:b},select:{researchProject:{select:{uuid:!0}}}});e=a?.researchProject?.uuid??null;break}case"document":{let a=await f.prisma.document.findFirst({where:{uuid:b},select:{researchProject:{select:{uuid:!0}}}});e=a?.researchProject?.uuid??null}}return e&&c.set(d,e),e}catch(a){return l.warn({err:a},"failed to resolve projectUuid"),null}}async function j(a,b,c,d){try{let f=a.researchProjectUuid;if(f||(f=await i(a.entityType,a.entityUuid,d)??void 0),f){let d={type:"presence",companyUuid:c.companyUuid,researchProjectUuid:f,entityType:a.entityType,entityUuid:a.entityUuid,agentUuid:c.actorUuid,agentName:c.agentName,action:o.some(a=>b.startsWith(a))?"view":"mutate",timestamp:Date.now()};e.B.emitPresence(d)}}catch(a){l.warn({err:a},"failed to emit presence event")}}function k(a,b){let c=new Map,d=a.registerTool.bind(a);a.registerTool=function(a,e,f){let g=async(d,e)=>{let g=function(a){for(let[b,c]of Object.entries(m))if("string"==typeof a[b])return{entityType:c,entityUuid:a[b],researchProjectUuid:"string"==typeof a.researchProjectUuid?a.researchProjectUuid:void 0};if("string"==typeof a.targetUuid&&"string"==typeof a.targetType){let b=n[a.targetType];if(b)return{entityType:b,entityUuid:a.targetUuid,researchProjectUuid:"string"==typeof a.researchProjectUuid?a.researchProjectUuid:void 0}}return null}(d);return g&&j(g,a,b,c),f(d,e)};return d(a,e,g)}}d()}catch(a){d(a)}})},70959:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235),f=c(91442);b.default={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:a})=>(0,d._)`{allowedValue: ${a}}`},code(a){let{gen:b,data:c,$data:g,schemaCode:h,schema:i}=a;g||i&&"object"==typeof i?a.fail$data((0,d._)`!${(0,e.useFunc)(b,f.default)}(${c}, ${h})`):a.fail((0,d._)`${i} !== ${c}`)}}},71084:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C:()=>n});var e=c(77258),f=c(62653),g=c(90136),h=c(8777),i=c(88437),j=c(53235),k=c(22425),l=c(25191),m=a([f,g,h,i,j,k,l]);function n(a,b){a.registerTool("synapse_create_research_project",{description:"Create a new research project (PI exclusive, acts on behalf of humans). To assign to a project group, first call synapse_get_project_groups to list available groups, then pass the groupUuid.",inputSchema:e.Ikc({name:e.YjP().describe("Research Project name"),description:e.YjP().optional().describe("Research Project description"),groupUuid:e.YjP().optional().describe("Optional project group UUID to assign this project to. Use synapse_get_project_groups to list available groups.")})},async({name:a,description:c,groupUuid:d})=>{let e=await f.l({companyUuid:b.companyUuid,name:a,description:c||null,groupUuid:d||null});return{content:[{type:"text",text:JSON.stringify({uuid:e.uuid,name:e.name,groupUuid:e.groupUuid})}]}}),a.registerTool("synapse_review_research_question",{description:"Review a research idea and either accept it into the execution pipeline or reject it back out of scope.",inputSchema:e.Ikc({researchQuestionUuid:e.YjP(),decision:e.k5n(["accepted","rejected"]),reviewNote:e.YjP().optional()})},async({researchQuestionUuid:a,decision:c,reviewNote:d})=>{let e=await g._W(b.companyUuid,a);if(!e)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};let f=await g.e0(b.companyUuid,a,c,b.actorUuid,d||null);return await i.E1({companyUuid:b.companyUuid,researchProjectUuid:e.researchProjectUuid,targetType:"research_question",targetUuid:a,actorType:"agent",actorUuid:b.actorUuid,action:"accepted"===c?"approved":"rejected",value:d?{reviewNote:d}:void 0}),{content:[{type:"text",text:JSON.stringify(f,null,2)}]}}),a.registerTool("synapse_delete_research_question",{description:"Delete a Research Question (PI exclusive, can delete any Research Question)",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>await g._W(b.companyUuid,a)?(await g.ph(a),{content:[{type:"text",text:`Research Question ${a} deleted`}]}):{content:[{type:"text",text:"Research Question not found"}],isError:!0}),a.registerTool("synapse_delete_document",{description:"Delete a Document (PI exclusive, can delete any Document)",inputSchema:e.Ikc({documentUuid:e.YjP().describe("Document UUID")})},async({documentUuid:a})=>await h.YE(b.companyUuid,a)?(await h.Nn(a),{content:[{type:"text",text:`Document ${a} deleted`}]}):{content:[{type:"text",text:"Document not found"}],isError:!0}),a.registerTool("synapse_close_research_question",{description:"Close a Research Question (any status -> closed, PI exclusive)",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>{let c=await g._W(b.companyUuid,a);if(!c)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};if("closed"===c.status)return{content:[{type:"text",text:"Research Question is already in closed status"}],isError:!0};let d=await g.pg(a,b.companyUuid,{status:"closed"});return await i.E1({companyUuid:b.companyUuid,researchProjectUuid:c.researchProjectUuid,targetType:"research_question",targetUuid:a,actorType:"agent",actorUuid:b.actorUuid,action:"closed"}),{content:[{type:"text",text:JSON.stringify({uuid:d.uuid,status:d.status})}]}}),a.registerTool("synapse_create_project_group",{description:"Create a new project group (PI exclusive)",inputSchema:e.Ikc({name:e.YjP().describe("Project group name"),description:e.YjP().optional().describe("Project group description")})},async({name:a,description:c})=>{let d=await j.H$({companyUuid:b.companyUuid,name:a,description:c||null});return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}),a.registerTool("synapse_update_project_group",{description:"Update a project group (PI exclusive)",inputSchema:e.Ikc({groupUuid:e.YjP().describe("Project Group UUID"),name:e.YjP().optional().describe("New group name"),description:e.YjP().optional().describe("New group description")})},async({groupUuid:a,name:c,description:d})=>{let e=await j.ie({companyUuid:b.companyUuid,groupUuid:a,name:c,description:d});return e?{content:[{type:"text",text:JSON.stringify(e,null,2)}]}:{content:[{type:"text",text:"Project group not found"}],isError:!0}}),a.registerTool("synapse_delete_project_group",{description:"Delete a project group (PI exclusive). Projects in the group become ungrouped.",inputSchema:e.Ikc({groupUuid:e.YjP().describe("Project Group UUID")})},async({groupUuid:a})=>await j.ed(b.companyUuid,a)?{content:[{type:"text",text:`Project group ${a} deleted`}]}:{content:[{type:"text",text:"Project group not found"}],isError:!0}),a.registerTool("synapse_move_research_project_to_group",{description:"Move a research project to a different group or ungroup it (PI exclusive). Set groupUuid to null to ungroup.",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),groupUuid:e.YjP().nullable().describe("Target Project Group UUID (null to ungroup)")})},async({researchProjectUuid:a,groupUuid:c})=>{let d=await j.XO(b.companyUuid,a,c);return d?{content:[{type:"text",text:JSON.stringify(d,null,2)}]}:{content:[{type:"text",text:"Research Project or project group not found"}],isError:!0}}),a.registerTool("synapse_verify_reproducibility",{description:"Mark an experiment as verified for reproducibility",inputSchema:e.Ikc({registryUuid:e.YjP()})},async a=>{let c=await k.Mv(b.companyUuid,a.registryUuid);return{content:[{type:"text",text:JSON.stringify(c,null,2)}]}}),a.registerTool("synapse_set_active_baseline",{description:"Set the active baseline for a research project (deactivates all others)",inputSchema:e.Ikc({baselineUuid:e.YjP()})},async a=>{let c=await l.Or(b.companyUuid,a.baselineUuid);return{content:[{type:"text",text:JSON.stringify(c,null,2)}]}})}[f,g,h,i,j,k,l]=m.then?(await m)():m,d()}catch(a){d(a)}})},71296:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(41033),e=c(74489),f=c(31079),g=c(23235);b.default={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:a})=>(0,e._)`{additionalProperty: ${a.additionalProperty}}`},code(a){let{gen:b,schema:c,parentSchema:h,data:i,errsCount:j,it:k}=a;if(!j)throw Error("ajv implementation error");let{allErrors:l,opts:m}=k;if(k.props=!0,"all"!==m.removeAdditional&&(0,g.alwaysValidSchema)(k,c))return;let n=(0,d.allSchemaProperties)(h.properties),o=(0,d.allSchemaProperties)(h.patternProperties);function p(a){b.code((0,e._)`delete ${i}[${a}]`)}function q(d){if("all"===m.removeAdditional||m.removeAdditional&&!1===c)return void p(d);if(!1===c){a.setParams({additionalProperty:d}),a.error(),l||b.break();return}if("object"==typeof c&&!(0,g.alwaysValidSchema)(k,c)){let c=b.name("valid");"failing"===m.removeAdditional?(r(d,c,!1),b.if((0,e.not)(c),()=>{a.reset(),p(d)})):(r(d,c),l||b.if((0,e.not)(c),()=>b.break()))}}function r(b,c,d){let e={keyword:"additionalProperties",dataProp:b,dataPropType:g.Type.Str};!1===d&&Object.assign(e,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema(e,c)}b.forIn("key",i,c=>{n.length||o.length?b.if(function(c){let f;if(n.length>8){let a=(0,g.schemaRefOrVal)(k,h.properties,"properties");f=(0,d.isOwnProperty)(b,a,c)}else f=n.length?(0,e.or)(...n.map(a=>(0,e._)`${c} === ${a}`)):e.nil;return o.length&&(f=(0,e.or)(f,...o.map(b=>(0,e._)`${(0,d.usePattern)(a,b)}.test(${c})`))),(0,e.not)(f)}(c),()=>q(c)):q(c)}),a.ok((0,e._)`${j} === ${f.default.errors}`)}}},71339:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235),f=c(91442);b.default={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:a})=>(0,d._)`{allowedValues: ${a}}`},code(a){let b,c,{gen:g,data:h,$data:i,schema:j,schemaCode:k,it:l}=a;if(!i&&0===j.length)throw Error("enum must have non-empty array");let m=j.length>=l.opts.loopEnum,n=()=>null!=b?b:b=(0,e.useFunc)(g,f.default);if(m||i)c=g.let("valid"),a.block$data(c,function(){g.assign(c,!1),g.forOf("v",k,a=>g.if((0,d._)`${n()}(${h}, ${a})`,()=>g.assign(c,!0).break()))});else{if(!Array.isArray(j))throw Error("ajv implementation error");let a=g.const("vSchema",k);c=(0,d.or)(...j.map((b,c)=>(function(a,b){let c=j[b];return"object"==typeof c&&null!==c?(0,d._)`${n()}(${h}, ${a}[${b}])`:(0,d._)`${h} === ${c}`})(a,c)))}a.pass(c)}}},71360:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.DiscrError=void 0,function(a){a.Tag="tag",a.Mapping="mapping"}(c||(b.DiscrError=c={}))},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73566:a=>{a.exports=require("worker_threads")},73652:a=>{let b=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),c=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function d(a){let b="",c=0,d=0;for(d=0;d<a.length;d++)if(48!==(c=a[d].charCodeAt(0))){if(!(c>=48&&c<=57||c>=65&&c<=70||c>=97&&c<=102))return"";b+=a[d];break}for(d+=1;d<a.length;d++){if(!((c=a[d].charCodeAt(0))>=48&&c<=57||c>=65&&c<=70||c>=97&&c<=102))return"";b+=a[d]}return b}function e(a){return a.length=0,!0}function f(a,b,c){if(a.length){let e=d(a);if(""===e)return c.error=!0,!1;b.push(e),a.length=0}return!0}function g(a){if(2>function(a,b){let c=0;for(let b=0;b<a.length;b++)":"===a[b]&&c++;return c}(a,":"))return{host:a,isIPV6:!1};let b=function(a){let b=0,c={error:!1,address:"",zone:""},g=[],h=[],i=!1,j=!1,k=f;for(let d=0;d<a.length;d++){let f=a[d];if("["!==f&&"]"!==f)if(":"===f){if(!0===i&&(j=!0),!k(h,g,c))break;if(++b>7){c.error=!0;break}d>0&&":"===a[d-1]&&(i=!0),g.push(":");continue}else if("%"===f){if(!k(h,g,c))break;k=e}else{h.push(f);continue}}return h.length&&(k===e?c.zone=h.join(""):j?g.push(h.join("")):g.push(d(h))),c.address=g.join(""),c}(a);if(b.error)return{host:a,isIPV6:!1};{let a=b.address,c=b.address;return b.zone&&(a+="%"+b.zone,c+="%25"+b.zone),{host:a,isIPV6:!0,escapedHost:c}}}a.exports={nonSimpleDomain:RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u),recomposeAuthority:function(a){let b=[];if(void 0!==a.userinfo&&(b.push(a.userinfo),b.push("@")),void 0!==a.host){let d=unescape(a.host);if(!c(d)){let b=g(d);d=!0===b.isIPV6?`[${b.escapedHost}]`:a.host}b.push(d)}return("number"==typeof a.port||"string"==typeof a.port)&&(b.push(":"),b.push(String(a.port))),b.length?b.join(""):void 0},normalizeComponentEncoding:function(a,b){let c=!0!==b?escape:unescape;return void 0!==a.scheme&&(a.scheme=c(a.scheme)),void 0!==a.userinfo&&(a.userinfo=c(a.userinfo)),void 0!==a.host&&(a.host=c(a.host)),void 0!==a.path&&(a.path=c(a.path)),void 0!==a.query&&(a.query=c(a.query)),void 0!==a.fragment&&(a.fragment=c(a.fragment)),a},removeDotSegments:function(a){let b=a,c=[],d=-1,e=0;for(;e=b.length;){if(1===e)if("."===b)break;else if("/"===b){c.push("/");break}else{c.push(b);break}if(2===e){if("."===b[0]){if("."===b[1])break;else if("/"===b[1]){b=b.slice(2);continue}}else if("/"===b[0]&&("."===b[1]||"/"===b[1])){c.push("/");break}}else if(3===e&&"/.."===b){0!==c.length&&c.pop(),c.push("/");break}if("."===b[0]){if("."===b[1]){if("/"===b[2]){b=b.slice(3);continue}}else if("/"===b[1]){b=b.slice(2);continue}}else if("/"===b[0]&&"."===b[1]){if("/"===b[2]){b=b.slice(2);continue}else if("."===b[2]&&"/"===b[3]){b=b.slice(3),0!==c.length&&c.pop();continue}}if(-1===(d=b.indexOf("/",1))){c.push(b);break}c.push(b.slice(0,d)),b=b.slice(d)}return c.join("")},isIPv4:c,isUUID:b,normalizeIPv6:g,stringArrayToHexStripped:d}},73994:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>q});var e=c(77258),f=c(52618),g=c(88437),h=c(33073),i=c(48499),j=c(46499),k=c(87797),l=c(77064),m=c(37943),n=a([f,g,h,i,j,k,l,m]);function o(a){return{ssh:a.sshHost||a.sshUser||a.sshPort?{host:a.sshHost,user:a.sshUser,port:a.sshPort??22,keyName:a.sshKeyName??null,managedKeyAvailable:a.managedKeyAvailable??!1,accessBundleTool:"synapse_get_node_access_bundle"}:null,ssmTarget:a.ssmTarget}}function p(a,b){return!a||"agent"===a.type&&a.uuid===b.actorUuid||"user"===a.type&&a.uuid===b.ownerUuid}function q(a,b){a.registerTool("synapse_list_compute_nodes",{description:"List compute pools, nodes, SSH/SSM access details, and the status of every GPU.",inputSchema:e.Ikc({onlyAvailable:e.zMY().default(!1),researchProjectUuid:e.YjP().optional()})},async({onlyAvailable:a,researchProjectUuid:c})=>{let d=await h.XH(b.companyUuid);if(c){let a=await f.prisma.researchProject.findFirst({where:{uuid:c,companyUuid:b.companyUuid},select:{computePoolUuid:!0}});a?.computePoolUuid&&(d=d.filter(b=>b.uuid===a.computePoolUuid))}let e=d.map(b=>({uuid:b.uuid,name:b.name,description:b.description,nodes:b.nodes.map(b=>({uuid:b.uuid,label:b.label,lifecycle:b.lifecycle,ec2InstanceId:b.ec2InstanceId,instanceType:b.instanceType,region:b.region,inventoryPending:b.inventoryPending,access:o(b),lastReportedAt:b.lastReportedAt,gpus:b.gpus.filter(b=>!a||"available"===b.computedStatus).map(a=>({uuid:a.uuid,slotIndex:a.slotIndex,model:a.model,memoryGb:a.memoryGb,status:a.activeReservation?`occupied:${a.activeReservation.itemTitle}`:a.computedStatus,utilizationPercent:a.utilizationPercent,memoryUsedGb:a.memoryUsedGb,temperatureC:a.temperatureC,activeReservation:a.activeReservation,lastReportedAt:a.lastReportedAt}))}))})),g=e.flatMap(a=>a.nodes.map(b=>({...b,pool:{uuid:a.uuid,name:a.name}})));return{content:[{type:"text",text:JSON.stringify({pools:e,nodes:g},null,2)}]}}),a.registerTool("synapse_get_node_access_bundle",{description:"Return a managed SSH access bundle for a node assigned to your current experiment. Use this instead of any server-local key path.",inputSchema:e.Ikc({experimentUuid:e.YjP(),nodeUuid:e.YjP()})},async({experimentUuid:a,nodeUuid:c})=>{let d=await h.DB({companyUuid:b.companyUuid,experimentUuid:a,nodeUuid:c,agentUuid:b.actorUuid});return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}),a.registerTool("synapse_get_assigned_experiments",{description:"List experiments currently assigned to you, sorted by priority and assignment order.",inputSchema:e.Ikc({researchProjectUuid:e.YjP().optional(),statuses:e.YOg(e.k5n(["draft","pending_review","pending_start","in_progress","completed"])).optional()})},async({researchProjectUuid:a,statuses:c})=>{let d=await i.XA({companyUuid:b.companyUuid,assigneeType:"agent",assigneeUuid:b.actorUuid,researchProjectUuid:a,statuses:c});for(let a of d)"sent"===a.liveStatus&&await i.tp(a.uuid,"ack");return{content:[{type:"text",text:JSON.stringify({experiments:d},null,2)}]}}),a.registerTool("synapse_get_experiment",{description:"Get full details for a single experiment, including any inherited parent-question context.",inputSchema:e.Ikc({experimentUuid:e.YjP()})},async({experimentUuid:a})=>{let c=await i._m(b.companyUuid,a);return c?{content:[{type:"text",text:JSON.stringify({experiment:c},null,2)}]}:{content:[{type:"text",text:"Experiment not found"}],isError:!0}}),a.registerTool("synapse_start_experiment",{description:"Move an assigned experiment from pending_start to in_progress. Pass gpuUuids only when start_experiment should also reserve them; if you already called synapse_reserve_gpus, start without gpuUuids.",inputSchema:e.Ikc({experimentUuid:e.YjP(),gpuUuids:e.YOg(e.YjP()).default([]),workingNotes:e.YjP().optional()})},async({experimentUuid:a,gpuUuids:c,workingNotes:d})=>{let e=await i._m(b.companyUuid,a);if(!e)return{content:[{type:"text",text:"Experiment not found"}],isError:!0};if(!p(e.assignee,b))return{content:[{type:"text",text:"Experiment is assigned to another actor"}],isError:!0};if("pending_start"!==e.status&&"in_progress"!==e.status)return{content:[{type:"text",text:`Experiment must be pending_start or in_progress, current status: ${e.status}`}],isError:!0};if(d?.trim()){let c=await i._m(b.companyUuid,a),e=c?.description??"";await i.t3(b.companyUuid,a,{description:e+(e?"\n\n---\n\n":"")+d.trim()},{actorType:"agent",actorUuid:b.actorUuid})}await i.tp(a,"checking_resources");let f="in_progress"===e.status?await i._m(b.companyUuid,a):await i.sd({companyUuid:b.companyUuid,experimentUuid:a,actorType:"agent",actorUuid:b.actorUuid,ownerUuid:b.ownerUuid});c.length>0&&await h.cx({companyUuid:b.companyUuid,experimentUuid:a,gpuUuids:c}),await i.tp(a,"running");let g=(await h.XH(b.companyUuid)).flatMap(a=>a.nodes).filter(a=>a.gpus.some(a=>c.includes(a.uuid))).map(a=>({uuid:a.uuid,label:a.label,access:o(a),gpus:a.gpus.filter(a=>c.includes(a.uuid))}));return{content:[{type:"text",text:JSON.stringify({experiment:f,nodes:g},null,2)}]}}),a.registerTool("synapse_sync_node_inventory",{description:"After logging into a machine, sync its instance metadata and GPU inventory back into Synapse.",inputSchema:e.Ikc({nodeUuid:e.YjP(),ec2InstanceId:e.YjP().optional(),instanceType:e.YjP().optional(),region:e.YjP().optional(),gpus:e.YOg(e.Ikc({slotIndex:e.aig().int().min(0),model:e.YjP(),memoryGb:e.aig().int().positive().optional()}))})},async({nodeUuid:a,ec2InstanceId:c,instanceType:d,region:e,gpus:f})=>{let g=await h.ut({companyUuid:b.companyUuid,nodeUuid:a,ec2InstanceId:c,instanceType:d,region:e,gpus:f});return{content:[{type:"text",text:JSON.stringify({uuid:g.uuid,ec2InstanceId:g.ec2InstanceId,instanceType:g.instanceType,region:g.region,gpus:g.gpus.map(a=>({uuid:a.uuid,slotIndex:a.slotIndex,model:a.model,memoryGb:a.memoryGb}))},null,2)}]}}),a.registerTool("synapse_reserve_gpus",{description:"Reserve one or more GPUs for an experiment. Reserved GPUs show as 'busy' and cannot be reserved by other experiments. GPUs are automatically released when the experiment is completed via synapse_submit_experiment_results.",inputSchema:e.Ikc({experimentUuid:e.YjP().describe("Experiment UUID"),gpuUuids:e.YOg(e.YjP()).min(1).describe("List of GPU UUIDs to reserve")})},async({experimentUuid:a,gpuUuids:c})=>{try{let d=await h.cx({companyUuid:b.companyUuid,experimentUuid:a,gpuUuids:c});return{content:[{type:"text",text:JSON.stringify({success:!0,...d})}]}}catch(a){return{content:[{type:"text",text:`GPU reservation failed: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}),a.registerTool("synapse_report_gpu_status",{description:"Report the latest GPU lifecycle or telemetry after running a workload.",inputSchema:e.Ikc({nodeUuid:e.YjP(),gpus:e.YOg(e.Ikc({gpuUuid:e.YjP(),lifecycle:e.k5n(["available","offline","maintenance","unhealthy"]).optional(),utilizationPercent:e.aig().int().min(0).max(100).optional(),memoryUsedGb:e.aig().min(0).optional(),temperatureC:e.aig().int().min(0).optional(),notes:e.YjP().optional()}))})},async({nodeUuid:a,gpus:b})=>(await h.SU({nodeUuid:a,gpus:b}),{content:[{type:"text",text:JSON.stringify({success:!0,nodeUuid:a,updatedGpuCount:b.length},null,2)}]})),a.registerTool("synapse_submit_experiment_results",{description:"Submit experiment outcomes. Supports both legacy experiment runs and the new unified Experiment workflow.",inputSchema:e.Ikc({runUuid:e.YjP().optional(),experimentUuid:e.YjP().optional(),outcome:e.YjP().optional(),experimentResults:e.L5J().optional(),sessionUuid:e.YjP().optional(),experimentBranch:e.YjP().optional().describe("Git branch name where experiment code was pushed"),commitSha:e.YjP().optional().describe("Git commit SHA of the final experiment code")})},async({runUuid:a,experimentUuid:c,outcome:d,experimentResults:e,sessionUuid:k,experimentBranch:n,commitSha:o})=>{if(c){let a=await i._m(b.companyUuid,c);if(!a)return{content:[{type:"text",text:"Experiment not found"}],isError:!0};if(!p(a.assignee,b))return{content:[{type:"text",text:"Only the assigned agent can submit results"}],isError:!0};await h.LD(b.companyUuid,c);let g=await i.zX({companyUuid:b.companyUuid,experimentUuid:c,actorType:"agent",actorUuid:b.actorUuid,ownerUuid:b.ownerUuid,outcome:d,results:e,experimentBranch:n,commitSha:o});await i.tp(c,null,null);let j=await f.prisma.experiment.findMany({where:{companyUuid:b.companyUuid,liveStatus:"queuing",assigneeUuid:{not:null},assigneeType:{not:null}},select:{uuid:!0,title:!0,assigneeType:!0,assigneeUuid:!0,assignedByUuid:!0,researchProjectUuid:!0,researchProject:{select:{name:!0}},priority:!0,assignedAt:!0},orderBy:[{assignedAt:"asc"}]}),k={immediate:0,high:1,medium:2,low:3};for(let a of(j.sort((a,b)=>(k[a.priority]??3)-(k[b.priority]??3)),j))a.assigneeUuid&&a.assigneeType&&await m.vt({companyUuid:b.companyUuid,researchProjectUuid:a.researchProjectUuid,recipientType:a.assigneeType,recipientUuid:a.assigneeUuid,entityType:"experiment",entityUuid:a.uuid,entityTitle:a.title,projectName:a.researchProject.name,action:"task_assigned",message:`GPUs released. Retrying: ${a.title}`,actorType:"agent",actorUuid:b.actorUuid,actorName:"Synapse"});return{content:[{type:"text",text:JSON.stringify({experiment:g,released:!0},null,2)}]}}if(!a)return{content:[{type:"text",text:"Either experimentUuid or runUuid is required"}],isError:!0};let q=await j.fo(b.companyUuid,a);if(!q)return{content:[{type:"text",text:"Experiment Run not found"}],isError:!0};if(q.assigneeUuid!==b.actorUuid)return{content:[{type:"text",text:"Only the assigned agent can submit results"}],isError:!0};let r=await j.ry(b.companyUuid,a,{outcome:d,experimentResults:e},{actorType:"agent",actorUuid:b.actorUuid});return await g.E1({companyUuid:b.companyUuid,researchProjectUuid:q.researchProjectUuid,targetType:"experiment_run",targetUuid:a,actorType:"agent",actorUuid:b.actorUuid,action:"submitted",value:{outcome:d??null},sessionUuid:k}),k&&await l.uE(b.companyUuid,k,a),{content:[{type:"text",text:JSON.stringify({run:r,released:!0},null,2)}]}}),a.registerTool("synapse_report_experiment_progress",{description:"Report a progress update for an in-progress experiment. The message appears on the experiment card in real-time and is logged in the progress timeline.",inputSchema:e.Ikc({experimentUuid:e.YjP(),message:e.YjP().describe("Short status message, e.g. 'Training epoch 3/10, loss=0.42'"),phase:e.YjP().optional().describe("Optional phase label, e.g. 'data_download', 'training', 'evaluation'"),liveStatus:e.k5n(["queuing","checking_resources","running"]).optional().describe("Live status badge shown on the experiment card. Default: 'running'. Use 'queuing' when waiting for GPU resources.")})},async({experimentUuid:a,message:c,phase:d,liveStatus:e})=>{let g=await (0,k.e)({companyUuid:b.companyUuid,experimentUuid:a,message:c,phase:d,liveStatus:e,actorUuid:b.actorUuid});try{let d=await f.prisma.experiment.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{uuid:!0,title:!0,createdByUuid:!0,researchProjectUuid:!0,researchProject:{select:{name:!0}}}});d&&await m.vt({companyUuid:b.companyUuid,researchProjectUuid:d.researchProjectUuid,recipientType:"user",recipientUuid:d.createdByUuid,entityType:"experiment",entityUuid:d.uuid,entityTitle:d.title,projectName:d.researchProject.name,action:"experiment_progress",message:c,actorType:b.type,actorUuid:b.actorUuid,actorName:"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({success:!0,logUuid:g.uuid})}]}}),a.registerTool("synapse_get_project_full_context",{description:"Get full research context for a project: brief, datasets, evaluation methods, all research questions, all experiments with outcomes, and related works count. Use for autonomous research analysis.",inputSchema:e.Ikc({researchProjectUuid:e.YjP()})},async({researchProjectUuid:a})=>{let c=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{uuid:!0,name:!0,description:!0,goal:!0,datasets:!0,evaluationMethods:!0,researchQuestions:{select:{uuid:!0,title:!0,content:!0,status:!0,reviewStatus:!0},orderBy:{createdAt:"asc"}},experiments:{select:{uuid:!0,title:!0,status:!0,priority:!0,outcome:!0,completedAt:!0,description:!0,results:!0},orderBy:{createdAt:"asc"}},_count:{select:{relatedWorks:!0}}}});if(!c)return{content:[{type:"text",text:"Project not found"}],isError:!0};let d=c.experiments.map(a=>({uuid:a.uuid,title:a.title,status:a.status,priority:a.priority,outcome:a.outcome,completedAt:a.completedAt,description:a.description?a.description.length>120?a.description.slice(0,120)+"...":a.description:null,resultSummary:a.results?String(a.results).length>150?String(a.results).slice(0,150)+"...":String(a.results):null})),e=await f.prisma.document.findFirst({where:{researchProjectUuid:a,companyUuid:b.companyUuid,type:"experiment_results_log"},select:{uuid:!0,title:!0,content:!0,updatedAt:!0}}),g=null;try{let c=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{computePoolUuid:!0}}),d=await h.XH(b.companyUuid);c?.computePoolUuid&&(d=d.filter(a=>a.uuid===c.computePoolUuid));let e=d.flatMap(a=>a.nodes.flatMap(a=>a.gpus)),i=e.filter(a=>"available"===a.computedStatus&&!a.activeReservation),j=[...new Set(e.map(a=>a.model).filter(Boolean))];g={totalGpus:e.length,availableGpus:i.length,occupiedGpus:e.length-i.length,gpuModels:j}}catch{}let i=d.filter(a=>"in_progress"===a.status).length,j=d.filter(a=>"pending_start"===a.status).length;return{content:[{type:"text",text:JSON.stringify({project:{...c,experiments:d},resultsLog:e?{uuid:e.uuid,content:e.content,updatedAt:e.updatedAt}:null,computeAvailability:g,experimentQueue:{inProgress:i,pendingStart:j},_hint:"Use synapse_get_experiment for full details of a specific experiment. When proposing experiments, consider available compute resources — propose at most as many experiments as there are available GPUs, minus already queued/running experiments."},null,2)}]}}),a.registerTool("synapse_propose_experiment",{description:"Propose a new experiment. In Human Review mode, created as 'pending_review' for human approval. In Full Auto mode, created as 'pending_start' and assigned to you for immediate execution. Only usable when autonomous loop is active and you are the assigned agent.",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),title:e.YjP(),description:e.YjP(),researchQuestionUuid:e.YjP().optional(),priority:e.k5n(["low","medium","high","immediate"]).default("medium")})},async({researchProjectUuid:a,title:c,description:d,researchQuestionUuid:e,priority:g})=>{let h=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid,autonomousLoopEnabled:!0,autonomousLoopAgentUuid:b.actorUuid},select:{uuid:!0,autonomousLoopMode:!0}});if(!h)return{content:[{type:"text",text:"Autonomous loop is not enabled for this project or you are not the assigned agent"}],isError:!0};let j="full_auto"===h.autonomousLoopMode,k=await i.Cl({companyUuid:b.companyUuid,researchProjectUuid:a,title:c,description:d,researchQuestionUuid:e||null,priority:g,createdByUuid:b.actorUuid,createdByType:"agent",...j?{status:"pending_start",assigneeUuid:b.actorUuid,assigneeType:"agent"}:{}});try{let d=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{name:!0}}),e=await f.prisma.agent.findUnique({where:{uuid:b.actorUuid},select:{ownerUuid:!0,name:!0}});e?.ownerUuid&&d&&await m.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"user",recipientUuid:e.ownerUuid,entityType:"experiment",entityUuid:k.uuid,entityTitle:k.title,projectName:d.name,action:"experiment_auto_proposed",message:j?`Agent auto-proposed experiment "${c}" for immediate execution.`:`Agent proposed experiment "${c}" for review.`,actorType:"agent",actorUuid:b.actorUuid,actorName:e.name??"Agent"}),j&&d&&await m.vt({companyUuid:b.companyUuid,researchProjectUuid:a,recipientType:"agent",recipientUuid:b.actorUuid,entityType:"experiment",entityUuid:k.uuid,entityTitle:k.title,projectName:d.name,action:"task_assigned",message:`Experiment "${c}" auto-assigned for immediate execution.`,actorType:"agent",actorUuid:b.actorUuid,actorName:e?.name??"Agent"})}catch{}return{content:[{type:"text",text:JSON.stringify({experiment:k,note:j?"Experiment created in pending_start (Full Auto mode). Ready for immediate execution.":"Experiment created in pending_review. Human review required before execution."},null,2)}]}}),a.registerTool("synapse_update_experiment_plan",{description:"Update an experiment's plan/details. Use this when asked to flesh out an experiment plan from a brief description. You can update title, description, research question link, and priority.",inputSchema:e.Ikc({experimentUuid:e.YjP(),title:e.YjP().optional(),description:e.YjP().optional().describe("Detailed experiment plan/methodology"),researchQuestionUuid:e.YjP().optional().describe("Link to a research question"),priority:e.k5n(["low","medium","high","immediate"]).optional()})},async({experimentUuid:a,title:c,description:d,researchQuestionUuid:e,priority:f})=>{if(!await i._m(b.companyUuid,a))return{content:[{type:"text",text:"Experiment not found"}],isError:!0};let g={};if(void 0!==c&&(g.title=c),void 0!==d&&(g.description=d),void 0!==e&&(g.researchQuestionUuid=e||null),void 0!==f&&(g.priority=f),0===Object.keys(g).length)return{content:[{type:"text",text:"No fields to update"}],isError:!0};let h=await i.t3(b.companyUuid,a,g,{actorType:"agent",actorUuid:b.actorUuid});return{content:[{type:"text",text:JSON.stringify({experiment:h},null,2)}]}}),a.registerTool("synapse_get_repo_access",{description:"Get GitHub repository credentials for a research project. Returns repoUrl, username, token, and the experiment's base branch. Token is for cloning/pushing.",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),experimentUuid:e.YjP().optional().describe("If provided, returns the experiment's baseBranch")})},async({researchProjectUuid:a,experimentUuid:c})=>{let d=await f.prisma.researchProject.findFirst({where:{uuid:a,companyUuid:b.companyUuid},select:{repoUrl:!0,githubUsername:!0,githubToken:!0}});if(!d?.repoUrl||!d?.githubToken)return{content:[{type:"text",text:JSON.stringify({configured:!1})}]};let e=null;if(c){let a=await f.prisma.experiment.findFirst({where:{uuid:c,companyUuid:b.companyUuid},select:{baseBranch:!0}});e=a?.baseBranch??null}return{content:[{type:"text",text:JSON.stringify({configured:!0,repoUrl:d.repoUrl,githubUsername:d.githubUsername,githubToken:d.githubToken,baseBranch:e})}]}})}[f,g,h,i,j,k,l,m]=n.then?(await n)():n,d()}catch(a){d(a)}})},74489:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.or=b.and=b.not=b.CodeGen=b.operators=b.varKinds=b.ValueScopeName=b.ValueScope=b.Scope=b.Name=b.regexpCode=b.stringify=b.getProperty=b.nil=b.strConcat=b.str=b._=void 0;let d=c(86684),e=c(40001);var f=c(86684);Object.defineProperty(b,"_",{enumerable:!0,get:function(){return f._}}),Object.defineProperty(b,"str",{enumerable:!0,get:function(){return f.str}}),Object.defineProperty(b,"strConcat",{enumerable:!0,get:function(){return f.strConcat}}),Object.defineProperty(b,"nil",{enumerable:!0,get:function(){return f.nil}}),Object.defineProperty(b,"getProperty",{enumerable:!0,get:function(){return f.getProperty}}),Object.defineProperty(b,"stringify",{enumerable:!0,get:function(){return f.stringify}}),Object.defineProperty(b,"regexpCode",{enumerable:!0,get:function(){return f.regexpCode}}),Object.defineProperty(b,"Name",{enumerable:!0,get:function(){return f.Name}});var g=c(40001);Object.defineProperty(b,"Scope",{enumerable:!0,get:function(){return g.Scope}}),Object.defineProperty(b,"ValueScope",{enumerable:!0,get:function(){return g.ValueScope}}),Object.defineProperty(b,"ValueScopeName",{enumerable:!0,get:function(){return g.ValueScopeName}}),Object.defineProperty(b,"varKinds",{enumerable:!0,get:function(){return g.varKinds}}),b.operators={GT:new d._Code(">"),GTE:new d._Code(">="),LT:new d._Code("<"),LTE:new d._Code("<="),EQ:new d._Code("==="),NEQ:new d._Code("!=="),NOT:new d._Code("!"),OR:new d._Code("||"),AND:new d._Code("&&"),ADD:new d._Code("+")};class h{optimizeNodes(){return this}optimizeNames(a,b){return this}}class i extends h{constructor(a,b,c){super(),this.varKind=a,this.name=b,this.rhs=c}render({es5:a,_n:b}){let c=a?e.varKinds.var:this.varKind,d=void 0===this.rhs?"":` = ${this.rhs}`;return`${c} ${this.name}${d};`+b}optimizeNames(a,b){if(a[this.name.str])return this.rhs&&(this.rhs=G(this.rhs,a,b)),this}get names(){return this.rhs instanceof d._CodeOrName?this.rhs.names:{}}}class j extends h{constructor(a,b,c){super(),this.lhs=a,this.rhs=b,this.sideEffects=c}render({_n:a}){return`${this.lhs} = ${this.rhs};`+a}optimizeNames(a,b){if(!(this.lhs instanceof d.Name)||a[this.lhs.str]||this.sideEffects)return this.rhs=G(this.rhs,a,b),this}get names(){return F(this.lhs instanceof d.Name?{}:{...this.lhs.names},this.rhs)}}class k extends j{constructor(a,b,c,d){super(a,c,d),this.op=b}render({_n:a}){return`${this.lhs} ${this.op}= ${this.rhs};`+a}}class l extends h{constructor(a){super(),this.label=a,this.names={}}render({_n:a}){return`${this.label}:`+a}}class m extends h{constructor(a){super(),this.label=a,this.names={}}render({_n:a}){let b=this.label?` ${this.label}`:"";return`break${b};`+a}}class n extends h{constructor(a){super(),this.error=a}render({_n:a}){return`throw ${this.error};`+a}get names(){return this.error.names}}class o extends h{constructor(a){super(),this.code=a}render({_n:a}){return`${this.code};`+a}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(a,b){return this.code=G(this.code,a,b),this}get names(){return this.code instanceof d._CodeOrName?this.code.names:{}}}class p extends h{constructor(a=[]){super(),this.nodes=a}render(a){return this.nodes.reduce((b,c)=>b+c.render(a),"")}optimizeNodes(){let{nodes:a}=this,b=a.length;for(;b--;){let c=a[b].optimizeNodes();Array.isArray(c)?a.splice(b,1,...c):c?a[b]=c:a.splice(b,1)}return a.length>0?this:void 0}optimizeNames(a,b){let{nodes:c}=this,d=c.length;for(;d--;){let e=c[d];e.optimizeNames(a,b)||(function(a,b){for(let c in b)a[c]=(a[c]||0)-(b[c]||0)}(a,e.names),c.splice(d,1))}return c.length>0?this:void 0}get names(){return this.nodes.reduce((a,b)=>E(a,b.names),{})}}class q extends p{render(a){return"{"+a._n+super.render(a)+"}"+a._n}}class r extends p{}class s extends q{}s.kind="else";class t extends q{constructor(a,b){super(b),this.condition=a}render(a){let b=`if(${this.condition})`+super.render(a);return this.else&&(b+="else "+this.else.render(a)),b}optimizeNodes(){super.optimizeNodes();let a=this.condition;if(!0===a)return this.nodes;let b=this.else;if(b){let a=b.optimizeNodes();b=this.else=Array.isArray(a)?new s(a):a}return b?!1===a?b instanceof t?b:b.nodes:this.nodes.length?this:new t(H(a),b instanceof t?[b]:b.nodes):!1!==a&&this.nodes.length?this:void 0}optimizeNames(a,b){var c;if(this.else=null==(c=this.else)?void 0:c.optimizeNames(a,b),super.optimizeNames(a,b)||this.else)return this.condition=G(this.condition,a,b),this}get names(){let a=super.names;return F(a,this.condition),this.else&&E(a,this.else.names),a}}t.kind="if";class u extends q{}u.kind="for";class v extends u{constructor(a){super(),this.iteration=a}render(a){return`for(${this.iteration})`+super.render(a)}optimizeNames(a,b){if(super.optimizeNames(a,b))return this.iteration=G(this.iteration,a,b),this}get names(){return E(super.names,this.iteration.names)}}class w extends u{constructor(a,b,c,d){super(),this.varKind=a,this.name=b,this.from=c,this.to=d}render(a){let b=a.es5?e.varKinds.var:this.varKind,{name:c,from:d,to:f}=this;return`for(${b} ${c}=${d}; ${c}<${f}; ${c}++)`+super.render(a)}get names(){let a=F(super.names,this.from);return F(a,this.to)}}class x extends u{constructor(a,b,c,d){super(),this.loop=a,this.varKind=b,this.name=c,this.iterable=d}render(a){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(a)}optimizeNames(a,b){if(super.optimizeNames(a,b))return this.iterable=G(this.iterable,a,b),this}get names(){return E(super.names,this.iterable.names)}}class y extends q{constructor(a,b,c){super(),this.name=a,this.args=b,this.async=c}render(a){let b=this.async?"async ":"";return`${b}function ${this.name}(${this.args})`+super.render(a)}}y.kind="func";class z extends p{render(a){return"return "+super.render(a)}}z.kind="return";class A extends q{render(a){let b="try"+super.render(a);return this.catch&&(b+=this.catch.render(a)),this.finally&&(b+=this.finally.render(a)),b}optimizeNodes(){var a,b;return super.optimizeNodes(),null==(a=this.catch)||a.optimizeNodes(),null==(b=this.finally)||b.optimizeNodes(),this}optimizeNames(a,b){var c,d;return super.optimizeNames(a,b),null==(c=this.catch)||c.optimizeNames(a,b),null==(d=this.finally)||d.optimizeNames(a,b),this}get names(){let a=super.names;return this.catch&&E(a,this.catch.names),this.finally&&E(a,this.finally.names),a}}class B extends q{constructor(a){super(),this.error=a}render(a){return`catch(${this.error})`+super.render(a)}}B.kind="catch";class C extends q{render(a){return"finally"+super.render(a)}}C.kind="finally";class D{constructor(a,b={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...b,_n:b.lines?"\n":""},this._extScope=a,this._scope=new e.Scope({parent:a}),this._nodes=[new r]}toString(){return this._root.render(this.opts)}name(a){return this._scope.name(a)}scopeName(a){return this._extScope.name(a)}scopeValue(a,b){let c=this._extScope.value(a,b);return(this._values[c.prefix]||(this._values[c.prefix]=new Set)).add(c),c}getScopeValue(a,b){return this._extScope.getValue(a,b)}scopeRefs(a){return this._extScope.scopeRefs(a,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(a,b,c,d){let e=this._scope.toName(b);return void 0!==c&&d&&(this._constants[e.str]=c),this._leafNode(new i(a,e,c)),e}const(a,b,c){return this._def(e.varKinds.const,a,b,c)}let(a,b,c){return this._def(e.varKinds.let,a,b,c)}var(a,b,c){return this._def(e.varKinds.var,a,b,c)}assign(a,b,c){return this._leafNode(new j(a,b,c))}add(a,c){return this._leafNode(new k(a,b.operators.ADD,c))}code(a){return"function"==typeof a?a():a!==d.nil&&this._leafNode(new o(a)),this}object(...a){let b=["{"];for(let[c,e]of a)b.length>1&&b.push(","),b.push(c),(c!==e||this.opts.es5)&&(b.push(":"),(0,d.addCodeArg)(b,e));return b.push("}"),new d._Code(b)}if(a,b,c){if(this._blockNode(new t(a)),b&&c)this.code(b).else().code(c).endIf();else if(b)this.code(b).endIf();else if(c)throw Error('CodeGen: "else" body without "then" body');return this}elseIf(a){return this._elseNode(new t(a))}else(){return this._elseNode(new s)}endIf(){return this._endBlockNode(t,s)}_for(a,b){return this._blockNode(a),b&&this.code(b).endFor(),this}for(a,b){return this._for(new v(a),b)}forRange(a,b,c,d,f=this.opts.es5?e.varKinds.var:e.varKinds.let){let g=this._scope.toName(a);return this._for(new w(f,g,b,c),()=>d(g))}forOf(a,b,c,f=e.varKinds.const){let g=this._scope.toName(a);if(this.opts.es5){let a=b instanceof d.Name?b:this.var("_arr",b);return this.forRange("_i",0,(0,d._)`${a}.length`,b=>{this.var(g,(0,d._)`${a}[${b}]`),c(g)})}return this._for(new x("of",f,g,b),()=>c(g))}forIn(a,b,c,f=this.opts.es5?e.varKinds.var:e.varKinds.const){if(this.opts.ownProperties)return this.forOf(a,(0,d._)`Object.keys(${b})`,c);let g=this._scope.toName(a);return this._for(new x("in",f,g,b),()=>c(g))}endFor(){return this._endBlockNode(u)}label(a){return this._leafNode(new l(a))}break(a){return this._leafNode(new m(a))}return(a){let b=new z;if(this._blockNode(b),this.code(a),1!==b.nodes.length)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(z)}try(a,b,c){if(!b&&!c)throw Error('CodeGen: "try" without "catch" and "finally"');let d=new A;if(this._blockNode(d),this.code(a),b){let a=this.name("e");this._currNode=d.catch=new B(a),b(a)}return c&&(this._currNode=d.finally=new C,this.code(c)),this._endBlockNode(B,C)}throw(a){return this._leafNode(new n(a))}block(a,b){return this._blockStarts.push(this._nodes.length),a&&this.code(a).endBlock(b),this}endBlock(a){let b=this._blockStarts.pop();if(void 0===b)throw Error("CodeGen: not in self-balancing block");let c=this._nodes.length-b;if(c<0||void 0!==a&&c!==a)throw Error(`CodeGen: wrong number of nodes: ${c} vs ${a} expected`);return this._nodes.length=b,this}func(a,b=d.nil,c,e){return this._blockNode(new y(a,b,c)),e&&this.code(e).endFunc(),this}endFunc(){return this._endBlockNode(y)}optimize(a=1){for(;a-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(a){return this._currNode.nodes.push(a),this}_blockNode(a){this._currNode.nodes.push(a),this._nodes.push(a)}_endBlockNode(a,b){let c=this._currNode;if(c instanceof a||b&&c instanceof b)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${b?`${a.kind}/${b.kind}`:a.kind}"`)}_elseNode(a){let b=this._currNode;if(!(b instanceof t))throw Error('CodeGen: "else" without "if"');return this._currNode=b.else=a,this}get _root(){return this._nodes[0]}get _currNode(){let a=this._nodes;return a[a.length-1]}set _currNode(a){let b=this._nodes;b[b.length-1]=a}}function E(a,b){for(let c in b)a[c]=(a[c]||0)+(b[c]||0);return a}function F(a,b){return b instanceof d._CodeOrName?E(a,b.names):a}function G(a,b,c){var e;if(a instanceof d.Name)return f(a);if(!((e=a)instanceof d._Code&&e._items.some(a=>a instanceof d.Name&&1===b[a.str]&&void 0!==c[a.str])))return a;return new d._Code(a._items.reduce((a,b)=>(b instanceof d.Name&&(b=f(b)),b instanceof d._Code?a.push(...b._items):a.push(b),a),[]));function f(a){let d=c[a.str];return void 0===d||1!==b[a.str]?a:(delete b[a.str],d)}}function H(a){return"boolean"==typeof a||"number"==typeof a||null===a?!a:(0,d._)`!${L(a)}`}b.CodeGen=D,b.not=H;let I=K(b.operators.AND);b.and=function(...a){return a.reduce(I)};let J=K(b.operators.OR);function K(a){return(b,c)=>b===d.nil?c:c===d.nil?b:(0,d._)`${L(b)} ${a} ${L(c)}`}function L(a){return a instanceof d.Name?a:(0,d._)`(${a})`}b.or=function(...a){return a.reduce(J)}},74909:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateAdditionalItems=void 0;let d=c(74489),e=c(23235);function f(a,b){let{gen:c,schema:f,data:g,keyword:h,it:i}=a;i.items=!0;let j=c.const("len",(0,d._)`${g}.length`);if(!1===f)a.setParams({len:b.length}),a.pass((0,d._)`${j} <= ${b.length}`);else if("object"==typeof f&&!(0,e.alwaysValidSchema)(i,f)){let f=c.var("valid",(0,d._)`${j} <= ${b.length}`);c.if((0,d.not)(f),()=>{var g;return g=f,void c.forRange("i",b.length,j,b=>{a.subschema({keyword:h,dataProp:b,dataPropType:e.Type.Num},g),i.allErrors||c.if((0,d.not)(g),()=>c.break())})}),a.ok(f)}}b.validateAdditionalItems=f,b.default={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:a}})=>(0,d.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,d._)`{limit: ${a}}`},code(a){let{parentSchema:b,it:c}=a,{items:d}=b;if(!Array.isArray(d))return void(0,e.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');f(a,d)}}},75811:a=>{a.exports=import("@prisma/client/runtime/query_compiler_fast_bg.postgresql.mjs")},75925:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:a})=>(0,d.str)`must match format "${a}"`,params:({schemaCode:a})=>(0,d._)`{format: ${a}}`},code(a,b){let{gen:c,data:e,$data:f,schema:g,schemaCode:h,it:i}=a,{opts:j,errSchemaPath:k,schemaEnv:l,self:m}=i;j.validateFormats&&(f?function(){let f=c.scopeValue("formats",{ref:m.formats,code:j.code.formats}),g=c.const("fDef",(0,d._)`${f}[${h}]`),i=c.let("fType"),k=c.let("format");c.if((0,d._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>c.assign(i,(0,d._)`${g}.type || "string"`).assign(k,(0,d._)`${g}.validate`),()=>c.assign(i,(0,d._)`"string"`).assign(k,g)),a.fail$data((0,d.or)(!1===j.strictSchema?d.nil:(0,d._)`${h} && !${k}`,function(){let a=l.$async?(0,d._)`(${g}.async ? await ${k}(${e}) : ${k}(${e}))`:(0,d._)`${k}(${e})`,c=(0,d._)`(typeof ${k} == "function" ? ${a} : ${k}.test(${e}))`;return(0,d._)`${k} && ${k} !== true && ${i} === ${b} && !${c}`}()))}():function(){let f=m.formats[g];if(!f){if(!1===j.strictSchema)return m.logger.warn(h());throw Error(h());function h(){return`unknown format "${g}" ignored in schema at path "${k}"`}}if(!0===f)return;let[i,n,o]=function(a){let b=a instanceof RegExp?(0,d.regexpCode)(a):j.code.formats?(0,d._)`${j.code.formats}${(0,d.getProperty)(g)}`:void 0,e=c.scopeValue("formats",{key:g,ref:a,code:b});return"object"!=typeof a||a instanceof RegExp?["string",a,e]:[a.type||"string",a.validate,(0,d._)`${e}.validate`]}(f);i===b&&a.pass(function(){if("object"==typeof f&&!(f instanceof RegExp)&&f.async){if(!l.$async)throw Error("async format in sync schema");return(0,d._)`await ${o}(${e})`}return"function"==typeof n?(0,d._)`${o}(${e})`:(0,d._)`${o}.test(${e})`}())}())}}},76760:a=>{a.exports=require("node:path")},77064:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ht:()=>k,Vu:()=>m,Xo:()=>l,Zi:()=>p,aQ:()=>q,jw:()=>j,kk:()=>o,uE:()=>n});var e=c(52618),f=c(911),g=c(46499),h=a([e,g]);function i(a){return{uuid:a.uuid,agentUuid:a.agentUuid,name:a.name,description:a.description,status:a.status,lastActiveAt:a.lastActiveAt.toISOString(),expiresAt:a.expiresAt?.toISOString()??null,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString(),checkins:(a.runCheckins||[]).map(a=>({runUuid:a.runUuid,checkinAt:a.checkinAt.toISOString(),checkoutAt:a.checkoutAt?.toISOString()??null}))}}async function j(a){let b=await e.prisma.agentSession.create({data:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,name:a.name,description:a.description??null,status:"active",expiresAt:a.expiresAt??null}});return f.B.emitChange({companyUuid:a.companyUuid,researchProjectUuid:"",entityType:"agent_session",entityUuid:b.uuid,action:"created",actorUuid:a.agentUuid}),i(b)}async function k(a,b){let c=await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a},include:{runCheckins:{where:{checkoutAt:null},select:{runUuid:!0,checkinAt:!0,checkoutAt:!0}}}});return c?i(c):null}async function l(a,b,c){return(await e.prisma.agentSession.findMany({where:{companyUuid:a,agentUuid:b,...c&&{status:c}},include:{runCheckins:{where:{checkoutAt:null},select:{runUuid:!0,checkinAt:!0,checkoutAt:!0}}},orderBy:{createdAt:"desc"}})).map(i)}async function m(a,b){let c=await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Session not found");let d=await e.prisma.sessionRunCheckin.findMany({where:{sessionUuid:b,checkoutAt:null},select:{run:{select:{uuid:!0,researchProjectUuid:!0}}}});await e.prisma.sessionRunCheckin.updateMany({where:{sessionUuid:b,checkoutAt:null},data:{checkoutAt:new Date}});let g=await e.prisma.agentSession.update({where:{uuid:b},data:{status:"closed"},include:{runCheckins:{select:{runUuid:!0,checkinAt:!0,checkoutAt:!0}}}});for(let a of d)f.B.emitChange({companyUuid:c.companyUuid,researchProjectUuid:a.run.researchProjectUuid,entityType:"experiment_run",entityUuid:a.run.uuid,action:"updated"});return i(g)}async function n(a,b,c){if(!await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Session not found");let d=await e.prisma.experimentRun.findFirst({where:{uuid:c,companyUuid:a},select:{researchProjectUuid:!0}});await e.prisma.sessionRunCheckin.updateMany({where:{sessionUuid:b,runUuid:c,checkoutAt:null},data:{checkoutAt:new Date}}),d&&f.B.emitChange({companyUuid:a,researchProjectUuid:d.researchProjectUuid,entityType:"experiment_run",entityUuid:c,action:"updated"})}async function o(a,b){return(await e.prisma.sessionRunCheckin.findMany({where:{runUuid:b,checkoutAt:null,session:{companyUuid:a,status:{in:["active","inactive"]}}},include:{session:{select:{uuid:!0,name:!0,agentUuid:!0,agent:{select:{name:!0}}}}}})).map(a=>({sessionUuid:a.session.uuid,sessionName:a.session.name,agentUuid:a.session.agentUuid,agentName:a.session.agent.name,checkinAt:a.checkinAt.toISOString()}))}async function p(a,b){let c=await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Session not found");await e.prisma.agentSession.update({where:{uuid:b},data:{lastActiveAt:new Date,..."inactive"===c.status&&{status:"active"}}})}async function q(a,b){let c=await e.prisma.agentSession.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Session not found");if("closed"!==c.status)throw Error("Only closed sessions can be reopened");let d=await e.prisma.agentSession.update({where:{uuid:b},data:{status:"active",lastActiveAt:new Date},include:{runCheckins:{where:{checkoutAt:null},select:{runUuid:!0,checkinAt:!0,checkoutAt:!0}}}});return i(d)}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},77201:(a,b,c)=>{let{normalizeIPv6:d,removeDotSegments:e,recomposeAuthority:f,normalizeComponentEncoding:g,isIPv4:h,nonSimpleDomain:i}=c(73652),{SCHEMES:j,getSchemeHandler:k}=c(2633);function l(a,b,c,d){let f={};return d||(a=o(m(a,c),c),b=o(m(b,c),c)),!(c=c||{}).tolerant&&b.scheme?(f.scheme=b.scheme,f.userinfo=b.userinfo,f.host=b.host,f.port=b.port,f.path=e(b.path||""),f.query=b.query):(void 0!==b.userinfo||void 0!==b.host||void 0!==b.port?(f.userinfo=b.userinfo,f.host=b.host,f.port=b.port,f.path=e(b.path||""),f.query=b.query):(b.path?("/"===b.path[0]?f.path=e(b.path):(void 0===a.userinfo&&void 0===a.host&&void 0===a.port||a.path?a.path?f.path=a.path.slice(0,a.path.lastIndexOf("/")+1)+b.path:f.path=b.path:f.path="/"+b.path,f.path=e(f.path)),f.query=b.query):(f.path=a.path,void 0!==b.query?f.query=b.query:f.query=a.query),f.userinfo=a.userinfo,f.host=a.host,f.port=a.port),f.scheme=a.scheme),f.fragment=b.fragment,f}function m(a,b){let c={host:a.host,scheme:a.scheme,userinfo:a.userinfo,port:a.port,path:a.path,query:a.query,nid:a.nid,nss:a.nss,uuid:a.uuid,fragment:a.fragment,reference:a.reference,resourceName:a.resourceName,secure:a.secure,error:""},d=Object.assign({},b),g=[],h=k(d.scheme||c.scheme);h&&h.serialize&&h.serialize(c,d),void 0!==c.path&&(d.skipEscape?c.path=unescape(c.path):(c.path=escape(c.path),void 0!==c.scheme&&(c.path=c.path.split("%3A").join(":")))),"suffix"!==d.reference&&c.scheme&&g.push(c.scheme,":");let i=f(c);if(void 0!==i&&("suffix"!==d.reference&&g.push("//"),g.push(i),c.path&&"/"!==c.path[0]&&g.push("/")),void 0!==c.path){let a=c.path;d.absolutePath||h&&h.absolutePath||(a=e(a)),void 0===i&&"/"===a[0]&&"/"===a[1]&&(a="/%2F"+a.slice(2)),g.push(a)}return void 0!==c.query&&g.push("?",c.query),void 0!==c.fragment&&g.push("#",c.fragment),g.join("")}let n=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function o(a,b){let c=Object.assign({},b),e={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},f=!1;"suffix"===c.reference&&(a=c.scheme?c.scheme+":"+a:"//"+a);let g=a.match(n);if(g){if(e.scheme=g[1],e.userinfo=g[3],e.host=g[4],e.port=parseInt(g[5],10),e.path=g[6]||"",e.query=g[7],e.fragment=g[8],isNaN(e.port)&&(e.port=g[5]),e.host)if(!1===h(e.host)){let a=d(e.host);e.host=a.host.toLowerCase(),f=a.isIPV6}else f=!0;void 0!==e.scheme||void 0!==e.userinfo||void 0!==e.host||void 0!==e.port||void 0!==e.query||e.path?void 0===e.scheme?e.reference="relative":void 0===e.fragment?e.reference="absolute":e.reference="uri":e.reference="same-document",c.reference&&"suffix"!==c.reference&&c.reference!==e.reference&&(e.error=e.error||"URI is not a "+c.reference+" reference.");let b=k(c.scheme||e.scheme);if(!c.unicodeSupport&&(!b||!b.unicodeSupport)&&e.host&&(c.domainHost||b&&b.domainHost)&&!1===f&&i(e.host))try{e.host=URL.domainToASCII(e.host.toLowerCase())}catch(a){e.error=e.error||"Host's domain name can not be converted to ASCII: "+a}(!b||b&&!b.skipNormalize)&&(-1!==a.indexOf("%")&&(void 0!==e.scheme&&(e.scheme=unescape(e.scheme)),void 0!==e.host&&(e.host=unescape(e.host))),e.path&&(e.path=escape(unescape(e.path))),e.fragment&&(e.fragment=encodeURI(decodeURIComponent(e.fragment)))),b&&b.parse&&b.parse(e,c)}else e.error=e.error||"URI can not be parsed.";return e}let p={SCHEMES:j,normalize:function(a,b){return"string"==typeof a?a=m(o(a,b),b):"object"==typeof a&&(a=o(m(a,b),b)),a},resolve:function(a,b,c){let d=c?Object.assign({scheme:"null"},c):{scheme:"null"},e=l(o(a,d),o(b,d),d,!0);return d.skipEscape=!0,m(e,d)},resolveComponent:l,equal:function(a,b,c){return"string"==typeof a?a=m(g(o(a=unescape(a),c),!0),{...c,skipEscape:!0}):"object"==typeof a&&(a=m(g(a,!0),{...c,skipEscape:!0})),"string"==typeof b?b=m(g(o(b=unescape(b),c),!0),{...c,skipEscape:!0}):"object"==typeof b&&(b=m(g(b,!0),{...c,skipEscape:!0})),a.toLowerCase()===b.toLowerCase()},serialize:m,parse:o};a.exports=p,a.exports.default=p,a.exports.fastUri=p},77548:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(77201);d.code='require("ajv/dist/runtime/uri").default',b.default=d},78226:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(80142);b.default={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:a=>(0,d.validateTuple)(a,"items")}},78474:a=>{a.exports=require("node:events")},79428:a=>{a.exports=require("buffer")},79551:a=>{a.exports=require("url")},80142:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateTuple=void 0;let d=c(74489),e=c(23235),f=c(41033);function g(a,b,c=a.schema){let{gen:f,parentSchema:h,data:i,keyword:j,it:k}=a;(function(a){let{opts:d,errSchemaPath:f}=k,g=c.length,h=g===a.minItems&&(g===a.maxItems||!1===a[b]);if(d.strictTuples&&!h){let a=`"${j}" is ${g}-tuple, but minItems or maxItems/${b} are not specified or different at path "${f}"`;(0,e.checkStrictMode)(k,a,d.strictTuples)}})(h),k.opts.unevaluated&&c.length&&!0!==k.items&&(k.items=e.mergeEvaluated.items(f,c.length,k.items));let l=f.name("valid"),m=f.const("len",(0,d._)`${i}.length`);c.forEach((b,c)=>{(0,e.alwaysValidSchema)(k,b)||(f.if((0,d._)`${m} > ${c}`,()=>a.subschema({keyword:j,schemaProp:c,dataProp:c},l)),a.ok(l))})}b.validateTuple=g,b.default={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(a){let{schema:b,it:c}=a;if(Array.isArray(b))return g(a,"additionalItems",b);c.items=!0,(0,e.alwaysValidSchema)(c,b)||a.ok((0,f.validateArray)(a))}}},83997:a=>{a.exports=require("tty")},84221:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(35684),e=c(74489),f=c(23235),g=c(91442);b.default={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:a,j:b}})=>(0,e.str)`must NOT have duplicate items (items ## ${b} and ${a} are identical)`,params:({params:{i:a,j:b}})=>(0,e._)`{i: ${a}, j: ${b}}`},code(a){let{gen:b,data:c,$data:h,schema:i,parentSchema:j,schemaCode:k,it:l}=a;if(!h&&!i)return;let m=b.let("valid"),n=j.items?(0,d.getSchemaTypes)(j.items):[];a.block$data(m,function(){let h=b.let("i",(0,e._)`${c}.length`),i=b.let("j");a.setParams({i:h,j:i}),b.assign(m,!0),b.if((0,e._)`${h} > 1`,()=>(n.length>0&&!n.some(a=>"object"===a||"array"===a)?function(f,g){let h=b.name("item"),i=(0,d.checkDataTypes)(n,h,l.opts.strictNumbers,d.DataType.Wrong),j=b.const("indices",(0,e._)`{}`);b.for((0,e._)`;${f}--;`,()=>{b.let(h,(0,e._)`${c}[${f}]`),b.if(i,(0,e._)`continue`),n.length>1&&b.if((0,e._)`typeof ${h} == "string"`,(0,e._)`${h} += "_"`),b.if((0,e._)`typeof ${j}[${h}] == "number"`,()=>{b.assign(g,(0,e._)`${j}[${h}]`),a.error(),b.assign(m,!1).break()}).code((0,e._)`${j}[${h}] = ${f}`)})}:function(d,h){let i=(0,f.useFunc)(b,g.default),j=b.name("outer");b.label(j).for((0,e._)`;${d}--;`,()=>b.for((0,e._)`${h} = ${d}; ${h}--;`,()=>b.if((0,e._)`${i}(${c}[${d}], ${c}[${h}])`,()=>{a.error(),b.assign(m,!1).break(j)})))})(h,i))},(0,e._)`${k} === false`),a.ok(m)}}},84297:a=>{a.exports=require("async_hooks")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86684:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.regexpCode=b.getEsmExportName=b.getProperty=b.safeStringify=b.stringify=b.strConcat=b.addCodeArg=b.str=b._=b.nil=b._Code=b.Name=b.IDENTIFIER=b._CodeOrName=void 0;class c{}b._CodeOrName=c,b.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class d extends c{constructor(a){if(super(),!b.IDENTIFIER.test(a))throw Error("CodeGen: name must be a valid identifier");this.str=a}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}b.Name=d;class e extends c{constructor(a){super(),this._items="string"==typeof a?[a]:a}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let a=this._items[0];return""===a||'""'===a}get str(){var a;return null!=(a=this._str)?a:this._str=this._items.reduce((a,b)=>`${a}${b}`,"")}get names(){var a;return null!=(a=this._names)?a:this._names=this._items.reduce((a,b)=>(b instanceof d&&(a[b.str]=(a[b.str]||0)+1),a),{})}}function f(a,...b){let c=[a[0]],d=0;for(;d<b.length;)i(c,b[d]),c.push(a[++d]);return new e(c)}b._Code=e,b.nil=new e(""),b._=f;let g=new e("+");function h(a,...b){let c=[j(a[0])],f=0;for(;f<b.length;)c.push(g),i(c,b[f]),c.push(g,j(a[++f]));return function(a){let b=1;for(;b<a.length-1;){if(a[b]===g){var c,e;let f=(c=a[b-1],'""'===(e=a[b+1])?c:'""'===c?e:"string"==typeof c?e instanceof d||'"'!==c[c.length-1]?void 0:"string"!=typeof e?`${c.slice(0,-1)}${e}"`:'"'===e[0]?c.slice(0,-1)+e.slice(1):void 0:"string"!=typeof e||'"'!==e[0]||c instanceof d?void 0:`"${c}${e.slice(1)}`);if(void 0!==f){a.splice(b-1,3,f);continue}a[b++]="+"}b++}}(c),new e(c)}function i(a,b){var c;b instanceof e?a.push(...b._items):b instanceof d?a.push(b):a.push("number"==typeof(c=b)||"boolean"==typeof c||null===c?c:j(Array.isArray(c)?c.join(","):c))}function j(a){return JSON.stringify(a).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}b.str=h,b.addCodeArg=i,b.strConcat=function(a,b){return b.emptyStr()?a:a.emptyStr()?b:h`${a}${b}`},b.stringify=function(a){return new e(j(a))},b.safeStringify=j,b.getProperty=function(a){return"string"==typeof a&&b.IDENTIFIER.test(a)?new e(`.${a}`):f`[${a}]`},b.getEsmExportName=function(a){if("string"==typeof a&&b.IDENTIFIER.test(a))return new e(`${a}`);throw Error(`CodeGen: invalid export name: ${a}, use explicit $id name mapping`)},b.regexpCode=function(a){return new e(a.toString())}},87294:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0});class c extends Error{constructor(a){super("validation failed"),this.errors=a,this.ajv=this.validation=!0}}b.default=c},87797:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{e:()=>h,r:()=>i});var e=c(52618),f=c(911),g=a([e]);async function h(a){let b=new Date,[c,d]=await e.prisma.$transaction([e.prisma.experimentProgressLog.create({data:{companyUuid:a.companyUuid,experimentUuid:a.experimentUuid,message:a.message,phase:a.phase??null,actorUuid:a.actorUuid,createdAt:b}}),e.prisma.experiment.update({where:{uuid:a.experimentUuid},data:{liveStatus:a.liveStatus??"running",liveMessage:a.message,liveUpdatedAt:b},select:{researchProjectUuid:!0,companyUuid:!0}})]);return f.B.emitChange({companyUuid:d.companyUuid,researchProjectUuid:d.researchProjectUuid,entityType:"experiment",entityUuid:a.experimentUuid,action:"updated",actorUuid:a.actorUuid}),c}async function i(a,b){return e.prisma.experimentProgressLog.findMany({where:{companyUuid:a,experimentUuid:b},orderBy:{createdAt:"desc"},take:100,select:{uuid:!0,message:!0,phase:!0,actorUuid:!0,createdAt:!0}})}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},90617:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235);b.default={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:a,max:b}})=>void 0===b?(0,d.str)`must contain at least ${a} valid item(s)`:(0,d.str)`must contain at least ${a} and no more than ${b} valid item(s)`,params:({params:{min:a,max:b}})=>void 0===b?(0,d._)`{minContains: ${a}}`:(0,d._)`{minContains: ${a}, maxContains: ${b}}`},code(a){let b,c,{gen:f,schema:g,parentSchema:h,data:i,it:j}=a,{minContains:k,maxContains:l}=h;j.opts.next?(b=void 0===k?1:k,c=l):b=1;let m=f.const("len",(0,d._)`${i}.length`);if(a.setParams({min:b,max:c}),void 0===c&&0===b)return void(0,e.checkStrictMode)(j,'"minContains" == 0 without "maxContains": "contains" keyword ignored');if(void 0!==c&&b>c){(0,e.checkStrictMode)(j,'"minContains" > "maxContains" is always invalid'),a.fail();return}if((0,e.alwaysValidSchema)(j,g)){let e=(0,d._)`${m} >= ${b}`;void 0!==c&&(e=(0,d._)`${e} && ${m} <= ${c}`),a.pass(e);return}j.items=!0;let n=f.name("valid");function o(){let a=f.name("_valid"),e=f.let("count",0);p(a,()=>f.if(a,()=>{var a;return a=e,void(f.code((0,d._)`${a}++`),void 0===c?f.if((0,d._)`${a} >= ${b}`,()=>f.assign(n,!0).break()):(f.if((0,d._)`${a} > ${c}`,()=>f.assign(n,!1).break()),1===b?f.assign(n,!0):f.if((0,d._)`${a} >= ${b}`,()=>f.assign(n,!0))))}))}function p(b,c){f.forRange("i",0,m,d=>{a.subschema({keyword:"contains",dataProp:d,dataPropType:e.Type.Num,compositeRule:!0},b),c()})}void 0===c&&1===b?p(n,()=>f.if(n,()=>f.break())):0===b?(f.let(n,!0),void 0!==c&&f.if((0,d._)`${i}.length > 0`,o)):(f.let(n,!1),o()),a.result(n,()=>a.reset())}}},91114:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=d.operators,f={maximum:{okStr:"<=",ok:e.LTE,fail:e.GT},minimum:{okStr:">=",ok:e.GTE,fail:e.LT},exclusiveMaximum:{okStr:"<",ok:e.LT,fail:e.GTE},exclusiveMinimum:{okStr:">",ok:e.GT,fail:e.LTE}};b.default={keyword:Object.keys(f),type:"number",schemaType:"number",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,d.str)`must be ${f[a].okStr} ${b}`,params:({keyword:a,schemaCode:b})=>(0,d._)`{comparison: ${f[a].okStr}, limit: ${b}}`},code(a){let{keyword:b,data:c,schemaCode:e}=a;a.fail$data((0,d._)`${c} ${f[b].fail} ${e} || isNaN(${c})`)}}},91442:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(58362);d.code='require("ajv/dist/runtime/equal").default',b.default=d},91645:a=>{a.exports=require("net")},91875:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489),e=c(23235);b.default={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:a})=>(0,d._)`{passingSchemas: ${a.passing}}`},code(a){let{gen:b,schema:c,parentSchema:f,it:g}=a;if(!Array.isArray(c))throw Error("ajv implementation error");if(g.opts.discriminator&&f.discriminator)return;let h=b.let("valid",!1),i=b.let("passing",null),j=b.name("_valid");a.setParams({passing:i}),b.block(function(){c.forEach((c,f)=>{let k;(0,e.alwaysValidSchema)(g,c)?b.var(j,!0):k=a.subschema({keyword:"oneOf",schemaProp:f,compositeRule:!0},j),f>0&&b.if((0,d._)`${j} && ${h}`).assign(h,!1).assign(i,(0,d._)`[${i}, ${f}]`).else(),b.if(j,()=>{b.assign(h,!0),b.assign(i,f),k&&a.mergeEvaluated(k,d.Name)})})}),a.result(h,()=>a.reset(),()=>a.error(!0))}}},92093:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{W:()=>o});var e=c(77258),f=c(62653),g=c(90136),h=c(78112),i=c(8777),j=c(88437),k=c(25191),l=c(48873),m=c(63861),n=a([f,g,h,i,j,k]);function o(a,b){a.registerTool("synapse_claim_research_question",{description:"Claim a Research Question (open -> elaborating). Claiming automatically transitions the Research Question to 'elaborating' status.",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>{let c=await g._W(b.companyUuid,a);if(!c)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};try{let a=await g.Ae({researchQuestionUuid:c.uuid,companyUuid:b.companyUuid,assigneeType:"agent",assigneeUuid:b.actorUuid});return await j.E1({companyUuid:b.companyUuid,researchProjectUuid:c.researchProjectUuid,targetType:"research_question",targetUuid:c.uuid,actorType:"agent",actorUuid:b.actorUuid,action:"assigned",value:{assigneeType:"agent",assigneeUuid:b.actorUuid}}),{content:[{type:"text",text:JSON.stringify({uuid:a.uuid,status:a.status},null,2)}]}}catch(a){if(a instanceof l.Yy)return{content:[{type:"text",text:"Can only claim Research Questions with open status"}],isError:!0};throw a}}),a.registerTool("synapse_release_research_question",{description:"Release a claimed Research Question (assigned -> open)",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID")})},async({researchQuestionUuid:a})=>{let c=await g._W(b.companyUuid,a);if(!c)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};if(!("agent"===c.assigneeType&&c.assigneeUuid===b.actorUuid||"user"===c.assigneeType&&b.ownerUuid&&c.assigneeUuid===b.ownerUuid))return{content:[{type:"text",text:"Only the assignee can release a claimed Research Question"}],isError:!0};try{let a=await g.Rd(c.uuid);return await j.E1({companyUuid:b.companyUuid,researchProjectUuid:c.researchProjectUuid,targetType:"research_question",targetUuid:c.uuid,actorType:"agent",actorUuid:b.actorUuid,action:"released"}),{content:[{type:"text",text:JSON.stringify({uuid:a.uuid,status:a.status},null,2)}]}}catch(a){if(a instanceof l.nm)return{content:[{type:"text",text:"Can only release Research Questions with assigned status"}],isError:!0};throw a}}),a.registerTool("synapse_update_research_question_status",{description:"Update Research Question status (only assignee can operate). Valid statuses: open, elaborating, proposal_created, completed, closed. Claiming auto-transitions to elaborating; use this tool for proposal_created (after Experiment Design submission) or completed (after approval).",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID"),status:e.k5n(["elaborating","proposal_created","completed","in_progress","pending_review"]).describe("New status")})},async({researchQuestionUuid:a,status:c})=>{let d=await g._W(b.companyUuid,a);if(!d)return{content:[{type:"text",text:"Research Question not found"}],isError:!0};if(!("agent"===d.assigneeType&&d.assigneeUuid===b.actorUuid||"user"===d.assigneeType&&b.ownerUuid&&d.assigneeUuid===b.ownerUuid))return{content:[{type:"text",text:"Only the assignee can update the status"}],isError:!0};let e="in_progress"===c?"elaborating":"pending_review"===c?"proposal_created":c;if(!g.$V(d.status,e))return{content:[{type:"text",text:`Invalid status transition: ${d.status} -> ${e}`}],isError:!0};let f=await g.pg(d.uuid,b.companyUuid,{status:e});return await j.E1({companyUuid:b.companyUuid,researchProjectUuid:d.researchProjectUuid,targetType:"research_question",targetUuid:d.uuid,actorType:"agent",actorUuid:b.actorUuid,action:"status_changed",value:{status:e}}),{content:[{type:"text",text:JSON.stringify({uuid:f.uuid,status:f.status},null,2)}]}}),a.registerTool("synapse_create_document",{description:"Create a document (PRD, tech design, ADR, spec, guide, etc.)",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),type:e.k5n(["experiment_result","literature_review","analysis","methodology","rdr","results_report","other"]).describe("Document type"),title:e.YjP().describe("Document title"),content:e.YjP().optional().describe("Document content (Markdown)"),experimentDesignUuid:e.YjP().optional().describe("Associated Experiment Design UUID (optional)")})},async({researchProjectUuid:a,type:c,title:d,content:e,experimentDesignUuid:g})=>{if(!await (0,f.vP)(b.companyUuid,a))return{content:[{type:"text",text:"Research Project not found"}],isError:!0};if(g&&!await h.Qr(b.companyUuid,g))return{content:[{type:"text",text:"Experiment Design not found"}],isError:!0};let j=await i.ui({companyUuid:b.companyUuid,researchProjectUuid:a,type:c,title:d,content:e||null,experimentDesignUuid:g||null,createdByUuid:b.actorUuid});return{content:[{type:"text",text:JSON.stringify({uuid:j.uuid,title:j.title,type:j.type},null,2)}]}}),a.registerTool("synapse_update_document",{description:"Update document content (increments version number)",inputSchema:e.Ikc({documentUuid:e.YjP().describe("Document UUID"),title:e.YjP().optional().describe("New title"),content:e.YjP().optional().describe("New content (Markdown)")})},async({documentUuid:a,title:c,content:d})=>{if(!await i.YE(b.companyUuid,a))return{content:[{type:"text",text:"Document not found"}],isError:!0};let e=await i.lU(a,{title:c,content:d,incrementVersion:!0});return{content:[{type:"text",text:JSON.stringify({uuid:e.uuid,version:e.version},null,2)}]}}),a.registerTool("synapse_add_document_draft",{description:"Add a document draft to a pending Experiment Design container",inputSchema:e.Ikc({experimentDesignUuid:e.YjP().describe("Experiment Design UUID"),type:e.YjP().describe("Document type (prd, tech_design, adr, spec, guide)"),title:e.YjP().describe("Document title"),content:e.YjP().describe("Document content (Markdown)")})},async({experimentDesignUuid:a,type:c,title:d,content:e})=>{try{let f=await h.M9(a,b.companyUuid,{type:c,title:d,content:e}),g=f.documentDrafts,i=g?.[g.length-1];return{content:[{type:"text",text:JSON.stringify({experimentDesignUuid:f.uuid,action:"document_draft_added",draftUuid:i?.uuid,draftTitle:i?.title},null,2)}]}}catch(a){return{content:[{type:"text",text:`Failed to add document draft: ${a instanceof Error?a.message:"Unknown error"}`}],isError:!0}}}),a.registerTool("synapse_update_document_draft",{description:"Update a document draft in an Experiment Design",inputSchema:e.Ikc({experimentDesignUuid:e.YjP().describe("Experiment Design UUID"),draftUuid:e.YjP().describe("Document draft UUID"),type:e.YjP().optional().describe("Document type"),title:e.YjP().optional().describe("Document title"),content:e.YjP().optional().describe("Document content (Markdown)")})},async({experimentDesignUuid:a,draftUuid:c,type:d,title:e,content:f})=>{try{let g={};void 0!==d&&(g.type=d),void 0!==e&&(g.title=e),void 0!==f&&(g.content=f);let i=await h.gT(a,b.companyUuid,c,g);return{content:[{type:"text",text:JSON.stringify({experimentDesignUuid:i.uuid,draftUuid:c,action:"document_draft_updated"},null,2)}]}}catch(a){return{content:[{type:"text",text:`Failed to update document draft: ${a instanceof Error?a.message:"Unknown error"}`}],isError:!0}}}),a.registerTool("synapse_remove_document_draft",{description:"Remove a document draft from an Experiment Design",inputSchema:e.Ikc({experimentDesignUuid:e.YjP().describe("Experiment Design UUID"),draftUuid:e.YjP().describe("Document draft UUID")})},async({experimentDesignUuid:a,draftUuid:c})=>{try{let d=await h.nW(a,b.companyUuid,c);return{content:[{type:"text",text:JSON.stringify({experimentDesignUuid:d.uuid,draftUuid:c,action:"document_draft_removed"},null,2)}]}}catch(a){return{content:[{type:"text",text:`Failed to remove document draft: ${a instanceof Error?a.message:"Unknown error"}`}],isError:!0}}});let c=(0,m.Ht)([(0,m.V4)({name:"synapse_move_research_question",description:"Move a Research Question to a different research project within the same company. Also moves linked draft/pending Experiment Designs.",inputSchema:e.Ikc({researchQuestionUuid:e.YjP().describe("Research Question UUID"),targetResearchProjectUuid:e.YjP().describe("Target Research Project UUID")}),async execute({researchQuestionUuid:a,targetResearchProjectUuid:c}){try{let d=await g.Be(b.companyUuid,a,c,b.actorUuid,b.type);return(0,m.XP)({uuid:d.uuid,project:d.project})}catch(a){return(0,m.xv)(`Failed to move Research Question: ${a instanceof Error?a.message:"Unknown error"}`,!0)}}}),(0,m.V4)({name:"synapse_create_research_question",description:"Create a Research Question (submits requirements on behalf of humans)",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),title:e.YjP().describe("Research Question title"),content:e.YjP().optional().describe("Research Question detailed description")}),async execute({researchProjectUuid:a,title:c,content:d}){if(!await (0,f.vP)(b.companyUuid,a))return(0,m.xv)("Research Project not found",!0);let e=await g.q0({companyUuid:b.companyUuid,researchProjectUuid:a,title:c,content:d||null,createdByUuid:b.actorUuid});return(0,m.XP)({uuid:e.uuid,title:e.title})}}),(0,m.V4)({name:"synapse_generate_project_ideas",description:"Create one or more agent-generated research ideas from a project brief so they enter the human review board.",inputSchema:e.Ikc({researchProjectUuid:e.YjP().describe("Research Project UUID"),ideas:e.YOg(e.Ikc({title:e.YjP().describe("Research idea title"),content:e.YjP().optional().describe("Supporting rationale, approach, or ablation details")})).min(1).max(12)}),async execute({researchProjectUuid:a,ideas:c}){if(!await (0,f.j5)(b.companyUuid,a))return(0,m.xv)("Research Project not found",!0);let d=await Promise.all(c.map(c=>g.q0({companyUuid:b.companyUuid,researchProjectUuid:a,title:c.title,content:c.content||null,createdByUuid:b.actorUuid,sourceType:"agent",sourceLabel:`Generated by ${b.agentName||"agent"} from project brief`,generatedByAgentUuid:b.actorUuid})));return(0,m.XP)({researchProjectUuid:a,createdCount:d.length,ideas:d.map(a=>({uuid:a.uuid,title:a.title,reviewStatus:a.reviewStatus,sourceType:a.sourceType}))})}}),(0,m.V4)({name:"synapse_create_baseline",description:"Register a baseline result for comparison in a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),name:e.YjP(),metrics:e.g1P(e.YjP(),e.aig()),experimentUuid:e.YjP().optional()}),async execute(a){let c=await k.wu(b.companyUuid,a);return(0,m.XP)(c)}}),(0,m.V4)({name:"synapse_list_baselines",description:"List all baselines for a research project",inputSchema:e.Ikc({researchProjectUuid:e.YjP()}),async execute({researchProjectUuid:a}){let c=await k.$W(b.companyUuid,a);return(0,m.XP)(c)}}),(0,m.V4)({name:"synapse_compare_results",description:"Compare experiment run results against the active baseline",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),experimentResults:e.g1P(e.YjP(),e.aig())}),async execute({researchProjectUuid:a,experimentResults:c}){let d=await k.aJ(b.companyUuid,a);if(!d)return(0,m.XP)({error:"No active baseline found"});let e={},f=d.metrics;for(let[a,b]of Object.entries(c))if(a in f){let c=f[a];e[a]={baseline:c,experiment:b,delta:b-c,improved:b>c}}return(0,m.XP)({baseline:d.name,comparison:e})}}),(0,m.V4)({name:"synapse_create_rdr",description:"Create a Research Decision Record documenting why a particular approach was chosen",inputSchema:e.Ikc({researchProjectUuid:e.YjP(),title:e.YjP(),content:e.YjP()}),async execute({researchProjectUuid:a,title:c,content:d}){let e=await i.ui({researchProjectUuid:a,type:"rdr",title:c,content:d,createdByUuid:b.actorUuid,companyUuid:b.companyUuid});return(0,m.XP)(e)}})]);(0,m.D8)(a,c)}[f,g,h,i,j,k]=n.then?(await n)():n,d()}catch(a){d(a)}})},92782:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(74489);b.default={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message:({keyword:a,schemaCode:b})=>(0,d.str)`must NOT have ${"maxProperties"===a?"more":"fewer"} than ${b} properties`,params:({schemaCode:a})=>(0,d._)`{limit: ${a}}`},code(a){let{keyword:b,data:c,schemaCode:e}=a,f="maxProperties"===b?d.operators.GT:d.operators.LT;a.fail$data((0,d._)`Object.keys(${c}).length ${f} ${e}`)}}},93629:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateSchemaDeps=b.validatePropertyDeps=b.error=void 0;let d=c(74489),e=c(23235),f=c(41033);b.error={message:({params:{property:a,depsCount:b,deps:c}})=>(0,d.str)`must have ${1===b?"property":"properties"} ${c} when property ${a} is present`,params:({params:{property:a,depsCount:b,deps:c,missingProperty:e}})=>(0,d._)`{property: ${a},
33
33
  missingProperty: ${e},
34
34
  depsCount: ${b},
35
35
  deps: ${c}}`};let g={keyword:"dependencies",type:"object",schemaType:"object",error:b.error,code(a){let[b,c]=function({schema:a}){let b={},c={};for(let d in a)"__proto__"!==d&&((Array.isArray(a[d])?b:c)[d]=a[d]);return[b,c]}(a);h(a,b),i(a,c)}};function h(a,b=a.schema){let{gen:c,data:e,it:g}=a;if(0===Object.keys(b).length)return;let i=c.let("missing");for(let h in b){let j=b[h];if(0===j.length)continue;let k=(0,f.propertyInData)(c,e,h,g.opts.ownProperties);a.setParams({property:h,depsCount:j.length,deps:j.join(", ")}),g.allErrors?c.if(k,()=>{for(let b of j)(0,f.checkReportMissingProp)(a,b)}):(c.if((0,d._)`${k} && (${(0,f.checkMissingProp)(a,j,i)})`),(0,f.reportMissingProp)(a,i),c.else())}}function i(a,b=a.schema){let{gen:c,data:d,keyword:g,it:h}=a,j=c.name("valid");for(let i in b)(0,e.alwaysValidSchema)(h,b[i])||(c.if((0,f.propertyInData)(c,d,i,h.opts.ownProperties),()=>{let b=a.subschema({keyword:g,schemaProp:i},j);a.mergeValidEvaluated(b,j)},()=>c.var(j,!0)),a.ok(j))}b.validatePropertyDeps=h,b.validateSchemaDeps=i,b.default=g},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[8843,7352,936,9833,3548,324,8481,7258,314,5700,7943,4742,136,6499,2653,8499,8112],()=>b(b.s=18614));module.exports=c})();