agent-relay 1.2.0 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) 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/TESTING.md +278 -0
  96. package/deploy/init-db.sql +5 -0
  97. package/deploy/scripts/setup-fly-workspaces.sh +69 -0
  98. package/deploy/scripts/setup-railway.sh +75 -0
  99. package/deploy/workspace/entrypoint-browser.sh +118 -0
  100. package/deploy/workspace/entrypoint.sh +348 -0
  101. package/deploy/workspace/git-credential-relay +111 -0
  102. package/dist/cli/index.js +218 -1
  103. package/dist/cloud/api/billing.js +30 -9
  104. package/dist/cloud/api/codex-auth-helper.d.ts +15 -0
  105. package/dist/cloud/api/codex-auth-helper.js +100 -0
  106. package/dist/cloud/api/git.js +24 -3
  107. package/dist/cloud/api/onboarding.js +15 -2
  108. package/dist/cloud/api/repos.d.ts +1 -0
  109. package/dist/cloud/api/repos.js +186 -0
  110. package/dist/cloud/api/webhooks.d.ts +1 -0
  111. package/dist/cloud/api/webhooks.js +149 -0
  112. package/dist/cloud/api/workspaces.js +97 -6
  113. package/dist/cloud/billing/plans.js +19 -19
  114. package/dist/cloud/provisioner/index.d.ts +32 -0
  115. package/dist/cloud/provisioner/index.js +362 -21
  116. package/dist/cloud/server.js +6 -1
  117. package/dist/cloud/services/nango.d.ts +60 -0
  118. package/dist/cloud/services/nango.js +153 -0
  119. package/dist/cloud/services/planLimits.d.ts +22 -0
  120. package/dist/cloud/services/planLimits.js +58 -5
  121. package/dist/dashboard/out/404.html +1 -1
  122. package/dist/dashboard/out/_next/static/chunks/699-3b1cd6618a45d259.js +1 -0
  123. package/dist/dashboard/out/_next/static/chunks/766-1f2dd8cb7f766b0b.js +1 -0
  124. package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-3fdfa60e53f2810d.js +1 -0
  125. package/dist/dashboard/out/_next/static/chunks/app/app/page-e6381e5a6e1fbcfd.js +1 -0
  126. package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-3538dfe0ffe984b8.js +1 -0
  127. package/dist/dashboard/out/_next/static/chunks/app/history/{page-56a8b4616a90dc43.js → page-abb9ab2d329f56e9.js} +1 -1
  128. package/dist/dashboard/out/_next/static/chunks/app/layout-c0d118c0f92d969c.js +1 -0
  129. package/dist/dashboard/out/_next/static/chunks/app/login/{page-3eac37ea6f5dd153.js → page-c22d080201cbd9fb.js} +1 -1
  130. package/dist/dashboard/out/_next/static/chunks/app/metrics/{page-1081dd190a331a91.js → page-67a3e98d9a43a6ed.js} +1 -1
  131. package/dist/dashboard/out/_next/static/chunks/app/{page-daf87e86f783f980.js → page-77e9c65420a06cfb.js} +1 -1
  132. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-b08ed1c34d14434a.js +1 -0
  133. package/dist/dashboard/out/_next/static/chunks/app/providers/page-e88bc117ef7671c3.js +1 -0
  134. package/dist/dashboard/out/_next/static/chunks/app/signup/{page-fee4ed1709070bcd.js → page-68d34f50baa8ab6b.js} +1 -1
  135. package/dist/dashboard/out/_next/static/chunks/{main-app-5d692157a8eb1fd9.js → main-app-6e8e8d3ef4e0192a.js} +1 -1
  136. package/dist/dashboard/out/_next/static/chunks/{main-97850e03d723ea8c.js → main-ed4e1fb6f29c34cf.js} +1 -1
  137. package/dist/dashboard/out/_next/static/css/7c3ae9e8617d42a5.css +1 -0
  138. package/dist/dashboard/out/app/onboarding.html +1 -0
  139. package/dist/dashboard/out/app/onboarding.txt +7 -0
  140. package/dist/dashboard/out/app.html +1 -1
  141. package/dist/dashboard/out/app.txt +2 -2
  142. package/dist/dashboard/out/connect-repos.html +1 -1
  143. package/dist/dashboard/out/connect-repos.txt +2 -2
  144. package/dist/dashboard/out/history.html +1 -1
  145. package/dist/dashboard/out/history.txt +2 -2
  146. package/dist/dashboard/out/index.html +1 -1
  147. package/dist/dashboard/out/index.txt +2 -2
  148. package/dist/dashboard/out/login.html +2 -2
  149. package/dist/dashboard/out/login.txt +2 -2
  150. package/dist/dashboard/out/metrics.html +1 -1
  151. package/dist/dashboard/out/metrics.txt +2 -2
  152. package/dist/dashboard/out/pricing.html +3 -3
  153. package/dist/dashboard/out/pricing.txt +2 -2
  154. package/dist/dashboard/out/providers.html +1 -1
  155. package/dist/dashboard/out/providers.txt +2 -2
  156. package/dist/dashboard/out/signup.html +2 -2
  157. package/dist/dashboard/out/signup.txt +2 -2
  158. package/package.json +2 -11
  159. package/test-push.txt +1 -0
  160. package/bin/tmux +0 -0
  161. package/dist/bridge/config.d.ts.map +0 -1
  162. package/dist/bridge/config.js.map +0 -1
  163. package/dist/bridge/index.d.ts.map +0 -1
  164. package/dist/bridge/index.js.map +0 -1
  165. package/dist/bridge/multi-project-client.d.ts.map +0 -1
  166. package/dist/bridge/multi-project-client.js.map +0 -1
  167. package/dist/bridge/shadow-cli.d.ts.map +0 -1
  168. package/dist/bridge/shadow-cli.js.map +0 -1
  169. package/dist/bridge/shadow-config.d.ts.map +0 -1
  170. package/dist/bridge/shadow-config.js.map +0 -1
  171. package/dist/bridge/spawner.d.ts.map +0 -1
  172. package/dist/bridge/spawner.js.map +0 -1
  173. package/dist/bridge/teams-config.d.ts.map +0 -1
  174. package/dist/bridge/teams-config.js.map +0 -1
  175. package/dist/bridge/types.d.ts.map +0 -1
  176. package/dist/bridge/types.js.map +0 -1
  177. package/dist/bridge/utils.d.ts.map +0 -1
  178. package/dist/bridge/utils.js.map +0 -1
  179. package/dist/cli/index.d.ts.map +0 -1
  180. package/dist/cli/index.js.map +0 -1
  181. package/dist/cloud/api/auth.d.ts.map +0 -1
  182. package/dist/cloud/api/auth.js.map +0 -1
  183. package/dist/cloud/api/billing.d.ts.map +0 -1
  184. package/dist/cloud/api/billing.js.map +0 -1
  185. package/dist/cloud/api/cli-pty-runner.d.ts.map +0 -1
  186. package/dist/cloud/api/cli-pty-runner.js.map +0 -1
  187. package/dist/cloud/api/coordinators.d.ts.map +0 -1
  188. package/dist/cloud/api/coordinators.js.map +0 -1
  189. package/dist/cloud/api/daemons.d.ts.map +0 -1
  190. package/dist/cloud/api/daemons.js.map +0 -1
  191. package/dist/cloud/api/generic-webhooks.d.ts.map +0 -1
  192. package/dist/cloud/api/generic-webhooks.js.map +0 -1
  193. package/dist/cloud/api/git.d.ts.map +0 -1
  194. package/dist/cloud/api/git.js.map +0 -1
  195. package/dist/cloud/api/github-app.d.ts.map +0 -1
  196. package/dist/cloud/api/github-app.js.map +0 -1
  197. package/dist/cloud/api/middleware/planLimits.d.ts.map +0 -1
  198. package/dist/cloud/api/middleware/planLimits.js.map +0 -1
  199. package/dist/cloud/api/monitoring.d.ts.map +0 -1
  200. package/dist/cloud/api/monitoring.js.map +0 -1
  201. package/dist/cloud/api/nango-auth.d.ts.map +0 -1
  202. package/dist/cloud/api/nango-auth.js.map +0 -1
  203. package/dist/cloud/api/onboarding.d.ts.map +0 -1
  204. package/dist/cloud/api/onboarding.js.map +0 -1
  205. package/dist/cloud/api/policy.d.ts.map +0 -1
  206. package/dist/cloud/api/policy.js.map +0 -1
  207. package/dist/cloud/api/providers.d.ts.map +0 -1
  208. package/dist/cloud/api/providers.js.map +0 -1
  209. package/dist/cloud/api/repos.d.ts.map +0 -1
  210. package/dist/cloud/api/repos.js.map +0 -1
  211. package/dist/cloud/api/teams.d.ts.map +0 -1
  212. package/dist/cloud/api/teams.js.map +0 -1
  213. package/dist/cloud/api/test-helpers.d.ts.map +0 -1
  214. package/dist/cloud/api/test-helpers.js.map +0 -1
  215. package/dist/cloud/api/usage.d.ts.map +0 -1
  216. package/dist/cloud/api/usage.js.map +0 -1
  217. package/dist/cloud/api/webhooks.d.ts.map +0 -1
  218. package/dist/cloud/api/webhooks.js.map +0 -1
  219. package/dist/cloud/api/workspaces.d.ts.map +0 -1
  220. package/dist/cloud/api/workspaces.js.map +0 -1
  221. package/dist/cloud/billing/index.d.ts.map +0 -1
  222. package/dist/cloud/billing/index.js.map +0 -1
  223. package/dist/cloud/billing/plans.d.ts.map +0 -1
  224. package/dist/cloud/billing/plans.js.map +0 -1
  225. package/dist/cloud/billing/service.d.ts.map +0 -1
  226. package/dist/cloud/billing/service.js.map +0 -1
  227. package/dist/cloud/billing/types.d.ts.map +0 -1
  228. package/dist/cloud/billing/types.js.map +0 -1
  229. package/dist/cloud/config.d.ts.map +0 -1
  230. package/dist/cloud/config.js.map +0 -1
  231. package/dist/cloud/db/drizzle.d.ts.map +0 -1
  232. package/dist/cloud/db/drizzle.js.map +0 -1
  233. package/dist/cloud/db/index.d.ts.map +0 -1
  234. package/dist/cloud/db/index.js.map +0 -1
  235. package/dist/cloud/db/schema.d.ts.map +0 -1
  236. package/dist/cloud/db/schema.js.map +0 -1
  237. package/dist/cloud/index.d.ts.map +0 -1
  238. package/dist/cloud/index.js.map +0 -1
  239. package/dist/cloud/provisioner/index.d.ts.map +0 -1
  240. package/dist/cloud/provisioner/index.js.map +0 -1
  241. package/dist/cloud/server.d.ts.map +0 -1
  242. package/dist/cloud/server.js.map +0 -1
  243. package/dist/cloud/services/auto-scaler.d.ts.map +0 -1
  244. package/dist/cloud/services/auto-scaler.js.map +0 -1
  245. package/dist/cloud/services/capacity-manager.d.ts.map +0 -1
  246. package/dist/cloud/services/capacity-manager.js.map +0 -1
  247. package/dist/cloud/services/ci-agent-spawner.d.ts.map +0 -1
  248. package/dist/cloud/services/ci-agent-spawner.js.map +0 -1
  249. package/dist/cloud/services/coordinator.d.ts.map +0 -1
  250. package/dist/cloud/services/coordinator.js.map +0 -1
  251. package/dist/cloud/services/index.d.ts.map +0 -1
  252. package/dist/cloud/services/index.js.map +0 -1
  253. package/dist/cloud/services/mention-handler.d.ts.map +0 -1
  254. package/dist/cloud/services/mention-handler.js.map +0 -1
  255. package/dist/cloud/services/nango.d.ts.map +0 -1
  256. package/dist/cloud/services/nango.js.map +0 -1
  257. package/dist/cloud/services/persistence.d.ts.map +0 -1
  258. package/dist/cloud/services/persistence.js.map +0 -1
  259. package/dist/cloud/services/planLimits.d.ts.map +0 -1
  260. package/dist/cloud/services/planLimits.js.map +0 -1
  261. package/dist/cloud/services/scaling-orchestrator.d.ts.map +0 -1
  262. package/dist/cloud/services/scaling-orchestrator.js.map +0 -1
  263. package/dist/cloud/services/scaling-policy.d.ts.map +0 -1
  264. package/dist/cloud/services/scaling-policy.js.map +0 -1
  265. package/dist/cloud/vault/index.d.ts.map +0 -1
  266. package/dist/cloud/vault/index.js.map +0 -1
  267. package/dist/cloud/webhooks/index.d.ts.map +0 -1
  268. package/dist/cloud/webhooks/index.js.map +0 -1
  269. package/dist/cloud/webhooks/parsers/github.d.ts.map +0 -1
  270. package/dist/cloud/webhooks/parsers/github.js.map +0 -1
  271. package/dist/cloud/webhooks/parsers/index.d.ts.map +0 -1
  272. package/dist/cloud/webhooks/parsers/index.js.map +0 -1
  273. package/dist/cloud/webhooks/parsers/linear.d.ts.map +0 -1
  274. package/dist/cloud/webhooks/parsers/linear.js.map +0 -1
  275. package/dist/cloud/webhooks/parsers/slack.d.ts.map +0 -1
  276. package/dist/cloud/webhooks/parsers/slack.js.map +0 -1
  277. package/dist/cloud/webhooks/responders/github.d.ts.map +0 -1
  278. package/dist/cloud/webhooks/responders/github.js.map +0 -1
  279. package/dist/cloud/webhooks/responders/index.d.ts.map +0 -1
  280. package/dist/cloud/webhooks/responders/index.js.map +0 -1
  281. package/dist/cloud/webhooks/responders/linear.d.ts.map +0 -1
  282. package/dist/cloud/webhooks/responders/linear.js.map +0 -1
  283. package/dist/cloud/webhooks/responders/slack.d.ts.map +0 -1
  284. package/dist/cloud/webhooks/responders/slack.js.map +0 -1
  285. package/dist/cloud/webhooks/router.d.ts.map +0 -1
  286. package/dist/cloud/webhooks/router.js.map +0 -1
  287. package/dist/cloud/webhooks/rules-engine.d.ts.map +0 -1
  288. package/dist/cloud/webhooks/rules-engine.js.map +0 -1
  289. package/dist/cloud/webhooks/types.d.ts.map +0 -1
  290. package/dist/cloud/webhooks/types.js.map +0 -1
  291. package/dist/continuity/formatter.d.ts.map +0 -1
  292. package/dist/continuity/formatter.js.map +0 -1
  293. package/dist/continuity/handoff-store.d.ts.map +0 -1
  294. package/dist/continuity/handoff-store.js.map +0 -1
  295. package/dist/continuity/index.d.ts.map +0 -1
  296. package/dist/continuity/index.js.map +0 -1
  297. package/dist/continuity/ledger-store.d.ts.map +0 -1
  298. package/dist/continuity/ledger-store.js.map +0 -1
  299. package/dist/continuity/manager.d.ts.map +0 -1
  300. package/dist/continuity/manager.js.map +0 -1
  301. package/dist/continuity/parser.d.ts.map +0 -1
  302. package/dist/continuity/parser.js.map +0 -1
  303. package/dist/continuity/types.d.ts.map +0 -1
  304. package/dist/continuity/types.js.map +0 -1
  305. package/dist/daemon/agent-manager.d.ts.map +0 -1
  306. package/dist/daemon/agent-manager.js.map +0 -1
  307. package/dist/daemon/agent-registry.d.ts.map +0 -1
  308. package/dist/daemon/agent-registry.js.map +0 -1
  309. package/dist/daemon/api.d.ts.map +0 -1
  310. package/dist/daemon/api.js.map +0 -1
  311. package/dist/daemon/auth.d.ts.map +0 -1
  312. package/dist/daemon/auth.js.map +0 -1
  313. package/dist/daemon/cli-auth.d.ts.map +0 -1
  314. package/dist/daemon/cli-auth.js.map +0 -1
  315. package/dist/daemon/cloud-sync.d.ts.map +0 -1
  316. package/dist/daemon/cloud-sync.js.map +0 -1
  317. package/dist/daemon/connection.d.ts.map +0 -1
  318. package/dist/daemon/connection.js.map +0 -1
  319. package/dist/daemon/index.d.ts.map +0 -1
  320. package/dist/daemon/index.js.map +0 -1
  321. package/dist/daemon/orchestrator.d.ts.map +0 -1
  322. package/dist/daemon/orchestrator.js.map +0 -1
  323. package/dist/daemon/registry.d.ts.map +0 -1
  324. package/dist/daemon/registry.js.map +0 -1
  325. package/dist/daemon/router.d.ts.map +0 -1
  326. package/dist/daemon/router.js.map +0 -1
  327. package/dist/daemon/server.d.ts.map +0 -1
  328. package/dist/daemon/server.js.map +0 -1
  329. package/dist/daemon/services/browser-testing.d.ts.map +0 -1
  330. package/dist/daemon/services/browser-testing.js.map +0 -1
  331. package/dist/daemon/services/container-spawner.d.ts.map +0 -1
  332. package/dist/daemon/services/container-spawner.js.map +0 -1
  333. package/dist/daemon/types.d.ts.map +0 -1
  334. package/dist/daemon/types.js.map +0 -1
  335. package/dist/daemon/workspace-manager.d.ts.map +0 -1
  336. package/dist/daemon/workspace-manager.js.map +0 -1
  337. package/dist/dashboard/out/_next/static/chunks/480-2d4111711d4e473c.js +0 -1
  338. package/dist/dashboard/out/_next/static/chunks/766-c3a14283c88d815b.js +0 -1
  339. package/dist/dashboard/out/_next/static/chunks/app/app/page-7120be68bea622f3.js +0 -1
  340. package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-dc2e3a1a22478efc.js +0 -1
  341. package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +0 -1
  342. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-4d72d5a5d8a9b618.js +0 -1
  343. package/dist/dashboard/out/_next/static/chunks/app/providers/page-b68a681526eb145e.js +0 -1
  344. package/dist/dashboard/out/_next/static/css/411ce23ffeae9f76.css +0 -1
  345. package/dist/dashboard-server/metrics.d.ts.map +0 -1
  346. package/dist/dashboard-server/metrics.js.map +0 -1
  347. package/dist/dashboard-server/needs-attention.d.ts.map +0 -1
  348. package/dist/dashboard-server/needs-attention.js.map +0 -1
  349. package/dist/dashboard-server/server.d.ts.map +0 -1
  350. package/dist/dashboard-server/server.js.map +0 -1
  351. package/dist/dashboard-server/start.d.ts.map +0 -1
  352. package/dist/dashboard-server/start.js.map +0 -1
  353. package/dist/hooks/emitter.d.ts.map +0 -1
  354. package/dist/hooks/emitter.js.map +0 -1
  355. package/dist/hooks/inbox-check/hook.d.ts.map +0 -1
  356. package/dist/hooks/inbox-check/hook.js.map +0 -1
  357. package/dist/hooks/inbox-check/index.d.ts.map +0 -1
  358. package/dist/hooks/inbox-check/index.js.map +0 -1
  359. package/dist/hooks/inbox-check/types.d.ts.map +0 -1
  360. package/dist/hooks/inbox-check/types.js.map +0 -1
  361. package/dist/hooks/inbox-check/utils.d.ts.map +0 -1
  362. package/dist/hooks/inbox-check/utils.js.map +0 -1
  363. package/dist/hooks/index.d.ts.map +0 -1
  364. package/dist/hooks/index.js.map +0 -1
  365. package/dist/hooks/registry.d.ts.map +0 -1
  366. package/dist/hooks/registry.js.map +0 -1
  367. package/dist/hooks/trajectory-hooks.d.ts.map +0 -1
  368. package/dist/hooks/trajectory-hooks.js.map +0 -1
  369. package/dist/hooks/types.d.ts.map +0 -1
  370. package/dist/hooks/types.js.map +0 -1
  371. package/dist/index.d.ts.map +0 -1
  372. package/dist/index.js.map +0 -1
  373. package/dist/memory/adapters/index.d.ts.map +0 -1
  374. package/dist/memory/adapters/index.js.map +0 -1
  375. package/dist/memory/adapters/inmemory.d.ts.map +0 -1
  376. package/dist/memory/adapters/inmemory.js.map +0 -1
  377. package/dist/memory/adapters/supermemory.d.ts.map +0 -1
  378. package/dist/memory/adapters/supermemory.js.map +0 -1
  379. package/dist/memory/factory.d.ts.map +0 -1
  380. package/dist/memory/factory.js.map +0 -1
  381. package/dist/memory/index.d.ts.map +0 -1
  382. package/dist/memory/index.js.map +0 -1
  383. package/dist/memory/memory-hooks.d.ts.map +0 -1
  384. package/dist/memory/memory-hooks.js.map +0 -1
  385. package/dist/memory/service.d.ts.map +0 -1
  386. package/dist/memory/service.js.map +0 -1
  387. package/dist/memory/types.d.ts.map +0 -1
  388. package/dist/memory/types.js.map +0 -1
  389. package/dist/policy/agent-policy.d.ts.map +0 -1
  390. package/dist/policy/agent-policy.js.map +0 -1
  391. package/dist/policy/cloud-policy-fetcher.d.ts.map +0 -1
  392. package/dist/policy/cloud-policy-fetcher.js.map +0 -1
  393. package/dist/protocol/framing.d.ts.map +0 -1
  394. package/dist/protocol/framing.js.map +0 -1
  395. package/dist/protocol/index.d.ts.map +0 -1
  396. package/dist/protocol/index.js.map +0 -1
  397. package/dist/protocol/types.d.ts.map +0 -1
  398. package/dist/protocol/types.js.map +0 -1
  399. package/dist/resiliency/context-persistence.d.ts.map +0 -1
  400. package/dist/resiliency/context-persistence.js.map +0 -1
  401. package/dist/resiliency/crash-insights.d.ts.map +0 -1
  402. package/dist/resiliency/crash-insights.js.map +0 -1
  403. package/dist/resiliency/gossip-health.d.ts.map +0 -1
  404. package/dist/resiliency/gossip-health.js.map +0 -1
  405. package/dist/resiliency/health-monitor.d.ts.map +0 -1
  406. package/dist/resiliency/health-monitor.js.map +0 -1
  407. package/dist/resiliency/index.d.ts.map +0 -1
  408. package/dist/resiliency/index.js.map +0 -1
  409. package/dist/resiliency/leader-watchdog.d.ts.map +0 -1
  410. package/dist/resiliency/leader-watchdog.js.map +0 -1
  411. package/dist/resiliency/logger.d.ts.map +0 -1
  412. package/dist/resiliency/logger.js.map +0 -1
  413. package/dist/resiliency/memory-monitor.d.ts.map +0 -1
  414. package/dist/resiliency/memory-monitor.js.map +0 -1
  415. package/dist/resiliency/metrics.d.ts.map +0 -1
  416. package/dist/resiliency/metrics.js.map +0 -1
  417. package/dist/resiliency/provider-context.d.ts.map +0 -1
  418. package/dist/resiliency/provider-context.js.map +0 -1
  419. package/dist/resiliency/stateless-lead.d.ts.map +0 -1
  420. package/dist/resiliency/stateless-lead.js.map +0 -1
  421. package/dist/resiliency/supervisor.d.ts.map +0 -1
  422. package/dist/resiliency/supervisor.js.map +0 -1
  423. package/dist/shared/cli-auth-config.d.ts.map +0 -1
  424. package/dist/shared/cli-auth-config.js.map +0 -1
  425. package/dist/state/agent-state.d.ts.map +0 -1
  426. package/dist/state/agent-state.js.map +0 -1
  427. package/dist/storage/adapter.d.ts.map +0 -1
  428. package/dist/storage/adapter.js.map +0 -1
  429. package/dist/storage/sqlite-adapter.d.ts.map +0 -1
  430. package/dist/storage/sqlite-adapter.js.map +0 -1
  431. package/dist/trajectory/config.d.ts.map +0 -1
  432. package/dist/trajectory/config.js.map +0 -1
  433. package/dist/trajectory/index.d.ts.map +0 -1
  434. package/dist/trajectory/index.js.map +0 -1
  435. package/dist/trajectory/integration.d.ts.map +0 -1
  436. package/dist/trajectory/integration.js.map +0 -1
  437. package/dist/utils/agent-config.d.ts.map +0 -1
  438. package/dist/utils/agent-config.js.map +0 -1
  439. package/dist/utils/command-resolver.d.ts.map +0 -1
  440. package/dist/utils/command-resolver.js.map +0 -1
  441. package/dist/utils/index.d.ts.map +0 -1
  442. package/dist/utils/index.js.map +0 -1
  443. package/dist/utils/logger.d.ts.map +0 -1
  444. package/dist/utils/logger.js.map +0 -1
  445. package/dist/utils/name-generator.d.ts.map +0 -1
  446. package/dist/utils/name-generator.js.map +0 -1
  447. package/dist/utils/project-namespace.d.ts.map +0 -1
  448. package/dist/utils/project-namespace.js.map +0 -1
  449. package/dist/utils/tmux-resolver.d.ts.map +0 -1
  450. package/dist/utils/tmux-resolver.js.map +0 -1
  451. package/dist/utils/update-checker.d.ts.map +0 -1
  452. package/dist/utils/update-checker.js.map +0 -1
  453. package/dist/wrapper/client.d.ts.map +0 -1
  454. package/dist/wrapper/client.js.map +0 -1
  455. package/dist/wrapper/inbox.d.ts.map +0 -1
  456. package/dist/wrapper/inbox.js.map +0 -1
  457. package/dist/wrapper/index.d.ts.map +0 -1
  458. package/dist/wrapper/index.js.map +0 -1
  459. package/dist/wrapper/parser.d.ts.map +0 -1
  460. package/dist/wrapper/parser.js.map +0 -1
  461. package/dist/wrapper/pty-wrapper.d.ts.map +0 -1
  462. package/dist/wrapper/pty-wrapper.js.map +0 -1
  463. package/dist/wrapper/shared.d.ts.map +0 -1
  464. package/dist/wrapper/shared.js.map +0 -1
  465. package/dist/wrapper/tmux-wrapper.d.ts.map +0 -1
  466. package/dist/wrapper/tmux-wrapper.js.map +0 -1
  467. package/docs/AGENTS.md +0 -513
  468. package/docs/ARCHITECTURE_DECISIONS.md +0 -175
  469. package/docs/CLOUD-ARCHITECTURE.md +0 -804
  470. package/docs/CLOUD-ONBOARDING-DESIGN.md +0 -1983
  471. package/docs/CONTRIBUTING.md +0 -151
  472. package/docs/HOOKS_API.md +0 -394
  473. package/docs/INTEGRATION-GUIDE.md +0 -926
  474. package/docs/PROTOCOL.md +0 -325
  475. package/docs/WRAPPER_EVENTS.md +0 -358
  476. package/docs/agent-policy-snippet.md +0 -40
  477. package/docs/agent-relay-protocol.md +0 -238
  478. package/docs/agent-relay-snippet.md +0 -174
  479. package/docs/archive/CHANGELOG.md +0 -11
  480. package/docs/archive/CLI-SIMPLIFICATION-COMPLETE.md +0 -48
  481. package/docs/archive/DESIGN_BRIDGE_STAFFING.md +0 -878
  482. package/docs/archive/DESIGN_V2.md +0 -1079
  483. package/docs/archive/EXECUTIVE_SUMMARY.md +0 -358
  484. package/docs/archive/MONETIZATION.md +0 -1679
  485. package/docs/archive/PROPOSAL-trajectories.md +0 -1582
  486. package/docs/archive/ROADMAP.md +0 -329
  487. package/docs/archive/SCALING_ANALYSIS.md +0 -280
  488. package/docs/archive/TESTING_PRESENCE_FEATURES.md +0 -327
  489. package/docs/archive/TMUX_IMPLEMENTATION_NOTES.md +0 -364
  490. package/docs/archive/TMUX_IMPROVEMENTS.md +0 -968
  491. package/docs/archive/dashboard-v2-plan.md +0 -179
  492. package/docs/archive/removable-code-analysis.md +0 -24
  493. package/docs/competitive/GASTOWN.md +0 -451
  494. package/docs/competitive/MCP_AGENT_MAIL.md +0 -389
  495. package/docs/competitive/OVERVIEW.md +0 -898
  496. package/docs/competitive/README.md +0 -34
  497. package/docs/competitive/TMUX_ORCHESTRATOR.md +0 -605
  498. package/docs/dashboard.png +0 -0
  499. package/docs/design/ci-failure-webhooks.md +0 -812
  500. package/docs/design/comprehensive-integrations.md +0 -238
  501. package/docs/design/e2b-sandbox-integration.md +0 -504
  502. package/docs/design/github-app-permissions.md +0 -264
  503. package/docs/guides/CLOUD.md +0 -236
  504. package/docs/guides/LOCAL.md +0 -535
  505. package/docs/guides/SELF-HOSTED.md +0 -494
  506. package/docs/local-testing.md +0 -428
  507. package/docs/proposals/continuous-claude-integration.md +0 -622
  508. package/docs/proposals/custom-commands.md +0 -368
  509. package/docs/proposals/shadow-as-subagent.md +0 -765
  510. package/docs/proposals/slack-bot-integration.md +0 -1457
  511. package/docs/tasks/global-skills-system.tasks.md +0 -230
  512. package/docs/tasks/webhook-integrations.tasks.md +0 -184
  513. package/docs/tasks/workspace-capabilities.tasks.md +0 -121
  514. package/docs/testing/RESILIENCY-TEST-PLAN-2026-01-01.md +0 -366
  515. package/scripts/cloud-setup.sh +0 -96
  516. package/scripts/dev/PUBLIC_RELEASE_PLAN.md +0 -88
  517. package/scripts/dev/dev-team-setup.sh +0 -431
  518. package/scripts/e2e-test.sh +0 -119
  519. package/scripts/games/game-protocol.md +0 -79
  520. package/scripts/games/hearts-setup.sh +0 -264
  521. package/scripts/manual-qa.sh +0 -293
  522. package/scripts/run-cloud-qa.sh +0 -220
  523. package/scripts/test-cli-auth/Dockerfile +0 -44
  524. package/scripts/test-cli-auth/Dockerfile.real +0 -79
  525. package/scripts/test-cli-auth/README.md +0 -286
  526. package/scripts/test-cli-auth/ci-test-real-clis.ts +0 -251
  527. package/scripts/test-cli-auth/ci-test-runner.ts +0 -263
  528. package/scripts/test-cli-auth/mock-cli.sh +0 -147
  529. package/scripts/test-cli-auth/package.json +0 -14
  530. package/scripts/test-cli-auth/test-oauth-flow.ts +0 -220
  531. package/scripts/test-pty-input-auto.js +0 -222
  532. package/scripts/test-pty-input.js +0 -150
  533. package/scripts/tictactoe-setup.sh +0 -181
  534. /package/dist/dashboard/out/_next/static/chunks/{117-b100311aff8d5c61.js → 117-f7b8ab0809342e77.js} +0 -0
  535. /package/dist/dashboard/out/_next/static/chunks/{648-a13d3c2b1be45466.js → 648-5cc6e1921389a58a.js} +0 -0
  536. /package/dist/dashboard/out/_next/static/chunks/{724-73c1ee5f60abe860.js → 724-2dae7627550ab88f.js} +0 -0
  537. /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-a4973f3e3c82fb67.js → page-53b8a69f76db17d0.js} +0 -0
  538. /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-bf46c09eb57e019c.js → fd9d1056-609918ca7b6280bb.js} +0 -0
  539. /package/dist/dashboard/out/_next/static/{H5aWG0udPB4iOUIl_gytz → wPgKJtcOmTFLpUncDg16A}/_buildManifest.js +0 -0
  540. /package/dist/dashboard/out/_next/static/{H5aWG0udPB4iOUIl_gytz → wPgKJtcOmTFLpUncDg16A}/_ssgManifest.js +0 -0
package/.gitattributes ADDED
@@ -0,0 +1,3 @@
1
+
2
+ # Use bd merge for beads JSONL files
3
+ .beads/issues.jsonl merge=beads
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v22.0.0
@@ -0,0 +1,65 @@
1
+ {
2
+ "id": "traj_1dviorhnkcb5",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Use uuid() instead of Math.random() for message IDs",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-417"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T15:25:32.815Z",
13
+ "agents": [
14
+ {
15
+ "name": "Backend",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T15:25:32.816Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_hchfr9klzbb0",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-03T15:25:38.791Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767453938793,
29
+ "type": "decision",
30
+ "content": "TrajectoryViewer already wired up but needs UX improvements: TrajectoryViewer already wired up but needs UX improvements",
31
+ "raw": {
32
+ "question": "TrajectoryViewer already wired up but needs UX improvements",
33
+ "chosen": "TrajectoryViewer already wired up but needs UX improvements",
34
+ "alternatives": [],
35
+ "reasoning": "Component was connected in recent commits, but user reported: too small, not browsable, no back navigation"
36
+ },
37
+ "significance": "high"
38
+ },
39
+ {
40
+ "ts": 1767453941057,
41
+ "type": "decision",
42
+ "content": "Used existing uuid library pattern from codebase: Used existing uuid library pattern from codebase",
43
+ "raw": {
44
+ "question": "Used existing uuid library pattern from codebase",
45
+ "chosen": "Used existing uuid library pattern from codebase",
46
+ "alternatives": [],
47
+ "reasoning": "Already imported as 'v4 as uuid' in router.ts, connection.ts, agent-registry.ts - maintaining consistency"
48
+ },
49
+ "significance": "high"
50
+ }
51
+ ],
52
+ "endedAt": "2026-01-03T15:25:42.319Z"
53
+ }
54
+ ],
55
+ "commits": [],
56
+ "filesChanged": [],
57
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
58
+ "tags": [],
59
+ "completedAt": "2026-01-03T15:25:42.319Z",
60
+ "retrospective": {
61
+ "summary": "Replaced Math.random().toString(36).slice(2) with uuid() in daemon/server.ts:284 for cross-machine message IDs. Added uuid import. Build verified.",
62
+ "approach": "Standard approach",
63
+ "confidence": 0.95
64
+ }
65
+ }
@@ -0,0 +1,37 @@
1
+ # Trajectory: Use uuid() instead of Math.random() for message IDs
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-417
5
+ > **Confidence:** 95%
6
+ > **Started:** January 3, 2026 at 04:25 PM
7
+ > **Completed:** January 3, 2026 at 04:25 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Replaced Math.random().toString(36).slice(2) with uuid() in daemon/server.ts:284 for cross-machine message IDs. Added uuid import. Build verified.
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### TrajectoryViewer already wired up but needs UX improvements
22
+ - **Chose:** TrajectoryViewer already wired up but needs UX improvements
23
+ - **Reasoning:** Component was connected in recent commits, but user reported: too small, not browsable, no back navigation
24
+
25
+ ### Used existing uuid library pattern from codebase
26
+ - **Chose:** Used existing uuid library pattern from codebase
27
+ - **Reasoning:** Already imported as 'v4 as uuid' in router.ts, connection.ts, agent-registry.ts - maintaining consistency
28
+
29
+ ---
30
+
31
+ ## Chapters
32
+
33
+ ### 1. Work
34
+ *Agent: default*
35
+
36
+ - TrajectoryViewer already wired up but needs UX improvements: TrajectoryViewer already wired up but needs UX improvements
37
+ - Used existing uuid library pattern from codebase: Used existing uuid library pattern from codebase
@@ -0,0 +1,65 @@
1
+ {
2
+ "id": "traj_1k5if5snst2e",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Fix 404 errors on auth endpoints",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "api-auth-session-404"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T19:55:20.964Z",
13
+ "agents": [
14
+ {
15
+ "name": "Backend",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T19:55:20.965Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_baircdnx9e02",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-03T21:14:10.404Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767474850405,
29
+ "type": "decision",
30
+ "content": "Fixed Nango integration: updated to use Nango Proxy for GitHub API calls, fixed popup blocking in OAuth flow, added missing database columns for user connection tracking: Fixed Nango integration: updated to use Nango Proxy for GitHub API calls, fixed popup blocking in OAuth flow, added missing database columns for user connection tracking",
31
+ "raw": {
32
+ "question": "Fixed Nango integration: updated to use Nango Proxy for GitHub API calls, fixed popup blocking in OAuth flow, added missing database columns for user connection tracking",
33
+ "chosen": "Fixed Nango integration: updated to use Nango Proxy for GitHub API calls, fixed popup blocking in OAuth flow, added missing database columns for user connection tracking",
34
+ "alternatives": [],
35
+ "reasoning": "Using Nango Proxy instead of direct token fetches provides automatic token refresh and cleaner code. Database schema was missing nango_connection_id, incoming_connection_id, and pending_installation_request columns needed for the two-connection OAuth pattern."
36
+ },
37
+ "significance": "high"
38
+ },
39
+ {
40
+ "ts": 1767474871478,
41
+ "type": "decision",
42
+ "content": "Fixed popup:blocked_by_browser error by opening Nango Connect UI synchronously before async session fetch: Fixed popup:blocked_by_browser error by opening Nango Connect UI synchronously before async session fetch",
43
+ "raw": {
44
+ "question": "Fixed popup:blocked_by_browser error by opening Nango Connect UI synchronously before async session fetch",
45
+ "chosen": "Fixed popup:blocked_by_browser error by opening Nango Connect UI synchronously before async session fetch",
46
+ "alternatives": [],
47
+ "reasoning": "Browser popup blockers require window.open() to be called synchronously within the user's click event handler. Awaiting the session token first broke the gesture chain. Solution: open popup immediately (shows loading), then fetch token async, then set token to enable the UI."
48
+ },
49
+ "significance": "high"
50
+ }
51
+ ],
52
+ "endedAt": "2026-01-03T21:14:38.934Z"
53
+ }
54
+ ],
55
+ "commits": [],
56
+ "filesChanged": [],
57
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
58
+ "tags": [],
59
+ "completedAt": "2026-01-03T21:14:38.934Z",
60
+ "retrospective": {
61
+ "summary": "Fixed Nango OAuth popup blocker issue in login and signup pages by reordering operations to open popup synchronously before async token fetch",
62
+ "approach": "Standard approach",
63
+ "confidence": 0.9
64
+ }
65
+ }
@@ -0,0 +1,37 @@
1
+ # Trajectory: Fix 404 errors on auth endpoints
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** api-auth-session-404
5
+ > **Confidence:** 90%
6
+ > **Started:** January 3, 2026 at 08:55 PM
7
+ > **Completed:** January 3, 2026 at 10:14 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Fixed Nango OAuth popup blocker issue in login and signup pages by reordering operations to open popup synchronously before async token fetch
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Fixed Nango integration: updated to use Nango Proxy for GitHub API calls, fixed popup blocking in OAuth flow, added missing database columns for user connection tracking
22
+ - **Chose:** Fixed Nango integration: updated to use Nango Proxy for GitHub API calls, fixed popup blocking in OAuth flow, added missing database columns for user connection tracking
23
+ - **Reasoning:** Using Nango Proxy instead of direct token fetches provides automatic token refresh and cleaner code. Database schema was missing nango_connection_id, incoming_connection_id, and pending_installation_request columns needed for the two-connection OAuth pattern.
24
+
25
+ ### Fixed popup:blocked_by_browser error by opening Nango Connect UI synchronously before async session fetch
26
+ - **Chose:** Fixed popup:blocked_by_browser error by opening Nango Connect UI synchronously before async session fetch
27
+ - **Reasoning:** Browser popup blockers require window.open() to be called synchronously within the user's click event handler. Awaiting the session token first broke the gesture chain. Solution: open popup immediately (shows loading), then fetch token async, then set token to enable the UI.
28
+
29
+ ---
30
+
31
+ ## Chapters
32
+
33
+ ### 1. Work
34
+ *Agent: default*
35
+
36
+ - Fixed Nango integration: updated to use Nango Proxy for GitHub API calls, fixed popup blocking in OAuth flow, added missing database columns for user connection tracking: Fixed Nango integration: updated to use Nango Proxy for GitHub API calls, fixed popup blocking in OAuth flow, added missing database columns for user connection tracking
37
+ - Fixed popup:blocked_by_browser error by opening Nango Connect UI synchronously before async session fetch: Fixed popup:blocked_by_browser error by opening Nango Connect UI synchronously before async session fetch
@@ -0,0 +1,49 @@
1
+ {
2
+ "id": "traj_1rp3rges5811",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Improve trajectory viewer design"
6
+ },
7
+ "status": "completed",
8
+ "startedAt": "2026-01-03T14:09:55.255Z",
9
+ "agents": [
10
+ {
11
+ "name": "LogFixer",
12
+ "role": "lead",
13
+ "joinedAt": "2026-01-03T14:09:55.255Z"
14
+ }
15
+ ],
16
+ "chapters": [
17
+ {
18
+ "id": "chap_qy4e6s6q9rw2",
19
+ "title": "Work",
20
+ "agentName": "default",
21
+ "startedAt": "2026-01-03T14:09:58.790Z",
22
+ "events": [
23
+ {
24
+ "ts": 1767449398791,
25
+ "type": "decision",
26
+ "content": "Hide TrajectoryViewer action when no onStepClick provided: Hide TrajectoryViewer action when no onStepClick provided",
27
+ "raw": {
28
+ "question": "Hide TrajectoryViewer action when no onStepClick provided",
29
+ "chosen": "Hide TrajectoryViewer action when no onStepClick provided",
30
+ "alternatives": [],
31
+ "reasoning": "Prevents empty expanded panes and removes dead View Details button when parent has no detail handler"
32
+ },
33
+ "significance": "high"
34
+ }
35
+ ],
36
+ "endedAt": "2026-01-03T14:10:29.755Z"
37
+ }
38
+ ],
39
+ "commits": [],
40
+ "filesChanged": [],
41
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
42
+ "tags": [],
43
+ "completedAt": "2026-01-03T14:10:29.755Z",
44
+ "retrospective": {
45
+ "summary": "Trimmed TrajectoryViewer detail UX: hide View Details button when no handler, only render detail panel when content exists; rebuilt dashboard and reran targeted vitest.",
46
+ "approach": "Standard approach",
47
+ "confidence": 0.78
48
+ }
49
+ }
@@ -0,0 +1,31 @@
1
+ # Trajectory: Improve trajectory viewer design
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Confidence:** 78%
5
+ > **Started:** January 3, 2026 at 03:09 PM
6
+ > **Completed:** January 3, 2026 at 03:10 PM
7
+
8
+ ---
9
+
10
+ ## Summary
11
+
12
+ Trimmed TrajectoryViewer detail UX: hide View Details button when no handler, only render detail panel when content exists; rebuilt dashboard and reran targeted vitest.
13
+
14
+ **Approach:** Standard approach
15
+
16
+ ---
17
+
18
+ ## Key Decisions
19
+
20
+ ### Hide TrajectoryViewer action when no onStepClick provided
21
+ - **Chose:** Hide TrajectoryViewer action when no onStepClick provided
22
+ - **Reasoning:** Prevents empty expanded panes and removes dead View Details button when parent has no detail handler
23
+
24
+ ---
25
+
26
+ ## Chapters
27
+
28
+ ### 1. Work
29
+ *Agent: default*
30
+
31
+ - Hide TrajectoryViewer action when no onStepClick provided: Hide TrajectoryViewer action when no onStepClick provided
@@ -0,0 +1,113 @@
1
+ {
2
+ "id": "traj_22bhyulruouw",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Lead agent coordination - responsive nav fix and team assignments",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-457"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-05T19:45:50.807Z",
13
+ "agents": [
14
+ {
15
+ "name": "Lead",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-05T19:45:50.808Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_aqd40zd682kf",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-05T19:52:06.440Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767642726441,
29
+ "type": "decision",
30
+ "content": "Assigned responsive nav bug (agent-relay-457) to Frontend with complete file analysis: Assigned responsive nav bug (agent-relay-457) to Frontend with complete file analysis",
31
+ "raw": {
32
+ "question": "Assigned responsive nav bug (agent-relay-457) to Frontend with complete file analysis",
33
+ "chosen": "Assigned responsive nav bug (agent-relay-457) to Frontend with complete file analysis",
34
+ "alternatives": [],
35
+ "reasoning": "P1 bug blocking mobile users - provided line numbers and fix approach for Header.tsx"
36
+ },
37
+ "significance": "high"
38
+ },
39
+ {
40
+ "ts": 1767643225079,
41
+ "type": "decision",
42
+ "content": "Assigned onboarding route task (agent-relay-456) to Frontend: Assigned onboarding route task (agent-relay-456) to Frontend",
43
+ "raw": {
44
+ "question": "Assigned onboarding route task (agent-relay-456) to Frontend",
45
+ "chosen": "Assigned onboarding route task (agent-relay-456) to Frontend",
46
+ "alternatives": [],
47
+ "reasoning": "P3 frontend task - cleaner separation of workspace selection and onboarding flows"
48
+ },
49
+ "significance": "high"
50
+ },
51
+ {
52
+ "ts": 1767643436615,
53
+ "type": "decision",
54
+ "content": "Coordinated parallel work between Frontend and Billing: Coordinated parallel work between Frontend and Billing",
55
+ "raw": {
56
+ "question": "Coordinated parallel work between Frontend and Billing",
57
+ "chosen": "Coordinated parallel work between Frontend and Billing",
58
+ "alternatives": [],
59
+ "reasoning": "Verified no file conflicts - Frontend in react-components, Billing in cloud/billing and cloud/services"
60
+ },
61
+ "significance": "high"
62
+ },
63
+ {
64
+ "ts": 1767643545171,
65
+ "type": "decision",
66
+ "content": "Implementing webhook handler to sync user plan: Implementing webhook handler to sync user plan",
67
+ "raw": {
68
+ "question": "Implementing webhook handler to sync user plan",
69
+ "chosen": "Implementing webhook handler to sync user plan",
70
+ "alternatives": [],
71
+ "reasoning": "Webhook currently logs but doesn't update database. Need to update users.plan field when subscription created/updated."
72
+ },
73
+ "significance": "high"
74
+ },
75
+ {
76
+ "ts": 1767643671803,
77
+ "type": "decision",
78
+ "content": "Webhook handler implemented to update user plan: Webhook handler implemented to update user plan",
79
+ "raw": {
80
+ "question": "Webhook handler implemented to update user plan",
81
+ "chosen": "Webhook handler implemented to update user plan",
82
+ "alternatives": [],
83
+ "reasoning": "When Stripe subscription is created/updated/canceled, the webhook now updates users.plan in database. This completes the backend portion of the upgrade flow."
84
+ },
85
+ "significance": "high"
86
+ },
87
+ {
88
+ "ts": 1767643818368,
89
+ "type": "decision",
90
+ "content": "Implemented billing success/cancel pages: Implemented billing success/cancel pages",
91
+ "raw": {
92
+ "question": "Implemented billing success/cancel pages",
93
+ "chosen": "Implemented billing success/cancel pages",
94
+ "alternatives": [],
95
+ "reasoning": "Created BillingResult component that shows success confirmation after Stripe checkout (with plan features) or friendly cancel message. Added URL path detection in App.tsx to render these on /billing/success and /billing/canceled routes."
96
+ },
97
+ "significance": "high"
98
+ }
99
+ ],
100
+ "endedAt": "2026-01-05T20:10:25.523Z"
101
+ }
102
+ ],
103
+ "commits": [],
104
+ "filesChanged": [],
105
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
106
+ "tags": [],
107
+ "completedAt": "2026-01-05T20:10:25.523Z",
108
+ "retrospective": {
109
+ "summary": "Implemented complete upgrade flow: webhook updates user plan on Stripe events, success/cancel pages show after checkout",
110
+ "approach": "Standard approach",
111
+ "confidence": 0.85
112
+ }
113
+ }
@@ -0,0 +1,57 @@
1
+ # Trajectory: Lead agent coordination - responsive nav fix and team assignments
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-457
5
+ > **Confidence:** 85%
6
+ > **Started:** January 5, 2026 at 08:45 PM
7
+ > **Completed:** January 5, 2026 at 09:10 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Implemented complete upgrade flow: webhook updates user plan on Stripe events, success/cancel pages show after checkout
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Assigned responsive nav bug (agent-relay-457) to Frontend with complete file analysis
22
+ - **Chose:** Assigned responsive nav bug (agent-relay-457) to Frontend with complete file analysis
23
+ - **Reasoning:** P1 bug blocking mobile users - provided line numbers and fix approach for Header.tsx
24
+
25
+ ### Assigned onboarding route task (agent-relay-456) to Frontend
26
+ - **Chose:** Assigned onboarding route task (agent-relay-456) to Frontend
27
+ - **Reasoning:** P3 frontend task - cleaner separation of workspace selection and onboarding flows
28
+
29
+ ### Coordinated parallel work between Frontend and Billing
30
+ - **Chose:** Coordinated parallel work between Frontend and Billing
31
+ - **Reasoning:** Verified no file conflicts - Frontend in react-components, Billing in cloud/billing and cloud/services
32
+
33
+ ### Implementing webhook handler to sync user plan
34
+ - **Chose:** Implementing webhook handler to sync user plan
35
+ - **Reasoning:** Webhook currently logs but doesn't update database. Need to update users.plan field when subscription created/updated.
36
+
37
+ ### Webhook handler implemented to update user plan
38
+ - **Chose:** Webhook handler implemented to update user plan
39
+ - **Reasoning:** When Stripe subscription is created/updated/canceled, the webhook now updates users.plan in database. This completes the backend portion of the upgrade flow.
40
+
41
+ ### Implemented billing success/cancel pages
42
+ - **Chose:** Implemented billing success/cancel pages
43
+ - **Reasoning:** Created BillingResult component that shows success confirmation after Stripe checkout (with plan features) or friendly cancel message. Added URL path detection in App.tsx to render these on /billing/success and /billing/canceled routes.
44
+
45
+ ---
46
+
47
+ ## Chapters
48
+
49
+ ### 1. Work
50
+ *Agent: default*
51
+
52
+ - Assigned responsive nav bug (agent-relay-457) to Frontend with complete file analysis: Assigned responsive nav bug (agent-relay-457) to Frontend with complete file analysis
53
+ - Assigned onboarding route task (agent-relay-456) to Frontend: Assigned onboarding route task (agent-relay-456) to Frontend
54
+ - Coordinated parallel work between Frontend and Billing: Coordinated parallel work between Frontend and Billing
55
+ - Implementing webhook handler to sync user plan: Implementing webhook handler to sync user plan
56
+ - Webhook handler implemented to update user plan: Webhook handler implemented to update user plan
57
+ - Implemented billing success/cancel pages: Implemented billing success/cancel pages
@@ -0,0 +1,53 @@
1
+ {
2
+ "id": "traj_2dao7ddgnta0",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Replace console.log with structured logger in agent-registry.ts and cloud-sync.ts",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-418,agent-relay-419"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T14:48:09.986Z",
13
+ "agents": [
14
+ {
15
+ "name": "Cleanup",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T14:48:09.987Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_eyma80k7rlxb",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-03T14:55:34.999Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767452135002,
29
+ "type": "decision",
30
+ "content": "Removed dead LogViewer code after xterm.js migration: Removed dead LogViewer code after xterm.js migration",
31
+ "raw": {
32
+ "question": "Removed dead LogViewer code after xterm.js migration",
33
+ "chosen": "Removed dead LogViewer code after xterm.js migration",
34
+ "alternatives": [],
35
+ "reasoning": "Legacy panel mode replaced by XTermLogViewer, InlineLogViewer was unused"
36
+ },
37
+ "significance": "high"
38
+ }
39
+ ],
40
+ "endedAt": "2026-01-03T14:56:16.425Z"
41
+ }
42
+ ],
43
+ "commits": [],
44
+ "filesChanged": [],
45
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
46
+ "tags": [],
47
+ "completedAt": "2026-01-03T14:56:16.425Z",
48
+ "retrospective": {
49
+ "summary": "Completed logger migration and LogViewer dead code cleanup",
50
+ "approach": "Standard approach",
51
+ "confidence": 0.9
52
+ }
53
+ }
@@ -0,0 +1,32 @@
1
+ # Trajectory: Replace console.log with structured logger in agent-registry.ts and cloud-sync.ts
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-418,agent-relay-419
5
+ > **Confidence:** 90%
6
+ > **Started:** January 3, 2026 at 03:48 PM
7
+ > **Completed:** January 3, 2026 at 03:56 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Completed logger migration and LogViewer dead code cleanup
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Removed dead LogViewer code after xterm.js migration
22
+ - **Chose:** Removed dead LogViewer code after xterm.js migration
23
+ - **Reasoning:** Legacy panel mode replaced by XTermLogViewer, InlineLogViewer was unused
24
+
25
+ ---
26
+
27
+ ## Chapters
28
+
29
+ ### 1. Work
30
+ *Agent: default*
31
+
32
+ - Removed dead LogViewer code after xterm.js migration: Removed dead LogViewer code after xterm.js migration
@@ -0,0 +1,26 @@
1
+ {
2
+ "id": "traj_3t0440mjeunc",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Wire up TrajectoryViewer component in dashboard",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-310"
9
+ }
10
+ },
11
+ "status": "abandoned",
12
+ "startedAt": "2026-01-03T15:24:03.823Z",
13
+ "agents": [
14
+ {
15
+ "name": "Frontend",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T15:24:03.824Z"
18
+ }
19
+ ],
20
+ "chapters": [],
21
+ "commits": [],
22
+ "filesChanged": [],
23
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
24
+ "tags": [],
25
+ "completedAt": "2026-01-03T15:25:25.534Z"
26
+ }
@@ -0,0 +1,6 @@
1
+ # Trajectory: Wire up TrajectoryViewer component in dashboard
2
+
3
+ > **Status:** ❌ Abandoned
4
+ > **Task:** agent-relay-310
5
+ > **Started:** January 3, 2026 at 04:24 PM
6
+ > **Completed:** January 3, 2026 at 04:25 PM
@@ -0,0 +1,47 @@
1
+ {
2
+ "id": "traj_45x9494d9xnr",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "agent-relay-442 - test coverage for vault and billing",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-442"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T12:01:40.457Z",
13
+ "agents": [],
14
+ "chapters": [
15
+ {
16
+ "id": "chap_wceezu47szey",
17
+ "title": "Work",
18
+ "agentName": "default",
19
+ "startedAt": "2026-01-03T12:01:45.447Z",
20
+ "events": [
21
+ {
22
+ "ts": 1767441705449,
23
+ "type": "decision",
24
+ "content": "Added vault encryption and billing Stripe test suites: Added vault encryption and billing Stripe test suites",
25
+ "raw": {
26
+ "question": "Added vault encryption and billing Stripe test suites",
27
+ "chosen": "Added vault encryption and billing Stripe test suites",
28
+ "alternatives": [],
29
+ "reasoning": "Security-sensitive modules needed coverage for storage and payments"
30
+ },
31
+ "significance": "high"
32
+ }
33
+ ],
34
+ "endedAt": "2026-01-03T12:02:10.085Z"
35
+ }
36
+ ],
37
+ "commits": [],
38
+ "filesChanged": [],
39
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
40
+ "tags": [],
41
+ "completedAt": "2026-01-03T12:02:10.085Z",
42
+ "retrospective": {
43
+ "summary": "Added vault and billing test suites; vitest passing",
44
+ "approach": "Standard approach",
45
+ "confidence": 0.86
46
+ }
47
+ }
@@ -0,0 +1,32 @@
1
+ # Trajectory: agent-relay-442 - test coverage for vault and billing
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-442
5
+ > **Confidence:** 86%
6
+ > **Started:** January 3, 2026 at 01:01 PM
7
+ > **Completed:** January 3, 2026 at 01:02 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Added vault and billing test suites; vitest passing
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Added vault encryption and billing Stripe test suites
22
+ - **Chose:** Added vault encryption and billing Stripe test suites
23
+ - **Reasoning:** Security-sensitive modules needed coverage for storage and payments
24
+
25
+ ---
26
+
27
+ ## Chapters
28
+
29
+ ### 1. Work
30
+ *Agent: default*
31
+
32
+ - Added vault encryption and billing Stripe test suites: Added vault encryption and billing Stripe test suites