agent-relay 1.2.0 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +3 -0
- package/.nvmrc +1 -0
- package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.json +65 -0
- package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.md +37 -0
- package/.trajectories/completed/2026-01/traj_1k5if5snst2e.json +65 -0
- package/.trajectories/completed/2026-01/traj_1k5if5snst2e.md +37 -0
- package/.trajectories/completed/2026-01/traj_1rp3rges5811.json +49 -0
- package/.trajectories/completed/2026-01/traj_1rp3rges5811.md +31 -0
- package/.trajectories/completed/2026-01/traj_22bhyulruouw.json +113 -0
- package/.trajectories/completed/2026-01/traj_22bhyulruouw.md +57 -0
- package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.json +53 -0
- package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.md +32 -0
- package/.trajectories/completed/2026-01/traj_3t0440mjeunc.json +26 -0
- package/.trajectories/completed/2026-01/traj_3t0440mjeunc.md +6 -0
- package/.trajectories/completed/2026-01/traj_45x9494d9xnr.json +47 -0
- package/.trajectories/completed/2026-01/traj_45x9494d9xnr.md +32 -0
- package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.json +53 -0
- package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.md +32 -0
- package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.json +59 -0
- package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.md +33 -0
- package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.json +53 -0
- package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.md +32 -0
- package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.json +48 -0
- package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.md +24 -0
- package/.trajectories/completed/2026-01/traj_7ludwvz45veh.json +209 -0
- package/.trajectories/completed/2026-01/traj_7ludwvz45veh.md +97 -0
- package/.trajectories/completed/2026-01/traj_9921cuhel0pj.json +48 -0
- package/.trajectories/completed/2026-01/traj_9921cuhel0pj.md +24 -0
- package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.json +49 -0
- package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.md +23 -0
- package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.json +53 -0
- package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.md +32 -0
- package/.trajectories/completed/2026-01/traj_cxofprm2m2en.json +49 -0
- package/.trajectories/completed/2026-01/traj_cxofprm2m2en.md +31 -0
- package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.json +26 -0
- package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.md +6 -0
- package/.trajectories/completed/2026-01/traj_dfuvww9pege5.json +59 -0
- package/.trajectories/completed/2026-01/traj_dfuvww9pege5.md +37 -0
- package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.json +77 -0
- package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.md +42 -0
- package/.trajectories/completed/2026-01/traj_gjdre5voouod.json +53 -0
- package/.trajectories/completed/2026-01/traj_gjdre5voouod.md +32 -0
- package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.json +25 -0
- package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.md +15 -0
- package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.json +101 -0
- package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.md +44 -0
- package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.json +22 -0
- package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.md +5 -0
- package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.json +53 -0
- package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.md +32 -0
- package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.json +25 -0
- package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.md +15 -0
- package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.json +53 -0
- package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.md +32 -0
- package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.json +53 -0
- package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.md +32 -0
- package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.json +48 -0
- package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.md +24 -0
- package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.json +53 -0
- package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.md +32 -0
- package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.json +77 -0
- package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.md +42 -0
- package/.trajectories/completed/2026-01/traj_qft54mi7nfor.json +53 -0
- package/.trajectories/completed/2026-01/traj_qft54mi7nfor.md +32 -0
- package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.json +83 -0
- package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.md +47 -0
- package/.trajectories/completed/2026-01/traj_rd9toccj18a0.json +59 -0
- package/.trajectories/completed/2026-01/traj_rd9toccj18a0.md +37 -0
- package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.json +48 -0
- package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.md +16 -0
- package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.json +59 -0
- package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.md +37 -0
- package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.json +53 -0
- package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.md +32 -0
- package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.json +84 -0
- package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.md +109 -0
- package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.json +53 -0
- package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.md +32 -0
- package/.trajectories/completed/2026-01/traj_v87hypnongqx.json +71 -0
- package/.trajectories/completed/2026-01/traj_v87hypnongqx.md +42 -0
- package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.json +53 -0
- package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.md +32 -0
- package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.json +20 -0
- package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.md +6 -0
- package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.json +175 -0
- package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.md +82 -0
- package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.json +47 -0
- package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.md +32 -0
- package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.json +59 -0
- package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.md +37 -0
- package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.json +53 -0
- package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.md +32 -0
- package/.trajectories/index.json +314 -0
- package/ARCHITECTURE.md +1245 -0
- package/TESTING.md +278 -0
- package/deploy/init-db.sql +5 -0
- package/deploy/scripts/setup-fly-workspaces.sh +69 -0
- package/deploy/scripts/setup-railway.sh +75 -0
- package/deploy/workspace/entrypoint-browser.sh +118 -0
- package/deploy/workspace/entrypoint.sh +348 -0
- package/deploy/workspace/git-credential-relay +111 -0
- package/dist/cli/index.js +218 -1
- package/dist/cloud/api/billing.js +30 -9
- package/dist/cloud/api/codex-auth-helper.d.ts +15 -0
- package/dist/cloud/api/codex-auth-helper.js +100 -0
- package/dist/cloud/api/git.js +24 -3
- package/dist/cloud/api/onboarding.js +15 -2
- package/dist/cloud/api/repos.d.ts +1 -0
- package/dist/cloud/api/repos.js +186 -0
- package/dist/cloud/api/webhooks.d.ts +1 -0
- package/dist/cloud/api/webhooks.js +149 -0
- package/dist/cloud/api/workspaces.js +97 -6
- package/dist/cloud/billing/plans.js +19 -19
- package/dist/cloud/provisioner/index.d.ts +32 -0
- package/dist/cloud/provisioner/index.js +362 -21
- package/dist/cloud/server.js +6 -1
- package/dist/cloud/services/nango.d.ts +60 -0
- package/dist/cloud/services/nango.js +153 -0
- package/dist/cloud/services/planLimits.d.ts +22 -0
- package/dist/cloud/services/planLimits.js +58 -5
- package/dist/dashboard/out/404.html +1 -1
- package/dist/dashboard/out/_next/static/chunks/699-3b1cd6618a45d259.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/766-1f2dd8cb7f766b0b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-3fdfa60e53f2810d.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/page-e6381e5a6e1fbcfd.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-3538dfe0ffe984b8.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/history/{page-56a8b4616a90dc43.js → page-abb9ab2d329f56e9.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/app/layout-c0d118c0f92d969c.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/login/{page-3eac37ea6f5dd153.js → page-c22d080201cbd9fb.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/app/metrics/{page-1081dd190a331a91.js → page-67a3e98d9a43a6ed.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/app/{page-daf87e86f783f980.js → page-77e9c65420a06cfb.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-b08ed1c34d14434a.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/providers/page-e88bc117ef7671c3.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/signup/{page-fee4ed1709070bcd.js → page-68d34f50baa8ab6b.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/{main-app-5d692157a8eb1fd9.js → main-app-6e8e8d3ef4e0192a.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/{main-97850e03d723ea8c.js → main-ed4e1fb6f29c34cf.js} +1 -1
- package/dist/dashboard/out/_next/static/css/7c3ae9e8617d42a5.css +1 -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 -1
- package/dist/dashboard/out/app.txt +2 -2
- package/dist/dashboard/out/connect-repos.html +1 -1
- package/dist/dashboard/out/connect-repos.txt +2 -2
- package/dist/dashboard/out/history.html +1 -1
- package/dist/dashboard/out/history.txt +2 -2
- package/dist/dashboard/out/index.html +1 -1
- package/dist/dashboard/out/index.txt +2 -2
- package/dist/dashboard/out/login.html +2 -2
- package/dist/dashboard/out/login.txt +2 -2
- package/dist/dashboard/out/metrics.html +1 -1
- package/dist/dashboard/out/metrics.txt +2 -2
- package/dist/dashboard/out/pricing.html +3 -3
- package/dist/dashboard/out/pricing.txt +2 -2
- package/dist/dashboard/out/providers.html +1 -1
- package/dist/dashboard/out/providers.txt +2 -2
- package/dist/dashboard/out/signup.html +2 -2
- package/dist/dashboard/out/signup.txt +2 -2
- package/package.json +2 -11
- package/test-push.txt +1 -0
- package/bin/tmux +0 -0
- package/dist/bridge/config.d.ts.map +0 -1
- package/dist/bridge/config.js.map +0 -1
- package/dist/bridge/index.d.ts.map +0 -1
- package/dist/bridge/index.js.map +0 -1
- package/dist/bridge/multi-project-client.d.ts.map +0 -1
- package/dist/bridge/multi-project-client.js.map +0 -1
- package/dist/bridge/shadow-cli.d.ts.map +0 -1
- package/dist/bridge/shadow-cli.js.map +0 -1
- package/dist/bridge/shadow-config.d.ts.map +0 -1
- package/dist/bridge/shadow-config.js.map +0 -1
- package/dist/bridge/spawner.d.ts.map +0 -1
- package/dist/bridge/spawner.js.map +0 -1
- package/dist/bridge/teams-config.d.ts.map +0 -1
- package/dist/bridge/teams-config.js.map +0 -1
- package/dist/bridge/types.d.ts.map +0 -1
- package/dist/bridge/types.js.map +0 -1
- package/dist/bridge/utils.d.ts.map +0 -1
- package/dist/bridge/utils.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cloud/api/auth.d.ts.map +0 -1
- package/dist/cloud/api/auth.js.map +0 -1
- package/dist/cloud/api/billing.d.ts.map +0 -1
- package/dist/cloud/api/billing.js.map +0 -1
- package/dist/cloud/api/cli-pty-runner.d.ts.map +0 -1
- package/dist/cloud/api/cli-pty-runner.js.map +0 -1
- package/dist/cloud/api/coordinators.d.ts.map +0 -1
- package/dist/cloud/api/coordinators.js.map +0 -1
- package/dist/cloud/api/daemons.d.ts.map +0 -1
- package/dist/cloud/api/daemons.js.map +0 -1
- package/dist/cloud/api/generic-webhooks.d.ts.map +0 -1
- package/dist/cloud/api/generic-webhooks.js.map +0 -1
- package/dist/cloud/api/git.d.ts.map +0 -1
- package/dist/cloud/api/git.js.map +0 -1
- package/dist/cloud/api/github-app.d.ts.map +0 -1
- package/dist/cloud/api/github-app.js.map +0 -1
- package/dist/cloud/api/middleware/planLimits.d.ts.map +0 -1
- package/dist/cloud/api/middleware/planLimits.js.map +0 -1
- package/dist/cloud/api/monitoring.d.ts.map +0 -1
- package/dist/cloud/api/monitoring.js.map +0 -1
- package/dist/cloud/api/nango-auth.d.ts.map +0 -1
- package/dist/cloud/api/nango-auth.js.map +0 -1
- package/dist/cloud/api/onboarding.d.ts.map +0 -1
- package/dist/cloud/api/onboarding.js.map +0 -1
- package/dist/cloud/api/policy.d.ts.map +0 -1
- package/dist/cloud/api/policy.js.map +0 -1
- package/dist/cloud/api/providers.d.ts.map +0 -1
- package/dist/cloud/api/providers.js.map +0 -1
- package/dist/cloud/api/repos.d.ts.map +0 -1
- package/dist/cloud/api/repos.js.map +0 -1
- package/dist/cloud/api/teams.d.ts.map +0 -1
- package/dist/cloud/api/teams.js.map +0 -1
- package/dist/cloud/api/test-helpers.d.ts.map +0 -1
- package/dist/cloud/api/test-helpers.js.map +0 -1
- package/dist/cloud/api/usage.d.ts.map +0 -1
- package/dist/cloud/api/usage.js.map +0 -1
- package/dist/cloud/api/webhooks.d.ts.map +0 -1
- package/dist/cloud/api/webhooks.js.map +0 -1
- package/dist/cloud/api/workspaces.d.ts.map +0 -1
- package/dist/cloud/api/workspaces.js.map +0 -1
- package/dist/cloud/billing/index.d.ts.map +0 -1
- package/dist/cloud/billing/index.js.map +0 -1
- package/dist/cloud/billing/plans.d.ts.map +0 -1
- package/dist/cloud/billing/plans.js.map +0 -1
- package/dist/cloud/billing/service.d.ts.map +0 -1
- package/dist/cloud/billing/service.js.map +0 -1
- package/dist/cloud/billing/types.d.ts.map +0 -1
- package/dist/cloud/billing/types.js.map +0 -1
- package/dist/cloud/config.d.ts.map +0 -1
- package/dist/cloud/config.js.map +0 -1
- package/dist/cloud/db/drizzle.d.ts.map +0 -1
- package/dist/cloud/db/drizzle.js.map +0 -1
- package/dist/cloud/db/index.d.ts.map +0 -1
- package/dist/cloud/db/index.js.map +0 -1
- package/dist/cloud/db/schema.d.ts.map +0 -1
- package/dist/cloud/db/schema.js.map +0 -1
- package/dist/cloud/index.d.ts.map +0 -1
- package/dist/cloud/index.js.map +0 -1
- package/dist/cloud/provisioner/index.d.ts.map +0 -1
- package/dist/cloud/provisioner/index.js.map +0 -1
- package/dist/cloud/server.d.ts.map +0 -1
- package/dist/cloud/server.js.map +0 -1
- package/dist/cloud/services/auto-scaler.d.ts.map +0 -1
- package/dist/cloud/services/auto-scaler.js.map +0 -1
- package/dist/cloud/services/capacity-manager.d.ts.map +0 -1
- package/dist/cloud/services/capacity-manager.js.map +0 -1
- package/dist/cloud/services/ci-agent-spawner.d.ts.map +0 -1
- package/dist/cloud/services/ci-agent-spawner.js.map +0 -1
- package/dist/cloud/services/coordinator.d.ts.map +0 -1
- package/dist/cloud/services/coordinator.js.map +0 -1
- package/dist/cloud/services/index.d.ts.map +0 -1
- package/dist/cloud/services/index.js.map +0 -1
- package/dist/cloud/services/mention-handler.d.ts.map +0 -1
- package/dist/cloud/services/mention-handler.js.map +0 -1
- package/dist/cloud/services/nango.d.ts.map +0 -1
- package/dist/cloud/services/nango.js.map +0 -1
- package/dist/cloud/services/persistence.d.ts.map +0 -1
- package/dist/cloud/services/persistence.js.map +0 -1
- package/dist/cloud/services/planLimits.d.ts.map +0 -1
- package/dist/cloud/services/planLimits.js.map +0 -1
- package/dist/cloud/services/scaling-orchestrator.d.ts.map +0 -1
- package/dist/cloud/services/scaling-orchestrator.js.map +0 -1
- package/dist/cloud/services/scaling-policy.d.ts.map +0 -1
- package/dist/cloud/services/scaling-policy.js.map +0 -1
- package/dist/cloud/vault/index.d.ts.map +0 -1
- package/dist/cloud/vault/index.js.map +0 -1
- package/dist/cloud/webhooks/index.d.ts.map +0 -1
- package/dist/cloud/webhooks/index.js.map +0 -1
- package/dist/cloud/webhooks/parsers/github.d.ts.map +0 -1
- package/dist/cloud/webhooks/parsers/github.js.map +0 -1
- package/dist/cloud/webhooks/parsers/index.d.ts.map +0 -1
- package/dist/cloud/webhooks/parsers/index.js.map +0 -1
- package/dist/cloud/webhooks/parsers/linear.d.ts.map +0 -1
- package/dist/cloud/webhooks/parsers/linear.js.map +0 -1
- package/dist/cloud/webhooks/parsers/slack.d.ts.map +0 -1
- package/dist/cloud/webhooks/parsers/slack.js.map +0 -1
- package/dist/cloud/webhooks/responders/github.d.ts.map +0 -1
- package/dist/cloud/webhooks/responders/github.js.map +0 -1
- package/dist/cloud/webhooks/responders/index.d.ts.map +0 -1
- package/dist/cloud/webhooks/responders/index.js.map +0 -1
- package/dist/cloud/webhooks/responders/linear.d.ts.map +0 -1
- package/dist/cloud/webhooks/responders/linear.js.map +0 -1
- package/dist/cloud/webhooks/responders/slack.d.ts.map +0 -1
- package/dist/cloud/webhooks/responders/slack.js.map +0 -1
- package/dist/cloud/webhooks/router.d.ts.map +0 -1
- package/dist/cloud/webhooks/router.js.map +0 -1
- package/dist/cloud/webhooks/rules-engine.d.ts.map +0 -1
- package/dist/cloud/webhooks/rules-engine.js.map +0 -1
- package/dist/cloud/webhooks/types.d.ts.map +0 -1
- package/dist/cloud/webhooks/types.js.map +0 -1
- package/dist/continuity/formatter.d.ts.map +0 -1
- package/dist/continuity/formatter.js.map +0 -1
- package/dist/continuity/handoff-store.d.ts.map +0 -1
- package/dist/continuity/handoff-store.js.map +0 -1
- package/dist/continuity/index.d.ts.map +0 -1
- package/dist/continuity/index.js.map +0 -1
- package/dist/continuity/ledger-store.d.ts.map +0 -1
- package/dist/continuity/ledger-store.js.map +0 -1
- package/dist/continuity/manager.d.ts.map +0 -1
- package/dist/continuity/manager.js.map +0 -1
- package/dist/continuity/parser.d.ts.map +0 -1
- package/dist/continuity/parser.js.map +0 -1
- package/dist/continuity/types.d.ts.map +0 -1
- package/dist/continuity/types.js.map +0 -1
- package/dist/daemon/agent-manager.d.ts.map +0 -1
- package/dist/daemon/agent-manager.js.map +0 -1
- package/dist/daemon/agent-registry.d.ts.map +0 -1
- package/dist/daemon/agent-registry.js.map +0 -1
- package/dist/daemon/api.d.ts.map +0 -1
- package/dist/daemon/api.js.map +0 -1
- package/dist/daemon/auth.d.ts.map +0 -1
- package/dist/daemon/auth.js.map +0 -1
- package/dist/daemon/cli-auth.d.ts.map +0 -1
- package/dist/daemon/cli-auth.js.map +0 -1
- package/dist/daemon/cloud-sync.d.ts.map +0 -1
- package/dist/daemon/cloud-sync.js.map +0 -1
- package/dist/daemon/connection.d.ts.map +0 -1
- package/dist/daemon/connection.js.map +0 -1
- package/dist/daemon/index.d.ts.map +0 -1
- package/dist/daemon/index.js.map +0 -1
- package/dist/daemon/orchestrator.d.ts.map +0 -1
- package/dist/daemon/orchestrator.js.map +0 -1
- package/dist/daemon/registry.d.ts.map +0 -1
- package/dist/daemon/registry.js.map +0 -1
- package/dist/daemon/router.d.ts.map +0 -1
- package/dist/daemon/router.js.map +0 -1
- package/dist/daemon/server.d.ts.map +0 -1
- package/dist/daemon/server.js.map +0 -1
- package/dist/daemon/services/browser-testing.d.ts.map +0 -1
- package/dist/daemon/services/browser-testing.js.map +0 -1
- package/dist/daemon/services/container-spawner.d.ts.map +0 -1
- package/dist/daemon/services/container-spawner.js.map +0 -1
- package/dist/daemon/types.d.ts.map +0 -1
- package/dist/daemon/types.js.map +0 -1
- package/dist/daemon/workspace-manager.d.ts.map +0 -1
- package/dist/daemon/workspace-manager.js.map +0 -1
- package/dist/dashboard/out/_next/static/chunks/480-2d4111711d4e473c.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/766-c3a14283c88d815b.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/app/page-7120be68bea622f3.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-dc2e3a1a22478efc.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-4d72d5a5d8a9b618.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/providers/page-b68a681526eb145e.js +0 -1
- package/dist/dashboard/out/_next/static/css/411ce23ffeae9f76.css +0 -1
- package/dist/dashboard-server/metrics.d.ts.map +0 -1
- package/dist/dashboard-server/metrics.js.map +0 -1
- package/dist/dashboard-server/needs-attention.d.ts.map +0 -1
- package/dist/dashboard-server/needs-attention.js.map +0 -1
- package/dist/dashboard-server/server.d.ts.map +0 -1
- package/dist/dashboard-server/server.js.map +0 -1
- package/dist/dashboard-server/start.d.ts.map +0 -1
- package/dist/dashboard-server/start.js.map +0 -1
- package/dist/hooks/emitter.d.ts.map +0 -1
- package/dist/hooks/emitter.js.map +0 -1
- package/dist/hooks/inbox-check/hook.d.ts.map +0 -1
- package/dist/hooks/inbox-check/hook.js.map +0 -1
- package/dist/hooks/inbox-check/index.d.ts.map +0 -1
- package/dist/hooks/inbox-check/index.js.map +0 -1
- package/dist/hooks/inbox-check/types.d.ts.map +0 -1
- package/dist/hooks/inbox-check/types.js.map +0 -1
- package/dist/hooks/inbox-check/utils.d.ts.map +0 -1
- package/dist/hooks/inbox-check/utils.js.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/registry.d.ts.map +0 -1
- package/dist/hooks/registry.js.map +0 -1
- package/dist/hooks/trajectory-hooks.d.ts.map +0 -1
- package/dist/hooks/trajectory-hooks.js.map +0 -1
- package/dist/hooks/types.d.ts.map +0 -1
- package/dist/hooks/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/memory/adapters/index.d.ts.map +0 -1
- package/dist/memory/adapters/index.js.map +0 -1
- package/dist/memory/adapters/inmemory.d.ts.map +0 -1
- package/dist/memory/adapters/inmemory.js.map +0 -1
- package/dist/memory/adapters/supermemory.d.ts.map +0 -1
- package/dist/memory/adapters/supermemory.js.map +0 -1
- package/dist/memory/factory.d.ts.map +0 -1
- package/dist/memory/factory.js.map +0 -1
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/memory-hooks.d.ts.map +0 -1
- package/dist/memory/memory-hooks.js.map +0 -1
- package/dist/memory/service.d.ts.map +0 -1
- package/dist/memory/service.js.map +0 -1
- package/dist/memory/types.d.ts.map +0 -1
- package/dist/memory/types.js.map +0 -1
- package/dist/policy/agent-policy.d.ts.map +0 -1
- package/dist/policy/agent-policy.js.map +0 -1
- package/dist/policy/cloud-policy-fetcher.d.ts.map +0 -1
- package/dist/policy/cloud-policy-fetcher.js.map +0 -1
- package/dist/protocol/framing.d.ts.map +0 -1
- package/dist/protocol/framing.js.map +0 -1
- package/dist/protocol/index.d.ts.map +0 -1
- package/dist/protocol/index.js.map +0 -1
- package/dist/protocol/types.d.ts.map +0 -1
- package/dist/protocol/types.js.map +0 -1
- package/dist/resiliency/context-persistence.d.ts.map +0 -1
- package/dist/resiliency/context-persistence.js.map +0 -1
- package/dist/resiliency/crash-insights.d.ts.map +0 -1
- package/dist/resiliency/crash-insights.js.map +0 -1
- package/dist/resiliency/gossip-health.d.ts.map +0 -1
- package/dist/resiliency/gossip-health.js.map +0 -1
- package/dist/resiliency/health-monitor.d.ts.map +0 -1
- package/dist/resiliency/health-monitor.js.map +0 -1
- package/dist/resiliency/index.d.ts.map +0 -1
- package/dist/resiliency/index.js.map +0 -1
- package/dist/resiliency/leader-watchdog.d.ts.map +0 -1
- package/dist/resiliency/leader-watchdog.js.map +0 -1
- package/dist/resiliency/logger.d.ts.map +0 -1
- package/dist/resiliency/logger.js.map +0 -1
- package/dist/resiliency/memory-monitor.d.ts.map +0 -1
- package/dist/resiliency/memory-monitor.js.map +0 -1
- package/dist/resiliency/metrics.d.ts.map +0 -1
- package/dist/resiliency/metrics.js.map +0 -1
- package/dist/resiliency/provider-context.d.ts.map +0 -1
- package/dist/resiliency/provider-context.js.map +0 -1
- package/dist/resiliency/stateless-lead.d.ts.map +0 -1
- package/dist/resiliency/stateless-lead.js.map +0 -1
- package/dist/resiliency/supervisor.d.ts.map +0 -1
- package/dist/resiliency/supervisor.js.map +0 -1
- package/dist/shared/cli-auth-config.d.ts.map +0 -1
- package/dist/shared/cli-auth-config.js.map +0 -1
- package/dist/state/agent-state.d.ts.map +0 -1
- package/dist/state/agent-state.js.map +0 -1
- package/dist/storage/adapter.d.ts.map +0 -1
- package/dist/storage/adapter.js.map +0 -1
- package/dist/storage/sqlite-adapter.d.ts.map +0 -1
- package/dist/storage/sqlite-adapter.js.map +0 -1
- package/dist/trajectory/config.d.ts.map +0 -1
- package/dist/trajectory/config.js.map +0 -1
- package/dist/trajectory/index.d.ts.map +0 -1
- package/dist/trajectory/index.js.map +0 -1
- package/dist/trajectory/integration.d.ts.map +0 -1
- package/dist/trajectory/integration.js.map +0 -1
- package/dist/utils/agent-config.d.ts.map +0 -1
- package/dist/utils/agent-config.js.map +0 -1
- package/dist/utils/command-resolver.d.ts.map +0 -1
- package/dist/utils/command-resolver.js.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/name-generator.d.ts.map +0 -1
- package/dist/utils/name-generator.js.map +0 -1
- package/dist/utils/project-namespace.d.ts.map +0 -1
- package/dist/utils/project-namespace.js.map +0 -1
- package/dist/utils/tmux-resolver.d.ts.map +0 -1
- package/dist/utils/tmux-resolver.js.map +0 -1
- package/dist/utils/update-checker.d.ts.map +0 -1
- package/dist/utils/update-checker.js.map +0 -1
- package/dist/wrapper/client.d.ts.map +0 -1
- package/dist/wrapper/client.js.map +0 -1
- package/dist/wrapper/inbox.d.ts.map +0 -1
- package/dist/wrapper/inbox.js.map +0 -1
- package/dist/wrapper/index.d.ts.map +0 -1
- package/dist/wrapper/index.js.map +0 -1
- package/dist/wrapper/parser.d.ts.map +0 -1
- package/dist/wrapper/parser.js.map +0 -1
- package/dist/wrapper/pty-wrapper.d.ts.map +0 -1
- package/dist/wrapper/pty-wrapper.js.map +0 -1
- package/dist/wrapper/shared.d.ts.map +0 -1
- package/dist/wrapper/shared.js.map +0 -1
- package/dist/wrapper/tmux-wrapper.d.ts.map +0 -1
- package/dist/wrapper/tmux-wrapper.js.map +0 -1
- package/docs/AGENTS.md +0 -513
- package/docs/ARCHITECTURE_DECISIONS.md +0 -175
- package/docs/CLOUD-ARCHITECTURE.md +0 -804
- package/docs/CLOUD-ONBOARDING-DESIGN.md +0 -1983
- package/docs/CONTRIBUTING.md +0 -151
- package/docs/HOOKS_API.md +0 -394
- package/docs/INTEGRATION-GUIDE.md +0 -926
- package/docs/PROTOCOL.md +0 -325
- package/docs/WRAPPER_EVENTS.md +0 -358
- package/docs/agent-policy-snippet.md +0 -40
- package/docs/agent-relay-protocol.md +0 -238
- package/docs/agent-relay-snippet.md +0 -174
- package/docs/archive/CHANGELOG.md +0 -11
- package/docs/archive/CLI-SIMPLIFICATION-COMPLETE.md +0 -48
- package/docs/archive/DESIGN_BRIDGE_STAFFING.md +0 -878
- package/docs/archive/DESIGN_V2.md +0 -1079
- package/docs/archive/EXECUTIVE_SUMMARY.md +0 -358
- package/docs/archive/MONETIZATION.md +0 -1679
- package/docs/archive/PROPOSAL-trajectories.md +0 -1582
- package/docs/archive/ROADMAP.md +0 -329
- package/docs/archive/SCALING_ANALYSIS.md +0 -280
- package/docs/archive/TESTING_PRESENCE_FEATURES.md +0 -327
- package/docs/archive/TMUX_IMPLEMENTATION_NOTES.md +0 -364
- package/docs/archive/TMUX_IMPROVEMENTS.md +0 -968
- package/docs/archive/dashboard-v2-plan.md +0 -179
- package/docs/archive/removable-code-analysis.md +0 -24
- package/docs/competitive/GASTOWN.md +0 -451
- package/docs/competitive/MCP_AGENT_MAIL.md +0 -389
- package/docs/competitive/OVERVIEW.md +0 -898
- package/docs/competitive/README.md +0 -34
- package/docs/competitive/TMUX_ORCHESTRATOR.md +0 -605
- package/docs/dashboard.png +0 -0
- package/docs/design/ci-failure-webhooks.md +0 -812
- package/docs/design/comprehensive-integrations.md +0 -238
- package/docs/design/e2b-sandbox-integration.md +0 -504
- package/docs/design/github-app-permissions.md +0 -264
- package/docs/guides/CLOUD.md +0 -236
- package/docs/guides/LOCAL.md +0 -535
- package/docs/guides/SELF-HOSTED.md +0 -494
- package/docs/local-testing.md +0 -428
- package/docs/proposals/continuous-claude-integration.md +0 -622
- package/docs/proposals/custom-commands.md +0 -368
- package/docs/proposals/shadow-as-subagent.md +0 -765
- package/docs/proposals/slack-bot-integration.md +0 -1457
- package/docs/tasks/global-skills-system.tasks.md +0 -230
- package/docs/tasks/webhook-integrations.tasks.md +0 -184
- package/docs/tasks/workspace-capabilities.tasks.md +0 -121
- package/docs/testing/RESILIENCY-TEST-PLAN-2026-01-01.md +0 -366
- package/scripts/cloud-setup.sh +0 -96
- package/scripts/dev/PUBLIC_RELEASE_PLAN.md +0 -88
- package/scripts/dev/dev-team-setup.sh +0 -431
- package/scripts/e2e-test.sh +0 -119
- package/scripts/games/game-protocol.md +0 -79
- package/scripts/games/hearts-setup.sh +0 -264
- package/scripts/manual-qa.sh +0 -293
- package/scripts/run-cloud-qa.sh +0 -220
- package/scripts/test-cli-auth/Dockerfile +0 -44
- package/scripts/test-cli-auth/Dockerfile.real +0 -79
- package/scripts/test-cli-auth/README.md +0 -286
- package/scripts/test-cli-auth/ci-test-real-clis.ts +0 -251
- package/scripts/test-cli-auth/ci-test-runner.ts +0 -263
- package/scripts/test-cli-auth/mock-cli.sh +0 -147
- package/scripts/test-cli-auth/package.json +0 -14
- package/scripts/test-cli-auth/test-oauth-flow.ts +0 -220
- package/scripts/test-pty-input-auto.js +0 -222
- package/scripts/test-pty-input.js +0 -150
- package/scripts/tictactoe-setup.sh +0 -181
- /package/dist/dashboard/out/_next/static/chunks/{117-b100311aff8d5c61.js → 117-f7b8ab0809342e77.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{648-a13d3c2b1be45466.js → 648-5cc6e1921389a58a.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{724-73c1ee5f60abe860.js → 724-2dae7627550ab88f.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-a4973f3e3c82fb67.js → page-53b8a69f76db17d0.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-bf46c09eb57e019c.js → fd9d1056-609918ca7b6280bb.js} +0 -0
- /package/dist/dashboard/out/_next/static/{H5aWG0udPB4iOUIl_gytz → wPgKJtcOmTFLpUncDg16A}/_buildManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/{H5aWG0udPB4iOUIl_gytz → wPgKJtcOmTFLpUncDg16A}/_ssgManifest.js +0 -0
|
@@ -1,431 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# Development Team Setup
|
|
4
|
-
# Sets up 3 agents (2 Claude + 1 Codex) to work on agent-relay public release
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
set -e
|
|
8
|
-
|
|
9
|
-
DEV_DIR="${DEV_DIR:-/tmp/agent-relay-dev}"
|
|
10
|
-
AGENT_1="DocWriter"
|
|
11
|
-
AGENT_2="CodePolish"
|
|
12
|
-
AGENT_3="DevOps"
|
|
13
|
-
AGENT_4="Dashboard"
|
|
14
|
-
|
|
15
|
-
REPO_DIR="/Users/khaliqgant/Projects/prpm/agent-relay"
|
|
16
|
-
|
|
17
|
-
echo "=== Agent-Relay Development Team Setup ==="
|
|
18
|
-
echo "Dev directory: $DEV_DIR"
|
|
19
|
-
echo "Repo: $REPO_DIR"
|
|
20
|
-
echo "Agents: $AGENT_1 (Claude), $AGENT_2 (Claude), $AGENT_3 (Codex), $AGENT_4 (Gemini)"
|
|
21
|
-
echo ""
|
|
22
|
-
|
|
23
|
-
# Create directories
|
|
24
|
-
mkdir -p "$DEV_DIR/$AGENT_1"
|
|
25
|
-
mkdir -p "$DEV_DIR/$AGENT_2"
|
|
26
|
-
mkdir -p "$DEV_DIR/$AGENT_3"
|
|
27
|
-
mkdir -p "$DEV_DIR/$AGENT_4"
|
|
28
|
-
|
|
29
|
-
# Clear any existing inbox
|
|
30
|
-
echo "" > "$DEV_DIR/$AGENT_1/inbox.md"
|
|
31
|
-
echo "" > "$DEV_DIR/$AGENT_2/inbox.md"
|
|
32
|
-
echo "" > "$DEV_DIR/$AGENT_3/inbox.md"
|
|
33
|
-
echo "" > "$DEV_DIR/$AGENT_4/inbox.md"
|
|
34
|
-
|
|
35
|
-
# Copy the release plan
|
|
36
|
-
cp "$REPO_DIR/scripts/dev/PUBLIC_RELEASE_PLAN.md" "$DEV_DIR/"
|
|
37
|
-
|
|
38
|
-
# Create instructions for DocWriter (Claude 1)
|
|
39
|
-
cat > "$DEV_DIR/$AGENT_1/INSTRUCTIONS.md" << 'EOF'
|
|
40
|
-
# You are DocWriter - Documentation & Examples Lead
|
|
41
|
-
|
|
42
|
-
## Your Mission
|
|
43
|
-
Prepare agent-relay's documentation and examples for public release.
|
|
44
|
-
|
|
45
|
-
## Project Location
|
|
46
|
-
`/Users/khaliqgant/Projects/prpm/agent-relay`
|
|
47
|
-
|
|
48
|
-
## Your Tasks (in priority order)
|
|
49
|
-
|
|
50
|
-
### 1. Review README.md
|
|
51
|
-
- Read the current README: `cat /Users/khaliqgant/Projects/prpm/agent-relay/README.md`
|
|
52
|
-
- Identify gaps or unclear sections
|
|
53
|
-
- Improve the Quick Start guide
|
|
54
|
-
- Add a "Common Use Cases" section
|
|
55
|
-
|
|
56
|
-
### 2. Create examples/ directory
|
|
57
|
-
Create working examples that users can run:
|
|
58
|
-
- `examples/basic-chat/` - Two agents having a conversation
|
|
59
|
-
- `examples/collaborative-task/` - Agents working on a shared task
|
|
60
|
-
|
|
61
|
-
### 3. Document CLI Commands
|
|
62
|
-
The new inbox commands need documentation:
|
|
63
|
-
- `agent-relay inbox-poll` - Blocking wait for messages
|
|
64
|
-
- `agent-relay inbox-read` - Read inbox contents
|
|
65
|
-
- `agent-relay inbox-write` - Write to agent inbox
|
|
66
|
-
- `agent-relay inbox-agents` - List agents
|
|
67
|
-
|
|
68
|
-
### 4. Create docs/CONTRIBUTING.md
|
|
69
|
-
Guide for contributors.
|
|
70
|
-
|
|
71
|
-
## Communication
|
|
72
|
-
|
|
73
|
-
**Your inbox:** `/tmp/agent-relay-dev/DocWriter/inbox.md`
|
|
74
|
-
**Teammates:** CodePolish, DevOps
|
|
75
|
-
|
|
76
|
-
### Commands
|
|
77
|
-
Use the LOCAL build (not the global install):
|
|
78
|
-
```bash
|
|
79
|
-
# Wait for messages
|
|
80
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-poll -n DocWriter -d /tmp/agent-relay-dev --clear
|
|
81
|
-
|
|
82
|
-
# Send to teammate
|
|
83
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-write -t CodePolish -f DocWriter -m "MESSAGE" -d /tmp/agent-relay-dev
|
|
84
|
-
|
|
85
|
-
# Broadcast to all
|
|
86
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-write -t "*" -f DocWriter -m "MESSAGE" -d /tmp/agent-relay-dev
|
|
87
|
-
|
|
88
|
-
# List team
|
|
89
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-agents -d /tmp/agent-relay-dev
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**TIP:** You can create an alias for convenience:
|
|
93
|
-
```bash
|
|
94
|
-
alias ar='node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js'
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Protocol
|
|
98
|
-
- `STATUS: <what you're doing>` - Progress update
|
|
99
|
-
- `DONE: <task>` - Task completed
|
|
100
|
-
- `QUESTION: @AgentName <question>` - Ask teammate
|
|
101
|
-
- `BLOCKER: <issue>` - Blocked
|
|
102
|
-
|
|
103
|
-
## START NOW
|
|
104
|
-
1. Read the release plan: `cat /tmp/agent-relay-dev/PUBLIC_RELEASE_PLAN.md`
|
|
105
|
-
2. Broadcast your start: `STATUS: DocWriter starting, reviewing README.md`
|
|
106
|
-
3. Begin with reviewing README.md
|
|
107
|
-
4. Check inbox periodically for teammate messages
|
|
108
|
-
EOF
|
|
109
|
-
|
|
110
|
-
# Create instructions for CodePolish (Claude 2)
|
|
111
|
-
cat > "$DEV_DIR/$AGENT_2/INSTRUCTIONS.md" << 'EOF'
|
|
112
|
-
# You are CodePolish - Code Quality & Testing Lead
|
|
113
|
-
|
|
114
|
-
## Your Mission
|
|
115
|
-
Improve agent-relay's code quality, test coverage, and error handling for public release.
|
|
116
|
-
|
|
117
|
-
## Project Location
|
|
118
|
-
`/Users/khaliqgant/Projects/prpm/agent-relay`
|
|
119
|
-
|
|
120
|
-
## Your Tasks (in priority order)
|
|
121
|
-
|
|
122
|
-
### 1. Audit Test Coverage
|
|
123
|
-
- Run tests: `cd /Users/khaliqgant/Projects/prpm/agent-relay && npm test`
|
|
124
|
-
- Identify files without tests
|
|
125
|
-
- Focus on `src/cli/index.ts` - the new inbox commands need tests
|
|
126
|
-
|
|
127
|
-
### 2. Add Missing Tests
|
|
128
|
-
Priority:
|
|
129
|
-
- `inbox-poll` command
|
|
130
|
-
- `inbox-write` command (including broadcast)
|
|
131
|
-
- `inbox-read` command
|
|
132
|
-
- `inbox-agents` command
|
|
133
|
-
|
|
134
|
-
### 3. Improve Error Handling
|
|
135
|
-
- Review CLI commands for user-friendly error messages
|
|
136
|
-
- Add input validation
|
|
137
|
-
- Handle edge cases gracefully
|
|
138
|
-
|
|
139
|
-
### 4. Code Cleanup
|
|
140
|
-
- Remove console.log debugging statements
|
|
141
|
-
- Add JSDoc comments to public functions
|
|
142
|
-
- Check for unused imports/variables
|
|
143
|
-
|
|
144
|
-
### 5. TypeScript Strict Mode
|
|
145
|
-
- Run: `npx tsc --noEmit --strict`
|
|
146
|
-
- Fix any type errors
|
|
147
|
-
|
|
148
|
-
## Communication
|
|
149
|
-
|
|
150
|
-
**Your inbox:** `/tmp/agent-relay-dev/CodePolish/inbox.md`
|
|
151
|
-
**Teammates:** DocWriter, DevOps
|
|
152
|
-
|
|
153
|
-
### Commands
|
|
154
|
-
Use the LOCAL build (not the global install):
|
|
155
|
-
```bash
|
|
156
|
-
# Wait for messages
|
|
157
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-poll -n CodePolish -d /tmp/agent-relay-dev --clear
|
|
158
|
-
|
|
159
|
-
# Send to teammate
|
|
160
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-write -t DevOps -f CodePolish -m "MESSAGE" -d /tmp/agent-relay-dev
|
|
161
|
-
|
|
162
|
-
# Broadcast to all
|
|
163
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-write -t "*" -f CodePolish -m "MESSAGE" -d /tmp/agent-relay-dev
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
**TIP:** Create an alias: `alias ar='node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js'`
|
|
167
|
-
|
|
168
|
-
### Protocol
|
|
169
|
-
- `STATUS: <what you're doing>` - Progress update
|
|
170
|
-
- `DONE: <task>` - Task completed
|
|
171
|
-
- `QUESTION: @AgentName <question>` - Ask teammate
|
|
172
|
-
- `BLOCKER: <issue>` - Blocked
|
|
173
|
-
|
|
174
|
-
## START NOW
|
|
175
|
-
1. Read the release plan: `cat /tmp/agent-relay-dev/PUBLIC_RELEASE_PLAN.md`
|
|
176
|
-
2. Broadcast your start: `STATUS: CodePolish starting, auditing test coverage`
|
|
177
|
-
3. Run tests and identify gaps
|
|
178
|
-
4. Check inbox periodically for teammate messages
|
|
179
|
-
EOF
|
|
180
|
-
|
|
181
|
-
# Create instructions for DevOps (Codex)
|
|
182
|
-
cat > "$DEV_DIR/$AGENT_3/INSTRUCTIONS.md" << 'EOF'
|
|
183
|
-
# You are DevOps - CI/CD & Publishing Lead
|
|
184
|
-
|
|
185
|
-
## Your Mission
|
|
186
|
-
Prepare agent-relay for npm publishing and improve CI/CD for public release.
|
|
187
|
-
|
|
188
|
-
## Project Location
|
|
189
|
-
`/Users/khaliqgant/Projects/prpm/agent-relay`
|
|
190
|
-
|
|
191
|
-
## Your Tasks (in priority order)
|
|
192
|
-
|
|
193
|
-
### 1. Review package.json
|
|
194
|
-
- Check: `cat /Users/khaliqgant/Projects/prpm/agent-relay/package.json`
|
|
195
|
-
- Verify npm publish fields: name, version, description, main, bin, repository, bugs, homepage
|
|
196
|
-
- Review dependencies - remove unused
|
|
197
|
-
- Add "files" field to whitelist published files
|
|
198
|
-
|
|
199
|
-
### 2. Add LICENSE file
|
|
200
|
-
- Create MIT license at `/Users/khaliqgant/Projects/prpm/agent-relay/LICENSE`
|
|
201
|
-
|
|
202
|
-
### 3. Enhance GitHub Actions
|
|
203
|
-
- Review: `cat /Users/khaliqgant/Projects/prpm/agent-relay/.github/workflows/test.yml`
|
|
204
|
-
- Add npm publish workflow on GitHub release
|
|
205
|
-
- Add test coverage badge
|
|
206
|
-
|
|
207
|
-
### 4. Create docs/CHANGELOG.md
|
|
208
|
-
- Document the 0.1.0 release features
|
|
209
|
-
|
|
210
|
-
### 5. Test npm publish
|
|
211
|
-
- Run: `npm pack --dry-run`
|
|
212
|
-
- Verify package contents are correct
|
|
213
|
-
- Check: `npm publish --dry-run`
|
|
214
|
-
|
|
215
|
-
### 6. Review install.sh
|
|
216
|
-
- Test the installer script logic
|
|
217
|
-
- Improve error handling
|
|
218
|
-
|
|
219
|
-
## Communication
|
|
220
|
-
|
|
221
|
-
**Your inbox:** `/tmp/agent-relay-dev/DevOps/inbox.md`
|
|
222
|
-
**Teammates:** DocWriter, CodePolish
|
|
223
|
-
|
|
224
|
-
### Commands
|
|
225
|
-
Use the LOCAL build (not the global install):
|
|
226
|
-
```bash
|
|
227
|
-
# Wait for messages
|
|
228
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-poll -n DevOps -d /tmp/agent-relay-dev --clear
|
|
229
|
-
|
|
230
|
-
# Send to teammate
|
|
231
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-write -t DocWriter -f DevOps -m "MESSAGE" -d /tmp/agent-relay-dev
|
|
232
|
-
|
|
233
|
-
# Broadcast to all
|
|
234
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-write -t "*" -f DevOps -m "MESSAGE" -d /tmp/agent-relay-dev
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
**TIP:** Create an alias: `alias ar='node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js'`
|
|
238
|
-
|
|
239
|
-
### Protocol
|
|
240
|
-
- `STATUS: <what you're doing>` - Progress update
|
|
241
|
-
- `DONE: <task>` - Task completed
|
|
242
|
-
- `QUESTION: @AgentName <question>` - Ask teammate
|
|
243
|
-
- `BLOCKER: <issue>` - Blocked
|
|
244
|
-
|
|
245
|
-
## START NOW
|
|
246
|
-
1. Read the release plan: `cat /tmp/agent-relay-dev/PUBLIC_RELEASE_PLAN.md`
|
|
247
|
-
2. Broadcast your start: `STATUS: DevOps starting, reviewing package.json`
|
|
248
|
-
3. Begin with package.json audit
|
|
249
|
-
4. Check inbox periodically for teammate messages
|
|
250
|
-
EOF
|
|
251
|
-
|
|
252
|
-
# Create instructions for Dashboard (Gemini)
|
|
253
|
-
cat > "$DEV_DIR/$AGENT_4/INSTRUCTIONS.md" << 'EOF'
|
|
254
|
-
# You are Dashboard - Web Visualization Lead
|
|
255
|
-
|
|
256
|
-
## Your Mission
|
|
257
|
-
Build a web dashboard to visualize agent-relay communication patterns and help users track multi-agent progress in real-time.
|
|
258
|
-
|
|
259
|
-
## Project Location
|
|
260
|
-
`/Users/khaliqgant/Projects/prpm/agent-relay`
|
|
261
|
-
|
|
262
|
-
## Your Tasks (in priority order)
|
|
263
|
-
|
|
264
|
-
### 1. Create Dashboard Directory Structure
|
|
265
|
-
```
|
|
266
|
-
src/dashboard/
|
|
267
|
-
├── server.ts # Express/Fastify server
|
|
268
|
-
├── index.html # Main dashboard page
|
|
269
|
-
├── styles.css # Styling
|
|
270
|
-
└── client.ts # Client-side JS (or keep it simple with vanilla JS)
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### 2. Build Core Features
|
|
274
|
-
|
|
275
|
-
**a) Inbox Monitor**
|
|
276
|
-
- Watch all agent inbox files in a data directory
|
|
277
|
-
- Display messages in real-time as they arrive
|
|
278
|
-
- Show sender, recipient, timestamp, message preview
|
|
279
|
-
|
|
280
|
-
**b) Agent Status Panel**
|
|
281
|
-
- List all active agents
|
|
282
|
-
- Show last activity timestamp
|
|
283
|
-
- Indicate if inbox has unread messages
|
|
284
|
-
|
|
285
|
-
**c) Message Flow Visualization**
|
|
286
|
-
- Simple diagram showing message flow between agents
|
|
287
|
-
- Could be a timeline or network graph
|
|
288
|
-
- Show who sent what to whom
|
|
289
|
-
|
|
290
|
-
**d) Activity Log**
|
|
291
|
-
- Scrolling log of all messages
|
|
292
|
-
- Filter by agent
|
|
293
|
-
- Search functionality
|
|
294
|
-
|
|
295
|
-
### 3. CLI Integration
|
|
296
|
-
Add a new command to agent-relay CLI:
|
|
297
|
-
```bash
|
|
298
|
-
agent-relay dashboard -d /tmp/agent-relay-dev -p 3000
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
This should:
|
|
302
|
-
- Start the web server on specified port
|
|
303
|
-
- Watch the data directory for changes
|
|
304
|
-
- Serve the dashboard UI
|
|
305
|
-
|
|
306
|
-
### 4. Tech Stack Suggestions
|
|
307
|
-
Keep it simple - no heavy frameworks needed:
|
|
308
|
-
- **Server:** Node.js with built-in http or express
|
|
309
|
-
- **File watching:** fs.watch or chokidar
|
|
310
|
-
- **Real-time updates:** Server-Sent Events (SSE) or WebSocket
|
|
311
|
-
- **UI:** Vanilla HTML/CSS/JS or minimal framework
|
|
312
|
-
|
|
313
|
-
### 5. Design Goals
|
|
314
|
-
- **Zero dependencies if possible** (or minimal)
|
|
315
|
-
- **Works out of the box** - no build step required for dashboard
|
|
316
|
-
- **Real-time updates** - see messages as they happen
|
|
317
|
-
- **Mobile-friendly** - responsive design
|
|
318
|
-
|
|
319
|
-
## Communication
|
|
320
|
-
|
|
321
|
-
**Your inbox:** `/tmp/agent-relay-dev/Dashboard/inbox.md`
|
|
322
|
-
**Teammates:** DocWriter, CodePolish, DevOps
|
|
323
|
-
|
|
324
|
-
### Commands
|
|
325
|
-
Use the LOCAL build (not the global install):
|
|
326
|
-
```bash
|
|
327
|
-
# Wait for messages
|
|
328
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-poll -n Dashboard -d /tmp/agent-relay-dev --clear
|
|
329
|
-
|
|
330
|
-
# Send to teammate
|
|
331
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-write -t DocWriter -f Dashboard -m "MESSAGE" -d /tmp/agent-relay-dev
|
|
332
|
-
|
|
333
|
-
# Broadcast to all
|
|
334
|
-
node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js inbox-write -t "*" -f Dashboard -m "MESSAGE" -d /tmp/agent-relay-dev
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
**TIP:** Create an alias: `alias ar='node /Users/khaliqgant/Projects/prpm/agent-relay/dist/cli/index.js'`
|
|
338
|
-
|
|
339
|
-
### Protocol
|
|
340
|
-
- `STATUS: <what you're doing>` - Progress update
|
|
341
|
-
- `DONE: <task>` - Task completed
|
|
342
|
-
- `QUESTION: @AgentName <question>` - Ask teammate
|
|
343
|
-
- `BLOCKER: <issue>` - Blocked
|
|
344
|
-
|
|
345
|
-
## Example Dashboard Layout
|
|
346
|
-
|
|
347
|
-
```
|
|
348
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
349
|
-
│ Agent-Relay Dashboard [Watching: /tmp/] │
|
|
350
|
-
├─────────────────────────────────────────────────────────────┤
|
|
351
|
-
│ │
|
|
352
|
-
│ AGENTS MESSAGE FLOW │
|
|
353
|
-
│ ┌──────────────────┐ ┌─────────────────────────────┐ │
|
|
354
|
-
│ │ ● DocWriter │ │ DocWriter ──→ CodePolish │ │
|
|
355
|
-
│ │ Last: 2s ago │ │ CodePolish ──→ DevOps │ │
|
|
356
|
-
│ │ ● CodePolish │ │ DevOps ──→ * (broadcast) │ │
|
|
357
|
-
│ │ Last: 5s ago │ │ Dashboard ──→ DocWriter │ │
|
|
358
|
-
│ │ ● DevOps │ └─────────────────────────────┘ │
|
|
359
|
-
│ │ Last: 10s ago │ │
|
|
360
|
-
│ │ ○ Dashboard │ ACTIVITY LOG │
|
|
361
|
-
│ │ (you) │ ┌─────────────────────────────┐ │
|
|
362
|
-
│ └──────────────────┘ │ 12:01 DocWriter→CodePolish │ │
|
|
363
|
-
│ │ "STATUS: Reviewing README" │ │
|
|
364
|
-
│ │ 12:02 CodePolish→* │ │
|
|
365
|
-
│ │ "DONE: Added 5 new tests" │ │
|
|
366
|
-
│ └─────────────────────────────┘ │
|
|
367
|
-
└─────────────────────────────────────────────────────────────┘
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
## START NOW
|
|
371
|
-
1. Read the release plan: `cat /tmp/agent-relay-dev/PUBLIC_RELEASE_PLAN.md`
|
|
372
|
-
2. Broadcast your start: `STATUS: Dashboard starting, designing web UI architecture`
|
|
373
|
-
3. Begin by creating the directory structure
|
|
374
|
-
4. Check inbox periodically for teammate messages
|
|
375
|
-
EOF
|
|
376
|
-
|
|
377
|
-
echo "Created development team files:"
|
|
378
|
-
echo " - $DEV_DIR/PUBLIC_RELEASE_PLAN.md"
|
|
379
|
-
echo " - $DEV_DIR/$AGENT_1/INSTRUCTIONS.md (Claude - Documentation)"
|
|
380
|
-
echo " - $DEV_DIR/$AGENT_2/INSTRUCTIONS.md (Claude - Code Quality)"
|
|
381
|
-
echo " - $DEV_DIR/$AGENT_3/INSTRUCTIONS.md (Codex - DevOps)"
|
|
382
|
-
echo " - $DEV_DIR/$AGENT_4/INSTRUCTIONS.md (Gemini - Dashboard)"
|
|
383
|
-
echo ""
|
|
384
|
-
echo "=== TO START DEVELOPMENT ==="
|
|
385
|
-
echo ""
|
|
386
|
-
echo "Make sure agent-relay is built:"
|
|
387
|
-
echo " cd $REPO_DIR"
|
|
388
|
-
echo " npm run build"
|
|
389
|
-
echo ""
|
|
390
|
-
echo "Open FOUR terminal windows:"
|
|
391
|
-
echo ""
|
|
392
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
393
|
-
echo "Terminal 1 - DocWriter (Claude):"
|
|
394
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
395
|
-
echo " cd $REPO_DIR"
|
|
396
|
-
echo " claude"
|
|
397
|
-
echo ""
|
|
398
|
-
echo " Then say:"
|
|
399
|
-
echo " Read /tmp/agent-relay-dev/DocWriter/INSTRUCTIONS.md and start working on agent-relay documentation"
|
|
400
|
-
echo ""
|
|
401
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
402
|
-
echo "Terminal 2 - CodePolish (Claude):"
|
|
403
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
404
|
-
echo " cd $REPO_DIR"
|
|
405
|
-
echo " claude"
|
|
406
|
-
echo ""
|
|
407
|
-
echo " Then say:"
|
|
408
|
-
echo " Read /tmp/agent-relay-dev/CodePolish/INSTRUCTIONS.md and start working on agent-relay code quality"
|
|
409
|
-
echo ""
|
|
410
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
411
|
-
echo "Terminal 3 - DevOps (Codex):"
|
|
412
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
413
|
-
echo " cd $REPO_DIR"
|
|
414
|
-
echo " codex"
|
|
415
|
-
echo ""
|
|
416
|
-
echo " Then say:"
|
|
417
|
-
echo " Read /tmp/agent-relay-dev/DevOps/INSTRUCTIONS.md and start working on agent-relay CI/CD and publishing"
|
|
418
|
-
echo ""
|
|
419
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
420
|
-
echo "Terminal 4 - Dashboard (Gemini):"
|
|
421
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
422
|
-
echo " cd $REPO_DIR"
|
|
423
|
-
echo " gemini"
|
|
424
|
-
echo ""
|
|
425
|
-
echo " Then say:"
|
|
426
|
-
echo " Read /tmp/agent-relay-dev/Dashboard/INSTRUCTIONS.md and start building the agent-relay web dashboard"
|
|
427
|
-
echo ""
|
|
428
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
429
|
-
echo ""
|
|
430
|
-
echo "The four agents will coordinate via /tmp/agent-relay-dev/ inboxes!"
|
|
431
|
-
echo ""
|
package/scripts/e2e-test.sh
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# E2E Test for Agent Relay
|
|
3
|
-
# Tests the full flow: daemon -> supervisor -> agent processing
|
|
4
|
-
|
|
5
|
-
set -e
|
|
6
|
-
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
8
|
-
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
9
|
-
DATA_DIR="/tmp/agent-relay-e2e-test"
|
|
10
|
-
SOCKET_PATH="/tmp/agent-relay-e2e.sock"
|
|
11
|
-
AGENT_NAME="TestAgent"
|
|
12
|
-
|
|
13
|
-
# Colors for output
|
|
14
|
-
RED='\033[0;31m'
|
|
15
|
-
GREEN='\033[0;32m'
|
|
16
|
-
YELLOW='\033[1;33m'
|
|
17
|
-
NC='\033[0m' # No Color
|
|
18
|
-
|
|
19
|
-
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
|
20
|
-
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
|
21
|
-
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
|
22
|
-
|
|
23
|
-
cleanup() {
|
|
24
|
-
log_info "Cleaning up..."
|
|
25
|
-
# Kill background processes
|
|
26
|
-
if [ -n "$DAEMON_PID" ]; then
|
|
27
|
-
kill $DAEMON_PID 2>/dev/null || true
|
|
28
|
-
fi
|
|
29
|
-
# Clean up test data
|
|
30
|
-
rm -rf "$DATA_DIR"
|
|
31
|
-
rm -f "$SOCKET_PATH" "${SOCKET_PATH}.pid"
|
|
32
|
-
log_info "Cleanup complete"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
trap cleanup EXIT
|
|
36
|
-
|
|
37
|
-
# Ensure we're in the project directory
|
|
38
|
-
cd "$PROJECT_DIR"
|
|
39
|
-
|
|
40
|
-
log_info "=== Agent Relay E2E Test ==="
|
|
41
|
-
log_info "Data dir: $DATA_DIR"
|
|
42
|
-
log_info "Socket: $SOCKET_PATH"
|
|
43
|
-
|
|
44
|
-
# Clean up any previous test data
|
|
45
|
-
rm -rf "$DATA_DIR"
|
|
46
|
-
rm -f "$SOCKET_PATH" "${SOCKET_PATH}.pid"
|
|
47
|
-
mkdir -p "$DATA_DIR"
|
|
48
|
-
|
|
49
|
-
# Build if needed
|
|
50
|
-
log_info "Building project..."
|
|
51
|
-
npm run build
|
|
52
|
-
|
|
53
|
-
# Start daemon in background
|
|
54
|
-
log_info "Starting daemon..."
|
|
55
|
-
node dist/cli/index.js start -s "$SOCKET_PATH" -f &
|
|
56
|
-
DAEMON_PID=$!
|
|
57
|
-
sleep 1
|
|
58
|
-
|
|
59
|
-
# Verify daemon is running
|
|
60
|
-
if ! kill -0 $DAEMON_PID 2>/dev/null; then
|
|
61
|
-
log_error "Daemon failed to start"
|
|
62
|
-
exit 1
|
|
63
|
-
fi
|
|
64
|
-
log_info "Daemon started (PID: $DAEMON_PID)"
|
|
65
|
-
|
|
66
|
-
# Register a test agent (using 'echo' as a simple CLI that just exits)
|
|
67
|
-
log_info "Registering test agent: $AGENT_NAME"
|
|
68
|
-
node dist/cli/index.js register \
|
|
69
|
-
-n "$AGENT_NAME" \
|
|
70
|
-
-c custom \
|
|
71
|
-
--command "echo" \
|
|
72
|
-
-w "$PROJECT_DIR" \
|
|
73
|
-
-d "$DATA_DIR"
|
|
74
|
-
|
|
75
|
-
# Verify registration
|
|
76
|
-
if [ ! -f "$DATA_DIR/$AGENT_NAME/state.json" ]; then
|
|
77
|
-
log_error "Agent state file not created"
|
|
78
|
-
exit 1
|
|
79
|
-
fi
|
|
80
|
-
log_info "Agent registered successfully"
|
|
81
|
-
|
|
82
|
-
# Create inbox with test message
|
|
83
|
-
log_info "Writing test message to inbox..."
|
|
84
|
-
INBOX_PATH="$DATA_DIR/$AGENT_NAME/inbox.md"
|
|
85
|
-
cat > "$INBOX_PATH" << 'EOF'
|
|
86
|
-
## Message from TestSender | 2025-12-18T12:00:00.000Z
|
|
87
|
-
Hello from the E2E test! Please respond with @relay:TestSender Got your message!
|
|
88
|
-
EOF
|
|
89
|
-
|
|
90
|
-
# Verify inbox was created
|
|
91
|
-
if [ ! -f "$INBOX_PATH" ]; then
|
|
92
|
-
log_error "Inbox file not created"
|
|
93
|
-
exit 1
|
|
94
|
-
fi
|
|
95
|
-
log_info "Inbox created with test message"
|
|
96
|
-
|
|
97
|
-
# Show initial state
|
|
98
|
-
log_info "Initial state.json:"
|
|
99
|
-
cat "$DATA_DIR/$AGENT_NAME/state.json" | head -20
|
|
100
|
-
|
|
101
|
-
# Note: Full supervisor test requires a real CLI that can process messages
|
|
102
|
-
# For now, we verify the infrastructure is in place
|
|
103
|
-
|
|
104
|
-
log_info ""
|
|
105
|
-
log_info "=== E2E Infrastructure Test PASSED ==="
|
|
106
|
-
log_info ""
|
|
107
|
-
log_info "Verified:"
|
|
108
|
-
log_info " - Daemon starts and runs"
|
|
109
|
-
log_info " - Agent registration creates state.json"
|
|
110
|
-
log_info " - Inbox file can be created"
|
|
111
|
-
log_info ""
|
|
112
|
-
log_info "To test full message flow with a real CLI:"
|
|
113
|
-
log_info " 1. Start daemon: npm run start -- start -f"
|
|
114
|
-
log_info " 2. Register agent: npm run start -- register -n MyAgent -c claude -w \$(pwd)"
|
|
115
|
-
log_info " 3. Start supervisor: npm run start -- supervisor -v -d /tmp/agent-relay"
|
|
116
|
-
log_info " 4. Send message: npm run start -- send -t MyAgent -m 'Hello!'"
|
|
117
|
-
log_info ""
|
|
118
|
-
|
|
119
|
-
exit 0
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Multi-Agent Game Protocol
|
|
2
|
-
|
|
3
|
-
This document defines the standard protocol for multi-agent games using agent-relay.
|
|
4
|
-
|
|
5
|
-
## Core Commands
|
|
6
|
-
|
|
7
|
-
All agents use these `agent-relay` commands:
|
|
8
|
-
|
|
9
|
-
### Wait for messages (blocking)
|
|
10
|
-
```bash
|
|
11
|
-
agent-relay inbox-poll -n YOUR_NAME -d GAME_DIR --clear
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
### Send to one player
|
|
15
|
-
```bash
|
|
16
|
-
agent-relay inbox-write -t RECIPIENT -f YOUR_NAME -m "MESSAGE" -d GAME_DIR
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Broadcast to all players
|
|
20
|
-
```bash
|
|
21
|
-
agent-relay inbox-write -t "*" -f YOUR_NAME -m "MESSAGE" -d GAME_DIR
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### List all players
|
|
25
|
-
```bash
|
|
26
|
-
agent-relay inbox-agents -d GAME_DIR
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Message Format
|
|
30
|
-
|
|
31
|
-
All game messages should follow this structure:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
ACTION: <action_type>
|
|
35
|
-
DATA: <json_or_text>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Standard Actions
|
|
39
|
-
|
|
40
|
-
- `PLAY` - Make a game move
|
|
41
|
-
- `PASS` - Pass cards/turn
|
|
42
|
-
- `STATE` - Share game state
|
|
43
|
-
- `TURN` - Indicate whose turn it is
|
|
44
|
-
- `RESULT` - Announce round/game result
|
|
45
|
-
- `ACK` - Acknowledge receipt
|
|
46
|
-
|
|
47
|
-
## Turn-Based Protocol
|
|
48
|
-
|
|
49
|
-
1. **Wait Phase**: Run `inbox-poll` to wait for your turn
|
|
50
|
-
2. **Action Phase**: Process received message, make your move
|
|
51
|
-
3. **Send Phase**: Send your action to next player or broadcast
|
|
52
|
-
4. **Repeat**: Go back to Wait Phase
|
|
53
|
-
|
|
54
|
-
## Game Coordinator
|
|
55
|
-
|
|
56
|
-
For complex games, one player can act as coordinator:
|
|
57
|
-
- Deals cards/sets up game
|
|
58
|
-
- Validates moves
|
|
59
|
-
- Tracks state
|
|
60
|
-
- Announces results
|
|
61
|
-
|
|
62
|
-
## Example Flow (3 players: A, B, C)
|
|
63
|
-
|
|
64
|
-
```
|
|
65
|
-
A: Broadcasts "ACTION: STATE, DATA: {round: 1, turn: A}"
|
|
66
|
-
A: Makes move, sends to B "ACTION: PLAY, DATA: {card: '2H'}"
|
|
67
|
-
A: Runs inbox-poll (blocks)
|
|
68
|
-
|
|
69
|
-
B: Receives A's message
|
|
70
|
-
B: Makes move, sends to C "ACTION: PLAY, DATA: {card: '5H'}"
|
|
71
|
-
B: Runs inbox-poll (blocks)
|
|
72
|
-
|
|
73
|
-
C: Receives B's message
|
|
74
|
-
C: Makes move, broadcasts "ACTION: PLAY, DATA: {card: 'KH'}"
|
|
75
|
-
C: Broadcasts "ACTION: TURN, DATA: {winner: C, next_lead: C}"
|
|
76
|
-
C: Runs inbox-poll (blocks)
|
|
77
|
-
|
|
78
|
-
A: Receives broadcast, continues...
|
|
79
|
-
```
|