@agent-relay/cloud 2.0.23 → 6.0.4

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 (301) hide show
  1. package/dist/api-client.d.ts +33 -0
  2. package/dist/api-client.d.ts.map +1 -0
  3. package/dist/api-client.js +123 -0
  4. package/dist/api-client.js.map +1 -0
  5. package/dist/auth.d.ts +13 -0
  6. package/dist/auth.d.ts.map +1 -0
  7. package/dist/auth.js +299 -0
  8. package/dist/auth.js.map +1 -0
  9. package/dist/connect.d.ts +45 -0
  10. package/dist/connect.d.ts.map +1 -0
  11. package/dist/connect.js +166 -0
  12. package/dist/connect.js.map +1 -0
  13. package/dist/index.d.ts +7 -10
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +7 -37
  16. package/dist/index.js.map +1 -1
  17. package/dist/lib/ssh-interactive.d.ts +70 -0
  18. package/dist/lib/ssh-interactive.d.ts.map +1 -0
  19. package/dist/lib/ssh-interactive.js +440 -0
  20. package/dist/lib/ssh-interactive.js.map +1 -0
  21. package/dist/lib/ssh-runtime.d.ts +35 -0
  22. package/dist/lib/ssh-runtime.d.ts.map +1 -0
  23. package/dist/lib/ssh-runtime.js +52 -0
  24. package/dist/lib/ssh-runtime.js.map +1 -0
  25. package/dist/types.d.ts +76 -0
  26. package/dist/types.d.ts.map +1 -0
  27. package/dist/types.js +12 -0
  28. package/dist/types.js.map +1 -0
  29. package/dist/workflows.d.ts +49 -0
  30. package/dist/workflows.d.ts.map +1 -0
  31. package/dist/workflows.js +473 -0
  32. package/dist/workflows.js.map +1 -0
  33. package/package.json +12 -25
  34. package/dist/api/admin.d.ts +0 -8
  35. package/dist/api/admin.d.ts.map +0 -1
  36. package/dist/api/admin.js +0 -225
  37. package/dist/api/admin.js.map +0 -1
  38. package/dist/api/auth.d.ts +0 -20
  39. package/dist/api/auth.d.ts.map +0 -1
  40. package/dist/api/auth.js +0 -138
  41. package/dist/api/auth.js.map +0 -1
  42. package/dist/api/billing.d.ts +0 -7
  43. package/dist/api/billing.d.ts.map +0 -1
  44. package/dist/api/billing.js +0 -564
  45. package/dist/api/billing.js.map +0 -1
  46. package/dist/api/cli-pty-runner.d.ts +0 -53
  47. package/dist/api/cli-pty-runner.d.ts.map +0 -1
  48. package/dist/api/cli-pty-runner.js +0 -175
  49. package/dist/api/cli-pty-runner.js.map +0 -1
  50. package/dist/api/codex-auth-helper.d.ts +0 -21
  51. package/dist/api/codex-auth-helper.d.ts.map +0 -1
  52. package/dist/api/codex-auth-helper.js +0 -327
  53. package/dist/api/codex-auth-helper.js.map +0 -1
  54. package/dist/api/consensus.d.ts +0 -13
  55. package/dist/api/consensus.d.ts.map +0 -1
  56. package/dist/api/consensus.js +0 -261
  57. package/dist/api/consensus.js.map +0 -1
  58. package/dist/api/coordinators.d.ts +0 -8
  59. package/dist/api/coordinators.d.ts.map +0 -1
  60. package/dist/api/coordinators.js +0 -750
  61. package/dist/api/coordinators.js.map +0 -1
  62. package/dist/api/daemons.d.ts +0 -12
  63. package/dist/api/daemons.d.ts.map +0 -1
  64. package/dist/api/daemons.js +0 -535
  65. package/dist/api/daemons.js.map +0 -1
  66. package/dist/api/email-auth.d.ts +0 -11
  67. package/dist/api/email-auth.d.ts.map +0 -1
  68. package/dist/api/email-auth.js +0 -347
  69. package/dist/api/email-auth.js.map +0 -1
  70. package/dist/api/generic-webhooks.d.ts +0 -8
  71. package/dist/api/generic-webhooks.d.ts.map +0 -1
  72. package/dist/api/generic-webhooks.js +0 -129
  73. package/dist/api/generic-webhooks.js.map +0 -1
  74. package/dist/api/git.d.ts +0 -8
  75. package/dist/api/git.d.ts.map +0 -1
  76. package/dist/api/git.js +0 -269
  77. package/dist/api/git.js.map +0 -1
  78. package/dist/api/github-app.d.ts +0 -11
  79. package/dist/api/github-app.d.ts.map +0 -1
  80. package/dist/api/github-app.js +0 -223
  81. package/dist/api/github-app.js.map +0 -1
  82. package/dist/api/middleware/planLimits.d.ts +0 -43
  83. package/dist/api/middleware/planLimits.d.ts.map +0 -1
  84. package/dist/api/middleware/planLimits.js +0 -202
  85. package/dist/api/middleware/planLimits.js.map +0 -1
  86. package/dist/api/monitoring.d.ts +0 -11
  87. package/dist/api/monitoring.d.ts.map +0 -1
  88. package/dist/api/monitoring.js +0 -578
  89. package/dist/api/monitoring.js.map +0 -1
  90. package/dist/api/nango-auth.d.ts +0 -9
  91. package/dist/api/nango-auth.d.ts.map +0 -1
  92. package/dist/api/nango-auth.js +0 -741
  93. package/dist/api/nango-auth.js.map +0 -1
  94. package/dist/api/onboarding.d.ts +0 -15
  95. package/dist/api/onboarding.d.ts.map +0 -1
  96. package/dist/api/onboarding.js +0 -679
  97. package/dist/api/onboarding.js.map +0 -1
  98. package/dist/api/policy.d.ts +0 -8
  99. package/dist/api/policy.d.ts.map +0 -1
  100. package/dist/api/policy.js +0 -229
  101. package/dist/api/policy.js.map +0 -1
  102. package/dist/api/provider-env.d.ts +0 -26
  103. package/dist/api/provider-env.d.ts.map +0 -1
  104. package/dist/api/provider-env.js +0 -141
  105. package/dist/api/provider-env.js.map +0 -1
  106. package/dist/api/providers.d.ts +0 -7
  107. package/dist/api/providers.d.ts.map +0 -1
  108. package/dist/api/providers.js +0 -574
  109. package/dist/api/providers.js.map +0 -1
  110. package/dist/api/repos.d.ts +0 -8
  111. package/dist/api/repos.d.ts.map +0 -1
  112. package/dist/api/repos.js +0 -577
  113. package/dist/api/repos.js.map +0 -1
  114. package/dist/api/sessions.d.ts +0 -11
  115. package/dist/api/sessions.d.ts.map +0 -1
  116. package/dist/api/sessions.js +0 -302
  117. package/dist/api/sessions.js.map +0 -1
  118. package/dist/api/teams.d.ts +0 -7
  119. package/dist/api/teams.d.ts.map +0 -1
  120. package/dist/api/teams.js +0 -281
  121. package/dist/api/teams.js.map +0 -1
  122. package/dist/api/test-helpers.d.ts +0 -10
  123. package/dist/api/test-helpers.d.ts.map +0 -1
  124. package/dist/api/test-helpers.js +0 -745
  125. package/dist/api/test-helpers.js.map +0 -1
  126. package/dist/api/usage.d.ts +0 -7
  127. package/dist/api/usage.d.ts.map +0 -1
  128. package/dist/api/usage.js +0 -111
  129. package/dist/api/usage.js.map +0 -1
  130. package/dist/api/webhooks.d.ts +0 -8
  131. package/dist/api/webhooks.d.ts.map +0 -1
  132. package/dist/api/webhooks.js +0 -645
  133. package/dist/api/webhooks.js.map +0 -1
  134. package/dist/api/workspaces.d.ts +0 -25
  135. package/dist/api/workspaces.d.ts.map +0 -1
  136. package/dist/api/workspaces.js +0 -1799
  137. package/dist/api/workspaces.js.map +0 -1
  138. package/dist/billing/index.d.ts +0 -9
  139. package/dist/billing/index.d.ts.map +0 -1
  140. package/dist/billing/index.js +0 -9
  141. package/dist/billing/index.js.map +0 -1
  142. package/dist/billing/plans.d.ts +0 -39
  143. package/dist/billing/plans.d.ts.map +0 -1
  144. package/dist/billing/plans.js +0 -245
  145. package/dist/billing/plans.js.map +0 -1
  146. package/dist/billing/service.d.ts +0 -80
  147. package/dist/billing/service.d.ts.map +0 -1
  148. package/dist/billing/service.js +0 -388
  149. package/dist/billing/service.js.map +0 -1
  150. package/dist/billing/types.d.ts +0 -141
  151. package/dist/billing/types.d.ts.map +0 -1
  152. package/dist/billing/types.js +0 -7
  153. package/dist/billing/types.js.map +0 -1
  154. package/dist/config.d.ts +0 -5
  155. package/dist/config.d.ts.map +0 -1
  156. package/dist/config.js +0 -5
  157. package/dist/config.js.map +0 -1
  158. package/dist/db/bulk-ingest.d.ts +0 -89
  159. package/dist/db/bulk-ingest.d.ts.map +0 -1
  160. package/dist/db/bulk-ingest.js +0 -268
  161. package/dist/db/bulk-ingest.js.map +0 -1
  162. package/dist/db/drizzle.d.ts +0 -290
  163. package/dist/db/drizzle.d.ts.map +0 -1
  164. package/dist/db/drizzle.js +0 -1422
  165. package/dist/db/drizzle.js.map +0 -1
  166. package/dist/db/index.d.ts +0 -56
  167. package/dist/db/index.d.ts.map +0 -1
  168. package/dist/db/index.js +0 -70
  169. package/dist/db/index.js.map +0 -1
  170. package/dist/db/schema.d.ts +0 -5117
  171. package/dist/db/schema.d.ts.map +0 -1
  172. package/dist/db/schema.js +0 -656
  173. package/dist/db/schema.js.map +0 -1
  174. package/dist/provisioner/index.d.ts +0 -207
  175. package/dist/provisioner/index.d.ts.map +0 -1
  176. package/dist/provisioner/index.js +0 -2118
  177. package/dist/provisioner/index.js.map +0 -1
  178. package/dist/server.d.ts +0 -17
  179. package/dist/server.d.ts.map +0 -1
  180. package/dist/server.js +0 -2055
  181. package/dist/server.js.map +0 -1
  182. package/dist/services/auto-scaler.d.ts +0 -152
  183. package/dist/services/auto-scaler.d.ts.map +0 -1
  184. package/dist/services/auto-scaler.js +0 -439
  185. package/dist/services/auto-scaler.js.map +0 -1
  186. package/dist/services/capacity-manager.d.ts +0 -148
  187. package/dist/services/capacity-manager.d.ts.map +0 -1
  188. package/dist/services/capacity-manager.js +0 -449
  189. package/dist/services/capacity-manager.js.map +0 -1
  190. package/dist/services/ci-agent-spawner.d.ts +0 -49
  191. package/dist/services/ci-agent-spawner.d.ts.map +0 -1
  192. package/dist/services/ci-agent-spawner.js +0 -373
  193. package/dist/services/ci-agent-spawner.js.map +0 -1
  194. package/dist/services/cloud-message-bus.d.ts +0 -28
  195. package/dist/services/cloud-message-bus.d.ts.map +0 -1
  196. package/dist/services/cloud-message-bus.js +0 -19
  197. package/dist/services/cloud-message-bus.js.map +0 -1
  198. package/dist/services/compute-enforcement.d.ts +0 -57
  199. package/dist/services/compute-enforcement.d.ts.map +0 -1
  200. package/dist/services/compute-enforcement.js +0 -175
  201. package/dist/services/compute-enforcement.js.map +0 -1
  202. package/dist/services/coordinator.d.ts +0 -62
  203. package/dist/services/coordinator.d.ts.map +0 -1
  204. package/dist/services/coordinator.js +0 -389
  205. package/dist/services/coordinator.js.map +0 -1
  206. package/dist/services/index.d.ts +0 -17
  207. package/dist/services/index.d.ts.map +0 -1
  208. package/dist/services/index.js +0 -25
  209. package/dist/services/index.js.map +0 -1
  210. package/dist/services/intro-expiration.d.ts +0 -60
  211. package/dist/services/intro-expiration.d.ts.map +0 -1
  212. package/dist/services/intro-expiration.js +0 -252
  213. package/dist/services/intro-expiration.js.map +0 -1
  214. package/dist/services/mention-handler.d.ts +0 -65
  215. package/dist/services/mention-handler.d.ts.map +0 -1
  216. package/dist/services/mention-handler.js +0 -405
  217. package/dist/services/mention-handler.js.map +0 -1
  218. package/dist/services/nango.d.ts +0 -219
  219. package/dist/services/nango.d.ts.map +0 -1
  220. package/dist/services/nango.js +0 -424
  221. package/dist/services/nango.js.map +0 -1
  222. package/dist/services/persistence.d.ts +0 -131
  223. package/dist/services/persistence.d.ts.map +0 -1
  224. package/dist/services/persistence.js +0 -200
  225. package/dist/services/persistence.js.map +0 -1
  226. package/dist/services/planLimits.d.ts +0 -147
  227. package/dist/services/planLimits.d.ts.map +0 -1
  228. package/dist/services/planLimits.js +0 -335
  229. package/dist/services/planLimits.js.map +0 -1
  230. package/dist/services/presence-registry.d.ts +0 -56
  231. package/dist/services/presence-registry.d.ts.map +0 -1
  232. package/dist/services/presence-registry.js +0 -91
  233. package/dist/services/presence-registry.js.map +0 -1
  234. package/dist/services/scaling-orchestrator.d.ts +0 -159
  235. package/dist/services/scaling-orchestrator.d.ts.map +0 -1
  236. package/dist/services/scaling-orchestrator.js +0 -502
  237. package/dist/services/scaling-orchestrator.js.map +0 -1
  238. package/dist/services/scaling-policy.d.ts +0 -121
  239. package/dist/services/scaling-policy.d.ts.map +0 -1
  240. package/dist/services/scaling-policy.js +0 -415
  241. package/dist/services/scaling-policy.js.map +0 -1
  242. package/dist/services/ssh-security.d.ts +0 -31
  243. package/dist/services/ssh-security.d.ts.map +0 -1
  244. package/dist/services/ssh-security.js +0 -63
  245. package/dist/services/ssh-security.js.map +0 -1
  246. package/dist/services/workspace-keepalive.d.ts +0 -76
  247. package/dist/services/workspace-keepalive.d.ts.map +0 -1
  248. package/dist/services/workspace-keepalive.js +0 -234
  249. package/dist/services/workspace-keepalive.js.map +0 -1
  250. package/dist/shims/consensus.d.ts +0 -23
  251. package/dist/shims/consensus.d.ts.map +0 -1
  252. package/dist/shims/consensus.js +0 -5
  253. package/dist/shims/consensus.js.map +0 -1
  254. package/dist/webhooks/index.d.ts +0 -24
  255. package/dist/webhooks/index.d.ts.map +0 -1
  256. package/dist/webhooks/index.js +0 -29
  257. package/dist/webhooks/index.js.map +0 -1
  258. package/dist/webhooks/parsers/github.d.ts +0 -8
  259. package/dist/webhooks/parsers/github.d.ts.map +0 -1
  260. package/dist/webhooks/parsers/github.js +0 -234
  261. package/dist/webhooks/parsers/github.js.map +0 -1
  262. package/dist/webhooks/parsers/index.d.ts +0 -23
  263. package/dist/webhooks/parsers/index.d.ts.map +0 -1
  264. package/dist/webhooks/parsers/index.js +0 -30
  265. package/dist/webhooks/parsers/index.js.map +0 -1
  266. package/dist/webhooks/parsers/linear.d.ts +0 -9
  267. package/dist/webhooks/parsers/linear.d.ts.map +0 -1
  268. package/dist/webhooks/parsers/linear.js +0 -258
  269. package/dist/webhooks/parsers/linear.js.map +0 -1
  270. package/dist/webhooks/parsers/slack.d.ts +0 -9
  271. package/dist/webhooks/parsers/slack.d.ts.map +0 -1
  272. package/dist/webhooks/parsers/slack.js +0 -214
  273. package/dist/webhooks/parsers/slack.js.map +0 -1
  274. package/dist/webhooks/responders/github.d.ts +0 -8
  275. package/dist/webhooks/responders/github.d.ts.map +0 -1
  276. package/dist/webhooks/responders/github.js +0 -73
  277. package/dist/webhooks/responders/github.js.map +0 -1
  278. package/dist/webhooks/responders/index.d.ts +0 -23
  279. package/dist/webhooks/responders/index.d.ts.map +0 -1
  280. package/dist/webhooks/responders/index.js +0 -30
  281. package/dist/webhooks/responders/index.js.map +0 -1
  282. package/dist/webhooks/responders/linear.d.ts +0 -9
  283. package/dist/webhooks/responders/linear.d.ts.map +0 -1
  284. package/dist/webhooks/responders/linear.js +0 -149
  285. package/dist/webhooks/responders/linear.js.map +0 -1
  286. package/dist/webhooks/responders/slack.d.ts +0 -20
  287. package/dist/webhooks/responders/slack.d.ts.map +0 -1
  288. package/dist/webhooks/responders/slack.js +0 -178
  289. package/dist/webhooks/responders/slack.js.map +0 -1
  290. package/dist/webhooks/router.d.ts +0 -25
  291. package/dist/webhooks/router.d.ts.map +0 -1
  292. package/dist/webhooks/router.js +0 -504
  293. package/dist/webhooks/router.js.map +0 -1
  294. package/dist/webhooks/rules-engine.d.ts +0 -24
  295. package/dist/webhooks/rules-engine.d.ts.map +0 -1
  296. package/dist/webhooks/rules-engine.js +0 -287
  297. package/dist/webhooks/rules-engine.js.map +0 -1
  298. package/dist/webhooks/types.d.ts +0 -186
  299. package/dist/webhooks/types.d.ts.map +0 -1
  300. package/dist/webhooks/types.js +0 -8
  301. package/dist/webhooks/types.js.map +0 -1
@@ -1,17 +0,0 @@
1
- /**
2
- * Cloud Services Index
3
- *
4
- * Exports all cloud-side services for easy importing.
5
- */
6
- export { ScalingPolicyService, type ScalingThresholds, type ScalingPolicy, type ScalingCondition, type ScalingAction, type ScalingDecision, type UserScalingContext, type WorkspaceMetrics, getScalingPolicyService, } from './scaling-policy.js';
7
- export { AutoScaler, type AutoScalerConfig, type ScalingOperation, type MetricsSnapshot, getAutoScaler, createAutoScaler, } from './auto-scaler.js';
8
- export { CapacityManager, type CapacityManagerConfig, type WorkspaceCapacity, type PlacementRecommendation, type CapacitySnapshot, type CapacityForecast, getCapacityManager, createCapacityManager, } from './capacity-manager.js';
9
- export { ScalingOrchestrator, type OrchestratorConfig, type 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
- export { ComputeEnforcementService, type ComputeEnforcementConfig, type EnforcementResult, getComputeEnforcementService, createComputeEnforcementService, } from './compute-enforcement.js';
13
- export { IntroExpirationService, type IntroExpirationConfig, type IntroStatus, type ExpirationResult as IntroExpirationResult, INTRO_PERIOD_DAYS, DESTROY_GRACE_PERIOD_DAYS, getIntroStatus, getIntroExpirationService, startIntroExpirationService, stopIntroExpirationService, } from './intro-expiration.js';
14
- export { WorkspaceKeepaliveService, type WorkspaceKeepaliveConfig, type KeepaliveStats, getWorkspaceKeepaliveService, createWorkspaceKeepaliveService, } from './workspace-keepalive.js';
15
- export { registerUserPresence, unregisterUserPresence, updateUserLastSeen, isUserOnline, getOnlineUser, getOnlineUsers, getOnlineUsersForDiscovery, clearAllPresence, type PresenceUserInfo, } from './presence-registry.js';
16
- export { cloudMessageBus, type CloudMessage, } from './cloud-message-bus.js';
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,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;AAG9B,OAAO,EACL,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,gBAAgB,IAAI,qBAAqB,EAC9C,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,0BAA0B,EAC1B,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC"}
@@ -1,25 +0,0 @@
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
- // Compute enforcement (free tier limits)
16
- export { ComputeEnforcementService, getComputeEnforcementService, createComputeEnforcementService, } from './compute-enforcement.js';
17
- // Intro expiration (auto-resize/destroy after free tier intro period)
18
- export { IntroExpirationService, INTRO_PERIOD_DAYS, DESTROY_GRACE_PERIOD_DAYS, getIntroStatus, getIntroExpirationService, startIntroExpirationService, stopIntroExpirationService, } from './intro-expiration.js';
19
- // Workspace keepalive (prevent Fly.io from idling machines with active agents)
20
- export { WorkspaceKeepaliveService, getWorkspaceKeepaliveService, createWorkspaceKeepaliveService, } from './workspace-keepalive.js';
21
- // Presence registry (shared registry for tracking online users)
22
- export { registerUserPresence, unregisterUserPresence, updateUserLastSeen, isUserOnline, getOnlineUser, getOnlineUsers, getOnlineUsersForDiscovery, clearAllPresence, } from './presence-registry.js';
23
- // Cloud message bus (event-based message delivery for cloud users)
24
- export { cloudMessageBus, } from './cloud-message-bus.js';
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/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;AAE9B,yCAAyC;AACzC,OAAO,EACL,yBAAyB,EAGzB,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,sEAAsE;AACtE,OAAO,EACL,sBAAsB,EAItB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,+EAA+E;AAC/E,OAAO,EACL,yBAAyB,EAGzB,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,gEAAgE;AAChE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAEhC,mEAAmE;AACnE,OAAO,EACL,eAAe,GAEhB,MAAM,wBAAwB,CAAC"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Intro Expiration Service
3
- *
4
- * Handles auto-resize and auto-destroy of free tier workspaces:
5
- * 1. Resize: Free users get Pro-level resources (2 CPU / 4GB) for the first 14 days,
6
- * then get automatically downsized to standard free tier (1 CPU / 2GB).
7
- * 2. Destroy: Free workspaces inactive for 7+ days after intro expires get auto-destroyed
8
- * to prevent ongoing infrastructure costs for churned users.
9
- */
10
- export declare const INTRO_PERIOD_DAYS = 14;
11
- export declare const DESTROY_GRACE_PERIOD_DAYS = 7;
12
- export interface IntroExpirationConfig {
13
- enabled: boolean;
14
- checkIntervalMs: number;
15
- }
16
- export interface IntroStatus {
17
- isIntroPeriod: boolean;
18
- daysRemaining: number;
19
- introPeriodDays: number;
20
- expiresAt: Date | null;
21
- }
22
- export interface ExpirationResult {
23
- userId: string;
24
- workspaceId: string;
25
- workspaceName: string;
26
- action: 'resized' | 'destroyed' | 'skipped' | 'error';
27
- reason?: string;
28
- }
29
- /**
30
- * Get intro period status for a user
31
- */
32
- export declare function getIntroStatus(userCreatedAt: Date | string | null, plan: string): IntroStatus;
33
- export declare class IntroExpirationService {
34
- private config;
35
- private checkTimer;
36
- private isRunning;
37
- constructor(config?: Partial<IntroExpirationConfig>);
38
- /**
39
- * Start the expiration service
40
- */
41
- start(): void;
42
- /**
43
- * Stop the expiration service
44
- */
45
- stop(): void;
46
- /**
47
- * Run expiration check for all free tier users with expired intro periods
48
- */
49
- runExpirationCheck(): Promise<ExpirationResult[]>;
50
- /**
51
- * Check and process workspaces for a user whose intro period has expired
52
- * - Resize workspaces that are still at intro-tier resources
53
- * - Destroy workspaces that have been inactive for DESTROY_GRACE_PERIOD_DAYS
54
- */
55
- private checkAndProcessUserWorkspaces;
56
- }
57
- export declare function getIntroExpirationService(): IntroExpirationService;
58
- export declare function startIntroExpirationService(): void;
59
- export declare function stopIntroExpirationService(): void;
60
- //# sourceMappingURL=intro-expiration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intro-expiration.d.ts","sourceRoot":"","sources":["../../src/services/intro-expiration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAOD,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CA0B7F;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAIvD;;OAEG;IACH,KAAK,IAAI,IAAI;IA6Bb;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA6CvD;;;;OAIG;YACW,6BAA6B;CAkH5C;AAKD,wBAAgB,yBAAyB,IAAI,sBAAsB,CAKlE;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD"}
@@ -1,252 +0,0 @@
1
- /**
2
- * Intro Expiration Service
3
- *
4
- * Handles auto-resize and auto-destroy of free tier workspaces:
5
- * 1. Resize: Free users get Pro-level resources (2 CPU / 4GB) for the first 14 days,
6
- * then get automatically downsized to standard free tier (1 CPU / 2GB).
7
- * 2. Destroy: Free workspaces inactive for 7+ days after intro expires get auto-destroyed
8
- * to prevent ongoing infrastructure costs for churned users.
9
- */
10
- import { db } from '../db/index.js';
11
- import { getProvisioner } from '../provisioner/index.js';
12
- export const INTRO_PERIOD_DAYS = 14;
13
- export const DESTROY_GRACE_PERIOD_DAYS = 7; // Days of inactivity after intro before auto-destroy
14
- const DEFAULT_CONFIG = {
15
- enabled: true,
16
- checkIntervalMs: 60 * 60 * 1000, // 1 hour
17
- };
18
- /**
19
- * Get intro period status for a user
20
- */
21
- export function getIntroStatus(userCreatedAt, plan) {
22
- const introPeriodDays = INTRO_PERIOD_DAYS;
23
- // Only free tier users get intro bonus
24
- if (plan !== 'free' || !userCreatedAt) {
25
- return {
26
- isIntroPeriod: false,
27
- daysRemaining: 0,
28
- introPeriodDays,
29
- expiresAt: null,
30
- };
31
- }
32
- const createdAt = typeof userCreatedAt === 'string' ? new Date(userCreatedAt) : userCreatedAt;
33
- const daysSinceSignup = (Date.now() - createdAt.getTime()) / (1000 * 60 * 60 * 24);
34
- const isIntroPeriod = daysSinceSignup < introPeriodDays;
35
- const daysRemaining = Math.max(0, Math.ceil(introPeriodDays - daysSinceSignup));
36
- const expiresAt = new Date(createdAt.getTime() + introPeriodDays * 24 * 60 * 60 * 1000);
37
- return {
38
- isIntroPeriod,
39
- daysRemaining,
40
- introPeriodDays,
41
- expiresAt,
42
- };
43
- }
44
- export class IntroExpirationService {
45
- config;
46
- checkTimer = null;
47
- isRunning = false;
48
- constructor(config = {}) {
49
- this.config = { ...DEFAULT_CONFIG, ...config };
50
- }
51
- /**
52
- * Start the expiration service
53
- */
54
- start() {
55
- if (!this.config.enabled) {
56
- console.log('[intro-expiration] Service disabled');
57
- return;
58
- }
59
- if (this.isRunning) {
60
- console.warn('[intro-expiration] Service already running');
61
- return;
62
- }
63
- this.isRunning = true;
64
- console.log(`[intro-expiration] Started (checking every ${this.config.checkIntervalMs / 1000 / 60} minutes)`);
65
- // Run immediately on start
66
- this.runExpirationCheck().catch((err) => {
67
- console.error('[intro-expiration] Initial run failed:', err);
68
- });
69
- // Then run periodically
70
- this.checkTimer = setInterval(() => {
71
- this.runExpirationCheck().catch((err) => {
72
- console.error('[intro-expiration] Periodic run failed:', err);
73
- });
74
- }, this.config.checkIntervalMs);
75
- }
76
- /**
77
- * Stop the expiration service
78
- */
79
- stop() {
80
- if (this.checkTimer) {
81
- clearInterval(this.checkTimer);
82
- this.checkTimer = null;
83
- }
84
- this.isRunning = false;
85
- console.log('[intro-expiration] Stopped');
86
- }
87
- /**
88
- * Run expiration check for all free tier users with expired intro periods
89
- */
90
- async runExpirationCheck() {
91
- const results = [];
92
- try {
93
- // Get all users on free tier
94
- const freeUsers = await db.users.findByPlan('free');
95
- // Filter to users whose intro period has expired
96
- const expiredUsers = freeUsers.filter((user) => {
97
- const status = getIntroStatus(user.createdAt, user.plan || 'free');
98
- return !status.isIntroPeriod && status.expiresAt !== null;
99
- });
100
- if (expiredUsers.length === 0) {
101
- return results;
102
- }
103
- console.log(`[intro-expiration] Checking ${expiredUsers.length} users with expired intro periods`);
104
- for (const user of expiredUsers) {
105
- try {
106
- const userResults = await this.checkAndProcessUserWorkspaces(user.id, user.createdAt);
107
- results.push(...userResults);
108
- }
109
- catch (err) {
110
- console.error(`[intro-expiration] Error checking user ${user.id}:`, err);
111
- }
112
- }
113
- // Summary
114
- const resized = results.filter((r) => r.action === 'resized').length;
115
- const destroyed = results.filter((r) => r.action === 'destroyed').length;
116
- const skipped = results.filter((r) => r.action === 'skipped').length;
117
- const errors = results.filter((r) => r.action === 'error').length;
118
- if (resized > 0 || destroyed > 0 || errors > 0) {
119
- console.log(`[intro-expiration] Results: ${resized} resized, ${destroyed} destroyed, ${skipped} skipped, ${errors} errors`);
120
- }
121
- return results;
122
- }
123
- catch (err) {
124
- console.error('[intro-expiration] Run failed:', err);
125
- return results;
126
- }
127
- }
128
- /**
129
- * Check and process workspaces for a user whose intro period has expired
130
- * - Resize workspaces that are still at intro-tier resources
131
- * - Destroy workspaces that have been inactive for DESTROY_GRACE_PERIOD_DAYS
132
- */
133
- async checkAndProcessUserWorkspaces(userId, userCreatedAt) {
134
- const results = [];
135
- const provisioner = getProvisioner();
136
- // Get user's workspaces
137
- const workspaces = await db.workspaces.findByUserId(userId);
138
- // Calculate when intro period expired for this user
139
- const introExpiredAt = new Date(userCreatedAt.getTime() + INTRO_PERIOD_DAYS * 24 * 60 * 60 * 1000);
140
- const destroyThreshold = new Date(introExpiredAt.getTime() + DESTROY_GRACE_PERIOD_DAYS * 24 * 60 * 60 * 1000);
141
- const now = new Date();
142
- for (const workspace of workspaces) {
143
- try {
144
- // Check if workspace has intro-sized resources
145
- const config = workspace.config;
146
- const resourceTier = config?.resourceTier;
147
- // Check last activity via linked daemons
148
- const daemons = await db.linkedDaemons.findByWorkspaceId(workspace.id);
149
- const lastActivity = daemons.length > 0
150
- ? daemons.reduce((latest, d) => {
151
- const seen = d.lastSeenAt ? new Date(d.lastSeenAt) : new Date(0);
152
- return seen > latest ? seen : latest;
153
- }, new Date(0))
154
- : workspace.updatedAt; // Fall back to workspace updatedAt
155
- // Check if workspace should be destroyed (inactive for grace period after intro)
156
- const daysSinceActivity = (now.getTime() - lastActivity.getTime()) / (1000 * 60 * 60 * 24);
157
- const shouldDestroy = now > destroyThreshold && daysSinceActivity >= DESTROY_GRACE_PERIOD_DAYS;
158
- if (shouldDestroy) {
159
- console.log(`[intro-expiration] Destroying inactive free workspace ${workspace.name} (${daysSinceActivity.toFixed(1)} days inactive)`);
160
- try {
161
- await provisioner.deprovision(workspace.id);
162
- results.push({
163
- userId,
164
- workspaceId: workspace.id,
165
- workspaceName: workspace.name,
166
- action: 'destroyed',
167
- reason: `Inactive for ${Math.round(daysSinceActivity)} days after intro period expired`,
168
- });
169
- }
170
- catch (deprovisionErr) {
171
- console.error(`[intro-expiration] Failed to destroy workspace ${workspace.id}:`, deprovisionErr);
172
- results.push({
173
- userId,
174
- workspaceId: workspace.id,
175
- workspaceName: workspace.name,
176
- action: 'error',
177
- reason: `Failed to destroy: ${deprovisionErr instanceof Error ? deprovisionErr.message : 'Unknown error'}`,
178
- });
179
- }
180
- continue;
181
- }
182
- // Skip resize if already at standard free tier
183
- if (resourceTier === 'small') {
184
- results.push({
185
- userId,
186
- workspaceId: workspace.id,
187
- workspaceName: workspace.name,
188
- action: 'skipped',
189
- reason: 'Already at standard free tier size',
190
- });
191
- continue;
192
- }
193
- // Skip if workspace is not running (resize happens on next start)
194
- if (workspace.status !== 'running') {
195
- results.push({
196
- userId,
197
- workspaceId: workspace.id,
198
- workspaceName: workspace.name,
199
- action: 'skipped',
200
- reason: `Workspace status is ${workspace.status}`,
201
- });
202
- continue;
203
- }
204
- // Resize to standard free tier (small: 2 CPU / 2GB)
205
- // Use skipRestart=true to not disrupt running agents
206
- console.log(`[intro-expiration] Resizing workspace ${workspace.name} to standard free tier`);
207
- await provisioner.resize(workspace.id, {
208
- name: 'small',
209
- cpuCores: 2,
210
- cpuKind: 'shared',
211
- memoryMb: 2048,
212
- maxAgents: 2,
213
- }, true); // skipRestart = true for graceful resize
214
- results.push({
215
- userId,
216
- workspaceId: workspace.id,
217
- workspaceName: workspace.name,
218
- action: 'resized',
219
- reason: 'Intro period expired, downsized to standard free tier (applies on next restart)',
220
- });
221
- }
222
- catch (err) {
223
- console.error(`[intro-expiration] Failed to process workspace ${workspace.id}:`, err);
224
- results.push({
225
- userId,
226
- workspaceId: workspace.id,
227
- workspaceName: workspace.name,
228
- action: 'error',
229
- reason: err instanceof Error ? err.message : 'Unknown error',
230
- });
231
- }
232
- }
233
- return results;
234
- }
235
- }
236
- // Singleton instance
237
- let _service = null;
238
- export function getIntroExpirationService() {
239
- if (!_service) {
240
- _service = new IntroExpirationService();
241
- }
242
- return _service;
243
- }
244
- export function startIntroExpirationService() {
245
- getIntroExpirationService().start();
246
- }
247
- export function stopIntroExpirationService() {
248
- if (_service) {
249
- _service.stop();
250
- }
251
- }
252
- //# sourceMappingURL=intro-expiration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intro-expiration.js","sourceRoot":"","sources":["../../src/services/intro-expiration.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"mention-handler.d.ts","sourceRoot":"","sources":["../../src/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"}