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,48 @@
1
+ {
2
+ "id": "traj_9921cuhel0pj",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Fix empty continuity handoff files",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-451"
9
+ }
10
+ },
11
+ "status": "abandoned",
12
+ "startedAt": "2026-01-03T13:28:47.101Z",
13
+ "agents": [],
14
+ "chapters": [
15
+ {
16
+ "id": "chap_wu3s5ndn9jo2",
17
+ "title": "Work",
18
+ "agentName": "default",
19
+ "startedAt": "2026-01-03T13:29:43.241Z",
20
+ "events": [
21
+ {
22
+ "ts": 1767446983241,
23
+ "type": "decision",
24
+ "content": "Pass SESSION_END content to autoSave for handoff population: Pass SESSION_END content to autoSave for handoff population",
25
+ "raw": {
26
+ "question": "Pass SESSION_END content to autoSave for handoff population",
27
+ "chosen": "Pass SESSION_END content to autoSave for handoff population",
28
+ "alternatives": [],
29
+ "reasoning": "autoSave creates handoff from ledger which is often empty - need to use SESSION_END JSON data instead"
30
+ },
31
+ "significance": "high"
32
+ },
33
+ {
34
+ "ts": 1767447003924,
35
+ "type": "note",
36
+ "content": "Abandoned: Stale trajectory - no work recorded, reassigning issue",
37
+ "significance": "high"
38
+ }
39
+ ],
40
+ "endedAt": "2026-01-03T13:30:03.924Z"
41
+ }
42
+ ],
43
+ "commits": [],
44
+ "filesChanged": [],
45
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
46
+ "tags": [],
47
+ "completedAt": "2026-01-03T13:30:03.924Z"
48
+ }
@@ -0,0 +1,24 @@
1
+ # Trajectory: Fix empty continuity handoff files
2
+
3
+ > **Status:** ❌ Abandoned
4
+ > **Task:** agent-relay-451
5
+ > **Started:** January 3, 2026 at 02:28 PM
6
+ > **Completed:** January 3, 2026 at 02:30 PM
7
+
8
+ ---
9
+
10
+ ## Key Decisions
11
+
12
+ ### Pass SESSION_END content to autoSave for handoff population
13
+ - **Chose:** Pass SESSION_END content to autoSave for handoff population
14
+ - **Reasoning:** autoSave creates handoff from ledger which is often empty - need to use SESSION_END JSON data instead
15
+
16
+ ---
17
+
18
+ ## Chapters
19
+
20
+ ### 1. Work
21
+ *Agent: default*
22
+
23
+ - Pass SESSION_END content to autoSave for handoff population: Pass SESSION_END content to autoSave for handoff population
24
+ - Abandoned: Stale trajectory - no work recorded, reassigning issue
@@ -0,0 +1,49 @@
1
+ {
2
+ "id": "traj_ajs7zqfux4wc",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Fix Nango popup blocked - match my-senior-dev pattern exactly"
6
+ },
7
+ "status": "completed",
8
+ "startedAt": "2026-01-03T21:22:52.243Z",
9
+ "agents": [
10
+ {
11
+ "name": "khaliqgant",
12
+ "role": "lead",
13
+ "joinedAt": "2026-01-03T21:22:52.243Z"
14
+ }
15
+ ],
16
+ "chapters": [
17
+ {
18
+ "id": "chap_8tdna5ynwc1z",
19
+ "title": "Work",
20
+ "agentName": "default",
21
+ "startedAt": "2026-01-03T21:22:59.275Z",
22
+ "events": [
23
+ {
24
+ "ts": 1767475379276,
25
+ "type": "decision",
26
+ "content": "Rewrote all auth pages to exactly match my-senior-dev pattern: no ConnectUI ref, no .close() calls, use authSucceededRef for tracking: Rewrote all auth pages to exactly match my-senior-dev pattern: no ConnectUI ref, no .close() calls, use authSucceededRef for tracking",
27
+ "raw": {
28
+ "question": "Rewrote all auth pages to exactly match my-senior-dev pattern: no ConnectUI ref, no .close() calls, use authSucceededRef for tracking",
29
+ "chosen": "Rewrote all auth pages to exactly match my-senior-dev pattern: no ConnectUI ref, no .close() calls, use authSucceededRef for tracking",
30
+ "alternatives": [],
31
+ "reasoning": ""
32
+ },
33
+ "significance": "high"
34
+ }
35
+ ],
36
+ "endedAt": "2026-01-03T21:23:07.802Z"
37
+ }
38
+ ],
39
+ "commits": [],
40
+ "filesChanged": [],
41
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
42
+ "tags": [],
43
+ "completedAt": "2026-01-03T21:23:07.802Z",
44
+ "retrospective": {
45
+ "summary": "Rewrote login, signup, and connect-repos pages to exactly match my-senior-dev Nango pattern. Key changes: removed ConnectUI ref and .close() calls, added authSucceededRef to track auth state, use 'connectionId' in event.payload type guard.",
46
+ "approach": "Standard approach",
47
+ "confidence": 0.85
48
+ }
49
+ }
@@ -0,0 +1,23 @@
1
+ # Trajectory: Fix Nango popup blocked - match my-senior-dev pattern exactly
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Confidence:** 85%
5
+ > **Started:** January 3, 2026 at 10:22 PM
6
+ > **Completed:** January 3, 2026 at 10:23 PM
7
+
8
+ ---
9
+
10
+ ## Summary
11
+
12
+ Rewrote login, signup, and connect-repos pages to exactly match my-senior-dev Nango pattern. Key changes: removed ConnectUI ref and .close() calls, added authSucceededRef to track auth state, use 'connectionId' in event.payload type guard.
13
+
14
+ **Approach:** Standard approach
15
+
16
+ ---
17
+
18
+ ## Chapters
19
+
20
+ ### 1. Work
21
+ *Agent: default*
22
+
23
+ - Rewrote all auth pages to exactly match my-senior-dev pattern: no ConnectUI ref, no .close() calls, use authSucceededRef for tracking: Rewrote all auth pages to exactly match my-senior-dev pattern: no ConnectUI ref, no .close() calls, use authSucceededRef for tracking
@@ -0,0 +1,53 @@
1
+ {
2
+ "id": "traj_cvtqhlwcq9s0",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Fix trajectory viewer navigation - add back to list",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "dashboard-nav-fix"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T16:37:49.153Z",
13
+ "agents": [
14
+ {
15
+ "name": "Frontend",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T16:37:49.154Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_xijeuibb9urb",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-03T16:38:36.820Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767458316821,
29
+ "type": "decision",
30
+ "content": "Added back button to header instead of only in empty state: Added back button to header instead of only in empty state",
31
+ "raw": {
32
+ "question": "Added back button to header instead of only in empty state",
33
+ "chosen": "Added back button to header instead of only in empty state",
34
+ "alternatives": [],
35
+ "reasoning": "Back button was only visible when no steps were displayed. Moving it to header ensures it's always accessible when viewing a specific trajectory."
36
+ },
37
+ "significance": "high"
38
+ }
39
+ ],
40
+ "endedAt": "2026-01-03T18:43:48.687Z"
41
+ }
42
+ ],
43
+ "commits": [],
44
+ "filesChanged": [],
45
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
46
+ "tags": [],
47
+ "completedAt": "2026-01-03T18:43:48.687Z",
48
+ "retrospective": {
49
+ "summary": "Added back button to trajectory viewer header, accessible when viewing a specific trajectory",
50
+ "approach": "Standard approach",
51
+ "confidence": 0.9
52
+ }
53
+ }
@@ -0,0 +1,32 @@
1
+ # Trajectory: Fix trajectory viewer navigation - add back to list
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** dashboard-nav-fix
5
+ > **Confidence:** 90%
6
+ > **Started:** January 3, 2026 at 04:37 PM
7
+ > **Completed:** January 3, 2026 at 06:43 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Added back button to trajectory viewer header, accessible when viewing a specific trajectory
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Added back button to header instead of only in empty state
22
+ - **Chose:** Added back button to header instead of only in empty state
23
+ - **Reasoning:** Back button was only visible when no steps were displayed. Moving it to header ensures it's always accessible when viewing a specific trajectory.
24
+
25
+ ---
26
+
27
+ ## Chapters
28
+
29
+ ### 1. Work
30
+ *Agent: default*
31
+
32
+ - Added back button to header instead of only in empty state: Added back button to header instead of only in empty state
@@ -0,0 +1,49 @@
1
+ {
2
+ "id": "traj_cxofprm2m2en",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Fix Nango popup blocked by browser - use constructor pattern"
6
+ },
7
+ "status": "completed",
8
+ "startedAt": "2026-01-03T21:18:15.384Z",
9
+ "agents": [
10
+ {
11
+ "name": "khaliqgant",
12
+ "role": "lead",
13
+ "joinedAt": "2026-01-03T21:18:15.384Z"
14
+ }
15
+ ],
16
+ "chapters": [
17
+ {
18
+ "id": "chap_5n4ibkpf4je1",
19
+ "title": "Work",
20
+ "agentName": "default",
21
+ "startedAt": "2026-01-03T21:18:25.048Z",
22
+ "events": [
23
+ {
24
+ "ts": 1767475105049,
25
+ "type": "decision",
26
+ "content": "Pass connectSessionToken to Nango constructor instead of using setSessionToken(): Pass connectSessionToken to Nango constructor instead of using setSessionToken()",
27
+ "raw": {
28
+ "question": "Pass connectSessionToken to Nango constructor instead of using setSessionToken()",
29
+ "chosen": "Pass connectSessionToken to Nango constructor instead of using setSessionToken()",
30
+ "alternatives": [],
31
+ "reasoning": "The prpm app pattern works: new Nango({ connectSessionToken }) followed by openConnectUI(). This differs from our broken approach of new Nango() + setSessionToken() + open(). When the token is passed via constructor, Nango internally handles the popup differently and avoids browser popup blockers."
32
+ },
33
+ "significance": "high"
34
+ }
35
+ ],
36
+ "endedAt": "2026-01-03T21:18:33.901Z"
37
+ }
38
+ ],
39
+ "commits": [],
40
+ "filesChanged": [],
41
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
42
+ "tags": [],
43
+ "completedAt": "2026-01-03T21:18:33.901Z",
44
+ "retrospective": {
45
+ "summary": "Fixed popup:blocked_by_browser error by using Nango constructor pattern: new Nango({ connectSessionToken }) instead of setSessionToken(). Updated login, signup, and connect-repos pages to match prpm app pattern.",
46
+ "approach": "Standard approach",
47
+ "confidence": 0.9
48
+ }
49
+ }
@@ -0,0 +1,31 @@
1
+ # Trajectory: Fix Nango popup blocked by browser - use constructor pattern
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Confidence:** 90%
5
+ > **Started:** January 3, 2026 at 10:18 PM
6
+ > **Completed:** January 3, 2026 at 10:18 PM
7
+
8
+ ---
9
+
10
+ ## Summary
11
+
12
+ Fixed popup:blocked_by_browser error by using Nango constructor pattern: new Nango({ connectSessionToken }) instead of setSessionToken(). Updated login, signup, and connect-repos pages to match prpm app pattern.
13
+
14
+ **Approach:** Standard approach
15
+
16
+ ---
17
+
18
+ ## Key Decisions
19
+
20
+ ### Pass connectSessionToken to Nango constructor instead of using setSessionToken()
21
+ - **Chose:** Pass connectSessionToken to Nango constructor instead of using setSessionToken()
22
+ - **Reasoning:** The prpm app pattern works: new Nango({ connectSessionToken }) followed by openConnectUI(). This differs from our broken approach of new Nango() + setSessionToken() + open(). When the token is passed via constructor, Nango internally handles the popup differently and avoids browser popup blockers.
23
+
24
+ ---
25
+
26
+ ## Chapters
27
+
28
+ ### 1. Work
29
+ *Agent: default*
30
+
31
+ - Pass connectSessionToken to Nango constructor instead of using setSessionToken(): Pass connectSessionToken to Nango constructor instead of using setSessionToken()
@@ -0,0 +1,26 @@
1
+ {
2
+ "id": "traj_d2hhz3k0vrhn",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Coordinate backend logic with Frontend",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "backend-frontend-coordination"
9
+ }
10
+ },
11
+ "status": "abandoned",
12
+ "startedAt": "2026-01-03T13:40:25.915Z",
13
+ "agents": [
14
+ {
15
+ "name": "Backend",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T13:40:25.916Z"
18
+ }
19
+ ],
20
+ "chapters": [],
21
+ "commits": [],
22
+ "filesChanged": [],
23
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
24
+ "tags": [],
25
+ "completedAt": "2026-01-03T13:48:57.609Z"
26
+ }
@@ -0,0 +1,6 @@
1
+ # Trajectory: Coordinate backend logic with Frontend
2
+
3
+ > **Status:** ❌ Abandoned
4
+ > **Task:** backend-frontend-coordination
5
+ > **Started:** January 3, 2026 at 02:40 PM
6
+ > **Completed:** January 3, 2026 at 02:48 PM
@@ -0,0 +1,59 @@
1
+ {
2
+ "id": "traj_dfuvww9pege5",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Implement Nango OAuth integration for GitHub",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-324"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-02T21:56:04.202Z",
13
+ "agents": [],
14
+ "chapters": [
15
+ {
16
+ "id": "chap_si91my6aqpb9",
17
+ "title": "Work",
18
+ "agentName": "default",
19
+ "startedAt": "2026-01-02T21:56:53.036Z",
20
+ "events": [
21
+ {
22
+ "ts": 1767391013037,
23
+ "type": "decision",
24
+ "content": "Follow Nango two-connection pattern for GitHub login + app installs and generate installation tokens via GitHub App service: Follow Nango two-connection pattern for GitHub login + app installs and generate installation tokens via GitHub App service",
25
+ "raw": {
26
+ "question": "Follow Nango two-connection pattern for GitHub login + app installs and generate installation tokens via GitHub App service",
27
+ "chosen": "Follow Nango two-connection pattern for GitHub login + app installs and generate installation tokens via GitHub App service",
28
+ "alternatives": [],
29
+ "reasoning": "Issue requires GitHub App access and skill mandates Nango; plan is to add Nango connect sessions/webhook handlers storing connection IDs, then use app JWTs to mint installation tokens for repo/API operations instead of user OAuth tokens."
30
+ },
31
+ "significance": "high"
32
+ },
33
+ {
34
+ "ts": 1767391028884,
35
+ "type": "decision",
36
+ "content": "Backend-first implementation approach: Backend-first implementation approach",
37
+ "raw": {
38
+ "question": "Backend-first implementation approach",
39
+ "chosen": "Backend-first implementation approach",
40
+ "alternatives": [],
41
+ "reasoning": "Complete backend GitHub App integration before frontend to ensure API contracts are stable"
42
+ },
43
+ "significance": "high"
44
+ }
45
+ ],
46
+ "endedAt": "2026-01-02T21:59:41.222Z"
47
+ }
48
+ ],
49
+ "commits": [],
50
+ "filesChanged": [],
51
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
52
+ "tags": [],
53
+ "completedAt": "2026-01-02T21:59:41.222Z",
54
+ "retrospective": {
55
+ "summary": "Implemented GitHub App integration backend: schema, queries, service, auth routes, webhooks. Background agent fixed dashboard spam bug (regex stripping [Agent text).",
56
+ "approach": "Standard approach",
57
+ "confidence": 0.85
58
+ }
59
+ }
@@ -0,0 +1,37 @@
1
+ # Trajectory: Implement Nango OAuth integration for GitHub
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-324
5
+ > **Confidence:** 85%
6
+ > **Started:** January 2, 2026 at 10:56 PM
7
+ > **Completed:** January 2, 2026 at 10:59 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Implemented GitHub App integration backend: schema, queries, service, auth routes, webhooks. Background agent fixed dashboard spam bug (regex stripping [Agent text).
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Follow Nango two-connection pattern for GitHub login + app installs and generate installation tokens via GitHub App service
22
+ - **Chose:** Follow Nango two-connection pattern for GitHub login + app installs and generate installation tokens via GitHub App service
23
+ - **Reasoning:** Issue requires GitHub App access and skill mandates Nango; plan is to add Nango connect sessions/webhook handlers storing connection IDs, then use app JWTs to mint installation tokens for repo/API operations instead of user OAuth tokens.
24
+
25
+ ### Backend-first implementation approach
26
+ - **Chose:** Backend-first implementation approach
27
+ - **Reasoning:** Complete backend GitHub App integration before frontend to ensure API contracts are stable
28
+
29
+ ---
30
+
31
+ ## Chapters
32
+
33
+ ### 1. Work
34
+ *Agent: default*
35
+
36
+ - Follow Nango two-connection pattern for GitHub login + app installs and generate installation tokens via GitHub App service: Follow Nango two-connection pattern for GitHub login + app installs and generate installation tokens via GitHub App service
37
+ - Backend-first implementation approach: Backend-first implementation approach
@@ -0,0 +1,77 @@
1
+ {
2
+ "id": "traj_g0fisy9h51mf",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Lead agent coordination - GitHub repo access feature",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-460"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-05T21:18:03.796Z",
13
+ "agents": [
14
+ {
15
+ "name": "Lead",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-05T21:18:03.796Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_bqgi5undf9j0",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-05T21:18:10.733Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767647890733,
29
+ "type": "decision",
30
+ "content": "Assigned Backend to Nango/GitHub permission API, Frontend to UI: Assigned Backend to Nango/GitHub permission API, Frontend to UI",
31
+ "raw": {
32
+ "question": "Assigned Backend to Nango/GitHub permission API, Frontend to UI",
33
+ "chosen": "Assigned Backend to Nango/GitHub permission API, Frontend to UI",
34
+ "alternatives": [],
35
+ "reasoning": "Backend builds API first, Frontend waits for endpoints. Following two-connection OAuth pattern from my-senior-dev reference."
36
+ },
37
+ "significance": "high"
38
+ },
39
+ {
40
+ "ts": 1767647967881,
41
+ "type": "decision",
42
+ "content": "Backend API complete, Frontend starting UI: Backend API complete, Frontend starting UI",
43
+ "raw": {
44
+ "question": "Backend API complete, Frontend starting UI",
45
+ "chosen": "Backend API complete, Frontend starting UI",
46
+ "alternatives": [],
47
+ "reasoning": "Backend modified repos.ts and nango.ts. Frontend now implementing repo access UI."
48
+ },
49
+ "significance": "high"
50
+ },
51
+ {
52
+ "ts": 1767648446910,
53
+ "type": "decision",
54
+ "content": "agent-relay-460 complete - Backend API and Frontend UI delivered: agent-relay-460 complete - Backend API and Frontend UI delivered",
55
+ "raw": {
56
+ "question": "agent-relay-460 complete - Backend API and Frontend UI delivered",
57
+ "chosen": "agent-relay-460 complete - Backend API and Frontend UI delivered",
58
+ "alternatives": [],
59
+ "reasoning": "Backend: repos.ts, nango.ts. Frontend: RepoAccessPanel.tsx in Settings. Full feature delivered."
60
+ },
61
+ "significance": "high"
62
+ }
63
+ ],
64
+ "endedAt": "2026-01-05T21:29:51.191Z"
65
+ }
66
+ ],
67
+ "commits": [],
68
+ "filesChanged": [],
69
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
70
+ "tags": [],
71
+ "completedAt": "2026-01-05T21:29:51.191Z",
72
+ "retrospective": {
73
+ "summary": "Coordinated Backend + Frontend on agent-relay-460: GitHub repo-based dashboard access via Nango. Backend implemented API (repos.ts, nango.ts), Frontend built UI (RepoAccessPanel.tsx in Settings). Feature delivered.",
74
+ "approach": "Standard approach",
75
+ "confidence": 0.85
76
+ }
77
+ }
@@ -0,0 +1,42 @@
1
+ # Trajectory: Lead agent coordination - GitHub repo access feature
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-460
5
+ > **Confidence:** 85%
6
+ > **Started:** January 5, 2026 at 10:18 PM
7
+ > **Completed:** January 5, 2026 at 10:29 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Coordinated Backend + Frontend on agent-relay-460: GitHub repo-based dashboard access via Nango. Backend implemented API (repos.ts, nango.ts), Frontend built UI (RepoAccessPanel.tsx in Settings). Feature delivered.
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Assigned Backend to Nango/GitHub permission API, Frontend to UI
22
+ - **Chose:** Assigned Backend to Nango/GitHub permission API, Frontend to UI
23
+ - **Reasoning:** Backend builds API first, Frontend waits for endpoints. Following two-connection OAuth pattern from my-senior-dev reference.
24
+
25
+ ### Backend API complete, Frontend starting UI
26
+ - **Chose:** Backend API complete, Frontend starting UI
27
+ - **Reasoning:** Backend modified repos.ts and nango.ts. Frontend now implementing repo access UI.
28
+
29
+ ### agent-relay-460 complete - Backend API and Frontend UI delivered
30
+ - **Chose:** agent-relay-460 complete - Backend API and Frontend UI delivered
31
+ - **Reasoning:** Backend: repos.ts, nango.ts. Frontend: RepoAccessPanel.tsx in Settings. Full feature delivered.
32
+
33
+ ---
34
+
35
+ ## Chapters
36
+
37
+ ### 1. Work
38
+ *Agent: default*
39
+
40
+ - Assigned Backend to Nango/GitHub permission API, Frontend to UI: Assigned Backend to Nango/GitHub permission API, Frontend to UI
41
+ - Backend API complete, Frontend starting UI: Backend API complete, Frontend starting UI
42
+ - agent-relay-460 complete - Backend API and Frontend UI delivered: agent-relay-460 complete - Backend API and Frontend UI delivered
@@ -0,0 +1,53 @@
1
+ {
2
+ "id": "traj_gjdre5voouod",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Fix LogViewer ANSI stripping and Show more removal",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "logviewer-cleanup"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T14:11:06.005Z",
13
+ "agents": [
14
+ {
15
+ "name": "LogFixer",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T14:11:06.006Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_rautes4x0gb7",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-03T14:15:12.960Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767449712961,
29
+ "type": "decision",
30
+ "content": "Always render full sanitized LogViewer lines: Always render full sanitized LogViewer lines",
31
+ "raw": {
32
+ "question": "Always render full sanitized LogViewer lines",
33
+ "chosen": "Always render full sanitized LogViewer lines",
34
+ "alternatives": [],
35
+ "reasoning": "Removed collapse button and strip all ANSI/SGR sequences (including bracket-only codes) so logs display clean text without hidden sections."
36
+ },
37
+ "significance": "high"
38
+ }
39
+ ],
40
+ "endedAt": "2026-01-03T14:16:21.305Z"
41
+ }
42
+ ],
43
+ "commits": [],
44
+ "filesChanged": [],
45
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
46
+ "tags": [],
47
+ "completedAt": "2026-01-03T14:16:21.305Z",
48
+ "retrospective": {
49
+ "summary": "Sanitized LogViewer output (strips ANSI/SGR including bracket-only codes) and removed Show more collapse so logs display fully; verified via build + targeted vitest.",
50
+ "approach": "Standard approach",
51
+ "confidence": 0.8
52
+ }
53
+ }
@@ -0,0 +1,32 @@
1
+ # Trajectory: Fix LogViewer ANSI stripping and Show more removal
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** logviewer-cleanup
5
+ > **Confidence:** 80%
6
+ > **Started:** January 3, 2026 at 03:11 PM
7
+ > **Completed:** January 3, 2026 at 03:16 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Sanitized LogViewer output (strips ANSI/SGR including bracket-only codes) and removed Show more collapse so logs display fully; verified via build + targeted vitest.
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Always render full sanitized LogViewer lines
22
+ - **Chose:** Always render full sanitized LogViewer lines
23
+ - **Reasoning:** Removed collapse button and strip all ANSI/SGR sequences (including bracket-only codes) so logs display clean text without hidden sections.
24
+
25
+ ---
26
+
27
+ ## Chapters
28
+
29
+ ### 1. Work
30
+ *Agent: default*
31
+
32
+ - Always render full sanitized LogViewer lines: Always render full sanitized LogViewer lines