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.
Files changed (567) hide show
  1. package/.gitattributes +3 -0
  2. package/.nvmrc +1 -0
  3. package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.json +65 -0
  4. package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.md +37 -0
  5. package/.trajectories/completed/2026-01/traj_1k5if5snst2e.json +65 -0
  6. package/.trajectories/completed/2026-01/traj_1k5if5snst2e.md +37 -0
  7. package/.trajectories/completed/2026-01/traj_1rp3rges5811.json +49 -0
  8. package/.trajectories/completed/2026-01/traj_1rp3rges5811.md +31 -0
  9. package/.trajectories/completed/2026-01/traj_22bhyulruouw.json +113 -0
  10. package/.trajectories/completed/2026-01/traj_22bhyulruouw.md +57 -0
  11. package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.json +53 -0
  12. package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.md +32 -0
  13. package/.trajectories/completed/2026-01/traj_3t0440mjeunc.json +26 -0
  14. package/.trajectories/completed/2026-01/traj_3t0440mjeunc.md +6 -0
  15. package/.trajectories/completed/2026-01/traj_45x9494d9xnr.json +47 -0
  16. package/.trajectories/completed/2026-01/traj_45x9494d9xnr.md +32 -0
  17. package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.json +53 -0
  18. package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.md +32 -0
  19. package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.json +59 -0
  20. package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.md +33 -0
  21. package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.json +53 -0
  22. package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.md +32 -0
  23. package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.json +48 -0
  24. package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.md +24 -0
  25. package/.trajectories/completed/2026-01/traj_7ludwvz45veh.json +209 -0
  26. package/.trajectories/completed/2026-01/traj_7ludwvz45veh.md +97 -0
  27. package/.trajectories/completed/2026-01/traj_9921cuhel0pj.json +48 -0
  28. package/.trajectories/completed/2026-01/traj_9921cuhel0pj.md +24 -0
  29. package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.json +49 -0
  30. package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.md +23 -0
  31. package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.json +53 -0
  32. package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.md +32 -0
  33. package/.trajectories/completed/2026-01/traj_cxofprm2m2en.json +49 -0
  34. package/.trajectories/completed/2026-01/traj_cxofprm2m2en.md +31 -0
  35. package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.json +26 -0
  36. package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.md +6 -0
  37. package/.trajectories/completed/2026-01/traj_dfuvww9pege5.json +59 -0
  38. package/.trajectories/completed/2026-01/traj_dfuvww9pege5.md +37 -0
  39. package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.json +77 -0
  40. package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.md +42 -0
  41. package/.trajectories/completed/2026-01/traj_gjdre5voouod.json +53 -0
  42. package/.trajectories/completed/2026-01/traj_gjdre5voouod.md +32 -0
  43. package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.json +25 -0
  44. package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.md +15 -0
  45. package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.json +101 -0
  46. package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.md +44 -0
  47. package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.json +22 -0
  48. package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.md +5 -0
  49. package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.json +53 -0
  50. package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.md +32 -0
  51. package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.json +25 -0
  52. package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.md +15 -0
  53. package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.json +53 -0
  54. package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.md +32 -0
  55. package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.json +53 -0
  56. package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.md +32 -0
  57. package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.json +48 -0
  58. package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.md +24 -0
  59. package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.json +53 -0
  60. package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.md +32 -0
  61. package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.json +77 -0
  62. package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.md +42 -0
  63. package/.trajectories/completed/2026-01/traj_qft54mi7nfor.json +53 -0
  64. package/.trajectories/completed/2026-01/traj_qft54mi7nfor.md +32 -0
  65. package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.json +83 -0
  66. package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.md +47 -0
  67. package/.trajectories/completed/2026-01/traj_rd9toccj18a0.json +59 -0
  68. package/.trajectories/completed/2026-01/traj_rd9toccj18a0.md +37 -0
  69. package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.json +48 -0
  70. package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.md +16 -0
  71. package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.json +59 -0
  72. package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.md +37 -0
  73. package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.json +53 -0
  74. package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.md +32 -0
  75. package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.json +84 -0
  76. package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.md +109 -0
  77. package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.json +53 -0
  78. package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.md +32 -0
  79. package/.trajectories/completed/2026-01/traj_v87hypnongqx.json +71 -0
  80. package/.trajectories/completed/2026-01/traj_v87hypnongqx.md +42 -0
  81. package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.json +53 -0
  82. package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.md +32 -0
  83. package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.json +20 -0
  84. package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.md +6 -0
  85. package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.json +175 -0
  86. package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.md +82 -0
  87. package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.json +47 -0
  88. package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.md +32 -0
  89. package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.json +59 -0
  90. package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.md +37 -0
  91. package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.json +53 -0
  92. package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.md +32 -0
  93. package/.trajectories/index.json +314 -0
  94. package/ARCHITECTURE.md +1245 -0
  95. package/README.md +1 -1
  96. package/TESTING.md +278 -0
  97. package/deploy/init-db.sql +5 -0
  98. package/deploy/scripts/setup-fly-workspaces.sh +69 -0
  99. package/deploy/scripts/setup-railway.sh +75 -0
  100. package/deploy/workspace/entrypoint-browser.sh +118 -0
  101. package/deploy/workspace/entrypoint.sh +348 -0
  102. package/deploy/workspace/git-credential-relay +111 -0
  103. package/dist/bridge/spawner.d.ts +53 -0
  104. package/dist/bridge/spawner.js +203 -19
  105. package/dist/bridge/types.d.ts +12 -0
  106. package/dist/cli/index.js +618 -5
  107. package/dist/cloud/api/auth.d.ts +3 -2
  108. package/dist/cloud/api/auth.js +10 -98
  109. package/dist/cloud/api/billing.js +30 -9
  110. package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
  111. package/dist/cloud/api/cli-pty-runner.js +119 -0
  112. package/dist/cloud/api/codex-auth-helper.d.ts +15 -0
  113. package/dist/cloud/api/codex-auth-helper.js +100 -0
  114. package/dist/cloud/api/generic-webhooks.d.ts +8 -0
  115. package/dist/cloud/api/generic-webhooks.js +129 -0
  116. package/dist/cloud/api/git.d.ts +8 -0
  117. package/dist/cloud/api/git.js +152 -0
  118. package/dist/cloud/api/github-app.d.ts +11 -0
  119. package/dist/cloud/api/github-app.js +189 -0
  120. package/dist/cloud/api/middleware/planLimits.d.ts +7 -0
  121. package/dist/cloud/api/middleware/planLimits.js +39 -1
  122. package/dist/cloud/api/monitoring.d.ts +11 -0
  123. package/dist/cloud/api/monitoring.js +578 -0
  124. package/dist/cloud/api/nango-auth.d.ts +9 -0
  125. package/dist/cloud/api/nango-auth.js +377 -0
  126. package/dist/cloud/api/onboarding.d.ts +8 -1
  127. package/dist/cloud/api/onboarding.js +313 -119
  128. package/dist/cloud/api/policy.d.ts +8 -0
  129. package/dist/cloud/api/policy.js +229 -0
  130. package/dist/cloud/api/providers.js +114 -42
  131. package/dist/cloud/api/repos.d.ts +1 -0
  132. package/dist/cloud/api/repos.js +186 -0
  133. package/dist/cloud/api/test-helpers.d.ts +10 -0
  134. package/dist/cloud/api/test-helpers.js +575 -0
  135. package/dist/cloud/api/webhooks.d.ts +8 -0
  136. package/dist/cloud/api/webhooks.js +645 -0
  137. package/dist/cloud/api/workspaces.js +320 -12
  138. package/dist/cloud/billing/plans.js +32 -19
  139. package/dist/cloud/billing/types.d.ts +9 -3
  140. package/dist/cloud/config.d.ts +9 -2
  141. package/dist/cloud/config.js +13 -4
  142. package/dist/cloud/db/drizzle.d.ts +84 -1
  143. package/dist/cloud/db/drizzle.js +470 -0
  144. package/dist/cloud/db/index.d.ts +9 -4
  145. package/dist/cloud/db/index.js +11 -3
  146. package/dist/cloud/db/schema.d.ts +3283 -556
  147. package/dist/cloud/db/schema.js +314 -1
  148. package/dist/cloud/index.d.ts +1 -0
  149. package/dist/cloud/index.js +2 -0
  150. package/dist/cloud/provisioner/index.d.ts +56 -0
  151. package/dist/cloud/provisioner/index.js +676 -34
  152. package/dist/cloud/server.d.ts +1 -0
  153. package/dist/cloud/server.js +362 -13
  154. package/dist/cloud/services/auto-scaler.d.ts +152 -0
  155. package/dist/cloud/services/auto-scaler.js +439 -0
  156. package/dist/cloud/services/capacity-manager.d.ts +148 -0
  157. package/dist/cloud/services/capacity-manager.js +449 -0
  158. package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
  159. package/dist/cloud/services/ci-agent-spawner.js +373 -0
  160. package/dist/cloud/services/index.d.ts +12 -0
  161. package/dist/cloud/services/index.js +15 -0
  162. package/dist/cloud/services/mention-handler.d.ts +65 -0
  163. package/dist/cloud/services/mention-handler.js +405 -0
  164. package/dist/cloud/services/nango.d.ts +186 -0
  165. package/dist/cloud/services/nango.js +344 -0
  166. package/dist/cloud/services/persistence.d.ts +131 -0
  167. package/dist/cloud/services/persistence.js +200 -0
  168. package/dist/cloud/services/planLimits.d.ts +37 -0
  169. package/dist/cloud/services/planLimits.js +86 -5
  170. package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
  171. package/dist/cloud/services/scaling-orchestrator.js +502 -0
  172. package/dist/cloud/services/scaling-policy.d.ts +121 -0
  173. package/dist/cloud/services/scaling-policy.js +415 -0
  174. package/dist/cloud/vault/index.js +1 -1
  175. package/dist/cloud/webhooks/index.d.ts +24 -0
  176. package/dist/cloud/webhooks/index.js +29 -0
  177. package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
  178. package/dist/cloud/webhooks/parsers/github.js +234 -0
  179. package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
  180. package/dist/cloud/webhooks/parsers/index.js +30 -0
  181. package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
  182. package/dist/cloud/webhooks/parsers/linear.js +258 -0
  183. package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
  184. package/dist/cloud/webhooks/parsers/slack.js +214 -0
  185. package/dist/cloud/webhooks/responders/github.d.ts +8 -0
  186. package/dist/cloud/webhooks/responders/github.js +73 -0
  187. package/dist/cloud/webhooks/responders/index.d.ts +23 -0
  188. package/dist/cloud/webhooks/responders/index.js +30 -0
  189. package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
  190. package/dist/cloud/webhooks/responders/linear.js +149 -0
  191. package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
  192. package/dist/cloud/webhooks/responders/slack.js +178 -0
  193. package/dist/cloud/webhooks/router.d.ts +25 -0
  194. package/dist/cloud/webhooks/router.js +504 -0
  195. package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
  196. package/dist/cloud/webhooks/rules-engine.js +287 -0
  197. package/dist/cloud/webhooks/types.d.ts +186 -0
  198. package/dist/cloud/webhooks/types.js +8 -0
  199. package/dist/continuity/formatter.d.ts +51 -0
  200. package/dist/continuity/formatter.js +313 -0
  201. package/dist/continuity/handoff-store.d.ts +67 -0
  202. package/dist/continuity/handoff-store.js +472 -0
  203. package/dist/continuity/index.d.ts +45 -0
  204. package/dist/continuity/index.js +48 -0
  205. package/dist/continuity/ledger-store.d.ts +110 -0
  206. package/dist/continuity/ledger-store.js +500 -0
  207. package/dist/continuity/manager.d.ts +178 -0
  208. package/dist/continuity/manager.js +562 -0
  209. package/dist/continuity/parser.d.ts +76 -0
  210. package/dist/continuity/parser.js +579 -0
  211. package/dist/continuity/types.d.ts +180 -0
  212. package/dist/continuity/types.js +9 -0
  213. package/dist/daemon/agent-manager.d.ts +27 -0
  214. package/dist/daemon/agent-manager.js +107 -6
  215. package/dist/daemon/agent-registry.d.ts +32 -0
  216. package/dist/daemon/agent-registry.js +42 -2
  217. package/dist/daemon/api.d.ts +12 -0
  218. package/dist/daemon/api.js +131 -2
  219. package/dist/daemon/cli-auth.d.ts +67 -0
  220. package/dist/daemon/cli-auth.js +537 -0
  221. package/dist/daemon/cloud-sync.js +9 -7
  222. package/dist/daemon/orchestrator.js +30 -0
  223. package/dist/daemon/router.d.ts +5 -0
  224. package/dist/daemon/router.js +78 -26
  225. package/dist/daemon/server.d.ts +5 -0
  226. package/dist/daemon/server.js +9 -1
  227. package/dist/daemon/services/browser-testing.d.ts +88 -0
  228. package/dist/daemon/services/browser-testing.js +244 -0
  229. package/dist/daemon/services/container-spawner.d.ts +135 -0
  230. package/dist/daemon/services/container-spawner.js +313 -0
  231. package/dist/daemon/types.d.ts +5 -1
  232. package/dist/dashboard/out/404.html +1 -1
  233. package/dist/dashboard/out/_next/static/chunks/116-2502180def231162.js +1 -0
  234. package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +1 -0
  235. package/dist/dashboard/out/_next/static/chunks/699-3b1cd6618a45d259.js +1 -0
  236. package/dist/dashboard/out/_next/static/chunks/724-2dae7627550ab88f.js +9 -0
  237. package/dist/dashboard/out/_next/static/chunks/766-1f2dd8cb7f766b0b.js +1 -0
  238. package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-3fdfa60e53f2810d.js +1 -0
  239. package/dist/dashboard/out/_next/static/chunks/app/app/page-e6381e5a6e1fbcfd.js +1 -0
  240. package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-3538dfe0ffe984b8.js +1 -0
  241. package/dist/dashboard/out/_next/static/chunks/app/history/{page-b6edd4dde8d08194.js → page-abb9ab2d329f56e9.js} +1 -1
  242. package/dist/dashboard/out/_next/static/chunks/app/layout-c0d118c0f92d969c.js +1 -0
  243. package/dist/dashboard/out/_next/static/chunks/app/login/page-c22d080201cbd9fb.js +1 -0
  244. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-67a3e98d9a43a6ed.js +1 -0
  245. package/dist/dashboard/out/_next/static/chunks/app/page-77e9c65420a06cfb.js +1 -0
  246. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-b08ed1c34d14434a.js +1 -0
  247. package/dist/dashboard/out/_next/static/chunks/app/providers/page-e88bc117ef7671c3.js +1 -0
  248. package/dist/dashboard/out/_next/static/chunks/app/signup/page-68d34f50baa8ab6b.js +1 -0
  249. package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
  250. package/dist/dashboard/out/_next/static/chunks/{main-app-5d692157a8eb1fd9.js → main-app-6e8e8d3ef4e0192a.js} +1 -1
  251. package/dist/dashboard/out/_next/static/chunks/{main-c2f423b9c9f4591b.js → main-ed4e1fb6f29c34cf.js} +1 -1
  252. package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +1 -0
  253. package/dist/dashboard/out/_next/static/css/29852f26181969a0.css +1 -0
  254. package/dist/dashboard/out/_next/static/css/7c3ae9e8617d42a5.css +1 -0
  255. package/dist/dashboard/out/app/onboarding.html +1 -0
  256. package/dist/dashboard/out/app/onboarding.txt +7 -0
  257. package/dist/dashboard/out/app.html +1 -14
  258. package/dist/dashboard/out/app.txt +2 -2
  259. package/dist/dashboard/out/connect-repos.html +1 -0
  260. package/dist/dashboard/out/connect-repos.txt +7 -0
  261. package/dist/dashboard/out/history.html +1 -1
  262. package/dist/dashboard/out/history.txt +2 -2
  263. package/dist/dashboard/out/index.html +1 -1
  264. package/dist/dashboard/out/index.txt +2 -2
  265. package/dist/dashboard/out/login.html +6 -0
  266. package/dist/dashboard/out/login.txt +7 -0
  267. package/dist/dashboard/out/metrics.html +1 -1
  268. package/dist/dashboard/out/metrics.txt +2 -2
  269. package/dist/dashboard/out/pricing.html +3 -3
  270. package/dist/dashboard/out/pricing.txt +2 -2
  271. package/dist/dashboard/out/providers.html +1 -0
  272. package/dist/dashboard/out/providers.txt +7 -0
  273. package/dist/dashboard/out/signup.html +6 -0
  274. package/dist/dashboard/out/signup.txt +7 -0
  275. package/dist/dashboard-server/server.js +1308 -8
  276. package/dist/hooks/emitter.d.ts +40 -0
  277. package/dist/hooks/emitter.js +63 -0
  278. package/dist/hooks/index.d.ts +3 -0
  279. package/dist/hooks/index.js +3 -0
  280. package/dist/hooks/registry.d.ts +173 -0
  281. package/dist/hooks/registry.js +476 -0
  282. package/dist/hooks/trajectory-hooks.d.ts +52 -0
  283. package/dist/hooks/trajectory-hooks.js +183 -0
  284. package/dist/hooks/types.d.ts +141 -0
  285. package/dist/index.d.ts +2 -0
  286. package/dist/index.js +3 -0
  287. package/dist/memory/adapters/index.d.ts +8 -0
  288. package/dist/memory/adapters/index.js +8 -0
  289. package/dist/memory/adapters/inmemory.d.ts +59 -0
  290. package/dist/memory/adapters/inmemory.js +195 -0
  291. package/dist/memory/adapters/supermemory.d.ts +71 -0
  292. package/dist/memory/adapters/supermemory.js +338 -0
  293. package/dist/memory/factory.d.ts +48 -0
  294. package/dist/memory/factory.js +143 -0
  295. package/dist/memory/index.d.ts +32 -0
  296. package/dist/memory/index.js +32 -0
  297. package/dist/memory/memory-hooks.d.ts +60 -0
  298. package/dist/memory/memory-hooks.js +313 -0
  299. package/dist/memory/service.d.ts +49 -0
  300. package/dist/memory/service.js +146 -0
  301. package/dist/memory/types.d.ts +195 -0
  302. package/dist/memory/types.js +8 -0
  303. package/dist/policy/agent-policy.d.ts +225 -0
  304. package/dist/policy/agent-policy.js +665 -0
  305. package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
  306. package/dist/policy/cloud-policy-fetcher.js +64 -0
  307. package/dist/resiliency/crash-insights.d.ts +156 -0
  308. package/dist/resiliency/crash-insights.js +492 -0
  309. package/dist/resiliency/gossip-health.d.ts +137 -0
  310. package/dist/resiliency/gossip-health.js +241 -0
  311. package/dist/resiliency/index.d.ts +5 -0
  312. package/dist/resiliency/index.js +5 -0
  313. package/dist/resiliency/leader-watchdog.d.ts +109 -0
  314. package/dist/resiliency/leader-watchdog.js +189 -0
  315. package/dist/resiliency/memory-monitor.d.ts +172 -0
  316. package/dist/resiliency/memory-monitor.js +593 -0
  317. package/dist/resiliency/stateless-lead.d.ts +149 -0
  318. package/dist/resiliency/stateless-lead.js +308 -0
  319. package/dist/resiliency/supervisor.d.ts +38 -0
  320. package/dist/resiliency/supervisor.js +122 -0
  321. package/dist/shared/cli-auth-config.d.ts +91 -0
  322. package/dist/shared/cli-auth-config.js +264 -0
  323. package/dist/storage/adapter.d.ts +1 -1
  324. package/dist/trajectory/config.d.ts +84 -0
  325. package/dist/trajectory/config.js +163 -0
  326. package/dist/trajectory/index.d.ts +8 -0
  327. package/dist/trajectory/index.js +8 -0
  328. package/dist/trajectory/integration.d.ts +292 -0
  329. package/dist/trajectory/integration.js +834 -0
  330. package/dist/utils/logger.js +1 -1
  331. package/dist/utils/project-namespace.d.ts +24 -0
  332. package/dist/utils/project-namespace.js +84 -0
  333. package/dist/wrapper/parser.d.ts +10 -0
  334. package/dist/wrapper/parser.js +100 -33
  335. package/dist/wrapper/pty-wrapper.d.ts +197 -16
  336. package/dist/wrapper/pty-wrapper.js +943 -106
  337. package/dist/wrapper/shared.d.ts +165 -0
  338. package/dist/wrapper/shared.js +270 -0
  339. package/dist/wrapper/tmux-wrapper.d.ts +73 -11
  340. package/dist/wrapper/tmux-wrapper.js +541 -120
  341. package/package.json +16 -16
  342. package/scripts/postinstall.js +60 -0
  343. package/test-push.txt +1 -0
  344. package/bin/tmux +0 -0
  345. package/dist/bridge/config.d.ts.map +0 -1
  346. package/dist/bridge/config.js.map +0 -1
  347. package/dist/bridge/index.d.ts.map +0 -1
  348. package/dist/bridge/index.js.map +0 -1
  349. package/dist/bridge/multi-project-client.d.ts.map +0 -1
  350. package/dist/bridge/multi-project-client.js.map +0 -1
  351. package/dist/bridge/shadow-cli.d.ts.map +0 -1
  352. package/dist/bridge/shadow-cli.js.map +0 -1
  353. package/dist/bridge/shadow-config.d.ts.map +0 -1
  354. package/dist/bridge/shadow-config.js.map +0 -1
  355. package/dist/bridge/spawner.d.ts.map +0 -1
  356. package/dist/bridge/spawner.js.map +0 -1
  357. package/dist/bridge/teams-config.d.ts.map +0 -1
  358. package/dist/bridge/teams-config.js.map +0 -1
  359. package/dist/bridge/types.d.ts.map +0 -1
  360. package/dist/bridge/types.js.map +0 -1
  361. package/dist/bridge/utils.d.ts.map +0 -1
  362. package/dist/bridge/utils.js.map +0 -1
  363. package/dist/cli/index.d.ts.map +0 -1
  364. package/dist/cli/index.js.map +0 -1
  365. package/dist/cloud/api/auth.d.ts.map +0 -1
  366. package/dist/cloud/api/auth.js.map +0 -1
  367. package/dist/cloud/api/billing.d.ts.map +0 -1
  368. package/dist/cloud/api/billing.js.map +0 -1
  369. package/dist/cloud/api/coordinators.d.ts.map +0 -1
  370. package/dist/cloud/api/coordinators.js.map +0 -1
  371. package/dist/cloud/api/daemons.d.ts.map +0 -1
  372. package/dist/cloud/api/daemons.js.map +0 -1
  373. package/dist/cloud/api/middleware/planLimits.d.ts.map +0 -1
  374. package/dist/cloud/api/middleware/planLimits.js.map +0 -1
  375. package/dist/cloud/api/onboarding.d.ts.map +0 -1
  376. package/dist/cloud/api/onboarding.js.map +0 -1
  377. package/dist/cloud/api/providers.d.ts.map +0 -1
  378. package/dist/cloud/api/providers.js.map +0 -1
  379. package/dist/cloud/api/repos.d.ts.map +0 -1
  380. package/dist/cloud/api/repos.js.map +0 -1
  381. package/dist/cloud/api/teams.d.ts.map +0 -1
  382. package/dist/cloud/api/teams.js.map +0 -1
  383. package/dist/cloud/api/usage.d.ts.map +0 -1
  384. package/dist/cloud/api/usage.js.map +0 -1
  385. package/dist/cloud/api/workspaces.d.ts.map +0 -1
  386. package/dist/cloud/api/workspaces.js.map +0 -1
  387. package/dist/cloud/billing/index.d.ts.map +0 -1
  388. package/dist/cloud/billing/index.js.map +0 -1
  389. package/dist/cloud/billing/plans.d.ts.map +0 -1
  390. package/dist/cloud/billing/plans.js.map +0 -1
  391. package/dist/cloud/billing/service.d.ts.map +0 -1
  392. package/dist/cloud/billing/service.js.map +0 -1
  393. package/dist/cloud/billing/types.d.ts.map +0 -1
  394. package/dist/cloud/billing/types.js.map +0 -1
  395. package/dist/cloud/config.d.ts.map +0 -1
  396. package/dist/cloud/config.js.map +0 -1
  397. package/dist/cloud/db/drizzle.d.ts.map +0 -1
  398. package/dist/cloud/db/drizzle.js.map +0 -1
  399. package/dist/cloud/db/index.d.ts.map +0 -1
  400. package/dist/cloud/db/index.js.map +0 -1
  401. package/dist/cloud/db/schema.d.ts.map +0 -1
  402. package/dist/cloud/db/schema.js.map +0 -1
  403. package/dist/cloud/index.d.ts.map +0 -1
  404. package/dist/cloud/index.js.map +0 -1
  405. package/dist/cloud/provisioner/index.d.ts.map +0 -1
  406. package/dist/cloud/provisioner/index.js.map +0 -1
  407. package/dist/cloud/server.d.ts.map +0 -1
  408. package/dist/cloud/server.js.map +0 -1
  409. package/dist/cloud/services/coordinator.d.ts.map +0 -1
  410. package/dist/cloud/services/coordinator.js.map +0 -1
  411. package/dist/cloud/services/planLimits.d.ts.map +0 -1
  412. package/dist/cloud/services/planLimits.js.map +0 -1
  413. package/dist/cloud/vault/index.d.ts.map +0 -1
  414. package/dist/cloud/vault/index.js.map +0 -1
  415. package/dist/daemon/agent-manager.d.ts.map +0 -1
  416. package/dist/daemon/agent-manager.js.map +0 -1
  417. package/dist/daemon/agent-registry.d.ts.map +0 -1
  418. package/dist/daemon/agent-registry.js.map +0 -1
  419. package/dist/daemon/api.d.ts.map +0 -1
  420. package/dist/daemon/api.js.map +0 -1
  421. package/dist/daemon/auth.d.ts.map +0 -1
  422. package/dist/daemon/auth.js.map +0 -1
  423. package/dist/daemon/cloud-sync.d.ts.map +0 -1
  424. package/dist/daemon/cloud-sync.js.map +0 -1
  425. package/dist/daemon/connection.d.ts.map +0 -1
  426. package/dist/daemon/connection.js.map +0 -1
  427. package/dist/daemon/index.d.ts.map +0 -1
  428. package/dist/daemon/index.js.map +0 -1
  429. package/dist/daemon/orchestrator.d.ts.map +0 -1
  430. package/dist/daemon/orchestrator.js.map +0 -1
  431. package/dist/daemon/registry.d.ts.map +0 -1
  432. package/dist/daemon/registry.js.map +0 -1
  433. package/dist/daemon/router.d.ts.map +0 -1
  434. package/dist/daemon/router.js.map +0 -1
  435. package/dist/daemon/server.d.ts.map +0 -1
  436. package/dist/daemon/server.js.map +0 -1
  437. package/dist/daemon/types.d.ts.map +0 -1
  438. package/dist/daemon/types.js.map +0 -1
  439. package/dist/daemon/workspace-manager.d.ts.map +0 -1
  440. package/dist/daemon/workspace-manager.js.map +0 -1
  441. package/dist/dashboard/out/_next/static/chunks/693-7b3301d8f6bc5014.js +0 -1
  442. package/dist/dashboard/out/_next/static/chunks/713-f78477eb185f1f4d.js +0 -1
  443. package/dist/dashboard/out/_next/static/chunks/766-e53e1cfe39b0b5b5.js +0 -1
  444. package/dist/dashboard/out/_next/static/chunks/900-037c64bfd797fb2a.js +0 -1
  445. package/dist/dashboard/out/_next/static/chunks/app/app/page-e3d9e1f4466b9bae.js +0 -1
  446. package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +0 -1
  447. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-e68825a81db67ba1.js +0 -1
  448. package/dist/dashboard/out/_next/static/chunks/app/page-cc108bf68c8a657f.js +0 -1
  449. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-d80e03a5297f95b6.js +0 -1
  450. package/dist/dashboard/out/_next/static/chunks/webpack-a5acc2831d094776.js +0 -1
  451. package/dist/dashboard/out/_next/static/css/79b80143647a07d7.css +0 -1
  452. package/dist/dashboard/out/_next/static/css/8cf277370ad48cfe.css +0 -1
  453. package/dist/dashboard-server/metrics.d.ts.map +0 -1
  454. package/dist/dashboard-server/metrics.js.map +0 -1
  455. package/dist/dashboard-server/needs-attention.d.ts.map +0 -1
  456. package/dist/dashboard-server/needs-attention.js.map +0 -1
  457. package/dist/dashboard-server/server.d.ts.map +0 -1
  458. package/dist/dashboard-server/server.js.map +0 -1
  459. package/dist/dashboard-server/start.d.ts.map +0 -1
  460. package/dist/dashboard-server/start.js.map +0 -1
  461. package/dist/hooks/inbox-check/hook.d.ts.map +0 -1
  462. package/dist/hooks/inbox-check/hook.js.map +0 -1
  463. package/dist/hooks/inbox-check/index.d.ts.map +0 -1
  464. package/dist/hooks/inbox-check/index.js.map +0 -1
  465. package/dist/hooks/inbox-check/types.d.ts.map +0 -1
  466. package/dist/hooks/inbox-check/types.js.map +0 -1
  467. package/dist/hooks/inbox-check/utils.d.ts.map +0 -1
  468. package/dist/hooks/inbox-check/utils.js.map +0 -1
  469. package/dist/hooks/index.d.ts.map +0 -1
  470. package/dist/hooks/index.js.map +0 -1
  471. package/dist/hooks/types.d.ts.map +0 -1
  472. package/dist/hooks/types.js.map +0 -1
  473. package/dist/index.d.ts.map +0 -1
  474. package/dist/index.js.map +0 -1
  475. package/dist/protocol/framing.d.ts.map +0 -1
  476. package/dist/protocol/framing.js.map +0 -1
  477. package/dist/protocol/index.d.ts.map +0 -1
  478. package/dist/protocol/index.js.map +0 -1
  479. package/dist/protocol/types.d.ts.map +0 -1
  480. package/dist/protocol/types.js.map +0 -1
  481. package/dist/resiliency/context-persistence.d.ts.map +0 -1
  482. package/dist/resiliency/context-persistence.js.map +0 -1
  483. package/dist/resiliency/health-monitor.d.ts.map +0 -1
  484. package/dist/resiliency/health-monitor.js.map +0 -1
  485. package/dist/resiliency/index.d.ts.map +0 -1
  486. package/dist/resiliency/index.js.map +0 -1
  487. package/dist/resiliency/logger.d.ts.map +0 -1
  488. package/dist/resiliency/logger.js.map +0 -1
  489. package/dist/resiliency/metrics.d.ts.map +0 -1
  490. package/dist/resiliency/metrics.js.map +0 -1
  491. package/dist/resiliency/provider-context.d.ts.map +0 -1
  492. package/dist/resiliency/provider-context.js.map +0 -1
  493. package/dist/resiliency/supervisor.d.ts.map +0 -1
  494. package/dist/resiliency/supervisor.js.map +0 -1
  495. package/dist/state/agent-state.d.ts.map +0 -1
  496. package/dist/state/agent-state.js.map +0 -1
  497. package/dist/storage/adapter.d.ts.map +0 -1
  498. package/dist/storage/adapter.js.map +0 -1
  499. package/dist/storage/sqlite-adapter.d.ts.map +0 -1
  500. package/dist/storage/sqlite-adapter.js.map +0 -1
  501. package/dist/utils/agent-config.d.ts.map +0 -1
  502. package/dist/utils/agent-config.js.map +0 -1
  503. package/dist/utils/command-resolver.d.ts.map +0 -1
  504. package/dist/utils/command-resolver.js.map +0 -1
  505. package/dist/utils/index.d.ts.map +0 -1
  506. package/dist/utils/index.js.map +0 -1
  507. package/dist/utils/logger.d.ts.map +0 -1
  508. package/dist/utils/logger.js.map +0 -1
  509. package/dist/utils/name-generator.d.ts.map +0 -1
  510. package/dist/utils/name-generator.js.map +0 -1
  511. package/dist/utils/project-namespace.d.ts.map +0 -1
  512. package/dist/utils/project-namespace.js.map +0 -1
  513. package/dist/utils/tmux-resolver.d.ts.map +0 -1
  514. package/dist/utils/tmux-resolver.js.map +0 -1
  515. package/dist/utils/update-checker.d.ts.map +0 -1
  516. package/dist/utils/update-checker.js.map +0 -1
  517. package/dist/wrapper/client.d.ts.map +0 -1
  518. package/dist/wrapper/client.js.map +0 -1
  519. package/dist/wrapper/inbox.d.ts.map +0 -1
  520. package/dist/wrapper/inbox.js.map +0 -1
  521. package/dist/wrapper/index.d.ts.map +0 -1
  522. package/dist/wrapper/index.js.map +0 -1
  523. package/dist/wrapper/parser.d.ts.map +0 -1
  524. package/dist/wrapper/parser.js.map +0 -1
  525. package/dist/wrapper/pty-wrapper.d.ts.map +0 -1
  526. package/dist/wrapper/pty-wrapper.js.map +0 -1
  527. package/dist/wrapper/tmux-wrapper.d.ts.map +0 -1
  528. package/dist/wrapper/tmux-wrapper.js.map +0 -1
  529. package/docs/AGENTS.md +0 -513
  530. package/docs/ARCHITECTURE_DECISIONS.md +0 -175
  531. package/docs/CHANGELOG.md +0 -11
  532. package/docs/CLI-SIMPLIFICATION-COMPLETE.md +0 -48
  533. package/docs/CLOUD-ARCHITECTURE.md +0 -652
  534. package/docs/CLOUD-ONBOARDING-DESIGN.md +0 -1983
  535. package/docs/COMPETITIVE_ANALYSIS.md +0 -897
  536. package/docs/CONTRIBUTING.md +0 -151
  537. package/docs/DESIGN_BRIDGE_STAFFING.md +0 -878
  538. package/docs/DESIGN_V2.md +0 -1079
  539. package/docs/INTEGRATION-GUIDE.md +0 -926
  540. package/docs/MONETIZATION.md +0 -1679
  541. package/docs/PROPOSAL-trajectories.md +0 -1582
  542. package/docs/PROTOCOL.md +0 -325
  543. package/docs/SCALING_ANALYSIS.md +0 -280
  544. package/docs/TESTING_PRESENCE_FEATURES.md +0 -327
  545. package/docs/TMUX_IMPLEMENTATION_NOTES.md +0 -364
  546. package/docs/TMUX_IMPROVEMENTS.md +0 -968
  547. package/docs/agent-relay-snippet.md +0 -168
  548. package/docs/competitive-analysis-mcp-agent-mail.md +0 -389
  549. package/docs/dashboard-v2-plan.md +0 -179
  550. package/docs/guides/CLOUD.md +0 -236
  551. package/docs/guides/LOCAL.md +0 -535
  552. package/docs/guides/SELF-HOSTED.md +0 -494
  553. package/docs/proposals/shadow-as-subagent.md +0 -765
  554. package/docs/proposals/slack-bot-integration.md +0 -1457
  555. package/docs/removable-code-analysis.md +0 -24
  556. package/scripts/dev/PUBLIC_RELEASE_PLAN.md +0 -88
  557. package/scripts/dev/dev-team-setup.sh +0 -431
  558. package/scripts/e2e-test.sh +0 -119
  559. package/scripts/games/game-protocol.md +0 -79
  560. package/scripts/games/hearts-setup.sh +0 -264
  561. package/scripts/tictactoe-setup.sh +0 -181
  562. /package/dist/dashboard/out/_next/static/chunks/{117-b2cd8d6485aacf2b.js → 117-f7b8ab0809342e77.js} +0 -0
  563. /package/dist/dashboard/out/_next/static/chunks/{648-8f3f26864ce515e5.js → 648-5cc6e1921389a58a.js} +0 -0
  564. /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-0b990dbb71d72a98.js → page-53b8a69f76db17d0.js} +0 -0
  565. /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-bf46c09eb57e019c.js → fd9d1056-609918ca7b6280bb.js} +0 -0
  566. /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_buildManifest.js +0 -0
  567. /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
+ }
@@ -0,0 +1,6 @@
1
+ # Trajectory: Fix trajectory agents array population
2
+
3
+ > **Status:** ❌ Abandoned
4
+ > **Task:** agent-relay-452
5
+ > **Started:** January 3, 2026 at 02:36 PM
6
+ > **Completed:** January 3, 2026 at 02:36 PM