agent-relay 1.1.0 → 1.2.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 (490) hide show
  1. package/README.md +1 -1
  2. package/dist/bridge/spawner.d.ts +53 -0
  3. package/dist/bridge/spawner.d.ts.map +1 -1
  4. package/dist/bridge/spawner.js +203 -19
  5. package/dist/bridge/spawner.js.map +1 -1
  6. package/dist/bridge/types.d.ts +12 -0
  7. package/dist/bridge/types.d.ts.map +1 -1
  8. package/dist/cli/index.js +401 -5
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cloud/api/auth.d.ts +3 -2
  11. package/dist/cloud/api/auth.d.ts.map +1 -1
  12. package/dist/cloud/api/auth.js +10 -98
  13. package/dist/cloud/api/auth.js.map +1 -1
  14. package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
  15. package/dist/cloud/api/cli-pty-runner.d.ts.map +1 -0
  16. package/dist/cloud/api/cli-pty-runner.js +119 -0
  17. package/dist/cloud/api/cli-pty-runner.js.map +1 -0
  18. package/dist/cloud/api/generic-webhooks.d.ts +8 -0
  19. package/dist/cloud/api/generic-webhooks.d.ts.map +1 -0
  20. package/dist/cloud/api/generic-webhooks.js +129 -0
  21. package/dist/cloud/api/generic-webhooks.js.map +1 -0
  22. package/dist/cloud/api/git.d.ts +8 -0
  23. package/dist/cloud/api/git.d.ts.map +1 -0
  24. package/dist/cloud/api/git.js +131 -0
  25. package/dist/cloud/api/git.js.map +1 -0
  26. package/dist/cloud/api/github-app.d.ts +11 -0
  27. package/dist/cloud/api/github-app.d.ts.map +1 -0
  28. package/dist/cloud/api/github-app.js +189 -0
  29. package/dist/cloud/api/github-app.js.map +1 -0
  30. package/dist/cloud/api/middleware/planLimits.d.ts +7 -0
  31. package/dist/cloud/api/middleware/planLimits.d.ts.map +1 -1
  32. package/dist/cloud/api/middleware/planLimits.js +39 -1
  33. package/dist/cloud/api/middleware/planLimits.js.map +1 -1
  34. package/dist/cloud/api/monitoring.d.ts +11 -0
  35. package/dist/cloud/api/monitoring.d.ts.map +1 -0
  36. package/dist/cloud/api/monitoring.js +578 -0
  37. package/dist/cloud/api/monitoring.js.map +1 -0
  38. package/dist/cloud/api/nango-auth.d.ts +9 -0
  39. package/dist/cloud/api/nango-auth.d.ts.map +1 -0
  40. package/dist/cloud/api/nango-auth.js +377 -0
  41. package/dist/cloud/api/nango-auth.js.map +1 -0
  42. package/dist/cloud/api/onboarding.d.ts +8 -1
  43. package/dist/cloud/api/onboarding.d.ts.map +1 -1
  44. package/dist/cloud/api/onboarding.js +300 -119
  45. package/dist/cloud/api/onboarding.js.map +1 -1
  46. package/dist/cloud/api/policy.d.ts +8 -0
  47. package/dist/cloud/api/policy.d.ts.map +1 -0
  48. package/dist/cloud/api/policy.js +229 -0
  49. package/dist/cloud/api/policy.js.map +1 -0
  50. package/dist/cloud/api/providers.js +114 -42
  51. package/dist/cloud/api/providers.js.map +1 -1
  52. package/dist/cloud/api/test-helpers.d.ts +10 -0
  53. package/dist/cloud/api/test-helpers.d.ts.map +1 -0
  54. package/dist/cloud/api/test-helpers.js +575 -0
  55. package/dist/cloud/api/test-helpers.js.map +1 -0
  56. package/dist/cloud/api/webhooks.d.ts +7 -0
  57. package/dist/cloud/api/webhooks.d.ts.map +1 -0
  58. package/dist/cloud/api/webhooks.js +496 -0
  59. package/dist/cloud/api/webhooks.js.map +1 -0
  60. package/dist/cloud/api/workspaces.js +225 -8
  61. package/dist/cloud/api/workspaces.js.map +1 -1
  62. package/dist/cloud/billing/plans.d.ts.map +1 -1
  63. package/dist/cloud/billing/plans.js +13 -0
  64. package/dist/cloud/billing/plans.js.map +1 -1
  65. package/dist/cloud/billing/types.d.ts +9 -3
  66. package/dist/cloud/billing/types.d.ts.map +1 -1
  67. package/dist/cloud/config.d.ts +9 -2
  68. package/dist/cloud/config.d.ts.map +1 -1
  69. package/dist/cloud/config.js +13 -4
  70. package/dist/cloud/config.js.map +1 -1
  71. package/dist/cloud/db/drizzle.d.ts +84 -1
  72. package/dist/cloud/db/drizzle.d.ts.map +1 -1
  73. package/dist/cloud/db/drizzle.js +470 -0
  74. package/dist/cloud/db/drizzle.js.map +1 -1
  75. package/dist/cloud/db/index.d.ts +9 -4
  76. package/dist/cloud/db/index.d.ts.map +1 -1
  77. package/dist/cloud/db/index.js +11 -3
  78. package/dist/cloud/db/index.js.map +1 -1
  79. package/dist/cloud/db/schema.d.ts +3283 -556
  80. package/dist/cloud/db/schema.d.ts.map +1 -1
  81. package/dist/cloud/db/schema.js +314 -1
  82. package/dist/cloud/db/schema.js.map +1 -1
  83. package/dist/cloud/index.d.ts +1 -0
  84. package/dist/cloud/index.d.ts.map +1 -1
  85. package/dist/cloud/index.js +2 -0
  86. package/dist/cloud/index.js.map +1 -1
  87. package/dist/cloud/provisioner/index.d.ts +24 -0
  88. package/dist/cloud/provisioner/index.d.ts.map +1 -1
  89. package/dist/cloud/provisioner/index.js +319 -18
  90. package/dist/cloud/provisioner/index.js.map +1 -1
  91. package/dist/cloud/server.d.ts +1 -0
  92. package/dist/cloud/server.d.ts.map +1 -1
  93. package/dist/cloud/server.js +357 -13
  94. package/dist/cloud/server.js.map +1 -1
  95. package/dist/cloud/services/auto-scaler.d.ts +152 -0
  96. package/dist/cloud/services/auto-scaler.d.ts.map +1 -0
  97. package/dist/cloud/services/auto-scaler.js +439 -0
  98. package/dist/cloud/services/auto-scaler.js.map +1 -0
  99. package/dist/cloud/services/capacity-manager.d.ts +148 -0
  100. package/dist/cloud/services/capacity-manager.d.ts.map +1 -0
  101. package/dist/cloud/services/capacity-manager.js +449 -0
  102. package/dist/cloud/services/capacity-manager.js.map +1 -0
  103. package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
  104. package/dist/cloud/services/ci-agent-spawner.d.ts.map +1 -0
  105. package/dist/cloud/services/ci-agent-spawner.js +373 -0
  106. package/dist/cloud/services/ci-agent-spawner.js.map +1 -0
  107. package/dist/cloud/services/index.d.ts +12 -0
  108. package/dist/cloud/services/index.d.ts.map +1 -0
  109. package/dist/cloud/services/index.js +15 -0
  110. package/dist/cloud/services/index.js.map +1 -0
  111. package/dist/cloud/services/mention-handler.d.ts +65 -0
  112. package/dist/cloud/services/mention-handler.d.ts.map +1 -0
  113. package/dist/cloud/services/mention-handler.js +405 -0
  114. package/dist/cloud/services/mention-handler.js.map +1 -0
  115. package/dist/cloud/services/nango.d.ts +126 -0
  116. package/dist/cloud/services/nango.d.ts.map +1 -0
  117. package/dist/cloud/services/nango.js +191 -0
  118. package/dist/cloud/services/nango.js.map +1 -0
  119. package/dist/cloud/services/persistence.d.ts +131 -0
  120. package/dist/cloud/services/persistence.d.ts.map +1 -0
  121. package/dist/cloud/services/persistence.js +200 -0
  122. package/dist/cloud/services/persistence.js.map +1 -0
  123. package/dist/cloud/services/planLimits.d.ts +15 -0
  124. package/dist/cloud/services/planLimits.d.ts.map +1 -1
  125. package/dist/cloud/services/planLimits.js +28 -0
  126. package/dist/cloud/services/planLimits.js.map +1 -1
  127. package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
  128. package/dist/cloud/services/scaling-orchestrator.d.ts.map +1 -0
  129. package/dist/cloud/services/scaling-orchestrator.js +502 -0
  130. package/dist/cloud/services/scaling-orchestrator.js.map +1 -0
  131. package/dist/cloud/services/scaling-policy.d.ts +121 -0
  132. package/dist/cloud/services/scaling-policy.d.ts.map +1 -0
  133. package/dist/cloud/services/scaling-policy.js +415 -0
  134. package/dist/cloud/services/scaling-policy.js.map +1 -0
  135. package/dist/cloud/vault/index.js +1 -1
  136. package/dist/cloud/vault/index.js.map +1 -1
  137. package/dist/cloud/webhooks/index.d.ts +24 -0
  138. package/dist/cloud/webhooks/index.d.ts.map +1 -0
  139. package/dist/cloud/webhooks/index.js +29 -0
  140. package/dist/cloud/webhooks/index.js.map +1 -0
  141. package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
  142. package/dist/cloud/webhooks/parsers/github.d.ts.map +1 -0
  143. package/dist/cloud/webhooks/parsers/github.js +234 -0
  144. package/dist/cloud/webhooks/parsers/github.js.map +1 -0
  145. package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
  146. package/dist/cloud/webhooks/parsers/index.d.ts.map +1 -0
  147. package/dist/cloud/webhooks/parsers/index.js +30 -0
  148. package/dist/cloud/webhooks/parsers/index.js.map +1 -0
  149. package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
  150. package/dist/cloud/webhooks/parsers/linear.d.ts.map +1 -0
  151. package/dist/cloud/webhooks/parsers/linear.js +258 -0
  152. package/dist/cloud/webhooks/parsers/linear.js.map +1 -0
  153. package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
  154. package/dist/cloud/webhooks/parsers/slack.d.ts.map +1 -0
  155. package/dist/cloud/webhooks/parsers/slack.js +214 -0
  156. package/dist/cloud/webhooks/parsers/slack.js.map +1 -0
  157. package/dist/cloud/webhooks/responders/github.d.ts +8 -0
  158. package/dist/cloud/webhooks/responders/github.d.ts.map +1 -0
  159. package/dist/cloud/webhooks/responders/github.js +73 -0
  160. package/dist/cloud/webhooks/responders/github.js.map +1 -0
  161. package/dist/cloud/webhooks/responders/index.d.ts +23 -0
  162. package/dist/cloud/webhooks/responders/index.d.ts.map +1 -0
  163. package/dist/cloud/webhooks/responders/index.js +30 -0
  164. package/dist/cloud/webhooks/responders/index.js.map +1 -0
  165. package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
  166. package/dist/cloud/webhooks/responders/linear.d.ts.map +1 -0
  167. package/dist/cloud/webhooks/responders/linear.js +149 -0
  168. package/dist/cloud/webhooks/responders/linear.js.map +1 -0
  169. package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
  170. package/dist/cloud/webhooks/responders/slack.d.ts.map +1 -0
  171. package/dist/cloud/webhooks/responders/slack.js +178 -0
  172. package/dist/cloud/webhooks/responders/slack.js.map +1 -0
  173. package/dist/cloud/webhooks/router.d.ts +25 -0
  174. package/dist/cloud/webhooks/router.d.ts.map +1 -0
  175. package/dist/cloud/webhooks/router.js +504 -0
  176. package/dist/cloud/webhooks/router.js.map +1 -0
  177. package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
  178. package/dist/cloud/webhooks/rules-engine.d.ts.map +1 -0
  179. package/dist/cloud/webhooks/rules-engine.js +287 -0
  180. package/dist/cloud/webhooks/rules-engine.js.map +1 -0
  181. package/dist/cloud/webhooks/types.d.ts +186 -0
  182. package/dist/cloud/webhooks/types.d.ts.map +1 -0
  183. package/dist/cloud/webhooks/types.js +8 -0
  184. package/dist/cloud/webhooks/types.js.map +1 -0
  185. package/dist/continuity/formatter.d.ts +51 -0
  186. package/dist/continuity/formatter.d.ts.map +1 -0
  187. package/dist/continuity/formatter.js +313 -0
  188. package/dist/continuity/formatter.js.map +1 -0
  189. package/dist/continuity/handoff-store.d.ts +67 -0
  190. package/dist/continuity/handoff-store.d.ts.map +1 -0
  191. package/dist/continuity/handoff-store.js +472 -0
  192. package/dist/continuity/handoff-store.js.map +1 -0
  193. package/dist/continuity/index.d.ts +45 -0
  194. package/dist/continuity/index.d.ts.map +1 -0
  195. package/dist/continuity/index.js +48 -0
  196. package/dist/continuity/index.js.map +1 -0
  197. package/dist/continuity/ledger-store.d.ts +110 -0
  198. package/dist/continuity/ledger-store.d.ts.map +1 -0
  199. package/dist/continuity/ledger-store.js +500 -0
  200. package/dist/continuity/ledger-store.js.map +1 -0
  201. package/dist/continuity/manager.d.ts +178 -0
  202. package/dist/continuity/manager.d.ts.map +1 -0
  203. package/dist/continuity/manager.js +562 -0
  204. package/dist/continuity/manager.js.map +1 -0
  205. package/dist/continuity/parser.d.ts +76 -0
  206. package/dist/continuity/parser.d.ts.map +1 -0
  207. package/dist/continuity/parser.js +579 -0
  208. package/dist/continuity/parser.js.map +1 -0
  209. package/dist/continuity/types.d.ts +180 -0
  210. package/dist/continuity/types.d.ts.map +1 -0
  211. package/dist/continuity/types.js +9 -0
  212. package/dist/continuity/types.js.map +1 -0
  213. package/dist/daemon/agent-manager.d.ts +27 -0
  214. package/dist/daemon/agent-manager.d.ts.map +1 -1
  215. package/dist/daemon/agent-manager.js +107 -6
  216. package/dist/daemon/agent-manager.js.map +1 -1
  217. package/dist/daemon/agent-registry.d.ts +32 -0
  218. package/dist/daemon/agent-registry.d.ts.map +1 -1
  219. package/dist/daemon/agent-registry.js +42 -2
  220. package/dist/daemon/agent-registry.js.map +1 -1
  221. package/dist/daemon/api.d.ts +12 -0
  222. package/dist/daemon/api.d.ts.map +1 -1
  223. package/dist/daemon/api.js +131 -2
  224. package/dist/daemon/api.js.map +1 -1
  225. package/dist/daemon/cli-auth.d.ts +67 -0
  226. package/dist/daemon/cli-auth.d.ts.map +1 -0
  227. package/dist/daemon/cli-auth.js +537 -0
  228. package/dist/daemon/cli-auth.js.map +1 -0
  229. package/dist/daemon/cloud-sync.d.ts.map +1 -1
  230. package/dist/daemon/cloud-sync.js +9 -7
  231. package/dist/daemon/cloud-sync.js.map +1 -1
  232. package/dist/daemon/orchestrator.d.ts.map +1 -1
  233. package/dist/daemon/orchestrator.js +30 -0
  234. package/dist/daemon/orchestrator.js.map +1 -1
  235. package/dist/daemon/router.d.ts +5 -0
  236. package/dist/daemon/router.d.ts.map +1 -1
  237. package/dist/daemon/router.js +78 -26
  238. package/dist/daemon/router.js.map +1 -1
  239. package/dist/daemon/server.d.ts +5 -0
  240. package/dist/daemon/server.d.ts.map +1 -1
  241. package/dist/daemon/server.js +9 -1
  242. package/dist/daemon/server.js.map +1 -1
  243. package/dist/daemon/services/browser-testing.d.ts +88 -0
  244. package/dist/daemon/services/browser-testing.d.ts.map +1 -0
  245. package/dist/daemon/services/browser-testing.js +244 -0
  246. package/dist/daemon/services/browser-testing.js.map +1 -0
  247. package/dist/daemon/services/container-spawner.d.ts +135 -0
  248. package/dist/daemon/services/container-spawner.d.ts.map +1 -0
  249. package/dist/daemon/services/container-spawner.js +313 -0
  250. package/dist/daemon/services/container-spawner.js.map +1 -0
  251. package/dist/daemon/types.d.ts +5 -1
  252. package/dist/daemon/types.d.ts.map +1 -1
  253. package/dist/dashboard/out/404.html +1 -1
  254. package/dist/dashboard/out/_next/static/chunks/116-2502180def231162.js +1 -0
  255. package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +1 -0
  256. package/dist/dashboard/out/_next/static/chunks/480-2d4111711d4e473c.js +1 -0
  257. package/dist/dashboard/out/_next/static/chunks/724-73c1ee5f60abe860.js +9 -0
  258. package/dist/dashboard/out/_next/static/chunks/766-c3a14283c88d815b.js +1 -0
  259. package/dist/dashboard/out/_next/static/chunks/app/app/page-7120be68bea622f3.js +1 -0
  260. package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-dc2e3a1a22478efc.js +1 -0
  261. package/dist/dashboard/out/_next/static/chunks/app/history/{page-b6edd4dde8d08194.js → page-56a8b4616a90dc43.js} +1 -1
  262. package/dist/dashboard/out/_next/static/chunks/app/login/page-3eac37ea6f5dd153.js +1 -0
  263. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-1081dd190a331a91.js +1 -0
  264. package/dist/dashboard/out/_next/static/chunks/app/page-daf87e86f783f980.js +1 -0
  265. package/dist/dashboard/out/_next/static/chunks/app/providers/page-b68a681526eb145e.js +1 -0
  266. package/dist/dashboard/out/_next/static/chunks/app/signup/page-fee4ed1709070bcd.js +1 -0
  267. package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
  268. package/dist/dashboard/out/_next/static/chunks/{main-c2f423b9c9f4591b.js → main-97850e03d723ea8c.js} +1 -1
  269. package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +1 -0
  270. package/dist/dashboard/out/_next/static/css/29852f26181969a0.css +1 -0
  271. package/dist/dashboard/out/_next/static/css/411ce23ffeae9f76.css +1 -0
  272. package/dist/dashboard/out/app.html +1 -14
  273. package/dist/dashboard/out/app.txt +2 -2
  274. package/dist/dashboard/out/connect-repos.html +1 -0
  275. package/dist/dashboard/out/connect-repos.txt +7 -0
  276. package/dist/dashboard/out/history.html +1 -1
  277. package/dist/dashboard/out/history.txt +2 -2
  278. package/dist/dashboard/out/index.html +1 -1
  279. package/dist/dashboard/out/index.txt +2 -2
  280. package/dist/dashboard/out/login.html +6 -0
  281. package/dist/dashboard/out/login.txt +7 -0
  282. package/dist/dashboard/out/metrics.html +1 -1
  283. package/dist/dashboard/out/metrics.txt +2 -2
  284. package/dist/dashboard/out/pricing.html +2 -2
  285. package/dist/dashboard/out/pricing.txt +2 -2
  286. package/dist/dashboard/out/providers.html +1 -0
  287. package/dist/dashboard/out/providers.txt +7 -0
  288. package/dist/dashboard/out/signup.html +6 -0
  289. package/dist/dashboard/out/signup.txt +7 -0
  290. package/dist/dashboard-server/server.d.ts.map +1 -1
  291. package/dist/dashboard-server/server.js +1308 -8
  292. package/dist/dashboard-server/server.js.map +1 -1
  293. package/dist/hooks/emitter.d.ts +40 -0
  294. package/dist/hooks/emitter.d.ts.map +1 -0
  295. package/dist/hooks/emitter.js +63 -0
  296. package/dist/hooks/emitter.js.map +1 -0
  297. package/dist/hooks/index.d.ts +3 -0
  298. package/dist/hooks/index.d.ts.map +1 -1
  299. package/dist/hooks/index.js +3 -0
  300. package/dist/hooks/index.js.map +1 -1
  301. package/dist/hooks/registry.d.ts +173 -0
  302. package/dist/hooks/registry.d.ts.map +1 -0
  303. package/dist/hooks/registry.js +476 -0
  304. package/dist/hooks/registry.js.map +1 -0
  305. package/dist/hooks/trajectory-hooks.d.ts +52 -0
  306. package/dist/hooks/trajectory-hooks.d.ts.map +1 -0
  307. package/dist/hooks/trajectory-hooks.js +183 -0
  308. package/dist/hooks/trajectory-hooks.js.map +1 -0
  309. package/dist/hooks/types.d.ts +141 -0
  310. package/dist/hooks/types.d.ts.map +1 -1
  311. package/dist/index.d.ts +2 -0
  312. package/dist/index.d.ts.map +1 -1
  313. package/dist/index.js +3 -0
  314. package/dist/index.js.map +1 -1
  315. package/dist/memory/adapters/index.d.ts +8 -0
  316. package/dist/memory/adapters/index.d.ts.map +1 -0
  317. package/dist/memory/adapters/index.js +8 -0
  318. package/dist/memory/adapters/index.js.map +1 -0
  319. package/dist/memory/adapters/inmemory.d.ts +59 -0
  320. package/dist/memory/adapters/inmemory.d.ts.map +1 -0
  321. package/dist/memory/adapters/inmemory.js +195 -0
  322. package/dist/memory/adapters/inmemory.js.map +1 -0
  323. package/dist/memory/adapters/supermemory.d.ts +71 -0
  324. package/dist/memory/adapters/supermemory.d.ts.map +1 -0
  325. package/dist/memory/adapters/supermemory.js +338 -0
  326. package/dist/memory/adapters/supermemory.js.map +1 -0
  327. package/dist/memory/factory.d.ts +48 -0
  328. package/dist/memory/factory.d.ts.map +1 -0
  329. package/dist/memory/factory.js +143 -0
  330. package/dist/memory/factory.js.map +1 -0
  331. package/dist/memory/index.d.ts +32 -0
  332. package/dist/memory/index.d.ts.map +1 -0
  333. package/dist/memory/index.js +32 -0
  334. package/dist/memory/index.js.map +1 -0
  335. package/dist/memory/memory-hooks.d.ts +60 -0
  336. package/dist/memory/memory-hooks.d.ts.map +1 -0
  337. package/dist/memory/memory-hooks.js +313 -0
  338. package/dist/memory/memory-hooks.js.map +1 -0
  339. package/dist/memory/service.d.ts +49 -0
  340. package/dist/memory/service.d.ts.map +1 -0
  341. package/dist/memory/service.js +146 -0
  342. package/dist/memory/service.js.map +1 -0
  343. package/dist/memory/types.d.ts +195 -0
  344. package/dist/memory/types.d.ts.map +1 -0
  345. package/dist/memory/types.js +8 -0
  346. package/dist/memory/types.js.map +1 -0
  347. package/dist/policy/agent-policy.d.ts +225 -0
  348. package/dist/policy/agent-policy.d.ts.map +1 -0
  349. package/dist/policy/agent-policy.js +665 -0
  350. package/dist/policy/agent-policy.js.map +1 -0
  351. package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
  352. package/dist/policy/cloud-policy-fetcher.d.ts.map +1 -0
  353. package/dist/policy/cloud-policy-fetcher.js +64 -0
  354. package/dist/policy/cloud-policy-fetcher.js.map +1 -0
  355. package/dist/resiliency/crash-insights.d.ts +156 -0
  356. package/dist/resiliency/crash-insights.d.ts.map +1 -0
  357. package/dist/resiliency/crash-insights.js +492 -0
  358. package/dist/resiliency/crash-insights.js.map +1 -0
  359. package/dist/resiliency/gossip-health.d.ts +137 -0
  360. package/dist/resiliency/gossip-health.d.ts.map +1 -0
  361. package/dist/resiliency/gossip-health.js +241 -0
  362. package/dist/resiliency/gossip-health.js.map +1 -0
  363. package/dist/resiliency/index.d.ts +5 -0
  364. package/dist/resiliency/index.d.ts.map +1 -1
  365. package/dist/resiliency/index.js +5 -0
  366. package/dist/resiliency/index.js.map +1 -1
  367. package/dist/resiliency/leader-watchdog.d.ts +109 -0
  368. package/dist/resiliency/leader-watchdog.d.ts.map +1 -0
  369. package/dist/resiliency/leader-watchdog.js +189 -0
  370. package/dist/resiliency/leader-watchdog.js.map +1 -0
  371. package/dist/resiliency/memory-monitor.d.ts +172 -0
  372. package/dist/resiliency/memory-monitor.d.ts.map +1 -0
  373. package/dist/resiliency/memory-monitor.js +593 -0
  374. package/dist/resiliency/memory-monitor.js.map +1 -0
  375. package/dist/resiliency/stateless-lead.d.ts +149 -0
  376. package/dist/resiliency/stateless-lead.d.ts.map +1 -0
  377. package/dist/resiliency/stateless-lead.js +308 -0
  378. package/dist/resiliency/stateless-lead.js.map +1 -0
  379. package/dist/resiliency/supervisor.d.ts +38 -0
  380. package/dist/resiliency/supervisor.d.ts.map +1 -1
  381. package/dist/resiliency/supervisor.js +122 -0
  382. package/dist/resiliency/supervisor.js.map +1 -1
  383. package/dist/shared/cli-auth-config.d.ts +91 -0
  384. package/dist/shared/cli-auth-config.d.ts.map +1 -0
  385. package/dist/shared/cli-auth-config.js +264 -0
  386. package/dist/shared/cli-auth-config.js.map +1 -0
  387. package/dist/storage/adapter.d.ts +1 -1
  388. package/dist/storage/adapter.d.ts.map +1 -1
  389. package/dist/trajectory/config.d.ts +84 -0
  390. package/dist/trajectory/config.d.ts.map +1 -0
  391. package/dist/trajectory/config.js +163 -0
  392. package/dist/trajectory/config.js.map +1 -0
  393. package/dist/trajectory/index.d.ts +8 -0
  394. package/dist/trajectory/index.d.ts.map +1 -0
  395. package/dist/trajectory/index.js +8 -0
  396. package/dist/trajectory/index.js.map +1 -0
  397. package/dist/trajectory/integration.d.ts +292 -0
  398. package/dist/trajectory/integration.d.ts.map +1 -0
  399. package/dist/trajectory/integration.js +834 -0
  400. package/dist/trajectory/integration.js.map +1 -0
  401. package/dist/utils/logger.js +1 -1
  402. package/dist/utils/logger.js.map +1 -1
  403. package/dist/utils/project-namespace.d.ts +24 -0
  404. package/dist/utils/project-namespace.d.ts.map +1 -1
  405. package/dist/utils/project-namespace.js +84 -0
  406. package/dist/utils/project-namespace.js.map +1 -1
  407. package/dist/wrapper/parser.d.ts +10 -0
  408. package/dist/wrapper/parser.d.ts.map +1 -1
  409. package/dist/wrapper/parser.js +100 -33
  410. package/dist/wrapper/parser.js.map +1 -1
  411. package/dist/wrapper/pty-wrapper.d.ts +197 -16
  412. package/dist/wrapper/pty-wrapper.d.ts.map +1 -1
  413. package/dist/wrapper/pty-wrapper.js +943 -106
  414. package/dist/wrapper/pty-wrapper.js.map +1 -1
  415. package/dist/wrapper/shared.d.ts +165 -0
  416. package/dist/wrapper/shared.d.ts.map +1 -0
  417. package/dist/wrapper/shared.js +270 -0
  418. package/dist/wrapper/shared.js.map +1 -0
  419. package/dist/wrapper/tmux-wrapper.d.ts +73 -11
  420. package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
  421. package/dist/wrapper/tmux-wrapper.js +541 -120
  422. package/dist/wrapper/tmux-wrapper.js.map +1 -1
  423. package/docs/CLOUD-ARCHITECTURE.md +152 -0
  424. package/docs/HOOKS_API.md +394 -0
  425. package/docs/WRAPPER_EVENTS.md +358 -0
  426. package/docs/agent-policy-snippet.md +40 -0
  427. package/docs/agent-relay-protocol.md +238 -0
  428. package/docs/agent-relay-snippet.md +53 -47
  429. package/docs/archive/EXECUTIVE_SUMMARY.md +358 -0
  430. package/docs/archive/ROADMAP.md +329 -0
  431. package/docs/competitive/GASTOWN.md +451 -0
  432. package/docs/{COMPETITIVE_ANALYSIS.md → competitive/OVERVIEW.md} +1 -0
  433. package/docs/competitive/README.md +34 -0
  434. package/docs/competitive/TMUX_ORCHESTRATOR.md +605 -0
  435. package/docs/dashboard.png +0 -0
  436. package/docs/design/ci-failure-webhooks.md +812 -0
  437. package/docs/design/comprehensive-integrations.md +238 -0
  438. package/docs/design/e2b-sandbox-integration.md +504 -0
  439. package/docs/design/github-app-permissions.md +264 -0
  440. package/docs/local-testing.md +428 -0
  441. package/docs/proposals/continuous-claude-integration.md +622 -0
  442. package/docs/proposals/custom-commands.md +368 -0
  443. package/docs/tasks/global-skills-system.tasks.md +230 -0
  444. package/docs/tasks/webhook-integrations.tasks.md +184 -0
  445. package/docs/tasks/workspace-capabilities.tasks.md +121 -0
  446. package/docs/testing/RESILIENCY-TEST-PLAN-2026-01-01.md +366 -0
  447. package/package.json +16 -7
  448. package/scripts/cloud-setup.sh +96 -0
  449. package/scripts/manual-qa.sh +293 -0
  450. package/scripts/postinstall.js +60 -0
  451. package/scripts/run-cloud-qa.sh +220 -0
  452. package/scripts/test-cli-auth/Dockerfile +44 -0
  453. package/scripts/test-cli-auth/Dockerfile.real +79 -0
  454. package/scripts/test-cli-auth/README.md +286 -0
  455. package/scripts/test-cli-auth/ci-test-real-clis.ts +251 -0
  456. package/scripts/test-cli-auth/ci-test-runner.ts +263 -0
  457. package/scripts/test-cli-auth/mock-cli.sh +147 -0
  458. package/scripts/test-cli-auth/package.json +14 -0
  459. package/scripts/test-cli-auth/test-oauth-flow.ts +220 -0
  460. package/scripts/test-pty-input-auto.js +222 -0
  461. package/scripts/test-pty-input.js +150 -0
  462. package/dist/dashboard/out/_next/static/chunks/693-7b3301d8f6bc5014.js +0 -1
  463. package/dist/dashboard/out/_next/static/chunks/713-f78477eb185f1f4d.js +0 -1
  464. package/dist/dashboard/out/_next/static/chunks/766-e53e1cfe39b0b5b5.js +0 -1
  465. package/dist/dashboard/out/_next/static/chunks/900-037c64bfd797fb2a.js +0 -1
  466. package/dist/dashboard/out/_next/static/chunks/app/app/page-e3d9e1f4466b9bae.js +0 -1
  467. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-e68825a81db67ba1.js +0 -1
  468. package/dist/dashboard/out/_next/static/chunks/app/page-cc108bf68c8a657f.js +0 -1
  469. package/dist/dashboard/out/_next/static/chunks/webpack-a5acc2831d094776.js +0 -1
  470. package/dist/dashboard/out/_next/static/css/79b80143647a07d7.css +0 -1
  471. package/dist/dashboard/out/_next/static/css/8cf277370ad48cfe.css +0 -1
  472. /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → H5aWG0udPB4iOUIl_gytz}/_buildManifest.js +0 -0
  473. /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → H5aWG0udPB4iOUIl_gytz}/_ssgManifest.js +0 -0
  474. /package/dist/dashboard/out/_next/static/chunks/{117-b2cd8d6485aacf2b.js → 117-b100311aff8d5c61.js} +0 -0
  475. /package/dist/dashboard/out/_next/static/chunks/{648-8f3f26864ce515e5.js → 648-a13d3c2b1be45466.js} +0 -0
  476. /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-0b990dbb71d72a98.js → page-a4973f3e3c82fb67.js} +0 -0
  477. /package/dist/dashboard/out/_next/static/chunks/app/pricing/{page-d80e03a5297f95b6.js → page-4d72d5a5d8a9b618.js} +0 -0
  478. /package/docs/{CHANGELOG.md → archive/CHANGELOG.md} +0 -0
  479. /package/docs/{CLI-SIMPLIFICATION-COMPLETE.md → archive/CLI-SIMPLIFICATION-COMPLETE.md} +0 -0
  480. /package/docs/{DESIGN_BRIDGE_STAFFING.md → archive/DESIGN_BRIDGE_STAFFING.md} +0 -0
  481. /package/docs/{DESIGN_V2.md → archive/DESIGN_V2.md} +0 -0
  482. /package/docs/{MONETIZATION.md → archive/MONETIZATION.md} +0 -0
  483. /package/docs/{PROPOSAL-trajectories.md → archive/PROPOSAL-trajectories.md} +0 -0
  484. /package/docs/{SCALING_ANALYSIS.md → archive/SCALING_ANALYSIS.md} +0 -0
  485. /package/docs/{TESTING_PRESENCE_FEATURES.md → archive/TESTING_PRESENCE_FEATURES.md} +0 -0
  486. /package/docs/{TMUX_IMPLEMENTATION_NOTES.md → archive/TMUX_IMPLEMENTATION_NOTES.md} +0 -0
  487. /package/docs/{TMUX_IMPROVEMENTS.md → archive/TMUX_IMPROVEMENTS.md} +0 -0
  488. /package/docs/{dashboard-v2-plan.md → archive/dashboard-v2-plan.md} +0 -0
  489. /package/docs/{removable-code-analysis.md → archive/removable-code-analysis.md} +0 -0
  490. /package/docs/{competitive-analysis-mcp-agent-mail.md → competitive/MCP_AGENT_MAIL.md} +0 -0
@@ -0,0 +1,373 @@
1
+ /**
2
+ * CI Agent Spawner Service
3
+ *
4
+ * Spawns agents to fix CI failures automatically.
5
+ * Called by the webhook handler when CI checks fail on PRs.
6
+ *
7
+ * Flow:
8
+ * 1. App posts acknowledgment comment on the PR
9
+ * 2. Finds a linked daemon for the repository
10
+ * 3. Queues spawn command for the daemon
11
+ * 4. Agent works and posts response comment
12
+ */
13
+ import { db } from '../db/index.js';
14
+ import { nangoService } from './nango.js';
15
+ /**
16
+ * Get the GitHub App name for comments
17
+ */
18
+ function getAppName() {
19
+ return process.env.GITHUB_APP_NAME || 'Agent Relay';
20
+ }
21
+ /**
22
+ * Post a CI failure acknowledgment comment on GitHub
23
+ */
24
+ async function postCIAcknowledgmentComment(repository, prNumber, checkName, failureTitle) {
25
+ if (!repository.nangoConnectionId) {
26
+ console.warn(`[ci-spawner] Repository ${repository.githubFullName} has no Nango connection`);
27
+ return null;
28
+ }
29
+ const [owner, repo] = repository.githubFullName.split('/');
30
+ const appName = getAppName();
31
+ const body = `🔴 **CI Failure Detected**
32
+
33
+ The \`${checkName}\` check has failed${failureTitle ? `: ${failureTitle}` : ''}.
34
+
35
+ I'm spawning an agent to investigate and fix this issue. The **@ci-fix** agent will analyze the failure and attempt to resolve it.
36
+
37
+ You'll be notified when the fix is ready or if manual intervention is needed.
38
+
39
+ _— ${appName}_`;
40
+ try {
41
+ const result = await nangoService.addGithubIssueComment(repository.nangoConnectionId, owner, repo, prNumber, body);
42
+ console.log(`[ci-spawner] Posted CI acknowledgment comment: ${result.html_url}`);
43
+ return { id: result.id, url: result.html_url };
44
+ }
45
+ catch (error) {
46
+ console.error(`[ci-spawner] Failed to post CI acknowledgment comment:`, error);
47
+ return null;
48
+ }
49
+ }
50
+ /**
51
+ * Post a completion comment on GitHub
52
+ */
53
+ async function postCompletionComment(repository, prNumber, success, summary, commitSha) {
54
+ if (!repository.nangoConnectionId) {
55
+ return;
56
+ }
57
+ const [owner, repo] = repository.githubFullName.split('/');
58
+ const appName = getAppName();
59
+ let body;
60
+ if (success) {
61
+ body = `✅ **CI Fix Applied**
62
+
63
+ ${summary}
64
+
65
+ ${commitSha ? `**Commit:** ${commitSha.substring(0, 7)}` : ''}
66
+
67
+ Please review the changes and re-run the CI checks.
68
+
69
+ _— ${appName}_`;
70
+ }
71
+ else {
72
+ body = `⚠️ **CI Fix Unsuccessful**
73
+
74
+ ${summary}
75
+
76
+ Manual intervention may be required. Please check the failure details and fix the issue manually.
77
+
78
+ _— ${appName}_`;
79
+ }
80
+ try {
81
+ await nangoService.addGithubIssueComment(repository.nangoConnectionId, owner, repo, prNumber, body);
82
+ console.log(`[ci-spawner] Posted completion comment for PR #${prNumber}`);
83
+ }
84
+ catch (error) {
85
+ console.error(`[ci-spawner] Failed to post completion comment:`, error);
86
+ }
87
+ }
88
+ /**
89
+ * Find a linked daemon that can handle this repository
90
+ */
91
+ async function findAvailableDaemon(repository) {
92
+ if (!repository.userId) {
93
+ console.warn(`[ci-spawner] Repository ${repository.githubFullName} has no userId`);
94
+ return null;
95
+ }
96
+ const daemons = await db.linkedDaemons.findByUserId(repository.userId);
97
+ const onlineDaemon = daemons.find(d => d.status === 'online');
98
+ if (!onlineDaemon) {
99
+ console.warn(`[ci-spawner] No online daemon found for user ${repository.userId}`);
100
+ return null;
101
+ }
102
+ return { id: onlineDaemon.id, userId: repository.userId };
103
+ }
104
+ /**
105
+ * Queue a spawn command for a linked daemon
106
+ */
107
+ async function queueSpawnCommand(daemonId, agentName, prompt, metadata) {
108
+ const command = {
109
+ type: 'spawn_agent',
110
+ agentName,
111
+ cli: 'claude',
112
+ task: prompt,
113
+ metadata,
114
+ timestamp: new Date().toISOString(),
115
+ };
116
+ await db.linkedDaemons.queueMessage(daemonId, {
117
+ from: { daemonId: 'cloud', daemonName: 'Agent Relay Cloud', agent: 'system' },
118
+ to: '__spawner__',
119
+ content: JSON.stringify(command),
120
+ metadata: { type: 'spawn_command' },
121
+ timestamp: new Date().toISOString(),
122
+ });
123
+ console.log(`[ci-spawner] Queued spawn command for daemon ${daemonId}`);
124
+ }
125
+ /**
126
+ * Spawn an agent to fix CI failures
127
+ *
128
+ * This function:
129
+ * 1. Finds the workspace for the repository
130
+ * 2. Posts acknowledgment comment
131
+ * 3. Creates a fix attempt record
132
+ * 4. Queues spawn command for a linked daemon
133
+ *
134
+ * @param failureEvent - The CI failure event from the database
135
+ */
136
+ export async function spawnCIFixAgent(failureEvent) {
137
+ console.log(`[ci-spawner] Spawning agent for failure: ${failureEvent.id}`);
138
+ console.log(`[ci-spawner] Repository: ${failureEvent.repository}`);
139
+ console.log(`[ci-spawner] Check: ${failureEvent.checkName}`);
140
+ console.log(`[ci-spawner] PR: #${failureEvent.prNumber}`);
141
+ // Only handle failures on PRs
142
+ if (failureEvent.prNumber === null) {
143
+ console.log(`[ci-spawner] Failure not on a PR, skipping`);
144
+ return;
145
+ }
146
+ const prNumber = failureEvent.prNumber;
147
+ // Find the repository
148
+ const repository = await db.repositories.findByFullName(failureEvent.repository);
149
+ if (!repository) {
150
+ console.error(`[ci-spawner] Repository not found: ${failureEvent.repository}`);
151
+ return;
152
+ }
153
+ // Generate agent name and ID
154
+ const agentName = `ci-fix-${failureEvent.checkName.replace(/[^a-zA-Z0-9-]/g, '-')}-${prNumber}`;
155
+ const agentId = `ci-${failureEvent.id}`;
156
+ // Create fix attempt record
157
+ const fixAttempt = await db.ciFixAttempts.create({
158
+ failureEventId: failureEvent.id,
159
+ agentId,
160
+ agentName,
161
+ status: 'pending',
162
+ });
163
+ console.log(`[ci-spawner] Created fix attempt: ${fixAttempt.id}`);
164
+ try {
165
+ // Step 1: Post acknowledgment comment
166
+ await postCIAcknowledgmentComment(repository, prNumber, failureEvent.checkName, failureEvent.failureTitle);
167
+ // Step 2: Find a linked daemon
168
+ const daemon = await findAvailableDaemon(repository);
169
+ if (!daemon) {
170
+ console.warn(`[ci-spawner] No available daemon for ${failureEvent.repository}`);
171
+ // Post a comment explaining the situation
172
+ if (repository.nangoConnectionId) {
173
+ const [owner, repo] = repository.githubFullName.split('/');
174
+ try {
175
+ await nangoService.addGithubIssueComment(repository.nangoConnectionId, owner, repo, prNumber, `⚠️ I couldn't spawn an agent to fix this CI failure because no Agent Relay daemon is available.
176
+
177
+ Please ensure you have a linked daemon running by executing \`agent-relay cloud link\` on your development machine.
178
+
179
+ You can also fix this issue manually by reviewing the failure output above.
180
+
181
+ _— ${getAppName()}_`);
182
+ }
183
+ catch (error) {
184
+ console.error(`[ci-spawner] Failed to post error comment:`, error);
185
+ }
186
+ }
187
+ await db.ciFixAttempts.complete(fixAttempt.id, 'failed', undefined, 'No available daemon to spawn agent');
188
+ return;
189
+ }
190
+ // Step 3: Build the agent prompt
191
+ const prompt = buildAgentPrompt(failureEvent, repository);
192
+ // Step 4: Update status to in_progress
193
+ await db.ciFixAttempts.updateStatus(fixAttempt.id, 'in_progress');
194
+ // Step 5: Queue spawn command for the daemon
195
+ await queueSpawnCommand(daemon.id, agentName, prompt, {
196
+ failureEventId: failureEvent.id,
197
+ fixAttemptId: fixAttempt.id,
198
+ repository: failureEvent.repository,
199
+ prNumber,
200
+ checkName: failureEvent.checkName,
201
+ });
202
+ console.log(`[ci-spawner] Successfully queued CI fix agent for ${failureEvent.repository}#${prNumber}`);
203
+ }
204
+ catch (error) {
205
+ console.error(`[ci-spawner] Failed to spawn agent:`, error);
206
+ await db.ciFixAttempts.complete(fixAttempt.id, 'failed', undefined, error instanceof Error ? error.message : 'Unknown error');
207
+ throw error;
208
+ }
209
+ }
210
+ /**
211
+ * Build the prompt for the CI fix agent
212
+ */
213
+ function buildAgentPrompt(failureEvent, _repository) {
214
+ const annotations = failureEvent.annotations;
215
+ const annotationsList = annotations && annotations.length > 0
216
+ ? annotations
217
+ .slice(0, 20) // Limit to first 20 annotations
218
+ .map(a => `- ${a.path}:${a.startLine} - ${a.message}`)
219
+ .join('\n')
220
+ : null;
221
+ const responseInstructions = `
222
+ ## Response Instructions
223
+
224
+ When you complete your work:
225
+ 1. Commit and push your changes
226
+ 2. Post a comment on the PR summarizing what you fixed
227
+
228
+ Use the GitHub CLI (\`gh\`) to post your response:
229
+ \`\`\`bash
230
+ gh pr comment ${failureEvent.prNumber} --repo ${failureEvent.repository} --body "## CI Fix Applied
231
+
232
+ Summary of changes...
233
+
234
+ **Files modified:**
235
+ - file1.ts
236
+ - file2.ts
237
+
238
+ Please re-run the CI checks to verify the fix."
239
+ \`\`\`
240
+ `;
241
+ return `
242
+ # CI Failure Fix Task
243
+
244
+ A CI check has failed on PR #${failureEvent.prNumber} in ${failureEvent.repository}.
245
+
246
+ ## Failure Details
247
+
248
+ **Check Name:** ${failureEvent.checkName}
249
+ **Branch:** ${failureEvent.branch || 'unknown'}
250
+ **Commit:** ${failureEvent.commitSha || 'unknown'}
251
+
252
+ ${failureEvent.failureTitle ? `**Title:** ${failureEvent.failureTitle}` : ''}
253
+
254
+ ${failureEvent.failureSummary ? `**Summary:**\n${failureEvent.failureSummary}` : ''}
255
+
256
+ ${failureEvent.failureDetails ? `**Details:**\n${failureEvent.failureDetails}` : ''}
257
+
258
+ ${annotationsList ? `## Annotations\n\n${annotationsList}` : ''}
259
+
260
+ ## Your Task
261
+
262
+ 1. Checkout the branch: \`${failureEvent.branch || 'unknown'}\`
263
+ 2. Analyze the failure based on the annotations and error messages
264
+ 3. Fix the issues in the affected files
265
+ 4. Run the relevant checks locally to verify the fix
266
+ 5. Commit and push your changes with a clear commit message
267
+ 6. Report back with a summary of what was fixed
268
+
269
+ ${responseInstructions}
270
+
271
+ ## Important
272
+
273
+ - Only fix the specific issues causing the CI failure
274
+ - Do not refactor or improve unrelated code
275
+ - If you cannot fix the issue, explain why and what manual intervention is needed
276
+ - Keep your commit message descriptive and reference the CI check name
277
+ `.trim();
278
+ }
279
+ /**
280
+ * Notify an existing agent about a CI failure
281
+ *
282
+ * Used when an agent is already working on a PR and a new failure occurs.
283
+ *
284
+ * @param agentId - The ID of the existing agent
285
+ * @param failureEvent - The new CI failure event
286
+ */
287
+ export async function notifyAgentOfCIFailure(agentId, failureEvent) {
288
+ console.log(`[ci-spawner] Notifying agent ${agentId} of new failure`);
289
+ // Find the repository
290
+ const repository = await db.repositories.findByFullName(failureEvent.repository);
291
+ if (!repository || !repository.userId) {
292
+ console.warn(`[ci-spawner] Repository not found or has no userId: ${failureEvent.repository}`);
293
+ return;
294
+ }
295
+ // Find the daemon that should have this agent
296
+ const daemons = await db.linkedDaemons.findByUserId(repository.userId);
297
+ const onlineDaemon = daemons.find(d => d.status === 'online');
298
+ if (!onlineDaemon) {
299
+ console.warn(`[ci-spawner] No online daemon to notify agent ${agentId}`);
300
+ return;
301
+ }
302
+ // Build notification message
303
+ const annotations = failureEvent.annotations;
304
+ const annotationsList = annotations && annotations.length > 0
305
+ ? annotations
306
+ .slice(0, 10)
307
+ .map(a => ` - ${a.path}:${a.startLine}: ${a.message}`)
308
+ .join('\n')
309
+ : null;
310
+ const message = `
311
+ CI FAILURE: ${failureEvent.checkName}
312
+
313
+ ${failureEvent.failureTitle || 'Check failed'}
314
+
315
+ ${failureEvent.failureSummary || ''}
316
+
317
+ ${annotationsList ? `Issues:\n${annotationsList}` : ''}
318
+
319
+ Please investigate and fix these issues, then push your changes.
320
+ `.trim();
321
+ // Queue message for the agent via daemon
322
+ await db.linkedDaemons.queueMessage(onlineDaemon.id, {
323
+ from: { daemonId: 'cloud', daemonName: 'Agent Relay Cloud', agent: 'system' },
324
+ to: agentId,
325
+ content: message,
326
+ metadata: { type: 'ci_failure_notification', failureEventId: failureEvent.id },
327
+ timestamp: new Date().toISOString(),
328
+ });
329
+ console.log(`[ci-spawner] Queued CI failure notification for agent ${agentId}`);
330
+ }
331
+ /**
332
+ * Mark a fix attempt as complete
333
+ *
334
+ * Called when an agent reports completion (success or failure)
335
+ */
336
+ export async function completeFixAttempt(fixAttemptId, success, commitSha, errorMessage) {
337
+ console.log(`[ci-spawner] Completing fix attempt ${fixAttemptId}: ${success ? 'success' : 'failed'}`);
338
+ // Update the fix attempt record
339
+ await db.ciFixAttempts.complete(fixAttemptId, success ? 'success' : 'failed', commitSha, errorMessage);
340
+ // Get the fix attempt to find the failure event
341
+ const fixAttempt = await db.ciFixAttempts.findById(fixAttemptId);
342
+ if (!fixAttempt) {
343
+ console.warn(`[ci-spawner] Fix attempt not found: ${fixAttemptId}`);
344
+ return;
345
+ }
346
+ // Get the failure event to find the repository and PR
347
+ const failureEvent = await db.ciFailureEvents.findById(fixAttempt.failureEventId);
348
+ if (!failureEvent) {
349
+ console.warn(`[ci-spawner] Failure event not found: ${fixAttempt.failureEventId}`);
350
+ return;
351
+ }
352
+ // Find the repository to post completion comment
353
+ const repository = await db.repositories.findByFullName(failureEvent.repository);
354
+ if (repository && failureEvent.prNumber !== null) {
355
+ const summary = success
356
+ ? `The @ci-fix agent has fixed the \`${failureEvent.checkName}\` check failure.`
357
+ : errorMessage || 'The @ci-fix agent was unable to fix the issue.';
358
+ await postCompletionComment(repository, failureEvent.prNumber, success, summary, commitSha);
359
+ }
360
+ }
361
+ /**
362
+ * Get failure history for a repository
363
+ */
364
+ export async function getFailureHistory(repository, limit = 50) {
365
+ return db.ciFailureEvents.findByRepository(repository, limit);
366
+ }
367
+ /**
368
+ * Get failure history for a specific PR
369
+ */
370
+ export async function getPRFailureHistory(repository, prNumber) {
371
+ return db.ciFailureEvents.findByPR(repository, prNumber);
372
+ }
373
+ //# sourceMappingURL=ci-agent-spawner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-agent-spawner.js","sourceRoot":"","sources":["../../../src/cloud/services/ci-agent-spawner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Cloud Services Index
3
+ *
4
+ * Exports all cloud-side services for easy importing.
5
+ */
6
+ export { ScalingPolicyService, ScalingThresholds, ScalingPolicy, ScalingCondition, ScalingAction, ScalingDecision, UserScalingContext, WorkspaceMetrics, getScalingPolicyService, } from './scaling-policy.js';
7
+ export { AutoScaler, AutoScalerConfig, ScalingOperation, MetricsSnapshot, getAutoScaler, createAutoScaler, } from './auto-scaler.js';
8
+ export { CapacityManager, CapacityManagerConfig, WorkspaceCapacity, PlacementRecommendation, CapacitySnapshot, CapacityForecast, getCapacityManager, createCapacityManager, } from './capacity-manager.js';
9
+ export { ScalingOrchestrator, OrchestratorConfig, ScalingEvent, getScalingOrchestrator, createScalingOrchestrator, } from './scaling-orchestrator.js';
10
+ export { spawnCIFixAgent, notifyAgentOfCIFailure, completeFixAttempt, getFailureHistory, getPRFailureHistory, } from './ci-agent-spawner.js';
11
+ export { handleMention, handleIssueAssignment, getPendingMentions, getPendingIssueAssignments, processPendingMentions, processPendingIssueAssignments, KNOWN_AGENTS, isKnownAgent, } from './mention-handler.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cloud/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,8BAA8B,EAC9B,YAAY,EACZ,YAAY,GACb,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Cloud Services Index
3
+ *
4
+ * Exports all cloud-side services for easy importing.
5
+ */
6
+ // Scaling infrastructure
7
+ export { ScalingPolicyService, getScalingPolicyService, } from './scaling-policy.js';
8
+ export { AutoScaler, getAutoScaler, createAutoScaler, } from './auto-scaler.js';
9
+ export { CapacityManager, getCapacityManager, createCapacityManager, } from './capacity-manager.js';
10
+ export { ScalingOrchestrator, getScalingOrchestrator, createScalingOrchestrator, } from './scaling-orchestrator.js';
11
+ // CI failure handling
12
+ export { spawnCIFixAgent, notifyAgentOfCIFailure, completeFixAttempt, getFailureHistory, getPRFailureHistory, } from './ci-agent-spawner.js';
13
+ // Issue and mention handling
14
+ export { handleMention, handleIssueAssignment, getPendingMentions, getPendingIssueAssignments, processPendingMentions, processPendingIssueAssignments, KNOWN_AGENTS, isKnownAgent, } from './mention-handler.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cloud/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yBAAyB;AACzB,OAAO,EACL,oBAAoB,EAQpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,UAAU,EAIV,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EAMf,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EAGnB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,sBAAsB;AACtB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,6BAA6B;AAC7B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,8BAA8B,EAC9B,YAAY,EACZ,YAAY,GACb,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Mention Handler Service
3
+ *
4
+ * Handles @mentions of agents in GitHub issues and PR comments.
5
+ * Routes mentions to appropriate agents for response.
6
+ *
7
+ * Flow:
8
+ * 1. App posts acknowledgment comment
9
+ * 2. Finds a linked daemon for the repository
10
+ * 3. Queues spawn command for the daemon
11
+ * 4. Agent works and posts response comment
12
+ */
13
+ import { CommentMention, IssueAssignment } from '../db/index.js';
14
+ /**
15
+ * Known agent types that can be mentioned
16
+ */
17
+ export declare const KNOWN_AGENTS: {
18
+ readonly 'agent-relay': "General purpose agent for any task";
19
+ readonly lead: "Lead agent for coordination and delegation";
20
+ readonly developer: "Developer agent for coding tasks";
21
+ readonly reviewer: "Code review agent";
22
+ readonly 'ci-fix': "CI failure fixing agent";
23
+ readonly debugger: "Bug investigation and fixing agent";
24
+ readonly docs: "Documentation agent";
25
+ readonly test: "Test writing agent";
26
+ readonly refactor: "Code refactoring agent";
27
+ };
28
+ export type KnownAgentType = keyof typeof KNOWN_AGENTS;
29
+ /**
30
+ * Check if a mention is for a known agent type
31
+ */
32
+ export declare function isKnownAgent(mention: string): mention is KnownAgentType;
33
+ /**
34
+ * Handle a mention record
35
+ *
36
+ * This function:
37
+ * 1. Validates the mention is for a known agent
38
+ * 2. Posts an acknowledgment comment
39
+ * 3. Finds a linked daemon
40
+ * 4. Queues a spawn command for the agent
41
+ */
42
+ export declare function handleMention(mention: CommentMention): Promise<void>;
43
+ /**
44
+ * Handle an issue assignment
45
+ *
46
+ * Called when an issue should be assigned to an agent
47
+ */
48
+ export declare function handleIssueAssignment(assignment: IssueAssignment): Promise<void>;
49
+ /**
50
+ * Get pending mentions for processing
51
+ */
52
+ export declare function getPendingMentions(limit?: number): Promise<CommentMention[]>;
53
+ /**
54
+ * Get pending issue assignments for processing
55
+ */
56
+ export declare function getPendingIssueAssignments(limit?: number): Promise<IssueAssignment[]>;
57
+ /**
58
+ * Process all pending mentions (background job)
59
+ */
60
+ export declare function processPendingMentions(): Promise<number>;
61
+ /**
62
+ * Process all pending issue assignments (background job)
63
+ */
64
+ export declare function processPendingIssueAssignments(): Promise<number>;
65
+ //# sourceMappingURL=mention-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-handler.d.ts","sourceRoot":"","sources":["../../../src/cloud/services/mention-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAM,cAAc,EAAE,eAAe,EAAc,MAAM,gBAAgB,CAAC;AAGjF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAaf,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,YAAY,CAAC;AAEvD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,cAAc,CAEvE;AA0GD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA8E1E;AAyED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEtF;AA4DD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAE9E;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAEvF;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAc9D;AAED;;GAEG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CActE"}