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
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_t1yy8m7hbuxp",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Implement GitHub repo permission API via Nango for dashboard access",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "agent-relay-460"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-05T21:10:44.264Z",
|
|
13
|
+
"agents": [
|
|
14
|
+
{
|
|
15
|
+
"name": "Backend",
|
|
16
|
+
"role": "lead",
|
|
17
|
+
"joinedAt": "2026-01-05T21:10:44.265Z"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"chapters": [
|
|
21
|
+
{
|
|
22
|
+
"id": "chap_bimitwyp2pbu",
|
|
23
|
+
"title": "Work",
|
|
24
|
+
"agentName": "default",
|
|
25
|
+
"startedAt": "2026-01-05T21:13:24.571Z",
|
|
26
|
+
"events": [
|
|
27
|
+
{
|
|
28
|
+
"ts": 1767647604572,
|
|
29
|
+
"type": "decision",
|
|
30
|
+
"content": "Implemented three new Nango-based API endpoints for GitHub repo permissions: Implemented three new Nango-based API endpoints for GitHub repo permissions",
|
|
31
|
+
"raw": {
|
|
32
|
+
"question": "Implemented three new Nango-based API endpoints for GitHub repo permissions",
|
|
33
|
+
"chosen": "Implemented three new Nango-based API endpoints for GitHub repo permissions",
|
|
34
|
+
"alternatives": [],
|
|
35
|
+
"reasoning": "Used user's OAuth connection via Nango proxy to check repo access. Endpoints: /api/repos/check-access/:owner/:repo, /api/repos/accessible, /api/repos/check-access-bulk"
|
|
36
|
+
},
|
|
37
|
+
"significance": "high"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"endedAt": "2026-01-05T21:13:52.530Z"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"commits": [],
|
|
44
|
+
"filesChanged": [],
|
|
45
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
46
|
+
"tags": [],
|
|
47
|
+
"completedAt": "2026-01-05T21:13:52.530Z",
|
|
48
|
+
"retrospective": {
|
|
49
|
+
"summary": "Implemented GitHub repo permission API via Nango for dashboard access control. Added checkUserRepoAccess() and listUserAccessibleRepos() to NangoService, plus three API endpoints: GET /api/repos/check-access/:owner/:repo, GET /api/repos/accessible, POST /api/repos/check-access-bulk",
|
|
50
|
+
"approach": "Standard approach",
|
|
51
|
+
"confidence": 0.9
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Trajectory: Implement GitHub repo permission API via Nango for dashboard access
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** agent-relay-460
|
|
5
|
+
> **Confidence:** 90%
|
|
6
|
+
> **Started:** January 5, 2026 at 10:10 PM
|
|
7
|
+
> **Completed:** January 5, 2026 at 10:13 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Implemented GitHub repo permission API via Nango for dashboard access control. Added checkUserRepoAccess() and listUserAccessibleRepos() to NangoService, plus three API endpoints: GET /api/repos/check-access/:owner/:repo, GET /api/repos/accessible, POST /api/repos/check-access-bulk
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Implemented three new Nango-based API endpoints for GitHub repo permissions
|
|
22
|
+
- **Chose:** Implemented three new Nango-based API endpoints for GitHub repo permissions
|
|
23
|
+
- **Reasoning:** Used user's OAuth connection via Nango proxy to check repo access. Endpoints: /api/repos/check-access/:owner/:repo, /api/repos/accessible, /api/repos/check-access-bulk
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Chapters
|
|
28
|
+
|
|
29
|
+
### 1. Work
|
|
30
|
+
*Agent: default*
|
|
31
|
+
|
|
32
|
+
- Implemented three new Nango-based API endpoints for GitHub repo permissions: Implemented three new Nango-based API endpoints for GitHub repo permissions
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_tmux_orchestrator_analysis",
|
|
3
|
+
"title": "Tmux-Orchestrator competitive analysis",
|
|
4
|
+
"task": "analyze-tmux-orchestrator",
|
|
5
|
+
"status": "completed",
|
|
6
|
+
"startedAt": "2026-01-04T09:00:00.000Z",
|
|
7
|
+
"completedAt": "2026-01-04T09:30:00.000Z",
|
|
8
|
+
"confidence": 0.9,
|
|
9
|
+
"summary": "Competitive analysis of Tmux-Orchestrator validated our architecture - real-time messaging + continuity already covers their solutions",
|
|
10
|
+
"decisions": [
|
|
11
|
+
{
|
|
12
|
+
"decision": "Continuity context already works on spawn - no new feature needed",
|
|
13
|
+
"reasoning": "PtyWrapper.injectContinuityContext() already loads ledger + handoff and injects on agent spawn",
|
|
14
|
+
"timestamp": "2026-01-04T09:15:00.000Z"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"decision": "Use trajectories for learnings instead of separate learning repository",
|
|
18
|
+
"reasoning": "Trajectories already capture learnings via trail complete --learnings. Just need search functionality.",
|
|
19
|
+
"timestamp": "2026-01-04T09:20:00.000Z"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"decision": "Self-scheduling is the key missing feature for 24/7 autonomy",
|
|
23
|
+
"reasoning": "Tmux-Orchestrator's schedule_with_note.sh enables agents to wake themselves up. We need ->relay:schedule command.",
|
|
24
|
+
"timestamp": "2026-01-04T09:25:00.000Z"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"decision": "Skip git commit tracking - requires git worktree architecture we don't have",
|
|
28
|
+
"reasoning": "Tmux-Orchestrator's 30-minute commit rule assumes per-agent git worktrees. Not applicable to our current single-repo model.",
|
|
29
|
+
"timestamp": "2026-01-04T09:28:00.000Z"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"decision": "No beads needed - our architecture already covers their solutions",
|
|
33
|
+
"reasoning": "Self-scheduling solved by real-time messaging (agents wake each other). Context notes solved by continuity. Analysis validated our approach rather than finding gaps.",
|
|
34
|
+
"timestamp": "2026-01-04T09:35:00.000Z"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"learnings": [
|
|
38
|
+
"Tmux-Orchestrator pioneered 24/7 autonomous agent operation using tmux persistence + self-scheduling",
|
|
39
|
+
"Real-time messaging replaces scheduling - agents can wake each other instantly instead of scheduling delayed self-messages",
|
|
40
|
+
"Our continuity system (ledger + handoff injection on spawn) covers their context notes pattern",
|
|
41
|
+
"Fixed 3-tier hierarchy (Orchestrator→PM→Engineer) solves context window limits but is less flexible than relay's any-topology approach",
|
|
42
|
+
"Shell script + timing delays (~500ms) is simpler but 100x slower than our Unix socket (<5ms)",
|
|
43
|
+
"Self-scheduling with context notes is the killer feature for autonomous operation",
|
|
44
|
+
"Our continuity system (ledger + handoff) already covers spawn context injection",
|
|
45
|
+
"Trajectory learnings field already exists - just need search/index functionality"
|
|
46
|
+
],
|
|
47
|
+
"chapters": [
|
|
48
|
+
{
|
|
49
|
+
"phase": "plan",
|
|
50
|
+
"agent": "default",
|
|
51
|
+
"events": [
|
|
52
|
+
"Fetched Tmux-Orchestrator README and CLAUDE.md from GitHub",
|
|
53
|
+
"Reviewed existing competitive analyses format (GASTOWN.md, MCP_AGENT_MAIL.md)"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"phase": "execute",
|
|
58
|
+
"agent": "default",
|
|
59
|
+
"events": [
|
|
60
|
+
"Created docs/competitive/TMUX_ORCHESTRATOR.md with full analysis",
|
|
61
|
+
"Updated OVERVIEW.md comparison matrix with Tmux-Orchestrator",
|
|
62
|
+
"Updated README.md with new analysis link"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"phase": "execute",
|
|
67
|
+
"agent": "default",
|
|
68
|
+
"events": [
|
|
69
|
+
"Created 5 beads for features to adopt",
|
|
70
|
+
"Reviewed existing continuity system - found spawn context already works",
|
|
71
|
+
"Updated beads to reflect existing functionality"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"phase": "review",
|
|
76
|
+
"agent": "default",
|
|
77
|
+
"events": [
|
|
78
|
+
"Confirmed PtyWrapper.injectContinuityContext() handles spawn context",
|
|
79
|
+
"Confirmed trajectories already capture learnings field",
|
|
80
|
+
"Identified self-scheduling as the truly new feature needed"
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Trajectory: Tmux-Orchestrator competitive analysis
|
|
2
|
+
|
|
3
|
+
> **Status:** Completed
|
|
4
|
+
> **Task:** analyze-tmux-orchestrator
|
|
5
|
+
> **Started:** January 4, 2026 at 09:00 AM
|
|
6
|
+
> **Completed:** January 4, 2026 at 09:30 AM
|
|
7
|
+
> **Confidence:** 0.9
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Comprehensive competitive analysis of Tmux-Orchestrator vs Agent Relay, identified key features to adopt.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Key Decisions
|
|
18
|
+
|
|
19
|
+
### 1. Continuity context already works on spawn - no new feature needed
|
|
20
|
+
- **Reasoning:** PtyWrapper.injectContinuityContext() already loads ledger + handoff and injects on agent spawn
|
|
21
|
+
|
|
22
|
+
### 2. Use trajectories for learnings instead of separate learning repository
|
|
23
|
+
- **Reasoning:** Trajectories already capture learnings via trail complete --learnings. Just need search functionality.
|
|
24
|
+
|
|
25
|
+
### 3. Self-scheduling is the key missing feature for 24/7 autonomy
|
|
26
|
+
- **Reasoning:** Tmux-Orchestrator's schedule_with_note.sh enables agents to wake themselves up. We need ->relay:schedule command.
|
|
27
|
+
|
|
28
|
+
### 4. Skip git commit tracking - requires git worktree architecture we don't have
|
|
29
|
+
- **Reasoning:** Tmux-Orchestrator's 30-minute commit rule assumes per-agent git worktrees. Not applicable to our current single-repo model.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Learnings
|
|
34
|
+
|
|
35
|
+
1. **Tmux-Orchestrator pioneered 24/7 autonomous agent operation** using tmux persistence + self-scheduling
|
|
36
|
+
|
|
37
|
+
2. **Git commit tracking requires per-agent worktrees** - their 30-min rule isn't applicable without that architecture
|
|
38
|
+
|
|
39
|
+
3. **Fixed 3-tier hierarchy** (Orchestrator→PM→Engineer) solves context window limits but is less flexible than relay's any-topology approach
|
|
40
|
+
|
|
41
|
+
4. **Shell script + timing delays (~500ms)** is simpler but 100x slower than our Unix socket (<5ms)
|
|
42
|
+
|
|
43
|
+
5. **Self-scheduling with context notes** is the killer feature for autonomous operation
|
|
44
|
+
|
|
45
|
+
6. **Our continuity system already covers spawn context** - ledger + handoff injection works
|
|
46
|
+
|
|
47
|
+
7. **Trajectory learnings field already exists** - just need search/index functionality
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Chapters
|
|
52
|
+
|
|
53
|
+
### 1. Plan
|
|
54
|
+
*Agent: default*
|
|
55
|
+
|
|
56
|
+
- Fetched Tmux-Orchestrator README and CLAUDE.md from GitHub
|
|
57
|
+
- Reviewed existing competitive analyses format (GASTOWN.md, MCP_AGENT_MAIL.md)
|
|
58
|
+
|
|
59
|
+
### 2. Execute
|
|
60
|
+
*Agent: default*
|
|
61
|
+
|
|
62
|
+
- Created docs/competitive/TMUX_ORCHESTRATOR.md with full analysis
|
|
63
|
+
- Updated OVERVIEW.md comparison matrix with Tmux-Orchestrator
|
|
64
|
+
- Updated README.md with new analysis link
|
|
65
|
+
|
|
66
|
+
### 3. Execute
|
|
67
|
+
*Agent: default*
|
|
68
|
+
|
|
69
|
+
- Created 5 beads for features to adopt
|
|
70
|
+
- Reviewed existing continuity system - found spawn context already works
|
|
71
|
+
- Updated beads to reflect existing functionality
|
|
72
|
+
|
|
73
|
+
### 4. Review
|
|
74
|
+
*Agent: default*
|
|
75
|
+
|
|
76
|
+
- Confirmed PtyWrapper.injectContinuityContext() handles spawn context
|
|
77
|
+
- Confirmed trajectories already capture learnings field
|
|
78
|
+
- Identified self-scheduling as the truly new feature needed
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Beads Created
|
|
83
|
+
|
|
84
|
+
**None** - Analysis validated our existing architecture covers their solutions.
|
|
85
|
+
|
|
86
|
+
### What They Built vs What We Have
|
|
87
|
+
|
|
88
|
+
| Their Solution | Our Solution |
|
|
89
|
+
|----------------|--------------|
|
|
90
|
+
| Self-scheduling (wake up) | Real-time messaging (agents wake each other) |
|
|
91
|
+
| Context notes for spawn | Continuity injection (ledger + handoff) |
|
|
92
|
+
| Git commit tracking | N/A (needs worktrees) |
|
|
93
|
+
| LEARNINGS.md | Trajectories with learnings field |
|
|
94
|
+
| ~500ms timing delays | <5ms Unix socket |
|
|
95
|
+
|
|
96
|
+
### Key Insight
|
|
97
|
+
Tmux-Orchestrator pioneered autonomous agents with shell scripts. Our architecture (real-time messaging + continuity) is the next evolution - we've already solved their problems more elegantly.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Files Changed
|
|
102
|
+
|
|
103
|
+
- `docs/competitive/TMUX_ORCHESTRATOR.md` - New analysis (600+ lines)
|
|
104
|
+
- `docs/competitive/README.md` - Added to table
|
|
105
|
+
- `docs/competitive/OVERVIEW.md` - Added to comparison matrix
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
*Trajectory completed 2026-01-04*
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_u9n9eqasw16k",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Backend trajectory data-loading fix review",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "backend-review"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-03T14:40:11.376Z",
|
|
13
|
+
"agents": [
|
|
14
|
+
{
|
|
15
|
+
"name": "CodeReviewer",
|
|
16
|
+
"role": "lead",
|
|
17
|
+
"joinedAt": "2026-01-03T14:40:11.377Z"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"chapters": [
|
|
21
|
+
{
|
|
22
|
+
"id": "chap_xfg9tvbm40wy",
|
|
23
|
+
"title": "Work",
|
|
24
|
+
"agentName": "default",
|
|
25
|
+
"startedAt": "2026-01-03T14:41:43.249Z",
|
|
26
|
+
"events": [
|
|
27
|
+
{
|
|
28
|
+
"ts": 1767451303250,
|
|
29
|
+
"type": "decision",
|
|
30
|
+
"content": "Active trajectories lose status coloring: Active trajectories lose status coloring",
|
|
31
|
+
"raw": {
|
|
32
|
+
"question": "Active trajectories lose status coloring",
|
|
33
|
+
"chosen": "Active trajectories lose status coloring",
|
|
34
|
+
"alternatives": [],
|
|
35
|
+
"reasoning": "mapEventStatus doesn't map 'active' so in-progress runs show no status indicator"
|
|
36
|
+
},
|
|
37
|
+
"significance": "high"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"endedAt": "2026-01-03T14:41:50.001Z"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"commits": [],
|
|
44
|
+
"filesChanged": [],
|
|
45
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
46
|
+
"tags": [],
|
|
47
|
+
"completedAt": "2026-01-03T14:41:50.001Z",
|
|
48
|
+
"retrospective": {
|
|
49
|
+
"summary": "Reviewed backend filesystem trajectory loading; flagged missing 'active' status mapping",
|
|
50
|
+
"approach": "Standard approach",
|
|
51
|
+
"confidence": 0.78
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Trajectory: Backend trajectory data-loading fix review
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** backend-review
|
|
5
|
+
> **Confidence:** 78%
|
|
6
|
+
> **Started:** January 3, 2026 at 03:40 PM
|
|
7
|
+
> **Completed:** January 3, 2026 at 03:41 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Reviewed backend filesystem trajectory loading; flagged missing 'active' status mapping
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Active trajectories lose status coloring
|
|
22
|
+
- **Chose:** Active trajectories lose status coloring
|
|
23
|
+
- **Reasoning:** mapEventStatus doesn't map 'active' so in-progress runs show no status indicator
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Chapters
|
|
28
|
+
|
|
29
|
+
### 1. Work
|
|
30
|
+
*Agent: default*
|
|
31
|
+
|
|
32
|
+
- Active trajectories lose status coloring: Active trajectories lose status coloring
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_v87hypnongqx",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Switch from GitHub OAuth to GitHub App for repo access",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "agent-relay-324"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-02T21:18:58.532Z",
|
|
13
|
+
"agents": [],
|
|
14
|
+
"chapters": [
|
|
15
|
+
{
|
|
16
|
+
"id": "chap_c8rox7ozlh2b",
|
|
17
|
+
"title": "Work",
|
|
18
|
+
"agentName": "default",
|
|
19
|
+
"startedAt": "2026-01-02T21:28:18.247Z",
|
|
20
|
+
"events": [
|
|
21
|
+
{
|
|
22
|
+
"ts": 1767389298248,
|
|
23
|
+
"type": "decision",
|
|
24
|
+
"content": "Parser fix already implemented: Parser fix already implemented",
|
|
25
|
+
"raw": {
|
|
26
|
+
"question": "Parser fix already implemented",
|
|
27
|
+
"chosen": "Parser fix already implemented",
|
|
28
|
+
"alternatives": [],
|
|
29
|
+
"reasoning": "Verified PLACEHOLDER_TARGETS set and isPlaceholderTarget() function are in place with 4 call sites. All 136 tests pass."
|
|
30
|
+
},
|
|
31
|
+
"significance": "high"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"ts": 1767390851116,
|
|
35
|
+
"type": "decision",
|
|
36
|
+
"content": "Implemented GitHub App directly instead of using Nango: Implemented GitHub App directly instead of using Nango",
|
|
37
|
+
"raw": {
|
|
38
|
+
"question": "Implemented GitHub App directly instead of using Nango",
|
|
39
|
+
"chosen": "Implemented GitHub App directly instead of using Nango",
|
|
40
|
+
"alternatives": [],
|
|
41
|
+
"reasoning": "Existing codebase uses direct GitHub API calls, keeping implementation consistent avoids adding new dependencies"
|
|
42
|
+
},
|
|
43
|
+
"significance": "high"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"ts": 1767390857285,
|
|
47
|
+
"type": "decision",
|
|
48
|
+
"content": "Implemented native GitHub App auth instead of Nango integration: Implemented native GitHub App auth instead of Nango integration",
|
|
49
|
+
"raw": {
|
|
50
|
+
"question": "Implemented native GitHub App auth instead of Nango integration",
|
|
51
|
+
"chosen": "Implemented native GitHub App auth instead of Nango integration",
|
|
52
|
+
"alternatives": [],
|
|
53
|
+
"reasoning": "The codebase already had foundation for GitHub App JWT/tokens. Using native implementation avoids external dependency and aligns with existing patterns."
|
|
54
|
+
},
|
|
55
|
+
"significance": "high"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"endedAt": "2026-01-02T21:55:20.552Z"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"commits": [],
|
|
62
|
+
"filesChanged": [],
|
|
63
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
64
|
+
"tags": [],
|
|
65
|
+
"completedAt": "2026-01-02T21:55:20.552Z",
|
|
66
|
+
"retrospective": {
|
|
67
|
+
"summary": "Implemented GitHub App API routes and config for agent-relay-324",
|
|
68
|
+
"approach": "Standard approach",
|
|
69
|
+
"confidence": 0.85
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Trajectory: Switch from GitHub OAuth to GitHub App for repo access
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** agent-relay-324
|
|
5
|
+
> **Confidence:** 85%
|
|
6
|
+
> **Started:** January 2, 2026 at 10:18 PM
|
|
7
|
+
> **Completed:** January 2, 2026 at 10:55 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Implemented GitHub App API routes and config for agent-relay-324
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Parser fix already implemented
|
|
22
|
+
- **Chose:** Parser fix already implemented
|
|
23
|
+
- **Reasoning:** Verified PLACEHOLDER_TARGETS set and isPlaceholderTarget() function are in place with 4 call sites. All 136 tests pass.
|
|
24
|
+
|
|
25
|
+
### Implemented GitHub App directly instead of using Nango
|
|
26
|
+
- **Chose:** Implemented GitHub App directly instead of using Nango
|
|
27
|
+
- **Reasoning:** Existing codebase uses direct GitHub API calls, keeping implementation consistent avoids adding new dependencies
|
|
28
|
+
|
|
29
|
+
### Implemented native GitHub App auth instead of Nango integration
|
|
30
|
+
- **Chose:** Implemented native GitHub App auth instead of Nango integration
|
|
31
|
+
- **Reasoning:** The codebase already had foundation for GitHub App JWT/tokens. Using native implementation avoids external dependency and aligns with existing patterns.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Chapters
|
|
36
|
+
|
|
37
|
+
### 1. Work
|
|
38
|
+
*Agent: default*
|
|
39
|
+
|
|
40
|
+
- Parser fix already implemented: Parser fix already implemented
|
|
41
|
+
- Implemented GitHub App directly instead of using Nango: Implemented GitHub App directly instead of using Nango
|
|
42
|
+
- Implemented native GitHub App auth instead of Nango integration: Implemented native GitHub App auth instead of Nango integration
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_wkp2fgzdyinb",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Fix continuity parser to handle markdown content",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "relay-continuity-parser"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-03T15:03:22.148Z",
|
|
13
|
+
"agents": [
|
|
14
|
+
{
|
|
15
|
+
"name": "Fixer",
|
|
16
|
+
"role": "lead",
|
|
17
|
+
"joinedAt": "2026-01-03T15:03:22.149Z"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"chapters": [
|
|
21
|
+
{
|
|
22
|
+
"id": "chap_6oeflvp9ydfs",
|
|
23
|
+
"title": "Work",
|
|
24
|
+
"agentName": "default",
|
|
25
|
+
"startedAt": "2026-01-03T15:08:15.586Z",
|
|
26
|
+
"events": [
|
|
27
|
+
{
|
|
28
|
+
"ts": 1767452895587,
|
|
29
|
+
"type": "decision",
|
|
30
|
+
"content": "Increased WebSocket log history from 200 to 5000 lines: Increased WebSocket log history from 200 to 5000 lines",
|
|
31
|
+
"raw": {
|
|
32
|
+
"question": "Increased WebSocket log history from 200 to 5000 lines",
|
|
33
|
+
"chosen": "Increased WebSocket log history from 200 to 5000 lines",
|
|
34
|
+
"alternatives": [],
|
|
35
|
+
"reasoning": "Root cause: server.ts line 1632 only sent 200 lines on WebSocket connect. xterm scrollback (10000) and pty buffer (10000) were fine. Fixed by increasing getWorkerOutput limit to 5000 (half of max buffer)."
|
|
36
|
+
},
|
|
37
|
+
"significance": "high"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"endedAt": "2026-01-03T15:09:03.169Z"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"commits": [],
|
|
44
|
+
"filesChanged": [],
|
|
45
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
46
|
+
"tags": [],
|
|
47
|
+
"completedAt": "2026-01-03T15:09:03.169Z",
|
|
48
|
+
"retrospective": {
|
|
49
|
+
"summary": "Fixed XTermLogViewer scrollback by increasing WebSocket initial history from 200 to 5000 lines in server.ts:1632",
|
|
50
|
+
"approach": "Standard approach",
|
|
51
|
+
"confidence": 0.95
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Trajectory: Fix continuity parser to handle markdown content
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** relay-continuity-parser
|
|
5
|
+
> **Confidence:** 95%
|
|
6
|
+
> **Started:** January 3, 2026 at 04:03 PM
|
|
7
|
+
> **Completed:** January 3, 2026 at 04:09 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Fixed XTermLogViewer scrollback by increasing WebSocket initial history from 200 to 5000 lines in server.ts:1632
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Increased WebSocket log history from 200 to 5000 lines
|
|
22
|
+
- **Chose:** Increased WebSocket log history from 200 to 5000 lines
|
|
23
|
+
- **Reasoning:** Root cause: server.ts line 1632 only sent 200 lines on WebSocket connect. xterm scrollback (10000) and pty buffer (10000) were fine. Fixed by increasing getWorkerOutput limit to 5000 (half of max buffer).
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Chapters
|
|
28
|
+
|
|
29
|
+
### 1. Work
|
|
30
|
+
*Agent: default*
|
|
31
|
+
|
|
32
|
+
- Increased WebSocket log history from 200 to 5000 lines: Increased WebSocket log history from 200 to 5000 lines
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_x14t8w8rn7xg",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Fix trajectory agents array population",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "agent-relay-452"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "abandoned",
|
|
12
|
+
"startedAt": "2026-01-03T13:36:06.506Z",
|
|
13
|
+
"agents": [],
|
|
14
|
+
"chapters": [],
|
|
15
|
+
"commits": [],
|
|
16
|
+
"filesChanged": [],
|
|
17
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
18
|
+
"tags": [],
|
|
19
|
+
"completedAt": "2026-01-03T13:36:55.892Z"
|
|
20
|
+
}
|