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,32 @@
1
+ # Trajectory: Fix notification filtering to use dynamic user
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-319
5
+ > **Confidence:** 90%
6
+ > **Started:** January 3, 2026 at 04:51 PM
7
+ > **Completed:** January 3, 2026 at 04:55 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Fixed notification filtering to use dynamic current user. Created effectiveSenderName variable that uses senderName prop (authenticated user) with fallback to 'Dashboard' for local mode.
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Used effectiveSenderName variable for consistent user identity
22
+ - **Chose:** Used effectiveSenderName variable for consistent user identity
23
+ - **Reasoning:** Created a single source of truth for the current user name, used in both unread count filtering and optimistic messages. Falls back to 'Dashboard' when senderName prop is not provided (local mode).
24
+
25
+ ---
26
+
27
+ ## Chapters
28
+
29
+ ### 1. Work
30
+ *Agent: default*
31
+
32
+ - Used effectiveSenderName variable for consistent user identity: Used effectiveSenderName variable for consistent user identity
@@ -0,0 +1,77 @@
1
+ {
2
+ "id": "traj_qb3twvvywfwi",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Test coverage for Vault and billing modules",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-442"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T15:26:26.404Z",
13
+ "agents": [
14
+ {
15
+ "name": "Backend",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T15:26:26.405Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_o7p5erb2yqym",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-03T15:27:40.321Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767454060322,
29
+ "type": "decision",
30
+ "content": "Pausing agent-relay-442 per PM request: Pausing agent-relay-442 per PM request",
31
+ "raw": {
32
+ "question": "Pausing agent-relay-442 per PM request",
33
+ "chosen": "Pausing agent-relay-442 per PM request",
34
+ "alternatives": [],
35
+ "reasoning": "Priority change: continuity message saving bug needs investigation first"
36
+ },
37
+ "significance": "high"
38
+ },
39
+ {
40
+ "ts": 1767454341255,
41
+ "type": "decision",
42
+ "content": "Awaiting approval before implementing continuity fix: Awaiting approval before implementing continuity fix",
43
+ "raw": {
44
+ "question": "Awaiting approval before implementing continuity fix",
45
+ "chosen": "Awaiting approval before implementing continuity fix",
46
+ "alternatives": [],
47
+ "reasoning": "Found root cause (placeholder text saved as real data), proposed fix ready, waiting for Dashboard approval per PM"
48
+ },
49
+ "significance": "high"
50
+ },
51
+ {
52
+ "ts": 1767454362407,
53
+ "type": "decision",
54
+ "content": "Implementing 3-part continuity fix: Implementing 3-part continuity fix",
55
+ "raw": {
56
+ "question": "Implementing 3-part continuity fix",
57
+ "chosen": "Implementing 3-part continuity fix",
58
+ "alternatives": [],
59
+ "reasoning": "Approved by PM/Dashboard: (1) save validation, (2) clean corrupt files, (3) load filtering"
60
+ },
61
+ "significance": "high"
62
+ }
63
+ ],
64
+ "endedAt": "2026-01-03T15:37:00.890Z"
65
+ }
66
+ ],
67
+ "commits": [],
68
+ "filesChanged": [],
69
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
70
+ "tags": [],
71
+ "completedAt": "2026-01-03T15:37:00.890Z",
72
+ "retrospective": {
73
+ "summary": "Wired up TrajectoryViewer with UX improvements: fullscreen slide-over, removed redundant FAB, blue button color",
74
+ "approach": "Standard approach",
75
+ "confidence": 0.85
76
+ }
77
+ }
@@ -0,0 +1,42 @@
1
+ # Trajectory: Test coverage for Vault and billing modules
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-442
5
+ > **Confidence:** 85%
6
+ > **Started:** January 3, 2026 at 04:26 PM
7
+ > **Completed:** January 3, 2026 at 04:37 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Wired up TrajectoryViewer with UX improvements: fullscreen slide-over, removed redundant FAB, blue button color
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Pausing agent-relay-442 per PM request
22
+ - **Chose:** Pausing agent-relay-442 per PM request
23
+ - **Reasoning:** Priority change: continuity message saving bug needs investigation first
24
+
25
+ ### Awaiting approval before implementing continuity fix
26
+ - **Chose:** Awaiting approval before implementing continuity fix
27
+ - **Reasoning:** Found root cause (placeholder text saved as real data), proposed fix ready, waiting for Dashboard approval per PM
28
+
29
+ ### Implementing 3-part continuity fix
30
+ - **Chose:** Implementing 3-part continuity fix
31
+ - **Reasoning:** Approved by PM/Dashboard: (1) save validation, (2) clean corrupt files, (3) load filtering
32
+
33
+ ---
34
+
35
+ ## Chapters
36
+
37
+ ### 1. Work
38
+ *Agent: default*
39
+
40
+ - Pausing agent-relay-442 per PM request: Pausing agent-relay-442 per PM request
41
+ - Awaiting approval before implementing continuity fix: Awaiting approval before implementing continuity fix
42
+ - Implementing 3-part continuity fix: Implementing 3-part continuity fix
@@ -0,0 +1,53 @@
1
+ {
2
+ "id": "traj_qft54mi7nfor",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Remove any type casts from cloud server",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-439"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T13:48:58.864Z",
13
+ "agents": [
14
+ {
15
+ "name": "Backend",
16
+ "role": "lead",
17
+ "joinedAt": "2026-01-03T13:48:58.865Z"
18
+ }
19
+ ],
20
+ "chapters": [
21
+ {
22
+ "id": "chap_2byzjek5ajbh",
23
+ "title": "Work",
24
+ "agentName": "default",
25
+ "startedAt": "2026-01-03T13:50:22.190Z",
26
+ "events": [
27
+ {
28
+ "ts": 1767448222191,
29
+ "type": "decision",
30
+ "content": "Used proper types instead of any casts: Used proper types instead of any casts",
31
+ "raw": {
32
+ "question": "Used proper types instead of any casts",
33
+ "chosen": "Used proper types instead of any casts",
34
+ "alternatives": [],
35
+ "reasoning": "RedisClientType for redis client, extended SessionData interface for userId"
36
+ },
37
+ "significance": "high"
38
+ }
39
+ ],
40
+ "endedAt": "2026-01-03T13:50:23.677Z"
41
+ }
42
+ ],
43
+ "commits": [],
44
+ "filesChanged": [],
45
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
46
+ "tags": [],
47
+ "completedAt": "2026-01-03T13:50:23.677Z",
48
+ "retrospective": {
49
+ "summary": "Removed 2 any casts from cloud/server.ts: RedisClientType for redis client, extended SessionData for userId",
50
+ "approach": "Standard approach",
51
+ "confidence": 0.95
52
+ }
53
+ }
@@ -0,0 +1,32 @@
1
+ # Trajectory: Remove any type casts from cloud server
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-439
5
+ > **Confidence:** 95%
6
+ > **Started:** January 3, 2026 at 02:48 PM
7
+ > **Completed:** January 3, 2026 at 02:50 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Removed 2 any casts from cloud/server.ts: RedisClientType for redis client, extended SessionData for userId
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Used proper types instead of any casts
22
+ - **Chose:** Used proper types instead of any casts
23
+ - **Reasoning:** RedisClientType for redis client, extended SessionData interface for userId
24
+
25
+ ---
26
+
27
+ ## Chapters
28
+
29
+ ### 1. Work
30
+ *Agent: default*
31
+
32
+ - Used proper types instead of any casts: Used proper types instead of any casts
@@ -0,0 +1,83 @@
1
+ {
2
+ "id": "traj_qx9uhf8whhxo",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Comprehensive codebase review and hardening",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "codebase-review"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-02T22:19:15.313Z",
13
+ "agents": [],
14
+ "chapters": [
15
+ {
16
+ "id": "chap_nnr0ze4a3v49",
17
+ "title": "Work",
18
+ "agentName": "default",
19
+ "startedAt": "2026-01-02T22:23:45.011Z",
20
+ "events": [
21
+ {
22
+ "ts": 1767392625011,
23
+ "type": "decision",
24
+ "content": "Removed any cast in cross-machine routing: Removed any cast in cross-machine routing",
25
+ "raw": {
26
+ "question": "Removed any cast in cross-machine routing",
27
+ "chosen": "Removed any cast in cross-machine routing",
28
+ "alternatives": [],
29
+ "reasoning": "Typed envelope as SendEnvelope and passed Connection directly to router.route for safer cross-machine messages"
30
+ },
31
+ "significance": "high"
32
+ },
33
+ {
34
+ "ts": 1767392821786,
35
+ "type": "decision",
36
+ "content": "Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping: Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping",
37
+ "raw": {
38
+ "question": "Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping",
39
+ "chosen": "Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping",
40
+ "alternatives": [],
41
+ "reasoning": "The code only escapes double quotes but not dollar signs, backticks, or other shell metacharacters. The escapeForShell utility exists in bridge/utils.ts but isn't used here."
42
+ },
43
+ "significance": "high"
44
+ },
45
+ {
46
+ "ts": 1767392930903,
47
+ "type": "decision",
48
+ "content": "Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components: Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components",
49
+ "raw": {
50
+ "question": "Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components",
51
+ "chosen": "Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components",
52
+ "alternatives": [],
53
+ "reasoning": "Reviewed ~314K lines across 21 modules. Found 1 new security issue (shell escaping), confirmed good patterns for vault encryption, webhook verification, CSRF, rate limiting. TypeScript strict mode enabled. Test coverage at ~18% by file count."
54
+ },
55
+ "significance": "high"
56
+ },
57
+ {
58
+ "ts": 1767392946814,
59
+ "type": "decision",
60
+ "content": "Tightened daemon API CORS: Tightened daemon API CORS",
61
+ "raw": {
62
+ "question": "Tightened daemon API CORS",
63
+ "chosen": "Tightened daemon API CORS",
64
+ "alternatives": [],
65
+ "reasoning": "Use explicit allowlist (config/env), allow same-origin, block disallowed origins with 403 and Vary header"
66
+ },
67
+ "significance": "high"
68
+ }
69
+ ],
70
+ "endedAt": "2026-01-02T22:29:20.753Z"
71
+ }
72
+ ],
73
+ "commits": [],
74
+ "filesChanged": [],
75
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
76
+ "tags": [],
77
+ "completedAt": "2026-01-02T22:29:20.753Z",
78
+ "retrospective": {
79
+ "summary": "Comprehensive codebase review completed. Found 1 new security issue (agent-relay-435: shell escaping). Confirmed good security patterns for vault encryption, webhook verification, CSRF, rate limiting. Test coverage at 18%. TypeScript strict mode enabled. React dashboard follows best practices.",
80
+ "approach": "Standard approach",
81
+ "confidence": 0.85
82
+ }
83
+ }
@@ -0,0 +1,47 @@
1
+ # Trajectory: Comprehensive codebase review and hardening
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** codebase-review
5
+ > **Confidence:** 85%
6
+ > **Started:** January 2, 2026 at 11:19 PM
7
+ > **Completed:** January 2, 2026 at 11:29 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Comprehensive codebase review completed. Found 1 new security issue (agent-relay-435: shell escaping). Confirmed good security patterns for vault encryption, webhook verification, CSRF, rate limiting. Test coverage at 18%. TypeScript strict mode enabled. React dashboard follows best practices.
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Removed any cast in cross-machine routing
22
+ - **Chose:** Removed any cast in cross-machine routing
23
+ - **Reasoning:** Typed envelope as SendEnvelope and passed Connection directly to router.route for safer cross-machine messages
24
+
25
+ ### Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping
26
+ - **Chose:** Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping
27
+ - **Reasoning:** The code only escapes double quotes but not dollar signs, backticks, or other shell metacharacters. The escapeForShell utility exists in bridge/utils.ts but isn't used here.
28
+
29
+ ### Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components
30
+ - **Chose:** Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components
31
+ - **Reasoning:** Reviewed ~314K lines across 21 modules. Found 1 new security issue (shell escaping), confirmed good patterns for vault encryption, webhook verification, CSRF, rate limiting. TypeScript strict mode enabled. Test coverage at ~18% by file count.
32
+
33
+ ### Tightened daemon API CORS
34
+ - **Chose:** Tightened daemon API CORS
35
+ - **Reasoning:** Use explicit allowlist (config/env), allow same-origin, block disallowed origins with 403 and Vary header
36
+
37
+ ---
38
+
39
+ ## Chapters
40
+
41
+ ### 1. Work
42
+ *Agent: default*
43
+
44
+ - Removed any cast in cross-machine routing: Removed any cast in cross-machine routing
45
+ - Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping: Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping
46
+ - Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components: Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components
47
+ - Tightened daemon API CORS: Tightened daemon API CORS
@@ -0,0 +1,59 @@
1
+ {
2
+ "id": "traj_rd9toccj18a0",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Replace console.log with structured logger in router.ts",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-415"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T11:56:09.607Z",
13
+ "agents": [],
14
+ "chapters": [
15
+ {
16
+ "id": "chap_voaln61dr5zu",
17
+ "title": "Work",
18
+ "agentName": "default",
19
+ "startedAt": "2026-01-03T11:56:48.099Z",
20
+ "events": [
21
+ {
22
+ "ts": 1767441408100,
23
+ "type": "decision",
24
+ "content": "Using routerLog from utils/logger.ts - already has component prefix built-in: Using routerLog from utils/logger.ts - already has component prefix built-in",
25
+ "raw": {
26
+ "question": "Using routerLog from utils/logger.ts - already has component prefix built-in",
27
+ "chosen": "Using routerLog from utils/logger.ts - already has component prefix built-in",
28
+ "alternatives": [],
29
+ "reasoning": "Logger already exists with routerLog pre-created, provides structured JSON output and configurable levels"
30
+ },
31
+ "significance": "high"
32
+ },
33
+ {
34
+ "ts": 1767441676006,
35
+ "type": "decision",
36
+ "content": "Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity: Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity",
37
+ "raw": {
38
+ "question": "Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity",
39
+ "chosen": "Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity",
40
+ "alternatives": [],
41
+ "reasoning": "Used appropriate log levels: debug for routine operations, info for significant events, warn for recoverable issues, error for failures"
42
+ },
43
+ "significance": "high"
44
+ }
45
+ ],
46
+ "endedAt": "2026-01-03T12:01:25.798Z"
47
+ }
48
+ ],
49
+ "commits": [],
50
+ "filesChanged": [],
51
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
52
+ "tags": [],
53
+ "completedAt": "2026-01-03T12:01:25.798Z",
54
+ "retrospective": {
55
+ "summary": "Replaced all 30 console.log/error/warn calls in router.ts with structured routerLog from utils/logger.ts. Used appropriate log levels (debug/info/warn/error) based on message severity.",
56
+ "approach": "Standard approach",
57
+ "confidence": 0.95
58
+ }
59
+ }
@@ -0,0 +1,37 @@
1
+ # Trajectory: Replace console.log with structured logger in router.ts
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** agent-relay-415
5
+ > **Confidence:** 95%
6
+ > **Started:** January 3, 2026 at 12:56 PM
7
+ > **Completed:** January 3, 2026 at 01:01 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Replaced all 30 console.log/error/warn calls in router.ts with structured routerLog from utils/logger.ts. Used appropriate log levels (debug/info/warn/error) based on message severity.
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Using routerLog from utils/logger.ts - already has component prefix built-in
22
+ - **Chose:** Using routerLog from utils/logger.ts - already has component prefix built-in
23
+ - **Reasoning:** Logger already exists with routerLog pre-created, provides structured JSON output and configurable levels
24
+
25
+ ### Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity
26
+ - **Chose:** Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity
27
+ - **Reasoning:** Used appropriate log levels: debug for routine operations, info for significant events, warn for recoverable issues, error for failures
28
+
29
+ ---
30
+
31
+ ## Chapters
32
+
33
+ ### 1. Work
34
+ *Agent: default*
35
+
36
+ - Using routerLog from utils/logger.ts - already has component prefix built-in: Using routerLog from utils/logger.ts - already has component prefix built-in
37
+ - Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity: Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity
@@ -0,0 +1,48 @@
1
+ {
2
+ "id": "traj_rt4fiw3ecp50",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Fix trajectory agents array population",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "agent-relay-452"
9
+ }
10
+ },
11
+ "status": "abandoned",
12
+ "startedAt": "2026-01-03T13:30:08.415Z",
13
+ "agents": [],
14
+ "chapters": [
15
+ {
16
+ "id": "chap_r4oq003sm2ke",
17
+ "title": "Work",
18
+ "agentName": "default",
19
+ "startedAt": "2026-01-03T13:30:15.567Z",
20
+ "events": [
21
+ {
22
+ "ts": 1767447015568,
23
+ "type": "decision",
24
+ "content": "Abandoned stale traj_9921cuhel0pj and started new trajectory for 452: Abandoned stale traj_9921cuhel0pj and started new trajectory for 452",
25
+ "raw": {
26
+ "question": "Abandoned stale traj_9921cuhel0pj and started new trajectory for 452",
27
+ "chosen": "Abandoned stale traj_9921cuhel0pj and started new trajectory for 452",
28
+ "alternatives": [],
29
+ "reasoning": ""
30
+ },
31
+ "significance": "high"
32
+ },
33
+ {
34
+ "ts": 1767447082829,
35
+ "type": "note",
36
+ "content": "Abandoned: Starting new task agent-relay-327",
37
+ "significance": "high"
38
+ }
39
+ ],
40
+ "endedAt": "2026-01-03T13:31:22.829Z"
41
+ }
42
+ ],
43
+ "commits": [],
44
+ "filesChanged": [],
45
+ "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
46
+ "tags": [],
47
+ "completedAt": "2026-01-03T13:31:22.829Z"
48
+ }
@@ -0,0 +1,16 @@
1
+ # Trajectory: Fix trajectory agents array population
2
+
3
+ > **Status:** ❌ Abandoned
4
+ > **Task:** agent-relay-452
5
+ > **Started:** January 3, 2026 at 02:30 PM
6
+ > **Completed:** January 3, 2026 at 02:31 PM
7
+
8
+ ---
9
+
10
+ ## Chapters
11
+
12
+ ### 1. Work
13
+ *Agent: default*
14
+
15
+ - Abandoned stale traj_9921cuhel0pj and started new trajectory for 452: Abandoned stale traj_9921cuhel0pj and started new trajectory for 452
16
+ - Abandoned: Starting new task agent-relay-327
@@ -0,0 +1,59 @@
1
+ {
2
+ "id": "traj_st8j35b0hrlc",
3
+ "version": 1,
4
+ "task": {
5
+ "title": "Fix cloud provisioning for GitHub cloning and agent credentials",
6
+ "source": {
7
+ "system": "plain",
8
+ "id": "cloud-e2e-fix"
9
+ }
10
+ },
11
+ "status": "completed",
12
+ "startedAt": "2026-01-03T19:04:57.338Z",
13
+ "agents": [],
14
+ "chapters": [
15
+ {
16
+ "id": "chap_4tafbyx9rbsy",
17
+ "title": "Work",
18
+ "agentName": "default",
19
+ "startedAt": "2026-01-03T19:07:03.673Z",
20
+ "events": [
21
+ {
22
+ "ts": 1767467223674,
23
+ "type": "decision",
24
+ "content": "Get GitHub token from Nango instead of vault: Get GitHub token from Nango instead of vault",
25
+ "raw": {
26
+ "question": "Get GitHub token from Nango instead of vault",
27
+ "chosen": "Get GitHub token from Nango instead of vault",
28
+ "alternatives": [],
29
+ "reasoning": "GitHub App tokens come from Nango and expire hourly. Changed provisioner to call getGithubAppTokenForUser() which finds user's Nango connection and fetches fresh token."
30
+ },
31
+ "significance": "high"
32
+ },
33
+ {
34
+ "ts": 1767467301488,
35
+ "type": "decision",
36
+ "content": "Create CLI credential files from ENV vars in workspace entrypoint: Create CLI credential files from ENV vars in workspace entrypoint",
37
+ "raw": {
38
+ "question": "Create CLI credential files from ENV vars in workspace entrypoint",
39
+ "chosen": "Create CLI credential files from ENV vars in workspace entrypoint",
40
+ "alternatives": [],
41
+ "reasoning": "Claude CLI expects ~/.claude/credentials.json, Codex expects ~/.codex/credentials.json. Workspace entrypoint now creates these from ANTHROPIC_TOKEN, OPENAI_TOKEN, GOOGLE_TOKEN ENV vars passed by provisioner."
42
+ },
43
+ "significance": "high"
44
+ }
45
+ ],
46
+ "endedAt": "2026-01-03T19:09:05.597Z"
47
+ }
48
+ ],
49
+ "commits": [],
50
+ "filesChanged": [],
51
+ "projectId": "/home/user/relay",
52
+ "tags": [],
53
+ "completedAt": "2026-01-03T19:09:05.597Z",
54
+ "retrospective": {
55
+ "summary": "Fixed GitHub token to use Nango (fresh installation tokens) and added credential file creation in workspace entrypoint for Claude/Codex/Gemini",
56
+ "approach": "Standard approach",
57
+ "confidence": 0.85
58
+ }
59
+ }
@@ -0,0 +1,37 @@
1
+ # Trajectory: Fix cloud provisioning for GitHub cloning and agent credentials
2
+
3
+ > **Status:** ✅ Completed
4
+ > **Task:** cloud-e2e-fix
5
+ > **Confidence:** 85%
6
+ > **Started:** January 3, 2026 at 07:04 PM
7
+ > **Completed:** January 3, 2026 at 07:09 PM
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Fixed GitHub token to use Nango (fresh installation tokens) and added credential file creation in workspace entrypoint for Claude/Codex/Gemini
14
+
15
+ **Approach:** Standard approach
16
+
17
+ ---
18
+
19
+ ## Key Decisions
20
+
21
+ ### Get GitHub token from Nango instead of vault
22
+ - **Chose:** Get GitHub token from Nango instead of vault
23
+ - **Reasoning:** GitHub App tokens come from Nango and expire hourly. Changed provisioner to call getGithubAppTokenForUser() which finds user's Nango connection and fetches fresh token.
24
+
25
+ ### Create CLI credential files from ENV vars in workspace entrypoint
26
+ - **Chose:** Create CLI credential files from ENV vars in workspace entrypoint
27
+ - **Reasoning:** Claude CLI expects ~/.claude/credentials.json, Codex expects ~/.codex/credentials.json. Workspace entrypoint now creates these from ANTHROPIC_TOKEN, OPENAI_TOKEN, GOOGLE_TOKEN ENV vars passed by provisioner.
28
+
29
+ ---
30
+
31
+ ## Chapters
32
+
33
+ ### 1. Work
34
+ *Agent: default*
35
+
36
+ - Get GitHub token from Nango instead of vault: Get GitHub token from Nango instead of vault
37
+ - Create CLI credential files from ENV vars in workspace entrypoint: Create CLI credential files from ENV vars in workspace entrypoint