agent-relay 1.1.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/README.md +1 -1
- 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/bridge/spawner.d.ts +53 -0
- package/dist/bridge/spawner.js +203 -19
- package/dist/bridge/types.d.ts +12 -0
- package/dist/cli/index.js +618 -5
- package/dist/cloud/api/auth.d.ts +3 -2
- package/dist/cloud/api/auth.js +10 -98
- package/dist/cloud/api/billing.js +30 -9
- package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
- package/dist/cloud/api/cli-pty-runner.js +119 -0
- 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/generic-webhooks.d.ts +8 -0
- package/dist/cloud/api/generic-webhooks.js +129 -0
- package/dist/cloud/api/git.d.ts +8 -0
- package/dist/cloud/api/git.js +152 -0
- package/dist/cloud/api/github-app.d.ts +11 -0
- package/dist/cloud/api/github-app.js +189 -0
- package/dist/cloud/api/middleware/planLimits.d.ts +7 -0
- package/dist/cloud/api/middleware/planLimits.js +39 -1
- package/dist/cloud/api/monitoring.d.ts +11 -0
- package/dist/cloud/api/monitoring.js +578 -0
- package/dist/cloud/api/nango-auth.d.ts +9 -0
- package/dist/cloud/api/nango-auth.js +377 -0
- package/dist/cloud/api/onboarding.d.ts +8 -1
- package/dist/cloud/api/onboarding.js +313 -119
- package/dist/cloud/api/policy.d.ts +8 -0
- package/dist/cloud/api/policy.js +229 -0
- package/dist/cloud/api/providers.js +114 -42
- package/dist/cloud/api/repos.d.ts +1 -0
- package/dist/cloud/api/repos.js +186 -0
- package/dist/cloud/api/test-helpers.d.ts +10 -0
- package/dist/cloud/api/test-helpers.js +575 -0
- package/dist/cloud/api/webhooks.d.ts +8 -0
- package/dist/cloud/api/webhooks.js +645 -0
- package/dist/cloud/api/workspaces.js +320 -12
- package/dist/cloud/billing/plans.js +32 -19
- package/dist/cloud/billing/types.d.ts +9 -3
- package/dist/cloud/config.d.ts +9 -2
- package/dist/cloud/config.js +13 -4
- package/dist/cloud/db/drizzle.d.ts +84 -1
- package/dist/cloud/db/drizzle.js +470 -0
- package/dist/cloud/db/index.d.ts +9 -4
- package/dist/cloud/db/index.js +11 -3
- package/dist/cloud/db/schema.d.ts +3283 -556
- package/dist/cloud/db/schema.js +314 -1
- package/dist/cloud/index.d.ts +1 -0
- package/dist/cloud/index.js +2 -0
- package/dist/cloud/provisioner/index.d.ts +56 -0
- package/dist/cloud/provisioner/index.js +676 -34
- package/dist/cloud/server.d.ts +1 -0
- package/dist/cloud/server.js +362 -13
- package/dist/cloud/services/auto-scaler.d.ts +152 -0
- package/dist/cloud/services/auto-scaler.js +439 -0
- package/dist/cloud/services/capacity-manager.d.ts +148 -0
- package/dist/cloud/services/capacity-manager.js +449 -0
- package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
- package/dist/cloud/services/ci-agent-spawner.js +373 -0
- package/dist/cloud/services/index.d.ts +12 -0
- package/dist/cloud/services/index.js +15 -0
- package/dist/cloud/services/mention-handler.d.ts +65 -0
- package/dist/cloud/services/mention-handler.js +405 -0
- package/dist/cloud/services/nango.d.ts +186 -0
- package/dist/cloud/services/nango.js +344 -0
- package/dist/cloud/services/persistence.d.ts +131 -0
- package/dist/cloud/services/persistence.js +200 -0
- package/dist/cloud/services/planLimits.d.ts +37 -0
- package/dist/cloud/services/planLimits.js +86 -5
- package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
- package/dist/cloud/services/scaling-orchestrator.js +502 -0
- package/dist/cloud/services/scaling-policy.d.ts +121 -0
- package/dist/cloud/services/scaling-policy.js +415 -0
- package/dist/cloud/vault/index.js +1 -1
- package/dist/cloud/webhooks/index.d.ts +24 -0
- package/dist/cloud/webhooks/index.js +29 -0
- package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
- package/dist/cloud/webhooks/parsers/github.js +234 -0
- package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
- package/dist/cloud/webhooks/parsers/index.js +30 -0
- package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/linear.js +258 -0
- package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/slack.js +214 -0
- package/dist/cloud/webhooks/responders/github.d.ts +8 -0
- package/dist/cloud/webhooks/responders/github.js +73 -0
- package/dist/cloud/webhooks/responders/index.d.ts +23 -0
- package/dist/cloud/webhooks/responders/index.js +30 -0
- package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
- package/dist/cloud/webhooks/responders/linear.js +149 -0
- package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
- package/dist/cloud/webhooks/responders/slack.js +178 -0
- package/dist/cloud/webhooks/router.d.ts +25 -0
- package/dist/cloud/webhooks/router.js +504 -0
- package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
- package/dist/cloud/webhooks/rules-engine.js +287 -0
- package/dist/cloud/webhooks/types.d.ts +186 -0
- package/dist/cloud/webhooks/types.js +8 -0
- package/dist/continuity/formatter.d.ts +51 -0
- package/dist/continuity/formatter.js +313 -0
- package/dist/continuity/handoff-store.d.ts +67 -0
- package/dist/continuity/handoff-store.js +472 -0
- package/dist/continuity/index.d.ts +45 -0
- package/dist/continuity/index.js +48 -0
- package/dist/continuity/ledger-store.d.ts +110 -0
- package/dist/continuity/ledger-store.js +500 -0
- package/dist/continuity/manager.d.ts +178 -0
- package/dist/continuity/manager.js +562 -0
- package/dist/continuity/parser.d.ts +76 -0
- package/dist/continuity/parser.js +579 -0
- package/dist/continuity/types.d.ts +180 -0
- package/dist/continuity/types.js +9 -0
- package/dist/daemon/agent-manager.d.ts +27 -0
- package/dist/daemon/agent-manager.js +107 -6
- package/dist/daemon/agent-registry.d.ts +32 -0
- package/dist/daemon/agent-registry.js +42 -2
- package/dist/daemon/api.d.ts +12 -0
- package/dist/daemon/api.js +131 -2
- package/dist/daemon/cli-auth.d.ts +67 -0
- package/dist/daemon/cli-auth.js +537 -0
- package/dist/daemon/cloud-sync.js +9 -7
- package/dist/daemon/orchestrator.js +30 -0
- package/dist/daemon/router.d.ts +5 -0
- package/dist/daemon/router.js +78 -26
- package/dist/daemon/server.d.ts +5 -0
- package/dist/daemon/server.js +9 -1
- package/dist/daemon/services/browser-testing.d.ts +88 -0
- package/dist/daemon/services/browser-testing.js +244 -0
- package/dist/daemon/services/container-spawner.d.ts +135 -0
- package/dist/daemon/services/container-spawner.js +313 -0
- package/dist/daemon/types.d.ts +5 -1
- package/dist/dashboard/out/404.html +1 -1
- package/dist/dashboard/out/_next/static/chunks/116-2502180def231162.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/699-3b1cd6618a45d259.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/724-2dae7627550ab88f.js +9 -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-b6edd4dde8d08194.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-c22d080201cbd9fb.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-67a3e98d9a43a6ed.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/page-77e9c65420a06cfb.js +1 -0
- 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-68d34f50baa8ab6b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
- 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-c2f423b9c9f4591b.js → main-ed4e1fb6f29c34cf.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +1 -0
- package/dist/dashboard/out/_next/static/css/29852f26181969a0.css +1 -0
- 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 -14
- package/dist/dashboard/out/app.txt +2 -2
- 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 -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 +6 -0
- package/dist/dashboard/out/login.txt +7 -0
- 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 -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/server.js +1308 -8
- package/dist/hooks/emitter.d.ts +40 -0
- package/dist/hooks/emitter.js +63 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/registry.d.ts +173 -0
- package/dist/hooks/registry.js +476 -0
- package/dist/hooks/trajectory-hooks.d.ts +52 -0
- package/dist/hooks/trajectory-hooks.js +183 -0
- package/dist/hooks/types.d.ts +141 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/memory/adapters/index.d.ts +8 -0
- package/dist/memory/adapters/index.js +8 -0
- package/dist/memory/adapters/inmemory.d.ts +59 -0
- package/dist/memory/adapters/inmemory.js +195 -0
- package/dist/memory/adapters/supermemory.d.ts +71 -0
- package/dist/memory/adapters/supermemory.js +338 -0
- package/dist/memory/factory.d.ts +48 -0
- package/dist/memory/factory.js +143 -0
- package/dist/memory/index.d.ts +32 -0
- package/dist/memory/index.js +32 -0
- package/dist/memory/memory-hooks.d.ts +60 -0
- package/dist/memory/memory-hooks.js +313 -0
- package/dist/memory/service.d.ts +49 -0
- package/dist/memory/service.js +146 -0
- package/dist/memory/types.d.ts +195 -0
- package/dist/memory/types.js +8 -0
- package/dist/policy/agent-policy.d.ts +225 -0
- package/dist/policy/agent-policy.js +665 -0
- package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
- package/dist/policy/cloud-policy-fetcher.js +64 -0
- package/dist/resiliency/crash-insights.d.ts +156 -0
- package/dist/resiliency/crash-insights.js +492 -0
- package/dist/resiliency/gossip-health.d.ts +137 -0
- package/dist/resiliency/gossip-health.js +241 -0
- package/dist/resiliency/index.d.ts +5 -0
- package/dist/resiliency/index.js +5 -0
- package/dist/resiliency/leader-watchdog.d.ts +109 -0
- package/dist/resiliency/leader-watchdog.js +189 -0
- package/dist/resiliency/memory-monitor.d.ts +172 -0
- package/dist/resiliency/memory-monitor.js +593 -0
- package/dist/resiliency/stateless-lead.d.ts +149 -0
- package/dist/resiliency/stateless-lead.js +308 -0
- package/dist/resiliency/supervisor.d.ts +38 -0
- package/dist/resiliency/supervisor.js +122 -0
- package/dist/shared/cli-auth-config.d.ts +91 -0
- package/dist/shared/cli-auth-config.js +264 -0
- package/dist/storage/adapter.d.ts +1 -1
- package/dist/trajectory/config.d.ts +84 -0
- package/dist/trajectory/config.js +163 -0
- package/dist/trajectory/index.d.ts +8 -0
- package/dist/trajectory/index.js +8 -0
- package/dist/trajectory/integration.d.ts +292 -0
- package/dist/trajectory/integration.js +834 -0
- package/dist/utils/logger.js +1 -1
- package/dist/utils/project-namespace.d.ts +24 -0
- package/dist/utils/project-namespace.js +84 -0
- package/dist/wrapper/parser.d.ts +10 -0
- package/dist/wrapper/parser.js +100 -33
- package/dist/wrapper/pty-wrapper.d.ts +197 -16
- package/dist/wrapper/pty-wrapper.js +943 -106
- package/dist/wrapper/shared.d.ts +165 -0
- package/dist/wrapper/shared.js +270 -0
- package/dist/wrapper/tmux-wrapper.d.ts +73 -11
- package/dist/wrapper/tmux-wrapper.js +541 -120
- package/package.json +16 -16
- package/scripts/postinstall.js +60 -0
- 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/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/middleware/planLimits.d.ts.map +0 -1
- package/dist/cloud/api/middleware/planLimits.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/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/usage.d.ts.map +0 -1
- package/dist/cloud/api/usage.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/coordinator.d.ts.map +0 -1
- package/dist/cloud/services/coordinator.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/vault/index.d.ts.map +0 -1
- package/dist/cloud/vault/index.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/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/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/693-7b3301d8f6bc5014.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/713-f78477eb185f1f4d.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/766-e53e1cfe39b0b5b5.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/900-037c64bfd797fb2a.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/app/page-e3d9e1f4466b9bae.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-e68825a81db67ba1.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/page-cc108bf68c8a657f.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-d80e03a5297f95b6.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-a5acc2831d094776.js +0 -1
- package/dist/dashboard/out/_next/static/css/79b80143647a07d7.css +0 -1
- package/dist/dashboard/out/_next/static/css/8cf277370ad48cfe.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/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/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/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/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/logger.d.ts.map +0 -1
- package/dist/resiliency/logger.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/supervisor.d.ts.map +0 -1
- package/dist/resiliency/supervisor.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/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/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/CHANGELOG.md +0 -11
- package/docs/CLI-SIMPLIFICATION-COMPLETE.md +0 -48
- package/docs/CLOUD-ARCHITECTURE.md +0 -652
- package/docs/CLOUD-ONBOARDING-DESIGN.md +0 -1983
- package/docs/COMPETITIVE_ANALYSIS.md +0 -897
- package/docs/CONTRIBUTING.md +0 -151
- package/docs/DESIGN_BRIDGE_STAFFING.md +0 -878
- package/docs/DESIGN_V2.md +0 -1079
- package/docs/INTEGRATION-GUIDE.md +0 -926
- package/docs/MONETIZATION.md +0 -1679
- package/docs/PROPOSAL-trajectories.md +0 -1582
- package/docs/PROTOCOL.md +0 -325
- package/docs/SCALING_ANALYSIS.md +0 -280
- package/docs/TESTING_PRESENCE_FEATURES.md +0 -327
- package/docs/TMUX_IMPLEMENTATION_NOTES.md +0 -364
- package/docs/TMUX_IMPROVEMENTS.md +0 -968
- package/docs/agent-relay-snippet.md +0 -168
- package/docs/competitive-analysis-mcp-agent-mail.md +0 -389
- package/docs/dashboard-v2-plan.md +0 -179
- package/docs/guides/CLOUD.md +0 -236
- package/docs/guides/LOCAL.md +0 -535
- package/docs/guides/SELF-HOSTED.md +0 -494
- package/docs/proposals/shadow-as-subagent.md +0 -765
- package/docs/proposals/slack-bot-integration.md +0 -1457
- package/docs/removable-code-analysis.md +0 -24
- 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/tictactoe-setup.sh +0 -181
- /package/dist/dashboard/out/_next/static/chunks/{117-b2cd8d6485aacf2b.js → 117-f7b8ab0809342e77.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{648-8f3f26864ce515e5.js → 648-5cc6e1921389a58a.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-0b990dbb71d72a98.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/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_buildManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_ssgManifest.js +0 -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
|
-
```
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# Hearts - 3 Player Autonomous Agent Game
|
|
4
|
-
# Sets up three agents to play Hearts autonomously via file-based inbox
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
set -e
|
|
8
|
-
|
|
9
|
-
GAME_DIR="${GAME_DIR:-/tmp/agent-relay-hearts}"
|
|
10
|
-
PLAYER_1="Alice"
|
|
11
|
-
PLAYER_2="Bob"
|
|
12
|
-
PLAYER_3="Carol"
|
|
13
|
-
|
|
14
|
-
echo "=== Hearts 3-Player Game Setup ==="
|
|
15
|
-
echo "Game directory: $GAME_DIR"
|
|
16
|
-
echo "Players: $PLAYER_1, $PLAYER_2, $PLAYER_3"
|
|
17
|
-
echo ""
|
|
18
|
-
|
|
19
|
-
# Create directories
|
|
20
|
-
mkdir -p "$GAME_DIR/$PLAYER_1"
|
|
21
|
-
mkdir -p "$GAME_DIR/$PLAYER_2"
|
|
22
|
-
mkdir -p "$GAME_DIR/$PLAYER_3"
|
|
23
|
-
|
|
24
|
-
# Clear any existing inbox
|
|
25
|
-
echo "" > "$GAME_DIR/$PLAYER_1/inbox.md"
|
|
26
|
-
echo "" > "$GAME_DIR/$PLAYER_2/inbox.md"
|
|
27
|
-
echo "" > "$GAME_DIR/$PLAYER_3/inbox.md"
|
|
28
|
-
|
|
29
|
-
# Generate and deal cards
|
|
30
|
-
# For 3 players: remove 2 of diamonds, deal 17 cards each
|
|
31
|
-
CARDS="2C 3C 4C 5C 6C 7C 8C 9C TC JC QC KC AC 2H 3H 4H 5H 6H 7H 8H 9H TH JH QH KH AH 2S 3S 4S 5S 6S 7S 8S 9S TS JS QS KS AS 3D 4D 5D 6D 7D 8D 9D TD JD QD KD AD"
|
|
32
|
-
|
|
33
|
-
# Shuffle cards using a simple method
|
|
34
|
-
SHUFFLED=$(echo $CARDS | tr ' ' '\n' | sort -R | tr '\n' ' ')
|
|
35
|
-
CARD_ARRAY=($SHUFFLED)
|
|
36
|
-
|
|
37
|
-
# Deal 17 cards to each player
|
|
38
|
-
HAND_1="${CARD_ARRAY[@]:0:17}"
|
|
39
|
-
HAND_2="${CARD_ARRAY[@]:17:17}"
|
|
40
|
-
HAND_3="${CARD_ARRAY[@]:34:17}"
|
|
41
|
-
|
|
42
|
-
# Create common game rules file
|
|
43
|
-
cat > "$GAME_DIR/GAME_RULES.md" << 'EOF'
|
|
44
|
-
# Hearts - 3 Player Rules
|
|
45
|
-
|
|
46
|
-
## Overview
|
|
47
|
-
Hearts is a trick-taking card game where you try to AVOID points.
|
|
48
|
-
|
|
49
|
-
## Card Values
|
|
50
|
-
- Suits: Clubs (C), Diamonds (D), Spades (S), Hearts (H)
|
|
51
|
-
- Ranks: 2-9, T(10), J, Q, K, A (low to high)
|
|
52
|
-
- Card notation: RankSuit (e.g., 2C = 2 of Clubs, QS = Queen of Spades)
|
|
53
|
-
|
|
54
|
-
## Scoring
|
|
55
|
-
- Each Heart: 1 point
|
|
56
|
-
- Queen of Spades (QS): 13 points
|
|
57
|
-
- **Goal: Get the LOWEST score**
|
|
58
|
-
|
|
59
|
-
## Special Rule: Shooting the Moon
|
|
60
|
-
If you take ALL hearts AND the Queen of Spades in one round:
|
|
61
|
-
- You score 0 points
|
|
62
|
-
- All opponents get 26 points each
|
|
63
|
-
|
|
64
|
-
## Gameplay
|
|
65
|
-
|
|
66
|
-
### 1. Passing Phase
|
|
67
|
-
- Pass 3 cards to the player on your left
|
|
68
|
-
- Round 1: Alice→Bob, Bob→Carol, Carol→Alice
|
|
69
|
-
|
|
70
|
-
### 2. Trick Phase
|
|
71
|
-
- Player with 2 of Clubs (2C) leads first trick
|
|
72
|
-
- Players must follow suit if able
|
|
73
|
-
- If can't follow suit, can play any card
|
|
74
|
-
- Highest card of the led suit wins the trick
|
|
75
|
-
- Winner leads next trick
|
|
76
|
-
|
|
77
|
-
### 3. Hearts Breaking
|
|
78
|
-
- Cannot lead hearts until hearts have been "broken"
|
|
79
|
-
- Hearts break when someone plays a heart (because they can't follow suit)
|
|
80
|
-
|
|
81
|
-
## Turn Order
|
|
82
|
-
Alice → Bob → Carol → Alice → ...
|
|
83
|
-
|
|
84
|
-
## End of Round
|
|
85
|
-
- Round ends when all 17 tricks are played
|
|
86
|
-
- Count points taken
|
|
87
|
-
- Game ends when someone reaches 100 points
|
|
88
|
-
|
|
89
|
-
## Commands
|
|
90
|
-
|
|
91
|
-
**Wait for your turn:**
|
|
92
|
-
```bash
|
|
93
|
-
agent-relay inbox-poll -n YOUR_NAME -d /tmp/agent-relay-hearts --clear
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**Play a card (to next player or broadcast):**
|
|
97
|
-
```bash
|
|
98
|
-
agent-relay inbox-write -t "NEXT_PLAYER" -f YOUR_NAME -m "PLAY: CARD" -d /tmp/agent-relay-hearts
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Broadcast to all:**
|
|
102
|
-
```bash
|
|
103
|
-
agent-relay inbox-write -t "*" -f YOUR_NAME -m "MESSAGE" -d /tmp/agent-relay-hearts
|
|
104
|
-
```
|
|
105
|
-
EOF
|
|
106
|
-
|
|
107
|
-
# Create player-specific instruction files
|
|
108
|
-
create_player_instructions() {
|
|
109
|
-
local PLAYER=$1
|
|
110
|
-
local HAND=$2
|
|
111
|
-
local PREV=$3
|
|
112
|
-
local NEXT=$4
|
|
113
|
-
local IS_FIRST=$5
|
|
114
|
-
|
|
115
|
-
cat > "$GAME_DIR/$PLAYER/INSTRUCTIONS.md" << EOFPLAYER
|
|
116
|
-
# Hearts - You are $PLAYER
|
|
117
|
-
|
|
118
|
-
Read the game rules: \`cat /tmp/agent-relay-hearts/GAME_RULES.md\`
|
|
119
|
-
|
|
120
|
-
## Your Starting Hand (17 cards)
|
|
121
|
-
\`\`\`
|
|
122
|
-
$HAND
|
|
123
|
-
\`\`\`
|
|
124
|
-
|
|
125
|
-
## Players
|
|
126
|
-
- You: **$PLAYER**
|
|
127
|
-
- To your left (you pass TO): **$NEXT**
|
|
128
|
-
- To your right (you receive FROM): **$PREV**
|
|
129
|
-
|
|
130
|
-
## Commands
|
|
131
|
-
|
|
132
|
-
**Wait for messages:**
|
|
133
|
-
\`\`\`bash
|
|
134
|
-
agent-relay inbox-poll -n $PLAYER -d /tmp/agent-relay-hearts --clear
|
|
135
|
-
\`\`\`
|
|
136
|
-
|
|
137
|
-
**Send to next player:**
|
|
138
|
-
\`\`\`bash
|
|
139
|
-
agent-relay inbox-write -t "$NEXT" -f $PLAYER -m "YOUR_MESSAGE" -d /tmp/agent-relay-hearts
|
|
140
|
-
\`\`\`
|
|
141
|
-
|
|
142
|
-
**Broadcast to all:**
|
|
143
|
-
\`\`\`bash
|
|
144
|
-
agent-relay inbox-write -t "*" -f $PLAYER -m "YOUR_MESSAGE" -d /tmp/agent-relay-hearts
|
|
145
|
-
\`\`\`
|
|
146
|
-
|
|
147
|
-
## Game Protocol
|
|
148
|
-
|
|
149
|
-
### Phase 1: Card Passing
|
|
150
|
-
1. Choose 3 cards to pass to $NEXT
|
|
151
|
-
2. Send: \`PASS: card1 card2 card3\`
|
|
152
|
-
3. Wait to receive 3 cards from $PREV
|
|
153
|
-
4. Update your hand (remove passed, add received)
|
|
154
|
-
|
|
155
|
-
### Phase 2: Playing Tricks
|
|
156
|
-
The player with 2C leads the first trick.
|
|
157
|
-
|
|
158
|
-
**When it's your turn to play:**
|
|
159
|
-
1. Look at what's been played in this trick
|
|
160
|
-
2. If you have the led suit, you MUST play it
|
|
161
|
-
3. If you don't have the led suit, play any card
|
|
162
|
-
4. Send: \`PLAY: CARD\` (e.g., \`PLAY: 7H\`)
|
|
163
|
-
5. If you're last in trick, also announce winner and next lead
|
|
164
|
-
|
|
165
|
-
**Message format for playing:**
|
|
166
|
-
- \`PLAY: CARD\` - Your card play
|
|
167
|
-
- \`TRICK_WINNER: PLAYER\` - Who won the trick
|
|
168
|
-
- \`POINTS: {Alice: X, Bob: Y, Carol: Z}\` - Point totals
|
|
169
|
-
|
|
170
|
-
### Tracking State
|
|
171
|
-
Keep track of:
|
|
172
|
-
- Your current hand
|
|
173
|
-
- Cards played this trick
|
|
174
|
-
- Who has played
|
|
175
|
-
- Hearts broken? (true/false)
|
|
176
|
-
- Points taken this round
|
|
177
|
-
|
|
178
|
-
EOFPLAYER
|
|
179
|
-
|
|
180
|
-
if [ "$IS_FIRST" = "true" ]; then
|
|
181
|
-
cat >> "$GAME_DIR/$PLAYER/INSTRUCTIONS.md" << EOFSTART
|
|
182
|
-
|
|
183
|
-
## You Start!
|
|
184
|
-
Since you are $PLAYER, you coordinate the game start:
|
|
185
|
-
|
|
186
|
-
1. **First, wait for all pass cards:**
|
|
187
|
-
\`\`\`bash
|
|
188
|
-
agent-relay inbox-poll -n $PLAYER -d /tmp/agent-relay-hearts --clear
|
|
189
|
-
\`\`\`
|
|
190
|
-
|
|
191
|
-
2. **Send your 3 pass cards to $NEXT:**
|
|
192
|
-
\`\`\`bash
|
|
193
|
-
agent-relay inbox-write -t "$NEXT" -f $PLAYER -m "PASS: [card1] [card2] [card3]" -d /tmp/agent-relay-hearts
|
|
194
|
-
\`\`\`
|
|
195
|
-
|
|
196
|
-
3. **Wait for pass cards from $PREV**
|
|
197
|
-
|
|
198
|
-
4. **After everyone has passed, if you have 2C, lead first trick:**
|
|
199
|
-
\`\`\`bash
|
|
200
|
-
agent-relay inbox-write -t "*" -f $PLAYER -m "TRICK 1 - $PLAYER leads: PLAY: 2C" -d /tmp/agent-relay-hearts
|
|
201
|
-
\`\`\`
|
|
202
|
-
|
|
203
|
-
5. **Wait for responses and continue the game loop**
|
|
204
|
-
|
|
205
|
-
## START NOW
|
|
206
|
-
Begin by choosing 3 cards to pass and sending them to $NEXT!
|
|
207
|
-
EOFSTART
|
|
208
|
-
else
|
|
209
|
-
cat >> "$GAME_DIR/$PLAYER/INSTRUCTIONS.md" << EOFWAIT
|
|
210
|
-
|
|
211
|
-
## Waiting for Game Start
|
|
212
|
-
You will receive the first message when it's time to pass cards.
|
|
213
|
-
|
|
214
|
-
1. **Wait for instruction to pass:**
|
|
215
|
-
\`\`\`bash
|
|
216
|
-
agent-relay inbox-poll -n $PLAYER -d /tmp/agent-relay-hearts --clear
|
|
217
|
-
\`\`\`
|
|
218
|
-
|
|
219
|
-
2. **When prompted, send your 3 pass cards to $NEXT:**
|
|
220
|
-
\`\`\`bash
|
|
221
|
-
agent-relay inbox-write -t "$NEXT" -f $PLAYER -m "PASS: [card1] [card2] [card3]" -d /tmp/agent-relay-hearts
|
|
222
|
-
\`\`\`
|
|
223
|
-
|
|
224
|
-
3. **Continue following the game protocol**
|
|
225
|
-
|
|
226
|
-
## START NOW
|
|
227
|
-
Run the inbox-poll command to wait for the game to begin!
|
|
228
|
-
EOFWAIT
|
|
229
|
-
fi
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
# Create instructions for each player
|
|
233
|
-
create_player_instructions "$PLAYER_1" "$HAND_1" "$PLAYER_3" "$PLAYER_2" "true"
|
|
234
|
-
create_player_instructions "$PLAYER_2" "$HAND_2" "$PLAYER_1" "$PLAYER_3" "false"
|
|
235
|
-
create_player_instructions "$PLAYER_3" "$HAND_3" "$PLAYER_2" "$PLAYER_1" "false"
|
|
236
|
-
|
|
237
|
-
echo "Created game files:"
|
|
238
|
-
echo " - $GAME_DIR/GAME_RULES.md"
|
|
239
|
-
echo " - $GAME_DIR/$PLAYER_1/INSTRUCTIONS.md (Hand: $HAND_1)"
|
|
240
|
-
echo " - $GAME_DIR/$PLAYER_2/INSTRUCTIONS.md (Hand: $HAND_2)"
|
|
241
|
-
echo " - $GAME_DIR/$PLAYER_3/INSTRUCTIONS.md (Hand: $HAND_3)"
|
|
242
|
-
echo ""
|
|
243
|
-
echo "=== TO START THE GAME ==="
|
|
244
|
-
echo ""
|
|
245
|
-
echo "Make sure agent-relay is built:"
|
|
246
|
-
echo " cd $(dirname "$0")/../.."
|
|
247
|
-
echo " npm run build"
|
|
248
|
-
echo ""
|
|
249
|
-
echo "Open THREE terminal windows and run Claude/Codex in each:"
|
|
250
|
-
echo ""
|
|
251
|
-
echo "Terminal 1 ($PLAYER_1 - coordinates start):"
|
|
252
|
-
echo " claude"
|
|
253
|
-
echo " # Say: Read $GAME_DIR/$PLAYER_1/INSTRUCTIONS.md and start the Hearts game"
|
|
254
|
-
echo ""
|
|
255
|
-
echo "Terminal 2 ($PLAYER_2):"
|
|
256
|
-
echo " claude"
|
|
257
|
-
echo " # Say: Read $GAME_DIR/$PLAYER_2/INSTRUCTIONS.md and play Hearts"
|
|
258
|
-
echo ""
|
|
259
|
-
echo "Terminal 3 ($PLAYER_3):"
|
|
260
|
-
echo " claude"
|
|
261
|
-
echo " # Say: Read $GAME_DIR/$PLAYER_3/INSTRUCTIONS.md and play Hearts"
|
|
262
|
-
echo ""
|
|
263
|
-
echo "The three agents will autonomously play Hearts!"
|
|
264
|
-
echo ""
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# Tic-Tac-Toe Autonomous Agent Test
|
|
4
|
-
# Sets up two agents to play tic-tac-toe autonomously via file-based inbox
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
set -e
|
|
8
|
-
|
|
9
|
-
RELAY_DIR="${AGENT_RELAY_DIR:-/tmp/agent-relay-ttt}"
|
|
10
|
-
PLAYER_X="PlayerX"
|
|
11
|
-
PLAYER_O="PlayerO"
|
|
12
|
-
|
|
13
|
-
echo "=== Tic-Tac-Toe Agent Setup ==="
|
|
14
|
-
echo "Relay directory: $RELAY_DIR"
|
|
15
|
-
echo ""
|
|
16
|
-
|
|
17
|
-
# Create directories
|
|
18
|
-
mkdir -p "$RELAY_DIR/$PLAYER_X"
|
|
19
|
-
mkdir -p "$RELAY_DIR/$PLAYER_O"
|
|
20
|
-
|
|
21
|
-
# Clear any existing inbox
|
|
22
|
-
echo "" > "$RELAY_DIR/$PLAYER_X/inbox.md"
|
|
23
|
-
echo "" > "$RELAY_DIR/$PLAYER_O/inbox.md"
|
|
24
|
-
|
|
25
|
-
# Create game instructions for Player X (goes first)
|
|
26
|
-
cat > "$RELAY_DIR/$PLAYER_X/GAME_INSTRUCTIONS.md" << 'EOF'
|
|
27
|
-
# Tic-Tac-Toe Autonomous Game Protocol
|
|
28
|
-
|
|
29
|
-
You are **PlayerX** (X). You play FIRST. Your opponent is **PlayerO** (O).
|
|
30
|
-
|
|
31
|
-
## Board Positions
|
|
32
|
-
```
|
|
33
|
-
1 | 2 | 3
|
|
34
|
-
-----------
|
|
35
|
-
4 | 5 | 6
|
|
36
|
-
-----------
|
|
37
|
-
7 | 8 | 9
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Commands Available
|
|
41
|
-
You have these `agent-relay` commands to communicate:
|
|
42
|
-
|
|
43
|
-
**Wait for opponent's message (blocking):**
|
|
44
|
-
```bash
|
|
45
|
-
agent-relay inbox-poll -n PlayerX -d /tmp/agent-relay-ttt --clear
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
**Send a move to opponent:**
|
|
49
|
-
```bash
|
|
50
|
-
agent-relay inbox-write -t PlayerO -f PlayerX -m "MOVE: X at position N" -d /tmp/agent-relay-ttt
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## PROTOCOL (follow EXACTLY)
|
|
54
|
-
|
|
55
|
-
### Since you're X, you go FIRST:
|
|
56
|
-
1. Make your first move to position 5 (center)
|
|
57
|
-
2. Send it to opponent:
|
|
58
|
-
```bash
|
|
59
|
-
agent-relay inbox-write -t PlayerO -f PlayerX -m "MOVE: X at position 5" -d /tmp/agent-relay-ttt
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Then enter the game loop:
|
|
63
|
-
1. **WAIT** for opponent's response (this will block until they respond):
|
|
64
|
-
```bash
|
|
65
|
-
agent-relay inbox-poll -n PlayerX -d /tmp/agent-relay-ttt --clear
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
2. **UPDATE** your mental board state with opponent's move
|
|
69
|
-
|
|
70
|
-
3. **CHECK** for win/draw. If game over, send result and announce:
|
|
71
|
-
```bash
|
|
72
|
-
agent-relay inbox-write -t PlayerO -f PlayerX -m "GAME OVER: X wins!" -d /tmp/agent-relay-ttt
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
4. **MAKE** your next move and send it:
|
|
76
|
-
```bash
|
|
77
|
-
agent-relay inbox-write -t PlayerO -f PlayerX -m "MOVE: X at position N" -d /tmp/agent-relay-ttt
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
5. **REPEAT** from step 1 until game over
|
|
81
|
-
|
|
82
|
-
## Rules
|
|
83
|
-
- Valid moves: positions 1-9 that are empty
|
|
84
|
-
- Win: 3 in a row (horizontal, vertical, or diagonal)
|
|
85
|
-
- Draw: all 9 positions filled with no winner
|
|
86
|
-
|
|
87
|
-
## CRITICAL
|
|
88
|
-
- NEVER stop mid-game
|
|
89
|
-
- ALWAYS use the inbox-poll command to wait (it blocks until opponent responds)
|
|
90
|
-
- Keep track of the board state
|
|
91
|
-
- Announce result when game ends
|
|
92
|
-
|
|
93
|
-
## START NOW
|
|
94
|
-
Make your FIRST MOVE to position 5, then wait for opponent's response.
|
|
95
|
-
EOF
|
|
96
|
-
|
|
97
|
-
# Create game instructions for Player O (waits for X)
|
|
98
|
-
cat > "$RELAY_DIR/$PLAYER_O/GAME_INSTRUCTIONS.md" << 'EOF'
|
|
99
|
-
# Tic-Tac-Toe Autonomous Game Protocol
|
|
100
|
-
|
|
101
|
-
You are **PlayerO** (O). PlayerX plays first, so you WAIT for their move.
|
|
102
|
-
|
|
103
|
-
## Board Positions
|
|
104
|
-
```
|
|
105
|
-
1 | 2 | 3
|
|
106
|
-
-----------
|
|
107
|
-
4 | 5 | 6
|
|
108
|
-
-----------
|
|
109
|
-
7 | 8 | 9
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Commands Available
|
|
113
|
-
You have these `agent-relay` commands to communicate:
|
|
114
|
-
|
|
115
|
-
**Wait for opponent's message (blocking):**
|
|
116
|
-
```bash
|
|
117
|
-
agent-relay inbox-poll -n PlayerO -d /tmp/agent-relay-ttt --clear
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
**Send a move to opponent:**
|
|
121
|
-
```bash
|
|
122
|
-
agent-relay inbox-write -t PlayerX -f PlayerO -m "MOVE: O at position N" -d /tmp/agent-relay-ttt
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## PROTOCOL (follow EXACTLY)
|
|
126
|
-
|
|
127
|
-
### Since you're O, you go SECOND. Start by waiting:
|
|
128
|
-
1. **WAIT** for opponent's first move (this will block until they move):
|
|
129
|
-
```bash
|
|
130
|
-
agent-relay inbox-poll -n PlayerO -d /tmp/agent-relay-ttt --clear
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
2. **UPDATE** your mental board state with opponent's move
|
|
134
|
-
|
|
135
|
-
3. **CHECK** for win/draw. If game over, announce result.
|
|
136
|
-
|
|
137
|
-
4. **MAKE** your response move and send it:
|
|
138
|
-
```bash
|
|
139
|
-
agent-relay inbox-write -t PlayerX -f PlayerO -m "MOVE: O at position N" -d /tmp/agent-relay-ttt
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
5. **WAIT** for opponent's next move (back to step 1)
|
|
143
|
-
|
|
144
|
-
## Rules
|
|
145
|
-
- Valid moves: positions 1-9 that are empty
|
|
146
|
-
- Win: 3 in a row (horizontal, vertical, or diagonal)
|
|
147
|
-
- Draw: all 9 positions filled with no winner
|
|
148
|
-
|
|
149
|
-
## CRITICAL
|
|
150
|
-
- NEVER stop mid-game
|
|
151
|
-
- ALWAYS use the inbox-poll command to wait (it blocks until opponent responds)
|
|
152
|
-
- Keep track of the board state
|
|
153
|
-
- Announce result when game ends
|
|
154
|
-
|
|
155
|
-
## START NOW
|
|
156
|
-
Run the inbox-poll command to WAIT for PlayerX's first move.
|
|
157
|
-
EOF
|
|
158
|
-
|
|
159
|
-
echo "Created game instructions:"
|
|
160
|
-
echo " - $RELAY_DIR/$PLAYER_X/GAME_INSTRUCTIONS.md"
|
|
161
|
-
echo " - $RELAY_DIR/$PLAYER_O/GAME_INSTRUCTIONS.md"
|
|
162
|
-
echo ""
|
|
163
|
-
echo "=== TO START THE GAME ==="
|
|
164
|
-
echo ""
|
|
165
|
-
echo "Make sure agent-relay is built and in your PATH:"
|
|
166
|
-
echo " cd $(dirname "$0")/.."
|
|
167
|
-
echo " npm run build"
|
|
168
|
-
echo " export PATH=\"\$PATH:\$(pwd)/dist/cli\""
|
|
169
|
-
echo ""
|
|
170
|
-
echo "Open TWO terminal windows and run Claude in each:"
|
|
171
|
-
echo ""
|
|
172
|
-
echo "Terminal 1 (PlayerX - goes first):"
|
|
173
|
-
echo " claude"
|
|
174
|
-
echo " # Then tell Claude: Read $RELAY_DIR/$PLAYER_X/GAME_INSTRUCTIONS.md and start the game"
|
|
175
|
-
echo ""
|
|
176
|
-
echo "Terminal 2 (PlayerO - waits):"
|
|
177
|
-
echo " claude"
|
|
178
|
-
echo " # Then tell Claude: Read $RELAY_DIR/$PLAYER_O/GAME_INSTRUCTIONS.md and start the game"
|
|
179
|
-
echo ""
|
|
180
|
-
echo "Both agents will autonomously play tic-tac-toe!"
|
|
181
|
-
echo ""
|
/package/dist/dashboard/out/_next/static/chunks/{117-b2cd8d6485aacf2b.js → 117-f7b8ab0809342e77.js}
RENAMED
|
File without changes
|
/package/dist/dashboard/out/_next/static/chunks/{648-8f3f26864ce515e5.js → 648-5cc6e1921389a58a.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|