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
@@ -1,251 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * CI Test Runner for Real CLI OAuth Flows
4
- *
5
- * Tests the actual CLI tools to verify:
6
- * 1. URL extraction patterns work with real CLI output
7
- * 2. Prompt detection works with real prompts
8
- * 3. Auto-responses navigate through the flow correctly
9
- *
10
- * Exit codes:
11
- * 0 - All available CLIs passed
12
- * 1 - One or more tests failed
13
- *
14
- * Note: CLIs that aren't installed are skipped, not failed.
15
- *
16
- * IMPORTANT: This test uses the same runCLIAuthViaPTY function as production
17
- * to ensure the PTY handling logic is consistent.
18
- */
19
-
20
- import { execSync } from 'child_process';
21
- import { writeFileSync } from 'fs';
22
-
23
- // Import the actual config and PTY runner from cli-pty-runner.ts
24
- // This ensures tests use the EXACT SAME logic as production
25
- // In Docker: /app/src/cloud/api/cli-pty-runner.ts (maintains source tree structure)
26
- import {
27
- CLI_AUTH_CONFIG,
28
- runCLIAuthViaPTY,
29
- type PTYAuthResult,
30
- } from './src/cloud/api/cli-pty-runner.js';
31
-
32
- interface TestResult {
33
- provider: string;
34
- command: string;
35
- installed: boolean;
36
- passed: boolean;
37
- skipped: boolean;
38
- urlExtracted: string | null;
39
- promptsDetected: string[];
40
- promptsResponded: string[];
41
- successDetected: boolean;
42
- exitCode: number | null;
43
- duration: number;
44
- rawOutput: string;
45
- error?: string;
46
- }
47
-
48
- /**
49
- * Check if a CLI is installed
50
- */
51
- function isCliInstalled(command: string): boolean {
52
- try {
53
- execSync(`which ${command}`, { stdio: 'pipe' });
54
- return true;
55
- } catch {
56
- return false;
57
- }
58
- }
59
-
60
- /**
61
- * Test a real CLI's OAuth flow using the shared PTY runner
62
- *
63
- * Uses the EXACT SAME runCLIAuthViaPTY function as production to ensure
64
- * the PTY handling logic is consistent between tests and production.
65
- */
66
- async function testRealCli(providerId: string): Promise<TestResult> {
67
- const config = CLI_AUTH_CONFIG[providerId];
68
- if (!config) {
69
- return {
70
- provider: providerId,
71
- command: 'unknown',
72
- installed: false,
73
- passed: false,
74
- skipped: true,
75
- urlExtracted: null,
76
- promptsDetected: [],
77
- promptsResponded: [],
78
- successDetected: false,
79
- exitCode: null,
80
- duration: 0,
81
- rawOutput: '',
82
- error: `Unknown provider: ${providerId}`,
83
- };
84
- }
85
-
86
- const result: TestResult = {
87
- provider: providerId,
88
- command: `${config.command} ${config.args.join(' ')}`.trim(),
89
- installed: isCliInstalled(config.command),
90
- passed: false,
91
- skipped: false,
92
- urlExtracted: null,
93
- promptsDetected: [],
94
- promptsResponded: [],
95
- successDetected: false,
96
- exitCode: null,
97
- duration: 0,
98
- rawOutput: '',
99
- };
100
-
101
- // Skip if CLI not installed
102
- if (!result.installed) {
103
- result.skipped = true;
104
- result.error = `CLI '${config.command}' not installed`;
105
- return result;
106
- }
107
-
108
- const startTime = Date.now();
109
-
110
- // Use the shared PTY runner - SAME code as production
111
- const ptyResult: PTYAuthResult = await runCLIAuthViaPTY(config, {
112
- onAuthUrl: (url) => {
113
- result.urlExtracted = url;
114
- console.log(` [${providerId}] URL found: ${url.substring(0, 60)}...`);
115
- },
116
- onPromptHandled: (description) => {
117
- result.promptsDetected.push(description);
118
- result.promptsResponded.push(description);
119
- console.log(` [${providerId}] Responded to: ${description}`);
120
- },
121
- onOutput: (data) => {
122
- result.rawOutput += data;
123
- },
124
- });
125
-
126
- result.duration = Date.now() - startTime;
127
- result.exitCode = ptyResult.exitCode;
128
- result.successDetected = ptyResult.success;
129
-
130
- // Pass if we got a URL (main goal of OAuth flow)
131
- result.passed = !!result.urlExtracted;
132
-
133
- if (!result.passed) {
134
- result.error = ptyResult.error || 'Failed to extract auth URL from CLI output';
135
- }
136
-
137
- return result;
138
- }
139
-
140
- /**
141
- * Run tests for all configured providers
142
- */
143
- async function runAllTests() {
144
- console.log('╔══════════════════════════════════════════════════════════════╗');
145
- console.log('║ CLI OAuth Flow Tests - Real CLIs ║');
146
- console.log('╚══════════════════════════════════════════════════════════════╝');
147
- console.log('');
148
-
149
- const results: TestResult[] = [];
150
- const providerIds = Object.keys(CLI_AUTH_CONFIG);
151
-
152
- for (const providerId of providerIds) {
153
- const config = CLI_AUTH_CONFIG[providerId];
154
- console.log(`Testing ${config.displayName} (${providerId})...`);
155
-
156
- const result = await testRealCli(providerId);
157
- results.push(result);
158
-
159
- if (result.skipped) {
160
- console.log(` ⏭️ SKIPPED: ${result.error}`);
161
- } else if (result.passed) {
162
- console.log(` ✅ PASSED`);
163
- } else {
164
- console.log(` ❌ FAILED: ${result.error}`);
165
- }
166
-
167
- console.log(` Installed: ${result.installed ? 'Yes' : 'No'}`);
168
- if (!result.skipped) {
169
- console.log(` URL: ${result.urlExtracted ? 'Extracted' : 'NOT FOUND'}`);
170
- console.log(` Prompts: ${result.promptsResponded.length}/${config.prompts.length} handled`);
171
- console.log(` Duration: ${result.duration}ms`);
172
- }
173
- console.log('');
174
- }
175
-
176
- // Summary
177
- const installed = results.filter(r => r.installed);
178
- const skipped = results.filter(r => r.skipped);
179
- const passed = results.filter(r => r.passed);
180
- const failed = results.filter(r => !r.passed && !r.skipped);
181
-
182
- console.log('═══════════════════════════════════════════════════════════════');
183
- console.log(`Summary:`);
184
- console.log(` Installed: ${installed.length}/${results.length}`);
185
- console.log(` Passed: ${passed.length}`);
186
- console.log(` Failed: ${failed.length}`);
187
- console.log(` Skipped: ${skipped.length}`);
188
- console.log('═══════════════════════════════════════════════════════════════');
189
-
190
- // Write JSON results
191
- const jsonResults = {
192
- timestamp: new Date().toISOString(),
193
- results: results.map(r => ({
194
- provider: r.provider,
195
- command: r.command,
196
- installed: r.installed,
197
- passed: r.passed,
198
- skipped: r.skipped,
199
- urlExtracted: r.urlExtracted ? true : false,
200
- urlSample: r.urlExtracted?.substring(0, 80),
201
- promptsDetected: r.promptsDetected,
202
- promptsResponded: r.promptsResponded,
203
- exitCode: r.exitCode,
204
- duration: r.duration,
205
- error: r.error,
206
- })),
207
- summary: {
208
- total: results.length,
209
- installed: installed.length,
210
- passed: passed.length,
211
- failed: failed.length,
212
- skipped: skipped.length,
213
- },
214
- };
215
-
216
- try {
217
- writeFileSync('/tmp/cli-oauth-test-results.json', JSON.stringify(jsonResults, null, 2));
218
- console.log('\nResults written to /tmp/cli-oauth-test-results.json');
219
- } catch {
220
- console.log('\n--- JSON Results ---');
221
- console.log(JSON.stringify(jsonResults, null, 2));
222
- }
223
-
224
- // Exit with failure only if an installed CLI failed
225
- // Skipped CLIs don't count as failures
226
- if (failed.length > 0) {
227
- console.log('\nFailed CLIs:');
228
- for (const result of failed) {
229
- console.log(` - ${result.provider}: ${result.error}`);
230
- if (result.rawOutput) {
231
- console.log(` Last 500 chars of output:`);
232
- console.log(` ${result.rawOutput.slice(-500).replace(/\n/g, '\n ')}`);
233
- }
234
- }
235
- process.exit(1);
236
- }
237
-
238
- // Warn if no CLIs were tested
239
- if (installed.length === 0) {
240
- console.log('\n⚠️ WARNING: No CLIs were installed - no actual testing performed!');
241
- process.exit(0); // Don't fail, but warn
242
- }
243
-
244
- console.log('\n✅ All installed CLIs passed!');
245
- process.exit(0);
246
- }
247
-
248
- runAllTests().catch((err) => {
249
- console.error('Test runner failed:', err);
250
- process.exit(1);
251
- });
@@ -1,263 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * CI Test Runner for CLI OAuth Flow
4
- *
5
- * This script runs in a Docker container and tests each provider's
6
- * CLI OAuth flow to ensure URL extraction works correctly.
7
- *
8
- * Exit codes:
9
- * 0 - All tests passed
10
- * 1 - One or more tests failed
11
- *
12
- * Output format (JSON):
13
- * { "results": [...], "summary": { "passed": N, "failed": N } }
14
- */
15
-
16
- import * as pty from 'node-pty';
17
- import { writeFileSync } from 'fs';
18
-
19
- // Provider configurations - must match CLI_AUTH_CONFIG in onboarding.ts
20
- const PROVIDERS = {
21
- anthropic: {
22
- command: 'claude',
23
- args: [] as string[],
24
- urlPattern: /(https:\/\/[^\s]+)/,
25
- expectedUrlPrefix: 'https://console.anthropic.com',
26
- prompts: [
27
- { pattern: /dark\s*(mode|theme)/i, response: '\r' },
28
- { pattern: /(subscription|api\s*key)/i, response: '\r' },
29
- { pattern: /trust/i, response: 'y\r' },
30
- ],
31
- },
32
- openai: {
33
- command: 'codex',
34
- args: ['login'],
35
- urlPattern: /(https:\/\/[^\s]+)/,
36
- expectedUrlPrefix: 'https://auth.openai.com',
37
- prompts: [
38
- { pattern: /trust/i, response: 'y\r' },
39
- ],
40
- },
41
- google: {
42
- command: 'gemini',
43
- args: [] as string[],
44
- urlPattern: /(https:\/\/[^\s]+)/,
45
- expectedUrlPrefix: 'https://accounts.google.com',
46
- prompts: [],
47
- },
48
- opencode: {
49
- command: 'opencode',
50
- args: [] as string[],
51
- urlPattern: /(https:\/\/[^\s]+)/,
52
- expectedUrlPrefix: 'https://opencode.ai',
53
- prompts: [],
54
- },
55
- droid: {
56
- command: 'droid',
57
- args: [] as string[],
58
- urlPattern: /(https:\/\/[^\s]+)/,
59
- expectedUrlPrefix: 'https://factory.ai',
60
- prompts: [],
61
- },
62
- };
63
-
64
- interface TestResult {
65
- provider: string;
66
- command: string;
67
- passed: boolean;
68
- urlExtracted: string | null;
69
- urlValid: boolean;
70
- promptsHandled: number;
71
- exitCode: number | null;
72
- duration: number;
73
- output: string;
74
- error?: string;
75
- }
76
-
77
- function stripAnsi(text: string): string {
78
- return text.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '');
79
- }
80
-
81
- async function testProvider(providerId: string): Promise<TestResult> {
82
- const config = PROVIDERS[providerId as keyof typeof PROVIDERS];
83
- if (!config) {
84
- return {
85
- provider: providerId,
86
- command: 'unknown',
87
- passed: false,
88
- urlExtracted: null,
89
- urlValid: false,
90
- promptsHandled: 0,
91
- exitCode: null,
92
- duration: 0,
93
- output: '',
94
- error: `Unknown provider: ${providerId}`,
95
- };
96
- }
97
-
98
- const startTime = Date.now();
99
- const result: TestResult = {
100
- provider: providerId,
101
- command: `${config.command} ${config.args.join(' ')}`.trim(),
102
- passed: false,
103
- urlExtracted: null,
104
- urlValid: false,
105
- promptsHandled: 0,
106
- exitCode: null,
107
- duration: 0,
108
- output: '',
109
- };
110
-
111
- return new Promise((resolve) => {
112
- const respondedPrompts = new Set<number>();
113
-
114
- try {
115
- const proc = pty.spawn(config.command, config.args, {
116
- name: 'xterm-256color',
117
- cols: 120,
118
- rows: 30,
119
- env: { ...process.env, TERM: 'xterm-256color', NO_COLOR: '1' },
120
- });
121
-
122
- const timeout = setTimeout(() => {
123
- proc.kill();
124
- result.error = 'Timeout waiting for CLI';
125
- result.duration = Date.now() - startTime;
126
- resolve(result);
127
- }, 15000);
128
-
129
- proc.onData((data: string) => {
130
- result.output += data;
131
- const cleanText = stripAnsi(data);
132
-
133
- // Check for prompts and respond
134
- for (let i = 0; i < config.prompts.length; i++) {
135
- if (respondedPrompts.has(i)) continue;
136
- if (config.prompts[i].pattern.test(cleanText)) {
137
- respondedPrompts.add(i);
138
- result.promptsHandled++;
139
- setTimeout(() => {
140
- try {
141
- proc.write(config.prompts[i].response);
142
- } catch {
143
- // Process may have exited
144
- }
145
- }, 100);
146
- }
147
- }
148
-
149
- // Check for URL
150
- const match = cleanText.match(config.urlPattern);
151
- if (match && match[1] && !result.urlExtracted) {
152
- result.urlExtracted = match[1];
153
- result.urlValid = result.urlExtracted.startsWith(config.expectedUrlPrefix);
154
- }
155
- });
156
-
157
- proc.onExit(({ exitCode }) => {
158
- clearTimeout(timeout);
159
- result.exitCode = exitCode;
160
- result.duration = Date.now() - startTime;
161
-
162
- // Determine pass/fail
163
- result.passed = !!(
164
- result.urlExtracted &&
165
- result.urlValid &&
166
- exitCode === 0
167
- );
168
-
169
- resolve(result);
170
- });
171
-
172
- // Send signal to continue after prompts are done
173
- setTimeout(() => {
174
- try {
175
- proc.write('\n');
176
- } catch {
177
- // Ignore
178
- }
179
- }, 5000);
180
- } catch (err) {
181
- result.error = err instanceof Error ? err.message : 'Unknown error';
182
- result.duration = Date.now() - startTime;
183
- resolve(result);
184
- }
185
- });
186
- }
187
-
188
- async function runAllTests() {
189
- console.log('╔══════════════════════════════════════════════════════════════╗');
190
- console.log('║ CLI OAuth Flow CI Tests ║');
191
- console.log('╚══════════════════════════════════════════════════════════════╝');
192
- console.log('');
193
-
194
- const results: TestResult[] = [];
195
-
196
- for (const providerId of Object.keys(PROVIDERS)) {
197
- process.stdout.write(`Testing ${providerId}... `);
198
- const result = await testProvider(providerId);
199
- results.push(result);
200
-
201
- if (result.passed) {
202
- console.log('✅ PASSED');
203
- } else {
204
- console.log(`❌ FAILED${result.error ? `: ${result.error}` : ''}`);
205
- }
206
-
207
- // Detailed output
208
- console.log(` Command: ${result.command}`);
209
- console.log(` URL: ${result.urlExtracted || 'NOT FOUND'}`);
210
- console.log(` Valid: ${result.urlValid ? 'Yes' : 'No'}`);
211
- console.log(` Prompts: ${result.promptsHandled}/${PROVIDERS[providerId as keyof typeof PROVIDERS].prompts.length}`);
212
- console.log(` Exit: ${result.exitCode}`);
213
- console.log(` Duration: ${result.duration}ms`);
214
- console.log('');
215
- }
216
-
217
- // Summary
218
- const passed = results.filter(r => r.passed).length;
219
- const failed = results.filter(r => !r.passed).length;
220
-
221
- console.log('═══════════════════════════════════════════════════════════════');
222
- console.log(`Summary: ${passed} passed, ${failed} failed out of ${results.length} tests`);
223
- console.log('═══════════════════════════════════════════════════════════════');
224
-
225
- // Write JSON results for CI parsing
226
- const jsonResults = {
227
- timestamp: new Date().toISOString(),
228
- results: results.map(r => ({
229
- provider: r.provider,
230
- command: r.command,
231
- passed: r.passed,
232
- urlExtracted: r.urlExtracted,
233
- urlValid: r.urlValid,
234
- promptsHandled: r.promptsHandled,
235
- exitCode: r.exitCode,
236
- duration: r.duration,
237
- error: r.error,
238
- })),
239
- summary: {
240
- total: results.length,
241
- passed,
242
- failed,
243
- },
244
- };
245
-
246
- // Write to file for CI artifact
247
- try {
248
- writeFileSync('/tmp/cli-oauth-test-results.json', JSON.stringify(jsonResults, null, 2));
249
- console.log('\nResults written to /tmp/cli-oauth-test-results.json');
250
- } catch {
251
- // Might not have write access, output to stdout instead
252
- console.log('\n--- JSON Results ---');
253
- console.log(JSON.stringify(jsonResults, null, 2));
254
- }
255
-
256
- // Exit with appropriate code
257
- process.exit(failed > 0 ? 1 : 0);
258
- }
259
-
260
- runAllTests().catch((err) => {
261
- console.error('Test runner failed:', err);
262
- process.exit(1);
263
- });
@@ -1,147 +0,0 @@
1
- #!/bin/bash
2
- # Mock CLI for testing OAuth flow prompt handling
3
- # Usage: ./mock-cli.sh <provider> [delay]
4
- #
5
- # This script simulates the interactive prompts of various AI CLI tools
6
- # for testing the onboarding OAuth flow without actual CLI binaries.
7
- #
8
- # When installed as symlinks (e.g., /usr/local/bin/claude -> mock-cli.sh),
9
- # it auto-detects the provider from the command name.
10
-
11
- # Detect provider from how the script was called
12
- SCRIPT_NAME=$(basename "$0")
13
-
14
- case "$SCRIPT_NAME" in
15
- claude) PROVIDER="claude" ;;
16
- codex) PROVIDER="codex" ;;
17
- gemini) PROVIDER="gemini" ;;
18
- opencode) PROVIDER="opencode" ;;
19
- droid) PROVIDER="droid" ;;
20
- mock-cli.sh|mock-cli|mock-cli-impl.sh)
21
- PROVIDER="${1:-claude}"
22
- shift 2>/dev/null || true
23
- ;;
24
- *) PROVIDER="${1:-claude}" ;;
25
- esac
26
-
27
- # Handle 'login' subcommand for codex
28
- if [ "$PROVIDER" = "codex" ] && [ "$1" = "login" ]; then
29
- shift
30
- fi
31
-
32
- DELAY="${1:-0.3}"
33
-
34
- # Colors for output
35
- GREEN='\033[0;32m'
36
- BLUE='\033[0;34m'
37
- YELLOW='\033[1;33m'
38
- NC='\033[0m' # No Color
39
-
40
- case "$PROVIDER" in
41
- claude|anthropic)
42
- echo -e "${BLUE}Claude Code CLI${NC}"
43
- echo ""
44
- sleep "$DELAY"
45
-
46
- # Dark mode prompt
47
- echo -e "Would you like to use ${YELLOW}dark mode${NC}? (y/n) "
48
- read -r -n 1 response 2>/dev/null || true
49
- echo ""
50
- sleep "$DELAY"
51
-
52
- # Login method selection prompt (matches real Claude CLI)
53
- echo -e "Select login method:"
54
- echo ""
55
- echo -e " ❯ 1. Claude account with ${YELLOW}subscription${NC} · Pro, Max, Team, or Enterprise"
56
- echo ""
57
- echo -e " 2. Anthropic Console account · API usage billing"
58
- read -r -n 1 response 2>/dev/null || true
59
- echo ""
60
- sleep "$DELAY"
61
-
62
- # Trust directory prompt
63
- echo -e "Do you ${YELLOW}trust this directory${NC}? [y/N] "
64
- read -r -n 1 response 2>/dev/null || true
65
- echo ""
66
- sleep "$DELAY"
67
-
68
- # Auth URL
69
- echo ""
70
- echo -e "Please visit the following URL to authenticate:"
71
- echo -e "${GREEN}https://console.anthropic.com/oauth/authorize?client_id=mock-test-123&state=abc${NC}"
72
- echo ""
73
- echo "Waiting for authentication..."
74
-
75
- # Wait for completion signal (or timeout)
76
- read -r -t 30 2>/dev/null || true
77
- echo -e "${GREEN}Authentication successful!${NC}"
78
- ;;
79
-
80
- codex|openai)
81
- echo -e "${BLUE}Codex CLI${NC}"
82
- echo ""
83
- sleep "$DELAY"
84
-
85
- # Trust directory prompt
86
- echo -e "Do you ${YELLOW}trust this workspace${NC}? [y/N] "
87
- read -r -n 1 response 2>/dev/null || true
88
- echo ""
89
- sleep "$DELAY"
90
-
91
- # Auth URL
92
- echo ""
93
- echo -e "Open this URL to log in:"
94
- echo -e "${GREEN}https://auth.openai.com/authorize?client_id=mock-test-456&state=def${NC}"
95
- echo ""
96
- echo "Waiting..."
97
-
98
- read -r -t 30 2>/dev/null || true
99
- echo -e "${GREEN}Logged in successfully${NC}"
100
- ;;
101
-
102
- gemini|google)
103
- echo -e "${BLUE}Gemini CLI${NC}"
104
- echo ""
105
- sleep "$DELAY"
106
-
107
- # Auth URL
108
- echo -e "Authenticate at:"
109
- echo -e "${GREEN}https://accounts.google.com/o/oauth2/v2/auth?client_id=mock-test-789${NC}"
110
- echo ""
111
-
112
- read -r -t 30 2>/dev/null || true
113
- echo -e "${GREEN}Authenticated!${NC}"
114
- ;;
115
-
116
- opencode)
117
- echo -e "${BLUE}OpenCode CLI${NC}"
118
- echo ""
119
- sleep "$DELAY"
120
-
121
- echo -e "Login URL:"
122
- echo -e "${GREEN}https://opencode.ai/auth?session=mock-session${NC}"
123
- echo ""
124
-
125
- read -r -t 30 2>/dev/null || true
126
- echo -e "${GREEN}Success${NC}"
127
- ;;
128
-
129
- droid)
130
- echo -e "${BLUE}Droid CLI${NC}"
131
- echo ""
132
- sleep "$DELAY"
133
-
134
- echo -e "Visit to authenticate:"
135
- echo -e "${GREEN}https://factory.ai/droid/auth?id=mock-droid${NC}"
136
- echo ""
137
-
138
- read -r -t 30 2>/dev/null || true
139
- echo -e "${GREEN}Authenticated${NC}"
140
- ;;
141
-
142
- *)
143
- echo "Unknown provider: $PROVIDER"
144
- echo "Supported: claude, codex, gemini, opencode, droid"
145
- exit 1
146
- ;;
147
- esac
@@ -1,14 +0,0 @@
1
- {
2
- "name": "cli-oauth-test",
3
- "version": "1.0.0",
4
- "description": "CLI OAuth flow testing for agent-relay",
5
- "type": "module",
6
- "scripts": {
7
- "test": "tsx ci-test-runner.ts",
8
- "test:local": "tsx test-oauth-flow.ts"
9
- },
10
- "dependencies": {
11
- "node-pty": "^1.0.0",
12
- "tsx": "^4.19.0"
13
- }
14
- }