agent-relay 1.0.22 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/bridge/shadow-cli.d.ts +17 -0
- package/dist/bridge/shadow-cli.d.ts.map +1 -0
- package/dist/bridge/shadow-cli.js +75 -0
- package/dist/bridge/shadow-cli.js.map +1 -0
- package/dist/bridge/shadow-config.d.ts +87 -0
- package/dist/bridge/shadow-config.d.ts.map +1 -0
- package/dist/bridge/shadow-config.js +134 -0
- package/dist/bridge/shadow-config.js.map +1 -0
- package/dist/bridge/spawner.d.ts +68 -1
- package/dist/bridge/spawner.d.ts.map +1 -1
- package/dist/bridge/spawner.js +360 -16
- package/dist/bridge/spawner.js.map +1 -1
- package/dist/bridge/types.d.ts +67 -0
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/cli/index.js +1196 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/cloud/api/auth.d.ts +20 -0
- package/dist/cloud/api/auth.d.ts.map +1 -0
- package/dist/cloud/api/auth.js +128 -0
- package/dist/cloud/api/auth.js.map +1 -0
- package/dist/cloud/api/billing.d.ts +17 -0
- package/dist/cloud/api/billing.d.ts.map +1 -0
- package/dist/cloud/api/billing.js +353 -0
- package/dist/cloud/api/billing.js.map +1 -0
- package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
- package/dist/cloud/api/cli-pty-runner.d.ts.map +1 -0
- package/dist/cloud/api/cli-pty-runner.js +119 -0
- package/dist/cloud/api/cli-pty-runner.js.map +1 -0
- package/dist/cloud/api/coordinators.d.ts +8 -0
- package/dist/cloud/api/coordinators.d.ts.map +1 -0
- package/dist/cloud/api/coordinators.js +347 -0
- package/dist/cloud/api/coordinators.js.map +1 -0
- package/dist/cloud/api/daemons.d.ts +12 -0
- package/dist/cloud/api/daemons.d.ts.map +1 -0
- package/dist/cloud/api/daemons.js +320 -0
- package/dist/cloud/api/daemons.js.map +1 -0
- package/dist/cloud/api/generic-webhooks.d.ts +8 -0
- package/dist/cloud/api/generic-webhooks.d.ts.map +1 -0
- package/dist/cloud/api/generic-webhooks.js +129 -0
- package/dist/cloud/api/generic-webhooks.js.map +1 -0
- package/dist/cloud/api/git.d.ts +8 -0
- package/dist/cloud/api/git.d.ts.map +1 -0
- package/dist/cloud/api/git.js +131 -0
- package/dist/cloud/api/git.js.map +1 -0
- package/dist/cloud/api/github-app.d.ts +11 -0
- package/dist/cloud/api/github-app.d.ts.map +1 -0
- package/dist/cloud/api/github-app.js +189 -0
- package/dist/cloud/api/github-app.js.map +1 -0
- package/dist/cloud/api/middleware/planLimits.d.ts +43 -0
- package/dist/cloud/api/middleware/planLimits.d.ts.map +1 -0
- package/dist/cloud/api/middleware/planLimits.js +202 -0
- package/dist/cloud/api/middleware/planLimits.js.map +1 -0
- package/dist/cloud/api/monitoring.d.ts +11 -0
- package/dist/cloud/api/monitoring.d.ts.map +1 -0
- package/dist/cloud/api/monitoring.js +578 -0
- package/dist/cloud/api/monitoring.js.map +1 -0
- package/dist/cloud/api/nango-auth.d.ts +9 -0
- package/dist/cloud/api/nango-auth.d.ts.map +1 -0
- package/dist/cloud/api/nango-auth.js +377 -0
- package/dist/cloud/api/nango-auth.js.map +1 -0
- package/dist/cloud/api/onboarding.d.ts +15 -0
- package/dist/cloud/api/onboarding.d.ts.map +1 -0
- package/dist/cloud/api/onboarding.js +588 -0
- package/dist/cloud/api/onboarding.js.map +1 -0
- package/dist/cloud/api/policy.d.ts +8 -0
- package/dist/cloud/api/policy.d.ts.map +1 -0
- package/dist/cloud/api/policy.js +229 -0
- package/dist/cloud/api/policy.js.map +1 -0
- package/dist/cloud/api/providers.d.ts +7 -0
- package/dist/cloud/api/providers.d.ts.map +1 -0
- package/dist/cloud/api/providers.js +507 -0
- package/dist/cloud/api/providers.js.map +1 -0
- package/dist/cloud/api/repos.d.ts +7 -0
- package/dist/cloud/api/repos.d.ts.map +1 -0
- package/dist/cloud/api/repos.js +314 -0
- package/dist/cloud/api/repos.js.map +1 -0
- package/dist/cloud/api/teams.d.ts +7 -0
- package/dist/cloud/api/teams.d.ts.map +1 -0
- package/dist/cloud/api/teams.js +279 -0
- package/dist/cloud/api/teams.js.map +1 -0
- package/dist/cloud/api/test-helpers.d.ts +10 -0
- package/dist/cloud/api/test-helpers.d.ts.map +1 -0
- package/dist/cloud/api/test-helpers.js +575 -0
- package/dist/cloud/api/test-helpers.js.map +1 -0
- package/dist/cloud/api/usage.d.ts +7 -0
- package/dist/cloud/api/usage.d.ts.map +1 -0
- package/dist/cloud/api/usage.js +98 -0
- package/dist/cloud/api/usage.js.map +1 -0
- package/dist/cloud/api/webhooks.d.ts +7 -0
- package/dist/cloud/api/webhooks.d.ts.map +1 -0
- package/dist/cloud/api/webhooks.js +496 -0
- package/dist/cloud/api/webhooks.js.map +1 -0
- package/dist/cloud/api/workspaces.d.ts +7 -0
- package/dist/cloud/api/workspaces.d.ts.map +1 -0
- package/dist/cloud/api/workspaces.js +727 -0
- package/dist/cloud/api/workspaces.js.map +1 -0
- package/dist/cloud/billing/index.d.ts +9 -0
- package/dist/cloud/billing/index.d.ts.map +1 -0
- package/dist/cloud/billing/index.js +9 -0
- package/dist/cloud/billing/index.js.map +1 -0
- package/dist/cloud/billing/plans.d.ts +39 -0
- package/dist/cloud/billing/plans.d.ts.map +1 -0
- package/dist/cloud/billing/plans.js +245 -0
- package/dist/cloud/billing/plans.js.map +1 -0
- package/dist/cloud/billing/service.d.ts +80 -0
- package/dist/cloud/billing/service.d.ts.map +1 -0
- package/dist/cloud/billing/service.js +388 -0
- package/dist/cloud/billing/service.js.map +1 -0
- package/dist/cloud/billing/types.d.ts +141 -0
- package/dist/cloud/billing/types.d.ts.map +1 -0
- package/dist/cloud/billing/types.js +7 -0
- package/dist/cloud/billing/types.js.map +1 -0
- package/dist/cloud/config.d.ts +66 -0
- package/dist/cloud/config.d.ts.map +1 -0
- package/dist/cloud/config.js +92 -0
- package/dist/cloud/config.js.map +1 -0
- package/dist/cloud/db/drizzle.d.ts +215 -0
- package/dist/cloud/db/drizzle.d.ts.map +1 -0
- package/dist/cloud/db/drizzle.js +1083 -0
- package/dist/cloud/db/drizzle.js.map +1 -0
- package/dist/cloud/db/index.d.ts +35 -0
- package/dist/cloud/db/index.d.ts.map +1 -0
- package/dist/cloud/db/index.js +52 -0
- package/dist/cloud/db/index.js.map +1 -0
- package/dist/cloud/db/schema.d.ts +4519 -0
- package/dist/cloud/db/schema.d.ts.map +1 -0
- package/dist/cloud/db/schema.js +547 -0
- package/dist/cloud/db/schema.js.map +1 -0
- package/dist/cloud/index.d.ts +12 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +39 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/provisioner/index.d.ts +75 -0
- package/dist/cloud/provisioner/index.d.ts.map +1 -0
- package/dist/cloud/provisioner/index.js +977 -0
- package/dist/cloud/provisioner/index.js.map +1 -0
- package/dist/cloud/server.d.ts +17 -0
- package/dist/cloud/server.d.ts.map +1 -0
- package/dist/cloud/server.js +534 -0
- package/dist/cloud/server.js.map +1 -0
- package/dist/cloud/services/auto-scaler.d.ts +152 -0
- package/dist/cloud/services/auto-scaler.d.ts.map +1 -0
- package/dist/cloud/services/auto-scaler.js +439 -0
- package/dist/cloud/services/auto-scaler.js.map +1 -0
- package/dist/cloud/services/capacity-manager.d.ts +148 -0
- package/dist/cloud/services/capacity-manager.d.ts.map +1 -0
- package/dist/cloud/services/capacity-manager.js +449 -0
- package/dist/cloud/services/capacity-manager.js.map +1 -0
- package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
- package/dist/cloud/services/ci-agent-spawner.d.ts.map +1 -0
- package/dist/cloud/services/ci-agent-spawner.js +373 -0
- package/dist/cloud/services/ci-agent-spawner.js.map +1 -0
- package/dist/cloud/services/coordinator.d.ts +62 -0
- package/dist/cloud/services/coordinator.d.ts.map +1 -0
- package/dist/cloud/services/coordinator.js +389 -0
- package/dist/cloud/services/coordinator.js.map +1 -0
- package/dist/cloud/services/index.d.ts +12 -0
- package/dist/cloud/services/index.d.ts.map +1 -0
- package/dist/cloud/services/index.js +15 -0
- package/dist/cloud/services/index.js.map +1 -0
- package/dist/cloud/services/mention-handler.d.ts +65 -0
- package/dist/cloud/services/mention-handler.d.ts.map +1 -0
- package/dist/cloud/services/mention-handler.js +405 -0
- package/dist/cloud/services/mention-handler.js.map +1 -0
- package/dist/cloud/services/nango.d.ts +126 -0
- package/dist/cloud/services/nango.d.ts.map +1 -0
- package/dist/cloud/services/nango.js +191 -0
- package/dist/cloud/services/nango.js.map +1 -0
- package/dist/cloud/services/persistence.d.ts +131 -0
- package/dist/cloud/services/persistence.d.ts.map +1 -0
- package/dist/cloud/services/persistence.js +200 -0
- package/dist/cloud/services/persistence.js.map +1 -0
- package/dist/cloud/services/planLimits.d.ts +125 -0
- package/dist/cloud/services/planLimits.d.ts.map +1 -0
- package/dist/cloud/services/planLimits.js +282 -0
- package/dist/cloud/services/planLimits.js.map +1 -0
- package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
- package/dist/cloud/services/scaling-orchestrator.d.ts.map +1 -0
- package/dist/cloud/services/scaling-orchestrator.js +502 -0
- package/dist/cloud/services/scaling-orchestrator.js.map +1 -0
- package/dist/cloud/services/scaling-policy.d.ts +121 -0
- package/dist/cloud/services/scaling-policy.d.ts.map +1 -0
- package/dist/cloud/services/scaling-policy.js +415 -0
- package/dist/cloud/services/scaling-policy.js.map +1 -0
- package/dist/cloud/vault/index.d.ts +76 -0
- package/dist/cloud/vault/index.d.ts.map +1 -0
- package/dist/cloud/vault/index.js +219 -0
- package/dist/cloud/vault/index.js.map +1 -0
- package/dist/cloud/webhooks/index.d.ts +24 -0
- package/dist/cloud/webhooks/index.d.ts.map +1 -0
- package/dist/cloud/webhooks/index.js +29 -0
- package/dist/cloud/webhooks/index.js.map +1 -0
- package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
- package/dist/cloud/webhooks/parsers/github.d.ts.map +1 -0
- package/dist/cloud/webhooks/parsers/github.js +234 -0
- package/dist/cloud/webhooks/parsers/github.js.map +1 -0
- package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
- package/dist/cloud/webhooks/parsers/index.d.ts.map +1 -0
- package/dist/cloud/webhooks/parsers/index.js +30 -0
- package/dist/cloud/webhooks/parsers/index.js.map +1 -0
- package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/linear.d.ts.map +1 -0
- package/dist/cloud/webhooks/parsers/linear.js +258 -0
- package/dist/cloud/webhooks/parsers/linear.js.map +1 -0
- package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/slack.d.ts.map +1 -0
- package/dist/cloud/webhooks/parsers/slack.js +214 -0
- package/dist/cloud/webhooks/parsers/slack.js.map +1 -0
- package/dist/cloud/webhooks/responders/github.d.ts +8 -0
- package/dist/cloud/webhooks/responders/github.d.ts.map +1 -0
- package/dist/cloud/webhooks/responders/github.js +73 -0
- package/dist/cloud/webhooks/responders/github.js.map +1 -0
- package/dist/cloud/webhooks/responders/index.d.ts +23 -0
- package/dist/cloud/webhooks/responders/index.d.ts.map +1 -0
- package/dist/cloud/webhooks/responders/index.js +30 -0
- package/dist/cloud/webhooks/responders/index.js.map +1 -0
- package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
- package/dist/cloud/webhooks/responders/linear.d.ts.map +1 -0
- package/dist/cloud/webhooks/responders/linear.js +149 -0
- package/dist/cloud/webhooks/responders/linear.js.map +1 -0
- package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
- package/dist/cloud/webhooks/responders/slack.d.ts.map +1 -0
- package/dist/cloud/webhooks/responders/slack.js +178 -0
- package/dist/cloud/webhooks/responders/slack.js.map +1 -0
- package/dist/cloud/webhooks/router.d.ts +25 -0
- package/dist/cloud/webhooks/router.d.ts.map +1 -0
- package/dist/cloud/webhooks/router.js +504 -0
- package/dist/cloud/webhooks/router.js.map +1 -0
- package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
- package/dist/cloud/webhooks/rules-engine.d.ts.map +1 -0
- package/dist/cloud/webhooks/rules-engine.js +287 -0
- package/dist/cloud/webhooks/rules-engine.js.map +1 -0
- package/dist/cloud/webhooks/types.d.ts +186 -0
- package/dist/cloud/webhooks/types.d.ts.map +1 -0
- package/dist/cloud/webhooks/types.js +8 -0
- package/dist/cloud/webhooks/types.js.map +1 -0
- package/dist/continuity/formatter.d.ts +51 -0
- package/dist/continuity/formatter.d.ts.map +1 -0
- package/dist/continuity/formatter.js +313 -0
- package/dist/continuity/formatter.js.map +1 -0
- package/dist/continuity/handoff-store.d.ts +67 -0
- package/dist/continuity/handoff-store.d.ts.map +1 -0
- package/dist/continuity/handoff-store.js +472 -0
- package/dist/continuity/handoff-store.js.map +1 -0
- package/dist/continuity/index.d.ts +45 -0
- package/dist/continuity/index.d.ts.map +1 -0
- package/dist/continuity/index.js +48 -0
- package/dist/continuity/index.js.map +1 -0
- package/dist/continuity/ledger-store.d.ts +110 -0
- package/dist/continuity/ledger-store.d.ts.map +1 -0
- package/dist/continuity/ledger-store.js +500 -0
- package/dist/continuity/ledger-store.js.map +1 -0
- package/dist/continuity/manager.d.ts +178 -0
- package/dist/continuity/manager.d.ts.map +1 -0
- package/dist/continuity/manager.js +562 -0
- package/dist/continuity/manager.js.map +1 -0
- package/dist/continuity/parser.d.ts +76 -0
- package/dist/continuity/parser.d.ts.map +1 -0
- package/dist/continuity/parser.js +579 -0
- package/dist/continuity/parser.js.map +1 -0
- package/dist/continuity/types.d.ts +180 -0
- package/dist/continuity/types.d.ts.map +1 -0
- package/dist/continuity/types.js +9 -0
- package/dist/continuity/types.js.map +1 -0
- package/dist/daemon/agent-manager.d.ts +114 -0
- package/dist/daemon/agent-manager.d.ts.map +1 -0
- package/dist/daemon/agent-manager.js +513 -0
- package/dist/daemon/agent-manager.js.map +1 -0
- package/dist/daemon/agent-registry.d.ts +34 -0
- package/dist/daemon/agent-registry.d.ts.map +1 -1
- package/dist/daemon/agent-registry.js +45 -2
- package/dist/daemon/agent-registry.js.map +1 -1
- package/dist/daemon/api.d.ts +81 -0
- package/dist/daemon/api.d.ts.map +1 -0
- package/dist/daemon/api.js +554 -0
- package/dist/daemon/api.js.map +1 -0
- package/dist/daemon/cli-auth.d.ts +67 -0
- package/dist/daemon/cli-auth.d.ts.map +1 -0
- package/dist/daemon/cli-auth.js +537 -0
- package/dist/daemon/cli-auth.js.map +1 -0
- package/dist/daemon/cloud-sync.d.ts +101 -0
- package/dist/daemon/cloud-sync.d.ts.map +1 -0
- package/dist/daemon/cloud-sync.js +263 -0
- package/dist/daemon/cloud-sync.js.map +1 -0
- package/dist/daemon/index.d.ts +4 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +6 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/orchestrator.d.ts +155 -0
- package/dist/daemon/orchestrator.d.ts.map +1 -0
- package/dist/daemon/orchestrator.js +766 -0
- package/dist/daemon/orchestrator.js.map +1 -0
- package/dist/daemon/router.d.ts +29 -0
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js +143 -21
- package/dist/daemon/router.js.map +1 -1
- package/dist/daemon/server.d.ts +42 -0
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +199 -16
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/services/browser-testing.d.ts +88 -0
- package/dist/daemon/services/browser-testing.d.ts.map +1 -0
- package/dist/daemon/services/browser-testing.js +244 -0
- package/dist/daemon/services/browser-testing.js.map +1 -0
- package/dist/daemon/services/container-spawner.d.ts +135 -0
- package/dist/daemon/services/container-spawner.d.ts.map +1 -0
- package/dist/daemon/services/container-spawner.js +313 -0
- package/dist/daemon/services/container-spawner.js.map +1 -0
- package/dist/daemon/types.d.ts +131 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +6 -0
- package/dist/daemon/types.js.map +1 -0
- package/dist/daemon/workspace-manager.d.ts +75 -0
- package/dist/daemon/workspace-manager.d.ts.map +1 -0
- package/dist/daemon/workspace-manager.js +289 -0
- package/dist/daemon/workspace-manager.js.map +1 -0
- 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/480-2d4111711d4e473c.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/724-73c1ee5f60abe860.js +9 -0
- package/dist/dashboard/out/_next/static/chunks/766-c3a14283c88d815b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/page-7120be68bea622f3.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-dc2e3a1a22478efc.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/history/page-56a8b4616a90dc43.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/login/page-3eac37ea6f5dd153.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-1081dd190a331a91.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/page-daf87e86f783f980.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-4d72d5a5d8a9b618.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/providers/page-b68a681526eb145e.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/signup/page-fee4ed1709070bcd.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
- package/dist/dashboard/out/_next/static/chunks/{main-e0a1f53fe0617a63.js → main-97850e03d723ea8c.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/main-app-5d692157a8eb1fd9.js +1 -0
- 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/411ce23ffeae9f76.css +1 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-128.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-256.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-32.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-512.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-64.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo.svg +45 -0
- package/dist/dashboard/out/alt-logos/logo.svg +38 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-128.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-256.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-32.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-512.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-64.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo.svg +38 -0
- package/dist/dashboard/out/app.html +1 -0
- package/dist/dashboard/out/app.txt +7 -0
- package/dist/dashboard/out/connect-repos.html +1 -0
- package/dist/dashboard/out/connect-repos.txt +7 -0
- package/dist/dashboard/out/history.html +1 -0
- package/dist/dashboard/out/history.txt +7 -0
- package/dist/dashboard/out/index.html +1 -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 -515
- package/dist/dashboard/out/metrics.txt +2 -2
- package/dist/dashboard/out/pricing.html +13 -0
- package/dist/dashboard/out/pricing.txt +7 -0
- package/dist/dashboard/out/providers.html +1 -0
- package/dist/dashboard/out/providers.txt +7 -0
- package/dist/dashboard/out/signup.html +6 -0
- package/dist/dashboard/out/signup.txt +7 -0
- package/dist/dashboard-server/metrics.d.ts.map +1 -1
- package/dist/dashboard-server/metrics.js +3 -2
- package/dist/dashboard-server/metrics.js.map +1 -1
- package/dist/dashboard-server/server.d.ts.map +1 -1
- package/dist/dashboard-server/server.js +2653 -130
- package/dist/dashboard-server/server.js.map +1 -1
- package/dist/hooks/emitter.d.ts +40 -0
- package/dist/hooks/emitter.d.ts.map +1 -0
- package/dist/hooks/emitter.js +63 -0
- package/dist/hooks/emitter.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/registry.d.ts +173 -0
- package/dist/hooks/registry.d.ts.map +1 -0
- package/dist/hooks/registry.js +476 -0
- package/dist/hooks/registry.js.map +1 -0
- package/dist/hooks/trajectory-hooks.d.ts +52 -0
- package/dist/hooks/trajectory-hooks.d.ts.map +1 -0
- package/dist/hooks/trajectory-hooks.js +183 -0
- package/dist/hooks/trajectory-hooks.js.map +1 -0
- package/dist/hooks/types.d.ts +141 -0
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/adapters/index.d.ts +8 -0
- package/dist/memory/adapters/index.d.ts.map +1 -0
- package/dist/memory/adapters/index.js +8 -0
- package/dist/memory/adapters/index.js.map +1 -0
- package/dist/memory/adapters/inmemory.d.ts +59 -0
- package/dist/memory/adapters/inmemory.d.ts.map +1 -0
- package/dist/memory/adapters/inmemory.js +195 -0
- package/dist/memory/adapters/inmemory.js.map +1 -0
- package/dist/memory/adapters/supermemory.d.ts +71 -0
- package/dist/memory/adapters/supermemory.d.ts.map +1 -0
- package/dist/memory/adapters/supermemory.js +338 -0
- package/dist/memory/adapters/supermemory.js.map +1 -0
- package/dist/memory/factory.d.ts +48 -0
- package/dist/memory/factory.d.ts.map +1 -0
- package/dist/memory/factory.js +143 -0
- package/dist/memory/factory.js.map +1 -0
- package/dist/memory/index.d.ts +32 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +32 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-hooks.d.ts +60 -0
- package/dist/memory/memory-hooks.d.ts.map +1 -0
- package/dist/memory/memory-hooks.js +313 -0
- package/dist/memory/memory-hooks.js.map +1 -0
- package/dist/memory/service.d.ts +49 -0
- package/dist/memory/service.d.ts.map +1 -0
- package/dist/memory/service.js +146 -0
- package/dist/memory/service.js.map +1 -0
- package/dist/memory/types.d.ts +195 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +8 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/policy/agent-policy.d.ts +225 -0
- package/dist/policy/agent-policy.d.ts.map +1 -0
- package/dist/policy/agent-policy.js +665 -0
- package/dist/policy/agent-policy.js.map +1 -0
- package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
- package/dist/policy/cloud-policy-fetcher.d.ts.map +1 -0
- package/dist/policy/cloud-policy-fetcher.js +64 -0
- package/dist/policy/cloud-policy-fetcher.js.map +1 -0
- package/dist/protocol/types.d.ts +10 -1
- package/dist/protocol/types.d.ts.map +1 -1
- package/dist/resiliency/context-persistence.d.ts +140 -0
- package/dist/resiliency/context-persistence.d.ts.map +1 -0
- package/dist/resiliency/context-persistence.js +397 -0
- package/dist/resiliency/context-persistence.js.map +1 -0
- package/dist/resiliency/crash-insights.d.ts +156 -0
- package/dist/resiliency/crash-insights.d.ts.map +1 -0
- package/dist/resiliency/crash-insights.js +492 -0
- package/dist/resiliency/crash-insights.js.map +1 -0
- package/dist/resiliency/gossip-health.d.ts +137 -0
- package/dist/resiliency/gossip-health.d.ts.map +1 -0
- package/dist/resiliency/gossip-health.js +241 -0
- package/dist/resiliency/gossip-health.js.map +1 -0
- package/dist/resiliency/health-monitor.d.ts +97 -0
- package/dist/resiliency/health-monitor.d.ts.map +1 -0
- package/dist/resiliency/health-monitor.js +291 -0
- package/dist/resiliency/health-monitor.js.map +1 -0
- package/dist/resiliency/index.d.ts +68 -0
- package/dist/resiliency/index.d.ts.map +1 -0
- package/dist/resiliency/index.js +68 -0
- package/dist/resiliency/index.js.map +1 -0
- package/dist/resiliency/leader-watchdog.d.ts +109 -0
- package/dist/resiliency/leader-watchdog.d.ts.map +1 -0
- package/dist/resiliency/leader-watchdog.js +189 -0
- package/dist/resiliency/leader-watchdog.js.map +1 -0
- package/dist/resiliency/logger.d.ts +114 -0
- package/dist/resiliency/logger.d.ts.map +1 -0
- package/dist/resiliency/logger.js +250 -0
- package/dist/resiliency/logger.js.map +1 -0
- package/dist/resiliency/memory-monitor.d.ts +172 -0
- package/dist/resiliency/memory-monitor.d.ts.map +1 -0
- package/dist/resiliency/memory-monitor.js +593 -0
- package/dist/resiliency/memory-monitor.js.map +1 -0
- package/dist/resiliency/metrics.d.ts +115 -0
- package/dist/resiliency/metrics.d.ts.map +1 -0
- package/dist/resiliency/metrics.js +239 -0
- package/dist/resiliency/metrics.js.map +1 -0
- package/dist/resiliency/provider-context.d.ts +100 -0
- package/dist/resiliency/provider-context.d.ts.map +1 -0
- package/dist/resiliency/provider-context.js +360 -0
- package/dist/resiliency/provider-context.js.map +1 -0
- package/dist/resiliency/stateless-lead.d.ts +149 -0
- package/dist/resiliency/stateless-lead.d.ts.map +1 -0
- package/dist/resiliency/stateless-lead.js +308 -0
- package/dist/resiliency/stateless-lead.js.map +1 -0
- package/dist/resiliency/supervisor.d.ts +147 -0
- package/dist/resiliency/supervisor.d.ts.map +1 -0
- package/dist/resiliency/supervisor.js +459 -0
- package/dist/resiliency/supervisor.js.map +1 -0
- package/dist/shared/cli-auth-config.d.ts +91 -0
- package/dist/shared/cli-auth-config.d.ts.map +1 -0
- package/dist/shared/cli-auth-config.js +264 -0
- package/dist/shared/cli-auth-config.js.map +1 -0
- package/dist/storage/adapter.d.ts +3 -1
- package/dist/storage/adapter.d.ts.map +1 -1
- package/dist/storage/adapter.js +12 -2
- package/dist/storage/adapter.js.map +1 -1
- package/dist/storage/sqlite-adapter.d.ts.map +1 -1
- package/dist/storage/sqlite-adapter.js +18 -14
- package/dist/storage/sqlite-adapter.js.map +1 -1
- package/dist/trajectory/config.d.ts +84 -0
- package/dist/trajectory/config.d.ts.map +1 -0
- package/dist/trajectory/config.js +163 -0
- package/dist/trajectory/config.js.map +1 -0
- package/dist/trajectory/index.d.ts +8 -0
- package/dist/trajectory/index.d.ts.map +1 -0
- package/dist/trajectory/index.js +8 -0
- package/dist/trajectory/index.js.map +1 -0
- package/dist/trajectory/integration.d.ts +292 -0
- package/dist/trajectory/integration.d.ts.map +1 -0
- package/dist/trajectory/integration.js +834 -0
- package/dist/trajectory/integration.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +40 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +84 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/project-namespace.d.ts +24 -0
- package/dist/utils/project-namespace.d.ts.map +1 -1
- package/dist/utils/project-namespace.js +84 -0
- package/dist/utils/project-namespace.js.map +1 -1
- package/dist/wrapper/client.d.ts +16 -1
- package/dist/wrapper/client.d.ts.map +1 -1
- package/dist/wrapper/client.js +32 -1
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/parser.d.ts +13 -0
- package/dist/wrapper/parser.d.ts.map +1 -1
- package/dist/wrapper/parser.js +217 -47
- package/dist/wrapper/parser.js.map +1 -1
- package/dist/wrapper/pty-wrapper.d.ts +219 -17
- package/dist/wrapper/pty-wrapper.d.ts.map +1 -1
- package/dist/wrapper/pty-wrapper.js +1050 -104
- package/dist/wrapper/pty-wrapper.js.map +1 -1
- package/dist/wrapper/shared.d.ts +165 -0
- package/dist/wrapper/shared.d.ts.map +1 -0
- package/dist/wrapper/shared.js +270 -0
- package/dist/wrapper/shared.js.map +1 -0
- package/dist/wrapper/tmux-wrapper.d.ts +78 -11
- package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
- package/dist/wrapper/tmux-wrapper.js +567 -106
- package/dist/wrapper/tmux-wrapper.js.map +1 -1
- package/docs/CLOUD-ARCHITECTURE.md +804 -0
- package/docs/CLOUD-ONBOARDING-DESIGN.md +1983 -0
- package/docs/HOOKS_API.md +394 -0
- package/docs/WRAPPER_EVENTS.md +358 -0
- package/docs/agent-policy-snippet.md +40 -0
- package/docs/agent-relay-protocol.md +238 -0
- package/docs/agent-relay-snippet.md +115 -6
- package/docs/archive/EXECUTIVE_SUMMARY.md +358 -0
- package/docs/archive/ROADMAP.md +329 -0
- package/docs/archive/TESTING_PRESENCE_FEATURES.md +327 -0
- package/docs/competitive/GASTOWN.md +451 -0
- package/docs/{COMPETITIVE_ANALYSIS.md → competitive/OVERVIEW.md} +1 -0
- package/docs/competitive/README.md +34 -0
- package/docs/competitive/TMUX_ORCHESTRATOR.md +605 -0
- package/docs/dashboard.png +0 -0
- package/docs/design/ci-failure-webhooks.md +812 -0
- package/docs/design/comprehensive-integrations.md +238 -0
- package/docs/design/e2b-sandbox-integration.md +504 -0
- package/docs/design/github-app-permissions.md +264 -0
- package/docs/guides/CLOUD.md +236 -0
- package/docs/guides/LOCAL.md +535 -0
- package/docs/guides/SELF-HOSTED.md +494 -0
- package/docs/local-testing.md +428 -0
- package/docs/proposals/continuous-claude-integration.md +622 -0
- package/docs/proposals/custom-commands.md +368 -0
- package/docs/proposals/shadow-as-subagent.md +765 -0
- package/docs/proposals/slack-bot-integration.md +1457 -0
- package/docs/tasks/global-skills-system.tasks.md +230 -0
- package/docs/tasks/webhook-integrations.tasks.md +184 -0
- package/docs/tasks/workspace-capabilities.tasks.md +121 -0
- package/docs/testing/RESILIENCY-TEST-PLAN-2026-01-01.md +366 -0
- package/package.json +45 -7
- package/scripts/cloud-setup.sh +96 -0
- package/scripts/manual-qa.sh +293 -0
- package/scripts/postinstall.js +60 -0
- package/scripts/run-cloud-qa.sh +220 -0
- package/scripts/test-cli-auth/Dockerfile +44 -0
- package/scripts/test-cli-auth/Dockerfile.real +79 -0
- package/scripts/test-cli-auth/README.md +286 -0
- package/scripts/test-cli-auth/ci-test-real-clis.ts +251 -0
- package/scripts/test-cli-auth/ci-test-runner.ts +263 -0
- package/scripts/test-cli-auth/mock-cli.sh +147 -0
- package/scripts/test-cli-auth/package.json +14 -0
- package/scripts/test-cli-auth/test-oauth-flow.ts +220 -0
- package/scripts/test-pty-input-auto.js +222 -0
- package/scripts/test-pty-input.js +150 -0
- package/dist/dashboard/out/_next/static/chunks/app/layout-c9d8c5d95e48c6bf.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-8aa9936bc6c771ab.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/page-4498be09a5157759.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/main-app-bae2e535de00de50.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-c81f7fd28659d64f.js +0 -1
- package/dist/dashboard/out/_next/static/css/50ed6996e3df7bdd.css +0 -1
- /package/dist/dashboard/out/_next/static/{DXFA-jj8wb3PcY5DX2xcU → H5aWG0udPB4iOUIl_gytz}/_buildManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/{DXFA-jj8wb3PcY5DX2xcU → H5aWG0udPB4iOUIl_gytz}/_ssgManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{117-3bef7b19f3e60751.js → 117-b100311aff8d5c61.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{648-6cf686106c891ad3.js → 648-a13d3c2b1be45466.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-8ff6572bc7c9bc61.js → page-a4973f3e3c82fb67.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-26bd8d656b496dba.js → fd9d1056-bf46c09eb57e019c.js} +0 -0
- /package/docs/{CHANGELOG.md → archive/CHANGELOG.md} +0 -0
- /package/docs/{CLI-SIMPLIFICATION-COMPLETE.md → archive/CLI-SIMPLIFICATION-COMPLETE.md} +0 -0
- /package/docs/{DESIGN_BRIDGE_STAFFING.md → archive/DESIGN_BRIDGE_STAFFING.md} +0 -0
- /package/docs/{DESIGN_V2.md → archive/DESIGN_V2.md} +0 -0
- /package/docs/{MONETIZATION.md → archive/MONETIZATION.md} +0 -0
- /package/docs/{PROPOSAL-trajectories.md → archive/PROPOSAL-trajectories.md} +0 -0
- /package/docs/{SCALING_ANALYSIS.md → archive/SCALING_ANALYSIS.md} +0 -0
- /package/docs/{TMUX_IMPLEMENTATION_NOTES.md → archive/TMUX_IMPLEMENTATION_NOTES.md} +0 -0
- /package/docs/{TMUX_IMPROVEMENTS.md → archive/TMUX_IMPROVEMENTS.md} +0 -0
- /package/docs/{dashboard-v2-plan.md → archive/dashboard-v2-plan.md} +0 -0
- /package/docs/{removable-code-analysis.md → archive/removable-code-analysis.md} +0 -0
- /package/docs/{competitive-analysis-mcp-agent-mail.md → competitive/MCP_AGENT_MAIL.md} +0 -0
|
@@ -0,0 +1,605 @@
|
|
|
1
|
+
# Tmux-Orchestrator vs Agent Relay: Competitive Analysis
|
|
2
|
+
|
|
3
|
+
A comprehensive comparison of tmux-based multi-agent orchestration approaches.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Executive Summary
|
|
8
|
+
|
|
9
|
+
| Dimension | Tmux-Orchestrator | Agent Relay |
|
|
10
|
+
|-----------|-------------------|-------------|
|
|
11
|
+
| **Primary Language** | Python (80.5%) + Shell (19.5%) | TypeScript/Node.js |
|
|
12
|
+
| **Core Philosophy** | Autonomous scheduling ("self-triggering agents") | Real-time messaging ("peer-to-peer communication") |
|
|
13
|
+
| **Communication** | tmux send-keys with timing delays | Unix socket + PTY injection |
|
|
14
|
+
| **Agent Hierarchy** | Fixed 3-tier (Orchestrator→PM→Engineer) | Flexible (any structure) |
|
|
15
|
+
| **State Management** | Git commits + context notes | SQLite + optional cloud sync |
|
|
16
|
+
| **Scaling Target** | Multi-project, multi-team | Single project (~50 agents) |
|
|
17
|
+
| **Complexity** | Low (~5 scripts) | Moderate (6 architectural layers) |
|
|
18
|
+
| **Setup** | Manual tmux session creation | `npm install`, daemon auto-start |
|
|
19
|
+
|
|
20
|
+
**Key Finding:** Tmux-Orchestrator pioneered the concept of 24/7 autonomous Claude agents using tmux persistence, but relies on manual shell scripting for coordination. Agent Relay provides a more sophisticated communication layer while maintaining the tmux foundation.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. Architectural Philosophy
|
|
25
|
+
|
|
26
|
+
### Tmux-Orchestrator: "The Factory Model"
|
|
27
|
+
|
|
28
|
+
Tmux-Orchestrator treats multi-agent coordination as an **industrial process** with rigid role separation:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
32
|
+
│ ORCHESTRATOR (1) │
|
|
33
|
+
│ • Global coordination across projects │
|
|
34
|
+
│ • Knowledge sharing between teams │
|
|
35
|
+
│ • High-level progress monitoring │
|
|
36
|
+
└─────────────────────────┬───────────────────────────────────┘
|
|
37
|
+
│
|
|
38
|
+
┌─────────────────┼─────────────────┐
|
|
39
|
+
▼ ▼ ▼
|
|
40
|
+
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
|
|
41
|
+
│ PROJECT │ │ PROJECT │ │ PROJECT │
|
|
42
|
+
│ MANAGER │ │ MANAGER │ │ MANAGER │
|
|
43
|
+
│ (per repo) │ │ (per repo) │ │ (per repo) │
|
|
44
|
+
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘
|
|
45
|
+
│ │ │
|
|
46
|
+
┌────┴────┐ ┌────┴────┐ ┌────┴────┐
|
|
47
|
+
▼ ▼ ▼ ▼ ▼ ▼
|
|
48
|
+
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
|
|
49
|
+
│ ENG │ │ ENG │ │ ENG │ │ ENG │ │ ENG │ │ ENG │
|
|
50
|
+
└──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Core Principles:**
|
|
54
|
+
1. **Role Specialization** - Each tier has distinct responsibilities
|
|
55
|
+
2. **Context Window Management** - Hierarchy prevents single-agent overload
|
|
56
|
+
3. **Autonomous Scheduling** - Agents trigger their own check-ins
|
|
57
|
+
4. **Persistent Execution** - Work continues when developers disconnect
|
|
58
|
+
|
|
59
|
+
### Agent Relay: "The Postal Service Model"
|
|
60
|
+
|
|
61
|
+
Agent Relay treats coordination as a **communication problem** with flexible topology:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
65
|
+
│ DAEMON (Router) │
|
|
66
|
+
│ Unix Socket + WebSocket Server │
|
|
67
|
+
└─────────────────────────┬───────────────────────────────────┘
|
|
68
|
+
│
|
|
69
|
+
┌──────────────────────┼──────────────────────┐
|
|
70
|
+
│ │ │
|
|
71
|
+
▼ ▼ ▼
|
|
72
|
+
┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
73
|
+
│ Agent A │ ←───→ │ Agent B │ ←──────→ │ Agent C │
|
|
74
|
+
│ (Lead) │ │ (Worker) │ │ (Worker) │
|
|
75
|
+
└──────────┘ └──────────┘ └──────────┘
|
|
76
|
+
↑ │
|
|
77
|
+
└───────────────────────────────────────┘
|
|
78
|
+
Direct peer-to-peer messaging
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Core Principles:**
|
|
82
|
+
1. **Any Topology** - Roles defined by convention, not enforcement
|
|
83
|
+
2. **Direct Communication** - Agents message each other without intermediaries
|
|
84
|
+
3. **Zero Modification** - Works with unmodified CLI agents
|
|
85
|
+
4. **Real-Time Messaging** - <5ms latency via Unix socket
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 2. Communication Mechanisms
|
|
90
|
+
|
|
91
|
+
### Tmux-Orchestrator: Shell Script + Timing
|
|
92
|
+
|
|
93
|
+
**Primary tool: `send-claude-message.sh`**
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
#!/bin/bash
|
|
97
|
+
# Usage: ./send-claude-message.sh session:window "message"
|
|
98
|
+
TARGET=$1
|
|
99
|
+
MESSAGE=$2
|
|
100
|
+
|
|
101
|
+
tmux send-keys -t "$TARGET" "$MESSAGE"
|
|
102
|
+
sleep 0.5 # Critical delay for message parsing
|
|
103
|
+
tmux send-keys -t "$TARGET" Enter
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Characteristics:**
|
|
107
|
+
- Shell-based, simple to understand
|
|
108
|
+
- Fixed timing delays (0.5s between message and Enter)
|
|
109
|
+
- Target format: `session_name:window_index`
|
|
110
|
+
- No message queuing or delivery confirmation
|
|
111
|
+
- No persistence of message history
|
|
112
|
+
|
|
113
|
+
**Self-scheduling with notes:**
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# schedule_with_note.sh [minutes] "[actionable instruction]"
|
|
117
|
+
./schedule_with_note.sh 30 "Review PR and update status"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Agent Relay: Pattern Detection + Unix Socket
|
|
121
|
+
|
|
122
|
+
**Primary mechanism: Output parsing**
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Agent output: "->relay:Alice Let's discuss the API design"
|
|
126
|
+
↓ Pattern detection
|
|
127
|
+
RelayClient extracts message
|
|
128
|
+
↓ Unix socket IPC
|
|
129
|
+
Daemon routes to Alice
|
|
130
|
+
↓ tmux send-keys
|
|
131
|
+
Alice receives via PTY injection
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Characteristics:**
|
|
135
|
+
- Pattern-based (`->relay:`) - no SDK needed
|
|
136
|
+
- Sub-5ms latency via Unix Domain Socket
|
|
137
|
+
- Message queuing and persistence
|
|
138
|
+
- Delivery acknowledgment
|
|
139
|
+
- Full message history in SQLite
|
|
140
|
+
|
|
141
|
+
**Comparison:**
|
|
142
|
+
|
|
143
|
+
| Aspect | Tmux-Orchestrator | Agent Relay |
|
|
144
|
+
|--------|-------------------|-------------|
|
|
145
|
+
| **Message Format** | Raw text | Structured envelope |
|
|
146
|
+
| **Latency** | ~500ms (timing delay) | <5ms |
|
|
147
|
+
| **Delivery Guarantee** | None | ACK/NACK |
|
|
148
|
+
| **History** | None | SQLite persistence |
|
|
149
|
+
| **Addressing** | `session:window` | Agent name |
|
|
150
|
+
| **Broadcast** | Manual loop | `->relay:*` |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 3. Agent Lifecycle Management
|
|
155
|
+
|
|
156
|
+
### Tmux-Orchestrator: Manual with Convention
|
|
157
|
+
|
|
158
|
+
**Creating agents:**
|
|
159
|
+
```bash
|
|
160
|
+
# Create tmux session for project
|
|
161
|
+
tmux new-session -d -s myproject
|
|
162
|
+
|
|
163
|
+
# Launch Project Manager in window 0
|
|
164
|
+
tmux send-keys -t myproject:0 "claude" Enter
|
|
165
|
+
|
|
166
|
+
# PM creates Engineer in new window
|
|
167
|
+
# (PM runs these commands via Claude)
|
|
168
|
+
tmux new-window -t myproject -c /path/to/project
|
|
169
|
+
tmux send-keys -t myproject:1 "claude --task='Implement feature X'" Enter
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Self-scheduling (autonomous check-ins):**
|
|
173
|
+
```bash
|
|
174
|
+
# Agent schedules itself for 30 minutes later
|
|
175
|
+
./schedule_with_note.sh 30 "Check progress on feature X"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Window awareness:**
|
|
179
|
+
```bash
|
|
180
|
+
# Agent discovers its own location
|
|
181
|
+
tmux display-message -p "#{session_name}:#{window_index}"
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Agent Relay: Daemon-Managed
|
|
185
|
+
|
|
186
|
+
**Creating agents:**
|
|
187
|
+
```bash
|
|
188
|
+
# Start daemon (auto if not running)
|
|
189
|
+
agent-relay up
|
|
190
|
+
|
|
191
|
+
# Wrap agent (auto-registers with daemon)
|
|
192
|
+
agent-relay wrap --name Alice claude
|
|
193
|
+
|
|
194
|
+
# Spawn from another agent
|
|
195
|
+
->relay:spawn Worker claude "Implement feature X"
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Lifecycle visibility:**
|
|
199
|
+
- Dashboard shows all active agents
|
|
200
|
+
- Presence tracking (online/offline/idle)
|
|
201
|
+
- Session summaries for recovery
|
|
202
|
+
|
|
203
|
+
**Comparison:**
|
|
204
|
+
|
|
205
|
+
| Aspect | Tmux-Orchestrator | Agent Relay |
|
|
206
|
+
|--------|-------------------|-------------|
|
|
207
|
+
| **Agent Creation** | Manual tmux commands | `wrap` or `spawn` command |
|
|
208
|
+
| **Registration** | None (implicit) | Explicit HELLO handshake |
|
|
209
|
+
| **Discovery** | Know window names | `agents.json` + dashboard |
|
|
210
|
+
| **Health Check** | Manual inspection | Heartbeat monitoring |
|
|
211
|
+
| **Recovery** | Context notes | Session summaries |
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 4. Workflow & Task Management
|
|
216
|
+
|
|
217
|
+
### Tmux-Orchestrator: Specification-Driven
|
|
218
|
+
|
|
219
|
+
**Project Specification (Markdown):**
|
|
220
|
+
```markdown
|
|
221
|
+
# Project: Auth System
|
|
222
|
+
|
|
223
|
+
## Goals
|
|
224
|
+
- Implement JWT authentication
|
|
225
|
+
- Add refresh token support
|
|
226
|
+
|
|
227
|
+
## Constraints
|
|
228
|
+
- Must use existing User model
|
|
229
|
+
- No external auth providers
|
|
230
|
+
|
|
231
|
+
## Deliverables
|
|
232
|
+
1. /api/login endpoint
|
|
233
|
+
2. /api/refresh endpoint
|
|
234
|
+
3. Auth middleware
|
|
235
|
+
4. Unit tests
|
|
236
|
+
|
|
237
|
+
## Success Criteria
|
|
238
|
+
- All tests pass
|
|
239
|
+
- No security vulnerabilities
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**Git Discipline (Mandatory):**
|
|
243
|
+
- Commit every 30 minutes minimum
|
|
244
|
+
- Feature branches for new work
|
|
245
|
+
- Descriptive commit messages
|
|
246
|
+
- Tag stable versions
|
|
247
|
+
|
|
248
|
+
**Escalation Pattern:**
|
|
249
|
+
- 3 message exchanges maximum before escalation
|
|
250
|
+
- PM→Orchestrator for cross-project issues
|
|
251
|
+
- Async standups instead of meetings
|
|
252
|
+
|
|
253
|
+
### Agent Relay: Message-Based Coordination
|
|
254
|
+
|
|
255
|
+
**No built-in workflow system** - pure messaging:
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
->relay:Worker TASK: Implement /api/login endpoint
|
|
259
|
+
|
|
260
|
+
->relay:Lead STATUS: Working on login endpoint
|
|
261
|
+
|
|
262
|
+
->relay:Lead DONE: Login endpoint complete, ready for review
|
|
263
|
+
|
|
264
|
+
->relay:Reviewer REVIEW: Please check src/auth/login.ts
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Conventions (not enforced):**
|
|
268
|
+
- `TASK:` for assignments
|
|
269
|
+
- `STATUS:` for updates
|
|
270
|
+
- `DONE:` for completion
|
|
271
|
+
- `ACK:` for acknowledgment
|
|
272
|
+
- `QUESTION:` for clarification
|
|
273
|
+
|
|
274
|
+
**Comparison:**
|
|
275
|
+
|
|
276
|
+
| Aspect | Tmux-Orchestrator | Agent Relay |
|
|
277
|
+
|--------|-------------------|-------------|
|
|
278
|
+
| **Task Definition** | Markdown specs | Free-form messages |
|
|
279
|
+
| **Progress Tracking** | Git commits | Message history |
|
|
280
|
+
| **Escalation** | Fixed rules | Ad-hoc |
|
|
281
|
+
| **Quality Gates** | PM checklists | None built-in |
|
|
282
|
+
| **Audit Trail** | Git history | SQLite + optional Git |
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## 5. Scaling & Multi-Project
|
|
287
|
+
|
|
288
|
+
### Tmux-Orchestrator: Separate Sessions
|
|
289
|
+
|
|
290
|
+
**Multi-project architecture:**
|
|
291
|
+
```
|
|
292
|
+
tmux sessions:
|
|
293
|
+
├── project-a (PM in :0, Engineers in :1, :2)
|
|
294
|
+
├── project-b (PM in :0, Engineers in :1)
|
|
295
|
+
└── orchestrator (Coordinates all)
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**Cross-project intelligence:**
|
|
299
|
+
- Orchestrator shares patterns between projects
|
|
300
|
+
- Solutions discovered in one project applied to others
|
|
301
|
+
- Global learning repository (LEARNINGS.md)
|
|
302
|
+
|
|
303
|
+
### Agent Relay: Bridge Mode
|
|
304
|
+
|
|
305
|
+
**Multi-project via bridge:**
|
|
306
|
+
```bash
|
|
307
|
+
agent-relay bridge ~/auth ~/frontend ~/api
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Addressing:**
|
|
311
|
+
```
|
|
312
|
+
->relay:frontend:Designer Update the login UI
|
|
313
|
+
->relay:*:lead Question about API design
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**Comparison:**
|
|
317
|
+
|
|
318
|
+
| Aspect | Tmux-Orchestrator | Agent Relay |
|
|
319
|
+
|--------|-------------------|-------------|
|
|
320
|
+
| **Multi-Project** | Separate tmux sessions | Bridge mode |
|
|
321
|
+
| **Cross-Project Messaging** | Via Orchestrator | Direct with project:agent |
|
|
322
|
+
| **Knowledge Sharing** | LEARNINGS.md file | Optional cloud sync |
|
|
323
|
+
| **Setup Complexity** | Manual session management | Single bridge command |
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 6. Pros & Cons
|
|
328
|
+
|
|
329
|
+
### Tmux-Orchestrator
|
|
330
|
+
|
|
331
|
+
**Pros:**
|
|
332
|
+
1. **Simple conceptually** - Just shell scripts and tmux
|
|
333
|
+
2. **24/7 autonomy** - Agents work without supervision
|
|
334
|
+
3. **Role clarity** - Fixed hierarchy prevents confusion
|
|
335
|
+
4. **Git-native** - Progress tracked via commits
|
|
336
|
+
5. **Zero dependencies** - Only needs tmux + Claude CLI
|
|
337
|
+
6. **Pioneered the approach** - Proved the concept works
|
|
338
|
+
7. **Multi-project coordination** - Orchestrator shares knowledge
|
|
339
|
+
|
|
340
|
+
**Cons:**
|
|
341
|
+
1. **No message persistence** - Lost on session end
|
|
342
|
+
2. **Fixed hierarchy** - Can't adapt topology
|
|
343
|
+
3. **Manual setup** - Each tmux session created by hand
|
|
344
|
+
4. **No delivery confirmation** - Hope messages arrive
|
|
345
|
+
5. **Timing-dependent** - 500ms delays add up
|
|
346
|
+
6. **No dashboard** - Inspect tmux manually
|
|
347
|
+
7. **Fragile scripting** - Shell edge cases break things
|
|
348
|
+
|
|
349
|
+
### Agent Relay
|
|
350
|
+
|
|
351
|
+
**Pros:**
|
|
352
|
+
1. **Real-time messaging** - <5ms latency
|
|
353
|
+
2. **Message persistence** - SQLite history
|
|
354
|
+
3. **Flexible topology** - Any structure works
|
|
355
|
+
4. **Visual dashboard** - Real-time monitoring
|
|
356
|
+
5. **Delivery guarantees** - ACK/NACK system
|
|
357
|
+
6. **Zero-config agents** - Pattern detection
|
|
358
|
+
7. **Bridge mode** - Multi-project coordination
|
|
359
|
+
8. **Session continuity** - Summaries for recovery
|
|
360
|
+
|
|
361
|
+
**Cons:**
|
|
362
|
+
1. **More infrastructure** - Daemon, SQLite, etc.
|
|
363
|
+
2. **Node.js dependency** - Heavier than shell
|
|
364
|
+
3. **No built-in workflows** - Pure messaging
|
|
365
|
+
4. **Single project default** - Bridge for multi-project
|
|
366
|
+
5. **No enforced discipline** - Git commits optional
|
|
367
|
+
6. **Learning curve** - More concepts than scripts
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## 7. Key Learnings for Relay
|
|
372
|
+
|
|
373
|
+
### Ideas to Adopt
|
|
374
|
+
|
|
375
|
+
1. **Self-Scheduling Pattern**
|
|
376
|
+
```
|
|
377
|
+
->relay:schedule 30m "Check progress on feature X"
|
|
378
|
+
```
|
|
379
|
+
- Allow agents to schedule their own check-ins
|
|
380
|
+
- Persist schedules to survive restarts
|
|
381
|
+
- Dashboard shows upcoming scheduled messages
|
|
382
|
+
|
|
383
|
+
2. **Enforced Git Discipline**
|
|
384
|
+
- Add hooks for "commit required every 30 min"
|
|
385
|
+
- Track last commit time per agent
|
|
386
|
+
- Dashboard warning when overdue
|
|
387
|
+
- Block new task assignment without recent commit
|
|
388
|
+
|
|
389
|
+
3. **Specification Templates**
|
|
390
|
+
- Built-in project spec format
|
|
391
|
+
- Parse and track deliverables
|
|
392
|
+
- Link messages to spec items
|
|
393
|
+
- Progress view against spec
|
|
394
|
+
|
|
395
|
+
4. **LEARNINGS.md Pattern**
|
|
396
|
+
- Shared knowledge repository across agents
|
|
397
|
+
- Auto-extract insights from agent conversations
|
|
398
|
+
- Searchable via `->relay:learn "topic"`
|
|
399
|
+
|
|
400
|
+
5. **Escalation Rules**
|
|
401
|
+
- Configurable max exchanges before escalation
|
|
402
|
+
- Auto-notify lead after threshold
|
|
403
|
+
- Thread-based tracking
|
|
404
|
+
|
|
405
|
+
6. **Context Notes for Scheduling**
|
|
406
|
+
- When scheduling, include context summary
|
|
407
|
+
- Inject context when schedule fires
|
|
408
|
+
- Better continuity than raw message
|
|
409
|
+
|
|
410
|
+
### Ideas to Evaluate
|
|
411
|
+
|
|
412
|
+
1. **Fixed Hierarchy Option**
|
|
413
|
+
- Optional enforcement of Orchestrator→PM→Engineer
|
|
414
|
+
- Validation that messages follow hierarchy
|
|
415
|
+
- Could reduce chaos in large teams
|
|
416
|
+
|
|
417
|
+
2. **Window Location Awareness**
|
|
418
|
+
- Track which tmux session:window each agent is in
|
|
419
|
+
- Allow `->relay:window:1` addressing
|
|
420
|
+
- Useful for legacy tmux users
|
|
421
|
+
|
|
422
|
+
3. **Per-Project Sessions**
|
|
423
|
+
- Separate daemon per project by default
|
|
424
|
+
- Bridge only when needed
|
|
425
|
+
- Simpler mental model
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## 8. Architectural Recommendations
|
|
430
|
+
|
|
431
|
+
### Short-term Improvements
|
|
432
|
+
|
|
433
|
+
1. **Add Self-Scheduling Command**
|
|
434
|
+
```typescript
|
|
435
|
+
// New pattern: ->relay:schedule TIME MESSAGE
|
|
436
|
+
// Agent schedules a message to itself
|
|
437
|
+
->relay:schedule 30m "Review PR status"
|
|
438
|
+
|
|
439
|
+
// Implementation: Store in SQLite, daemon fires at time
|
|
440
|
+
interface ScheduledMessage {
|
|
441
|
+
id: string;
|
|
442
|
+
fireAt: number;
|
|
443
|
+
to: string;
|
|
444
|
+
content: string;
|
|
445
|
+
context?: string;
|
|
446
|
+
}
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
2. **Add Commit Tracking**
|
|
450
|
+
```typescript
|
|
451
|
+
// Track last commit time per agent
|
|
452
|
+
// Dashboard shows: "Alice: last commit 45m ago (WARNING)"
|
|
453
|
+
// Optional hook: block task assignment if >60m since commit
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
3. **Add Context Notes to Spawn**
|
|
457
|
+
```
|
|
458
|
+
->relay:spawn Worker claude <<<
|
|
459
|
+
TASK: Implement /api/login
|
|
460
|
+
CONTEXT: Using JWT, see src/auth/utils.ts for helpers
|
|
461
|
+
SPEC: Must pass all tests in tests/auth/
|
|
462
|
+
>>>
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
### Medium-term Improvements
|
|
466
|
+
|
|
467
|
+
1. **Specification Tracking**
|
|
468
|
+
```yaml
|
|
469
|
+
# .relay/spec.yaml
|
|
470
|
+
deliverables:
|
|
471
|
+
- id: login-endpoint
|
|
472
|
+
description: "/api/login endpoint"
|
|
473
|
+
assigned: Worker
|
|
474
|
+
status: in_progress
|
|
475
|
+
tests: ["tests/auth/login.test.ts"]
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
2. **Learning Repository Integration**
|
|
479
|
+
```
|
|
480
|
+
# Auto-capture learnings from conversations
|
|
481
|
+
->relay:learn "JWT refresh tokens need 7-day expiry for mobile apps"
|
|
482
|
+
|
|
483
|
+
# Query learnings
|
|
484
|
+
->relay:recall "JWT refresh token best practices"
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
3. **Escalation Rules Engine**
|
|
488
|
+
```yaml
|
|
489
|
+
# .relay/escalation.yaml
|
|
490
|
+
rules:
|
|
491
|
+
- after: 3 messages
|
|
492
|
+
if: no_resolution
|
|
493
|
+
notify: lead
|
|
494
|
+
- after: 30 minutes
|
|
495
|
+
if: blocked
|
|
496
|
+
notify: orchestrator
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### Long-term Vision
|
|
500
|
+
|
|
501
|
+
**Hybrid Approach:**
|
|
502
|
+
|
|
503
|
+
```
|
|
504
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
505
|
+
│ Agent Relay + Tmux-Orchestrator Hybrid │
|
|
506
|
+
├─────────────────────────────────────────────────────────────┤
|
|
507
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
508
|
+
│ │ agent-relay daemon (communication) │ │
|
|
509
|
+
│ │ • Real-time messaging (<5ms) │ │
|
|
510
|
+
│ │ • Message persistence │ │
|
|
511
|
+
│ │ • Dashboard monitoring │ │
|
|
512
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
513
|
+
│ │ │
|
|
514
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
515
|
+
│ │ Orchestration Layer (from Tmux-Orchestrator) │ │
|
|
516
|
+
│ │ • Self-scheduling system │ │
|
|
517
|
+
│ │ • Git commit enforcement │ │
|
|
518
|
+
│ │ • Specification tracking │ │
|
|
519
|
+
│ │ • Escalation rules │ │
|
|
520
|
+
│ │ • Learning repository │ │
|
|
521
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
522
|
+
│ │ │
|
|
523
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
524
|
+
│ │ tmux sessions (execution) │ │
|
|
525
|
+
│ │ • Persistent agent processes │ │
|
|
526
|
+
│ │ • Hierarchical project structure │ │
|
|
527
|
+
│ │ • 24/7 autonomous operation │ │
|
|
528
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
529
|
+
└─────────────────────────────────────────────────────────────┘
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
---
|
|
533
|
+
|
|
534
|
+
## 9. Solution Rankings
|
|
535
|
+
|
|
536
|
+
### Best for Each Use Case
|
|
537
|
+
|
|
538
|
+
| If you need... | Tmux-Orchestrator | Agent Relay | Winner |
|
|
539
|
+
|----------------|-------------------|-------------|--------|
|
|
540
|
+
| **24/7 autonomous operation** | Native design | Supported | Tie |
|
|
541
|
+
| **Real-time messaging** | ~500ms delays | <5ms | Relay |
|
|
542
|
+
| **Multi-project coordination** | Via Orchestrator | Bridge mode | Tie |
|
|
543
|
+
| **Minimal dependencies** | Just tmux + bash | Node.js daemon | Tmux |
|
|
544
|
+
| **Message persistence** | None | SQLite | Relay |
|
|
545
|
+
| **Visual monitoring** | tmux inspection | Web dashboard | Relay |
|
|
546
|
+
| **Delivery confirmation** | None | ACK/NACK | Relay |
|
|
547
|
+
| **Built-in workflows** | Spec + escalation | None | Tmux |
|
|
548
|
+
| **Git discipline** | Enforced by convention | Optional | Tmux |
|
|
549
|
+
| **Flexible topology** | Fixed 3-tier | Any structure | Relay |
|
|
550
|
+
| **Learning curve** | Low (shell scripts) | Moderate | Tmux |
|
|
551
|
+
|
|
552
|
+
### Overall Assessment
|
|
553
|
+
|
|
554
|
+
**Tmux-Orchestrator is better for:**
|
|
555
|
+
- Teams that want minimal tooling
|
|
556
|
+
- Projects with clear hierarchical structure
|
|
557
|
+
- Those prioritizing simplicity over features
|
|
558
|
+
- Users comfortable with shell scripting
|
|
559
|
+
|
|
560
|
+
**Agent Relay is better for:**
|
|
561
|
+
- Teams needing real-time coordination
|
|
562
|
+
- Projects requiring message history
|
|
563
|
+
- Users wanting visual monitoring
|
|
564
|
+
- Flexible team structures
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
## 10. Conclusion
|
|
569
|
+
|
|
570
|
+
Tmux-Orchestrator and Agent Relay represent two generations of tmux-based agent orchestration:
|
|
571
|
+
|
|
572
|
+
**Tmux-Orchestrator** (First Generation):
|
|
573
|
+
- Proved the concept of autonomous 24/7 Claude agents
|
|
574
|
+
- Simple shell scripts + tmux persistence
|
|
575
|
+
- Fixed hierarchy solves context window problem
|
|
576
|
+
- Git discipline ensures work is preserved
|
|
577
|
+
- Limited by lack of real-time communication
|
|
578
|
+
|
|
579
|
+
**Agent Relay** (Second Generation):
|
|
580
|
+
- Builds on the tmux foundation
|
|
581
|
+
- Adds real-time messaging layer
|
|
582
|
+
- Provides persistence and monitoring
|
|
583
|
+
- Enables flexible topologies
|
|
584
|
+
- Could benefit from workflow features
|
|
585
|
+
|
|
586
|
+
**Recommendation:**
|
|
587
|
+
|
|
588
|
+
Agent Relay should adopt key innovations from Tmux-Orchestrator:
|
|
589
|
+
|
|
590
|
+
| Priority | Feature | Effort | Impact |
|
|
591
|
+
|----------|---------|--------|--------|
|
|
592
|
+
| P0 | Self-scheduling system | Medium | High |
|
|
593
|
+
| P0 | Git commit tracking | Low | Medium |
|
|
594
|
+
| P1 | Context notes for continuity | Low | Medium |
|
|
595
|
+
| P1 | Specification tracking | Medium | High |
|
|
596
|
+
| P2 | Escalation rules engine | Medium | Medium |
|
|
597
|
+
| P2 | Learning repository | High | High |
|
|
598
|
+
| P3 | Fixed hierarchy mode | Low | Low |
|
|
599
|
+
|
|
600
|
+
The ideal future combines Agent Relay's communication sophistication with Tmux-Orchestrator's workflow discipline.
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
604
|
+
*Analysis generated 2026-01-04*
|
|
605
|
+
*Based on Tmux-Orchestrator repository (github.com/Jedward23/Tmux-Orchestrator) and Agent Relay source code*
|
|
Binary file
|