agent-relay 1.2.0 → 1.3.0

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 (668) hide show
  1. package/.gitattributes +3 -0
  2. package/.nvmrc +1 -0
  3. package/.trajectories/agent-relay-322-324.md +17 -0
  4. package/.trajectories/completed/2026-01/traj_03zupyv1s7b9.json +49 -0
  5. package/.trajectories/completed/2026-01/traj_03zupyv1s7b9.md +31 -0
  6. package/.trajectories/completed/2026-01/traj_0zacdjl1g4ht.json +125 -0
  7. package/.trajectories/completed/2026-01/traj_0zacdjl1g4ht.md +62 -0
  8. package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.json +65 -0
  9. package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.md +37 -0
  10. package/.trajectories/completed/2026-01/traj_1k5if5snst2e.json +65 -0
  11. package/.trajectories/completed/2026-01/traj_1k5if5snst2e.md +37 -0
  12. package/.trajectories/completed/2026-01/traj_1rp3rges5811.json +49 -0
  13. package/.trajectories/completed/2026-01/traj_1rp3rges5811.md +31 -0
  14. package/.trajectories/completed/2026-01/traj_22bhyulruouw.json +113 -0
  15. package/.trajectories/completed/2026-01/traj_22bhyulruouw.md +57 -0
  16. package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.json +53 -0
  17. package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.md +32 -0
  18. package/.trajectories/completed/2026-01/traj_33iuy72sezbk.json +49 -0
  19. package/.trajectories/completed/2026-01/traj_33iuy72sezbk.md +31 -0
  20. package/.trajectories/completed/2026-01/traj_3t0440mjeunc.json +26 -0
  21. package/.trajectories/completed/2026-01/traj_3t0440mjeunc.md +6 -0
  22. package/.trajectories/completed/2026-01/traj_45x9494d9xnr.json +47 -0
  23. package/.trajectories/completed/2026-01/traj_45x9494d9xnr.md +32 -0
  24. package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.json +53 -0
  25. package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.md +32 -0
  26. package/.trajectories/completed/2026-01/traj_5ammh5qtvklq.json +77 -0
  27. package/.trajectories/completed/2026-01/traj_5ammh5qtvklq.md +42 -0
  28. package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.json +59 -0
  29. package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.md +33 -0
  30. package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.json +53 -0
  31. package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.md +32 -0
  32. package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.json +48 -0
  33. package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.md +24 -0
  34. package/.trajectories/completed/2026-01/traj_6mieijqyvaag.json +77 -0
  35. package/.trajectories/completed/2026-01/traj_6mieijqyvaag.md +42 -0
  36. package/.trajectories/completed/2026-01/traj_78ffm31jn3uk.json +77 -0
  37. package/.trajectories/completed/2026-01/traj_78ffm31jn3uk.md +42 -0
  38. package/.trajectories/completed/2026-01/traj_7ludwvz45veh.json +209 -0
  39. package/.trajectories/completed/2026-01/traj_7ludwvz45veh.md +97 -0
  40. package/.trajectories/completed/2026-01/traj_94gnp3k30goq.json +66 -0
  41. package/.trajectories/completed/2026-01/traj_94gnp3k30goq.md +36 -0
  42. package/.trajectories/completed/2026-01/traj_9921cuhel0pj.json +48 -0
  43. package/.trajectories/completed/2026-01/traj_9921cuhel0pj.md +24 -0
  44. package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.json +49 -0
  45. package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.md +23 -0
  46. package/.trajectories/completed/2026-01/traj_avqeghu6pz5a.json +40 -0
  47. package/.trajectories/completed/2026-01/traj_avqeghu6pz5a.md +22 -0
  48. package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.json +53 -0
  49. package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.md +32 -0
  50. package/.trajectories/completed/2026-01/traj_cxofprm2m2en.json +49 -0
  51. package/.trajectories/completed/2026-01/traj_cxofprm2m2en.md +31 -0
  52. package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.json +26 -0
  53. package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.md +6 -0
  54. package/.trajectories/completed/2026-01/traj_dcsp9s8y01ra.json +121 -0
  55. package/.trajectories/completed/2026-01/traj_dcsp9s8y01ra.md +29 -0
  56. package/.trajectories/completed/2026-01/traj_dfuvww9pege5.json +59 -0
  57. package/.trajectories/completed/2026-01/traj_dfuvww9pege5.md +37 -0
  58. package/.trajectories/completed/2026-01/traj_fhx9irlckht6.json +53 -0
  59. package/.trajectories/completed/2026-01/traj_fhx9irlckht6.md +32 -0
  60. package/.trajectories/completed/2026-01/traj_fqduidx3xbtp.json +101 -0
  61. package/.trajectories/completed/2026-01/traj_fqduidx3xbtp.md +52 -0
  62. package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.json +77 -0
  63. package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.md +42 -0
  64. package/.trajectories/completed/2026-01/traj_gjdre5voouod.json +53 -0
  65. package/.trajectories/completed/2026-01/traj_gjdre5voouod.md +32 -0
  66. package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.json +25 -0
  67. package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.md +15 -0
  68. package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.json +101 -0
  69. package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.md +44 -0
  70. package/.trajectories/completed/2026-01/traj_hf81ey93uz6t.json +49 -0
  71. package/.trajectories/completed/2026-01/traj_hf81ey93uz6t.md +31 -0
  72. package/.trajectories/completed/2026-01/traj_hfmki2jr9d4r.json +65 -0
  73. package/.trajectories/completed/2026-01/traj_hfmki2jr9d4r.md +37 -0
  74. package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.json +22 -0
  75. package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.md +5 -0
  76. package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.json +53 -0
  77. package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.md +32 -0
  78. package/.trajectories/completed/2026-01/traj_lq450ly148uw.json +49 -0
  79. package/.trajectories/completed/2026-01/traj_lq450ly148uw.md +31 -0
  80. package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.json +25 -0
  81. package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.md +15 -0
  82. package/.trajectories/completed/2026-01/traj_multi_server_arch.md +101 -0
  83. package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.json +53 -0
  84. package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.md +32 -0
  85. package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.json +53 -0
  86. package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.md +32 -0
  87. package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.json +48 -0
  88. package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.md +24 -0
  89. package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.json +53 -0
  90. package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.md +32 -0
  91. package/.trajectories/completed/2026-01/traj_psd9ob0j2ru3.json +27 -0
  92. package/.trajectories/completed/2026-01/traj_psd9ob0j2ru3.md +14 -0
  93. package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.json +77 -0
  94. package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.md +42 -0
  95. package/.trajectories/completed/2026-01/traj_qft54mi7nfor.json +53 -0
  96. package/.trajectories/completed/2026-01/traj_qft54mi7nfor.md +32 -0
  97. package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.json +83 -0
  98. package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.md +47 -0
  99. package/.trajectories/completed/2026-01/traj_rd9toccj18a0.json +59 -0
  100. package/.trajectories/completed/2026-01/traj_rd9toccj18a0.md +37 -0
  101. package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.json +48 -0
  102. package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.md +16 -0
  103. package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.json +59 -0
  104. package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.md +37 -0
  105. package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.json +53 -0
  106. package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.md +32 -0
  107. package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.json +84 -0
  108. package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.md +109 -0
  109. package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.json +53 -0
  110. package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.md +32 -0
  111. package/.trajectories/completed/2026-01/traj_ub8csuv3lcv4.json +53 -0
  112. package/.trajectories/completed/2026-01/traj_ub8csuv3lcv4.md +32 -0
  113. package/.trajectories/completed/2026-01/traj_uc29tlso8i9s.json +186 -0
  114. package/.trajectories/completed/2026-01/traj_uc29tlso8i9s.md +86 -0
  115. package/.trajectories/completed/2026-01/traj_ui9b4tqxoa7j.json +77 -0
  116. package/.trajectories/completed/2026-01/traj_ui9b4tqxoa7j.md +42 -0
  117. package/.trajectories/completed/2026-01/traj_v87hypnongqx.json +71 -0
  118. package/.trajectories/completed/2026-01/traj_v87hypnongqx.md +42 -0
  119. package/.trajectories/completed/2026-01/traj_v9dkdoxylyid.json +89 -0
  120. package/.trajectories/completed/2026-01/traj_v9dkdoxylyid.md +47 -0
  121. package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.json +53 -0
  122. package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.md +32 -0
  123. package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.json +20 -0
  124. package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.md +6 -0
  125. package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.json +175 -0
  126. package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.md +82 -0
  127. package/.trajectories/completed/2026-01/traj_xy9vifpqet80.json +65 -0
  128. package/.trajectories/completed/2026-01/traj_xy9vifpqet80.md +37 -0
  129. package/.trajectories/completed/2026-01/traj_y7aiwijyfmmv.json +49 -0
  130. package/.trajectories/completed/2026-01/traj_y7aiwijyfmmv.md +31 -0
  131. package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.json +47 -0
  132. package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.md +32 -0
  133. package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.json +59 -0
  134. package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.md +37 -0
  135. package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.json +53 -0
  136. package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.md +32 -0
  137. package/.trajectories/consolidate-settings-panel.md +24 -0
  138. package/.trajectories/gh-cli-user-token.md +26 -0
  139. package/.trajectories/index.json +468 -0
  140. package/ARCHITECTURE.md +1245 -0
  141. package/TESTING.md +278 -0
  142. package/deploy/init-db.sql +5 -0
  143. package/deploy/scripts/setup-fly-workspaces.sh +69 -0
  144. package/deploy/scripts/setup-railway.sh +75 -0
  145. package/deploy/workspace/codex.config.toml +15 -0
  146. package/deploy/workspace/entrypoint-browser.sh +118 -0
  147. package/deploy/workspace/entrypoint.sh +508 -0
  148. package/deploy/workspace/git-credential-relay +126 -0
  149. package/dist/bridge/spawner.d.ts +7 -0
  150. package/dist/bridge/spawner.js +40 -9
  151. package/dist/bridge/types.d.ts +2 -0
  152. package/dist/cli/index.js +260 -1
  153. package/dist/cloud/api/admin.d.ts +8 -0
  154. package/dist/cloud/api/admin.js +212 -0
  155. package/dist/cloud/api/auth.js +8 -0
  156. package/dist/cloud/api/billing.d.ts +0 -10
  157. package/dist/cloud/api/billing.js +278 -67
  158. package/dist/cloud/api/codex-auth-helper.d.ts +21 -0
  159. package/dist/cloud/api/codex-auth-helper.js +307 -0
  160. package/dist/cloud/api/coordinators.js +402 -0
  161. package/dist/cloud/api/daemons.js +15 -11
  162. package/dist/cloud/api/git.js +127 -19
  163. package/dist/cloud/api/github-app.js +42 -8
  164. package/dist/cloud/api/nango-auth.js +297 -16
  165. package/dist/cloud/api/onboarding.js +112 -35
  166. package/dist/cloud/api/providers.js +12 -16
  167. package/dist/cloud/api/repos.d.ts +1 -0
  168. package/dist/cloud/api/repos.js +311 -49
  169. package/dist/cloud/api/test-helpers.js +40 -0
  170. package/dist/cloud/api/usage.js +13 -0
  171. package/dist/cloud/api/webhooks.d.ts +1 -0
  172. package/dist/cloud/api/webhooks.js +149 -0
  173. package/dist/cloud/api/workspaces.d.ts +18 -0
  174. package/dist/cloud/api/workspaces.js +1042 -21
  175. package/dist/cloud/billing/plans.js +19 -19
  176. package/dist/cloud/config.d.ts +8 -0
  177. package/dist/cloud/config.js +15 -0
  178. package/dist/cloud/db/drizzle.d.ts +5 -2
  179. package/dist/cloud/db/drizzle.js +27 -20
  180. package/dist/cloud/db/schema.d.ts +19 -51
  181. package/dist/cloud/db/schema.js +5 -4
  182. package/dist/cloud/index.d.ts +0 -1
  183. package/dist/cloud/index.js +0 -1
  184. package/dist/cloud/provisioner/index.d.ts +125 -1
  185. package/dist/cloud/provisioner/index.js +939 -53
  186. package/dist/cloud/server.js +161 -16
  187. package/dist/cloud/services/compute-enforcement.d.ts +57 -0
  188. package/dist/cloud/services/compute-enforcement.js +175 -0
  189. package/dist/cloud/services/index.d.ts +2 -0
  190. package/dist/cloud/services/index.js +4 -0
  191. package/dist/cloud/services/intro-expiration.d.ts +55 -0
  192. package/dist/cloud/services/intro-expiration.js +211 -0
  193. package/dist/cloud/services/nango.d.ts +74 -0
  194. package/dist/cloud/services/nango.js +218 -5
  195. package/dist/cloud/services/planLimits.d.ts +22 -0
  196. package/dist/cloud/services/planLimits.js +58 -5
  197. package/dist/cloud/services/ssh-security.d.ts +31 -0
  198. package/dist/cloud/services/ssh-security.js +63 -0
  199. package/dist/continuity/manager.d.ts +5 -0
  200. package/dist/continuity/manager.js +56 -2
  201. package/dist/daemon/api.d.ts +2 -0
  202. package/dist/daemon/api.js +214 -5
  203. package/dist/daemon/cli-auth.d.ts +13 -1
  204. package/dist/daemon/cli-auth.js +166 -47
  205. package/dist/daemon/connection.d.ts +7 -1
  206. package/dist/daemon/connection.js +15 -0
  207. package/dist/daemon/orchestrator.d.ts +2 -0
  208. package/dist/daemon/orchestrator.js +26 -0
  209. package/dist/daemon/repo-manager.d.ts +116 -0
  210. package/dist/daemon/repo-manager.js +384 -0
  211. package/dist/daemon/router.d.ts +60 -1
  212. package/dist/daemon/router.js +281 -20
  213. package/dist/daemon/user-directory.d.ts +111 -0
  214. package/dist/daemon/user-directory.js +233 -0
  215. package/dist/dashboard/out/404.html +1 -1
  216. package/dist/dashboard/out/_next/static/T1tgCqVWHFIkV7ClEtzD7/_ssgManifest.js +1 -0
  217. package/dist/dashboard/out/_next/static/chunks/532-bace199897eeab37.js +9 -0
  218. package/dist/dashboard/out/_next/static/chunks/766-b54f0853794b78c3.js +1 -0
  219. package/dist/dashboard/out/_next/static/chunks/83-b51836037078006c.js +1 -0
  220. package/dist/dashboard/out/_next/static/chunks/891-6cd50de1224f70bb.js +1 -0
  221. package/dist/dashboard/out/_next/static/chunks/899-bb19a9b3d9b39ea6.js +1 -0
  222. package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-8939b0fc700f7eca.js +1 -0
  223. package/dist/dashboard/out/_next/static/chunks/app/app/page-5af1b6b439858aa6.js +1 -0
  224. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-ac39dc0cc3c26fa7.js +1 -0
  225. package/dist/dashboard/out/_next/static/chunks/app/{page-daf87e86f783f980.js → page-4a5938c18a11a654.js} +1 -1
  226. package/dist/dashboard/out/_next/static/chunks/app/providers/page-ac3a6ac433fd6001.js +1 -0
  227. package/dist/dashboard/out/_next/static/chunks/app/providers/setup/[provider]/page-09f9caae98a18c09.js +1 -0
  228. package/dist/dashboard/out/_next/static/chunks/{main-97850e03d723ea8c.js → main-2ee6beb2ae96d210.js} +1 -1
  229. package/dist/dashboard/out/_next/static/css/85d2af9c7ac74d62.css +1 -0
  230. package/dist/dashboard/out/_next/static/css/fe4b28883eeff359.css +1 -0
  231. package/dist/dashboard/out/app/onboarding.html +1 -0
  232. package/dist/dashboard/out/app/onboarding.txt +7 -0
  233. package/dist/dashboard/out/app.html +1 -1
  234. package/dist/dashboard/out/app.txt +3 -3
  235. package/dist/dashboard/out/apple-icon.png +0 -0
  236. package/dist/dashboard/out/connect-repos.html +1 -1
  237. package/dist/dashboard/out/connect-repos.txt +3 -3
  238. package/dist/dashboard/out/history.html +1 -1
  239. package/dist/dashboard/out/history.txt +3 -3
  240. package/dist/dashboard/out/index.html +1 -1
  241. package/dist/dashboard/out/index.txt +3 -3
  242. package/dist/dashboard/out/login.html +2 -2
  243. package/dist/dashboard/out/login.txt +3 -3
  244. package/dist/dashboard/out/metrics.html +1 -1
  245. package/dist/dashboard/out/metrics.txt +3 -3
  246. package/dist/dashboard/out/pricing.html +3 -3
  247. package/dist/dashboard/out/pricing.txt +3 -3
  248. package/dist/dashboard/out/providers/setup/claude.html +1 -0
  249. package/dist/dashboard/out/providers/setup/claude.txt +8 -0
  250. package/dist/dashboard/out/providers/setup/codex.html +1 -0
  251. package/dist/dashboard/out/providers/setup/codex.txt +8 -0
  252. package/dist/dashboard/out/providers.html +1 -1
  253. package/dist/dashboard/out/providers.txt +3 -3
  254. package/dist/dashboard/out/signup.html +2 -2
  255. package/dist/dashboard/out/signup.txt +3 -3
  256. package/dist/dashboard-server/server.js +316 -12
  257. package/dist/dashboard-server/user-bridge.d.ts +103 -0
  258. package/dist/dashboard-server/user-bridge.js +189 -0
  259. package/dist/protocol/channels.d.ts +205 -0
  260. package/dist/protocol/channels.js +154 -0
  261. package/dist/protocol/types.d.ts +13 -1
  262. package/dist/resiliency/provider-context.js +2 -0
  263. package/dist/shared/cli-auth-config.d.ts +19 -0
  264. package/dist/shared/cli-auth-config.js +58 -2
  265. package/dist/utils/agent-config.js +1 -1
  266. package/dist/wrapper/auth-detection.d.ts +49 -0
  267. package/dist/wrapper/auth-detection.js +192 -0
  268. package/dist/wrapper/base-wrapper.d.ts +153 -0
  269. package/dist/wrapper/base-wrapper.js +393 -0
  270. package/dist/wrapper/client.d.ts +7 -1
  271. package/dist/wrapper/client.js +3 -0
  272. package/dist/wrapper/index.d.ts +1 -0
  273. package/dist/wrapper/index.js +4 -3
  274. package/dist/wrapper/pty-wrapper.d.ts +62 -84
  275. package/dist/wrapper/pty-wrapper.js +154 -180
  276. package/dist/wrapper/tmux-wrapper.d.ts +41 -66
  277. package/dist/wrapper/tmux-wrapper.js +90 -134
  278. package/package.json +5 -12
  279. package/scripts/postinstall.js +11 -155
  280. package/scripts/test-interactive-terminal.sh +248 -0
  281. package/test-push.txt +1 -0
  282. package/bin/tmux +0 -0
  283. package/dist/bridge/config.d.ts.map +0 -1
  284. package/dist/bridge/config.js.map +0 -1
  285. package/dist/bridge/index.d.ts.map +0 -1
  286. package/dist/bridge/index.js.map +0 -1
  287. package/dist/bridge/multi-project-client.d.ts.map +0 -1
  288. package/dist/bridge/multi-project-client.js.map +0 -1
  289. package/dist/bridge/shadow-cli.d.ts.map +0 -1
  290. package/dist/bridge/shadow-cli.js.map +0 -1
  291. package/dist/bridge/shadow-config.d.ts.map +0 -1
  292. package/dist/bridge/shadow-config.js.map +0 -1
  293. package/dist/bridge/spawner.d.ts.map +0 -1
  294. package/dist/bridge/spawner.js.map +0 -1
  295. package/dist/bridge/teams-config.d.ts.map +0 -1
  296. package/dist/bridge/teams-config.js.map +0 -1
  297. package/dist/bridge/types.d.ts.map +0 -1
  298. package/dist/bridge/types.js.map +0 -1
  299. package/dist/bridge/utils.d.ts.map +0 -1
  300. package/dist/bridge/utils.js.map +0 -1
  301. package/dist/cli/index.d.ts.map +0 -1
  302. package/dist/cli/index.js.map +0 -1
  303. package/dist/cloud/api/auth.d.ts.map +0 -1
  304. package/dist/cloud/api/auth.js.map +0 -1
  305. package/dist/cloud/api/billing.d.ts.map +0 -1
  306. package/dist/cloud/api/billing.js.map +0 -1
  307. package/dist/cloud/api/cli-pty-runner.d.ts.map +0 -1
  308. package/dist/cloud/api/cli-pty-runner.js.map +0 -1
  309. package/dist/cloud/api/coordinators.d.ts.map +0 -1
  310. package/dist/cloud/api/coordinators.js.map +0 -1
  311. package/dist/cloud/api/daemons.d.ts.map +0 -1
  312. package/dist/cloud/api/daemons.js.map +0 -1
  313. package/dist/cloud/api/generic-webhooks.d.ts.map +0 -1
  314. package/dist/cloud/api/generic-webhooks.js.map +0 -1
  315. package/dist/cloud/api/git.d.ts.map +0 -1
  316. package/dist/cloud/api/git.js.map +0 -1
  317. package/dist/cloud/api/github-app.d.ts.map +0 -1
  318. package/dist/cloud/api/github-app.js.map +0 -1
  319. package/dist/cloud/api/middleware/planLimits.d.ts.map +0 -1
  320. package/dist/cloud/api/middleware/planLimits.js.map +0 -1
  321. package/dist/cloud/api/monitoring.d.ts.map +0 -1
  322. package/dist/cloud/api/monitoring.js.map +0 -1
  323. package/dist/cloud/api/nango-auth.d.ts.map +0 -1
  324. package/dist/cloud/api/nango-auth.js.map +0 -1
  325. package/dist/cloud/api/onboarding.d.ts.map +0 -1
  326. package/dist/cloud/api/onboarding.js.map +0 -1
  327. package/dist/cloud/api/policy.d.ts.map +0 -1
  328. package/dist/cloud/api/policy.js.map +0 -1
  329. package/dist/cloud/api/providers.d.ts.map +0 -1
  330. package/dist/cloud/api/providers.js.map +0 -1
  331. package/dist/cloud/api/repos.d.ts.map +0 -1
  332. package/dist/cloud/api/repos.js.map +0 -1
  333. package/dist/cloud/api/teams.d.ts.map +0 -1
  334. package/dist/cloud/api/teams.js.map +0 -1
  335. package/dist/cloud/api/test-helpers.d.ts.map +0 -1
  336. package/dist/cloud/api/test-helpers.js.map +0 -1
  337. package/dist/cloud/api/usage.d.ts.map +0 -1
  338. package/dist/cloud/api/usage.js.map +0 -1
  339. package/dist/cloud/api/webhooks.d.ts.map +0 -1
  340. package/dist/cloud/api/webhooks.js.map +0 -1
  341. package/dist/cloud/api/workspaces.d.ts.map +0 -1
  342. package/dist/cloud/api/workspaces.js.map +0 -1
  343. package/dist/cloud/billing/index.d.ts.map +0 -1
  344. package/dist/cloud/billing/index.js.map +0 -1
  345. package/dist/cloud/billing/plans.d.ts.map +0 -1
  346. package/dist/cloud/billing/plans.js.map +0 -1
  347. package/dist/cloud/billing/service.d.ts.map +0 -1
  348. package/dist/cloud/billing/service.js.map +0 -1
  349. package/dist/cloud/billing/types.d.ts.map +0 -1
  350. package/dist/cloud/billing/types.js.map +0 -1
  351. package/dist/cloud/config.d.ts.map +0 -1
  352. package/dist/cloud/config.js.map +0 -1
  353. package/dist/cloud/db/drizzle.d.ts.map +0 -1
  354. package/dist/cloud/db/drizzle.js.map +0 -1
  355. package/dist/cloud/db/index.d.ts.map +0 -1
  356. package/dist/cloud/db/index.js.map +0 -1
  357. package/dist/cloud/db/schema.d.ts.map +0 -1
  358. package/dist/cloud/db/schema.js.map +0 -1
  359. package/dist/cloud/index.d.ts.map +0 -1
  360. package/dist/cloud/index.js.map +0 -1
  361. package/dist/cloud/provisioner/index.d.ts.map +0 -1
  362. package/dist/cloud/provisioner/index.js.map +0 -1
  363. package/dist/cloud/server.d.ts.map +0 -1
  364. package/dist/cloud/server.js.map +0 -1
  365. package/dist/cloud/services/auto-scaler.d.ts.map +0 -1
  366. package/dist/cloud/services/auto-scaler.js.map +0 -1
  367. package/dist/cloud/services/capacity-manager.d.ts.map +0 -1
  368. package/dist/cloud/services/capacity-manager.js.map +0 -1
  369. package/dist/cloud/services/ci-agent-spawner.d.ts.map +0 -1
  370. package/dist/cloud/services/ci-agent-spawner.js.map +0 -1
  371. package/dist/cloud/services/coordinator.d.ts.map +0 -1
  372. package/dist/cloud/services/coordinator.js.map +0 -1
  373. package/dist/cloud/services/index.d.ts.map +0 -1
  374. package/dist/cloud/services/index.js.map +0 -1
  375. package/dist/cloud/services/mention-handler.d.ts.map +0 -1
  376. package/dist/cloud/services/mention-handler.js.map +0 -1
  377. package/dist/cloud/services/nango.d.ts.map +0 -1
  378. package/dist/cloud/services/nango.js.map +0 -1
  379. package/dist/cloud/services/persistence.d.ts.map +0 -1
  380. package/dist/cloud/services/persistence.js.map +0 -1
  381. package/dist/cloud/services/planLimits.d.ts.map +0 -1
  382. package/dist/cloud/services/planLimits.js.map +0 -1
  383. package/dist/cloud/services/scaling-orchestrator.d.ts.map +0 -1
  384. package/dist/cloud/services/scaling-orchestrator.js.map +0 -1
  385. package/dist/cloud/services/scaling-policy.d.ts.map +0 -1
  386. package/dist/cloud/services/scaling-policy.js.map +0 -1
  387. package/dist/cloud/vault/index.d.ts +0 -76
  388. package/dist/cloud/vault/index.d.ts.map +0 -1
  389. package/dist/cloud/vault/index.js +0 -219
  390. package/dist/cloud/vault/index.js.map +0 -1
  391. package/dist/cloud/webhooks/index.d.ts.map +0 -1
  392. package/dist/cloud/webhooks/index.js.map +0 -1
  393. package/dist/cloud/webhooks/parsers/github.d.ts.map +0 -1
  394. package/dist/cloud/webhooks/parsers/github.js.map +0 -1
  395. package/dist/cloud/webhooks/parsers/index.d.ts.map +0 -1
  396. package/dist/cloud/webhooks/parsers/index.js.map +0 -1
  397. package/dist/cloud/webhooks/parsers/linear.d.ts.map +0 -1
  398. package/dist/cloud/webhooks/parsers/linear.js.map +0 -1
  399. package/dist/cloud/webhooks/parsers/slack.d.ts.map +0 -1
  400. package/dist/cloud/webhooks/parsers/slack.js.map +0 -1
  401. package/dist/cloud/webhooks/responders/github.d.ts.map +0 -1
  402. package/dist/cloud/webhooks/responders/github.js.map +0 -1
  403. package/dist/cloud/webhooks/responders/index.d.ts.map +0 -1
  404. package/dist/cloud/webhooks/responders/index.js.map +0 -1
  405. package/dist/cloud/webhooks/responders/linear.d.ts.map +0 -1
  406. package/dist/cloud/webhooks/responders/linear.js.map +0 -1
  407. package/dist/cloud/webhooks/responders/slack.d.ts.map +0 -1
  408. package/dist/cloud/webhooks/responders/slack.js.map +0 -1
  409. package/dist/cloud/webhooks/router.d.ts.map +0 -1
  410. package/dist/cloud/webhooks/router.js.map +0 -1
  411. package/dist/cloud/webhooks/rules-engine.d.ts.map +0 -1
  412. package/dist/cloud/webhooks/rules-engine.js.map +0 -1
  413. package/dist/cloud/webhooks/types.d.ts.map +0 -1
  414. package/dist/cloud/webhooks/types.js.map +0 -1
  415. package/dist/continuity/formatter.d.ts.map +0 -1
  416. package/dist/continuity/formatter.js.map +0 -1
  417. package/dist/continuity/handoff-store.d.ts.map +0 -1
  418. package/dist/continuity/handoff-store.js.map +0 -1
  419. package/dist/continuity/index.d.ts.map +0 -1
  420. package/dist/continuity/index.js.map +0 -1
  421. package/dist/continuity/ledger-store.d.ts.map +0 -1
  422. package/dist/continuity/ledger-store.js.map +0 -1
  423. package/dist/continuity/manager.d.ts.map +0 -1
  424. package/dist/continuity/manager.js.map +0 -1
  425. package/dist/continuity/parser.d.ts.map +0 -1
  426. package/dist/continuity/parser.js.map +0 -1
  427. package/dist/continuity/types.d.ts.map +0 -1
  428. package/dist/continuity/types.js.map +0 -1
  429. package/dist/daemon/agent-manager.d.ts.map +0 -1
  430. package/dist/daemon/agent-manager.js.map +0 -1
  431. package/dist/daemon/agent-registry.d.ts.map +0 -1
  432. package/dist/daemon/agent-registry.js.map +0 -1
  433. package/dist/daemon/api.d.ts.map +0 -1
  434. package/dist/daemon/api.js.map +0 -1
  435. package/dist/daemon/auth.d.ts.map +0 -1
  436. package/dist/daemon/auth.js.map +0 -1
  437. package/dist/daemon/cli-auth.d.ts.map +0 -1
  438. package/dist/daemon/cli-auth.js.map +0 -1
  439. package/dist/daemon/cloud-sync.d.ts.map +0 -1
  440. package/dist/daemon/cloud-sync.js.map +0 -1
  441. package/dist/daemon/connection.d.ts.map +0 -1
  442. package/dist/daemon/connection.js.map +0 -1
  443. package/dist/daemon/index.d.ts.map +0 -1
  444. package/dist/daemon/index.js.map +0 -1
  445. package/dist/daemon/orchestrator.d.ts.map +0 -1
  446. package/dist/daemon/orchestrator.js.map +0 -1
  447. package/dist/daemon/registry.d.ts.map +0 -1
  448. package/dist/daemon/registry.js.map +0 -1
  449. package/dist/daemon/router.d.ts.map +0 -1
  450. package/dist/daemon/router.js.map +0 -1
  451. package/dist/daemon/server.d.ts.map +0 -1
  452. package/dist/daemon/server.js.map +0 -1
  453. package/dist/daemon/services/browser-testing.d.ts.map +0 -1
  454. package/dist/daemon/services/browser-testing.js.map +0 -1
  455. package/dist/daemon/services/container-spawner.d.ts.map +0 -1
  456. package/dist/daemon/services/container-spawner.js.map +0 -1
  457. package/dist/daemon/types.d.ts.map +0 -1
  458. package/dist/daemon/types.js.map +0 -1
  459. package/dist/daemon/workspace-manager.d.ts.map +0 -1
  460. package/dist/daemon/workspace-manager.js.map +0 -1
  461. package/dist/dashboard/out/_next/static/H5aWG0udPB4iOUIl_gytz/_ssgManifest.js +0 -1
  462. package/dist/dashboard/out/_next/static/chunks/480-2d4111711d4e473c.js +0 -1
  463. package/dist/dashboard/out/_next/static/chunks/724-73c1ee5f60abe860.js +0 -9
  464. package/dist/dashboard/out/_next/static/chunks/766-c3a14283c88d815b.js +0 -1
  465. package/dist/dashboard/out/_next/static/chunks/app/app/page-7120be68bea622f3.js +0 -1
  466. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-1081dd190a331a91.js +0 -1
  467. package/dist/dashboard/out/_next/static/chunks/app/providers/page-b68a681526eb145e.js +0 -1
  468. package/dist/dashboard/out/_next/static/css/29852f26181969a0.css +0 -1
  469. package/dist/dashboard/out/_next/static/css/411ce23ffeae9f76.css +0 -1
  470. package/dist/dashboard-server/metrics.d.ts.map +0 -1
  471. package/dist/dashboard-server/metrics.js.map +0 -1
  472. package/dist/dashboard-server/needs-attention.d.ts.map +0 -1
  473. package/dist/dashboard-server/needs-attention.js.map +0 -1
  474. package/dist/dashboard-server/server.d.ts.map +0 -1
  475. package/dist/dashboard-server/server.js.map +0 -1
  476. package/dist/dashboard-server/start.d.ts.map +0 -1
  477. package/dist/dashboard-server/start.js.map +0 -1
  478. package/dist/hooks/emitter.d.ts.map +0 -1
  479. package/dist/hooks/emitter.js.map +0 -1
  480. package/dist/hooks/inbox-check/hook.d.ts.map +0 -1
  481. package/dist/hooks/inbox-check/hook.js.map +0 -1
  482. package/dist/hooks/inbox-check/index.d.ts.map +0 -1
  483. package/dist/hooks/inbox-check/index.js.map +0 -1
  484. package/dist/hooks/inbox-check/types.d.ts.map +0 -1
  485. package/dist/hooks/inbox-check/types.js.map +0 -1
  486. package/dist/hooks/inbox-check/utils.d.ts.map +0 -1
  487. package/dist/hooks/inbox-check/utils.js.map +0 -1
  488. package/dist/hooks/index.d.ts.map +0 -1
  489. package/dist/hooks/index.js.map +0 -1
  490. package/dist/hooks/registry.d.ts.map +0 -1
  491. package/dist/hooks/registry.js.map +0 -1
  492. package/dist/hooks/trajectory-hooks.d.ts.map +0 -1
  493. package/dist/hooks/trajectory-hooks.js.map +0 -1
  494. package/dist/hooks/types.d.ts.map +0 -1
  495. package/dist/hooks/types.js.map +0 -1
  496. package/dist/index.d.ts.map +0 -1
  497. package/dist/index.js.map +0 -1
  498. package/dist/memory/adapters/index.d.ts.map +0 -1
  499. package/dist/memory/adapters/index.js.map +0 -1
  500. package/dist/memory/adapters/inmemory.d.ts.map +0 -1
  501. package/dist/memory/adapters/inmemory.js.map +0 -1
  502. package/dist/memory/adapters/supermemory.d.ts.map +0 -1
  503. package/dist/memory/adapters/supermemory.js.map +0 -1
  504. package/dist/memory/factory.d.ts.map +0 -1
  505. package/dist/memory/factory.js.map +0 -1
  506. package/dist/memory/index.d.ts.map +0 -1
  507. package/dist/memory/index.js.map +0 -1
  508. package/dist/memory/memory-hooks.d.ts.map +0 -1
  509. package/dist/memory/memory-hooks.js.map +0 -1
  510. package/dist/memory/service.d.ts.map +0 -1
  511. package/dist/memory/service.js.map +0 -1
  512. package/dist/memory/types.d.ts.map +0 -1
  513. package/dist/memory/types.js.map +0 -1
  514. package/dist/policy/agent-policy.d.ts.map +0 -1
  515. package/dist/policy/agent-policy.js.map +0 -1
  516. package/dist/policy/cloud-policy-fetcher.d.ts.map +0 -1
  517. package/dist/policy/cloud-policy-fetcher.js.map +0 -1
  518. package/dist/protocol/framing.d.ts.map +0 -1
  519. package/dist/protocol/framing.js.map +0 -1
  520. package/dist/protocol/index.d.ts.map +0 -1
  521. package/dist/protocol/index.js.map +0 -1
  522. package/dist/protocol/types.d.ts.map +0 -1
  523. package/dist/protocol/types.js.map +0 -1
  524. package/dist/resiliency/context-persistence.d.ts.map +0 -1
  525. package/dist/resiliency/context-persistence.js.map +0 -1
  526. package/dist/resiliency/crash-insights.d.ts.map +0 -1
  527. package/dist/resiliency/crash-insights.js.map +0 -1
  528. package/dist/resiliency/gossip-health.d.ts.map +0 -1
  529. package/dist/resiliency/gossip-health.js.map +0 -1
  530. package/dist/resiliency/health-monitor.d.ts.map +0 -1
  531. package/dist/resiliency/health-monitor.js.map +0 -1
  532. package/dist/resiliency/index.d.ts.map +0 -1
  533. package/dist/resiliency/index.js.map +0 -1
  534. package/dist/resiliency/leader-watchdog.d.ts.map +0 -1
  535. package/dist/resiliency/leader-watchdog.js.map +0 -1
  536. package/dist/resiliency/logger.d.ts.map +0 -1
  537. package/dist/resiliency/logger.js.map +0 -1
  538. package/dist/resiliency/memory-monitor.d.ts.map +0 -1
  539. package/dist/resiliency/memory-monitor.js.map +0 -1
  540. package/dist/resiliency/metrics.d.ts.map +0 -1
  541. package/dist/resiliency/metrics.js.map +0 -1
  542. package/dist/resiliency/provider-context.d.ts.map +0 -1
  543. package/dist/resiliency/provider-context.js.map +0 -1
  544. package/dist/resiliency/stateless-lead.d.ts.map +0 -1
  545. package/dist/resiliency/stateless-lead.js.map +0 -1
  546. package/dist/resiliency/supervisor.d.ts.map +0 -1
  547. package/dist/resiliency/supervisor.js.map +0 -1
  548. package/dist/shared/cli-auth-config.d.ts.map +0 -1
  549. package/dist/shared/cli-auth-config.js.map +0 -1
  550. package/dist/state/agent-state.d.ts.map +0 -1
  551. package/dist/state/agent-state.js.map +0 -1
  552. package/dist/storage/adapter.d.ts.map +0 -1
  553. package/dist/storage/adapter.js.map +0 -1
  554. package/dist/storage/sqlite-adapter.d.ts.map +0 -1
  555. package/dist/storage/sqlite-adapter.js.map +0 -1
  556. package/dist/trajectory/config.d.ts.map +0 -1
  557. package/dist/trajectory/config.js.map +0 -1
  558. package/dist/trajectory/index.d.ts.map +0 -1
  559. package/dist/trajectory/index.js.map +0 -1
  560. package/dist/trajectory/integration.d.ts.map +0 -1
  561. package/dist/trajectory/integration.js.map +0 -1
  562. package/dist/utils/agent-config.d.ts.map +0 -1
  563. package/dist/utils/agent-config.js.map +0 -1
  564. package/dist/utils/command-resolver.d.ts.map +0 -1
  565. package/dist/utils/command-resolver.js.map +0 -1
  566. package/dist/utils/index.d.ts.map +0 -1
  567. package/dist/utils/index.js.map +0 -1
  568. package/dist/utils/logger.d.ts.map +0 -1
  569. package/dist/utils/logger.js.map +0 -1
  570. package/dist/utils/name-generator.d.ts.map +0 -1
  571. package/dist/utils/name-generator.js.map +0 -1
  572. package/dist/utils/project-namespace.d.ts.map +0 -1
  573. package/dist/utils/project-namespace.js.map +0 -1
  574. package/dist/utils/tmux-resolver.d.ts.map +0 -1
  575. package/dist/utils/tmux-resolver.js.map +0 -1
  576. package/dist/utils/update-checker.d.ts.map +0 -1
  577. package/dist/utils/update-checker.js.map +0 -1
  578. package/dist/wrapper/client.d.ts.map +0 -1
  579. package/dist/wrapper/client.js.map +0 -1
  580. package/dist/wrapper/inbox.d.ts.map +0 -1
  581. package/dist/wrapper/inbox.js.map +0 -1
  582. package/dist/wrapper/index.d.ts.map +0 -1
  583. package/dist/wrapper/index.js.map +0 -1
  584. package/dist/wrapper/parser.d.ts.map +0 -1
  585. package/dist/wrapper/parser.js.map +0 -1
  586. package/dist/wrapper/pty-wrapper.d.ts.map +0 -1
  587. package/dist/wrapper/pty-wrapper.js.map +0 -1
  588. package/dist/wrapper/shared.d.ts.map +0 -1
  589. package/dist/wrapper/shared.js.map +0 -1
  590. package/dist/wrapper/tmux-wrapper.d.ts.map +0 -1
  591. package/dist/wrapper/tmux-wrapper.js.map +0 -1
  592. package/docs/AGENTS.md +0 -513
  593. package/docs/ARCHITECTURE_DECISIONS.md +0 -175
  594. package/docs/CLOUD-ARCHITECTURE.md +0 -804
  595. package/docs/CLOUD-ONBOARDING-DESIGN.md +0 -1983
  596. package/docs/CONTRIBUTING.md +0 -151
  597. package/docs/HOOKS_API.md +0 -394
  598. package/docs/INTEGRATION-GUIDE.md +0 -926
  599. package/docs/PROTOCOL.md +0 -325
  600. package/docs/WRAPPER_EVENTS.md +0 -358
  601. package/docs/agent-policy-snippet.md +0 -40
  602. package/docs/agent-relay-protocol.md +0 -238
  603. package/docs/agent-relay-snippet.md +0 -174
  604. package/docs/archive/CHANGELOG.md +0 -11
  605. package/docs/archive/CLI-SIMPLIFICATION-COMPLETE.md +0 -48
  606. package/docs/archive/DESIGN_BRIDGE_STAFFING.md +0 -878
  607. package/docs/archive/DESIGN_V2.md +0 -1079
  608. package/docs/archive/EXECUTIVE_SUMMARY.md +0 -358
  609. package/docs/archive/MONETIZATION.md +0 -1679
  610. package/docs/archive/PROPOSAL-trajectories.md +0 -1582
  611. package/docs/archive/ROADMAP.md +0 -329
  612. package/docs/archive/SCALING_ANALYSIS.md +0 -280
  613. package/docs/archive/TESTING_PRESENCE_FEATURES.md +0 -327
  614. package/docs/archive/TMUX_IMPLEMENTATION_NOTES.md +0 -364
  615. package/docs/archive/TMUX_IMPROVEMENTS.md +0 -968
  616. package/docs/archive/dashboard-v2-plan.md +0 -179
  617. package/docs/archive/removable-code-analysis.md +0 -24
  618. package/docs/competitive/GASTOWN.md +0 -451
  619. package/docs/competitive/MCP_AGENT_MAIL.md +0 -389
  620. package/docs/competitive/OVERVIEW.md +0 -898
  621. package/docs/competitive/README.md +0 -34
  622. package/docs/competitive/TMUX_ORCHESTRATOR.md +0 -605
  623. package/docs/dashboard.png +0 -0
  624. package/docs/design/ci-failure-webhooks.md +0 -812
  625. package/docs/design/comprehensive-integrations.md +0 -238
  626. package/docs/design/e2b-sandbox-integration.md +0 -504
  627. package/docs/design/github-app-permissions.md +0 -264
  628. package/docs/guides/CLOUD.md +0 -236
  629. package/docs/guides/LOCAL.md +0 -535
  630. package/docs/guides/SELF-HOSTED.md +0 -494
  631. package/docs/local-testing.md +0 -428
  632. package/docs/proposals/continuous-claude-integration.md +0 -622
  633. package/docs/proposals/custom-commands.md +0 -368
  634. package/docs/proposals/shadow-as-subagent.md +0 -765
  635. package/docs/proposals/slack-bot-integration.md +0 -1457
  636. package/docs/tasks/global-skills-system.tasks.md +0 -230
  637. package/docs/tasks/webhook-integrations.tasks.md +0 -184
  638. package/docs/tasks/workspace-capabilities.tasks.md +0 -121
  639. package/docs/testing/RESILIENCY-TEST-PLAN-2026-01-01.md +0 -366
  640. package/scripts/cloud-setup.sh +0 -96
  641. package/scripts/dev/PUBLIC_RELEASE_PLAN.md +0 -88
  642. package/scripts/dev/dev-team-setup.sh +0 -431
  643. package/scripts/e2e-test.sh +0 -119
  644. package/scripts/games/game-protocol.md +0 -79
  645. package/scripts/games/hearts-setup.sh +0 -264
  646. package/scripts/manual-qa.sh +0 -293
  647. package/scripts/run-cloud-qa.sh +0 -220
  648. package/scripts/test-cli-auth/Dockerfile +0 -44
  649. package/scripts/test-cli-auth/Dockerfile.real +0 -79
  650. package/scripts/test-cli-auth/README.md +0 -286
  651. package/scripts/test-cli-auth/ci-test-real-clis.ts +0 -251
  652. package/scripts/test-cli-auth/ci-test-runner.ts +0 -263
  653. package/scripts/test-cli-auth/mock-cli.sh +0 -147
  654. package/scripts/test-cli-auth/package.json +0 -14
  655. package/scripts/test-cli-auth/test-oauth-flow.ts +0 -220
  656. package/scripts/test-pty-input-auto.js +0 -222
  657. package/scripts/test-pty-input.js +0 -150
  658. package/scripts/tictactoe-setup.sh +0 -181
  659. /package/dist/dashboard/out/_next/static/{H5aWG0udPB4iOUIl_gytz → T1tgCqVWHFIkV7ClEtzD7}/_buildManifest.js +0 -0
  660. /package/dist/dashboard/out/_next/static/chunks/{117-b100311aff8d5c61.js → 117-f7b8ab0809342e77.js} +0 -0
  661. /package/dist/dashboard/out/_next/static/chunks/{648-a13d3c2b1be45466.js → 648-5cc6e1921389a58a.js} +0 -0
  662. /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-a4973f3e3c82fb67.js → page-53b8a69f76db17d0.js} +0 -0
  663. /package/dist/dashboard/out/_next/static/chunks/app/connect-repos/{page-dc2e3a1a22478efc.js → page-f45ecbc3e06134fc.js} +0 -0
  664. /package/dist/dashboard/out/_next/static/chunks/app/history/{page-56a8b4616a90dc43.js → page-8c8bed33beb2bf1c.js} +0 -0
  665. /package/dist/dashboard/out/_next/static/chunks/app/login/{page-3eac37ea6f5dd153.js → page-16f3b49e55b1e0ed.js} +0 -0
  666. /package/dist/dashboard/out/_next/static/chunks/app/pricing/{page-4d72d5a5d8a9b618.js → page-982a7000fee44014.js} +0 -0
  667. /package/dist/dashboard/out/_next/static/chunks/app/signup/{page-fee4ed1709070bcd.js → page-547dd0ca55ecd0ba.js} +0 -0
  668. /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-bf46c09eb57e019c.js → fd9d1056-609918ca7b6280bb.js} +0 -0
@@ -0,0 +1,384 @@
1
+ /**
2
+ * Workspace Repository Manager
3
+ *
4
+ * Manages repository cloning, updating, and removal for workspace containers.
5
+ * Uses a file-based tracking system (repos.json) to persist state across restarts.
6
+ *
7
+ * This replaces the static REPOSITORIES env var approach, allowing dynamic
8
+ * repo management without workspace restart.
9
+ */
10
+ import * as fs from 'fs';
11
+ import * as path from 'path';
12
+ import { execSync, spawn } from 'child_process';
13
+ import { EventEmitter } from 'events';
14
+ import { createLogger } from '../resiliency/logger.js';
15
+ const logger = createLogger('repo-manager');
16
+ const DEFAULT_CONFIG_FILE = 'repos.json';
17
+ export class RepoManager extends EventEmitter {
18
+ workspaceDir;
19
+ configPath;
20
+ config;
21
+ constructor(options) {
22
+ super();
23
+ this.workspaceDir = options.workspaceDir;
24
+ this.configPath = path.join(this.workspaceDir, options.configFile || DEFAULT_CONFIG_FILE);
25
+ this.config = this.loadConfig();
26
+ }
27
+ /**
28
+ * Load or initialize the repos config file
29
+ */
30
+ loadConfig() {
31
+ try {
32
+ if (fs.existsSync(this.configPath)) {
33
+ const data = fs.readFileSync(this.configPath, 'utf-8');
34
+ const config = JSON.parse(data);
35
+ logger.info('Loaded repo config', { repoCount: Object.keys(config.repos).length });
36
+ return config;
37
+ }
38
+ }
39
+ catch (err) {
40
+ logger.warn('Failed to load repo config, starting fresh', { error: String(err) });
41
+ }
42
+ // Initialize new config
43
+ return {
44
+ version: 1,
45
+ workspaceDir: this.workspaceDir,
46
+ repos: {},
47
+ lastUpdated: new Date().toISOString(),
48
+ };
49
+ }
50
+ /**
51
+ * Save the config to disk
52
+ */
53
+ saveConfig() {
54
+ this.config.lastUpdated = new Date().toISOString();
55
+ fs.writeFileSync(this.configPath, JSON.stringify(this.config, null, 2));
56
+ }
57
+ /**
58
+ * Get all tracked repos
59
+ */
60
+ getRepos() {
61
+ return Object.values(this.config.repos).filter(r => r.status !== 'removed');
62
+ }
63
+ /**
64
+ * Get a specific repo by full name
65
+ */
66
+ getRepo(fullName) {
67
+ const key = fullName.toLowerCase();
68
+ return this.config.repos[key] || null;
69
+ }
70
+ /**
71
+ * Sync a repository (clone if new, pull if exists)
72
+ */
73
+ async syncRepo(fullName) {
74
+ const key = fullName.toLowerCase();
75
+ const localName = path.basename(fullName);
76
+ const repoPath = path.join(this.workspaceDir, localName);
77
+ logger.info('Syncing repo', { fullName, repoPath });
78
+ // Update status to cloning
79
+ this.config.repos[key] = {
80
+ fullName,
81
+ localName,
82
+ path: repoPath,
83
+ status: 'cloning',
84
+ addedAt: this.config.repos[key]?.addedAt || new Date().toISOString(),
85
+ };
86
+ this.saveConfig();
87
+ this.emit('repo:syncing', { fullName });
88
+ try {
89
+ const gitDir = path.join(repoPath, '.git');
90
+ const exists = fs.existsSync(gitDir);
91
+ if (exists) {
92
+ // Pull existing repo
93
+ await this.gitPull(repoPath, fullName);
94
+ this.config.repos[key] = {
95
+ ...this.config.repos[key],
96
+ status: 'cloned',
97
+ lastSynced: new Date().toISOString(),
98
+ defaultBranch: this.getDefaultBranch(repoPath),
99
+ error: undefined,
100
+ };
101
+ this.saveConfig();
102
+ this.emit('repo:synced', { fullName, action: 'updated' });
103
+ logger.info('Repo updated', { fullName });
104
+ return { success: true, repo: fullName, action: 'updated', path: repoPath };
105
+ }
106
+ else {
107
+ // Clone new repo
108
+ await this.gitClone(fullName, repoPath);
109
+ this.config.repos[key] = {
110
+ ...this.config.repos[key],
111
+ status: 'cloned',
112
+ lastSynced: new Date().toISOString(),
113
+ defaultBranch: this.getDefaultBranch(repoPath),
114
+ error: undefined,
115
+ };
116
+ this.saveConfig();
117
+ // Mark directory as safe for git
118
+ this.markSafeDirectory(repoPath);
119
+ this.emit('repo:synced', { fullName, action: 'cloned' });
120
+ logger.info('Repo cloned', { fullName });
121
+ return { success: true, repo: fullName, action: 'cloned', path: repoPath };
122
+ }
123
+ }
124
+ catch (err) {
125
+ const errorMsg = err instanceof Error ? err.message : String(err);
126
+ this.config.repos[key] = {
127
+ ...this.config.repos[key],
128
+ status: 'error',
129
+ error: errorMsg,
130
+ };
131
+ this.saveConfig();
132
+ this.emit('repo:error', { fullName, error: errorMsg });
133
+ logger.error('Repo sync failed', { fullName, error: errorMsg });
134
+ return { success: false, repo: fullName, action: 'error', error: errorMsg };
135
+ }
136
+ }
137
+ /**
138
+ * Remove a repository
139
+ */
140
+ async removeRepo(fullName, deleteFiles = false) {
141
+ const key = fullName.toLowerCase();
142
+ const repo = this.config.repos[key];
143
+ if (!repo) {
144
+ logger.warn('Repo not found for removal', { fullName });
145
+ return false;
146
+ }
147
+ logger.info('Removing repo', { fullName, deleteFiles });
148
+ if (deleteFiles && fs.existsSync(repo.path)) {
149
+ try {
150
+ fs.rmSync(repo.path, { recursive: true, force: true });
151
+ logger.info('Deleted repo files', { fullName, path: repo.path });
152
+ }
153
+ catch (err) {
154
+ logger.error('Failed to delete repo files', { fullName, error: String(err) });
155
+ // Continue anyway - mark as removed in config
156
+ }
157
+ }
158
+ // Mark as removed (or delete from config entirely)
159
+ if (deleteFiles) {
160
+ delete this.config.repos[key];
161
+ }
162
+ else {
163
+ this.config.repos[key] = {
164
+ ...repo,
165
+ status: 'removed',
166
+ };
167
+ }
168
+ this.saveConfig();
169
+ this.emit('repo:removed', { fullName });
170
+ return true;
171
+ }
172
+ /**
173
+ * Sync multiple repos (e.g., from initial REPOSITORIES env var)
174
+ */
175
+ async syncRepos(fullNames) {
176
+ const results = [];
177
+ for (const fullName of fullNames) {
178
+ if (!fullName.trim())
179
+ continue;
180
+ const result = await this.syncRepo(fullName.trim());
181
+ results.push(result);
182
+ }
183
+ return results;
184
+ }
185
+ /**
186
+ * Initialize from REPOSITORIES env var (backward compatibility)
187
+ */
188
+ async initFromEnv() {
189
+ const repoList = process.env.REPOSITORIES || '';
190
+ if (!repoList.trim()) {
191
+ logger.info('No REPOSITORIES env var set, skipping initial sync');
192
+ return [];
193
+ }
194
+ const repos = repoList.split(',').map(r => r.trim()).filter(Boolean);
195
+ logger.info('Initializing repos from env', { count: repos.length });
196
+ return this.syncRepos(repos);
197
+ }
198
+ /**
199
+ * Scan workspace directory for existing repos and register them
200
+ * This handles repos that were cloned by entrypoint.sh before daemon started
201
+ */
202
+ scanExistingRepos() {
203
+ try {
204
+ const entries = fs.readdirSync(this.workspaceDir, { withFileTypes: true });
205
+ for (const entry of entries) {
206
+ if (!entry.isDirectory())
207
+ continue;
208
+ if (entry.name === DEFAULT_CONFIG_FILE || entry.name.startsWith('.'))
209
+ continue;
210
+ const repoPath = path.join(this.workspaceDir, entry.name);
211
+ const gitDir = path.join(repoPath, '.git');
212
+ if (!fs.existsSync(gitDir))
213
+ continue;
214
+ // Try to get the remote URL to determine full repo name
215
+ let fullName = entry.name; // Default to directory name
216
+ try {
217
+ const remoteUrl = execSync('git config --get remote.origin.url', {
218
+ cwd: repoPath,
219
+ encoding: 'utf-8',
220
+ stdio: ['ignore', 'pipe', 'ignore'],
221
+ }).trim();
222
+ // Parse GitHub URL: https://github.com/owner/repo.git or git@github.com:owner/repo.git
223
+ const match = remoteUrl.match(/github\.com[/:]([a-zA-Z0-9_-]+)\/([a-zA-Z0-9_.-]+?)(?:\.git)?$/);
224
+ if (match) {
225
+ fullName = `${match[1]}/${match[2]}`;
226
+ }
227
+ }
228
+ catch {
229
+ // Couldn't get remote, use directory name
230
+ }
231
+ const key = fullName.toLowerCase();
232
+ // Only register if not already tracked
233
+ if (!this.config.repos[key]) {
234
+ this.config.repos[key] = {
235
+ fullName,
236
+ localName: entry.name,
237
+ path: repoPath,
238
+ status: 'cloned',
239
+ lastSynced: new Date().toISOString(),
240
+ defaultBranch: this.getDefaultBranch(repoPath),
241
+ addedAt: new Date().toISOString(),
242
+ };
243
+ logger.info('Registered existing repo', { fullName, path: repoPath });
244
+ }
245
+ }
246
+ this.saveConfig();
247
+ }
248
+ catch (err) {
249
+ logger.warn('Failed to scan for existing repos', { error: String(err) });
250
+ }
251
+ }
252
+ /**
253
+ * Clone a repository
254
+ */
255
+ gitClone(fullName, targetPath) {
256
+ return new Promise((resolve, reject) => {
257
+ const url = `https://github.com/${fullName}.git`;
258
+ logger.info('Cloning', { url, targetPath });
259
+ const proc = spawn('git', ['clone', url, targetPath], {
260
+ stdio: ['ignore', 'pipe', 'pipe'],
261
+ env: { ...process.env, GIT_TERMINAL_PROMPT: '0' },
262
+ });
263
+ let stderr = '';
264
+ proc.stderr?.on('data', (data) => {
265
+ stderr += data.toString();
266
+ });
267
+ proc.on('close', (code) => {
268
+ if (code === 0) {
269
+ resolve();
270
+ }
271
+ else {
272
+ reject(new Error(`git clone failed (code ${code}): ${stderr}`));
273
+ }
274
+ });
275
+ proc.on('error', (err) => {
276
+ reject(err);
277
+ });
278
+ });
279
+ }
280
+ /**
281
+ * Pull updates for a repository
282
+ */
283
+ gitPull(repoPath, fullName) {
284
+ return new Promise((resolve, reject) => {
285
+ logger.info('Pulling', { repoPath });
286
+ // First update remote URL in case it changed
287
+ try {
288
+ const url = `https://github.com/${fullName}.git`;
289
+ execSync(`git remote set-url origin "${url}"`, {
290
+ cwd: repoPath,
291
+ stdio: 'ignore',
292
+ });
293
+ }
294
+ catch {
295
+ // Ignore - remote might not exist yet
296
+ }
297
+ // Fetch and pull
298
+ const proc = spawn('git', ['pull', '--ff-only'], {
299
+ cwd: repoPath,
300
+ stdio: ['ignore', 'pipe', 'pipe'],
301
+ env: { ...process.env, GIT_TERMINAL_PROMPT: '0' },
302
+ });
303
+ let stderr = '';
304
+ proc.stderr?.on('data', (data) => {
305
+ stderr += data.toString();
306
+ });
307
+ proc.on('close', (code) => {
308
+ if (code === 0) {
309
+ resolve();
310
+ }
311
+ else {
312
+ // Try fetch --all as fallback (handles diverged branches better)
313
+ try {
314
+ execSync('git fetch --all --prune', { cwd: repoPath, stdio: 'ignore' });
315
+ resolve();
316
+ }
317
+ catch {
318
+ reject(new Error(`git pull failed (code ${code}): ${stderr}`));
319
+ }
320
+ }
321
+ });
322
+ proc.on('error', (err) => {
323
+ reject(err);
324
+ });
325
+ });
326
+ }
327
+ /**
328
+ * Get the default branch of a repo
329
+ */
330
+ getDefaultBranch(repoPath) {
331
+ try {
332
+ const result = execSync('git symbolic-ref --short HEAD', {
333
+ cwd: repoPath,
334
+ encoding: 'utf-8',
335
+ stdio: ['ignore', 'pipe', 'ignore'],
336
+ });
337
+ return result.trim();
338
+ }
339
+ catch {
340
+ return 'main';
341
+ }
342
+ }
343
+ /**
344
+ * Mark directory as safe for git (prevents "dubious ownership" errors)
345
+ */
346
+ markSafeDirectory(repoPath) {
347
+ try {
348
+ execSync(`git config --global --add safe.directory "${repoPath}"`, {
349
+ stdio: 'ignore',
350
+ });
351
+ }
352
+ catch {
353
+ // Ignore errors
354
+ }
355
+ }
356
+ }
357
+ // Singleton instance
358
+ let repoManagerInstance = null;
359
+ /**
360
+ * Get or create the repo manager instance
361
+ */
362
+ export function getRepoManager(workspaceDir) {
363
+ if (!repoManagerInstance) {
364
+ const dir = workspaceDir || process.env.WORKSPACE_DIR || '/workspace';
365
+ repoManagerInstance = new RepoManager({ workspaceDir: dir });
366
+ }
367
+ return repoManagerInstance;
368
+ }
369
+ /**
370
+ * Initialize repo manager (call at startup)
371
+ *
372
+ * 1. Scans workspace for existing repos (handles entrypoint.sh clones)
373
+ * 2. Syncs any repos from REPOSITORIES env var that aren't already cloned
374
+ */
375
+ export async function initRepoManager(workspaceDir) {
376
+ const manager = getRepoManager(workspaceDir);
377
+ // First, scan for repos already cloned by entrypoint.sh
378
+ manager.scanExistingRepos();
379
+ // Then sync any additional repos from env var
380
+ // (syncRepos skips repos that are already cloned and up-to-date)
381
+ await manager.initFromEnv();
382
+ return manager;
383
+ }
384
+ //# sourceMappingURL=repo-manager.js.map
@@ -2,12 +2,15 @@
2
2
  * Message router for the agent relay daemon.
3
3
  * Handles routing messages between agents, topic subscriptions, and broadcast.
4
4
  */
5
- import { type Envelope, type SendEnvelope, type AckPayload, type ShadowConfig, type SpeakOnTrigger } from '../protocol/types.js';
5
+ import { type Envelope, type SendEnvelope, type AckPayload, type ShadowConfig, type SpeakOnTrigger, type EntityType } from '../protocol/types.js';
6
+ import type { ChannelJoinPayload, ChannelLeavePayload, ChannelMessagePayload } from '../protocol/channels.js';
6
7
  import type { StorageAdapter } from '../storage/adapter.js';
7
8
  import type { AgentRegistry } from './agent-registry.js';
8
9
  export interface RoutableConnection {
9
10
  id: string;
10
11
  agentName?: string;
12
+ /** Entity type: 'agent' (default) or 'user' for human users */
13
+ entityType?: EntityType;
11
14
  cli?: string;
12
15
  program?: string;
13
16
  model?: string;
@@ -55,6 +58,12 @@ export declare class Router {
55
58
  private shadowsByPrimary;
56
59
  /** Reverse lookup: shadowAgent -> primaryAgent (for cleanup) */
57
60
  private primaryByShadow;
61
+ /** Channel membership: channel -> Set of member names */
62
+ private channels;
63
+ /** User entities (human users, not agents) */
64
+ private users;
65
+ /** Reverse lookup: member name -> Set of channels they're in */
66
+ private memberChannels;
58
67
  /** Default timeout for processing indicator (30 seconds) */
59
68
  private static readonly PROCESSING_TIMEOUT_MS;
60
69
  /** Callback when processing state changes (for real-time dashboard updates) */
@@ -78,6 +87,10 @@ export declare class Router {
78
87
  * Unregister a connection.
79
88
  */
80
89
  unregister(connection: RoutableConnection): void;
90
+ /**
91
+ * Remove a member from all channels they're in.
92
+ */
93
+ private removeFromAllChannels;
81
94
  /**
82
95
  * Subscribe an agent to a topic.
83
96
  */
@@ -206,6 +219,52 @@ export declare class Router {
206
219
  * Replay any pending (unacked) messages for a resumed session.
207
220
  */
208
221
  replayPending(connection: RoutableConnection): Promise<void>;
222
+ /**
223
+ * Handle a CHANNEL_JOIN message.
224
+ * Adds the member to the channel and notifies existing members.
225
+ */
226
+ handleChannelJoin(connection: RoutableConnection, envelope: Envelope<ChannelJoinPayload>): void;
227
+ /**
228
+ * Handle a CHANNEL_LEAVE message.
229
+ * Removes the member from the channel and notifies remaining members.
230
+ */
231
+ handleChannelLeave(connection: RoutableConnection, envelope: Envelope<ChannelLeavePayload>): void;
232
+ /**
233
+ * Route a channel message to all members except the sender.
234
+ */
235
+ routeChannelMessage(connection: RoutableConnection, envelope: Envelope<ChannelMessagePayload>): void;
236
+ /**
237
+ * Persist a channel message to storage.
238
+ */
239
+ private persistChannelMessage;
240
+ /**
241
+ * Get all members of a channel.
242
+ */
243
+ getChannelMembers(channel: string): string[];
244
+ /**
245
+ * Get all channels.
246
+ */
247
+ getChannels(): string[];
248
+ /**
249
+ * Get all channels a member is in.
250
+ */
251
+ getChannelsForMember(memberName: string): string[];
252
+ /**
253
+ * Check if a name belongs to a user (not an agent).
254
+ */
255
+ isUser(name: string): boolean;
256
+ /**
257
+ * Check if a name belongs to an agent (not a user).
258
+ */
259
+ isAgent(name: string): boolean;
260
+ /**
261
+ * Get list of connected user names (human users only).
262
+ */
263
+ getUsers(): string[];
264
+ /**
265
+ * Get a connection by name (checks both agents and users).
266
+ */
267
+ private getConnectionByName;
209
268
  }
210
269
  export {};
211
270
  //# sourceMappingURL=router.d.ts.map