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