agent-relay 1.3.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -158
- package/bin/relay-pty +0 -0
- package/bin/relay-pty-darwin-arm64 +0 -0
- package/bin/relay-pty-darwin-x64 +0 -0
- package/bin/relay-pty-linux-x64 +0 -0
- package/deploy/workspace/entrypoint.sh +9 -0
- package/dist/bridge/spawner.d.ts +4 -4
- package/dist/bridge/spawner.js +58 -92
- package/dist/cli/index.d.ts +8 -6
- package/dist/cli/index.js +282 -47
- package/dist/cloud/api/daemons.js +13 -32
- package/dist/cloud/api/onboarding.js +2 -4
- package/dist/cloud/api/providers.js +6 -0
- package/dist/cloud/config.d.ts +1 -0
- package/dist/cloud/config.js +2 -0
- package/dist/cloud/db/bulk-ingest.d.ts +2 -1
- package/dist/cloud/db/drizzle.d.ts +21 -26
- package/dist/cloud/db/drizzle.js +87 -100
- package/dist/cloud/db/index.d.ts +6 -5
- package/dist/cloud/db/index.js +9 -8
- package/dist/cloud/db/schema.d.ts +1049 -1076
- package/dist/cloud/db/schema.js +59 -71
- package/dist/cloud/server.js +854 -18
- package/dist/cloud/services/persistence.d.ts +15 -15
- package/dist/cloud/services/persistence.js +14 -14
- package/dist/daemon/agent-manager.d.ts +6 -5
- package/dist/daemon/agent-manager.js +12 -8
- package/dist/daemon/channel-membership-store.d.ts +48 -0
- package/dist/daemon/channel-membership-store.js +149 -0
- package/dist/daemon/cloud-sync.d.ts +2 -0
- package/dist/daemon/cloud-sync.js +4 -0
- package/dist/daemon/connection.js +17 -9
- package/dist/daemon/router.d.ts +37 -0
- package/dist/daemon/router.js +318 -79
- package/dist/daemon/server.d.ts +15 -0
- package/dist/daemon/server.js +141 -3
- package/dist/dashboard/out/404.html +1 -0
- package/dist/dashboard/out/_next/static/IxxVRv94L1w3ReRGAiI-k/_buildManifest.js +1 -0
- package/dist/dashboard/out/_next/static/IxxVRv94L1w3ReRGAiI-k/_ssgManifest.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/116-eacf84a131b80db9.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/117-c8afed19e821a35d.js +2 -0
- package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/532-bace199897eeab37.js +9 -0
- package/dist/dashboard/out/_next/static/chunks/64-87ab9cd6bcf2f737.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/648-acb2ff9f77cbfbd3.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/766-aa7c8c9900ff5f53.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/83-4f08122d4e7e79a6.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/847-f1f467060f32afff.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/891-a024fbe4b619cf6f.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/_not-found/page-60501fddbafba9dc.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-f746f29e01fffc43.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/page-ffad986adfcc8b31.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/cloud/link/page-cfeb437f08a12ed9.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-03ac6f35a6654ea6.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/history/page-240f91e8b06ba8ac.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/layout-c0d118c0f92d969c.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/login/page-6ec54eee75877971.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-82938ab8fcf44694.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/page-671037943b2f2e43.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-0efa024c28ba4597.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/providers/page-57cbd738c6a73859.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/providers/setup/[provider]/page-5ab0854472b402b0.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/signup/page-18a4665665f6be11.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
- package/dist/dashboard/out/_next/static/chunks/fd9d1056-609918ca7b6280bb.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/framework-f66176bb897dc684.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/main-5a40a5ae29646e1b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/main-app-6e8e8d3ef4e0192a.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/pages/_app-72b849fbd24ac258.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/pages/_error-7ba65e1336b92748.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +1 -0
- package/dist/dashboard/out/_next/static/css/4034f236dd1a3178.css +1 -0
- package/dist/dashboard/out/_next/static/css/8f9ed310f454e5a5.css +1 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-128.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-256.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-32.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-512.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-64.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo.svg +45 -0
- package/dist/dashboard/out/alt-logos/logo.svg +38 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-128.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-256.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-32.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-512.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-64.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo.svg +38 -0
- package/dist/dashboard/out/app/onboarding.html +1 -0
- package/dist/dashboard/out/app/onboarding.txt +7 -0
- package/dist/dashboard/out/app.html +1 -0
- package/dist/dashboard/out/app.txt +7 -0
- package/dist/dashboard/out/apple-icon.png +0 -0
- package/dist/dashboard/out/cloud/link.html +1 -0
- package/dist/dashboard/out/cloud/link.txt +7 -0
- package/dist/dashboard/out/connect-repos.html +1 -0
- package/dist/dashboard/out/connect-repos.txt +7 -0
- package/dist/dashboard/out/history.html +1 -0
- package/dist/dashboard/out/history.txt +7 -0
- package/dist/dashboard/out/index.html +1 -0
- package/dist/dashboard/out/index.txt +7 -0
- package/dist/dashboard/out/login.html +5 -0
- package/dist/dashboard/out/login.txt +7 -0
- package/dist/dashboard/out/metrics.html +1 -0
- package/dist/dashboard/out/metrics.txt +7 -0
- package/dist/dashboard/out/pricing.html +13 -0
- package/dist/dashboard/out/pricing.txt +7 -0
- package/dist/dashboard/out/providers/setup/claude.html +1 -0
- package/dist/dashboard/out/providers/setup/claude.txt +8 -0
- package/dist/dashboard/out/providers/setup/codex.html +1 -0
- package/dist/dashboard/out/providers/setup/codex.txt +8 -0
- package/dist/dashboard/out/providers.html +1 -0
- package/dist/dashboard/out/providers.txt +7 -0
- package/dist/dashboard/out/signup.html +6 -0
- package/dist/dashboard/out/signup.txt +7 -0
- package/dist/dashboard-server/metrics.d.ts +105 -0
- package/dist/dashboard-server/metrics.js +193 -0
- package/dist/dashboard-server/needs-attention.d.ts +24 -0
- package/dist/dashboard-server/needs-attention.js +78 -0
- package/dist/dashboard-server/server.d.ts +15 -0
- package/dist/dashboard-server/server.js +4753 -0
- package/dist/dashboard-server/start.d.ts +6 -0
- package/dist/dashboard-server/start.js +13 -0
- package/dist/dashboard-server/user-bridge.d.ts +132 -0
- package/dist/dashboard-server/user-bridge.js +317 -0
- package/dist/protocol/channels.d.ts +14 -8
- package/dist/protocol/channels.js +1 -1
- package/dist/protocol/index.d.ts +1 -0
- package/dist/protocol/index.js +1 -0
- package/dist/protocol/relay-pty-schemas.d.ts +209 -0
- package/dist/protocol/relay-pty-schemas.js +60 -0
- package/dist/wrapper/auth-detection.js +8 -1
- package/dist/wrapper/base-wrapper.d.ts +11 -1
- package/dist/wrapper/base-wrapper.js +67 -6
- package/dist/wrapper/client.d.ts +49 -1
- package/dist/wrapper/client.js +167 -0
- package/dist/wrapper/parser.d.ts +0 -4
- package/dist/wrapper/parser.js +38 -10
- package/dist/wrapper/pty-wrapper.d.ts +12 -1
- package/dist/wrapper/pty-wrapper.js +104 -5
- package/dist/wrapper/relay-pty-orchestrator.d.ts +270 -0
- package/dist/wrapper/relay-pty-orchestrator.js +970 -0
- package/dist/wrapper/shared.d.ts +1 -1
- package/dist/wrapper/shared.js +14 -4
- package/dist/wrapper/tmux-wrapper.d.ts +13 -1
- package/dist/wrapper/tmux-wrapper.js +143 -29
- package/package.json +9 -4
- package/scripts/postinstall.js +101 -11
- package/.trajectories/active/traj_3yx9dy148mge.json +0 -42
- package/.trajectories/agent-relay-322-324.md +0 -17
- package/.trajectories/completed/2026-01/traj_03zupyv1s7b9.json +0 -49
- package/.trajectories/completed/2026-01/traj_03zupyv1s7b9.md +0 -31
- package/.trajectories/completed/2026-01/traj_0zacdjl1g4ht.json +0 -125
- package/.trajectories/completed/2026-01/traj_0zacdjl1g4ht.md +0 -62
- package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.json +0 -65
- package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.md +0 -37
- package/.trajectories/completed/2026-01/traj_1g7yx6qtg4ai.json +0 -49
- package/.trajectories/completed/2026-01/traj_1g7yx6qtg4ai.md +0 -31
- package/.trajectories/completed/2026-01/traj_1k5if5snst2e.json +0 -65
- package/.trajectories/completed/2026-01/traj_1k5if5snst2e.md +0 -37
- package/.trajectories/completed/2026-01/traj_1rp3rges5811.json +0 -49
- package/.trajectories/completed/2026-01/traj_1rp3rges5811.md +0 -31
- package/.trajectories/completed/2026-01/traj_22bhyulruouw.json +0 -113
- package/.trajectories/completed/2026-01/traj_22bhyulruouw.md +0 -57
- package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.json +0 -53
- package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.md +0 -32
- package/.trajectories/completed/2026-01/traj_33iuy72sezbk.json +0 -49
- package/.trajectories/completed/2026-01/traj_33iuy72sezbk.md +0 -31
- package/.trajectories/completed/2026-01/traj_3t0440mjeunc.json +0 -26
- package/.trajectories/completed/2026-01/traj_3t0440mjeunc.md +0 -6
- package/.trajectories/completed/2026-01/traj_45x9494d9xnr.json +0 -47
- package/.trajectories/completed/2026-01/traj_45x9494d9xnr.md +0 -32
- package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.json +0 -53
- package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.md +0 -32
- package/.trajectories/completed/2026-01/traj_4qwd4zmhfwp4.json +0 -49
- package/.trajectories/completed/2026-01/traj_4qwd4zmhfwp4.md +0 -31
- package/.trajectories/completed/2026-01/traj_5ammh5qtvklq.json +0 -77
- package/.trajectories/completed/2026-01/traj_5ammh5qtvklq.md +0 -42
- package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.json +0 -59
- package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.md +0 -33
- package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.json +0 -53
- package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.md +0 -32
- package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.json +0 -48
- package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.md +0 -24
- package/.trajectories/completed/2026-01/traj_6mieijqyvaag.json +0 -77
- package/.trajectories/completed/2026-01/traj_6mieijqyvaag.md +0 -42
- package/.trajectories/completed/2026-01/traj_6unwwmgyj5sq.json +0 -109
- package/.trajectories/completed/2026-01/traj_78ffm31jn3uk.json +0 -77
- package/.trajectories/completed/2026-01/traj_78ffm31jn3uk.md +0 -42
- package/.trajectories/completed/2026-01/traj_7ludwvz45veh.json +0 -209
- package/.trajectories/completed/2026-01/traj_7ludwvz45veh.md +0 -97
- package/.trajectories/completed/2026-01/traj_94gnp3k30goq.json +0 -66
- package/.trajectories/completed/2026-01/traj_94gnp3k30goq.md +0 -36
- package/.trajectories/completed/2026-01/traj_9921cuhel0pj.json +0 -48
- package/.trajectories/completed/2026-01/traj_9921cuhel0pj.md +0 -24
- package/.trajectories/completed/2026-01/traj_a0tqx8biw9c4.json +0 -49
- package/.trajectories/completed/2026-01/traj_a0tqx8biw9c4.md +0 -31
- package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.json +0 -49
- package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.md +0 -23
- package/.trajectories/completed/2026-01/traj_avqeghu6pz5a.json +0 -40
- package/.trajectories/completed/2026-01/traj_avqeghu6pz5a.md +0 -22
- package/.trajectories/completed/2026-01/traj_ax8uungxz2qh.json +0 -66
- package/.trajectories/completed/2026-01/traj_ax8uungxz2qh.md +0 -36
- package/.trajectories/completed/2026-01/traj_c9izbh2snpzf.json +0 -49
- package/.trajectories/completed/2026-01/traj_c9izbh2snpzf.md +0 -31
- package/.trajectories/completed/2026-01/traj_cpn70dw066nt.json +0 -65
- package/.trajectories/completed/2026-01/traj_cpn70dw066nt.md +0 -37
- package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.json +0 -53
- package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.md +0 -32
- package/.trajectories/completed/2026-01/traj_cxofprm2m2en.json +0 -49
- package/.trajectories/completed/2026-01/traj_cxofprm2m2en.md +0 -31
- package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.json +0 -26
- package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.md +0 -6
- package/.trajectories/completed/2026-01/traj_dcsp9s8y01ra.json +0 -121
- package/.trajectories/completed/2026-01/traj_dcsp9s8y01ra.md +0 -29
- package/.trajectories/completed/2026-01/traj_dfuvww9pege5.json +0 -59
- package/.trajectories/completed/2026-01/traj_dfuvww9pege5.md +0 -37
- package/.trajectories/completed/2026-01/traj_erglv2f8t9eh.json +0 -36
- package/.trajectories/completed/2026-01/traj_erglv2f8t9eh.md +0 -21
- package/.trajectories/completed/2026-01/traj_fhx9irlckht6.json +0 -53
- package/.trajectories/completed/2026-01/traj_fhx9irlckht6.md +0 -32
- package/.trajectories/completed/2026-01/traj_fqduidx3xbtp.json +0 -101
- package/.trajectories/completed/2026-01/traj_fqduidx3xbtp.md +0 -52
- package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.json +0 -77
- package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.md +0 -42
- package/.trajectories/completed/2026-01/traj_gjdre5voouod.json +0 -53
- package/.trajectories/completed/2026-01/traj_gjdre5voouod.md +0 -32
- package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.json +0 -25
- package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.md +0 -15
- package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.json +0 -101
- package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.md +0 -44
- package/.trajectories/completed/2026-01/traj_he75f24d1xfm.json +0 -101
- package/.trajectories/completed/2026-01/traj_he75f24d1xfm.md +0 -52
- package/.trajectories/completed/2026-01/traj_hf81ey93uz6t.json +0 -49
- package/.trajectories/completed/2026-01/traj_hf81ey93uz6t.md +0 -31
- package/.trajectories/completed/2026-01/traj_hfmki2jr9d4r.json +0 -65
- package/.trajectories/completed/2026-01/traj_hfmki2jr9d4r.md +0 -37
- package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.json +0 -22
- package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.md +0 -5
- package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.json +0 -53
- package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.md +0 -32
- package/.trajectories/completed/2026-01/traj_lgtodco7dp1n.json +0 -61
- package/.trajectories/completed/2026-01/traj_lgtodco7dp1n.md +0 -36
- package/.trajectories/completed/2026-01/traj_lq450ly148uw.json +0 -49
- package/.trajectories/completed/2026-01/traj_lq450ly148uw.md +0 -31
- package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.json +0 -25
- package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.md +0 -15
- package/.trajectories/completed/2026-01/traj_multi_server_arch.md +0 -101
- package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.json +0 -53
- package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.md +0 -32
- package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.json +0 -53
- package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.md +0 -32
- package/.trajectories/completed/2026-01/traj_oszg9flv74pk.json +0 -73
- package/.trajectories/completed/2026-01/traj_oszg9flv74pk.md +0 -41
- package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.json +0 -48
- package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.md +0 -24
- package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.json +0 -53
- package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.md +0 -32
- package/.trajectories/completed/2026-01/traj_psd9ob0j2ru3.json +0 -27
- package/.trajectories/completed/2026-01/traj_psd9ob0j2ru3.md +0 -14
- package/.trajectories/completed/2026-01/traj_pulomd3y8cvj.json +0 -77
- package/.trajectories/completed/2026-01/traj_pulomd3y8cvj.md +0 -42
- package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.json +0 -77
- package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.md +0 -42
- package/.trajectories/completed/2026-01/traj_qft54mi7nfor.json +0 -53
- package/.trajectories/completed/2026-01/traj_qft54mi7nfor.md +0 -32
- package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.json +0 -83
- package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.md +0 -47
- package/.trajectories/completed/2026-01/traj_rd9toccj18a0.json +0 -59
- package/.trajectories/completed/2026-01/traj_rd9toccj18a0.md +0 -37
- package/.trajectories/completed/2026-01/traj_rsavt0jipi3c.json +0 -109
- package/.trajectories/completed/2026-01/traj_rsavt0jipi3c.md +0 -56
- package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.json +0 -48
- package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.md +0 -16
- package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.json +0 -59
- package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.md +0 -37
- package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.json +0 -53
- package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.md +0 -32
- package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.json +0 -84
- package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.md +0 -109
- package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.json +0 -53
- package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.md +0 -32
- package/.trajectories/completed/2026-01/traj_ub8csuv3lcv4.json +0 -53
- package/.trajectories/completed/2026-01/traj_ub8csuv3lcv4.md +0 -32
- package/.trajectories/completed/2026-01/traj_uc29tlso8i9s.json +0 -186
- package/.trajectories/completed/2026-01/traj_uc29tlso8i9s.md +0 -86
- package/.trajectories/completed/2026-01/traj_ui9b4tqxoa7j.json +0 -77
- package/.trajectories/completed/2026-01/traj_ui9b4tqxoa7j.md +0 -42
- package/.trajectories/completed/2026-01/traj_v87hypnongqx.json +0 -71
- package/.trajectories/completed/2026-01/traj_v87hypnongqx.md +0 -42
- package/.trajectories/completed/2026-01/traj_v9dkdoxylyid.json +0 -89
- package/.trajectories/completed/2026-01/traj_v9dkdoxylyid.md +0 -47
- package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.json +0 -53
- package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.md +0 -32
- package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.json +0 -20
- package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.md +0 -6
- package/.trajectories/completed/2026-01/traj_x721m1j9rzup.json +0 -113
- package/.trajectories/completed/2026-01/traj_x721m1j9rzup.md +0 -57
- package/.trajectories/completed/2026-01/traj_xjqvmep5ed3h.json +0 -61
- package/.trajectories/completed/2026-01/traj_xjqvmep5ed3h.md +0 -36
- package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.json +0 -175
- package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.md +0 -82
- package/.trajectories/completed/2026-01/traj_xy9vifpqet80.json +0 -65
- package/.trajectories/completed/2026-01/traj_xy9vifpqet80.md +0 -37
- package/.trajectories/completed/2026-01/traj_y7aiwijyfmmv.json +0 -49
- package/.trajectories/completed/2026-01/traj_y7aiwijyfmmv.md +0 -31
- package/.trajectories/completed/2026-01/traj_y7n6hfbf7dmg.json +0 -49
- package/.trajectories/completed/2026-01/traj_y7n6hfbf7dmg.md +0 -31
- package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.json +0 -47
- package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.md +0 -32
- package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.json +0 -59
- package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.md +0 -37
- package/.trajectories/completed/2026-01/traj_yvfkwnkdiso2.json +0 -49
- package/.trajectories/completed/2026-01/traj_yvfkwnkdiso2.md +0 -31
- package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.json +0 -53
- package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.md +0 -32
- package/.trajectories/consolidate-settings-panel.md +0 -24
- package/.trajectories/gh-cli-user-token.md +0 -26
- package/.trajectories/index.json +0 -607
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# agent-relay
|
|
2
2
|
|
|
3
|
-
Real-time messaging between AI agents.
|
|
3
|
+
Real-time messaging between AI agents. Sub-5ms latency, any CLI, any language.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -8,58 +8,76 @@ Real-time messaging between AI agents.
|
|
|
8
8
|
npm install -g agent-relay
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
**Requirements:** Node.js 20
|
|
11
|
+
**Requirements:** Node.js 20+
|
|
12
12
|
|
|
13
|
-
**Linux
|
|
13
|
+
**Linux:** Install build tools first:
|
|
14
14
|
```bash
|
|
15
15
|
sudo apt-get update && sudo apt-get install -y build-essential
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
### Platform Support
|
|
19
|
+
|
|
20
|
+
| Platform | Status | Notes |
|
|
21
|
+
|----------|--------|-------|
|
|
22
|
+
| macOS Apple Silicon | **Full support** | Native relay-pty binary |
|
|
23
|
+
| macOS Intel | **Full support** | Native relay-pty binary |
|
|
24
|
+
| Linux x64 | **Full support** | Native relay-pty binary |
|
|
25
|
+
| Linux arm64 | Fallback | Uses tmux (install separately) |
|
|
26
|
+
| Windows | Fallback | Uses tmux via WSL |
|
|
27
|
+
|
|
18
28
|
## Quick Start
|
|
19
29
|
|
|
20
30
|
```bash
|
|
21
|
-
#
|
|
22
|
-
agent-relay
|
|
31
|
+
# Start daemon + coordinator agent
|
|
32
|
+
agent-relay claude
|
|
23
33
|
|
|
24
|
-
#
|
|
25
|
-
agent-relay
|
|
26
|
-
|
|
27
|
-
# Terminal 3: Start another agent
|
|
28
|
-
agent-relay -n Bob codex
|
|
34
|
+
# Or with other CLI tools
|
|
35
|
+
agent-relay codex
|
|
29
36
|
```
|
|
30
37
|
|
|
31
|
-
Agents communicate
|
|
38
|
+
Agents communicate via file-based messaging:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Write message to outbox
|
|
42
|
+
cat > /tmp/relay-outbox/$AGENT_RELAY_NAME/msg << 'EOF'
|
|
43
|
+
TO: Bob
|
|
44
|
+
|
|
45
|
+
Hey, can you help with this task?
|
|
46
|
+
EOF
|
|
32
47
|
|
|
48
|
+
# Trigger send
|
|
49
|
+
echo "->relay-file:msg"
|
|
33
50
|
```
|
|
34
|
-
->relay:Bob <<<
|
|
35
|
-
Hey, can you review my changes?>>>
|
|
36
51
|
|
|
37
|
-
|
|
38
|
-
|
|
52
|
+
Or broadcast to all:
|
|
53
|
+
```bash
|
|
54
|
+
cat > /tmp/relay-outbox/$AGENT_RELAY_NAME/broadcast << 'EOF'
|
|
55
|
+
TO: *
|
|
56
|
+
|
|
57
|
+
Message to all agents
|
|
58
|
+
EOF
|
|
59
|
+
echo "->relay-file:broadcast"
|
|
39
60
|
```
|
|
40
61
|
|
|
41
|
-
## CLI
|
|
62
|
+
## CLI Reference
|
|
42
63
|
|
|
43
64
|
| Command | Description |
|
|
44
65
|
|---------|-------------|
|
|
45
|
-
| `agent-relay
|
|
46
|
-
| `agent-relay
|
|
66
|
+
| `agent-relay claude` | Start daemon + coordinator with Claude |
|
|
67
|
+
| `agent-relay codex` | Start daemon + coordinator with Codex |
|
|
47
68
|
| `agent-relay up` | Start daemon + dashboard |
|
|
48
69
|
| `agent-relay down` | Stop daemon |
|
|
49
|
-
| `agent-relay status` | Check
|
|
70
|
+
| `agent-relay status` | Check daemon status |
|
|
71
|
+
| `agent-relay create-agent -n Name <cmd>` | Create named agent |
|
|
50
72
|
| `agent-relay read <id>` | Read truncated message |
|
|
51
73
|
| `agent-relay bridge <projects...>` | Bridge multiple projects |
|
|
52
74
|
|
|
53
|
-
##
|
|
54
|
-
|
|
55
|
-
1. `agent-relay up` starts a daemon that routes messages via Unix socket
|
|
56
|
-
2. `agent-relay <cmd>` wraps your agent in tmux, parsing output for `->relay:` patterns
|
|
57
|
-
3. Messages are injected into recipient terminals in real-time
|
|
75
|
+
## Architecture
|
|
58
76
|
|
|
59
77
|
```
|
|
60
78
|
┌─────────────┐ ┌─────────────┐
|
|
61
79
|
│ Agent Alice │ │ Agent Bob │
|
|
62
|
-
│
|
|
80
|
+
│ (relay-pty) │ │ (relay-pty) │
|
|
63
81
|
└──────┬──────┘ └──────┬──────┘
|
|
64
82
|
│ │
|
|
65
83
|
└─────────┬─────────┘
|
|
@@ -68,196 +86,150 @@ Broadcasting to everyone>>>
|
|
|
68
86
|
│
|
|
69
87
|
┌────────┴────────┐
|
|
70
88
|
│ relay daemon │
|
|
89
|
+
│ (<5ms P2P) │
|
|
90
|
+
└────────┬────────┘
|
|
91
|
+
│
|
|
92
|
+
┌────────┴────────┐
|
|
93
|
+
│ Dashboard │
|
|
94
|
+
│ (Protocol UI) │
|
|
71
95
|
└─────────────────┘
|
|
72
96
|
```
|
|
73
97
|
|
|
74
|
-
|
|
98
|
+
**relay-pty** is a Rust binary that wraps your CLI tool, providing:
|
|
99
|
+
- Direct PTY writes for reliable message injection
|
|
100
|
+
- ~550ms injection latency (vs ~1700ms with tmux)
|
|
101
|
+
- File-based message parsing for robustness
|
|
75
102
|
|
|
76
|
-
|
|
103
|
+
The **Dashboard** is a reference implementation of the relay protocol, providing real-time visibility into agent communication, message history, and coordinator controls.
|
|
77
104
|
|
|
78
|
-
|
|
79
|
-
->relay:AgentName <<<
|
|
80
|
-
Your message here>>>
|
|
81
|
-
```
|
|
105
|
+
## Dashboard
|
|
82
106
|
|
|
83
|
-
|
|
107
|
+
The dashboard starts automatically with any command (`agent-relay claude`, `agent-relay up`, etc.) at http://localhost:3888
|
|
84
108
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
Message
|
|
88
|
-
|
|
109
|
+
Features:
|
|
110
|
+
- Real-time agent presence and status
|
|
111
|
+
- Message history and threading
|
|
112
|
+
- Coordinator panel for multi-agent orchestration
|
|
113
|
+
- Log streaming from all agents
|
|
89
114
|
|
|
90
|
-
|
|
115
|
+
## Cloud
|
|
91
116
|
|
|
92
|
-
|
|
117
|
+
For maximum scale and team collaboration, use [**agent-relay cloud**](https://agent-relay.com):
|
|
93
118
|
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
|
|
119
|
+
```bash
|
|
120
|
+
# Link your machine to cloud
|
|
121
|
+
agent-relay cloud link
|
|
97
122
|
|
|
98
|
-
|
|
123
|
+
# Check cloud status
|
|
124
|
+
agent-relay cloud status
|
|
99
125
|
|
|
100
|
-
|
|
126
|
+
# List agents across all linked machines
|
|
127
|
+
agent-relay cloud agents
|
|
101
128
|
|
|
102
|
-
|
|
103
|
-
agent-relay
|
|
129
|
+
# Send message to agent on any machine
|
|
130
|
+
agent-relay cloud send AgentName "Your message"
|
|
104
131
|
```
|
|
105
132
|
|
|
106
|
-
|
|
133
|
+
Cloud features:
|
|
134
|
+
- **Persistent workspaces** - Agents survive disconnects
|
|
135
|
+
- **Team collaboration** - Share dashboards, view all agents
|
|
136
|
+
- **Cross-machine messaging** - Send to agents on any linked machine
|
|
137
|
+
- **Centralized monitoring** - See all daemons and agents in one place
|
|
107
138
|
|
|
108
|
-
|
|
139
|
+
The cloud dashboard is the same protocol implementation, scaled for teams.
|
|
109
140
|
|
|
110
|
-
|
|
111
|
-
# If .claude/agents/lead.md exists:
|
|
112
|
-
agent-relay -n Lead claude # matches lead.md
|
|
113
|
-
agent-relay -n LEAD claude # matches lead.md
|
|
114
|
-
agent-relay -n lead claude # matches lead.md
|
|
115
|
-
|
|
116
|
-
# Supported locations:
|
|
117
|
-
# - .claude/agents/<name>.md
|
|
118
|
-
# - .openagents/<name>.md
|
|
119
|
-
```
|
|
141
|
+
## Agent Roles
|
|
120
142
|
|
|
121
|
-
Create role agents
|
|
143
|
+
Create role-based agents by adding markdown files:
|
|
122
144
|
|
|
123
145
|
```
|
|
124
146
|
.claude/agents/
|
|
125
147
|
├── lead.md # Coordinator
|
|
126
148
|
├── implementer.md # Developer
|
|
127
|
-
├──
|
|
128
|
-
└──
|
|
149
|
+
├── reviewer.md # Code review
|
|
150
|
+
└── designer.md # UI/UX
|
|
129
151
|
```
|
|
130
152
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
Bridge multiple projects with a single orchestrator:
|
|
134
|
-
|
|
153
|
+
Names automatically match roles (case-insensitive):
|
|
135
154
|
```bash
|
|
136
|
-
|
|
137
|
-
agent-relay bridge ~/auth ~/frontend ~/api
|
|
155
|
+
agent-relay create-agent -n Lead claude # Uses lead.md
|
|
138
156
|
```
|
|
139
157
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
1. **Start daemons** in each project: `agent-relay up`
|
|
143
|
-
2. **Start agents** in each project: `agent-relay -n Alice claude`
|
|
144
|
-
3. **Bridge** from anywhere: `agent-relay bridge ~/project1 ~/project2`
|
|
158
|
+
## Multi-Project Bridge
|
|
145
159
|
|
|
146
|
-
|
|
160
|
+
Orchestrate agents across multiple repositories:
|
|
147
161
|
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
|
|
162
|
+
```bash
|
|
163
|
+
# Start daemons in each project
|
|
164
|
+
cd ~/auth && agent-relay up
|
|
165
|
+
cd ~/frontend && agent-relay up
|
|
151
166
|
|
|
152
|
-
|
|
153
|
-
|
|
167
|
+
# Bridge from anywhere
|
|
168
|
+
agent-relay bridge ~/auth ~/frontend ~/api
|
|
154
169
|
```
|
|
155
170
|
|
|
156
|
-
|
|
171
|
+
Cross-project messaging uses `project:agent` format in the TO header:
|
|
172
|
+
```bash
|
|
173
|
+
cat > /tmp/relay-outbox/$AGENT_RELAY_NAME/msg << 'EOF'
|
|
174
|
+
TO: auth:Lead
|
|
157
175
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
->relay:
|
|
176
|
+
Please review the token refresh logic
|
|
177
|
+
EOF
|
|
178
|
+
echo "->relay-file:msg"
|
|
161
179
|
```
|
|
162
180
|
|
|
163
|
-
|
|
181
|
+
## Teaching Agents
|
|
164
182
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
To teach your AI agents how to use agent-relay, you should:
|
|
168
|
-
|
|
169
|
-
### Install the Skill
|
|
183
|
+
Install the messaging skill for your agents via [prpm](https://prpm.dev):
|
|
170
184
|
|
|
171
185
|
```bash
|
|
172
|
-
|
|
173
|
-
|
|
186
|
+
# Install snippet for AGENTS.md
|
|
187
|
+
npx prpm install @agent-relay/agent-relay-snippet
|
|
174
188
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
### Update the AGENTS.md/CLAUDE.md file
|
|
178
|
-
|
|
179
|
-
Use prpm to install the AGENTS.md snippet or CLAUDE.md snippet
|
|
189
|
+
# Install snippet for CLAUDE.md
|
|
190
|
+
npx prpm install @agent-relay/agent-relay-snippet --location CLAUDE.md
|
|
180
191
|
```
|
|
181
|
-
prpm install @agent-relay/agent-relay-snippet
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
Or if using CLAUDE.md
|
|
185
|
-
```
|
|
186
|
-
prpm install @agent-relay/agent-relay-snippet --location CLAUDE.md
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## Dashboard
|
|
190
192
|
|
|
191
|
-
|
|
193
|
+
View the rest of our packages on on [prpm organization page](https://prpm.dev/orgs?name=Agent%20Relay)
|
|
192
194
|
|
|
193
|
-
|
|
195
|
+
Or manually add the relay patterns to your agent instructions.
|
|
194
196
|
|
|
195
197
|
## Development
|
|
196
198
|
|
|
197
199
|
```bash
|
|
198
|
-
git clone https://github.com/
|
|
199
|
-
cd
|
|
200
|
+
git clone https://github.com/AgentWorkforce/relay.git
|
|
201
|
+
cd relay
|
|
200
202
|
npm install && npm run build
|
|
203
|
+
npm run dev # Start daemon + dashboard in dev mode
|
|
201
204
|
```
|
|
202
205
|
|
|
203
|
-
##
|
|
206
|
+
## Philosophy
|
|
204
207
|
|
|
205
|
-
|
|
208
|
+
**Do one thing well**: Real-time agent messaging with <5ms latency.
|
|
206
209
|
|
|
207
|
-
|
|
210
|
+
agent-relay is a messaging layer, not a framework. It integrates with:
|
|
211
|
+
- Any CLI tool (Claude, Codex, Gemini, custom agents)
|
|
212
|
+
- Any orchestration system (your own, Beads, external)
|
|
213
|
+
- Any memory system (Mimir, vector DBs, files)
|
|
208
214
|
|
|
209
215
|
```
|
|
210
|
-
|
|
211
|
-
│
|
|
212
|
-
|
|
213
|
-
│
|
|
214
|
-
│
|
|
215
|
-
|
|
216
|
-
│
|
|
217
|
-
│
|
|
218
|
-
|
|
219
|
-
│
|
|
220
|
-
|
|
221
|
-
│ └─────────┬─────────┘ │
|
|
222
|
-
│ ┌────────────────┼────────────────┐ │
|
|
223
|
-
│ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐ │
|
|
224
|
-
│ │ Claude │ │ Codex │ │ Gemini │ │
|
|
225
|
-
│ └─────────┘ └─────────┘ └─────────┘ │
|
|
226
|
-
└─────────────────────────────────────────────────────────────┘
|
|
216
|
+
┌──────────────────────────────────────────┐
|
|
217
|
+
│ Your Agent System │
|
|
218
|
+
├──────────────────────────────────────────┤
|
|
219
|
+
│ Memory │ Orchestration │ UI/Dashboard │
|
|
220
|
+
│ (any) │ (any) │ (any) │
|
|
221
|
+
├──────────────────────────────────────────┤
|
|
222
|
+
│ agent-relay │
|
|
223
|
+
│ Real-time messaging │
|
|
224
|
+
├──────────────────────────────────────────┤
|
|
225
|
+
│ Claude │ Codex │ Gemini │ Custom │
|
|
226
|
+
└──────────────────────────────────────────┘
|
|
227
227
|
```
|
|
228
228
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
- **Do one thing well**: Real-time agent messaging with <5ms latency
|
|
232
|
-
- **Work with others**: Simple `->relay:` pattern, standard I/O
|
|
233
|
-
- **Text streams**: Messages are just text, easy to parse/transform
|
|
234
|
-
- **Composability**: Pipe into other tools, wrap any CLI
|
|
235
|
-
|
|
236
|
-
### When to Use agent-relay
|
|
237
|
-
|
|
238
|
-
| Use Case | agent-relay? |
|
|
239
|
-
|----------|--------------|
|
|
240
|
-
| Quick prototyping with multiple agents | **Yes** - 1 min setup |
|
|
241
|
-
| Real-time agent collaboration | **Yes** - fastest option |
|
|
242
|
-
| CLI-native workflows | **Yes** - no Electron/desktop needed |
|
|
243
|
-
| Need persistent knowledge graph | Combine with Mimir |
|
|
244
|
-
| Need rich desktop UI | Combine with Maestro |
|
|
245
|
-
| Enterprise compliance | Combine with governance layer |
|
|
229
|
+
## License
|
|
246
230
|
|
|
247
|
-
|
|
231
|
+
MIT
|
|
248
232
|
|
|
249
233
|
---
|
|
250
234
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
This project was inspired by some excellent work in the multi-agent coordination space:
|
|
254
|
-
|
|
255
|
-
- **[mcp_agent_mail](https://github.com/Dicklesworthstone/mcp_agent_mail)** - A brilliant MCP-based approach to agent messaging with file-based inboxes and structured message handling. Great patterns for durable, asynchronous agent communication.
|
|
256
|
-
|
|
257
|
-
- **[swarm-tools / swarm-mail](https://github.com/joelhooks/swarm-tools)** - An exceptional event-sourced coordination system with durable cursors, locks, deferred responses, and ask/respond patterns. The gold standard for robust multi-agent workflows with full audit trails.
|
|
258
|
-
|
|
259
|
-
Both projects informed our thinking around durability, message threading, and coordination primitives. Check them out!
|
|
260
|
-
|
|
261
|
-
## License
|
|
262
|
-
|
|
263
|
-
MIT
|
|
235
|
+
**Links:** [Documentation](https://github.com/AgentWorkforce/relay/tree/main/docs) | [Issues](https://github.com/AgentWorkforce/relay/issues) | [Cloud](https://agent-relay.com)
|
package/bin/relay-pty
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -92,6 +92,15 @@ export NO_UPDATE_NOTIFIER=1
|
|
|
92
92
|
export NPM_CONFIG_UPDATE_NOTIFIER=false
|
|
93
93
|
log "Auto-updates disabled for AI CLIs (container environment)"
|
|
94
94
|
|
|
95
|
+
# ============================================================================
|
|
96
|
+
# Git credential helper configuration
|
|
97
|
+
# Clean up conflicting credential helpers that gh CLI or other tools may set
|
|
98
|
+
# git-credential-relay requires no host-specific overrides to work properly
|
|
99
|
+
# ============================================================================
|
|
100
|
+
git config --global --unset-all 'credential.https://github.com.helper' 2>/dev/null || true
|
|
101
|
+
git config --global --unset-all 'credential.https://gist.github.com.helper' 2>/dev/null || true
|
|
102
|
+
log "Git credential helper configured (removed conflicting gh auth overrides)"
|
|
103
|
+
|
|
95
104
|
# ============================================================================
|
|
96
105
|
# Per-user credential storage setup
|
|
97
106
|
# Create user-specific HOME on persistent volume (/data)
|
package/dist/bridge/spawner.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Handles spawning and releasing worker agents via node-pty.
|
|
4
4
|
* Workers run headlessly with output capture for logs.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import type { SummaryEvent, SessionEndEvent } from '../wrapper/pty-wrapper.js';
|
|
7
7
|
import { AgentPolicyService, type CloudPolicyFetcher } from '../policy/agent-policy.js';
|
|
8
8
|
import type { SpawnRequest, SpawnResult, WorkerInfo, SpawnWithShadowRequest, SpawnWithShadowResult } from './types.js';
|
|
9
9
|
/**
|
|
@@ -68,7 +68,7 @@ export declare class AgentSpawner {
|
|
|
68
68
|
*/
|
|
69
69
|
setOnAgentDeath(callback: OnAgentDeathCallback): void;
|
|
70
70
|
/**
|
|
71
|
-
* Set cloud persistence handler for forwarding
|
|
71
|
+
* Set cloud persistence handler for forwarding RelayPtyOrchestrator events.
|
|
72
72
|
* When set, 'summary' and 'session-end' events from spawned agents
|
|
73
73
|
* are forwarded to the handler for cloud persistence (PostgreSQL/Redis).
|
|
74
74
|
*
|
|
@@ -76,12 +76,12 @@ export declare class AgentSpawner {
|
|
|
76
76
|
*/
|
|
77
77
|
setCloudPersistence(handler: CloudPersistenceHandler): void;
|
|
78
78
|
/**
|
|
79
|
-
* Bind cloud persistence event handlers to a
|
|
79
|
+
* Bind cloud persistence event handlers to a RelayPtyOrchestrator.
|
|
80
80
|
* Returns the listener references for cleanup.
|
|
81
81
|
*/
|
|
82
82
|
private bindCloudPersistenceEvents;
|
|
83
83
|
/**
|
|
84
|
-
* Unbind all tracked listeners from a
|
|
84
|
+
* Unbind all tracked listeners from a RelayPtyOrchestrator.
|
|
85
85
|
*/
|
|
86
86
|
private unbindListeners;
|
|
87
87
|
/**
|